基于PLC梯形图图元状态的实时监控算法及实现*

2011-05-28 09:12王珍珠刘占清
组合机床与自动化加工技术 2011年3期
关键词:选择器竖线梯形图

王珍珠,刘 伟,刘占清

(1.中国科学院研究生院,北京 100039;2.中国科学院 沈阳计算技术研究所,沈阳 110168;3.沈阳高精数控技术有限公司,沈阳 110168)

0 引言

可编程控制器是一种数字运算操作的电子系统,专为在工业环境应用而设计的。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数与算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程。可编程控制器及其有关外部设备,都应按易于是工业控制系统形成一个整体,易于扩充其功能的原则设计[1-2]。基于微处理器的可编程控制器(Programmable Logic Controller-PLC)是通过用户编程来控制工业设备运行的控制系统[3]。随着PLC在工业控制领域中越来越发挥特有的优势,数控系统(CNC)对PLC的监控作为PLC应用过程的一个重要环节也显得至关重要。S.Da’na等设计并实施了一种通过TCP/IP和GSM网络对PLC程序进行监控的平台[3]。Sung Jung Mulman提出一种利用神经网络对PLC程序进行监控和错误预测的算法[4]。张志强等基于PC-PLC控制系统串口通讯技术和对串口通讯故障问题的研究,提出了运行于PC和PLC间的串口通讯监控程序的设计方法[5]。姜海等提出了以MCGS组态软件为开发平台,实现可编程控制器工作状态监控的方法[6]。文献[7]介绍了运用 VC++实现 PC机和PLC串行通信的编程方法,开发了上位机监控系统。文献[8]提出了一种PC机和主控节点通过串口通信实现对监控节点进行监控的方式。文献[9]提出了一种基于PC-PLC结构的以组态王为平台的监控方案。本文提出的监控算法是在数控系统中的PLC梯形图编辑器的编辑模式下,通过设置梯形图图元显示位进行实时监控PLC逻辑状态,可正确有效地对PLC系统进行实时监控。

1 梯形图及其数据结构

梯形图[10]是 IEC61131-3 标准[11]规定的一种图形化编程语言,它将PLC指令的图形符号通过串联或并联结构连接在一起,形成简单、直观、具有特定功能的流通图。PLC梯形图图元的数据结构如下:

In:为1表示该节点左面的逻辑为通路,否则不通。

Out:节点为常开常闭节点时,Out为1表示该节点需显示上一扫描周期的值,并将当前周期的值暂存在curIn;Out为0显示当前周期值;虚节点Out为1表示虚节点的后续节点显示位为1,Out为0表示后续节点显示位为0或者不存在后续节点。

2 CNC与PLC的通信机制

CNC和PLC的通信是通过数据报的传输来实现的。该数据报结构包括首部和有效负载两部分。数据报格式如图1所示。

首部包括通信协议(Communications Protocol)、有效负载长度(Length of Payload)、有效负载首地址(First Address of Payload),共占用3个字节。

有效负载的数据单元包括逻辑名LOGN(Logical name)、字操作数 WODN(Word Name)、对照位 RB(Reference Bit)、地址 ADDR(Address)、值 VALUE(Value)。

图1 数据报格式

(1)通信协议CP占一个字节,是CNC和PLC通信规则的集合。PLC向CNC发送请求,CNC对PLC的请求进行应答。PLC向CNC请求数据时将CP置为2(010表示字操作数改变的数据请求)或6(110表示字操作数未改变的数据请求),终止请求时CP置为0。若CNC收到PLC的请求,则准备请求数据值送回给PLC,将CP置为3,若在CNC准备数据的过程中出错则将CP置为5送回给PLC。在此共五种信号,仅用了8位中的3位,剩余5位用于扩展。通信协议位图如图2。

图2 通信协议位图

(2)有效负载长度LP占一个字节,是PLC向CNC请求的数据的个数。梯形图一屏共12行,一行最多有9个节点,所以有效负载长度最大值为12×9=108,最小值为0(只有首部无有效负载)。有效负载数据单元的长度为31字节,有效负载长度的范围是:0×9×31~12×9×31字节。

(3)有效负载的首地址FAP占一个字节,是PLC向CNC请求数据的首地址。该算法将按照有效节点的个数建立一个有效负载的动态数组。

(4)逻辑名LOGN占13个字节,是梯形图中节点及节点参数的逻辑名称。

(5)字操作数WODN占13个字节,是逻辑名对应的字操作数。

(6)对照位RB占1个字节,字操作数与对照位相与得到逻辑值。

(7)字操作数的地址 ADDR,是指向 INT的指针。

(8)VALUE占2个字节,将字操作数地址存放的内容取出赋值给VALUE。CNC就是根据这个VALUE值来进行动态显示的。

3 监控算法实现

