CN102609269B - 一种顺序功能图的可视化实现方法 - Google Patents
一种顺序功能图的可视化实现方法 Download PDFInfo
- Publication number
- CN102609269B CN102609269B CN201210036915.9A CN201210036915A CN102609269B CN 102609269 B CN102609269 B CN 102609269B CN 201210036915 A CN201210036915 A CN 201210036915A CN 102609269 B CN102609269 B CN 102609269B
- Authority
- CN
- China
- Prior art keywords
- page
- piece
- state
- switch
- function
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000000007 visual effect Effects 0.000 title claims abstract description 17
- 230000009471 action Effects 0.000 claims abstract description 9
- 238000004808 supercritical fluid chromatography Methods 0.000 claims description 28
- 238000010586 diagram Methods 0.000 claims description 21
- 238000012546 transfer Methods 0.000 claims description 14
- 238000013461 design Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000007689 inspection Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000013517 stratification Methods 0.000 claims description 2
- 230000007704 transition Effects 0.000 description 5
- 238000012800 visualization Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种顺序功能图的可视化实现方法,包括如下两部分:第一部分,设计双switch-case顺序功能图的代码生成模式,第一个switch结构更新状态变量的值,第二个switch结构根据新的状态变量,运行相应的控制执行函数,在同一个运行周期内完成状态切换和动作执行;第二部分,调用顺序功能图代码生成工具,进行规则检查,输出代码。此种方法通过页面类型分类和概念规则定义,清晰地组织可视化程序;通过双switch-case的代码生成模式,实现一个周期内完成状态切换和执行,提高顺序功能图的运行效率。
Description
技术领域
本发明属于可视化编程领域,具体涉及顺序功能图的可视化实现方法。
背景技术
顺序功能图(SFC)是指用于设计实现某个顺序控制功能或者状态转换功能的图形程序,他将整个控制流程分割为一系列的控制步,并描述出成效的执行顺序和控制条件。顺序功能图的核心组成部分为:
1)一个状态转换变量,根据状态变量的值运行相应执行步页面功能;
2)状态转换控制的规则,通过设计顺序执行控制页面来实现。
顺序功能图的原理如图1所示,相关的术语有状态、事件、转换、动作,下面分别介绍。
状态(State):对象在其生命周期中的一种状况,处于某个特定状态中的对象会满足某些条件,执行某些动作或者等待某些事件。
事件(Event):在时间和空间上占有一定的位置,并且对于状态而言是有意义的事情,事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态,对于顺序功能图元件而言,事件通常指其它元件的输出变量值发生变位。
转换(Transition):是两个状态之间的一种关系,表明对象将在第一个状态中执行一定的动作,并将在满足某个特定条件下进入第二个状态。
动作(Action):指状态机可以执行一些原子操作,在顺序功能图中是运行一个执行步函数。
顺序功能图在工业控制、电力系统领域都有应用,然而已有的顺序功能图实现方法采用1个switch-case的代码生成模式,需要在两个运行周期内完成状态切换和执行功能,无法满足对响应速度要求很高的实时控制应用。
因此,本发明人针对现有的顺序功能图实现方法进行研究改进,本案由此产生。
发明内容
本发明的目的是:提供一种顺序功能图的可视化实现方法,通过页面类型分类和概念规则定义,清晰地组织可视化程序;通过双switch-case的代码生成模式,实现一个周期内完成状态切换和执行,提高顺序功能图的运行效率。
为了达成上述目的,本发明的解决方案是:
一种顺序功能图的可视化实现方法,包括如下两部分:
第一部分,设计双switch-case顺序功能图的代码生成模式,第一个switch结构更新状态变量的值,第二个switch结构根据新的状态变量,运行相应的控制执行函数,在同一个运行周期内完成状态切换和动作执行;
第二部分,调用顺序功能图代码生成工具,进行规则检查,输出代码。
在上述第一部分前,还包括对顺序功能图的可视化页面类型进行定义,将页面类型分为三类:顺序执行控制页面、执行步页面和功能图子页面,顺序执行控制页面是用于设计顺序控制或状态转换的页面,它通过符号块的前后连接关系实现状态规则转换;执行步页面由各种功能块组成计算或逻辑功能,代码生成时将该页面的功能封装成一个函数,供顺序执行控制函数调用;当执行步的页面功能比较复杂时,通过若干功能图子页面进行分解,然后在执行步页面连接子页面的输入输出,实现复杂程序的层次化分解。
上述顺序执行控制页面中用于顺序执行控制的编程符号块包括起始符号块、执行步块、无条件转移块、IF转移条件块、单IF_ELSE块、双IF_ELSE块和SWITCH_CASE块;
其中,起始符号块用于自动形成一个状态机变量,该变量作为功能图中的成员变量,初始化为0;执行步块代表一个执行步页面,对应一个状态,点击后进入相应的功能图设计页面;无条件转移块表示根据上一状态,直接跳转到另外一个状态;IF转移条件块根据某个变量值来决定是否转移或转移到哪一个状态;单IF_ELSE块根据判断变量的值决定执行哪条分支;双IF_ELSE块有三个输出点,需要指定两个条件判断变量;SWITCH_CASE块需要用户设定case的分支数和每个分支的CASE值。
本发明实现了一种顺序功能图的可视化建模方法,将页面分为顺序功能页面、执行步页面、功能图子页面,通过层次模型管理可视化程序,并以双switch-case的代码模式提高了顺序功能图的运行效率。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1是顺序功能图的原理图;
图2是顺序功能图的页面示例图;
图3是对应的等效状态机转换图;
图4是执行步页面对应的可视化程序示例图;
图5是顺序执行控制页面的可视化程序示例图;
图6是各符号块的图形原型图。
具体实施方式
本发明提供一种顺序功能图的可视化实现方法,包括如下三个部分:
第一部分,对顺序功能图的可视化页面类型进行定义,具体是将页面类型分为三类:顺序执行控制页面、执行步页面和功能图子页面,配合图2所示,下面分别介绍。
首先,在图2中总共有3个if条件跳转块,则状态机有3个状态(0、1、2)。初始化时状态值为0。当var0为true时,跳转到第1个状态,当var0为false时,跳转到第2个状态。当var1为true时跳转到第2个状态。当var2为true时跳转到第1个状态。当状态值为1时,运行runPage1,当状态值为2时,运行runPage2。图3表示了图2中顺序执行功能的状态机转换过程。
顺序执行控制页面的规则定义如下:
1)将顺序执行控制页面的功能封装成的一个任务函数,在每个任务周期里执行此任务函数,该函数决定状态跳转的规则;
2)该页面允许存在的符号有起始符号块、执行步块、转移条件块、连接线、输入块、输出块、和跨页面连接符号(指存在多页的情形);
3)该页面的连接线表示执行顺序和状态切换跳转规则;
4)该页面符号的输出连接点只能连接一条连接线,表示只跳转到一个状态,输入连接点可以连接多条连接线,表示可以由不同的其它状态转移到本状态;
5)执行步的后继符号一般为转移块(条件转移和无条件转移),若存在多个执行步顺序串联在一起,则这些执行步视为一个状态;
6)只能有一个起始符号块,并且至少有一个执行步和条件转移块;
7)转移块的后继必须是执行步,IF块和无条件转移块必须有后继符号块。
用于顺序执行控制的编程符号块包括:起始符号块、执行步块、无条件转移块、IF转移条件块、单IF_ELSE块、双IF_ELSE块和SWITCH_CASE块,分别介绍如下:
1)起始符号块:在顺序执行控制页面中,起始符号块用于自动形成一个状态机变量,该变量作为功能图中的成员变量,初始化为0。其图形原型如图6(a)所示。
2)执行步块:代表一个执行步页面,对应一个状态,点击可以进入相应的功能图设计页面。执行步块表示运行该执行步页面的功能函数。
其图形原型如图6(b)所示。
3)无条件转移块:表示根据上一状态,直接跳转到另外一个状态。其代码原型为:
dp->state=new_state;
其图形原型如图6(c)所示。
4)IF转移条件块:根据某个变量值来决定是否转移或转移到哪一个状态。判断变量可以是程序设计页面中的输入变量、输出变量、成员变量。IF块需要指定判断变量名。其代码原型为:
if (dp->var)
{
dp->state=statex;
}
其图形原型如图6(d)所示。
5)单IF_ELSE块:根据判断变量的值决定执行哪条分支。单IF_ELSE对应的代码原型为:
其图型原型如图6(e)所示。
6)双IF_ELSE块:有三个输出点,需要指定两个条件判断变量。其代码原型为:
其图形原型如图6(f)所示。
7)SWITCH_CASE块:需要用户设定case的分支数,和每个分支的CASE值。对应的代码原型为:
其图形根据分支数动态生成如图6(g)所示。
一个执行步页面内的计算逻辑符号组成一个执行函数,供顺序执行控制页面调用。当一个执行步页面功能复杂时,可以通过功能图子页面进行分解,在功能图子页面设计子模块,在父页面进行输入输出连线。其规则如下:
1)可以包含输入块、输出块、参数块、常量块、功能图子块、页面链接符号、连接线、功能函数块等符号;
2)该页面设计的功能相对独立、清晰,允许各功能图页面之间通过页面连接符号进行数据流交换;
3)功能图子页面内不再包含功能图子块符号,只支持一层嵌套关系;
第二部分,设计双switch-case顺序功能图的代码生成模式。
定义状态机变量state,在第1个switch-case语句中,执行各个分支对应条件转移块,在条件转移块中根据跳转判断变量是否为true,设置状态机的状态值。在第2个switch-case语句中,跳转到当前状态,执行对应的页面任务函数。顺序执行页面的双switch-case的代码原型如下:
其中,第1个switch-case语句,根据当前状态机的值,决定运行哪个条件转移块逻辑语句,如果某个条件成立,则进入新的状态。在第2个switch-case语句中,根据新状态的值,决定运行对应的执行步函数,从而实现了在一个运行周期内实现状态切换和动作响应。
在可视化编程工具中创建顺序功能图元件,并新建页面,可新建顺序执行控制页面和若干执行步页面、功能图子页面。在执行步页面中进行计算和逻辑组态,形成若干执行步页面的可视化程序,如图5所示。然后在顺序执行控制页面选择条件跳转符号和执行步,搭建顺序功能状态跳转和执行逻辑,如图6所示。
第三部分,调用顺序功能图代码生成工具,进行规则检查,输出代码。
Claims (2)
1.一种顺序功能图的可视化实现方法,其特征在于:包括如下三部分:
第一部分,对顺序功能图的可视化页面类型进行定义,将页面类型分为三类:顺序执行控制页面、执行步页面和功能图子页面,顺序执行控制页面是用于设计顺序控制或状态转换的页面,它通过符号块的前后连接关系实现状态规则转换;执行步页面由各种功能块组成计算或逻辑功能,代码生成时将该页面的功能封装成一个函数,供顺序执行控制函数调用;当执行步的页面功能比较复杂时,通过若干功能图子页面进行分解,然后在执行步页面连接功能图子页面的输入输出,实现复杂程序的层次化分解;
第二部分,设计双switch-case顺序功能图的代码生成模式,第一个switch-case语句更新状态变量的值,第二个switch-case语句根据新的状态变量,运行相应的控制执行函数,在同一个运行周期内完成状态切换和动作执行;
第三部分,调用顺序功能图代码生成工具,进行规则检查,输出代码。
2.如权利要求1所述的一种顺序功能图的可视化实现方法,其特征在于:所述顺序执行控制页面中用于顺序执行控制的编程符号块包括起始符号块、执行步块、无条件转移块、IF转移条件块、单IF_ELSE块、双IF_ELSE块和SWITCH_CASE块;
其中,起始符号块用于自动形成一个状态机变量,该变量作为功能图中的成员变量,初始化为0;执行步块代表一个执行步页面,对应一个状态,点击后进入相应的功能图设计页面;无条件转移块表示根据上一状态,直接跳转到另外一个状态;IF转移条件块根据某个变量值来决定是否转移或转移到哪一个状态;单IF_ELSE块根据判断变量的值决定执行哪条分支;双IF_ELSE块有三个输出点,需要指定两个条件判断变量;SWITCH_CASE块需要用户设定case的分支数和每个分支的CASE值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210036915.9A CN102609269B (zh) | 2012-02-17 | 2012-02-17 | 一种顺序功能图的可视化实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210036915.9A CN102609269B (zh) | 2012-02-17 | 2012-02-17 | 一种顺序功能图的可视化实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102609269A CN102609269A (zh) | 2012-07-25 |
CN102609269B true CN102609269B (zh) | 2014-11-05 |
Family
ID=46526668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210036915.9A Expired - Fee Related CN102609269B (zh) | 2012-02-17 | 2012-02-17 | 一种顺序功能图的可视化实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102609269B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714468B (zh) * | 2014-12-31 | 2017-10-03 | 北京纵横机电技术开发公司 | 一种连续功能图文件的比较方法 |
CN107203380B (zh) * | 2017-05-24 | 2021-02-19 | 浙江中控技术股份有限公司 | 一种sfc程序解释运行方法及装置 |
CN107357592A (zh) * | 2017-07-27 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种基于状态机机制的事件处理方法及装置 |
CN108375952A (zh) * | 2018-03-08 | 2018-08-07 | 山东超越数控电子股份有限公司 | 一种plc连续功能图编译和解释方法与装置 |
CN109857393B (zh) * | 2019-01-31 | 2022-03-29 | 南京南瑞继保电气有限公司 | 顺序控制图的可视化实现方法、装置及存储介质 |
CN110568808B (zh) * | 2019-09-12 | 2020-10-02 | 烟台东方威思顿电气有限公司 | 电表继电器控制方法 |
CN114115840B (zh) * | 2021-11-10 | 2024-04-23 | 中国核动力研究设计院 | 用于核电站dcs系统应用软件的变量跳转方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101881951A (zh) * | 2009-04-14 | 2010-11-10 | 通用电气公司 | 用于在控制系统中将顺序功能图作为功能块执行的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7668608B2 (en) * | 2006-09-01 | 2010-02-23 | Fisher-Rosemount Systems, Inc. | Graphical programming language object editing and reporting tool |
-
2012
- 2012-02-17 CN CN201210036915.9A patent/CN102609269B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101881951A (zh) * | 2009-04-14 | 2010-11-10 | 通用电气公司 | 用于在控制系统中将顺序功能图作为功能块执行的方法 |
Non-Patent Citations (2)
Title |
---|
PLC顺序功能图SFC编程系统的设计与实现;何敏锋 等;《工业控制计算机》;20080331;第21卷(第3期);全文 * |
何敏锋 等.PLC顺序功能图SFC编程系统的设计与实现.《工业控制计算机》.2008,第21卷(第3期), * |
Also Published As
Publication number | Publication date |
---|---|
CN102609269A (zh) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609269B (zh) | 一种顺序功能图的可视化实现方法 | |
Drath et al. | AutomationML-the glue for seamless automation engineering | |
CN108681444A (zh) | 一种基于xml技术的软plc组态开发方法 | |
EP1729213A1 (en) | Development of parallel/distributed applications | |
US6981226B2 (en) | Flowchart programming for industrial controllers, in particular motion controllers | |
Wang et al. | Manufacturing system on the cloud: a case study on cloud-based process planning | |
Ramanathan | The IEC 61131-3 programming languages features for industrial control systems | |
CN102508654B (zh) | 嵌入式可编程控制器的梯形图编辑器设计方法 | |
Secchi et al. | On the use of UML for modeling mechatronic systems | |
Angerer et al. | The Robotics API: An object-oriented framework for modeling industrial robotics applications | |
JP2022548835A (ja) | フレキシブル生産システムおよび装置のための自己学習型製造スケジューリング方法 | |
Sprock et al. | A conceptual model for operational control in smart manufacturing systems | |
CN102141911A (zh) | 利用uml时序图开发的方法和活动图生成工具 | |
Liu et al. | Robust Petri net controllers for flexible manufacturing systems with multitype and multiunit unreliable resources | |
Luder et al. | Formal models for the verification of IEC 61499 function block based control applications | |
CN115857882A (zh) | 一种集成开发环境系统 | |
Hundt et al. | Seamless automation engineering with AutomationML® | |
Ollinger et al. | An integrated engineering concept for the model-based development of service-oriented control procedures | |
Khokhlovskiy et al. | Model-based systems engineering of process control for energy installations | |
Wang et al. | Function block design for adaptive execution control of job shop machining operations | |
Lee et al. | The state equation of Petri net for the LD program | |
Lobov et al. | Methodology for modeling visual flowchart control programs using net condition/event systems formalism in distributed environments | |
US7505821B2 (en) | Layout-oriented recording of automation information | |
Lossack | Design processes and context for the support of design synthesis | |
Strasser et al. | Challenges and demands for distributed automation in industrial environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141105 |