CN107203380A - 一种sfc程序解释运行方法及装置 - Google Patents

一种sfc程序解释运行方法及装置 Download PDF

Info

Publication number
CN107203380A
CN107203380A CN201710373651.9A CN201710373651A CN107203380A CN 107203380 A CN107203380 A CN 107203380A CN 201710373651 A CN201710373651 A CN 201710373651A CN 107203380 A CN107203380 A CN 107203380A
Authority
CN
China
Prior art keywords
branch
program
target
programs
sfc
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.)
Granted
Application number
CN201710373651.9A
Other languages
English (en)
Other versions
CN107203380B (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.)
Zhejiang Supcon Technology Co Ltd
Original Assignee
Zhejiang Supcon Technology 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 Zhejiang Supcon Technology Co Ltd filed Critical Zhejiang Supcon Technology Co Ltd
Priority to CN201710373651.9A priority Critical patent/CN107203380B/zh
Publication of CN107203380A publication Critical patent/CN107203380A/zh
Application granted granted Critical
Publication of CN107203380B publication Critical patent/CN107203380B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种SFC程序解释运行方法,包括:确定目标SFC程序;遍历所述目标SFC程序,以得到所述目标SFC程序中的所有元素及元素之间的逻辑关系;按照元素之间的逻辑关系依次运行每个元素对应的程序。本申请中无需再将SFC程序编译并下载到控制器执行,因此,本申请中即使工程规模再大,也不需要更多的控制器来支撑,降低工程复杂度的同时,不仅降低了系统维护的复杂度,还降低了工程成本。

Description