PLC梯形图中图元的类型不同导致实时显示的依据不同。若图元(类型为多路选择器除外)的逻辑值为1则设置节点的visited为1,显示为绿色,否则显示为黄色(缺省颜色),而在多路选择器中,visited为1表示多路选择器的八条路径中至少有一条路径是通的,仅选择最靠上面的一条通路显示绿色;visited为时,代表多路选择器没有通路,八条路径均显示为黄色。

该算法设计了乒乓快捷操作键(“ALT+D”和“SPACE”)操作。“ALT+D”键控制梯形图“编辑模式”/“监控模式”之间的互换。“SPACE”键为暂停/继续扫描键。“PgUp”和“PgDn”对监控模式下的梯形图进行上下翻页。

该监控模块包括二大部分的算法,一是监视前的准备,二是实时监视。

3.1 监视前的准备

监视前的准备包括程序初始化,建立数据链,建立有效负载的动态数组,获得数据。

3.1.1 程序初始化

程序初始化是对图元节点中的In,Out,CurIn,visited四种标示位设置初始值,并对要求显示上一周期的图元节点作标记(Out的值为1)。如果Out为1,则要将当前周期的逻辑值暂存在CurIn里,以备下一周期显示使用。

3.1.2 建立数据链

建立数据链是建立有效节点所涉及的参数逻辑名的数据链,首先要计算有效节点。在任一时刻,数控系统中的PLC梯形图编辑器屏幕最多能显示12行梯形图,所谓有效节点是指屏幕上的梯形图中构成完整逻辑的节点,靠近屏幕上部和下部的图符如果要与12行之外的图符才能构成完整的梯形图逻辑则不计算在内。把一屏中除去有效节点的剩余节点称之为非有效节点。

建立当前屏幕有效节点的数据链,再通过该数据链建立动态数组,而不是直接利用整个梯形图的链结构建立当前屏幕的动态数组,是因为建立动态数组需知道当前所建数组的确切长度。当然,也可利用整个梯形图的链结构建立一条有效节点的指针链,但所占内存要多很多。因此,对于内存资源有限的数控系统来说,用动态数组更为合适。

3.1.3 建立有效负载的动态数组

根据3.1.2节中建立的有效节点数据链中的逻辑名,得到动态数组元素字操作数、对照位,并将动态数组的首地址赋值给有效负载的首地址FAP。

字操作数根据逻辑名的不同而获得的方式不同:

(1)逻辑名以T开头代表定时器,以C开头的代表计数器,以P开头的代表脉冲,这几种操作数统称元操作数。它们的字操作符与逻辑名相同。而RB的设置,除计数器中的CxxWxx的 RB为255之外,其余的情况计数器(CxxIxx,CxxAxx,CxxZxx,CxxRxx)、定时器和脉冲的RB均为1。

(2)逻辑名以W开头的代表是字操作数,其LOGN和WODN是一样的,RB的值均为255。

(3)逻辑名以U,I开头的代表输入或输出假设UabKcd对应的字操作数WODN为WabKef,其中ef=cd/8,RB=2cd%8。

3.1.4 获得数据

模拟版本中获得数据是通过读文件得到的,真实版本中获得数据是从I/O映像表中得到的。

3.2 实时监视

实时监视包括设置节点、横线和竖线的显示位,非有效节点的处理,刷新显示,显示后的处理。

3.2.1 图元节点显示位的设置

PLC获得数据后,先要将此数据与对照位RB相与得到其逻辑值,然后根据图元节点的类型来设置该节点的显示位visited,且此功能块仅对节点的visited进行设置。设n为梯形图中任一节点,下面根据节点类型来设置:

(1)n的类型为常开触点、输出节点、比较器、符号函数,若逻辑值为1,则显示位visited为1,显示绿色,否则显示黄色。而若n为常闭触点、反输出节点分别与常开触点、输出节点的设置相反。

(2)n的类型为多路选择器时,此时的visited显示位含义与上述不同,用一长度为8的数组存放多路选择器的布尔值,数组的下标加1对应选择器的8个路径。选择器显示第一个布尔值为1的路径为绿色;若8个布尔值都为,则选择器8条路径均为黄色。

3.2.2 横线显示位的设置

横线显示位的设置是根据其左面的路径是否为通路来处理的。设置横线的显示位还必须先设置In位。为了竖线显示位设置(4.2.3小节)方便,也设置了虚节点的In和Out。从当前屏有效节点开始扫描,设n为当前节点,np为n上一节点,n1为n的下一节点,在扫描过程中设置每一节点的In,并设置横线的visited和虚节点的In和Out。由于横线显示位设置较节点显示位设置复杂,图3给出了横线显示位设置流程图。

图3 横线显示位设置流程图

横线显示位设置过程描述如下:

(1)从梯形图当前屏中取出一个有效节点n,如果该节点为空节点,就结束,否则就将n1=n->next。

(2)根据n的类型不同来进行不同的设置,分5种类型:

(a)n为条件节点,若n的In为1,则n的 visited为1。

