AB PLC 編程之狀態機


AB的程序設計和西門子有點PLC不大一樣,在AB中沒有RS指令,所以主要用move指令來作步進。今天我們就用Move指令寫個AB的程序,和西門子比,有哪些不同。

控制任務

很簡單的一個狀態機。初始步為Step0,根據不同的條件分別轉移到不同的步。

stateMachine

 

具體程序

下面是tag變量表:

tagEdit

下面定義了一個關於步進的udt,StepNumber是當前的步號,根據StepNumber的步號來設置Step變量中對應的一個位,Reset設置StepNumber為0,

恢復到初始步。Re_Step是Step步中對應步的一個上升沿,Auto就是自動。

udt

 

AB

這里簡單解釋一下:

第0段中,如果site.Auto為0,也就是激活手動,那么程序就跳轉到第5段,2,3,4段程序就不激活,即使轉移條件滿足步也不會改變。

此時如果按下Reset按鈕,那么將回到Step0步。如果site.Auto為1,那么按Reset也不會起作用。此程序最關鍵的地方在第5段,第五段

第一行,就是復位程序。第二行是設置激活步的上升沿,僅存在一個掃描周期。第三行是先把所有步清零,在設置激活的步。

 

和我們前面寫的程序比,這個程序有以下優點:

  • 每步激活前會清零所有步,然后再激活當前步,防止同時激活兩個步。
  • 程序的先導條件改成觸點,以前我們是用比較指令。簡潔不少。
  • 自動和復位寫的比前面優雅,同時為每步增加一個步上升沿。

和RS指令比,並行步寫起來會麻煩不少,需要定義兩個Grafcet變量。

 

下一篇我們用西門子TIA Portal來寫這個程序,看看是否可以寫的一樣優秀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM