幾種PLC自動程序設計方法對比

上一篇關於觸摸屏監控PLC IO的文章瀏覽量已超過三千次,關注的人很多,本人覺得有必要分享一些更多的實際經驗和解決問題的思路。至於具體指令和軟件的使用方法,建議大家查閱相對應的手冊,自行學習研究,比看一般的視頻效果要強。也建議大家在各個主流PLC網站註冊賬號,方便下載最新的樣本、手冊和軟件。

本文以西門子S7-1500 PLC為例,簡單講述各種自動程序設計方法,其他品牌或型號的PLC也可用使用類似的設計。這裡暫不討論手動、報警、診斷等程序如何設計,希望對工控同胞們有所幫助,同時也希望工控達人們能提出寶貴意見,。

下面總結一下常用自動程序設計方法:

一:SCL CASE(結構化控制語言 也稱ST,CASE指令)

越來越多的小型PLC都支持SCL語言,SCL是一種類似於PASCAL的高級編程語言,常用的FOR、IF、WHILE、CASE等程控語句組合起來能編寫出很強大的算法和邏輯,用此寫法的人也越來越多。用SCL設計自動程序主要就是結合CASE 和IF語句,將Step作為程序號,如果存在比較長的分支或並行動作時需要有藉助多個Step程序步,這裡不做深究,書寫規則大體如下:

幾種PLC自動程序設計方法對比

SCL CASE

二:LAD 起保停

所有的PLC都適合用LAD起保停的寫法,也存在很多變種,最常規變種是當前步的輸出用置為SET,不需要起保停,在緊接的下一步中用RESET復位,在老一代PLC中是很流行寫法,隨著PLC的升級換代,此寫法逐漸減少,書寫規則大體如下:

幾種PLC自動程序設計方法對比
幾種PLC自動程序設計方法對比

LAD 啟保停

三:LAD 移位

所有的PLC也都適合用LAD 移位指令(通常為左移位)的寫法,在老一代PLC也較常見,因自動流程按移位的方法設計好後不容易增加動作,設計較長的動作流程時也很不方便,與LAD啟保停相比可擴展性差,不夠直觀。常見的書寫規則大體如下:

幾種PLC自動程序設計方法對比
幾種PLC自動程序設計方法對比

LAD SHL

四:GRAPH(順序功能流程圖語言 也稱SFC)

中高端PLC才能支持GRAPH,許多小型PLC有他的縮減版:步進指令,但步進指令功能有限,且很不直觀。GRAPH就是為方便實現流程設計而產生。步、轉換和動作是順序功能圖的三種主要元件,加上靈活的使用其分支、並行和跳轉可實現複雜的流程,程序可以做到非常直觀,也很容易增改,執行效率高,用久了GRAPH後對其他寫法都不習慣,唯一的缺點就時PLC性能要求高,也佔用很大的工作存儲器。大體形式如下:

幾種PLC自動程序設計方法對比

五:LAD 比較

本人結合“SLC CASE”和“LAD 啟保停”的寫法,在沒有先例參考的情況下,創造出“LAD比較”寫法,直到後來看到有工控朋友用到過類似的寫法,才知道此寫法並非本人首創。形式如下圖所示。

幾種PLC自動程序設計方法對比

“LAD 比較”和“SCL CASE”有些類似,不過原理上還是有很大差別,“SCL CASE”執行效率更高。在“SCL CASE”中,只有CASE符合條件的才運行,不符合的就跳過,而”LAD比較”是所有程序都會執行,不能有雙線圈,除非LAD中使用正真的跳轉指令(SWITCH LABLE 結合 JMP),但操作起來更加艱難,而“SCL CASE”就沒有這麼多限制。但”LAD比較”比“SCL CASE”稍許直觀,通用性更強。

這裡由於篇幅有限,就簡單分析各類設計方法,本人斗膽對各種自動程序設計方法做如下對比評分:

幾種PLC自動程序設計方法對比

總體上講“LAD比較”/“SCL CASE”/GRAPH評分上旗鼓相當,喜好因人而異,本人更偏向於“LAD比較”。大家認為呢?如果有其他常規或更好的設計方法,歡迎評論留言。


分享到:


相關文章: