博途西門子PLC自動(dòng)步程序的7種編程方法
? ? ?PLC自動(dòng)程序的功能是控制設(shè)備按照設(shè)計(jì)的流程進(jìn)行工作。PLC自動(dòng)程序的流程編寫也有好幾種方法,常見(jiàn)的有以下幾種:
一、SET/RESET方法
? ? ? ?使用M變量標(biāo)識(shí)步序,當(dāng)滿足步序跳轉(zhuǎn)條件后,將下一步M變量置位,同時(shí)將當(dāng)前步M變量復(fù)位。原理簡(jiǎn)單,易于上手。
? ? ? ?在調(diào)試中,增減步序時(shí),會(huì)造成M變量的排序混亂,不利于程序維護(hù),易產(chǎn)生錯(cuò)誤。在復(fù)位操作中,容易有遺漏,增加程序出錯(cuò)幾率。常用于動(dòng)作少,流程簡(jiǎn)單的流程編寫。

二、步編號(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í)容易漏掉此種情況。

三、WORK & STATE 字方法
? ? ? ?設(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)是沒(méi)有置位,復(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ù)量來(lái)增加步序。


四、Wait & Output方法
? ? ? ?需要先建立對(duì)應(yīng)的DB塊,用來(lái)存儲(chǔ)每一步對(duì)應(yīng)的跳轉(zhuǎn)條件和輸出對(duì)應(yīng)的word代碼。
? ? ? ?再編寫對(duì)應(yīng)的wait程序(步序條件),編寫時(shí)需將條件邏輯逆轉(zhuǎn)編寫(即跳轉(zhuǎn)條件不滿足時(shí),對(duì)應(yīng)的wait_pending為導(dǎo)通狀態(tài)。比如跳轉(zhuǎn)條件為需要一個(gè)傳感器亮,則wait條件中要寫此傳感器OFF的指令)
? ? ? ?每一步激活wait編碼對(duì)應(yīng)的步序條件,當(dāng)激活的跳轉(zhuǎn)條件完全滿足時(shí),wait_pending 會(huì)為0,則程序會(huì)將步序自動(dòng)加1,然后激活下一步wait編碼對(duì)應(yīng)的條件。程序跳轉(zhuǎn)時(shí),直接改變步序號(hào)即可。
? ? ? ?使用對(duì)應(yīng)的表格進(jìn)行編程,速度快,維護(hù)簡(jiǎn)單,維護(hù)人員碰到設(shè)備停止?fàn)顩r,只要查找那條wait指令為導(dǎo)通狀態(tài)即可。
? ? ? ?但步序條件編程邏輯需要寫成反向,初次使用者不容易理解。如無(wú)流程記錄文件,流程的理解比較困難,對(duì)改造,維護(hù)并不友好,目前很少看到。




五、SCL編寫方法
? ? ? ?SCL語(yǔ)言形式為代碼形式,閱讀理解不如梯形圖直觀,需要一定的編程基礎(chǔ),對(duì)于日常設(shè)備維護(hù)不是很友好。
? ? ? ?常用于特定功能塊的編寫,數(shù)據(jù)的處理等,調(diào)試完成后進(jìn)行封裝。



六、GRAPH 流程圖方法
? ? ? ?流程圖形式編程,不是所有品牌PLC都支持,且只有大型PLC才支持。(1200不支持,僅1500支持)
圖形化界面,易于理解。跳步編寫簡(jiǎn)單,對(duì)于日常維護(hù)非常友好。
? ? ? ?復(fù)位,單步運(yùn)行,都有對(duì)應(yīng)的FB接口。
? ? 但PLC占用資源較多,根據(jù)經(jīng)驗(yàn),西門子315 PLC,使用step number方式編程,可多寫一倍的順控程序。且當(dāng)graph中步序達(dá)到一定數(shù)量后,step 7軟件監(jiān)控會(huì)出現(xiàn)卡頓,宕機(jī)等情況。

七、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ā)的指令沒(méi)有被執(zhí)行的情況。
? ? ? ?跳轉(zhuǎn),復(fù)位操作編寫簡(jiǎn)單。
? ? ? ?1200PLC可支持DWORD解碼(32位),1500可支持LWORD解碼(64位)。


博途工控人VX群加V:gk405321992