Nikola Posted April 11, 2016 Share Posted April 11, 2016 Dear all, I have been facing a problem with PMAC controller when executing a motion program using an inverse kinematics coordinate system. Hence, PMAC omits the values of the feedrate set by the motion program and runs the motion system with the feedrate even much grater than the limits set by Isx98. This does not happen if I execute the same motion program but using a simple coordinate system. This is my setup of the inverse kinematics c.s. together with forward kinematics: &1 I15=0 #1->I #2->I I5150=1 ; enabling kinematic calculation &1 OPEN INVERSE ; Inverse kinematics for CS 1 CLEAR P1 = -Q7 * 8192 ; X axis P2 = ((0.5-0.62*Cos(27.49+Q8))+Q7+Q8) * 8192 ; Y axis CLOSE OPEN FORWARD CLEAR Q7=0 Q8=0 CLOSE This is my motion program: OPEN PROG 120 CLEAR F(10) X(0)Y(0) Delay1000 F(10) X(100)Y(0) CLOSE What I notice is that the feedrate value goes well beyond what is written in the motion program, and that is 10. Also, PMAC omits the maximum feedrate value written in I5198, which is 50. Also, it seems that whatever I write for the feedrate value in the motion program, PMAC simply execute motion with the feedrate value not related to what I coded. However, if I execute the same motion program, but using a simple coordinate system such as: &1 #1->-8192X #2->8192X+8192Y PMAC obeys the feedrate value I wrote in the motion program if they are below or equal to what is encoded in I5198, which is exactly what I want to achieve. I hope you can help me with this, I have a feeling it is something rather simple, but I cannot figure out what it is. Thanks in advance Link to comment Share on other sites More sharing options...
steve.milici Posted April 11, 2016 Share Posted April 11, 2016 How are you measuring the tool tip federate? You might try maintaining the tool tip velocity calculations to verify this. Link to comment Share on other sites More sharing options...
steve.milici Posted April 11, 2016 Share Posted April 11, 2016 Also note that the forward kinematics is only true at the "real" origin. Any deviation and need for this will result in incorrect calculation and the motors will jump. the best solution is to define the correct forward calculations. Link to comment Share on other sites More sharing options...
curtwilson Posted April 12, 2016 Share Posted April 12, 2016 Your forward and inverse kinematic routines MUST be mathematical inverses of each other over the entire workspace. That is, at any location in your workspace, if the X and Y axis position values Q7 and Q8 produce particular motor position values P1 and P2 in your inverse kinematic routine, the forward kinematic routine, given those same P1 and P2 motor position values, must produce the same axis position values in Q7 and Q8. When you start a motion program, PMAC uses the Q-variable outputs from the forward kinematic routine as its starting axis positions to compute the move. If these are not correct, there will be a very quick jump from the real present position to the position it thinks it is starting from. Link to comment Share on other sites More sharing options...
Nikola Posted April 19, 2016 Author Share Posted April 19, 2016 Curt and Steve Many thanks for your suggestions. I will apply them and return back with results! Link to comment Share on other sites More sharing options...
Recommended Posts