AB 1791D-0B8P
AB 1791D-0B8P
可編程控制器的工作過程包括兩部分:自診斷及通信響應的固定過程和用戶程序執行過程,如圖5-1所示。PLC在每次執行用戶程序之前,都先執行故障自診斷程序、復位、監視、定時等內部固定程序,若自診斷正常,繼續向下掃描,然后PLC檢查是否有與編程器、計算機等的通信請求。如果有與計算機等的通信請求,則進行相應處理。當PLC處于停止(STOP)狀態時,只循環進行前兩個過程。而在PLC處于運行(RUN)狀態時,PLC從內部處理、通信操作、輸入掃描、執行用戶程序、輸出刷新五個工作階段循環工作。每完成一次以上五個階段所需要的時間稱為一個掃描周期。
掃描周期是PLC的一個重要指標,小型PLC的掃描周期一般為十幾毫秒到幾十毫秒。PLC的掃描周期長短取決于掃描速度和用戶程序的長短。毫秒級的掃描時間對于一般工業設備通常是允許的,PLC對輸入的短暫滯后也是允許的。但對某些I/O快速響應的設備,則應采取相應的處理措施。如選擇高速CPU,提高掃描速度;選擇快速響應模塊、高速計數模塊以及不同的中斷處理等措施減少滯后時間。對于用戶來說,要提高編程能力,盡可能優化程序;而在編寫大型設備的控制程序時,盡量減少程序長度,選擇分支或跳步程序等,都可以減少用戶程序執行時間。
對于用戶來說,在編寫用戶程序或選擇設備時,必須清楚下面介紹的三個階段,即用戶程序執行過程的原理。
PLC采用集中處理的方法,即對輸入掃描信號、執行用戶程序和輸出刷新都采用集中分批處理的工作方式。
(1)輸入掃描 在這一階段中,PLC以掃描方式讀入所有輸入端子上的輸入信號,并將輸入信號存入輸入映像區,輸入映像存儲器被刷新。在程序執行階段和輸出刷新階段中,輸入映像存儲器與外界隔離,其內容保持不變,直至下一個掃描周期的輸入掃描階段,才被重新讀入的輸入信號刷新。可見,PLC在執行程序和處理數據時,不直接使用現場當時的輸入信號,而使用本次采樣時輸入到映像區中的數據。如果輸入設備能使PLC輸入端形成閉合回路,對應輸入端編號的內部輸入繼電器內保存為“1”,即相當于繼電器線圈導通。在程序執行過程中,該編號對應的觸點動作;如果輸入設備能使輸入開路,則對應輸入端編號的內部輸入繼電器內保存為“0”,即相當于繼電器線圈沒導通,在程序執行過程中,該編號對應的觸點不動作。如果在PLC處于非輸入掃描的階段,PLC外的輸入設備狀態發生了變化,內部輸入繼電器也不會發生變化,要等到下一個輸入掃描階段才能根據此時的輸入狀態來刷新。所以,對于少于十幾毫秒的輸入信號,經常采集不到。
(2)執行程序 在執行用戶程序過程中,PLC按梯形圖程序順序自上而下、從左至右逐個掃描執行,即按助記符指令表的先后順序執行。但遇到程序跳轉指令,則根據跳轉條件是否滿足來決定程序跳轉地址。程序執行過程中,PLC從輸入映像區中取出輸入變量的當前狀態,然后進行由程序確定的邏輯運算或其他運算,根據程序指令將運算結果存入相應的內部繼電器中,包括輸出繼電器、內部輔助繼電器、定時器、計數器等。輸出繼電器的信號存放在輸出映像區,即輸出繼電器與PLC外部的同編號的輸出點對應。
在程序執行過程中,同一周期內,前面的邏輯結果影響后面的觸點,即后執行的程序可能用到前面的中間運算結果;但同一周期內,后面的運算結果不影響前面的邏輯關系。該掃描周期內除輸入繼電器以外的所有內部繼電器的終狀態(導通與否),將影響下一個掃描周期各觸點的開與閉。
(3)輸出刷新 程序執行階段的運算結果被存入輸出映像區,而不送到輸出端口上。在輸出刷新階段,PLC將輸出映像區中的輸出變量送入輸出鎖存器,然后由鎖存器通過輸出模塊產生本周期的控制輸出。如果內部輸出繼電器的狀態為“1”,則輸出繼電器觸點閉合。全部輸出設備的狀態要保持一個掃描周期。