[发明专利]一种图形语言程序的有序分解方法及有序分解器有效
申请号: | 201110394931.0 | 申请日: | 2011-12-02 |
公开(公告)号: | CN102508691A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 刘立忠;施波;刘小树 | 申请(专利权)人: | 北京和利时系统工程有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;王漪 |
地址: | 100096 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 图形 语言 程序 有序 分解 方法 | ||
技术领域
本发明涉及工业控制领域,尤其涉及一种图形语言程序的有序分解方法及有序分解器。
背景技术
在工业控制领域中,典型的可编程控制系统(如PLC或DCS)都支持工程师通过逻辑编程或组态对被控对象进行控制;典型的可编程控制系统的结构如图1所示,包括上位机(也称工程师站)和下位机(也称控制站)部分,控制站通过IO模块和工业仪表相连,工程师可以在工程师站采用IEC组态软件进行逻辑编程,这些程序一般就是对被控对象的控制算法。可以应用此类可编程控制系统的工业现场以及被控对象数量和种类繁多,此处不一一列举。
一般来说,此类可编程控制系统的工程师站或上位机,都应包含一个支持用户进行逻辑编程和编译的系统,这个编译系统一般称之为组态软件或IEC编程器,本文中简称为“编程器”,而工程师可以用来进行逻辑编程的语言包括很多种:ST,C,LD,FBD,CFC,SFC,IL,因果表……等等。例如IEC61131标准列举了一些组态语言规范,如IL,ST,LD,FBD,SFC等。不同于一般的软件行业,这些编程语言既有文本语言(ST,C,IL等等),也有图形语言(LD,FBD,CFC,SFC等等)。在图形语言中,按照各个图形元素的顺序关系特点,又可分为:
(一)计算顺序明确的图形语言(如LD,SFC等);
(二)可能有多种计算顺序的图形类语言(如FBD,CFC)。
对于第二种图形类语言,图形结构可能会很复杂,给编译和其他处理带来难度,需要以编译为目标进行结构分析。另一方面,由于顺序不明确,一般需要人为指定顺序或自动排序与人为指定相结合,那么编译的结果就会不确定;而且由于图形类语言一般较大,编译时复杂度较高,花费时间较长,编译效率会比较低。
发明内容
本发明要解决的技术问题是如何提高图形类语言的编译效率和准确性。
为了解决上述问题,本发明提供了一种图形语言程序的有序分解方法,包括:
对各网络分别进行下述步骤:
S1、检查该网络中每个块,如果一个块的输入引脚没有连接其它块或没有输入引脚,则将该块设置为起点块;如果一个块符合下述条件之一,则将该块设置为终点块:输出引脚没有连接其它块或没有输出引脚;某个输出引脚连接的块的个数大于1;输出引脚的个数大于1;连接在输出引脚个数大于1的块的输入引脚上;
S2、对于该网络中的每个终点块,分别进行下述处理:将该终点块作为当前块,建立当前子图,然后执行步骤S21~S23,直到该终点块处理完成;
S21、依次检查当前块的各输入连接块,如果一个输入连接块既不是起点块也不是终点块,则进行步骤S22;如果一个输入连接块是终点块,则设置该输入连接块处理完成;如果一个输入连接块是起点块,则将该输入连接块设置为属于当前子图,并且设置该输入连接块处理完成;如果当前块的输入连接块都已处理完成,则进行步骤S23;
S22、将该输入连接块设置为当前块,返回步骤S21;
S23、设置当前块属于当前子图;判断当前块是否为终点块,如果不是终点块,则将该当前块设置为处理完成,然后将其输出连接块作为当前块,返回步骤S21;如果是终点块,则该终点块处理完成。
进一步地,所述步骤S1前还包括步骤:
S0、检查该网络是否满足以下条件,如果满足则进行步骤S1,否则不对该网络进行后续处理:
该网络内的任意两个块直接或间接被线连接到一起;
该网络内不存在环;
各线的两端为块;
块的每个输入引脚的连线条数小于或等于1;
各输出块在几何位置上可以区别。
进一步地,所述的方法还包括:
对各网络分别进行步骤S3:
S3、设置计数器的初始值;对于该网络中的每个输出块,按照预定顺序依次分别进行下述处理:将该输出块作为当前块,然后进行步骤S31~ S33,直到该输出块处理完成:
S31、检查当前块是否存在未获得顺序号的输入连接块,如果存在,则将当前块标记为“遍历中”,然后进入步骤S32;如果不存在则进行步骤S33;
S32、依次将该当前块的一个没有获得顺序号的输入连接块作为当前块,返回步骤S31;
S33、将计数器当前的值作为顺序号分配给当前块,将计数器的值加1,如果当前块有“遍历中”的标记则取消;判断当前块是否为输出块,如果当前块不是输出块,则将当前块的标记为“遍历中”的输出连接块作为当前块,返回步骤S31;如果是输出块,则该输出块处理完成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京和利时系统工程有限公司,未经北京和利时系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110394931.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种减少段彩竹节纱毛羽的装置
- 下一篇:一种陀螺式瓶起子