中自网

热门搜索:电子  抽油机  PID  无线通讯  ABB  变频器  低压  电力电子 

当前位置:首页>>  方案与应用>>  方案锦集

维控测试艾默生PLC浮点数总结

放大字体  缩小字体 发布日期:2013-06-09   浏览次数:46756
我们手上已拿到艾默生EC20的PLC,专门就浮点数数值问题进行测试,我们得出如下结论:
       我们手上已拿到艾默生EC20的PLC,专门就浮点数数值问题进行测试,我们得出如下结论: 
      (1) 艾默生PLC的驱动,的确支持modbus协议,但是其的浮点的做法与一般的做法不一样,是浮点的双字,高字在前,低字在后;而一般的做法,包括所有人机的做法,对于浮点的处理是低字在前,高字在后。以下是我们监控艾默生PLC的数据: 

      现在往D560的地址,浮点数写1.0,读回来的数据就是上述图片说指:3F800000; 
      一般的数据应该返回00003F80 
      故要正确读取艾默生PLC的浮点,需要设置维控工程的组态,浮点处理有特殊的处理,浮点设置”高字在前” 
,默认是“低字在前”。 
      (2)我们测试过维纶,显控,台达的组态软件,发现他们的做法:没有”浮点高低字互换”的功能,所以他们组态读写浮点数时,显示的全是0.0. 目前我们还没找到他们类似我们的设置 
      他们的做法和我们维控默认的做法一样,同样不能满足艾默生PLC的浮点数处理; 
      (2) 艾默生PLC监控强制浮点数的问题: 
如下图1: 

      这里的”REAL”就是相当于”浮点数”,现在“D560”地址的浮点数为“1.0000”,若用16进制看,如下图2: 

图3: 

      如果需要强制D560的浮点数为“2.00000”,此时需要在数据类型为”DWORD”模式下强制(即在图3的方式下),此时写下去的值才是浮点的”2.00000”,否则,如果按数据类型为”REAL”的模式,艾默生就会按10进制的“2”,往PLC写值,就会出现如图4的情况: 
图4:(用10进制查看) 

图5:(用16进制查看) 

        显然,艾默生PLC的这种处理,让用户理解起来有点别扭。呵呵,不知是否有客户给他们反馈过这个问题。 

        以上就是维控对于测试艾默生 EC20 系列PLC的浮点数处理的结果,如有不周,希吝赐教。 
 
 
[ 方案搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]  [ 返回顶部 ]

0条 [查看全部]  网友评论