共享數(shù)據(jù)塊(DB)
與邏輯塊不同,在數(shù)據(jù)塊中沒有STEP 7的指令。它們用于存放用戶數(shù)據(jù),換句話說,數(shù)據(jù)塊中存放用戶程序工作時(shí)所需的變量數(shù)據(jù)。共享數(shù)據(jù)塊用于存放所有其它塊都可以訪問的用戶數(shù)據(jù)。
DB的大小可以不同。關(guān)于所允許的最大尺寸,請參考用戶所用CPU的描述。
用戶可以用任意方式來建立數(shù)據(jù)塊的結(jié)構(gòu),以適合其不同的需求。
在用戶程序中的共享數(shù)據(jù)塊
如果某個(gè)邏輯塊(FC,F(xiàn)B或OB)被調(diào)用,則它可以臨時(shí)占用臨時(shí)本地?cái)?shù)據(jù)區(qū)的空間(L堆棧)。除了這個(gè)本地?cái)?shù)據(jù)區(qū),邏輯塊還可以打開一個(gè)DB形式的存儲區(qū)。與局域數(shù)據(jù)區(qū)中的數(shù)據(jù)不同,當(dāng)相應(yīng)的邏輯塊運(yùn)行結(jié)束從而DB關(guān)閉時(shí),在DB中的數(shù)據(jù)不會被刪除。
每個(gè)FB、FC或OB可從共享DB中讀取數(shù)據(jù),或?qū)?shù)據(jù)寫入共享DB。當(dāng)該DB退出時(shí),這些數(shù)據(jù)保持在DB中。
一個(gè)共享DB和一個(gè)背景DB可同時(shí)打開。下圖所示為訪問數(shù)據(jù)塊的不同方法。
數(shù)據(jù)塊的結(jié)構(gòu)化存取
Structured Access to Data Blocks
結(jié)構(gòu)化存取使用在數(shù)據(jù)塊中聲明的變量的標(biāo)識符。能夠?qū)⒆兞抠x值給任何同類型的變量。
通過指定DB名和用點(diǎn)分隔的簡單變量和名字來引用在數(shù)據(jù)塊中的變量。
簡單變量表示在DB的聲明中指定為基本或復(fù)雜數(shù)據(jù)類型的變量。
如果使用一個(gè)BLOCK_DB類型的參數(shù)或轉(zhuǎn)換函數(shù)WORD_TO_BLOCK_DB的結(jié)果來初始存取數(shù)據(jù)塊,只通順是絕對方式或索引方式存取,不能用結(jié)構(gòu)方式存取。
例子(Example)
//在FB10的聲明部分:
VAR
Result: STRUCT RES1 : INT;
RES2 : WORD;
END_STRUCT
END_VAR
//用戶定義數(shù)據(jù)類型UDT1
TYPE UDT1 STRUCT RES1 : INT;
RES2 : WORD;
END_STRUCT
//帶用戶定義數(shù)據(jù)類型的DB20:
DB20
UDT1
BEGIN 。。。
//不帶用戶定義數(shù)據(jù)類型的DB30:
DB30 STRUCT RES1 : INT;
RES2 : WORD;
END_STRUCT
BEGIN 。。。
//用以下存取的功能塊:
。。
FB10.DB10();
RESWORD_A := DB10.Result.RES2;
RESWORD_B := DB20.RES2;
RESWORD_C := DB30.RES2;
編輯:jq
-
cpu
+關(guān)注
關(guān)注
68文章
10889瀏覽量
212393 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7102瀏覽量
89283 -
DB
+關(guān)注
關(guān)注
0文章
48瀏覽量
22736 -
STEP7
+關(guān)注
關(guān)注
4文章
103瀏覽量
32639
原文標(biāo)題:西門子SCL-數(shù)據(jù)塊(DB)的結(jié)構(gòu)化存取
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論