第一種:輔助繼電器的置位復(fù)位方法
這種方法是最原始最初級(jí)的寫法,也是最簡(jiǎn)單的一種寫法,比如第一步置位m0,m0接通后控制某個(gè)結(jié)果,結(jié)果實(shí)現(xiàn)后復(fù)位m0,再置位m1,依次進(jìn)行l(wèi)流程控制。這種寫法通用所有的plc。

第二種:使用步序編號(hào)的方法
使用整型變量作為步序編號(hào),易于理解,便于維護(hù)。步序增減,跳轉(zhuǎn)等操作方便,簡(jiǎn)單,易懂。復(fù)位操作時(shí),僅需將變量值改為0。編程中需注意,當(dāng)連續(xù)步序的條件同時(shí)為真時(shí),步序號(hào)在一個(gè)plc周期內(nèi)連續(xù)增加,直至最后一條未導(dǎo)通步序指令,而由步序號(hào)觸發(fā)的其它程序則未被執(zhí)行。調(diào)試時(shí)容易漏掉此種情況。

第三種:graph(順序功能流程圖語(yǔ)言,也稱sfc)
這種方法跟我們的設(shè)備工藝流程圖非常相似,也是最直觀的一種程序,第一步干什么,什么條件又開始干第二步,看上去非常清楚。雖然程序表面看上去非常清楚明了,但編寫項(xiàng)目程序?qū)嶋H的操作過程并不簡(jiǎn)單,要熟悉這種寫法需要時(shí)間過程,而且這種方法并不通用所有的plc(如西門子s7-1200不支持,僅s7-1500支持),還有就是對(duì)plc性能要求高,也占用很大的工作存儲(chǔ)器。

第四種:移位指令方法
這種方法是利用移位指令的移位原理實(shí)現(xiàn)步序的控制,比如歐姆龍的sft指令,三菱的rol、ror等,西門子的移位指令也差不多。這種難點(diǎn)在于搞清移位指令的工作原理即可,也是通用所有plc的編程。
第五種:deco解碼指令的方法
解碼指令deco:即將整數(shù)轉(zhuǎn)換為dword中對(duì)應(yīng)的位置1,且當(dāng)步序產(chǎn)生變化時(shí),plc必定會(huì)重新執(zhí)行一個(gè)掃描周期,不會(huì)產(chǎn)生連續(xù)跳多個(gè)步續(xù)的情況。避免了程序中步序觸發(fā)的指令沒有被執(zhí)行的情況。跳轉(zhuǎn)和復(fù)位操作編寫簡(jiǎn)單。如西門子s7-1200plc可支持dword解碼(32位),s7-1500可支持lword解碼(64位)。

第六種:工作和狀態(tài)變量賦值的方法
這種方法是數(shù)據(jù)傳送指令與比較指令相結(jié)合實(shí)現(xiàn)程序流程步序轉(zhuǎn)換的,個(gè)人認(rèn)為這種方法是最容易理解的,操作上也是最簡(jiǎn)單,建議初學(xué)者嘗試使用,當(dāng)然這種方式也是通用所有plc的。設(shè)置兩個(gè)變量字state word,work word。state word中的位作為步序標(biāo)志,work word作為跳轉(zhuǎn)目標(biāo)步序標(biāo)志。當(dāng)前步序state word中步序位對(duì)應(yīng)的條件滿足時(shí),觸發(fā)work word中下一步對(duì)應(yīng)的位。而后,在plc順序掃描至傳送指令時(shí),將work word的值賦值給state word,完成步序跳轉(zhuǎn)。優(yōu)點(diǎn)是沒有置位和復(fù)位操作,同一時(shí)刻只有唯一的位置1,跳步時(shí)只用將對(duì)應(yīng)的work word 中的位置1即可。復(fù)位時(shí),將state word與work word清零,程序會(huì)自動(dòng)將state word中第一位點(diǎn)亮。當(dāng)步序大于16時(shí),可改為dword或增加word的數(shù)量來增加步序。

第七種:scl編程的方法
越來越多的小型plc都支持scl語(yǔ)言,scl是一種類似于pascal的高級(jí)編程語(yǔ)言,常用的for、if、while、case等程控語(yǔ)句組合起來能編寫出很強(qiáng)大的算法和邏輯,用此寫法的人也越來越多。用scl設(shè)計(jì)自動(dòng)程序主要就是結(jié)合case和if語(yǔ)句,將step作為程序號(hào),如果存在比較長(zhǎng)的分支或并行動(dòng)作時(shí)需要有借助多個(gè)step程序步,這里不做深究。











