產(chǎn)地類(lèi)別 | 進(jìn)口 |
---|
SIEMENS 可編程控制器
1、 SIMATIC S7 系列PLC:S7-200,、S7-1200,、S7-300、S7-400,、ET-200
2,、 邏輯控制模塊 LOGO!230RC,、230RCO,、230RCL、24RC,、24RCL等
3,、 SITOP直流電源 24V DC 1.3A、2.5A,、3A,、5A、10A,、20A,、40A可并聯(lián).
![]() |
參考價(jià) | 面議 |
更新時(shí)間:2023-07-28 17:12:31瀏覽次數(shù):367
聯(lián)系我們時(shí)請(qǐng)說(shuō)明是化工儀器網(wǎng)上看到的信息,,謝謝!
西安西門(mén)子PLC代理商
數(shù)據(jù)塊定義在S7 CPU存儲(chǔ)器中,用戶(hù)可在存儲(chǔ)器中建立一個(gè)或多個(gè)數(shù)據(jù)塊,。每個(gè)數(shù)據(jù)塊可大可小,但CPU對(duì)數(shù)據(jù)塊數(shù)量及數(shù)據(jù)總量有限制,,如對(duì)于CPU314,,用作數(shù)據(jù)塊的存儲(chǔ)器多為8 KB(8192 B),,用戶(hù)定義的數(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ù)類(lèi)型以及初始值等),,定義完成后,,數(shù)據(jù)塊中變量的順序及類(lèi)型決定了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),變量的數(shù)量決定了數(shù)據(jù)塊的大小,。數(shù)據(jù)塊在使用前,,必須作為用戶(hù)程序的一部分下載到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.訪(fǎng)問(wèn)數(shù)據(jù)塊
在用戶(hù)程序中可能定義了許多數(shù)據(jù)塊,,而每個(gè)數(shù)據(jù)塊中又有許多不同類(lèi)型的數(shù)據(jù),,因此,訪(fǎng)問(wèn)時(shí)需要明確數(shù)據(jù)塊號(hào)和數(shù)據(jù)塊中的數(shù)據(jù)類(lèi)型與位置,。根據(jù)明確數(shù)據(jù)塊號(hào)的不同方法,,可以用多種方法訪(fǎng)問(wèn)數(shù)據(jù)塊中的數(shù)據(jù)。
直接在訪(fǎng)問(wèn)指令中寫(xiě)明數(shù)據(jù)塊號(hào),,如:
L DB5.DBW10
T DB10.DBW20
L Motor_1.Speed 符號(hào)地址
另一種方法是“先打開(kāi)后訪(fǎng)問(wèn)",。在訪(fǎng)問(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)訪(fǎng)問(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)有專(zhuān)門(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塊才能訪(fǎng)問(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ù)塊中,,以?xún)?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的要求格式相符,。
數(shù)據(jù)結(jié)構(gòu)
STEP 7數(shù)據(jù)塊中的數(shù)據(jù)結(jié)構(gòu)形式比較豐富,數(shù)據(jù)塊中的數(shù)據(jù)既可以是基本數(shù)據(jù)類(lèi)型,,又可以是復(fù)式數(shù)據(jù)類(lèi)型,。所謂復(fù)式數(shù)據(jù)類(lèi)型,是指位數(shù)超過(guò)32位的數(shù)據(jù)或由其它數(shù)據(jù)類(lèi)型構(gòu)成的數(shù)據(jù)組?;緮?shù)據(jù)類(lèi)型在第4章中已有過(guò)介紹,,本節(jié)專(zhuān)門(mén)說(shuō)明復(fù)式數(shù)據(jù)類(lèi)型,。STEP 7允許4種復(fù)式數(shù)據(jù)類(lèi)型,,如表5.5所示。
名 稱(chēng) 類(lèi) 型 說(shuō) 明
日期-時(shí)間 DATE_AND_TIME 長(zhǎng)度為8 B(64位),。按BCD碼格式順序存儲(chǔ)以下信息:年(字節(jié)0),、月(字節(jié)1)、日(字節(jié)2),、小時(shí)(字節(jié)3),、分(字節(jié)4)、秒(字節(jié)5),、毫秒(字節(jié)6和7的高半字節(jié)),、星期(字節(jié)7的低半字節(jié))
字符串 STRING 字符串是一組ASCII碼,一個(gè)串內(nèi)可定義多254個(gè)字符,,占用256 B內(nèi)存,。串中每個(gè)字符占用1 B,內(nèi)存中頭兩個(gè)字節(jié)存儲(chǔ)串的長(zhǎng)度信息,。*個(gè)字節(jié)存放此串的定義長(zhǎng)度(默認(rèn)值為254個(gè)字符),,第二個(gè)字節(jié)存放字符串實(shí)際長(zhǎng)度。例如,,String[7]定義長(zhǎng)度為7的字符串,,占用內(nèi)存9 B(2+7)。若不定義長(zhǎng)度,,則默認(rèn)為254個(gè)字符
數(shù)組 ARRAY 由一種數(shù)據(jù)類(lèi)型組成的數(shù)據(jù)集合,,數(shù)據(jù)類(lèi)型可以是基本數(shù)據(jù)類(lèi)型或復(fù)式數(shù)據(jù)類(lèi)型。通過(guò)下標(biāo)訪(fǎng)問(wèn)數(shù)組中的數(shù)據(jù),??啥x到6維數(shù)組
構(gòu)造 STRUCT 由多種數(shù)據(jù)類(lèi)型組成的數(shù)據(jù)集合
另一種復(fù)式數(shù)據(jù)類(lèi)型稱(chēng)為“用戶(hù)數(shù)據(jù)類(lèi)型(UDT)",它是利用STEP 7“程序編輯器"產(chǎn)生的,,可命名構(gòu)造,。將大量數(shù)據(jù)組織到UDT中,在生成數(shù)據(jù)塊或在變量聲明表中聲明變量時(shí)將變得更加方便,。用戶(hù)還可為UDT聲明符號(hào)名,。
日期-時(shí)間數(shù)據(jù)類(lèi)型的名稱(chēng)、位數(shù)及格式是由操作系統(tǒng)定義的,,用戶(hù)不可改變,,并且該類(lèi)型在S7-300中必須用標(biāo)準(zhǔn)功能塊SFC才能訪(fǎng)問(wèn)。其它復(fù)式數(shù)據(jù)類(lèi)型則由用戶(hù)在邏輯塊變量聲明表或數(shù)據(jù)塊中定義。
1. 數(shù)組
一個(gè)數(shù)組將同種數(shù)據(jù)類(lèi)型組合成整體,,但不能建立數(shù)組的數(shù)組,。圖5.4表示一個(gè)二維 整數(shù)數(shù)組。數(shù)組的符號(hào)名是“Op_temps",,用符號(hào)名加下標(biāo)可訪(fǎng)問(wèn)數(shù)組中的數(shù)據(jù),。以圖5.4為例,*個(gè)整數(shù)是Op_temps[1,,1],,第三個(gè)為Op_temps[l,3],,第四個(gè)為Op_temps[2,,1],第六個(gè)為Op_temps[2,,3],。
1) 建立數(shù)組
在數(shù)據(jù)塊或變量聲明表中可定義數(shù)組。在聲明數(shù)組時(shí),,首先給數(shù)組命名,,接著使用關(guān)鍵字(ARRAY),然后在方括號(hào)中給出數(shù)組的大小及維數(shù),??梢远x多達(dá)6維的數(shù)組,并用下標(biāo)來(lái)標(biāo)識(shí)數(shù)組的大小,。在方括號(hào)中放下標(biāo),,各維之間用逗號(hào)隔開(kāi),每一維的首尾之間用雙點(diǎn)隔開(kāi),。一個(gè)下標(biāo)可以為任何一個(gè)整數(shù)值(范圍:-32 768~+32 767),,并包括負(fù)數(shù)。如用ARRAY[1‥3, 1‥2, 1‥3, -2‥3, 30‥32, 1‥4]來(lái)定義變量Op_temps為6維數(shù)組,。該數(shù)組的*個(gè)整數(shù)為Op_temps[1, 1, 1, -2, 30, 1],;后一個(gè)為Op_temps[3, 2, 3, 3, 32, 4]。圖5.5顯示了建立名字為Heat_2×3的二維數(shù)組(與圖5.4中的數(shù)組相似),。
2) 賦初始值
在建立數(shù)組時(shí),,STEP 7允許以?xún)煞N方法給數(shù)組的元素賦初始值。對(duì)圖5.5中的數(shù)組,,可以為6個(gè)元素賦初始值:17,,23,-45,,556,,3342,0;若初始值中有順序相同的元素,,寫(xiě)法可以簡(jiǎn)化,,如要數(shù)組的頭兩個(gè)元素設(shè)特定數(shù)值,其余4個(gè)為10,,則可簡(jiǎn)寫(xiě)為17,,23,4(10),,其中4為重復(fù)系數(shù),,10為要重復(fù)的數(shù)值,。
3) 訪(fǎng)問(wèn)數(shù)組
利用數(shù)組中元素的下標(biāo)可以訪(fǎng)問(wèn)數(shù)組數(shù)據(jù),,這時(shí)數(shù)據(jù)塊、數(shù)組符號(hào)名及下標(biāo)一起 使用,。如圖5.5中聲明的數(shù)組在DB20(符號(hào)名:MOTOR)的*個(gè)字節(jié)處開(kāi)始,,用以下地址訪(fǎng)問(wèn)數(shù)組中的第二個(gè)元素:
MOTOR. Heat_2×3[1,2]
4) 利用數(shù)組傳遞參數(shù)
將數(shù)組作為參數(shù)傳遞時(shí),,要求形式參數(shù)和實(shí)際參數(shù)必須有同樣的數(shù)據(jù)組織結(jié)構(gòu),、相同 的數(shù)據(jù)類(lèi)型,并按相同的順序排列,。
2. 構(gòu)造
構(gòu)造將不同數(shù)據(jù)類(lèi)型組合成一個(gè)整體,,見(jiàn)圖5.6。構(gòu)造的元素可以是任何基本數(shù)據(jù)類(lèi)型或復(fù)式數(shù)據(jù)類(lèi)型,,有數(shù)組或構(gòu)造元素的構(gòu)造能嵌套8層,。因此,STEP 7允許用戶(hù)將過(guò)程中的各種關(guān)聯(lián)數(shù)據(jù)統(tǒng)一組織在一個(gè)構(gòu)造中,,也為統(tǒng)一處理不同類(lèi)型數(shù)據(jù)或參數(shù)提供了可能性
1) 建立構(gòu)造
構(gòu)造(STRUCT)只能在數(shù)據(jù)塊或變量聲明表中定義,。圖5.7所示為由整數(shù)(存放數(shù)量)、字節(jié)(存放原始數(shù)據(jù)),、字符(存放控制碼),、浮點(diǎn)數(shù)(存放溫度)、布爾數(shù)(完成標(biāo)志信號(hào))組成的構(gòu)造,。該構(gòu)造的名稱(chēng)為Stack_1,。
2) 賦初始值
按每個(gè)元素的類(lèi)型和名稱(chēng)給構(gòu)造的每個(gè)元素賦初始值。并將其寫(xiě)入圖5.8中Initial Value(初始值欄)的相應(yīng)行中,。例如,,可以分配如下初始值:
Amount=0
Original_data=B#l6#0
Control_code=“Z"
Temperature=98.6
End:=FALSE
3) 訪(fǎng)問(wèn)構(gòu)造
(1) 用符號(hào)地址訪(fǎng)問(wèn):如MOTO.Stack_1.Temperature,其中,,MOTO為構(gòu)造所在數(shù)據(jù)塊DB20的符號(hào)名,。
(2) 用物理地址訪(fǎng)問(wèn):如Stack_l從DB20的字節(jié)0開(kāi)始存放,Amount的物理地址是DB20.DBW0,Temperature的地址為DB20.DBD4,。
4) 利用構(gòu)造傳遞參數(shù)
構(gòu)造可以作為參數(shù)來(lái)傳遞,。將構(gòu)造作為參數(shù)傳遞時(shí),要求形式參數(shù)和實(shí)際參數(shù)必須有同樣的數(shù)據(jù)組織結(jié)構(gòu),、相同的數(shù)據(jù)類(lèi)型,,并按相同的順序排列。
3. 用戶(hù)數(shù)據(jù)類(lèi)型
STEP 7允許將基本數(shù)據(jù)類(lèi)型或復(fù)式數(shù)據(jù)類(lèi)型組合成用戶(hù)自己定義的數(shù)據(jù)類(lèi)型,,這種類(lèi)型稱(chēng)為用戶(hù)數(shù)據(jù)類(lèi)型或UDT,。用戶(hù)數(shù)據(jù)類(lèi)型必須首先單獨(dú)建立,并存放在稱(chēng)為UDT的特殊數(shù)據(jù)塊中,,見(jiàn)圖5.8,。
圖5.8是用“程序編輯器"建立的一個(gè)UDT,其數(shù)據(jù)組織結(jié)構(gòu)與圖5.7相同,,該用戶(hù)數(shù)據(jù)類(lèi)型被定義為UDT200,,并單獨(dú)存儲(chǔ)在被稱(chēng)為UDT200的特殊塊中。也可以為UDT200建立符號(hào)名(如process_data),,但是,,命名只能在符號(hào)表中進(jìn)行。圖5.9給出了一個(gè)使用UDT定義數(shù)據(jù)塊(如DBl0)的例子,,數(shù)據(jù)塊DBl0中定義兩個(gè)變量,,一個(gè)為整型,另一個(gè)為用戶(hù)數(shù)據(jù)類(lèi)型(UDT200),。從圖中可以看出,,數(shù)據(jù)塊中UDT的用法與基本數(shù)據(jù)類(lèi)型的用法類(lèi)似。
用符號(hào)地址或物理地址兩種方式可以訪(fǎng)問(wèn)UDT中的變量,。例如,,在DB10中定義了圖5.9格式的數(shù)據(jù),DB10的符號(hào)名為Process,,訪(fǎng)問(wèn)Amount變量可分別寫(xiě)為DB10.DBW 2或Process.Stack_2.Amount,。
建立用戶(hù)數(shù)據(jù)類(lèi)型的目的是為了將UDT作為一種數(shù)據(jù)類(lèi)型使用,以方便定義多個(gè)結(jié)構(gòu)相同的構(gòu)造變量,。圖5.9建立的Stack_2與圖5.7建立的Stack_1相比,,不僅大小結(jié)構(gòu)*相同,而且對(duì)Stack_1和Stack_2中元素的訪(fǎng)問(wèn)方法也*相同,。在建立DB10時(shí),,由于使用了UDT而使得數(shù)據(jù)塊建立過(guò)程方便快捷。在多處使用同樣的UDT時(shí),,這一優(yōu)點(diǎn)將更加突出,。
程序結(jié)構(gòu)設(shè)計(jì)
STEP 7不僅從不同層次充分支持合理的程序結(jié)構(gòu)設(shè)計(jì),,而且也簡(jiǎn)化了結(jié)構(gòu)設(shè)計(jì)的復(fù)雜程度。
一個(gè)復(fù)雜的自動(dòng)化過(guò)程可以被分解并定義為一個(gè)或多個(gè)項(xiàng)目(PROJECT),;而對(duì)于每個(gè)項(xiàng)目,,又可以進(jìn)一步分解并定義給一個(gè)或多個(gè)CPU,每個(gè)CPU都有一個(gè)控制程序(CPU_PROGRAM),。圖5.10顯示了一個(gè)樣本過(guò)程,,它分成4個(gè)不同的項(xiàng)目:項(xiàng)目1和項(xiàng)目2只有一個(gè)CPU,而項(xiàng)目3和項(xiàng)目4有多個(gè)CPU,。這樣,,一個(gè)很復(fù)雜的控制任務(wù)的結(jié)構(gòu)設(shè)計(jì),就被簡(jiǎn)化為各個(gè)CPU程序的結(jié)構(gòu)設(shè)計(jì),。項(xiàng)目間或項(xiàng)目中的各CPU程序之間,,能以某種方式聯(lián)網(wǎng),實(shí)現(xiàn)信息共享,。如在S7協(xié)議支持下,,用MPI網(wǎng)以全局?jǐn)?shù)據(jù)通信的方式可方便地建立起聯(lián)系,實(shí)現(xiàn)一個(gè)項(xiàng)目中各CPU共享信息
典型的情況是一個(gè)過(guò)程控制任務(wù)只有一個(gè)項(xiàng)目,,該項(xiàng)目下也僅有一個(gè)CPU程序,每一個(gè)CPU程序又可依據(jù)時(shí)間特性或事件觸發(fā)特性的差異分類(lèi)編入不同的組織塊(OB)中,。例如,,需要以固定時(shí)間間隔循環(huán)執(zhí)行的那部分程序編入組織塊OB35中,為PLC正常運(yùn)行而需進(jìn)行初始化的程序編入組織塊OBl00中,。又如,,由硬件觸發(fā)的中斷服務(wù)程序編入組織塊OB40中,對(duì)程序執(zhí)行中產(chǎn)生的同步錯(cuò)誤的響應(yīng)處理程序編入組織塊OB121或OB122中,。
西安西門(mén)子PLC代理商