一种SFC程序解释运行方法及装置
技术领域
本申请涉及自动控制领域,尤其涉及一种SFC程序解释运行方法及装置。
背景技术
在工业控制领域中,尤其是精细化工行业,工程师在控制物品批量生产时,常采用顺序功能图(Sequeential Function Chart,SFC)程序进行层次化结构设计,这样不但可以满足高度柔性的要求,提高设备的利用率和生产效率,而且能减少新品的面市时间,保证产品质量的一致性,降低维护成本。
目前的SFC程序通常运行于下位机控制器中,现有的控制方法大体上是将编写好的SFC程序先编译成C代码,并再次编译生成二进制bin文件,下载到控制器中执行,例如,将bin文件下载到ECS-700控制系统中,该过程属于编译执行。
但是,随着生产规模的不断扩大,由于单个控制器容量有限,其能够存储的bin文件数量有限,因此能够控制的设备或者程序数量有限,当工程规模较大时,需要多个控制器来共同工作,整个系统的实施工作量大,成本较高,并且,控制器的数量增加也在一定程度上增加了成本,提高了系统维护的复杂度。
发明内容
有鉴于此,本申请提供了一种SFC程序解释运行方法及装置,用以解决现有技术中运行SFC程序需要编译成bin文件,占用控制器容量的技术问题。
本申请提供了一种SFC程序解释运行方法,包括:
确定目标SFC程序;
遍历所述目标SFC程序,以得到所述目标SFC程序中的所有元素及所述元素之间的逻辑关系;
按照所述元素之间的逻辑关系依次运行每个所述元素对应的程序。
上述方法,优选的,遍历所述目标SFC程序,以得到所述目标SFC程序中的所有元素及所述元素之间的逻辑关系,包括:
对所述目标SFC程序进行元素遍历,以确定所述目标SFC程序中的所有元素,所述元素包括步、转换条件、选择分支、选择结点、并行分支以及并行结点
对每个所述元素设置唯一标识,并记录每个所述元素的前置元素的标识和后续元素的标识,以所述标识表示所述元素之间的逻辑关系。
上述方法,优选的,所述元素中的步具有激活位和完成位;
当前步的激活位为第一标记值时表示当前步被激活,当前步的激活位为第二标记值时表示当前步没有被激活;
当前步的完成位第一激活位时表示当前步的程序已运行完成,当前步的完成位为第二标记值时表示当前步的程序还未运行完成。
上述方法,优选的,所述元素包括步、转换条件、选择分支、选择结点、并行分支以及并行结点;
其中,按照所述元素之间的逻辑关系依次运行每个所述元素对应的程序,包括:
确定所述元素中的起始步;
调用所述起始步的程序,并基于所述元素之间的逻辑关系确定所述起始步的后续元素;
如果所述后续元素为转换条件,则在所述转换条件被满足时,确定所述后续元素的后续元素;
如果所述后续元素为选择分支,则基于所述选择分支上元素的逻辑关系,从左到右依次判断,运行第一个满足条件的目标子分支上的每个元素对应的程序,直到所述目标子分支对应的结点的前置元素对应的程序均被运行;
如果所述后续元素为并行分支,则基于所述并行分支上元素的逻辑关系同时运行所述并行分支上每个子分支的每个元素对应的程序,直到每个所述子分支对应的结点的前置元素对应的程序均被运行;
如果所述后续元素为结束步,则程序运行完成。
上述方法,优选的,所述确定所述元素中的起始步骤,包括:
确定所述激活位为第一标记值且所述完成位为第二标记值的元素为起始步。
本申请还提供了一种SFC程序解释运行装置,包括:
目标确定单元,用于确定目标SFC程序;
程序遍历单元,用于遍历所述目标SFC程序,以得到所述目标SFC程序中的所有元素及所述元素之间的逻辑关系;
程序调用单元,用于按照所述元素之间的逻辑关系依次运行每个所述元素对应的程序。
上述装置,优选的,所述程序遍历单元包括:
元素遍历子单元,用于对所述目标SFC程序进行元素遍历,以确定所述目标SFC程序中的所有元素,所述元素包括步、转换条件、选择分支、选择节点、并行分支以及并行节点;
元素编码子单元,用于对每个所述元素设置唯一标识,并记录每个元素的前置元素的标识和后续元素的标识,以所述标识表示所述元素之间的逻辑关系。
上述装置,优选的,所述元素中的步具有激活位和完成位;
当前步的激活位为第一标记值时表示当前步被激活,当前步的激活位为第二标记值时表示当前步没有被激活;
当前步的完成位第一激活位时表示当前步的程序已运行完成,当前步的完成位为第二标记值时表示当前步的程序还未运行完成。
上述装置,优选的,所述元素包括步、转换条件、选择分支、选择节点、并行分支以及并行节点;
其中,所述程序调用单元包括:
起始确定子单元,用于确定所述元素中的起始步;
代码调用子单元,用于调用所述起始步的程序;
后续确定子单元,用于基于所述元素之间的逻辑关系确定所述起始步的后续元素;
转换判断子单元,用于如果所述后续元素为转换条件,则在所述转换条件被满足时,确定所述后续元素的后续元素;
选择分支调用子单元,用于如果所述后续元素为选择分支,则基于所述选择分支上元素的逻辑关系,从左到右依次判断,运行第一个满足条件的上目标子分支上的每个元素对应的程序,直到所述目标子分支对应的结点的前置元素对应的程序均被运行;
并行分支调用子单元,用于如果所述后续元素为并行分支,则基于所述并行分支上元素的逻辑关系同时运行所述并行分支上每个子分支的每个元素对应的程序,直到每个所述子分支对应的结点的前置元素对应的程序均被运行;
结束调用子单元,用于如果所述后续元素为结束步,则程序运行完成。
上述装置,优选的,所述起始确定子单元具体用于:确定所述激活位为第一标记值且所述完成位为第二标记值的元素为起始步。
经由上述的技术方案可知,本申请提供的一种SFC程序解释运行方法及装置,通过对需要运行的目标SFC程序进行遍历,得到目标SFC程序中的元素及元素之间的逻辑关系,进而能够按照元素之间的逻辑关系依次调用所述目标SFC程序中每个元素对应的程序,实现对SFC程序的解释运行,而这一过程中,由上位机基于SFC程序的特点对SFC程序进行解释运行,而无需再将SFC程序编译并下载到下位机控制器执行,因此,本申请中即使工程规模再大,也不需要更多的控制器来支撑,降低工程复杂度的同时,不仅降低了系统维护的复杂度,还降低了工程成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例一提供的一种SFC程序解释运行方法的流程图;
图2为本申请实施例二提供的一种SFC程序解释运行方法的部分流程图;
图3为本申请实施例的应用示例图;
图4为本申请实施例三提供的一种SFC程序解释运行方法的部分流程图;
图5为本申请实施例的另一应用示例图;
图6为本申请实施例四提供的一种SFC程序解释运行装置的结构示意图;
图7为本申请实施例五提供的一种SFC程序解释运行装置的部分结构示意图;
图8为本申请实施例六提供的一种SFC程序解释运行装置的部分结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请实施例一提供的一种SFC程序解释运行方法的实现流程图,适用于对SFC程序进行解释,以便于计算机能够直接运行。本实施例中的方法可以应用在计算机等上位机设备中。
具体的,本实施例中,该方法可以包括以下步骤:
步骤101:确定目标SFC程序。
其中,目标SFC程序是指系统控制器需要运行的程序。
需要说明的是,目标SFC程序可以为一个,也可以为多个,由此,本实施例中可以同时对多个目标SFC程序进行解释运行,以实现并行处理。
步骤102:遍历目标SFC程序,以得到目标SFC程序中的所有元素及元素之间的逻辑关系。
这里的元素可以为SFC程序中的步、转换条件、选择分支、选择结点、并行分支及并行结点等,而选择分支和并行分支中的每个子分支中均可以包含有一个或多个元素,如步、转换条件等。
其中,一个选择分支对应一个选择结点,一个并行分支对应一个并行结点。
本实施例中通过对目标SFC程序中代码的特点,如SFC程序的语法结构,来遍历程序代码,进而得到目标SFC程序中的所有元素及元素之间的逻辑关系。
步骤103:按照元素之间的逻辑关系依次运行目标SFC程序中每个元素对应的程序。
也就是说,本实施例中,计算机等电子设备可以基于SFC程序的语法结构能够识别出SFC程序中逻辑,进而实现对SFC程序的运行。
由上述方案可知,本申请实施例一提供的一种SFC程序解释运行方法,通过对需要运行的目标SFC程序进行遍历,得到目标SFC程序中的元素及元素之间的逻辑关系,进而按照元素之间的逻辑关系依次调用所述目标SFC程序中每个元素对应的程序,实现SFC程序的运行,这一过程中,由上位机基于SFC程序的特点对SFC程序进行解释运行,而无需再将SFC程序编译并下载到下位机控制器执行,因此,本实施例中即使工程规模再大,也不需要更多的控制器来支撑,降低工程复杂度的同时,不仅降低了系统维护的复杂度,还降低了工程成本。
参考图2,为本申请实施例二提供的一种SFC程序解释运行方法中步骤102遍历目标SFC程序的实现流程图,其中,步骤102可以通过以下步骤实现:
步骤201:对目标SFC程序进行元素遍历,以确定目标SFC程序中的所有元素。
也就是说,本实施例对目标SFC程序中的步、转换条件、选择分支、选择结点、并行分支以及并行结点等元素一一进行识别遍历,并识别出这些元素之间的逻辑关系,如前后逻辑、选择逻辑或并行逻辑等。
步骤202:对每个元素设置唯一标识,并记录每个元素的前置元素的标识及后续元素的标识,以这些标识来表示元素之间的逻辑关系。
其中,每个元素的唯一标识能够唯一标识该元素,例如,对每个元素设置唯一标识该元素的身份证(identification,ID),作为每个元素的唯一识别码,来标识元素之间的逻辑关系。
其中,元素中的步具有激活位和完成位,且激活位和完成位分别有两种标记值。其中,步的激活位为第一标记值如1时表示当前步被激活,当前步的激活位为第二标记值如0时表示当前步没有被激活;当前步的完成位为第一标记值如1时表示当前步的程序已运行完成,当前步的完成位为第二标记值如0时表示当前步的程序还未运行完成。
需要说明的是,在SFC程序的运行过程中,当前步的激活位为第一标记值如1且完成位为第二标记值如0时表示当前步被激活且准备运行或正在运行当前步的程序,但程序还未运行完成;而激活位为第二标记值如0且完成位为第一标记值如1时表示当前步的程序已运行完成。
如图3中,本实施例中对步骤001~步骤009、转换条件T1~T9、并行分支、选择分支、选择结点及并行结点分别设置相应的ID,形成这些元素之间的逻辑关系。
参考图4,为本申请实施例三提供的一种SFC程序解释运行方法中步骤103的实现流程图,其中,本实施例在按照元素之间的逻辑关系依次运行每个元素对应的程序时,可以通过以下步骤实现:
步骤401:确定元素中的起始步。
其中,本实施例中可以通过识别元素中步的激活位和完成位的标记值来确定步中的起始步,具体的:本实施例中确定激活位为第一标记值且完成位为第二标记值的步为起始步。
例如,将激活位为1且完成位为0的步确定为起始步。
步骤402:调用起始步的程序,并基于元素之间的逻辑关系确定起始步的后续元素;
步骤403:如果后续元素为转换条件,则在转换条件被满足时,确定后续元素的后续元素;
步骤404:如果后续元素为选择分支,则基于选择分支上元素的逻辑关系,从左到右依次判断,运行第一个满足条件的目标子分支上的每个元素对应的程序,直到目标子分支对应的结点的前置元素对应的程序均被运行。
其中,选择分支中可以包含多个子分支,如果后续元素为选择分支,选择分支中只有一个字分支需要被运行,那么确定选择分支中需要被运行的一个目标子分支,并运行该目标子分支的每个元素对应的程序。
步骤405:如果后续元素为并行分支,则基于并行分支上元素的逻辑关系同时运行并行分支上每个子分支的每个元素对应的程序,直到每个子分支对应的结点的前置元素对应的程序被运行。
其中,并行分支中可以包含多个子分支,如果后续元素为并行分支,则并行分支中的每个子分支均需要被运行。且并行分支上的每个子分支可以同时被调用,进而并行运行每个子分支上的各元素对应的程序。
步骤406:如果后续元素为结束步,则程序运行完成。
具体的,以计算机运行SFC程序为例,对本实施例的具体实现示例进行说明:
遍历得到目标SFC程序的元素,并对每个步元素设置激活位和完成位两个标识位;
在初始状态下,目标SFC程序的起始步的元素的激活位为1,其他步骤的激活位和完成位均为0;
在调度周期内,第一环节是遍历所有步,识别当前激活位为1,且完成为0的步,执行步的程序,在步的程序调用完成时,将完成位设置为1;第二环节是遍历所有步,对激活位为1且完成为1的步骤,尝试激活其后续步骤元素。
首先,计算机根据SFC语法结构或逻辑结构遍历所有元素:
1.对每个元素记录其前置元素ID和后续元素ID;
2.对于分支元素,包含选择分支和并行分支,还记录对应的结点元素ID;
3.对于结点元素,包含选择结点和并行结点,还记录对应的分支元素ID;
4.从起始步开始,获取当前元素的后续元素ID,并从该元素继续向后遍历;
5.对于选择分支,逐一遍历分支,运行第一个满足条件的分支,遇到对应的选择结点则意味着目标分支遍历完成,取得该对应选择结点的后续元素ID,并从该元素继续向后遍历;
6.对于并行分支,逐一遍历分支,遇到对应的并行结点则意味着一个分支遍历完成,至所有分支遍历完成后,取得对应并行结点的后续元素ID,并从该元素继续向后遍历;
7.遇到结束步则返回,标志着整个目标SFC程序的元素遍历完成。
其次,在适当的条件下将已完成的步的激活位复位,如设置为0,将后续步的激活位置1,也可以称为“尝试激活”,如下:
1.对于步元素,若其激活位和完成位均为1,则“尝试激活”其后续步元素。其中,根据SFC语法结构,可以分析出步的后续元素可能是转换条件、选择分支或者并行结点;
2.对于并行分支,若其对应并行结点各个分支的前置步元素的激活位和完成位均为1,则“尝试激活”并行结点后续步元素。其中,根据SFC语法结构,可以分析出并行结点的后续元素必定是转换条件;
3.只需在以上两种情况下进行“尝试激活”。根据上述两种情况,尝试激活环节需要处理转换条件、选择分支以及并行结点三种情况,如下:
a)对于并行结点,直接返回,不做任何尝试激活的处理;
b)对于转换条件,则对其表达式估值,如果成立,则将其前置元素步的激活位置0,称为冻结,并将其后续元素步骤的激活位置1,称为激活;
其中,在冻结过程中,根据SFC语法结构,可以分析出转换条件的前置元素可能是步、并行结点或选择分支。如果是步,则直接将步的激活位置0,如果是并行结点,将并行结点的所有前置步的激活位置0,如果是选择分支,则将选择分支的前置步的激活位置0;
而在激活过程中,根据SFC语法结构,可以分析出转换条件的后续元素可能是步、跳转(转换条件)、并行分支、选择结点、结束步。如果是步(普通步骤),直接将步的激活位置1,如果是跳转,则取得跳转对应的步,并将该步的激活位置1,如果是并行分支,则逐一遍历分支,并将每个分支的起始元素(步)的激活位置1,如果是选择结点,则将选择结点后续的步的激活位置1,如果是结束步,则将程序状态置为运行完成;
c)对于选择分支,各个分支的起始元素必定是转换条件,因此,从左至右逐一遍历转换条件直至第一个成立的转换条件,进入上述b)处理环节。
以图3中SFC程序的逻辑结构为例,以下对本实施例进行说明:
该SFC程序中共含有23个元素(ID为0~22),其中9个步骤,如起始步、普通步,不含结束步,因此具有9位的激活码和9位的完成码,初始状态是激活码的第0位(即对应的起始步骤)为1,其他位均为0,完成码所有位为0。
计算机运行过程如下(为了便于描述和理解,假设每次判断转换条件均能成立),如图5中所示:
1.遍历所有步,判断其激活位为1且完成位为0的步,此时只有起始步满足条件,因此起始步的内部逻辑将被调用,当步内逻辑完成时,将完成位置为1。
2.从起始步001开始遍历整幅SFC程序的元素。
a)首先遇到起始步001,步001的后续元素为T1。
i.当步骤001的激活位和完成位均为1,将尝试激活后续元素。尝试激活环节中,发现步001的后续元素是T1,因此判断转换条件,成立则将步001激活位置0,同时将步002的激活位置1。
b)从T1开始继续遍历,T1的后续元素是步002。
c)遇到步002,步002的后续元素为T2。
i.当步002的激活位和完成位均为1,将尝试激活后续元素。尝试激活环节中,发布步002的后续元素是T2,因此判断转换条件,成立则将步002激活位置0,同时将步003和步005的激活位置1。
d)从T2开始继续遍历,T2的后续元素是并行分支。
e)遇到并行分支,逐一遍历分支,每个分支遇到并行结点返回。
i.并行分支1:
1.遇到步003,步003的后续元素为T3。
a)当步003的激活位和完成位均为1,将尝试激活后续元素。尝试激活环节中,发布步003的后续元素是T3,因此判断转换条件,成立则将步003激活位置0,同时将步004的激活位置1。
2.从T3开始继续遍历,T3的后续元素为步004。
3.遇到步004,步004的后续元素为并行结点,则直接返回。
ii.并行分支2:
1.遇到步005,步005的后续元素为选择分支。
a)当步005的激活位和完成位均为1,将尝试激活后续元素。尝试激活环节中,发布步005的后续元素是选择分支,从左至右逐一遍历转换条件直至第一个成立的转换条件。
i.如果T4满足,则将步005的激活位置0,同时将步006的激活位置1。
ii.如果T4不满足,尝试T5是否满足,如果T5满足,则将步005的激活位置0,同时将步007的激活位置1。
2.遇到选择分支,逐一遍历分支,直到每个分支遇到选择结点返回。
a)选择分支1:
i.从T4开始继续遍历,T4的后续元素是步006。
ii.遇到步006,步006的后续元素是T5。
1.当步006的激活位和完成位均为1,将尝试激活后续元素。尝试激活环节中,发现步006的后续元素是T5,因此判断转换条件,成立则将步006激活位置0,同时将步008的激活位置1。
iii.从T5开始继续遍历,T5的后续元素是选择结点,则返回。
b)选择分支2:
i.从T6开始继续遍历,T6的后续元素是步007。
ii.遇到步007,步007的后续元素是T7。
1.当步007的激活位和完成位均为1,将尝试激活后续元素。尝试激活环节中,发现步007的后续元素是T7,因此判断转换条件,成立则将步007激活位置0,同时将步008的激活位置1。
iii.从T7开始继续遍历,T7的后续元素是选择结点,则返回。
3.通过选择分支,获取选择结点,选择结点的后续元素为步008。
4.遇到步008,步008的后续元素为并行结点,则直接返回。
f)通过并行分支,获取并行结点,并行结点的后续元素为T8。
i.当并行结点的所有前置元素步,都激活且已完成,即步004和步008的激活位和完成位都置1,则尝试激活后续元素。尝试激活环节中,发现并行结点的后续元素是T8,因此判断转换条件,成立则将将步004和步008的激活位置0,同时将步009的激活位置1。
g)从T8开始继续遍历,T8的后续元素是步009。
h)遇到步009,步009的后续元素为T9。
i.当步009的激活位和完成位均为1,将尝试激活后续元素。尝试激活环节中,发现步009的后续元素是T9,因此判断转换条件,成立则将步009激活位置0,同时T9的后续元素为结束步,则当前SFC程序运行完成。
i)从T9开始继续遍历,T9的后续元素是结束步骤,则整个遍历过程结束。
3.遍历所有步,判断其激活位为1且完成位为0的步,并执行步内逻辑,当步内逻辑完成时,将完成位置1。
4.跳转到第2步重复执行,直到当前SFC程序运行完成。
其中,上述执行步内逻辑,是指调用或运行步骤对应的程序。
参考图6,为本申请实施例四提供的一种SFC程序解释运行装置的结构示意图,其中,适用于对SFC程序进行解释,以便于计算机能够直接运行。本实施例中的方法可以应用在计算机等上位机设备中。
具体的,本实施例中,该装置可以包括以下结构:
目标确定单元601,用于确定目标SFC程序。
其中,目标SFC程序是指系统控制器需要运行的程序。
需要说明的是,目标SFC程序可以为一个,也可以为多个,由此,本实施例中可以同时对多个目标SFC程序进行解释运行,以实现并行处理。
程序遍历单元602,用于遍历所述目标SFC程序,以得到所述目标SFC程序中的所有元素及所述元素之间的逻辑关系。
这里的元素可以为SFC程序中的步、转换条件、选择分支、选择结点、并行分支及并行结点等,而选择分支和并行分支中的每个子分支中均可以包含有一个或多个元素,如步、转换条件等。
其中,一个选择分支对应一个选择结点,一个并行分支对应一个并行结点。
本实施例中通过对目标SFC程序中代码的特点,如SFC程序的语法结构,来遍历程序代码,进而得到目标SFC程序中的所有元素及所述元素之间的逻辑关系。
程序调用单元603,用于按照元素之间的逻辑关系依次运行每个元素对应的程序。
也就是说,本实施例中,计算机等电子设备可以基于SFC程序的语法结构能够识别出SFC程序中逻辑,进而实现对SFC程序的运行。
由上述方案可知,本申请实施例四提供的一种SFC程序解释运行装置,通过对需要运行的目标SFC程序进行遍历,得到目标SFC程序中的元素及元素之间的逻辑关系,进而按照元素之间的逻辑关系依次调用所述目标SFC程序中每个元素对应的程序,实现SFC程的运行,这一过程中,由上位机基于SFC程序的特点对SFC程序进行解释运行,而无需再将SFC程序编译并下载到下位机控制器执行,因此,本实施例中即使工程规模再大,也不需要更多的控制器来支撑,降低工程复杂度的同时,不仅降低了系统维护的复杂度,还降低了工程成本。
参考图7,为本申请实施例五提供的一种SFC程序解释运行装置中程序遍历单元602的结构示意图,其中,程序遍历单元602可以通过以下结构实现:
元素遍历子单元701,用于对所述目标SFC程序进行元素遍历,以确定所述目标SFC程序中的所有元素。
所述元素包括步、转换条件、选择分支、选择结点、并行分支以及并行结点等元素。
也就是说,本实施例对目标SFC程序中的步、转换条件、选择分支、选择结点、并行分支以及并行结点等元素一一进行识别遍历,并识别出这些元素之间的逻辑关系,如前后逻辑、选择逻辑或并行逻辑等。
元素编码子单元702,用于每个元素设置唯一标识,并记录每个元素的前置元素的标识及后续元素的标识,以这些标识来表示元素之间的逻辑关系。
其中,每个元素的唯一标识能够唯一标识该元素,例如,对每个元素设置唯一标识该元素的身份证(identification,ID),作为每个元素的唯一识别码,来标识元素之间的逻辑关系。
元素中的步具有激活位和完成位,且激活位和完成位分别有两种标记值。其中,步的激活位为第一标记值如1时表示当前步被激活,当前步的激活位为第二标记值如0时表示当前步没有被激活;当前步的完成位为第一标记值如1时表示当前步的程序已运行完成,当前步的完成位为第二标记值如0时表示当前步的程序还未运行完成。
需要说明的是,在SFC程序的运行过程中,当前步的激活位为第一标记值如1且完成位为第二标记值如0时表示当前步被激活且准备运行或正在运行当前步的程序,但程序还未运行完成;而激活位为第二标记值如0且完成位为第一标记值如1时表示当前步的程序已运行完成。
参考图8,为本申请实施例六提供的一种SFC程序解释运行装置中程序调用单元603的结构示意图,其中,程序调用单元603可以通过以下结构实现:
起始确定子单元801,用于确定所述元素中的起始步。
其中,本实施例中,起始确定子单元801可以通过识别元素中步的激活位和完成位的标记值来确定步中的起始步,具体的:起始确定子单元801确定激活位为第一标记值且完成位为第二标记值的步为起始步。
例如,将激活位为1且完成位为0的步确定为起始步。
代码调用子单元802,用于调用所述起始步的程序;
后续确定子单元803,用于基于所述元素之间的逻辑关系确定所述起始步的后续元素;
转换判断子单元804,用于如果所述后续元素为转换条件,则在所述转换条件被满足时,确定所述后续元素的后续元素;
选择分支调用子单元805,用于如果所述后续元素为选择分支,则基于选择分支上元素的逻辑关系,从左到右依次判断,运行第一个满足条件的目标子分支上的每个元素对应的程序,直到目标子分支对应的结点的前置元素对应的程序均被运行。
其中,选择分支中可以包含多个子分支,如果后续元素为选择分支,选择分支中只有一个字分支需要被运行,那么确定选择分支中需要被运行的一个目标子分支,并运行该目标子分支的每个元素对应的程序。
并行分支调用子单元806,用于如果后续元素为并行分支,则基于并行分支上元素的逻辑关系同时运行并行分支上每个子分支的每个元素对应的程序,直到每个子分支对应的结点的前置元素对应的程序被运行。
其中,并行分支中可以包含多个子分支,如果后续元素为并行分支,则并行分支中的每个子分支均需要被运行。且并行分支上的每个子分支可以同时被调用,进而并行运行每个子分支上的各元素对应的程序。
结束调用子单元807,用于如果所述后续元素为结束步,则程序运行完成。
本实施例的具体实现可以参考前文中相应实施例的描述,此处不再详述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种SFC程序解释运行方法,其特征在于,包括:
确定目标SFC程序;
遍历所述目标SFC程序,以得到所述目标SFC程序中的所有元素及所述元素之间的逻辑关系;
按照所述元素之间的逻辑关系依次运行每个所述元素对应的程序。
2.根据权利要求1所述的方法,其特征在于,遍历所述目标SFC程序,以得到所述目标SFC程序中的所有元素及所述元素之间的逻辑关系,包括:
对所述目标SFC程序进行元素遍历,以确定所述目标SFC程序中的所有元素,所述元素包括步、转换条件、选择分支、选择结点、并行分支以及并行结点;
对每个所述元素设置唯一标识,并记录每个所述元素的前置元素的标识和后续元素的标识,以所述标识表示所述元素之间的逻辑关系。
3.根据权利要求2所述的方法,其特征在于,所述元素中的步具有激活位和完成位;
当前步的激活位为第一标记值时表示当前步被激活,当前步的激活位为第二标记值时表示当前步没有被激活;
当前步的完成位第一激活位时表示当前步的程序已运行完成,当前步的完成位为第二标记值时表示当前步的程序还未运行完成。
4.根据权利要求3所述的方法,其特征在于,所述元素包括步、转换条件、选择分支、选择结点、并行分支以及并行结点;
其中,按照所述元素之间的逻辑关系依次运行每个所述元素对应的程序,包括:
确定所述元素中的起始步;
调用所述起始步的程序,并基于所述元素之间的逻辑关系确定所述起始步的后续元素;
如果所述后续元素为转换条件,则在所述转换条件被满足时,确定所述后续元素的后续元素;
如果所述后续元素为选择分支,则基于所述选择分支上元素的逻辑关系,从左到右依次判断,运行第一个满足条件的目标子分支上的每个元素对应的程序,直到所述目标子分支对应的结点的前置元素对应的程序均被运行;
如果所述后续元素为并行分支,则基于所述并行分支上元素的逻辑关系同时运行所述并行分支上每个子分支的每个元素对应的程序,直到每个所述子分支对应的结点的前置元素对应的程序均被运行;
如果所述后续元素为结束步,则程序运行完成。
5.根据权利要求4所述的方法,其特征在于,所述确定所述元素中的起始步,包括:
确定所述激活位为第一标记值且所述完成位为第二标记值的元素为起始步。
6.一种SFC程序解释运行装置,其特征在于,包括:
目标确定单元,用于确定目标SFC程序;
程序遍历单元,用于遍历所述目标SFC程序,以得到所述目标SFC程序中的所有元素及所述元素之间的逻辑关系;
程序调用单元,用于按照所述元素之间的逻辑关系依次运行每个所述元素对应的程序。
7.根据权利要求6所述的装置,其特征在于,所述程序遍历单元包括:
元素遍历子单元,用于对所述目标SFC程序进行元素遍历,以确定所述目标SFC程序中的所有元素,所述元素包括步、转换条件、选择分支、选择节点、并行分支以及并行节点;
元素编码子单元,用于对每个所述元素设置唯一标识,并记录每个元素的前置元素的标识和后续元素的标识,以所述标识表示所述元素之间的逻辑关系。
8.根据权利要求7所述的装置,其特征在于,所述元素中的步具有激活位和完成位;
当前步的激活位为第一标记值时表示当前步被激活,当前步的激活位为第二标记值时表示当前步没有被激活;
当前步的完成位第一激活位时表示当前步的程序已运行完成,当前步的完成位为第二标记值时表示当前步的程序还未运行完成。
9.根据权利要求8所述的装置,其特征在于,所述元素包括步、转换条件、选择分支、选择节点、并行分支以及并行节点;
其中,所述程序调用单元包括:
起始确定子单元,用于确定所述元素中的起始步;
代码调用子单元,用于调用所述起始步的程序;
后续确定子单元,用于基于所述元素之间的逻辑关系确定所述起始步的后续元素;
转换判断子单元,用于如果所述后续元素为转换条件,则在所述转换条件被满足时,确定所述后续元素的后续元素;
选择分支调用子单元,用于如果所述后续元素为选择分支,则基于所述选择分支上元素的逻辑关系,从左到右依次判断,运行第一个满足条件的目标子分支上的每个元素对应的程序,直到所述目标子分支对应的结点的前置元素对应的程序均被运行;
并行分支调用子单元,用于如果所述后续元素为并行分支,则基于所述并行分支上元素的逻辑关系同时运行所述并行分支上每个子分支的每个元素对应的程序,直到每个所述子分支对应的结点的前置元素对应的程序均被运行;
结束调用子单元,用于如果所述后续元素为结束步,则程序运行完成。
10.根据权利要求9所述的装置,其特征在于,所述起始确定子单元具体用于:确定所述激活位为第一标记值且所述完成位为第二标记值的元素为起始步。
CN201710373651.9A 2017-05-24 2017-05-24 一种sfc程序解释运行方法及装置 Active CN107203380B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710373651.9A CN107203380B (zh) 2017-05-24 2017-05-24 一种sfc程序解释运行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710373651.9A CN107203380B (zh) 2017-05-24 2017-05-24 一种sfc程序解释运行方法及装置

