From 6e723594b562583b6eb6e7caa98258d6bac580e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 9 Dec 2019 10:30:41 +0100 Subject: [PATCH 01/14] bitbucket-pipelines.yml: Don't run git submodule The command `git submodule update --init` already shows us the versions of the submodules. There is no need to run `git submodule` after that - renove it. --- bitbucket-pipelines.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml index d47cd1d..873f48c 100644 --- a/bitbucket-pipelines.yml +++ b/bitbucket-pipelines.yml @@ -6,6 +6,5 @@ pipelines: - step: script: - git submodule update --init - - git submodule - python twincat_version_manager.py - python check_fix_white_space.py From a57ae08ebe526bf7ac1233f9dabae839414b0e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 9 Dec 2019 11:00:50 +0100 Subject: [PATCH 02/14] check_fix_white_space.py: Hint the user about --fix When the script detects whitespace damage, hint the user that the same script can fix it. --- check_fix_white_space.py | 1 + 1 file changed, 1 insertion(+) diff --git a/check_fix_white_space.py b/check_fix_white_space.py index cf6fe3c..c03a737 100755 --- a/check_fix_white_space.py +++ b/check_fix_white_space.py @@ -90,6 +90,7 @@ if __name__ == "__main__": for file in incorrect_files: print("ERROR: '{}' has white space damage".format(file)) if incorrect_files: + print('run %s --fix' % sys.argv[0]) exit(1) except IOError as e: print(e) # Likely no files found From 608f6c03357cf2b0446cfcd53a6b990844965cfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 9 Dec 2019 11:10:07 +0100 Subject: [PATCH 03/14] check_fix_white_space.py: Tell user about TAB and/or trailing WS Make the output of the script more descriptive: Tell user what was wrong, either TAB or trailing WS (or both) --- check_fix_white_space.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/check_fix_white_space.py b/check_fix_white_space.py index c03a737..854e5e2 100755 --- a/check_fix_white_space.py +++ b/check_fix_white_space.py @@ -26,6 +26,8 @@ def fix_white_space(debug, fix_files): for pathname in found_files: dirty = False + had_TAB = False + had_trailing_WS = False new_lines = [] if debug >= 1: print("tab_with=%d pathname=%s" % (tab_width, pathname)) @@ -41,8 +43,16 @@ def fix_white_space(debug, fix_files): had_crlf = 1 # LF # Convert all TAB into SPACE new_line = old_line.expandtabs(tabsize=tab_width) - # Strip of all trailing white space, including the CRLF - new_line = new_line.rstrip("\r\n ") + if new_line != old_line: + had_TAB = True + # Strip the CRLF + new_line = new_line.rstrip("\r\n") + # Strip trailing WS + tmp_line = new_line.rstrip(" ") + if tmp_line != new_line: + had_trailing_WS = True + new_line = tmp_line + if had_crlf == 2: new_line = new_line + '\r\n' elif had_crlf == 1: @@ -61,7 +71,12 @@ def fix_white_space(debug, fix_files): if debug >= 1: print("pathname=%s dirty=%d" % (pathname, dirty)) if dirty: - incorrect_files[pathname] = True + if had_TAB and had_trailing_WS: + incorrect_files[pathname] = 'has white space damage' + elif had_TAB: + incorrect_files[pathname] = 'has TAB' + elif had_trailing_WS: + incorrect_files[pathname] = 'has trailing whitespace' if fix_files: file = open(pathname, 'w', newline='', encoding="iso-8859-1") file.writelines(new_lines) @@ -88,7 +103,8 @@ if __name__ == "__main__": incorrect_files = fix_white_space(debug, fix_files) if not fix_files: for file in incorrect_files: - print("ERROR: '{}' has white space damage".format(file)) + message = incorrect_files[file] + print("ERROR: '{}' {}".format(file,message)) if incorrect_files: print('run %s --fix' % sys.argv[0]) exit(1) From 3edb9fd098fdd09002d60594147ba47790179f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20B=C3=B6gershausen?= Date: Mon, 9 Dec 2019 11:21:05 +0100 Subject: [PATCH 04/14] check_fix_white_space.py: Fix whitespace damage --- check_fix_white_space.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/check_fix_white_space.py b/check_fix_white_space.py index 854e5e2..6597e58 100755 --- a/check_fix_white_space.py +++ b/check_fix_white_space.py @@ -44,7 +44,7 @@ def fix_white_space(debug, fix_files): # Convert all TAB into SPACE new_line = old_line.expandtabs(tabsize=tab_width) if new_line != old_line: - had_TAB = True + had_TAB = True # Strip the CRLF new_line = new_line.rstrip("\r\n") # Strip trailing WS @@ -104,7 +104,7 @@ if __name__ == "__main__": if not fix_files: for file in incorrect_files: message = incorrect_files[file] - print("ERROR: '{}' {}".format(file,message)) + print("ERROR: '{}' {}".format(file,message)) if incorrect_files: print('run %s --fix' % sys.argv[0]) exit(1) From 3257c21d12bc5c8b26b7b8cab45797a857669250 Mon Sep 17 00:00:00 2001 From: aaronlong Date: Tue, 24 Dec 2019 10:29:00 +0000 Subject: [PATCH 05/14] Added tcUNIT, including helper functions and app test folder, to generic structure --- .../tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU | 22 ++ .../tcUNIT/common/FB_tcUNIT_common.TcPOU | 193 ++++++++++++++++++ .../tcUNIT/common/tcUNIT_GVL.TcGVL | 28 +++ .../tc_project_app/tc_project_app.tmcRefac | 20 ++ 4 files changed, 263 insertions(+) create mode 100644 solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU create mode 100644 solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU create mode 100644 solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL create mode 100644 solution/tc_project_app/tc_project_app.tmcRefac diff --git a/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU b/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU new file mode 100644 index 0000000..b4bdf8c --- /dev/null +++ b/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU b/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU new file mode 100644 index 0000000..3a5cc14 --- /dev/null +++ b/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL b/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL new file mode 100644 index 0000000..3b89d11 --- /dev/null +++ b/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/tc_project_app.tmcRefac b/solution/tc_project_app/tc_project_app.tmcRefac new file mode 100644 index 0000000..595f28a --- /dev/null +++ b/solution/tc_project_app/tc_project_app.tmcRefac @@ -0,0 +1,20 @@ + + + + + TCUNIT_RUN + tcUNIT_STD_LIB_1 + tcUNIT_APP_RUN + + + PrepareMove + motionStrategy + eMotionStrategy + + + TCUNIT_STD_LIB_1 + tcUNIT_STD_LIB_1 + tcUNIT_APP_RUN + + + \ No newline at end of file From 7c1c9eadcf82af4f54a58cfbac3adf57caec1214 Mon Sep 17 00:00:00 2001 From: aaronlong Date: Tue, 24 Dec 2019 10:37:06 +0000 Subject: [PATCH 06/14] Removed trailing CR --- .../tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU | 7 +--- .../tcUNIT/common/FB_tcUNIT_common.TcPOU | 39 ++++++------------- .../tcUNIT/common/tcUNIT_GVL.TcGVL | 3 +- 3 files changed, 15 insertions(+), 34 deletions(-) diff --git a/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU b/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU index b4bdf8c..bfdf84b 100644 --- a/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU +++ b/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU @@ -8,15 +8,12 @@ PROGRAM tcUNIT_APP_RUN VAR (* Declare standard library POU tests to be run E.g. fbMoveNonLinearSlits: FB_MoveNonLinearSlits_Test; *) -END_VAR -]]> +END_VAR]]> - + - \ No newline at end of file diff --git a/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU b/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU index 3a5cc14..844227f 100644 --- a/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU +++ b/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU @@ -5,8 +5,7 @@ FUNCTION_BLOCK FB_tcUNIT_common VAR -END_VAR -]]> +END_VAR]]> @@ -18,26 +17,22 @@ END_VAR VAR i: INT := 0; -END_VAR -]]> +END_VAR]]> +END_WHILE]]> +END_VAR]]> +Cycle(1); // Cycle the PLC to ensure the values have been set and results can be taken]]> @@ -48,8 +43,7 @@ END_VAR VAR_INPUT MotionStrategy: MotionFunctions; // The motion strategy to be used in the move -END_VAR -]]> +END_VAR]]> +Cycle(1); // Cycle the PLC to ensure the values have been set and results can be taken]]> @@ -86,8 +79,7 @@ VAR_INPUT fTargetDeceleration: LREAL; fTargetPosition: LREAL; eMotionStrategy: MotionFunctions; -END_VAR -]]> +END_VAR]]> +Cycle(1); // Cycle the PLC to ensure the values have been set and results can be taken]]> +END_VAR]]> +Cycle(1); // Cycle the PLC to ensure the values have been set and results can be taken]]> @@ -144,13 +133,12 @@ Cycle(1); // Cycle the PLC to ensure the values have been set and results can - + - @@ -163,14 +151,12 @@ Cycle(1); // Cycle the PLC to ensure the values have been set and results can - - @@ -187,7 +173,6 @@ Cycle(1); // Cycle the PLC to ensure the values have been set and results can - \ No newline at end of file diff --git a/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL b/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL index 3b89d11..ed05340 100644 --- a/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL +++ b/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL @@ -22,7 +22,6 @@ END_VAR VAR_GLOBAL iAxis: INT; -END_VAR -]]> +END_VAR]]> \ No newline at end of file From 30c80940c724060b4073e6a9406412a53bdaa600 Mon Sep 17 00:00:00 2001 From: aaronlong Date: Tue, 24 Dec 2019 11:07:12 +0000 Subject: [PATCH 07/14] Renamed tcUNIT folder to Test --- .../{tcUNIT => Test}/app_tests/tcUNIT_APP_RUN.TcPOU | 0 .../tc_project_app/{tcUNIT => Test}/common/FB_tcUNIT_common.TcPOU | 0 solution/tc_project_app/{tcUNIT => Test}/common/tcUNIT_GVL.TcGVL | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename solution/tc_project_app/{tcUNIT => Test}/app_tests/tcUNIT_APP_RUN.TcPOU (100%) rename solution/tc_project_app/{tcUNIT => Test}/common/FB_tcUNIT_common.TcPOU (100%) rename solution/tc_project_app/{tcUNIT => Test}/common/tcUNIT_GVL.TcGVL (100%) diff --git a/solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU b/solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU similarity index 100% rename from solution/tc_project_app/tcUNIT/app_tests/tcUNIT_APP_RUN.TcPOU rename to solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU diff --git a/solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU b/solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU similarity index 100% rename from solution/tc_project_app/tcUNIT/common/FB_tcUNIT_common.TcPOU rename to solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU diff --git a/solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL b/solution/tc_project_app/Test/common/tcUNIT_GVL.TcGVL similarity index 100% rename from solution/tc_project_app/tcUNIT/common/tcUNIT_GVL.TcGVL rename to solution/tc_project_app/Test/common/tcUNIT_GVL.TcGVL From f0037bcaba4689ae1588f83b9b47414c478d20b9 Mon Sep 17 00:00:00 2001 From: aaronlong Date: Tue, 24 Dec 2019 11:36:25 +0000 Subject: [PATCH 08/14] Added std_lib unit tests --- .../_Config/NC/Axes/tcUNIT_virtual_axis.xti | 1525 +++++++++++++++++ solution/_Config/NC/NC.xti | 21 + solution/solution.tsproj | 5 +- solution/tc_project_app/PlcTask.TcTTO | 3 + .../standard_library_tests/FB_Axis_TEST.TcPOU | 230 +++ .../tcUNIT_STD_LIB_RUN.TcPOU | 17 + .../tc_project_app/tc_project_app.plcproj | 25 +- .../tc_project_app/tc_project_app.tmcRefac | 20 - 8 files changed, 1824 insertions(+), 22 deletions(-) create mode 100644 solution/_Config/NC/Axes/tcUNIT_virtual_axis.xti create mode 100644 solution/_Config/NC/NC.xti create mode 100644 solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU create mode 100644 solution/tc_project_app/Test/standard_library_tests/tcUNIT_STD_LIB_RUN.TcPOU delete mode 100644 solution/tc_project_app/tc_project_app.tmcRefac diff --git a/solution/_Config/NC/Axes/tcUNIT_virtual_axis.xti b/solution/_Config/NC/Axes/tcUNIT_virtual_axis.xti new file mode 100644 index 0000000..87ec62b --- /dev/null +++ b/solution/_Config/NC/Axes/tcUNIT_virtual_axis.xti @@ -0,0 +1,1525 @@ + + + + + UINTARR2 + 32 + UINT + + 0 + 2 + + + [%u, %u] + [0] + [1] + + + 0x%08x [%u, %u] + . + [0] + [1] + + + 0x%08x (%u) + . + . + + + + NCENCODERSTRUCT_IN2B + 320 + + nDataIn1 + UINTARR2 + 32 + 0 + + + nDataIn2 + UINTARR2 + 32 + 32 + + + nState1 + USINT + 8 + 64 + + + nState2 + USINT + 8 + 72 + + + nState3 + USINT + 8 + 80 + + + nState4 + USINT + + 8 + 88 + + + nDataIn3 + UINTARR2 + 32 + 96 + + + nDataIn4 + UINTARR2 + 32 + 128 + + + nDataIn5 + UINTARR2 + 32 + 160 + + + nDataIn6 + UINTARR2 + 32 + 192 + + + nState5 + USINT + 8 + 224 + + + nState6 + USINT + 8 + 232 + + + nState7 + USINT + 8 + 240 + + + nState8 + USINT + 8 + 248 + + + nDcInputTime + DINT + 32 + 256 + + + nDataIn7 + UINTARR2 + 32 + 288 + + + + NCENCODERSTRUCT_IN + + 96 + + + + + + NCENCODERSTRUCT_OUT2 + 320 + + nDataOut1 + UINTARR2 + 32 + 0 + + + nDataOut2 + UINTARR2 + 32 + 32 + + + nCtrl1 + USINT + 8 + 64 + + + nCtrl2 + USINT + 8 + 72 + + + nCtrl3 + USINT + 8 + 80 + + + nCtrl4 + USINT + 8 + 88 + + + nDataOut3 + UINTARR2 + 32 + 96 + + + nDataOut4 + UINTARR2 + 32 + 128 + + + nDataOut5 + UINTARR2 + 32 + 160 + + + nDataOut6 + UINTARR2 + 32 + 192 + + + nCtrl5 + USINT + 8 + 224 + + + nCtrl6 + USINT + 8 + 232 + + + nCtrl7 + USINT + 8 + 240 + + + nCtrl8 + USINT + 8 + 248 + + + + NCENCODERSTRUCT_OUT + + 96 + + + + + + NCDRIVESTRUCT_IN2 + 320 + + nDataIn1 + UINTARR2 + 32 + 0 + + + nDataIn2 + UINTARR2 + 32 + 32 + + + nState1 + USINT + 8 + 64 + + + nState2 + USINT + 8 + 72 + + + nState3 + USINT + 8 + 80 + + + nState4 + USINT + + 8 + 88 + + + nDataIn3 + UINTARR2 + 32 + 96 + + + nDataIn4 + UINTARR2 + 32 + 128 + + + nDataIn5 + UINTARR2 + 32 + 160 + + + nDataIn6 + UINTARR2 + 32 + 192 + + + nState5 + USINT + 8 + 224 + + + nState6 + USINT + 8 + 232 + + + nState7 + USINT + 8 + 240 + + + nState8 + USINT + 8 + 248 + + + nDcOutputTime + DINT + 32 + 256 + + + + NCDRIVESTRUCT_IN + + 96 + + + + + + NCDRIVESTRUCT_OUT2 + 320 + + nDataOut1 + UINTARR2 + 32 + 0 + + + nDataOut2 + UINTARR2 + 32 + 32 + + + nCtrl1 + USINT + 8 + 64 + + + nCtrl2 + USINT + 8 + 72 + + + nCtrl3 + USINT + 8 + 80 + + + nCtrl4 + USINT + 8 + 88 + + + nDataOut3 + UINTARR2 + 32 + 96 + + + nDataOut4 + UINTARR2 + 32 + 128 + + + nDataOut5 + UINTARR2 + 32 + 160 + + + nDataOut6 + UINTARR2 + 32 + 192 + + + nCtrl5 + USINT + 8 + 224 + + + nCtrl6 + USINT + 8 + 232 + + + nCtrl7 + USINT + 8 + 240 + + + nCtrl8 + USINT + 8 + 248 + + + + NCDRIVESTRUCT_OUT + + 96 + + + + + + PLCTONC_AXIS_REF_CTRL + 32 + + Enable + BIT + 1 + 0 + + + FeedEnablePlus + BIT + 1 + 1 + + + FeedEnableMinus + BIT + 1 + 2 + + + HomingSensor + BIT + 1 + 5 + + + AcceptBlockedDrive + BIT + 1 + 8 + + + PlcDebugFlag + BIT + 1 + 30 + + + NcDebugFlag + BIT + 1 + 31 + + + %08x + + + 0x%08x + + + 16#%08X + + + + PLCTONC_AXIS_REF + 1024 + + ControlDWord + PLCTONC_AXIS_REF_CTRL + 32 + 0 + + + Override + UDINT + 32 + 32 + + + AxisModeRequest + UDINT + 32 + 64 + + + AxisModeDWord + UDINT + 32 + 96 + + + AxisModeLReal + LREAL + 64 + 128 + + + PositionCorrection + LREAL + 64 + 192 + + + ExtSetPos + LREAL + 64 + 256 + + + ExtSetVelo + LREAL + 64 + 320 + + + ExtSetAcc + LREAL + 64 + 384 + + + ExtSetDirection + DINT + 32 + 448 + + + ExtControllerOutput + LREAL + 64 + 512 + + + GearRatio1 + LREAL + 64 + 576 + + + GearRatio2 + LREAL + 64 + 640 + + + GearRatio3 + LREAL + 64 + 704 + + + GearRatio4 + LREAL + 64 + 768 + + + MapState + BOOL + 8 + 832 + + + PlcCycleControl + BYTE + 8 + 840 + + + PlcCycleCount + BYTE + 8 + 848 + + + + NcStructType + 1 + + + + + NCAXLESTRUCT_FROMPLC3 + + + + + NCTOPLC_AXIS_REF_STATE + 32 + + Operational + BIT + 1 + 0 + + + Homed + BIT + 1 + 1 + + + NotMoving + BIT + 1 + 2 + + + InPositionArea + BIT + 1 + 3 + + + InTargetPosition + BIT + 1 + 4 + + + Protected + BIT + 1 + 5 + + + ErrorPropagationDelayed + BIT + 1 + 6 + + + HasBeenStopped + BIT + 1 + 7 + + + HasJob + BIT + 1 + 8 + + + PositiveDirection + BIT + 1 + 9 + + + NegativeDirection + BIT + 1 + 10 + + + HomingBusy + BIT + 1 + 11 + + + ConstantVelocity + BIT + 1 + 12 + + + Compensating + BIT + 1 + 13 + + + ExtSetPointGenEnabled + BIT + 1 + 14 + + + PhasingActive + BIT + 1 + 15 + + + ExternalLatchValid + BIT + 1 + 16 + + + NewTargetPos + BIT + 1 + 17 + + + ContinuousMotion + BIT + 1 + 19 + + + ControlLoopClosed + BIT + 1 + 20 + + + CamTableQueued + BIT + 1 + 21 + + + CamDataQueued + BIT + 1 + 22 + + + CamScalingPending + BIT + 1 + 23 + + + CmdBuffered + BIT + 1 + 24 + + + PTPmode + BIT + 1 + 25 + + + SoftLimitMinExceeded + BIT + 1 + 26 + + + SoftLimitMaxExceeded + BIT + 1 + 27 + + + DriveDeviceError + BIT + 1 + 28 + + + MotionCommandsLocked + BIT + 1 + 29 + + + IoDataInvalid + BIT + 1 + 30 + + + Error + BIT + 1 + 31 + + + %08x + + + 0x%08x + + + 16#%08X + + + + NCTOPLC_AXIS_REF_OPMODE + 32 + + OpModePosAreaMonitoring + BIT + 1 + 0 + + + OpModeTargetPosMonitoring + BIT + 1 + 1 + + + OpModeLoop + BIT + 1 + 2 + + + OpModeMotionMonitoring + BIT + 1 + 3 + + + OpModePEHTimeMonitoring + BIT + 1 + 4 + + + OpModeBacklashCompensation + BIT + 1 + 5 + + + OpModeDelayedErrorReaction + BIT + 1 + 6 + + + OpModeModulo + BIT + 1 + 7 + + + OpModeSimulationAxis + BIT + 1 + 8 + + + OpModePosLagMonitoring + BIT + 1 + 16 + + + OpModeVeloLagMonitoring + BIT + 1 + 17 + + + OpModeSoftLimitMinMonitoring + BIT + 1 + 18 + + + OpModeSoftLimitMaxMonitoring + BIT + 1 + 19 + + + OpModePosCorrection + BIT + 1 + 20 + + + OpModeAllowSlaveCommands + BIT + 1 + 21 + + + OpModeAllowExtSetAxisCommands + BIT + 1 + 22 + + + ApplicationRequest + BIT + 1 + 23 + + + + NCTOPLC_AXIS_REF_STATE2_FLAGS + 32 + + AvoidingCollision + BIT + 1 + 0 + + + %08x + + + 0x%08x + + + 16#%08X + + + + NCTOPLC_AXIS_REF_STATE2 + 32 + + Value + DWORD + 32 + 0 + + + Flags + NCTOPLC_AXIS_REF_STATE2_FLAGS + 32 + 0 + + + %08x + + + 0x%08x + + + 16#%08X + + + + NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE + 8 + + CamActivationPending + BIT + 1 + 0 + + + CamDeactivationPending + BIT + 1 + 1 + + + CamActive + BIT + 1 + 2 + + + CamDataQueued + BIT + 1 + 6 + + + CamScalingPending + BIT + 1 + 7 + + + + UINTARR8 + 128 + UINT + + 0 + 8 + + + + NCTOPLC_AXIS_REF + 2048 + + StateDWord + NCTOPLC_AXIS_REF_STATE + 32 + 0 + + + ErrorCode + UDINT + 32 + 32 + + + AxisState + UDINT + + 32 + 64 + + + AxisModeConfirmation + UDINT + 32 + 96 + + + HomingState + UDINT + + 32 + 128 + + + CoupleState + UDINT + + 32 + 160 + + + SvbEntries + UDINT + 32 + 192 + + + SafEntries + UDINT + 32 + 224 + + + AxisId + UDINT + 32 + 256 + + + OpModeDWord + NCTOPLC_AXIS_REF_OPMODE + 32 + 288 + + + ActPos + LREAL + 64 + 320 + + + ModuloActPos + LREAL + 64 + 384 + + + ActiveControlLoopIndex + UINT + 16 + 448 + + + ControlLoopIndex + UINT + 16 + 464 + + + ModuloActTurns + DINT + 32 + 480 + + + ActVelo + LREAL + 64 + 512 + + + PosDiff + LREAL + 64 + 576 + + + SetPos + LREAL + 64 + 640 + + + SetVelo + LREAL + 64 + 704 + + + SetAcc + LREAL + 64 + 768 + + + TargetPos + LREAL + 64 + 832 + + + ModuloSetPos + LREAL + 64 + 896 + + + ModuloSetTurns + DINT + 32 + 960 + + + CmdNo + UINT + 16 + 992 + + + CmdState + UINT + 16 + 1008 + + + SetJerk + LREAL + 64 + 1024 + + + SetTorque + LREAL + 64 + 1088 + + + ActTorque + LREAL + 64 + 1152 + + + StateDWord2 + NCTOPLC_AXIS_REF_STATE2 + 32 + 1216 + + + StateDWord3 + DWORD + 32 + 1248 + + + TouchProbeState + DWORD + 32 + 1280 + + + TouchProbeCounter + DWORD + 32 + 1312 + + + CamCouplingState + NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE + + 0 + 8 + + 64 + 1344 + + + CamCouplingTableID + UINTARR8 + 128 + 1408 + + + ActTorqueDerivative + LREAL + 64 + 1536 + + + SetTorqueDerivative + LREAL + 64 + 1600 + + + ActPosWithoutPosCorrection + LREAL + 64 + 1792 + + + ActAcc + LREAL + 64 + 1856 + + + DcTimeStamp + UDINT + 32 + 1920 + + + + NcStructType + 2 + + + + + NCAXLESTRUCT_TOPLC + + + NCAXLESTRUCT_TOPLC2 + + + NCAXLESTRUCT_TOPLC3 + + + NCAXLESTRUCT_TOPLC4 + + + + + + + + + + + + + + + __FILENAME__ + + + + + + Inputs + + In + NCENCODERSTRUCT_IN2B + 1024 + + nDataIn1 + + + nDataIn2 + + + nState4 + + + + nDataIn3 + + + nDataIn4 + + + nDataIn5 + + + nDataIn6 + + + nDataIn7 + + + + + Outputs + + Out + NCENCODERSTRUCT_OUT2 + 2048 + + nDataOut1 + + + nDataOut2 + + + nDataOut3 + + + nDataOut4 + + + nDataOut5 + + + nDataOut6 + + + + + + + + + + Inputs + + In + NCDRIVESTRUCT_IN2 + 1344 + + nDataIn1 + + + nDataIn2 + + + nState4 + + + + nDataIn3 + + + nDataIn4 + + + nDataIn5 + + + nDataIn6 + + + + + Outputs + + Out + NCDRIVESTRUCT_OUT2 + 2368 + + nDataOut1 + + + nDataOut2 + + + nCtrl2 + + + + nCtrl3 + + + + nDataOut3 + + + nDataOut4 + + + nDataOut5 + + + nDataOut6 + + + + + + + + + + + Inputs + + FromPlc + PLCTONC_AXIS_REF + + + + Outputs + + ToPlc + NCTOPLC_AXIS_REF + + AxisState + + + + HomingState + + + + CoupleState + + + + + + diff --git a/solution/_Config/NC/NC.xti b/solution/_Config/NC/NC.xti new file mode 100644 index 0000000..2c8f8d7 --- /dev/null +++ b/solution/_Config/NC/NC.xti @@ -0,0 +1,21 @@ + + + + + NC-Task 1 SAF + + Inputs + + + Outputs + + + Image + + + + NC-Task 1 SVB + + + + diff --git a/solution/solution.tsproj b/solution/solution.tsproj index f74cba4..8c3ec91 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -873,7 +873,7 @@ External Setpoint Generation: - + @@ -889,6 +889,9 @@ External Setpoint Generation: + + + diff --git a/solution/tc_project_app/PlcTask.TcTTO b/solution/tc_project_app/PlcTask.TcTTO index b5badec..3be8aea 100644 --- a/solution/tc_project_app/PlcTask.TcTTO +++ b/solution/tc_project_app/PlcTask.TcTTO @@ -7,6 +7,9 @@ MAIN + + tcUNIT_STD_LIB_RUN + {26d89752-95b4-4b52-80c0-c79242bc34d7} {137c4fd1-c794-4dee-a041-b4fea1d22866} {2478772d-357b-433f-886f-15340bef9bdf} diff --git a/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU b/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU new file mode 100644 index 0000000..59ff389 --- /dev/null +++ b/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/Test/standard_library_tests/tcUNIT_STD_LIB_RUN.TcPOU b/solution/tc_project_app/Test/standard_library_tests/tcUNIT_STD_LIB_RUN.TcPOU new file mode 100644 index 0000000..e7cb079 --- /dev/null +++ b/solution/tc_project_app/Test/standard_library_tests/tcUNIT_STD_LIB_RUN.TcPOU @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index b5d34ae..d880255 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -29,6 +29,15 @@ Code + + Code + + + Code + + + Code + Code @@ -229,6 +238,12 @@ Code + + Code + + + Code + Code @@ -236,6 +251,9 @@ + + + @@ -256,6 +274,7 @@ + @@ -334,6 +353,10 @@ Tc3_Module, * (Beckhoff Automation GmbH) Tc3_Module + + TcUnit, * (www.tcunit.org) + TcUnit + VisuDialogs, * (System) VisuDialogs @@ -346,7 +369,7 @@ - Tc2_MC2, 3.3.28.0 (Beckhoff Automation GmbH) + Tc2_MC2, * (Beckhoff Automation GmbH) diff --git a/solution/tc_project_app/tc_project_app.tmcRefac b/solution/tc_project_app/tc_project_app.tmcRefac deleted file mode 100644 index 595f28a..0000000 --- a/solution/tc_project_app/tc_project_app.tmcRefac +++ /dev/null @@ -1,20 +0,0 @@ - - - - - TCUNIT_RUN - tcUNIT_STD_LIB_1 - tcUNIT_APP_RUN - - - PrepareMove - motionStrategy - eMotionStrategy - - - TCUNIT_STD_LIB_1 - tcUNIT_STD_LIB_1 - tcUNIT_APP_RUN - - - \ No newline at end of file From 741d03da8d35fb1fe2efd7faee2eb693af2c3292 Mon Sep 17 00:00:00 2001 From: aaronlong Date: Wed, 19 Feb 2020 14:54:14 +0000 Subject: [PATCH 09/14] Test suite and examples for tc_mca_std_lib solution --- .../_Config/CNC/Axes/tcUNIT_virtual_axis.xti | 302 ++++ solution/_Config/CNC/CNC.xti | 573 +++++++ .../_Config/NC/Axes/tcUNIT_simulated_axis.xti | 1526 +++++++++++++++++ solution/_Config/NC/NC.xti | 1 + solution/solution.tsproj | 83 +- solution/tc_project_app/GVLs/GVL_APP.TcGVL | 2 +- solution/tc_project_app/POUs/MAIN.TcPOU | 2 - .../Test/common/FB_tcUNIT_common.TcPOU | 224 ++- .../Test/common/tcUNIT_GVL.TcGVL | 8 +- .../standard_library_tests/FB_Axis_TEST.TcPOU | 295 ++-- .../tc_project_app/tc_project_app.plcproj | 24 +- .../tc_project_app/tc_project_app.tmcRefac | 25 + 12 files changed, 2778 insertions(+), 287 deletions(-) create mode 100644 solution/_Config/CNC/Axes/tcUNIT_virtual_axis.xti create mode 100644 solution/_Config/CNC/CNC.xti create mode 100644 solution/_Config/NC/Axes/tcUNIT_simulated_axis.xti create mode 100644 solution/tc_project_app/tc_project_app.tmcRefac diff --git a/solution/_Config/CNC/Axes/tcUNIT_virtual_axis.xti b/solution/_Config/CNC/Axes/tcUNIT_virtual_axis.xti new file mode 100644 index 0000000..65dd9ce --- /dev/null +++ b/solution/_Config/CNC/Axes/tcUNIT_virtual_axis.xti @@ -0,0 +1,302 @@ + + + + __FILENAME__ + 171 + + Inputs + + + Outputs + + + + diff --git a/solution/_Config/CNC/CNC.xti b/solution/_Config/CNC/CNC.xti new file mode 100644 index 0000000..8e99e26 --- /dev/null +++ b/solution/_Config/CNC/CNC.xti @@ -0,0 +1,573 @@ + + + + CNC + + CNC-Task GEO + + + CNC-Task SDA + + + CNC-Task COM + + ].prg[ ] +# +# prg -> Program path +# log_nr -> logical program path number +# typ -> Programmpfadtyp ( 0x01 Main program path ) +# ( 0x02 Sub program path ) +# ( 0x03 Main- and sub program path ) +# +# prioritaet -> priority of the program path, +# (if there are multible program paths with the same type) +# +# additional program path, customer +pfad[0].prg[0] sub +pfad[0].log_nr[0] 1 # logical path number +pfad[0].typ[0] 0x07 # main- and subprogram path, MSG SAVE +pfad[0].prioritaet[0] 1 # priority +# +# program path for sub programs +pfad[0].prg[1] cycles +pfad[0].log_nr[1] 2 # logical path number +pfad[0].typ[1] 0x03 # main- and subprogram path +pfad[0].prioritaet[1] 2 # priority +# +# program path for cycles +pfad[0].prg[2] customer +pfad[0].log_nr[2] 3 # logical path number +pfad[0].typ[2] 0x03 # main- and subprogram path +pfad[0].prioritaet[2] 3 # priority +# +# ------------------------------------------------------------------------------------------------------ +# Do not change data below this line!!! +# Daten unterhalb dieser Zeile nicht aendern, teilweise werden durch +# den Systemmanager Aenderungen automatisch durchgefuehrt!!! +# ------------------------------------------------------------------------------------------------------ +# +# +kanal_anzahl 0 +ext_var_max 100 +# +# ---------------------------------------- +# Lists for configuration data +# ---------------------------------------- +listen ASCII +# +default_sda_mds tc_virtual_1\default_sda.lis +# +hand_mds tc_virtual_2\hand_mds.lis +# +konf_path . +# +default_achs_mds tc_virtual_3\default_mds.lis +zahl_mds 1 +achs_mds[0] tc_virtual_4\achsmds1.lis +# +zahl_kw 0 +# +Ende + +]]> + + + + + + + + diff --git a/solution/_Config/NC/Axes/tcUNIT_simulated_axis.xti b/solution/_Config/NC/Axes/tcUNIT_simulated_axis.xti new file mode 100644 index 0000000..6036e30 --- /dev/null +++ b/solution/_Config/NC/Axes/tcUNIT_simulated_axis.xti @@ -0,0 +1,1526 @@ + + + + + UINTARR2 + 32 + UINT + + 0 + 2 + + + [%u, %u] + [0] + [1] + + + 0x%08x [%u, %u] + . + [0] + [1] + + + 0x%08x (%u) + . + . + + + + NCENCODERSTRUCT_IN2B + 320 + + nDataIn1 + UINTARR2 + 32 + 0 + + + nDataIn2 + UINTARR2 + 32 + 32 + + + nState1 + USINT + 8 + 64 + + + nState2 + USINT + 8 + 72 + + + nState3 + USINT + 8 + 80 + + + nState4 + USINT + + 8 + 88 + + + nDataIn3 + UINTARR2 + 32 + 96 + + + nDataIn4 + UINTARR2 + 32 + 128 + + + nDataIn5 + UINTARR2 + 32 + 160 + + + nDataIn6 + UINTARR2 + 32 + 192 + + + nState5 + USINT + 8 + 224 + + + nState6 + USINT + 8 + 232 + + + nState7 + USINT + 8 + 240 + + + nState8 + USINT + 8 + 248 + + + nDcInputTime + DINT + 32 + 256 + + + nDataIn7 + UINTARR2 + 32 + 288 + + + + NCENCODERSTRUCT_IN + + 96 + + + + + + NCENCODERSTRUCT_OUT2 + 320 + + nDataOut1 + UINTARR2 + 32 + 0 + + + nDataOut2 + UINTARR2 + 32 + 32 + + + nCtrl1 + USINT + 8 + 64 + + + nCtrl2 + USINT + 8 + 72 + + + nCtrl3 + USINT + 8 + 80 + + + nCtrl4 + USINT + 8 + 88 + + + nDataOut3 + UINTARR2 + 32 + 96 + + + nDataOut4 + UINTARR2 + 32 + 128 + + + nDataOut5 + UINTARR2 + 32 + 160 + + + nDataOut6 + UINTARR2 + 32 + 192 + + + nCtrl5 + USINT + 8 + 224 + + + nCtrl6 + USINT + 8 + 232 + + + nCtrl7 + USINT + 8 + 240 + + + nCtrl8 + USINT + 8 + 248 + + + + NCENCODERSTRUCT_OUT + + 96 + + + + + + NCDRIVESTRUCT_IN2 + 320 + + nDataIn1 + UINTARR2 + 32 + 0 + + + nDataIn2 + UINTARR2 + 32 + 32 + + + nState1 + USINT + 8 + 64 + + + nState2 + USINT + 8 + 72 + + + nState3 + USINT + 8 + 80 + + + nState4 + USINT + + 8 + 88 + + + nDataIn3 + UINTARR2 + 32 + 96 + + + nDataIn4 + UINTARR2 + 32 + 128 + + + nDataIn5 + UINTARR2 + 32 + 160 + + + nDataIn6 + UINTARR2 + 32 + 192 + + + nState5 + USINT + 8 + 224 + + + nState6 + USINT + 8 + 232 + + + nState7 + USINT + 8 + 240 + + + nState8 + USINT + 8 + 248 + + + nDcOutputTime + DINT + 32 + 256 + + + + NCDRIVESTRUCT_IN + + 96 + + + + + + NCDRIVESTRUCT_OUT2 + 320 + + nDataOut1 + UINTARR2 + 32 + 0 + + + nDataOut2 + UINTARR2 + 32 + 32 + + + nCtrl1 + USINT + 8 + 64 + + + nCtrl2 + USINT + 8 + 72 + + + nCtrl3 + USINT + 8 + 80 + + + nCtrl4 + USINT + 8 + 88 + + + nDataOut3 + UINTARR2 + 32 + 96 + + + nDataOut4 + UINTARR2 + 32 + 128 + + + nDataOut5 + UINTARR2 + 32 + 160 + + + nDataOut6 + UINTARR2 + 32 + 192 + + + nCtrl5 + USINT + 8 + 224 + + + nCtrl6 + USINT + 8 + 232 + + + nCtrl7 + USINT + 8 + 240 + + + nCtrl8 + USINT + 8 + 248 + + + + NCDRIVESTRUCT_OUT + + 96 + + + + + + PLCTONC_AXIS_REF_CTRL + 32 + + Enable + BIT + 1 + 0 + + + FeedEnablePlus + BIT + 1 + 1 + + + FeedEnableMinus + BIT + 1 + 2 + + + HomingSensor + BIT + 1 + 5 + + + AcceptBlockedDrive + BIT + 1 + 8 + + + PlcDebugFlag + BIT + 1 + 30 + + + NcDebugFlag + BIT + 1 + 31 + + + %08x + + + 0x%08x + + + 16#%08X + + + + PLCTONC_AXIS_REF + 1024 + + ControlDWord + PLCTONC_AXIS_REF_CTRL + 32 + 0 + + + Override + UDINT + 32 + 32 + + + AxisModeRequest + UDINT + 32 + 64 + + + AxisModeDWord + UDINT + 32 + 96 + + + AxisModeLReal + LREAL + 64 + 128 + + + PositionCorrection + LREAL + 64 + 192 + + + ExtSetPos + LREAL + 64 + 256 + + + ExtSetVelo + LREAL + 64 + 320 + + + ExtSetAcc + LREAL + 64 + 384 + + + ExtSetDirection + DINT + 32 + 448 + + + ExtControllerOutput + LREAL + 64 + 512 + + + GearRatio1 + LREAL + 64 + 576 + + + GearRatio2 + LREAL + 64 + 640 + + + GearRatio3 + LREAL + 64 + 704 + + + GearRatio4 + LREAL + 64 + 768 + + + MapState + BOOL + 8 + 832 + + + PlcCycleControl + BYTE + 8 + 840 + + + PlcCycleCount + BYTE + 8 + 848 + + + + NcStructType + 1 + + + + + NCAXLESTRUCT_FROMPLC3 + + + + + NCTOPLC_AXIS_REF_STATE + 32 + + Operational + BIT + 1 + 0 + + + Homed + BIT + 1 + 1 + + + NotMoving + BIT + 1 + 2 + + + InPositionArea + BIT + 1 + 3 + + + InTargetPosition + BIT + 1 + 4 + + + Protected + BIT + 1 + 5 + + + ErrorPropagationDelayed + BIT + 1 + 6 + + + HasBeenStopped + BIT + 1 + 7 + + + HasJob + BIT + 1 + 8 + + + PositiveDirection + BIT + 1 + 9 + + + NegativeDirection + BIT + 1 + 10 + + + HomingBusy + BIT + 1 + 11 + + + ConstantVelocity + BIT + 1 + 12 + + + Compensating + BIT + 1 + 13 + + + ExtSetPointGenEnabled + BIT + 1 + 14 + + + PhasingActive + BIT + 1 + 15 + + + ExternalLatchValid + BIT + 1 + 16 + + + NewTargetPos + BIT + 1 + 17 + + + ContinuousMotion + BIT + 1 + 19 + + + ControlLoopClosed + BIT + 1 + 20 + + + CamTableQueued + BIT + 1 + 21 + + + CamDataQueued + BIT + 1 + 22 + + + CamScalingPending + BIT + 1 + 23 + + + CmdBuffered + BIT + 1 + 24 + + + PTPmode + BIT + 1 + 25 + + + SoftLimitMinExceeded + BIT + 1 + 26 + + + SoftLimitMaxExceeded + BIT + 1 + 27 + + + DriveDeviceError + BIT + 1 + 28 + + + MotionCommandsLocked + BIT + 1 + 29 + + + IoDataInvalid + BIT + 1 + 30 + + + Error + BIT + 1 + 31 + + + %08x + + + 0x%08x + + + 16#%08X + + + + NCTOPLC_AXIS_REF_OPMODE + 32 + + OpModePosAreaMonitoring + BIT + 1 + 0 + + + OpModeTargetPosMonitoring + BIT + 1 + 1 + + + OpModeLoop + BIT + 1 + 2 + + + OpModeMotionMonitoring + BIT + 1 + 3 + + + OpModePEHTimeMonitoring + BIT + 1 + 4 + + + OpModeBacklashCompensation + BIT + 1 + 5 + + + OpModeDelayedErrorReaction + BIT + 1 + 6 + + + OpModeModulo + BIT + 1 + 7 + + + OpModeSimulationAxis + BIT + 1 + 8 + + + OpModePosLagMonitoring + BIT + 1 + 16 + + + OpModeVeloLagMonitoring + BIT + 1 + 17 + + + OpModeSoftLimitMinMonitoring + BIT + 1 + 18 + + + OpModeSoftLimitMaxMonitoring + BIT + 1 + 19 + + + OpModePosCorrection + BIT + 1 + 20 + + + OpModeAllowSlaveCommands + BIT + 1 + 21 + + + OpModeAllowExtSetAxisCommands + BIT + 1 + 22 + + + ApplicationRequest + BIT + 1 + 23 + + + + NCTOPLC_AXIS_REF_STATE2_FLAGS + 32 + + AvoidingCollision + BIT + 1 + 0 + + + %08x + + + 0x%08x + + + 16#%08X + + + + NCTOPLC_AXIS_REF_STATE2 + 32 + + Value + DWORD + 32 + 0 + + + Flags + NCTOPLC_AXIS_REF_STATE2_FLAGS + 32 + 0 + + + %08x + + + 0x%08x + + + 16#%08X + + + + NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE + 8 + + CamActivationPending + BIT + 1 + 0 + + + CamDeactivationPending + BIT + 1 + 1 + + + CamActive + BIT + 1 + 2 + + + CamDataQueued + BIT + 1 + 6 + + + CamScalingPending + BIT + 1 + 7 + + + + UINTARR8 + 128 + UINT + + 0 + 8 + + + + NCTOPLC_AXIS_REF + 2048 + + StateDWord + NCTOPLC_AXIS_REF_STATE + 32 + 0 + + + ErrorCode + UDINT + 32 + 32 + + + AxisState + UDINT + + 32 + 64 + + + AxisModeConfirmation + UDINT + 32 + 96 + + + HomingState + UDINT + + 32 + 128 + + + CoupleState + UDINT + + 32 + 160 + + + SvbEntries + UDINT + 32 + 192 + + + SafEntries + UDINT + 32 + 224 + + + AxisId + UDINT + 32 + 256 + + + OpModeDWord + NCTOPLC_AXIS_REF_OPMODE + 32 + 288 + + + ActPos + LREAL + 64 + 320 + + + ModuloActPos + LREAL + 64 + 384 + + + ActiveControlLoopIndex + UINT + 16 + 448 + + + ControlLoopIndex + UINT + 16 + 464 + + + ModuloActTurns + DINT + 32 + 480 + + + ActVelo + LREAL + 64 + 512 + + + PosDiff + LREAL + 64 + 576 + + + SetPos + LREAL + 64 + 640 + + + SetVelo + LREAL + 64 + 704 + + + SetAcc + LREAL + 64 + 768 + + + TargetPos + LREAL + 64 + 832 + + + ModuloSetPos + LREAL + 64 + 896 + + + ModuloSetTurns + DINT + 32 + 960 + + + CmdNo + UINT + 16 + 992 + + + CmdState + UINT + 16 + 1008 + + + SetJerk + LREAL + 64 + 1024 + + + SetTorque + LREAL + 64 + 1088 + + + ActTorque + LREAL + 64 + 1152 + + + StateDWord2 + NCTOPLC_AXIS_REF_STATE2 + 32 + 1216 + + + StateDWord3 + DWORD + 32 + 1248 + + + TouchProbeState + DWORD + 32 + 1280 + + + TouchProbeCounter + DWORD + 32 + 1312 + + + CamCouplingState + NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE + + 0 + 8 + + 64 + 1344 + + + CamCouplingTableID + UINTARR8 + 128 + 1408 + + + ActTorqueDerivative + LREAL + 64 + 1536 + + + SetTorqueDerivative + LREAL + 64 + 1600 + + + ActPosWithoutPosCorrection + LREAL + 64 + 1792 + + + ActAcc + LREAL + 64 + 1856 + + + DcTimeStamp + UDINT + 32 + 1920 + + + + NcStructType + 2 + + + + + NCAXLESTRUCT_TOPLC + + + NCAXLESTRUCT_TOPLC2 + + + NCAXLESTRUCT_TOPLC3 + + + NCAXLESTRUCT_TOPLC4 + + + + + + + + + + + + + + + __FILENAME__ + + + + + + Inputs + + In + NCENCODERSTRUCT_IN2B + 1024 + + nDataIn1 + + + nDataIn2 + + + nState4 + + + + nDataIn3 + + + nDataIn4 + + + nDataIn5 + + + nDataIn6 + + + nDataIn7 + + + + + Outputs + + Out + NCENCODERSTRUCT_OUT2 + 2048 + + nDataOut1 + + + nDataOut2 + + + nDataOut3 + + + nDataOut4 + + + nDataOut5 + + + nDataOut6 + + + + + + + + + + + Inputs + + In + NCDRIVESTRUCT_IN2 + 1344 + + nDataIn1 + + + nDataIn2 + + + nState4 + + + + nDataIn3 + + + nDataIn4 + + + nDataIn5 + + + nDataIn6 + + + + + Outputs + + Out + NCDRIVESTRUCT_OUT2 + 2368 + + nDataOut1 + + + nDataOut2 + + + nCtrl2 + + + + nCtrl3 + + + + nDataOut3 + + + nDataOut4 + + + nDataOut5 + + + nDataOut6 + + + + + + + + + + + Inputs + + FromPlc + PLCTONC_AXIS_REF + + + + Outputs + + ToPlc + NCTOPLC_AXIS_REF + + AxisState + + + + HomingState + + + + CoupleState + + + + + + diff --git a/solution/_Config/NC/NC.xti b/solution/_Config/NC/NC.xti index 759c7a3..0347cfe 100644 --- a/solution/_Config/NC/NC.xti +++ b/solution/_Config/NC/NC.xti @@ -16,5 +16,6 @@ NC-Task 1 SVB + diff --git a/solution/solution.tsproj b/solution/solution.tsproj index bcc972e..c5894d3 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -875,6 +875,7 @@ External Setpoint Generation: + {3EBB9639-5FF3-42B6-8847-35C70DC013C8} @@ -893,7 +894,7 @@ External Setpoint Generation: - + tc_epicscommodule Instance {08500001-0000-0000-F000-000000000064} @@ -906,6 +907,72 @@ External Setpoint Generation: tc_project_app Instance {08500001-0000-0000-F000-000000000064} + + PlcTask Inputs + + GVL.axes[1].inputs.bLimitFwd + + BOOL + + + GVL.axes[1].inputs.bLimitBwd + + BOOL + + + GVL.axes[1].inputs.bHomeSensor + + BOOL + + + GVL.axes[1].inputs.bEncLAtch + + BOOL + + + GVL.axes[1].Axis.NcToPlc + NCTOPLC_AXIS_REF + + AxisState + + + + HomingState + + + + CoupleState + + + + PlcTask Outputs @@ -913,6 +980,10 @@ External Setpoint Generation: BOOL + + GVL.axes[1].Axis.PlcToNc + PLCTONC_AXIS_REF + @@ -920,5 +991,15 @@ External Setpoint Generation: + + + + + + + + + + diff --git a/solution/tc_project_app/GVLs/GVL_APP.TcGVL b/solution/tc_project_app/GVLs/GVL_APP.TcGVL index e125049..ecb46e3 100644 --- a/solution/tc_project_app/GVLs/GVL_APP.TcGVL +++ b/solution/tc_project_app/GVLs/GVL_APP.TcGVL @@ -7,7 +7,7 @@ VAR_GLOBAL END_VAR VAR_GLOBAL CONSTANT - axisNum : UINT:=0; + axisNum : UINT:=1; //axisCoupleMax : UINT:=4; END_VAR]]> diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU index 2621b5e..a07b19d 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -140,7 +140,6 @@ END_IF]]> @@ -310,7 +309,6 @@ END_FOR]]> - diff --git a/solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU b/solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU index 844227f..2d569d3 100644 --- a/solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU +++ b/solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU @@ -1,7 +1,7 @@  - - - + - + - - + - + - - + + iAxisIndex: INT; // The idex of the axis to action the method on. +END_VAR +]]> - +GVL.axes[iAxisIndex].config.fVelocity := tcUNIT_GVL.fDEFAULT_TARGET_VELOCITY; +GVL.axes[iAxisIndex].config.fAcceleration := tcUNIT_GVL.fDEFAULT_TARGET_ACCELERATION; +GVL.axes[iAxisIndex].config.fDeceleration := tcUNIT_GVL.fDEFAULT_TARGET_DECCELERATION; +GVL.axes[iAxisIndex].config.fOverride := tcUNIT_GVL.fDEFAULT_TARGET_OVERRIDE; +GVL.axes[iAxisIndex].config.fPosition := tcUNIT_GVL.fDEFAULT_POSITION;]]> - - + - +GVL.axes[iAxisIndex].config.fVelocity := fTargetVelocity; +GVL.axes[iAxisIndex].config.fAcceleration := fTargetAcceleration; +GVL.axes[iAxisIndex].config.fDeceleration := fTargetDeceleration; +GVL.axes[iAxisIndex].config.fPosition := fTargetPosition; +]]> - - + - +GVL.axes[iAxisIndex].inputs.bLimitBwd := FALSE; +GVL.axes[iAxisIndex].inputs.bLimitFwd := FALSE; +GVL.axes[iAxisIndex].inputs.bEncLAtch := FALSE; +GVL.axes[iAxisIndex].inputs.bHomeSensor := FALSE; +]]> - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/Test/common/tcUNIT_GVL.TcGVL b/solution/tc_project_app/Test/common/tcUNIT_GVL.TcGVL index ed05340..10cbe42 100644 --- a/solution/tc_project_app/Test/common/tcUNIT_GVL.TcGVL +++ b/solution/tc_project_app/Test/common/tcUNIT_GVL.TcGVL @@ -1,12 +1,10 @@  - \ No newline at end of file diff --git a/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU b/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU index 59ff389..e80efba 100644 --- a/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU +++ b/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU @@ -6,18 +6,83 @@ FUNCTION_BLOCK FB_Axis_TEST EXTENDS tcUnit.FB_TestSuite VAR fbCommon: FB_tcUNIT_common; - Axis: POINTER TO ST_AxisStruct := ADR(GVL.axes[1]); + iTargetAxis: INT := 1; // The of the axis within GVL.axes[] to test against. END_VAR]]> +SetAxisControl_Enabled(); +CheckAxisStatus_Moving(); +SetAxisConfig_Acceleration(); +CheckAxisStatus_NewPosition(); +SetAxisControl_Velocity(); +SetAxisInputs_bLimitFwd();]]> - - + + + nMaxCycles OR ExpectedResult = Result THEN + AssertEquals(Expected := ExpectedResult, + Actual := Result, + Message := 'Axis is not moving.'); + TEST_FINISHED(); +ELSE + nCycle := nCycle + 1; +END_IF]]> + + + + + + nCycleMax OR ExpectedResult = Result THEN + AssertEquals(Expected := ExpectedResult, + Actual := Result, + Message := 'fPosition of the axis is different.'); + TEST_FINISHED(); +ELSE + nCycle := nCycle + 1; +END_IF]]> + + + + - - + - - - - - - nMaxCycles OR ExpectedResult = Result THEN AssertEquals(Expected := ExpectedResult, Actual := Result, - Message := 'Axis is not moving.'); + Message := 'Axis is not enabled.'); + TEST_FINISHED(); +ELSE + nCycle := nCycle + 1; END_IF - -fbCommon.SetDefaults(GVL.Axes[1]); -TEST_FINISHED();]]> +]]> - - - - - - - - + + + + + nMaxCycles OR ExpectedResult = Result THEN + AssertEquals(Expected := ExpectedResult, + Actual := Result, + Message := 'Axis bLimitFwd is not enabled.'); + TEST_FINISHED(); +ELSE + nCycle := nCycle + 1; +END_IF]]> + + + - + + + + + + + + - + - - - + - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index d880255..e87ef80 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -369,14 +369,14 @@ - Tc2_MC2, * (Beckhoff Automation GmbH) + Tc2_MC2, 3.3.28.0 (Beckhoff Automation GmbH) - - + + "<ProjectRoot>" {192FAD59-8248-4824-A8DE-9177C94C195A} @@ -427,15 +427,15 @@ - - - System.Boolean - System.Collections.Hashtable - System.Int32 - {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} - System.String - - + + + System.Boolean + System.Collections.Hashtable + System.Int32 + {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} + System.String + + \ No newline at end of file diff --git a/solution/tc_project_app/tc_project_app.tmcRefac b/solution/tc_project_app/tc_project_app.tmcRefac new file mode 100644 index 0000000..58df39a --- /dev/null +++ b/solution/tc_project_app/tc_project_app.tmcRefac @@ -0,0 +1,25 @@ + + + + + SetAxisControl_Enabled + i + nCycle + + + SetAxisControl_Enabled + iMaxCount + nMaxCycles + + + CheckAxisStatus_NewPosition + iCount + nCycle + + + CheckAxisStatus_NewPosition + iMaxCount + nCycleMax + + + \ No newline at end of file From 9c985be4ef82e87c40a52b5f5ff4946dd57deeb6 Mon Sep 17 00:00:00 2001 From: aaronlong Date: Wed, 19 Feb 2020 14:58:39 +0000 Subject: [PATCH 10/14] Attempt to fix whitespace damage --- .../Test/app_tests/tcUNIT_APP_RUN.TcPOU | 4 ++-- .../Test/common/FB_tcUNIT_common.TcPOU | 21 ++++++------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU b/solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU index bfdf84b..102e424 100644 --- a/solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU +++ b/solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU @@ -2,12 +2,12 @@ diff --git a/solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU b/solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU index 2d569d3..e8f604a 100644 --- a/solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU +++ b/solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU @@ -12,11 +12,10 @@ END_VAR]]> - + @@ -25,8 +24,7 @@ VAR_INPUT iAxisIndex: INT; // The idex of the axis to action the method on. END_VAR]]> - + @@ -34,8 +32,7 @@ END_VAR]]> VAR_INPUT iAxisIndex: INT; // The idex of the axis to action the method on. -END_VAR -]]> +END_VAR]]> +GVL.axes[iAxisIndex].config.fPosition := fTargetPosition;]]> @@ -116,8 +112,7 @@ GVL.axes[iAxisIndex].config.nHomeSeq := 0; GVL.axes[iAxisIndex].inputs.bLimitBwd := FALSE; GVL.axes[iAxisIndex].inputs.bLimitFwd := FALSE; GVL.axes[iAxisIndex].inputs.bEncLAtch := FALSE; -GVL.axes[iAxisIndex].inputs.bHomeSensor := FALSE; -]]> +GVL.axes[iAxisIndex].inputs.bHomeSensor := FALSE;]]> @@ -125,11 +120,9 @@ GVL.axes[iAxisIndex].inputs.bHomeSensor := FALSE; - - @@ -141,7 +134,6 @@ GVL.axes[iAxisIndex].inputs.bHomeSensor := FALSE; - @@ -152,7 +144,6 @@ GVL.axes[iAxisIndex].inputs.bHomeSensor := FALSE; - \ No newline at end of file From c6f051cc614b887fc428f9dc0286aacddae68878 Mon Sep 17 00:00:00 2001 From: aaronlong Date: Wed, 19 Feb 2020 15:11:53 +0000 Subject: [PATCH 11/14] Used script to fix 'whitespace damage' --- solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU | 2 +- solution/tc_project_app/Test/common/FB_tcUNIT_common.TcPOU | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU b/solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU index 102e424..7326c7d 100644 --- a/solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU +++ b/solution/tc_project_app/Test/app_tests/tcUNIT_APP_RUN.TcPOU @@ -1,7 +1,7 @@  - Date: Wed, 19 Feb 2020 15:46:14 +0000 Subject: [PATCH 12/14] Added test for LREAL assert using tcUNIT helper methods --- .../standard_library_tests/FB_Axis_TEST.TcPOU | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU b/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU index e80efba..36cf024 100644 --- a/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU +++ b/solution/tc_project_app/Test/standard_library_tests/FB_Axis_TEST.TcPOU @@ -140,24 +140,26 @@ VAR InitialValue: LREAL; Result: LREAL; ExpectedResult: LREAL; + + fDelta: REAL := 0.01; END_VAR]]> +AssertEquals_LREAL(Expected := ExpectedResult, + Actual := Result, + Delta := fDelta, + Message := 'fVelocity of the axis is different.'); + TEST_FINISHED(); +]]> @@ -220,10 +222,17 @@ END_IF]]> + - - + + + + + + + + From c8602c8eb7524a9e59798250dc2cf8be8b16bd27 Mon Sep 17 00:00:00 2001 From: aaronlong Date: Wed, 4 Mar 2020 11:05:47 +0000 Subject: [PATCH 13/14] Resolved merge conflicts --- .../_Config/NC/Axes/tcUNIT_simulated_axis.xti | 1526 ----------------- solution/_Config/NC/NC.xti | 1 - solution/solution.tsproj | 973 +---------- solution/tc_project_app/PlcTask.TcTTO | 3 - 4 files changed, 12 insertions(+), 2491 deletions(-) delete mode 100644 solution/_Config/NC/Axes/tcUNIT_simulated_axis.xti diff --git a/solution/_Config/NC/Axes/tcUNIT_simulated_axis.xti b/solution/_Config/NC/Axes/tcUNIT_simulated_axis.xti deleted file mode 100644 index 6036e30..0000000 --- a/solution/_Config/NC/Axes/tcUNIT_simulated_axis.xti +++ /dev/null @@ -1,1526 +0,0 @@ - - - - - UINTARR2 - 32 - UINT - - 0 - 2 - - - [%u, %u] - [0] - [1] - - - 0x%08x [%u, %u] - . - [0] - [1] - - - 0x%08x (%u) - . - . - - - - NCENCODERSTRUCT_IN2B - 320 - - nDataIn1 - UINTARR2 - 32 - 0 - - - nDataIn2 - UINTARR2 - 32 - 32 - - - nState1 - USINT - 8 - 64 - - - nState2 - USINT - 8 - 72 - - - nState3 - USINT - 8 - 80 - - - nState4 - USINT - - 8 - 88 - - - nDataIn3 - UINTARR2 - 32 - 96 - - - nDataIn4 - UINTARR2 - 32 - 128 - - - nDataIn5 - UINTARR2 - 32 - 160 - - - nDataIn6 - UINTARR2 - 32 - 192 - - - nState5 - USINT - 8 - 224 - - - nState6 - USINT - 8 - 232 - - - nState7 - USINT - 8 - 240 - - - nState8 - USINT - 8 - 248 - - - nDcInputTime - DINT - 32 - 256 - - - nDataIn7 - UINTARR2 - 32 - 288 - - - - NCENCODERSTRUCT_IN - - 96 - - - - - - NCENCODERSTRUCT_OUT2 - 320 - - nDataOut1 - UINTARR2 - 32 - 0 - - - nDataOut2 - UINTARR2 - 32 - 32 - - - nCtrl1 - USINT - 8 - 64 - - - nCtrl2 - USINT - 8 - 72 - - - nCtrl3 - USINT - 8 - 80 - - - nCtrl4 - USINT - 8 - 88 - - - nDataOut3 - UINTARR2 - 32 - 96 - - - nDataOut4 - UINTARR2 - 32 - 128 - - - nDataOut5 - UINTARR2 - 32 - 160 - - - nDataOut6 - UINTARR2 - 32 - 192 - - - nCtrl5 - USINT - 8 - 224 - - - nCtrl6 - USINT - 8 - 232 - - - nCtrl7 - USINT - 8 - 240 - - - nCtrl8 - USINT - 8 - 248 - - - - NCENCODERSTRUCT_OUT - - 96 - - - - - - NCDRIVESTRUCT_IN2 - 320 - - nDataIn1 - UINTARR2 - 32 - 0 - - - nDataIn2 - UINTARR2 - 32 - 32 - - - nState1 - USINT - 8 - 64 - - - nState2 - USINT - 8 - 72 - - - nState3 - USINT - 8 - 80 - - - nState4 - USINT - - 8 - 88 - - - nDataIn3 - UINTARR2 - 32 - 96 - - - nDataIn4 - UINTARR2 - 32 - 128 - - - nDataIn5 - UINTARR2 - 32 - 160 - - - nDataIn6 - UINTARR2 - 32 - 192 - - - nState5 - USINT - 8 - 224 - - - nState6 - USINT - 8 - 232 - - - nState7 - USINT - 8 - 240 - - - nState8 - USINT - 8 - 248 - - - nDcOutputTime - DINT - 32 - 256 - - - - NCDRIVESTRUCT_IN - - 96 - - - - - - NCDRIVESTRUCT_OUT2 - 320 - - nDataOut1 - UINTARR2 - 32 - 0 - - - nDataOut2 - UINTARR2 - 32 - 32 - - - nCtrl1 - USINT - 8 - 64 - - - nCtrl2 - USINT - 8 - 72 - - - nCtrl3 - USINT - 8 - 80 - - - nCtrl4 - USINT - 8 - 88 - - - nDataOut3 - UINTARR2 - 32 - 96 - - - nDataOut4 - UINTARR2 - 32 - 128 - - - nDataOut5 - UINTARR2 - 32 - 160 - - - nDataOut6 - UINTARR2 - 32 - 192 - - - nCtrl5 - USINT - 8 - 224 - - - nCtrl6 - USINT - 8 - 232 - - - nCtrl7 - USINT - 8 - 240 - - - nCtrl8 - USINT - 8 - 248 - - - - NCDRIVESTRUCT_OUT - - 96 - - - - - - PLCTONC_AXIS_REF_CTRL - 32 - - Enable - BIT - 1 - 0 - - - FeedEnablePlus - BIT - 1 - 1 - - - FeedEnableMinus - BIT - 1 - 2 - - - HomingSensor - BIT - 1 - 5 - - - AcceptBlockedDrive - BIT - 1 - 8 - - - PlcDebugFlag - BIT - 1 - 30 - - - NcDebugFlag - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - PLCTONC_AXIS_REF - 1024 - - ControlDWord - PLCTONC_AXIS_REF_CTRL - 32 - 0 - - - Override - UDINT - 32 - 32 - - - AxisModeRequest - UDINT - 32 - 64 - - - AxisModeDWord - UDINT - 32 - 96 - - - AxisModeLReal - LREAL - 64 - 128 - - - PositionCorrection - LREAL - 64 - 192 - - - ExtSetPos - LREAL - 64 - 256 - - - ExtSetVelo - LREAL - 64 - 320 - - - ExtSetAcc - LREAL - 64 - 384 - - - ExtSetDirection - DINT - 32 - 448 - - - ExtControllerOutput - LREAL - 64 - 512 - - - GearRatio1 - LREAL - 64 - 576 - - - GearRatio2 - LREAL - 64 - 640 - - - GearRatio3 - LREAL - 64 - 704 - - - GearRatio4 - LREAL - 64 - 768 - - - MapState - BOOL - 8 - 832 - - - PlcCycleControl - BYTE - 8 - 840 - - - PlcCycleCount - BYTE - 8 - 848 - - - - NcStructType - 1 - - - - - NCAXLESTRUCT_FROMPLC3 - - - - - NCTOPLC_AXIS_REF_STATE - 32 - - Operational - BIT - 1 - 0 - - - Homed - BIT - 1 - 1 - - - NotMoving - BIT - 1 - 2 - - - InPositionArea - BIT - 1 - 3 - - - InTargetPosition - BIT - 1 - 4 - - - Protected - BIT - 1 - 5 - - - ErrorPropagationDelayed - BIT - 1 - 6 - - - HasBeenStopped - BIT - 1 - 7 - - - HasJob - BIT - 1 - 8 - - - PositiveDirection - BIT - 1 - 9 - - - NegativeDirection - BIT - 1 - 10 - - - HomingBusy - BIT - 1 - 11 - - - ConstantVelocity - BIT - 1 - 12 - - - Compensating - BIT - 1 - 13 - - - ExtSetPointGenEnabled - BIT - 1 - 14 - - - PhasingActive - BIT - 1 - 15 - - - ExternalLatchValid - BIT - 1 - 16 - - - NewTargetPos - BIT - 1 - 17 - - - ContinuousMotion - BIT - 1 - 19 - - - ControlLoopClosed - BIT - 1 - 20 - - - CamTableQueued - BIT - 1 - 21 - - - CamDataQueued - BIT - 1 - 22 - - - CamScalingPending - BIT - 1 - 23 - - - CmdBuffered - BIT - 1 - 24 - - - PTPmode - BIT - 1 - 25 - - - SoftLimitMinExceeded - BIT - 1 - 26 - - - SoftLimitMaxExceeded - BIT - 1 - 27 - - - DriveDeviceError - BIT - 1 - 28 - - - MotionCommandsLocked - BIT - 1 - 29 - - - IoDataInvalid - BIT - 1 - 30 - - - Error - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_OPMODE - 32 - - OpModePosAreaMonitoring - BIT - 1 - 0 - - - OpModeTargetPosMonitoring - BIT - 1 - 1 - - - OpModeLoop - BIT - 1 - 2 - - - OpModeMotionMonitoring - BIT - 1 - 3 - - - OpModePEHTimeMonitoring - BIT - 1 - 4 - - - OpModeBacklashCompensation - BIT - 1 - 5 - - - OpModeDelayedErrorReaction - BIT - 1 - 6 - - - OpModeModulo - BIT - 1 - 7 - - - OpModeSimulationAxis - BIT - 1 - 8 - - - OpModePosLagMonitoring - BIT - 1 - 16 - - - OpModeVeloLagMonitoring - BIT - 1 - 17 - - - OpModeSoftLimitMinMonitoring - BIT - 1 - 18 - - - OpModeSoftLimitMaxMonitoring - BIT - 1 - 19 - - - OpModePosCorrection - BIT - 1 - 20 - - - OpModeAllowSlaveCommands - BIT - 1 - 21 - - - OpModeAllowExtSetAxisCommands - BIT - 1 - 22 - - - ApplicationRequest - BIT - 1 - 23 - - - - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - - AvoidingCollision - BIT - 1 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_STATE2 - 32 - - Value - DWORD - 32 - 0 - - - Flags - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - 8 - - CamActivationPending - BIT - 1 - 0 - - - CamDeactivationPending - BIT - 1 - 1 - - - CamActive - BIT - 1 - 2 - - - CamDataQueued - BIT - 1 - 6 - - - CamScalingPending - BIT - 1 - 7 - - - - UINTARR8 - 128 - UINT - - 0 - 8 - - - - NCTOPLC_AXIS_REF - 2048 - - StateDWord - NCTOPLC_AXIS_REF_STATE - 32 - 0 - - - ErrorCode - UDINT - 32 - 32 - - - AxisState - UDINT - - 32 - 64 - - - AxisModeConfirmation - UDINT - 32 - 96 - - - HomingState - UDINT - - 32 - 128 - - - CoupleState - UDINT - - 32 - 160 - - - SvbEntries - UDINT - 32 - 192 - - - SafEntries - UDINT - 32 - 224 - - - AxisId - UDINT - 32 - 256 - - - OpModeDWord - NCTOPLC_AXIS_REF_OPMODE - 32 - 288 - - - ActPos - LREAL - 64 - 320 - - - ModuloActPos - LREAL - 64 - 384 - - - ActiveControlLoopIndex - UINT - 16 - 448 - - - ControlLoopIndex - UINT - 16 - 464 - - - ModuloActTurns - DINT - 32 - 480 - - - ActVelo - LREAL - 64 - 512 - - - PosDiff - LREAL - 64 - 576 - - - SetPos - LREAL - 64 - 640 - - - SetVelo - LREAL - 64 - 704 - - - SetAcc - LREAL - 64 - 768 - - - TargetPos - LREAL - 64 - 832 - - - ModuloSetPos - LREAL - 64 - 896 - - - ModuloSetTurns - DINT - 32 - 960 - - - CmdNo - UINT - 16 - 992 - - - CmdState - UINT - 16 - 1008 - - - SetJerk - LREAL - 64 - 1024 - - - SetTorque - LREAL - 64 - 1088 - - - ActTorque - LREAL - 64 - 1152 - - - StateDWord2 - NCTOPLC_AXIS_REF_STATE2 - 32 - 1216 - - - StateDWord3 - DWORD - 32 - 1248 - - - TouchProbeState - DWORD - 32 - 1280 - - - TouchProbeCounter - DWORD - 32 - 1312 - - - CamCouplingState - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - - 0 - 8 - - 64 - 1344 - - - CamCouplingTableID - UINTARR8 - 128 - 1408 - - - ActTorqueDerivative - LREAL - 64 - 1536 - - - SetTorqueDerivative - LREAL - 64 - 1600 - - - ActPosWithoutPosCorrection - LREAL - 64 - 1792 - - - ActAcc - LREAL - 64 - 1856 - - - DcTimeStamp - UDINT - 32 - 1920 - - - - NcStructType - 2 - - - - - NCAXLESTRUCT_TOPLC - - - NCAXLESTRUCT_TOPLC2 - - - NCAXLESTRUCT_TOPLC3 - - - NCAXLESTRUCT_TOPLC4 - - - - - - - - - - - - - - - __FILENAME__ - - - - - - Inputs - - In - NCENCODERSTRUCT_IN2B - 1024 - - nDataIn1 - - - nDataIn2 - - - nState4 - - - - nDataIn3 - - - nDataIn4 - - - nDataIn5 - - - nDataIn6 - - - nDataIn7 - - - - - Outputs - - Out - NCENCODERSTRUCT_OUT2 - 2048 - - nDataOut1 - - - nDataOut2 - - - nDataOut3 - - - nDataOut4 - - - nDataOut5 - - - nDataOut6 - - - - - - - - - - - Inputs - - In - NCDRIVESTRUCT_IN2 - 1344 - - nDataIn1 - - - nDataIn2 - - - nState4 - - - - nDataIn3 - - - nDataIn4 - - - nDataIn5 - - - nDataIn6 - - - - - Outputs - - Out - NCDRIVESTRUCT_OUT2 - 2368 - - nDataOut1 - - - nDataOut2 - - - nCtrl2 - - - - nCtrl3 - - - - nDataOut3 - - - nDataOut4 - - - nDataOut5 - - - nDataOut6 - - - - - - - - - - - Inputs - - FromPlc - PLCTONC_AXIS_REF - - - - Outputs - - ToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - - - - - - diff --git a/solution/_Config/NC/NC.xti b/solution/_Config/NC/NC.xti index 0347cfe..759c7a3 100644 --- a/solution/_Config/NC/NC.xti +++ b/solution/_Config/NC/NC.xti @@ -16,6 +16,5 @@ NC-Task 1 SVB - diff --git a/solution/solution.tsproj b/solution/solution.tsproj index c5894d3..9083414 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,878 +1,5 @@ - - - NCTOPLC_AXIS_REF_STATE - 32 - - Operational - BIT - 1 - 0 - - - Homed - BIT - 1 - 1 - - - NotMoving - BIT - 1 - 2 - - - InPositionArea - BIT - 1 - 3 - - - InTargetPosition - BIT - 1 - 4 - - - Protected - BIT - 1 - 5 - - - ErrorPropagationDelayed - BIT - 1 - 6 - - - HasBeenStopped - BIT - 1 - 7 - - - HasJob - BIT - 1 - 8 - - - PositiveDirection - BIT - 1 - 9 - - - NegativeDirection - BIT - 1 - 10 - - - HomingBusy - BIT - 1 - 11 - - - ConstantVelocity - BIT - 1 - 12 - - - Compensating - BIT - 1 - 13 - - - ExtSetPointGenEnabled - BIT - 1 - 14 - - - PhasingActive - BIT - 1 - 15 - - - ExternalLatchValid - BIT - 1 - 16 - - - NewTargetPos - BIT - 1 - 17 - - - ContinuousMotion - BIT - 1 - 19 - - - ControlLoopClosed - BIT - 1 - 20 - - - CamTableQueued - BIT - 1 - 21 - - - CamDataQueued - BIT - 1 - 22 - - - CamScalingPending - BIT - 1 - 23 - - - CmdBuffered - BIT - 1 - 24 - - - PTPmode - BIT - 1 - 25 - - - SoftLimitMinExceeded - BIT - 1 - 26 - - - SoftLimitMaxExceeded - BIT - 1 - 27 - - - DriveDeviceError - BIT - 1 - 28 - - - MotionCommandsLocked - BIT - 1 - 29 - - - IoDataInvalid - BIT - 1 - 30 - - - Error - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_OPMODE - 32 - - OpModePosAreaMonitoring - BIT - 1 - 0 - - - OpModeTargetPosMonitoring - BIT - 1 - 1 - - - OpModeLoop - BIT - 1 - 2 - - - OpModeMotionMonitoring - BIT - 1 - 3 - - - OpModePEHTimeMonitoring - BIT - 1 - 4 - - - OpModeBacklashCompensation - BIT - 1 - 5 - - - OpModeDelayedErrorReaction - BIT - 1 - 6 - - - OpModeModulo - BIT - 1 - 7 - - - OpModeSimulationAxis - BIT - 1 - 8 - - - OpModePosLagMonitoring - BIT - 1 - 16 - - - OpModeVeloLagMonitoring - BIT - 1 - 17 - - - OpModeSoftLimitMinMonitoring - BIT - 1 - 18 - - - OpModeSoftLimitMaxMonitoring - BIT - 1 - 19 - - - OpModePosCorrection - BIT - 1 - 20 - - - OpModeAllowSlaveCommands - BIT - 1 - 21 - - - OpModeAllowExtSetAxisCommands - BIT - 1 - 22 - - - ApplicationRequest - BIT - 1 - 23 - - - - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - - AvoidingCollision - BIT - 1 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_STATE2 - 32 - - Value - DWORD - 32 - 0 - - - Flags - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - 8 - - CamActivationPending - BIT - 1 - 0 - - - CamDeactivationPending - BIT - 1 - 1 - - - CamActive - BIT - 1 - 2 - - - CamDataQueued - BIT - 1 - 6 - - - CamScalingPending - BIT - 1 - 7 - - - - UINTARR8 - 128 - UINT - - 0 - 8 - - - - NCTOPLC_AXIS_REF - 2048 - - StateDWord - NCTOPLC_AXIS_REF_STATE - 32 - 0 - - - ErrorCode - UDINT - 32 - 32 - - - AxisState - UDINT - - 32 - 64 - - - AxisModeConfirmation - UDINT - 32 - 96 - - - HomingState - UDINT - - 32 - 128 - - - CoupleState - UDINT - - 32 - 160 - - - SvbEntries - UDINT - 32 - 192 - - - SafEntries - UDINT - 32 - 224 - - - AxisId - UDINT - 32 - 256 - - - OpModeDWord - NCTOPLC_AXIS_REF_OPMODE - 32 - 288 - - - ActPos - LREAL - 64 - 320 - - - ModuloActPos - LREAL - 64 - 384 - - - ActiveControlLoopIndex - UINT - 16 - 448 - - - ControlLoopIndex - UINT - 16 - 464 - - - ModuloActTurns - DINT - 32 - 480 - - - ActVelo - LREAL - 64 - 512 - - - PosDiff - LREAL - 64 - 576 - - - SetPos - LREAL - 64 - 640 - - - SetVelo - LREAL - 64 - 704 - - - SetAcc - LREAL - 64 - 768 - - - TargetPos - LREAL - 64 - 832 - - - ModuloSetPos - LREAL - 64 - 896 - - - ModuloSetTurns - DINT - 32 - 960 - - - CmdNo - UINT - 16 - 992 - - - CmdState - UINT - 16 - 1008 - - - SetJerk - LREAL - 64 - 1024 - - - SetTorque - LREAL - 64 - 1088 - - - ActTorque - LREAL - 64 - 1152 - - - StateDWord2 - NCTOPLC_AXIS_REF_STATE2 - 32 - 1216 - - - StateDWord3 - DWORD - 32 - 1248 - - - TouchProbeState - DWORD - 32 - 1280 - - - TouchProbeCounter - DWORD - 32 - 1312 - - - CamCouplingState - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - - 0 - 8 - - 64 - 1344 - - - CamCouplingTableID - UINTARR8 - 128 - 1408 - - - ActTorqueDerivative - LREAL - 64 - 1536 - - - SetTorqueDerivative - LREAL - 64 - 1600 - - - ActPosWithoutPosCorrection - LREAL - 64 - 1792 - - - ActAcc - LREAL - 64 - 1856 - - - DcTimeStamp - UDINT - 32 - 1920 - - - - NcStructType - 2 - - - - - NCAXLESTRUCT_TOPLC - - - NCAXLESTRUCT_TOPLC2 - - - NCAXLESTRUCT_TOPLC3 - - - NCAXLESTRUCT_TOPLC4 - - - - - - - - - - - - - - PLCTONC_AXIS_REF_CTRL - 32 - - Enable - BIT - 1 - 0 - - - FeedEnablePlus - BIT - 1 - 1 - - - FeedEnableMinus - BIT - 1 - 2 - - - HomingSensor - BIT - 1 - 5 - - - AcceptBlockedDrive - BIT - 1 - 8 - - - PlcDebugFlag - BIT - 1 - 30 - - - NcDebugFlag - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - PLCTONC_AXIS_REF - 1024 - - ControlDWord - PLCTONC_AXIS_REF_CTRL - 32 - 0 - - - Override - UDINT - 32 - 32 - - - AxisModeRequest - UDINT - 32 - 64 - - - AxisModeDWord - UDINT - 32 - 96 - - - AxisModeLReal - LREAL - 64 - 128 - - - PositionCorrection - LREAL - 64 - 192 - - - ExtSetPos - LREAL - 64 - 256 - - - ExtSetVelo - LREAL - 64 - 320 - - - ExtSetAcc - LREAL - 64 - 384 - - - ExtSetDirection - DINT - 32 - 448 - - - ExtControllerOutput - LREAL - 64 - 512 - - - GearRatio1 - LREAL - 64 - 576 - - - GearRatio2 - LREAL - 64 - 640 - - - GearRatio3 - LREAL - 64 - 704 - - - GearRatio4 - LREAL - 64 - 768 - - - MapState - BOOL - 8 - 832 - - - PlcCycleControl - BYTE - 8 - 840 - - - PlcCycleCount - BYTE - 8 - 848 - - - - NcStructType - 1 - - - - - NCAXLESTRUCT_FROMPLC3 - - - - @@ -907,99 +34,23 @@ External Setpoint Generation: tc_project_app Instance {08500001-0000-0000-F000-000000000064} - - PlcTask Inputs - - GVL.axes[1].inputs.bLimitFwd - - BOOL - - - GVL.axes[1].inputs.bLimitBwd - - BOOL - - - GVL.axes[1].inputs.bHomeSensor - - BOOL - - - GVL.axes[1].inputs.bEncLAtch - - BOOL - - - GVL.axes[1].Axis.NcToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - - - - - - PlcTask Outputs - - MAIN.bOutput1 - - BOOL - - - GVL.axes[1].Axis.PlcToNc - PLCTONC_AXIS_REF - - + + + + + + + + + + + + - - - - - - - - - - diff --git a/solution/tc_project_app/PlcTask.TcTTO b/solution/tc_project_app/PlcTask.TcTTO index 3be8aea..b5badec 100644 --- a/solution/tc_project_app/PlcTask.TcTTO +++ b/solution/tc_project_app/PlcTask.TcTTO @@ -7,9 +7,6 @@ MAIN - - tcUNIT_STD_LIB_RUN - {26d89752-95b4-4b52-80c0-c79242bc34d7} {137c4fd1-c794-4dee-a041-b4fea1d22866} {2478772d-357b-433f-886f-15340bef9bdf} From dcc427cab93b5770f91069d6e0a0ac8fcf06dca7 Mon Sep 17 00:00:00 2001 From: aaronlong Date: Wed, 4 Mar 2020 11:12:07 +0000 Subject: [PATCH 14/14] Cleaned up axis files --- .../_Config/CNC/Axes/tcUNIT_virtual_axis.xti | 302 ---- solution/_Config/CNC/CNC.xti | 573 ------- .../_Config/NC/Axes/tcUNIT_virtual_axis.xti | 1525 ----------------- 3 files changed, 2400 deletions(-) delete mode 100644 solution/_Config/CNC/Axes/tcUNIT_virtual_axis.xti delete mode 100644 solution/_Config/CNC/CNC.xti delete mode 100644 solution/_Config/NC/Axes/tcUNIT_virtual_axis.xti diff --git a/solution/_Config/CNC/Axes/tcUNIT_virtual_axis.xti b/solution/_Config/CNC/Axes/tcUNIT_virtual_axis.xti deleted file mode 100644 index 65dd9ce..0000000 --- a/solution/_Config/CNC/Axes/tcUNIT_virtual_axis.xti +++ /dev/null @@ -1,302 +0,0 @@ - - - - __FILENAME__ - 171 - - Inputs - - - Outputs - - - - diff --git a/solution/_Config/CNC/CNC.xti b/solution/_Config/CNC/CNC.xti deleted file mode 100644 index 8e99e26..0000000 --- a/solution/_Config/CNC/CNC.xti +++ /dev/null @@ -1,573 +0,0 @@ - - - - CNC - - CNC-Task GEO - - - CNC-Task SDA - - - CNC-Task COM - - ].prg[ ] -# -# prg -> Program path -# log_nr -> logical program path number -# typ -> Programmpfadtyp ( 0x01 Main program path ) -# ( 0x02 Sub program path ) -# ( 0x03 Main- and sub program path ) -# -# prioritaet -> priority of the program path, -# (if there are multible program paths with the same type) -# -# additional program path, customer -pfad[0].prg[0] sub -pfad[0].log_nr[0] 1 # logical path number -pfad[0].typ[0] 0x07 # main- and subprogram path, MSG SAVE -pfad[0].prioritaet[0] 1 # priority -# -# program path for sub programs -pfad[0].prg[1] cycles -pfad[0].log_nr[1] 2 # logical path number -pfad[0].typ[1] 0x03 # main- and subprogram path -pfad[0].prioritaet[1] 2 # priority -# -# program path for cycles -pfad[0].prg[2] customer -pfad[0].log_nr[2] 3 # logical path number -pfad[0].typ[2] 0x03 # main- and subprogram path -pfad[0].prioritaet[2] 3 # priority -# -# ------------------------------------------------------------------------------------------------------ -# Do not change data below this line!!! -# Daten unterhalb dieser Zeile nicht aendern, teilweise werden durch -# den Systemmanager Aenderungen automatisch durchgefuehrt!!! -# ------------------------------------------------------------------------------------------------------ -# -# -kanal_anzahl 0 -ext_var_max 100 -# -# ---------------------------------------- -# Lists for configuration data -# ---------------------------------------- -listen ASCII -# -default_sda_mds tc_virtual_1\default_sda.lis -# -hand_mds tc_virtual_2\hand_mds.lis -# -konf_path . -# -default_achs_mds tc_virtual_3\default_mds.lis -zahl_mds 1 -achs_mds[0] tc_virtual_4\achsmds1.lis -# -zahl_kw 0 -# -Ende - -]]> - - - - - - - - diff --git a/solution/_Config/NC/Axes/tcUNIT_virtual_axis.xti b/solution/_Config/NC/Axes/tcUNIT_virtual_axis.xti deleted file mode 100644 index 87ec62b..0000000 --- a/solution/_Config/NC/Axes/tcUNIT_virtual_axis.xti +++ /dev/null @@ -1,1525 +0,0 @@ - - - - - UINTARR2 - 32 - UINT - - 0 - 2 - - - [%u, %u] - [0] - [1] - - - 0x%08x [%u, %u] - . - [0] - [1] - - - 0x%08x (%u) - . - . - - - - NCENCODERSTRUCT_IN2B - 320 - - nDataIn1 - UINTARR2 - 32 - 0 - - - nDataIn2 - UINTARR2 - 32 - 32 - - - nState1 - USINT - 8 - 64 - - - nState2 - USINT - 8 - 72 - - - nState3 - USINT - 8 - 80 - - - nState4 - USINT - - 8 - 88 - - - nDataIn3 - UINTARR2 - 32 - 96 - - - nDataIn4 - UINTARR2 - 32 - 128 - - - nDataIn5 - UINTARR2 - 32 - 160 - - - nDataIn6 - UINTARR2 - 32 - 192 - - - nState5 - USINT - 8 - 224 - - - nState6 - USINT - 8 - 232 - - - nState7 - USINT - 8 - 240 - - - nState8 - USINT - 8 - 248 - - - nDcInputTime - DINT - 32 - 256 - - - nDataIn7 - UINTARR2 - 32 - 288 - - - - NCENCODERSTRUCT_IN - - 96 - - - - - - NCENCODERSTRUCT_OUT2 - 320 - - nDataOut1 - UINTARR2 - 32 - 0 - - - nDataOut2 - UINTARR2 - 32 - 32 - - - nCtrl1 - USINT - 8 - 64 - - - nCtrl2 - USINT - 8 - 72 - - - nCtrl3 - USINT - 8 - 80 - - - nCtrl4 - USINT - 8 - 88 - - - nDataOut3 - UINTARR2 - 32 - 96 - - - nDataOut4 - UINTARR2 - 32 - 128 - - - nDataOut5 - UINTARR2 - 32 - 160 - - - nDataOut6 - UINTARR2 - 32 - 192 - - - nCtrl5 - USINT - 8 - 224 - - - nCtrl6 - USINT - 8 - 232 - - - nCtrl7 - USINT - 8 - 240 - - - nCtrl8 - USINT - 8 - 248 - - - - NCENCODERSTRUCT_OUT - - 96 - - - - - - NCDRIVESTRUCT_IN2 - 320 - - nDataIn1 - UINTARR2 - 32 - 0 - - - nDataIn2 - UINTARR2 - 32 - 32 - - - nState1 - USINT - 8 - 64 - - - nState2 - USINT - 8 - 72 - - - nState3 - USINT - 8 - 80 - - - nState4 - USINT - - 8 - 88 - - - nDataIn3 - UINTARR2 - 32 - 96 - - - nDataIn4 - UINTARR2 - 32 - 128 - - - nDataIn5 - UINTARR2 - 32 - 160 - - - nDataIn6 - UINTARR2 - 32 - 192 - - - nState5 - USINT - 8 - 224 - - - nState6 - USINT - 8 - 232 - - - nState7 - USINT - 8 - 240 - - - nState8 - USINT - 8 - 248 - - - nDcOutputTime - DINT - 32 - 256 - - - - NCDRIVESTRUCT_IN - - 96 - - - - - - NCDRIVESTRUCT_OUT2 - 320 - - nDataOut1 - UINTARR2 - 32 - 0 - - - nDataOut2 - UINTARR2 - 32 - 32 - - - nCtrl1 - USINT - 8 - 64 - - - nCtrl2 - USINT - 8 - 72 - - - nCtrl3 - USINT - 8 - 80 - - - nCtrl4 - USINT - 8 - 88 - - - nDataOut3 - UINTARR2 - 32 - 96 - - - nDataOut4 - UINTARR2 - 32 - 128 - - - nDataOut5 - UINTARR2 - 32 - 160 - - - nDataOut6 - UINTARR2 - 32 - 192 - - - nCtrl5 - USINT - 8 - 224 - - - nCtrl6 - USINT - 8 - 232 - - - nCtrl7 - USINT - 8 - 240 - - - nCtrl8 - USINT - 8 - 248 - - - - NCDRIVESTRUCT_OUT - - 96 - - - - - - PLCTONC_AXIS_REF_CTRL - 32 - - Enable - BIT - 1 - 0 - - - FeedEnablePlus - BIT - 1 - 1 - - - FeedEnableMinus - BIT - 1 - 2 - - - HomingSensor - BIT - 1 - 5 - - - AcceptBlockedDrive - BIT - 1 - 8 - - - PlcDebugFlag - BIT - 1 - 30 - - - NcDebugFlag - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - PLCTONC_AXIS_REF - 1024 - - ControlDWord - PLCTONC_AXIS_REF_CTRL - 32 - 0 - - - Override - UDINT - 32 - 32 - - - AxisModeRequest - UDINT - 32 - 64 - - - AxisModeDWord - UDINT - 32 - 96 - - - AxisModeLReal - LREAL - 64 - 128 - - - PositionCorrection - LREAL - 64 - 192 - - - ExtSetPos - LREAL - 64 - 256 - - - ExtSetVelo - LREAL - 64 - 320 - - - ExtSetAcc - LREAL - 64 - 384 - - - ExtSetDirection - DINT - 32 - 448 - - - ExtControllerOutput - LREAL - 64 - 512 - - - GearRatio1 - LREAL - 64 - 576 - - - GearRatio2 - LREAL - 64 - 640 - - - GearRatio3 - LREAL - 64 - 704 - - - GearRatio4 - LREAL - 64 - 768 - - - MapState - BOOL - 8 - 832 - - - PlcCycleControl - BYTE - 8 - 840 - - - PlcCycleCount - BYTE - 8 - 848 - - - - NcStructType - 1 - - - - - NCAXLESTRUCT_FROMPLC3 - - - - - NCTOPLC_AXIS_REF_STATE - 32 - - Operational - BIT - 1 - 0 - - - Homed - BIT - 1 - 1 - - - NotMoving - BIT - 1 - 2 - - - InPositionArea - BIT - 1 - 3 - - - InTargetPosition - BIT - 1 - 4 - - - Protected - BIT - 1 - 5 - - - ErrorPropagationDelayed - BIT - 1 - 6 - - - HasBeenStopped - BIT - 1 - 7 - - - HasJob - BIT - 1 - 8 - - - PositiveDirection - BIT - 1 - 9 - - - NegativeDirection - BIT - 1 - 10 - - - HomingBusy - BIT - 1 - 11 - - - ConstantVelocity - BIT - 1 - 12 - - - Compensating - BIT - 1 - 13 - - - ExtSetPointGenEnabled - BIT - 1 - 14 - - - PhasingActive - BIT - 1 - 15 - - - ExternalLatchValid - BIT - 1 - 16 - - - NewTargetPos - BIT - 1 - 17 - - - ContinuousMotion - BIT - 1 - 19 - - - ControlLoopClosed - BIT - 1 - 20 - - - CamTableQueued - BIT - 1 - 21 - - - CamDataQueued - BIT - 1 - 22 - - - CamScalingPending - BIT - 1 - 23 - - - CmdBuffered - BIT - 1 - 24 - - - PTPmode - BIT - 1 - 25 - - - SoftLimitMinExceeded - BIT - 1 - 26 - - - SoftLimitMaxExceeded - BIT - 1 - 27 - - - DriveDeviceError - BIT - 1 - 28 - - - MotionCommandsLocked - BIT - 1 - 29 - - - IoDataInvalid - BIT - 1 - 30 - - - Error - BIT - 1 - 31 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_OPMODE - 32 - - OpModePosAreaMonitoring - BIT - 1 - 0 - - - OpModeTargetPosMonitoring - BIT - 1 - 1 - - - OpModeLoop - BIT - 1 - 2 - - - OpModeMotionMonitoring - BIT - 1 - 3 - - - OpModePEHTimeMonitoring - BIT - 1 - 4 - - - OpModeBacklashCompensation - BIT - 1 - 5 - - - OpModeDelayedErrorReaction - BIT - 1 - 6 - - - OpModeModulo - BIT - 1 - 7 - - - OpModeSimulationAxis - BIT - 1 - 8 - - - OpModePosLagMonitoring - BIT - 1 - 16 - - - OpModeVeloLagMonitoring - BIT - 1 - 17 - - - OpModeSoftLimitMinMonitoring - BIT - 1 - 18 - - - OpModeSoftLimitMaxMonitoring - BIT - 1 - 19 - - - OpModePosCorrection - BIT - 1 - 20 - - - OpModeAllowSlaveCommands - BIT - 1 - 21 - - - OpModeAllowExtSetAxisCommands - BIT - 1 - 22 - - - ApplicationRequest - BIT - 1 - 23 - - - - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - - AvoidingCollision - BIT - 1 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_STATE2 - 32 - - Value - DWORD - 32 - 0 - - - Flags - NCTOPLC_AXIS_REF_STATE2_FLAGS - 32 - 0 - - - %08x - - - 0x%08x - - - 16#%08X - - - - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - 8 - - CamActivationPending - BIT - 1 - 0 - - - CamDeactivationPending - BIT - 1 - 1 - - - CamActive - BIT - 1 - 2 - - - CamDataQueued - BIT - 1 - 6 - - - CamScalingPending - BIT - 1 - 7 - - - - UINTARR8 - 128 - UINT - - 0 - 8 - - - - NCTOPLC_AXIS_REF - 2048 - - StateDWord - NCTOPLC_AXIS_REF_STATE - 32 - 0 - - - ErrorCode - UDINT - 32 - 32 - - - AxisState - UDINT - - 32 - 64 - - - AxisModeConfirmation - UDINT - 32 - 96 - - - HomingState - UDINT - - 32 - 128 - - - CoupleState - UDINT - - 32 - 160 - - - SvbEntries - UDINT - 32 - 192 - - - SafEntries - UDINT - 32 - 224 - - - AxisId - UDINT - 32 - 256 - - - OpModeDWord - NCTOPLC_AXIS_REF_OPMODE - 32 - 288 - - - ActPos - LREAL - 64 - 320 - - - ModuloActPos - LREAL - 64 - 384 - - - ActiveControlLoopIndex - UINT - 16 - 448 - - - ControlLoopIndex - UINT - 16 - 464 - - - ModuloActTurns - DINT - 32 - 480 - - - ActVelo - LREAL - 64 - 512 - - - PosDiff - LREAL - 64 - 576 - - - SetPos - LREAL - 64 - 640 - - - SetVelo - LREAL - 64 - 704 - - - SetAcc - LREAL - 64 - 768 - - - TargetPos - LREAL - 64 - 832 - - - ModuloSetPos - LREAL - 64 - 896 - - - ModuloSetTurns - DINT - 32 - 960 - - - CmdNo - UINT - 16 - 992 - - - CmdState - UINT - 16 - 1008 - - - SetJerk - LREAL - 64 - 1024 - - - SetTorque - LREAL - 64 - 1088 - - - ActTorque - LREAL - 64 - 1152 - - - StateDWord2 - NCTOPLC_AXIS_REF_STATE2 - 32 - 1216 - - - StateDWord3 - DWORD - 32 - 1248 - - - TouchProbeState - DWORD - 32 - 1280 - - - TouchProbeCounter - DWORD - 32 - 1312 - - - CamCouplingState - NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE - - 0 - 8 - - 64 - 1344 - - - CamCouplingTableID - UINTARR8 - 128 - 1408 - - - ActTorqueDerivative - LREAL - 64 - 1536 - - - SetTorqueDerivative - LREAL - 64 - 1600 - - - ActPosWithoutPosCorrection - LREAL - 64 - 1792 - - - ActAcc - LREAL - 64 - 1856 - - - DcTimeStamp - UDINT - 32 - 1920 - - - - NcStructType - 2 - - - - - NCAXLESTRUCT_TOPLC - - - NCAXLESTRUCT_TOPLC2 - - - NCAXLESTRUCT_TOPLC3 - - - NCAXLESTRUCT_TOPLC4 - - - - - - - - - - - - - - - __FILENAME__ - - - - - - Inputs - - In - NCENCODERSTRUCT_IN2B - 1024 - - nDataIn1 - - - nDataIn2 - - - nState4 - - - - nDataIn3 - - - nDataIn4 - - - nDataIn5 - - - nDataIn6 - - - nDataIn7 - - - - - Outputs - - Out - NCENCODERSTRUCT_OUT2 - 2048 - - nDataOut1 - - - nDataOut2 - - - nDataOut3 - - - nDataOut4 - - - nDataOut5 - - - nDataOut6 - - - - - - - - - - Inputs - - In - NCDRIVESTRUCT_IN2 - 1344 - - nDataIn1 - - - nDataIn2 - - - nState4 - - - - nDataIn3 - - - nDataIn4 - - - nDataIn5 - - - nDataIn6 - - - - - Outputs - - Out - NCDRIVESTRUCT_OUT2 - 2368 - - nDataOut1 - - - nDataOut2 - - - nCtrl2 - - - - nCtrl3 - - - - nDataOut3 - - - nDataOut4 - - - nDataOut5 - - - nDataOut6 - - - - - - - - - - - Inputs - - FromPlc - PLCTONC_AXIS_REF - - - - Outputs - - ToPlc - NCTOPLC_AXIS_REF - - AxisState - - - - HomingState - - - - CoupleState - - - - - -