順序功能流程圖

順序功能流程圖(英語: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).