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。

如果在调用的块中使用,注意块引脚指定的数据类型,使用的变量类型必须与引脚的数据类型一致才可以的。当然也要注意存储数值的范围。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180812A0CJ8T00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券