什麼是區域性變數呢?在回答這個問題之前,有必要對變數宣告表有乙個基本了解。在tia portal step7中有兩種用來定義符號位址的**形式:符號表(共享符號)和變數宣告表(局域符號),其本質都是為了建立絕對位址與符號位址之間的內在聯絡,但**針對的物件不同。共享符號是整個程式所使用的共同符號(用於全域性符號定義的表為符號表);而局域符號是某一特定邏輯快(ob、fb、fc等)所使用的臨時性標記,只能在特定的邏輯塊中進行臨時性定義。用於臨時性的、局域符號定義的表被稱為變數宣告表,又稱區域性變數宣告表。
區域性變數宣告表分為引數(輸入引數in、輸出引數out、輸入/輸出引數in_out)和區域性變數。區域性變數又包括靜態變數(stat)和臨時變數(temp)兩種。引數可在呼叫塊(邏輯塊,塊中的形參)和被呼叫塊(功能fb有自己自動生成的背景資料塊di,而功能fc只能使用共享資料塊,提供呼叫塊的形參的實際引數值,與呼叫塊形式引數一一對應,資料型別必需一致)。靜態變數和臨時變數是僅供邏輯塊本身使用資料,不能用作不同程式塊之間的資料介面。通過以上分析,我們知道所謂區域性變數(包括靜態變數和暫態變數)都是指對特定的邏輯塊而言的,區域性變數只是在它所在的塊中有效,離開具體的邏輯塊談上述變數是沒有意義的,你不能在其他塊中呼叫利用變數(包括靜態變數和暫態變數),這是與共享符號不一致的,共享符號可以被任意塊呼叫。在每個邏輯塊的前上面部分就是變數宣告表的區域,在變數宣告表中,使用者宣告本塊中專用的變數,即區域性變數包括塊的形參和引數的系統屬性。你可以在不同的塊中使用相同的區域性變數符號不會產生衝突。靜態變數(stat)在執行期間始終被儲存。s7-1200將靜態變數定義在背景資料塊(針對fb而言,fc和ob無靜態變數),當被呼叫塊執行時,能讀出或修改靜態變數;被呼叫塊結束後,靜態變數保留在資料塊中;臨時變數(temp)是一種在塊執行時,用來暫時儲存資料的變數,這些資料儲存在cpu工作儲存區的區域性資料堆疊(l堆疊)中。臨時變數可以在組織快ob、功能fc和功能塊fb中使用,當塊執行時它們被用來臨時儲存資料,一旦塊執行介紹,堆疊重新分配,臨時變數中的資料將丟失。在程式塊中,如果在塊的變數宣告表中有區域性變數符號,程式設計是step7軟化自動在區域性變數名前加乙個「#」號,如果要訪問與區域性變數重名的全域性變數(在符號表中定義),則全域性變數必須使用雙引號(如「symbol」)
s7-1200區域性變數保持性說明
1、fb塊的變數宣告中,有一列為保持性,有三項內容,分別為:未保留(non-retain)、保留(retain)和在idb中設定(set in idb),idb為instance data block,即背景資料塊。如下圖:
![在這裡插入描述](
s7-1200區域性變數保持性說明
2、選擇未保留,則該資料掉電不能保持。相反,選擇保留,掉電時資料可以儲存下來(通過plc的超級電容)。
3、選擇在idb中設定,是為了方便同乙個fb的不同背景資料塊對變數掉電保持的要求不同而設定的。如下圖:
4、開啟該fb的乙個背景資料塊。如下圖:
5、從上圖中可以看到,該變數的保持性可以單獨修改,其它則為灰色,不能修改。
西門子S7 1200基礎學習 PLC的硬體組成
處理器的功能是完成plc內所有的資料監控和控制作用。處理器的工作分為以下 5 個階段 取指令階段 指令解碼階段 執行指令階段 訪訪問數和結果寫回。取指令階段 就是將一條指令從主儲存器中取到指令暫存器的過程。程式計數器中的數值,用來指示當前指令在主存中的位置。指令解碼階段 取出指令後,指令解碼器按照預...
西門子atch指令詳解 西門子plc指令詳解
1 ld load 裝載 動合觸點 2 ldn load not 不裝載 動斷觸點 3 a and 與 動合 用於動合觸點串聯 4 an and not 與 動斷 用於動斷觸點串聯 5 o or 或 動合 用於動合觸點併聯 6 on or not 或 動斷 用於動斷觸點併聯 7 out 輸出 用於線...
西門子S7 200PLC系列 三
在plc中,資料型別主要有 字串 布林型 0或1 整型和實型 浮點數 而且還分有符號和無符號,在有符號中,數值範圍包括正負,比如在無符號中位元組b 8位 的十進位制表示為0 256,但在有符號中為 128 127 在程式設計中有時會使用常數,常數的資料長度分 位元組 字和雙字,另如沒有格式說明,系統...