S7300臨時變量和靜態變量的區別
S7300臨時變量和靜態變量的區別
TEMP (臨時變量):暫時保存在局部數據堆棧中的變量。同一級POU的臨時變量使用局部數據堆棧中的同一塊物理存儲區,類似於公用的布告欄,誰都可以往上麵貼布告,後貼的布告將原來的布告覆蓋掉。每次調用POU之後,不再保存它的臨時變量的值。每次調用FC和FB時,首先應初始化它的臨時變量(寫入數值),然後再使用它,簡稱為先賦值後使用。
STAT(靜態變量):保存在背景數據塊中,背景數據塊相當於每次調用功能塊時對應的被控對象的私人數據倉庫。功能塊執行完後,背景數據塊中的數據不會丟失,以供下次執行功能塊時使用。
所以在功能塊執行完後需要保存的變量應使用靜態變量。
靜態變量:FB背景數據塊特有的變量類型。
1、有絕對地址。
2、有保存功能。
當作為背景數據塊調用後,它有自己的絕對地址.用法可以等價於M.DB。它僅僅作為FB的一種形式參數類型.不同於INT.OUT.IN_OUT的是當FB被調用是它不能作為參數進行輸入輸出.
而不同於TEMP的是:TEMP是局部變量,它隻在本塊,本掃描周期內維持數據,沒有記憶功能,而STAT有記憶功能.如果沒有程序去賦值,它的數據將一直保存.
另外注意一點:如果采用了多重背景數據塊STAT等同於TEMP
在回答你的問題之前,有必要對變量聲明表有一個基本了解。在STEP7中有兩種用來定義符號地址的表格形式:符號表(共享符號)和變量聲明表(局域符號),其本質都是為了建立絕對地址與符號地址之間的內在聯係,但表格針對的對象不同。共享符號是整個程序所使用的共同符號(用於全局符號定義的表為符號表);而局域符號是某一特定邏輯快(OB、FB、FC等)所使用的臨時性標記,隻能在特定的邏輯塊中進行臨時性定義。用於臨時性的、局域符號定義的表被稱為變量聲明表,又稱局部變量聲明表。
局部變量聲明表分為參數(輸入參數IN、輸出參數OUT、輸入/輸出參數IN_OUT)和局部變量。局部變量又包括靜態變量(STAT)和臨時變量(TEMP)兩種。參數可在調用塊(邏輯塊,塊中的形參)和被調用塊(功能FB有自己自動生成的背景數據塊DI,而功能FC隻能使用共享數據塊,提供調用塊的形參的實際參數值,與調用塊形式參數一一對應,數據類型必需一致)。靜態變量和臨時變量是僅供邏輯塊本身使用數據,不能用作不同程序塊之間的數據接口。
通過以上分析,我們知道所謂局部變量(包括靜態變量和暫態變量)都是指對特定的邏輯塊而言的,局部變量隻是在它所在的塊中有效,離開具體的邏輯塊談上述變量是沒有意義的,你不能在其他塊中調用利用變量(包括靜態變量和暫態變量),這是與共享符號不一致的,共享符號可以被任意塊調用。在每個邏輯塊的前上麵部分就是變量聲明表的區域,在變量聲明表中,用戶聲明本塊中專用的變量,即局部變量包括塊的形參和參數的係統屬性。你可以在不同的塊中使用相同的局部變量符號不會產生衝突。
靜態變量(STAT)在PLC運行期間始終被存儲。S7 將靜態變量定義在背景數據塊(針對FB而言,FC和OB無靜態變量),當被調用塊運行時,能讀出或修改靜態變量;被調用塊結束後,靜態變量保留在數據塊中;
臨時變量(TEMP)是一種在塊執行時,用來暫時存儲數據的變量,這些數據存儲在CPU工作存儲區的局部數據堆棧(L堆棧)中。臨時變量可以在組織快OB、功能FC和功能塊FB中使用,當塊執行時它們被用來臨時存儲數據,一旦塊執行介紹,堆棧重新分配,臨時變量中的數據將丟失。
在程序塊中,如果在塊的變量聲明表中有局部變量符號,編程是STEP7軟化自動在局部變量名前加一個“#”號,如果要訪問與局部變量重名的全局變量(在符號表中定義),則全局變量必須使用雙引號(如“Symbol”)
S7-200的特殊存儲器SM | |
1、 SMB0字節:(係統狀態位) SM0.0 PLC運行時這一位始終為l,是常0N繼電器。 SM0.l PLC首次掃描時為1一個掃描周期。用途之一是調用初始化使用。 SM0.2 若保持數據丟失,該位為1一個掃描周期。 SM0.3 開機進入RUN方式將ON一個掃描周期。 SM0.4 該位提供了一個... |
如何備份s7-300plc程序 | |
備份S7-300程序 1:打開Simatic manager, File>New雙擊打開; 2:點擊 Browse , 出現一個新窗口如下; 選擇一個目錄/創建一個新文件夾來保存備份。 3:接下來,進入option菜單,出現一個下拉列表,如下圖所示。 選擇PG/PC接口選項。 4:一個新的窗口將打... |
在西門子PLC中讀取或搜索Tag的過程 | |
1:打開Siemens Simatic Manager 2:搜索所需的PLC程序,然後按OK。 3:點擊S7程序,然後點擊符號如下圖所示。 4:將打開一個新窗口並按ok。 5:打開菜單Find and Replace 輸入所需查詢的tag。假設我們需要一個溫度變送器,所以輸入temp文本。 然後點擊Find... |
西門子plc程序暫停功能怎麼實現 | |
這個沒有做過數控係統開發的,根本不知道這裏麵的門道。注意,對於運動控製特別是有位置控製的話,暫停並不是將當前脈衝停止即可,大多數情況下必須有個減速暫停功能,否則會造成伺服報警或步進丟步。當然大多數PLC能實現此功能,點動情況實際上就是這樣操作... |
西門子PLC用少數IO接口連接更多按鈕的方法 | |
西門子PLC為例說明用少數IO接口連接更多按鈕的方法。 接線如圖一所示: 梯形圖如圖二所示: 在這個例子中使用了SB0到SB5共6個按鈕,占用6個輸入口。操作時,按下按鈕SB0,再分別按其它按鈕,可以得到5個按鈕信號;不按按鈕SB0,操作其它按鈕,又可以得到5個按鈕... |
- 西門子plc鎖存型延時通定時器指令
- 如何使用西門子s7-200模擬器去測試程序
- 西門子S7-200 PLC編程軟件操作圖解
- 西門子s7-200plc怎麼控製直流電機
- 西門子S7-1200的PLC來控製電磁閥的動作
- fbd編程常用功能塊
- 西門子STEP7軟件中加減乘除指令
- 西門子300編程中FB塊用到C或者T之後多次
- 西門子S7300模擬量I/O使用圖解
- 如何設置西門子EM222擴展模塊
- 西門子S7-200能控製多少個伺服
- 西門子S7200四則運算指令表詳解
- S7-200如何通過向導設定PID教程
- step7安裝提示重啟怎麼解決
- 西門子S7300用異或指令實現一鍵啟停
- 西門子PLC生產日期和生命周期含義說明
- 西門子300PLC與溫控表怎樣連接通訊
- WinCC C語言腳本推薦
- 博圖軟件支持所有西門子型號都能組態嗎
- 西門子PLC編程中的FB、FC、DB、OB是什麼