PLC是工業(ye) 控製不可缺少的自動化核心設備,要想學好PLC就必須要先了解數據類型。數據類型是所有自動化軟件的基礎,隻有熟練掌握,才能隨心所欲的駕馭。下麵我們(men) 就以西門子S7-200為(wei) 例,詳細講述這些數據類型。S7-200SMART和S7-200類似。
西門子編程中基本的數據類型共7種,分別是:
位bit、字節byte、字word、雙字double word、整數型int、雙整數dint、實數real。
關(guan) 係公式:1雙字=2字=4字節=32位
1.位:BOOL,隻有兩(liang) 個(ge) 值0和1,如I0.0,Q0.2等
2.字節:一個(ge) 字節等於(yu) 8位,範圍是0~7,如IB0包括I0.0-I0.7。
3.字:相鄰的兩(liang) 字節組成一個(ge) 字,表示一個(ge) 無符號數,因此字為(wei) 16位。如IW0由IB0和IB1組成。
4.雙字:相鄰的兩(liang) 個(ge) 字組成一個(ge) 雙字,來表示一個(ge) 無符號數。如MD4由MW4和MW6組成。
5.整數:為(wei) 有符號數,最高位為(wei) 符號位,1表示正數,0表示負數。
6.浮點數:可以用來表示小數。
VW:V寄存器字。
IW:輸入字。
QW:輸出字。
MW:M寄存器字。
SMW:係統寄存器字。
LW:臨(lin) 時寄存器字。
AIW:模擬量輸入字 。
MWx表示數據格式為(wei) 字WORD或整數INT的內(nei) 部寄存器地址。
MW0表示偏移地址為(wei) 0的內(nei) 存字,MW8表示偏移地址為(wei) 8的內(nei) 存字。
西門子PLC的QW0用法如下:
西門子PLC係統基本上是以字節為(wei) 單位的,所以,其數據格式為(wei) 字WORD或整數INT的”規範“偏移地址是以2為(wei) 步進量的,例如:MW2、MW4、MW6;(MW1這種地址也是允許的,但必須自行保證程序中所使用的數據地址不複用)。
基本數據類型由以下幾種:
1.1、位(bit)
定義(yi) 為(wei) BOOL(布爾型),隻有兩(liang) 個(ge) 值:0 或 1。如:I0.0,Q0.1,M0.0,V0.1 等。
1.2、字節(Byte)
定義(yi) 一個(ge) 字節(Byte)等於(yu) 8 位(Bit),其中0位為(wei) 最低位,7 位為(wei) 最高位。
如:IB0(包括 I0.0~I0.7 位),QB0(包括Q0.0~Q0.7 位),MB0,VB0 等。
用十六進製表示的範圍為(wei) :00~FF,用十進製表示的範圍為(wei) 0~255。
定義(yi) 相鄰的兩(liang) 字節(Byte)組成一個(ge) 字(Word),表示一個(ge) 無符號整數,所以一個(ge) 字為(wei) 16位。
如:IW0 由 IB0 和 IB1 組成的,其中I是輸入映象寄存器,W表示字,0是字的起始字節。特別注意的是:起始字節必須是偶數。
字的範圍為(wei) 十六進製的 0000~FFFF,十進製的 0~65536。
在編程時,如果已經使用 IW0,如果想再用 IB0或 IB1,就要特別慎重,避免重複定義(yi) 。
相鄰的兩(liang) 個(ge) 字(Word)組成一個(ge) 雙字,來表示一個(ge) 無符號數。因此,雙字為(wei) 32 位。
如:MD100 是由 MW100 和 MW102 組成的,其中M是位存儲(chu) 區,D表示雙字,100是雙字的起始字節。特別注意的是:雙字的起始字節也必須是偶數。
雙字的範圍為(wei) 十六進製的 0000~FFFFFFFF(即十進製的 0~4294967295)。
在編程時如果已經使用了MD100,如果再用 MW100或MW102,就要特別慎重,避免重複定義(yi) 。
特別注意:以上的字節、字和雙字數據類型均為(wei) 無符號數,即隻有正數,沒有負數。
1.5、16位整數(INT,Integer)
整數為(wei) 有符號數,最高位為(wei) 符號位,1表示負數,0表示正數。範圍為(wei) -32768~32767。
1.6、32 位整數(DINT,DoubleInteger)
32 位整數和16位整數一樣,為(wei) 有符號數,最高位為(wei) 符號位,1表示負數,0表示正數。範圍為(wei) -2147483648~2147483647。
浮點數為(wei) 32 位,可以用來表示小數。浮點數可以為(wei) :1.m×2e。數據類型VB,VW,VD關(guan) 係
用戶通過複合基本數據類型而生成就是複合數據類型。
複合數據類型包括以下幾種:
2.1、數組(ARRAY)
將一組同一類型的數據組合在一起組成一個(ge) 單位就是數組。
2.2、結構(STRUCT)
將一組同不同類型的數據組合在一起組成一個(ge) 單位就是結構。
2.3、字符串(STRING)
字符串是由最多 254 個(ge) 字符組成的一維數組。
2.4、日期和時間(DATE-AND-TIME)
用於(yu) 存儲(chu) 年、月、日、時、分、秒、毫秒和星期的數據。占用 8 個(ge) 字節,BCD 編碼。
星期天代碼為(wei) 1,星期一~星期六代碼分別是 2~7。
如:DT#2004_07_15_12:30:15.200 為(wei) 2004 年 7 月 15 日 12 時 30 分 15.2 秒。
2.5、用戶定義(yi) 的數據類型(UDT,User-DefinedDataType)
由用戶將基本數據類型和複合數據類型組合在一起形成的數據類型。
可以在數據塊DB和變量聲明表中定義(yi) 複合數據類型。
3、數據類型匯總表格
對於(yu) 有符號的整數來說,最高位用作符號位,餘(yu) 下的位才是數值部分。
下麵以有符號整數INT來舉(ju) 例說明其數值範圍為(wei) 什麽(me) 是-32768-32767?
最高位是符號位,0為(wei) “+”、1為(wei) “-,去掉一個(ge) 符號位後,餘(yu) 下的數據隻有15位。
15位二進製1對應的整數最大正整數為(wei) 2^15-1=32767,最大值為(wei) +32767,對應二進製:0111 1111 1111 1111。即十進製範圍:0~32767;
15位二進製1對應的整數最大負整數為(wei) -2^15=-32768,最大值為(wei) -32768,對應二進製:1111 1111 1111 1111。即十進製範圍:-32768~-1;
其實,數據類型簡單也複雜,尤其是自定義(yi) 數據類型。看得懂,並不代表你能在編程過程中能正確使用。隻有自己動手編程,對不同的數據類型進行定義(yi) 和使用,才能有深入地理解和掌握。當你對數據類型充分理解後,就可以學習(xi) 數據的尋址。堅持不懈的學習(xi) 和實際編程,才會(hui) 有可能成為(wei) 變成專(zhuan) 家。