加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線13185520415
        公司新聞
        西門子S7-1500CPU的過載特性
        發布時間: 2024-04-07 10:57 更新時間: 2024-11-22 08:00
        觀看西門子S7-1500CPU的過載特性視頻

         S7-1500 CPU的組織塊所支持的優先級從1(Zui低)到26(Zui高),這意味著同時發出多個OB請求時,將首先執行優先級Zui高的OB塊。如果OB有相同的優先級,則當觸發事件同時到來時,組織塊將按事件出現的順序(進入系統的順序)觸發。部分組織塊的優先級是可以修改的。

                如果到來事件的優先級低于正在處理的OB塊優先級,則CPU不會中斷當前正在執行的OB塊。如果此時相同的低優先級事件多次發生,那么CPU會對這些相同事件進行排隊。當執行完高優先級OB塊后,CPU執行隊列中低優先級事件對應的OB塊。

                當來自同一事件源的事件發生速度大于CPU的處理速度時,會發生過載。如果要控制臨時過載,可以限制未處理事件的數量(隊列中相同事件的數量)。當達到OB塊屬性設置中的未處理事件的數目時,則丟棄隨后的事件??梢栽谀承㎡B塊(比如循環中斷組織塊、時間中斷組織塊)的 “待進入隊列的事件” 參數中設置這個事件隊列的數目。如果設置此參數值為1,則僅臨時存儲一個事件。在這個OB塊的下一次調用中,可在其優化的啟動信息中的“event_count”輸入參數中獲取已丟失事件的數目,然后對過載情況作出適當的響應。

                例如,循環中斷組織塊OB30的周期為10ms,優先級設置為16,“待進入隊列的事件”設置為1。硬件中斷組織塊OB40的優先級為17,用戶程序執行時間為30ms。那么當硬件中斷發生時,OB30只進入隊列一次(本該執行三次,但實際上會丟失兩次),當OB40執行完畢后,不會執行丟失的那兩次OB30。

                如果CPU丟失了OB啟動事件,那么之后的行為特性將取決于OB塊的屬性參數“報告事件溢出到診斷緩沖區”,如果選中了該復選框,CPU將把此次過載情況寫入診斷緩沖區。

                OB塊的屬性參數“啟用時間錯誤”用于指定在達到類似事件的指定過載級別時是否調用時間錯誤OB80。如果調用(選中復選框),則需使用參數“時間錯誤的事件閾值”指定調用OB80時隊列中類似事件的數量。取值范圍為:1≤“時間錯誤的事件閾值” ≤待排隊的事件數。示例中,此參數設置為1,則排隊隊列數目為1時,就會調用OB80。事件隊列在OB塊的屬性中設置,如圖1所示。


        圖1 組織塊的事件隊列設置

        2 組織塊的本地數據區堆棧(L 堆棧)

                S7-1500 CPU為每個優先級分配了64K的臨時變量,包括下列數據:

      1. 程序塊中的臨時變量

      2. 組織塊的開始信息(非優化存儲的組織塊與操作系統的接口區)

      3. FC、FB的參數接口

      4.         如果在一個程序塊中使用了臨時變量,它將占用調用它的組織塊的L堆棧,程序塊嵌套調用越深,占用L堆棧空間越大。例如在OB1中調用FC1,在FC1中調用FC10、FC11,在FC11中又調用FC12、FC13,占用L堆棧大小的計算方式參3。

         

        表3組織塊的L堆棧


        注意:

        如果使用的臨時變量超過L堆棧規定的限制,又沒有進行編程錯誤處理,則S7-1500 CPU將停機報錯。

         

                在創建組織塊時(非優化的存儲方式),系統自動在接口區聲明了一些不能被修改的臨時變量,用于記錄組織塊的啟動信息。如果用戶需要自定義臨時變量,必須在這些啟動信息之后創建。臨時變量僅在其所屬的塊執行時可用,當該塊執行完畢后,這些臨時變量(L堆棧)可能由于其它塊的執行而被覆蓋。


        4組織塊的接口區

                在組織塊的接口區中,除了自動生成的變量之外,用戶可以自行定義臨時變量及本地常量,所支持的數據類型如表4所示。

         表4 組織塊OB接口區的數據類型

        聯系方式

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