首先得清楚S7係列plc程序執行的過程,如下圖所示。
- PLC得電或由STOP模式切換到RUN模式時,CPU起動,同時清除沒有保持功能的位存儲器、定時器、計數器,清除中斷堆棧和塊堆棧的內容,複位保存的硬件中斷等。
- 執行“係統起動組織塊”OB100,該組織塊可以自定義編程,實現一些初始化的工作;
- 係統進入周期掃描,並起動循環時間監控;
- CPU將輸出過程映像區的數據寫入輸出模塊;
- 讀取輸入模塊的狀態,並寫入輸入過程映像區;
- CPU調用OB1,執行用戶程序,期間,根據需要可調用其他邏輯塊(FB、SFB、FC及SFC),來實現控製任務;
- 在循環結束時,操作係統執行所有掛起的任務,例如下載和刪除塊、接收和發送全局數據等;
- CPU重新啟動循環時間監控,開始新的循環;
- 9、在執行用戶程序的過程中,如果有中斷事件發生,當前執行的塊將暫停執行,轉而執行相應的組織塊,來響應中斷。該組織塊執行完成後,之前被暫停的塊將從中斷的地方繼續開始執行。OB1具有很低的優先級,除了OB90外,所有的組織塊都能中斷OB1。