產(chǎn)地類別 | 進(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:13:10瀏覽次數(shù):335
聯(lián)系我們時(shí)請(qǐng)說(shuō)明是化工儀器網(wǎng)上看到的信息,,謝謝!
陜西西門子PLC代理商
數(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開發(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)指令中寫明數(shù)據(jù)塊號(hào),如:
L DB5.DBW10
T DB10.DBW20
L Motor_1.Speed 符號(hào)地址
另一種方法是“先打開后訪問(wèn)"。在訪問(wèn)某數(shù)據(jù)塊中的數(shù)據(jù)前,,先“打開"這個(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
在打開一個(gè)數(shù)據(jù)塊時(shí),先打開的數(shù)據(jù)塊會(huì)自動(dòng)關(guān)閉(沒(méi)有專門的數(shù)據(jù)塊關(guān)閉指令),。由于有兩個(gè)數(shù)據(jù)塊寄存器(DB和DI寄存器),,因此,多可同時(shí)打開兩個(gè)數(shù)據(jù)塊,。一個(gè)作為背景數(shù)據(jù)塊,,數(shù)據(jù)塊的起始地址存儲(chǔ)在DI寄存器中;另一個(gè)作為共享數(shù)據(jù)塊,,數(shù)據(jù)塊的起始地址存儲(chǔ)在DB寄存器中,。打開背景數(shù)據(jù)塊,在調(diào)用FB時(shí)可以自動(dòng)實(shí)現(xiàn),。由于調(diào)用FB時(shí)使用DI寄存器,,因此,一般不在FB程序中用OPN DI n指令打開數(shù)據(jù)塊,。
3. 背景數(shù)據(jù)塊和共享數(shù)據(jù)塊
背景數(shù)據(jù)塊和共享數(shù)據(jù)塊有不同的用途,。任何FB、FC或OB均可讀寫存放在共享數(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ū)別的,只是由于打開方式不同,才在打開時(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ù)類型,,又可以是復(fù)式數(shù)據(jù)類型。所謂復(fù)式數(shù)據(jù)類型,,是指位數(shù)超過(guò)32位的數(shù)據(jù)或由其它數(shù)據(jù)類型構(gòu)成的數(shù)據(jù)組,。基本數(shù)據(jù)類型在第4章中已有過(guò)介紹,,本節(jié)專門說(shuō)明復(fù)式數(shù)據(jù)類型,。STEP 7允許4種復(fù)式數(shù)據(jù)類型,如表5.5所示,。
名 稱 類 型 說(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ù)類型組成的數(shù)據(jù)集合,,數(shù)據(jù)類型可以是基本數(shù)據(jù)類型或復(fù)式數(shù)據(jù)類型,。通過(guò)下標(biāo)訪問(wèn)數(shù)組中的數(shù)據(jù)。可定義到6維數(shù)組
構(gòu)造 STRUCT 由多種數(shù)據(jù)類型組成的數(shù)據(jù)集合
另一種復(fù)式數(shù)據(jù)類型稱為“用戶數(shù)據(jù)類型(UDT)",,它是利用STEP 7“程序編輯器"產(chǎn)生的,,可命名構(gòu)造。將大量數(shù)據(jù)組織到UDT中,,在生成數(shù)據(jù)塊或在變量聲明表中聲明變量時(shí)將變得更加方便,。用戶還可為UDT聲明符號(hào)名。
日期-時(shí)間數(shù)據(jù)類型的名稱,、位數(shù)及格式是由操作系統(tǒng)定義的,,用戶不可改變,并且該類型在S7-300中必須用標(biāo)準(zhǔn)功能塊SFC才能訪問(wèn),。其它復(fù)式數(shù)據(jù)類型則由用戶在邏輯塊變量聲明表或數(shù)據(jù)塊中定義,。
1. 數(shù)組
一個(gè)數(shù)組將同種數(shù)據(jù)類型組合成整體,但不能建立數(shù)組的數(shù)組,。圖5.4表示一個(gè)二維 整數(shù)數(shù)組,。數(shù)組的符號(hào)名是“Op_temps",用符號(hào)名加下標(biāo)可訪問(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)隔開,,每一維的首尾之間用雙點(diǎn)隔開。一個(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允許以兩種方法給數(shù)組的元素賦初始值,。對(duì)圖5.5中的數(shù)組,,可以為6個(gè)元素賦初始值:17,23,,-45,,556,3342,,0,;若初始值中有順序相同的元素,寫法可以簡(jiǎn)化,,如要數(shù)組的頭兩個(gè)元素設(shè)特定數(shù)值,,其余4個(gè)為10,則可簡(jiǎn)寫為17,,23,,4(10),其中4為重復(fù)系數(shù),,10為要重復(fù)的數(shù)值,。
3) 訪問(wèn)數(shù)組
利用數(shù)組中元素的下標(biāo)可以訪問(wèn)數(shù)組數(shù)據(jù),這時(shí)數(shù)據(jù)塊,、數(shù)組符號(hào)名及下標(biāo)一起 使用,。如圖5.5中聲明的數(shù)組在DB20(符號(hào)名:MOTOR)的*個(gè)字節(jié)處開始,用以下地址訪問(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ù)類型,,并按相同的順序排列。
2. 構(gòu)造
構(gòu)造將不同數(shù)據(jù)類型組合成一個(gè)整體,,見圖5.6,。構(gòu)造的元素可以是任何基本數(shù)據(jù)類型或復(fù)式數(shù)據(jù)類型,有數(shù)組或構(gòu)造元素的構(gòu)造能嵌套8層,。因此,,STEP 7允許用戶將過(guò)程中的各種關(guān)聯(lián)數(shù)據(jù)統(tǒng)一組織在一個(gè)構(gòu)造中,也為統(tǒng)一處理不同類型數(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)造的名稱為Stack_1。
2) 賦初始值
按每個(gè)元素的類型和名稱給構(gòu)造的每個(gè)元素賦初始值,。并將其寫入圖5.8中Initial Value(初始值欄)的相應(yīng)行中,。例如,可以分配如下初始值:
Amount=0
Original_data=B#l6#0
Control_code=“Z"
Temperature=98.6
End:=FALSE
3) 訪問(wèn)構(gòu)造
(1) 用符號(hào)地址訪問(wèn):如MOTO.Stack_1.Temperature,,其中,,MOTO為構(gòu)造所在數(shù)據(jù)塊DB20的符號(hào)名。
(2) 用物理地址訪問(wèn):如Stack_l從DB20的字節(jié)0開始存放,,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ù)類型,,并按相同的順序排列,。
3. 用戶數(shù)據(jù)類型
STEP 7允許將基本數(shù)據(jù)類型或復(fù)式數(shù)據(jù)類型組合成用戶自己定義的數(shù)據(jù)類型,這種類型稱為用戶數(shù)據(jù)類型或UDT,。用戶數(shù)據(jù)類型必須首先單獨(dú)建立,,并存放在稱為UDT的特殊數(shù)據(jù)塊中,見圖5.8,。
圖5.8是用“程序編輯器"建立的一個(gè)UDT,,其數(shù)據(jù)組織結(jié)構(gòu)與圖5.7相同,該用戶數(shù)據(jù)類型被定義為UDT200,,并單獨(dú)存儲(chǔ)在被稱為UDT200的特殊塊中,。也可以為UDT200建立符號(hào)名(如process_data),但是,,命名只能在符號(hào)表中進(jìn)行,。圖5.9給出了一個(gè)使用UDT定義數(shù)據(jù)塊(如DBl0)的例子,數(shù)據(jù)塊DBl0中定義兩個(gè)變量,,一個(gè)為整型,,另一個(gè)為用戶數(shù)據(jù)類型(UDT200)。從圖中可以看出,,數(shù)據(jù)塊中UDT的用法與基本數(shù)據(jù)類型的用法類似,。
用符號(hào)地址或物理地址兩種方式可以訪問(wèn)UDT中的變量。例如,,在DB10中定義了圖5.9格式的數(shù)據(jù),,DB10的符號(hào)名為Process,,訪問(wèn)Amount變量可分別寫為DB10.DBW 2或Process.Stack_2.Amount。
建立用戶數(shù)據(jù)類型的目的是為了將UDT作為一種數(shù)據(jù)類型使用,,以方便定義多個(gè)結(jié)構(gòu)相同的構(gòu)造變量,。圖5.9建立的Stack_2與圖5.7建立的Stack_1相比,不僅大小結(jié)構(gòu)*相同,,而且對(duì)Stack_1和Stack_2中元素的訪問(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ā)特性的差異分類編入不同的組織塊(OB)中,。例如,需要以固定時(shí)間間隔循環(huán)執(zhí)行的那部分程序編入組織塊OB35中,,為PLC正常運(yùn)行而需進(jìn)行初始化的程序編入組織塊OBl00中,。又如,,由硬件觸發(fā)的中斷服務(wù)程序編入組織塊OB40中,,對(duì)程序執(zhí)行中產(chǎn)生的同步錯(cuò)誤的響應(yīng)處理程序編入組織塊OB121或OB122中。
陜西西門子PLC代理商