昆仑通泰显示负数错误的问题 点击:6980 | 回复:3



无锡比蒙

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 3回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2016年5月30日
发表于:2016-05-30 09:48:24
楼主

我用的是TPC7062KD型号的昆仑通泰触摸屏和STM32通过MODBUS RTU协议通信,发现其显示负数有误,正数正常!不知是触摸屏的BUG还是什么原因,现象描述如下:

上图中的“当前重量”我的定义的是“有符号的32位整形”有三位小树它的通道处理如下图所示,能显示-150.000至+150.000

    

上面的设置应该没什么问题,错就错在负数的显示上,比如说:我想让触摸屏显示“-0.014”(其实就是-14,因为被缩小了1000倍),“-14”的十六进制应该是 0xffff fff2当我把这个十六进制数送给触摸屏时,它显示的却是“-13”,我想是不是要在0xffff fff2的基础再加上1,然后我就各触摸屏发了“0xffff fff3”其实0xffff fff3应该是“-13”的十六进制,当我把0xffff fff3送给触摸屏之后 它显示的也是“-13”也就是说对于十六进制,0xffff fff2和0xffff fff3来说触摸屏显示的都是“-13”而没有办法显示到“-14” ,我试过“-14”这个值是没有办法显示的,类似的还有“-124” 可能还有其他的,没有再去试,modbus协议肯定没有错,我用过相应的上位机都测试过,保证没有问题!另外还有还发现一个问题:负数的十六进制应该是其绝对值的“原码取反加1”就是补码形式存储的,比如说 -1的补码应该0xffff ffff当把这个值发给触摸屏之后它显示的却是“0”,-2的补码应该是0xffff fffe当把这个值发给触摸屏之后它显示的却是“-1”无形之中被多加了一个1!

不知道大伙有没遇到过这样的情况,有什么解决措施!




无锡比蒙

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 3回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2016年5月30日
发表于:2016-05-30 10:50:51
1楼

有人吗??帮帮忙,我是搞不懂了?

工控一家人?

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2017年6月16日
发表于:2017-06-16 07:47:21
2楼

回复内容:

对:无锡比蒙 有人吗??帮帮忙,我是搞不懂了?     内容的回复:

你好,我用的信捷的plc采集温度仪表上的温度,温度是负数,但是通态触摸屏不显示小数点,

             我做了一个工程变量,

              做了工程变量之后就不现实温度了,

            如果不做变量   负―12.5显示―125

         做了变量后就不显示了,

       正数可以正常显示温度12.5度,这是怎么回事呢?

工控一家人?

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2017年6月16日
发表于:2017-06-16 07:47:24
3楼

回复内容:

对:无锡比蒙 有人吗??帮帮忙,我是搞不懂了?     内容的回复:

你好,我用的信捷的plc采集温度仪表上的温度,温度是负数,但是通态触摸屏不显示小数点,

             我做了一个工程变量,

              做了工程变量之后就不现实温度了,

            如果不做变量   负―12.5显示―125

         做了变量后就不显示了,

       正数可以正常显示温度12.5度,这是怎么回事呢?


热门招聘
相关主题

官方公众号

智造工程师