西門子產(chǎn)品代理商 西門子產(chǎn)品代理商
數(shù)據(jù)結(jié)構(gòu)
STEP 7數(shù)據(jù)塊中的數(shù)據(jù)結(jié)構(gòu)形式比較豐富,數(shù)據(jù)塊中的數(shù)據(jù)既可以是基本數(shù)據(jù)類型,又可以是復式數(shù)據(jù)類型。所謂復式數(shù)據(jù)類型,是指位數(shù)超過32位的數(shù)據(jù)或由其它數(shù)據(jù)類型構(gòu)成的數(shù)據(jù)組?;緮?shù)據(jù)類型在第4章中已有過介紹,本節(jié)專門說明復式數(shù)據(jù)類型。STEP 7允許4種復式數(shù)據(jù)類型,如表5.5所示。
名 稱 類 型 說 明
日期-時間 DATE_AND_TIME 長度為8 B(64位)。按BCD碼格式順序存儲以下信息:年(字節(jié)0)、月(字節(jié)1)、日(字節(jié)2)、小時(字節(jié)3)、分(字節(jié)4)、秒(字節(jié)5)、毫秒(字節(jié)6和7的高半字節(jié))、星期(字節(jié)7的低半字節(jié))
字符串 STRING 字符串是一組ASCII碼,一個串內(nèi)可定義多254個字符,占用256 B內(nèi)存。串中每個字符占用1 B,內(nèi)存中頭兩個字節(jié)存儲串的長度信息。*個字節(jié)存放此串的定義長度(默認值為254個字符),第二個字節(jié)存放字符串實際長度。例如,String[7]定義長度為7的字符串,占用內(nèi)存9 B(2+7)。若不定義長度,則默認為254個字符
數(shù)組 ARRAY 由一種數(shù)據(jù)類型組成的數(shù)據(jù)集合,數(shù)據(jù)類型可以是基本數(shù)據(jù)類型或復式數(shù)據(jù)類型。通過下標訪問數(shù)組中的數(shù)據(jù)。可定義到6維數(shù)組
構(gòu)造 STRUCT 由多種數(shù)據(jù)類型組成的數(shù)據(jù)集合
另一種復式數(shù)據(jù)類型稱為“用戶數(shù)據(jù)類型(UDT)”,它是利用STEP 7“程序編輯器”產(chǎn)生的,可命名構(gòu)造。將大量數(shù)據(jù)組織到UDT中,在生成數(shù)據(jù)塊或在變量聲明表中聲明變量時將變得更加方便。用戶還可為UDT聲明符號名。
日期-時間數(shù)據(jù)類型的名稱、位數(shù)及格式是由操作系統(tǒng)定義的,用戶不可改變,并且該類型在S7-300中必須用標準功能塊SFC才能訪問。其它復式數(shù)據(jù)類型則由用戶在邏輯塊變量聲明表或數(shù)據(jù)塊中定義。
1. 數(shù)組
一個數(shù)組將同種數(shù)據(jù)類型組合成整體,但不能建立數(shù)組的數(shù)組。圖5.4表示一個二維 整數(shù)數(shù)組。數(shù)組的符號名是“Op_temps”,用符號名加下標可訪問數(shù)組中的數(shù)據(jù)。以圖5.4為例,*個整數(shù)是Op_temps[1,1],第三個為Op_temps[l,3],第四個為Op_temps[2,1],第六個為Op_temps[2,3]。
1) 建立數(shù)組
在數(shù)據(jù)塊或變量聲明表中可定義數(shù)組。在聲明數(shù)組時,首先給數(shù)組命名,接著使用關鍵字(ARRAY),然后在方括號中給出數(shù)組的大小及維數(shù)??梢远x多達6維的數(shù)組,并用下標來標識數(shù)組的大小。在方括號中放下標,各維之間用逗號隔開,每一維的首尾之間用雙點隔開。一個下標可以為任何一個整數(shù)值(范圍:-32 768~+32 767),并包括負數(shù)。如用ARRAY[1‥3, 1‥2, 1‥3, -2‥3, 30‥32, 1‥4]來定義變量Op_temps為6維數(shù)組。該數(shù)組的*個整數(shù)為Op_temps[1, 1, 1, -2, 30, 1];后一個為Op_temps[3, 2, 3, 3, 32, 4]。圖5.5顯示了建立名字為Heat_2×3的二維數(shù)組(與圖5.4中的數(shù)組相似)。
2) 賦初始值
在建立數(shù)組時,STEP 7允許以兩種方法給數(shù)組的元素賦初始值。對圖5.5中的數(shù)組,可以為6個元素賦初始值:17,23,-45,556,3342,0;若初始值中有順序相同的元素,寫法可以簡化,如要數(shù)組的頭兩個元素設特定數(shù)值,其余4個為10,則可簡寫為17,23,4(10),其中4為重復系數(shù),10為要重復的數(shù)值。
3) 訪問數(shù)組
利用數(shù)組中元素的下標可以訪問數(shù)組數(shù)據(jù),這時數(shù)據(jù)塊、數(shù)組符號名及下標一起 使用。如圖5.5中聲明的數(shù)組在DB20(符號名:MOTOR)的*個字節(jié)處開始,用以下地址訪問數(shù)組中的第二個元素:
MOTOR. Heat_2×3[1,2]
4) 利用數(shù)組傳遞參數(shù)
將數(shù)組作為參數(shù)傳遞時,要求形式參數(shù)和實際參數(shù)必須有同樣的數(shù)據(jù)組織結(jié)構(gòu)、相同 的數(shù)據(jù)類型,并按相同的順序排列。
2. 構(gòu)造
構(gòu)造將不同數(shù)據(jù)類型組合成一個整體,見圖5.6。構(gòu)造的元素可以是任何基本數(shù)據(jù)類型或復式數(shù)據(jù)類型,有數(shù)組或構(gòu)造元素的構(gòu)造能嵌套8層。因此,STEP 7允許用戶將過程中的各種關聯(lián)數(shù)據(jù)統(tǒng)一組織在一個構(gòu)造中,也為統(tǒng)一處理不同類型數(shù)據(jù)或參數(shù)提供了可能性
1) 建立構(gòu)造
構(gòu)造(STRUCT)只能在數(shù)據(jù)塊或變量聲明表中定義。圖5.7所示為由整數(shù)(存放數(shù)量)、字節(jié)(存放原始數(shù)據(jù))、字符(存放控制碼)、浮點數(shù)(存放溫度)、布爾數(shù)(完成標志信號)組成的構(gòu)造。該構(gòu)造的名稱為Stack_1。