天天看點

int 取值範圍_PLC程式設計時Word和int資料類型傻傻分不清楚?一文搞懂!

大家在做PLC程式設計時有沒有遇到過這種困惑:有的程式裡INT 和WORD可以互用,但是有的不行,word和INT各自的差別以及總結下哪些可以替代互用,哪些不能互用?本文一起學習一下!

int 取值範圍_PLC程式設計時Word和int資料類型傻傻分不清楚?一文搞懂!

一、差別的概述(着急的話看完這段就可以了)

1、WORD是無符号的資料類型;INT是有符号的資料類型(最高位為1表示負數,0表示正數)。通常情況下WORD用于邏輯運算,INT用于數學運算;在使用梯形圖或SCL等語言程式設計時區分較嚴格。在使用語句表程式設計時系統不檢測資料類型是否比對,即WORD與INT在用法上沒有什麼差別(WORD可做數學運算,INT也可作邏輯運算)。

2、S7-300的WORD與INT的取值範圍:

字的取值範圍都是:W#16#0000~~~W#16#FFFF

十進制:

WORD:0-65535。

INT:-32768—+32767。

int 取值範圍_PLC程式設計時Word和int資料類型傻傻分不清楚?一文搞懂!

二、從程式設計角度分析一下(看完本段,知道然,并知道是以然)

1、講解1

INT是一種資料類型,是16位整型資料,-32768-32767

WORD表示一個字,可以存放16位的資料,對于資料的類型沒有具體的要求;

2、講解2

資料類型INT 和WORD都是16位存儲單元,但是INT是整數存儲資料類型,存儲的是整數,範圍是-32768到+32767。WORD是字資料類型,如果存儲資料的話是無符号整數0-65535。在STL語言程式設計中,資料類型不怎麼區分 ,INT和WORD資料類型可以互用,但是在LAD語言程式設計中如果TNT和WORD資料類型互用會報錯的。當然,你也可以在STEP7軟體中設定在LAD程式設計模式下不區分資料類型就可以互用就不會報錯了。但是不建議這樣使用。

int 取值範圍_PLC程式設計時Word和int資料類型傻傻分不清楚?一文搞懂!

3、講解3

給你一個很好了解方式,

就是如果你要用到負數,那隻能用INT 因為INT是帶符号的,最高位是符号位。

那麼如果你沒有符号需求,可以使用word 當然符号位也是資料,是以範圍更大。

兩者在用法上沒有什麼差別,但是在在LAD語言程式設計中如果TNT和WORD資料類型互用會報錯的。

還有一點最值得注意的地方,你在給PIW這些通道添加符号注釋的時候要注意資料類型,混淆了INT和WORD在調用FC105 你就會發現報錯,這個很多人都會犯這個錯誤。

int 取值範圍_PLC程式設計時Word和int資料類型傻傻分不清楚?一文搞懂!

4、講解4

INT是整數,取值範圍-32768~32767。WORD是字,取值範圍0~65535。

如果在調用的塊中使用,注意塊引腳指定的資料類型,使用的變量類型必須與引腳的資料類型一緻才可以的。當然也要注意存儲數值的範圍。