過去一直認為,狀態機表示SFC會不會是任務復雜化,這次簡單實驗了一下,感覺還可以。請看下面的控制。
在SFC中,A和B是一對並行分支,匯合后轉移到C分支中,怎么了用狀態機表示呢?這里我們在狀態機里分別用A、B狀態表示分支,它們的匯合點是狀態FreeState。當它們都處於FreeState狀態時,C狀態中的第一個條件in(Conveyor.FreeState) && in(Scale.FreeState)激活, 這樣C中的狀態就從Idle轉移到Stir中了。 另外SFC中,A、B分支的啟動條件是一樣的,那么在狀態機中,A、B狀態也是一致的,這里用〔SST && S0 && WC <= Z]