diff --git a/.gitattributes b/.gitattributes
index d697d2e..a1aec5e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,8 +1,6 @@
# end of line conversion CLRF -- LF
-# Default is no conversion (follow Visual Studio)
-* -text
+# Default is auto
+* text=auto
#
-.gitattributes text
-.gitignore text
-
-
+# Shell scripts must be line feed
+*.sh text eol=lf
diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml
index d47cd1d..7c786ab 100644
--- a/bitbucket-pipelines.yml
+++ b/bitbucket-pipelines.yml
@@ -1,11 +1,11 @@
-image: python:3.7.3
-options:
- max-time: 1
-pipelines:
- default:
- - step:
- script:
- - git submodule update --init
- - git submodule
- - python twincat_version_manager.py
- - python check_fix_white_space.py
+image: python:3.7.3
+options:
+ max-time: 1
+pipelines:
+ default:
+ - step:
+ script:
+ - git submodule update --init
+ - git submodule
+ - python twincat_version_manager.py
+ - python check_fix_white_space.py
diff --git a/solution.sln b/solution.sln
index 976e55d..9459e68 100644
--- a/solution.sln
+++ b/solution.sln
@@ -1,72 +1,72 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.21005.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "solution", "solution\solution.tsproj", "{9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|TwinCAT CE7 (ARMV7) = Debug|TwinCAT CE7 (ARMV7)
- Debug|TwinCAT OS (ARMT2) = Debug|TwinCAT OS (ARMT2)
- Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64)
- Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86)
- Release|TwinCAT CE7 (ARMV7) = Release|TwinCAT CE7 (ARMV7)
- Release|TwinCAT OS (ARMT2) = Release|TwinCAT OS (ARMT2)
- Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64)
- Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86)
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
- {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
- {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
- {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "solution", "solution\solution.tsproj", "{9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|TwinCAT CE7 (ARMV7) = Debug|TwinCAT CE7 (ARMV7)
+ Debug|TwinCAT OS (ARMT2) = Debug|TwinCAT OS (ARMT2)
+ Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64)
+ Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86)
+ Release|TwinCAT CE7 (ARMV7) = Release|TwinCAT CE7 (ARMV7)
+ Release|TwinCAT OS (ARMT2) = Release|TwinCAT OS (ARMT2)
+ Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64)
+ Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86)
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
+ {9CF97348-B9D3-4938-B1F2-5F0B0B6AA66A}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
+ {F935F1DE-0753-4702-B418-1DC0ED040A4D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
+ {FB261665-FD20-4BF2-97F8-2854C82B752D}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/solution/Licenses/ReadMe_licenses.txt b/solution/Licenses/ReadMe_licenses.txt
index 79e6b36..1cc9be8 100644
--- a/solution/Licenses/ReadMe_licenses.txt
+++ b/solution/Licenses/ReadMe_licenses.txt
@@ -1,5 +1,5 @@
-Copy and paste in this folder the licenses contained inside the Beckhoff CPU in the path:
-
-C:\TwinCAT\3.1\Target\License
-
+Copy and paste in this folder the licenses contained inside the Beckhoff CPU in the path:
+
+C:\TwinCAT\3.1\Target\License
+
Thank you
\ No newline at end of file
diff --git a/solution/_Config/NC/1.xml b/solution/_Config/NC/1.xml
index 02118c9..7447a9f 100644
--- a/solution/_Config/NC/1.xml
+++ b/solution/_Config/NC/1.xml
@@ -1,2 +1,2 @@
-
-1mm15001500225015000150000130000000303010060020002000true5false0.1false100true2falsefalse000false10.010truefalsefalse5510.0001103600false21677721500.010.1false0false0false000falsetrue0false0false0104857500false005false1-1165535#x000000000.1002200101100000000.01211100001361291330false110111true5false010000.10.1false0.10.50.10000.10.100.50000false0.010112010.001
+
+1mm15001500225015000150000130000000303010060020002000true5false0.1false100true2falsefalse000false10.010truefalsefalse5510.0001103600false21677721500.010.1false0false0false000falsetrue0false0false0104857500false005false1-1165535#x000000000.1002200101100000000.01211100001361291330false110111true5false010000.10.1false0.10.50.10000.10.100.50000false0.010112010.001
diff --git a/solution/solution.tsproj b/solution/solution.tsproj
index 729ffe6..45bd716 100644
--- a/solution/solution.tsproj
+++ b/solution/solution.tsproj
@@ -1,1125 +1,1125 @@
-
-
-
-
- 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
-
-
-
-
-
-
-
-
- {3EBB9639-5FF3-42B6-8847-35C70DC013C8}
-
-
-
-
- PlcTaskCom
-
-
- PlcTask
-
-
-
-
-
-
- tc_epicscommodule Instance
- {08500001-0000-0000-F000-000000000064}
-
-
-
-
-
-
-
- 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
-
-
-
-
- GVL.axes[2].inputs.bLimitFwd
-
- BOOL
-
-
- GVL.axes[2].inputs.bLimitBwd
-
- BOOL
-
-
- GVL.axes[2].inputs.bHomeSensor
-
- BOOL
-
-
- GVL.axes[2].inputs.bEncLAtch
-
- BOOL
-
-
- GVL.axes[2].Axis.NcToPlc
- NCTOPLC_AXIS_REF
-
- AxisState
-
-
-
- HomingState
-
-
-
- CoupleState
-
-
-
-
- GVL.axes[3].inputs.bLimitFwd
-
- BOOL
-
-
- GVL.axes[3].inputs.bLimitBwd
-
- BOOL
-
-
- GVL.axes[3].inputs.bHomeSensor
-
- BOOL
-
-
- GVL.axes[3].inputs.bEncLAtch
-
- BOOL
-
-
- GVL.axes[3].Axis.NcToPlc
- NCTOPLC_AXIS_REF
-
- AxisState
-
-
-
- HomingState
-
-
-
- CoupleState
-
-
-
-
-
- PlcTask Outputs
-
- MAIN.bOutput1
-
- BOOL
-
-
- GVL.axes[1].Axis.PlcToNc
- PLCTONC_AXIS_REF
-
-
- GVL.axes[2].Axis.PlcToNc
- PLCTONC_AXIS_REF
-
-
- GVL.axes[3].Axis.PlcToNc
- PLCTONC_AXIS_REF
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+ {3EBB9639-5FF3-42B6-8847-35C70DC013C8}
+
+
+
+
+ PlcTaskCom
+
+
+ PlcTask
+
+
+
+
+
+
+ tc_epicscommodule Instance
+ {08500001-0000-0000-F000-000000000064}
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ GVL.axes[2].inputs.bLimitFwd
+
+ BOOL
+
+
+ GVL.axes[2].inputs.bLimitBwd
+
+ BOOL
+
+
+ GVL.axes[2].inputs.bHomeSensor
+
+ BOOL
+
+
+ GVL.axes[2].inputs.bEncLAtch
+
+ BOOL
+
+
+ GVL.axes[2].Axis.NcToPlc
+ NCTOPLC_AXIS_REF
+
+ AxisState
+
+
+
+ HomingState
+
+
+
+ CoupleState
+
+
+
+
+ GVL.axes[3].inputs.bLimitFwd
+
+ BOOL
+
+
+ GVL.axes[3].inputs.bLimitBwd
+
+ BOOL
+
+
+ GVL.axes[3].inputs.bHomeSensor
+
+ BOOL
+
+
+ GVL.axes[3].inputs.bEncLAtch
+
+ BOOL
+
+
+ GVL.axes[3].Axis.NcToPlc
+ NCTOPLC_AXIS_REF
+
+ AxisState
+
+
+
+ HomingState
+
+
+
+ CoupleState
+
+
+
+
+
+ PlcTask Outputs
+
+ MAIN.bOutput1
+
+ BOOL
+
+
+ GVL.axes[1].Axis.PlcToNc
+ PLCTONC_AXIS_REF
+
+
+ GVL.axes[2].Axis.PlcToNc
+ PLCTONC_AXIS_REF
+
+
+ GVL.axes[3].Axis.PlcToNc
+ PLCTONC_AXIS_REF
+
+
+
+
+
+
+
+
+
+
diff --git a/solution/tc_project_app/GVLs/GVL_APP.TcGVL b/solution/tc_project_app/GVLs/GVL_APP.TcGVL
index a846a85..150f4ac 100644
--- a/solution/tc_project_app/GVLs/GVL_APP.TcGVL
+++ b/solution/tc_project_app/GVLs/GVL_APP.TcGVL
@@ -1,14 +1,14 @@
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/solution/tc_project_app/GlobalTextList.TcGTLO b/solution/tc_project_app/GlobalTextList.TcGTLO
index 859af55..1818614 100644
--- a/solution/tc_project_app/GlobalTextList.TcGTLO
+++ b/solution/tc_project_app/GlobalTextList.TcGTLO
@@ -1,279 +1,279 @@
-
-
-
-
-
-
-
-
- "951"
- "%2.2f"
-
-
-
- "878"
- "%d"
-
-
-
- "706"
- "%i"
-
-
-
- "940"
- "%x"
-
-
-
- "703"
- "Acknowledge"
-
-
-
- "710"
- "Active:"
-
-
-
- "952"
- "actPos"
-
-
-
- "953"
- "actVel"
-
-
-
- "110"
- "AXESMAX"
-
-
-
- "107"
- "axisSel"
-
-
-
- "945"
- "bBusy"
-
-
-
- "950"
- "bBwEnabled"
-
-
-
- "946"
- "bDone"
-
-
-
- "943"
- "bEnabled"
-
-
-
- "941"
- "bError"
-
-
-
- "102"
- "bExecute"
-
-
-
- "949"
- "bFwEnabled"
-
-
-
- "297"
- "bGeared"
-
-
-
- "948"
- "bHomed"
-
-
-
- "947"
- "bResetDone"
-
-
-
- "944"
- "bWarning"
-
-
-
- "704"
- "Clear All"
-
-
-
- "104"
- "ENABLE"
-
-
-
- "106"
- "ENABLE BW"
-
-
-
- "105"
- "ENABLE FW"
-
-
-
- "109"
- "English"
-
-
-
- "939"
- "errID"
-
-
-
- "701"
- "Error #"
-
-
-
- "705"
- "Error #:"
-
-
-
- "702"
- "Error Log"
-
-
-
- "707"
- "Errors:"
-
-
-
- "955"
- "fAcceleration"
-
-
-
- "956"
- "fDeceleration"
-
-
-
- "957"
- "fPosition"
-
-
-
- "708"
- "Free Entries:"
-
-
-
- "954"
- "fVelocity"
-
-
-
- "299"
- "gearIn"
-
-
-
- "300"
- "gearOut"
-
-
-
- "711"
- "Inactive:"
-
-
-
- "116"
- "jogBw"
-
-
-
- "117"
- "jogFw"
-
-
-
- "298"
- "masterGear"
-
-
-
- "111"
- "moveAbsolute"
-
-
-
- "114"
- "moveModulo"
-
-
-
- "113"
- "moveRelative"
-
-
-
- "112"
- "moveVelocity"
-
-
-
- "709"
- "Overflows:"
-
-
-
- "942"
- "reset"
-
-
-
- "115"
- "stop"
-
-
-
- "108"
- "Test Language"
-
-
-
- "103"
- "toggle"
-
-
-
-
- {062c6d5a-aca0-4f82-8481-8e26e8c8681e}
- {d08328f1-0dac-4dfb-b105-bd18d7b5a756}
- {180f93fa-c96b-483e-953c-133bc7d30e18}
-
-
-
- System.Collections.ArrayList
- {63784cbb-9ba0-45e6-9d69-babf3f040511}
- System.Guid
- System.String
- {53da1be7-ad25-47c3-b0e8-e26286dad2e0}
-
-
-
+
+
+
+
+
+
+
+
+ "951"
+ "%2.2f"
+
+
+
+ "878"
+ "%d"
+
+
+
+ "706"
+ "%i"
+
+
+
+ "940"
+ "%x"
+
+
+
+ "703"
+ "Acknowledge"
+
+
+
+ "710"
+ "Active:"
+
+
+
+ "952"
+ "actPos"
+
+
+
+ "953"
+ "actVel"
+
+
+
+ "110"
+ "AXESMAX"
+
+
+
+ "107"
+ "axisSel"
+
+
+
+ "945"
+ "bBusy"
+
+
+
+ "950"
+ "bBwEnabled"
+
+
+
+ "946"
+ "bDone"
+
+
+
+ "943"
+ "bEnabled"
+
+
+
+ "941"
+ "bError"
+
+
+
+ "102"
+ "bExecute"
+
+
+
+ "949"
+ "bFwEnabled"
+
+
+
+ "297"
+ "bGeared"
+
+
+
+ "948"
+ "bHomed"
+
+
+
+ "947"
+ "bResetDone"
+
+
+
+ "944"
+ "bWarning"
+
+
+
+ "704"
+ "Clear All"
+
+
+
+ "104"
+ "ENABLE"
+
+
+
+ "106"
+ "ENABLE BW"
+
+
+
+ "105"
+ "ENABLE FW"
+
+
+
+ "109"
+ "English"
+
+
+
+ "939"
+ "errID"
+
+
+
+ "701"
+ "Error #"
+
+
+
+ "705"
+ "Error #:"
+
+
+
+ "702"
+ "Error Log"
+
+
+
+ "707"
+ "Errors:"
+
+
+
+ "955"
+ "fAcceleration"
+
+
+
+ "956"
+ "fDeceleration"
+
+
+
+ "957"
+ "fPosition"
+
+
+
+ "708"
+ "Free Entries:"
+
+
+
+ "954"
+ "fVelocity"
+
+
+
+ "299"
+ "gearIn"
+
+
+
+ "300"
+ "gearOut"
+
+
+
+ "711"
+ "Inactive:"
+
+
+
+ "116"
+ "jogBw"
+
+
+
+ "117"
+ "jogFw"
+
+
+
+ "298"
+ "masterGear"
+
+
+
+ "111"
+ "moveAbsolute"
+
+
+
+ "114"
+ "moveModulo"
+
+
+
+ "113"
+ "moveRelative"
+
+
+
+ "112"
+ "moveVelocity"
+
+
+
+ "709"
+ "Overflows:"
+
+
+
+ "942"
+ "reset"
+
+
+
+ "115"
+ "stop"
+
+
+
+ "108"
+ "Test Language"
+
+
+
+ "103"
+ "toggle"
+
+
+
+
+ {062c6d5a-aca0-4f82-8481-8e26e8c8681e}
+ {d08328f1-0dac-4dfb-b105-bd18d7b5a756}
+ {180f93fa-c96b-483e-953c-133bc7d30e18}
+
+
+
+ System.Collections.ArrayList
+ {63784cbb-9ba0-45e6-9d69-babf3f040511}
+ System.Guid
+ System.String
+ {53da1be7-ad25-47c3-b0e8-e26286dad2e0}
+
+
+
\ No newline at end of file
diff --git a/solution/tc_project_app/POUs/MAIN.TcPOU b/solution/tc_project_app/POUs/MAIN.TcPOU
index d74f2d1..887910d 100644
--- a/solution/tc_project_app/POUs/MAIN.TcPOU
+++ b/solution/tc_project_app/POUs/MAIN.TcPOU
@@ -1,144 +1,144 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ,
- nSelectedError=> ,
- pErrorSystem=> );
-
-
-FOR GVL.iAxis:=1 TO gvl_app.axisNum DO
- aFbAxesError[gvl.iAxis](EN:=TRUE,
- nNC_ErrorID:= gvl.axes[gvl.iAxis].status.nErrorID,
- nNC_AxisID:=gvl.axes[gvl.iAxis].Axis.NcToPlc.AxisId,
- ErrorSystem:= fbErrorSystem.pErrorSystem);
-END_FOR
-
-
-
-(*call all the necessary instance (input assistance F2 or right click) according to the terminals that you have in your hardware and
- add "TRUE" in the input En, the corresponding number of termianl to the iTerminal_ID and
-the variable "fbErrorSystem.pErrorSystem" to the input ErrorSystem in each FB E. g. :
-fbEL1808(
- En:= TRUE,
- iTerminal_ID:= 01,
- ErrorSystem:= fbErorSystem.pErrorSystem,
- EnO=> ,
- bError=> );
- *)
-
-]]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ,
+ nSelectedError=> ,
+ pErrorSystem=> );
+
+
+FOR GVL.iAxis:=1 TO gvl_app.axisNum DO
+ aFbAxesError[gvl.iAxis](EN:=TRUE,
+ nNC_ErrorID:= gvl.axes[gvl.iAxis].status.nErrorID,
+ nNC_AxisID:=gvl.axes[gvl.iAxis].Axis.NcToPlc.AxisId,
+ ErrorSystem:= fbErrorSystem.pErrorSystem);
+END_FOR
+
+
+
+(*call all the necessary instance (input assistance F2 or right click) according to the terminals that you have in your hardware and
+ add "TRUE" in the input En, the corresponding number of termianl to the iTerminal_ID and
+the variable "fbErrorSystem.pErrorSystem" to the input ErrorSystem in each FB E. g. :
+fbEL1808(
+ En:= TRUE,
+ iTerminal_ID:= 01,
+ ErrorSystem:= fbErorSystem.pErrorSystem,
+ EnO=> ,
+ bError=> );
+ *)
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/solution/tc_project_app/PlcTask.TcTTO b/solution/tc_project_app/PlcTask.TcTTO
index 98d1faf..0763afe 100644
--- a/solution/tc_project_app/PlcTask.TcTTO
+++ b/solution/tc_project_app/PlcTask.TcTTO
@@ -1,16 +1,16 @@
-
-
-
-
- 1000
- 20
-
- MAIN
-
- {26d89752-95b4-4b52-80c0-c79242bc34d7}
- {137c4fd1-c794-4dee-a041-b4fea1d22866}
- {2478772d-357b-433f-886f-15340bef9bdf}
- {c16ee410-277f-45f0-a92e-1ec5f87024b9}
- {291eb57a-f9a9-4722-b7d3-fd700e5db288}
-
+
+
+
+
+ 1000
+ 20
+
+ MAIN
+
+ {26d89752-95b4-4b52-80c0-c79242bc34d7}
+ {137c4fd1-c794-4dee-a041-b4fea1d22866}
+ {2478772d-357b-433f-886f-15340bef9bdf}
+ {c16ee410-277f-45f0-a92e-1ec5f87024b9}
+ {291eb57a-f9a9-4722-b7d3-fd700e5db288}
+
\ No newline at end of file
diff --git a/solution/tc_project_app/Visualization Manager.TcVMO b/solution/tc_project_app/Visualization Manager.TcVMO
index 83b1ee8..e63f527 100644
--- a/solution/tc_project_app/Visualization Manager.TcVMO
+++ b/solution/tc_project_app/Visualization Manager.TcVMO
@@ -1,568 +1,568 @@
-
-
-
-
-
-
- Undefined
-
-
- "MainVisu"
- false
- false
- AutoDetect
- 2000
- 2000
- false
- 50000
- 400000
- false
- false
- true
- "Default, 3.1.5.0 (Beckhoff Automation GmbH)"
- 100
- ""
- "VisuDialogs.Numpad"
- "VisuDialogs.Keypad"
- "VisuDialogs.TextinputWithLimits"
- false
- false
- true
- true
- false
- "VisuUserManagement.VUM_Login"
- "VisuUserManagement.VUM_ChangePassword"
- "VisuUserManagement.VUM_UserManagement"
- {00000000-0000-0000-0000-000000000000}
- {00000000-0000-0000-0000-000000000000}
- true
- true
- false
- ""
-
-
-
- FB_Init
- c98701bd-1e9f-450a-a2a8-a2474d536f2e
- FB_Reinit
- 5b6e372a-a69d-40e8-aef7-f470b7c53d95
- FB_Exit
- 0be1b9ab-e8eb-4b33-b803-109abb46bde4
-
- "NotImportant"
- {aa8b7e42-e967-427f-8f2e-f00f9d706470}
-
-
-
- 7
- 4096
- "1002 0004"
- "1.0.0.4"
- {cb73a13e-6ccc-4bc6-8859-f5aa98bb116b}
-
-
- true
- 48
- "0"
-
-
- true
- 49
- "1"
-
-
- true
- 50
- "2"
-
-
- true
- 51
- "3"
-
-
- true
- 52
- "4"
-
-
- true
- 53
- "5"
-
-
- true
- 54
- "6"
-
-
- true
- 55
- "7"
-
-
- true
- 56
- "8"
-
-
- true
- 57
- "9"
-
-
- true
- 65
- "A"
-
-
- true
- 107
- "ADDITION"
-
-
- true
- 66
- "B"
-
-
- true
- 8
- "BACKSPACE"
-
-
- true
- 67
- "C"
-
-
- true
- 110
- "COMMA"
-
-
- true
- 68
- "D"
-
-
- true
- 46
- "DELETE"
-
-
- true
- 111
- "DIVIDE"
-
-
- true
- 40
- "DOWN"
-
-
- true
- 69
- "E"
-
-
- true
- 35
- "END"
-
-
- true
- 27
- "ESCAPE"
-
-
- true
- 70
- "F"
-
-
- true
- 112
- "F1"
-
-
- true
- 121
- "F10"
-
-
- true
- 122
- "F11"
-
-
- true
- 123
- "F12"
-
-
- true
- 113
- "F2"
-
-
- true
- 114
- "F3"
-
-
- true
- 115
- "F4"
-
-
- true
- 116
- "F5"
-
-
- true
- 117
- "F6"
-
-
- true
- 118
- "F7"
-
-
- true
- 119
- "F8"
-
-
- true
- 120
- "F9"
-
-
- true
- 71
- "G"
-
-
- true
- 72
- "H"
-
-
- true
- 36
- "HOME"
-
-
- true
- 73
- "I"
-
-
- true
- 45
- "INSERT"
-
-
- true
- 74
- "J"
-
-
- true
- 75
- "K"
-
-
- true
- 76
- "L"
-
-
- true
- 37
- "LEFT"
-
-
- true
- 77
- "M"
-
-
- true
- 106
- "MULTIPLY"
-
-
- true
- 78
- "N"
-
-
- true
- 96
- "NUM0"
-
-
- true
- 97
- "NUM1"
-
-
- true
- 98
- "NUM2"
-
-
- true
- 99
- "NUM3"
-
-
- true
- 100
- "NUM4"
-
-
- true
- 101
- "NUM5"
-
-
- true
- 102
- "NUM6"
-
-
- true
- 103
- "NUM7"
-
-
- true
- 104
- "NUM8"
-
-
- true
- 105
- "NUM9"
-
-
- true
- 79
- "O"
-
-
- true
- 80
- "P"
-
-
- true
- 19
- "PAUSE"
-
-
- true
- 42
- "PRINT"
-
-
- true
- 81
- "Q"
-
-
- true
- 82
- "R"
-
-
- true
- 13
- "RETURN_KEY"
-
-
- true
- 39
- "RIGHT"
-
-
- true
- 83
- "S"
-
-
- true
- 32
- "SPACE"
-
-
- true
- 109
- "SUBTRACT"
-
-
- true
- 84
- "T"
-
-
- true
- 9
- "TAB"
-
-
- true
- 85
- "U"
-
-
- true
- 38
- "UP"
-
-
- true
- 86
- "V"
-
-
- true
- 87
- "W"
-
-
- true
- 88
- "X"
-
-
- true
- 89
- "Y"
-
-
- true
- 90
- "Z"
-
-
-
-
-
- 481037385728L
- 549755813887L
- 481037385728L
- 549754765312L
- 1048576L
-
-
-
-
- ExecuteLooseCapture
- 4e2884cd-dc97-4120-914c-87a83e618f1f
- ExecuteMouseUp
- 57eea9a5-15d9-4269-bb8d-9fee5420cdb2
- Init
- e61a0910-39b6-4bcc-9a64-fcab62230628
- FB_Exit
- e6e1ea47-0811-4b03-9888-d0564361e0d6
- ExecuteMouseDblClick
- a517a0ac-170b-4df4-b289-55dcb57628ed
- GetElementInfo
- f64cb89f-3016-4fba-85f5-02efcd4282c1
- ExecuteMouseDown
- 94bab392-b395-4c03-9d0e-5738d11bd021
- FB_Reinit
- 97933c03-0169-4afe-ac83-de892204e120
- Initialize
- 6946d6e0-129f-4425-b8b0-ef98281a99e9
- ExecuteMouseMove
- 58fc221c-be14-4e34-871e-a118f8ba9539
- ExecuteDialogClosed
- f08d08b6-e70c-4bef-a136-38845bd246d8
- ExecuteKeyUp
- 7403635b-2725-4f00-93d4-e0dd125959de
- ExecuteKeyDown
- 9649ecda-3794-4d6b-a8a7-71e528d9d170
- abstrGetDefaultCursor
- 25718998-50a9-408d-8b3f-20a55e2cc784
- ExecuteMouseEnter
- 569205fa-533b-4fc2-8d51-21ccab693305
- ExecuteMouseLeave
- 3bacea68-55b4-4764-928e-e69910299932
- FB_Init
- f37e1250-9b48-45ca-810e-c192ea9440ec
- ExecuteMouseClick
- cd348bda-7eaf-4dfe-8c4b-bf9b71e5b10c
-
- "NotImportant"
- {073ee466-cf0a-4c8b-ba92-64f671516699}
-
-
-
- true
- true
-
-
-
-
- {925c2b24-84d1-469a-954d-7af8b99219ef}
- {f905b871-af16-47c5-a6ef-0a0918a8b009}
- {d3706fa7-8257-48b3-af0a-cab0afb4dc49}
- {4d5d9e0c-fa46-4312-abcd-ab81ecde84e1}
- {00a84c7a-9a31-408b-860a-9d896efbd842}
- {3ef700b6-44e8-4cfc-b6e0-26bfef38c2b6}
- {e2123cf7-55c2-43c4-8135-f70e23d789b6}
- {b7fab3e5-7354-42a4-bdf2-bc53461ec63c}
- {967863f2-ccef-44e4-a545-05cbd9acb6be}
- {f97c4870-0a84-4b7b-9cfd-0059a20bebbd}
- {81498829-8b99-4474-8196-a48127c8e5d4}
- {71bfd0df-7f34-4abc-b3b9-84bad2430630}
- {6695a96b-387d-4f98-b9f1-09dab5b7c483}
- {5fe53f14-f5a7-4173-9e2b-538b7d89379a}
- {09c26f6e-e9b1-4455-a763-8dfd243af668}
- {48451f3d-75f9-48ba-acdb-82d62e000f26}
- {8214e061-c2ef-40f5-b519-acfed1ca1cca}
- {97cdf6c7-053d-4364-abf2-f17c232375c1}
- {30af51e2-0f28-4c98-bb4e-6c7a4ef6b64e}
- {9e20996c-a8e0-4843-9524-9317ce5fc512}
- {9d656f8b-b228-46a1-8204-ecc426d69d24}
- {0a915a90-ba73-4abc-b7c3-f5acec9f952a}
- {0dedbb39-c60c-476d-aa88-36e50d09fdfc}
- {9dd59c98-b565-4e32-8873-d0c41e452b61}
- {43ba7f16-75cc-4157-b401-5b6df597b0b4}
- {ccfc9bcc-edea-480a-ac07-0c05646a5eda}
- {5531e874-67e5-49bb-abdc-7ac83b125a33}
- {398fdf90-7db7-4f59-b7ca-c68fb5513e2e}
- {c21922fc-3c9f-4927-affe-3857961c67c0}
- {b435091b-c53f-4ea3-9ed5-223f402a82e7}
- {2acce1aa-45b9-434d-bd0d-05676ddde292}
- {7e796d60-07e9-4daf-b8ad-e42e285dae85}
-
-
-
- System.Collections.ArrayList
- System.Boolean
- {7df88604-7ac5-4e36-91c4-55e4fdad3e68}
- {11a86981-4b02-4f98-b432-96e385cb41b7}
- {c91fc5aa-1e38-43b2-9a05-c52cc5d7f5b6}
- {40d6dd8d-dfd0-493a-8e29-c9a35e1e6539}
- System.Guid
- {6b108d46-58af-4e41-a3f4-174d8f160cc4}
- System.Int32
- System.Int64
- System.String
- {19611221-ebd3-4607-86d2-9822fbe84c30}
- {c37fe731-4f69-4d98-82fe-4f9aefbe200d}
- {997fedbb-1888-4256-b61c-2933d8056bfd}
- {4d3fdb8f-ab50-4c35-9d3a-d4bb9bb9a628}
- {ec9b2ec6-92a2-4856-be72-7866fb274c64}
-
-
-
+
+
+
+
+
+
+ Undefined
+
+
+ "MainVisu"
+ false
+ false
+ AutoDetect
+ 2000
+ 2000
+ false
+ 50000
+ 400000
+ false
+ false
+ true
+ "Default, 3.1.5.0 (Beckhoff Automation GmbH)"
+ 100
+ ""
+ "VisuDialogs.Numpad"
+ "VisuDialogs.Keypad"
+ "VisuDialogs.TextinputWithLimits"
+ false
+ false
+ true
+ true
+ false
+ "VisuUserManagement.VUM_Login"
+ "VisuUserManagement.VUM_ChangePassword"
+ "VisuUserManagement.VUM_UserManagement"
+ {00000000-0000-0000-0000-000000000000}
+ {00000000-0000-0000-0000-000000000000}
+ true
+ true
+ false
+ ""
+
+
+
+ FB_Init
+ c98701bd-1e9f-450a-a2a8-a2474d536f2e
+ FB_Reinit
+ 5b6e372a-a69d-40e8-aef7-f470b7c53d95
+ FB_Exit
+ 0be1b9ab-e8eb-4b33-b803-109abb46bde4
+
+ "NotImportant"
+ {aa8b7e42-e967-427f-8f2e-f00f9d706470}
+
+
+
+ 7
+ 4096
+ "1002 0004"
+ "1.0.0.4"
+ {cb73a13e-6ccc-4bc6-8859-f5aa98bb116b}
+
+
+ true
+ 48
+ "0"
+
+
+ true
+ 49
+ "1"
+
+
+ true
+ 50
+ "2"
+
+
+ true
+ 51
+ "3"
+
+
+ true
+ 52
+ "4"
+
+
+ true
+ 53
+ "5"
+
+
+ true
+ 54
+ "6"
+
+
+ true
+ 55
+ "7"
+
+
+ true
+ 56
+ "8"
+
+
+ true
+ 57
+ "9"
+
+
+ true
+ 65
+ "A"
+
+
+ true
+ 107
+ "ADDITION"
+
+
+ true
+ 66
+ "B"
+
+
+ true
+ 8
+ "BACKSPACE"
+
+
+ true
+ 67
+ "C"
+
+
+ true
+ 110
+ "COMMA"
+
+
+ true
+ 68
+ "D"
+
+
+ true
+ 46
+ "DELETE"
+
+
+ true
+ 111
+ "DIVIDE"
+
+
+ true
+ 40
+ "DOWN"
+
+
+ true
+ 69
+ "E"
+
+
+ true
+ 35
+ "END"
+
+
+ true
+ 27
+ "ESCAPE"
+
+
+ true
+ 70
+ "F"
+
+
+ true
+ 112
+ "F1"
+
+
+ true
+ 121
+ "F10"
+
+
+ true
+ 122
+ "F11"
+
+
+ true
+ 123
+ "F12"
+
+
+ true
+ 113
+ "F2"
+
+
+ true
+ 114
+ "F3"
+
+
+ true
+ 115
+ "F4"
+
+
+ true
+ 116
+ "F5"
+
+
+ true
+ 117
+ "F6"
+
+
+ true
+ 118
+ "F7"
+
+
+ true
+ 119
+ "F8"
+
+
+ true
+ 120
+ "F9"
+
+
+ true
+ 71
+ "G"
+
+
+ true
+ 72
+ "H"
+
+
+ true
+ 36
+ "HOME"
+
+
+ true
+ 73
+ "I"
+
+
+ true
+ 45
+ "INSERT"
+
+
+ true
+ 74
+ "J"
+
+
+ true
+ 75
+ "K"
+
+
+ true
+ 76
+ "L"
+
+
+ true
+ 37
+ "LEFT"
+
+
+ true
+ 77
+ "M"
+
+
+ true
+ 106
+ "MULTIPLY"
+
+
+ true
+ 78
+ "N"
+
+
+ true
+ 96
+ "NUM0"
+
+
+ true
+ 97
+ "NUM1"
+
+
+ true
+ 98
+ "NUM2"
+
+
+ true
+ 99
+ "NUM3"
+
+
+ true
+ 100
+ "NUM4"
+
+
+ true
+ 101
+ "NUM5"
+
+
+ true
+ 102
+ "NUM6"
+
+
+ true
+ 103
+ "NUM7"
+
+
+ true
+ 104
+ "NUM8"
+
+
+ true
+ 105
+ "NUM9"
+
+
+ true
+ 79
+ "O"
+
+
+ true
+ 80
+ "P"
+
+
+ true
+ 19
+ "PAUSE"
+
+
+ true
+ 42
+ "PRINT"
+
+
+ true
+ 81
+ "Q"
+
+
+ true
+ 82
+ "R"
+
+
+ true
+ 13
+ "RETURN_KEY"
+
+
+ true
+ 39
+ "RIGHT"
+
+
+ true
+ 83
+ "S"
+
+
+ true
+ 32
+ "SPACE"
+
+
+ true
+ 109
+ "SUBTRACT"
+
+
+ true
+ 84
+ "T"
+
+
+ true
+ 9
+ "TAB"
+
+
+ true
+ 85
+ "U"
+
+
+ true
+ 38
+ "UP"
+
+
+ true
+ 86
+ "V"
+
+
+ true
+ 87
+ "W"
+
+
+ true
+ 88
+ "X"
+
+
+ true
+ 89
+ "Y"
+
+
+ true
+ 90
+ "Z"
+
+
+
+
+
+ 481037385728L
+ 549755813887L
+ 481037385728L
+ 549754765312L
+ 1048576L
+
+
+
+
+ ExecuteLooseCapture
+ 4e2884cd-dc97-4120-914c-87a83e618f1f
+ ExecuteMouseUp
+ 57eea9a5-15d9-4269-bb8d-9fee5420cdb2
+ Init
+ e61a0910-39b6-4bcc-9a64-fcab62230628
+ FB_Exit
+ e6e1ea47-0811-4b03-9888-d0564361e0d6
+ ExecuteMouseDblClick
+ a517a0ac-170b-4df4-b289-55dcb57628ed
+ GetElementInfo
+ f64cb89f-3016-4fba-85f5-02efcd4282c1
+ ExecuteMouseDown
+ 94bab392-b395-4c03-9d0e-5738d11bd021
+ FB_Reinit
+ 97933c03-0169-4afe-ac83-de892204e120
+ Initialize
+ 6946d6e0-129f-4425-b8b0-ef98281a99e9
+ ExecuteMouseMove
+ 58fc221c-be14-4e34-871e-a118f8ba9539
+ ExecuteDialogClosed
+ f08d08b6-e70c-4bef-a136-38845bd246d8
+ ExecuteKeyUp
+ 7403635b-2725-4f00-93d4-e0dd125959de
+ ExecuteKeyDown
+ 9649ecda-3794-4d6b-a8a7-71e528d9d170
+ abstrGetDefaultCursor
+ 25718998-50a9-408d-8b3f-20a55e2cc784
+ ExecuteMouseEnter
+ 569205fa-533b-4fc2-8d51-21ccab693305
+ ExecuteMouseLeave
+ 3bacea68-55b4-4764-928e-e69910299932
+ FB_Init
+ f37e1250-9b48-45ca-810e-c192ea9440ec
+ ExecuteMouseClick
+ cd348bda-7eaf-4dfe-8c4b-bf9b71e5b10c
+
+ "NotImportant"
+ {073ee466-cf0a-4c8b-ba92-64f671516699}
+
+
+
+ true
+ true
+
+
+
+
+ {925c2b24-84d1-469a-954d-7af8b99219ef}
+ {f905b871-af16-47c5-a6ef-0a0918a8b009}
+ {d3706fa7-8257-48b3-af0a-cab0afb4dc49}
+ {4d5d9e0c-fa46-4312-abcd-ab81ecde84e1}
+ {00a84c7a-9a31-408b-860a-9d896efbd842}
+ {3ef700b6-44e8-4cfc-b6e0-26bfef38c2b6}
+ {e2123cf7-55c2-43c4-8135-f70e23d789b6}
+ {b7fab3e5-7354-42a4-bdf2-bc53461ec63c}
+ {967863f2-ccef-44e4-a545-05cbd9acb6be}
+ {f97c4870-0a84-4b7b-9cfd-0059a20bebbd}
+ {81498829-8b99-4474-8196-a48127c8e5d4}
+ {71bfd0df-7f34-4abc-b3b9-84bad2430630}
+ {6695a96b-387d-4f98-b9f1-09dab5b7c483}
+ {5fe53f14-f5a7-4173-9e2b-538b7d89379a}
+ {09c26f6e-e9b1-4455-a763-8dfd243af668}
+ {48451f3d-75f9-48ba-acdb-82d62e000f26}
+ {8214e061-c2ef-40f5-b519-acfed1ca1cca}
+ {97cdf6c7-053d-4364-abf2-f17c232375c1}
+ {30af51e2-0f28-4c98-bb4e-6c7a4ef6b64e}
+ {9e20996c-a8e0-4843-9524-9317ce5fc512}
+ {9d656f8b-b228-46a1-8204-ecc426d69d24}
+ {0a915a90-ba73-4abc-b7c3-f5acec9f952a}
+ {0dedbb39-c60c-476d-aa88-36e50d09fdfc}
+ {9dd59c98-b565-4e32-8873-d0c41e452b61}
+ {43ba7f16-75cc-4157-b401-5b6df597b0b4}
+ {ccfc9bcc-edea-480a-ac07-0c05646a5eda}
+ {5531e874-67e5-49bb-abdc-7ac83b125a33}
+ {398fdf90-7db7-4f59-b7ca-c68fb5513e2e}
+ {c21922fc-3c9f-4927-affe-3857961c67c0}
+ {b435091b-c53f-4ea3-9ed5-223f402a82e7}
+ {2acce1aa-45b9-434d-bd0d-05676ddde292}
+ {7e796d60-07e9-4daf-b8ad-e42e285dae85}
+
+
+
+ System.Collections.ArrayList
+ System.Boolean
+ {7df88604-7ac5-4e36-91c4-55e4fdad3e68}
+ {11a86981-4b02-4f98-b432-96e385cb41b7}
+ {c91fc5aa-1e38-43b2-9a05-c52cc5d7f5b6}
+ {40d6dd8d-dfd0-493a-8e29-c9a35e1e6539}
+ System.Guid
+ {6b108d46-58af-4e41-a3f4-174d8f160cc4}
+ System.Int32
+ System.Int64
+ System.String
+ {19611221-ebd3-4607-86d2-9822fbe84c30}
+ {c37fe731-4f69-4d98-82fe-4f9aefbe200d}
+ {997fedbb-1888-4256-b61c-2933d8056bfd}
+ {4d3fdb8f-ab50-4c35-9d3a-d4bb9bb9a628}
+ {ec9b2ec6-92a2-4856-be72-7866fb274c64}
+
+
+
\ 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 903cef5..ac7a216 100644
--- a/solution/tc_project_app/tc_project_app.plcproj
+++ b/solution/tc_project_app/tc_project_app.plcproj
@@ -1,403 +1,403 @@
-
-
-
- 1.0.0.0
- 2.0
- {fb261665-fd20-4bf2-97f8-2854c82b752d}
- True
- tc_project_app
- 3.1.4022.6
- {047dee04-c246-47b2-8ccc-a15e36987c43}
- {ae4eb5ee-6030-47a6-bf35-5a6afd9efeeb}
- {5ef19bd0-aca2-493f-b2a1-89e363647697}
- {f52f0efe-1be1-4600-94a9-9aa59fdf8e4e}
- {26d08e27-a705-49a9-95de-a3a0b6ea049c}
- {577f21c4-8eb2-4f2c-a24e-4c3f62ca96d2}
- true
-
-
-
- Code
-
-
- Code
- true
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
-
-
- Code
- Visualization Manager.TcVMO
-
-
- Code
-
-
- Code
- Visualization Manager.TcVMO
-
-
- Code
-
-
- Code
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- VisuElemMeter, 3.5.10.0 (System)
- VisuElemMeter
- true
- 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
-
-
- VisuElems, 3.5.10.20 (System)
- VisuElems
- true
- 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
-
-
- VisuElemsSpecialControls, 3.5.10.0 (System)
- VisuElemsSpecialControls
- true
- 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
-
-
- VisuElemsWinControls, 3.5.10.20 (System)
- VisuElemsWinControls
- true
- 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
-
-
- VisuElemTextEditor, 3.5.10.10 (System)
- VisuElemTextEditor
- true
- 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
-
-
- visuinputs, 3.5.10.0 (system)
- visuinputs
- true
- 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
-
-
- VisuNativeControl, 3.5.10.0 (System)
- VisuNativeControl
- true
- 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
-
-
- Tc2_EtherCAT, * (Beckhoff Automation GmbH)
- Tc2_EtherCAT
-
-
- Tc2_MC2, * (Beckhoff Automation GmbH)
- Tc2_MC2
-
-
- Tc2_Standard, * (Beckhoff Automation GmbH)
- Tc2_Standard
-
-
- Tc2_System, * (Beckhoff Automation GmbH)
- Tc2_System
-
-
- Tc2_Utilities, * (Beckhoff Automation GmbH)
- Tc2_Utilities
-
-
- Tc3_MC2_AdvancedHoming, * (Beckhoff Automation GmbH)
- Tc3_MC2_AdvancedHoming
-
-
- Tc3_Module, * (Beckhoff Automation GmbH)
- Tc3_Module
-
-
- VisuDialogs, * (System)
- VisuDialogs
-
-
-
-
- Content
-
-
-
-
-
-
-
- "<ProjectRoot>"
-
- {192FAD59-8248-4824-A8DE-9177C94C195A}
-
- "{192FAD59-8248-4824-A8DE-9177C94C195A}"
-
-
-
- {246001F4-279D-43AC-B241-948EB31120E1}
-
- "{246001F4-279D-43AC-B241-948EB31120E1}"
-
-
- UnicodeStrings
- False
-
-
- {29BD8D0C-3586-4548-BB48-497B9A01693F}
-
- "{29BD8D0C-3586-4548-BB48-497B9A01693F}"
-
- Rules
-
- "Rules"
-
-
-
-
-
-
- {8F99A816-E488-41E4-9FA3-846536012284}
-
- "{8F99A816-E488-41E4-9FA3-846536012284}"
-
-
-
- {40450F57-0AA3-4216-96F3-5444ECB29763}
-
- "{40450F57-0AA3-4216-96F3-5444ECB29763}"
-
-
- ActiveVisuExtensionsLength
- 0
- ActiveVisuProfile
- "IR0whWr8bwfyBwAAHf+pawAAAABVAgAADnffSgAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgAyAC4AMQAwAAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUdgBpAHMAdQBpAG4AcAB1AHQAcwAXDHMAeQBzAHQAZQBtABgYVgBpAHMAdQBFAGwAZQBtAEIAYQBzAGUAGSZEAGUAdgBQAGwAYQBjAGUAaABvAGwAZABlAHIAcwBVAHMAZQBkABoIYgBvAG8AbAAbIlAAbAB1AGcAaQBuAEMAbwBuAHMAdAByAGEAaQBuAHQAcwAcTHsANAAzAGQANQAyAGIAYwBlAC0AOQA0ADIAYwAtADQANABkADcALQA5AGUAOQA0AC0AMQBiAGYAZABmADMAMQAwAGUANgAzAGMAfQAdHEEAdABMAGUAYQBzAHQAVgBlAHIAcwBpAG8AbgAeFFAAbAB1AGcAaQBuAEcAdQBpAGQAHxZTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIEhhAGYAYwBkADUANAA0ADYALQA0ADkAMQA0AC0ANABmAGUANwAtAGIAYgA3ADgALQA5AGIAZgBmAGUAYgA3ADAAZgBkADEANwAhFFUAcABkAGEAdABlAEkAbgBmAG8AIkx7AGIAMAAzADMANgA2AGEAOAAtAGIANQBjADAALQA0AGIAOQBhAC0AYQAwADAAZQAtAGUAYgA4ADYAMAAxADEAMQAwADQAYwAzAH0AIw5VAHAAZABhAHQAZQBzACRMewAxADgANgA4AGYAZgBjADkALQBlADQAZgBjAC0ANAA1ADMAMgAtAGEAYwAwADYALQAxAGUAMwA5AGIAYgA1ADUANwBiADYAOQB9ACVMewBhADUAYgBkADQAOABjADMALQAwAGQAMQA3AC0ANAAxAGIANQAtAGIAMQA2ADQALQA1AGYAYwA2AGEAZAAyAGIAOQA2AGIANwB9ACYWTwBiAGoAZQBjAHQAcwBUAHkAcABlACdUVQBwAGQAYQB0AGUATABhAG4AZwB1AGEAZwBlAE0AbwBkAGUAbABGAG8AcgBDAG8AbgB2AGUAcgB0AGkAYgBsAGUATABpAGIAcgBhAHIAaQBlAHMAKBBMAGkAYgBUAGkAdABsAGUAKRRMAGkAYgBDAG8AbQBwAGEAbgB5ACoeVQBwAGQAYQB0AGUAUAByAG8AdgBpAGQAZQByAHMAKzhTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACwSdgBpAHMAdQBlAGwAZQBtAHMALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAMAAAAFAAAACgAAACgAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAKAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAKAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0W0A8BLRfQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQQAAADQDQEtGNAPAS0Q0BkarQFFGxwB0AAcGgJFHQsEAwAAAAUAAAAKAAAAAAAAANAeHy0g0CEiGgJFIyQC0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60AAAAA0AMBLSfQKAEtEdApAS0Q0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60BAAAA0AMBLSfQKAEtEdApAS0QmiorAUUAAQLQAAEtLNAAAS0X0AAfLS3QLi8aA9AwC60BAAAA0DELrRMAAADQMhqtANAzLxoD0DALrQIAAADQMQutAwAAANAyGq0A0DQarQDQNRqtAA=="
-
-
-
-
-
-
-
- System.Boolean
- System.Collections.Hashtable
- System.Int32
- {54dd0eac-a6d8-46f2-8c27-2f43c7e49861}
- System.String
-
-
-
-
+
+
+
+ 1.0.0.0
+ 2.0
+ {fb261665-fd20-4bf2-97f8-2854c82b752d}
+ True
+ tc_project_app
+ 3.1.4022.6
+ {047dee04-c246-47b2-8ccc-a15e36987c43}
+ {ae4eb5ee-6030-47a6-bf35-5a6afd9efeeb}
+ {5ef19bd0-aca2-493f-b2a1-89e363647697}
+ {f52f0efe-1be1-4600-94a9-9aa59fdf8e4e}
+ {26d08e27-a705-49a9-95de-a3a0b6ea049c}
+ {577f21c4-8eb2-4f2c-a24e-4c3f62ca96d2}
+ true
+
+
+
+ Code
+
+
+ Code
+ true
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+ Visualization Manager.TcVMO
+
+
+ Code
+
+
+ Code
+ Visualization Manager.TcVMO
+
+
+ Code
+
+
+ Code
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VisuElemMeter, 3.5.10.0 (System)
+ VisuElemMeter
+ true
+ 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
+
+
+ VisuElems, 3.5.10.20 (System)
+ VisuElems
+ true
+ 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
+
+
+ VisuElemsSpecialControls, 3.5.10.0 (System)
+ VisuElemsSpecialControls
+ true
+ 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
+
+
+ VisuElemsWinControls, 3.5.10.20 (System)
+ VisuElemsWinControls
+ true
+ 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
+
+
+ VisuElemTextEditor, 3.5.10.10 (System)
+ VisuElemTextEditor
+ true
+ 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
+
+
+ visuinputs, 3.5.10.0 (system)
+ visuinputs
+ true
+ 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
+
+
+ VisuNativeControl, 3.5.10.0 (System)
+ VisuNativeControl
+ true
+ 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae
+
+
+ Tc2_EtherCAT, * (Beckhoff Automation GmbH)
+ Tc2_EtherCAT
+
+
+ Tc2_MC2, * (Beckhoff Automation GmbH)
+ Tc2_MC2
+
+
+ Tc2_Standard, * (Beckhoff Automation GmbH)
+ Tc2_Standard
+
+
+ Tc2_System, * (Beckhoff Automation GmbH)
+ Tc2_System
+
+
+ Tc2_Utilities, * (Beckhoff Automation GmbH)
+ Tc2_Utilities
+
+
+ Tc3_MC2_AdvancedHoming, * (Beckhoff Automation GmbH)
+ Tc3_MC2_AdvancedHoming
+
+
+ Tc3_Module, * (Beckhoff Automation GmbH)
+ Tc3_Module
+
+
+ VisuDialogs, * (System)
+ VisuDialogs
+
+
+
+
+ Content
+
+
+
+
+
+
+
+ "<ProjectRoot>"
+
+ {192FAD59-8248-4824-A8DE-9177C94C195A}
+
+ "{192FAD59-8248-4824-A8DE-9177C94C195A}"
+
+
+
+ {246001F4-279D-43AC-B241-948EB31120E1}
+
+ "{246001F4-279D-43AC-B241-948EB31120E1}"
+
+
+ UnicodeStrings
+ False
+
+
+ {29BD8D0C-3586-4548-BB48-497B9A01693F}
+
+ "{29BD8D0C-3586-4548-BB48-497B9A01693F}"
+
+ Rules
+
+ "Rules"
+
+
+
+
+
+
+ {8F99A816-E488-41E4-9FA3-846536012284}
+
+ "{8F99A816-E488-41E4-9FA3-846536012284}"
+
+
+
+ {40450F57-0AA3-4216-96F3-5444ECB29763}
+
+ "{40450F57-0AA3-4216-96F3-5444ECB29763}"
+
+
+ ActiveVisuExtensionsLength
+ 0
+ ActiveVisuProfile
+ "IR0whWr8bwfyBwAAHf+pawAAAABVAgAADnffSgAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDJUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgAyAC4AMQAwAAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByAA8OQwBvAG0AcABhAG4AeQAQDFMAeQBzAHQAZQBtABESVgBpAHMAdQBFAGwAZQBtAHMAEjBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwATKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAUJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABUiVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABYUdgBpAHMAdQBpAG4AcAB1AHQAcwAXDHMAeQBzAHQAZQBtABgYVgBpAHMAdQBFAGwAZQBtAEIAYQBzAGUAGSZEAGUAdgBQAGwAYQBjAGUAaABvAGwAZABlAHIAcwBVAHMAZQBkABoIYgBvAG8AbAAbIlAAbAB1AGcAaQBuAEMAbwBuAHMAdAByAGEAaQBuAHQAcwAcTHsANAAzAGQANQAyAGIAYwBlAC0AOQA0ADIAYwAtADQANABkADcALQA5AGUAOQA0AC0AMQBiAGYAZABmADMAMQAwAGUANgAzAGMAfQAdHEEAdABMAGUAYQBzAHQAVgBlAHIAcwBpAG8AbgAeFFAAbAB1AGcAaQBuAEcAdQBpAGQAHxZTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIEhhAGYAYwBkADUANAA0ADYALQA0ADkAMQA0AC0ANABmAGUANwAtAGIAYgA3ADgALQA5AGIAZgBmAGUAYgA3ADAAZgBkADEANwAhFFUAcABkAGEAdABlAEkAbgBmAG8AIkx7AGIAMAAzADMANgA2AGEAOAAtAGIANQBjADAALQA0AGIAOQBhAC0AYQAwADAAZQAtAGUAYgA4ADYAMAAxADEAMQAwADQAYwAzAH0AIw5VAHAAZABhAHQAZQBzACRMewAxADgANgA4AGYAZgBjADkALQBlADQAZgBjAC0ANAA1ADMAMgAtAGEAYwAwADYALQAxAGUAMwA5AGIAYgA1ADUANwBiADYAOQB9ACVMewBhADUAYgBkADQAOABjADMALQAwAGQAMQA3AC0ANAAxAGIANQAtAGIAMQA2ADQALQA1AGYAYwA2AGEAZAAyAGIAOQA2AGIANwB9ACYWTwBiAGoAZQBjAHQAcwBUAHkAcABlACdUVQBwAGQAYQB0AGUATABhAG4AZwB1AGEAZwBlAE0AbwBkAGUAbABGAG8AcgBDAG8AbgB2AGUAcgB0AGkAYgBsAGUATABpAGIAcgBhAHIAaQBlAHMAKBBMAGkAYgBUAGkAdABsAGUAKRRMAGkAYgBDAG8AbQBwAGEAbgB5ACoeVQBwAGQAYQB0AGUAUAByAG8AdgBpAGQAZQByAHMAKzhTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlACwSdgBpAHMAdQBlAGwAZQBtAHMALUg2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAuKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAvTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAwGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADEYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4AMgxMAGUAZwBhAGMAeQAzMEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADQwTABvAGEAZABMAGkAYgByAGEAcgBpAGUAcwBJAG4AdABvAFAAcgBvAGoAZQBjAHQANRpDAG8AbQBwAGEAdABpAGIAaQBsAGkAdAB5ANAAAhoD0AMBLQTQBQYaB9AHCBoBRQcJCNAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0O0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQEAAADQDQEtEdAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAAAAAANAMC60CAAAA0A0BLRLQDwEtENAACRoERQoLBAMAAAAFAAAACgAAACgAAADQDAutAgAAANANAS0T0A8BLRDQAAkaBEUKCwQDAAAABQAAAAoAAAAKAAAA0AwLrQIAAADQDQEtFNAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAKAAAAKAAAANAMC60CAAAA0A0BLRXQDwEtENAACRoERQoLBAMAAAAFAAAACgAAAAAAAADQDAutAgAAANANAS0W0A8BLRfQAAkaBEUKCwQDAAAABQAAAAoAAAAoAAAA0AwLrQQAAADQDQEtGNAPAS0Q0BkarQFFGxwB0AAcGgJFHQsEAwAAAAUAAAAKAAAAAAAAANAeHy0g0CEiGgJFIyQC0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60AAAAA0AMBLSfQKAEtEdApAS0Q0AAlGgVFCgsEAwAAAAMAAAAAAAAACgAAANAmC60BAAAA0AMBLSfQKAEtEdApAS0QmiorAUUAAQLQAAEtLNAAAS0X0AAfLS3QLi8aA9AwC60BAAAA0DELrRMAAADQMhqtANAzLxoD0DALrQIAAADQMQutAwAAANAyGq0A0DQarQDQNRqtAA=="
+
+
+
+
+
+
+
+ System.Boolean
+ System.Collections.Hashtable
+ System.Int32
+ {54dd0eac-a6d8-46f2-8c27-2f43c7e49861}
+ System.String
+
+
+
+
\ No newline at end of file
diff --git a/twincat_version_manager.py b/twincat_version_manager.py
index 3483331..5de2274 100644
--- a/twincat_version_manager.py
+++ b/twincat_version_manager.py
@@ -1,40 +1,40 @@
-import glob
-import xml.etree.ElementTree as ET
-
-VERSION_TAGS = {"**/*.Tc*": "ProductVersion", "**/*.tsproj": "TcVersion"}
-CORRECT_VERSION = "3.1.4024.0"
-
-
-def check_versions():
- """
- Checks the Twincat version used to create a file.
- It assumes that the version is stored as an attribute on the top element of the file, the attribute names are
- listed in VERSION_TAGS.
- :return: A dictionary of incorrect files and their version numbers
- """
- incorrect_files = dict()
- for file_path, version_attrib in VERSION_TAGS.items():
- found_files = glob.glob(file_path, recursive=True)
- if not found_files:
- raise IOError("ERROR: No files of type {} found".format(file_path))
- for file in found_files:
- tree = ET.parse(file)
- try:
- found_version = tree.getroot().attrib[version_attrib]
- if found_version != CORRECT_VERSION:
- incorrect_files[file] = found_version
- except KeyError:
- print("WARNING: No version found for {}".format(file))
- return incorrect_files
-
-
-if __name__ == "__main__":
- try:
- incorrect_files = check_versions()
- for file, version in incorrect_files.items():
- print("ERROR: {} has incorrect version {}, expected version {}".format(file, version, CORRECT_VERSION))
- if incorrect_files:
- exit(1)
- except IOError as e:
- print(e) # Likely no files found
- exit(2)
+import glob
+import xml.etree.ElementTree as ET
+
+VERSION_TAGS = {"**/*.Tc*": "ProductVersion", "**/*.tsproj": "TcVersion"}
+CORRECT_VERSION = "3.1.4024.0"
+
+
+def check_versions():
+ """
+ Checks the Twincat version used to create a file.
+ It assumes that the version is stored as an attribute on the top element of the file, the attribute names are
+ listed in VERSION_TAGS.
+ :return: A dictionary of incorrect files and their version numbers
+ """
+ incorrect_files = dict()
+ for file_path, version_attrib in VERSION_TAGS.items():
+ found_files = glob.glob(file_path, recursive=True)
+ if not found_files:
+ raise IOError("ERROR: No files of type {} found".format(file_path))
+ for file in found_files:
+ tree = ET.parse(file)
+ try:
+ found_version = tree.getroot().attrib[version_attrib]
+ if found_version != CORRECT_VERSION:
+ incorrect_files[file] = found_version
+ except KeyError:
+ print("WARNING: No version found for {}".format(file))
+ return incorrect_files
+
+
+if __name__ == "__main__":
+ try:
+ incorrect_files = check_versions()
+ for file, version in incorrect_files.items():
+ print("ERROR: {} has incorrect version {}, expected version {}".format(file, version, CORRECT_VERSION))
+ if incorrect_files:
+ exit(1)
+ except IOError as e:
+ print(e) # Likely no files found
+ exit(2)