如何使用ST寫簡易圓盤類PLC程式
什麼是圓盤類機台
簡要定義:
- 至少有一個料件輸入站,一個成品輸出站
- 至少有一個圓盤
- 圓盤依製程有不同的分割數(或稱工位)
- 每個分割可放置一或多個工件
- 可用人工或送料機輸入料件
網路上找到的:
程式 Layout
一般我會把plc程式的架構切分如下:
- “Init” 初始化程式碼
- “Always” 放置常態執行程式碼,含 Function Block 的 Instance
- “Auto” 自動模式的控制
- “Manual” 手動模式控制
- “Error” 錯誤狀態控制碼
- “St1”
- “Stx” 各站的週期控制碼
狀態機
手/自動模式的管理,我習慣由統一的狀態機來執行,如圖:
若是較簡單的系統,就會簡化成只有手動/自動的切換,或依各別需求執行。
當然,各站別的動作也是自己的狀態機處理。自動模式時,主狀態機的作用只在喚起各站是否需要執行動作及判斷完成等狀態。
時序圖
- a:自動的第一個動作都是轉圓盤,後再讓各站作動
- b:圓盤到位後,St2Cycle才能作業
- c:St1、St2作業完成後才會再次轉動圓盤
圓盤基本上只有兩個狀態:
- 轉動中
- 到位停止中
而各站別基本上有兩種類型,
- 圓盤到位後才能作動的
- 可以先動作,圓盤到位後再接續作動
如上圖,St1屬於轉動中可偷跑的,而St2屬於到位後才能作動的。
Sample file
總結
其實有的寫法用ladder的型式去表現會較直覺,但是ST的好處在於方便寫程式碼自動產生器,在開發時能夠縮短不少時間。
寫ST時要注意:
- ":=" 等效 “out” 命令
- if 指令會佔用較多的steps空間
如果只有一行指令時,建議轉為單一的命令,雖然可讀性較差,但更省空間…
沒有留言:
張貼留言