9.27.2021

使用ST寫圓盤類程式.md

如何使用ST寫簡易圓盤類PLC程式

什麼是圓盤類機台

簡要定義:

  1. 至少有一個料件輸入站,一個成品輸出站
  2. 至少有一個圓盤
  3. 圓盤依製程有不同的分割數(或稱工位)
  4. 每個分割可放置一或多個工件
  5. 可用人工或送料機輸入料件

網路上找到的:

程式 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時要注意:

  1. ":=" 等效 “out” 命令
  1. if 指令會佔用較多的steps空間

    如果只有一行指令時,建議轉為單一的命令,雖然可讀性較差,但更省空間…

ST寫作推薦參考:PLC結構化文本設計模式和算法_rediculous的專欄-CSDN博客_plc結構化文本編程

沒有留言:

張貼留言