第一種:輔助繼電器的置位復位方法
這種方法是最原始最初級的寫法,也是最簡單的一種寫法,比如第一步置位M0,M0接通后控制某個結果,結果實現后復位M0,再置位M1,依次進行l流程控制。這種寫法通用所有的PLC。
第二種:使用步序編號的方法
使用整型變量作為步序編號,易于理解,便于維護。步序增減,跳轉等操作方便,簡單,易懂。復位操作時,僅需將變量值改為0。編程中需注意,當連續步序的條件同時為真時,步序號在一個PLC周期內連續增加,直至最后一條未導通步序指令,而由步序號觸發的其它程序則未被執行。調試時容易漏掉此種情況。
第三種:GRAPH(順序功能流程圖語言,也稱SFC)
這種方法跟我們的設備工藝流程圖非常相似,也是最直觀的一種程序,第一步干什么,什么條件又開始干第二步,看上去非常清楚。雖然程序表面看上去非常清楚明了,但編寫項目程序實際的操作過程并不簡單,要熟悉這種寫法需要時間過程,而且這種方法并不通用所有的PLC(如西門子S7-1200不支持,僅S7-1500支持),還有就是對PLC性能要求高,也占用很大的工作存儲器。
第四種:移位指令方法
這種方法是利用移位指令的移位原理實現步序的控制,比如歐姆龍的SFT指令,三菱的ROL、ROR等,西門子的移位指令也差不多。這種難點在于搞清移位指令的工作原理即可,也是通用所有PLC的編程。
第五種:DECO解碼指令的方法
解碼指令DECO:即將整數轉換為Dword中對應的位置1,且當步序產生變化時,PLC必定會重新執行一個掃描周期,不會產生連續跳多個步續的情況。避免了程序中步序觸發的指令沒有被執行的情況。跳轉和復位操作編寫簡單。如西門子S7-1200PLC可支持DWORD解碼(32位),S7-1500可支持LWORD解碼(64位)。
第六種:工作和狀態變量賦值的方法
這種方法是數據傳送指令與比較指令相結合實現程序流程步序轉換的,個人認為這種方法是最容易理解的,操作上也是最簡單,建議初學者嘗試使用,當然這種方式也是通用所有PLC的。設置兩個變量字state word,work word。state word中的位作為步序標志,work word作為跳轉目標步序標志。當前步序state word中步序位對應的條件滿足時,觸發work word中下一步對應的位。而后,在PLC順序掃描至傳送指令時,將work word的值賦值給state word,完成步序跳轉。優點是沒有置位和復位操作,同一時刻只有唯一的位置1,跳步時只用將對應的work word 中的位置1即可。復位時,將state word與work word清零,程序會自動將state word中第一位點亮。當步序大于16時,可改為DWORD或增加word的數量來增加步序。
第七種:SCL編程的方法
越來越多的小型PLC都支持SCL語言,SCL是一種類似于PASCAL的高級編程語言,常用的FOR、IF、WHILE、CASE等程控語句組合起來能編寫出很強大的算法和邏輯,用此寫法的人也越來越多。用SCL設計自動程序主要就是結合CASE和IF語句,將Step作為程序號,如果存在比較長的分支或并行動作時需要有借助多個Step程序步,這里不做深究。
-
繼電器
+關注
關注
132文章
5333瀏覽量
148818 -
plc
+關注
關注
5010文章
13275瀏覽量
463088 -
編程語言
+關注
關注
10文章
1942瀏覽量
34711
原文標題:高手都是怎么寫PLC自動程序的?
文章出處:【微信號:xue_PLC,微信公眾號:PLC技術圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論