step7有3種數(shù)據(jù)類型:
1. 基本數(shù)據(jù)類型
2. 由基本數(shù)據(jù)類型組合而成的復(fù)合數(shù)據(jù)類型;
3. 用來傳送fb塊和fc塊參數(shù)的參數(shù)數(shù)據(jù)類型
本文首先介紹一下基本數(shù)據(jù)類型。
step7的基本數(shù)據(jù)類型總共有7種,分別為:位(bit)、字節(jié)(byte)、字(word)、雙字(double word)、整型數(shù)(int)、雙整型數(shù)(dint)以及實數(shù)(real)。
1. 位(bit)
取值:1、0
尋址方式:地址標(biāo)識符+字節(jié)地址+位地址。
圖1 基本數(shù)據(jù)類型:位(bit)
2. 字節(jié)(byte)
8位二進(jìn)制數(shù)組成一個字節(jié)。其中,第0位為最低位(lsb),第7位為最高位(msb)。
尋址方式:地址標(biāo)識符+b+字節(jié)地址,其中,b即代表字節(jié)。
圖2 基本數(shù)據(jù)類型:字節(jié)(byte)
3. 字(word)
相鄰的兩個字節(jié)組成一個字,16位。
字用來表示無符號數(shù),范圍:[0000,ffff]16進(jìn)制,或[0,65535]10進(jìn)制
尋址方式:地址標(biāo)識符+w+首字節(jié)地址,其中,w代表字。
圖3 基本數(shù)據(jù)類型:字(word)
4. 雙字(double word)
相鄰的兩個字組成一個雙字,32位。
雙字也用來表示無符號,范圍:[00000000,ffffffff]16進(jìn)制
尋址方式:地址標(biāo)識符+d+首字節(jié)地址,其中,d代表雙字。
圖4 基本數(shù)據(jù)類型:雙字(double word)
5. 整型數(shù)(int)
整數(shù)是有符號數(shù),占16位。最高位為符號位,0:正數(shù);1:負(fù)數(shù)。
取值范圍為:[-32768,32767]。
6. 雙整型數(shù)(dint)
雙整數(shù)也是有符號數(shù),占32位。最高位為符號位,0:正數(shù);1:負(fù)數(shù)。
取值范圍為:[-2147483648,2147483647]。
7. 浮點數(shù)(real)
標(biāo)準(zhǔn)的浮點數(shù)格式如圖5所示,占32位。
最高位為符號位,0:正數(shù);1:負(fù)數(shù)。
圖5 基本數(shù)據(jù)類型:浮點數(shù)(real)
浮點數(shù)的優(yōu)點是用32位的空間可以表示非常大和非常小的數(shù)。
plc在處理模擬量時,其輸入和輸出大多是整數(shù),用浮點數(shù)來處理這些數(shù)據(jù)時要進(jìn)行整數(shù)和浮點數(shù)之間的相互轉(zhuǎn)換。例如圖6所示,現(xiàn)場采集的數(shù)據(jù)為16位的整型數(shù)(#in),plc在做控制前,要先將其轉(zhuǎn)換為浮點數(shù)(#ditor)。由于整型數(shù)占16位,而浮點數(shù)占32位,二者不能直接轉(zhuǎn)換。要先將整型數(shù)轉(zhuǎn)換為雙整型(#itodi),然后再轉(zhuǎn)換為浮點型。
圖6 整型數(shù)轉(zhuǎn)換為浮點數(shù)
需要注意的是,浮點數(shù)的運算速度比整數(shù)的運算速度要慢得多。