標籤:plc 西門子 s7-300
一、資料區塊
資料區塊是在S7 CPU的儲存空間中定義的,使用者可以定義多了資料區塊,但是CPU對資料區塊數量及資料總量是有限制的。
資料區塊與臨時資料不同,當邏輯塊執行結束或資料區塊關閉,資料區塊中的資料是會保留住的。
資料區塊分共用資料區塊、背景資料區塊、使用者自訂資料區塊,下面分別介紹。
1.共用資料區塊(全域資料塊)
其用於儲存全域資料,所有邏輯塊(OB、FC、FB)都可以訪問共用資料區塊中的資料。
2.背景資料區塊(私人儲存區)
其用做功能塊(FB)的“儲存空間”。FB的參數和靜態變數安排在它的背景資料區塊中。背景資料區塊不是由使用者編輯的,而是編輯區產生的。
3.使用者自訂資料區塊
其是以UDT為模板產生的資料區塊。建立使用者定義資料區塊之前,必須先建立一個使用者自訂的資料類型,如UDT1,並在LAD/STL/FBD S7程式編輯器內定義。
自訂資料類型UDT1的建立 可以參照之前的學習筆記:西門子PLC學習筆記五-(程式設計語言、資料類型)進行學習
4.資料區塊的建立
資料區塊的建立可以參考:
二、資料區塊的訪問
使用者程式可以以位、位元組、字或雙字操作訪問資料區塊中的資料,可以使用符號或絕對位址訪問。
在訪問資料區塊時必須指明資料區塊的編號、資料類型與位置。如訪問了不存在的資料單元或者資料區塊,同時沒有編寫錯誤處理OB塊,CPU將進入STOP模式。
1.定址資料區塊
2.傳統方式訪問資料區塊
傳統方式是:先開啟資料區塊,然後在訪問。下例為STL訪問資料區塊代碼:
OPNDB1//開啟資料區塊DB1,作為共用資料區塊LDBW2//將DB1的資料字DBW2裝入累加器1的低字中TMW0//將累加器低字中的內容傳送到儲存字MW0TDBW4//將累加器1低字中的內容傳送到DB1的資料字DBW4OPNDB2//開啟資料區塊DB2,作為共用資料區塊,同時關閉資料區塊DB1LDB10//裝入共用資料區塊DB2的長度LMD10//將MD10裝入累加器<D//比較資料區塊DB2的長度是否足夠長JCERRO//如果長度小於儲存雙字MD10中的值,則跳轉到ERRO
3.直接存取資料區塊
直接存取資料區塊是:直接給出資料區塊的編號和資料在資料區塊中的地址。可以使用絕對位址,也可以使用符號地址。如下例:
LDB1.DBW2//開啟資料區塊DB1,並裝入地址為2字資料單元TDB1.DBW//將資料傳送到資料區塊DB1的資料字單元DBW4//----------- 使用符號地址 ------------L"DB_Symbol".Speed//開啟符號名為"DB_Symbol"的資料區塊//並裝入名為"Speed"的資料單元
西門子PLC學習筆記十五-(資料區塊及資料訪問方式)