前面我們寫了《PLC狀態機編程第二篇-負載均衡》這篇博客,用的RS指令來表達各步狀態, 今天呢我們用MOVE指令來表示各狀態, 最后看看兩種辦法的優劣。任務還是描述的那個狀態機。
程序比較簡單, 直接上程序了。
這里聲明了一個currentStep變量來存儲當前狀態, 用IDLE, PUMP_A等表示個狀態常量。
這里我們看到, 和上次的程序略有不同, 加了auto,利用auto的上升沿和下降沿初始化FB塊, 保證在剛啟動或打手動時,把相關變量置0, 注意在EN端不可加任何條件, 否則無法初始化。另外,步的轉移是通過move指令設置完成的。和以前的方法比起來,少了復位條件。對於單分支流程,簡單不少,但如果狀態機中有多個並行分支,那就得新建多個狀態變量, 以存儲其它分支的狀態,
相比和使用RS指令的狀態機, 沒有太大的優勢。但有些PLC中沒有RS指令, 比如AB,只有分開的latch和unlatch, 一般就用這種風格的編程方法。