MCodes with Parameters
KMotionCNC allows MCodes 100-119 with parameters when configured to Execute a KFLOP User C Program. The P Q and R words in the G Code block will be downloaded to KFLOP's persist.UserData variables before the C program is executed. The parameters will be placed into consecutive KFLOP variables as 32-bit floating point values starting with the variable specified in the MCode Configuration. Zero, one, two, or all three parameters may be specified in the G Code block (line). The order they are placed into the variables will always be in the P Q R order where any or all of the parameters will be omitted if they are not explicitly specified in the G Code Block. If no parameters are specified then the MCode number will be stored into the one Var specified.
Example MCode Configuration
![]()
Example MCode Usage with all 3 parameters:
M110 P1.23 Q4.56 R-1
Example C Code accessing parameters:
#include "KMotionDef.h"
main()
{
printf("P = %f Q = %f R = %f\n",
*(float *)&persist.UserData[0],
*(float *)&persist.UserData[1],
*(float *)&persist.UserData[2]);
}
Printed Result
P = 1.230000 Q = 4.560000 R = -1.000000