1. 程式人生 > 其它 >ABB AC900F學習筆記18:SFC學習1-基本概念

ABB AC900F學習筆記18:SFC學習1-基本概念

順序功能塊圖SFC是按照事件的邏輯順序安排其控制字程式邏輯。

SFC 的程式組態圖是由元素:步 (Step)、跳步條件(Transition)、跳轉(Jump)、連線(Line)等組成的;元素中的組態子程式可以選擇由功能塊圖(FBD )、梯形圖 ( LD )、指令表(IL ) 的一種或多種方式完成;通過 SFC 組態,可以將複雜的邏輯控制程式由其簡潔的元素框圖表現出來,結構清晰,組態方式簡便。 圖形區是由大寬行、中寬行和小細行組成,用於放置 SFC 的元素;其中大寬行用於放置步,中寬行用於放置條件,小細行用於放置元素“連線”( 包括垂直連線和分支連線 )。
  • 任一個順序控制 SFC 程式總是由一個 初始步開始的。
  • 每一步 ( step ) 的後面應跟從一個條件。
  • 一個 SFC 程式的結束元素必須是條件。
在 SFC 程式中有兩種分支存在,即“或分支”和“與分支”。“或分支”是指在同一時刻不能滿足分支下的所有跳步條件,只能允許分支下的某一路被執行;“與分支”是指當跳步條件滿足時,允許跳步條件下的所有分支被同時處理。 SFC 程式中元素步的執行,取決於跳步條件是否得到滿足。如果某一步處於執行狀態,而其下方的跳步條件不能滿足時,SFC 只能迴圈執行當前步,直至其下面的跳步條件得到滿足時,才允許執行下一步;此時 SFC 程式中其它步都處於不執行狀態,即這些步中的組態子程式不再被執行。因此,過程點的監視、資訊報警、裝置的控制是不能直接在SFC 程式中組態完成的,這些組態程式應放在程式列表( PL )下面由任務作迴圈處理。 SFC元素
  • 初始步 ( Initial step )
一個 SFC 程式中只允許包括一個初始步,它是一個 SFC 程式的開始;外觀如下:
  • 步 ( Step )
一個 SFC 程式中允許存在多個步元素,外觀如下: 每一步(包括初始步)中的子程式組態可用 FBD 、IL 或 LD 完成,子程式數量最多允許 8 個
  • 跳步條件 ( Transition )
用於判斷上一步的完成和決定下一步的開始。每一個跳步條件中僅僅允許組態一個子程式。外觀如下
  • 垂直線 ( Vertical line )
放置在細行中,起元素間的連線作用。
  • “或分支”延伸線 ( Horizontal selection line )
用於“或分支”分支間的連線,只能放置在細行中。
  • “或分支”的分支開始端 ( Seq. Selection divergence start )
“或分支”的分支發出起點,只能放置在細行中。
  • “或分支”的分支開始新增端 ( Seq. Selection divergence add )
“或分支”的開始分支新增端,只能放置在細行中。
  • “或分支”的分支結束新增端 ( Seq. Selection convergence add )
“或分支”的分支結束新增端,只能放置在細行中。
  • “或分支”的分支結束端 ( Seq. Selection convergence end )
“或分支”的分支結束端,只能放置在細行中。
  • “與分支”延伸線 ( Horizontal simultaneous seq. line )
用於“與分支”分支間的連線,只能放置在細行中。
  • “與分支”的分支開始端 ( Simultaneous seq. divergence start )
“與分支”的發出點,只能放置在細行中。
  • “與分支”的分支開始新增端 ( Simultaneous seq. divergence add )
“與分支”的發出新增端,只能放置在細行中。
  • “與分支”的分支結束端 ( Simultaneous seq. convergence end )
“與分支”的分支結束端,只能放置在細行中。
  • “與分支”的分支結束新增端 ( Simultaneous seq. convergence add )
“與分支’的結束新增端,只能放置在細行中。
  • 跳轉 ( Jump )
用於程式的跳轉,圖示如下圖所示;應放在大寬行中,名字為要跳轉步 ( step) 的名字,同時在目的步上附加一個跳轉符號表示。 SFC 的系統變數 1. 步的系統變數-- .X SFC 程式中的每一步都包括系統變數 .X, .X 是一個只讀變數 ( read ),用於指示步的當前狀態-- 啟用或非啟用。 .X=1 或 TRUE 表示此步處於啟用狀態 .X=0 或 FALSE 表示此步未啟用或已啟用過 2. 跳步條件的系統變數 -- .RESULT SFC 程式中的每一個跳步條件都包括系統變數 . RESULT,並且每一個跳步條件的輸出變數必須包括 .RESULT .RESULT=1 或 TRUE 表示條件滿足,允許執行下一步。 .RESULT=0 或 FALSE 表示轉換條件不滿足,只允許執行當前步。