johann Posted March 4, 2016 Share Posted March 4, 2016 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 Link to comment Share on other sites More sharing options...
Recommended Posts