掌桥专利:专业的专利平台
掌桥专利
首页

一种功能顺序图表达式编译方法

文献发布时间:2023-06-19 10:19:37


一种功能顺序图表达式编译方法

技术领域

本发明涉及可编程逻辑控制器领域,具体为一种功能顺序图表达式编译方法。

背景技术

IEC61131-3标准中定义的SFC(Sequential Function Chart)语言是一种描述控制系统的控制过程、功能和特性的状态转移图语言,主要由步、有向连线、转换条件和动作(或命令)组成。它具有简单、直观等特点,利用这种编程方法能够较容易地编写复杂的书序控制程序,从而提高工作效率,对于程序调试也极为方便。然而编译SFC图常规的方法是将其转换成等效的梯形图,此时,如果继续编译生成的梯形图则会出现大量的分支跳转。申请号201410009324.1的中国发明专利申请提出了一种基于PLC编程中SFC到梯形图的转换方法,然而,此方法实现过于繁琐,编译效果很差。本发明提出一种基于表达式的编译法,直接将SFC转换成逻辑表达式,进而编译成PLC控制器运行的目标代码。

发明内容

一种功能顺序图表达式编译方法,具体包括以下步骤:

S1:逐步进点扫描功能顺序图,查找与步进点连接的转换条件,以及切换的目标步进点生成状态切换的表达式;

S2:根据S1生成状态切换的表达式生成不含跳转分支的等效的逻辑表达式;

S3:编译器根据S2生成的逻辑表达式生成可执行的目标代码或者生成梯形图。

与现有技术相比,本发明的有益效果:本发明结构科学合理,使用安全方便,本发明科学合理,计算简单,易于计算机实现。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明的SFC图;

图2为本发明的流程框图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

实施例:如图1-2所示,本发明提供技术方案:功能顺序图表达式编译方法,具体包括以下步骤:

S1:逐步进点扫描功能顺序图,查找与步进点连接的转换条件,以及切换的目标步进点生成状态切换的表达式;本实施例得到的状态切换表达式为:

SFC#1,SM0.1%S0.0;

SFC S0.0,I0.0&%S0.1&%S0.2;

SFC S0.1,I0.1%S0.3;

SFC S0.2,I0.2%S1.0,I0.3%S1.1;

SFC S0.3&,I1.0%S0.0;;

SFC S1.0,I0.5%S0.4;

SFC S1.1,I0.4%S0.4;

SFC S0.4&,I1.0%S0.0;

其中标记符&表示分支,SFC为表达式开头,紧随其后的为步进点,%之前的转换条件,%之后的为目标步进点;

S2:根据S1生成状态切换的表达式生成逻辑表达式,按现有的方法,如申请号201410009324.1中国专利的转换方法,实质上是通过判断步进点的状态,如果=1,则判断转换条件,如果=1,则步进点转换成0,下一步进点=1;这种需要梯形图能流的模式,大大降低了运行效率,但是如果将这种状态切换,以逻辑表达式的方式实现,则大大简化了编译过程,提升了运行效率;

逻辑表达式的原理如下:

假设状态切换表达式为SFC S0.1,I0.1%S0.3,其含义是当I0.1=1时,若S0.1=1,则S0.3=1,S0.1=0,从而实现了步进S0.1到S0.3的切换,实现切换的逻辑表达式为S0.3=S0.1&&I0.1;S0.1=!S0.3&&S0.1;

由于编译上面两个逻辑表达式的难度远远低于编译梯形图,因此达到了本发明的目标;

对于SFC中出现的分散流控制,即一个步进点同时跳转至多个步进点,如SFCS0.0,I0.0&%S0.1&%S0.2;实现切换的逻辑表达式为S0.1=S0.0&&I0.0;S0.2=S0.1;S0.0=!S0.2&&S0.0;

对于SFC中出现的合并流控制,即多个步进点同时满足跳转条件跳转至新步进点,如:

SFC S0.3&,I1.0%S0.0;SFC S0.4&,I1.0%S0.0;实现切换的逻辑表达式为S0.0=S0.3&&S0.4&&I1.0;S0.3=!S0.0&&S0.3;S0.4=S0.3;

对于SFC中出现的控制流分支,即步进点根据跳转条件跳转至分支步进点,如:SFCS0.2,I0.2%S1.0,I0.3%S1.1;实现切换的逻辑表达式为S1.0=S0.2&&I0.2;S0.2=!S1.0&&S0.2;S1.1=S0.2&&I0.3;S0.2=!S1.1&&S0.2;

对于SFC中出现的控制流汇合,即步进点根据跳转条件跳转至分支步进点,如:SFCS1.0,I0.5%S0.4;SFC S1.1,I0.4%S0.4;实现切换的逻辑表达式为S0.4=S1.0&&I0.5;S1.0=!S0.4&&S1.0;S0.4=S1.1&&I0.4;S1.1=!S0.4&&S1.1;

S3:编译器根据s2生成的逻辑表达式生成可执行的目标代码或者生成梯形图。

本发明结构科学合理,使用安全方便,本发明科学合理,计算简单,易于计算机实现。

最后应说明的是:以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种功能顺序图表达式编译方法
  • 一种基于模板语言及其编译器的编辑正则表达式的方法
技术分类

06120112503411