西门子编程使用的OB块解释
生活随笔
收集整理的這篇文章主要介紹了
西门子编程使用的OB块解释
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1
、自由循環組織塊
OB1
??????S7??CPU 啟動完成后,操作系統循環執行 OB1 , OB1 執行完成后,操作系統再次啟動 OB1 。在 OB1 中可以調用 FB 、 SFB 、 FC 、 SFC 等用戶程序使其循環執行。除 OB90 以外, OB1 優先級最低,可以被其他 OB 中斷。 OB1 默認掃描監控時間為 150ms (可設置),掃描超時, CPU 自動調用) B80 報錯,如果程序中沒有建立 OB80 , CPU 進入停止模式。
2 、日期中斷組織塊 OB10~OB17
?????? 在 CPU 屬性中,可以設置日期中斷組織塊 OB10~OB17 觸發的日期、執行模式(到達設定的觸發日期后, OB 只執行一次或按每分、每小時、每周、每月周期執行)等參數,當 CPU 的日期值大于設定的日期值時,觸發相應的 OB 并按設定的模式執行。在用戶程序中也可以通過調用 SFC28 系統函數設定 CPU 日期中斷的參數,調用 SFC30 激活日期中斷投入運行,與在 CPU 屬性中的設置相比,通過用戶程序,可以在 CPU 運行時靈活地修改設定的參數,兩種方式可以任意選擇,也可以同時對一個 OB 進行設置。
3 、時間延遲中斷組織塊 OB20~OB23
?????? 時間延遲中斷組織塊 OB20~OB23 的優先級及更新過程映像區的參數需要在 CPU 屬性中設置,通過調用系統函數 SFC32 觸發執行, OB 號及延遲時間在 SFC32 參數中設定,延遲時間為 1~60000ms ,大大優于定時器精度。
4 、循環中斷組織塊 OB30~OB38
?????? 循環中斷組織塊 OB30~OB38 按設定的時間間隔循環執行,循環中斷的間隔時間在 CPU 屬性中設定,每一個 OB 默認的時間間隔不同,例如) B35 默認的時間間隔為 100ms ,在 OB35 中的用程序將每隔 100ms 調用一次,時間間隔可以自由設定,最小時間間隔不能小于 55ms 。 OB 中的用戶程序執行時間必須小于設定的時間間隔,如果間隔時間較短,由于循環中斷 OB 沒有完成程序掃描而被再次調用,從而造成 CPU 故障,觸發 OB80 報錯,如果程序中沒有創建 OB80 , CPU 進入停止模式。通過調用 SFC39~SFC42 系統函數可以禁止、延遲、使能循環中斷的調用。循環中斷組織塊通常處理需要固定掃描周期的用戶程序,例如 PID 函數塊通常需在循環中斷中調用以處理積分時間的計算。
5 、硬件中斷組織塊 OB40~OB47
?????? 硬件中斷也叫過程中斷,由外部設備產生,例如功能模塊 FM 、通信處理器 CP 及數字量輸入、輸出模塊等。通常使用具有硬件中斷的數字量輸入模塊觸發中斷響應,然后為每一個模塊配置相應的中斷 OB (一個模塊只能良一個中斷 OB , S7-300 系列 PLC??CPU 只能觸發硬件中斷 OB40 ),在模塊配置中可以選擇輸入點的上升沿、下降沿或全部作為觸發中斷 OB 的事件。配置中的中斷事件出現,中斷主程序,執行中斷 OB 中的用戶程序一個周期,然后跳回中斷處繼續執行主程序。使用中斷與普通輸入信號相比,沒有主程序掃描和過程映像區更新時間,適合需要快速響應的應用。
???????? 如果輸入模塊中的一個通道觸發硬件中斷,操作系統將識別模塊的槽號及觸發相應的 OB ,中斷 OB 執行之后發送與通道相關的確認。在識別和確認過程中,該通道再次觸發的中斷事件將丟失;如果模塊其他通道觸發中斷事件,中斷不會丟失,在當前正在運行的中斷確認之后觸發;如果是不同的模塊觸發的中斷事件,中斷請求被記錄,中斷 OB 在空閑(沒有模塊其他通道的中斷請求)時觸發。通過調用 SFC39~SFC42 系統函數可以禁止、延遲、使能硬件中斷的調用。
6 、 DPV1 中斷組織塊 OB55~OB57
??????CPU 響應 PROFIBUS-DP??V1 從站觸發的中斷信息。
7 、多處理器中斷組織塊 OB60
?????? 用于 S7-400 系列 PLC 多 CPU (一個機架中最多插入 4 個 CPU 完成同一個復雜任務)處理功能,通過調用 SFC35 ,可以觸發 OB60 在多個 CPU 中同時執行。
8 、時鐘同步中斷組織塊 OB61~OB64
?????? 用于處理 PROFIBUS-DP??V1 等時鐘同步,從采集各個從站的輸入到邏輯結果輸出,需要經過從站輸入信號采樣循環(信號轉換)、從站背板總線循環(轉換的信號從模塊傳遞到從站接口)、 PROFIBUS-DP 總線循環(信號自從站傳遞到主站)、程序執行循環(信號的程序處理)、 PROFIBUS-DP 總線循環(信號從主站傳遞到從站)、從站背板總線循環(信號從從站接口傳遞到輸出柜塊)及模塊輸出循環(信號轉換) 7 個循環,時鐘同步中斷將 7 個循環同步,優化數據的傳遞并保證 PROFIBUS-DP 各個從站數據處理的同步性。 PROFIBUS 時鐘同步中斷只能用于 S7-400 系列 PLC??CPU (具有 DP??V2?? 功能)。
9 、工藝同步處理中斷組織塊 OB65
?????? 用于 T-CPU (具有運動控制功能的 CPU )工藝塊與開始程序的同步處理。
10 、冗余故障中斷組織塊 OB70 、 OB72
?????? 用于 S7-400H 冗余系統,當 I/O 冗余故障,例如冗余的 PROFIBUS-DP 從站故障時,觸發 OB70 的調用,當 CPU 冗余故障,如 CPU 切換、同步故障時,觸發 OB72 的調用。如果 I/O 冗余,或者 CPU 冗余故障而在 CPU 中沒有創建 OB70 、 OB72 , CPU 不會進入停止模式。
11 、異步故障中斷組織塊 OB80~OB87
?????? 異步故障中斷用于處理各種故障事件。
??????OB80 :處理時間故障、 CIR ( Configuration??In??Run )后的重新運行等功能,例如 OB1 或 OB35 運行超時, CPU 自動調用 OB80 報錯,如果程序中沒有創建 OB80 , CPU 進入停止模式。
??????OB81 :處理與電源相關的各種信息( S7-400 系列 PLC??CPU 只有電池故障時調用),出現故障, CPU 自動調用 OB81 報錯,如果程序中沒有創建 OB81 , CPU 不會進入停止模式。
??????OB82 :診斷中斷,如果使能一個具有診斷中斷模塊的診斷功能(例如斷線、傳感器電源丟失),出現故障時調用 OB82 ,如果程序中沒有創建 OB82 , CPU 進入停止模式。診斷中斷還對 CPU 所有內外部故障,包括模塊前連接器拔出、硬件中斷丟失等作出響應。
??????OB83 :用于模塊插拔事件的中斷處理,事件出現, CPU 自動調用 OB83 報警,如果程序中沒有創建 OB83 , CPU 進入停止模式。
??????OB84 :用于處理存儲器、冗余系統中兩個 CPU 的冗余連接性能降低等事件。
??????OB85 :用于處理操作系統訪問模塊故障、更新過程映像區時 I/O 訪問故障、事件觸發但相應的 OB 沒有下載到 CPU 等事件,事件出現, CPU 自動調用 OB85 報錯,如果程序中沒創建 OB85 , CPU 進入停止模式。
??????OB86 :用于處理擴展機架(不適用于 S7-300 系列)、 PROFIBUS-DP 主站、 PROFIBUS-DP 或 PROFINET??I/O 分布 I/O 系統中站點故障等事件,事件出現, CPU 自動調用 OB86 報錯,如果程序中沒有創建, CPU 進入停止模式。
??????OB87 :用于處理 MPI??GD?? 通信及時鐘同步故障,事件出現, CPU 自動調用 OB87 報錯,如果程序中沒有創建, CPU 不會進入停止模式。
12 、處理中斷組織塊 OB88
?????? 用于處理程序嵌套、區域數據分配故障,故障出現, CPU 自動調用 OB88 報錯,如果程序中沒有創建, CPU 進入停止模式。
13 、背景循環中斷組織塊 OB90
?????? 優先級最低,保證 CPU 最短的掃描時間,避免過程映像區更新過于頻繁。程序的下載和 CPU 中程序的刪除觸發 OB90 的調用。只能用于 S7-400 系列 PLC??CPU 。
14 、啟動中斷組織塊 OB100~OB102
?????? 用于處理 CPU 啟動事件,暖啟動 CPU 調用 OB100 ,熱啟動 CPU 調用 OB101 (不適合 S7-300 系列 PLC 和 S7-400H ),冷啟動 CPU 調用 OB102 ,溫度越低, CPU 啟動時清除存儲器中數據區的類型越多。
15 、同步錯誤中斷組織塊 OB121 、 OB122
??????OB121 處理與編程故障有關的事件,例如調用的函數沒有下載到 CPU 中、 BCD 碼出錯等, OB122 處理與 I/O 地址訪問故障有關的事件,例如訪問一個 I/O 模塊時,出現讀故障等。如果上述故障出現,在程序中沒有創建 OB121 、 OB122 , CP 進入停止模式。
???????? 注意:不是所有的 OB 都可以在 S7??CPU 中使用,例如 S7-300 系列 PLC??PU 中只有暖啟動 OB100 ,操作系統不能調用 OB101 、 OB102 , CPU 中可以使用的 OB 請參考 CPU 選型手冊。
????????S7-300 系列 PLC 中組織塊的優先級是固定的,不能修改,在 S7-400 系列 PLC 中下列組織塊的優先級可以進行修改:
????????OB10~OB47 :優先級修改范圍 2~23 。
????????OB70~OB72 :優先級修改范圍 2~38 。
????????OB81~OB87 :優先級修改范圍 2~26 ,優先級 24~26 確保異步故障中斷不被其他的事件中斷。
???????? 幾個組織塊可以具有相同的優先級,當事件同時出現時,組織塊按事件出現的先后順序觸發,如果超過 12 個相同優先級的 OB 同進觸發,中斷可能丟失。
??????S7??CPU 啟動完成后,操作系統循環執行 OB1 , OB1 執行完成后,操作系統再次啟動 OB1 。在 OB1 中可以調用 FB 、 SFB 、 FC 、 SFC 等用戶程序使其循環執行。除 OB90 以外, OB1 優先級最低,可以被其他 OB 中斷。 OB1 默認掃描監控時間為 150ms (可設置),掃描超時, CPU 自動調用) B80 報錯,如果程序中沒有建立 OB80 , CPU 進入停止模式。
2 、日期中斷組織塊 OB10~OB17
?????? 在 CPU 屬性中,可以設置日期中斷組織塊 OB10~OB17 觸發的日期、執行模式(到達設定的觸發日期后, OB 只執行一次或按每分、每小時、每周、每月周期執行)等參數,當 CPU 的日期值大于設定的日期值時,觸發相應的 OB 并按設定的模式執行。在用戶程序中也可以通過調用 SFC28 系統函數設定 CPU 日期中斷的參數,調用 SFC30 激活日期中斷投入運行,與在 CPU 屬性中的設置相比,通過用戶程序,可以在 CPU 運行時靈活地修改設定的參數,兩種方式可以任意選擇,也可以同時對一個 OB 進行設置。
3 、時間延遲中斷組織塊 OB20~OB23
?????? 時間延遲中斷組織塊 OB20~OB23 的優先級及更新過程映像區的參數需要在 CPU 屬性中設置,通過調用系統函數 SFC32 觸發執行, OB 號及延遲時間在 SFC32 參數中設定,延遲時間為 1~60000ms ,大大優于定時器精度。
4 、循環中斷組織塊 OB30~OB38
?????? 循環中斷組織塊 OB30~OB38 按設定的時間間隔循環執行,循環中斷的間隔時間在 CPU 屬性中設定,每一個 OB 默認的時間間隔不同,例如) B35 默認的時間間隔為 100ms ,在 OB35 中的用程序將每隔 100ms 調用一次,時間間隔可以自由設定,最小時間間隔不能小于 55ms 。 OB 中的用戶程序執行時間必須小于設定的時間間隔,如果間隔時間較短,由于循環中斷 OB 沒有完成程序掃描而被再次調用,從而造成 CPU 故障,觸發 OB80 報錯,如果程序中沒有創建 OB80 , CPU 進入停止模式。通過調用 SFC39~SFC42 系統函數可以禁止、延遲、使能循環中斷的調用。循環中斷組織塊通常處理需要固定掃描周期的用戶程序,例如 PID 函數塊通常需在循環中斷中調用以處理積分時間的計算。
5 、硬件中斷組織塊 OB40~OB47
?????? 硬件中斷也叫過程中斷,由外部設備產生,例如功能模塊 FM 、通信處理器 CP 及數字量輸入、輸出模塊等。通常使用具有硬件中斷的數字量輸入模塊觸發中斷響應,然后為每一個模塊配置相應的中斷 OB (一個模塊只能良一個中斷 OB , S7-300 系列 PLC??CPU 只能觸發硬件中斷 OB40 ),在模塊配置中可以選擇輸入點的上升沿、下降沿或全部作為觸發中斷 OB 的事件。配置中的中斷事件出現,中斷主程序,執行中斷 OB 中的用戶程序一個周期,然后跳回中斷處繼續執行主程序。使用中斷與普通輸入信號相比,沒有主程序掃描和過程映像區更新時間,適合需要快速響應的應用。
???????? 如果輸入模塊中的一個通道觸發硬件中斷,操作系統將識別模塊的槽號及觸發相應的 OB ,中斷 OB 執行之后發送與通道相關的確認。在識別和確認過程中,該通道再次觸發的中斷事件將丟失;如果模塊其他通道觸發中斷事件,中斷不會丟失,在當前正在運行的中斷確認之后觸發;如果是不同的模塊觸發的中斷事件,中斷請求被記錄,中斷 OB 在空閑(沒有模塊其他通道的中斷請求)時觸發。通過調用 SFC39~SFC42 系統函數可以禁止、延遲、使能硬件中斷的調用。
6 、 DPV1 中斷組織塊 OB55~OB57
??????CPU 響應 PROFIBUS-DP??V1 從站觸發的中斷信息。
7 、多處理器中斷組織塊 OB60
?????? 用于 S7-400 系列 PLC 多 CPU (一個機架中最多插入 4 個 CPU 完成同一個復雜任務)處理功能,通過調用 SFC35 ,可以觸發 OB60 在多個 CPU 中同時執行。
8 、時鐘同步中斷組織塊 OB61~OB64
?????? 用于處理 PROFIBUS-DP??V1 等時鐘同步,從采集各個從站的輸入到邏輯結果輸出,需要經過從站輸入信號采樣循環(信號轉換)、從站背板總線循環(轉換的信號從模塊傳遞到從站接口)、 PROFIBUS-DP 總線循環(信號自從站傳遞到主站)、程序執行循環(信號的程序處理)、 PROFIBUS-DP 總線循環(信號從主站傳遞到從站)、從站背板總線循環(信號從從站接口傳遞到輸出柜塊)及模塊輸出循環(信號轉換) 7 個循環,時鐘同步中斷將 7 個循環同步,優化數據的傳遞并保證 PROFIBUS-DP 各個從站數據處理的同步性。 PROFIBUS 時鐘同步中斷只能用于 S7-400 系列 PLC??CPU (具有 DP??V2?? 功能)。
9 、工藝同步處理中斷組織塊 OB65
?????? 用于 T-CPU (具有運動控制功能的 CPU )工藝塊與開始程序的同步處理。
10 、冗余故障中斷組織塊 OB70 、 OB72
?????? 用于 S7-400H 冗余系統,當 I/O 冗余故障,例如冗余的 PROFIBUS-DP 從站故障時,觸發 OB70 的調用,當 CPU 冗余故障,如 CPU 切換、同步故障時,觸發 OB72 的調用。如果 I/O 冗余,或者 CPU 冗余故障而在 CPU 中沒有創建 OB70 、 OB72 , CPU 不會進入停止模式。
11 、異步故障中斷組織塊 OB80~OB87
?????? 異步故障中斷用于處理各種故障事件。
??????OB80 :處理時間故障、 CIR ( Configuration??In??Run )后的重新運行等功能,例如 OB1 或 OB35 運行超時, CPU 自動調用 OB80 報錯,如果程序中沒有創建 OB80 , CPU 進入停止模式。
??????OB81 :處理與電源相關的各種信息( S7-400 系列 PLC??CPU 只有電池故障時調用),出現故障, CPU 自動調用 OB81 報錯,如果程序中沒有創建 OB81 , CPU 不會進入停止模式。
??????OB82 :診斷中斷,如果使能一個具有診斷中斷模塊的診斷功能(例如斷線、傳感器電源丟失),出現故障時調用 OB82 ,如果程序中沒有創建 OB82 , CPU 進入停止模式。診斷中斷還對 CPU 所有內外部故障,包括模塊前連接器拔出、硬件中斷丟失等作出響應。
??????OB83 :用于模塊插拔事件的中斷處理,事件出現, CPU 自動調用 OB83 報警,如果程序中沒有創建 OB83 , CPU 進入停止模式。
??????OB84 :用于處理存儲器、冗余系統中兩個 CPU 的冗余連接性能降低等事件。
??????OB85 :用于處理操作系統訪問模塊故障、更新過程映像區時 I/O 訪問故障、事件觸發但相應的 OB 沒有下載到 CPU 等事件,事件出現, CPU 自動調用 OB85 報錯,如果程序中沒創建 OB85 , CPU 進入停止模式。
??????OB86 :用于處理擴展機架(不適用于 S7-300 系列)、 PROFIBUS-DP 主站、 PROFIBUS-DP 或 PROFINET??I/O 分布 I/O 系統中站點故障等事件,事件出現, CPU 自動調用 OB86 報錯,如果程序中沒有創建, CPU 進入停止模式。
??????OB87 :用于處理 MPI??GD?? 通信及時鐘同步故障,事件出現, CPU 自動調用 OB87 報錯,如果程序中沒有創建, CPU 不會進入停止模式。
12 、處理中斷組織塊 OB88
?????? 用于處理程序嵌套、區域數據分配故障,故障出現, CPU 自動調用 OB88 報錯,如果程序中沒有創建, CPU 進入停止模式。
13 、背景循環中斷組織塊 OB90
?????? 優先級最低,保證 CPU 最短的掃描時間,避免過程映像區更新過于頻繁。程序的下載和 CPU 中程序的刪除觸發 OB90 的調用。只能用于 S7-400 系列 PLC??CPU 。
14 、啟動中斷組織塊 OB100~OB102
?????? 用于處理 CPU 啟動事件,暖啟動 CPU 調用 OB100 ,熱啟動 CPU 調用 OB101 (不適合 S7-300 系列 PLC 和 S7-400H ),冷啟動 CPU 調用 OB102 ,溫度越低, CPU 啟動時清除存儲器中數據區的類型越多。
15 、同步錯誤中斷組織塊 OB121 、 OB122
??????OB121 處理與編程故障有關的事件,例如調用的函數沒有下載到 CPU 中、 BCD 碼出錯等, OB122 處理與 I/O 地址訪問故障有關的事件,例如訪問一個 I/O 模塊時,出現讀故障等。如果上述故障出現,在程序中沒有創建 OB121 、 OB122 , CP 進入停止模式。
???????? 注意:不是所有的 OB 都可以在 S7??CPU 中使用,例如 S7-300 系列 PLC??PU 中只有暖啟動 OB100 ,操作系統不能調用 OB101 、 OB102 , CPU 中可以使用的 OB 請參考 CPU 選型手冊。
????????S7-300 系列 PLC 中組織塊的優先級是固定的,不能修改,在 S7-400 系列 PLC 中下列組織塊的優先級可以進行修改:
????????OB10~OB47 :優先級修改范圍 2~23 。
????????OB70~OB72 :優先級修改范圍 2~38 。
????????OB81~OB87 :優先級修改范圍 2~26 ,優先級 24~26 確保異步故障中斷不被其他的事件中斷。
???????? 幾個組織塊可以具有相同的優先級,當事件同時出現時,組織塊按事件出現的先后順序觸發,如果超過 12 個相同優先級的 OB 同進觸發,中斷可能丟失。
總結
以上是生活随笔為你收集整理的西门子编程使用的OB块解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尚硅谷视频讲解:多态性
- 下一篇: MATLAB基础绘图操作