Example of a Cmd Table

Overview

The following code shows a command table.

(*** Prepare ***)

 TPL.FC_FirstStep(udiStepIndex, diStep);
 astPrepareTable[udiStepIndex].sTitle               := 'DriveEnable MultiBelt';
 astPrepareTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astPrepareTable[udiStepIndex].diStep               := diStep;
 astPrepareTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.DriveEnableOn;
 astPrepareTable[udiStepIndex].timTimeOut            := T#0MS;
 astPrepareTable[udiStepIndex].xEndCMD               := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astPrepareTable[udiStepIndex].sTitle               := 'Homing Mode MultiBelt';
 astPrepareTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astPrepareTable[udiStepIndex].diStep               := diStep;
 astPrepareTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.Homing;
 astPrepareTable[udiStepIndex].timTimeOut            := T#0MS;
 astPrepareTable[udiStepIndex].xEndCMD               := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astPrepareTable[udiStepIndex].sTitle               := 'Start MultiBelt';
 astPrepareTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astPrepareTable[udiStepIndex].diStep               := diStep;
 astPrepareTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.Start;
 astPrepareTable[udiStepIndex].timTimeOut            := T#0MS;
 astPrepareTable[udiStepIndex].xEndCMD               := FALSE;
 TPL.FC_LastStep(udiStepIndex, diStep);
 astPrepareTable[udiStepIndex].sTitle               := 'End';
 astPrepareTable[udiStepIndex].udiModuleName            := 0;
 astPrepareTable[udiStepIndex].diStep               := diStep;
 astPrepareTable[udiStepIndex].diCMD                  := 0;
 astPrepareTable[udiStepIndex].timTimeOut            := T#0MS;
 astPrepareTable[udiStepIndex].xEndCMD               := TRUE;
 TPL.FC_FirstCmdTable(iq_udiTableIndex:= udiTableIndex);
 astListofCMDTables[udiTableIndex].sTitle            := 'Prepare';
 astListofCMDTables[udiTableIndex].diCMD               := ET_Cmd.Prepare;
 astListofCMDTables[udiTableIndex].udiNumberOfCmdSteps   := udiStepIndex;

(*********************************************************************************************************************)
(*** Auto ***)

 TPL.FC_FirstStep(udiStepIndex, diStep);
 astAutoTable[udiStepIndex].sTitle                  := 'DriveEnable MultiBelt';
 astAutoTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astAutoTable[udiStepIndex].diStep                  := diStep;
 astAutoTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.DriveEnableOn;
 astAutoTable[udiStepIndex].timTimeOut               := T#0MS;
 astAutoTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astAutoTable[udiStepIndex].sTitle                  := 'Automatic MultiBelt';
 astAutoTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astAutoTable[udiStepIndex].diStep                  := diStep;
 astAutoTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.Automatic;
 astAutoTable[udiStepIndex].timTimeOut               := T#0MS;
 astAutoTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astAutoTable[udiStepIndex].sTitle                  := 'Start MultiBelt';
 astAutoTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astAutoTable[udiStepIndex].diStep                  := diStep;
 astAutoTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.Start;
 astAutoTable[udiStepIndex].timTimeOut               := T#0MS;
 astAutoTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astAutoTable[udiStepIndex].sTitle                  := 'Endless Mode Slave3';
 astAutoTable[udiStepIndex].udiModuleName            := c_udiSlave3;
 astAutoTable[udiStepIndex].diStep                  := diStep;
 astAutoTable[udiStepIndex].diCMD                  := AXM.ET_Cmd.Endless; 
 astAutoTable[udiStepIndex].timTimeOut               := T#0MS;
 astAutoTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astAutoTable[udiStepIndex].sTitle                  := 'Positioning Mode Slave4';
 astAutoTable[udiStepIndex].udiModuleName            := c_udiSlave4;
 astAutoTable[udiStepIndex].diStep                  := diStep;
 astAutoTable[udiStepIndex].diCMD                  := AXM.ET_Cmd.Positioning;
 astAutoTable[udiStepIndex].timTimeOut               := T#0MS;
 astAutoTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astAutoTable[udiStepIndex].sTitle                  := 'Start Slave3';
 astAutoTable[udiStepIndex].udiModuleName            := c_udiSlave3;
 astAutoTable[udiStepIndex].diStep                  := diStep;
 astAutoTable[udiStepIndex].diCMD                  := AXM.ET_Cmd.Start;
 astAutoTable[udiStepIndex].timTimeOut               := T#0MS;
 astAutoTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_LastStep(udiStepIndex, diStep);
 astAutoTable[udiStepIndex].sTitle                  := 'End';
 astAutoTable[udiStepIndex].udiModuleName            := 0;
 astAutoTable[udiStepIndex].diStep                  := diStep;
 astAutoTable[udiStepIndex].diCMD                  := 0;
 astAutoTable[udiStepIndex].timTimeOut               := T#0MS;
 astAutoTable[udiStepIndex].xEndCMD                  := TRUE;
 TPL.FC_NextCmdTable(iq_udiTableIndex:= udiTableIndex);
 astListofCMDTables[udiTableIndex].sTitle            := 'Auto';
 astListofCMDTables[udiTableIndex].diCMD               := ET_Cmd.Auto;
 astListofCMDTables[udiTableIndex].udiNumberOfCmdSteps   := udiStepIndex;

