12. TwinCAT 3中如何使用背隙补偿(backlash)?
设备采用非倍福EtherCAT驱动,运行过程中,通过外部编码器测量发现电机的编码器值和外部编码器值不一样,但外部编码器由于存在噪音,不适合做闭环控制,如何实现背隙补偿呢?
1.需要在NC中设置如下参数
Position Correction 为True, Backlash可以在程序中设置,只设置Backlash而不调用功能块,背隙补偿无效。
2.在程序中调用MC_BacklashCompensation进行背隙补偿
如上所述,仅仅在NC中设置是无效的,需要使用此功能块进行补偿功能的开启。
- CompensationInPositiveDirection为True, 表示正向时进行补偿,第一次正向运动时,伺服电机会叠加-1*Backlash的距离。CompensationInPositiveDirection为false时,第一次反向运动,伺服会叠加Backlash的距离,需要注意叠加值的正负,具体可以通过功能块的输出针脚 CurrentBacklash查看。
- 需要注意的是,Backlash更改后,需要重新触发Enable信号。Enable只表示触发背隙补偿开启,更新参数仍然需要Enable的上升沿信号。
- Backlash运行的可以是正数也可以是负数,配合输入参数CompensationInPositiveDirection ,通过CurrentBacklash可以看到实际补偿值。
功能块说明:https://infosys.beckhoff.com/content/1033/tcplclib_tc2_mc2/9760638347.html?id=6580259216333706087
2024.8.8 蔡敏科 供稿