數(shù)據(jù)塊(DB)的結(jié)構(gòu)
定義(Definition)
在一個程序中,可以被所有塊存取的特定用戶數(shù)據(jù)包含在數(shù)據(jù)塊.每個FB、FC或OB均能讀寫這些數(shù)據(jù)塊。
有兩種數(shù)據(jù)塊類型:
數(shù)據(jù)塊(Data blocks)
能被所有S7程序的邏輯塊存取。每個FB、FC或OB讀或?qū)懓谶@些數(shù)據(jù)塊里的數(shù)據(jù)。
指派給一個FB的數(shù)據(jù)塊(實例數(shù)據(jù)塊)(Data blocks assigned to an FB (instance DB))
實例數(shù)據(jù)塊是指派給特定功能塊的數(shù)據(jù)塊。它們功能塊的指定的本地數(shù)據(jù)。當FB被用戶程序調(diào)用時,這些數(shù)據(jù)塊被S7-SCL編譯器自動建立。
句法(Syntax)
DB標識符(DB Identifier)
在關鍵字"DATA_BLOCK"之后,鍵入關鍵字DB作為數(shù)據(jù)塊的標識符,后面跟一個塊號或數(shù)據(jù)塊的符號名,塊號是1到65533中間的值。
例子(Examples:)
DATA_BLOCK DB20
DATA_BLOCK MEASRANGE
數(shù)據(jù)塊聲明部分(DB Declaration Section)
在DB的聲明部分定義DB的數(shù)據(jù)結(jié)構(gòu)。有兩種方法做這件事,如下:
通過指派到用戶定義數(shù)據(jù)類型(By assigning a user-defined data type)
在此,指派一個先在程序中定義的用戶數(shù)據(jù)類型的標識符,然后數(shù)據(jù)塊取得該UDT的結(jié)構(gòu)。你可以在數(shù)據(jù)塊的賦值部分指派變量的初始值。
通過定義STRUCT(結(jié)構(gòu))數(shù)據(jù)類型(By defining a STRUCT data type)
在STRUCT數(shù)據(jù)類型的說明中,指定了存儲在DB中的每個變量的數(shù)據(jù)類型,可能也給出了初始值。
例子(Example)
DATA_BLOCK DB20
STRUCT // 聲明部分
VALUE:ARRAY[1..100] OF INT;
END_STRUCT
BEGIN // 賦值部分開始
:
END_DATA_BLOCK// 數(shù)據(jù)塊結(jié)束
數(shù)據(jù)塊賦值部分(DB Assignment Section)
在賦值部分,能夠改寫在聲明部分聲明的數(shù)據(jù),以便指定實際應用所需的特定值。
賦值部分用關鍵字BEGIN開始,然后包含一系列賦值語句。
當指派初始值(初始化)時, 鍵入屬性和注釋采用STL句法。關于如何寫常量、屬性和注釋,使用STL在線幫助或參考STEP 7的資料。
例子(Example)
// 帶指定STRUCT數(shù)據(jù)類型的數(shù)據(jù)塊
DATA_BLOCK DB10
STRUCT // 帶初始值聲明的數(shù)據(jù)聲明
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// 賦值部分
// 為特定的數(shù)組元素賦值
VALUE [1] := 5;
VALUE [5] := -1;
END_DATA_BLOCK
// 帶用戶定義數(shù)據(jù)類型指定的數(shù)據(jù)塊
DATA_BLOCK DB11
UDT 51
BEGIN
END_DATA_BLOCK
審核編輯 :李倩
-
編譯器
+關注
關注
1文章
1657瀏覽量
49927 -
變量
+關注
關注
0文章
614瀏覽量
28846 -
數(shù)據(jù)類型
+關注
關注
0文章
237瀏覽量
13839
原文標題:數(shù)據(jù)塊(DB)的結(jié)構(gòu)
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
程序設計與數(shù)據(jù)結(jié)構(gòu)
光纖0.3db是什么意思
基于DBFP與DB-Attn的算法硬件協(xié)同優(yōu)化方案

多流技術(shù):不同壽命數(shù)據(jù)存在SSD的不同塊

服務器數(shù)據(jù)恢復—RAID5陣列兩塊硬盤離線崩潰,數(shù)據(jù)如何起死回生?

ADS1282數(shù)據(jù)手冊中,THD的單位是dB,這個單位指的是dBc還是dBFS呢?
使用TPA3128d2,增益上選擇了26DB,測試數(shù)據(jù)時發(fā)現(xiàn)只有22DB是為什么?
TLV320AIC1110圖上3塊標紅的地方增益如何設定,是固定的還是可調(diào)的,固定的或可調(diào)的范圍是多少DB?
服務器數(shù)據(jù)恢復—Raid5陣列兩塊硬盤指示燈亮黃色的數(shù)據(jù)恢復案例

用一塊buf634的緩沖器衰減12db,用了兩塊衰減了10db,為什么會衰減啊?
ths3091帶寬只能到達7Mhz就已經(jīng)達到3DB衰減,為什么?
雙向觸發(fā)二極管db4與db3的區(qū)別
ADS1202精密、80dB動態(tài)范圍、調(diào)制器數(shù)據(jù)表

評論