(*********************************************************************************************************************)
(*** Manual ***)

 TPL.FC_FirstStep(udiStepIndex, diStep);
 astManualTable[udiStepIndex].sTitle                  := 'DriveEnable MultiBelt';
 astManualTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astManualTable[udiStepIndex].diStep                  := diStep;
 astManualTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.DriveEnableOn;
 astManualTable[udiStepIndex].timTimeOut               := T#0MS;
 astManualTable[udiStepIndex].xEndCMD               := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astManualTable[udiStepIndex].sTitle                  := 'Manual Mode MultiBelt';
 astManualTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astManualTable[udiStepIndex].diStep                  := diStep;
 astManualTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.Manual;
 astManualTable[udiStepIndex].timTimeOut               := T#0MS;
 astManualTable[udiStepIndex].xEndCMD               := FALSE;
 TPL.FC_LastStep(udiStepIndex, diStep);
 astManualTable[udiStepIndex].sTitle                  := 'End';
 astManualTable[udiStepIndex].udiModuleName            := 0;
 astManualTable[udiStepIndex].diStep                  := diStep;
 astManualTable[udiStepIndex].diCMD                  := 0;
 astManualTable[udiStepIndex].timTimeOut               := T#0MS;
 astManualTable[udiStepIndex].xEndCMD               := TRUE;
 TPL.FC_NextCmdTable(iq_udiTableIndex:= udiTableIndex);
 astListofCMDTables[udiTableIndex].sTitle            := 'Manual';
 astListofCMDTables[udiTableIndex].diCMD               := ET_Cmd.Manual;
 astListofCMDTables[udiTableIndex].udiNumberOfCmdSteps   := udiStepIndex;

(*********************************************************************************************************************)
(*** Stop ***)

 TPL.FC_FirstStep(udiStepIndex, diStep);
 astStopTable[udiStepIndex].sTitle                  := 'Stop CharlyGroup2';
 astStopTable[udiStepIndex].udiModuleName            := c_udiCharlyGroup2;
 astStopTable[udiStepIndex].diStep                  := diStep;
 astStopTable[udiStepIndex].diCMD                  := AXM.ET_Cmd.Stop;
 astStopTable[udiStepIndex].timTimeOut               := T#0MS;
 astStopTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astStopTable[udiStepIndex].sTitle                  := 'Manual Mode MultiBelt';
 astStopTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astStopTable[udiStepIndex].diStep                  := diStep;
 astStopTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.Stop;
 astStopTable[udiStepIndex].timTimeOut               := T#0MS;
 astStopTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_LastStep(udiStepIndex, diStep);
 astStopTable[udiStepIndex].sTitle                  := 'End';
 astStopTable[udiStepIndex].udiModuleName            := 0;
 astStopTable[udiStepIndex].diStep                  := diStep;
 astStopTable[udiStepIndex].diCMD                  := 0;
 astStopTable[udiStepIndex].timTimeOut               := T#0MS;
 astStopTable[udiStepIndex].xEndCMD                  := TRUE;
 TPL.FC_NextCmdTable(iq_udiTableIndex:= udiTableIndex);
 astListofCMDTables[udiTableIndex].sTitle            := 'Stop';
 astListofCMDTables[udiTableIndex].diCMD               := ET_Cmd.Stop;
 astListofCMDTables[udiTableIndex].udiNumberOfCmdSteps   := udiStepIndex;

(*********************************************************************************************************************)
(*** Start ***)

 TPL.FC_FirstStep(udiStepIndex, diStep);
 astStartTable[udiStepIndex].sTitle                  := 'Start CharlyGroup2';
 astStartTable[udiStepIndex].udiModuleName            := c_udiCharlyGroup2;
 astStartTable[udiStepIndex].diStep                  := diStep;
 astStartTable[udiStepIndex].diCMD                  := AXM.ET_Cmd.Start;
 astStartTable[udiStepIndex].timTimeOut               := T#0MS;
 astStartTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astStartTable[udiStepIndex].sTitle                  := 'Manual Mode MultiBelt';
 astStartTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astStartTable[udiStepIndex].diStep                  := diStep;
 astStartTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.Start;
 astStartTable[udiStepIndex].timTimeOut               := T#0MS;
 astStartTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_LastStep(udiStepIndex, diStep);
 astStartTable[udiStepIndex].sTitle                  := 'End';
 astStartTable[udiStepIndex].udiModuleName            := 0;
 astStartTable[udiStepIndex].diStep                  := diStep;
 astStartTable[udiStepIndex].diCMD                  := 0;
 astStartTable[udiStepIndex].timTimeOut               := T#0MS;
 astStartTable[udiStepIndex].xEndCMD                  := TRUE;
 TPL.FC_NextCmdTable(iq_udiTableIndex:= udiTableIndex);
 astListofCMDTables[udiTableIndex].sTitle            := 'Start';
 astListofCMDTables[udiTableIndex].diCMD               := ET_Cmd.Start;
 astListofCMDTables[udiTableIndex].udiNumberOfCmdSteps   := udiStepIndex;

