云南保山西門(mén)子PLC模塊銷(xiāo)售
數(shù)據(jù)塊定義在S7 CPU存儲(chǔ)器中,用戶可在存儲(chǔ)器中建立一個(gè)或多個(gè)數(shù)據(jù)塊。每個(gè)數(shù)據(jù)塊可大可小,但CPU對(duì)數(shù)據(jù)塊數(shù)量及數(shù)據(jù)總量有限制,如對(duì)于CPU314,用作數(shù)據(jù)塊的存儲(chǔ)器多為8 KB(8192 B),用戶定義的數(shù)據(jù)總量不能超出這個(gè)限制。對(duì)數(shù)據(jù)塊必須遵循先定義后使用的原則,否則,將造成系統(tǒng)錯(cuò)誤。
1. 定義數(shù)據(jù)塊
在編程階段和運(yùn)行程序中都能定義數(shù)據(jù)塊。大多數(shù)數(shù)據(jù)塊是在編程階段用STEP 7開(kāi)發(fā)軟件包定義的,定義內(nèi)容包括數(shù)據(jù)塊號(hào)及塊中的變量(包括變量符號(hào)名、數(shù)據(jù)類型以及初始值等),定義完成后,數(shù)據(jù)塊中變量的順序及類型決定了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),變量的數(shù)量決定了數(shù)據(jù)塊的大小。數(shù)據(jù)塊在使用前,必須作為用戶程序的一部分下載到CPU中。
如果確實(shí)需要,還可以在程序運(yùn)行中動(dòng)態(tài)定義一個(gè)數(shù)據(jù)塊。動(dòng)態(tài)定義時(shí),數(shù)據(jù)塊號(hào)是自動(dòng)產(chǎn)生的,數(shù)據(jù)塊在存儲(chǔ)器中的位置是動(dòng)態(tài)分配的。由于要定義的數(shù)據(jù)塊有可能大于CPU存儲(chǔ)器(用于數(shù)據(jù)塊的部分)的剩余空間,因此動(dòng)態(tài)定義過(guò)程有可能失敗
2.訪問(wèn)數(shù)據(jù)塊
在用戶程序中可能定義了許多數(shù)據(jù)塊,而每個(gè)數(shù)據(jù)塊中又有許多不同類型的數(shù)據(jù),因此,訪問(wèn)時(shí)需要明確數(shù)據(jù)塊號(hào)和數(shù)據(jù)塊中的數(shù)據(jù)類型與位置。根據(jù)明確數(shù)據(jù)塊號(hào)的不同方法,可以用多種方法訪問(wèn)數(shù)據(jù)塊中的數(shù)據(jù)。
直接在訪問(wèn)指令中寫(xiě)明數(shù)據(jù)塊號(hào),如:
L DB5.DBW10
T DB10.DBW20
L Motor_1.Speed 符號(hào)地址
另一種方法是“先打開(kāi)后訪問(wèn)"。在訪問(wèn)某數(shù)據(jù)塊中的數(shù)據(jù)前,先“打開(kāi)"這個(gè)數(shù)據(jù)塊,也就是將數(shù)據(jù)塊號(hào)(數(shù)據(jù)塊的起始地址)裝入數(shù)據(jù)塊寄存器。這樣,存放在數(shù)據(jù)塊中的數(shù)據(jù)就可利用數(shù)據(jù)塊起始地址加偏移量的方法來(lái)訪問(wèn)。如:
OPN DB5
L DBW10
OPN DB10
T DBW20
在打開(kāi)一個(gè)數(shù)據(jù)塊時(shí),先打開(kāi)的數(shù)據(jù)塊會(huì)自動(dòng)關(guān)閉(沒(méi)有專門(mén)的數(shù)據(jù)塊關(guān)閉指令)。由于有兩個(gè)數(shù)據(jù)塊寄存器(DB和DI寄存器),因此,多可同時(shí)打開(kāi)兩個(gè)數(shù)據(jù)塊。一個(gè)作為背景數(shù)據(jù)塊,數(shù)據(jù)塊的起始地址存儲(chǔ)在DI寄存器中;另一個(gè)作為共享數(shù)據(jù)塊,數(shù)據(jù)塊的起始地址存儲(chǔ)在DB寄存器中。打開(kāi)背景數(shù)據(jù)塊,在調(diào)用FB時(shí)可以自動(dòng)實(shí)現(xiàn)。由于調(diào)用FB時(shí)使用DI寄存器,因此,一般不在FB程序中用OPN DI n指令打開(kāi)數(shù)據(jù)塊。
3. 背景數(shù)據(jù)塊和共享數(shù)據(jù)塊
背景數(shù)據(jù)塊和共享數(shù)據(jù)塊有不同的用途。任何FB、FC或OB均可讀寫(xiě)存放在共享數(shù)據(jù)塊中的數(shù)據(jù)。背景數(shù)據(jù)塊是FB運(yùn)行時(shí)的工作存儲(chǔ)區(qū),它存放FB的部分運(yùn)行變量。調(diào)用FB時(shí),必須一個(gè)相關(guān)的背景數(shù)據(jù)塊。作為規(guī)則,只有FB塊才能訪問(wèn)存放在背景數(shù)據(jù)塊中的數(shù)據(jù)。
一般情況下,每個(gè)FB都有一個(gè)對(duì)應(yīng)的背景數(shù)據(jù)塊,一個(gè)FB也可以使用不同的背景數(shù)據(jù)塊。如果幾個(gè)FB需要的背景數(shù)據(jù)*相同,為節(jié)省存儲(chǔ)器,則可以定義成一個(gè)背景數(shù)據(jù)塊,供它們分別使用。通過(guò)多重背景數(shù)據(jù),也可將幾個(gè)FB需要的不同的背景數(shù)據(jù)定義在一個(gè)背景數(shù)據(jù)塊中,以優(yōu)化數(shù)據(jù)管理。各數(shù)據(jù)塊在CPU的存儲(chǔ)器中是沒(méi)有區(qū)別的,只是由于打開(kāi)方式不同,才在打開(kāi)時(shí)有背景數(shù)據(jù)塊和共享數(shù)據(jù)塊之分。原則上,任何一個(gè)數(shù)據(jù)塊都可以當(dāng)作共享數(shù)據(jù)塊或背景數(shù)據(jù)塊使用,實(shí)際上,一個(gè)數(shù)據(jù)塊由FB當(dāng)作背景數(shù)據(jù)塊使用時(shí),必須與FB的要求格式相符。