<address id="bxe5x"></address>
      1. 加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線13185520415
        公司新聞
        西門子S7-1500 CPU 的OB塊講解
        發布時間: 2024-04-07 11:07 更新時間: 2024-11-25 08:00
        觀看西門子S7-1500 CPU 的OB塊講解視頻

        組織塊類型與優先級

                S7-1500 CPU 支持的優先級從 1(Zui低)到 26(Zui高),每個OB有其對應的優先級。OB可由事件觸發,所以也可以說事件具有與OB相對應的優先級。對于S7-1500 CPU,如果發生OB啟動事件,則可能引起以下反應:

      2. 如果事件源已分配一個OB,則事件將觸發所分配OB的執行并更新分配的過程映像分區。這意味著事件是按照優先級進行排列的(因為OB具有優先級)。

      3. 如果事件源并沒有分配任何OB(有一種可能是用戶并沒有添加相應OB),則將執行默認的系統響應。

      4.         表2概述了OB啟動事件,包括OB優先級的值、OB編號、默認的系統響應和OB個數。優先級數字越小表示優先級越低,例如程序循環組織塊的優先級為“1”,表示其優先級Zui低,能夠被其它組織塊所中斷。S7-1500組織塊的中斷類型及優先級分類參考表2。

         

        表2 OB塊類型及優先級


        注意:

                由表2可以看出,當發生時間錯誤和編程錯誤事件時,如果程序中沒有添加相應的組織塊,S7-1500 CPU將進入停機模式;而對于其它事件,即使S7-1500 CPU中沒有添加相應的組織塊,CPU也不會停機,這與S7-300/400是有區別的。

         1)程序循環組織塊

         操作系統每個周期調用程序循環組織塊一次,從而啟動用戶程序的執行。在S7-1500 CPU中,可以使用多個“程序循環”組織塊(OB編號大于等于123),并且按照序號由小到大的順序依次執行。所有的“程序循環”組織塊執行完成后,操作系統再次重新調用“程序循環”組織塊。在各個“程序循環”組織塊中調用FB、FC等用戶程序使之循環執行?!俺绦蜓h”組織塊的優先級為1且不能修改,這意味著優先級是Zui低的,可以被其它OB塊中斷?!俺绦蜓h”組織塊的執行如圖7-9所示。


          圖7-9 S7-1500程序循環組織塊

         

                2)時間中斷組織塊

                時間中斷組織塊用于在時間可控的應用中定期運行一部分用戶程序,可以實現在某個預設時間到達時只運行一次,或者在設定的觸發日期到達時,按每分、每小時、每周、每月、每月底等周期運行。當CPU的日期值大于設定的日期值時觸發相應的OB按設定的模式執行。在用戶程序中也可以通過調用SET_TINT指令設定時間中斷組織塊的參數,調用ACT_TINT指令激活時間中斷組織塊投入運行。與在OB塊屬性中的設置相比,通過用戶程序在CPU運行時修改設定的參數更加靈活。兩種方式可以任意選擇,也可以同時對一個OB塊進行參數設置。

         

                3)時間延遲中斷組織塊

                時間延時中斷OB在經過一段可組態的延時時間后啟動。操作系統會在調用系統函數SRT_DINT后開始計算延時時間,延時時間到達后觸發執行響應的OB。OB塊號及延遲時間在SRT_DINT參數中設定,延遲時間為1~60000ms,延遲精度為1ms,這也是不使用定時器作為延時條件的原因??梢允褂谩癈AN_DINT”指令取消已經啟動的延時中斷,

         

                4)循環中斷組織塊

                循環中斷組織塊按設定的時間間隔循環執行,循環中斷的間隔時間通過時間基數和相位偏移量來指定。在OB塊屬性中,每一個OB塊缺省的時間間隔可以由用戶設置。如果使用了多個循環中斷OB,當這些循環中斷OB的時間基數有公倍數時,可以使用相位偏移量來防止同時啟動。不同類型的S7-1500 CPU所支持的Zui短時間間隔不同,例如CPU 1516支持Zui短250μs的時間間隔,而CPU 1518支持Zui短100μs的時間間隔。在循環中斷組織塊中的用戶程序將按照固定的間隔時間執行一次。OB塊中的用戶程序執行時間必須小于設定的時間間隔。如果間隔時間較短,會造成循環中斷OB塊沒有完成程序掃描而再次被調用,從而造成CPU故障,觸發OB80報錯。如果程序中沒有創建OB80,則CPU進入停機模式。通過調用DIS_IRT,DIS_AIRT,EN_IRT系統指令可以禁用、延遲、使能循環中斷的調用。循環中斷組織塊通常處理需要固定掃描周期的用戶程序,例如PID函數塊通常需要在循環中斷中調用,以保證采樣時間的恒定。

         

                5)硬件中斷組織塊

                硬件中斷也稱過程中斷,用來響應由具有硬件中斷能力的設備(例如通信處理器CP及數字量輸入、輸出模塊等)產生的硬件中斷事件。例如,可使用具有硬件中斷的數字量輸入模塊觸發中斷響應,然后為每一個中斷響應分配相應的中斷OB塊,多個中斷響應可以觸發一個相同的硬件中斷OB。S7-1500 CPU支持多達50個硬件中斷組織塊,可以為Zui多50個不同的中斷事件分配獨立的硬件中斷組織塊,方便用戶對每個中斷事件獨立編程。 

                如果配置的中斷事件出現,則中斷當前主程序,執行中斷OB塊中的用戶程序一次,然后跳回中斷處繼續運行主程序。中斷程序的執行不受主程序掃描和過程映像區更新時間的影響,適合需要快速響應的應用。

                如果輸入模塊中的一個通道觸發硬件中斷,操作系統將識別該模塊的槽號,并觸發相應的OB塊,執行中斷OB塊之后發送與通道相關的確認。在識別和確認過程中,如果該通道存在再次的中斷事件,操作系統將不予響應;如果該模塊的其它通道存在中斷事件,則在當前正在執行的中斷確認之后響應這個新的中斷事件;如果是由不同的模塊觸發的中斷,中斷請求首先被記錄,中斷OB塊在空閑(沒有其它模塊的中斷請求)時被觸發。通過調用DIS_IRT,DIS_AIRT,EN_IRT系統函數可以禁用、延遲、使能硬件中斷的調用。

         

                6)DPV1中斷組織塊 OB55~OB57

                CPU響應PROFIBUS-DP V1從站觸發的中斷信息。

         

                7)等時同步中斷組織塊

                用于處理 PROFIBUS-DP 或PROFINET的等時同步用戶程序。在等時模式下,從各個從站/設備采集輸入信號,到輸出邏輯結果,需要以下過程:從站/設備輸入信號采樣循環(信號轉換)、從站/設備背板總線循環(轉換的信號從模塊傳遞到接口模塊)、總線循環(信號從分布式I/O傳遞到CPU)、程序執行循環(信號的程序處理,即等時同步中斷組織塊)、總線循環(信號從PLC傳遞到分布式I/O)、從站/設備背板總線循環(信號從站接口模塊傳遞到輸出模塊)及模塊輸出循環(信號轉換)等七個循環。同步時鐘將同步以上七個循環,優化數據的傳遞,并保證各個分布式I/O數據處理的同步性。


                8)時間錯誤組織塊OB80:

                OB 80用于處理時間故障。當在一個循環內程序執行第一次超出設置的Zui大循環時間時,CPU將自動調用OB80。如果程序中沒有創建OB80,CPU將進入停止模式,如果程序中已經創建了OB80,但是在同一次循環內程序執行超出設置的Zui大循環時間兩次,CPU也將進入停機模式。

         

                9)診斷中斷組織塊

                S7-1500操作系統在下列情況下調用診斷中斷組織塊:激活診斷功能的模塊檢測到其診斷狀態發生變化(事件到來或事件離開)時,向CPU發送診斷中斷請求時;發生電源錯誤觸發事件時;操作系統檢測到存儲錯誤以及硬件中斷丟失等事件時。


                10)拔出/插入中斷組織塊

                如果移除或者插入了已組態且未禁用的分布式I/O模塊或子模塊時,S7-1500 CPU操作系統將調用拔出/插入中斷組織塊。

                注意,目前S7-1500機架不支持熱插拔,所以拔出或插入中央機架模塊將導致CPU進入STOP模式。


                11)機架錯誤組織塊

                S7-1500 CPU操作系統在下列情況下調用機架錯誤OB:檢測到PROFIBUS-DP主站系統或PROFINET IO系統發生站點故障等事件(事件到達或離去);檢測到PROFINET智能設備的部分子模塊發生故障時。


                12)編程錯誤組織塊

                如果S7-1500 CPU在處理用戶程序指令時發生編程錯誤,則有兩種方式進行處理:

      5. 全局處理:調用編程錯誤組織塊。

      6. 本地處理:直接在用戶程序塊中調用指令“GET_ERROR”或者“GET_ERR_ID”進行處理。

      7.         如果沒有采取以上任何一種錯誤處理方式,則CPU會停機。

                比如圖7-10所示的一段程序,將數據寫入DB100中。

        聯系方式

        • 電  話:13510737515
        • 聯系人:董海波
        • 手  機:13185520415
        • 微  信:13185520415