(*********************************************************************************************************************)
(*** Abort ***)

 TPL.FC_FirstStep(udiStepIndex, diStep);
 astAbortTable[udiStepIndex].sTitle                  := 'Stop CharlyGroup2';
 astAbortTable[udiStepIndex].udiModuleName            := c_udiCharlyGroup2;
 astAbortTable[udiStepIndex].diStep                  := diStep;
 astAbortTable[udiStepIndex].diCMD                  := AXM.ET_Cmd.Stop;
 astAbortTable[udiStepIndex].timTimeOut               := T#0MS;
 astAbortTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astAbortTable[udiStepIndex].sTitle                  := 'Manual Mode MultiBelt';
 astAbortTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astAbortTable[udiStepIndex].diStep                  := diStep;
 astAbortTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.Stop;
 astAbortTable[udiStepIndex].timTimeOut               := T#0MS;
 astAbortTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_LastStep(udiStepIndex, diStep);
 astAbortTable[udiStepIndex].sTitle                  := 'End';
 astAbortTable[udiStepIndex].udiModuleName            := 0;
 astAbortTable[udiStepIndex].diStep                  := diStep;
 astAbortTable[udiStepIndex].diCMD                  := 0;
 astAbortTable[udiStepIndex].timTimeOut               := T#0MS;
 astAbortTable[udiStepIndex].xEndCMD                  := TRUE;
 TPL.FC_NextCmdTable(iq_udiTableIndex:= udiTableIndex);
 astListofCMDTables[udiTableIndex].sTitle            := 'Abort';
 astListofCMDTables[udiTableIndex].diCMD               := ET_Cmd.Abort;
 astListofCMDTables[udiTableIndex].udiNumberOfCmdSteps   := udiStepIndex;

(*********************************************************************************************************************)
(*** Hold ***)

 TPL.FC_FirstStep(udiStepIndex, diStep);
 astHoldTable[udiStepIndex].sTitle                  := 'Manual Mode MultiBelt';
 astHoldTable[udiStepIndex].udiModuleName            := c_udiMultiBelt;
 astHoldTable[udiStepIndex].diStep                  := diStep;
 astHoldTable[udiStepIndex].diCMD                  := MTBM.ET_Cmd.Hold;
 astHoldTable[udiStepIndex].timTimeOut               := T#0MS;
 astHoldTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astHoldTable[udiStepIndex].sTitle                  := 'Hold Slave3';
 astHoldTable[udiStepIndex].udiModuleName            := c_udiSlave3;
 astHoldTable[udiStepIndex].diStep                  := diStep;
 astHoldTable[udiStepIndex].diCMD                  := AXM.ET_Cmd.Hold;
 astHoldTable[udiStepIndex].timTimeOut               := T#0MS;
 astHoldTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astHoldTable[udiStepIndex].sTitle                  := 'Stop Slave4';
 astHoldTable[udiStepIndex].udiModuleName            := c_udiSlave4;
 astHoldTable[udiStepIndex].diStep                  := diStep;
 astHoldTable[udiStepIndex].diCMD                  := AXM.ET_Cmd.Stop;
 astHoldTable[udiStepIndex].timTimeOut               := T#0MS;
 astHoldTable[udiStepIndex].xEndCMD                  := FALSE;
 TPL.FC_LastStep(udiStepIndex, diStep);
 astHoldTable[udiStepIndex].sTitle                  := 'End';
 astHoldTable[udiStepIndex].udiModuleName            := 0;
 astHoldTable[udiStepIndex].diStep                  := diStep;
 astHoldTable[udiStepIndex].diCMD                  := 0;
 astHoldTable[udiStepIndex].timTimeOut               := T#0MS;
 astHoldTable[udiStepIndex].xEndCMD                  := TRUE;
 TPL.FC_NextCmdTable(iq_udiTableIndex:= udiTableIndex);
 astListofCMDTables[udiTableIndex].sTitle            := 'Hold';
 astListofCMDTables[udiTableIndex].diCMD               := ET_Cmd.Hold;
 astListofCMDTables[udiTableIndex].udiNumberOfCmdSteps   := udiStepIndex;

