I’m looking to control 3 axes where the positions of the first two axes will cause a collision with the third at certain position combinations. I have a table of allowable position limits. For some positions of axes 1&2, axis 3 can use the entire range. At others, one end of the range would need a smaller limit than the full range to avoid interference. How would I go about setting the limits within RMCTools to prevent a collision? It’s undetermined yet if I would want the controller to halt if given an invalid instruction or adjust axis 3 to the allowable limit based on the axis 1 and 2 positions. The latter would be preferred in my opinion. Perhaps a data flag that says axis 3 was adjusted to the variable limit.
Hi Jeff,
We do not have a built-in way to do what you are describing. We do have User Program that can run expressions (think structured text) to accomplish behavior similar to what you are describing.
In general, when doing this type of limiting, I can think of three forms it takes:
- Path planning: This involves evaluating the path of all three axes when a command is sent and determining if there will be any interference when following the motion. The RMC doesn’t support this.
- Command Position: This involves limiting the command position to a valid position. In your case, the limited position varies so the axes could collide while moving to the valid positions. This can be implemented in User Programs.
- Actual Position: This involves halting the axes if the actual positions reach a window within the collision threshold. It can be implemented in User Programs.
Do any of these methods sound like what you are trying to accomplish?