四、基本指令-其他指令[MC/NOP/END]
MC指令是和MCR指令成對(duì)使用的,執(zhí)行MC指令后母線(xiàn)會(huì)轉(zhuǎn)移到MC觸點(diǎn)內(nèi),使用MCR指令可將母線(xiàn)返回主線(xiàn)上。
在MC指令和MCR指令之間的輸出線(xiàn)圈只有在MC指令被驅(qū)動(dòng)時(shí)才會(huì)執(zhí)行各個(gè)動(dòng)作(不需要觸發(fā)條件的指令除外),當(dāng)MC指令不執(zhí)行時(shí),其內(nèi)部程序的輸出線(xiàn)圈都相當(dāng)于驅(qū)動(dòng)條件為斷開(kāi)狀態(tài)。
MC指令的結(jié)構(gòu)為MC Nn Mn或MC Nn Yn,與之配對(duì)的MCR指令只需要編輯上對(duì)應(yīng)的Nn編號(hào)即可。
MC指令內(nèi)可以再包括MC指令,這種結(jié)構(gòu)叫做嵌套。使用嵌套程序時(shí),級(jí)別N的編號(hào)應(yīng)該按照順序增大,MCR指令則需從最大編號(hào)的嵌套級(jí)別逐級(jí)返回,否則它會(huì)忽略較大編號(hào)的嵌套程序。嵌套最大可以編寫(xiě)8級(jí)。
在GX Developer軟件中寫(xiě)入模式下編輯程序時(shí),MC和MCR程序之間母線(xiàn)上的Nn編號(hào)不會(huì)顯示,但用Shift+F2鍵切換到讀取模式后或者在切換到監(jiān)視狀態(tài)時(shí)就會(huì)顯示出來(lái)。
NOP指令為空操作指令,PLC運(yùn)行到該指令時(shí)會(huì)無(wú)視它的存在而繼續(xù)運(yùn)行。NOP指令會(huì)對(duì)程序的步數(shù)產(chǎn)生影響。但在梯形圖中無(wú)法直觀(guān)的看到NOP的存在,切換到語(yǔ)句表狀態(tài)就能看到。
END指令為表示程序結(jié)束的指令,PLC執(zhí)行到END指令時(shí),不再執(zhí)行其后面的程序,會(huì)開(kāi)始輸入輸出狀態(tài)處理并返回程序開(kāi)頭的第0步。執(zhí)行END指令時(shí)還會(huì)刷新看門(mén)狗定時(shí)器。在GX Developer軟件中不用專(zhuān)門(mén)輸入該指令,程序編輯完用F4轉(zhuǎn)換后END指令會(huì)自動(dòng)添加在程序末尾。
五、編程的注意事項(xiàng)
1- 觸點(diǎn)的構(gòu)成和步
執(zhí)行相同動(dòng)作的梯形圖通過(guò)優(yōu)化觸點(diǎn)構(gòu)成的方法,可以簡(jiǎn)化程序和節(jié)約步數(shù);驹瓌t是串聯(lián)較多的梯形圖盡量寫(xiě)在上方,并聯(lián)觸點(diǎn)較多的梯形圖盡量寫(xiě)在左方。
2- 雙重輸出(雙線(xiàn)圈)
在順控程序中輸出線(xiàn)圈被多次驅(qū)動(dòng)成為雙重輸出(雙線(xiàn)圈),出現(xiàn)該情況時(shí)其觸點(diǎn)狀態(tài)以程序當(dāng)前邏輯狀態(tài)為準(zhǔn)。兩個(gè)或多個(gè)線(xiàn)圈的狀態(tài)容易相互干擾,進(jìn)而影響編程人員對(duì)程序執(zhí)行結(jié)果的判斷。
對(duì)于輸出繼電器而言,進(jìn)入輸出映像階段時(shí)雙線(xiàn)圈以最后的線(xiàn)圈狀態(tài)為準(zhǔn),所以用GX Developer軟件監(jiān)控時(shí)可能會(huì)發(fā)現(xiàn)條件滿(mǎn)足而沒(méi)有輸出的線(xiàn)圈。
3- 16位/32位指令
根據(jù)處理數(shù)據(jù)的大小,應(yīng)用指令可以分為“16位指令”和“32位指令”。通過(guò)在16位指令前面加“D”符號(hào)就會(huì)將其切換為32位指令,此時(shí)指令中的軟元件會(huì)與緊接其后的軟元件號(hào)碼組合為32位元件。
4- 脈沖執(zhí)行/連續(xù)執(zhí)行指令
連續(xù)執(zhí)行指令是指在每個(gè)掃描周期都執(zhí)行的指令,脈沖型指令則是在驅(qū)動(dòng)條件滿(mǎn)足時(shí)只執(zhí)行一個(gè)掃描周期。通過(guò)在連續(xù)執(zhí)行指令后面加“P”符號(hào)就會(huì)將其切換為脈沖執(zhí)行指令。