Hi,
Just started using the PPMAC and encountered some errors when running the forward/inverse kinematic subroutines.
The forward routine seems to be working, but when I add the file inverse.kin in the project I encounter buffer related errors (closed, in use, etc). The same error shows up as early as the compiler finds open inverse (1).
I want to know where exactly this error comes from in my project. Is it something I did not define in the forward kinematics routine?
Below is my code for the forward kinematics routine. Am I setting KinAxisUsed correctly? My machine has 5 axes. Thanks!
csglobal CtsperMm1;
csglobal CtsperMm2;
csglobal CtsperMm3;
csglobal CtsperDegB;
csglobal CtsperDegC;
csglobal Dy; //Y offset//C_B_Dist;
csglobal Dz; //B_to_Tip_TCP;
csglobal FwdKinErr;
CtsperMm1 = 1001.16074600000002;
CtsperMm2 = 1045.03245700000002;
CtsperMm3 = 1039.48072200000001;
CtsperDegB = 2912.71111000000019;
CtsperDegC = 2912.71111000000019;
Dy = 200; //Y offset//C_B_Dist;
Dz = 266 ; //B_to_Tip_TCP;
&1 // Address coordinate system 1
open forward // Open forward kinematics buffer
if (KinVelEna >0) callsub 100; // Check if double-pass needed, otherwise go to line 100
KinAxisUsed = $1C6 // Specify X and Y Z B C axes used in inverse kinematics
n100: // Line label
if (Coord[1].HomeComplete) // Home complete OK?
{
KinPosAxisX = equation;
KinPosAxisY = equation;
KinPosAxisZ = equation;
}
else // Not valid; halt operation
{
if (Ldata.Status & 40) // Called from motion program?
{
Coord[1].ErrorStatus = 255; // User-set aborting error
}
else // Called from axis query
{
KinPosAxisX = sqrt(-1); // Return "not-a-number“ for X axis
KinPosAxisY = sqrt(-1); // Return "not-a-number“ for Y axis
KinPosAxisZ = sqrt(-1); // Return "not-a-number“ for Z axis
}
}
return;
close // Close forward kinematics buffer