关于S7-200uss协议读取浮点数问题 点击:1298 | 回复:14



第一次用触摸屏

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 6回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2007年8月23日
发表于:2007-08-22 19:38:00
楼主
我用microwin4.0自带库mm440通讯,其他都正常,就是不能够正确读写浮点数,可以读U16,控制等



我爱我家

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 541回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年5月06日
发表于:2007-08-23 00:41:00
1楼
应该是格式的问题。

赵书锋

  • 精华:0帖
  • 求助:0帖
  • 帖子:43帖 | 987回
  • 年度积分:0
  • 历史总积分:1191
  • 注册:2007年8月08日
发表于:2007-08-23 04:50:00
2楼
同意楼上

hanyun

  • 精华:2帖
  • 求助:0帖
  • 帖子:75帖 | 237回
  • 年度积分:0
  • 历史总积分:526
  • 注册:2006年2月21日
发表于:2007-08-23 09:13:00
3楼
用READ-R指令也不能读出来吗?

第一次用触摸屏

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 6回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2007年8月23日
发表于:2007-08-23 10:49:00
4楼
忘记说了,变频器220V供电,没有运行,我是用USS_RPM_R读的,不是所有都读不正确,像R26可以正确读出电压280.26,但是读出R27就不对了,一个很奇怪数字1.897354e-019,用BOP和DriveMonitor读出来都是0.00

皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2007-08-23 16:31:00
5楼
例2
读出参数P1082 1082=43A hex 的数值
USS MICROMASTER4 143A000000000000 请求参数P1082 的数值
MICROMASTER4 USS 243A000042480000 应答报文告诉我们这是一个双字长参
数数值为42480000 IEEE 浮点数
IEEE 浮点数的格式如下
位31 = 符号
位23 至位30 = 阶
位0 至位22 = 尾数
用十进制数表示时是
数值= -1 的'符号'次幂
x 2 的阶-127 次幂
x1. 尾数
在本例中
符号 =0
阶 =84 hex =132
尾数1 .900000 =[1+9/16+0/256...]
数值等于1 x 32 x 1.5625 =50.00

第一次用触摸屏

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 6回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2007年8月23日
发表于:2007-08-23 16:56:00
6楼
上面的兄弟呀,你说的这些我在USS协议中早就看到了,我现在用HITECH人机界面和DriveMonitor读的时候我用485转换器加串口工具截取报文为
02 0C 00 10 1B 00 00 00 00 8C 7E 00 00 F7 
02 0E 00 20 1B 00 00 20 60 00 00 FB B1 00 00 3D
也就是r0027的值为20 60 00 00,HITECH的解析为0.00显示出来,但是我把这个值输入到S7200的VD0,然后再让人机界面读出了就显示成1.897354e-019了,所以问题出在解析这个数据问题上,唉,郁闷,其他不是0.00的浮点数PLC都可以正确显示呀,就这个

皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2007-08-23 17:00:00
7楼
你是不是作过双整数转实数的转换?

第一次用触摸屏

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 6回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2007年8月23日
发表于:2007-08-23 17:05:00
8楼
我用PLC直接读出来就是这样了,不知道这个怎么解析

第一次用触摸屏

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 6回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2007年8月23日
发表于:2007-08-23 17:06:00
9楼
我想电话请教下,我电话0755-26650231,qq:10885644

第一次用触摸屏

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 6回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2007年8月23日
发表于:2007-08-23 17:59:00
10楼
晕了,我算了下2060 0000是个非常小的数字,19位小数点之后的,-63的阶,我现在用小0.000001之后实数判断下就0.000了,但是还有一奇怪问题,为什么hitech人机界面自己直接和mm440通讯解析出来为0.00,而我用S7200读出来之后不做任何转换放在VD0区读的话就变成了实际值1.897354e-019显示出来,实际也是个0.0000000...的非常小的值

皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2007-08-24 23:59:00
11楼
16#2060 0000实数确实为1.897354e-019
触摸屏能显示这个值?你保留小数后几位?还有1.897354e-019是科学技术法显示的数值.

chp351577

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 156回
  • 年度积分:0
  • 历史总积分:441
  • 注册:2003年10月11日
发表于:2007-08-30 05:32:00
12楼
因为IEEE格式与西门子格式不同.你把字位置交换一下即可.例如,你在HMI上输入:3.24,写入PLC VDW1000;再在PLC VD2000中写3.24,用字节显示VB1000,VB1001,VB1002,VB1003;以及VB2000,VB2001,VB2002,VB2003;把VDW1000开始的浮点的顺序调整成VD2000开始的顺序,显示数据就无问题了,hitech人机界面读数据也是一样的.这个方法可以编一个子程序,调用即可.

卧龙人

  • 精华:0帖
  • 求助:0帖
  • 帖子:38帖 | 800回
  • 年度积分:0
  • 历史总积分:1504
  • 注册:2006年8月14日
发表于:2007-09-05 22:09:00
13楼
 学习了 

paczmt

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2005年3月08日
发表于:2008-11-30 18:04:54
14楼

OK,触摸屏能显示这个值?你保留小数后几位?还有1.897354e-019是科学技术法显示的数值


热门招聘
相关主题

官方公众号

智造工程师