Jump to content
OMRON Forums

Program running without Coord[x].Csolve


Recommended Posts

I have a power pmac with a very simple configuration


There are 4 axis all configured as inverse kinematic axis






Then the forward and inverse kinematic programs are as follows. Obviously these are just examples that replace the instructions #n->1000x


open forward (0)

KinAxisUsed = $1C1 // ZXYA

KinPosAxisX = KinPosMotor1 / 1000

KinPosAxisY = KinPosMotor2 / 1000

KinPosAxisZ = KinPosMotor3 / 1000

KinPosAxisA = KinPosMotor4 / 1000



open inverse (0)

KinPosMotor1 = KinPosAxisX * 1000

KinPosMotor2 = KinPosAxisY * 1000

KinPosMotor3 = KinPosAxisZ * 1000

KinPosMotor4 = KinPosAxisA * 1000



My problem is once the above is downloaded I can't get the Coord[0].Csolve to set. I have tried setting Csolve for each of the axes in the coordinate system but this has not effect on the Coord[0].Csolve


A more serious problem is that even though Csolve is false I'm still able to run a program in this coordinate system using the defined kinematics. The manual is very clear that this is not possible. Obviously I want the program to run and this is what its doing, its just my own software which is written against the manual is telling me cycle start is not permitted.

Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Thank you for bringing this to our attention. The Coord[x].Csolve bit is only used for a coordinate system set up with axis definition statements. It determines whether the set of axis definitions is mathematically invertible to permit computation of starting axis positions.


When you have a forward kinematic subroutine for the coordinate system, PMAC cannot evaluate whether it is "proper" or not, so it does not compute a value for the Csolve bit, and it does not look at the Csolve bit when program execution is started.


We will update the documentation to clarify this.

Link to comment
Share on other sites

The purpose of the Csolve "lockout" for axis definition statments is to prevent a program from running in cases where Power PMAC cannot properly compute the starting positions for the axes through a mathematical inversion of the axis definition statements.


If the only axis definition statement for the coordinate system is:




or if you have





PMAC cannot calculate the starting axis positions from the motor positions when the program begins, so it will refuse to execute the program.


When you have your own kinematic routines, PMAC fundamentally has to assume that you have done the calculations correctly.

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...