plc中WORD与整数类型的区别

作者:老电工时间:2015-10-30 19:23:36

一、 plc中WORD与整数类型的区别

WORD用于逻辑运算,INT用于数学运算;

在使用梯形图或SCL等语言编程时区分较严格

在使用语句表编程时系统不检测数据类型是否匹配,即WORD与INT在用法上没有什么区别(WORD可做数学运算,INT也可作逻辑运算)。

二、Step7数据类型中,INT和WORD的区别

Word:相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此,字为16位。如:IW0是由IB0和IB1组成的,其中I是区域标识符,W表示字,0是字的起始字节。需要注意的是,字的起始字节(如上例中的“0”)都必须是偶数。字的范围为十六进制的0000~FFFF(即十进制的0~65536)。在编程时要注意,如果已经用了IW0,如再用IB0或IB1要特别加以小心。INT:整数为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-32768~32767。

一个是整型数 一个是字数据的类型不一样
如在STEP7中:
INT的取值范围是:-32768——32767,是16位有符号整数
WORD取值范围是:2#0---2#1111_1111_1111_1111
W#16#0---W#16#FFFF
B#(0,0)---B(255,255)
C#0---C#999
是双字节数

INT和WORD的区别不在存储上,存储上是一样一样的,区别在用法上,一个寄存器里的数据存储都是一种方式,主要是你怎么用。

比如,一个16位的寄存器,里面的数据都是01010101这样的,如果你想做数学运算,比如加减乘除,就必须用INT类型来定义,如果你用与或非这种逻辑指令,就必须用WORD这种。关键是看你的指令,而不用管你的数据是怎么存放的,存放都是一样的。

再比如,两个连续的16位寄存器,你可以对每个寄存器进行INT运算,也可以两个一起进行浮点或是DINT运算,用什么指令,就用什么类型。
有些PLC,你把变量定义成INT后,这个变量就不能进行与或非逻辑处理。

这种东西是很灵活的,也是PLC,DCS编程的基础,这个基础非常重要。

三、西门子S7-300比较2个Word型数据?

S7-300怎么比较2个Word型数据?
我想比较DB0.DBW0和DB1.DBW0进行比较  要是相等就输出一个Q0.0
我用了CMP<>I  显示只能是整数类型的 求高手指点。

办法:
1、在DB里把这两个变量定义成整型
2、比较前把word转换成int (反正是比较相等,也不存在正负的问题)

四、WORD与UINT在使用上的区别

1、UINT无符号整数,即通常说的WORD型数据,WORD和UINT占用的空间是一样的,用法上没有什么区别。

INT就是“占16位的有符号数”,UINT就是“占16位的无符号数”,WORD就是“占16位的无符号数”,记住就行,编程的时候别混淆了已经足够啦。

2、从用途上看,存取数据使用WORD类型,数据运算处理使用INT类型,所以通常WORD类型用于数据存储地址标识,INT和DINT等类型用于数据运算处理,两者之间可以互相转换。但在使用梯形图或SCL等语言编程时,区分较严格。

3、STEP7帮助的“附录>数据类型和参数类型>基本数据类型”中的“基本数据类型”列表中有WORD(字)和DWORD(双字)。

4、FB、FC的局部变量表的数据类型中也有WORD和DWORD。
WORD(字)常用来说明数据的长度,和字节一样,相当于一个量词。但是WORD是个多义词,除了用来作量词外,还用来作数据类型用。就好像“天”是一个量词(例如一天两天),此外“天”还有很多别的用法一样。

WORD和INT都是16位的数据类型,区别在于有无符号。BYTE、WORD和DWORD数据类型的常数必须用16进制数来表示。
指令、FC和FB的输入、输出参数的实参的数据类型必须与定义的相同,否则会出错。

如图:

WORD与整数类型的区别

本站仅提供信息发布平台,文章仅代表作者个人观点。

猜你喜欢

首页 > plc > plc基础教程