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