CN109857393B - 顺序控制图的可视化实现方法、装置及存储介质 - Google Patents

顺序控制图的可视化实现方法、装置及存储介质 Download PDF

Info

Publication number
CN109857393B
CN109857393B CN201910098190.8A CN201910098190A CN109857393B CN 109857393 B CN109857393 B CN 109857393B CN 201910098190 A CN201910098190 A CN 201910098190A CN 109857393 B CN109857393 B CN 109857393B
Authority
CN
China
Prior art keywords
sequence
control chart
sequence control
page
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910098190.8A
Other languages
English (en)
Other versions
CN109857393A (zh
Inventor
陈宏君
文继锋
刘克金
刘坤
谭良良
徐睿
曾凯
谭林丰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NR Electric Co Ltd
NR Engineering Co Ltd
Original Assignee
NR Electric Co Ltd
NR Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NR Electric Co Ltd, NR Engineering Co Ltd filed Critical NR Electric Co Ltd
Priority to CN201910098190.8A priority Critical patent/CN109857393B/zh
Publication of CN109857393A publication Critical patent/CN109857393A/zh
Application granted granted Critical
Publication of CN109857393B publication Critical patent/CN109857393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例提供的一种顺序控制图的可视化实现方法、装置及存储介质,包括:读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码;读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件。

Description

顺序控制图的可视化实现方法、装置及存储介质
技术领域
本发明涉及可视化编程领域,尤其涉及一种顺序控制图的可视化实现方法、装置及存储介质。
背景技术
顺序控制图是针对顺序控制系统的控制条件和过程提出的一套表示逻辑控制功能的方法,该方法精确严密,有利于设计人员和专业用户之间的沟通和交流,降低大型图形化程序的复杂度。但基于IEC61131-3标准的顺序控制图通常转换为结构化文本解释型语言,其执行效率无法满足直流控制保护的实时性要求。
发明内容
有鉴于此,本发明实施例希望提供一种顺序控制图的可视化实现方法、装置及存储介质,能够提高嵌入式装置运行效率。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种顺序控制图的可视化实现方法,所述方法包括:读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述顺序控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码;读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件。
其中,所述for语句架构包括两个for语句结构,所述基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码,包括:采用第一个for语句结构形成所述每一操作步骤的活动状态对应的代码;采用第二个for语句结构形成所述相邻两个操作步骤之间的转换条件对应的代码;其中,所述第一个for语句结构用于实现一个任务周期内所述操作步骤的执行,所述第二个for语句结构用于实现一个任务周期内所述操作步骤之间的状态切换。
其中,所述基于for语句架构和所述数据关系输出与所述顺序控制图页面对应的第一代码之前,还包括:对所述属性运算表达式进行规则检测和初始化设置。
其中,所述图符号序列中每个图符号关联一个python脚本,所述对所述属性运算表达式进行规则检测和初始化设置,包括:采用执行脚本方式实现对所述属性运算表达式进行规则检测和初始化设置。
其中,所述图符号序列由如下至少其中之一的图符号构成:初始步符号、步符号、动作符号、连接线、转换符号、选择分支序列符号、选择合并序列符号、并行分支序列符号、并行合并序列符号、跨页面连接符号。
其中,所述基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码之后,还包括:将所述第一代码封装为第一任务函数,并执行所述第一任务函数;所述执行所述第一任务函数包括:判断当前一图符号序列中的当前操作步骤的活动状态,若是活动步,则判断相邻两个操作步骤之间的转换条件,若是非活动步,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;若所述转换条件成立,则进行步的转换,若所述转换条件不成立,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;其中,所述第一任务函数首次执行时对应的图符号序列的初始操作步骤的活动状态为活动步。
其中,所述读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码之后,还包括:将所述第二代码封装为第二任务函数,根据所述图符号序列中的动作符号与每一所述普通功能图页面的对应关系,在所述顺序控制图页面中通过所述动作符号调用所述第二任务函数。
其中,所述在所述顺序控制图页面中通过所述动作符号调用所述第二任务函数,包括:分析所述图符号序列中每一所述图符号的连接线以及与所述连接线对应的另一图符号,确定所述图符号之间的连接关系;以所述图符号序列中的初始步符号为起始图符号,根据所述图符号之间的连接关系,采用深度优先遍历算法形成所述图符号的调用顺序。
本发明实施例提供了一种顺序控制图的可视化实现装置,包括:第一读取模块,用于读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码;第二读取模块,用于读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;编译模块,用于对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件。
本发明实施例提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本发明任一实施例所提供的顺序控制图的可视化实现方法。
本发明实施例所提供的一种顺序控制图的可视化实现方法、装置及存储介质,包括:读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码;如此,将顺序控制图页面采用for语句架构转换为高效的C代码,进一步读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件,如此,形成的嵌入式装置的可执行程序,解决了基于结构化文本解释执行效率不够高的问题,提高嵌入式装置运行效率,满足了直流控制保护、工业过程控制等实时性要求高的应用场景。
附图说明
图1为本发明一实施例提供的顺序控制图的可视化实现方法的流程示意图;
图2为为本发明一实施例提供的图序列符号的图符号的图形原型图;
图3为本发明一实施例提供的单序列上下文连接示意图;
图4为本发明一实施例提供的选择分支序列上下文连接示意图;
图5为本发明一实施例提供的选择合并序列上下文连接示意图;
图6为本发明一实施例提供的并行分支序列上下文连接示意图;
图7为本发明一实施例提供的并行合并序列上下文连接示意图;
图8为本发明一实施例提供的冲压机顺序控制图的示意图;
图9为为本发明一实施例提供的顺序控制图的可视化实现装置的结构示意图;
图10为本发明一实施例提供的计算机设备的结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明一实施例提供了一种顺序控制图的可视化实现方法,该方法包括如下步骤:
步骤S101:读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;
这里,读取顺序控制图页面之前,用户先采用标准的函数和/或功能块绘制若干普通功能图页面,采用顺序控制图的图符号序列绘制顺序控制图页面;需要说明的是,这里的函数、功能块、顺序控制图页面的图符号序列符合IEC61131-3标准。
这里,每一操作步骤的活动状态包括该操作步骤为活动步或者非活动步;满足转换条件是指系统满足转换条件连接的两个操作步骤中,从当前活动步通过满足转换条件,转换后,到达对应的与之相连的另一个操作步骤。这里,一个顺序控制图页面中可以有多个图符号序列,每一图符号序列对应有操作步骤和两个操作步骤之间的转换条件。
步骤S102:基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码;
在可视化编程工具中,根据读取的属性运算表达式对应的控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件,基于for语句架构,调用代码生成工具,输出对应的第一代码。
这里,for语句是C语言中的一种循环语句。
步骤S103:读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;
这里,符合IEC61131-3标准的函数,例如AND、OR;功能块,例如SR、RS。
在可视化编程工具中,基于所述普通功能图页面的函数和/或功能块,调用代码生成工具,输出对应的第二代码。
步骤S104:对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件。
对所述第一代码和所述第二代码进行交叉编译是指根据据嵌入式装置使用的CPU/DSP类型,自动形成Makefile文件,调用配套的交叉编译器,例如powerpc-linux-gcc等,编译形成二进制目标文件得到对应的二进制目标文件。
本发明实施例提供一种顺序控制图的可视化实现方法,读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码;如此,将顺序控制图页面采用for语句架构转换为高效的C代码,进一步读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件,如此,形成的嵌入式装置的可执行程序,解决了基于结构化文本解释执行效率不够高的问题,提高嵌入式装置运行效率,满足了直流控制保护、工业过程控制等实时性要求高的应用场景。
在一实施方式中,所述for语句架构包括两个for语句结构,所述基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码,包括:
采用第一个for语句结构形成所述每一操作步骤的活动状态对应的代码;采用第二个for语句结构形成所述相邻两个操作步骤之间的转换条件对应的代码;其中,所述第一个for语句结构用于实现一个任务周期内所述操作步骤的执行,所述第二个for语句结构用于实现一个任务周期内所述操作步骤之间的状态切换。
在上述实施方式中,通过采用for语句架构中两个for语句架构,第一个for语句结构用于实现一个任务周期内所述操作步骤的执行,第二个for语句结构用于实现一个任务周期内所述操作步骤之间的状态切换。如此,实现了一个任务周期内完成操作步骤的执行和操作步骤之间的状态切换的处理,提高了嵌入式装置的运行效率。
在一实施方式中,所述基于for语句架构和所述数据关系输出与所述顺序控制图页面对应的第一代码之前,还包括:
对所述属性运算表达式进行规则检测和初始化设置。
这里,属性运算表达式中,是维持着操作步骤和转换条件、转换条件和操作步骤的相互更迭。因此,规则检测包括:
a)两个操作步骤不应直接连接,需由一个转换条件与之相连接;
b)两个转换条件不应直接相连接,需由一个操作步骤分隔;
c)操作步骤的演变从初始步开始,初始步在程序执行开始时应是活动步,任何与初始步结合的动作最先执行;
d)操作步骤的演变过程中,操作步骤的后继转换条件满足,当该转换是使能转换时,就发生转换的实现;即该转换的所有前级步从活动步变为非活动步,而该转换的所有后级步从非活动步变位活动步;
e)与操作步骤结合的动作控制块只有在操作步骤是活动步时才被执行,动作的执行根据动作控制功能块的输出决定,当输出为真(即值为1)时,这些动作执行。这里,动作控制块可以是普通功能图页面对应的某一个页面;
f)在动作的执行过程中,对后续转换条件进行求值,当转换条件满足时,发生转换的实现,并实现操作步骤的进展,使操作步骤根据顺序控制图页面的程序不断演变;
g)选择图符号序列的分支,有多个转换条件时,是有优先级的,用数字表示优先级,数字越小的优先级最高;当不设置优先级时,转换条件的判别从左到右。
在一实施方式中,所述图符号序列中每个图符号关联一个python脚本,所述对所述属性运算表达式进行规则检测和初始化设置,包括:
采用执行脚本方式实现对所述属性运算表达式进行规则检测和初始化设置。
这里,所述图符号序列中每个图符号关联一个python脚本,所述规则检测通过调用图符号对应的python脚本实现,作为一种示意性的可选的具体实现方式,以选择分支符号为例,其规则检测脚本片断如下:
Figure BDA0001964996690000071
Figure BDA0001964996690000081
在上述实施方式中,对属性运算表达式进行规则检测和初始化设置,保证了顺序控制图页面的操作步骤和转换条件符合相关规则,保证了后续用for语句架构生成第一代码的准确性。
在一实施方式中,所述图符号序列由如下至少其中之一的图符号构成:
初始步符号、步符号、动作符号、连接线、转换符号、选择分支序列符号、选择合并序列符号、并行分支序列符号、并行合并序列符号、跨页面连接符号。
作为一种示意性的可选的具体实现方式,参见表1,提供了初始步符号、步符号、动作符号的属性和接口的信息,参见图2,其中(a)为初始步符号,(b)为步符号,(c)为动作符号。
Figure BDA0001964996690000091
表1
参见表2,提供了转换符号、选择分支序列符号、选择合并序列符号、并行分支序列符号、并行合并序列符号、跨页面连接符号的属性和接口信息,请再次参阅图2,其中(d)为转换符号,(e)为选择分支序列符号,(f)为选择合并序列符号,(g)为并行分支序列符号,(h)为并行合并序列符号,(i)为跨页面连接符号。
Figure BDA0001964996690000101
Figure BDA0001964996690000111
表2
在一实施方式中,所述基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码之后,还包括:
将所述第一代码封装为第一任务函数,并执行所述第一任务函数;所述执行所述第一任务函数包括:判断当前一图符号序列中的当前操作步骤的活动状态,若是活动步,则判断相邻两个操作步骤之间的转换条件,若是非活动步,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;若所述转换条件成立,则进行步的转换,若所述转换条件不成立,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;其中,所述第一任务函数首次执行时对应的图符号序列的初始操作步骤的活动状态为活动步。
具体地,图符号序列包括单序列、选择分支序列、选择合并序列、并行分支序列、并行合并序列,作为一种示意性的可选的具体实现方式,所述单序列、选择分支序列、选择合并序列、并行分支序列、并行合并序列分别对应的转换伪代码如下:
a)单序列,如图3所示,其转换伪代码为:
Figure BDA0001964996690000112
只有S3是活动步(S3=1),并且转换条件B=1,才发生S3到S4的进展。转换实现后,S3成为非活动步,S4成为活动步。当S4是活动步时,并且转换条件C=1,才发生S4到S5的进展。转换实现后,S4为非活动步,S5成为活动步。
b)选择分支序列,如图4所示,其转换伪代码为:
Figure BDA0001964996690000121
如果S6是活动步(S6=1),并且转换条件D=1,发生S6到S7的进展。转换实现后,S6成为非活动步,S7成为活动步。
如果S6是活动步(S6=1),并且转换条件D=0,E=1则发生S6到S8的进展。转换实现后,S6成为非活动步,S8成为活动步。选择序列的条件D、E不能同时为真。
c)选择合并序列,如图5所示,其转换伪代码为:
Figure BDA0001964996690000122
Figure BDA0001964996690000131
如果S9是活动步,并且转换条件F=1,发生S9到S11的进展。转换实现后,S9成为非活动步,S11成为活动步。
如果S10是活动步,并且转换条件G=1,则发生S10到S11的进展。转换实现后,S10成为非活动步,S11成为活动步。
d)并行分支序列,如图6所示,其转换伪代码为:
Figure BDA0001964996690000132
如果S6是活动步,并且转换条件H=1,同时发生S6到S7、S6到S8进展。转换实现后,S6成为非活动步,S7、S8都成为活动步。
e)并行合并序列,如图7所示,其转换伪代码为:
Figure BDA0001964996690000133
如果S9、S11都是活动步,并且转换条件M=1,则发生S9、S10到S11的进展,转换后S9、S10都成为非活动步,S11成为活动步。
具体地,顺序控制图页面的第一任务函数伪代码如下:分动作执行和状态切换两段。
Figure BDA0001964996690000134
Figure BDA0001964996690000141
在本申请上述实施方式中,第一个for语句结构用于实现一个任务周期内所述操作步骤的执行,第二个for语句结构用于实现一个任务周期内所述操作步骤之间的状态切换。如此,实现了一个任务周期内完成操作步骤的执行和操作步骤之间的状态切换的处理,提高了嵌入式装置的运行效率。
在一实施方式中,所述读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码之后,还包括:
将所述第二代码封装为第二任务函数,根据所述图符号序列中的动作符号与每一所述普通功能图页面的对应关系,在所述顺序控制图页面中通过所述动作符号调用所述第二任务函数。
进一步地,所述在所述顺序控制图页面中通过所述动作符号调用所述第二任务函数,包括:
分析所述图符号序列中每一所述图符号的连接线以及与所述连接线对应的另一图符号,确定所述图符号之间的连接关系;
以所述图符号序列中的初始步符号为起始图符号,根据所述图符号之间的连接关系,采用深度优先遍历算法形成所述图符号的调用顺序。
这里,再次参见表1和表2可知,初始步符号和步符号的输出一端与转换符号连接,另一端与动作符号连接,这里每一动作符号与对应的普通功能图页面连接,当顺序控制图页面进展到对应的操作步骤,通过连接的动作符号对应的普通功能图页面从所述第二任务函数中调用普通功能图页面。
这里,采用深度优先遍历算法形成所述图符号的调用顺序是指根据顺序控制图页面对应的图符号序列,按照从上到下、从左到右的顺序,先判断每个操作步骤是否为活动步,再判断所述转换条件是否成立,实现在对应的操作步骤调用对应的普通功能图页面。
下面以图8为例,一个冲压机顺序控制图对应的代码如下:
Figure BDA0001964996690000151
Figure BDA0001964996690000161
这里,从操作步骤S11初始步开始工作,转换条件为T1,当T1满足条件时,即按复位按钮,则执行操作步骤S12复位步,对应的普通功能图页面为Page2,继续判断转换条件T2是否满足转换条件,当满足转换条件时,即按启动按钮,则执行操作步骤S13冲压步,对应的普通功能图页面为Page3,继续判断转换条件T3是否满足转换条件,当满足转换条件时,即压力开关信号为1,则执行操作步骤S14回复步,对应的普通功能图页面为Page4,继续判断转换条件,当转换条件T5满足条件,即按停止按钮,则继续执行步骤S11初始步;若T5不满足转换条件,则判断T4是否满足转换条件,当T4满足转换条件,即冲压头复位,则继续执行步骤S13冲压步。
在本申请上述实施方式中,通过将程序划分为普通功能图页面和顺序控制图页面,并在顺序控制图页面中通过动作符号调用普通功能图页面,形成的嵌入式装置的可执行程序,解决了基于结构化文本解释执行效率不够高的问题,提高嵌入式装置运行效率。
在另一实施方式中,如图9所示,还提供了一种顺序控制图的可视化实现装置,包括:
第一读取模块21,用于读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码;
第二读取模块22,用于读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;
编译模块23,用于对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件。
在本申请上述实施方式中,读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码;如此,将顺序控制图页面采用for语句架构转换为高效的C代码,进一步读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件,如此,形成的嵌入式装置的可执行程序,解决了基于结构化文本解释执行效率不够高的问题,提高嵌入式装置运行效率,满足了直流控制保护、工业过程控制等实时性要求高的应用场景。
可选地,所述第一读取模块21,还用于采用第一个for语句结构形成所述每一操作步骤的活动状态对应的代码;采用第二个for语句结构形成所述相邻两个操作步骤之间的转换条件对应的代码;其中,所述第一个for语句结构用于实现一个任务周期内所述操作步骤的执行,所述第二个for语句结构用于实现一个任务周期内所述操作步骤之间的状态切换。
可选地,所述第一读取模块21,还用于对所述属性运算表达式进行规则检测和初始化设置。
可选地,所述第一读取模块21,还用于采用执行脚本方式实现对所述属性运算表达式进行规则检测和初始化设置。
可选地,所述第一读取模块21,还用于将所述第一代码封装为第一任务函数,并执行所述第一任务函数;所述执行所述第一任务函数包括:判断当前一图符号序列中的当前操作步骤的活动状态,若是活动步,则判断相邻两个操作步骤之间的转换条件,若是非活动步,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;若所述转换条件成立,则进行步的转换,若所述转换条件不成立,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;其中,所述第一任务函数首次执行时对应的图符号序列的初始操作步骤的活动状态为活动步。
可选地,所述第二读取模块22,还用于将所述第二代码封装为第二任务函数,根据所述图符号序列中的动作符号与每一所述普通功能图页面的对应关系,在所述顺序控制图页面中通过所述动作符号调用所述第二任务函数。
可选地,所述第二读取模块22,还用于分析所述图符号序列中每一所述图符号的连接线以及与所述连接线对应的另一图符号,确定所述图符号之间的连接关系;
以所述图符号序列中的初始步符号为起始图符号,根据所述图符号之间的连接关系,采用深度优先遍历算法形成所述图符号的调用顺序。
在另一实施方式中,如图10所示,还提供了一种计算机存储介质,包括:至少一个处理器210和用于存储能够在处理器210上运行的计算机程序的存储器211;其中,图10中示意的处理器210并非用于指代处理器的个数为一个,而是仅用于指代处理器相对其他器件的位置关系,在实际应用中,处理器的个数可以为一个或多个;同样,图10中示意的存储器211也是同样的含义,即仅用于指代存储器相对其他器件的位置关系,在实际应用中,存储器的个数可以为一个或多个。
其中,所述处理器210用于运行所述计算机程序时,执行如下步骤:
读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述顺序控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码;读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
采用第一个for语句结构形成所述每一操作步骤的活动状态对应的代码;采用第二个for语句结构形成所述相邻两个操作步骤之间的转换条件对应的代码;其中,所述第一个for语句结构用于实现一个任务周期内所述操作步骤的执行,所述第二个for语句结构用于实现一个任务周期内所述操作步骤之间的状态切换。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
对所述属性运算表达式进行规则检测和初始化设置。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
采用执行脚本方式实现对所述属性运算表达式进行规则检测和初始化设置。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
将所述第一代码封装为第一任务函数,并执行所述第一任务函数;所述执行所述第一任务函数包括:判断当前一图符号序列中的当前操作步骤的活动状态,若是活动步,则判断相邻两个操作步骤之间的转换条件,若是非活动步,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;若所述转换条件成立,则进行步的转换,若所述转换条件不成立,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;其中,所述第一任务函数首次执行时对应的图符号序列的初始操作步骤的活动状态为活动步。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
将所述第二代码封装为第二任务函数,根据所述图符号序列中的动作符号与每一所述普通功能图页面的对应关系,在所述顺序控制图页面中通过所述动作符号调用所述第二任务函数。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
分析所述图符号序列中每一所述图符号的连接线以及与所述连接线对应的另一图符号,确定所述图符号之间的连接关系;以所述图符号序列中的初始步符号为起始图符号,根据所述图符号之间的连接关系,采用深度优先遍历算法形成所述图符号的调用顺序。
该计算机存储介质还包括:至少一个网络接口212。发送端中的各个组件通过总线系统213耦合在一起。可理解,总线系统213用于实现这些组件之间的连接通信。总线系统213除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统213。
其中,存储器211可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器211旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器211用于存储各种类型的数据以支持发送端的操作。这些数据的示例包括:用于在发送端上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序,用于实现各种应用业务。这里,实现本发明实施例方法的程序可以包含在应用程序中。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (9)

