PLC编译功能的实现

2016-10-14 00:50樊宏刘贺
科学与财富 2016年28期
关键词:竖线功能块梯形图

樊宏+刘贺

摘 要:PLC的编程标准包括5种PLC编程语言:梯形图、功能块图,顺序功能图,结构文本和指令表。其中梯形图和指令表最为简单易用,应用的范围最为广泛,并且其中梯形图和工控图比较相近,更加形象直观,对于熟悉继电器表示方式的编程人员来讲,更加容易被接受,并且不需要特别深入的计算机知识作为基础。

关键词:PLC;PLC编译功能实现

1.指令表和梯形图的关系分析

指令表和梯形图是PLC的两种常用的编程语言,在PLC逻辑实现上是等效的。

1.1基本指令语言的分析

指令语言包括两个部分:指令语句和操作数。以RD R0.1为例:其中RD指令语言的基本指令,后面的R0.1中的R表示的是信号的地址,表示不同的信号种类。0.1中的0表示的是地址号,小数点后面的1表示的是位号。

1.2 梯形图的分析

梯形图因其形状类似梯子而得名。典型的梯形图由电力轨、中间部分的元件触点横线和竖线,还有功能块组成。左右两边的两条竖线称为电力轨。对于某些带有输出的若干行,它们与这个整体和其他行没有竖线链接,称之为一个梯级。每个梯级又由一行或者由竖行链接的若干行构成。梯形图由元件触点、横线、线圈(或继电器线圈)、功能块(功能指令)等构成。

1.3 梯形图和指令语言的外在联系

通过以上对梯形图和指令语言的分析介绍中可以看出指令语言和梯形图有一定的外在关系。不考虑逻辑部分的关系,可以得出,梯形图和指令语言的信号地址,位号表示形式上是一致的。

2.梯形图和指令语言的内部逻辑关系

梯形图和指令语言之间最大的区别主要表现在逻辑的表示形式上。梯形图和指令语言都是PLC的编程语言,在PLC程序实现的逻辑关系上是等同的,而任何逻辑关系都可以用一定的数据结构形式描述。因此可以对他们的逻辑关系进行分析,找到一个合适的数据结构将梯形图和指令语言联系在一起,实现两种编程语言的互译。

2.1 指令语言的指令分析

在进行梯形图向指令语言转化前,必须要对指令语言的有一定的了解,PLC的基本指令一共有14个,这些基本指令都对应着一定的逻辑关系。基本指令是在设计顺序程序时最常用的指令,它们执行一位的运算。功能指令也和基本指令的表示形式类似,也是由指令和操作数构成的。只不过操作数的个数和基本指令种类的操作数有一定的差别而已。

2.2 梯形图内部逻辑关系的描述

任何梯形图都是由若干梯级组成的,梯阶是梯形图表达含义的最小单元,是梯形图不可分割的组成部分,就像英文单词与英文语句的关系一样。梯形图的元件和功能块就像英文的26个字母,是组成梯级的最小单位。所以梯级逻辑的分析是梯形图逻辑分析的关键,只要把任意形式的梯级的逻辑关系解决也就是解决了整个梯形图的逻辑关系。在梯级中,梯形图元件和各个元件之间的关系是梯级中最基本的关系。要分析清楚梯形图,必须要对梯级中的元件的逻辑关系进行研究。

2.3 基本元件之间的逻辑关系分析

梯形图元件之间的逻辑关系主要可以分为两部分,串联和并联。简单的说存在横线连接的部分为串联,竖线连接的部分为并联。任何梯形图都是由最基本的串并联嵌套构成的。因此梯形图梯级内部元件的串并、联关系的处理是梯形图向指令语言转化编译实现的关键。

2.4 功能块逻辑关系的处理

功能块本身是一个整体,在处理的时候,可以作为一个整体来进行逻辑分析处理。梯形图单元格的数据类型,功能块的基本信息都存在1这个位置的单元格内。以图2.1为例,MOVE功能块的m Kind值,功能块的参数全部存在1这个位置,其他的15个格全部赋值为120是为了和空白单元格相区别和便于后期的逻辑处理。由于其他位置的单元格数据结构有一定的空闲,可以将1这个信息存储单元格的位置的坐标存储在其他单元格内的空闲的数据结构中。这样,处理其他单元格的时候.就会对应到相应的功能块的类型和参数的存储单元,从而得到梯形图功能块的类型和参数信息,随后即可对功能块进行进一步的操作。

3.编译模块的实现

编译器是软件PLC的核心部分,PLC硬件部分不能够识别梯形图,因此需要将梯形图转化为硬件能够识别的机器语言。PLC的指令语言和硬件识别的机器语言有一定的共性,因此将梯形图转化为指令语言,然后将指令语言转化为机器识别的计算机语言是编译过程的关键。其中梯形图转为指令语言是这一部分的重点。

3.1 梯级中行的分类

每一个梯级实际上由若干行组成的,现在将梯级内的不同形式的行进行分类,共分为4类:

1.该行存在输出,并且与上一行之间不存在竖线(既并联关系):

2.该行存在输出,并且与上一行之间存在一个竖线:

3.该行存在输出,并且与上一行之间存在多个竖线;

4.该行没有输出。

3.2 编译模块的实现

规范的梯形图的逻辑关系都对应着一种数据结构。若要得到PLC梯形图的相应的指令语言,就要找到和梯形图对应的数据结构,并对这种数据结构进行遍历。对串并联逻辑的插入与否的判断和对数据表进行整理,将逻辑情况逐个压入链表中,最终就实现了梯级的逻辑关系的转化的过程。并且在这个过程中,对每一个元件进行判断,梯形图在转化成指令语言的同时可以对梯形图进行检错。

3.3功能块指令译码的实现

功能块虽然占据了若干的存储单元,但是功能块内的参数信息都存在第一个单元的数据结构内。功能块其他位置的类型设置的值为120,并存储了第一个单元格的位置坐标。功能块在译码的实现部分也采用类似的方法,将功能块看成一个整体。在处理的时候,首先对功能块进行分类,分为单输入和多输入两种类型。在处理的过程中,考虑到程序的紧凑和代码实现的效率,将功能块的逻辑转化与基本元件的译码整合在一个函数内。

单输入类型的处理:MOVE指令就是典型的单输入类型,在处理的过程中,第一行的类型就是1,处理的过程也加入到1的流程中。在判断元件的时候,就将整个功能块的信息转化为指令语言。后面几行就是处理简单的串并联关系,遇到120类型的,做空格处理。图3.1就是MOVE指令的译码实现的实例。

结论

梯形图向指令语言的译码过程是上位机软件的核心部分,本文分析了梯形图的逻辑关系归纳为串联和并联这两种逻辑关系形式,介绍了编译模块的实现过程,对PLC的发展有一定的意义。

参考文献

[1] 王念春,赵阳,史国生等,电气控制与可编程控制器技术(第三版),北京:化学工业出版社.

猜你喜欢
竖线功能块梯形图
可自动消除NG竖线缺陷的Mura检测机设计探究
TFT-LCD彩膜工艺宏观缺陷自动化修补的探究
Ovation系统FIRSTOUT和FIFO跳闸首出比较
基于VC的梯形图编程软件开发技术
继电器电路转为梯形图教学经验浅谈
象形文字走走看
自定义功能块类型在电解槽联锁中的应用
PLC梯形图程序设计技巧及应用
基于MACSV6.5.2的锅炉燃尽风开关量调节门控制功能块设计
PLCopen运动控制功能块的研究与开发