產(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:12:31瀏覽次數(shù):349
聯(lián)系我們時(shí)請(qǐng)說明是化工儀器網(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)定義過程有可能失敗
2.訪問數(shù)據(jù)塊
在用戶程序中可能定義了許多數(shù)據(jù)塊,,而每個(gè)數(shù)據(jù)塊中又有許多不同類型的數(shù)據(jù),,因此,訪問時(shí)需要明確數(shù)據(jù)塊號(hào)和數(shù)據(jù)塊中的數(shù)據(jù)類型與位置,。根據(jù)明確數(shù)據(jù)塊號(hào)的不同方法,,可以用多種方法訪問數(shù)據(jù)塊中的數(shù)據(jù),。
直接在訪問指令中寫明數(shù)據(jù)塊號(hào),如:
L DB5.DBW10
T DB10.DBW20
L Motor_1.Speed 符號(hào)地址
另一種方法是“先打開后訪問",。在訪問某數(shù)據(jù)塊中的數(shù)據(jù)前,,先“打開"這個(gè)數(shù)據(jù)塊,也就是將數(shù)據(jù)塊號(hào)(數(shù)據(jù)塊的起始地址)裝入數(shù)據(jù)塊寄存器,。這樣,,存放在數(shù)據(jù)塊中的數(shù)據(jù)就可利用數(shù)據(jù)塊起始地址加偏移量的方法來訪問。如:
OPN DB5
L DBW10
OPN DB10
T DBW20
在打開一個(gè)數(shù)據(jù)塊時(shí),,先打開的數(shù)據(jù)塊會(huì)自動(dòng)關(guān)閉(沒有專門的數(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塊才能訪問存放在背景數(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ù)塊,供它們分別使用,。通過多重背景數(shù)據(jù),,也可將幾個(gè)FB需要的不同的背景數(shù)據(jù)定義在一個(gè)背景數(shù)據(jù)塊中,,以優(yōu)化數(shù)據(jù)管理。各數(shù)據(jù)塊在CPU的存儲(chǔ)器中是沒有區(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ù)超過32位的數(shù)據(jù)或由其它數(shù)據(jù)類型構(gòu)成的數(shù)據(jù)組,?;緮?shù)據(jù)類型在第4章中已有過介紹,本節(jié)專門說明復(fù)式數(shù)據(jù)類型,。STEP 7允許4種復(fù)式數(shù)據(jù)類型,,如表5.5所示。
名 稱 類 型 說 明
日期-時(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ù)類型,。通過下標(biāo)訪問數(shù)組中的數(shù)據(jù)??啥x到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才能訪問,。其它復(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)可訪問數(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ù),。可以定義多達(dá)6維的數(shù)組,,并用下標(biāo)來標(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]來定義變量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) 訪問數(shù)組
利用數(shù)組中元素的下標(biāo)可以訪問數(shù)組數(shù)據(jù),,這時(shí)數(shù)據(jù)塊、數(shù)組符號(hào)名及下標(biāo)一起 使用,。如圖5.5中聲明的數(shù)組在DB20(符號(hào)名:MOTOR)的*個(gè)字節(jié)處開始,,用以下地址訪問數(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ā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) 訪問構(gòu)造
(1) 用符號(hào)地址訪問:如MOTO.Stack_1.Temperature,,其中,MOTO為構(gòu)造所在數(shù)據(jù)塊DB20的符號(hào)名,。
(2) 用物理地址訪問:如Stack_l從DB20的字節(jié)0開始存放,,Amount的物理地址是DB20.DBW0,Temperature的地址為DB20.DBD4,。
4) 利用構(gòu)造傳遞參數(shù)
構(gòu)造可以作為參數(shù)來傳遞,。將構(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)地址或物理地址兩種方式可以訪問UDT中的變量,。例如,,在DB10中定義了圖5.9格式的數(shù)據(jù),DB10的符號(hào)名為Process,,訪問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中元素的訪問方法也*相同,。在建立DB10時(shí),,由于使用了UDT而使得數(shù)據(jù)塊建立過程方便快捷。在多處使用同樣的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)化過程可以被分解并定義為一個(gè)或多個(gè)項(xiàng)目(PROJECT),;而對(duì)于每個(gè)項(xiàng)目,又可以進(jìn)一步分解并定義給一個(gè)或多個(gè)CPU,,每個(gè)CPU都有一個(gè)控制程序(CPU_PROGRAM),。圖5.10顯示了一個(gè)樣本過程,它分成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è)過程控制任務(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代理商