1.一种顺序控制图的可视化实现方法,其特征在于,所述方法包括:
读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述顺序控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;
基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码,其中,采用第一个for语句结构形成所述每一操作步骤的活动状态对应的代码;采用第二个for语句结构形成所述相邻两个操作步骤之间的转换条件对应的代码;
其中,所述第一个for语句结构用于实现一个任务周期内所述操作步骤的执行,所述第二个for语句结构用于实现一个任务周期内所述操作步骤之间的状态切换;
读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;
对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件。
2.如权利要求1所述的顺序控制图的可视化实现方法,其特征在于,所述基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码之前,还包括:
对所述属性运算表达式进行规则检测和初始化设置。
3.如权利要求2所述的顺序控制图的可视化实现方法,其特征在于,所述图符号序列中每个图符号关联一个python脚本,所述对所述属性运算表达式进行规则检测和初始化设置,包括:
采用执行脚本方式实现对所述属性运算表达式进行规则检测和初始化设置。
4.如权利要求1所述的顺序控制图的可视化实现方法,其特征在于,所述图符号序列由如下至少其中之一的图符号构成:
初始步符号、步符号、动作符号、连接线、转换符号、选择分支序列符号、选择合并序列符号、并行分支序列符号、并行合并序列符号、跨页面连接符号。
5.如权利要求1所述的顺序控制图的可视化实现方法,其特征在于,所述基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码之后,还包括:
将所述第一代码封装为第一任务函数,并执行所述第一任务函数;所述执行所述第一任务函数包括:判断当前一图符号序列中的当前操作步骤的活动状态,若是活动步,则判断相邻两个操作步骤之间的转换条件,若是非活动步,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;若所述转换条件成立,则进行步的转换,若所述转换条件不成立,则跳转至另一图符号序列,执行判断当前操作步骤的活动状态的步骤;其中,所述第一任务函数首次执行时对应的图符号序列的初始操作步骤的活动状态为活动步。
6.如权利要求1所述的顺序控制图的可视化实现方法,其特征在于,所述读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码之后,还包括:
将所述第二代码封装为第二任务函数,根据所述图符号序列中的动作符号与每一所述普通功能图页面的对应关系,在所述顺序控制图页面中通过所述动作符号调用所述第二任务函数。
7.如权利要求6所述的顺序控制图的可视化实现方法,其特征在于,所述在所述顺序控制图页面中通过所述动作符号调用所述第二任务函数,包括:
分析所述图符号序列中每一所述图符号的连接线以及与所述连接线对应的另一图符号,确定所述图符号之间的连接关系;
以所述图符号序列中的初始步符号为起始图符号,根据所述图符号之间的连接关系,采用深度优先遍历算法形成所述图符号的调用顺序。
8.一种顺序控制图的可视化实现装置,其特征在于,包括:
第一读取模块,用于读取顺序控制图页面,基于所述顺序控制图页面中的图符号序列得到所述顺序控制图页面的属性运算表达式;所述属性运算表达式包括针对所述控制图页面所执行的每一操作步骤的活动状态以及相邻两个操作步骤之间的转换条件;基于for语句架构和所述属性运算表达式输出与所述顺序控制图页面对应的第一代码,其中,采用第一个for语句结构形成所述每一操作步骤的活动状态对应的代码;采用第二个for语句结构形成所述相邻两个操作步骤之间的转换条件对应的代码;其中,所述第一个for语句结构用于实现一个任务周期内所述操作步骤的执行,所述第二个for语句结构用于实现一个任务周期内所述操作步骤之间的状态切换;
第二读取模块,用于读取普通功能图页面,形成所述普通功能图页面的函数和/或功能块调用对应的第二代码;
编译模块,用于对所述第一代码和所述第二代码进行交叉编译,得到对应的二进制目标文件。
9.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7中任一项顺序控制图的可视化实现方法。
CN201910098190.8A 2019-01-31 2019-01-31 顺序控制图的可视化实现方法、装置及存储介质 Active CN109857393B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910098190.8A CN109857393B (zh) 2019-01-31 2019-01-31 顺序控制图的可视化实现方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910098190.8A CN109857393B (zh) 2019-01-31 2019-01-31 顺序控制图的可视化实现方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN109857393A CN109857393A (zh) 2019-06-07
CN109857393B true CN109857393B (zh) 2022-03-29

