diff --git a/.gitattributes b/.gitattributes old mode 100644 new mode 100755 index d697d2e..31f31e7 --- a/.gitattributes +++ b/.gitattributes @@ -1,8 +1,18 @@ # end of line conversion CLRF -- LF -# Default is no conversion (follow Visual Studio) -* -text -# -.gitattributes text -.gitignore text +# Default is auto +* text=auto +# Hidden .git files: CRLF for convenience +.gitattributes text eol=crlf +.gitignore text eol=crlf +# Shell scripts must be LF +*.sh text eol=lf + +# Tc files must be CRLF +*.plcproj text eol=crlf +*.Tc* text eol=crlf +*.tsproj text eol=crlf +*.txt text eol=crlf +*.xml text eol=crlf +*.xti text eol=crlf diff --git a/.gitignore b/.gitignore index 2d1ca8d..63a08bd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,21 @@ + +*.bak +*.pyc +*.suo +*.tmc +*.tpy +*.~u +*~ +.#* +.epics.* +UpgradeLog.htm +\#*# _Boot/ _CompileInfo/ _Libraries/ +logs.0* +solution/TrialLicense.tclrs tools/linux/ADS/ tools/linux/getADSState/getADSState.bin -logs.0* -.epics.* -*.bak -*.~u -*.pyc -*.tpy -*.suo -*~ -.#* -\#*# -*.tmc - +_Config/NC/Axes +_Config/IO diff --git a/UpgradeLog.htm b/UpgradeLog.htm deleted file mode 100644 index 103b560..0000000 Binary files a/UpgradeLog.htm and /dev/null differ 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/TrialLicense.tclrs b/solution/TrialLicense.tclrs deleted file mode 100644 index 1132474..0000000 --- a/solution/TrialLicense.tclrs +++ /dev/null @@ -1,2 +0,0 @@ - -{52C4A619-551C-008A-DE5B-87C2D878314F}2019-06-20T07:59:002019-06-28T00:00:00440abbbe2f39181db097f16818237251fd1f2d0718115982971343370c9a4a58093f0af3461229dc88336bf779b68022b904abbf9339ebd5a3e73111bf8d2758177c4fbb82aa1b3482b71fef6f7a9b6300970484803798af4d353c784fdefb7b5accab29d326173225fc71fddd9406080470ea2f8a3f68bb26df6c0e7ff7fe974254b232fbf8028e90b2ac13c20814290951e328ff7dbfc8165a7725f2ab3fedde40703fef94b94eb878dd5405b279dd070c783c8c962192b0fcdc7877841ccd04669fa108e4a857081bc8c510cc8548b38d441e6c1199c59d543223ab5453adfbb6e5133d1ac99c0d8608066a000a15787944e475d15e777e111450f531be85{4C256767-E6E6-4AF5-BD68-9F7ABAD0C200}TC3 ADSTC1000{3FF18E97-7754-401B-93FB-70544DE28A13}TC3 IOTC1100{66689887-CCBD-452C-AC9A-039D997C6E66}TC3 PLCTC1200{A19036CF-A53B-4E3A-99FF-023EF5C4798B}TC3 NC PTP Axis10{520DE751-9DB6-47CB-8240-BD5C466E7E64}TC3 NC PTPTF5000{3EBB9639-5FF3-42B6-8847-35C70DC013C8}TC3 TCP/IPTF6310 diff --git a/solution/_Config/NC/1.xml b/solution/_Config/NC/1.xml deleted file mode 100644 index 02118c9..0000000 --- a/solution/_Config/NC/1.xml +++ /dev/null @@ -1,2 +0,0 @@ - -1mm15001500225015000150000130000000303010060020002000true5false0.1false100true2falsefalse000false10.010truefalsefalse5510.0001103600false21677721500.010.1false0false0false000falsetrue0false0false0104857500false005false1-1165535#x000000000.1002200101100000000.01211100001361291330false110111true5false010000.10.1false0.10.50.10000.10.100.50000false0.010112010.001 diff --git a/solution/_Config/NC/NC.xti b/solution/_Config/NC/NC.xti new file mode 100644 index 0000000..759c7a3 --- /dev/null +++ b/solution/_Config/NC/NC.xti @@ -0,0 +1,20 @@ + + + + + NC-Task 1 SAF + + Inputs + + + Outputs + + + Image + + + + NC-Task 1 SVB + + + diff --git a/solution/solution.tsproj b/solution/solution.tsproj index a91d669..36de82a 100644 --- a/solution/solution.tsproj +++ b/solution/solution.tsproj @@ -1,1125 +1,51 @@ - - - - - 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 - - - - - - - - - - + + + + + + + {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 Outputs + + MAIN.bOutput1 + + BOOL + + + + + + + + + + diff --git a/solution/tc_epicscommodule b/solution/tc_epicscommodule index e746bc4..a13d6bb 160000 --- a/solution/tc_epicscommodule +++ b/solution/tc_epicscommodule @@ -1 +1 @@ -Subproject commit e746bc4b801554a2af3cc5432f9374ffc9fbd82b +Subproject commit a13d6bb6221ab2fbe8fa8f7f2345ca8cd791f8d1 diff --git a/solution/tc_project_app/GVLs/GVL_APP.TcGVL b/solution/tc_project_app/GVLs/GVL_APP.TcGVL index a846a85..c284299 100644 --- a/solution/tc_project_app/GVLs/GVL_APP.TcGVL +++ b/solution/tc_project_app/GVLs/GVL_APP.TcGVL @@ -1,14 +1,13 @@ - - - - - + + + + + \ 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..3ff0212 100644 --- a/solution/tc_project_app/POUs/MAIN.TcPOU +++ b/solution/tc_project_app/POUs/MAIN.TcPOU @@ -1,144 +1,331 @@ - - - - - - - - - - - - - - - , - 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=> ); - *) - -]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + eSUPS_PowerOK THEN + (* next cycles of powerfailure *) + (* skip regular code execution for the remaining cycles of the powerfailure/writing of persistent data/quick shutdown ... *) + RETURN; +END_IF]]> + + + + + '0') THEN + CHECK_UPS(); + RESTORE_POSITIONS(); +END_IF]]> + + + + + + + + + + , + ReadMode:= E_READMODE.READMODE_ONCE); + END_FOR + + // Cycle through set position function blocks for each axis + FOR i:=1 TO gvl_app.axisNum DO + fbRestorePosition[i]( + Axis:= gvl.axes[i].Axis, + Execute:= , + Position:= axesPersistent[i].iPositionAtShutdown); + END_FOR + + CASE eStartUp OF + ColdStart: + // First cycle of the PLC, do nothing just give one cycle for variables to initialise + IF NOT bPositionRestoreDone THEN + eStartUp:= ReadAxisFeedbackType; + iRetry:=0; + END_IF + + ReadAxisFeedbackType: + // Exectute the function blocks to read the encoder reference system (0=inc OR 1=ABS) + bExecuteReadEncRefSys:=TRUE; + eStartUp:=CheckReadDone; + + CheckReadDone: + // Check the encoder reference system has been read for all axis -> if busy then continue with PLC cycle and check again next time. + // If fbReadEncRefSys not started then go back a step. + // If any axes result in an error the code will get stuck here, this happens if gvl_app.axisNum is not set correctly + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = FALSE THEN + IF fbReadEncRefSys[i].Busy = TRUE THEN + // Exit MAIN.STARTUP Action and wait till next cycle, needs to cycle through whole program in order for data to update + RETURN; + ELSE + // Sometimes the code gets here and the fbReadEncRefSys[i] misses the rising edge. If the code gets here it means + // .valid=FALSE and .busy=FALSE which indicateds the FB probably hasn't started and thus needs to see a rising edge. + // Set execute to low, Exit MAIN.STARTUP and go back a step in the CASE statement. + bExecuteReadEncRefSys:=FALSE; + eStartUp:=ReadAxisFeedbackType; + iRetry:=iRetry+1; // counter used for troubleshooting to see how many cycles it takes before fbReadEncRefSys function blocks are read correctly + RETURN; + END_IF + END_IF + END_FOR + // If the code gets here all axes either have .valid=TRUE for all axes + eStartUp:= ExecuteRestore; + + ExecuteRestore: + // Execute position restore by setting fbRestorePosition.execute = TRUE + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 AND NOT(axesPersistent[i].bMovingAtShutdown) THEN + IF GVL.axes[i].config.eRestorePosition = RestorePosition.RestoreWithoutHome THEN + fbRestorePosition[i].Execute:=TRUE; + END_IF + END_IF + END_FOR + eStartUp:= CheckRestore; + + CheckRestore: + // Check the set position fbs are finished + // Nothing actually happens if the restore is not done, the code just returns from here each cycle and the + // bPositionRestoreDone will never get set to TRUE and will take up cycle time + FOR i:=1 TO gvl_app.axisNum DO + IF fbReadEncRefSys[i].Valid = TRUE AND fbReadEncRefSys[i].Value = 0 AND NOT(axesPersistent[i].bMovingAtShutdown) THEN + IF GVL.axes[i].config.eRestorePosition = RestorePosition.RestoreWithoutHome THEN + IF NOT fbRestorePosition[i].Done THEN + RETURN; + END_IF + END_IF + END_IF + END_FOR + eStartUp:= FinishRestore; + + FinishRestore: + // Remove execute = TRUE for fbRestorePosition + FOR i:=1 TO gvl_app.axisNum DO + fbRestorePosition[i].Execute:=FALSE; + END_FOR + bPositionRestoreDone:=TRUE; + bRestoreExecute:=FALSE; + END_CASE +END_IF]]> + + + + + 0 THEN + axesPersistent[i].bMovingAtShutdown:=TRUE; + ELSE + axesPersistent[i].bMovingAtShutdown:=FALSE; + END_IF + axesPersistent[i].bMovingAtShutdown:=axesPersistent[i].bMovingAtShutdown OR gvl.axes[i].Axis.Status.Moving; +END_FOR]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/solution/tc_project_app/PlcTask.TcTTO b/solution/tc_project_app/PlcTask.TcTTO index 98d1faf..b5badec 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} - + + + + + 10000 + 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_mca_std_lib b/solution/tc_project_app/tc_mca_std_lib index ce9f69f..85f11c0 160000 --- a/solution/tc_project_app/tc_mca_std_lib +++ b/solution/tc_project_app/tc_mca_std_lib @@ -1 +1 @@ -Subproject commit ce9f69ffdc2ac817ced936189f4550b65235025d +Subproject commit 85f11c08bc807bda1e02aa5c635a789d355da20c diff --git a/solution/tc_project_app/tc_project_app.plcproj b/solution/tc_project_app/tc_project_app.plcproj index 903cef5..f8a5867 100644 --- a/solution/tc_project_app/tc_project_app.plcproj +++ b/solution/tc_project_app/tc_project_app.plcproj @@ -1,403 +1,297 @@ - - - - 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.4023.0 + {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 + Visualization Manager.TcVMO + + + Code + + + Code + Visualization Manager.TcVMO + + + Code + + + Code + + + + + + + + + + + + + + + + + + + + + VisuElemMeter, 3.5.13.0 (System) + VisuElemMeter + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuElems, 3.5.13.21 (System) + VisuElems + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuElemsSpecialControls, 3.5.13.0 (System) + VisuElemsSpecialControls + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuElemsWinControls, 3.5.13.20 (System) + VisuElemsWinControls + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuElemTextEditor, 3.5.13.0 (System) + VisuElemTextEditor + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + visuinputs, 3.5.13.0 (system) + visuinputs + true + 2717eb6a-dd07-4c66-8d8d-cacebd7b18ae + + + VisuNativeControl, 3.5.13.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_SUPS, * (Beckhoff Automation GmbH) + Tc2_SUPS + + + 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 + + + + + Tc2_MC2, 3.3.28.0 (Beckhoff Automation GmbH) + + + + + + + + "<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 + "IR0whWr8bwfwBwAAhiaVXgAAAABVAgAAWdTSaQAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA0AC4AMAAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWFHYAaQBzAHUAaQBuAHAAdQB0AHMAFwxzAHkAcwB0AGUAbQAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC1INgBjAGIAMQBjAGQAZQAxAC0AZAA1AGQAYwAtADQAYQAzAGIALQA5ADAANQA0AC0AMgAxAGYAYQA3ADUANgBhADMAZgBhADQALihJAG4AdABlAHIAZgBhAGMAZQBWAGUAcgBzAGkAbwBuAEkAbgBmAG8AL0x7AGMANgAxADEAZQA0ADAAMAAtADcAZgBiADkALQA0AGMAMwA1AC0AYgA5AGEAYwAtADQAZQAzADEANABiADUAOQA5ADYANAAzAH0AMBhNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgAxGE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuADIMTABlAGcAYQBjAHkAMzBMAGEAbgBnAHUAYQBnAGUATQBvAGQAZQBsAFYAZQByAHMAaQBvAG4ASQBuAGYAbwA0MEwAbwBhAGQATABpAGIAcgBhAHIAaQBlAHMASQBuAHQAbwBQAHIAbwBqAGUAYwB0ADUaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgfQBwgaAUUHCQjQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAFQAAANAMC60BAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAUAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0X0AAJGgRFCgsEAwAAAAUAAAANAAAAFQAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAMAAAAFAAAADQAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtF9AAHy0t0C4vGgPQMAutAQAAANAxC60XAAAA0DIarQDQMy8aA9AwC60CAAAA0DELrQMAAADQMhqtANA0Gq0A0DUarQA=" + + + + + + + + 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 9234e5e..b420619 100644 --- a/twincat_version_manager.py +++ b/twincat_version_manager.py @@ -1,44 +1,44 @@ -import glob -import xml.etree.ElementTree as ET - -VERSION_TAGS = {"**/*.Tc*": "ProductVersion", "**/*.tsproj": "TcVersion"} -CORRECT_VERSIONS = {"**/*.Tc*": "3.1.4024.0", "**/*.tsproj": "3.1.4023.119"} - - -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_exp = dict() - incorrect_files_act = dict() - for file_path, version_attrib in VERSION_TAGS.items(): - correct_version = CORRECT_VERSIONS[file_path] - 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_exp[file] = correct_version - incorrect_files_act[file] = found_version - except KeyError: - print("WARNING: No version found for {}".format(file)) - return incorrect_files_exp, incorrect_files_act - - -if __name__ == "__main__": - try: - incorrect_files_exp, incorrect_files_act = check_versions() - for file, version in incorrect_files_act.items(): - correct_version = incorrect_files_exp[file] - print("ERROR: {} has incorrect version {}, expected version {}".format(file, version, correct_version)) - if incorrect_files_act: - 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_VERSIONS = {"**/*.Tc*": "3.1.4024.0", "**/*.tsproj": "3.1.4023.119"} + + +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_exp = dict() + incorrect_files_act = dict() + for file_path, version_attrib in VERSION_TAGS.items(): + correct_version = CORRECT_VERSIONS[file_path] + 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_exp[file] = correct_version + incorrect_files_act[file] = found_version + except KeyError: + print("WARNING: No version found for {}".format(file)) + return incorrect_files_exp, incorrect_files_act + + +if __name__ == "__main__": + try: + incorrect_files_exp, incorrect_files_act = check_versions() + for file, version in incorrect_files_act.items(): + correct_version = incorrect_files_exp[file] + print("ERROR: {} has incorrect version {}, expected version {}".format(file, version, correct_version)) + if incorrect_files_act: + exit(1) + except IOError as e: + print(e) # Likely no files found + exit(2)