用戶程序由用戶生成,用來實現用戶要求的自動化任務。STEP 7將用戶編寫(xie) 的程序和程序所需的數據放置在塊中,功能塊FB和功能FC是用戶編寫(xie) 的子程序,係統功能塊SFB和係統功能SFC是操作係統提供給用戶使用的標準子程序,它們(men) 和組織塊OB統稱為(wei) 邏輯塊。
PLC得電或由STOP模式切換到RUN模式時,CPU執行啟動操作,將沒有斷電保持功能的位存儲(chu) 器、定時器和計數器清零,清除中斷堆棧和塊堆棧的內(nei) 容,複位保存的硬件中斷等。此外還要執行一次用戶生成的“係統啟動”組織塊OB100,完成用戶指定的初始化操作。以後PLC采用循環執行用戶程序的方式,這種運行方式也稱為(wei) 掃描工作方式。
在PLC的存儲(chu) 器中,設置了一片區域用來存放輸入信號和輸出信號的狀態,它們(men) 分別稱為(wei) 過程映像輸入區和過程映像輸出區。PLC梯形圖中的其他編程元件也有對應的存儲(chu) 區。
下麵是循環處理的各個(ge) 階段的任務(見圖):
1)操作係統啟動循環時間監控。
2) CPU將過程映像輸出區的數據寫(xie) 到輸出模塊。
3) CPU讀取輸入模塊的輸入狀態,並存入過程映像輸入區。
4) CPU處理用戶程序,執行用戶程序中的指令。
5)在循環結束時,操作係統執行其他任務,例如下載和刪除塊,接收和發送全局數據等。
圖 掃描過程
6) CPL返回第一階段,重新啟動循環時間監控。
在啟動完成後,每次循環都要調用一次組織塊OB1。OB1是用戶程序中的主程序,它可以調用別的邏輯塊(FB、FC、SFB或SFC)。循環程序處理過程可以被某些事件中斷。如果有中斷事件出現,當前正在執行的塊被暫停執行,並自動調用分配給該事件的組織塊。該組織塊被執行完後,被暫停執行的塊將從(cong) 被中斷的地方開始繼續執行。
在循環程序處理過程中,CPU並不直接訪問I/O模塊中的輸入地址區和輸出地址區,而是訪問CPU內(nei) 部的過程映像區。
在讀輸入模塊階段,PLC把所有外部輸入電路的接通/斷開狀態讀人過程映像輸入區。
外部輸入電路接通時,對應的過程映像輸入位為(wei) 1狀態,梯形圖中該輸入位的常開觸點接通,常閉觸點斷開。外部輸入電路斷開時,對應的過程映像輸入位為(wei) 0狀態,梯形圖中該輸入位的常開觸點斷開,常閉觸點接通。
某一編程元件對應的位為(wei) 1狀態時,稱該編程元件的狀態為(wei) ON,該位為(wei) 0狀態時,稱該編程元件的狀態為(wei) OFF。在程序執行階段,即使外部輸入電路的狀態發生了變化,過程映像輸入位的狀態也不會(hui) 隨之而變,輸入信號變化了的狀態隻能在下一個(ge) 掃描循環周期的讀取輸入模塊階段被讀入過程映像輸入區。
PLC的用戶程序由若幹條指令組成,指令在存儲(chu) 器中順序排列。在沒有跳轉指令和塊調用指令時,CPU從(cong) 第一條指令開始,逐條順序地執行用戶程序,直到用戶程序結束之處。在執行指令時,從(cong) 過程映像輸入區或別的存儲(chu) 區中將有關(guan) 編程元件的0、1狀態讀出來,並根據指令的要求執行相應的邏輯運算,運算的結果寫(xie) 入到對應的存儲(chu) 區中,因此,各編程元件的存儲(chu) 區的內(nei) 容隨著程序的執行而變化。