Family

ID=66897254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910098190.8A Active CN109857393B (zh) 2019-01-31 2019-01-31 顺序控制图的可视化实现方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN109857393B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195590A (ja) * 2005-01-11 2006-07-27 Fuji Electric Systems Co Ltd プログラマブル・コントローラ・システム、そのコントローラ、プログラム
CN101135891A (zh) * 2006-09-01 2008-03-05 费舍-柔斯芒特系统股份有限公司 图形编程语言对象编辑及报告工具
CN102609269A (zh) * 2012-02-17 2012-07-25 南京南瑞继保电气有限公司 一种顺序功能图的可视化实现方法
CN104898546A (zh) * 2015-05-06 2015-09-09 浙江中控研究院有限公司 一种基于soc的plc在线调试系统和方法
CN107203380A (zh) * 2017-05-24 2017-09-26 浙江中控技术股份有限公司 一种sfc程序解释运行方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201170857Y (zh) * 2007-08-21 2008-12-24 国电南京自动化股份有限公司 可编程逻辑控制器
US8903520B2 (en) * 2009-04-14 2014-12-02 General Electric Company Method for executing sequential function charts as function blocks in a control system
CN101872184A (zh) * 2010-06-04 2010-10-27 南大傲拓科技江苏有限公司 可编程控制器的顺序控制图编程及控制方法
CN103077064B (zh) * 2012-12-31 2016-03-02 北京配天技术有限公司 一种解析并执行程序语言方法及解释装置
CN108196501A (zh) * 2017-12-22 2018-06-22 北京东土科技股份有限公司 一种基于plc的分布式控制系统的容灾方法、装置和系统
CN108375952A (zh) * 2018-03-08 2018-08-07 山东超越数控电子股份有限公司 一种plc连续功能图编译和解释方法与装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195590A (ja) * 2005-01-11 2006-07-27 Fuji Electric Systems Co Ltd プログラマブル・コントローラ・システム、そのコントローラ、プログラム
CN101135891A (zh) * 2006-09-01 2008-03-05 费舍-柔斯芒特系统股份有限公司 图形编程语言对象编辑及报告工具
CN102609269A (zh) * 2012-02-17 2012-07-25 南京南瑞继保电气有限公司 一种顺序功能图的可视化实现方法
CN104898546A (zh) * 2015-05-06 2015-09-09 浙江中控研究院有限公司 一种基于soc的plc在线调试系统和方法
CN107203380A (zh) * 2017-05-24 2017-09-26 浙江中控技术股份有限公司 一种sfc程序解释运行方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PLC 顺序功能图SFC 编程系统的设计与实现;何敏锋等;《工业控制计算机》;20080325;第21卷(第3期);第78-81页 *
顺序控制图源代码形成方案设计与实现;王国栋等;《计算机技术与发展》;20160218;第149-153页 *

