西門(mén)子s7-300plc的數(shù)據(jù)類(lèi)型分以下三種:基本數(shù)據(jù)類(lèi)型、復(fù)合數(shù)據(jù)類(lèi)型和參數(shù)類(lèi)型。
一、基本數(shù)據(jù)類(lèi)型
1、位(bit)
常稱(chēng)為bool(布爾型),只有兩個(gè)值:0或1。如:i0.0,q0.1,m0.0,v0.1等。
2、字節(jié)(byte)
一個(gè)字節(jié)(byte)等于8位(bit),其中0位為最低位,7位為最高位。如:ib0(包括i0.0~i0.7位),qb0(包括q0.0~q0.7位),mb0,vb0等。范圍:00~ff(十進(jìn)制的0~255)。
3、字(word)
相鄰的兩字節(jié)(byte)組成一個(gè)字(word),來(lái)表示一個(gè)無(wú)符號(hào)數(shù),因此,字為16位。如:iw0是由ib0和ib1組成的,其中i是區(qū)域標(biāo)識(shí)符,w表示字,0是字的起始字節(jié)。需要注意的是,字的起始字節(jié)(如上例中的“0”)都必須是偶數(shù)。字的范圍為十六進(jìn)制的0000~ffff(即十進(jìn)制的0~65536)。在編程時(shí)要注意,如果已經(jīng)用了iw0,如再用ib0或ib1要特別加以小心。
4、雙字(doubleword)
相鄰的兩個(gè)字(word)組成一個(gè)雙字,來(lái)表示一個(gè)無(wú)符號(hào)數(shù)。因此,雙字為32位。如:md100是由mw100和mw102組成的,其中m是區(qū)域標(biāo)識(shí)符,d表示雙字,100是雙字的起始字節(jié)。需要注意的是,雙字的起始字節(jié)(如上例中的“100”)和字一樣,必須是偶數(shù)。雙字的范圍為十六進(jìn)制的0000~ffffffff(即十進(jìn)制的0~4294967295)。在編程時(shí)要注意,如果已經(jīng)用了md100,如再用mw100或mw102要特別加以小心。
以上的字節(jié)、字和雙字?jǐn)?shù)據(jù)類(lèi)型均為無(wú)符號(hào)數(shù),即只有正數(shù),沒(méi)有負(fù)數(shù)。
5、16位整數(shù)(int,integer)
整數(shù)為有符號(hào)數(shù),最高位為符號(hào)位,1表示負(fù)數(shù),0表示正數(shù)。范圍為-32768~32767。
6、32位整數(shù)(dint,doubleinteger)
32位整數(shù)和16位整數(shù)一樣,為有符號(hào)數(shù),最高位為符號(hào)位,1表示負(fù)數(shù),0表示正數(shù)。范圍為-2147483648~2147483647。
7、浮點(diǎn)數(shù)(r,real)
浮點(diǎn)數(shù)為32位,可以用來(lái)表示小數(shù)。浮點(diǎn)數(shù)可以為:1.m×2e,其存儲(chǔ)結(jié)構(gòu)如圖所示:
8、常數(shù)的表示方法
常數(shù)可以是字節(jié)、字或雙字,cpu以二進(jìn)制方式存儲(chǔ),也可以用十進(jìn)制,十六進(jìn)制ascii碼或浮點(diǎn)數(shù)形式來(lái)表示。如下圖所示:
說(shuō)明:(1)s5t#格式為:s5t#ad_bh_cm_ds_ems,其中a,b,c,d,e分別是日,小時(shí),分,秒和毫秒的數(shù)值,輸入時(shí)可以省掉下劃線,如表中所示。
(2)d#取值范圍為:d#1990_1_1~d#2168_12_31。
二、復(fù)合數(shù)據(jù)類(lèi)型
用戶通過(guò)復(fù)合基本數(shù)據(jù)類(lèi)型而生成就是復(fù)合數(shù)據(jù)類(lèi)型。
復(fù)合數(shù)據(jù)類(lèi)型包括以下幾種:
1、數(shù)組(array)
將一組同一類(lèi)型的數(shù)據(jù)組合在一起組成一個(gè)單位就是數(shù)組。
2、結(jié)構(gòu)(struct)
將一組同不同類(lèi)型的數(shù)據(jù)組合在一起組成一個(gè)單位就是結(jié)構(gòu)。
3、字符串(string)
字符串是由最多254個(gè)字符組成的一維數(shù)組。
4、日期和時(shí)間(date-and-time)
用于存儲(chǔ)年、月、日、時(shí)、分、秒、毫秒和星期的數(shù)據(jù)。占用8個(gè)字節(jié),bcd編碼。星期天代碼為1,星期一~星期六代碼分別是2~7。
如:dt#2004_07_15_12:30:15.200為2004年7月15日12時(shí)30分15.2秒。
5、用戶定義的數(shù)據(jù)類(lèi)型(udt,user-defineddatatypes)
由用戶將基本數(shù)據(jù)類(lèi)型和復(fù)合數(shù)據(jù)類(lèi)型組合在一起形成的數(shù)據(jù)類(lèi)型。
可以在數(shù)據(jù)塊db和變量聲明表中定義復(fù)合數(shù)據(jù)類(lèi)型。
三、參數(shù)類(lèi)型
是為在邏輯塊之間傳遞參數(shù)的形參(formalparameter,形式參數(shù))定義的數(shù)據(jù)類(lèi)型。