數據塊(DB)的結構
定義(Definition)
在一個程序中,可以被所有塊存取的特定用戶數據包含在數據塊.每個FB、FC或OB均能讀寫這些數據塊。
有兩種數據塊類型:
數據塊(Data blocks)
能被所有S7程序的邏輯塊存取。每個FB、FC或OB讀或寫包含在這些數據塊里的數據。
指派給一個FB的數據塊(實例數據塊)(Data blocks assigned to an FB (instance DB))
實例數據塊是指派給特定功能塊的數據塊。它們功能塊的指定的本地數據。當FB被用戶程序調用時,這些數據塊被S7-SCL編譯器自動建立。
句法(Syntax)
DB標識符(DB Identifier)
在關鍵字"DATA_BLOCK"之后,鍵入關鍵字DB作為數據塊的標識符,后面跟一個塊號或數據塊的符號名,塊號是1到65533中間的值。
例子(Examples:)
DATA_BLOCK DB20
DATA_BLOCK MEASRANGE
數據塊聲明部分(DB Declaration Section)
在DB的聲明部分定義DB的數據結構。有兩種方法做這件事,如下:
通過指派到用戶定義數據類型(By assigning a user-defined data type)
在此,指派一個先在程序中定義的用戶數據類型的標識符,然后數據塊取得該UDT的結構。你可以在數據塊的賦值部分指派變量的初始值。
通過定義STRUCT(結構)數據類型(By defining a STRUCT data type)
在STRUCT數據類型的說明中,指定了存儲在DB中的每個變量的數據類型,可能也給出了初始值。
例子(Example)
DATA_BLOCK DB20
STRUCT // 聲明部分
VALUE:ARRAY[1..100] OF INT;
END_STRUCT
BEGIN // 賦值部分開始
:
END_DATA_BLOCK// 數據塊結束
數據塊賦值部分(DB Assignment Section)
在賦值部分,能夠改寫在聲明部分聲明的數據,以便指定實際應用所需的特定值。
賦值部分用關鍵字BEGIN開始,然后包含一系列賦值語句。
當指派初始值(初始化)時, 鍵入屬性和注釋采用STL句法。關于如何寫常量、屬性和注釋,使用STL在線幫助或參考STEP 7的資料。
例子(Example)
// 帶指定STRUCT數據類型的數據塊
DATA_BLOCK DB10
STRUCT // 帶初始值聲明的數據聲明
VALUE :ARRAY [1..100] OF INT := 100 (1) ;
SWITCH:BOOL := TRUE ;
S_WORD:WORD := W#16#FFAA ;
S_BYTE:BYTE := B#16#FF ;
S_TIME:S5TIME:= S5T#1h30m10s ;
END_STRUCT
BEGIN// 賦值部分
// 為特定的數組元素賦值
VALUE [1] := 5;
VALUE [5] := -1;
END_DATA_BLOCK
// 帶用戶定義數據類型指定的數據塊
DATA_BLOCK DB11
UDT 51
BEGIN
END_DATA_BLOCK
審核編輯 :李倩
-
編譯器
+關注
關注
1文章
1636瀏覽量
49174 -
變量
+關注
關注
0文章
613瀏覽量
28413 -
數據類型
+關注
關注
0文章
236瀏覽量
13637
原文標題:數據塊(DB)的結構
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論