技术论坛

关于word和int数据类型

作者 主题
游士

经验值: 296
发帖数: 15
精华帖: 0
主题:关于word和int数据类型


只看楼主 楼主 2013-02-28 08:55:46
大家好:

最近有一个问题一直困扰着我,我有一个小程序;其中有SHL_W和整数比较指令,两个指令均要需要字MW10;
现在的问题是如果我在符号表中对MW10未做任何命名和注释,那么程序是ok的;
可是一旦我在符号表中对MW10进行命名和注释,那么就会出现错误 错误的信息是 type conflict with
entry.
比如 如果MW10在符号表中定义的数据类型为word 那么就会在比较指令中出现错误
还有 谁能说说word和int之间的区别和联系
请问一下 这个问题该怎么解决?
每天进步一点点
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1053214&b_id=4

奇侠

经验值: 6358
发帖数: 504
精华帖: 0
回复:关于word和int数据类型


只看楼主 1楼 2013-02-28 09:34:34
int 有符号,从负到正,-32768—32767,WORD没符号,是0—65536
 
以下网友喜欢您的帖子:

  
奇侠

经验值: 7652
发帖数: 1959
精华帖: 1
回复:关于word和int数据类型


只看楼主 2楼 2013-02-28 18:50:35
字(WORD)
字数据长度为16位,这种数据可采用4种方法进行描述。
二进制:二进制的格式为2#,如2#101,取值范围为2#0~2#1111_1111_1111_1111,书写时每4位可用下划线隔开,也可直接表示为2#111111111111。
十六进制:十六进制的格式为W#16#,W代表WORD,表示数据长度为16位,#16#表示十六进制,数据取值范围为W#16#0~W#16#FFFF。
BCD码:BCD码的格式为C#,取值范围为C#0~C#999。BCD码是用4位二进制表示1位十进制数,4位二进制中的0000~1001组合分别表示十进制中的0~9,4位二进制中的1010~1111组合放弃不用。BCD码的最高4位用来表示符号,十六位BCD码的取值范围为-999~+999。在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。
无符号十进制数:无符号十进制数的格式为B#(×,×),取值范围为B#(0,0)~B#(255,255),无符号十进制数是用十进制的0~255对应二进制数中的0000_0000~1111_1111(8位),16位二进制数就需要两个0~255的数来表示,例如:
B#(12,254)=2#0000_1100_1111_1110
12 254
上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C#987或者B#(9,135)。在STEP7中,比较常用的是十六进制,即W#16#这种格式。
整数(INT)
整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。正整数是以原码格式进行存储的,如+786,对应的二进制码为2#0000_0011_0001_0010,而负整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加1,例如负整数-786,对应的二进制码为2#1111_1100_1110_1110。将负零(1000_0000_0000_0000)定义为-32768因此取值范围为-32768~32767。0表示正,1表示负。
文建
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:关于word和int数据类型


只看楼主 3楼 2013-03-01 06:59:30
比较指令只能比较整数INT,未设数据类型的地址和累加器被视为INT。
追求完美
以下网友喜欢您的帖子:

  
侠圣

经验值: 2339
发帖数: 239
精华帖: 0
回复:关于word和int数据类型


只看楼主 4楼 2013-03-02 12:10:17
quote:以下是引用Automann在2013-03-01 06:59:30的发言:
比较指令只能比较整数INT,未设数据类型的地址和累加器被视为INT。


200plc是这样的吗?
 
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:关于word和int数据类型


只看楼主 5楼 2013-03-02 13:21:48
quote:以下是引用gfarmer在2013-03-02 12:10:17的发言:
quote:以下是引用Automann在2013-03-01 06:59:30的发言:
比较指令只能比较整数INT,未设数据类型的地址和累加器被视为INT。


200plc是这样的吗?

200也不能比较无符号数。
追求完美
以下网友喜欢您的帖子:

  
侠圣

经验值: 2339
发帖数: 239
精华帖: 0
回复:关于word和int数据类型


只看楼主 6楼 2013-03-02 15:46:14
quote:以下是引用Automann在2013-03-02 13:21:48的发言:
quote:以下是引用gfarmer在2013-03-02 12:10:17的发言:
quote:以下是引用Automann在2013-03-01 06:59:30的发言:
比较指令只能比较整数INT,未设数据类型的地址和累加器被视为INT。


200plc是这样的吗?

200也不能比较无符号数。


原来我进300论坛区了,在200符号表里不能定义数据类型,不会改成word吧?
 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2339
发帖数: 239
精华帖: 0
回复:关于word和int数据类型


只看楼主 7楼 2013-03-09 13:39:11
quote:以下是引用Automann在2013-03-02 13:21:48的发言:
quote:以下是引用gfarmer在2013-03-02 12:10:17的发言:
quote:以下是引用Automann在2013-03-01 06:59:30的发言:
比较指令只能比较整数INT,未设数据类型的地址和累加器被视为INT。


200plc是这样的吗?

200也不能比较无符号数。


200里字节比较是无符号的,300的不知道。
 
以下网友喜欢您的帖子:

  
至圣

经验值: 10198
发帖数: 2115
精华帖: 3
回复:关于word和int数据类型


只看楼主 8楼 2013-03-09 20:10:47
Step7 V5.X环境中,比较指令是有点苛刻!数据类型不一样不能比较!廖老师说博途中要放得宽松些!
Kapok
以下网友喜欢您的帖子:

  
至圣

经验值: 17407
发帖数: 1003
精华帖: 1
回复:关于word和int数据类型


只看楼主 9楼 2013-03-10 09:50:41
word就是个碗,就是大小的问题,能装下int.但是int是具体的数据类型,有符号
一个人在战斗
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:关于word和int数据类型


只看楼主 10楼 2013-03-10 11:20:31
quote:以下是引用roger_911在2013-03-10 09:50:41的发言:
word就是个碗,就是大小的问题,能装下int.但是int是具体的数据类型,有符号

Word是个碗,但是也是数据类型。
追求完美
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
关于word和int数据类型
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。