標(biāo)題: PLC編程時(shí)Word和int數(shù)據(jù)類型分不清楚?一文搞懂 [打印本頁]

作者: 杭州良石技術(shù)    時(shí)間: 2019-4-13 12:23
標(biāo)題: PLC編程時(shí)Word和int數(shù)據(jù)類型分不清楚?一文搞懂
大家在做PLC程序設(shè)計(jì)時(shí)有沒有遇到過這種困惑:有的程序里INT 和WORD可以互用,但是有的不行,word和INT各自的區(qū)別以及總結(jié)下哪些可以替代互用,哪些不能互用?




一、區(qū)別的概述(著急的話看完這段就可以了)

1、WORD是無符號(hào)的數(shù)據(jù)類型;INT是有符號(hào)的數(shù)據(jù)類型(最高位為1表示負(fù)數(shù),0表示正數(shù))。通常情況下WORD用于邏輯運(yùn)算,INT用于數(shù)學(xué)運(yùn)算;在使用梯形圖或SCL等語言編程時(shí)區(qū)分較嚴(yán)格。在使用語句表編程時(shí)系統(tǒng)不檢測(cè)數(shù)據(jù)類型是否匹配,即WORD與INT在用法上沒有什么區(qū)別(WORD可做數(shù)學(xué)運(yùn)算,INT也可作邏輯運(yùn)算)。

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

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


十進(jìn)制:

WORD:0-65535。

INT:-32768—+32767。




二、從編程角度分析一下(看完本段,知道然,并知道所以然)


1、INT是一種數(shù)據(jù)類型,是16位整型數(shù)據(jù),-32768-32767

WORD表示一個(gè)字,可以存放16位的數(shù)據(jù),對(duì)于數(shù)據(jù)的類型沒有具體的要求;

2、數(shù)據(jù)類型INT 和WORD都是16位存儲(chǔ)單元,但是INT是整數(shù)存儲(chǔ)數(shù)據(jù)類型,存儲(chǔ)的是整數(shù),范圍是-32768到+32767。WORD是字?jǐn)?shù)據(jù)類型,如果存儲(chǔ)數(shù)據(jù)的話是無符號(hào)整數(shù)0-65535。在STL語言編程中,數(shù)據(jù)類型不怎么區(qū)分 ,INT和WORD數(shù)據(jù)類型可以互用,但是在LAD語言編程中如果TNT和WORD數(shù)據(jù)類型互用會(huì)報(bào)錯(cuò)的。當(dāng)然,你也可以在STEP7軟件中設(shè)置在LAD編程模式下不區(qū)分?jǐn)?shù)據(jù)類型就可以互用就不會(huì)報(bào)錯(cuò)了。但是不建議這樣使用。

3、給你一個(gè)很好理解方式,就是如果你要用到負(fù)數(shù),那只能用INT 因?yàn)镮NT是帶符號(hào)的,最高位是符號(hào)位。

那么如果你沒有符號(hào)需求,可以使用word 當(dāng)然符號(hào)位也是數(shù)據(jù),所以范圍更大。

兩者在用法上沒有什么區(qū)別,但是在在LAD語言編程中如果TNT和WORD數(shù)據(jù)類型互用會(huì)報(bào)錯(cuò)的。

還有一點(diǎn)最值得注意的地方,你在給PIW這些通道添加符號(hào)注釋的時(shí)候要注意數(shù)據(jù)類型,混淆了INT和WORD在調(diào)用FC105 你就會(huì)發(fā)現(xiàn)報(bào)錯(cuò),這個(gè)很多人都會(huì)犯這個(gè)錯(cuò)誤。




4、INT是整數(shù),取值范圍-32768~32767。WORD是字,取值范圍0~65535。

如果在調(diào)用的塊中使用,注意塊引腳指定的數(shù)據(jù)類型,使用的變量類型必須與引腳的數(shù)據(jù)類型一致才可以的。當(dāng)然也要注意存儲(chǔ)數(shù)值的范圍。

本文轉(zhuǎn)自“工業(yè)之家”






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1