diff --git a/lcls-twincat-motion/Library/POUs/Motion/FB_MotionVirtualFrame.TcPOU b/lcls-twincat-motion/Library/POUs/Motion/FB_MotionVirtualFrame.TcPOU
index 64e7564..6923f6f 100644
--- a/lcls-twincat-motion/Library/POUs/Motion/FB_MotionVirtualFrame.TcPOU
+++ b/lcls-twincat-motion/Library/POUs/Motion/FB_MotionVirtualFrame.TcPOU
@@ -3,6 +3,16 @@
= fbVirtActPositionVec3.x THEN
- fbVirtTarVelocityVec3.x := stMotionStageVx.fVelocity;
- fbVirtTarAcceleraVec3.x := stMotionStageVx.fAcceleration;
- ELSE
- fbVirtTarVelocityVec3.x := -stMotionStageVx.fVelocity;
- fbVirtTarAcceleraVec3.x := -stMotionStageVx.fAcceleration;
- END_IF
+IF bBaseToNew THEN
+ RotatePosVelAccFrame(
+ fbBaseFramePositionVec3 := fbRealActPositionVec3,
+ fbBaseFrameVelocityVec3 := fbRealActVelocityVec3,
+ fbBaseFrameAcceleraVec3 := fbRealActAcceleraVec3,
+ fbNewFramePositionVec3 => fbVirtActPositionVec3,
+ fbNewFrameVelocityVec3 => fbVirtActVelocityVec3,
+ fbNewFrameAcceleraVec3 => fbVirtActAcceleraVec3,
+ fAlphaRadians := fAlphaRadians,
+ fBetaRadians := fBetaRadians,
+ fGammaRadians := fGammaRadians,
+ sOrder := sOrder
+ );
ELSE
- fbVirtTarPositionVec3.x := fbVirtActPositionVec3.x;
- fbVirtTarVelocityVec3.x := 0.0;
- fbVirtTarAcceleraVec3.x := 0.0;
+ RotatePosVelAccFrame(
+ fbBaseFramePositionVec3 := fbRealActPositionVec3,
+ fbBaseFrameVelocityVec3 := fbRealActVelocityVec3,
+ fbBaseFrameAcceleraVec3 := fbRealActAcceleraVec3,
+ fbNewFramePositionVec3 => fbVirtActPositionVec3,
+ fbNewFrameVelocityVec3 => fbVirtActVelocityVec3,
+ fbNewFrameAcceleraVec3 => fbVirtActAcceleraVec3,
+ fAlphaRadians := -fGammaRadians,
+ fBetaRadians := -fBetaRadians,
+ fGammaRadians := -fAlphaRadians,
+ sOrder := sOrderReversed
+ );
END_IF
-IF stMotionStageVy.bBusy THEN
- fbVirtTarPositionVec3.y := stMotionStageVy.fPosition;
- IF fbVirtTarPositionVec3.y >= fbVirtActPositionVec3.y THEN
- fbVirtTarVelocityVec3.y := stMotionStageVy.fVelocity;
- fbVirtTarAcceleraVec3.y := stMotionStageVy.fAcceleration;
- ELSE
- fbVirtTarVelocityVec3.y := -stMotionStageVy.fVelocity;
- fbVirtTarAcceleraVec3.y := -stMotionStageVy.fAcceleration;
- END_IF
-ELSE
- fbVirtTarPositionVec3.y := fbVirtActPositionVec3.y;
- fbVirtTarVelocityVec3.y := 0.0;
- fbVirtTarAcceleraVec3.y := 0.0;
-END_IF
+SetTargetPosVelAcc3D(
+ stMotionStageX := stMotionStageVx,
+ stMotionStageY := stMotionStageVy,
+ stMotionStageZ := stMotionStageVz,
+ fbActPosVec3 := fbVirtActPositionVec3,
+ fbTarPosVec3 => fbVirtTarPositionVec3,
+ fbTarVelVec3 => fbVirtTarVelocityVec3,
+ fbTarAccVec3 => fbVirtTarAcceleraVec3
+);
-IF stMotionStageVz.bBusy THEN
- fbVirtTarPositionVec3.z := stMotionStageVz.fPosition;
- IF fbVirtTarPositionVec3.z >= fbVirtActPositionVec3.z THEN
- fbVirtTarVelocityVec3.z := stMotionStageVz.fVelocity;
- fbVirtTarAcceleraVec3.z := stMotionStageVz.fAcceleration;
- ELSE
- fbVirtTarVelocityVec3.z := -stMotionStageVz.fVelocity;
- fbVirtTarAcceleraVec3.z := -stMotionStageVz.fAcceleration;
- END_IF
+IF bBaseToNew THEN
+ RotatePosVelAccFrame(
+ fbBaseFramePositionVec3 := fbVirtTarPositionVec3,
+ fbBaseFrameVelocityVec3 := fbVirtTarVelocityVec3,
+ fbBaseFrameAcceleraVec3 := fbVirtTarAcceleraVec3,
+ fbNewFramePositionVec3 => fbRealTarPositionVec3,
+ fbNewFrameVelocityVec3 => fbRealTarVelocityVec3,
+ fbNewFrameAcceleraVec3 => fbRealTarAcceleraVec3,
+ fAlphaRadians := -fGammaRadians,
+ fBetaRadians := -fBetaRadians,
+ fGammaRadians := -fAlphaRadians,
+ sOrder := sOrderReversed
+ );
ELSE
- fbVirtTarPositionVec3.z := fbVirtActPositionVec3.z;
- fbVirtTarVelocityVec3.z := 0.0;
- fbVirtTarAcceleraVec3.z := 0.0;
+ RotatePosVelAccFrame(
+ fbBaseFramePositionVec3 := fbVirtTarPositionVec3,
+ fbBaseFrameVelocityVec3 := fbVirtTarVelocityVec3,
+ fbBaseFrameAcceleraVec3 := fbVirtTarAcceleraVec3,
+ fbNewFramePositionVec3 => fbRealTarPositionVec3,
+ fbNewFrameVelocityVec3 => fbRealTarVelocityVec3,
+ fbNewFrameAcceleraVec3 => fbRealTarAcceleraVec3,
+ fAlphaRadians := fAlphaRadians,
+ fBetaRadians := fBetaRadians,
+ fGammaRadians := fGammaRadians,
+ sOrder := sOrder
+ );
END_IF
-sLeft := LEFT(sOrder, 1);
-sMid := MID(sOrder, 1, 1);
-sRight := RIGHT(sOrder, 1);
-sOrderReversed := CONCAT(sRight, CONCAT(sMid, sLeft));
-
-fbRealTarPositionVec3 := F_EulerRotateVec3Frame(
- iVec3 := fbVirtTarPositionVec3,
- fAlphaRadians := -fGammaRadians,
- fBetaRadians := -fBetaRadians,
- fGammaRadians := -fAlphaRadians,
- sOrder := sOrderReversed
-);
-
-fbRealTarVelocityVec3 := F_EulerRotateVec3Frame(
- iVec3 := fbVirtTarVelocityVec3,
- fAlphaRadians := -fGammaRadians,
- fBetaRadians := -fBetaRadians,
- fGammaRadians := -fAlphaRadians,
- sOrder := sOrderReversed
-);
-
-fbRealTarAcceleraVec3 := F_EulerRotateVec3Frame(
- iVec3 := fbVirtTarAcceleraVec3,
- fAlphaRadians := -fGammaRadians,
- fBetaRadians := -fBetaRadians,
- fGammaRadians := -fAlphaRadians,
- sOrder := sOrderReversed
-);
-
IF bEnable THEN
IF rtExecuteVx.Q OR rtExecuteVy.Q OR rtExecuteVz.Q THEN
stMotionStageRx.fPosition := fbRealTarPositionVec3.x;
@@ -223,5 +213,174 @@ IF bEnable THEN
END_IF
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = fActPos THEN
+ fTarVel := stMotionStage.fVelocity;
+ fTarAcc := stMotionStage.fAcceleration;
+ ELSE
+ fTarVel := -stMotionStage.fVelocity;
+ fTarAcc := -stMotionStage.fAcceleration;
+ END_IF
+ELSE
+ fTarPos := fActPos;
+ fTarVel := 0.0;
+ fTarAcc := 0.0;
+END_IF
+]]>
+
+
+
+
+
+ fTarPosX,
+ fTarVel => fTarVelX,
+ fTarAcc => fTarAccX
+);
+
+SetTargetPosVelAcc1D(
+ stMotionStage := stMotionStageY,
+ fActPos := fbActPosVec3.y,
+ fTarPos => fTarPosY,
+ fTarVel => fTarVelY,
+ fTarAcc => fTarAccY
+);
+
+SetTargetPosVelAcc1D(
+ stMotionStage := stMotionStageZ,
+ fActPos := fbActPosVec3.z,
+ fTarPos => fTarPosZ,
+ fTarVel => fTarVelZ,
+ fTarAcc => fTarAccZ
+);
+
+fbTarPosVec3.Set(fTarPosX, fTarPosY, fTarPosZ);
+fbTarVelVec3.Set(fTarVelX, fTarVelY, fTarVelZ);
+fbTarAccVec3.Set(fTarAccX, fTarAccY, fTarAccZ);
+]]>
+
+
\ No newline at end of file
diff --git a/lcls-twincat-motion/Library/Tests/FB_MotionVirtualFrame_Test.TcPOU b/lcls-twincat-motion/Library/Tests/FB_MotionVirtualFrame_Test.TcPOU
index 13773dc..dc6a3f3 100644
--- a/lcls-twincat-motion/Library/Tests/FB_MotionVirtualFrame_Test.TcPOU
+++ b/lcls-twincat-motion/Library/Tests/FB_MotionVirtualFrame_Test.TcPOU
@@ -54,6 +54,10 @@ TestEnabled000090XYZMoveVxExpectNoErrorsCorrectPosVelAcc();
TestEnabled009090XYZMoveVxExpectNoErrorsCorrectPosVelAcc();
TestEnabled909090XYZMoveVxExpectNoErrorsCorrectPosVelAcc();
+
+TestEnabledN22N21P4XYZMoveVxVyVzExpectNoErrorsCorrectPosVelAcc();
+
+TestEnabledN22N21P4XYZMoveVyExpectNoErrorsCorrectPosVelAcc();
]]>
@@ -270,6 +274,8 @@ fbMotorTestSuite.SetEnables(stMotionStage := stMotionStageVx);
fbMotorTestSuite.SetEnables(stMotionStage := stMotionStageVy);
fbMotorTestSuite.SetEnables(stMotionStage := stMotionStageVz);
+SetTar0();
+
fbMotionStageSetHelperRx(
bExecute := TRUE,
fStartPosition := 0.0,
@@ -392,6 +398,38 @@ IF fbMotionStageSetHelperRx.bSetDone AND
END_IF]]>
+
+
+
+
+
+
,
fbVirtActVelocityVec3 => ,
fbVirtActAcceleraVec3 =>
@@ -448,7 +487,7 @@ IF stMotionStageVx.bBusy THEN
bBusyReached := TRUE;
END_IF
-IF bBusyReached AND NOT stMotionStageRx.bBusy THEN
+IF bBusyReached AND NOT stMotionStageVx.bBusy THEN
bComplete := TRUE;
END_IF
@@ -534,9 +573,9 @@ IF NOT bInit THEN
END_IF
IF bInit THEN
- stMotionStageVx.fPosition := 15.0 + INT_TO_LREAL(nTestIDAssigner) * 5.0;
- stMotionStageVx.fVelocity := 10.0 + INT_TO_LREAL(nTestIDAssigner) * 1.0;
- stMotionStageVx.fAcceleration := 50.0 + INT_TO_LREAL(nTestIDAssigner) * 10.0;
+ stMotionStageVx.fPosition := 20.0;
+ stMotionStageVx.fVelocity := stMotionStageVx.fPosition * 2.0 / 3.0;
+ stMotionStageVx.fAcceleration := stMotionStageVx.fVelocity * 5.0;
rtMoveCmdOnce(CLK := TRUE);
stMotionStageVx.bMoveCmd := rtMoveCmdOnce.Q;
END_IF
@@ -553,6 +592,7 @@ fbMotionVirtualFrame(
fBetaDegrees := 0.0,
fGammaDegrees := 90.0,
sOrder := 'XYZ',
+ bBaseToNew := TRUE,
fbVirtActPositionVec3 => ,
fbVirtActVelocityVec3 => ,
fbVirtActAcceleraVec3 =>
@@ -562,7 +602,7 @@ IF stMotionStageVx.bBusy THEN
bBusyReached := TRUE;
END_IF
-IF bBusyReached AND NOT stMotionStageRx.bBusy THEN
+IF bBusyReached AND NOT stMotionStageVx.bBusy THEN
bComplete := TRUE;
END_IF
@@ -648,9 +688,9 @@ IF NOT bInit THEN
END_IF
IF bInit THEN
- stMotionStageVx.fPosition := 15.0 + INT_TO_LREAL(nTestIDAssigner) * 5.0;
- stMotionStageVx.fVelocity := 10.0 + INT_TO_LREAL(nTestIDAssigner) * 1.0;
- stMotionStageVx.fAcceleration := 50.0 + INT_TO_LREAL(nTestIDAssigner) * 10.0;
+ stMotionStageVx.fPosition := 25.0;
+ stMotionStageVx.fVelocity := stMotionStageVx.fPosition * 2.0 / 3.0;
+ stMotionStageVx.fAcceleration := stMotionStageVx.fVelocity * 5.0;
rtMoveCmdOnce(CLK := TRUE);
stMotionStageVx.bMoveCmd := rtMoveCmdOnce.Q;
END_IF
@@ -667,6 +707,7 @@ fbMotionVirtualFrame(
fBetaDegrees := 90.0,
fGammaDegrees := 90.0,
sOrder := 'XYZ',
+ bBaseToNew := TRUE,
fbVirtActPositionVec3 => ,
fbVirtActVelocityVec3 => ,
fbVirtActAcceleraVec3 =>
@@ -676,7 +717,7 @@ IF stMotionStageVx.bBusy THEN
bBusyReached := TRUE;
END_IF
-IF bBusyReached AND NOT stMotionStageRx.bBusy THEN
+IF bBusyReached AND NOT stMotionStageVx.bBusy THEN
bComplete := TRUE;
END_IF
@@ -762,9 +803,9 @@ IF NOT bInit THEN
END_IF
IF bInit THEN
- stMotionStageVx.fPosition := 15.0 + INT_TO_LREAL(nTestIDAssigner) * 5.0;
- stMotionStageVx.fVelocity := 10.0 + INT_TO_LREAL(nTestIDAssigner) * 1.0;
- stMotionStageVx.fAcceleration := 50.0 + INT_TO_LREAL(nTestIDAssigner) * 10.0;
+ stMotionStageVx.fPosition := 35.0;
+ stMotionStageVx.fVelocity := stMotionStageVx.fPosition * 2.0 / 3.0;
+ stMotionStageVx.fAcceleration := stMotionStageVx.fVelocity * 5.0;
rtMoveCmdOnce(CLK := TRUE);
stMotionStageVx.bMoveCmd := rtMoveCmdOnce.Q;
END_IF
@@ -781,6 +822,7 @@ fbMotionVirtualFrame(
fBetaDegrees := 90.0,
fGammaDegrees := 90.0,
sOrder := 'XYZ',
+ bBaseToNew := TRUE,
fbVirtActPositionVec3 => ,
fbVirtActVelocityVec3 => ,
fbVirtActAcceleraVec3 =>
@@ -790,7 +832,7 @@ IF stMotionStageVx.bBusy THEN
bBusyReached := TRUE;
END_IF
-IF bBusyReached AND NOT stMotionStageRx.bBusy THEN
+IF bBusyReached AND NOT stMotionStageVx.bBusy THEN
bComplete := TRUE;
END_IF
@@ -842,6 +884,247 @@ fbMotionStageVx(stMotionStage := stMotionStageVx);
fbMotionStageVy(stMotionStage := stMotionStageVy);
fbMotionStageVz(stMotionStage := stMotionStageVz);
+nPositionCountsVx := LREAL_TO_UDINT((fbMotionVirtualFrame.fbVirtActPositionVec3.x + 100.0) * 1e6);
+nPositionCountsVy := LREAL_TO_UDINT((fbMotionVirtualFrame.fbVirtActPositionVec3.y + 100.0) * 1e6);
+nPositionCountsVz := LREAL_TO_UDINT((fbMotionVirtualFrame.fbVirtActPositionVec3.z + 100.0) * 1e6);
+]]>
+
+
+
+
+
+ nTestIDAssigner OR NOT tonStart.Q THEN
+ RETURN;
+END_IF
+
+tonTimeout(IN := TRUE, PT := T#3s);
+
+IF NOT bInit THEN
+ bInit := InitMotors();
+END_IF
+
+IF bInit THEN
+ rtMoveCmdOnce(CLK := TRUE);
+
+ stMotionStageVx.fPosition := 15.0;
+ stMotionStageVx.fVelocity := stMotionStageVx.fPosition * 2.0 / 3.0;
+ stMotionStageVx.fAcceleration := stMotionStageVx.fVelocity * 5.0;
+ stMotionStageVx.bMoveCmd := rtMoveCmdOnce.Q;
+
+ stMotionStageVy.fPosition := -30.0;
+ stMotionStageVy.fVelocity := ABS(stMotionStageVy.fPosition * 2.0 / 3.0);
+ stMotionStageVy.fAcceleration := ABS(stMotionStageVy.fVelocity * 5.0);
+ stMotionStageVy.bMoveCmd := rtMoveCmdOnce.Q;
+
+ stMotionStageVz.fPosition := 45.0;
+ stMotionStageVz.fVelocity := stMotionStageVz.fPosition * 2.0 / 3.0;
+ stMotionStageVz.fAcceleration := stMotionStageVz.fVelocity * 5.0;
+ stMotionStageVz.bMoveCmd := rtMoveCmdOnce.Q;
+END_IF
+
+fbMotionVirtualFrame(
+ stMotionStageRx := stMotionStageRx,
+ stMotionStageRy := stMotionStageRy,
+ stMotionStageRz := stMotionStageRz,
+ stMotionStageVx := stMotionStageVx,
+ stMotionStageVy := stMotionStageVy,
+ stMotionStageVz := stMotionStageVz,
+ bEnable := TRUE,
+ fAlphaDegrees := -22.21,
+ fBetaDegrees := -20.7,
+ fGammaDegrees := 3.793,
+ sOrder := 'XYZ',
+ bBaseToNew := FALSE,
+ fbVirtActPositionVec3 => ,
+ fbVirtActVelocityVec3 => ,
+ fbVirtActAcceleraVec3 =>
+);
+
+IF stMotionStageVx.bBusy AND stMotionStageVy.bBusy AND stMotionStageVz.bBusy THEN
+ bBusyReached := TRUE;
+END_IF
+
+IF bBusyReached AND NOT stMotionStageVx.bBusy AND NOT stMotionStageVy.bBusy AND NOT stMotionStageVz.bBusy THEN
+ bComplete := TRUE;
+END_IF
+
+IF (bComplete AND
+ NOT stMotionStageVx.bBusy AND
+ NOT stMotionStageVy.bBusy AND
+ NOT stMotionStageVz.bBusy AND
+ NOT stMotionStageRx.bBusy AND
+ NOT stMotionStageRy.bBusy AND
+ NOT stMotionStageRz.bBusy)
+ OR tonTimeout.Q THEN
+
+ AssertNoErrors();
+
+ AssertPosVelAccCorrect(
+ fDelta := fDelta,
+ fRxPosExpected := 21.732640182123049,
+ fRyPosExpected := -46.323371856381527,
+ fRzPosExpected := 23.061603816078627,
+ fVxPosExpected := stMotionStageVx.fPosition,
+ fVyPosExpected := stMotionStageVy.fPosition,
+ fVzPosExpected := stMotionStageVz.fPosition,
+ fRxVelExpected := 14.488426788082032,
+ fRyVelExpected := 30.882247904254346,
+ fRzVelExpected := 15.374402544052412,
+ fVxVelExpected := stMotionStageVx.fVelocity,
+ fVyVelExpected := stMotionStageVy.fVelocity,
+ fVzVelExpected := stMotionStageVz.fVelocity,
+ fRxAccExpected := 0.724421339404102 * 1e2,
+ fRyAccExpected := 1.544112395212718 * 1e2,
+ fRzAccExpected := 0.768720127202621 * 1e2,
+ fVxAccExpected := stMotionStageVx.fAcceleration,
+ fVyAccExpected := stMotionStageVy.fAcceleration,
+ fVzAccExpected := stMotionStageVz.fAcceleration
+ );
+
+ TEST_FINISHED();
+
+ tonTimeout(IN := FALSE);
+
+ nTestID := nTestID + 1;
+END_IF
+
+fbMotionStageRx(stMotionStage := stMotionStageRx);
+fbMotionStageRy(stMotionStage := stMotionStageRy);
+fbMotionStageRz(stMotionStage := stMotionStageRz);
+
+fbMotionStageVx(stMotionStage := stMotionStageVx);
+fbMotionStageVy(stMotionStage := stMotionStageVy);
+fbMotionStageVz(stMotionStage := stMotionStageVz);
+
+nPositionCountsVx := LREAL_TO_UDINT((fbMotionVirtualFrame.fbVirtActPositionVec3.x + 100.0) * 1e6);
+nPositionCountsVy := LREAL_TO_UDINT((fbMotionVirtualFrame.fbVirtActPositionVec3.y + 100.0) * 1e6);
+nPositionCountsVz := LREAL_TO_UDINT((fbMotionVirtualFrame.fbVirtActPositionVec3.z + 100.0) * 1e6);
+]]>
+
+
+
+
+
+ nTestIDAssigner OR NOT tonStart.Q THEN
+ RETURN;
+END_IF
+
+tonTimeout(IN := TRUE, PT := T#3s);
+
+IF NOT bInit THEN
+ bInit := InitMotors();
+END_IF
+
+IF bInit THEN
+ stMotionStageVy.fPosition := 30.0;
+ stMotionStageVy.fVelocity := stMotionStageVy.fPosition * 2.0 / 3.0;
+ stMotionStageVy.fAcceleration := stMotionStageVy.fVelocity * 5.0;
+ rtMoveCmdOnce(CLK := TRUE);
+ stMotionStageVy.bMoveCmd := rtMoveCmdOnce.Q;
+END_IF
+
+fbMotionVirtualFrame(
+ stMotionStageRx := stMotionStageRx,
+ stMotionStageRy := stMotionStageRy,
+ stMotionStageRz := stMotionStageRz,
+ stMotionStageVx := stMotionStageVx,
+ stMotionStageVy := stMotionStageVy,
+ stMotionStageVz := stMotionStageVz,
+ bEnable := TRUE,
+ fAlphaDegrees := -22.21,
+ fBetaDegrees := -20.7,
+ fGammaDegrees := 3.793,
+ sOrder := 'XYZ',
+ bBaseToNew := FALSE,
+ fbVirtActPositionVec3 => ,
+ fbVirtActVelocityVec3 => ,
+ fbVirtActAcceleraVec3 =>
+);
+
+IF stMotionStageVy.bBusy THEN
+ bBusyReached := TRUE;
+END_IF
+
+IF bBusyReached AND NOT stMotionStageVy.bBusy THEN
+ bComplete := TRUE;
+END_IF
+
+IF (bComplete AND
+ NOT stMotionStageVx.bBusy AND
+ NOT stMotionStageVy.bBusy AND
+ NOT stMotionStageVz.bBusy AND
+ NOT stMotionStageRx.bBusy AND
+ NOT stMotionStageRy.bBusy AND
+ NOT stMotionStageRz.bBusy)
+ OR tonTimeout.Q THEN
+
+ AssertNoErrors();
+
+ AssertPosVelAccCorrect(
+ fDelta := fDelta,
+ fRxPosExpected := 5.836964390001455,
+ fRyPosExpected := 27.448135465863341,
+ fRzPosExpected := 10.608001987060069,
+ fVxPosExpected := 0.0,
+ fVyPosExpected := stMotionStageVy.fPosition,
+ fVzPosExpected := 0.0,
+ fRxVelExpected := 5.836964390001455 * 2.0 / 3.0,
+ fRyVelExpected := 27.448135465863341 * 2.0 / 3.0,
+ fRzVelExpected := 10.608001987060069 * 2.0 / 3.0,
+ fVxVelExpected := 0.0,
+ fVyVelExpected := stMotionStageVy.fVelocity,
+ fVzVelExpected := 0.0,
+ fRxAccExpected := 5.836964390001455 * 2.0 / 3.0 * 5.0,
+ fRyAccExpected := 27.448135465863341 * 2.0 / 3.0 * 5.0,
+ fRzAccExpected := 10.608001987060069 * 2.0 / 3.0 * 5.0,
+ fVxAccExpected := 0.0,
+ fVyAccExpected := stMotionStageVy.fAcceleration,
+ fVzAccExpected := 0.0
+ );
+
+ TEST_FINISHED();
+
+ tonTimeout(IN := FALSE);
+
+ nTestID := nTestID + 1;
+END_IF
+
+fbMotionStageRx(stMotionStage := stMotionStageRx);
+fbMotionStageRy(stMotionStage := stMotionStageRy);
+fbMotionStageRz(stMotionStage := stMotionStageRz);
+
+fbMotionStageVx(stMotionStage := stMotionStageVx);
+fbMotionStageVy(stMotionStage := stMotionStageVy);
+fbMotionStageVz(stMotionStage := stMotionStageVz);
+
nPositionCountsVx := LREAL_TO_UDINT((fbMotionVirtualFrame.fbVirtActPositionVec3.x + 100.0) * 1e6);
nPositionCountsVy := LREAL_TO_UDINT((fbMotionVirtualFrame.fbVirtActPositionVec3.y + 100.0) * 1e6);
nPositionCountsVz := LREAL_TO_UDINT((fbMotionVirtualFrame.fbVirtActPositionVec3.z + 100.0) * 1e6);
diff --git a/lcls-twincat-motion/_Config/PLC/Library.xti b/lcls-twincat-motion/_Config/PLC/Library.xti
index e028fbe..5f36fae 100644
--- a/lcls-twincat-motion/_Config/PLC/Library.xti
+++ b/lcls-twincat-motion/_Config/PLC/Library.xti
@@ -983,7 +983,7 @@ External Setpoint Generation:
-
+
Library Instance
{08500001-0000-0000-F000-000000000064}
@@ -1451,105 +1451,105 @@ External Setpoint Generation:
PLCTONC_AXIS_REF
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestAbove_4247__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestAbove_4272__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestAt_4248__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestAt_4273__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestBelow_4249__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestBelow_4274__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestBoundsAfterFallingIntoUnknownState_4250__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestBoundsAfterFallingIntoUnknownState_4275__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestDisabled_4251__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestDisabled_4276__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestInvalid_4252__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestInvalid_4277__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestLimits_4253__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestLimits_4278__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestMoveAt_4254__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestMoveAt_4279__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestMoveTo_4255__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestMoveTo_4280__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4234__TestNotUpdated_4256__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnables_Test.FB_StatePMPSEnables_Test_4259__TestNotUpdated_4281__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].Axis.PlcToNc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].Axis.PlcToNc
PLCTONC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].bBrakeRelease
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].bBrakeRelease
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].Axis.PlcToNc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].Axis.PlcToNc
PLCTONC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].bBrakeRelease
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].bBrakeRelease
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].Axis.PlcToNc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].Axis.PlcToNc
PLCTONC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].bBrakeRelease
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].bBrakeRelease
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].Axis.PlcToNc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].Axis.PlcToNc
PLCTONC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].bBrakeRelease
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].bBrakeRelease
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].Axis.PlcToNc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].Axis.PlcToNc
PLCTONC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].bBrakeRelease
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].bBrakeRelease
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].Axis.PlcToNc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].Axis.PlcToNc
PLCTONC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].bBrakeRelease
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].bBrakeRelease
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__fbFFHWO.q_xFastFaultOut
BOOL
@@ -1580,15 +1580,15 @@ External Setpoint Generation:
BOOL
- PRG_TEST.fb_StatePMPSEnablesND_Test.FB_StatePMPSEnablesND_Test_4306__TestCount_4319__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnablesND_Test.FB_StatePMPSEnablesND_Test_4331__TestCount_4344__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnablesND_Test.FB_StatePMPSEnablesND_Test_4306__TestMaint_4320__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnablesND_Test.FB_StatePMPSEnablesND_Test_4331__TestMaint_4345__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_StatePMPSEnablesND_Test.FB_StatePMPSEnablesND_Test_4306__TestUnderOverGoals_4321__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_StatePMPSEnablesND_Test.FB_StatePMPSEnablesND_Test_4331__TestUnderOverGoals_4346__fbFFHWO.q_xFastFaultOut
BOOL
@@ -1712,27 +1712,27 @@ External Setpoint Generation:
BOOL
- PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4338__Test1D_4352__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4363__Test1D_4377__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4338__Test2D_4353__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4363__Test2D_4378__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4338__Test3D_4354__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4363__Test3D_4379__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4338__TestStartup1D_4355__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4363__TestStartup1D_4380__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4338__TestStartup2D_4356__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4363__TestStartup2D_4381__fbFFHWO.q_xFastFaultOut
BOOL
- PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4338__TestStartup3D_4357__fbFFHWO.q_xFastFaultOut
+ PRG_TEST.fb_PositionStatePMPSND_Test.FB_PositionStatePMPSND_Test_4363__TestStartup3D_4382__fbFFHWO.q_xFastFaultOut
BOOL
@@ -1749,29 +1749,29 @@ External Setpoint Generation:
PLCTONC_AXIS_REF
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].Axis.PlcToNc
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].Axis.PlcToNc
PLCTONC_AXIS_REF
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].bBrakeRelease
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].bBrakeRelease
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].Axis.PlcToNc
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].Axis.PlcToNc
PLCTONC_AXIS_REF
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].bBrakeRelease
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].bBrakeRelease
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].Axis.PlcToNc
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].Axis.PlcToNc
PLCTONC_AXIS_REF
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].bBrakeRelease
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].bBrakeRelease
BOOL
@@ -3267,236 +3267,236 @@ External Setpoint Generation:
NCTOPLC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].Axis.NcToPlc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].Axis.NcToPlc
NCTOPLC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].bLimitForwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].bLimitForwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].bLimitBackwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].bLimitBackwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].bHome
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].bHome
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].bHardwareEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].bHardwareEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].nRawEncoderULINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].nRawEncoderULINT
ULINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].nRawEncoderUINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].nRawEncoderUINT
UINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[1].nRawEncoderINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[1].nRawEncoderINT
INT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].Axis.NcToPlc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].Axis.NcToPlc
NCTOPLC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].bLimitForwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].bLimitForwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].bLimitBackwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].bLimitBackwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].bHome
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].bHome
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].bHardwareEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].bHardwareEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].nRawEncoderULINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].nRawEncoderULINT
ULINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].nRawEncoderUINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].nRawEncoderUINT
UINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[2].nRawEncoderINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[2].nRawEncoderINT
INT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].Axis.NcToPlc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].Axis.NcToPlc
NCTOPLC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].bLimitForwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].bLimitForwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].bLimitBackwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].bLimitBackwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].bHome
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].bHome
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].bHardwareEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].bHardwareEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].nRawEncoderULINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].nRawEncoderULINT
ULINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].nRawEncoderUINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].nRawEncoderUINT
UINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestBlankCount_4288__astMotionStage[3].nRawEncoderINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestBlankCount_4313__astMotionStage[3].nRawEncoderINT
INT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].Axis.NcToPlc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].Axis.NcToPlc
NCTOPLC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].bLimitForwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].bLimitForwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].bLimitBackwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].bLimitBackwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].bHome
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].bHome
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].bHardwareEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].bHardwareEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].nRawEncoderULINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].nRawEncoderULINT
ULINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].nRawEncoderUINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].nRawEncoderUINT
UINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[1].nRawEncoderINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[1].nRawEncoderINT
INT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].Axis.NcToPlc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].Axis.NcToPlc
NCTOPLC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].bLimitForwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].bLimitForwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].bLimitBackwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].bLimitBackwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].bHome
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].bHome
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].bHardwareEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].bHardwareEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].nRawEncoderULINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].nRawEncoderULINT
ULINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].nRawEncoderUINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].nRawEncoderUINT
UINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[2].nRawEncoderINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[2].nRawEncoderINT
INT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].Axis.NcToPlc
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].Axis.NcToPlc
NCTOPLC_AXIS_REF
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].bLimitForwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].bLimitForwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].bLimitBackwardEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].bLimitBackwardEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].bHome
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].bHome
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].bHardwareEnable
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].bHardwareEnable
BOOL
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].nRawEncoderULINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].nRawEncoderULINT
ULINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].nRawEncoderUINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].nRawEncoderUINT
UINT
- PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4275__TestTwoMotorEncError_4289__astMotionStage[3].nRawEncoderINT
+ PRG_TEST.fb_PerMotorFFOND_Test.FB_PerMotorFFOND_Test_4300__TestTwoMotorEncError_4314__astMotionStage[3].nRawEncoderINT
INT
@@ -4141,119 +4141,119 @@ External Setpoint Generation:
NCTOPLC_AXIS_REF
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].Axis.NcToPlc
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].Axis.NcToPlc
NCTOPLC_AXIS_REF
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].bLimitForwardEnable
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].bLimitForwardEnable
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].bLimitBackwardEnable
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].bLimitBackwardEnable
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].bHome
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].bHome
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].bHardwareEnable
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].bHardwareEnable
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].nRawEncoderULINT
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].nRawEncoderULINT
ULINT
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].nRawEncoderUINT
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].nRawEncoderUINT
UINT
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[1].nRawEncoderINT
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[1].nRawEncoderINT
INT
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].Axis.NcToPlc
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].Axis.NcToPlc
NCTOPLC_AXIS_REF
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].bLimitForwardEnable
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].bLimitForwardEnable
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].bLimitBackwardEnable
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].bLimitBackwardEnable
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].bHome
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].bHome
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].bHardwareEnable
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].bHardwareEnable
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].nRawEncoderULINT
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].nRawEncoderULINT
ULINT
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].nRawEncoderUINT
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].nRawEncoderUINT
UINT
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[2].nRawEncoderINT
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[2].nRawEncoderINT
INT
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].Axis.NcToPlc
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].Axis.NcToPlc
NCTOPLC_AXIS_REF
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].bLimitForwardEnable
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].bLimitForwardEnable
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].bLimitBackwardEnable
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].bLimitBackwardEnable
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].bHome
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].bHome
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].bHardwareEnable
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].bHardwareEnable
BOOL
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].nRawEncoderULINT
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].nRawEncoderULINT
ULINT
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].nRawEncoderUINT
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].nRawEncoderUINT
UINT
- PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4465__PassiveReinit_4478__astMotionStageMax[3].nRawEncoderINT
+ PRG_TEST.fb_TestStateInitTiming.FB_TestStateInitTiming_4490__PassiveReinit_4503__astMotionStageMax[3].nRawEncoderINT
INT