Publications (2)

Publication Number Publication Date
CN107203380A true CN107203380A (zh) 2017-09-26
CN107203380B CN107203380B (zh) 2021-02-19

Family

ID=59905760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710373651.9A Active CN107203380B (zh) 2017-05-24 2017-05-24 一种sfc程序解释运行方法及装置

Country Status (1)

Country Link
CN (1) CN107203380B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857393A (zh) * 2019-01-31 2019-06-07 南京南瑞继保电气有限公司 顺序控制图的可视化实现方法、装置及存储介质
CN112526921A (zh) * 2020-12-15 2021-03-19 湖南戈人自动化科技有限公司 一种功能顺序图表达式编译方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101881951A (zh) * 2009-04-14 2010-11-10 通用电气公司 用于在控制系统中将顺序功能图作为功能块执行的方法
CN102508691A (zh) * 2011-12-02 2012-06-20 北京和利时系统工程有限公司 一种图形语言程序的有序分解方法及有序分解器
CN102609269A (zh) * 2012-02-17 2012-07-25 南京南瑞继保电气有限公司 一种顺序功能图的可视化实现方法
CN103595691A (zh) * 2012-08-14 2014-02-19 阳光凯讯(北京)科技有限公司 Ims网络中一种基于规则的动态业务触发方法
US20140107814A1 (en) * 2007-09-28 2014-04-17 Rockwell Automation Technologies, Inc. Sequential function chart (sfc) online editing without reset
CN103941627A (zh) * 2014-01-08 2014-07-23 东南大学 一种基于plc编程中sfc到梯形图的转换方法
CN105867294A (zh) * 2016-06-01 2016-08-17 华自科技股份有限公司 Plc中顺序控制方法与系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140107814A1 (en) * 2007-09-28 2014-04-17 Rockwell Automation Technologies, Inc. Sequential function chart (sfc) online editing without reset
CN101881951A (zh) * 2009-04-14 2010-11-10 通用电气公司 用于在控制系统中将顺序功能图作为功能块执行的方法
CN102508691A (zh) * 2011-12-02 2012-06-20 北京和利时系统工程有限公司 一种图形语言程序的有序分解方法及有序分解器
CN102609269A (zh) * 2012-02-17 2012-07-25 南京南瑞继保电气有限公司 一种顺序功能图的可视化实现方法
CN103595691A (zh) * 2012-08-14 2014-02-19 阳光凯讯(北京)科技有限公司 Ims网络中一种基于规则的动态业务触发方法
CN103941627A (zh) * 2014-01-08 2014-07-23 东南大学 一种基于plc编程中sfc到梯形图的转换方法
CN105867294A (zh) * 2016-06-01 2016-08-17 华自科技股份有限公司 Plc中顺序控制方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李强等: ""嵌入式PLC中顺序功能图向AOV的映射"", 《控制工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857393A (zh) * 2019-01-31 2019-06-07 南京南瑞继保电气有限公司 顺序控制图的可视化实现方法、装置及存储介质
CN109857393B (zh) * 2019-01-31 2022-03-29 南京南瑞继保电气有限公司 顺序控制图的可视化实现方法、装置及存储介质
CN112526921A (zh) * 2020-12-15 2021-03-19 湖南戈人自动化科技有限公司 一种功能顺序图表达式编译方法