(*********************************************************************************************************************)
(*** Brake Release ***)

 TPL.FC_FirstStep(udiStepIndex, diStep);
 astBrakeReleaseTable[udiStepIndex].sTitle            := 'DriveEnable Off CharlyGroup2';
 astBrakeReleaseTable[udiStepIndex].udiModuleName      := c_udiCharlyGroup2;
 astBrakeReleaseTable[udiStepIndex].diStep            := diStep;
 astBrakeReleaseTable[udiStepIndex].diCMD            := AXM.ET_Cmd.DriveEnableOff;
 astBrakeReleaseTable[udiStepIndex].timTimeOut         := T#0MS;
 astBrakeReleaseTable[udiStepIndex].xEndCMD            := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astBrakeReleaseTable[udiStepIndex].sTitle            := 'BrakeRelease Mode CharlyGroup2';
 astBrakeReleaseTable[udiStepIndex].udiModuleName      := c_udiCharlyGroup2;
 astBrakeReleaseTable[udiStepIndex].diStep            := diStep;
 astBrakeReleaseTable[udiStepIndex].diCMD            := AXM.ET_Cmd.BrakeRelease;
 astBrakeReleaseTable[udiStepIndex].timTimeOut         := T#0MS;
 astBrakeReleaseTable[udiStepIndex].xEndCMD            := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astBrakeReleaseTable[udiStepIndex].sTitle            := 'Start CharlyGroup2';
 astBrakeReleaseTable[udiStepIndex].udiModuleName      := c_udiCharlyGroup2;
 astBrakeReleaseTable[udiStepIndex].diStep            := diStep;
 astBrakeReleaseTable[udiStepIndex].diCMD            := AXM.ET_Cmd.Start;
 astBrakeReleaseTable[udiStepIndex].timTimeOut         := T#0MS;
 astBrakeReleaseTable[udiStepIndex].xEndCMD            := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astBrakeReleaseTable[udiStepIndex].sTitle            := 'DriveEnable MultiBelt';
 astBrakeReleaseTable[udiStepIndex].udiModuleName      := c_udiMultiBelt;
 astBrakeReleaseTable[udiStepIndex].diStep            := diStep;
 astBrakeReleaseTable[udiStepIndex].diCMD            := MTBM.ET_Cmd.DriveEnableOff;
 astBrakeReleaseTable[udiStepIndex].timTimeOut         := T#0MS;
 astBrakeReleaseTable[udiStepIndex].xEndCMD            := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astBrakeReleaseTable[udiStepIndex].sTitle            := 'DriveEnable MultiBelt';
 astBrakeReleaseTable[udiStepIndex].udiModuleName      := c_udiMultiBelt;
 astBrakeReleaseTable[udiStepIndex].diStep            := diStep;
 astBrakeReleaseTable[udiStepIndex].diCMD            := MTBM.ET_Cmd.BrakeRelease;
 astBrakeReleaseTable[udiStepIndex].timTimeOut         := T#0MS;
 astBrakeReleaseTable[udiStepIndex].xEndCMD            := FALSE;
 TPL.FC_NextStep(udiStepIndex, diStep);
 astBrakeReleaseTable[udiStepIndex].sTitle            := 'DriveEnable MultiBelt';
 astBrakeReleaseTable[udiStepIndex].udiModuleName      := c_udiMultiBelt;
 astBrakeReleaseTable[udiStepIndex].diStep            := diStep;
 astBrakeReleaseTable[udiStepIndex].diCMD            := MTBM.ET_Cmd.Start;
 astBrakeReleaseTable[udiStepIndex].timTimeOut         := T#0MS;
 astBrakeReleaseTable[udiStepIndex].xEndCMD            := FALSE;
 TPL.FC_LastStep(udiStepIndex, diStep);
 astBrakeReleaseTable[udiStepIndex].sTitle            := 'End';
 astBrakeReleaseTable[udiStepIndex].udiModuleName      := 0;
 astBrakeReleaseTable[udiStepIndex].diStep            := diStep;
 astBrakeReleaseTable[udiStepIndex].diCMD            := 0;
 astBrakeReleaseTable[udiStepIndex].timTimeOut         := T#0MS;
 astBrakeReleaseTable[udiStepIndex].xEndCMD            := TRUE;
 TPL.FC_NextCmdTable(iq_udiTableIndex:= udiTableIndex);
 astListofCMDTables[udiTableIndex].sTitle            := 'Brake Release';
 astListofCMDTables[udiTableIndex].diCMD               := ET_Cmd.BrakeRelease;
 astListofCMDTables[udiTableIndex].udiNumberOfCmdSteps   := udiStepIndex;