马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
问题现象:伺服在运行一段时间后,重新断电上电,伺服轴当前位置发生变化,而且位置丢失情况是偶发性的,位置会从45°变成22°而不是位置清零。 问题原理:Ethercat总线伺服在工作在旋转模式下,由于机械减速比过大(该设备减速比为90比1),导致电机会有正反转256圈以上从而超过绝对值编码器的量程,该现象称之为溢出现象,具体表现为,重新上电后伺服位置丢失变动,且没有任何报警。绝对值编码器的量程是有限的,对于汇川的绝对值编码器,量程是256圈,如果说电机轴旋转圈数在量程以内,那么位置是一一对应的,但是如果旋转圈数超过256圈,电机位置会从0继续计数,周而复始,在溢出后,重新上下电之后,会导致一个数值发生变化,即轴.dwPosOffsetForResiduals,这个轴结构体是用来计算轴.factposition(轴实际反馈位置)的一个条件,相当于溢出后的一个偏置值,就是因为这个偏置值在上下电之后会发生变化,导致轴的当前位置发生了改变。 解决措施:写了一个程序,把断电前的该轴结构体的值保存下来(设置了一个掉电保持变量),然后在上电的第一个周期,把保存的值重新赋值给该结构体,保证该结构体的值不变,这时轴的位置就不会发生丢失变动了,计算关系和程序如下图所示。 这只是针对旋转模式下电机编码器溢出的解决方法,针对线性模式或者旋转模式还可以使用这个SMC3_PersistPosition这个指令来做位置保存。
|