Also Published As

Publication number Publication date
CN107203380B (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
CN108846630B (zh) 一种资源控制系统及方法
CN106737676B (zh) 一种基于脚本可二次开发的工业机器人编程系统
CN106648681A (zh) 一种可编程语言编译装载系统及方法
CN103538069B (zh) 一种机器人的控制方法以及装置与系统
CN105955726A (zh) 一种控制逻辑及其可视化图形编程方法
CN103713933B (zh) 计算机程序中热点函数、变量的汇聚方法、装置及系统
CN103324173A (zh) 基于中间件的多异构机器人协作方法
CN109318225A (zh) 用于控制码垛机器人的方法、装置及系统
CN102855135A (zh) 一种图形构件化传感网开发平台及方法
CN101369235A (zh) 程序转换装置以及编译程序
CN110334919B (zh) 一种生产线资源匹配方法及装置
CN107203380A (zh) 一种sfc程序解释运行方法及装置
CN106182008A (zh) 多机器人的控制系统及方法
CN110815231A (zh) 机器人控制方法和装置
CN101980546B (zh) 智能网平台、业务执行方法和分析业务异常的方法
CN110737439B (zh) 基于规则文件的设备控制系统及方法
CN109934507A (zh) 一种业务流程调度的方法及装置
CN115469894A (zh) 一种应用程序的安装控制方法、装置、设备及存储介质
CN102929853A (zh) 基于Excel表单关联的DCS项目数据生成系统和方法
CN102214103A (zh) 以功能单元为基础的任务程序的创建和执行方法及系统
CN107340995A (zh) 一种牵引控制应用软件开发系统
CN111399829B (zh) 一种基于模型驱动的波形建模方法及终端
CN102063333A (zh) 一种递归结构工作流模型及其调度方法
CN112487092A (zh) 一种基于区块链的智能合约调用方法及装置
CN113671924B (zh) Dcs实时值置值方法和系统、设备及存储介质

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