● 啟動 OB 的功能
如果 CPU 的操作模式從 STOP 切換到 RUN 時,包括啟動模式處于 RUN 模式時 CPU 斷電再上電和執行 STOP 到 RUN 命令切換時,啟動組織塊 OB 將被執行一次。啟動組織塊執行完畢后才開始執行主“程序循環”OB 。S7-1200 CPU 中支持多個啟動 OB ,按照編號順序(由小到大)依次執行,OB100 是默認設置。其它啟動 OB 的編號必須大于、等于123。
● 啟動 OB 的執行過程,V4.0版本以后的CPU請參見下圖1,V3.0版本及其以前的CPU請參見下圖2:
圖1. V4.0版本以后CPU啟動過程和運行過程圖例
圖2. V3.0版本及其以前CPU啟動過程和運行過程圖例
注意:早先版本和目前新版本的最大區別是對物理輸入的狀態復制到I存儲器(也就是過程映像)的執行時間,早先版本是在執行完啟動OB后進行,目前新版本是在在執行啟動OB之前進行。也就是對于新版本來說如果上電前的I點已經接通,則在啟動OB中是可以讀取到I點的狀態的,而不是必須讀I:P。
此外,在啟動OB執行過程中是無法輸出的,即使編程輸出到Q:P也是一樣的,都會在啟動OB結束后輸出。并且如果在啟動OB中出現了Q:P,在CPU的診斷緩沖區中還會出現如圖3的報警。
圖3 輸出到Q:P的報警
● 與啟動 OB 相關的信息
啟動 OB 中包含啟動信息,可以用于判斷保持性數據和實時時鐘是否丟失,可以在啟動 OB 中編寫指令。啟動 OB 的接口變量及啟動信息參考下圖3、4。
圖3. 啟動 OB 的接口變量
圖4. 啟動 OB 的啟動信息
讀取啟動 OB 的啟動信息的使用示例:當發生保持性數據丟失,輸出 Q0.0 為1,當發生實時時鐘丟失,輸出 Q0.1 為1。
在啟動 OB 中編程如圖5:
● 啟動 OB 的使用示例:
例如:在啟動 OB100 中無條件為地址為 MW100 賦初值100;有條件(當 I0.0 = true 時)為 MW102 賦初值200。具體實現過程如下:
1、按如下步驟創建啟動組織塊 OB100 。如圖6。
圖6. 創建啟動組織塊 OB100
2、OB100 中編程如下圖。如圖7。
圖7. OB100 中編程
注意:前面解釋過,不同CPU版本對由物理輸入的狀態復制到I存儲器(也就是過程映像)的執行時間不同,為了程序低版本和高版本的一致。因此,要在啟動模式下讀取物理輸入的當前狀態,必須對輸入執行立即讀取操作,例如 I0.0:P。
3、測試結果:程序下載后,在監控表中查看 MW100、MW102 的數據。
① 當硬件輸入 I0.0 為0時,CPU 上電啟動或 STOP--->RUN 操作時首先執行 OB100 ,即 MW100 被賦值100,MW102 未被賦值200。如圖8。
圖8. 測試結果1
② 當硬件輸入 I0.0 為1時,CPU 上電啟動或 STOP--->RUN 操作時首先執行 OB100 ,即 MW100 被賦值100,MW102 被賦值200。如圖9。
圖9. 測試結果2
審核編輯 :李倩
-
存儲器
+關注
關注
38文章
7492瀏覽量
163834 -
cpu
+關注
關注
68文章
10863瀏覽量
211763 -
編程
+關注
關注
88文章
3616瀏覽量
93734
原文標題:啟動 OB 塊:OB100
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論