<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

STEP7程序結構的基本原理

作者: 時(shí)間:2016-12-19 來(lái)源:網(wǎng)絡(luò ) 收藏
1、CPU中的程序

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

本文引用地址:http://dyxdggzs.com/article/201612/331126.htm

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

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


圖1常見(jiàn)的組織塊

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


圖2組織塊優(yōu)先級

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

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



關(guān)鍵詞: STEP7程序結構基本原

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>