啟動 OB
啟動 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 的接口變量及啟動信息如圖 4、表 1 所示。
圖 4. 啟動 OB 的接口變量
輸入 | 數據類型 | 說明 |
---|---|---|
LostRetentive | Bool | 如果保持性數據存儲區丟失,該位為 True |
LostRTC | Bool | 如果時鐘(實時時鐘)丟失,該位為 True |
表 1. 啟動 OB 的啟動信息
讀取啟動 OB 的啟動信息的使用示例:
當發生保持性數據丟失,輸出 Q0.0 為1,當發生實時時鐘丟失,輸出 Q0.1 為1。
在啟動 OB 中編程如圖 5 所示:
圖 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
常見問題
使用啟動組織塊需要注意什么?
1、在啟動階段,對中斷事件進行排隊但不進行處理,需要等到啟動事件完成后才進行處理;
2、啟動 OB 的執行過程沒有時間限制,不會激活程序最大循環監視時間;
3、在啟動模式下,可以更改 HSC(高速計數器)、PWM(脈沖寬度調制)以及 PtP(點對點通信)模塊的組態。
審核編輯:劉清
-
存儲器
+關注
關注
38文章
7494瀏覽量
163917 -
cpu
+關注
關注
68文章
10872瀏覽量
211999 -
時鐘
+關注
關注
11文章
1735瀏覽量
131537 -
HSC
+關注
關注
0文章
8瀏覽量
8358 -
S7-1200
+關注
關注
11文章
331瀏覽量
17997
原文標題:啟動 OB100
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論