順序功能流程圖
順序功能流程圖(英語:Sequential function chart)簡稱SFC,是為可程式邏輯控制器(PLC)開發的圖形程式語言,是IEC_61131-3標準定義的五種語言之一。順序功能流程圖是以GRAFCET為基礎[1],而後者又以Petri网為基礎[2]。
順序功能流程圖可以用來可以分為數個步驟的程式。
順序功能流程圖的主要成分有:
- 步驟及其相關的動作。
- 轉態及其相關的邏輯條件。
- 步驟及轉換之間的連結。
順序功能流程圖中的步驟可以是有效(active)或無效(inactive)。只會執行有效步驟中的動作,步驟可以依以下任一個方式變為有效。
- 是程式撰寫者指定的初始步驟師。
- 在掃描循環中,此步驟被設定有效,且還沒失效。
若有一個步驟,在它前面的所有步驟都是有效的,而且連接到此步驟的轉態條件成立,此步驟會有效。若進行了一個轉態,所有之前的步驟都會失效,而轉態後的步驟會有效。
和步驟有關的動作可以包括許多種類,最常見的是連續(N)、設定(S)及清除(R)。其中N(連續)會確保只要此動作有效,對應的目標變數會恆為1。SFC的規則提到若有二個步驟對同一個目標變數進行動作N,此變數永遠不會清除為零。動作也可以整合LD(階梯圖)的程式進來。
順序功能流程圖在本質上是平行處理的語言,多個控制流程可以同時有效。
此語言有些非標準的動作,包括「巨集動作」,也就是一個程式單元的動作可以影響另一個程式單元的狀態。最常見的巨集動作是「forcing」,由一個程序運作單元決定另一個程序運作單元的有效步驟。
參考資料
- ^ Lewis, R. W. Programming Industrial Control Systems Using IEC 1131-3 (Control, Robotics and Sensors). [2015-03-23]. (原始内容存档于2016-03-05).
|booktitle=
被忽略 (帮助) - ^ 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).