技术论坛

请教:step7中,word和int的区别。

作者 主题
至圣

经验值: 12743
发帖数: 1586
精华帖: 1
主题:【探讨】请教:step7中,word和int的区别。


只看楼主 楼主 2022-05-05 20:40:55

200smart中,word属于无符号整数,数据范围是0---65535;int属于有符号整数,数据范围是-32768---32767。

学习300的PID功能块FB41,输入针脚PV_PER,外接PIW256,这个针脚的数据类型是WORD,但是PIW256,它的数据范围是-27648---27648,给我的感觉应该是INT,,,还有输出针脚LMN_PER,外接的是PQW256,同样的也能够输出-27648---27648,但是数据类型依旧是WORD。

所以,这就让我分不清step7中的word和INT,有啥区别了。

请好心的朋友教我!

谢谢!





努力学习西门子
以下网友喜欢您的帖子:

  
重要声明:

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

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1760656&b_id=4&s_id=0&num=8

至圣

经验值: 24344
发帖数: 4846
精华帖: 6
回复:请教:step7中,word和int的区别。


只看楼主 1楼 2022-05-05 20:57:28

word  可用于逻辑运算,不带符号。打个比方两把挂锁是同时所在一个门扣上,要两个人都有钥匙才能开。如果是串在一起在就只要一个人带钥匙就能开。这就用word可以进行逻辑运算,而且可以同时运算许多回路,并且可以运算更复杂内容。用开关的串并联控制一个小灯可能更贴切。INT是整数带符号可以进行常规数学运算,你借我的钱,我借你的钱带上符号后到时谁欠谁的钱就可以用整数算的明明白白。我就是这样理解这两个数据类型的。有时他们之间又有共性之处,好像有的PLC也能把word当整数去运算。有的有严格的数据类型匹配要求。


谨慎低调
以下网友喜欢您的帖子:

  
侠圣

经验值: 3816
发帖数: 730
精华帖: 3
回复:请教:step7中,word和int的区别。


只看楼主 2楼 2022-05-05 21:02:53

这个就要考虑到数据结构了,int和word都是由16个BOOL组成,这两个数据最大的区别在于最后一个位是否为符号位,int是有符号位的,word是没有符号位的。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 12743
发帖数: 1586
精华帖: 1
回复:请教:step7中,word和int的区别。


只看楼主 楼主 3楼 2022-05-05 21:55:10
以下是引用手机用户20180604694547在2022-05-05 21:02:53的发言 >2楼

这个就要考虑到数据结构了,int和word都是由16个BOOL组成,这两个数据最大的区别在于最后一个位是否为符号位,int是有符号位的,word是没有符号位的。

在学习200smart的过程中,一直认为只要这个16位的存在负值,就是INT类型,而且基本上是屡试不爽。

看来到了300这里需要改变观念了。

比较讨厌的是,如果你对这个变量定义符号名的时候,,需要填写数据类型,一旦填错,会爆红!!!


现在关键是,word和INT,在300中,是不是没有啥规律,这个块想把这个针脚定义成啥数据类型就是啥数据类型?就比如这个FB41,这个PV_PER我就定义成WORD,就看你自己从什么角度去看数据,如果用十进制去看,我这个数据就是有符号的,如果你从16进制去看,我自然就是无符号的。。。


努力学习西门子
以下网友喜欢您的帖子:

  
侠士

经验值: 1507
发帖数: 134
精华帖: 1
回复:请教:step7中,word和int的区别。


只看楼主 4楼 2022-05-05 23:09:13
共同性都是可以储存数据,word一个逻辑运算比如位与字节使用,最简单的就是通讯的控制字与状态字。int是一个算数运算比如加减乘除,还有就是通讯用到的速度电流都是整数。
 
以下网友喜欢您的帖子:

  
至圣

经验值: 43597
发帖数: 15780
精华帖: 61
回复:请教:step7中,word和int的区别。


只看楼主 5楼 2022-05-07 08:41:59

step7 和smart中是一样的,word最高位是数值,int最高位是符号位,那么在最高位为0的情况下,int和word的值在pid中使用是一样的。


活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
回复:请教:step7中,word和int的区别。


只看楼主 6楼 2022-05-07 09:31:49

WORD转INT不会出错,比如12345转换为INT就是12345、54321转为INT就是-11215。所以FB以WORD作为输入不会丢失任何的原始数据信息。

但,如果是INT作为输入信息?那么如果输入信号是超过32768的数据就会无法处理了,这样就会与IOW的范围有冲突。

所以,只管用就是了,想这些无关的问题干啥?人家西门子早就为你考虑了这种情况了。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 6006
发帖数: 959
精华帖: 6
回复:请教:step7中,word和int的区别。


只看楼主 7楼 2022-05-07 11:22:46

西门子就是呆板严谨于一体的,什么数据类型用错了就会变红报警的。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2790
发帖数: 390
精华帖: 5
回复:请教:step7中,word和int的区别。


只看楼主 8楼 2022-05-16 18:28:18

西门子就是呆板严谨于一体的,什么数据类型用错了就会变红报警的。

///////////////////////////////////////////////////////////////////////

不是它严谨呆板,而是 处理器决定了它必须或者只能这样作,这就是为何LAD FBD SCL 等格式编译的程序最终都是STL 去执行,也是所谓STL 格式的执行效率最高的原因之一。

例如  在SCL 里,你可以把 数据类型进行转换,但处理计算等运算时,要求你数据类型要统一,否则编译故障,

例如    INT_TO_REAL  INT_TO _WORD   WORD_TO_INT  等等都可以转换,

INT1:=  float1 * float2 / float3 就不行,  

WORD3:=WORD1* WORD2  也不行。

但是  IN1:=  REAL_TO_INT(float1 * float2 / float3);

WORD3:= INT_TO_WORD(WORD_TO_INT(WORD1)* WORD_TO_INT(WORD2));

可以

所以依旧原则,需要数学 运算或逻辑运算,请使用同一类型的数据,最后在转换。


大家同行,you ok ? me !
以下网友喜欢您的帖子:

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