PLC编程时Word和int数据类型傻傻分不清楚?本文一起学习一
大家在做PLC程序设计时有没有遇到过这种困惑:有的程序里INT 和WORD可以互用,但是有的不行,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。
二、从编程角度分析一下(看完本段,知道然,并知道所以然)
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编程模式下不区分数据类型就可以互用就不会报错了。但是不建议这样使用。
3、讲解3
给你一个很好理解方式,
就是如果你要用到负数,那只能用INT 因为INT是带符号的,最高位是符号位。
那么如果你没有符号需求,可以使用word 当然符号位也是数据,所以范围更大。
两者在用法上没有什么区别,但是在在LAD语言编程中如果TNT和WORD数据类型互用会报错的。
还有一点最值得注意的地方,你在给PIW这些通道添加符号注释的时候要注意数据类型,混淆了INT和WORD在调用FC105 你就会发现报错,这个很多人都会犯这个错误。
4、讲解4
INT是整数,取值范围-32768~32767。WORD是字,取值范围0~65535。
如果在调用的块中使用,注意块引脚指定的数据类型,使用的变量类型必须与引脚的数据类型一致才可以的。当然也要注意存储数值的范围。