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