技术论坛

WinCC MODBUS/TCP接收64位浮点数问题(已解决)

作者 主题
游士

经验值: 219
发帖数: 26
精华帖: 0
主题:【求助】WinCC MODBUS/TCP接收64位浮点数问题(已解决)
推荐帖 推荐帖


只看楼主 只看精华 楼主 2017-03-23 15:14:14

问题已解决,wincc7.3的modbus采集64位浮点数格式确实有问题,后来自己编写程序将字节位置调换以后解决了,具体格式为:

1、如果从站采用64位浮点数(不交换),则wincc接收到的数据需要按以下顺序交换字节位置:45670123

2、如果从站采用64位浮点数(交换),则wincc接收到的数据需要按以下顺序交换字节位置:23016745


有个项目,需要wincc用modbus通道接收一个modbus设备的数据,其中有一个数据采用的是double inverse(64位浮点数 高低位交换)格式。结果发现wincc的modbus接收64位浮点数不对,modbus slave设备采用double和double inverse两种格式wincc接收的数据都不对。连接参数里面那个(转换字类型数据为16位值)对64位浮点数没有影响,勾不勾选接收到的值都不变。


请问这个怎么解决啊?  怎样正确接收这个数据?


下面两张图是我用modbus slave模拟器模拟的数据,用modscan和wincc同时连接这个模拟器,modbusscan接收的数据正确,wincc接收的数据不对。







 
推荐帖推荐理由: 有始有终,厚道。 (推荐人:'Razor)
以下网友喜欢您的帖子:

  
重要声明:

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

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

至圣

经验值: 19840
发帖数: 8834
精华帖: 39
回复:WinCC MODBUS/TCP接收64位浮点数问题
精华帖精华帖星级3级 推荐帖


只看楼主 只看精华 1楼 2017-03-23 20:33:29

64位浮点数不止2种排列

wincc用的是下图第二种




 
以下网友喜欢您的帖子:

  
游士

经验值: 219
发帖数: 26
精华帖: 0
回复:WinCC MODBUS/TCP接收64位浮点数问题
推荐帖


只看楼主 只看精华 楼主 2楼 2017-03-23 20:47:48
以下是引用shine在2017-03-23 20:33:29的发言 >1楼

64位浮点数不止2种排列

wincc用的是下图第二种



我看了下,交换和不交换两种格式就是 AB CD ED GH和GH EF CD AB这样,但是现在无论用哪种格式wincc读出来都不对啊


 
以下网友喜欢您的帖子:

  
至圣

经验值: 19840
发帖数: 8834
精华帖: 39
回复:WinCC MODBUS/TCP接收64位浮点数问题
推荐帖


只看楼主 只看精华 3楼 2017-03-23 21:25:57

我的测试是wincc对于double类型,能够写入,但显示有问题,一直是0.00 .测试环境是虚拟机win10+wincc7.4+modbus slave 。

定义64为浮点数变量到400001,写入数据123.45, 十六进制表示为 16#405E_DCCC_CCCC_CCCD,

400001~400004分别为

CCCD

CCCC

DCCC

405E


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2033
发帖数: 189
精华帖: 1
回复:WinCC MODBUS/TCP接收64位浮点数问题(已解决)


只看楼主 只看精华 4楼 2017-03-27 17:01:57

感谢分享,经验难得~


 
以下网友喜欢您的帖子:

  
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
回复:WinCC MODBUS/TCP接收64位浮点数问题(已解决)


只看楼主 只看精华 5楼 2017-03-27 19:42:09
如果Wincc无内置这样顺序,而且只是显示的话,只能分别读4个寄存器然后用脚本合成字符串再显示咯…40位有效值,这么一长串数字看着都头皮嘛…
楼主的什么设备需要64位浮点数精度这么高的精度…难道是银河系内的纳米级别的GPS定位?!!!!吓人又穿越了么……
 
以下网友喜欢您的帖子:

  
至圣

经验值: 28584
发帖数: 10819
精华帖: 131
回复:WinCC MODBUS/TCP接收64位浮点数问题(已解决)
精华帖精华帖星级1级


只看楼主 只看精华 6楼 2017-03-28 16:40:07
以下是引用Zaxife在2017-03-27 19:42:09的发言 >5楼:如果Wincc无内置这样顺序,而且只是显示的话,只能分别读4个寄存器然后用脚本合成字符串再显示咯…40位有效值,这么一长串数字看着都头皮嘛… 楼主的什么设备需要64位浮点数精度这么高的精度…难道是银河系内的纳米级别的GPS定位?!!!!吓人又穿越了么……

最常见的是流量计。。。



微信公众号:PLC标准化编程,ZHO6371995
以下网友喜欢您的帖子:

  
至圣

经验值: 18061
发帖数: 1524
精华帖: 2
回复:WinCC MODBUS/TCP接收64位浮点数问题(已解决)


只看楼主 只看精华 7楼 2017-03-29 09:18:46

感谢分享!


我回来了!继续努力!
以下网友喜欢您的帖子:

  
游士

经验值: 219
发帖数: 26
精华帖: 0
回复:WinCC MODBUS/TCP接收64位浮点数问题(已解决)


只看楼主 只看精华 楼主 8楼 2017-03-29 11:06:53
以下是引用Zaxife在2017-03-27 19:42:09的发言 >5楼:如果Wincc无内置这样顺序,而且只是显示的话,只能分别读4个寄存器然后用脚本合成字符串再显示咯…40位有效值,这么一长串数字看着都头皮嘛… 楼主的什么设备需要64位浮点数精度这么高的精度…难道是银河系内的纳米级别的GPS定位?!!!!吓人又穿越了么……

少见多怪!  你楼下那位已经说了,就是流量计。另外,建议你先看看浮点数的定义,32位浮点数只有7位有效数字,64位也只有16位有效数字,不知道你那个40多位有效数字的是什么格式?




 
以下网友喜欢您的帖子:

  
侠圣

经验值: 3723
发帖数: 486
精华帖: 1
回复:WinCC MODBUS/TCP接收64位浮点数问题(已解决)


只看楼主 只看精华 9楼 2017-03-29 15:43:32

64位的浮点数没用过,学习了。


永无止境!
以下网友喜欢您的帖子:

  
新手

经验值: 7
发帖数: 1
精华帖: 0
回复:WinCC MODBUS/TCP接收64位浮点数问题(已解决)


只看楼主 只看精华 10楼 2017-10-21 20:51:40

请教下楼主,你后来是怎么编程的,我现在也要这样用,求赐教。


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
WinCC MODBUS/TCP接收64位浮点数问题(已解决)
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。