Hello all,
I have been making an application that takes bottle caps and screws it onto bottles using the sixth axis.
I have a CS8C controller with TX60 arm.
The application is connected to a Profibus master PLC which tells the robot the order of several positions as well as the positions themselves and triggers the motion.
When the cap arrives the PLC sends signals to the controller and the arm picks up the cap, no problems. Then the arm returns to the waiting position.
When the bottle arrives, if the arm has the cap, the PLC sends signal to the robot and robot arm first goes above the bottle, to the position let's call it aboveNeckPos, then puts cap on as far as possible onto the bottle neck without screwing and then the idea is to screw it on.
The problem is that almost all these motions have to be linear so the bottle does not break and so I use movel. However, the angle needed to screw the cap on is 120 degrees. Everything is vertical so the z axis is along the bottle.
My idea was to put the screwing position, let's call it screwedPos, the same as the "push cap on" position, let's call it neckPos, except with .trsf.rz=120.00 instead of .trsf.rz=0.00.
The idea is the following movement sequence:
...->aboveNeckPos->neckPos->screwedPos->(gripper release)->neckPos->aboveNeckPos->...
The bug is the following:
- After arriving at screwedPos the gripper has rotated only 60.0 degrees, and no matter which number below 180.0 degrees I put the gripper rotates only half the amount (so if we want 170.0 the gripper rotates 85.0).
- If the next position after gripper release is not neckPos but aboveNeckPos the gripper first screws the rest of the way after releasing and then unscrews while lifting back to aboveNeckPos.
I am at a loss as to what is going on.
The PLC sends the correct information and that same information arrives to the CS8C, that is confirmed.
Any help would be appreciated.