回复:200smart高低位数据运算

已锁定

甫哥

  • 帖子

    1448
  • 精华

    72
  • 被关注

    84

论坛等级:至圣

注册时间:2009-01-04

白金 白金 如何晋级?

发布于 2023-10-12 08:55:28

9楼

展开查看
以下是引用芳季在2023-10-11 19:39:36的发言 >8楼

你的说法靠谱。借问一下,他说明书里面为什么要乘以65535,而不是65536?这个说明书靠谱吗?

以下是引用甫哥在2023-10-11 15:36:26的发言 >7楼:【四位这个字眼】指...

引用7楼详细内容:

【四位这个字眼】指的应是:四位十六进制数。

您看是不是这样的:16#FFFF=10#65535=2#11111111

以下是引用芳季在2023-10-09 18:18:31的发言 >1楼:哥们。我看你贴里有...

引用1楼详细内容:

哥们。我看你贴里有打错字打漏字的先改改。

“正有用高四位,0x20正有功地位四位”

这句话什么意思?

还有四位这个字眼是不是指一个十进制数据的个十百千四个位?那为何下面出现65535这个数?这个数可是个五位数了。

看你“高位×65535+低位”是不是理解成低位最大值就是65535,然后再加1就是高位为1,那高位应该是×65536吧?如果是这样的话,那高位和低位合起来成为4个字节,直接就是一个双字数据,值读就是数值啦。大不了高位字和低位字换位就可以直读了。

您说的对!应该是乘以25536。

如:16#20000(其中2是高字的值,0000是低字的值)=25536*2(高字)+0(低字)=10#131072=2#0000 0010 0000 0000

其实,无论是十六进制数、十进制整数,存储方法与二进制数是一致的。即:均以二进制数的方式保存,不同进制,而相等的数,保存时与二进制数一致。或者说:保存时采用的编码方法相同,并且是二进制编码。

因此,我遇到的几次SMART200 RTU通讯读取的十六进制数(二字节),均当作十进制整数,对其进行标定,结果正确。

楼主的也直接可以当作四字节整数,进行转换。

书山有路勤为径,学海无涯苦作舟;三人行,必有我师;森林之外的树木也能成才
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8936条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。