找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3489|回复: 0
打印 上一主题 下一主题
收起左侧

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、INT是一种数据类型,是16位整型数据,-32768-32767

WORD表示一个字,可以存放16位的数据,对于数据的类型没有具体的要求;

2、数据类型INT 和WORD都是16位存储单元,但是INT是整数存储数据类型,存储的是整数,范围是-32768到+32767。WORD是字数据类型,如果存储数据的话是无符号整数0-65535。在STL语言编程中,数据类型不怎么区分 ,INT和WORD数据类型可以互用,但是在LAD语言编程中如果TNT和WORD数据类型互用会报错的。当然,你也可以在STEP7软件中设置在LAD编程模式下不区分数据类型就可以互用就不会报错了。但是不建议这样使用。

3、给你一个很好理解方式,就是如果你要用到负数,那只能用INT 因为INT是带符号的,最高位是符号位。

那么如果你没有符号需求,可以使用word 当然符号位也是数据,所以范围更大。

两者在用法上没有什么区别,但是在在LAD语言编程中如果TNT和WORD数据类型互用会报错的。

还有一点最值得注意的地方,你在给PIW这些通道添加符号注释的时候要注意数据类型,混淆了INT和WORD在调用FC105 你就会发现报错,这个很多人都会犯这个错误。




4、INT是整数,取值范围-32768~32767。WORD是字,取值范围0~65535。

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

本文转自“工业之家”

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表