为什么我用modbus tcp/ip协议,读一装置的数据,负数怎么读不上来? 点击:6544 | 回复:12



拼天下

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 41回
  • 年度积分:0
  • 历史总积分:98
  • 注册:2003年7月19日
发表于:2008-09-01 21:47:58
楼主

为什么我用modbus tcp/ip协议,读一装置的数据,负数怎么读不上来?

所有 负数读上来都是一样,32767,这是为什么???急!!!




拼天下

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 41回
  • 年度积分:0
  • 历史总积分:98
  • 注册:2003年7月19日
发表于:2008-09-01 22:01:32
1楼

我用其它软件去测试,都是正常的,数据都是可以正确读回来的!

 

拼天下

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 41回
  • 年度积分:0
  • 历史总积分:98
  • 注册:2003年7月19日
发表于:2008-09-02 13:29:47
2楼

没有有碰到类似的情况吗?

 

huayue

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年3月05日
发表于:2008-09-10 16:34:49
3楼

huayue

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2008年3月05日
发表于:2008-09-10 16:37:52
4楼

有这种事情。

负数读出来的是补数。

另外小数也不能显示,只能获得整数。

youhm

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 709回
  • 年度积分:0
  • 历史总积分:2593
  • 注册:2005年2月16日
发表于:2008-09-11 08:26:40
5楼

可能是数据类型的问题

二十四桥明月夜

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2008-09-12 21:26:37
6楼
我用MODBUS读到的数很大,原来是负数,已解决;

dixinke

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 45回
  • 年度积分:0
  • 历史总积分:70
  • 注册:2003年7月17日
发表于:2008-09-12 21:33:01
7楼

Modbus的原始定义是word数据,无所谓正与负的

拼天下

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 41回
  • 年度积分:0
  • 历史总积分:98
  • 注册:2003年7月19日
发表于:2008-09-25 09:43:29
8楼
楼上,你是怎么解决的啊?

john1984xu

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2007年5月07日
发表于:2008-09-26 00:14:57
9楼

引用二十四桥明月夜 的回复内容:我用MODBUS读到的数很大,原来是负数,已解决;




请问如何解决的? 方便的话,发个邮件给我  f_xujia@126.com,谢谢

地三鲜2

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 3回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-09-26 08:15:39
10楼
很简单,把最开始的一位认做符号位即可解决。

梦可

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:73
  • 注册:2005年6月08日
发表于:2009-01-01 15:05:52
11楼
用移位指令,移一下符号位即可,应数据溢出

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2009-01-04 10:49:37
12楼

WORD,0-65536,

带符号-32767 -0 -32767


热门招聘
相关主题

官方公众号

智造工程师