顺序功能流程图

顺序功能流程图(英语:Sequential function chart)简称SFC,是为可编程逻辑控制器(PLC)开发的图形编程语言,是IEC_61131-3标准定义的五种语言之一。顺序功能流程图是以GRAFCET英语GRAFCET为基础[1],而后者又以Petri网为基础[2]

顺序功能流程图

顺序功能流程图可以用来可以分为数个步骤的程式。

顺序功能流程图的主要成分有:

  • 步骤及其相关的动作。
  • 转态及其相关的逻辑条件。
  • 步骤及转换之间的连结。

顺序功能流程图中的步骤可以是有效(active)或无效(inactive)。只会执行有效步骤中的动作,步骤可以依以下任一个方式变为有效。

  • 是程式撰写者指定的初始步骤师。
  • 在扫描循环中,此步骤被设定有效,且还没失效。

若有一个步骤,在它前面的所有步骤都是有效的,而且连接到此步骤的转态条件成立,此步骤会有效。若进行了一个转态,所有之前的步骤都会失效,而转态后的步骤会有效。

和步骤有关的动作可以包括许多种类,最常见的是连续(N)、设定(S)及清除(R)。其中N(连续)会确保只要此动作有效,对应的目标变数会恒为1。SFC的规则提到若有二个步骤对同一个目标变数进行动作N,此变数永远不会清除为零。动作也可以整合LD(阶梯图)的程式进来。

顺序功能流程图在本质上是平行处理的语言,多个控制流程可以同时有效。

此语言有些非标准的动作,包括“巨集动作”,也就是一个程式单元的动作可以影响另一个程式单元的状态。最常见的巨集动作是“forcing”,由一个程序运作单元决定另一个程序运作单元的有效步骤。

参考资料

  1. ^ Lewis, R. W. Programming Industrial Control Systems Using IEC 1131-3 (Control, Robotics and Sensors). [2015-03-23]. (原始内容存档于2016-03-05).  |booktitle=被忽略 (帮助)
  2. ^ Fernandez, J. L.; Sanz, R.; Paz, E.; Alonso, C. Using hierarchical binary Petri nets to build robust mobile robot applications: RoboGraph. IEEE International Conference on Robotics and Automation, 2008.. Pasadena, CA, USA: 1372–1377. 19–23 May 2008 [2015-03-23]. doi:10.1109/ROBOT.2008.4543394. (原始内容存档于2015-04-02).