對于用戶來說,在編寫用戶程序或選擇設(shè)備時,必須清楚下面介紹的三個階段,即用戶程序執(zhí)行過程的原理。
PLC采用集中處理的方法,即對輸入掃描信號、執(zhí)行用戶程序和輸出刷新都采用集中分批處理的工作方式。
(1)輸入掃描在這一階段中,PLC以掃描方式讀入所有輸入端子上的輸入信號,并將輸入信號存入輸入映像區(qū),輸入映像存儲器被刷新。在程序執(zhí)行階段和輸出刷新階段中,輸入映像存儲器與外界隔離,其內(nèi)容保持不變,直至下一個掃描周期的輸入掃描階段,才被重新讀入的輸入信號刷新??梢姡琍LC在執(zhí)行程序和處理數(shù)據(jù)時,不直接使用現(xiàn)場當(dāng)時的輸入信號,而使用本次采樣時輸入到映像區(qū)中的數(shù)據(jù)。如果輸入設(shè)備能使PLC輸入端形成閉合回路,對應(yīng)輸入端編號的內(nèi)部輸入繼電器內(nèi)保存為“1”,即相當(dāng)于繼電器線圈導(dǎo)通。在程序執(zhí)行過程中,該編號對應(yīng)的觸點(diǎn)動作;如果輸入設(shè)備能使輸入開路,則對應(yīng)輸入端編號的內(nèi)部輸入繼電器內(nèi)保存為“0”,即相當(dāng)于繼電器線圈沒導(dǎo)通,在程序執(zhí)行過程中,該編號對應(yīng)的觸點(diǎn)不動作。如果在PLC處于非輸入掃描的階段,PLC外的輸入設(shè)備狀態(tài)發(fā)生了變化,內(nèi)部輸入繼電器也不會發(fā)生變化,要等到下一個輸入掃描階段才能根據(jù)此時的輸入狀態(tài)來刷新。所以,對于少于十幾毫秒的輸入信號,經(jīng)常采集不到。
(2)執(zhí)行程序在執(zhí)行用戶程序過程中,PLC按梯形圖程序順序自上而下、從左至右逐個掃描執(zhí)行,即按助記符指令表的先后順序執(zhí)行。但遇到程序跳轉(zhuǎn)指令,則根據(jù)跳轉(zhuǎn)條件是否滿足來決定程序跳轉(zhuǎn)地址。程序執(zhí)行過程中,PLC從輸入映像區(qū)中取出輸入變量的當(dāng)前狀態(tài),然后進(jìn)行由程序確定的邏輯運(yùn)算或其他運(yùn)算,根據(jù)程序指令將運(yùn)算結(jié)果存入相應(yīng)的內(nèi)部繼電器中,包括輸出繼電器、內(nèi)部輔助繼電器、定時器、計數(shù)器等。輸出繼電器的信號存放在輸出映像區(qū),即輸出繼電器與PLC外部的同編號的輸出點(diǎn)對應(yīng)。
在程序執(zhí)行過程中,同一周期內(nèi),前面的邏輯結(jié)果影響后面的觸點(diǎn),即后執(zhí)行的程序可能用到前面的最新中間運(yùn)算結(jié)果;但同一周期內(nèi),后面的運(yùn)算結(jié)果不影響前面的邏輯關(guān)系。該掃描周期內(nèi)除輸入繼電器以外的所有內(nèi)部繼電器的最終狀態(tài)(導(dǎo)通與否),將影響下一個掃描周期各觸點(diǎn)的開與閉。
(3)輸出刷新程序執(zhí)行階段的運(yùn)算結(jié)果被存入輸出映像區(qū),而不送到輸出端口上。在輸出刷新階段,PLC將輸出映像區(qū)中的輸出變量送入輸出鎖存器,然后由鎖存器通過輸出模塊產(chǎn)生本周期的控制輸出。如果內(nèi)部輸出繼電器的狀態(tài)為“1”,則輸出繼電器觸點(diǎn)閉合。全部輸出設(shè)備的狀態(tài)要保持一個掃描周期。