├── TwinCAT Tools ├── _Boot │ ├── TwinCAT RT (x64) │ │ ├── Plc │ │ │ ├── Port_851.oce │ │ │ ├── Port_851.ocm │ │ │ ├── Port_851.autostart │ │ │ ├── Port_851.app │ │ │ ├── Port_851.cid │ │ │ ├── Port_851.crc │ │ │ ├── Port_851.occ │ │ │ └── Port_851_boot.tizip │ │ ├── CurrentConfig.tszip │ │ ├── CurrentConfig │ │ │ └── twincat-tools.tpzip │ │ └── CurrentConfig.xml │ └── TargetDescription.xml ├── twincat-tools │ ├── _Libraries │ │ ├── system │ │ │ ├── sysdir │ │ │ │ └── 3.5.12.0 │ │ │ │ │ └── sysdir.compiled-library │ │ │ ├── sysfile │ │ │ │ └── 3.5.9.0 │ │ │ │ │ └── sysfile.compiled-library │ │ │ ├── base interfaces │ │ │ │ └── 3.5.2.0 │ │ │ │ │ └── base_itfs.compiled-library │ │ │ ├── systypes2 interfaces │ │ │ │ └── 3.5.4.0 │ │ │ │ │ └── systypes_itfs.compiled-library │ │ │ └── cmperrors2 interfaces │ │ │ │ └── 3.5.12.0 │ │ │ │ └── cmperrors2_itfs.compiled-library │ │ ├── www.tcunit.org │ │ │ └── tcunit │ │ │ │ └── 1.2.0.0 │ │ │ │ └── tcunit.library │ │ └── beckhoff automation gmbh │ │ │ ├── tc2_system │ │ │ └── 3.4.24.0 │ │ │ │ └── tc2_system.compiled-library │ │ │ ├── tc3_module │ │ │ └── 3.3.21.0 │ │ │ │ └── tc3_module.compiled-library │ │ │ ├── tc2_standard │ │ │ └── 3.3.3.0 │ │ │ │ └── tc2_standard.compiled-library │ │ │ └── tc2_utilities │ │ │ └── 3.3.46.0 │ │ │ └── tc2_utilities.compiled-library │ ├── _CompileInfo │ │ ├── 27A2150A-CC11-797C-ED05-9EF650FB8D7A.compileinfo │ │ ├── 6EF4C805-A82C-8168-E2C8-F8DADC37FB09.compileinfo │ │ ├── 80BC86C0-CD6C-C7DA-9FF9-BF256AB6D225.compileinfo │ │ ├── AC30A1A4-BBA5-5205-43BA-0E4EBFE88D74.compileinfo │ │ ├── B0A32C4E-8486-09B0-D219-64752457C131.compileinfo │ │ ├── B46B471B-AACB-922F-9483-7057483F84CA.compileinfo │ │ ├── C05C1C2A-BE26-5AAC-CE2A-EB65348BE9FE.compileinfo │ │ ├── F8BF8105-DE79-4E55-E809-D5A7AF9236D5.compileinfo │ │ └── FFA8E674-ECD1-B144-75A6-9FA890D2A22A.compileinfo │ ├── twincat-tools.tmcRefac │ ├── Version │ │ └── Global_Version.TcGVL │ ├── PlcTask.TcTTO │ ├── GVLs │ │ └── Parameters.TcGVL │ ├── POUs │ │ ├── Range │ │ │ ├── F_IN_BOUNDS_ARRAY_INT.md │ │ │ ├── F_GET_IN_RANGE_INT.md │ │ │ ├── F_IN_BOUNDS_ARRAY_INT.TcPOU │ │ │ └── F_GET_IN_RANGE_INT.TcPOU │ │ ├── TimeStamp │ │ │ └── F_GET_TIME_STAMP.TcPOU │ │ ├── String │ │ │ ├── README.md │ │ │ └── F_STRING_SPLIT.TcPOU │ │ ├── Round │ │ │ ├── README.md │ │ │ ├── F_ROUND_LREAL.TcPOU │ │ │ └── F_ROUND_REAL.TcPOU │ │ ├── Export │ │ │ └── ExportArrayREALDataToTextFile.TcPOU │ │ └── AxisControl │ │ │ └── MC_AxisControl.TcPOU │ ├── twincat-tools.plcproj │ └── twincat-tools.tmc ├── TrialLicense.tclrs ├── TwinCAT Tools.tsproj └── TwinCAT Tools.tsproj.bak ├── TwinCAT Tools Examples ├── _Boot │ ├── TwinCAT RT (x64) │ │ ├── Plc │ │ │ ├── Port_851.oce │ │ │ ├── Port_851.autostart │ │ │ ├── Port_851.app │ │ │ ├── Port_851.cid │ │ │ ├── Port_851.crc │ │ │ ├── Port_851.occ │ │ │ ├── Port_851.ocm │ │ │ └── Port_851_boot.tizip │ │ ├── CurrentConfig.tszip │ │ └── CurrentConfig │ │ │ └── Examples.tpzip │ ├── CurrentConfig │ │ └── Examples.tpzip │ └── TargetDescription.xml ├── Examples │ ├── _Libraries │ │ ├── hganchev │ │ │ └── tc-tools │ │ │ │ └── 1.0.0.0 │ │ │ │ └── twincat-tools.library │ │ └── beckhoff automation gmbh │ │ │ ├── tc2_math │ │ │ └── 3.3.1.0 │ │ │ │ └── tc2_math.compiled-library │ │ │ ├── tc2_mc2 │ │ │ └── 3.3.45.0 │ │ │ │ └── tc2_mc2.compiled-library │ │ │ ├── tc2_system │ │ │ └── 3.4.24.0 │ │ │ │ └── tc2_system.compiled-library │ │ │ ├── tc3_module │ │ │ └── 3.3.21.0 │ │ │ │ └── tc3_module.compiled-library │ │ │ ├── tc2_standard │ │ │ └── 3.3.3.0 │ │ │ │ └── tc2_standard.compiled-library │ │ │ └── tc2_utilities │ │ │ └── 3.3.46.0 │ │ │ └── tc2_utilities.compiled-library │ ├── _CompileInfo │ │ └── F75FBEA4-94D4-ADD6-3092-FE6AB1A3F54D.compileinfo │ ├── POUs │ │ ├── MAIN.TcPOU │ │ └── Examples │ │ │ └── ExportREALData │ │ │ └── ExportRealDataToFile.TcPOU │ ├── PlcTask.TcTTO │ └── Examples.plcproj ├── TrialLicense.tclrs └── TwinCAT Tools Examples.tsproj ├── TwinCAT_Tools_Units ├── _Boot │ ├── TwinCAT RT (x64) │ │ ├── Plc │ │ │ ├── Port_851.occ │ │ │ ├── Port_851.oce │ │ │ ├── Port_851.ocm │ │ │ ├── Port_851.autostart │ │ │ ├── Port_851.app │ │ │ ├── Port_851.cid │ │ │ ├── Port_851.crc │ │ │ └── Port_851_boot.tizip │ │ ├── CurrentConfig.tszip │ │ └── CurrentConfig │ │ │ └── Units.tpzip │ └── TargetDescription.xml ├── Units │ ├── _Libraries │ │ ├── www.tcunit.org │ │ │ └── tcunit │ │ │ │ └── 1.2.0.0 │ │ │ │ └── tcunit.library │ │ ├── hganchev │ │ │ └── tc-tools │ │ │ │ └── 1.0.0.0 │ │ │ │ └── twincat-tools.library │ │ ├── system │ │ │ ├── sysdir │ │ │ │ └── 3.5.12.0 │ │ │ │ │ └── sysdir.compiled-library │ │ │ ├── sysfile │ │ │ │ └── 3.5.9.0 │ │ │ │ │ └── sysfile.compiled-library │ │ │ ├── base interfaces │ │ │ │ └── 3.5.2.0 │ │ │ │ │ └── base_itfs.compiled-library │ │ │ ├── systypes2 interfaces │ │ │ │ └── 3.5.4.0 │ │ │ │ │ └── systypes_itfs.compiled-library │ │ │ └── cmperrors2 interfaces │ │ │ │ └── 3.5.12.0 │ │ │ │ └── cmperrors2_itfs.compiled-library │ │ └── beckhoff automation gmbh │ │ │ ├── tc2_system │ │ │ └── 3.4.24.0 │ │ │ │ └── tc2_system.compiled-library │ │ │ ├── tc3_module │ │ │ └── 3.3.21.0 │ │ │ │ └── tc3_module.compiled-library │ │ │ ├── tc2_standard │ │ │ └── 3.3.3.0 │ │ │ │ └── tc2_standard.compiled-library │ │ │ └── tc2_utilities │ │ │ └── 3.3.46.0 │ │ │ └── tc2_utilities.compiled-library │ ├── _CompileInfo │ │ ├── A7402BAE-A8B5-F18C-86D9-E3F500AF8F59.compileinfo │ │ └── F8BF8105-DE79-4E55-E809-D5A7AF9236D5.compileinfo │ ├── POUs │ │ └── UnitTests.TcPOU │ ├── PlcTask.TcTTO │ ├── Units │ │ ├── FB_TestSplit.TcPOU │ │ ├── FB_TestRange.TcPOU │ │ └── FB_TestRound.TcPOU │ └── Units.plcproj ├── TrialLicense.tclrs ├── TwinCAT_Tools_Units.tsproj └── TwinCAT_Tools_Units.tsproj.bak ├── library ├── Install_Library.PNG └── twincat-tools.library ├── .gitignore ├── README.md └── TwinCAT Tools.sln /TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.oce: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.ocm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.oce: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.autostart: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.occ: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.oce: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.ocm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.autostart: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.autostart: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /library/Install_Library.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/library/Install_Library.PNG -------------------------------------------------------------------------------- /library/twincat-tools.library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/library/twincat-tools.library -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.app: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.app -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.cid: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.cid -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.crc -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.occ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851.occ -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/CurrentConfig/Examples.tpzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/_Boot/CurrentConfig/Examples.tpzip -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/CurrentConfig.tszip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/_Boot/TwinCAT RT (x64)/CurrentConfig.tszip -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851_boot.tizip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/_Boot/TwinCAT RT (x64)/Plc/Port_851_boot.tizip -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.app: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.app -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.cid: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.cid -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851.crc -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.app: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.app -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.cid: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.cid -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.crc -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.occ: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.occ -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.ocm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851.ocm -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/CurrentConfig.tszip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/CurrentConfig.tszip -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/CurrentConfig.tszip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/CurrentConfig.tszip -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851_boot.tizip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/Plc/Port_851_boot.tizip -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851_boot.tizip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/Plc/Port_851_boot.tizip -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/CurrentConfig/twincat-tools.tpzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/_Boot/TwinCAT RT (x64)/CurrentConfig/twincat-tools.tpzip -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/CurrentConfig/Units.tpzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/_Boot/TwinCAT RT (x64)/CurrentConfig/Units.tpzip -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/CurrentConfig/Examples.tpzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/_Boot/TwinCAT RT (x64)/CurrentConfig/Examples.tpzip -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/www.tcunit.org/tcunit/1.2.0.0/tcunit.library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/www.tcunit.org/tcunit/1.2.0.0/tcunit.library -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/www.tcunit.org/tcunit/1.2.0.0/tcunit.library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/www.tcunit.org/tcunit/1.2.0.0/tcunit.library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/hganchev/tc-tools/1.0.0.0/twincat-tools.library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/hganchev/tc-tools/1.0.0.0/twincat-tools.library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/system/sysdir/3.5.12.0/sysdir.compiled-library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/system/sysfile/3.5.9.0/sysfile.compiled-library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_CompileInfo/A7402BAE-A8B5-F18C-86D9-E3F500AF8F59.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_CompileInfo/A7402BAE-A8B5-F18C-86D9-E3F500AF8F59.compileinfo -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_CompileInfo/F8BF8105-DE79-4E55-E809-D5A7AF9236D5.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_CompileInfo/F8BF8105-DE79-4E55-E809-D5A7AF9236D5.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/_Libraries/hganchev/tc-tools/1.0.0.0/twincat-tools.library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/Examples/_Libraries/hganchev/tc-tools/1.0.0.0/twincat-tools.library -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_CompileInfo/27A2150A-CC11-797C-ED05-9EF650FB8D7A.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_CompileInfo/27A2150A-CC11-797C-ED05-9EF650FB8D7A.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_CompileInfo/6EF4C805-A82C-8168-E2C8-F8DADC37FB09.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_CompileInfo/6EF4C805-A82C-8168-E2C8-F8DADC37FB09.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_CompileInfo/80BC86C0-CD6C-C7DA-9FF9-BF256AB6D225.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_CompileInfo/80BC86C0-CD6C-C7DA-9FF9-BF256AB6D225.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_CompileInfo/AC30A1A4-BBA5-5205-43BA-0E4EBFE88D74.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_CompileInfo/AC30A1A4-BBA5-5205-43BA-0E4EBFE88D74.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_CompileInfo/B0A32C4E-8486-09B0-D219-64752457C131.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_CompileInfo/B0A32C4E-8486-09B0-D219-64752457C131.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_CompileInfo/B46B471B-AACB-922F-9483-7057483F84CA.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_CompileInfo/B46B471B-AACB-922F-9483-7057483F84CA.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_CompileInfo/C05C1C2A-BE26-5AAC-CE2A-EB65348BE9FE.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_CompileInfo/C05C1C2A-BE26-5AAC-CE2A-EB65348BE9FE.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_CompileInfo/F8BF8105-DE79-4E55-E809-D5A7AF9236D5.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_CompileInfo/F8BF8105-DE79-4E55-E809-D5A7AF9236D5.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_CompileInfo/FFA8E674-ECD1-B144-75A6-9FA890D2A22A.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_CompileInfo/FFA8E674-ECD1-B144-75A6-9FA890D2A22A.compileinfo -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/_CompileInfo/F75FBEA4-94D4-ADD6-3092-FE6AB1A3F54D.compileinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/Examples/_CompileInfo/F75FBEA4-94D4-ADD6-3092-FE6AB1A3F54D.compileinfo -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/system/base interfaces/3.5.2.0/base_itfs.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/system/base interfaces/3.5.2.0/base_itfs.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TargetDescription.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 3 5 | 1 6 | 4024 7 | 20 8 | 9 | 10 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/system/base interfaces/3.5.2.0/base_itfs.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/system/base interfaces/3.5.2.0/base_itfs.compiled-library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/_Boot/TargetDescription.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 3 5 | 1 6 | 4024 7 | 20 8 | 9 | 10 | -------------------------------------------------------------------------------- /TwinCAT Tools Examples/_Boot/TargetDescription.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 3 5 | 1 6 | 4024 7 | 20 8 | 9 | 10 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/system/systypes2 interfaces/3.5.4.0/systypes_itfs.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/system/systypes2 interfaces/3.5.4.0/systypes_itfs.compiled-library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/system/systypes2 interfaces/3.5.4.0/systypes_itfs.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/system/systypes2 interfaces/3.5.4.0/systypes_itfs.compiled-library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/system/cmperrors2 interfaces/3.5.12.0/cmperrors2_itfs.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/system/cmperrors2 interfaces/3.5.12.0/cmperrors2_itfs.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_math/3.3.1.0/tc2_math.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_math/3.3.1.0/tc2_math.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_mc2/3.3.45.0/tc2_mc2.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_mc2/3.3.45.0/tc2_mc2.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/system/cmperrors2 interfaces/3.5.12.0/cmperrors2_itfs.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/system/cmperrors2 interfaces/3.5.12.0/cmperrors2_itfs.compiled-library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/beckhoff automation gmbh/tc2_system/3.4.24.0/tc2_system.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/beckhoff automation gmbh/tc2_system/3.4.24.0/tc2_system.compiled-library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/beckhoff automation gmbh/tc2_system/3.4.24.0/tc2_system.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/beckhoff automation gmbh/tc2_system/3.4.24.0/tc2_system.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.3.0/tc2_standard.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.3.0/tc2_standard.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_system/3.4.24.0/tc2_system.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_system/3.4.24.0/tc2_system.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc3_module/3.3.21.0/tc3_module.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.3.0/tc2_standard.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.3.0/tc2_standard.compiled-library -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.46.0/tc2_utilities.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT_Tools_Units/Units/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.46.0/tc2_utilities.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.46.0/tc2_utilities.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools/twincat-tools/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.46.0/tc2_utilities.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.3.0/tc2_standard.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_standard/3.3.3.0/tc2_standard.compiled-library -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.46.0/tc2_utilities.compiled-library: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Technical-Software-Solutions/twincat-tools/HEAD/TwinCAT Tools Examples/Examples/_Libraries/beckhoff automation gmbh/tc2_utilities/3.3.46.0/tc2_utilities.compiled-library -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # This .gitignore file was automatically created by Microsoft(R) Visual Studio. 3 | ################################################################################ 4 | 5 | *.suo 6 | *.~u 7 | /TwinCAT Tools/TwinCAT Tools/_Boot 8 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/twincat-tools.tmcRefac: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MC_CONTROL 6 | MC_Control 7 | MC_AxisControl 8 | 9 | 10 | -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/POUs/MAIN.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/POUs/UnitTests.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/Version/Global_Version.TcGVL: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 14 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/PlcTask.TcTTO: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10000 6 | 20 7 | {4a220670-adef-419f-902f-3895a844b81f} 8 | {26c42f4a-ed91-4ce8-a678-8db5d5f3f6c4} 9 | {e8dc2bda-f989-486d-80c0-7dc8b3519b72} 10 | {6a44f8d9-fd0f-4b3f-8f70-6e6cc7b07947} 11 | {f0c50cb7-8dd6-4dae-b4f3-381a249737ce} 12 | 13 | -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/PlcTask.TcTTO: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10000 6 | 20 7 | 8 | MAIN 9 | 10 | {a95275e7-ca47-4a67-8d7f-f2a77b3a8ea4} 11 | {596366a9-b19a-481d-9c93-be44836ac3ef} 12 | {376f6b20-7b60-4f70-b18f-3aaa5f7e634f} 13 | {63957075-fa71-4f66-9545-5489f0c59f16} 14 | {9585154b-f5da-47d9-9091-4f5bb0e5e24b} 15 | 16 | 17 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/PlcTask.TcTTO: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10000 6 | 20 7 | 8 | UnitTests 9 | 10 | {a0b3fbbc-713a-44f1-ae53-cc1f5e93912a} 11 | {8c024eb0-52ec-4d7e-8829-d2b88ad54675} 12 | {2511cc8c-6fcc-4724-afa3-fff06e6136e6} 13 | {35a0c50c-bc41-427d-9f16-12af7f1cfa17} 14 | {f47ea454-828b-41a6-a41f-d31adfdaccb4} 15 | 16 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/GVLs/Parameters.TcGVL: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # twincat-tools 2 | TwinCAT tools for better programming 3 | 4 | - [Toools](https://github.com/hganchev/twincat-tools/tree/main/TwinCAT%20Tools/twincat-tools/POUs) 5 | - [Examples](https://github.com/hganchev/twincat-tools/tree/main/TwinCAT%20Tools/twincat-tools/Examples) 6 | - [Library](https://github.com/hganchev/twincat-tools/tree/main/library) 7 | 8 | ## Installation 9 | Download [library file](https://github.com/hganchev/twincat-tools/tree/main/library) then in TwinCAT project go to References -> Library Repository -> Install -> find the library file and click Open. 10 | 11 | ![](https://github.com/hganchev/twincat-tools/blob/main/library/Install_Library.PNG) 12 | 13 | ## Usage 14 | ```pascal 15 | VAR 16 | roundValue : LREAL; 17 | END_VAR 18 | 19 | roundValue = F_ROUND_LREAL(5.22222222, 2); // Round value to second sign 20 | ``` 21 | -------------------------------------------------------------------------------- /TwinCAT Tools/TrialLicense.tclrs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {7B9F532D-C217-ED8D-8449-1CB8CE1054C8} 5 | 2023-06-24T05:45:00 6 | 2023-07-02T00:00:00 7 | 67f2a334409aa304758993b1c0798f1f97e7b93be9de91084e5a56c5f832c6a9835b522885fe983e05c9d9afc98d19f89041363625cb4e749090ed88db6bee0f04d4b6c7240db561caea71ab7f0b0852555a09489ee9f4e95d60091de4dc0e4588c6ea70f60af5dba811615196a1def8c0f40c800fc3b3287ad7b9efc3444aa9104437eff183d87656232124756278beca8507988f39510d60b7e3b7faa525cf84bcae71f655862d9f3f35b4b330a5de61584115eea50cd66cd43bcd1cb7705d4830c0570b272571fb931cbcf768b2c4ff045268257ae6acb38e7f7008426206205b461d0ac09dffe87b2131b17cca5cf371cdd9fc5d3e5c69b91599720b4fb9 8 | 9 | {4C256767-E6E6-4AF5-BD68-9F7ABAD0C200} 10 | TC3 ADS 11 | TC1000 12 | 13 | 14 | {3FF18E97-7754-401B-93FB-70544DE28A13} 15 | TC3 IO 16 | TC1100 17 | 18 | 19 | {66689887-CCBD-452C-AC9A-039D997C6E66} 20 | TC3 PLC 21 | TC1200 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/TrialLicense.tclrs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {7B9F532D-C217-ED8D-8449-1CB8CE1054C8} 5 | 2023-12-08T18:49:00 6 | 2023-12-16T00:00:00 7 | 566fd268b7fc508945e3eb6b9fe8e9ca18e14a0b2736735f52b24e7bb009bc2bfb78a55ccb258d8288bc92a86bf5df52dfefd321a78a64abe6c8886ea3e16f66522b765138c6f91d3a4416eaa459c451cad2804520b79a70c2121a50615895383374b434c08e03d7d089410c336a0821e80387bdd51f336c7b1e8f796e8d7b768adf6f7440a11b6f25ed1ce92d0cd25d3a8ac3f626fd3c7c10f3b8baba6f830a73d9fb21c8ea9808463c1d06f91f8a4377d2458256fa4e019ff7374a2c419973030c04a6442e3d76a76ca83efbc2b6eafa088d240b3f74a7e87d2c2af7b09be6b07a94320ce6f09eda4607b271e1a5a94f39eb98b6a23d6bf07d924b16df5a75 8 | 9 | {4C256767-E6E6-4AF5-BD68-9F7ABAD0C200} 10 | TC3 ADS 11 | TC1000 12 | 13 | 14 | {3FF18E97-7754-401B-93FB-70544DE28A13} 15 | TC3 IO 16 | TC1100 17 | 18 | 19 | {66689887-CCBD-452C-AC9A-039D997C6E66} 20 | TC3 PLC 21 | TC1200 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/TwinCAT_Tools_Units.tsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | PlcTask 8 | 9 | 10 | 11 | 12 | 13 | 14 | Units Instance 15 | {08500001-0000-0000-F000-000000000064} 16 | 17 | 18 | 0 19 | PlcTask 20 | 21 | #x02010030 22 | 23 | 20 24 | 10000000 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/TwinCAT_Tools_Units.tsproj.bak: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | PlcTask 8 | 9 | 10 | 11 | 12 | 13 | 14 | Units Instance 15 | {08500001-0000-0000-F000-000000000064} 16 | 17 | 18 | 0 19 | PlcTask 20 | 21 | #x02010030 22 | 23 | 20 24 | 10000000 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /TwinCAT Tools/TwinCAT Tools.tsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | PlcTask 8 | 9 | 10 | 11 | 12 | 13 | 14 | twincat-tools Instance 15 | {08500001-0000-0000-F000-000000000064} 16 | 17 | 18 | 0 19 | PlcTask 20 | 21 | #x02010030 22 | 23 | 20 24 | 10000000 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /TwinCAT Tools/TwinCAT Tools.tsproj.bak: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | PlcTask 8 | 9 | 10 | 11 | 12 | 13 | 14 | twincat-tools Instance 15 | {08500001-0000-0000-F000-000000000064} 16 | 17 | 18 | 0 19 | PlcTask 20 | 21 | #x02010030 22 | 23 | 20 24 | 10000000 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/Range/F_IN_BOUNDS_ARRAY_INT.md: -------------------------------------------------------------------------------- 1 | # F_IN_BOUNDS_ARRAY_INT Function 2 | 3 | The `F_IN_BOUNDS_ARRAY_INT` function is a custom function in TwinCAT that checks if an index is within the bounds of an integer array. 4 | 5 | ## Function Signature 6 | 7 | ```pascal 8 | FUNCTION F_IN_BOUNDS_ARRAY_INT : BOOL 9 | VAR_INPUT 10 | index : DINT; // The index to check 11 | END_VAR 12 | VAR_IN_OUT 13 | arrayIn : ARRAY[*] OF INT; // The integer array to check against 14 | END_VAR 15 | ``` 16 | 17 | # Parameters 18 | `index` (Input): The index to check whether it is within the bounds of the array. 19 | `arrayIn` (Input/Output): The integer array against which the index is checked. 20 | 21 | # Return Value 22 | `F_IN_BOUNDS_ARRAY_INT` returns a BOOL value. It is set to `TRUE` if the index is within the bounds of the array; 23 | otherwise, it is set to `FALSE`. 24 | 25 | # Usage Example 26 | ```pascal 27 | VAR 28 | MyArray : ARRAY[1..5] OF INT := [10, 20, 30, 40, 50]; 29 | MyIndex : DINT := 3; 30 | IsInBounds : BOOL; 31 | END_VAR 32 | 33 | IsInBounds := F_IN_BOUNDS_ARRAY_INT(MyIndex, MyArray); 34 | ``` 35 | In this example, the `MyArray` variable represents an integer array with elements 36 | `[10, 20, 30, 40, 50]`. The `MyIndex` variable contains the index that you want to check. 37 | The `F_IN_BOUNDS_ARRAY_INT` function is then used to check whether `MyIndex` is within the bounds of `MyArray`. 38 | The result is stored in the `IsInBounds` variable. 39 | 40 | After executing the code, `IsInBounds` will be set to `TRUE` since the value of `MyIndex (3)` is within the bounds of `MyArray`. -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/TimeStamp/F_GET_TIME_STAMP.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 20 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/String/README.md: -------------------------------------------------------------------------------- 1 | ### F_STRING_SPLIT Function 2 | This function takes a string sInput and a split character sSplitChar and splits the input string into an array of substrings. The resulting array, F_STRING_SPLIT, has a size of Parameters.iSplitArraySize. 3 | 4 | ## Inputs 5 | sInput (STRING): The input string to be split. It has a maximum length of 255 characters. 6 | sSplitChar (STRING): The character used to split the input string. It should be a single character. 7 | ## Outputs 8 | F_STRING_SPLIT (ARRAY[0..Parameters.iSplitArraySize] OF STRING(255)): The array of substrings resulting from the split operation. Each substring has a maximum length of 255 characters. 9 | Implementation 10 | The function implementation is as follows: 11 | 12 | ```pascal 13 | sCopy := sInput; 14 | 15 | FOR i := 0 TO Parameters.iSplitArraySize DO 16 | IF FIND(sCopy, sSplitChar) > 0 THEN 17 | sSplit := LEFT(sCopy, FIND(sCopy, sSplitChar) - 1); 18 | iDeleteLen := LEN(sSplit) + LEN(sSplitChar); 19 | ELSE 20 | sSplit := sCopy; 21 | iDeleteLen := LEN(sSplit); 22 | END_IF 23 | 24 | // Take the string value 25 | F_STRING_SPLIT[i] := sSplit; 26 | 27 | // Delete 28 | sCopy := DELETE(sCopy, iDeleteLen, 1); 29 | 30 | // End of split 31 | IF sCopy = '' THEN 32 | EXIT; 33 | END_IF 34 | END_FOR 35 | ``` 36 | This implementation iteratively splits the input string using the specified split character. It assigns each substring to the corresponding element in the F_STRINGSPLIT array. The splitting process continues until either the end of the input string is reached or the maximum number of substrings specified by Parameters.iSplitArraySize is reached. 37 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/Range/F_GET_IN_RANGE_INT.md: -------------------------------------------------------------------------------- 1 | # F_GET_IN_RANGE_INT Function 2 | 3 | The `F_GET_IN_RANGE_INT` function is a custom function in TwinCAT that allows you to map an input 4 | integer value from one range to another range. 5 | 6 | ## Function Signature 7 | 8 | ```pascal 9 | FUNCTION F_GET_IN_RANGE_INT : INT 10 | VAR_INPUT 11 | value : INT; // Input value to map 12 | range_max : INT; // Maximum value of the target range 13 | range_min : INT; // Minimum value of the target range 14 | value_max : INT; // Maximum value of the input value range 15 | value_min : INT; // Minimum value of the input value range 16 | END_VAR 17 | VAR 18 | END_VAR 19 | ``` 20 | 21 | # Parameters 22 | - `value` (Input): The input integer value that you want to map to the target range. 23 | - `range_max` (Input): The maximum value of the target range. 24 | - `range_min` (Input): The minimum value of the target range. 25 | - `value_max` (Input): The maximum value of the input value range. 26 | - `value_min` (Input): The minimum value of the input value range. 27 | 28 | # Return Value 29 | `F_GET_IN_RANGE_INT` returns an `INT` value that represents the mapped integer value from the input range to the target range. 30 | 31 | # Usage Example 32 | ```pascal 33 | VAR 34 | InputValue : INT := 50; 35 | MappedValue : INT; 36 | END_VAR 37 | 38 | // Map InputValue from the range [0, 100] to the range [500, 1000] 39 | MappedValue := F_GET_IN_RANGE_INT(InputValue, 1000, 500, 100, 0); 40 | ``` 41 | In this example, the `InputValue` variable represents the integer value that you want to map. The `F_GET_IN_RANGE_INT` 42 | function is then used to map InputValue from the range `[0, 100]` to the range `[500, 1000]`. 43 | The result is stored in the MappedValue variable. 44 | 45 | After executing the code, MappedValue will be equal to `750`. -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/Round/README.md: -------------------------------------------------------------------------------- 1 | # Round Functions 2 | 3 | The `F_ROUND_REAL` function is a custom function in TwinCAT that allows you to round a real number to a specified number of decimal places. 4 | 5 | ## Function Signature 6 | 7 | ```pascal 8 | FUNCTION F_ROUND_REAL : REAL 9 | VAR_INPUT 10 | rValue : REAL; // Input Value 11 | iDecNumber : INT; // Numbers after decimal point 12 | END_VAR 13 | VAR 14 | rOutValue : REAL; 15 | rLeftValue : REAL; 16 | END_VAR 17 | 18 | rOutValue := rValue * EXPT(10,iDecNumber); 19 | rLeftValue := rOutValue - TRUNC(rOutValue); 20 | IF rLeftValue >= 0.5 THEN 21 | rOutValue := TRUNC(rOutValue + 1) / EXPT(10,iDecNumber); 22 | ElSIF rLeftValue <= -0.5 THEN 23 | rOutValue := TRUNC(rOutValue - 1) / EXPT(10,iDecNumber); 24 | ELSE 25 | rOutValue := TRUNC(rOutValue) / EXPT(10,iDecNumber); 26 | END_IF 27 | F_ROUND_REAL := rOutValue; 28 | ``` 29 | 30 | ## Input Parameters 31 | - rValue (Input): The real number that you want to round. 32 | - iDecNumber (Input): The number of decimal places to round to. 33 | 34 | ## Return Value 35 | - F_ROUND_REAL returns a REAL value that represents the rounded result of the input number with the specified decimal places. It rounds to higher number if the lef value is bigger or equal than 0.5. 36 | 37 | ## Usage Example 38 | 39 | ```pascal 40 | VAR 41 | MyValue : REAL := 3.14159; 42 | RoundedValue : REAL; 43 | END_VAR 44 | 45 | 46 | RoundedValue := F_ROUND_REAL(MyValue, 2); // Round MyValue to 2 decimal places - Rounded value = 3.14 47 | ``` 48 | 49 | In this example, the MyValue variable represents the real number that you want to round. The F_ROUND_REAL function is then used to round MyValue to 2 decimal places. The result is stored in the RoundedValue variable. 50 | 51 | After executing the code, RoundedValue will contain the rounded value of MyValue with 2 decimal places. 52 | -------------------------------------------------------------------------------- /TwinCAT Tools Examples/TrialLicense.tclrs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {7B9F532D-C217-ED8D-8449-1CB8CE1054C8} 5 | 2024-03-05T19:54:00 6 | 2024-03-13T00:00:00 7 | c76187d8941ae017ba935059914513332e11378ecf00cc8bf987f4ae6516f7c2f71200cd4bc7a0af324957498741f09b87ee0e0801c915afdd4a4950bd37722c62a272820e909bfd569b9dff2884a89ae807b45bbc5c50e7a6b1fded0d6e6d3e299305000cdc36a6ac3918e3107508918f07c2d27a5989a5b04e99467a4deee3c648f1bf7d9b4e7289cb487c300102a67a8a7010fda2e08022397eaacc55fb8807db1357b4d6d61ec760fdd15eab5dcfda40b56ee870999ae09389a5986203e267d6d5037140e1aea577fd201621cc9a960b6c116dd216d8862543c29573d22bbbe6062f8cdfa422e9d4a5722b4f6ddcdda5011d3787ace8ed817d49b00b1bfd 8 | 9 | {94C91BCC-DC1F-4EBC-AEFD-2DC25DF4708B} 10 | TC3 EtherCAT Simulation 11 | TE1111 12 | 13 | 14 | {4C256767-E6E6-4AF5-BD68-9F7ABAD0C200} 15 | TC3 ADS 16 | TC1000 17 | 18 | 19 | {A19036CF-A53B-4E3A-99FF-023EF5C4798B} 20 | TC3 NC PTP Axis 21 | 10 22 | 23 | 24 | {66689887-CCBD-452C-AC9A-039D997C6E66} 25 | TC3 PLC 26 | TC1200 27 | 28 | 29 | {520DE751-9DB6-47CB-8240-BD5C466E7E64} 30 | TC3 NC PTP 31 | TF5000 32 | 33 | 34 | {3FF18E97-7754-401B-93FB-70544DE28A13} 35 | TC3 IO 36 | TC1100 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/POUs/Examples/ExportREALData/ExportRealDataToFile.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 30 | 31 | bExportDone);]]> 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/Units/FB_TestSplit.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 18 | 19 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/Range/F_IN_BOUNDS_ARRAY_INT.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | :Author: hganchev 7 | 8 | **Description:** 9 | 10 | The F_IN_BOUNDS_ARRAY_INT function is a custom function in TwinCAT that checks if an index is within the bounds of an integer array. 11 | 12 | **Parameters:** 13 | 14 | - index (Input): The index to check whether it is within the bounds of the array. 15 | - arrayIn (Input/Output): The integer array against which the index is checked. 16 | 17 | **Return Value:** 18 | 19 | F_IN_BOUNDS_ARRAY_INT returns a BOOL value. It is set to TRUE if the index is within the bounds of the array; otherwise, it is set to FALSE. 20 | 21 | **Usage Example:** 22 | 23 | .. code:: 24 | 25 | VAR 26 | MyArray : ARRAY[1..5] OF INT := [10, 20, 30, 40, 50]; 27 | MyIndex : DINT := 3; 28 | IsInBounds : BOOL; 29 | END_VAR 30 | 31 | IsInBounds := F_IN_BOUNDS_ARRAY_INT(MyIndex, MyArray); 32 | 33 | In this example, the MyArray variable represents an integer array with elements [10, 20, 30, 40, 50]. 34 | The MyIndex variable contains the index that you want to check. 35 | The F_IN_BOUNDS_ARRAY_INT function is then used to check whether MyIndex is within the bounds of MyArray. 36 | The result is stored in the IsInBounds variable. 37 | 38 | After executing the code, IsInBounds will be set to TRUE since the value of MyIndex (3) is within the bounds of MyArray. 39 | *) 40 | 41 | FUNCTION F_IN_BOUNDS_ARRAY_INT : BOOL 42 | VAR_INPUT 43 | index : DINT; 44 | END_VAR 45 | VAR_IN_OUT 46 | arrayIn : ARRAY[*] OF INT; 47 | END_VAR 48 | VAR 49 | 50 | END_VAR 51 | ]]> 52 | 53 | = LOWER_BOUND(arrayIn, 1); 54 | ]]> 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/Range/F_GET_IN_RANGE_INT.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | :Author: hganchev 7 | 8 | **Description:** 9 | 10 | The F_GET_IN_RANGE_INT function is a custom function in TwinCAT that allows you to map an input integer value from one range to another range. 11 | 12 | **Parameters:** 13 | 14 | - value (Input): The input integer value that you want to map to the target range. 15 | - range_max (Input): The maximum value of the target range. 16 | - range_min (Input): The minimum value of the target range. 17 | - value_max (Input): The maximum value of the input value range. 18 | - value_min (Input): The minimum value of the input value range. 19 | 20 | **Return Value:** 21 | 22 | F_GET_IN_RANGE_INT returns an INT value that represents the mapped integer value from the input range to the target range. 23 | 24 | **Usage Example:** 25 | 26 | .. code:: 27 | 28 | VAR 29 | InputValue : INT := 50; 30 | MappedValue : INT; 31 | END_VAR 32 | 33 | // Map InputValue from the range [0, 100] to the range [500, 1000] 34 | MappedValue := F_GET_IN_RANGE_INT(InputValue, 1000, 500, 100, 0); 35 | 36 | In this example, the InputValue variable represents the integer value that you want to map. 37 | The F_GET_IN_RANGE_INT function is then used to map InputValue from the range [0, 100] to the range [500, 1000]. 38 | The result is stored in the MappedValue variable. 39 | 40 | After executing the code, MappedValue will be equal to 750. 41 | *) 42 | FUNCTION F_GET_IN_RANGE_INT : INT 43 | VAR_INPUT 44 | value, range_max, range_min, value_max, value_min : INT; // Where range max/min is the range you want to fit the value 45 | END_VAR 46 | VAR 47 | END_VAR 48 | ]]> 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/Round/F_ROUND_LREAL.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | :Author: hganchev 7 | 8 | **Description:** 9 | The F_ROUND_LREAL function is a custom function in TwinCAT that allows you to round a real number to a 10 | specified number of decimal places. 11 | 12 | **Input Parameters:** 13 | 14 | - rValue(Input): The lreal number that you want to round. 15 | 16 | - iDecNumber(Input): The number of decimal places to round to. 17 | 18 | **Return Value:** 19 | F_ROUND_LREAL returns a LREAL value that represents the rounded result of the input number with the specified decimal places.It rounds to higher number if the lef value is bigger or equal than 0.5. 20 | 21 | **Usage Example:** 22 | 23 | .. code:: 24 | 25 | VAR 26 | MyValue : LREAL := 3.14159; 27 | RoundedValue : LREAL; 28 | END_VAR 29 | 30 | RoundedValue := F_ROUND_LREAL(MyValue, 2); 31 | 32 | In this example, the MyValue variable represents the real number that you want to round. 33 | The F_ROUND_LREAL function is then used to round MyValue to 2 decimal places. 34 | The result is stored in the RoundedValue variable. 35 | 36 | After executing the code, RoundedValue will contain the rounded value of MyValue with 2 decimal places. 37 | *) 38 | FUNCTION F_ROUND_LREAL : LREAL 39 | VAR_INPUT 40 | rValue : LREAL; // Input Value 41 | iDecNumber : INT; // Numbers after decimal point 42 | END_VAR 43 | VAR 44 | rOutValue : LREAL; 45 | rLeftValue : LREAL; 46 | END_VAR 47 | ]]> 48 | 49 | = 0.5 THEN 52 | rOutValue := TRUNC(rOutValue + 1) / EXPT(10,iDecNumber); 53 | ELSIF rLeftValue <= -0.5 THEN 54 | rOutValue := TRUNC(rOutValue - 1) / EXPT(10,iDecNumber); 55 | ELSE 56 | rOutValue := TRUNC(rOutValue) / EXPT(10,iDecNumber); 57 | END_IF 58 | F_ROUND_LREAL := rOutValue;]]> 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/Round/F_ROUND_REAL.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | :Author: hganchev 7 | 8 | **Description:** 9 | The F_ROUND_REAL function is a custom function in TwinCAT that allows you to round a real number to a 10 | specified number of decimal places. 11 | 12 | **Input Parameters:** 13 | 14 | - rValue(Input): The real number that you want to round. 15 | 16 | - iDecNumber(Input): The number of decimal places to round to. 17 | 18 | **Return Value:** 19 | F_ROUND_REAL returns a REAL value that represents the rounded result of the input number with the specified decimal places.It rounds to higher number if the lef value is bigger or equal than 0.5. 20 | 21 | **Usage Example:** 22 | 23 | .. code:: 24 | 25 | VAR 26 | MyValue : REAL := 3.14159; 27 | RoundedValue : REAL; 28 | END_VAR 29 | 30 | RoundedValue := F_ROUND_REAL(MyValue, 2); 31 | 32 | In this example, the MyValue variable represents the real number that you want to round. 33 | The F_ROUND_REAL function is then used to round MyValue to 2 decimal places. 34 | The result is stored in the RoundedValue variable. 35 | 36 | After executing the code, RoundedValue will contain the rounded value of MyValue with 2 decimal places. 37 | *) 38 | FUNCTION F_ROUND_REAL : REAL 39 | VAR_INPUT 40 | rValue : REAL; // Input Value 41 | iDecNumber : INT; // Numbers after decimal point 42 | END_VAR 43 | VAR 44 | rOutValue : REAL; 45 | rLeftValue : REAL; 46 | END_VAR 47 | ]]> 48 | 49 | = 0.5 THEN 52 | rOutValue := TRUNC(rOutValue + 1) / EXPT(10,iDecNumber); 53 | ELSIF rLeftValue <= -0.5 THEN 54 | rOutValue := TRUNC(rOutValue - 1) / EXPT(10,iDecNumber); 55 | ELSE 56 | rOutValue := TRUNC(rOutValue) / EXPT(10,iDecNumber); 57 | END_IF 58 | F_ROUND_REAL := rOutValue;]]> 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/String/F_STRING_SPLIT.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | :Author: hganchev 7 | 8 | **Description:** 9 | 10 | This function takes a string sInput and a split character sSplitChar and splits the input string into an array of substrings. 11 | The resulting array, F_STRING_SPLIT, has a size of Parameters.iSplitArraySize. 12 | 13 | **Inputs:** 14 | 15 | This function takes a string sInput and a split character sSplitChar and splits the input string into an array of substrings. 16 | The resulting array, F_STRING_SPLIT, has a size of Parameters.iSplitArraySize. 17 | 18 | **Output:** 19 | 20 | This implementation iteratively splits the input string using the specified split character. It assigns each substring to the corresponding element in the F_STRING_SPLIT array. 21 | The splitting process continues until either the end of the input string is reached or the maximum number of substrings specified by Parameters.iSplitArraySize is reached. 22 | 23 | **Usage:** 24 | 25 | .. code:: 26 | 27 | VAR 28 | sArray : ARRAY[0..Parameters.iSplitArraySize] OF STRING(255); 29 | END_VAR 30 | 31 | sArray := F_STRING_SPLIT(sInput := 'Hello,World', sSplitChar := ','); 32 | 33 | Result: 34 | 35 | sArray[0] = 'Hello' 36 | sArray[1] = 'World' 37 | *) 38 | 39 | FUNCTION F_STRING_SPLIT : ARRAY[0..Parameters.iSplitArraySize] OF STRING(255) 40 | VAR_INPUT 41 | sInput : STRING(255); 42 | sSplitChar : STRING(1); 43 | END_VAR 44 | VAR 45 | sCopy : STRING(255); 46 | sSplit : STRING(255); 47 | iDeleteLen : INT; 48 | i : INT; 49 | END_VAR 50 | 51 | ]]> 52 | 53 | 0 THEN 57 | sSplit := LEFT(sCopy, FIND(sCopy, sSplitChar) - 1); 58 | iDeleteLen := LEN(sSplit) + LEN(sSplitChar); 59 | ELSE 60 | sSplit := sCopy; 61 | iDeleteLen := LEN(sSplit); 62 | END_IF 63 | 64 | // Take the string value 65 | F_STRING_SPLIT[i] := sSplit; 66 | 67 | // Delete 68 | sCopy := DELETE(sCopy, iDeleteLen, 1); 69 | 70 | // End of split 71 | IF sCopy = '' THEN 72 | EXIT; 73 | END_IF 74 | END_FOR]]> 75 | 76 | 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/Export/ExportArrayREALDataToTextFile.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 36 | 37 | fileHandle, bExecute := TRUE); 47 | 48 | // Clear data 49 | MEMSET(ADR(arrayDataByte), 16#00, SIZEOF(arrayDataByte)); 50 | 51 | k := 0; 52 | // Prepare string data 53 | FOR i := 0 TO Parameters.iArrayREALSize DO 54 | sData[i] := REAL_TO_STRING(arrData[i]); 55 | IF i > 0 THEN 56 | sData[i] := CONCAT(Parameters.sNewLineSymbol,sData[i]); 57 | END_IF 58 | // Convert to byte for every sData symbol 59 | FOR j := 0 TO LEN(sData[i]) DO 60 | MEMCPY(ADR(arrayDataByte[k]),ADR(sData[i][j]), 1); 61 | k := k + 1; 62 | END_FOR 63 | END_FOR 64 | 65 | // Write Data 66 | IF fileHandle <> 0 THEN 67 | fileWrite( hFile:= fileHandle, 68 | pWriteBuff:= ADR(arrayDataByte), 69 | cbWriteLen:= SIZEOF(arrayDataByte), 70 | bExecute := TRUE); 71 | END_IF 72 | 73 | IF fileWrite.cbWrite > 0 THEN 74 | bDone := TRUE; 75 | END_IF 76 | ELSIF NOT bExecute THEN 77 | IF NOT fileWrite.bBusy THEN 78 | fileWrite(bExecute := FALSE); 79 | fileOpen(bExecute := FALSE); 80 | fileClose(hFile := fileHandle, bExecute := TRUE); 81 | END_IF 82 | END_IF 83 | 84 | ]]> 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/POUs/AxisControl/MC_AxisControl.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 44 | 45 | bEnabled, 55 | Busy=> , 56 | Active=> , 57 | Error=> , 58 | ErrorID=> ); 59 | 60 | // Home - Reference the axis 61 | stHomingOptions.ReferenceMode := E_EncoderReferenceMode.ENCODERREFERENCEMODE_DEFAULT; 62 | stHomingOptions.SearchDirection := MC_Direction.MC_Negative_Direction; 63 | stHomingOptions.SearchVelocity := 10; 64 | fbHome( 65 | Axis:= axisRef, 66 | Execute:= bHome AND bEnabled, 67 | Position:= 0, 68 | HomingMode:= MC_HomingMode.MC_DefaultHoming, 69 | BufferMode:= , 70 | Options:= stHomingOptions, 71 | bCalibrationCam:= , 72 | Done=> , 73 | Busy=> , 74 | Active=> , 75 | CommandAborted=> , 76 | Error=> , 77 | ErrorID=> ); 78 | 79 | // Reset - reset error of axis 80 | fbReset( 81 | Axis:= axisRef, 82 | Execute:= bReset, 83 | Done=> , 84 | Busy=> , 85 | Error=> , 86 | ErrorID=> ); 87 | 88 | // Move Absolute - move to absolute position 89 | fbMove( 90 | Axis:= axisRef, 91 | Execute:= bMove AND bEnabled, 92 | Position:= nTargetPosition, 93 | Velocity:= nTargetVelocity, 94 | Acceleration:= nTargetAcceleration, 95 | Deceleration:= nTargetAcceleration, 96 | Jerk:= , 97 | BufferMode:= , 98 | Options:= , 99 | Done=> , 100 | Busy=> , 101 | Active=> , 102 | CommandAborted=> , 103 | Error=> , 104 | ErrorID=> ); 105 | 106 | // Status Actual Position 107 | fbActualPosition( 108 | Axis:= axisRef, 109 | Enable:= TRUE, 110 | Valid=> , 111 | Busy=> , 112 | Error=> , 113 | ErrorID=> , 114 | Position=> nActualPosition); 115 | 116 | // Status Actual Velocity 117 | fbActualVelocity( 118 | Axis:= axisRef, 119 | Enable:= TRUE, 120 | Valid=> , 121 | Busy=> , 122 | Error=> , 123 | ErrorID=> , 124 | ActualVelocity=> nActualVelocity); 125 | 126 | // Statuses 127 | axisRef.ReadStatus(); 128 | bReferenced := axisRef.Status.Homed; 129 | bMoving := axisRef.Status.Moving; 130 | bInPosition := axisRef.Status.InTargetPosition AND ABS(nTargetPosition - nActualPosition) < 0.1; 131 | bError := axisRef.Status.Error; 132 | nErrorID := axisRef.Status.ErrorID; 133 | 134 | // Reset Move 135 | IF bInPosition AND NOT bMoving THEN 136 | bMove := FALSE; 137 | END_IF 138 | 139 | 140 | ]]> 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | -------------------------------------------------------------------------------- /TwinCAT Tools/_Boot/TwinCAT RT (x64)/CurrentConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 33554432 5 | #x1 6 | #x1 7 | 8 | 64 9 | 4 10 | 11 | 12 | 13 | 14 | 1 15 | TcIo 16 | 17 | 18 | 1 19 | TcRtsObjects 20 | 21 | 22 | 1 23 | TcRTime 24 | 25 | 26 | 27 | 28 | Init1\IO: Download Config Id 29 | 300 30 | 61696 31 | 4 32 | 00000000 33 | 34 | 35 | Init1\IO: Download Config Id 36 | 12 37 | 96 38 | 0 39 | 1600000000000000e000000000000064060000001400000000000000e000000000000064070000001300000000000000e000000000000064080000001800000000000000e000000000000064060000003000000000000000e0000000000000640f0000000200000200000000e000000000000064080000001000000300000000e000000000000064040000002500000300000000e000000000000064040000002900000300000000e000000000000064040000001100000300000000e000000000000064050000000200000000000000e000000000000064040000003100000000000000e000000000000064040000003800000000000000e000000000000064040000001200000000000000e0000000000000640e0000001500000000000000e000000000000064060000000300000200000000e000000000000064100000001000000200000000e000000000000064220000001700000300000000e000000000000064040000001800000300000000e000000000000064070000001e00000300000000e000000000000064050000002600000300000000e000000000000064050000002a00000300000000e000000000000064050000001f00000300000000e000000000000064050000001200000300000000e000000000000064060000000100010100000000e000000000000064080000000201500800000000e000000000000064070000000401500800000000e000000000000064080000000500000500000000e000000000000064050000000600000500000000e000000000000064070000003500010300000000e000000000000064050000006000010300000000e0000000000000640c00000029742a746dda1d4c80d8398d8c1f1747110000001810020300000000e00000000000006406000000787cde9ca0327543827e924b31021fcd040000005a00000000000000e000000000000064050000005900000000000000e000000000000064060000002dc33b49338f3643b722bcbca961872308000000b124e3d3201b3944b9fddeefd5f940f1040000005e36edb646919a4394a0e5d91df0046904000000bb79e79054578041baff14c8892e5dde0e0000000a01500800000000e000000000000064050000006600000000000000e000000000000064070000006700000000000000e0000000000000640a000000d28c8ad27754754baf0f998841af9e440500000091d00a46520302409c5ec8ae7a1afe56060000006767bff78b543c49899b06a477976f11070000007aa8c9bfdef69a49ac45f3b1a59315f90a000000a57abfc3830afa4c9a7a04c1dfd0e5dd060000004662370c73d591498a8849fc3ad141e20700000050342923c5144c48b74f4e0a8dfd115d07000000e9b09c4a6989854bb5676051105112000a0000002ced746483e44e45a67d233e6d337c080d00000039d6d577dd16f7488490f632aa0959170e000000f74f6dec0558db4da31627894e77d644110000008df73f9ce897854f8187adb3bcb87387140000009ce6730d9b2d124ba5f73e8ae9dd214904000000e8beb647cb0e924c9d93fb11d3ba0336040000001b4b90700ef0cb4fbe59151086e9b8f607000000d7d9ccc0cddd2d4ca24cb1f3257c9a6407000000e2d4d5b2f607f444a29292ca8035aa861300000052cd047476371a4b9525b7c1d691dfc413000000f5f8efd67c18e148815133bb73c8399d04000000fe8773c4193c4845aca8c346c352e370070000006e0aa260bbcef949ac908e4ab112e9c00b0000002ca48f4245a4654a8b1ce156f288bf2b1d0000008125f468b109d143a4eaec93b57aeb57070000005bccde7de8080c49aa9c5f20e78347310700000032887798131971419e9d5b0d53c5ea9e110000000100010500000000e000000000000064070000000d000a0300000000e0000000000000640d0000000e000a0300000000e0000000000000640c00000009000a0300000000e0000000000000640400000010000a0300000000e0000000000000640600000023a7719a2839024cac02efd30999a041040000001fd8c4d7abcf0341b89e6f6731dbfc1c0a0000004866f3081a87a8439d474e77905a60630e000000b8408b015d250d45aa48409f5f874d1c050000008eb7513b5d2802448b9a18b75448481014000000307ddc2c225f9f429065d912d842114811000000d905e481af9f284c9985185ac023a4c20c000000a8aafc9e6f55694bab9f2967b7f9dfc60e0000002ac195e69a2d8e40b9b2508d7ce3af9a23000000f9832147095d8c4d92fde0524ef658bf260000008eb16b19999dce40b81e48992ce432170500000010abb7a499e523429e9fd8e321942f9c05000000c0d193f82dc82e4aa86f93f7442998b10a0000000bcb597a03d3d64a848c7a7efc5ab73c090000001220d185c07a7f48a49d154db46e728c060000007898edd85ef26147b6671dc5b051e07b05000000ae31567fc4f8d54b8a624c0bafacbe680d000000694987a47e8e9a4c98e0bf4657bed567090000004a23c0431a3f7542adbba0a312ed69e0090000006cae48bb15c4c544a13f9b5ec51d997504000000cdd70eb87c38764092f9c85ad8604de805000000d8dc2bf5f1fa8d46a92d3b13096aab03080000009600010300000000e000000000000064050000009e00010300000000e000000000000064080000009500010300000000e000000000000064040000009700010300000000e000000000000064070000009900010300000000e000000000000064050000009800010300000000e0000000000000640e0000009d00010300000000e00000000000006405000000 40 | Download TCom interface method counts 41 | -2147473648 42 | 43 | 44 | Init4\RTime: Start Interrupt 45 | 200 46 | 1 47 | 37 48 | 0000000050000000102700000000000000000000010000000000000000000000 49 | Ticker started 50 | 51 | 52 | Init10\IO: Create TComObj PREOP 53 | 10 54 | 3 55 | 0 56 | 0100020100000000f0000000000000641100000300000002020000000000000000000000000000000000000000000000492f4f2049646c65205461736b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000680000005c000000040000000000000000000000010000011d000000000000000000000054010d0000000000492f4f2049646c65205461736b00000000000000011000020400000040420f000000000002100002040000000b00000000000000071000020400000001000000 57 | Task 'I/O Idle Task' created 58 | 59 | 60 | Init10\IO: Create TComObj PREOP 61 | 10 62 | 3 63 | 0 64 | 0100020100000000f0000000000000643000010200000002020000000000000000000000000000000000000000000000506c635461736b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000054000000040000000000000000000000010000011700000000000000000000005e01070000000000506c635461736b00000000000110000204000000809698000000000002100002040000001400000000000000071000020400000001000000 65 | Task 'PlcTask' created 66 | 67 | 68 | Init12\IO: Set State TComObj SAFEOP 69 | 10 70 | 260 71 | 1 72 | 1100000330000102 73 | Set Objects (2) to SAFEOP 74 | 75 | 76 | 77 | 78 | Init16\IO: Set State TComObj SAFEOP OP 79 | 10 80 | 512 81 | 0 82 | 83 | 84 | 85 | TwinCAT Tools 86 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC} 87 | E:\MyProjects\Projects\GitHub\twincat-tools\TwinCAT Tools\TwinCAT Tools.tsproj 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /TwinCAT Tools Examples/Examples/Examples.plcproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1.0.0.0 4 | 2.0 5 | {367f648a-aa65-47bd-b90e-4b89548db942} 6 | True 7 | true 8 | true 9 | false 10 | Examples 11 | 3.1.4023.0 12 | {e1db78ba-b139-400c-a4cd-d5be89ebdc9e} 13 | {3ce9ef6f-dea6-4184-874a-a02710d8b1e3} 14 | {c86ec7c2-ac9b-4d87-b0e7-e71b23efb0ea} 15 | {e19b8af4-00cc-4f48-a73c-13342575d1ea} 16 | {29f59fa6-debd-4575-a65b-e8b5e6099c18} 17 | {df2812e9-702c-44e8-956d-058b22287ad9} 18 | 19 | 20 | 21 | Code 22 | 23 | 24 | Code 25 | 26 | 27 | Code 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | tc-tools, * (hganchev) 41 | tc_tools 42 | 43 | 44 | Tc2_MC2, * (Beckhoff Automation GmbH) 45 | Tc2_MC2 46 | 47 | 48 | Tc2_Standard, * (Beckhoff Automation GmbH) 49 | Tc2_Standard 50 | 51 | 52 | Tc2_System, * (Beckhoff Automation GmbH) 53 | Tc2_System 54 | 55 | 56 | Tc3_Module, * (Beckhoff Automation GmbH) 57 | Tc3_Module 58 | 59 | 60 | 61 | 62 | Content 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | "<ProjectRoot>" 71 | 72 | {192FAD59-8248-4824-A8DE-9177C94C195A} 73 | 74 | "{192FAD59-8248-4824-A8DE-9177C94C195A}" 75 | 76 | 77 | 78 | {29BD8D0C-3586-4548-BB48-497B9A01693F} 79 | 80 | "{29BD8D0C-3586-4548-BB48-497B9A01693F}" 81 | 82 | Rules 83 | 84 | "Rules" 85 | 86 | 87 | 88 | 89 | 90 | 91 | {40450F57-0AA3-4216-96F3-5444ECB29763} 92 | 93 | "{40450F57-0AA3-4216-96F3-5444ECB29763}" 94 | 95 | 96 | ActiveVisuProfile 97 | IR0whWr8bwfwBwAAiD2qpQAAAABVAgAA37x72QAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA0AC4ANwAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWFHYAaQBzAHUAaQBuAHAAdQB0AHMAFwxzAHkAcwB0AGUAbQAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC1INgBjAGIAMQBjAGQAZQAxAC0AZAA1AGQAYwAtADQAYQAzAGIALQA5ADAANQA0AC0AMgAxAGYAYQA3ADUANgBhADMAZgBhADQALihJAG4AdABlAHIAZgBhAGMAZQBWAGUAcgBzAGkAbwBuAEkAbgBmAG8AL0x7AGMANgAxADEAZQA0ADAAMAAtADcAZgBiADkALQA0AGMAMwA1AC0AYgA5AGEAYwAtADQAZQAzADEANABiADUAOQA5ADYANAAzAH0AMBhNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgAxGE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuADIMTABlAGcAYQBjAHkAMzBMAGEAbgBnAHUAYQBnAGUATQBvAGQAZQBsAFYAZQByAHMAaQBvAG4ASQBuAGYAbwA0MEwAbwBhAGQATABpAGIAcgBhAHIAaQBlAHMASQBuAHQAbwBQAHIAbwBqAGUAYwB0ADUaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgfQBwgaAUUHCQjQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60BAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAUAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0X0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAMAAAAFAAAADQAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtF9AAHy0t0C4vGgPQMAutAQAAANAxC60XAAAA0DIarQDQMy8aA9AwC60CAAAA0DELrQMAAADQMhqtANA0Gq0A0DUarQA= 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | System.Collections.Hashtable 106 | {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} 107 | System.String 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/Units.plcproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1.0.0.0 4 | 2.0 5 | {150ccaf6-d07a-4edd-ae48-75983f672b84} 6 | True 7 | true 8 | true 9 | false 10 | Units 11 | 3.1.4023.0 12 | {d4a8ca69-d980-4329-9faa-f6901707c74c} 13 | {4ba63dd6-b755-46fb-be7b-14507b731f4e} 14 | {84efc5f6-3f77-411c-b9d7-da80e20f2377} 15 | {441995b4-f0cf-4d1c-95a5-eaa196b680fe} 16 | {05c006c0-415b-4012-8af8-8bfce0f895ea} 17 | {f50ff326-7f12-48d2-bfe7-73892cfeccb5} 18 | 19 | 20 | 21 | Code 22 | 23 | 24 | Code 25 | 26 | 27 | Code 28 | 29 | 30 | Code 31 | 32 | 33 | Code 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | tc-tools, * (hganchev) 46 | tc_tools 47 | 48 | 49 | Tc2_Standard, * (Beckhoff Automation GmbH) 50 | Tc2_Standard 51 | 52 | 53 | Tc2_System, * (Beckhoff Automation GmbH) 54 | Tc2_System 55 | 56 | 57 | Tc3_Module, * (Beckhoff Automation GmbH) 58 | Tc3_Module 59 | 60 | 61 | TcUnit, * (www.tcunit.org) 62 | TcUnit 63 | 64 | 65 | 66 | 67 | Content 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | "<ProjectRoot>" 76 | 77 | {192FAD59-8248-4824-A8DE-9177C94C195A} 78 | 79 | "{192FAD59-8248-4824-A8DE-9177C94C195A}" 80 | 81 | 82 | 83 | {29BD8D0C-3586-4548-BB48-497B9A01693F} 84 | 85 | "{29BD8D0C-3586-4548-BB48-497B9A01693F}" 86 | 87 | Rules 88 | 89 | "Rules" 90 | 91 | 92 | 93 | 94 | 95 | 96 | {40450F57-0AA3-4216-96F3-5444ECB29763} 97 | 98 | "{40450F57-0AA3-4216-96F3-5444ECB29763}" 99 | 100 | 101 | ActiveVisuProfile 102 | IR0whWr8bwfwBwAAiD2qpQAAAABVAgAA37x72QAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA0AC4ANwAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWFHYAaQBzAHUAaQBuAHAAdQB0AHMAFwxzAHkAcwB0AGUAbQAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC1INgBjAGIAMQBjAGQAZQAxAC0AZAA1AGQAYwAtADQAYQAzAGIALQA5ADAANQA0AC0AMgAxAGYAYQA3ADUANgBhADMAZgBhADQALihJAG4AdABlAHIAZgBhAGMAZQBWAGUAcgBzAGkAbwBuAEkAbgBmAG8AL0x7AGMANgAxADEAZQA0ADAAMAAtADcAZgBiADkALQA0AGMAMwA1AC0AYgA5AGEAYwAtADQAZQAzADEANABiADUAOQA5ADYANAAzAH0AMBhNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgAxGE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuADIMTABlAGcAYQBjAHkAMzBMAGEAbgBnAHUAYQBnAGUATQBvAGQAZQBsAFYAZQByAHMAaQBvAG4ASQBuAGYAbwA0MEwAbwBhAGQATABpAGIAcgBhAHIAaQBlAHMASQBuAHQAbwBQAHIAbwBqAGUAYwB0ADUaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgfQBwgaAUUHCQjQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60BAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAUAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0X0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAMAAAAFAAAADQAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtF9AAHy0t0C4vGgPQMAutAQAAANAxC60XAAAA0DIarQDQMy8aA9AwC60CAAAA0DELrQMAAADQMhqtANA0Gq0A0DUarQA= 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | System.Collections.Hashtable 111 | {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} 112 | System.String 113 | 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/Units/FB_TestRange.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 16 | 17 | 18 | 27 | 28 | 43 | 44 | 45 | 46 | 55 | 56 | 71 | 72 | 73 | 74 | 90 | 91 | 112 | 113 | 114 | 115 | 129 | 130 | 146 | 147 | 148 | 149 | 163 | 164 | 180 | 181 | 182 | 183 | 199 | 200 | 214 | 215 | 216 | 217 | 233 | 234 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/twincat-tools.plcproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1.0.0.0 4 | 2.0 5 | {eb33c53b-f43b-4cb3-b9e8-0d48a8b92efe} 6 | True 7 | true 8 | true 9 | false 10 | twincat_tools 11 | 3.1.4023.0 12 | {0b1975c4-04ad-44a1-aa09-054695007f9a} 13 | {99d08ed1-33e6-4a01-be60-ed25816baacf} 14 | {03980f1a-c56e-4342-a04c-13a00c056046} 15 | {853a9921-148d-4a00-a33e-81260d313253} 16 | {f420d857-9251-448d-8649-5e8075f86172} 17 | {8fb08fa3-eaa7-4661-ba9f-f1be85673b66} 18 | hganchev 19 | false 20 | tc-tools 21 | 1.0.0.0 22 | tc-tools 23 | hganchev 24 | reStructuredText 25 | 26 | 27 | 28 | Code 29 | true 30 | 31 | 32 | Code 33 | 34 | 35 | Code 36 | 37 | 38 | Code 39 | 40 | 41 | Code 42 | 43 | 44 | Code 45 | 46 | 47 | Code 48 | 49 | 50 | Code 51 | 52 | 53 | Code 54 | 55 | 56 | Code 57 | 58 | 59 | Code 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | Tc2_MC2, * (Beckhoff Automation GmbH) 78 | Tc2_MC2 79 | 80 | 81 | Tc2_Standard, * (Beckhoff Automation GmbH) 82 | Tc2_Standard 83 | 84 | 85 | Tc2_System, * (Beckhoff Automation GmbH) 86 | Tc2_System 87 | 88 | 89 | Tc2_Utilities, * (Beckhoff Automation GmbH) 90 | Tc2_Utilities 91 | 92 | 93 | Tc3_Module, * (Beckhoff Automation GmbH) 94 | Tc3_Module 95 | 96 | 97 | 98 | 99 | Content 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | "<ProjectRoot>" 108 | 109 | {192FAD59-8248-4824-A8DE-9177C94C195A} 110 | 111 | "{192FAD59-8248-4824-A8DE-9177C94C195A}" 112 | 113 | 114 | 115 | {8F99A816-E488-41E4-9FA3-846536012284} 116 | 117 | "{8F99A816-E488-41E4-9FA3-846536012284}" 118 | 119 | 120 | 121 | {40450F57-0AA3-4216-96F3-5444ECB29763} 122 | 123 | "{40450F57-0AA3-4216-96F3-5444ECB29763}" 124 | 125 | 126 | ActiveVisuProfile 127 | IR0whWr8bwfwBwAAiD2qpQAAAABVAgAA37x72QAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA0AC4ANwAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWFHYAaQBzAHUAaQBuAHAAdQB0AHMAFwxzAHkAcwB0AGUAbQAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC1INgBjAGIAMQBjAGQAZQAxAC0AZAA1AGQAYwAtADQAYQAzAGIALQA5ADAANQA0AC0AMgAxAGYAYQA3ADUANgBhADMAZgBhADQALihJAG4AdABlAHIAZgBhAGMAZQBWAGUAcgBzAGkAbwBuAEkAbgBmAG8AL0x7AGMANgAxADEAZQA0ADAAMAAtADcAZgBiADkALQA0AGMAMwA1AC0AYgA5AGEAYwAtADQAZQAzADEANABiADUAOQA5ADYANAAzAH0AMBhNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgAxGE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuADIMTABlAGcAYQBjAHkAMzBMAGEAbgBnAHUAYQBnAGUATQBvAGQAZQBsAFYAZQByAHMAaQBvAG4ASQBuAGYAbwA0MEwAbwBhAGQATABpAGIAcgBhAHIAaQBlAHMASQBuAHQAbwBQAHIAbwBqAGUAYwB0ADUaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgfQBwgaAUUHCQjQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60BAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAUAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0X0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAMAAAAFAAAADQAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtF9AAHy0t0C4vGgPQMAutAQAAANAxC60XAAAA0DIarQDQMy8aA9AwC60CAAAA0DELrQMAAADQMhqtANA0Gq0A0DUarQA= 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | System.Collections.Hashtable 136 | {54dd0eac-a6d8-46f2-8c27-2f43c7e49861} 137 | System.String 138 | 139 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /TwinCAT Tools.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.32630.194 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "TwinCAT Tools", "TwinCAT Tools\TwinCAT Tools.tsproj", "{040F5712-8BED-4DEF-AC2D-613B9C09C7AC}" 7 | EndProject 8 | Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "TwinCAT_Tools_Units", "TwinCAT_Tools_Units\TwinCAT_Tools_Units.tsproj", "{92B049D6-D77B-4675-9686-F3DA9F2986D2}" 9 | EndProject 10 | Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "TwinCAT Tools Examples", "TwinCAT Tools Examples\TwinCAT Tools Examples.tsproj", "{4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}" 11 | EndProject 12 | Global 13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 14 | Debug|TwinCAT CE7 (ARMV7) = Debug|TwinCAT CE7 (ARMV7) 15 | Debug|TwinCAT OS (ARMT2) = Debug|TwinCAT OS (ARMT2) 16 | Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64) 17 | Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86) 18 | Release|TwinCAT CE7 (ARMV7) = Release|TwinCAT CE7 (ARMV7) 19 | Release|TwinCAT OS (ARMT2) = Release|TwinCAT OS (ARMT2) 20 | Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64) 21 | Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86) 22 | EndGlobalSection 23 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 24 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) 25 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) 26 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) 27 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) 28 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) 29 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) 30 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) 31 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) 32 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) 33 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) 34 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) 35 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) 36 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) 37 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) 38 | {040F5712-8BED-4DEF-AC2D-613B9C09C7AC}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) 39 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) 40 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) 41 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) 42 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) 43 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) 44 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) 45 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) 46 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) 47 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) 48 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) 49 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) 50 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) 51 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) 52 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) 53 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) 54 | {92B049D6-D77B-4675-9686-F3DA9F2986D2}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) 55 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) 56 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) 57 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) 58 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) 59 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) 60 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) 61 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) 62 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) 63 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) 64 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) 65 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) 66 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) 67 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) 68 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) 69 | {EB33C53B-F43B-4CB3-B9E8-0D48A8B92EFE}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) 70 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) 71 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) 72 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) 73 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) 74 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) 75 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) 76 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) 77 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) 78 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) 79 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) 80 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) 81 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) 82 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) 83 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) 84 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) 85 | {150CCAF6-D07A-4EDD-AE48-75983F672B84}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) 86 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) 87 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) 88 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) 89 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) 90 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) 91 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) 92 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) 93 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) 94 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) 95 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) 96 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) 97 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) 98 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) 99 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) 100 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) 101 | {4C2A77E6-0FA9-4B6D-BBEC-8A7E61C53A25}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) 102 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7) 103 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7) 104 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2) 105 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2) 106 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64) 107 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64) 108 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86) 109 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86) 110 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7) 111 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7) 112 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2) 113 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2) 114 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64) 115 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64) 116 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86) 117 | {367F648A-AA65-47BD-B90E-4B89548DB942}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86) 118 | EndGlobalSection 119 | GlobalSection(SolutionProperties) = preSolution 120 | HideSolutionNode = FALSE 121 | EndGlobalSection 122 | GlobalSection(ExtensibilityGlobals) = postSolution 123 | SolutionGuid = {5DAEDEED-7C08-4178-9797-B2FED43F533B} 124 | EndGlobalSection 125 | EndGlobal 126 | -------------------------------------------------------------------------------- /TwinCAT_Tools_Units/Units/Units/FB_TestRound.TcPOU: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 27 | 28 | 29 | 36 | 37 | 52 | 53 | 54 | 55 | 62 | 63 | 80 | 81 | 82 | 83 | 90 | 91 | 108 | 109 | 110 | 111 | 118 | 119 | 135 | 136 | 137 | 138 | 145 | 146 | 163 | 164 | 165 | 166 | 173 | 174 | 191 | 192 | 193 | 194 | 201 | 202 | 217 | 218 | 219 | 220 | 227 | 228 | 245 | 246 | 247 | 248 | 255 | 256 | 273 | 274 | 275 | 276 | 283 | 284 | 300 | 301 | 302 | 303 | 310 | 311 | 328 | 329 | 330 | 331 | 338 | 339 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | -------------------------------------------------------------------------------- /TwinCAT Tools/twincat-tools/twincat-tools.tmc: -------------------------------------------------------------------------------- 1 | ST_LibVersion288iMajorUINT160iMinorUINT1616iBuildUINT1632iRevisionUINT1648nFlagsDWORD3264sVersionSTRING(23)19296VERSION64uiMajorUINT160uiMinorUINT1616uiServicePackUINT1632uiPatchUINT1648EPlcPersistentStatus8USINT012PlcAppSystemInfo2048ObjIdOTCID320TaskCntUDINT3232OnlineChangeCntUDINT3264FlagsDWORD3296AdsPortUINT16128BootDataLoadedBOOL8144OldBootDataBOOL8152AppTimestampDT32160KeepOutputsOnBPBOOL8192ShutdownInProgressBOOL8200LicensesPendingBOOL8208BSODOccuredBOOL8216LoggedInBOOL8224PersistentStatusEPlcPersistentStatus8232TComSrvPtrITComObjectServer32256TcComInterfaceAppNameSTRING(63)512512ProjectNameSTRING(63)5121024PlcTaskSystemInfo1024ObjIdOTCID320CycleTimeUDINT3232PriorityUINT1664AdsPortUINT1680CycleCountUDINT3296DcTaskTimeLINT64128LastExecTimeUDINT32192FirstCycleBOOL8224CycleTimeExceededBOOL8232InCallAfterOutputUpdateBOOL8240RTViolationBOOL8248TaskNameSTRING(63)512512_Implicit_KindOfTask16INT_implicit_cyclic0_implicit_event1_implicit_external2_implicit_freewheeling3hidegenerate_implicit_init_function_Implicit_Jitter_Distribution48wRangeMaxWORD160wCountJitterNegWORD1616wCountJitterPosWORD1632hide_Implicit_Task_Info896dwVersionDWORD320pszNameSTRING(80)6464nPriorityINT16128KindOf_Implicit_KindOfTask16144bWatchdogBOOL8160bProfilingTaskBOOL8168dwEventFunctionPointerBYTE64192pszExternalEventSTRING(80)64256dwTaskEntryFunctionPointerBYTE64320dwWatchdogSensitivityDWORD32384dwIntervalDWORD32416dwWatchdogTimeDWORD32448dwLastCycleTimeDWORD32480dwAverageCycleTimeDWORD32512dwMaxCycleTimeDWORD32544dwMinCycleTimeDWORD32576diJitterDINT32608diJitterMinDINT32640diJitterMaxDINT32672dwCycleCountDWORD32704wTaskStatusWORD16736wNumOfJitterDistributionsWORD16752pJitterDistribution_Implicit_Jitter_Distribution64768bWithinSPSTimeSlicingBOOL8832byDummyBYTE8840bShouldBlockBOOL8848bActiveBOOL8856dwIECCycleCountDWORD32864hidetwincat_tools{08500001-0000-0000-F000-000000000064}0PlcTask#x020100303PlcTask Internal0524288Global_Version.stLibVersion_Tc2_Standard288ST_LibVersion.iMajor3.iMinor3.iBuild3.iRevision0.nFlags0.sVersion3.3.3.0const_non_replacedTcVarGlobal3072000Global_Version.stLibVersion_Tc2_System288ST_LibVersion.iMajor3.iMinor4.iBuild24.iRevision0.nFlags0.sVersion3.4.24.0const_non_replacedTcVarGlobal3072288Global_Version.stLibVersion_Tc3_Module288ST_LibVersion.iMajor3.iMinor3.iBuild21.iRevision0.sVersion3.3.21.0const_non_replacedTcVarGlobal3072576Global_Version.stLibVersion_Tc2_Utilities288ST_LibVersion.iMajor3.iMinor3.iBuild46.iRevision0.nFlags0.sVersion3.3.46.0const_non_replacedTcVarGlobal3073216Parameters.sNewLineSymbol32STRING(3) 2 | TcVarGlobal3073504Parameters.sLineBreakSymbol32STRING(3) TcVarGlobal3080320Parameters.iArrayREALSize16INT255TcVarGlobal3080352Parameters.iSplitArraySize16INT4TcVarGlobal3080368Parameters.diByteMultiplierForExport32DINT10TcVarGlobal3080384Global_Version.stLibVersion_tc_tools288ST_LibVersion.iMajor1.iMinor0.iBuild0.iRevision0.nFlags0.sVersion1.0.0.0const_non_replacedTcVarGlobal3080416Constants.bLittleEndian8BOOLtrueTcVarGlobal3080712Constants.RuntimeVersion64VERSION.uiMajor3.uiMinor5.uiServicePack13.uiPatch0TcVarGlobal3080720Constants.CompilerVersion64VERSION.uiMajor3.uiMinor5.uiServicePack13.uiPatch40TcVarGlobal3080784Constants.bSimulationMode8BOOLfalseTcVarGlobal3080848Constants.bFPUSupport8BOOLtrueTcVarGlobal3080856Constants.nRegisterSize16WORD64TcVarGlobal3080864Constants.nPackMode16UINT8TcVarGlobal3080880Constants.RuntimeVersionNumeric32DWORD50662656TcVarGlobal3080896Constants.CompilerVersionNumeric32DWORD50662696TcVarGlobal3080928Constants.bMulticoreSupport8BOOLfalseTcVarGlobal3080960TwinCAT_SystemInfoVarList._TaskPouOid_PlcTask32OTCIDno_initTcVarGlobal3080992TwinCAT_SystemInfoVarList._AppInfo2048PlcAppSystemInfono_initTcVarGlobal3081024TwinCAT_SystemInfoVarList._TaskInfo1024PlcTaskSystemInfo11no_initTcVarGlobal3083072TwinCAT_SystemInfoVarList._TaskOid_PlcTask32OTCIDno_initTcVarGlobal3084096TwinCAT_SystemInfoVarList.__PlcTask896_Implicit_Task_Info.dwVersion2TcContextNamePlcTaskTcVarGlobal3084160ApplicationNamePort_851ChangeDate2023-09-16T19:19:37GeneratedCodeSize57344GlobalDataSize16384 -------------------------------------------------------------------------------- /TwinCAT Tools Examples/TwinCAT Tools Examples.tsproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UINTARR2 6 | 32 7 | UINT 8 | 9 | 0 10 | 2 11 | 12 | 13 | [%u, %u] 14 | [0] 15 | [1] 16 | 17 | 18 | 0x%08x [%u, %u] 19 | . 20 | [0] 21 | [1] 22 | 23 | 24 | 0x%08x (%u) 25 | . 26 | . 27 | 28 | 29 | 30 | NCENCODERSTRUCT_IN2B 31 | 320 32 | 33 | nDataIn1 34 | UINTARR2 35 | 32 36 | 0 37 | 38 | 39 | nDataIn2 40 | UINTARR2 41 | 32 42 | 32 43 | 44 | 45 | nState1 46 | USINT 47 | 8 48 | 64 49 | 50 | 51 | nState2 52 | USINT 53 | 8 54 | 72 55 | 56 | 57 | nState3 58 | USINT 59 | 8 60 | 80 61 | 62 | 63 | nState4 64 | USINT 65 | 69 | 8 70 | 88 71 | 72 | 73 | nDataIn3 74 | UINTARR2 75 | 32 76 | 96 77 | 78 | 79 | nDataIn4 80 | UINTARR2 81 | 32 82 | 128 83 | 84 | 85 | nDataIn5 86 | UINTARR2 87 | 32 88 | 160 89 | 90 | 91 | nDataIn6 92 | UINTARR2 93 | 32 94 | 192 95 | 96 | 97 | nState5 98 | USINT 99 | 8 100 | 224 101 | 102 | 103 | nState6 104 | USINT 105 | 8 106 | 232 107 | 108 | 109 | nState7 110 | USINT 111 | 8 112 | 240 113 | 114 | 115 | nState8 116 | USINT 117 | 8 118 | 248 119 | 120 | 121 | nDcInputTime 122 | DINT 123 | 32 124 | 256 125 | 126 | 127 | nDataIn7 128 | UINTARR2 129 | 131 | 32 132 | 288 133 | 134 | 135 | 136 | NCENCODERSTRUCT_IN 137 | 138 | 96 139 | 140 | 141 | 142 | 143 | 144 | NCENCODERSTRUCT_OUT2 145 | 320 146 | 147 | nDataOut1 148 | UINTARR2 149 | 32 150 | 0 151 | 152 | 153 | nDataOut2 154 | UINTARR2 155 | 32 156 | 32 157 | 158 | 159 | nCtrl1 160 | USINT 161 | 8 162 | 64 163 | 164 | 165 | nCtrl2 166 | USINT 167 | 8 168 | 72 169 | 170 | 171 | nCtrl3 172 | USINT 173 | 8 174 | 80 175 | 176 | 177 | nCtrl4 178 | USINT 179 | 8 180 | 88 181 | 182 | 183 | nDataOut3 184 | UINTARR2 185 | 32 186 | 96 187 | 188 | 189 | nDataOut4 190 | UINTARR2 191 | 32 192 | 128 193 | 194 | 195 | nDataOut5 196 | UINTARR2 197 | 32 198 | 160 199 | 200 | 201 | nDataOut6 202 | UINTARR2 203 | 32 204 | 192 205 | 206 | 207 | nCtrl5 208 | USINT 209 | 8 210 | 224 211 | 212 | 213 | nCtrl6 214 | USINT 215 | 8 216 | 232 217 | 218 | 219 | nCtrl7 220 | USINT 221 | 8 222 | 240 223 | 224 | 225 | nCtrl8 226 | USINT 227 | 8 228 | 248 229 | 230 | 231 | 232 | NCENCODERSTRUCT_OUT 233 | 234 | 96 235 | 236 | 237 | 238 | 239 | 240 | NCDRIVESTRUCT_IN2 241 | 320 242 | 243 | nDataIn1 244 | UINTARR2 245 | 32 246 | 0 247 | 248 | 249 | nDataIn2 250 | UINTARR2 251 | 32 252 | 32 253 | 254 | 255 | nState1 256 | USINT 257 | 8 258 | 64 259 | 260 | 261 | nState2 262 | USINT 263 | 8 264 | 72 265 | 266 | 267 | nState3 268 | USINT 269 | 8 270 | 80 271 | 272 | 273 | nState4 274 | USINT 275 | 282 | 8 283 | 88 284 | 285 | 286 | nDataIn3 287 | UINTARR2 288 | 32 289 | 96 290 | 291 | 292 | nDataIn4 293 | UINTARR2 294 | 32 295 | 128 296 | 297 | 298 | nDataIn5 299 | UINTARR2 300 | 32 301 | 160 302 | 303 | 304 | nDataIn6 305 | UINTARR2 306 | 32 307 | 192 308 | 309 | 310 | nState5 311 | USINT 312 | 8 313 | 224 314 | 315 | 316 | nState6 317 | USINT 318 | 8 319 | 232 320 | 321 | 322 | nState7 323 | USINT 324 | 8 325 | 240 326 | 327 | 328 | nState8 329 | USINT 330 | 332 | 8 333 | 248 334 | 335 | 336 | nDcOutputTime 337 | DINT 338 | 32 339 | 256 340 | 341 | 342 | 343 | NCDRIVESTRUCT_IN 344 | 345 | 96 346 | 347 | 348 | 349 | 350 | 351 | NCDRIVESTRUCT_OUT2 352 | 320 353 | 354 | nDataOut1 355 | UINTARR2 356 | 32 357 | 0 358 | 359 | 360 | nDataOut2 361 | UINTARR2 362 | 32 363 | 32 364 | 365 | 366 | nCtrl1 367 | USINT 368 | 8 369 | 64 370 | 371 | 372 | nCtrl2 373 | USINT 374 | 8 375 | 72 376 | 377 | 378 | nCtrl3 379 | USINT 380 | 8 381 | 80 382 | 383 | 384 | nCtrl4 385 | USINT 386 | 8 387 | 88 388 | 389 | 390 | nDataOut3 391 | UINTARR2 392 | 32 393 | 96 394 | 395 | 396 | nDataOut4 397 | UINTARR2 398 | 32 399 | 128 400 | 401 | 402 | nDataOut5 403 | UINTARR2 404 | 32 405 | 160 406 | 407 | 408 | nDataOut6 409 | UINTARR2 410 | 32 411 | 192 412 | 413 | 414 | nCtrl5 415 | USINT 416 | 8 417 | 224 418 | 419 | 420 | nCtrl6 421 | USINT 422 | 8 423 | 232 424 | 425 | 426 | nCtrl7 427 | USINT 428 | 8 429 | 240 430 | 431 | 432 | nCtrl8 433 | USINT 434 | 8 435 | 248 436 | 437 | 438 | 439 | NCDRIVESTRUCT_OUT 440 | 441 | 96 442 | 443 | 444 | 445 | 446 | 447 | PLCTONC_AXIS_REF_CTRL 448 | 32 449 | 450 | Enable 451 | BIT 452 | 1 453 | 0 454 | 455 | 456 | FeedEnablePlus 457 | BIT 458 | 1 459 | 1 460 | 461 | 462 | FeedEnableMinus 463 | BIT 464 | 1 465 | 2 466 | 467 | 468 | HomingSensor 469 | BIT 470 | 1 471 | 5 472 | 473 | 474 | AcceptBlockedDrive 475 | BIT 476 | 1 477 | 8 478 | 479 | 480 | PlcDebugFlag 481 | BIT 482 | 1 483 | 30 484 | 485 | 486 | NcDebugFlag 487 | BIT 488 | 1 489 | 31 490 | 491 | 492 | %08x 493 | 494 | 495 | 0x%08x 496 | 497 | 498 | 16#%08X 499 | 500 | 501 | 502 | PLCTONC_AXIS_REF 503 | 1024 504 | 505 | ControlDWord 506 | PLCTONC_AXIS_REF_CTRL 507 | 32 508 | 0 509 | 510 | 511 | Override 512 | UDINT 513 | 32 514 | 32 515 | 516 | 517 | AxisModeRequest 518 | UDINT 519 | 32 520 | 64 521 | 522 | 523 | AxisModeDWord 524 | UDINT 525 | 32 526 | 96 527 | 528 | 529 | AxisModeLReal 530 | LREAL 531 | 64 532 | 128 533 | 534 | 535 | PositionCorrection 536 | LREAL 537 | 64 538 | 192 539 | 540 | 541 | ExtSetPos 542 | LREAL 543 | 64 544 | 256 545 | 546 | 547 | ExtSetVelo 548 | LREAL 549 | 64 550 | 320 551 | 552 | 553 | ExtSetAcc 554 | LREAL 555 | 64 556 | 384 557 | 558 | 559 | ExtSetDirection 560 | DINT 561 | 32 562 | 448 563 | 564 | 565 | ExtControllerOutput 566 | LREAL 567 | 64 568 | 512 569 | 570 | 571 | GearRatio1 572 | LREAL 573 | 64 574 | 576 575 | 576 | 577 | GearRatio2 578 | LREAL 579 | 64 580 | 640 581 | 582 | 583 | GearRatio3 584 | LREAL 585 | 64 586 | 704 587 | 588 | 589 | GearRatio4 590 | LREAL 591 | 64 592 | 768 593 | 594 | 595 | MapState 596 | BOOL 597 | 8 598 | 832 599 | 600 | 601 | PlcCycleControl 602 | BYTE 603 | 8 604 | 840 605 | 606 | 607 | PlcCycleCount 608 | BYTE 609 | 8 610 | 848 611 | 612 | 613 | 614 | NcStructType 615 | 1 616 | 617 | 618 | 619 | 620 | NCAXLESTRUCT_FROMPLC3 621 | 622 | 623 | 624 | 625 | NCTOPLC_AXIS_REF_STATE 626 | 32 627 | 628 | Operational 629 | BIT 630 | 1 631 | 0 632 | 633 | 634 | Homed 635 | BIT 636 | 1 637 | 1 638 | 639 | 640 | NotMoving 641 | BIT 642 | 1 643 | 2 644 | 645 | 646 | InPositionArea 647 | BIT 648 | 1 649 | 3 650 | 651 | 652 | InTargetPosition 653 | BIT 654 | 1 655 | 4 656 | 657 | 658 | Protected 659 | BIT 660 | 1 661 | 5 662 | 663 | 664 | ErrorPropagationDelayed 665 | BIT 666 | 1 667 | 6 668 | 669 | 670 | HasBeenStopped 671 | BIT 672 | 1 673 | 7 674 | 675 | 676 | HasJob 677 | BIT 678 | 1 679 | 8 680 | 681 | 682 | PositiveDirection 683 | BIT 684 | 1 685 | 9 686 | 687 | 688 | NegativeDirection 689 | BIT 690 | 1 691 | 10 692 | 693 | 694 | HomingBusy 695 | BIT 696 | 1 697 | 11 698 | 699 | 700 | ConstantVelocity 701 | BIT 702 | 1 703 | 12 704 | 705 | 706 | Compensating 707 | BIT 708 | 1 709 | 13 710 | 711 | 712 | ExtSetPointGenEnabled 713 | BIT 714 | 1 715 | 14 716 | 717 | 718 | PhasingActive 719 | BIT 720 | 1 721 | 15 722 | 723 | 724 | ExternalLatchValid 725 | BIT 726 | 1 727 | 16 728 | 729 | 730 | NewTargetPos 731 | BIT 732 | 1 733 | 17 734 | 735 | 736 | IsDriveLimitActive 737 | BIT 738 | 1 739 | 18 740 | 741 | 742 | ContinuousMotion 743 | BIT 744 | 1 745 | 19 746 | 747 | 748 | ControlLoopClosed 749 | BIT 750 | 1 751 | 20 752 | 753 | 754 | CamTableQueued 755 | BIT 756 | 1 757 | 21 758 | 759 | 760 | CamDataQueued 761 | BIT 762 | 1 763 | 22 764 | 765 | 766 | CamScalingPending 767 | BIT 768 | 1 769 | 23 770 | 771 | 772 | CmdBuffered 773 | BIT 774 | 1 775 | 24 776 | 777 | 778 | PTPmode 779 | BIT 780 | 1 781 | 25 782 | 783 | 784 | SoftLimitMinExceeded 785 | BIT 786 | 1 787 | 26 788 | 789 | 790 | SoftLimitMaxExceeded 791 | BIT 792 | 1 793 | 27 794 | 795 | 796 | DriveDeviceError 797 | BIT 798 | 1 799 | 28 800 | 801 | 802 | MotionCommandsLocked 803 | BIT 804 | 1 805 | 29 806 | 807 | 808 | IoDataInvalid 809 | BIT 810 | 1 811 | 30 812 | 813 | 814 | Error 815 | BIT 816 | 1 817 | 31 818 | 819 | 820 | %08x 821 | 822 | 823 | 0x%08x 824 | 825 | 826 | 16#%08X 827 | 828 | 829 | 830 | {4C3FC5AC-D5AA-44C6-AC5A-159774BA0F6D} 831 | 832 | 833 | 834 | 835 | NCTOPLC_AXIS_REF_OPMODE 836 | 32 837 | 838 | OpModePosAreaMonitoring 839 | BIT 840 | 1 841 | 0 842 | 843 | 844 | OpModeTargetPosMonitoring 845 | BIT 846 | 1 847 | 1 848 | 849 | 850 | OpModeLoop 851 | BIT 852 | 1 853 | 2 854 | 855 | 856 | OpModeMotionMonitoring 857 | BIT 858 | 1 859 | 3 860 | 861 | 862 | OpModePEHTimeMonitoring 863 | BIT 864 | 1 865 | 4 866 | 867 | 868 | OpModeBacklashCompensation 869 | BIT 870 | 1 871 | 5 872 | 873 | 874 | OpModeDelayedErrorReaction 875 | BIT 876 | 1 877 | 6 878 | 879 | 880 | OpModeModulo 881 | BIT 882 | 1 883 | 7 884 | 885 | 886 | OpModeSimulationAxis 887 | BIT 888 | 1 889 | 8 890 | 891 | 892 | OpModeStopMonitoring 893 | BIT 894 | 1 895 | 12 896 | 897 | 898 | OpModeOutputSmoothingFilter 899 | BIT 900 | 1 901 | 13 902 | 903 | 904 | OpModePosLagMonitoring 905 | BIT 906 | 1 907 | 16 908 | 909 | 910 | OpModeVeloLagMonitoring 911 | BIT 912 | 1 913 | 17 914 | 915 | 916 | OpModeSoftLimitMinMonitoring 917 | BIT 918 | 1 919 | 18 920 | 921 | 922 | OpModeSoftLimitMaxMonitoring 923 | BIT 924 | 1 925 | 19 926 | 927 | 928 | OpModePosCorrection 929 | BIT 930 | 1 931 | 20 932 | 933 | 934 | OpModeAllowSlaveCommands 935 | BIT 936 | 1 937 | 21 938 | 939 | 940 | OpModeAllowExtSetAxisCommands 941 | BIT 942 | 1 943 | 22 944 | 945 | 946 | ApplicationRequest 947 | BIT 948 | 1 949 | 23 950 | 951 | 952 | 953 | NCTOPLC_AXIS_REF_STATE2_FLAGS 954 | 32 955 | 956 | AvoidingCollision 957 | BIT 958 | 1 959 | 0 960 | 961 | 962 | %08x 963 | 964 | 965 | 0x%08x 966 | 967 | 968 | 16#%08X 969 | 970 | 971 | 972 | NCTOPLC_AXIS_REF_STATE2 973 | 32 974 | 975 | Value 976 | DWORD 977 | 32 978 | 0 979 | 980 | 981 | Flags 982 | NCTOPLC_AXIS_REF_STATE2_FLAGS 983 | 32 984 | 0 985 | 986 | 987 | %08x 988 | 989 | 990 | 0x%08x 991 | 992 | 993 | 16#%08X 994 | 995 | 996 | 997 | NCTOPLC_AXIS_REF_STATE3_FLAGS 998 | 32 999 | 1000 | TouchProbe1InputState 1001 | BIT 1002 | 1 1003 | 0 1004 | 1005 | 1006 | TouchProbe2InputState 1007 | BIT 1008 | 1 1009 | 1 1010 | 1011 | 1012 | %08x 1013 | 1014 | 1015 | 0x%08x 1016 | 1017 | 1018 | 16#%08X 1019 | 1020 | 1021 | 1022 | NCTOPLC_AXIS_REF_STATE3 1023 | 32 1024 | 1025 | Value 1026 | DWORD 1027 | 32 1028 | 0 1029 | 1030 | 1031 | Flags 1032 | NCTOPLC_AXIS_REF_STATE3_FLAGS 1033 | 32 1034 | 0 1035 | 1036 | 1037 | %08x 1038 | 1039 | 1040 | 0x%08x 1041 | 1042 | 1043 | 16#%08X 1044 | 1045 | 1046 | 1047 | NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE 1048 | 8 1049 | 1050 | CamActivationPending 1051 | BIT 1052 | 1 1053 | 0 1054 | 1055 | 1056 | CamDeactivationPending 1057 | BIT 1058 | 1 1059 | 1 1060 | 1061 | 1062 | CamActive 1063 | BIT 1064 | 1 1065 | 2 1066 | 1067 | 1068 | CamDataQueued 1069 | BIT 1070 | 1 1071 | 6 1072 | 1073 | 1074 | CamScalingPending 1075 | BIT 1076 | 1 1077 | 7 1078 | 1079 | 1080 | 1081 | UINTARR8 1082 | 128 1083 | UINT 1084 | 1085 | 0 1086 | 8 1087 | 1088 | 1089 | 1090 | NCTOPLC_AXIS_REF 1091 | 2048 1092 | 1093 | StateDWord 1094 | NCTOPLC_AXIS_REF_STATE 1095 | 32 1096 | 0 1097 | 1098 | 1099 | ErrorCode 1100 | UDINT 1101 | 32 1102 | 32 1103 | 1104 | 1105 | AxisState 1106 | UDINT 1107 | 1122 | 32 1123 | 64 1124 | 1125 | 1126 | AxisModeConfirmation 1127 | UDINT 1128 | 32 1129 | 96 1130 | 1131 | 1132 | HomingState 1133 | UDINT 1134 | 1143 | 32 1144 | 128 1145 | 1146 | 1147 | CoupleState 1148 | UDINT 1149 | 1155 | 32 1156 | 160 1157 | 1158 | 1159 | SvbEntries 1160 | UDINT 1161 | 32 1162 | 192 1163 | 1164 | 1165 | SafEntries 1166 | UDINT 1167 | 32 1168 | 224 1169 | 1170 | 1171 | AxisId 1172 | UDINT 1173 | 32 1174 | 256 1175 | 1176 | 1177 | OpModeDWord 1178 | NCTOPLC_AXIS_REF_OPMODE 1179 | 32 1180 | 288 1181 | 1182 | 1183 | ActPos 1184 | LREAL 1185 | 64 1186 | 320 1187 | 1188 | 1189 | ModuloActPos 1190 | LREAL 1191 | 64 1192 | 384 1193 | 1194 | 1195 | ActiveControlLoopIndex 1196 | UINT 1197 | 16 1198 | 448 1199 | 1200 | 1201 | ControlLoopIndex 1202 | UINT 1203 | 16 1204 | 464 1205 | 1206 | 1207 | ModuloActTurns 1208 | DINT 1209 | 32 1210 | 480 1211 | 1212 | 1213 | ActVelo 1214 | LREAL 1215 | 64 1216 | 512 1217 | 1218 | 1219 | PosDiff 1220 | LREAL 1221 | 64 1222 | 576 1223 | 1224 | 1225 | SetPos 1226 | LREAL 1227 | 64 1228 | 640 1229 | 1230 | 1231 | SetVelo 1232 | LREAL 1233 | 64 1234 | 704 1235 | 1236 | 1237 | SetAcc 1238 | LREAL 1239 | 64 1240 | 768 1241 | 1242 | 1243 | TargetPos 1244 | LREAL 1245 | 64 1246 | 832 1247 | 1248 | 1249 | ModuloSetPos 1250 | LREAL 1251 | 64 1252 | 896 1253 | 1254 | 1255 | ModuloSetTurns 1256 | DINT 1257 | 32 1258 | 960 1259 | 1260 | 1261 | CmdNo 1262 | UINT 1263 | 16 1264 | 992 1265 | 1266 | 1267 | CmdState 1268 | UINT 1269 | 16 1270 | 1008 1271 | 1272 | 1273 | SetJerk 1274 | LREAL 1275 | 64 1276 | 1024 1277 | 1278 | 1279 | SetTorque 1280 | LREAL 1281 | 64 1282 | 1088 1283 | 1284 | 1285 | ActTorque 1286 | LREAL 1287 | 64 1288 | 1152 1289 | 1290 | 1291 | StateDWord2 1292 | NCTOPLC_AXIS_REF_STATE2 1293 | 32 1294 | 1216 1295 | 1296 | 1297 | StateDWord3 1298 | NCTOPLC_AXIS_REF_STATE3 1299 | 32 1300 | 1248 1301 | 1302 | 1303 | TouchProbeState 1304 | DWORD 1305 | 32 1306 | 1280 1307 | 1308 | 1309 | TouchProbeCounter 1310 | DWORD 1311 | 32 1312 | 1312 1313 | 1314 | 1315 | CamCouplingState 1316 | NCTOPLC_AXIS_REF_CAMCOUPLINGSTATE 1317 | 1318 | 0 1319 | 8 1320 | 1321 | 64 1322 | 1344 1323 | 1324 | 1325 | CamCouplingTableID 1326 | UINTARR8 1327 | 128 1328 | 1408 1329 | 1330 | 1331 | ActTorqueDerivative 1332 | LREAL 1333 | 64 1334 | 1536 1335 | 1336 | 1337 | SetTorqueDerivative 1338 | LREAL 1339 | 64 1340 | 1600 1341 | 1342 | 1343 | AbsPhasingPos 1344 | LREAL 1345 | 64 1346 | 1664 1347 | 1348 | 1349 | TorqueOffset 1350 | LREAL 1351 | 64 1352 | 1728 1353 | 1354 | 1355 | ActPosWithoutPosCorrection 1356 | LREAL 1357 | 64 1358 | 1792 1359 | 1360 | 1361 | ActAcc 1362 | LREAL 1363 | 64 1364 | 1856 1365 | 1366 | 1367 | DcTimeStamp 1368 | UDINT 1369 | 32 1370 | 1920 1371 | 1372 | 1373 | 1374 | NcStructType 1375 | 2 1376 | 1377 | 1378 | 1379 | 1380 | NCAXLESTRUCT_TOPLC 1381 | 1382 | 1383 | NCAXLESTRUCT_TOPLC2 1384 | 1385 | 1386 | NCAXLESTRUCT_TOPLC3 1387 | 1388 | 1389 | NCAXLESTRUCT_TOPLC4 1390 | 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | 1397 | 1398 | 1399 | 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | 1406 | 1407 | 1408 | 1409 | 1410 | 1411 | 1412 | 1413 | 1414 | 1415 | 1416 | PlcTask 1417 | 1418 | 1419 | 1420 | 1421 | 1422 | 1423 | NC-Task 1 SAF 1424 | 1425 | Inputs 1426 | 1427 | 1428 | Outputs 1429 | 1430 | 1431 | Image 1432 | 1433 | 1434 | 1435 | NC-Task 1 SVB 1436 | 1437 | 1438 | Axis 1 1439 | 1440 | 1441 | 1442 | 1443 | 1444 | Inputs 1445 | 1446 | In 1447 | NCENCODERSTRUCT_IN2B 1448 | 1024 1449 | 1450 | nDataIn1 1451 | 1452 | 1453 | nDataIn2 1454 | 1455 | 1456 | nDataIn3 1457 | 1458 | 1459 | nDataIn4 1460 | 1461 | 1462 | nDataIn5 1463 | 1464 | 1465 | nDataIn6 1466 | 1467 | 1468 | nDataIn7 1469 | 1471 | 1472 | 1473 | 1474 | 1475 | Outputs 1476 | 1477 | Out 1478 | NCENCODERSTRUCT_OUT2 1479 | 2048 1480 | 1481 | nDataOut1 1482 | 1483 | 1484 | nDataOut2 1485 | 1486 | 1487 | nDataOut3 1488 | 1489 | 1490 | nDataOut4 1491 | 1492 | 1493 | nDataOut5 1494 | 1495 | 1496 | nDataOut6 1497 | 1498 | 1499 | 1500 | 1501 | 1502 | 1503 | 1504 | 1505 | 1506 | 1507 | Inputs 1508 | 1509 | In 1510 | NCDRIVESTRUCT_IN2 1511 | 1344 1512 | 1513 | nDataIn1 1514 | 1515 | 1516 | nDataIn2 1517 | 1518 | 1519 | nDataIn3 1520 | 1521 | 1522 | nDataIn4 1523 | 1524 | 1525 | nDataIn5 1526 | 1527 | 1528 | nDataIn6 1529 | 1530 | 1531 | 1532 | 1533 | Outputs 1534 | 1535 | Out 1536 | NCDRIVESTRUCT_OUT2 1537 | 2368 1538 | 1539 | nDataOut1 1540 | 1541 | 1542 | nDataOut2 1543 | 1544 | 1545 | nCtrl2 1546 | 1551 | 1552 | 1553 | nCtrl3 1554 | 1559 | 1560 | 1561 | nDataOut3 1562 | 1563 | 1564 | nDataOut4 1565 | 1566 | 1567 | nDataOut5 1568 | 1569 | 1570 | nDataOut6 1571 | 1572 | 1573 | 1574 | 1575 | 1576 | 1577 | 1578 | 1579 | 1580 | 1581 | Inputs 1582 | 1583 | FromPlc 1584 | PLCTONC_AXIS_REF 1585 | 1586 | 1587 | 1588 | Outputs 1589 | 1590 | ToPlc 1591 | NCTOPLC_AXIS_REF 1592 | 1593 | 1594 | 1595 | 1596 | 1597 | 1598 | 1599 | 1600 | Examples Instance 1601 | {08500001-0000-0000-F000-000000000064} 1602 | 1603 | PlcTask Inputs 1604 | 1605 | MAIN.axisRef.NcToPlc 1606 | NCTOPLC_AXIS_REF 1607 | 1608 | 1609 | 1610 | PlcTask Outputs 1611 | 1612 | MAIN.axisRef.PlcToNc 1613 | PLCTONC_AXIS_REF 1614 | 1615 | 1616 | 1617 | 1618 | 0 1619 | PlcTask 1620 | 1621 | #x02010030 1622 | 1623 | 20 1624 | 10000000 1625 | 1626 | 1627 | 1628 | 1629 | 1630 | 1631 | 1632 | 1633 | 1634 | 1635 | 1636 | 1637 | 1638 | 1639 | 1640 | 1641 | 1642 | 1643 | 1644 | 1645 | --------------------------------------------------------------------------------