Also Published As

Publication number Publication date
CN109857393A (zh) 2019-06-07

Similar Documents

Publication Publication Date Title
CN110502520B (zh) 一种数据入库的方法、系统、设备及计算机可读存储介质
US11699073B2 (en) Network off-line model processing method, artificial intelligence processing device and related products
US10496423B2 (en) Method for opening up data and functions of terminal application based on reconstruction technology
CN110633959A (zh) 基于图结构的审批任务创建方法、装置、设备及介质
CN104484163A (zh) 一种基于统一建模环境的异构模型转换方法
CN114841323A (zh) 神经网络计算图的处理方法及处理装置
CN109857393B (zh) 顺序控制图的可视化实现方法、装置及存储介质
CN111026604B (zh) 一种日志文件解析方法及装置
CN110018831B (zh) 程序处理方法、装置及计算机可读存储介质
CN110007922B (zh) 基于人工智能的图形化源代码的编译方法、装置和设备
JP2008293186A (ja) 鉄鋼プラント制御プログラムの自動生成方法およびその装置
CN111142871A (zh) 一种前端页面开发系统、方法、设备、介质
CN108132783A (zh) 一种Web App的配置方法及装置
CN110312990A (zh) 配置方法及系统
CN115935909A (zh) 一种文件生成方法、装置及电子设备
CN113238746A (zh) 一种混合编程控制方法、装置、设备及存储介质
CN111708519B (zh) 一种业务组件的处理方法、装置、设备和存储介质
CN104156209A (zh) 跨平台应用界面建模方法及装置
CN114253845A (zh) 异型架构集成体系的自动化测试方法和装置
CN114115850A (zh) 一种代码生成方法及装置
CN112307167A (zh) 文本切句方法、装置、计算机设备和存储介质
CN114416305A (zh) 一种机器人引擎实现方法、系统及电子设备
CN104615458A (zh) 一种基于json数据格式模块加载的方法及系统
CN112130841B (zh) Sql开发方法、装置及终端设备
CN115729530B (zh) 跨系统逻辑语句生成的方法、装置、存储介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant