The following constants are defined in MMIConst.inc which is the definitive reference for the values.
A copy is provided here for convenience. Using the symbolic names is better than literal values as it is
possible that future versions of the Modbus Motion Interface may relocate information. Referencing the symbols
would make host software tolerant of such restructing.
{---------------------------------------------------------------------------------------------------------}
{ Modbus TCP/IP Constants for use with Modusystems Controllers }
{---------------------------------------------------------------------------------------------------------}
{ }
{ The constants here are used to establish modbus locations for reading and writing information to the }
{ controllers. }
{_________________________________________________________________________________________________________}
{----- Page Numbers -----}
const System_ = 0;
const Axis1_ = $100;
const Axis2_ = $200;
const Axis3_ = $300;
const Axis4_ = $400;
const Axis5_ = $500;
const Axis6_ = $600;
const Axis7_ = $700;
const Axis8_ = $800;
const Axis9_ = $900;
const Axis10_ = $A00;
const Axis11_ = $B00;
const Axis12_ = $C00;
const Axis13_ = $D00;
const Axis14_ = $E00;
const Axis15_ = $F00;
const Axis16_ = $1000;
const AxisGroup1_ = $1100;
const AxisGroup2_ = $1200;
const AxisGroup3_ = $1300;
const AxisGroup4_ = $1400;
const AxisGroup5_ = $1500;
const AxisGroup6_ = $1600;
const AxisGroup7_ = $1700;
const AxisGroup8_ = $1800;
const ConfigureIO_ = $1900;
const InputBit_ = $2000;
const OutputBit_ = $2100;
const AnalogIO_ = $2200;
{----- Data Type Offset Ranges -----}
const Minimum_Word_Offset = $01
const Maximum_Word_Offset = $40;
const Minimum_Single_Offset = $41;
const Maximum_Single_Offset = $7F;
const Minimum_Double_Offset = $81;
const Maximum_Double_Offset = $FD;
{----- System Page -----}
const _CommunicationState_w= $01;
const _LastError_w = $02;
const _UserHasDisabled_w = $03;
const _Watchdog_w = $04;
const _SampleRate_w = $05;
const _FirmwareVersion_w = $06;
const _TurnYellowLED_w = $07;
const _SampleCounter_w = $08;
const _WordAlignmentCheck_w= $09;
const _UserTask1_w = $11;
const _UserTask2_w = $12;
const _UserTask3_w = $13;
const _UserTask4_w = $14;
const _UserTask5_w = $15;
const _UserTask6_w = $16;
const _UserTask7_w = $17;
const _UserTask8_w = $18;
const _UserTask9_w = $19;
const _UserTask10_w = $1A;
const _UserTask11_w = $1B;
const _UserTask12_w = $1C;
const _UserTask13_w = $1D;
const _UserTask14_w = $1E;
const _UserTask15_w = $1F;
const _UserTask16_w = $20;
const _UserTaskLast_w = $20;
const AbortUserTask = 0;
const BeginUserTask = 1;
const ExecuteUserTask= 2;
const _UserWord1_w = $21;
const _UserWord2_w = $22;
const _UserWord3_w = $23;
const _UserWord4_w = $24;
const _UserWord5_w = $25;
const _UserWord6_w = $26;
const _UserWord7_w = $27;
const _UserWord8_w = $28;
const _UserWord9_w = $29;
const _UserWord10_w = $2A;
const _UserWord11_w = $2B;
const _UserWord12_w = $2C;
const _UserWord13_w = $2D;
const _UserWord14_w = $2E;
const _UserWord15_w = $2F;
const _UserWord16_w = $30;
const _UserWord17_w = $31;
const _UserWord18_w = $32;
const _UserWord19_w = $33;
const _UserWord20_w = $34;
const _UserWord21_w = $35;
const _UserWord22_w = $36;
const _UserWord23_w = $37;
const _UserWord24_w = $38;
const _UserWord25_w = $39;
const _UserWord26_w = $3A;
const _UserWord27_w = $3B;
const _UserWord28_w = $3C;
const _UserWord29_w = $3D;
const _UserWord30_w = $3E;
const _UserWord31_w = $3F;
const _UserWord32_w = $40;
const _UserWordLast_w = $40;
{------Single Area------}
const _UserSingle1_s = $41;
const _UserSingle2_s = $43;
const _UserSingle3_s = $45;
const _UserSingle4_s = $47;
const _UserSingle5_s = $49;
const _UserSingle6_s = $4B;
const _UserSingle7_s = $4D;
const _UserSingle8_s = $4F;
const _UserSingle9_s = $51;
const _UserSingle10_s = $53;
const _UserSingle11_s = $55;
const _UserSingle12_s = $57;
const _UserSingle13_s = $59;
const _UserSingle14_s = $5B;
const _UserSingle15_s = $5D;
const _UserSingle16_s = $5F;
const _UserSingle17_s = $61;
const _UserSingle18_s = $63;
const _UserSingle19_s = $65;
const _UserSingle20_s = $67;
const _UserSingle21_s = $69;
const _UserSingle22_s = $6B;
const _UserSingle23_s = $6D;
const _UserSingle24_s = $6F;
const _UserSingle25_s = $71;
const _UserSingle26_s = $73;
const _UserSingle27_s = $75;
const _UserSingle28_s = $77;
const _UserSingle29_s = $79;
const _UserSingle30_s = $7B;
const _UserSingle31_s = $7D;
const _UserSingleLast_s= $7D;
const _SingleAlignmentCheck_s=$7F;
const _UserDouble1_d = $81;
const _UserDouble2_d = $85;
const _UserDouble3_d = $89;
const _UserDouble4_d = $8D;
const _UserDouble5_d = $91;
const _UserDouble6_d = $95;
const _UserDouble7_d = $99;
const _UserDouble8_d = $9D;
const _UserDouble9_d = $A1;
const _UserDouble10_d = $A5;
const _UserDouble11_d = $A9;
const _UserDouble12_d = $AD;
const _UserDouble13_d = $B1;
const _UserDouble14_d = $B5;
const _UserDouble15_d = $B9;
const _UserDouble16_d = $BD;
const _UserDouble17_d = $C1;
const _UserDouble18_d = $C5;
const _UserDouble19_d = $C9;
const _UserDouble20_d = $CD;
const _UserDouble21_d = $D1;
const _UserDouble22_d = $D5;
const _UserDouble23_d = $D9;
const _UserDouble24_d = $DD;
const _UserDouble25_d = $E1;
const _UserDouble26_d = $E5;
const _UserDouble27_d = $E9;
const _UserDouble28_d = $ED;
const _UserDouble29_d = $F1;
const _UserDouble30_d = $F5;
const _UserDouble31_d = $F9;
const _UserDoubleLast_d= $F9;
const _DoubleAlignmentCheck_d=$FD;
{----- Axis/Coordinated Group Page -----}
const _Motor1Index_w = $01;
const _Motor2Index_w = $02;
const _Motor3Index_w = $03;
const _Motor4Index_w = $04;
const _Motor5Index_w = $05;
const _Motor6Index_w = $06;
const _MotorOn_w = $07;
const _MoveIsFinished_w = $08;
const _BeginStop_w = $09;
const _Abort_w = $0A;
const _SetCaptureSource_w = $0B;
const _SetCaptureTrip_w = $0C;
const _ArmCapture_w = $0D;
const _CaptureBit_w = $0E;
const _SetStepOutputToQuadrature_w=$0F;
const _SetStepWidth_w = $10;
const _SetEnableInversion_w = $11;
const _CoordinateInversion_w = $12;
const _Speed_s =$41;
const _Accel_s =$43;
const _Decel_s =$45;
const _Jog_s =$47;
const _SetCurrentTo_s =$49;
const _SetStepWidth_s =$4B;
const _BeginMoveBy_d = $81;
const _BeginMoveTo_d = $85;
const _MoveParameter2_d = $89;
const _MoveParameter3_d = $8D;
const _MoveParameter4_d = $91;
const _MoveParameter5_d = $95;
const _MoveParameter6_d = $99;
const _ActualPosition_d = $9D;
const _CommandedPosition_d = $A1;
const _ErrorPosition_d = $A5;
const _DestinationPosition_d=$A9;
const _CapturePosition_d =$AD;
const _PositiveLImit_d =$B1;
const _NegativeLimit_d =$B5;
const _CountsPerUserUnit =$B9;
const _ErrorLimit_d =$BD;