新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STEP7程序結構的基本原理

        STEP7程序結構的基本原理

        作者: 時間:2016-12-19 來源:網絡 收藏
        1、CPU中的程序

        S7-300/400系列CPU 原則上運行兩個不同的程序:操作系統和用戶程序。
        每個CPU都帶有集成的操作系統,組織與特定控制任務無關的所有CPU功能和順序。操作系統任務包括下列各項:處理重啟(熱啟動)和熱重啟;更新輸入的過程映像表,并輸出輸出過程映像表;調用用戶程序;采集中斷信息,調用中斷OB;識別錯誤并進行錯誤處理;管理內存區域;與編程設備和其它通訊伙伴進行通訊;通過修改操作系統參數(操作系統默認設置),可以在某些區域影響CPU響應。
        用戶程序則是由用戶進行創建,在STEP 7中進行編程后并將其下載到CPU中。它包含處理特定自動化任務所要求的所有功能,其任務包括:確定CPU的重啟(熱啟動)和熱重啟條件,如用特定值初始化信號;處理過程數據,如產生二進制信號的邏輯鏈接,獲取并評估模擬量信號,指定用于輸出的二進制信號,輸出模擬值;響應中斷;處理正常程序周期中的干擾。
        2、用戶程序中的塊
        在STEP 7編程軟件中進行構建的用戶程序,可以將程序分成單個或獨立的程序段,稱為“塊”。,這對于一個大的工業自動化過程來說具有非常大的優點,比如易于理解、可以標準化、方便修改程序、簡化測試等。表3-2所示為在S7用戶程序內可使用多種塊的類型。

        本文引用地址:http://www.104case.com/article/201612/331126.htm

        OB、FB、SFB、FC和SFC包含程序段,因此也稱為邏輯塊。每種塊類型許可的塊數目和塊長度由CPU決定。

        3、組織塊
        組織塊(OB)表示操作系統和用戶程序之間的接口,它由操作系統調用,控制循環中斷驅動的程序執行、plc啟動特性和錯誤處理。用戶可以在STEP 7中對組織塊進行編程來確定CPU特性。
        常見的組織塊主要包括以下部分(如圖1所示):


        圖1常見的組織塊

        組織塊確定單個程序段執行的順序,即啟動事件。啟動事件觸發OB調用稱為中斷,一個OB調用可以中斷另一個OB的執行,哪個OB允許中斷另一個OB取決于其優先級,高優先級的OB可以中斷低優先級的OB,背景OB的優先級最低。
        可以通過STEP 7給中斷分配參數,如通過參數分配,可以取消選定參數塊中的中斷OB或優先級:日歷中斷、延時中斷、循環中斷和硬件中斷(如圖2所示)。


        圖2組織塊優先級

        必須說明的是:S7-300 CPU上的組織塊優先級固定,但是對于S7-400 CPU(和CPU 318),可以通過STEP 7 修改OB10 - OB47組織塊的優先級或者可以將相同優先級分配給多個OB。具有相同優先級的OB按照其啟動事件發生的先后次序進行處理。

        4、功能塊、功能和數據塊
        功能塊(FB)是屬于用戶自己編程的塊,需要分配數據塊(DB)作為其內存(實例數據塊),因此傳送到FB的參數和靜態變量保存在實例DB中,而臨時變量則保存在本地數據堆棧中。執行完FB時,不會丟失實例DB中保存的數據。但執行完FB時,會丟失保存在本地數據堆棧中的數據。
        系統功能塊(SFB)是集成在S7 CPU中的功能塊,SFB是操作系統的一部分,不作為程序的一部分而被加載。同FB一樣,必須給SFB創建實例數據塊,然后將它們作為程序的一部分下載到CPU中。
        功能(FC)也是屬于用戶自己編程的塊,是一種"不帶內存"的邏輯塊。屬于FC的臨時變量保存在本地數據堆棧中,執行FC時,該數據將丟失,為永久保存該數據,功能也可使用共享數據塊。由于FC本身沒有內存,因此,必須始終給它指定實際參數。不能給FC的本地數據分配初始值。
        FC和FB輸出參數之間的重要區別在于后者使用實例DB。在功能塊(FB)中,訪問參數時,使用實例DB中的實際參數副本。如果調用FB時,沒有傳送輸入參數或沒有寫訪問輸出參數,那么將使用原先保存在實例DB(實例DB = FB內存)中的值。但功能(FC)沒有內存。(http://www.diangon.com/版權所有)因此,與FB相反,將形式參數分配給這些FC不是可選,而是必須的。通過地址(指針跨過區域邊界指向目標)訪問FC參數。當數據區(數據塊)地址或調用塊的局部變量用作實際參數時,實際參數的副本將臨時保存到用于傳送參數的調用塊的本地數據區中。
        系統功能(SFC)是集成在S7 CPU中的預編程功能,可以在程序中調用SFC。SFC屬于操作系統,不能作為程序的一部分而被加載。同FC一樣,SFC也是"不具內存"的塊。
        與邏輯塊(如FB、OB等)相反,數據塊不包含STEP 7指令,它們用來存儲用戶數據,即數據塊包含用戶程序使用的變量數據。共享數據塊則用來存儲可由所有其它塊訪問的用戶數據,其大小各不相同。用戶也可以任何方式構造共享數據塊,滿足特定要求。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 张北县| 九江县| 尚志市| 英德市| 化州市| 嫩江县| 涿鹿县| 贵港市| 石楼县| 上杭县| 会宁县| 新疆| 长寿区| 绥芬河市| 永定县| 泰顺县| 沂水县| 龙江县| 汤阴县| 洪洞县| 达尔| 资中县| 辰溪县| 遂川县| 丰县| 任丘市| 巴马| 仪陇县| 长春市| 巴里| 闽侯县| 新宾| 昌邑市| 桐梓县| 泰顺县| 民乐县| 泽州县| 沛县| 崇明县| 和平县| 伊吾县|