查看: 2047|回复: 22
收起左侧

[应用问题] PLC重启后反馈位置突变原因和解决方案分析

10004466 2023-3-19 12:27:26 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
问题:中型PLC有时候在断电重启后,会发现Axis.fSetPosition和Axis.fActPosition数值发生了突变,但是实际机械位置却没有动。

分析:我们在解决问题之前首先了解下这两个值是怎么算出来的
           线性模式:fActPosition = (iTurn *2^23 + diActPosition)*(iRatioTechUnitsNum/dwRatioTechUnitsDenom)-fOffsetPostion
           旋转模式:fActPosition = (dwActposition- dwPosOffsetForResiduals) *(iRatioTechUnitsNum / dwRatioTechUnitsDenom)-fOffsetPosition


           其中iTurndwPosOffsetForResiduals分别是线性模式和旋转模式下的溢出计数,diActPosition以及dwActposition分别是线性和旋转模式下从编码器那里获取的编码位置,iRatioTechUnitsNum/dwRatioTechUnitsDenom 是软件后台轴配置单位换算界面的齿轮比信息。  fOffsetPostion则是触发MC_SetPosition后坐标的偏移量。

          一般而言,齿轮比iRatioTechUnitsNum/dwRatioTechUnitsDenom在配置完成后便不会改变,diActPosition以及dwActposition是从伺服侧读取上来的,对绝对值伺服来说也不会改变。因此可以导致位置突变的原因便分析出来了,那就是iTurndwPosOffsetForResidualfOffsetPosition发生了变化,因为这几个变量是非保持变量,因此每次断电后这些数据会清零。

下面我们对这几个变量进行逐个分析:
              iTurndwPosOffsetForResidual 只有在伺服溢出后才会有计数(对23位绝对值编码器的电机来说,超过±255圈后便会溢出)
              fOffsetPosition 只有触发MC_SetPosition才会有数值。


总结: 当23位编码器电机单方向旋转超过255圈后或使用了MC_SetPosition功能后重启会导致位置突变。


知道了原因,那我们来看看解决措施:将对应变量做成掉电保持!为此我们有一个功能块可以解决该问题——>SMC3_PersistPosition,
                                                        新建一个 SMC3_PersistPosition_Data 类型实例,功能块数据变量输入persistentData,变量类型为 RETAIN PERSISTENT保持类型
  

功能块使用方法

功能块使用方法

点评

赞,感谢分享  发表于 2023-3-25 10:26
感谢分享!!!  发表于 2023-3-25 00:06
感谢分享!!  发表于 2023-3-21 08:00
楼主厉害  发表于 2023-3-20 20:13
分析好,厉害  发表于 2023-3-20 14:51




上一篇:汇川中型PLC转矩控制
下一篇:CNC G代码使用分享

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

微光 2023-3-20 13:43:53 | 显示全部楼层
这个,可以反馈给官方
回复 送花

使用道具 举报

ttr552 2023-3-20 14:57:00 | 显示全部楼层
不错,补偿,分析的挺透彻的。
回复 送花

使用道具 举报

hjk 2023-3-20 20:41:53 | 显示全部楼层
这才是真正的社区,感谢楼主的无私分享。
回复 送花

使用道具 举报

10004487 2023-3-20 21:39:11 | 显示全部楼层
感谢分享,分析的很正确,这个案例帮组了很多人进行使用
回复 送花

使用道具 举报

alame 2023-3-21 08:04:23 | 显示全部楼层
太牛叉了,分析透彻,感谢分享。收藏
回复 送花

使用道具 举报

Wwwqq 2023-3-21 10:31:49 | 显示全部楼层
非常可以很好aaaaaaaaaaa
回复 送花

使用道具 举报

Wwwqq 2023-3-21 10:46:07 | 显示全部楼层
真的的很不错,学习学习
回复 送花

使用道具 举报

姜山山 2023-3-23 21:00:00 | 显示全部楼层
分析很深入,但我不建议你这样用,PLC掉电了还去是回零吧。这才是正常操作。
PLC掉电了,PLC的对应AXIS的原点标志肯定也没有了。
再者PLC没电期间也无法判断伺服是否掉电,单圈绝对伺服若没电池掉电后多圈数据清零,且单圈绝对数据不是CODESYS默认读取的PDO数据。
总的来说不可取。
回复 送花

使用道具 举报

007ABCD 2023-3-24 11:26:46 | 显示全部楼层
介绍的专业,点赞。
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部