一种plc梯形图矩阵编辑显示方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体涉及一种PLC梯形图矩阵编辑显示方法。
【背景技术】
[0002]可编程控制器PLC是一种专门为工业自动控制而开发的通用自动控制装置。它具有可靠性高、编程简单、使用方便、功能完善、通用性好等特点,并具有在线修改功能,给控制系统带来了很好的柔性。它可以灵活地以不同的组态来适应不同控制对象、控制规模和控制功能的要求,是实现“机电一体化”较理想的控制设备。一般的PLC控制系统分为两部分,一部分为编程环境:包括梯形图编辑显示,变量编辑,工程配置,程序编译等;另一部分为运行环境:主要将编程环境编译生成工程文件解释并执行。本方法主要涉及梯形图矩阵编辑显示。
[0003]目前国内的PLC的梯形图编辑显示部分大部分都是基于国外的指令解释器,将PLC梯形图最终编辑成适合指令表转换的树状数据结构,编辑完毕用指令解释器扫描梯形图树状列表生成运行环境可识别的指令,算法复杂,效率低,故障点多。
【发明内容】
[0004]本发明要解决的技术问题是:本发明提供了一种基于PLC梯形图矩阵编辑显示方法,将PLC梯形图编辑显示基于简单的二维矩阵进行设计,无需进行复杂的语法检查,逻辑树和遍历等复杂的算法。大大减小了出错概率和编译时间,高了执行效率。
[0005]本发明所采用的技术方案为:
一种PLC梯形图矩阵编辑显示方法,所述方法操作过程如下:
I)用特定的文本描述梯形图的所有逻辑关系,如下所示:
LAND {N,
LLDOLib=Iibname,Name=componentnameI, Vers1n=componentvers1n, FBID=funct1ncode?
LLDOLib=Iibname,Name=componentname2,Vers1n=componentvers1n,FBID=funct1ncode?
LLDOLib=Iibname,Name=ComponentnameNj Vers1n=componentvers1n, FBID=funct1ncode?}
其中:LAND表示“与”关系,即该大括号里面的所有元素为“与”的关系,LLD表示一个“元件”,Lib表示所属功能库,Name表示元件名称,Vers1n表示元件版本,FBID表示元件功能码。网络的文本表示方法,可读性强,逻辑关系清晰明了。
[0006]2)将上述的文本转化成图块,“图块”是梯形图中能够完成一定功能,且具有层次性和确定逻辑关系的一组元件的集合。
[0007]一个网络由多个图块组成,网络本身也是一个图块。特定的文本转化成的图块包含了以下信息:
图块的坐标:x,Y ; 图块的宽高:w,H ;
图块的功能码:触点、线圈、功能模块或者是这几种模块的逻辑组合;
图块与其他图块的逻辑关系:“与”逻辑、“或”逻辑;
3)编辑时根据逻辑关系更改文本描述,画图时根据图块的信息将该图块显示到编程工具的图像显示区,根据特定的文本描述的逻辑关系,将所有图块显示出来即完成了 LDD梯形图的显示,然后更新显示即可完成LDD梯形图的编辑。
[0008]所述图块类型分为:元件图块、与图块、或图块和混杂图块,其中:
元件图块,是一个单独的元件,元件图块是“与图块”或“或图块”的特例,也是其分支;
与图块,图块中元件与元件之间只存在与关系,即串联关系,与分支的数量N>1,且每个分支都是元件图块;
或图块,图块中元件与元件之间只存在或关系,即并联关系,分支的数量N>1,且每个分支都是元件图块;
混杂图块,由与图块、或图块和元件图块混合组成,总体上具有明确逻辑关系的图块,称为混杂图块;混杂图块具有明显的层次特性,即混杂模块的组合可以生成更复杂的混杂丰旲块。
[0009]所述图块具有以下特性:逻辑性、层次性和行列特性,其中:
逻辑性,图块中相邻元件之间只存在“与”和“或”逻辑关系,逻辑关系定义了图块中元件之间的连接关系;
层次性,一个图块能够包含图块,被包含的图块称为子图块,同图块一样,子图块具备图块的各种特性;
行列特性定义了图块的大小,假设每个元件的图形大小一样,组成图块的元件按照从上到下,从左到右的规则排列后,形成一个M行N列的矩阵,通过逻辑关系和行列特性,可以完整地定义一个网络;
利用图块之间及图块内部的逻辑关系和层次关系,能够实现图块乃至网络的编辑,具体操作如下:
首先要对梯形图文件进行解析,将文本形式的梯形图文件,以图块为基本单元,解析成具有一定格式的数据结构,一个图块对应一个数据结构,该数据结构完整描述了该图块的信息,包括:图块类型、元件功能号、分支数量、分支图块的数据结构地址指针、分支图块坐标、元件坐标、水平连线坐标、垂直连线坐标、图块的起始行列索引、图块在父级图块中的序号和图块的连接关系;
对于不同类型的图块这些值的含义不同,将梯形图文件解析成上述数据结构,并且将这些数据结构按照图块在梯形图文件的顺序和层次关系,转换成双向链表后,就可以根据图块信息对该梯形图进行显示、选择和编辑了。
[0010]所述梯形图绘制过程如下:
扫描梯形图文件,建立双向链表,双向链表的每一个节点代表一个元素;扫描过程中根据该元素的功能码以及前一个元素的坐标,计算出该元素的坐标及大小,将元素的坐标及尺寸信息记录到该节点,并记录元素之间的连接关系;扫描完成后,即可生成一张包含坐标信息及连接关系的双向链表;根据该双向链表即可实现梯形图的绘制。
[0011]为实现编辑界面的缩放和保证显示效果,系统显示采取三缓冲区技术:
1)图形显示缓冲区:其大小为元件不进行任何缩放的网络大小,包含多个网络以及文本显示区域,但无文本显示;
2)综合显示缓冲区:由于文本不支持缩放,因此,文本显示缓冲区作为中间显示缓存,在图形经缩放后,将显示句柄的字体设置成相应的大小,直接显示在经缩放后的图形上,形成图形和文本混合后的综合显示缓冲区;
3)输出缓冲区:即最终显示在界面上的缓冲区,主要是为了避免屏幕闪烁。最终由三个缓冲区之间相互配合完成梯形图的显示。
[0012]本发明的有益效果为:本发明将PLC梯形图编辑显示基于简单的二维矩阵进行设计,无需进行复杂的语法检查,逻辑树和遍历等复杂的算法,大大减小了出错概率和编译时间,提尚了执彳丁效率。
【附图说明】
[0013]图1为元件图块示意图;
图2为与图块不意图;
图3为或图块不意图;
图4为顶层逻辑为“与”的混杂图块示意图;
图5为顶层逻辑为“或”的混杂图块示意图;
图6为与逻辑(s00 AND sOl)示意图;
图7为与逻辑(s00 OR sOl)示意图;
图8为顶层逻辑为“与”的混杂图块的逻辑关系(s00 AND (sOl OR sll) AND s02)示意图;
图9为顶层逻辑为“或”的混杂图块的逻辑关系((sOO AND sOl) OR slO)示意图;
图10为图块层次关系不意图;
图11为图块行列关系示意图。
【具体实施方式】
[0014]下面参照附图所示,通过【具体实施方式】对本发明进一步说明:
实施例1:
一种PLC梯形图矩阵编辑显示方法,所述方法操作过程如下:
I)用特定的文本描述梯形图的所有逻辑关系,如下所示:
LAND {N,
LLDOLib=Iibname,Name=componentnameI, Vers1n=componentvers1n, FBID=funct1ncode?
LLDOLib=Iibname,Name=componentname2,Vers1n=componentvers1n,FBID=funct1ncode?LLDOLib=Iibname,Name=ComponentnameNj Vers1n=componentvers1n, FBID=funct1ncode?}
其中:LAND表示“与”关系,即该大括号里面的所有元素为“与”的关系,LLD表示一个“元件”,Lib表示所属功能库,Name表示元件名称,Vers1n表示元件版本,FBID表示元件功能码。网络的文本表示方法,可读性强,逻辑关系清晰明了。
[0015]2)将上述的文本转化成图块,“图块”是梯形图中能够完成一定功能,且具有层次性和确定逻辑关系的一组元件的集合。
[0016]一个网络由多个图块组成,网络本身也是一个图块,特定的文本转化成的图块包含了以下信息:
图块的坐标:x,Y ; 图块的宽高:w,H ;
图块的功能码:触点、线圈、功能模块或者是这几种模块的逻辑组合;
图块与其他图块的逻辑关系:“与”逻辑、“或”逻辑;
3)编辑时根据逻辑关系更改文本描述,画图时根据图块的信息将该图块显示到编程工具的图像显示区,根据特定的文本描述的逻辑关系,将所有图块显示出来即完成了 LDD梯形图的显示,然后更新显示即可完成LDD梯形图的编辑。
[0017]实施例2:
如图1-5所示,在实施例1的基础上,本实施例所述图块类型分为:元件图块、与图块、或图块和混杂图块,其中:
元件图块,是一个单独的元件,元件图块是“与图块”或“或图块”的特例,也是其分支,在本发明中,元件图块既不是与图块也不是或图块;