seth350
Member
I have an application where a user is driving a servo to two absolute positions repeatedly in a back and forth motion using MC_MoveAbsolute. The user wants to be able to select a force limit from the HMI. Not torque, force.
The servo is connected to a 10:1 gearbox and then to a belted actuator.
The motor is an Omron R88-K40030H driven via an R88D-KN04H-E over Ethercat to an Omron NJ plc.
The motors rated torque is 1.3Nm or 11.5059696 in.lbs. The max momentary torque is 3.8Nm or 33.632832 in.lbs.
The servo motor’s software torque limit is set to defaults at 300%.
The 300% limit seems to correspond to the rated torque plus 300%, which is pretty dern close to the 3.8Nm.
This is what I did.
Max torque available at 300%:
33.632832in.lbs x 10:1 gearbox = 336.32832 in.lbs
Using the actual torque percentage value from the drive, I scaled it:
T = in:actTorque, x1:-300, x2:+300, y1:-336.32832in.lbs, y2:+336.32832in.lbs.
To convert rotational torque to force:
F = T/r
r = radius of belt actuator pulley
r= 1.758”
I then compare the calculated force against a limit. If the calculated force exceeds the limit for 100ms, a command is given MC_Stop.
We did some testing with load cells and the servo would stop but always seemingly at a lower limit than specified. We were using a load cell with a peak hold feature. I wasn’t sure how else to get it “spot on” and was wondering if you guys have done something like this or could provide some insight please.
Maybe my math is wrong? Scaling?
The servo is connected to a 10:1 gearbox and then to a belted actuator.
The motor is an Omron R88-K40030H driven via an R88D-KN04H-E over Ethercat to an Omron NJ plc.
The motors rated torque is 1.3Nm or 11.5059696 in.lbs. The max momentary torque is 3.8Nm or 33.632832 in.lbs.
The servo motor’s software torque limit is set to defaults at 300%.
The 300% limit seems to correspond to the rated torque plus 300%, which is pretty dern close to the 3.8Nm.
This is what I did.
Max torque available at 300%:
33.632832in.lbs x 10:1 gearbox = 336.32832 in.lbs
Using the actual torque percentage value from the drive, I scaled it:
T = in:actTorque, x1:-300, x2:+300, y1:-336.32832in.lbs, y2:+336.32832in.lbs.
To convert rotational torque to force:
F = T/r
r = radius of belt actuator pulley
r= 1.758”
I then compare the calculated force against a limit. If the calculated force exceeds the limit for 100ms, a command is given MC_Stop.
We did some testing with load cells and the servo would stop but always seemingly at a lower limit than specified. We were using a load cell with a peak hold feature. I wasn’t sure how else to get it “spot on” and was wondering if you guys have done something like this or could provide some insight please.
Maybe my math is wrong? Scaling?