(b)n为多路选择器,此时若多路选择器的显示位为1,则下一节点n1的In也为1。

(c)n为常开节点、常闭节点、数值比较器、符号函数时,若n的In和visited都为1,则n1的In也为1。

(d)n为横线,若np是虚结点,则n的In为1,若np不是虚节点,且n的 In为1,则n的 visited为1,此时要根据横线n的前一节点np是否是虚节点来设置n的In位和visited显示位。若n的In和visited都为1,则n1的In位也为1。

(e)n为虚节点,梯形图中并联结构是由虚节点来连接的,图4标出出虚节点的位置。若存在与虚节点同行且紧接虚节点的图元节点n1,若n1的visited为1,则 n 的 Out为1。

图4 竖线显示位设置流程图

(3)继续取当前屏中的有效节点进行上述处理,直到处理完当前屏中所有的有效节点。

3.2.3 竖线的设置

我们假定图5中的三个虚节点分别记为x,x2,x1,其中x2的visited控制x和x2之间的竖线的显示,x1的visited控制x2和x1之间的竖线的显示。如果梯形图中x和x1之间还有虚节点则设为xn。在扫描梯形图的过程中,虚节点的设置是一个递归的过程,设置过程描述如下,流程图如图4所示。

图5 查找梯形图中的虚节点

竖线显示位设置过程描述如下:

(1)取当前屏中有效节点中的一个虚节点x。

(2)查看虚节点x的In和Out,若满足条件

(x->In==0&&x->Out==0)(记为条件a),说明当前虚节点不需要处理。

(3)如果x不满足条件a,就做以下处理:

(a)找到x最底层的虚节点,在图5中,最底层的虚节点为x1,若满足条件:(x->In==1&&x1->Out==1)||(x->Out==1&& x1- >In==1)(记为条件b),那么x下面的虚节点的visited都为1,In和Out都为。如果不满足条件 b,则 x1->visited=0。

(b)找到紧接x1的上一行的虚节点(图5中为x2),若不存在x2,竖线处理结束,否则按处理x和x1的方法,即递归条用(1)处理x和x2。如果x和x2之间还存在多个虚节点,比如x和x2之间还有xn,则按同样的方法处理x和xn。

(4)继续扫描并处理虚节点,直到当前屏有效节点的虚节点都处理结束。

4 结束语

该算法是在梯形图编辑器下先是设置梯形图中各图元节点状态显示,然后根据图元节点状态设置横线显示,最后根据图元节点和横线的显示来确定梯形图中竖线的显示来进行实时监控的。通过模拟数据验证,该算法可以正确、快捷地跟踪PLC内部运行数据的状态,为梯形图的监控模块设计起到了指导意义。

[1]唐明军.基于ARM的可编程控制器的研制[J].南京:南京信息工程大学,2007.

[2]于广庆.可编程控制器原理及系统设计[M].北京:清华大学出版社,2004.

[3]S.Da’na,A.Sagahyroon,A.Elrayes,et al.Development of a monitoring and control plat form for PLC-based applications.Computer Standards and Interfaces.2008,3(30):157-166.

[4]Sung Jung,Mulman BM,Devinder Thapa,et al.PLC Control Logic Error Monitoring and Prediction Using Neural Network.Natural Computation,ICNC '08.Fourth International Conference,Korea,IEEE,2008(2):484-488.

[5]张志强,孙宁.PC-PLC控制系统的串口通讯监控程序设计[J]. 工业控制计算机,2006,19(12):35-37.

[6]姜海,田春艳.MCGS组态软件在PLC工作状态监控中的应用[J]. 装备制造技术,2008(2):56-57,59.

[7]吴镇平,林海涨,李捷辉.利用VC++6.0实现PLC实时监控[J].装备制造技术,2009(7):80-91.

[8]陶杰.基于CAN总线的多品牌小型PLC监控系统的设计与实现[D].苏州大学,2008.

[9]王登贵.基于PC-PLC结构的计算机监控系统设计及实现[J]. 自动化技术与应用,2008,27(11):107-108.

[10]裴元方,冯萍,康继昌.PLC梯形图的一种数据结构描述方法[J]. 计算机工程与科学,2009,12(31):87-89.

[11]Karl-Heinz John,Michael Tiegelkamp,IEC61131-3.Programming Industrial Automation Systems[M].Germany:Springer-Verlag Company,2001.

猜你喜欢
选择器竖线梯形图
可自动消除NG竖线缺陷的Mura检测机设计探究
74151在数据选择和组合逻辑电路中的灵活应用
TFT-LCD彩膜工艺宏观缺陷自动化修补的探究
DIV+CSS网页布局初探
深入理解CSS3结构伪类选择器
PLC编译功能的实现
象形文字走走看
S7—200PLC基本编程教学案例
数控机床梯形图故障设置方法研究
PLC梯形图程序设计技巧及应用