我有一个台达ES主机要与仪表通讯,可是仪表读取来的是浮点数格式, 点击:510 | 回复:4



fdd

    
  • 精华:0帖
  • 求助:6帖
  • 帖子:24帖 | 200回
  • 年度积分:23
  • 历史总积分:5363
  • 注册:2006年8月21日
发表于:2012-10-21 22:00:29
楼主
求助帖20分-已结帖

我有一个台达ES主机要与仪表通讯,可是仪表读取来的是浮点数格式,如何转换呀

实例:读取设备地址为01的仪表的主测量值。该仪表当前主测量值为+123.4(16进制42F6CCCD)。

问题补充:

我就是要弄清如何把16进制的ASCII码42F6CCCD这样转成10进制数,关键他是个浮点数,在PLC中如何转换?Modbus协议返回的测量值(data)是一个32位的浮点数,该浮点数采用IEEE-754标准格式。我用的是台达的RS指令,小弟在谢谢各位了发送ASCIIASCII码:010400000002F9(CRLF)十六进制3A 30 31 30 34 30 30 30 30 30 30 30 32 46 39 0D 0A应答ASCIIASCII码:01040442F6CCCD26(CRLF)十六进制3A 30 31 30 34 30 34 34 32 46 36 43 43 43 44 32 36 0D 0A




fdd

  • 精华:0帖
  • 求助:6帖
  • 帖子:24帖 | 200回
  • 年度积分:23
  • 历史总积分:5363
  • 注册:2006年8月21日
发表于:2012-10-22 10:58:02
1楼
我就是要弄清如何把16进制的ASCII码42F6CCCD这样转成10进制数,关键他是个浮点数,在PLC中如何转换?
Modbus协议返回的测量值(data)是一个32位的浮点数,该浮点数采用IEEE-754标准格式。我用的是台达的RS指令,小弟在谢谢各位了
发送
ASCII
ASCII码
:010400000002F9(CRLF)
十六进制
3A 30 31 30 34 30 30 30 30 30 30 30 32 46 39 0D 0A
应答
ASCII
ASCII码
:01040442F6CCCD26(CRLF)
十六进制
3A 30 31 30 34 30 34 34 32 46 36 43 43 43 44 32 36 0D 0A

kalyking

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 41回
  • 年度积分:0
  • 历史总积分:360
  • 注册:2011年7月11日
发表于:2012-10-23 09:22:14
2楼

你的转换是要做什么?

用来显示吗?还是用来在程序中判断?

监控显示的话,如果是在软件上,那用WPL选择监控浮点数模式就可以了。

转换格式,以上的数据是单精度浮点数:

符号位1位,阶码8位,尾数23位,16#42F6CCCD = 2#0100 0010 1111 0110 1100 1100 1100 1101

= 0 10000101 11101101100110011001101

符号位 = 0为正;

阶码 = 133

幂 = 133-127=6

尾数 = 1.11101101100110011001101,小数点右移6位

则最终数 = 1111011.01100110011001101= 2^6+2^5+2^4+2^3+2^1+2^0 + 2^(-2)+2^(-3)+.......=+123.4

fdd

  • 精华:0帖
  • 求助:6帖
  • 帖子:24帖 | 200回
  • 年度积分:23
  • 历史总积分:5363
  • 注册:2006年8月21日
发表于:2012-10-23 12:55:44
3楼
回复内容:
对:kalyking关于你的转换是要做什么?用来显示吗?还是用来在程序中判断?监控显示的话,如果是在软件上,那用WPL选择监控浮点数模式就可以了。转换格式,以上的数据是单精度浮点数:符号位1位,阶码8位,尾数23位,16#42F6CCCD = 2#0100 0010 1111 0110 1100 1100 1100 1101= 0 10000101 11101101100110011001101符号位 = 0为正;阶码 = 133幂 = 133-127=6尾数 = 1.11101101100110011001101,小数点右移6位则最终数 = 1111011.01100110011001101= 2^6+2^5+2^4+2^3+2^1+2^0 + 2^(-2)+2^(-3)+.......=+123.4内容的回复:

我先直接写了个程序模拟了一下,123.4 十进制浮点数 D40=1233 D41=-1 我想问一下,如何显示小数点后的数呀。我直接除,没有小数点后面的数字呀

LN368

  • 精华:0帖
  • 求助:40帖
  • 帖子:306帖 | 1715回
  • 年度积分:0
  • 历史总积分:6747
  • 注册:2004年9月09日
发表于:2012-10-26 10:21:03
4楼

有浮点数转换指令啊                


热门招聘
相关主题

官方公众号

智造工程师