diff --git a/COMPONENTS_BLACKLIST.md b/COMPONENTS_BLACKLIST.md new file mode 100644 index 000000000..5e25673d7 --- /dev/null +++ b/COMPONENTS_BLACKLIST.md @@ -0,0 +1,21 @@ +# COMPONENTS BLACKLIST + +**LIST OF COMPONENTS THAT MUST NOT BE USED** + +| **SUPPLIER** | **TYPE** | **DESCRIPTION** | **REASON** | **ALTERNATIVE** | +|--------------|----------|-----------------|------------|------------------| +| Siemens | PLC series 12xx, 1510 to 1515 | PLC | Cannot use our sequencer, our components, or technology objects for Siemens frequency converters. Small memory, only one network card. | Siemens 1516, 1517, 1518 V4.0+ | +| Siemens | PLC with firmware lower then 4.0 | PLC | Not suitable for high communication load | Siemens 1516, 1517, 1518 V4.0+ | +| ANY | IOlink device | IOlink master or slave | No support for IOlink in Simatic AX | Siemens ET200AL boxes DI/AI boxes | +| Siemens | any old HMI Panels except Unified with firmware 20.2+ | HMI Panel | Has to be capable to open browser that supports .NET8, I guess | Unified with firmware 20.2+ at least 20inch at least 1920*1080 resolution | +| Festo with Siemens PLC | Pneumatic manifolds with EtherCAT | Pneumatic manifolds with EtherCAT | Siemens does not support EtherCAT bus | Festo manifolds with PROFINET | +| Aventics with Siemens PLC | Pneumatic manifolds with EtherCAT | Pneumatic manifolds with EtherCAT | Siemens does not support EtherCAT bus | Aventics manifolds with PROFINET | +| Cognex | Insight with firmware lower then 24.0.0 | Insight family | Communication structure does not fit the somponent structure | Insight with firmware higher then 24.0.0 or Keyence :-) | +| ANY | GW INSTEK - PSP-2010 | LABORATORY POWER SUPPLY | UNRELIABLE COMMUNICATION. REQUIRES ADDITIONAL 12V SUPPLY TO USE RS232 INTERFACE | TTi QL355 | +| ANY | WD My Cloud EX2 | Network Drive, NAS | Cannot schedule shutdown via UPS | Synology DiskStation DS216j 2x 1 TB RED | +| IAI | ALL | (!) Intelligent Actuators | Each type is different, very poor support, each has different parameterization, inconsistent software for control, inconsistent connection cables, inconsistent parameters... | Rexroth, Festo, Schneider | +| ANY | Fujitsu | Network Drive, NAS | Slow service startup, ping issues after standby and startup. Could not be pinged after link activation | Synology DiskStation DS218+, 2x HDD | +| Ateq | Ateq with RS232 | Leak Tester | Our component is not adapted for it(1), requires additional serial card | Ateq with PROFINET, or Ateq without results (OK/NOK only) | +|| + +(1) Development would take up our precious time, hence it is inefficient for us. diff --git a/COMPONENTS_WHITELIST.md b/COMPONENTS_WHITELIST.md new file mode 100644 index 000000000..0eff1fbc9 --- /dev/null +++ b/COMPONENTS_WHITELIST.md @@ -0,0 +1,24 @@ +# COMPONENTS WHITELIST + +**List of components that could be used.** + +| **SUPPLIER** | **TYPE** | **DESCRIPTION** | **REASON** | **NOTE** | +|--------------|----------|------------------|------------|----------| +| Siemens | PLC series 1516 to 1518 with FW4.0 and higher, excluding failsafe | PLC | | | +| Siemens | ET200SP excluding IOLINK | IO | | | +| Siemens | ET200AL excluding IOLINK | IO | | | +| ABB | IRB series robots with Omnicore controller | 6 axis robots | | | +| ABB | IRB series robots with IRC5 controller | 6 axis robots | | Already written, not yet tested with real hardware | +| Cognex | Dataman series with FW6.0 | Barcode scanner | | | +| Cognex | Insight series with FW24.0 | Camera | | | +| Cognex | Insight series with FW6.0 | Camera | | Already written, not yet tested with real hardware | +| Desoutter | CVIC_II | Tightening system | | Already written, not yet tested with real hardware | +| Festo | CmmtAs | Servodrive | | Torque mode not yet tested with real hardware | +| Keyence | SR750, SR1000 | Barcode scanner | | Already written, not yet tested with real hardware | +| KUKA | Robots with Krc4 controller with FW5.0 | 6 axis robots | | Already written, not yet tested with real hardware | +| Mitsubishi | Robots with Cr800 controller with FW1.0 | 6 axis robots | | Already written, not yet tested with real hardware | +| Rexroth | Indradrive | Servodrive | | Already written, not yet tested with real hardware | +| Rexroth | SmartFunctionKit | Servopress | | Already written, not yet tested with real hardware | +| Rexroth | CS351 | Tightening system | | | +| UR | Robots with Cb3 controller with FW3.0 | 6 axis robots | | Already written, not yet tested with real hardware | +| Synology | Synology DiskStation DS216j 2x 1 TB RED | Network drive, NAS | Wide range of settings (UPS, protocols, etc.) | | diff --git a/cake/ApaxTraversal.cs b/cake/ApaxTraversal.cs index 2c2822f3d..ab805d7ca 100644 --- a/cake/ApaxTraversal.cs +++ b/cake/ApaxTraversal.cs @@ -10,6 +10,8 @@ using System.IO; using System.Linq; using System.Text.RegularExpressions; +using YamlDotNet.Core; +using YamlDotNet.RepresentationModel; using YamlDotNet.Serialization; using YamlDotNet.Serialization.NamingConventions; using Path = Cake.Core.IO.Path; @@ -85,35 +87,84 @@ private static void CollectApaxFileInfoRecursively(string directoryPath, List dependencies, string filePath) { - var serializer = new SerializerBuilder() - .WithNamingConvention(CamelCaseNamingConvention.Instance) // Adjust this as per your desired YAML file's naming convention - .Build(); + //var serializer = new SerializerBuilder() + // .WithNamingConvention(CamelCaseNamingConvention.Instance) // Adjust this as per your desired YAML file's naming convention + // .Build(); - var dependenciesDictionary = new Dictionary(); + //var dependenciesDictionary = new Dictionary(); + + //foreach (var dependency in dependencies.Where(p => p.Name != "apax.traversal" + // && p.Name != "@inxton/ax-sdk" + // && !p.Name.EndsWith("-test") + // && p.Name != "inxton")) + //{ + // if (!dependenciesDictionary.ContainsKey(dependency.Name)) + // { + // dependenciesDictionary.Add(dependency.Name , dependency.Version); + // } + //} + + //var yamlContent = serializer.Serialize(new { name = "apax.traversal", + // version = "0.0.0-dev.0", + // type = "app", + // targets = new string[] {"\"1500\""}, + // registries = new Dictionary() + // { {"@inxton", "https://npm.pkg.github.com/"} }, + // devDependencies = new Dictionary() + // { {"@inxton/ax-sdk", dependencies.First(p => p.Name == "@inxton/ax-sdk").Version} }, + // dependencies = dependenciesDictionary, + // installStrategy = "overridable"}); - foreach (var dependency in dependencies.Where(p => p.Name != "apax.traversal" - && p.Name != "@inxton/ax-sdk" - && !p.Name.EndsWith("-test") - && p.Name != "inxton")) + //File.WriteAllText(filePath, yamlContent); + + var dependenciesDictionary = new Dictionary(); + foreach (var dependency in dependencies.Where(p => + p.Name != "apax.traversal" && + p.Name != "@inxton/ax-sdk" && + !p.Name.EndsWith("-test") && + p.Name != "inxton")) { if (!dependenciesDictionary.ContainsKey(dependency.Name)) { - dependenciesDictionary.Add(dependency.Name , dependency.Version); + dependenciesDictionary.Add(dependency.Name, dependency.Version); } } - - var yamlContent = serializer.Serialize(new { name = "apax.traversal", - version = "0.0.0-dev.0", - type = "app", - targets = new string[] {"llvm"}, - registries = new Dictionary() - { {"@inxton", "https://npm.pkg.github.com/"} }, - devDependencies = new Dictionary() - { {"@inxton/ax-sdk", dependencies.First(p => p.Name == "@inxton/ax-sdk").Version} }, - dependencies = dependenciesDictionary, - installStrategy = "overridable"}); - - File.WriteAllText(filePath, yamlContent); + + // Build YAML manually with correct quoting + var yaml = new YamlStream(); + var root = new YamlMappingNode + { + { "name", new YamlScalarNode("apax.traversal") { Style = ScalarStyle.DoubleQuoted } }, + { "version", new YamlScalarNode("0.0.0-dev.0") { Style = ScalarStyle.DoubleQuoted } }, + { "type", new YamlScalarNode("app") { Style = ScalarStyle.DoubleQuoted } }, + { "targets", new YamlSequenceNode(new YamlScalarNode("1500") { Style = ScalarStyle.DoubleQuoted }) }, + { "registries", new YamlMappingNode + { + { "@inxton", new YamlScalarNode("https://npm.pkg.github.com/") { Style = ScalarStyle.DoubleQuoted } } + } + }, + { "devDependencies", new YamlMappingNode + { + { "@inxton/ax-sdk", new YamlScalarNode(dependencies.First(p => p.Name == "@inxton/ax-sdk").Version) { Style = ScalarStyle.DoubleQuoted } } + } + }, + { "dependencies", new YamlMappingNode( + dependenciesDictionary.Select(kv => + new KeyValuePair( + new YamlScalarNode(kv.Key) { Style = ScalarStyle.DoubleQuoted }, + new YamlScalarNode(kv.Value) { Style = ScalarStyle.DoubleQuoted } + ) + ) + )}, + { "installStrategy", new YamlScalarNode("overridable") { Style = ScalarStyle.DoubleQuoted } } + }; + + yaml.Documents.Add(new YamlDocument(root)); + + using (var writer = new StreamWriter(filePath)) + { + yaml.Save(writer, assignAnchors: false); + } } public static void CreateApaxTraversal(this BuildContext context, string dir, string outputFile) diff --git a/scripts/_pack_and_publish_catalog.ps1 b/scripts/_pack_and_publish_catalog.ps1 index 63f3f13bd..3410053b2 100644 --- a/scripts/_pack_and_publish_catalog.ps1 +++ b/scripts/_pack_and_publish_catalog.ps1 @@ -55,11 +55,7 @@ if (Test-Path -Path $catalogAbsPath) # Get all .tgz files in the folder, there should be just one, currently generated $Files = Get-ChildItem -Path $catalogAbsPath -Filter "*.tgz" - if($Files.Count -ne 1) - { - Write-Host "Error: Several *.tgz files found in the directory $catalogAbsPath." -ForegroundColor Red - } - else + if($Files.Count -eq 1) { $catalogFileName = $Files[0].Name @@ -80,6 +76,14 @@ if (Test-Path -Path $catalogAbsPath) Write-Host "Error: $publishResult[0]: $publishResult[1]" -ForegroundColor Red } } + elseif ($Files.Count -ge 1) + { + Write-Host "Error: Several *.tgz files found in the directory $catalogAbsPath." -ForegroundColor Red + } + else + { + Write-Host "Error: No *.tgz files found in the directory $catalogAbsPath." -ForegroundColor Red + } Remove-Item -Path $Files[0].FullName -Force } diff --git a/scripts/check_requisites.ps1 b/scripts/check_requisites.ps1 index e5eebeb5e..1faf543b6 100644 --- a/scripts/check_requisites.ps1 +++ b/scripts/check_requisites.ps1 @@ -6,7 +6,7 @@ $dotNetWingetInstall = "Microsoft.DotNet.SDK.9 --version 9.0.100" $visualStudioRequiredVersionRange = "[17.8.0,18.0)"; -$apaxRequiredVersion = "3.4.2" +$apaxRequiredVersion = "3.5.0" $apaxUrl = "https://console.simatic-ax.siemens.io/" $axCodeRequiredVersion = "1.94.2" diff --git a/src/AXOpen.sln b/src/AXOpen.sln index 7e22dce0a..d42bd9c6c 100644 --- a/src/AXOpen.sln +++ b/src/AXOpen.sln @@ -1,4 +1,8 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36127.28 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen", "AXOpen.proj", "{51D303B0-6291-4BAB-939B-8C378F619298}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "librarytemplate.blazor", "abstractions\app\ix-blazor\librarytemplate.blazor\librarytemplate.blazor.csproj", "{CDA29D58-7DD5-46C8-946C-CD4B04F5EB49}" @@ -263,12 +267,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_apaxappname", "template.axolibrary\app\ix\app_apaxappname.csproj", "{8B6A64B4-E027-42FE-9E48-BA52518B03F2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_appconnectorname", "template.axolibrary\app\ix\app_appconnectorname.csproj", "{DC91C483-99A6-4FF2-BA35-005D292A7E65}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_apaxlibname", "template.axolibrary\src\projname\inxton_apaxlibname.csproj", "{51616177-E7B5-4F81-BD81-1B293B014D18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axolib", "template.axolibrary\src\projname\inxton_axolib.csproj", "{0FDAA0DE-E0AB-4141-A716-71933455D319}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "timers_app", "timers\app\ix\timers_app.csproj", "{DA8B5EDC-6CF0-4C18-AF24-A9910C5BF583}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{0A9187AC-96B0-46D2-A2D7-271A533E0247}" @@ -289,547 +289,547 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_utils", "util EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_utils_tests_L1", "utils\tests\AXOpen.Utils.Tests\axopen_utils_tests_L1.csproj", "{DC944980-9F53-43D1-8C75-F54D83B36113}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librarytemplate.blazor", "abstractions\app\ix-blazor\librarytemplate.blazor", "{3672EC74-7D0A-4CBC-A735-77649E4EBDE0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librarytemplate.blazor", "librarytemplate.blazor", "{3672EC74-7D0A-4CBC-A735-77649E4EBDE0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "abstractions\app\ix-blazor", "{09E9DA59-4E09-481E-B46D-B74D730C3AC2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{09E9DA59-4E09-481E-B46D-B74D730C3AC2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "abstractions\app\ix", "{CDAD218F-2812-4333-AFDC-63E58D670A2A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{CDAD218F-2812-4333-AFDC-63E58D670A2A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "abstractions\app", "{59FA1F0A-918F-497C-AB7A-4873E2D4DBD3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{59FA1F0A-918F-497C-AB7A-4873E2D4DBD3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "abstractions\src\AXOpen.Abstractions", "{66EE97D3-65C8-4A86-BF94-5DE154E1E1F0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "AXOpen.Abstractions", "{66EE97D3-65C8-4A86-BF94-5DE154E1E1F0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "abstractions\src", "{B3631E27-5E1D-45F3-8442-9DFCCEDECC48}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B3631E27-5E1D-45F3-8442-9DFCCEDECC48}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "abstractions", "{A8BDE53F-9EAE-4136-B7E7-AE2945416720}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "base\src\AXOpen.Base.Abstractions", "{B4734871-FA3B-4827-AE27-7F1BB1B0B814}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "AXOpen.Base.Abstractions", "{B4734871-FA3B-4827-AE27-7F1BB1B0B814}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "base\src\AXOpen.Logging", "{51768138-393F-4AAD-99CF-DD094A6980FD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "AXOpen.Logging", "{51768138-393F-4AAD-99CF-DD094A6980FD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "base\src\AXOpen.VisualComposer", "{7FA55C6F-0826-48A7-A7FE-7A01FD15311A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "AXOpen.VisualComposer", "{7FA55C6F-0826-48A7-A7FE-7A01FD15311A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "base\src", "{DF2BE585-C8FE-4045-91B0-22BC78DCFA80}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DF2BE585-C8FE-4045-91B0-22BC78DCFA80}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.AbstractionsTests", "base\tests\AXOpen.Base.AbstractionsTests", "{5155EF3F-7617-4F45-9F5F-7632D137AE32}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.AbstractionsTests", "AXOpen.Base.AbstractionsTests", "{5155EF3F-7617-4F45-9F5F-7632D137AE32}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.LoggingTests", "base\tests\AXOpen.LoggingTests", "{B81F381B-D2D9-4293-A9AA-091C05DB4AD7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.LoggingTests", "AXOpen.LoggingTests", "{B81F381B-D2D9-4293-A9AA-091C05DB4AD7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "base\tests", "{5F30E1DA-62D6-4335-8B2D-72AFCD17EF86}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5F30E1DA-62D6-4335-8B2D-72AFCD17EF86}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "base", "{20A5FDA0-3210-4F1C-A0BD-7A095220BAF3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "clientchat\src", "{793BDA16-C943-49E5-AA96-529DBB29B018}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{793BDA16-C943-49E5-AA96-529DBB29B018}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "clientchat", "clientchat", "{09D8E7D0-D036-4BB4-A662-29788938376C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.abb.robotics\app\ix-blazor", "{CD5EEF75-274C-4549-9AFF-FC70D32D6361}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{CD5EEF75-274C-4549-9AFF-FC70D32D6361}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.abb.robotics\app\ix", "{88D0997C-5CFF-413B-88EF-0363DB423F14}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{88D0997C-5CFF-413B-88EF-0363DB423F14}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.abb.robotics\app", "{2348293D-E268-4964-90CD-9819FAE42446}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{2348293D-E268-4964-90CD-9819FAE42446}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abb.Robotics.blazor", "components.abb.robotics\src\AXOpen.Components.Abb.Robotics.blazor", "{82F887F6-2271-48B0-B1FB-9388D738FBA1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abb.Robotics.blazor", "AXOpen.Components.Abb.Robotics.blazor", "{82F887F6-2271-48B0-B1FB-9388D738FBA1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abb.Robotics", "components.abb.robotics\src\AXOpen.Components.Abb.Robotics", "{1573CBF8-6276-4210-8F3F-0344093CD5D1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abb.Robotics", "AXOpen.Components.Abb.Robotics", "{1573CBF8-6276-4210-8F3F-0344093CD5D1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.abb.robotics\src", "{09BCBAE1-42E6-4C3B-8695-EA37735AC455}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{09BCBAE1-42E6-4C3B-8695-EA37735AC455}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abb.Robotics.Tests", "components.abb.robotics\tests\AXOpen.Components.Abb.Robotics.Tests", "{F1510D75-EEBE-456C-815B-DA7777032DC8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abb.Robotics.Tests", "AXOpen.Components.Abb.Robotics.Tests", "{F1510D75-EEBE-456C-815B-DA7777032DC8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.abb.robotics\tests", "{2D40C504-8DAF-4EF2-9ED5-1E2013FDE8F8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{2D40C504-8DAF-4EF2-9ED5-1E2013FDE8F8}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abb.robotics", "components.abb.robotics", "{5D85471A-5297-4267-890B-2DF505699DB4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librarytemplate.blazor", "components.abstractions\app\ix-blazor\librarytemplate.blazor", "{1FE94598-6925-44C8-A7F1-A5D50CE540D1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librarytemplate.blazor", "librarytemplate.blazor", "{1FE94598-6925-44C8-A7F1-A5D50CE540D1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.abstractions\app\ix-blazor", "{A573465D-C950-4370-ADFC-FAFB7100DD7B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{A573465D-C950-4370-ADFC-FAFB7100DD7B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.abstractions\app\ix", "{847611D5-0645-44B7-BF97-53509B08E5E2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{847611D5-0645-44B7-BF97-53509B08E5E2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.abstractions\app", "{76A72D9D-D9B0-4B14-AF76-FB9187132CCB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{76A72D9D-D9B0-4B14-AF76-FB9187132CCB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "components.abstractions\src\AXOpen.Components.Abstractions", "{C029A1B3-3EC5-4FC1-9A2E-535766094E5A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "AXOpen.Components.Abstractions", "{C029A1B3-3EC5-4FC1-9A2E-535766094E5A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.abstractions\src", "{75FBB8C5-2845-4D2F-9F09-A03CCE59A875}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{75FBB8C5-2845-4D2F-9F09-A03CCE59A875}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "components.abstractions", "{479EC0EC-7365-49C2-BFBD-865A9203CFFE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.balluff.identification\app\ix-blazor", "{83F8E75D-341B-4A05-BDB2-05234033A087}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{83F8E75D-341B-4A05-BDB2-05234033A087}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.balluff.identification\app\ix", "{0B5866B0-67DC-4127-B49B-C8A42FE8BEFD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{0B5866B0-67DC-4127-B49B-C8A42FE8BEFD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.balluff.identification\app", "{8653D805-12C7-419C-B13D-402D40C0C4B5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{8653D805-12C7-419C-B13D-402D40C0C4B5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Balluff.Identification.blazor", "components.balluff.identification\src\AXOpen.Components.Balluff.Identification.blazor", "{1C6F04F6-5187-418E-8F0C-04AC7F211A39}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Balluff.Identification.blazor", "AXOpen.Components.Balluff.Identification.blazor", "{1C6F04F6-5187-418E-8F0C-04AC7F211A39}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Balluff.Identification", "components.balluff.identification\src\AXOpen.Components.Balluff.Identification", "{E7D9C5DB-6063-4822-87BA-4723B22E5DAE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Balluff.Identification", "AXOpen.Components.Balluff.Identification", "{E7D9C5DB-6063-4822-87BA-4723B22E5DAE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.balluff.identification\src", "{DDF05035-E72D-4235-AEB6-1F6917CA36A7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DDF05035-E72D-4235-AEB6-1F6917CA36A7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Balluff.Identification.Tests", "components.balluff.identification\tests\AXOpen.Components.Balluff.Identification.Tests", "{64C8C00A-8B58-4D19-A5FB-A44EAD18B405}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Balluff.Identification.Tests", "AXOpen.Components.Balluff.Identification.Tests", "{64C8C00A-8B58-4D19-A5FB-A44EAD18B405}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.balluff.identification\tests", "{8505F1D9-8BC3-4D46-9CC7-7BBAB940703F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8505F1D9-8BC3-4D46-9CC7-7BBAB940703F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.balluff.identification", "components.balluff.identification", "{A0356A12-333B-4C51-A18A-6DCCCF34C4EA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.cognex.vision\app\ix-blazor", "{68A88F70-6D76-4749-8764-231007FF3AF6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{68A88F70-6D76-4749-8764-231007FF3AF6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.cognex.vision\app\ix", "{5659D3AF-C773-4F1C-9E6F-5ABC1B8C49AB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{5659D3AF-C773-4F1C-9E6F-5ABC1B8C49AB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.cognex.vision\app", "{98F4D42F-556D-4688-BE32-D8072468C6BB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{98F4D42F-556D-4688-BE32-D8072468C6BB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Cognex.Vision.blazor", "components.cognex.vision\src\AXOpen.Components.Cognex.Vision.blazor", "{E12D5B85-3F37-4F93-980F-90219A2676B2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Cognex.Vision.blazor", "AXOpen.Components.Cognex.Vision.blazor", "{E12D5B85-3F37-4F93-980F-90219A2676B2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Cognex.Vision", "components.cognex.vision\src\AXOpen.Components.Cognex.Vision", "{2248BDDB-719E-4485-A0D5-0FC31FE35E30}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Cognex.Vision", "AXOpen.Components.Cognex.Vision", "{2248BDDB-719E-4485-A0D5-0FC31FE35E30}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.cognex.vision\src", "{D57BE2DD-C6E9-44A1-A208-D0D0AAF29333}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D57BE2DD-C6E9-44A1-A208-D0D0AAF29333}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Cognex.Vision.Tests", "components.cognex.vision\tests\AXOpen.Components.Cognex.Vision.Tests", "{77B835B0-9CC3-4F83-902E-0169445CB3AB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Cognex.Vision.Tests", "AXOpen.Components.Cognex.Vision.Tests", "{77B835B0-9CC3-4F83-902E-0169445CB3AB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.cognex.vision\tests", "{C6B2F609-8A8F-42A7-BDE6-18446A241415}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C6B2F609-8A8F-42A7-BDE6-18446A241415}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.cognex.vision", "components.cognex.vision", "{B7E726CB-D3CD-4400-9C77-35A62A1D7BF2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.desoutter.tightening\app\ix-blazor", "{778F8A92-8457-4634-9DBA-DE0F8744ED42}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{778F8A92-8457-4634-9DBA-DE0F8744ED42}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.desoutter.tightening\app\ix", "{7E80B059-A178-4182-9D30-FDB142C0B5F1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{7E80B059-A178-4182-9D30-FDB142C0B5F1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.desoutter.tightening\app", "{6C00B688-9A9F-4C27-B43C-A6721C3841F5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{6C00B688-9A9F-4C27-B43C-A6721C3841F5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Desoutter.Tightening.blazor", "components.desoutter.tightening\src\AXOpen.Components.Desoutter.Tightening.blazor", "{A8B108BB-F3C7-48A2-8994-30DFD586C379}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Desoutter.Tightening.blazor", "AXOpen.Components.Desoutter.Tightening.blazor", "{A8B108BB-F3C7-48A2-8994-30DFD586C379}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Desoutter.Tightening", "components.desoutter.tightening\src\AXOpen.Components.Desoutter.Tightening", "{E205E9AF-1948-45CC-A645-9DB5D1A7CD46}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Desoutter.Tightening", "AXOpen.Components.Desoutter.Tightening", "{E205E9AF-1948-45CC-A645-9DB5D1A7CD46}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.desoutter.tightening\src", "{AFEEC80D-E45B-428C-86FE-1BF6D4A9891B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AFEEC80D-E45B-428C-86FE-1BF6D4A9891B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Desoutter.Tightening.Tests", "components.desoutter.tightening\tests\AXOpen.Components.Desoutter.Tightening.Tests", "{103F8A2A-D9DA-4900-AA9C-6DD4561B0821}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Desoutter.Tightening.Tests", "AXOpen.Components.Desoutter.Tightening.Tests", "{103F8A2A-D9DA-4900-AA9C-6DD4561B0821}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.desoutter.tightening\tests", "{314BCF2F-9BA1-44AB-811C-68F4A110E26E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{314BCF2F-9BA1-44AB-811C-68F4A110E26E}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.desoutter.tightening", "components.desoutter.tightening", "{9DBE8678-E833-49EF-A7FF-B3BA0ABDF25E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.drives\app\ix-blazor", "{5EA1C536-B4D8-48E1-AD42-FEA7B3BAFB95}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{5EA1C536-B4D8-48E1-AD42-FEA7B3BAFB95}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.drives\app\ix", "{07E68F6B-ED60-4221-8EFE-CDF8EBA85549}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{07E68F6B-ED60-4221-8EFE-CDF8EBA85549}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.drives\app", "{ECAD0B84-ADEB-4F68-9C54-463B8EDF7716}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{ECAD0B84-ADEB-4F68-9C54-463B8EDF7716}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives.blazor", "components.drives\src\AXOpen.Components.Drives.blazor", "{593C20EF-3E03-4DD6-9258-CD2162772C88}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives.blazor", "AXOpen.Components.Drives.blazor", "{593C20EF-3E03-4DD6-9258-CD2162772C88}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives", "components.drives\src\AXOpen.Components.Drives", "{75EEE906-BC14-4120-8425-D7C8C9B747AE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives", "AXOpen.Components.Drives", "{75EEE906-BC14-4120-8425-D7C8C9B747AE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.drives\src", "{D13739D4-4A0C-4C07-8E62-63CB98B6238E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D13739D4-4A0C-4C07-8E62-63CB98B6238E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives.Tests", "components.drives\tests\AXOpen.Components.Drives.Tests", "{FA17866C-D213-4CF7-BC91-03C3417FB000}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives.Tests", "AXOpen.Components.Drives.Tests", "{FA17866C-D213-4CF7-BC91-03C3417FB000}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.drives\tests", "{94D1AECC-069C-4036-A671-BE45F683306B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{94D1AECC-069C-4036-A671-BE45F683306B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.drives", "components.drives", "{AB2E78FF-1ADC-4EB2-BEC5-33727B50958D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ElementsComponents.blazor", "components.elements\app\ix-blazor\ElementsComponents.blazor", "{0FE5A9C9-BD18-438E-A974-2E52C08B6AEE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ElementsComponents.blazor", "ElementsComponents.blazor", "{0FE5A9C9-BD18-438E-A974-2E52C08B6AEE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.elements\app\ix-blazor", "{E2C0BF0D-83A3-46C2-8D4D-B45B27765880}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{E2C0BF0D-83A3-46C2-8D4D-B45B27765880}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.elements\app\ix", "{CD7745CA-DE04-45E3-9CE3-D7AC81722319}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{CD7745CA-DE04-45E3-9CE3-D7AC81722319}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.elements\app", "{04B5C892-111A-43AF-8FFF-A0D27FEAA5D3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{04B5C892-111A-43AF-8FFF-A0D27FEAA5D3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Elements.blazor", "components.elements\src\AXOpen.Components.Elements.blazor", "{8C0635D4-A19C-4F50-8CF9-4C6E18E84952}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Elements.blazor", "AXOpen.Components.Elements.blazor", "{8C0635D4-A19C-4F50-8CF9-4C6E18E84952}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Elements", "components.elements\src\AXOpen.Components.Elements", "{48E8CDEE-AEAE-4D23-92B9-1E0B98E009BF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Elements", "AXOpen.Components.Elements", "{48E8CDEE-AEAE-4D23-92B9-1E0B98E009BF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.elements\src", "{53A01F68-E2B0-4A61-B4B9-757276A33657}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{53A01F68-E2B0-4A61-B4B9-757276A33657}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Elements.Tests", "components.elements\tests\AXOpen.Components.Elements.Tests", "{2100EE30-B5DE-43A4-99DD-AA19BE05E1F2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Elements.Tests", "AXOpen.Components.Elements.Tests", "{2100EE30-B5DE-43A4-99DD-AA19BE05E1F2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.elements\tests", "{582DF7F3-F321-4492-AFD8-4452BBE03EDF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{582DF7F3-F321-4492-AFD8-4452BBE03EDF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.elements", "components.elements", "{CFFFF2E3-6540-4C20-BD50-B88805AC2E29}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.festo.drives\app\ix-blazor", "{6B004667-1557-47CD-865C-90E6F07C9859}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{6B004667-1557-47CD-865C-90E6F07C9859}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.festo.drives\app\ix", "{05EADF36-8F94-4892-902A-2B9F052D9FED}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{05EADF36-8F94-4892-902A-2B9F052D9FED}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.festo.drives\app", "{570EEF28-E4AA-4DCE-9400-41633BBF4895}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{570EEF28-E4AA-4DCE-9400-41633BBF4895}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.blazor", "components.festo.drives\src\AXOpen.Components.Festo.Drives.blazor", "{99EC9D4D-7D75-4CEA-9603-3CF4F8C4645E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.blazor", "AXOpen.Components.Festo.Drives.blazor", "{99EC9D4D-7D75-4CEA-9603-3CF4F8C4645E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives", "components.festo.drives\src\AXOpen.Components.Festo.Drives", "{EA1FD1E2-1035-46B1-A3EA-FDA882CEA5CF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives", "AXOpen.Components.Festo.Drives", "{EA1FD1E2-1035-46B1-A3EA-FDA882CEA5CF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.festo.drives\src", "{B6674744-371D-4750-A3FB-CDDDBE498149}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B6674744-371D-4750-A3FB-CDDDBE498149}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.Tests", "components.festo.drives\tests\AXOpen.Components.Festo.Drives.Tests", "{9E1896B2-D852-4757-A1B2-A9A5AFD3F2BC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.Tests", "AXOpen.Components.Festo.Drives.Tests", "{9E1896B2-D852-4757-A1B2-A9A5AFD3F2BC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.festo.drives\tests", "{C68ADC83-5D42-429E-AD8E-1CAF8E7F3298}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C68ADC83-5D42-429E-AD8E-1CAF8E7F3298}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.festo.drives", "components.festo.drives", "{1B45C35A-E2C7-4928-B974-DD6A0F22CFC9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.kuka.robotics\app\ix-blazor", "{59B94DBA-D79D-454D-B306-12A37C8BB8FB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{59B94DBA-D79D-454D-B306-12A37C8BB8FB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.kuka.robotics\app\ix", "{2697F39C-6F58-4480-9054-D0810B45E2CC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{2697F39C-6F58-4480-9054-D0810B45E2CC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.kuka.robotics\app", "{2A8EC97B-5683-4B33-B716-C30484459CC0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{2A8EC97B-5683-4B33-B716-C30484459CC0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Kuka.Robotics.blazor", "components.kuka.robotics\src\AXOpen.Components.Kuka.Robotics.blazor", "{BBEE204C-502B-422C-8E11-0986643B0292}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Kuka.Robotics.blazor", "AXOpen.Components.Kuka.Robotics.blazor", "{BBEE204C-502B-422C-8E11-0986643B0292}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Kuka.Robotics", "components.kuka.robotics\src\AXOpen.Components.Kuka.Robotics", "{C56E13B9-2522-4ABC-B749-7D2CE0EC1082}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Kuka.Robotics", "AXOpen.Components.Kuka.Robotics", "{C56E13B9-2522-4ABC-B749-7D2CE0EC1082}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.kuka.robotics\src", "{AF7B01BB-5E2A-43BE-BD02-C586A2499BA4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AF7B01BB-5E2A-43BE-BD02-C586A2499BA4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Kuka.Robotics.Tests", "components.kuka.robotics\tests\AXOpen.Components.Kuka.Robotics.Tests", "{14077EF9-5D51-41A3-8D53-BA89EBD65D52}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Kuka.Robotics.Tests", "AXOpen.Components.Kuka.Robotics.Tests", "{14077EF9-5D51-41A3-8D53-BA89EBD65D52}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.kuka.robotics\tests", "{6A1BF4A4-6A80-4C2E-8E9D-40E9263E0243}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6A1BF4A4-6A80-4C2E-8E9D-40E9263E0243}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.kuka.robotics", "components.kuka.robotics", "{6F23688F-C045-4D16-836C-5FEA69900DAC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.mitsubishi.robotics\app\ix-blazor", "{6798CB03-56E7-4776-82D3-4545C7AA6C76}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{6798CB03-56E7-4776-82D3-4545C7AA6C76}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.mitsubishi.robotics\app\ix", "{9D4291A0-87C2-41B2-8AF8-3348D953C9B3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{9D4291A0-87C2-41B2-8AF8-3348D953C9B3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.mitsubishi.robotics\app", "{6DAFE068-C050-4D02-A1F6-E7836B78863E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{6DAFE068-C050-4D02-A1F6-E7836B78863E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Mitsubishi.Robotics.blazor", "components.mitsubishi.robotics\src\AXOpen.Components.Mitsubishi.Robotics.blazor", "{7F8AD7A9-BB92-4369-B951-08CDFFA531FB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Mitsubishi.Robotics.blazor", "AXOpen.Components.Mitsubishi.Robotics.blazor", "{7F8AD7A9-BB92-4369-B951-08CDFFA531FB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Mitsubishi.Robotics", "components.mitsubishi.robotics\src\AXOpen.Components.Mitsubishi.Robotics", "{2947D440-FFB8-44A6-AFCA-64B21FCDCC88}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Mitsubishi.Robotics", "AXOpen.Components.Mitsubishi.Robotics", "{2947D440-FFB8-44A6-AFCA-64B21FCDCC88}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.mitsubishi.robotics\src", "{C12556B3-D031-4DFD-96AC-69706422002E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C12556B3-D031-4DFD-96AC-69706422002E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Mitsubishi.Robotics.Tests", "components.mitsubishi.robotics\tests\AXOpen.Components.Mitsubishi.Robotics.Tests", "{2755887E-EAC0-4ACF-A8FD-2F1DE3AF6755}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Mitsubishi.Robotics.Tests", "AXOpen.Components.Mitsubishi.Robotics.Tests", "{2755887E-EAC0-4ACF-A8FD-2F1DE3AF6755}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.mitsubishi.robotics\tests", "{F1059FE7-1F99-4126-845A-52761F5B9661}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F1059FE7-1F99-4126-845A-52761F5B9661}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.mitsubishi.robotics", "components.mitsubishi.robotics", "{7C7BC67B-380A-43DB-8591-CB2B44D4C7E0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PneumaticComponents.blazor", "components.pneumatics\app\ix-blazor\PneumaticComponents.blazor", "{F269D0AF-12FB-4973-B0D4-8B82E71A612A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PneumaticComponents.blazor", "PneumaticComponents.blazor", "{F269D0AF-12FB-4973-B0D4-8B82E71A612A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.pneumatics\app\ix-blazor", "{A085A8FD-C075-46D3-A636-7BED6FBD78C4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{A085A8FD-C075-46D3-A636-7BED6FBD78C4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.pneumatics\app\ix", "{0370A4CC-2577-476B-BD82-1F539A703BCB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{0370A4CC-2577-476B-BD82-1F539A703BCB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.pneumatics\app", "{5ACC850B-9DF0-446F-8A7B-A6AAC0244E5F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{5ACC850B-9DF0-446F-8A7B-A6AAC0244E5F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Pneumatics.blazor", "components.pneumatics\src\AXOpen.Components.Pneumatics.blazor", "{4FD920E0-5969-4E7C-8C1E-8384D336068B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Pneumatics.blazor", "AXOpen.Components.Pneumatics.blazor", "{4FD920E0-5969-4E7C-8C1E-8384D336068B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Pneumatics", "components.pneumatics\src\AXOpen.Components.Pneumatics", "{CBAD33FA-FF13-4EF1-AAC1-AE02F65460D3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Pneumatics", "AXOpen.Components.Pneumatics", "{CBAD33FA-FF13-4EF1-AAC1-AE02F65460D3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.pneumatics\src", "{BDC05B39-FFA4-4D1F-B1BB-FB566DE6ADDE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BDC05B39-FFA4-4D1F-B1BB-FB566DE6ADDE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Pneumatics.Tests", "components.pneumatics\tests\AXOpen.Components.Pneumatics.Tests", "{A5D8EB11-DE4F-4250-AB7C-67BF887C9F37}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Pneumatics.Tests", "AXOpen.Components.Pneumatics.Tests", "{A5D8EB11-DE4F-4250-AB7C-67BF887C9F37}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.pneumatics\tests", "{4278218E-9972-42AD-973B-4D320865141A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4278218E-9972-42AD-973B-4D320865141A}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.pneumatics", "components.pneumatics", "{76052BB9-3C02-430D-A673-D144A651738D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.rexroth.drives\app\ix-blazor", "{957466C2-B011-411B-9B75-0EB868304A3A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{957466C2-B011-411B-9B75-0EB868304A3A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.rexroth.drives\app\ix", "{F534C1B9-0BA9-4FE2-89C6-EBDE1BCE1B2B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{F534C1B9-0BA9-4FE2-89C6-EBDE1BCE1B2B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.rexroth.drives\app", "{3A731815-7F1B-43B3-94B0-B9D4B7783BE3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{3A731815-7F1B-43B3-94B0-B9D4B7783BE3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Drives.blazor", "components.rexroth.drives\src\AXOpen.Components.Rexroth.Drives.blazor", "{E179A7F8-82B0-445C-BA79-788CD02D4325}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Drives.blazor", "AXOpen.Components.Rexroth.Drives.blazor", "{E179A7F8-82B0-445C-BA79-788CD02D4325}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Drives", "components.rexroth.drives\src\AXOpen.Components.Rexroth.Drives", "{F31B1643-5474-4883-BE0C-83AD63CC1652}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Drives", "AXOpen.Components.Rexroth.Drives", "{F31B1643-5474-4883-BE0C-83AD63CC1652}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.rexroth.drives\src", "{9D897371-ECDE-4128-830B-18FAC0689007}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9D897371-ECDE-4128-830B-18FAC0689007}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Drives.Tests", "components.rexroth.drives\tests\AXOpen.Components.Rexroth.Drives.Tests", "{CA48E14E-C1EB-402A-9941-77725A5B3D61}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Drives.Tests", "AXOpen.Components.Rexroth.Drives.Tests", "{CA48E14E-C1EB-402A-9941-77725A5B3D61}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.rexroth.drives\tests", "{A35084B9-A5BB-4381-ADC6-A03A223E4B17}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A35084B9-A5BB-4381-ADC6-A03A223E4B17}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.rexroth.drives", "components.rexroth.drives", "{C4308B88-2B7A-4F12-8679-0C2A6FBA7530}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.rexroth.press\app\ix-blazor", "{A6855D43-89EF-42C0-B626-04E35E1994D2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{A6855D43-89EF-42C0-B626-04E35E1994D2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.rexroth.press\app\ix", "{4557B9D9-BA88-4794-A706-358942864425}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{4557B9D9-BA88-4794-A706-358942864425}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.rexroth.press\app", "{EF80104E-F4B2-4EBD-947C-F422615F0FBD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{EF80104E-F4B2-4EBD-947C-F422615F0FBD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Press.blazor", "components.rexroth.press\src\AXOpen.Components.Rexroth.Press.blazor", "{21D0EC46-5949-4C1D-821B-F3263AAB5474}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Press.blazor", "AXOpen.Components.Rexroth.Press.blazor", "{21D0EC46-5949-4C1D-821B-F3263AAB5474}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Press", "components.rexroth.press\src\AXOpen.Components.Rexroth.Press", "{0566BBD5-2F78-4733-AA60-0BE7C7C3396B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Press", "AXOpen.Components.Rexroth.Press", "{0566BBD5-2F78-4733-AA60-0BE7C7C3396B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.rexroth.press\src", "{73ACF870-C0F3-430D-8875-018293E3FA10}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{73ACF870-C0F3-430D-8875-018293E3FA10}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Press.Tests", "components.rexroth.press\tests\AXOpen.Components.Rexroth.Press.Tests", "{6D9750BE-EA66-4DFB-BBFE-30D0EA0C1280}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Press.Tests", "AXOpen.Components.Rexroth.Press.Tests", "{6D9750BE-EA66-4DFB-BBFE-30D0EA0C1280}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.rexroth.press\tests", "{5525EC51-D122-4635-A9C5-83DB9497BBE0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5525EC51-D122-4635-A9C5-83DB9497BBE0}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.rexroth.press", "components.rexroth.press", "{BA03954C-D8D2-4A8B-A0E5-A060694D3B83}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.robotics\app\ix-blazor", "{4F07A792-E4A6-4174-B307-D0BCD9780369}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{4F07A792-E4A6-4174-B307-D0BCD9780369}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.robotics\app\ix", "{E68F61D8-3F93-4F55-AB7B-6A5B9D9D5702}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{E68F61D8-3F93-4F55-AB7B-6A5B9D9D5702}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.robotics\app", "{8AAD1951-C33B-4333-B561-25AA11EC23E5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{8AAD1951-C33B-4333-B561-25AA11EC23E5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Robotics.blazor", "components.robotics\src\AXOpen.Components.Robotics.blazor", "{0A0413A2-194E-43C4-993E-BD9C1DA50FA5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Robotics.blazor", "AXOpen.Components.Robotics.blazor", "{0A0413A2-194E-43C4-993E-BD9C1DA50FA5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Robotics", "components.robotics\src\AXOpen.Components.Robotics", "{485CF1F1-D2E8-4000-BECD-FA8D1193402A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Robotics", "AXOpen.Components.Robotics", "{485CF1F1-D2E8-4000-BECD-FA8D1193402A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.robotics\src", "{6C4FB129-DD8B-49B9-A388-064AC3ED7EAB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6C4FB129-DD8B-49B9-A388-064AC3ED7EAB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Robotics.Tests", "components.robotics\tests\AXOpen.Components.Robotics.Tests", "{2182A888-88F4-44D1-8852-9DD88F433CB9}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Robotics.Tests", "AXOpen.Components.Robotics.Tests", "{2182A888-88F4-44D1-8852-9DD88F433CB9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.robotics\tests", "{447EEB34-3355-4C91-8517-4ED0EC470A10}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{447EEB34-3355-4C91-8517-4ED0EC470A10}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.robotics", "components.robotics", "{C6CC72AC-D77F-4D6B-BA70-5B83D5F3EED3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.siem.identification\app\ix-blazor", "{5FC05115-559C-4F4F-A215-26F7A5FCC893}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{5FC05115-559C-4F4F-A215-26F7A5FCC893}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.siem.identification\app\ix", "{558B37A5-A903-4D19-9FC6-EC85F19875A4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{558B37A5-A903-4D19-9FC6-EC85F19875A4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.siem.identification\app", "{63B97BEF-1E2E-47AA-A101-936A079F6F3B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{63B97BEF-1E2E-47AA-A101-936A079F6F3B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Identification.blazor", "components.siem.identification\src\AXOpen.Components.Siem.Identification.blazor", "{85E4ABDC-851A-483A-A4D6-B89649C0E06A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Identification.blazor", "AXOpen.Components.Siem.Identification.blazor", "{85E4ABDC-851A-483A-A4D6-B89649C0E06A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Identification", "components.siem.identification\src\AXOpen.Components.Siem.Identification", "{F1431E64-8771-4255-A0DC-F707A817D310}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Identification", "AXOpen.Components.Siem.Identification", "{F1431E64-8771-4255-A0DC-F707A817D310}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.siem.identification\src", "{DE7C5710-95D0-47AA-9BD1-DADF9EB2B668}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DE7C5710-95D0-47AA-9BD1-DADF9EB2B668}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Identification.Tests", "components.siem.identification\tests\AXOpen.Components.Siem.Identification.Tests", "{DAB7059D-5C97-4567-B8EA-7776BE9083E0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Identification.Tests", "AXOpen.Components.Siem.Identification.Tests", "{DAB7059D-5C97-4567-B8EA-7776BE9083E0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.siem.identification\tests", "{A5BBA869-66F0-4B34-9F21-77F42AAE1EE2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A5BBA869-66F0-4B34-9F21-77F42AAE1EE2}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.siem.identification", "components.siem.identification", "{8652A01C-32A8-425C-AB2E-37AC4CAAFF42}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "components.ur.robotics\app\ix-blazor", "{80A4319E-22F7-4066-9F99-DD7352B2086A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{80A4319E-22F7-4066-9F99-DD7352B2086A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "components.ur.robotics\app\ix", "{927FA031-AE0C-413D-86DD-B721FDD303DE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{927FA031-AE0C-413D-86DD-B721FDD303DE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "components.ur.robotics\app", "{D9F6361D-5567-44C2-9F96-D12A6141B7A6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{D9F6361D-5567-44C2-9F96-D12A6141B7A6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Ur.Robotics.blazor", "components.ur.robotics\src\AXOpen.Components.Ur.Robotics.blazor", "{CD1E5814-4204-405F-A6A4-D9699FA7A65F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Ur.Robotics.blazor", "AXOpen.Components.Ur.Robotics.blazor", "{CD1E5814-4204-405F-A6A4-D9699FA7A65F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Ur.Robotics", "components.ur.robotics\src\AXOpen.Components.Ur.Robotics", "{9272D534-EAFA-4118-A662-17E21424EEFC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Ur.Robotics", "AXOpen.Components.Ur.Robotics", "{9272D534-EAFA-4118-A662-17E21424EEFC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "components.ur.robotics\src", "{6804C9ED-EFDC-41B0-BE0C-16ABFF23C6A8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6804C9ED-EFDC-41B0-BE0C-16ABFF23C6A8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Ur.Robotics.Tests", "components.ur.robotics\tests\AXOpen.Components.Ur.Robotics.Tests", "{98C3AECA-03CB-4407-9284-B5E4C2403223}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Ur.Robotics.Tests", "AXOpen.Components.Ur.Robotics.Tests", "{98C3AECA-03CB-4407-9284-B5E4C2403223}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "components.ur.robotics\tests", "{C861C81E-923E-4E5C-A185-8783B1ABAD52}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C861C81E-923E-4E5C-A185-8783B1ABAD52}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.ur.robotics", "components.ur.robotics", "{AE7E0AED-8A21-4AAE-9E78-AE67CF2F245B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopencore.blazor", "core\app\ix-blazor\axopencore.blazor", "{A0EDDDD2-4698-42DE-8B20-FD36FB75D1CA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopencore.blazor", "axopencore.blazor", "{A0EDDDD2-4698-42DE-8B20-FD36FB75D1CA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "core\app\ix-blazor", "{9D466A00-771D-4211-AB02-8F06C5D665E0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{9D466A00-771D-4211-AB02-8F06C5D665E0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "core\app\ix", "{C63BF261-7535-4F04-BF08-02EDAC2A1342}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{C63BF261-7535-4F04-BF08-02EDAC2A1342}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "core\app", "{93F5E940-7BDA-4FEA-AF8A-094261AE59FF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{93F5E940-7BDA-4FEA-AF8A-094261AE59FF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "core\src\AXOpen.Core.Blazor", "{3DFA47C5-4FCE-47B7-B2E9-EED0464F4A5D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "AXOpen.Core.Blazor", "{3DFA47C5-4FCE-47B7-B2E9-EED0464F4A5D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "core\src\AXOpen.Core", "{3A6BF106-352C-44F8-8023-347652562F8E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "AXOpen.Core", "{3A6BF106-352C-44F8-8023-347652562F8E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "core\src", "{A02A5201-6C2D-434E-93EF-47B4B00B043B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A02A5201-6C2D-434E-93EF-47B4B00B043B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Tests", "core\tests\AXOpen.Core.Tests", "{D57AAF72-9577-4110-9640-079C62D09D6B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Tests", "AXOpen.Core.Tests", "{D57AAF72-9577-4110-9640-079C62D09D6B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "core\tests", "{C172390F-2AFC-4EC9-9E42-169D069749F8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C172390F-2AFC-4EC9-9E42-169D069749F8}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{EA4E3840-62E0-482E-BF4B-BAA74236FDDF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librarytemplate.blazor", "data\app\ix-blazor\librarytemplate.blazor", "{BE22EA3E-5064-4C06-82EF-9B014764058C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librarytemplate.blazor", "librarytemplate.blazor", "{BE22EA3E-5064-4C06-82EF-9B014764058C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "data\app\ix-blazor", "{1182B62E-48E0-4978-B1CC-5F97944E7BD4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{1182B62E-48E0-4978-B1CC-5F97944E7BD4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "data\app\ix", "{0B681A00-1B80-496F-9C49-EF482337B19F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{0B681A00-1B80-496F-9C49-EF482337B19F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "data\app", "{A12B60AD-F5B9-44D0-B005-8DCF308C4086}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{A12B60AD-F5B9-44D0-B005-8DCF308C4086}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.Blazor", "data\src\AXOpen.Data.Blazor", "{26DA1FA9-81EF-4042-968D-F88338097834}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.Blazor", "AXOpen.Data.Blazor", "{26DA1FA9-81EF-4042-968D-F88338097834}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data", "data\src\AXOpen.Data", "{85417C0B-889C-4277-97B2-B5DE14DDFA5E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data", "AXOpen.Data", "{85417C0B-889C-4277-97B2-B5DE14DDFA5E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.Exporters.Excel", "data\src\exporters\AXOpen.Data.Exporters.Excel", "{25AE4B94-B20D-4C58-94A2-DD5C76B64DC1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.Exporters.Excel", "AXOpen.Data.Exporters.Excel", "{25AE4B94-B20D-4C58-94A2-DD5C76B64DC1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "exporters", "data\src\exporters", "{B9823493-ABA6-4C53-83B0-09369C09B2FC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "exporters", "exporters", "{B9823493-ABA6-4C53-83B0-09369C09B2FC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InMemory", "data\src\repositories\InMemory", "{E0739714-FAC4-488A-B3E6-446B61EB6854}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InMemory", "InMemory", "{E0739714-FAC4-488A-B3E6-446B61EB6854}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "data\src\repositories\Json", "{28FAB662-FA38-4DBA-8909-DADC292CE1F3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "Json", "{28FAB662-FA38-4DBA-8909-DADC292CE1F3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MongoDb", "data\src\repositories\MongoDb", "{AAE8DF8E-541F-47B0-AF30-781659D38B32}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MongoDb", "MongoDb", "{AAE8DF8E-541F-47B0-AF30-781659D38B32}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.RavenDb", "data\src\repositories\RavenDb\AXOpen.Data.RavenDb", "{3F4693F5-3626-4D47-8180-0FC43E142C6B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.RavenDb", "AXOpen.Data.RavenDb", "{3F4693F5-3626-4D47-8180-0FC43E142C6B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RavenDb", "data\src\repositories\RavenDb", "{C79645E4-0C90-4E81-B63D-9F89246AB379}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RavenDb", "RavenDb", "{C79645E4-0C90-4E81-B63D-9F89246AB379}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "data\src\repositories", "{825D14EC-EE8F-476C-86CC-CB56E03FD35C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "repositories", "{825D14EC-EE8F-476C-86CC-CB56E03FD35C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "data\src", "{CAFB8D77-6F25-4B04-AA29-B256BB3CD064}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CAFB8D77-6F25-4B04-AA29-B256BB3CD064}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.Exporters.ExcelTests", "data\tests\AXOpen.Data.Exporters.ExcelTests", "{28ACEF5B-EBF2-490B-9819-50BCC4061711}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.Exporters.ExcelTests", "AXOpen.Data.Exporters.ExcelTests", "{28ACEF5B-EBF2-490B-9819-50BCC4061711}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.Tests", "data\tests\AXOpen.Data.Tests", "{45A1C50B-AC86-4F55-8E4C-2C43370B491B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.Tests", "AXOpen.Data.Tests", "{45A1C50B-AC86-4F55-8E4C-2C43370B491B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Repository.Integration.Tests_L1", "data\tests\AXOpen.Repository.Integration.Tests_L1", "{F88B2A1B-AED0-4ED4-A358-3B31F12CD0F4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Repository.Integration.Tests_L1", "AXOpen.Repository.Integration.Tests_L1", "{F88B2A1B-AED0-4ED4-A358-3B31F12CD0F4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Repository.Integration.Tests_L3", "data\tests\AXOpen.Repository.Integration.Tests_L3", "{CFC5E8BC-5FAF-47C9-A425-30506BA913D3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Repository.Integration.Tests_L3", "AXOpen.Repository.Integration.Tests_L3", "{CFC5E8BC-5FAF-47C9-A425-30506BA913D3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "data\tests", "{BECC341A-A8F0-4005-B6CC-73BA56623AEE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BECC341A-A8F0-4005-B6CC-73BA56623AEE}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "data", "{77F14555-3A3C-4008-9A89-C93451A67519}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors.blazor", "inspectors\app\ix-blazor\AXOpen.Inspectors.blazor", "{13AE6F5A-316B-418C-8D8A-02944F6E9EA2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors.blazor", "AXOpen.Inspectors.blazor", "{13AE6F5A-316B-418C-8D8A-02944F6E9EA2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "inspectors\app\ix-blazor", "{4F11F581-7157-41F3-8436-49C3AD4B2E49}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{4F11F581-7157-41F3-8436-49C3AD4B2E49}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "inspectors\app\ix", "{BE24BA92-46EF-406C-9BC8-2F7BE1249DC8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{BE24BA92-46EF-406C-9BC8-2F7BE1249DC8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "inspectors\app", "{803EABB2-ECD8-4FF1-9845-56715B8E5C12}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{803EABB2-ECD8-4FF1-9845-56715B8E5C12}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors.blazor", "inspectors\src\AXOpen.Inspectors.blazor", "{1BDD1794-2F21-4D78-9B08-F5F7C5F5467E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors.blazor", "AXOpen.Inspectors.blazor", "{1BDD1794-2F21-4D78-9B08-F5F7C5F5467E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors", "inspectors\src\AXOpen.Inspectors", "{8E858A96-F071-4CAC-AA66-34B13DB55D6D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors", "AXOpen.Inspectors", "{8E858A96-F071-4CAC-AA66-34B13DB55D6D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "inspectors\src", "{275F9A46-7006-43C3-8204-8AC953A630DA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{275F9A46-7006-43C3-8204-8AC953A630DA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors.Tests", "inspectors\tests\AXOpen.Inspectors.Tests", "{BE224617-780E-4ADE-9821-4F71DB5A4891}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors.Tests", "AXOpen.Inspectors.Tests", "{BE224617-780E-4ADE-9821-4F71DB5A4891}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "inspectors\tests", "{C1C39C13-C030-45AF-B07B-E55B85C5A699}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C1C39C13-C030-45AF-B07B-E55B85C5A699}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "inspectors", "inspectors", "{F297B76A-798A-47F3-857B-0B5D150E31D5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Integrations.Blazor", "integrations\src\AXOpen.Integrations.Blazor", "{2B55CDC7-6FF3-4383-8EC9-0763B86A1B72}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Integrations.Blazor", "AXOpen.Integrations.Blazor", "{2B55CDC7-6FF3-4383-8EC9-0763B86A1B72}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Integrations", "integrations\src\AXOpen.Integrations", "{EAB34165-4F37-4A83-BD58-04651D6574BF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Integrations", "AXOpen.Integrations", "{EAB34165-4F37-4A83-BD58-04651D6574BF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "integrations\src", "{F8FB9689-A97F-47BC-AC64-8E1CEEBEDA80}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F8FB9689-A97F-47BC-AC64-8E1CEEBEDA80}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Integration.Data.Blazor.Tests", "integrations\tests\AXOpen.Integration.Data.Blazor.Tests", "{643EA840-BA89-4D09-B876-CEEEC8FF4465}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Integration.Data.Blazor.Tests", "AXOpen.Integration.Data.Blazor.Tests", "{643EA840-BA89-4D09-B876-CEEEC8FF4465}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Integration.Tests", "integrations\tests\AXOpen.Integration.Tests", "{C4341F8D-20FB-4EDF-A136-C2CC18C079A5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Integration.Tests", "AXOpen.Integration.Tests", "{C4341F8D-20FB-4EDF-A136-C2CC18C079A5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "integrations\tests", "{4A7B6C4B-E12E-4EE5-8419-EFDC89B84D51}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4A7B6C4B-E12E-4EE5-8419-EFDC89B84D51}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integrations", "integrations", "{A5385B4F-6066-4E86-872C-143A0CFE434A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "io\app\ix-blazor", "{9AB1A4FC-8863-4A7D-9950-7C45EFA7E570}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{9AB1A4FC-8863-4A7D-9950-7C45EFA7E570}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "io\app\ix", "{9851468D-BBA9-4FDD-A801-530E801E0DAA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{9851468D-BBA9-4FDD-A801-530E801E0DAA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "io\app", "{858B5463-D561-4520-8AE2-3083C0CFB36E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{858B5463-D561-4520-8AE2-3083C0CFB36E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "io\src\AXOpen.Io.blazor", "{78E01C90-BE58-4BD9-A41D-6FF17138E5A6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "AXOpen.Io.blazor", "{78E01C90-BE58-4BD9-A41D-6FF17138E5A6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "io\src\AXOpen.Io", "{C4AF9E17-4833-41ED-9734-AED1E53DA3BE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "AXOpen.Io", "{C4AF9E17-4833-41ED-9734-AED1E53DA3BE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "io\src", "{B0F37623-EFC4-4F09-B746-033831461C4D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B0F37623-EFC4-4F09-B746-033831461C4D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.Tests", "io\tests\AXOpen.Io.Tests", "{5D827306-F94C-4942-AD8D-0FB6FA1505AA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.Tests", "AXOpen.Io.Tests", "{5D827306-F94C-4942-AD8D-0FB6FA1505AA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "io\tests", "{245B4654-6CFE-4A77-AF0E-52209A7F3114}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{245B4654-6CFE-4A77-AF0E-52209A7F3114}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "io", "{AD706706-DA32-4F68-BDDA-BE2D1C64581A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librarytemplate.blazor", "probers\app\ix-blazor\librarytemplate.blazor", "{53DE6EC2-34DA-4193-84B5-37F1D33883CA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librarytemplate.blazor", "librarytemplate.blazor", "{53DE6EC2-34DA-4193-84B5-37F1D33883CA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "probers\app\ix-blazor", "{09ACA653-10D0-4BB3-B5E5-C5D18CA72197}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{09ACA653-10D0-4BB3-B5E5-C5D18CA72197}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "probers\app\ix", "{1B652AD2-93BF-423E-98F2-CA91B8A4E4C5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{1B652AD2-93BF-423E-98F2-CA91B8A4E4C5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "probers\app", "{4F7F7420-1545-4648-91E7-F9F85BFBC7DF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{4F7F7420-1545-4648-91E7-F9F85BFBC7DF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Probers", "probers\src\AXOpen.Probers", "{38175AD9-0E91-41C5-976B-02A43E967C3C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Probers", "AXOpen.Probers", "{38175AD9-0E91-41C5-976B-02A43E967C3C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "probers\src", "{D3A47CCA-753E-4D09-AD69-60761979A96F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D3A47CCA-753E-4D09-AD69-60761979A96F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Probers.Tests", "probers\tests\AXOpen.Probers.Tests", "{3B453C75-2B39-447B-BEE2-41BFAB0A0378}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Probers.Tests", "AXOpen.Probers.Tests", "{3B453C75-2B39-447B-BEE2-41BFAB0A0378}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "probers\tests", "{7DDA4D2D-D912-4741-9055-8EF63C1F5041}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7DDA4D2D-D912-4741-9055-8EF63C1F5041}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "probers", "probers", "{D0805939-88D3-4B7E-A64D-235AF6E225B9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "sdk-ax\ctrl\ix", "{104E5B2F-93C5-489A-9936-15CBE7C19AE6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{104E5B2F-93C5-489A-9936-15CBE7C19AE6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "sdk-ax\ctrl", "{8E81F508-5F1D-46C9-AB7D-081077078257}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "ctrl", "{8E81F508-5F1D-46C9-AB7D-081077078257}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "sdk-ax", "{8597E8C1-E9A1-4DAA-A7F8-68686452FBA9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen_blazor_auth_app", "Security\integrations\axopen_blazor_auth_app", "{7B6E4558-C259-4359-9E98-8BD28DA0FFCA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen_blazor_auth_app", "axopen_blazor_auth_app", "{7B6E4558-C259-4359-9E98-8BD28DA0FFCA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integrations", "Security\integrations", "{C41FC5CF-3682-4524-A71C-9CF1AFA5A79B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integrations", "integrations", "{C41FC5CF-3682-4524-A71C-9CF1AFA5A79B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "Security\src\AXOpen.Security.Blazor", "{318356A8-3862-4A32-98B0-17FE41647958}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "AXOpen.Security.Blazor", "{318356A8-3862-4A32-98B0-17FE41647958}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "Security\src\AXOpen.Security", "{61FA4356-9B32-4586-9F0E-4D4156A70481}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "AXOpen.Security", "{61FA4356-9B32-4586-9F0E-4D4156A70481}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "Security\src", "{3F98CD3D-672F-4A4D-9BAA-E082C65B0E52}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3F98CD3D-672F-4A4D-9BAA-E082C65B0E52}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen_security_tests", "Security\tests\axopen_security_tests", "{5A334C4C-4BF9-4AE3-8110-7F6C29E03C96}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen_security_tests", "axopen_security_tests", "{5A334C4C-4BF9-4AE3-8110-7F6C29E03C96}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "Security\tests", "{D93304DA-37F5-4AC9-A09C-980A3D344060}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D93304DA-37F5-4AC9-A09C-980A3D344060}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "Security", "{BD1B5192-3C3D-49CA-8840-C8B5A76B0ACF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "simatic1500\app\ix", "{007B5930-E7BA-4FDC-B4FB-5DACB2B2A936}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{007B5930-E7BA-4FDC-B4FB-5DACB2B2A936}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "simatic1500\app", "{8E436C61-F4F5-41AE-8268-5AFCFF6E504C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{8E436C61-F4F5-41AE-8268-5AFCFF6E504C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "simatic1500\ctrl\ix", "{DACF059E-657E-477C-ABB0-35FE9B3089B3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{DACF059E-657E-477C-ABB0-35FE9B3089B3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "simatic1500\ctrl", "{1473AFDF-BE11-4347-B686-B17358232DC6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "ctrl", "{1473AFDF-BE11-4347-B686-B17358232DC6}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "simatic1500", "{2F0E9866-DDAF-4D5E-A8C5-7344401C2851}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "template.axolibrary\app\ix", "{E22930E9-0EF1-40A1-B062-78C7AC0C7B44}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{E22930E9-0EF1-40A1-B062-78C7AC0C7B44}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "template.axolibrary\app", "{3E6DA2E9-58CA-4BC2-A588-629F2F87BD76}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{3E6DA2E9-58CA-4BC2-A588-629F2F87BD76}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname", "template.axolibrary\src\projname", "{D1256C28-53F2-48CA-BF80-0FB33D41A08B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname", "projname", "{D1256C28-53F2-48CA-BF80-0FB33D41A08B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "template.axolibrary\src", "{DE753DAC-B449-4735-9AAB-CE7961264289}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DE753DAC-B449-4735-9AAB-CE7961264289}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "template.axolibrary", "template.axolibrary", "{4AD4F5F9-CE2A-4CB6-89CF-F0B8EF35694F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "timers\app\ix", "{1FE73C02-8D8F-4BFB-8C45-E7D208DF97A8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{1FE73C02-8D8F-4BFB-8C45-E7D208DF97A8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "timers\app", "{1E9D7FBA-B35E-4CE5-A1CF-08A9140CFC0D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{1E9D7FBA-B35E-4CE5-A1CF-08A9140CFC0D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "timers\src\AXOpen.Timers", "{9D93A516-9741-46B6-B006-3C522F113F51}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "AXOpen.Timers", "{9D93A516-9741-46B6-B006-3C522F113F51}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "timers\src", "{9480650F-1D0A-43AE-B74B-6587174CBFEE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9480650F-1D0A-43AE-B74B-6587174CBFEE}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "timers", "{C966EB34-A837-4A85-82E3-A6B8BAF5A97F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "toolbox\src\AXOpen.ToolBox", "{ACE755F7-F5B6-4334-9E42-0D82B2E06BE2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "AXOpen.ToolBox", "{ACE755F7-F5B6-4334-9E42-0D82B2E06BE2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "toolbox\src", "{5D47BC40-4E38-41BE-B806-E675BE5FDCEA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5D47BC40-4E38-41BE-B806-E675BE5FDCEA}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "toolbox", "{24341E71-7E6F-4258-8A6A-EC4058792A46}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axo.docopy", "tools\src\axo.docopy", "{6DE34AE4-4981-4689-A08D-30ECA6486541}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axo.docopy", "axo.docopy", "{6DE34AE4-4981-4689-A08D-30ECA6486541}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axo.snippetify", "tools\src\axo.snippetify", "{75BA5238-462C-46F7-A65A-EB240D2E38A3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axo.snippetify", "axo.snippetify", "{75BA5238-462C-46F7-A65A-EB240D2E38A3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PlcSimAdvancedStarterTool", "tools\src\PlcSimAdvancedStarter\PlcSimAdvancedStarterTool", "{C49276F5-F184-4960-815E-52360B3CCA99}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PlcSimAdvancedStarterTool", "PlcSimAdvancedStarterTool", "{C49276F5-F184-4960-815E-52360B3CCA99}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PlcSimAdvancedStarter", "tools\src\PlcSimAdvancedStarter", "{D8D2EE3C-2C2B-451C-9466-F80400F9BDE7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PlcSimAdvancedStarter", "PlcSimAdvancedStarter", "{D8D2EE3C-2C2B-451C-9466-F80400F9BDE7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "tools\src", "{1637FBF2-036F-428C-8B24-0313446382CD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1637FBF2-036F-428C-8B24-0313446382CD}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{8B697110-B240-4A71-90CC-DB11B6274267}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "traversals\apax\ix", "{63B39974-2B97-46F4-A9FD-50CAE96B09DE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{63B39974-2B97-46F4-A9FD-50CAE96B09DE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "apax", "traversals\apax", "{905883C9-ACB6-4AEA-B9B1-443404CE92E9}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "apax", "apax", "{905883C9-ACB6-4AEA-B9B1-443404CE92E9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "traversals", "traversals", "{A01354E1-3E9C-407A-8EA5-2F75ADEACAEB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "utils\app\ix", "{2E85E29B-E4BD-4436-A18E-D973040BEDAC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "ix", "{2E85E29B-E4BD-4436-A18E-D973040BEDAC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "utils\app", "{5123E3A8-30C6-48DB-9DD3-0A89FC375DBD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{5123E3A8-30C6-48DB-9DD3-0A89FC375DBD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Utils", "utils\src\AXOpen.Utils", "{0887349B-711C-4830-8B4C-8D487255186F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Utils", "AXOpen.Utils", "{0887349B-711C-4830-8B4C-8D487255186F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "utils\src", "{B52AB241-968B-4C83-8447-77DBC3F6B8C2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B52AB241-968B-4C83-8447-77DBC3F6B8C2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Utils.Tests", "utils\tests\AXOpen.Utils.Tests", "{275AB074-60D6-4397-A04A-8845ABE3C97B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Utils.Tests", "AXOpen.Utils.Tests", "{275AB074-60D6-4397-A04A-8845ABE3C97B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "utils\tests", "{0D7B7752-F912-4EE5-82E1-F8DA72142DFB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0D7B7752-F912-4EE5-82E1-F8DA72142DFB}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "utils", "utils", "{BD4B4230-D593-45B4-9F85-13AE410EE485}" EndProject @@ -1367,18 +1367,10 @@ Global {8B6A64B4-E027-42FE-9E48-BA52518B03F2}.Debug|Any CPU.Build.0 = Debug|Any CPU {8B6A64B4-E027-42FE-9E48-BA52518B03F2}.Release|Any CPU.ActiveCfg = Release|Any CPU {8B6A64B4-E027-42FE-9E48-BA52518B03F2}.Release|Any CPU.Build.0 = Release|Any CPU - {DC91C483-99A6-4FF2-BA35-005D292A7E65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DC91C483-99A6-4FF2-BA35-005D292A7E65}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DC91C483-99A6-4FF2-BA35-005D292A7E65}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DC91C483-99A6-4FF2-BA35-005D292A7E65}.Release|Any CPU.Build.0 = Release|Any CPU {51616177-E7B5-4F81-BD81-1B293B014D18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {51616177-E7B5-4F81-BD81-1B293B014D18}.Debug|Any CPU.Build.0 = Debug|Any CPU {51616177-E7B5-4F81-BD81-1B293B014D18}.Release|Any CPU.ActiveCfg = Release|Any CPU {51616177-E7B5-4F81-BD81-1B293B014D18}.Release|Any CPU.Build.0 = Release|Any CPU - {0FDAA0DE-E0AB-4141-A716-71933455D319}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0FDAA0DE-E0AB-4141-A716-71933455D319}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0FDAA0DE-E0AB-4141-A716-71933455D319}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0FDAA0DE-E0AB-4141-A716-71933455D319}.Release|Any CPU.Build.0 = Release|Any CPU {DA8B5EDC-6CF0-4C18-AF24-A9910C5BF583}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DA8B5EDC-6CF0-4C18-AF24-A9910C5BF583}.Debug|Any CPU.Build.0 = Debug|Any CPU {DA8B5EDC-6CF0-4C18-AF24-A9910C5BF583}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -1425,385 +1417,383 @@ Global EndGlobalSection GlobalSection(NestedProjects) = preSolution {CDA29D58-7DD5-46C8-946C-CD4B04F5EB49} = {3672EC74-7D0A-4CBC-A735-77649E4EBDE0} + {E0563FDE-79D2-4EF5-A864-434830C27B79} = {CDAD218F-2812-4333-AFDC-63E58D670A2A} + {28A3561D-BB9A-46DB-BDB4-2108CBCC358E} = {66EE97D3-65C8-4A86-BF94-5DE154E1E1F0} + {F2BED7F5-D137-4B84-B98C-2D0B03D72228} = {B4734871-FA3B-4827-AE27-7F1BB1B0B814} + {3C1FDABD-913E-4609-BC73-5A075C7C60B7} = {51768138-393F-4AAD-99CF-DD094A6980FD} + {7EFE3542-EC18-4F9B-88D1-E95820F50BC7} = {7FA55C6F-0826-48A7-A7FE-7A01FD15311A} + {AEF071F5-6665-4D72-AF96-B3D9B5EF04F1} = {5155EF3F-7617-4F45-9F5F-7632D137AE32} + {BC6643C3-DC2C-4A5F-85CC-16A755976E9F} = {B81F381B-D2D9-4293-A9AA-091C05DB4AD7} + {650D8160-12D7-4A32-85FB-438EC404699E} = {793BDA16-C943-49E5-AA96-529DBB29B018} + {E306CB62-6A7A-4CEB-BB97-9074DC7F9F80} = {CD5EEF75-274C-4549-9AFF-FC70D32D6361} + {2EFE2BBA-6C92-4AC2-BE33-818A58FA6DA2} = {88D0997C-5CFF-413B-88EF-0363DB423F14} + {1AC7E9C7-BE56-4530-895B-A722A62A5F72} = {82F887F6-2271-48B0-B1FB-9388D738FBA1} + {C961A651-CF29-44C4-87E2-77747BEEEB16} = {1573CBF8-6276-4210-8F3F-0344093CD5D1} + {7F0E445D-97AC-4ED1-A50F-53C2366F7BE5} = {F1510D75-EEBE-456C-815B-DA7777032DC8} + {42114012-E72C-4CB8-8AA2-76793189F9BF} = {1FE94598-6925-44C8-A7F1-A5D50CE540D1} + {5C672578-E233-4420-A370-FE2F14A2BB61} = {847611D5-0645-44B7-BF97-53509B08E5E2} + {04D02979-2D12-4244-8529-DF270EEC1267} = {C029A1B3-3EC5-4FC1-9A2E-535766094E5A} + {0BF8BE33-B2B4-473B-B1C9-ED81583C3185} = {83F8E75D-341B-4A05-BDB2-05234033A087} + {BA176F2D-7603-4F11-B416-2053DBFD88C8} = {0B5866B0-67DC-4127-B49B-C8A42FE8BEFD} + {7088B664-681C-4BC0-AE26-BA9268DAC360} = {1C6F04F6-5187-418E-8F0C-04AC7F211A39} + {3FD0CC59-2505-4EB1-B5B6-BFD179A1FA36} = {E7D9C5DB-6063-4822-87BA-4723B22E5DAE} + {58B172B4-7D2B-4739-A9AD-F3B47D11C228} = {64C8C00A-8B58-4D19-A5FB-A44EAD18B405} + {EBED9625-389C-4415-84EE-B5556AF2274B} = {68A88F70-6D76-4749-8764-231007FF3AF6} + {8D2BE7B0-9D9C-4D05-95EC-D6C8C5E7722C} = {5659D3AF-C773-4F1C-9E6F-5ABC1B8C49AB} + {DCC9125B-B56F-4F45-8E80-1FA9F161EB89} = {E12D5B85-3F37-4F93-980F-90219A2676B2} + {76B32193-700C-4AA8-B254-4079C304D9BC} = {2248BDDB-719E-4485-A0D5-0FC31FE35E30} + {D1FFEDD9-D094-4DB7-A94D-0884A6BE6BEA} = {77B835B0-9CC3-4F83-902E-0169445CB3AB} + {057A6B07-B7AC-4E80-A9F5-A7BFE67E0946} = {778F8A92-8457-4634-9DBA-DE0F8744ED42} + {4027AA2A-1611-4D43-879B-87591F65767B} = {7E80B059-A178-4182-9D30-FDB142C0B5F1} + {249B5BCE-C862-4158-86FE-410C763CC6B9} = {A8B108BB-F3C7-48A2-8994-30DFD586C379} + {9F08E37F-4256-4FED-BA6F-B8D78B38D748} = {E205E9AF-1948-45CC-A645-9DB5D1A7CD46} + {358503A5-A351-4823-8776-F36A41A3F6D0} = {103F8A2A-D9DA-4900-AA9C-6DD4561B0821} + {FA02FF18-38EA-4F83-A846-4759D2546323} = {5EA1C536-B4D8-48E1-AD42-FEA7B3BAFB95} + {B5DADCD5-9296-4DD5-A619-F8E0009DD42D} = {07E68F6B-ED60-4221-8EFE-CDF8EBA85549} + {6F2AA352-AB31-4A6C-AFDD-D2EDA544B133} = {593C20EF-3E03-4DD6-9258-CD2162772C88} + {4BF6CD8B-BC30-42E8-AAE0-900CF9609107} = {75EEE906-BC14-4120-8425-D7C8C9B747AE} + {5C546758-D7C5-4BB5-A10C-35BF5C12D95C} = {FA17866C-D213-4CF7-BC91-03C3417FB000} + {3E2C2443-A883-4FE6-A9FD-FA3B221EDDD0} = {0FE5A9C9-BD18-438E-A974-2E52C08B6AEE} + {994B38FB-7DCB-4A18-91FC-407A8BD5F2F4} = {CD7745CA-DE04-45E3-9CE3-D7AC81722319} + {53829E4A-502E-42EF-B922-154DA0DF5512} = {8C0635D4-A19C-4F50-8CF9-4C6E18E84952} + {AC27B744-3045-4395-8B29-B991B4A9AC58} = {48E8CDEE-AEAE-4D23-92B9-1E0B98E009BF} + {B3896BCF-4516-450F-A6F5-98A2C434CA94} = {2100EE30-B5DE-43A4-99DD-AA19BE05E1F2} + {7EAB673D-DF01-4726-9DAA-295CBE775829} = {6B004667-1557-47CD-865C-90E6F07C9859} + {6D841BED-50DC-463B-8D73-1F10DB56EFB9} = {05EADF36-8F94-4892-902A-2B9F052D9FED} + {F522C723-DCFD-48A9-969C-62E19C5A8C9F} = {99EC9D4D-7D75-4CEA-9603-3CF4F8C4645E} + {2CB7168E-036F-4263-9601-CE5A7A58A10A} = {EA1FD1E2-1035-46B1-A3EA-FDA882CEA5CF} + {025E46E1-1A08-4BC5-BB07-351D7C97ED9F} = {9E1896B2-D852-4757-A1B2-A9A5AFD3F2BC} + {0214407B-B226-4EA2-826D-D9D332FCCD4A} = {59B94DBA-D79D-454D-B306-12A37C8BB8FB} + {CEC7C400-2C2F-4861-94D9-2E8FE86BB19D} = {2697F39C-6F58-4480-9054-D0810B45E2CC} + {FDFA84E9-282B-40E6-B415-99F0004043FD} = {BBEE204C-502B-422C-8E11-0986643B0292} + {40ED6D95-C484-4CDE-AC3F-441000DBAF0E} = {C56E13B9-2522-4ABC-B749-7D2CE0EC1082} + {7A9C55CB-8FA6-4BC0-9E46-BDE47344AA74} = {14077EF9-5D51-41A3-8D53-BA89EBD65D52} + {8743BD5F-8ED6-44F4-BBA2-806205F36532} = {6798CB03-56E7-4776-82D3-4545C7AA6C76} + {8AAF9309-A683-4E06-9C0D-2DE89B96E4C6} = {9D4291A0-87C2-41B2-8AF8-3348D953C9B3} + {91095877-3863-4577-A1E5-964B20902231} = {7F8AD7A9-BB92-4369-B951-08CDFFA531FB} + {D7FEBA90-E4B6-446D-9F7B-BE4ED5D2CAF8} = {2947D440-FFB8-44A6-AFCA-64B21FCDCC88} + {3DB0F010-DEE3-4B57-A9F9-BEF71123590F} = {2755887E-EAC0-4ACF-A8FD-2F1DE3AF6755} + {F874D0F1-646E-4416-B439-2CFE13F9E863} = {F269D0AF-12FB-4973-B0D4-8B82E71A612A} + {E1D055DE-E528-4F8B-8B1E-3C6F92BCB0B7} = {0370A4CC-2577-476B-BD82-1F539A703BCB} + {DF2D2FEE-2858-44CE-9F53-C5A6D9193614} = {4FD920E0-5969-4E7C-8C1E-8384D336068B} + {E4A5A2D0-1B53-4A63-9C90-1EBC0693F1EB} = {CBAD33FA-FF13-4EF1-AAC1-AE02F65460D3} + {95DB3A3E-E2C2-49E9-A4D3-E741D140E756} = {A5D8EB11-DE4F-4250-AB7C-67BF887C9F37} + {AA349EF9-CFDE-4F7D-9E82-737E889E3EF6} = {957466C2-B011-411B-9B75-0EB868304A3A} + {4820FBC4-FCE5-4A4B-94F0-EF6E00E4F19B} = {F534C1B9-0BA9-4FE2-89C6-EBDE1BCE1B2B} + {906677D4-5F23-4407-956F-07F825A81E83} = {E179A7F8-82B0-445C-BA79-788CD02D4325} + {CC5A446F-AF9E-45E2-80A1-441BF1E214C1} = {F31B1643-5474-4883-BE0C-83AD63CC1652} + {5FD0FA38-8A44-49E2-8C85-F40090FEF0E8} = {CA48E14E-C1EB-402A-9941-77725A5B3D61} + {ABA54334-B96F-468B-88A7-3422FA66B02D} = {A6855D43-89EF-42C0-B626-04E35E1994D2} + {B1A22978-7011-4C90-A286-1CEA55FE3F0F} = {4557B9D9-BA88-4794-A706-358942864425} + {125686B8-188C-40EC-89EE-67CA272CAEFC} = {21D0EC46-5949-4C1D-821B-F3263AAB5474} + {03A48E7E-222D-4115-81DC-A07FCA4C7BD1} = {0566BBD5-2F78-4733-AA60-0BE7C7C3396B} + {29F28F04-F0B2-48BE-92AF-2A465A7D39B2} = {6D9750BE-EA66-4DFB-BBFE-30D0EA0C1280} + {C5862F81-4F0F-4C4C-B3B1-A87F5017806F} = {4F07A792-E4A6-4174-B307-D0BCD9780369} + {B508B708-3D34-4B79-9ED2-755F5300F6F5} = {E68F61D8-3F93-4F55-AB7B-6A5B9D9D5702} + {10057E71-ACD8-42E5-9197-D17826A31DF4} = {0A0413A2-194E-43C4-993E-BD9C1DA50FA5} + {14B8C3BB-0D1E-4F5C-92AD-585ADA2B8144} = {485CF1F1-D2E8-4000-BECD-FA8D1193402A} + {9C507B43-7BB1-4C21-87BB-BF5633AD71CF} = {2182A888-88F4-44D1-8852-9DD88F433CB9} + {DA449B76-E305-4029-8792-DEB343324FA6} = {5FC05115-559C-4F4F-A215-26F7A5FCC893} + {74A8EDAE-2BD0-4CD1-8773-0D051C4B6F47} = {558B37A5-A903-4D19-9FC6-EC85F19875A4} + {3182EBCE-A0CB-4EDF-8F80-B55AA5CE5FAD} = {85E4ABDC-851A-483A-A4D6-B89649C0E06A} + {3B1F6B1C-B80E-4D4C-83CC-9D98246426B4} = {F1431E64-8771-4255-A0DC-F707A817D310} + {1CF91FFD-BC1D-4104-8614-B51F2B21F48B} = {DAB7059D-5C97-4567-B8EA-7776BE9083E0} + {C26D663B-9251-4429-8769-8F00ADB6539D} = {80A4319E-22F7-4066-9F99-DD7352B2086A} + {DC4CE4DC-E4AD-4074-A633-DDEBB56685BF} = {927FA031-AE0C-413D-86DD-B721FDD303DE} + {F229EF86-1AE4-4EF8-8142-E9C6E04E8ED5} = {CD1E5814-4204-405F-A6A4-D9699FA7A65F} + {9B0E6C9A-84A6-4AF9-9935-0AE48B2B404A} = {9272D534-EAFA-4118-A662-17E21424EEFC} + {BD02D45B-CE57-403C-8885-82D0AD3BA2DB} = {98C3AECA-03CB-4407-9284-B5E4C2403223} + {CBE9C46E-2E55-4867-8ED2-43C6C51CB0E7} = {A0EDDDD2-4698-42DE-8B20-FD36FB75D1CA} + {093C221F-AB12-4F4D-B2D2-A31E664D2EE6} = {C63BF261-7535-4F04-BF08-02EDAC2A1342} + {3CFF11C8-DF25-41E5-A920-6750A301EE5E} = {3DFA47C5-4FCE-47B7-B2E9-EED0464F4A5D} + {B51C6A2D-0FCA-4B56-A049-AF2003233A85} = {3A6BF106-352C-44F8-8023-347652562F8E} + {DE221331-AF6F-4538-8D94-AC5DD7B302C5} = {D57AAF72-9577-4110-9640-079C62D09D6B} + {AB433963-9698-43BE-BD59-E7972621E058} = {BE22EA3E-5064-4C06-82EF-9B014764058C} + {540664E7-76F5-4EDE-9F9F-B7DAADC59D2D} = {0B681A00-1B80-496F-9C49-EF482337B19F} + {F51BA0FE-A463-4731-92D6-67F53E43D024} = {26DA1FA9-81EF-4042-968D-F88338097834} + {1D927B7E-0A4F-491B-AC91-2490ECD4038F} = {85417C0B-889C-4277-97B2-B5DE14DDFA5E} + {9528C187-FB6F-4AFA-B54A-053517D84225} = {25AE4B94-B20D-4C58-94A2-DD5C76B64DC1} + {86D30FA3-1919-4BCB-8A11-A1540F17E0E0} = {E0739714-FAC4-488A-B3E6-446B61EB6854} + {F9849272-F507-4230-996D-4DBAB87FBF7F} = {28FAB662-FA38-4DBA-8909-DADC292CE1F3} + {20A9ACF1-45D3-461D-8D52-5DEE8C338ECA} = {AAE8DF8E-541F-47B0-AF30-781659D38B32} + {563799B9-CEC3-43C1-8F59-3236BFE1E72B} = {3F4693F5-3626-4D47-8180-0FC43E142C6B} + {053BB6DA-08CF-4201-BAEB-C96B296AC487} = {28ACEF5B-EBF2-490B-9819-50BCC4061711} + {F7FFD373-925F-459E-81F3-F8F26743D304} = {45A1C50B-AC86-4F55-8E4C-2C43370B491B} + {DAEE3A6C-29C3-4DF8-8DE8-C125E4FD6592} = {F88B2A1B-AED0-4ED4-A358-3B31F12CD0F4} + {5126F218-F98A-4032-97D1-C76AB1606421} = {CFC5E8BC-5FAF-47C9-A425-30506BA913D3} + {096D57FB-F8CA-4667-AF5A-B35E477A3864} = {13AE6F5A-316B-418C-8D8A-02944F6E9EA2} + {F50F5755-939F-466B-9DAD-DF308A860E18} = {BE24BA92-46EF-406C-9BC8-2F7BE1249DC8} + {7417F242-3F7C-4857-9F55-430744CBE235} = {1BDD1794-2F21-4D78-9B08-F5F7C5F5467E} + {C6D404AF-FED0-4192-9299-0C477A49CAAD} = {8E858A96-F071-4CAC-AA66-34B13DB55D6D} + {0D873BCA-604E-4F02-9248-B0C0D516C9F7} = {BE224617-780E-4ADE-9821-4F71DB5A4891} + {8D26BA95-158C-4578-BB36-7CDE20D0A891} = {2B55CDC7-6FF3-4383-8EC9-0763B86A1B72} + {6D2DF513-3B08-4526-9C01-255E2AA63042} = {EAB34165-4F37-4A83-BD58-04651D6574BF} + {81E69285-D466-48E4-B291-CE62141211BA} = {643EA840-BA89-4D09-B876-CEEEC8FF4465} + {D2A3CCD7-CD11-4AB3-ADD7-DECD5A0F0BB7} = {C4341F8D-20FB-4EDF-A136-C2CC18C079A5} + {177CC6E6-6B07-4472-8009-0288D6E38513} = {9AB1A4FC-8863-4A7D-9950-7C45EFA7E570} + {B8107316-2043-4560-89BD-D260F165CC2E} = {9851468D-BBA9-4FDD-A801-530E801E0DAA} + {13C7B3B7-18FB-401A-93C8-8145EC99BAFE} = {78E01C90-BE58-4BD9-A41D-6FF17138E5A6} + {ACF78F5D-AB24-4A14-81C5-B99668FCE757} = {C4AF9E17-4833-41ED-9734-AED1E53DA3BE} + {2F41DF3E-5089-4798-B120-9C0B19CD977A} = {5D827306-F94C-4942-AD8D-0FB6FA1505AA} + {65C95AB0-3EE2-42F5-A715-4A26091642D1} = {53DE6EC2-34DA-4193-84B5-37F1D33883CA} + {79B632BE-9402-4853-801F-A79BD483BCAF} = {1B652AD2-93BF-423E-98F2-CA91B8A4E4C5} + {FC58ECBA-B87C-4674-B976-8C661C9879E9} = {38175AD9-0E91-41C5-976B-02A43E967C3C} + {D37E9F26-3188-48B5-8EAD-E2440E620C6A} = {3B453C75-2B39-447B-BEE2-41BFAB0A0378} + {850B9585-524E-4A75-B02F-CA9880AF258C} = {104E5B2F-93C5-489A-9936-15CBE7C19AE6} + {ECF099C0-A48E-4DBA-8AA6-748249E4B4F1} = {7B6E4558-C259-4359-9E98-8BD28DA0FFCA} + {65B60E30-016C-464C-A429-1EBA67359806} = {318356A8-3862-4A32-98B0-17FE41647958} + {40E68FF4-41B0-4073-9D2B-36B6C4D6478A} = {61FA4356-9B32-4586-9F0E-4D4156A70481} + {B295A9EA-05CF-45A8-8898-E3CFCDA77AEF} = {5A334C4C-4BF9-4AE3-8110-7F6C29E03C96} + {D7D1909C-ECCE-426A-B5FA-E7FA942E9DF1} = {007B5930-E7BA-4FDC-B4FB-5DACB2B2A936} + {CB225FD9-C89F-47BA-AA24-F3ED16D5AED7} = {DACF059E-657E-477C-ABB0-35FE9B3089B3} + {8B6A64B4-E027-42FE-9E48-BA52518B03F2} = {E22930E9-0EF1-40A1-B062-78C7AC0C7B44} + {51616177-E7B5-4F81-BD81-1B293B014D18} = {D1256C28-53F2-48CA-BF80-0FB33D41A08B} + {DA8B5EDC-6CF0-4C18-AF24-A9910C5BF583} = {1FE73C02-8D8F-4BFB-8C45-E7D208DF97A8} + {0A9187AC-96B0-46D2-A2D7-271A533E0247} = {9D93A516-9741-46B6-B006-3C522F113F51} + {BC18D91C-87F2-457A-8ADD-0F262917A46E} = {ACE755F7-F5B6-4334-9E42-0D82B2E06BE2} + {DD782F55-2550-4B8E-AFDD-8ECC691606B0} = {6DE34AE4-4981-4689-A08D-30ECA6486541} + {46A0BB5E-9272-4BF3-A941-CA06750443A6} = {75BA5238-462C-46F7-A65A-EB240D2E38A3} + {477FF674-D8E1-4C4E-9730-00E70FE0BD91} = {C49276F5-F184-4960-815E-52360B3CCA99} + {01AF9E6F-4CFB-43B7-A694-51D99CB7FB5D} = {63B39974-2B97-46F4-A9FD-50CAE96B09DE} + {A0A07BBA-D3E1-40A5-AE34-0A008BDED136} = {2E85E29B-E4BD-4436-A18E-D973040BEDAC} + {93AFFD53-DCEA-426C-A82B-71CD555A1EA2} = {0887349B-711C-4830-8B4C-8D487255186F} + {DC944980-9F53-43D1-8C75-F54D83B36113} = {275AB074-60D6-4397-A04A-8845ABE3C97B} {3672EC74-7D0A-4CBC-A735-77649E4EBDE0} = {09E9DA59-4E09-481E-B46D-B74D730C3AC2} {09E9DA59-4E09-481E-B46D-B74D730C3AC2} = {59FA1F0A-918F-497C-AB7A-4873E2D4DBD3} - {E0563FDE-79D2-4EF5-A864-434830C27B79} = {CDAD218F-2812-4333-AFDC-63E58D670A2A} {CDAD218F-2812-4333-AFDC-63E58D670A2A} = {59FA1F0A-918F-497C-AB7A-4873E2D4DBD3} {59FA1F0A-918F-497C-AB7A-4873E2D4DBD3} = {A8BDE53F-9EAE-4136-B7E7-AE2945416720} - {28A3561D-BB9A-46DB-BDB4-2108CBCC358E} = {66EE97D3-65C8-4A86-BF94-5DE154E1E1F0} {66EE97D3-65C8-4A86-BF94-5DE154E1E1F0} = {B3631E27-5E1D-45F3-8442-9DFCCEDECC48} {B3631E27-5E1D-45F3-8442-9DFCCEDECC48} = {A8BDE53F-9EAE-4136-B7E7-AE2945416720} - {F2BED7F5-D137-4B84-B98C-2D0B03D72228} = {B4734871-FA3B-4827-AE27-7F1BB1B0B814} {B4734871-FA3B-4827-AE27-7F1BB1B0B814} = {DF2BE585-C8FE-4045-91B0-22BC78DCFA80} - {3C1FDABD-913E-4609-BC73-5A075C7C60B7} = {51768138-393F-4AAD-99CF-DD094A6980FD} {51768138-393F-4AAD-99CF-DD094A6980FD} = {DF2BE585-C8FE-4045-91B0-22BC78DCFA80} - {7EFE3542-EC18-4F9B-88D1-E95820F50BC7} = {7FA55C6F-0826-48A7-A7FE-7A01FD15311A} {7FA55C6F-0826-48A7-A7FE-7A01FD15311A} = {DF2BE585-C8FE-4045-91B0-22BC78DCFA80} {DF2BE585-C8FE-4045-91B0-22BC78DCFA80} = {20A5FDA0-3210-4F1C-A0BD-7A095220BAF3} - {AEF071F5-6665-4D72-AF96-B3D9B5EF04F1} = {5155EF3F-7617-4F45-9F5F-7632D137AE32} {5155EF3F-7617-4F45-9F5F-7632D137AE32} = {5F30E1DA-62D6-4335-8B2D-72AFCD17EF86} - {BC6643C3-DC2C-4A5F-85CC-16A755976E9F} = {B81F381B-D2D9-4293-A9AA-091C05DB4AD7} {B81F381B-D2D9-4293-A9AA-091C05DB4AD7} = {5F30E1DA-62D6-4335-8B2D-72AFCD17EF86} {5F30E1DA-62D6-4335-8B2D-72AFCD17EF86} = {20A5FDA0-3210-4F1C-A0BD-7A095220BAF3} - {650D8160-12D7-4A32-85FB-438EC404699E} = {793BDA16-C943-49E5-AA96-529DBB29B018} {793BDA16-C943-49E5-AA96-529DBB29B018} = {09D8E7D0-D036-4BB4-A662-29788938376C} - {E306CB62-6A7A-4CEB-BB97-9074DC7F9F80} = {CD5EEF75-274C-4549-9AFF-FC70D32D6361} {CD5EEF75-274C-4549-9AFF-FC70D32D6361} = {2348293D-E268-4964-90CD-9819FAE42446} - {2EFE2BBA-6C92-4AC2-BE33-818A58FA6DA2} = {88D0997C-5CFF-413B-88EF-0363DB423F14} {88D0997C-5CFF-413B-88EF-0363DB423F14} = {2348293D-E268-4964-90CD-9819FAE42446} {2348293D-E268-4964-90CD-9819FAE42446} = {5D85471A-5297-4267-890B-2DF505699DB4} - {1AC7E9C7-BE56-4530-895B-A722A62A5F72} = {82F887F6-2271-48B0-B1FB-9388D738FBA1} {82F887F6-2271-48B0-B1FB-9388D738FBA1} = {09BCBAE1-42E6-4C3B-8695-EA37735AC455} - {C961A651-CF29-44C4-87E2-77747BEEEB16} = {1573CBF8-6276-4210-8F3F-0344093CD5D1} {1573CBF8-6276-4210-8F3F-0344093CD5D1} = {09BCBAE1-42E6-4C3B-8695-EA37735AC455} {09BCBAE1-42E6-4C3B-8695-EA37735AC455} = {5D85471A-5297-4267-890B-2DF505699DB4} - {7F0E445D-97AC-4ED1-A50F-53C2366F7BE5} = {F1510D75-EEBE-456C-815B-DA7777032DC8} {F1510D75-EEBE-456C-815B-DA7777032DC8} = {2D40C504-8DAF-4EF2-9ED5-1E2013FDE8F8} {2D40C504-8DAF-4EF2-9ED5-1E2013FDE8F8} = {5D85471A-5297-4267-890B-2DF505699DB4} - {42114012-E72C-4CB8-8AA2-76793189F9BF} = {1FE94598-6925-44C8-A7F1-A5D50CE540D1} {1FE94598-6925-44C8-A7F1-A5D50CE540D1} = {A573465D-C950-4370-ADFC-FAFB7100DD7B} {A573465D-C950-4370-ADFC-FAFB7100DD7B} = {76A72D9D-D9B0-4B14-AF76-FB9187132CCB} - {5C672578-E233-4420-A370-FE2F14A2BB61} = {847611D5-0645-44B7-BF97-53509B08E5E2} {847611D5-0645-44B7-BF97-53509B08E5E2} = {76A72D9D-D9B0-4B14-AF76-FB9187132CCB} {76A72D9D-D9B0-4B14-AF76-FB9187132CCB} = {479EC0EC-7365-49C2-BFBD-865A9203CFFE} - {04D02979-2D12-4244-8529-DF270EEC1267} = {C029A1B3-3EC5-4FC1-9A2E-535766094E5A} {C029A1B3-3EC5-4FC1-9A2E-535766094E5A} = {75FBB8C5-2845-4D2F-9F09-A03CCE59A875} {75FBB8C5-2845-4D2F-9F09-A03CCE59A875} = {479EC0EC-7365-49C2-BFBD-865A9203CFFE} - {0BF8BE33-B2B4-473B-B1C9-ED81583C3185} = {83F8E75D-341B-4A05-BDB2-05234033A087} {83F8E75D-341B-4A05-BDB2-05234033A087} = {8653D805-12C7-419C-B13D-402D40C0C4B5} - {BA176F2D-7603-4F11-B416-2053DBFD88C8} = {0B5866B0-67DC-4127-B49B-C8A42FE8BEFD} {0B5866B0-67DC-4127-B49B-C8A42FE8BEFD} = {8653D805-12C7-419C-B13D-402D40C0C4B5} {8653D805-12C7-419C-B13D-402D40C0C4B5} = {A0356A12-333B-4C51-A18A-6DCCCF34C4EA} - {7088B664-681C-4BC0-AE26-BA9268DAC360} = {1C6F04F6-5187-418E-8F0C-04AC7F211A39} {1C6F04F6-5187-418E-8F0C-04AC7F211A39} = {DDF05035-E72D-4235-AEB6-1F6917CA36A7} - {3FD0CC59-2505-4EB1-B5B6-BFD179A1FA36} = {E7D9C5DB-6063-4822-87BA-4723B22E5DAE} {E7D9C5DB-6063-4822-87BA-4723B22E5DAE} = {DDF05035-E72D-4235-AEB6-1F6917CA36A7} {DDF05035-E72D-4235-AEB6-1F6917CA36A7} = {A0356A12-333B-4C51-A18A-6DCCCF34C4EA} - {58B172B4-7D2B-4739-A9AD-F3B47D11C228} = {64C8C00A-8B58-4D19-A5FB-A44EAD18B405} {64C8C00A-8B58-4D19-A5FB-A44EAD18B405} = {8505F1D9-8BC3-4D46-9CC7-7BBAB940703F} {8505F1D9-8BC3-4D46-9CC7-7BBAB940703F} = {A0356A12-333B-4C51-A18A-6DCCCF34C4EA} - {EBED9625-389C-4415-84EE-B5556AF2274B} = {68A88F70-6D76-4749-8764-231007FF3AF6} {68A88F70-6D76-4749-8764-231007FF3AF6} = {98F4D42F-556D-4688-BE32-D8072468C6BB} - {8D2BE7B0-9D9C-4D05-95EC-D6C8C5E7722C} = {5659D3AF-C773-4F1C-9E6F-5ABC1B8C49AB} {5659D3AF-C773-4F1C-9E6F-5ABC1B8C49AB} = {98F4D42F-556D-4688-BE32-D8072468C6BB} {98F4D42F-556D-4688-BE32-D8072468C6BB} = {B7E726CB-D3CD-4400-9C77-35A62A1D7BF2} - {DCC9125B-B56F-4F45-8E80-1FA9F161EB89} = {E12D5B85-3F37-4F93-980F-90219A2676B2} {E12D5B85-3F37-4F93-980F-90219A2676B2} = {D57BE2DD-C6E9-44A1-A208-D0D0AAF29333} - {76B32193-700C-4AA8-B254-4079C304D9BC} = {2248BDDB-719E-4485-A0D5-0FC31FE35E30} {2248BDDB-719E-4485-A0D5-0FC31FE35E30} = {D57BE2DD-C6E9-44A1-A208-D0D0AAF29333} {D57BE2DD-C6E9-44A1-A208-D0D0AAF29333} = {B7E726CB-D3CD-4400-9C77-35A62A1D7BF2} - {D1FFEDD9-D094-4DB7-A94D-0884A6BE6BEA} = {77B835B0-9CC3-4F83-902E-0169445CB3AB} {77B835B0-9CC3-4F83-902E-0169445CB3AB} = {C6B2F609-8A8F-42A7-BDE6-18446A241415} {C6B2F609-8A8F-42A7-BDE6-18446A241415} = {B7E726CB-D3CD-4400-9C77-35A62A1D7BF2} - {057A6B07-B7AC-4E80-A9F5-A7BFE67E0946} = {778F8A92-8457-4634-9DBA-DE0F8744ED42} {778F8A92-8457-4634-9DBA-DE0F8744ED42} = {6C00B688-9A9F-4C27-B43C-A6721C3841F5} - {4027AA2A-1611-4D43-879B-87591F65767B} = {7E80B059-A178-4182-9D30-FDB142C0B5F1} {7E80B059-A178-4182-9D30-FDB142C0B5F1} = {6C00B688-9A9F-4C27-B43C-A6721C3841F5} {6C00B688-9A9F-4C27-B43C-A6721C3841F5} = {9DBE8678-E833-49EF-A7FF-B3BA0ABDF25E} - {249B5BCE-C862-4158-86FE-410C763CC6B9} = {A8B108BB-F3C7-48A2-8994-30DFD586C379} {A8B108BB-F3C7-48A2-8994-30DFD586C379} = {AFEEC80D-E45B-428C-86FE-1BF6D4A9891B} - {9F08E37F-4256-4FED-BA6F-B8D78B38D748} = {E205E9AF-1948-45CC-A645-9DB5D1A7CD46} {E205E9AF-1948-45CC-A645-9DB5D1A7CD46} = {AFEEC80D-E45B-428C-86FE-1BF6D4A9891B} {AFEEC80D-E45B-428C-86FE-1BF6D4A9891B} = {9DBE8678-E833-49EF-A7FF-B3BA0ABDF25E} - {358503A5-A351-4823-8776-F36A41A3F6D0} = {103F8A2A-D9DA-4900-AA9C-6DD4561B0821} {103F8A2A-D9DA-4900-AA9C-6DD4561B0821} = {314BCF2F-9BA1-44AB-811C-68F4A110E26E} {314BCF2F-9BA1-44AB-811C-68F4A110E26E} = {9DBE8678-E833-49EF-A7FF-B3BA0ABDF25E} - {FA02FF18-38EA-4F83-A846-4759D2546323} = {5EA1C536-B4D8-48E1-AD42-FEA7B3BAFB95} {5EA1C536-B4D8-48E1-AD42-FEA7B3BAFB95} = {ECAD0B84-ADEB-4F68-9C54-463B8EDF7716} - {B5DADCD5-9296-4DD5-A619-F8E0009DD42D} = {07E68F6B-ED60-4221-8EFE-CDF8EBA85549} {07E68F6B-ED60-4221-8EFE-CDF8EBA85549} = {ECAD0B84-ADEB-4F68-9C54-463B8EDF7716} {ECAD0B84-ADEB-4F68-9C54-463B8EDF7716} = {AB2E78FF-1ADC-4EB2-BEC5-33727B50958D} - {6F2AA352-AB31-4A6C-AFDD-D2EDA544B133} = {593C20EF-3E03-4DD6-9258-CD2162772C88} {593C20EF-3E03-4DD6-9258-CD2162772C88} = {D13739D4-4A0C-4C07-8E62-63CB98B6238E} - {4BF6CD8B-BC30-42E8-AAE0-900CF9609107} = {75EEE906-BC14-4120-8425-D7C8C9B747AE} {75EEE906-BC14-4120-8425-D7C8C9B747AE} = {D13739D4-4A0C-4C07-8E62-63CB98B6238E} {D13739D4-4A0C-4C07-8E62-63CB98B6238E} = {AB2E78FF-1ADC-4EB2-BEC5-33727B50958D} - {5C546758-D7C5-4BB5-A10C-35BF5C12D95C} = {FA17866C-D213-4CF7-BC91-03C3417FB000} {FA17866C-D213-4CF7-BC91-03C3417FB000} = {94D1AECC-069C-4036-A671-BE45F683306B} {94D1AECC-069C-4036-A671-BE45F683306B} = {AB2E78FF-1ADC-4EB2-BEC5-33727B50958D} - {3E2C2443-A883-4FE6-A9FD-FA3B221EDDD0} = {0FE5A9C9-BD18-438E-A974-2E52C08B6AEE} {0FE5A9C9-BD18-438E-A974-2E52C08B6AEE} = {E2C0BF0D-83A3-46C2-8D4D-B45B27765880} {E2C0BF0D-83A3-46C2-8D4D-B45B27765880} = {04B5C892-111A-43AF-8FFF-A0D27FEAA5D3} - {994B38FB-7DCB-4A18-91FC-407A8BD5F2F4} = {CD7745CA-DE04-45E3-9CE3-D7AC81722319} {CD7745CA-DE04-45E3-9CE3-D7AC81722319} = {04B5C892-111A-43AF-8FFF-A0D27FEAA5D3} {04B5C892-111A-43AF-8FFF-A0D27FEAA5D3} = {CFFFF2E3-6540-4C20-BD50-B88805AC2E29} - {53829E4A-502E-42EF-B922-154DA0DF5512} = {8C0635D4-A19C-4F50-8CF9-4C6E18E84952} {8C0635D4-A19C-4F50-8CF9-4C6E18E84952} = {53A01F68-E2B0-4A61-B4B9-757276A33657} - {AC27B744-3045-4395-8B29-B991B4A9AC58} = {48E8CDEE-AEAE-4D23-92B9-1E0B98E009BF} {48E8CDEE-AEAE-4D23-92B9-1E0B98E009BF} = {53A01F68-E2B0-4A61-B4B9-757276A33657} {53A01F68-E2B0-4A61-B4B9-757276A33657} = {CFFFF2E3-6540-4C20-BD50-B88805AC2E29} - {B3896BCF-4516-450F-A6F5-98A2C434CA94} = {2100EE30-B5DE-43A4-99DD-AA19BE05E1F2} {2100EE30-B5DE-43A4-99DD-AA19BE05E1F2} = {582DF7F3-F321-4492-AFD8-4452BBE03EDF} {582DF7F3-F321-4492-AFD8-4452BBE03EDF} = {CFFFF2E3-6540-4C20-BD50-B88805AC2E29} - {7EAB673D-DF01-4726-9DAA-295CBE775829} = {6B004667-1557-47CD-865C-90E6F07C9859} {6B004667-1557-47CD-865C-90E6F07C9859} = {570EEF28-E4AA-4DCE-9400-41633BBF4895} - {6D841BED-50DC-463B-8D73-1F10DB56EFB9} = {05EADF36-8F94-4892-902A-2B9F052D9FED} {05EADF36-8F94-4892-902A-2B9F052D9FED} = {570EEF28-E4AA-4DCE-9400-41633BBF4895} {570EEF28-E4AA-4DCE-9400-41633BBF4895} = {1B45C35A-E2C7-4928-B974-DD6A0F22CFC9} - {F522C723-DCFD-48A9-969C-62E19C5A8C9F} = {99EC9D4D-7D75-4CEA-9603-3CF4F8C4645E} {99EC9D4D-7D75-4CEA-9603-3CF4F8C4645E} = {B6674744-371D-4750-A3FB-CDDDBE498149} - {2CB7168E-036F-4263-9601-CE5A7A58A10A} = {EA1FD1E2-1035-46B1-A3EA-FDA882CEA5CF} {EA1FD1E2-1035-46B1-A3EA-FDA882CEA5CF} = {B6674744-371D-4750-A3FB-CDDDBE498149} {B6674744-371D-4750-A3FB-CDDDBE498149} = {1B45C35A-E2C7-4928-B974-DD6A0F22CFC9} - {025E46E1-1A08-4BC5-BB07-351D7C97ED9F} = {9E1896B2-D852-4757-A1B2-A9A5AFD3F2BC} {9E1896B2-D852-4757-A1B2-A9A5AFD3F2BC} = {C68ADC83-5D42-429E-AD8E-1CAF8E7F3298} {C68ADC83-5D42-429E-AD8E-1CAF8E7F3298} = {1B45C35A-E2C7-4928-B974-DD6A0F22CFC9} - {0214407B-B226-4EA2-826D-D9D332FCCD4A} = {59B94DBA-D79D-454D-B306-12A37C8BB8FB} {59B94DBA-D79D-454D-B306-12A37C8BB8FB} = {2A8EC97B-5683-4B33-B716-C30484459CC0} - {CEC7C400-2C2F-4861-94D9-2E8FE86BB19D} = {2697F39C-6F58-4480-9054-D0810B45E2CC} {2697F39C-6F58-4480-9054-D0810B45E2CC} = {2A8EC97B-5683-4B33-B716-C30484459CC0} {2A8EC97B-5683-4B33-B716-C30484459CC0} = {6F23688F-C045-4D16-836C-5FEA69900DAC} - {FDFA84E9-282B-40E6-B415-99F0004043FD} = {BBEE204C-502B-422C-8E11-0986643B0292} {BBEE204C-502B-422C-8E11-0986643B0292} = {AF7B01BB-5E2A-43BE-BD02-C586A2499BA4} - {40ED6D95-C484-4CDE-AC3F-441000DBAF0E} = {C56E13B9-2522-4ABC-B749-7D2CE0EC1082} {C56E13B9-2522-4ABC-B749-7D2CE0EC1082} = {AF7B01BB-5E2A-43BE-BD02-C586A2499BA4} {AF7B01BB-5E2A-43BE-BD02-C586A2499BA4} = {6F23688F-C045-4D16-836C-5FEA69900DAC} - {7A9C55CB-8FA6-4BC0-9E46-BDE47344AA74} = {14077EF9-5D51-41A3-8D53-BA89EBD65D52} {14077EF9-5D51-41A3-8D53-BA89EBD65D52} = {6A1BF4A4-6A80-4C2E-8E9D-40E9263E0243} {6A1BF4A4-6A80-4C2E-8E9D-40E9263E0243} = {6F23688F-C045-4D16-836C-5FEA69900DAC} - {8743BD5F-8ED6-44F4-BBA2-806205F36532} = {6798CB03-56E7-4776-82D3-4545C7AA6C76} {6798CB03-56E7-4776-82D3-4545C7AA6C76} = {6DAFE068-C050-4D02-A1F6-E7836B78863E} - {8AAF9309-A683-4E06-9C0D-2DE89B96E4C6} = {9D4291A0-87C2-41B2-8AF8-3348D953C9B3} {9D4291A0-87C2-41B2-8AF8-3348D953C9B3} = {6DAFE068-C050-4D02-A1F6-E7836B78863E} {6DAFE068-C050-4D02-A1F6-E7836B78863E} = {7C7BC67B-380A-43DB-8591-CB2B44D4C7E0} - {91095877-3863-4577-A1E5-964B20902231} = {7F8AD7A9-BB92-4369-B951-08CDFFA531FB} {7F8AD7A9-BB92-4369-B951-08CDFFA531FB} = {C12556B3-D031-4DFD-96AC-69706422002E} - {D7FEBA90-E4B6-446D-9F7B-BE4ED5D2CAF8} = {2947D440-FFB8-44A6-AFCA-64B21FCDCC88} {2947D440-FFB8-44A6-AFCA-64B21FCDCC88} = {C12556B3-D031-4DFD-96AC-69706422002E} {C12556B3-D031-4DFD-96AC-69706422002E} = {7C7BC67B-380A-43DB-8591-CB2B44D4C7E0} - {3DB0F010-DEE3-4B57-A9F9-BEF71123590F} = {2755887E-EAC0-4ACF-A8FD-2F1DE3AF6755} {2755887E-EAC0-4ACF-A8FD-2F1DE3AF6755} = {F1059FE7-1F99-4126-845A-52761F5B9661} {F1059FE7-1F99-4126-845A-52761F5B9661} = {7C7BC67B-380A-43DB-8591-CB2B44D4C7E0} - {F874D0F1-646E-4416-B439-2CFE13F9E863} = {F269D0AF-12FB-4973-B0D4-8B82E71A612A} {F269D0AF-12FB-4973-B0D4-8B82E71A612A} = {A085A8FD-C075-46D3-A636-7BED6FBD78C4} {A085A8FD-C075-46D3-A636-7BED6FBD78C4} = {5ACC850B-9DF0-446F-8A7B-A6AAC0244E5F} - {E1D055DE-E528-4F8B-8B1E-3C6F92BCB0B7} = {0370A4CC-2577-476B-BD82-1F539A703BCB} {0370A4CC-2577-476B-BD82-1F539A703BCB} = {5ACC850B-9DF0-446F-8A7B-A6AAC0244E5F} {5ACC850B-9DF0-446F-8A7B-A6AAC0244E5F} = {76052BB9-3C02-430D-A673-D144A651738D} - {DF2D2FEE-2858-44CE-9F53-C5A6D9193614} = {4FD920E0-5969-4E7C-8C1E-8384D336068B} {4FD920E0-5969-4E7C-8C1E-8384D336068B} = {BDC05B39-FFA4-4D1F-B1BB-FB566DE6ADDE} - {E4A5A2D0-1B53-4A63-9C90-1EBC0693F1EB} = {CBAD33FA-FF13-4EF1-AAC1-AE02F65460D3} {CBAD33FA-FF13-4EF1-AAC1-AE02F65460D3} = {BDC05B39-FFA4-4D1F-B1BB-FB566DE6ADDE} {BDC05B39-FFA4-4D1F-B1BB-FB566DE6ADDE} = {76052BB9-3C02-430D-A673-D144A651738D} - {95DB3A3E-E2C2-49E9-A4D3-E741D140E756} = {A5D8EB11-DE4F-4250-AB7C-67BF887C9F37} {A5D8EB11-DE4F-4250-AB7C-67BF887C9F37} = {4278218E-9972-42AD-973B-4D320865141A} {4278218E-9972-42AD-973B-4D320865141A} = {76052BB9-3C02-430D-A673-D144A651738D} - {AA349EF9-CFDE-4F7D-9E82-737E889E3EF6} = {957466C2-B011-411B-9B75-0EB868304A3A} {957466C2-B011-411B-9B75-0EB868304A3A} = {3A731815-7F1B-43B3-94B0-B9D4B7783BE3} - {4820FBC4-FCE5-4A4B-94F0-EF6E00E4F19B} = {F534C1B9-0BA9-4FE2-89C6-EBDE1BCE1B2B} {F534C1B9-0BA9-4FE2-89C6-EBDE1BCE1B2B} = {3A731815-7F1B-43B3-94B0-B9D4B7783BE3} {3A731815-7F1B-43B3-94B0-B9D4B7783BE3} = {C4308B88-2B7A-4F12-8679-0C2A6FBA7530} - {906677D4-5F23-4407-956F-07F825A81E83} = {E179A7F8-82B0-445C-BA79-788CD02D4325} {E179A7F8-82B0-445C-BA79-788CD02D4325} = {9D897371-ECDE-4128-830B-18FAC0689007} - {CC5A446F-AF9E-45E2-80A1-441BF1E214C1} = {F31B1643-5474-4883-BE0C-83AD63CC1652} {F31B1643-5474-4883-BE0C-83AD63CC1652} = {9D897371-ECDE-4128-830B-18FAC0689007} {9D897371-ECDE-4128-830B-18FAC0689007} = {C4308B88-2B7A-4F12-8679-0C2A6FBA7530} - {5FD0FA38-8A44-49E2-8C85-F40090FEF0E8} = {CA48E14E-C1EB-402A-9941-77725A5B3D61} {CA48E14E-C1EB-402A-9941-77725A5B3D61} = {A35084B9-A5BB-4381-ADC6-A03A223E4B17} {A35084B9-A5BB-4381-ADC6-A03A223E4B17} = {C4308B88-2B7A-4F12-8679-0C2A6FBA7530} - {ABA54334-B96F-468B-88A7-3422FA66B02D} = {A6855D43-89EF-42C0-B626-04E35E1994D2} {A6855D43-89EF-42C0-B626-04E35E1994D2} = {EF80104E-F4B2-4EBD-947C-F422615F0FBD} - {B1A22978-7011-4C90-A286-1CEA55FE3F0F} = {4557B9D9-BA88-4794-A706-358942864425} {4557B9D9-BA88-4794-A706-358942864425} = {EF80104E-F4B2-4EBD-947C-F422615F0FBD} {EF80104E-F4B2-4EBD-947C-F422615F0FBD} = {BA03954C-D8D2-4A8B-A0E5-A060694D3B83} - {125686B8-188C-40EC-89EE-67CA272CAEFC} = {21D0EC46-5949-4C1D-821B-F3263AAB5474} {21D0EC46-5949-4C1D-821B-F3263AAB5474} = {73ACF870-C0F3-430D-8875-018293E3FA10} - {03A48E7E-222D-4115-81DC-A07FCA4C7BD1} = {0566BBD5-2F78-4733-AA60-0BE7C7C3396B} {0566BBD5-2F78-4733-AA60-0BE7C7C3396B} = {73ACF870-C0F3-430D-8875-018293E3FA10} {73ACF870-C0F3-430D-8875-018293E3FA10} = {BA03954C-D8D2-4A8B-A0E5-A060694D3B83} - {29F28F04-F0B2-48BE-92AF-2A465A7D39B2} = {6D9750BE-EA66-4DFB-BBFE-30D0EA0C1280} {6D9750BE-EA66-4DFB-BBFE-30D0EA0C1280} = {5525EC51-D122-4635-A9C5-83DB9497BBE0} {5525EC51-D122-4635-A9C5-83DB9497BBE0} = {BA03954C-D8D2-4A8B-A0E5-A060694D3B83} - {C5862F81-4F0F-4C4C-B3B1-A87F5017806F} = {4F07A792-E4A6-4174-B307-D0BCD9780369} {4F07A792-E4A6-4174-B307-D0BCD9780369} = {8AAD1951-C33B-4333-B561-25AA11EC23E5} - {B508B708-3D34-4B79-9ED2-755F5300F6F5} = {E68F61D8-3F93-4F55-AB7B-6A5B9D9D5702} {E68F61D8-3F93-4F55-AB7B-6A5B9D9D5702} = {8AAD1951-C33B-4333-B561-25AA11EC23E5} {8AAD1951-C33B-4333-B561-25AA11EC23E5} = {C6CC72AC-D77F-4D6B-BA70-5B83D5F3EED3} - {10057E71-ACD8-42E5-9197-D17826A31DF4} = {0A0413A2-194E-43C4-993E-BD9C1DA50FA5} {0A0413A2-194E-43C4-993E-BD9C1DA50FA5} = {6C4FB129-DD8B-49B9-A388-064AC3ED7EAB} - {14B8C3BB-0D1E-4F5C-92AD-585ADA2B8144} = {485CF1F1-D2E8-4000-BECD-FA8D1193402A} {485CF1F1-D2E8-4000-BECD-FA8D1193402A} = {6C4FB129-DD8B-49B9-A388-064AC3ED7EAB} {6C4FB129-DD8B-49B9-A388-064AC3ED7EAB} = {C6CC72AC-D77F-4D6B-BA70-5B83D5F3EED3} - {9C507B43-7BB1-4C21-87BB-BF5633AD71CF} = {2182A888-88F4-44D1-8852-9DD88F433CB9} {2182A888-88F4-44D1-8852-9DD88F433CB9} = {447EEB34-3355-4C91-8517-4ED0EC470A10} {447EEB34-3355-4C91-8517-4ED0EC470A10} = {C6CC72AC-D77F-4D6B-BA70-5B83D5F3EED3} - {DA449B76-E305-4029-8792-DEB343324FA6} = {5FC05115-559C-4F4F-A215-26F7A5FCC893} {5FC05115-559C-4F4F-A215-26F7A5FCC893} = {63B97BEF-1E2E-47AA-A101-936A079F6F3B} - {74A8EDAE-2BD0-4CD1-8773-0D051C4B6F47} = {558B37A5-A903-4D19-9FC6-EC85F19875A4} {558B37A5-A903-4D19-9FC6-EC85F19875A4} = {63B97BEF-1E2E-47AA-A101-936A079F6F3B} {63B97BEF-1E2E-47AA-A101-936A079F6F3B} = {8652A01C-32A8-425C-AB2E-37AC4CAAFF42} - {3182EBCE-A0CB-4EDF-8F80-B55AA5CE5FAD} = {85E4ABDC-851A-483A-A4D6-B89649C0E06A} {85E4ABDC-851A-483A-A4D6-B89649C0E06A} = {DE7C5710-95D0-47AA-9BD1-DADF9EB2B668} - {3B1F6B1C-B80E-4D4C-83CC-9D98246426B4} = {F1431E64-8771-4255-A0DC-F707A817D310} {F1431E64-8771-4255-A0DC-F707A817D310} = {DE7C5710-95D0-47AA-9BD1-DADF9EB2B668} {DE7C5710-95D0-47AA-9BD1-DADF9EB2B668} = {8652A01C-32A8-425C-AB2E-37AC4CAAFF42} - {1CF91FFD-BC1D-4104-8614-B51F2B21F48B} = {DAB7059D-5C97-4567-B8EA-7776BE9083E0} {DAB7059D-5C97-4567-B8EA-7776BE9083E0} = {A5BBA869-66F0-4B34-9F21-77F42AAE1EE2} {A5BBA869-66F0-4B34-9F21-77F42AAE1EE2} = {8652A01C-32A8-425C-AB2E-37AC4CAAFF42} - {C26D663B-9251-4429-8769-8F00ADB6539D} = {80A4319E-22F7-4066-9F99-DD7352B2086A} {80A4319E-22F7-4066-9F99-DD7352B2086A} = {D9F6361D-5567-44C2-9F96-D12A6141B7A6} - {DC4CE4DC-E4AD-4074-A633-DDEBB56685BF} = {927FA031-AE0C-413D-86DD-B721FDD303DE} {927FA031-AE0C-413D-86DD-B721FDD303DE} = {D9F6361D-5567-44C2-9F96-D12A6141B7A6} {D9F6361D-5567-44C2-9F96-D12A6141B7A6} = {AE7E0AED-8A21-4AAE-9E78-AE67CF2F245B} - {F229EF86-1AE4-4EF8-8142-E9C6E04E8ED5} = {CD1E5814-4204-405F-A6A4-D9699FA7A65F} {CD1E5814-4204-405F-A6A4-D9699FA7A65F} = {6804C9ED-EFDC-41B0-BE0C-16ABFF23C6A8} - {9B0E6C9A-84A6-4AF9-9935-0AE48B2B404A} = {9272D534-EAFA-4118-A662-17E21424EEFC} {9272D534-EAFA-4118-A662-17E21424EEFC} = {6804C9ED-EFDC-41B0-BE0C-16ABFF23C6A8} {6804C9ED-EFDC-41B0-BE0C-16ABFF23C6A8} = {AE7E0AED-8A21-4AAE-9E78-AE67CF2F245B} - {BD02D45B-CE57-403C-8885-82D0AD3BA2DB} = {98C3AECA-03CB-4407-9284-B5E4C2403223} {98C3AECA-03CB-4407-9284-B5E4C2403223} = {C861C81E-923E-4E5C-A185-8783B1ABAD52} {C861C81E-923E-4E5C-A185-8783B1ABAD52} = {AE7E0AED-8A21-4AAE-9E78-AE67CF2F245B} - {CBE9C46E-2E55-4867-8ED2-43C6C51CB0E7} = {A0EDDDD2-4698-42DE-8B20-FD36FB75D1CA} {A0EDDDD2-4698-42DE-8B20-FD36FB75D1CA} = {9D466A00-771D-4211-AB02-8F06C5D665E0} {9D466A00-771D-4211-AB02-8F06C5D665E0} = {93F5E940-7BDA-4FEA-AF8A-094261AE59FF} - {093C221F-AB12-4F4D-B2D2-A31E664D2EE6} = {C63BF261-7535-4F04-BF08-02EDAC2A1342} {C63BF261-7535-4F04-BF08-02EDAC2A1342} = {93F5E940-7BDA-4FEA-AF8A-094261AE59FF} {93F5E940-7BDA-4FEA-AF8A-094261AE59FF} = {EA4E3840-62E0-482E-BF4B-BAA74236FDDF} - {3CFF11C8-DF25-41E5-A920-6750A301EE5E} = {3DFA47C5-4FCE-47B7-B2E9-EED0464F4A5D} {3DFA47C5-4FCE-47B7-B2E9-EED0464F4A5D} = {A02A5201-6C2D-434E-93EF-47B4B00B043B} - {B51C6A2D-0FCA-4B56-A049-AF2003233A85} = {3A6BF106-352C-44F8-8023-347652562F8E} {3A6BF106-352C-44F8-8023-347652562F8E} = {A02A5201-6C2D-434E-93EF-47B4B00B043B} {A02A5201-6C2D-434E-93EF-47B4B00B043B} = {EA4E3840-62E0-482E-BF4B-BAA74236FDDF} - {DE221331-AF6F-4538-8D94-AC5DD7B302C5} = {D57AAF72-9577-4110-9640-079C62D09D6B} {D57AAF72-9577-4110-9640-079C62D09D6B} = {C172390F-2AFC-4EC9-9E42-169D069749F8} {C172390F-2AFC-4EC9-9E42-169D069749F8} = {EA4E3840-62E0-482E-BF4B-BAA74236FDDF} - {AB433963-9698-43BE-BD59-E7972621E058} = {BE22EA3E-5064-4C06-82EF-9B014764058C} {BE22EA3E-5064-4C06-82EF-9B014764058C} = {1182B62E-48E0-4978-B1CC-5F97944E7BD4} {1182B62E-48E0-4978-B1CC-5F97944E7BD4} = {A12B60AD-F5B9-44D0-B005-8DCF308C4086} - {540664E7-76F5-4EDE-9F9F-B7DAADC59D2D} = {0B681A00-1B80-496F-9C49-EF482337B19F} {0B681A00-1B80-496F-9C49-EF482337B19F} = {A12B60AD-F5B9-44D0-B005-8DCF308C4086} {A12B60AD-F5B9-44D0-B005-8DCF308C4086} = {77F14555-3A3C-4008-9A89-C93451A67519} - {F51BA0FE-A463-4731-92D6-67F53E43D024} = {26DA1FA9-81EF-4042-968D-F88338097834} {26DA1FA9-81EF-4042-968D-F88338097834} = {CAFB8D77-6F25-4B04-AA29-B256BB3CD064} - {1D927B7E-0A4F-491B-AC91-2490ECD4038F} = {85417C0B-889C-4277-97B2-B5DE14DDFA5E} {85417C0B-889C-4277-97B2-B5DE14DDFA5E} = {CAFB8D77-6F25-4B04-AA29-B256BB3CD064} - {9528C187-FB6F-4AFA-B54A-053517D84225} = {25AE4B94-B20D-4C58-94A2-DD5C76B64DC1} {25AE4B94-B20D-4C58-94A2-DD5C76B64DC1} = {B9823493-ABA6-4C53-83B0-09369C09B2FC} {B9823493-ABA6-4C53-83B0-09369C09B2FC} = {CAFB8D77-6F25-4B04-AA29-B256BB3CD064} - {86D30FA3-1919-4BCB-8A11-A1540F17E0E0} = {E0739714-FAC4-488A-B3E6-446B61EB6854} {E0739714-FAC4-488A-B3E6-446B61EB6854} = {825D14EC-EE8F-476C-86CC-CB56E03FD35C} - {F9849272-F507-4230-996D-4DBAB87FBF7F} = {28FAB662-FA38-4DBA-8909-DADC292CE1F3} {28FAB662-FA38-4DBA-8909-DADC292CE1F3} = {825D14EC-EE8F-476C-86CC-CB56E03FD35C} - {20A9ACF1-45D3-461D-8D52-5DEE8C338ECA} = {AAE8DF8E-541F-47B0-AF30-781659D38B32} {AAE8DF8E-541F-47B0-AF30-781659D38B32} = {825D14EC-EE8F-476C-86CC-CB56E03FD35C} - {563799B9-CEC3-43C1-8F59-3236BFE1E72B} = {3F4693F5-3626-4D47-8180-0FC43E142C6B} {3F4693F5-3626-4D47-8180-0FC43E142C6B} = {C79645E4-0C90-4E81-B63D-9F89246AB379} {C79645E4-0C90-4E81-B63D-9F89246AB379} = {825D14EC-EE8F-476C-86CC-CB56E03FD35C} {825D14EC-EE8F-476C-86CC-CB56E03FD35C} = {CAFB8D77-6F25-4B04-AA29-B256BB3CD064} {CAFB8D77-6F25-4B04-AA29-B256BB3CD064} = {77F14555-3A3C-4008-9A89-C93451A67519} - {053BB6DA-08CF-4201-BAEB-C96B296AC487} = {28ACEF5B-EBF2-490B-9819-50BCC4061711} {28ACEF5B-EBF2-490B-9819-50BCC4061711} = {BECC341A-A8F0-4005-B6CC-73BA56623AEE} - {F7FFD373-925F-459E-81F3-F8F26743D304} = {45A1C50B-AC86-4F55-8E4C-2C43370B491B} {45A1C50B-AC86-4F55-8E4C-2C43370B491B} = {BECC341A-A8F0-4005-B6CC-73BA56623AEE} - {DAEE3A6C-29C3-4DF8-8DE8-C125E4FD6592} = {F88B2A1B-AED0-4ED4-A358-3B31F12CD0F4} {F88B2A1B-AED0-4ED4-A358-3B31F12CD0F4} = {BECC341A-A8F0-4005-B6CC-73BA56623AEE} - {5126F218-F98A-4032-97D1-C76AB1606421} = {CFC5E8BC-5FAF-47C9-A425-30506BA913D3} {CFC5E8BC-5FAF-47C9-A425-30506BA913D3} = {BECC341A-A8F0-4005-B6CC-73BA56623AEE} {BECC341A-A8F0-4005-B6CC-73BA56623AEE} = {77F14555-3A3C-4008-9A89-C93451A67519} - {096D57FB-F8CA-4667-AF5A-B35E477A3864} = {13AE6F5A-316B-418C-8D8A-02944F6E9EA2} {13AE6F5A-316B-418C-8D8A-02944F6E9EA2} = {4F11F581-7157-41F3-8436-49C3AD4B2E49} {4F11F581-7157-41F3-8436-49C3AD4B2E49} = {803EABB2-ECD8-4FF1-9845-56715B8E5C12} - {F50F5755-939F-466B-9DAD-DF308A860E18} = {BE24BA92-46EF-406C-9BC8-2F7BE1249DC8} {BE24BA92-46EF-406C-9BC8-2F7BE1249DC8} = {803EABB2-ECD8-4FF1-9845-56715B8E5C12} {803EABB2-ECD8-4FF1-9845-56715B8E5C12} = {F297B76A-798A-47F3-857B-0B5D150E31D5} - {7417F242-3F7C-4857-9F55-430744CBE235} = {1BDD1794-2F21-4D78-9B08-F5F7C5F5467E} {1BDD1794-2F21-4D78-9B08-F5F7C5F5467E} = {275F9A46-7006-43C3-8204-8AC953A630DA} - {C6D404AF-FED0-4192-9299-0C477A49CAAD} = {8E858A96-F071-4CAC-AA66-34B13DB55D6D} {8E858A96-F071-4CAC-AA66-34B13DB55D6D} = {275F9A46-7006-43C3-8204-8AC953A630DA} {275F9A46-7006-43C3-8204-8AC953A630DA} = {F297B76A-798A-47F3-857B-0B5D150E31D5} - {0D873BCA-604E-4F02-9248-B0C0D516C9F7} = {BE224617-780E-4ADE-9821-4F71DB5A4891} {BE224617-780E-4ADE-9821-4F71DB5A4891} = {C1C39C13-C030-45AF-B07B-E55B85C5A699} {C1C39C13-C030-45AF-B07B-E55B85C5A699} = {F297B76A-798A-47F3-857B-0B5D150E31D5} - {8D26BA95-158C-4578-BB36-7CDE20D0A891} = {2B55CDC7-6FF3-4383-8EC9-0763B86A1B72} {2B55CDC7-6FF3-4383-8EC9-0763B86A1B72} = {F8FB9689-A97F-47BC-AC64-8E1CEEBEDA80} - {6D2DF513-3B08-4526-9C01-255E2AA63042} = {EAB34165-4F37-4A83-BD58-04651D6574BF} {EAB34165-4F37-4A83-BD58-04651D6574BF} = {F8FB9689-A97F-47BC-AC64-8E1CEEBEDA80} {F8FB9689-A97F-47BC-AC64-8E1CEEBEDA80} = {A5385B4F-6066-4E86-872C-143A0CFE434A} - {81E69285-D466-48E4-B291-CE62141211BA} = {643EA840-BA89-4D09-B876-CEEEC8FF4465} {643EA840-BA89-4D09-B876-CEEEC8FF4465} = {4A7B6C4B-E12E-4EE5-8419-EFDC89B84D51} - {D2A3CCD7-CD11-4AB3-ADD7-DECD5A0F0BB7} = {C4341F8D-20FB-4EDF-A136-C2CC18C079A5} {C4341F8D-20FB-4EDF-A136-C2CC18C079A5} = {4A7B6C4B-E12E-4EE5-8419-EFDC89B84D51} {4A7B6C4B-E12E-4EE5-8419-EFDC89B84D51} = {A5385B4F-6066-4E86-872C-143A0CFE434A} - {177CC6E6-6B07-4472-8009-0288D6E38513} = {9AB1A4FC-8863-4A7D-9950-7C45EFA7E570} {9AB1A4FC-8863-4A7D-9950-7C45EFA7E570} = {858B5463-D561-4520-8AE2-3083C0CFB36E} - {B8107316-2043-4560-89BD-D260F165CC2E} = {9851468D-BBA9-4FDD-A801-530E801E0DAA} {9851468D-BBA9-4FDD-A801-530E801E0DAA} = {858B5463-D561-4520-8AE2-3083C0CFB36E} {858B5463-D561-4520-8AE2-3083C0CFB36E} = {AD706706-DA32-4F68-BDDA-BE2D1C64581A} - {13C7B3B7-18FB-401A-93C8-8145EC99BAFE} = {78E01C90-BE58-4BD9-A41D-6FF17138E5A6} {78E01C90-BE58-4BD9-A41D-6FF17138E5A6} = {B0F37623-EFC4-4F09-B746-033831461C4D} - {ACF78F5D-AB24-4A14-81C5-B99668FCE757} = {C4AF9E17-4833-41ED-9734-AED1E53DA3BE} {C4AF9E17-4833-41ED-9734-AED1E53DA3BE} = {B0F37623-EFC4-4F09-B746-033831461C4D} {B0F37623-EFC4-4F09-B746-033831461C4D} = {AD706706-DA32-4F68-BDDA-BE2D1C64581A} - {2F41DF3E-5089-4798-B120-9C0B19CD977A} = {5D827306-F94C-4942-AD8D-0FB6FA1505AA} {5D827306-F94C-4942-AD8D-0FB6FA1505AA} = {245B4654-6CFE-4A77-AF0E-52209A7F3114} {245B4654-6CFE-4A77-AF0E-52209A7F3114} = {AD706706-DA32-4F68-BDDA-BE2D1C64581A} - {65C95AB0-3EE2-42F5-A715-4A26091642D1} = {53DE6EC2-34DA-4193-84B5-37F1D33883CA} {53DE6EC2-34DA-4193-84B5-37F1D33883CA} = {09ACA653-10D0-4BB3-B5E5-C5D18CA72197} {09ACA653-10D0-4BB3-B5E5-C5D18CA72197} = {4F7F7420-1545-4648-91E7-F9F85BFBC7DF} - {79B632BE-9402-4853-801F-A79BD483BCAF} = {1B652AD2-93BF-423E-98F2-CA91B8A4E4C5} {1B652AD2-93BF-423E-98F2-CA91B8A4E4C5} = {4F7F7420-1545-4648-91E7-F9F85BFBC7DF} {4F7F7420-1545-4648-91E7-F9F85BFBC7DF} = {D0805939-88D3-4B7E-A64D-235AF6E225B9} - {FC58ECBA-B87C-4674-B976-8C661C9879E9} = {38175AD9-0E91-41C5-976B-02A43E967C3C} {38175AD9-0E91-41C5-976B-02A43E967C3C} = {D3A47CCA-753E-4D09-AD69-60761979A96F} {D3A47CCA-753E-4D09-AD69-60761979A96F} = {D0805939-88D3-4B7E-A64D-235AF6E225B9} - {D37E9F26-3188-48B5-8EAD-E2440E620C6A} = {3B453C75-2B39-447B-BEE2-41BFAB0A0378} {3B453C75-2B39-447B-BEE2-41BFAB0A0378} = {7DDA4D2D-D912-4741-9055-8EF63C1F5041} {7DDA4D2D-D912-4741-9055-8EF63C1F5041} = {D0805939-88D3-4B7E-A64D-235AF6E225B9} - {850B9585-524E-4A75-B02F-CA9880AF258C} = {104E5B2F-93C5-489A-9936-15CBE7C19AE6} {104E5B2F-93C5-489A-9936-15CBE7C19AE6} = {8E81F508-5F1D-46C9-AB7D-081077078257} {8E81F508-5F1D-46C9-AB7D-081077078257} = {8597E8C1-E9A1-4DAA-A7F8-68686452FBA9} - {ECF099C0-A48E-4DBA-8AA6-748249E4B4F1} = {7B6E4558-C259-4359-9E98-8BD28DA0FFCA} {7B6E4558-C259-4359-9E98-8BD28DA0FFCA} = {C41FC5CF-3682-4524-A71C-9CF1AFA5A79B} {C41FC5CF-3682-4524-A71C-9CF1AFA5A79B} = {BD1B5192-3C3D-49CA-8840-C8B5A76B0ACF} - {65B60E30-016C-464C-A429-1EBA67359806} = {318356A8-3862-4A32-98B0-17FE41647958} {318356A8-3862-4A32-98B0-17FE41647958} = {3F98CD3D-672F-4A4D-9BAA-E082C65B0E52} - {40E68FF4-41B0-4073-9D2B-36B6C4D6478A} = {61FA4356-9B32-4586-9F0E-4D4156A70481} {61FA4356-9B32-4586-9F0E-4D4156A70481} = {3F98CD3D-672F-4A4D-9BAA-E082C65B0E52} {3F98CD3D-672F-4A4D-9BAA-E082C65B0E52} = {BD1B5192-3C3D-49CA-8840-C8B5A76B0ACF} - {B295A9EA-05CF-45A8-8898-E3CFCDA77AEF} = {5A334C4C-4BF9-4AE3-8110-7F6C29E03C96} {5A334C4C-4BF9-4AE3-8110-7F6C29E03C96} = {D93304DA-37F5-4AC9-A09C-980A3D344060} {D93304DA-37F5-4AC9-A09C-980A3D344060} = {BD1B5192-3C3D-49CA-8840-C8B5A76B0ACF} - {D7D1909C-ECCE-426A-B5FA-E7FA942E9DF1} = {007B5930-E7BA-4FDC-B4FB-5DACB2B2A936} {007B5930-E7BA-4FDC-B4FB-5DACB2B2A936} = {8E436C61-F4F5-41AE-8268-5AFCFF6E504C} {8E436C61-F4F5-41AE-8268-5AFCFF6E504C} = {2F0E9866-DDAF-4D5E-A8C5-7344401C2851} - {CB225FD9-C89F-47BA-AA24-F3ED16D5AED7} = {DACF059E-657E-477C-ABB0-35FE9B3089B3} {DACF059E-657E-477C-ABB0-35FE9B3089B3} = {1473AFDF-BE11-4347-B686-B17358232DC6} {1473AFDF-BE11-4347-B686-B17358232DC6} = {2F0E9866-DDAF-4D5E-A8C5-7344401C2851} - {8B6A64B4-E027-42FE-9E48-BA52518B03F2} = {E22930E9-0EF1-40A1-B062-78C7AC0C7B44} - {DC91C483-99A6-4FF2-BA35-005D292A7E65} = {E22930E9-0EF1-40A1-B062-78C7AC0C7B44} {E22930E9-0EF1-40A1-B062-78C7AC0C7B44} = {3E6DA2E9-58CA-4BC2-A588-629F2F87BD76} {3E6DA2E9-58CA-4BC2-A588-629F2F87BD76} = {4AD4F5F9-CE2A-4CB6-89CF-F0B8EF35694F} - {51616177-E7B5-4F81-BD81-1B293B014D18} = {D1256C28-53F2-48CA-BF80-0FB33D41A08B} - {0FDAA0DE-E0AB-4141-A716-71933455D319} = {D1256C28-53F2-48CA-BF80-0FB33D41A08B} {D1256C28-53F2-48CA-BF80-0FB33D41A08B} = {DE753DAC-B449-4735-9AAB-CE7961264289} {DE753DAC-B449-4735-9AAB-CE7961264289} = {4AD4F5F9-CE2A-4CB6-89CF-F0B8EF35694F} - {DA8B5EDC-6CF0-4C18-AF24-A9910C5BF583} = {1FE73C02-8D8F-4BFB-8C45-E7D208DF97A8} {1FE73C02-8D8F-4BFB-8C45-E7D208DF97A8} = {1E9D7FBA-B35E-4CE5-A1CF-08A9140CFC0D} {1E9D7FBA-B35E-4CE5-A1CF-08A9140CFC0D} = {C966EB34-A837-4A85-82E3-A6B8BAF5A97F} - {0A9187AC-96B0-46D2-A2D7-271A533E0247} = {9D93A516-9741-46B6-B006-3C522F113F51} {9D93A516-9741-46B6-B006-3C522F113F51} = {9480650F-1D0A-43AE-B74B-6587174CBFEE} {9480650F-1D0A-43AE-B74B-6587174CBFEE} = {C966EB34-A837-4A85-82E3-A6B8BAF5A97F} - {BC18D91C-87F2-457A-8ADD-0F262917A46E} = {ACE755F7-F5B6-4334-9E42-0D82B2E06BE2} {ACE755F7-F5B6-4334-9E42-0D82B2E06BE2} = {5D47BC40-4E38-41BE-B806-E675BE5FDCEA} {5D47BC40-4E38-41BE-B806-E675BE5FDCEA} = {24341E71-7E6F-4258-8A6A-EC4058792A46} - {DD782F55-2550-4B8E-AFDD-8ECC691606B0} = {6DE34AE4-4981-4689-A08D-30ECA6486541} {6DE34AE4-4981-4689-A08D-30ECA6486541} = {1637FBF2-036F-428C-8B24-0313446382CD} - {46A0BB5E-9272-4BF3-A941-CA06750443A6} = {75BA5238-462C-46F7-A65A-EB240D2E38A3} {75BA5238-462C-46F7-A65A-EB240D2E38A3} = {1637FBF2-036F-428C-8B24-0313446382CD} - {477FF674-D8E1-4C4E-9730-00E70FE0BD91} = {C49276F5-F184-4960-815E-52360B3CCA99} {C49276F5-F184-4960-815E-52360B3CCA99} = {D8D2EE3C-2C2B-451C-9466-F80400F9BDE7} {D8D2EE3C-2C2B-451C-9466-F80400F9BDE7} = {1637FBF2-036F-428C-8B24-0313446382CD} {1637FBF2-036F-428C-8B24-0313446382CD} = {8B697110-B240-4A71-90CC-DB11B6274267} - {01AF9E6F-4CFB-43B7-A694-51D99CB7FB5D} = {63B39974-2B97-46F4-A9FD-50CAE96B09DE} {63B39974-2B97-46F4-A9FD-50CAE96B09DE} = {905883C9-ACB6-4AEA-B9B1-443404CE92E9} {905883C9-ACB6-4AEA-B9B1-443404CE92E9} = {A01354E1-3E9C-407A-8EA5-2F75ADEACAEB} - {A0A07BBA-D3E1-40A5-AE34-0A008BDED136} = {2E85E29B-E4BD-4436-A18E-D973040BEDAC} {2E85E29B-E4BD-4436-A18E-D973040BEDAC} = {5123E3A8-30C6-48DB-9DD3-0A89FC375DBD} {5123E3A8-30C6-48DB-9DD3-0A89FC375DBD} = {BD4B4230-D593-45B4-9F85-13AE410EE485} - {93AFFD53-DCEA-426C-A82B-71CD555A1EA2} = {0887349B-711C-4830-8B4C-8D487255186F} {0887349B-711C-4830-8B4C-8D487255186F} = {B52AB241-968B-4C83-8447-77DBC3F6B8C2} {B52AB241-968B-4C83-8447-77DBC3F6B8C2} = {BD4B4230-D593-45B4-9F85-13AE410EE485} - {DC944980-9F53-43D1-8C75-F54D83B36113} = {275AB074-60D6-4397-A04A-8845ABE3C97B} {275AB074-60D6-4397-A04A-8845ABE3C97B} = {0D7B7752-F912-4EE5-82E1-F8DA72142DFB} {0D7B7752-F912-4EE5-82E1-F8DA72142DFB} = {BD4B4230-D593-45B4-9F85-13AE410EE485} EndGlobalSection diff --git a/src/abstractions/app/apax.yml b/src/abstractions/app/apax.yml index 3545ef612..b30d202f8 100644 --- a/src/abstractions/app/apax.yml +++ b/src/abstractions/app/apax.yml @@ -1,12 +1,12 @@ -name: "abstractions-app" +name: "abstractions-app" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Abstractions" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,144 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/abstractions/ctrl/apax.yml b/src/abstractions/ctrl/apax.yml index 33608c790..00728c53a 100644 --- a/src/abstractions/ctrl/apax.yml +++ b/src/abstractions/ctrl/apax.yml @@ -13,23 +13,30 @@ devDependencies: dependencies: "@inxton/ax.axopen.min": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb - + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/apax.yml b/src/apax.yml index 5eaa8d63d..92d87bfcd 100644 --- a/src/apax.yml +++ b/src/apax.yml @@ -6,4 +6,4 @@ type: workspace devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 diff --git a/src/ax.axopen.app/ctrl/apax.yml b/src/ax.axopen.app/ctrl/apax.yml index 1f182ba71..27fb670af 100644 --- a/src/ax.axopen.app/ctrl/apax.yml +++ b/src/ax.axopen.app/ctrl/apax.yml @@ -6,28 +6,37 @@ files: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: - "@ax/simatic-1500-clocks": 9.0.1 - "@ax/system-bitaccess": 9.0.12 - "@ax/system-math": 9.0.12 - "@ax/system-serde": 9.0.12 - "@ax/dcp-utility": 1.1.3 + "@ax/simatic-1500-clocks": 10.0.6 + "@ax/system-bitaccess": 10.0.24 + "@ax/system-math": 10.0.24 + "@ax/system-serde": 10.0.24 + "@ax/dcp-utility": 1.2.0 "@ax/hardware-diagnostics": 0.3.0 + "@ax/simatic-1500-tasks": 10.0.1 installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" diff --git a/src/ax.axopen.hwlibrary/ctrl/apax.yml b/src/ax.axopen.hwlibrary/ctrl/apax.yml index 9ced2de54..98d31a828 100644 --- a/src/ax.axopen.hwlibrary/ctrl/apax.yml +++ b/src/ax.axopen.hwlibrary/ctrl/apax.yml @@ -6,29 +6,39 @@ files: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: "@inxton/ax.axopen.min": '0.0.0-dev.0' - "@ax/simatic-1500-distributedio": 9.0.3 - "@ax/simatic-1500-diagnostics-hardware": 9.0.0 - "@ax/simatic-1500-clocks": 9.0.1 - "@ax/system-timer": 9.0.12 - "@ax/system-serde": 9.0.12 - "@ax/system-bitaccess": 9.0.12 + "@ax/simatic-1500-distributedio": 10.0.1 + "@ax/simatic-1500-diagnostics-hardware": 10.0.0 + "@ax/simatic-1500-clocks": 10.0.6 + "@ax/system-timer": 10.0.24 + "@ax/system-serde": 10.0.24 + "@ax/system-bitaccess": 10.0.24 + "@ax/simatic-1500-memoryaccess": 5.0.5 + "@ax/simatic-1500-hardware-utilities": 5.0.5 installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" diff --git a/src/ax.axopen.min/ctrl/apax.yml b/src/ax.axopen.min/ctrl/apax.yml index 0d9889bee..341750654 100644 --- a/src/ax.axopen.min/ctrl/apax.yml +++ b/src/ax.axopen.min/ctrl/apax.yml @@ -6,23 +6,31 @@ files: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: - "@ax/system-strings": 9.0.12 + "@ax/system-strings": 10.0.24 installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" diff --git a/src/ax.catalog/apax.yml b/src/ax.catalog/apax.yml index 7f69fb971..594592f19 100644 --- a/src/ax.catalog/apax.yml +++ b/src/ax.catalog/apax.yml @@ -1,73 +1,78 @@ name: "@inxton/ax.catalog" -version: '0.0.9' +version: '0.0.28' registries: "@inxton": "https://npm.pkg.github.com/" type: catalog keywords: - "catalog" catalogDependencies: - "@ax/apax-build": 2.0.20 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2.0.20 - "@ax/axunit-mocking": 7.1.6 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 7.0.11 - "@ax/axunitst": 7.1.6 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 7.0.11 - "@ax/axunitst-library": 7.1.6 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 7.0.11 - "@ax/axunitst-ls-contrib": 7.1.6 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 7.0.11 - "@ax/build-native": 16.0.3 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 16.0.3 - "@ax/certificate-management": 1.1.3 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 1.1.3 - "@ax/dcp-utility": 1.1.3 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 1.1.3 - "@ax/diagnostic-buffer": 1.3.2 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 1.3.2 - "@ax/hardware-diagnostics": 0.3.0 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 0.3.0 - "@ax/hw-s7-1500": 2.1.0 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2.0.65 - "@ax/hwc": 2.1.0 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2.0.65 - "@ax/hwld": 2.1.0 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2.0.20 - "@ax/mod": 1.6.5 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 1.6.5 - "@ax/mon": 1.6.5 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 1.6.5 - "@ax/opcua-server-config": 2.0.0 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2.0.0 - "@ax/performance-info": 1.1.2 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 1.1.2 - "@ax/plc-info": 3.0.0 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 3.0.0 - "@ax/sdb": 1.6.5 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 1.6.5 - "@ax/simatic-1500": 8.0.3 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.3 - "@ax/simatic-1500-alarming": 3.0.3 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 3.0.3 - "@ax/simatic-1500-clocks": 9.0.1 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.1 - "@ax/simatic-1500-communication": 9.0.0 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.0 - "@ax/simatic-1500-crypto": 2.0.7 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2.0.7 - "@ax/simatic-1500-diagnostics": 3.0.3 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 3.0.3 - "@ax/simatic-1500-diagnostics-hardware": 9.0.0 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.0 - "@ax/simatic-1500-distributedio": 9.0.3 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.3 - "@ax/simatic-1500-fileaccess": 8.0.1 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.1 - "@ax/simatic-1500-hardware-utilities": 4.0.7 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 4.0.7 - "@ax/simatic-1500-memoryaccess": 4.0.7 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 4.0.7 - "@ax/simatic-1500-motioncontrol-native-v5": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-native-v6": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-native-v7": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-native-v8": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-native-v9": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-v7": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-v7-mocking": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-v8": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-v8-mocking": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-v9": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-motioncontrol-v9-mocking": 8.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 8.0.11 - "@ax/simatic-1500-processimage": 9.0.1 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.1 - "@ax/simatic-1500-tasks": 9.0.3 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.3 - "@ax/simatic-package-tool": 2.0.11 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2.0.11 - "@ax/simatic-pragma-stc-plugin": 5.0.8 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 5.0.8 - "@ax/sld": 3.1.3 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 3.1.2 - "@ax/st-ls": 9.0.72 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.72 - "@ax/st-resources.stc-plugin": 2.0.10 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2.0.10 - "@ax/stc": 9.0.72 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.72 - "@ax/system": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-bitaccess": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-conversion": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-counters": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-datetime": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-edgedetection": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-fastmath": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-math": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-selection": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-serde": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-strings": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/system-timer": 9.0.12 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.12 - "@ax/target-llvm": 9.0.72 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.72 - "@ax/target-mc7plus": 9.0.72 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 9.0.72 - "@ax/trace": 2.9.0 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2.8.1 -# "@ax/sdk": 2504.0.0-rc.1 # @ax/simatic-ax@2504.0.0-rc.1 contained at the time of creation this catalog (1.3.2025) version 2504.0.0-rc.1 + "@ax/apax-build": 2.0.20 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 2.0.20 + "@ax/ax2tia": 11.0.18 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 11.0.18 + "@ax/axunit-mocking": 8.0.33 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 8.0.33 + "@ax/axunitst": 8.0.33 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 8.0.33 + "@ax/axunitst-library": 8.0.33 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 8.0.33 + "@ax/axunitst-ls-contrib": 8.0.33 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 8.0.33 + "@ax/build-native": 16.1.17 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 16.1.17 + "@ax/certificate-management": 1.2.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.2.0 + "@ax/dcp-utility": 1.2.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.2.0 + "@ax/diagnostic-buffer": 1.3.2 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.3.2 + "@ax/hardware-diagnostics": 0.3.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 0.3.0 + "@ax/hw-s7-1500": 3.1.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.0.0 + "@ax/hwc": 3.1.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.0.0 + "@ax/hwld": 3.1.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.0.0 + "@ax/mod": 1.7.6 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.7.6 + "@ax/mon": 1.7.6 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.7.6 + "@ax/performance-info": 1.1.2 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.1.2 + "@ax/plc-control": 1.3.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.2.50 + "@ax/plc-info": 3.1.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.1.0 + "@ax/sdb": 1.7.6 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.7.6 + "@ax/simatic-1500-alarming": 4.0.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 4.0.0 + "@ax/simatic-1500-clocks": 10.0.6 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.6 + "@ax/simatic-1500-communication": 10.0.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.0 + "@ax/simatic-1500-crypto": 3.0.2 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.0.2 + "@ax/simatic-1500-diagnostics": 4.0.2 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 4.0.2 + "@ax/simatic-1500-diagnostics-hardware": 10.0.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.0 + "@ax/simatic-1500-distributedio": 10.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.1 + "@ax/simatic-1500-fileaccess": 9.0.3 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.3 + "@ax/simatic-1500-hardware-utilities": 5.0.5 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 5.0.5 + "@ax/simatic-1500-ip-configuration": 10.0.2 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.2 + "@ax/simatic-1500-memoryaccess": 5.0.5 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 5.0.5 + "@ax/simatic-1500-modbusrtu": 3.0.5 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.0.5 + "@ax/simatic-1500-motioncontrol-native-v5": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-native-v6": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-native-v7": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-native-v8": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-native-v9": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-v7": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-v7-mocking": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-v8": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-v8-mocking": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-v9": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-motioncontrol-v9-mocking": 9.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 9.0.1 + "@ax/simatic-1500-pointtopoint": 3.0.4 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.0.4 + "@ax/simatic-1500-tasks": 10.0.1 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.1 + "@ax/simatic-1500-technology-objects": 3.0.8 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.0.8 + "@ax/simatic-package-tool": 2.0.15 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 2.0.15 + "@ax/sld": 3.3.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.2.4 + "@ax/st-lang-contrib-xlad": 1.2.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.2.0 + "@ax/st-ls": 10.1.70 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.85 + "@ax/st-opcua.stc-plugin": 1.0.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.0.0 + "@ax/st-resources.stc-plugin": 3.0.23 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 3.0.23 + "@ax/stc": 10.1.70 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.85 + "@ax/system": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-bitaccess": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-conversion": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-counters": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-datetime": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-edgedetection": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-fastmath": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-math": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-selection": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-serde": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-strings": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/system-timer": 10.0.24 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.24 + "@ax/target-llvm": 10.1.70 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.85 + "@ax/target-mc7plus": 10.1.70 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 10.0.85 + "@ax/trace": 2.9.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 2.9.0 + "@ax/xlad-transpile-cli": 1.2.0 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 1.2.0 + # "@ax/sdk": 2504.0.0-rc.3 # @ax/simatic-ax@2504.0.0 contained at the time of creation this catalog (7.5.2025) version 2504.0.0 diff --git a/src/ax.latest.packages/ctrl/apax.yml b/src/ax.latest.packages/ctrl/apax.yml index 0804a2bb2..c1b2889f4 100644 --- a/src/ax.latest.packages/ctrl/apax.yml +++ b/src/ax.latest.packages/ctrl/apax.yml @@ -8,29 +8,37 @@ devDependencies: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 dependencies: - "@ax/simatic-1500-clocks": 9.0.1 - "@ax/system-bitaccess": 9.0.12 - "@ax/system-math": 9.0.12 - "@ax/system-serde": 9.0.12 - "@ax/hwc": 2.1.0 - "@ax/hw-s7-1500": 2.1.0 - "@ax/hwld": 2.1.0 - "@ax/stc": 9.0.72 - "@ax/sld": 3.1.3 + "@ax/simatic-1500-clocks": 10.0.6 + "@ax/system-bitaccess": 10.0.24 + "@ax/system-math": 10.0.24 + "@ax/system-serde": 10.0.24 + "@ax/hwc": 3.1.0 + "@ax/hw-s7-1500": 3.1.0 + "@ax/hwld": 3.1.0 + "@ax/stc": 10.1.70 + "@ax/sld": 3.3.0 installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" diff --git a/src/components.abb.robotics/app/apax.yml b/src/components.abb.robotics/app/apax.yml index 5d116b358..d38505ed5 100644 --- a/src/components.abb.robotics/app/apax.yml +++ b/src/components.abb.robotics/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.abb.robotics" +name: "app_axopen.components.abb.robotics" version: '0.0.0-dev.0' type: app targets: - "1500" - - llvm + # - llvm variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Abb.Robotics" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,139 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + diff --git a/src/components.abb.robotics/app/src/Documentation/Component_1.st b/src/components.abb.robotics/app/src/Documentation/Component_1.st index de2d27a2e..c19f96a05 100644 --- a/src/components.abb.robotics/app/src/Documentation/Component_1.st +++ b/src/components.abb.robotics/app/src/Documentation/Component_1.st @@ -27,9 +27,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics // AxoIrc5_v_1_x_x.Run(parent := parent, - hwID := HwIdentifiers#RobotBasicIO_HwID, - hwIdDI_64_bytes := HwIdentifiers#RobotBasicIO_DI_64_bytes_DI_64_bytes_HwID, - hwIdDO_64_bytes := HwIdentifiers#RobotBasicIO_DO_64_bytes_DO_64_bytes_HwID); + hwID := HwIdentifiers#RobotBasicIO_HwID); // THIS.UseInSequencer(); diff --git a/src/components.abb.robotics/app/src/Documentation/Component_2.st b/src/components.abb.robotics/app/src/Documentation/Component_2.st index 48b75a0eb..581dbe307 100644 --- a/src/components.abb.robotics/app/src/Documentation/Component_2.st +++ b/src/components.abb.robotics/app/src/Documentation/Component_2.st @@ -27,9 +27,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics // AxoOmnicore_v_1_x_x.Run(parent := parent, - hwID := HwIdentifiers#OmniCore_HwID, - hwIdDI_64_bytes := HwIdentifiers#OmniCore_DI_64_bytes_DI_64_bytes_HwID, - hwIdDO_64_bytes := HwIdentifiers#OmniCore_DO_64_bytes_DO_64_bytes_HwID); + hwID := HwIdentifiers#OmniCore_HwID); // THIS.UseInSequencer(); diff --git a/src/components.abb.robotics/app/src/Sandbox/SandboxContext.st b/src/components.abb.robotics/app/src/Sandbox/SandboxContext.st index 1e6358e28..d452e1584 100644 --- a/src/components.abb.robotics/app/src/Sandbox/SandboxContext.st +++ b/src/components.abb.robotics/app/src/Sandbox/SandboxContext.st @@ -12,16 +12,13 @@ NAMESPACE AXOpen.Components.Abb.Robotics METHOD PROTECTED OVERRIDE Main THIS.InitializeRootObject(_rootObject); - _AxoIrc5_v_1_x_x.Run(parent := _rootObject, - hwID := HwIdentifiers#RobotBasicIO_HwID, - hwIdDI_64_bytes := HwIdentifiers#RobotBasicIO_DI_64_bytes_DI_64_bytes_HwID, - hwIdDO_64_bytes := HwIdentifiers#RobotBasicIO_DO_64_bytes_DO_64_bytes_HwID); + _AxoIrc5_v_1_x_x.Run( parent := _rootObject, + hwID := HwIdentifiers#RobotBasicIO_HwID); - _AxoOmnicore_v_1_x_x.Run( parent := _rootObject, - hwID := HwIdentifiers#OmniCore_HwID, - hwIdDI_64_bytes := HwIdentifiers#OmniCore_DI_64_bytes_DI_64_bytes_HwID, - hwIdDO_64_bytes := HwIdentifiers#OmniCore_DO_64_bytes_DO_64_bytes_HwID); + + _AxoOmnicore_v_1_x_x.Run( parent := _rootObject, + hwID := HwIdentifiers#OmniCore_HwID); IF(_manualControl) THEN _AxoIrc5_v_1_x_x.ActivateManualControl(); diff --git a/src/components.abb.robotics/ctrl/apax.yml b/src/components.abb.robotics/ctrl/apax.yml index 3a2233685..36de32d02 100644 --- a/src/components.abb.robotics/ctrl/apax.yml +++ b/src/components.abb.robotics/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.components.robotics": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.abb.robotics/ctrl/src/AxoIrc5_v_1_x_x.st b/src/components.abb.robotics/ctrl/src/AxoIrc5_v_1_x_x.st index 331645549..268c87225 100644 --- a/src/components.abb.robotics/ctrl/src/AxoIrc5_v_1_x_x.st +++ b/src/components.abb.robotics/ctrl/src/AxoIrc5_v_1_x_x.st @@ -3,6 +3,8 @@ USING AXOpen.Messaging; USING AXOpen.Messaging.Static; USING AXOpen.Components.Robotics; USING AXOpen.Components.Abstractions.Robotics; +USING Siemens.Simatic.S71500.Hardware.Utilities; +USING Siemens.Simatic.S71500.MemoryAccess; NAMESPACE AXOpen.Components.Abb.Robotics {S7.extern=ReadWrite} @@ -21,9 +23,11 @@ NAMESPACE AXOpen.Components.Abb.Robotics _hwIdDI_64_bytes : WORD; _hwIdDO_64_bytes : WORD; - _dword: DWORD; - _data : ARRAY[0..63] OF BYTE; - _returnValue : WORD; + _initHwCheckDone : BOOL; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR VAR PUBLIC //HEADER @@ -93,7 +97,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics {#ix-attr:[Container(Layout.Stack)]} {#ix-attr:[ComponentDetails("Status")]} {#ix-attr:[ReadOnly()]} - RobotStatus : AxoAbbRobotics_Component_Status_v_1_x_x; + Status : AxoAbbRobotics_Component_Status_v_1_x_x; Messenger : AXOpen.Messaging.Static.AxoMessenger; TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; _progress : INT := 0; @@ -129,41 +133,159 @@ NAMESPACE AXOpen.Components.Abb.Robotics VAR_INPUT parent : IAxoObject; hwID : WORD; - hwIdDI_64_bytes : WORD; // Hardware Id of the input data of the robot - hwIdDO_64_bytes : WORD; // Hardware Id of the output data of the robot + END_VAR + + VAR + _dword: DWORD; + _data : ARRAY[0..63] OF BYTE; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; END_VAR SUPER.Run(parent); Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwIdDI_64_bytes = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702,hwIdDO_64_bytes = WORD#0, eAxoMessageCategory#ProgrammingError); + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(ULINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(ULINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; - IF parent = NULL THEN - RobotStatus.Error.Id := UINT#700; - RETURN; - ELSIF hwIdDI_64_bytes = WORD#0 THEN - RobotStatus.Error.Id := UINT#701; - RETURN; - ELSIF hwIdDO_64_bytes = WORD#0 THEN - RobotStatus.Error.Id := UINT#702; - RETURN; - END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdDI_64_bytes := TO_WORD(_outHwid); + IF _hwIdDI_64_bytes = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdDI_64_bytes , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#64 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; - _hwID := hwID ; - _hwIdDI_64_bytes := hwIdDI_64_bytes; - _hwIdDO_64_bytes := hwIdDO_64_bytes; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdDO_64_bytes := TO_WORD(_outHwid); + IF _hwIdDO_64_bytes = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdDO_64_bytes , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#64 THEN + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + _hwID := hwID; + + IF parent = NULL THEN + Messenger.Activate(UINT#1130,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1130; + RETURN; + END_IF; + + IF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1131; + RETURN; + END_IF; + + IF _hwIdDI_64_bytes = WORD#0 THEN + Messenger.Activate(UINT#1132,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1132; + RETURN; + END_IF; + + IF _hwIdDO_64_bytes = WORD#0 THEN + Messenger.Activate(UINT#1133,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1133; + RETURN; + END_IF; + _initHwCheckDone := TRUE; + END_IF; //********************************************** //***********UPDATE**INPUTS****************** - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdDI_64_bytes ,_data); - Messenger.ActivateOnCondition(ULINT#703,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - RobotStatus.Error.Id := UINT#703; + _retval := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdDI_64_bytes ,_data); + IF _retval > WORD#0 THEN + Messenger.Activate(UINT#1201,eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; @@ -226,58 +348,58 @@ NAMESPACE AXOpen.Components.Abb.Robotics Inputs.WorkobjectNo := _data[10]; Inputs.PointNo := _data[11]; - _dword.%B3 := _data[12]; - _dword.%B2 := _data[13]; - _dword.%B1 := _data[14]; - _dword.%B0 := _data[15]; + _dword.%B0 := _data[12]; + _dword.%B1 := _data[13]; + _dword.%B2 := _data[14]; + _dword.%B3 := _data[15]; Inputs.UserSpecSpeed1 := TO_DINT(_dword); - _dword.%B3 := _data[16]; - _dword.%B2 := _data[17]; - _dword.%B1 := _data[18]; - _dword.%B0 := _data[19]; + _dword.%B0 := _data[16]; + _dword.%B1 := _data[17]; + _dword.%B2 := _data[18]; + _dword.%B3 := _data[19]; Inputs.UserSpecSpeed2 := TO_DINT(_dword); - _dword.%B3 := _data[20]; - _dword.%B2 := _data[21]; - _dword.%B1 := _data[22]; - _dword.%B0 := _data[23]; - Inputs.Coordinates.X:= TO_REAL(_dword)/REAL#10000.0-REAL#10000.0; - - _dword.%B3 := _data[24]; - _dword.%B2 := _data[25]; - _dword.%B1 := _data[26]; - _dword.%B0 := _data[27]; - Inputs.Coordinates.Y:= TO_REAL(_dword)/REAL#10000.0-REAL#10000.0; - - _dword.%B3 := _data[28]; - _dword.%B2 := _data[29]; - _dword.%B1 := _data[30]; - _dword.%B0 := _data[31]; - Inputs.Coordinates.Z:= TO_REAL(_dword)/REAL#10000.0-REAL#10000.0; - - _dword.%B3 := _data[32]; - _dword.%B2 := _data[33]; - _dword.%B1 := _data[34]; - _dword.%B0 := _data[35]; - Inputs.Coordinates.Rx:= TO_REAL(_dword)/REAL#10000.0-REAL#360.0; - - _dword.%B3 := _data[36]; - _dword.%B2 := _data[37]; - _dword.%B1 := _data[39]; - _dword.%B0 := _data[39]; - Inputs.Coordinates.Ry:= TO_REAL(_dword)/REAL#10000.0-REAL#360.0; - - _dword.%B3 := _data[40]; - _dword.%B2 := _data[41]; - _dword.%B1 := _data[42]; - _dword.%B0 := _data[43]; - Inputs.Coordinates.Rz:= TO_REAL(_dword)/REAL#10000.0-REAL#360.0; - - _dword.%B3 := _data[44]; - _dword.%B2 := _data[45]; - _dword.%B1 := _data[46]; - _dword.%B0 := _data[47]; + _dword.%B0 := _data[20]; + _dword.%B1 := _data[21]; + _dword.%B2 := _data[22]; + _dword.%B3 := _data[23]; + Inputs.Coordinates.X:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#10000.0; + + _dword.%B0 := _data[24]; + _dword.%B1 := _data[25]; + _dword.%B2 := _data[26]; + _dword.%B3 := _data[27]; + Inputs.Coordinates.Y:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#10000.0; + + _dword.%B0 := _data[28]; + _dword.%B1 := _data[29]; + _dword.%B2 := _data[30]; + _dword.%B3 := _data[31]; + Inputs.Coordinates.Z:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#10000.0; + + _dword.%B0 := _data[32]; + _dword.%B1 := _data[33]; + _dword.%B2 := _data[34]; + _dword.%B3 := _data[35]; + Inputs.Coordinates.Rx:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#360.0; + + _dword.%B0 := _data[36]; + _dword.%B1 := _data[37]; + _dword.%B2 := _data[38]; + _dword.%B3 := _data[39]; + Inputs.Coordinates.Ry:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#360.0; + + _dword.%B0 := _data[40]; + _dword.%B1 := _data[41]; + _dword.%B2 := _data[42]; + _dword.%B3 := _data[43]; + Inputs.Coordinates.Rz:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#360.0; + + _dword.%B0 := _data[44]; + _dword.%B1 := _data[45]; + _dword.%B2 := _data[46]; + _dword.%B3 := _data[47]; Inputs.EventId := TO_UDINT(_dword); //******************************************* _context := THIS.GetContext(); @@ -316,23 +438,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics //*************StartAtMainTask*************** StartAtMainTask.IsDisabled := _stopTasksAreActive; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#100; + Status.Action.Id := UINT#100; END_IF; Messenger.ActivateOnCondition(ULINT#100,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#101,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); IF StartAtMainTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 300; END_IF; IF _progress = 300 THEN - TaskMessenger.ActivateOnCondition(ULINT#600, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#600; + TaskMessenger.Activate(UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; END_IF; Outputs.StartAtMain := _blink.output; @@ -352,23 +474,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartAtMainTask.ThrowWhen(_errorTimer.output ); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartAtMainTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#101; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#101; + Status.Error.Id := UINT#0; ELSIF StartAtMainTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#800; - RobotStatus.Error.Id := UINT#800; + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; ELSIF StartAtMainTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#801; - RobotStatus.Error.Id := UINT#801; + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,StartAtMainTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,StartAtMainTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10000,StartAtMainTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,StartAtMainTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,StartAtMainTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartAtMainTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN - RobotStatus.Action.Id := UINT#102; + Status.Action.Id := UINT#102; _progress := 0; END_IF; //******************************************* @@ -376,7 +498,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartMotorsAndProgramTask******* StartMotorsAndProgramTask.IsDisabled := _stopTasksAreActive OR StartProgramTask.IsBusy() OR StartMotorsTask.IsBusy(); IF StartMotorsAndProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#110; + Status.Action.Id := UINT#110; END_IF; Messenger.ActivateOnCondition(ULINT#110,StartMotorsAndProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#111,StartMotorsAndProgramTask.IsDone(), eAxoMessageCategory#Info); @@ -384,16 +506,16 @@ NAMESPACE AXOpen.Components.Abb.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 310; END_IF; IF _progress = 310 THEN //Switching to auto - TaskMessenger.ActivateOnCondition(ULINT#610, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#610; + TaskMessenger.Activate(UINT#510, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#510; END_IF; IF Inputs.AutoOn THEN @@ -403,9 +525,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 311 THEN //Reseting error - TaskMessenger.ActivateOnCondition(ULINT#611, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#611; + TaskMessenger.Activate(UINT#511, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#511; END_IF; Outputs.ResetError := Inputs.Error AND _blink.output; @@ -418,9 +540,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 312 THEN //Reseting emergency stop error - TaskMessenger.ActivateOnCondition(ULINT#612, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#612; + TaskMessenger.Activate(UINT#512, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#512; END_IF; Outputs.ResetEmgStop := Inputs.EmgStop AND _blink.output; @@ -433,9 +555,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 313 THEN - TaskMessenger.ActivateOnCondition(ULINT#613, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#613; + TaskMessenger.Activate(UINT#513, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#513; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -452,9 +574,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 314 THEN - TaskMessenger.ActivateOnCondition(ULINT#614, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#614; + TaskMessenger.Activate(UINT#514, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#514; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -471,9 +593,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 315 THEN - TaskMessenger.ActivateOnCondition(ULINT#615, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#615; + TaskMessenger.Activate(UINT#515, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#515; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -498,23 +620,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartMotorsAndProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMotorsAndProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#111; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#111; + Status.Error.Id := UINT#0; ELSIF StartMotorsAndProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#810; - RobotStatus.Error.Id := UINT#810; + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; ELSIF StartMotorsAndProgramTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#811; - RobotStatus.Error.Id := UINT#811; + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; END_IF; - Messenger.ActivateOnCondition(ULINT#810,StartMotorsAndProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#811,StartMotorsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10010,StartMotorsAndProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,StartMotorsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#112,StartMotorsAndProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsAndProgramTask.RestoreTriggered() AND _progress >= 310 AND _progress <= 319 THEN - RobotStatus.Action.Id := UINT#112; + Status.Action.Id := UINT#112; _progress := 0; END_IF; //******************************************* @@ -522,7 +644,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartMotorsProgramAndMovementsTask******* StartMotorsProgramAndMovementsTask.IsDisabled := _stopTasksAreActive OR StartProgramTask.IsBusy() OR StartMotorsTask.IsBusy() OR StartMovementsTask.IsBusy(); IF StartMotorsProgramAndMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#120; + Status.Action.Id := UINT#120; END_IF; Messenger.ActivateOnCondition(ULINT#120,StartMotorsProgramAndMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#121,StartMotorsProgramAndMovementsTask.IsDone(), eAxoMessageCategory#Info); @@ -530,19 +652,18 @@ NAMESPACE AXOpen.Components.Abb.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 320; END_IF; IF _progress = 320 THEN //Switching to auto - TaskMessenger.ActivateOnCondition(ULINT#620, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#620; + TaskMessenger.Activate(UINT#520, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#520; END_IF; - IF Inputs.AutoOn THEN THIS.CallTimers(FALSE); _progress := 321; @@ -550,9 +671,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 321 THEN //Reseting error - TaskMessenger.ActivateOnCondition(ULINT#621, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#621; + TaskMessenger.Activate(UINT#521, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#521; END_IF; Outputs.ResetError := Inputs.Error AND _blink.output; @@ -565,9 +686,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 322 THEN //Reseting emergency stop error - TaskMessenger.ActivateOnCondition(ULINT#622, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#622; + TaskMessenger.Activate(UINT#522, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#522; END_IF; Outputs.ResetEmgStop := Inputs.EmgStop AND _blink.output; @@ -580,9 +701,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 323 THEN - TaskMessenger.ActivateOnCondition(ULINT#623, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#623; + TaskMessenger.Activate(UINT#523, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#523; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -599,9 +720,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 324 THEN - TaskMessenger.ActivateOnCondition(ULINT#624, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#624; + TaskMessenger.Activate(UINT#524, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#524; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -618,9 +739,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 325 THEN - TaskMessenger.ActivateOnCondition(ULINT#625, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#625; + TaskMessenger.Activate(UINT#525, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#525; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -638,18 +759,18 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 326 THEN - TaskMessenger.ActivateOnCondition(ULINT#626, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#626; + TaskMessenger.Activate(UINT#526, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#526; END_IF; - Outputs.GlobalSpeed := RobotStatus.CurrentMovementParameters.GlobalSpeed; - Outputs.ToolNo := RobotStatus.CurrentMovementParameters.ToolNo; - Outputs.WorkobjectNo := RobotStatus.CurrentMovementParameters.WorkobjectNo; - Outputs.PointNo := RobotStatus.CurrentMovementParameters.PointNo; - Outputs.UserSpecSpeed1 := RobotStatus.CurrentMovementParameters.UserSpecSpeed1; - Outputs.UserSpecSpeed2 := RobotStatus.CurrentMovementParameters.UserSpecSpeed2; - Outputs.Coordinates := RobotStatus.CurrentMovementParameters.Coordinates; + Outputs.GlobalSpeed := Status.CurrentMovementParameters.GlobalSpeed; + Outputs.ToolNo := Status.CurrentMovementParameters.ToolNo; + Outputs.WorkobjectNo := Status.CurrentMovementParameters.WorkobjectNo; + Outputs.PointNo := Status.CurrentMovementParameters.PointNo; + Outputs.UserSpecSpeed1 := Status.CurrentMovementParameters.UserSpecSpeed1; + Outputs.UserSpecSpeed2 := Status.CurrentMovementParameters.UserSpecSpeed2; + Outputs.Coordinates := Status.CurrentMovementParameters.Coordinates; Outputs.ActionNo := BYTE#254; @@ -661,42 +782,48 @@ NAMESPACE AXOpen.Components.Abb.Robotics IF _progress = 327 THEN IF _infoTimer.output THEN - IF Inputs.GlobalSpeed <> RobotStatus.CurrentMovementParameters.GlobalSpeed THEN - RobotStatus.Error.Id := UINT#627;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! - END_IF; - IF Inputs.ToolNo <> RobotStatus.CurrentMovementParameters.ToolNo THEN - RobotStatus.Error.Id := UINT#628;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! + IF Inputs.GlobalSpeed <> Status.CurrentMovementParameters.GlobalSpeed THEN + TaskMessenger.Activate( UINT#527, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#527;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! + END_IF; + IF Inputs.ToolNo <> Status.CurrentMovementParameters.ToolNo THEN + TaskMessenger.Activate( UINT#528, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#528;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! END_IF; - IF Inputs.WorkobjectNo <> RobotStatus.CurrentMovementParameters.WorkobjectNo THEN - RobotStatus.Error.Id := UINT#629;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! + IF Inputs.WorkobjectNo <> Status.CurrentMovementParameters.WorkobjectNo THEN + TaskMessenger.Activate( UINT#529, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#529;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! END_IF; - IF Inputs.PointNo <> RobotStatus.CurrentMovementParameters.PointNo THEN - RobotStatus.Error.Id := UINT#630;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! + IF Inputs.PointNo <> Status.CurrentMovementParameters.PointNo THEN + TaskMessenger.Activate( UINT#530, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#530;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! END_IF; - IF Inputs.UserSpecSpeed1 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed1 THEN - RobotStatus.Error.Id := UINT#631;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! + IF Inputs.UserSpecSpeed1 <> Status.CurrentMovementParameters.UserSpecSpeed1 THEN + TaskMessenger.Activate( UINT#531, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#531;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! END_IF; - IF Inputs.UserSpecSpeed2 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed2 THEN - RobotStatus.Error.Id := UINT#632;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! + IF Inputs.UserSpecSpeed2 <> Status.CurrentMovementParameters.UserSpecSpeed2 THEN + TaskMessenger.Activate( UINT#532, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#532;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! END_IF; END_IF; - IF Inputs.GlobalSpeed = RobotStatus.CurrentMovementParameters.GlobalSpeed AND - Inputs.ToolNo = RobotStatus.CurrentMovementParameters.ToolNo AND - Inputs.WorkobjectNo = RobotStatus.CurrentMovementParameters.WorkobjectNo AND - Inputs.PointNo = RobotStatus.CurrentMovementParameters.PointNo AND - Inputs.UserSpecSpeed1 = RobotStatus.CurrentMovementParameters.UserSpecSpeed1 AND - Inputs.UserSpecSpeed2 = RobotStatus.CurrentMovementParameters.UserSpecSpeed2 AND - AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,RobotStatus.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN + IF Inputs.GlobalSpeed = Status.CurrentMovementParameters.GlobalSpeed AND + Inputs.ToolNo = Status.CurrentMovementParameters.ToolNo AND + Inputs.WorkobjectNo = Status.CurrentMovementParameters.WorkobjectNo AND + Inputs.PointNo = Status.CurrentMovementParameters.PointNo AND + Inputs.UserSpecSpeed1 = Status.CurrentMovementParameters.UserSpecSpeed1 AND + Inputs.UserSpecSpeed2 = Status.CurrentMovementParameters.UserSpecSpeed2 AND + AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,Status.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN THIS.CallTimers(FALSE); _progress:=333; END_IF; END_IF; IF _progress = 333 THEN - TaskMessenger.ActivateOnCondition(ULINT#633, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#633; + TaskMessenger.Activate(UINT#533, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#533; END_IF; Outputs.ActionNo := BYTE#255; @@ -708,12 +835,14 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 334 THEN - TaskMessenger.ActivateOnCondition(ULINT#634, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#634; + TaskMessenger.Activate(UINT#534, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#534; END_IF; - - Outputs.ActionNo := RobotStatus.CurrentMovementParameters.ActionNo; + IF Status.CurrentMovementParameters.GlobalSpeed > BYTE#0 THEN + _errorTime := Config.ErrorTime * 100.0/TO_REAL(TO_INT(Status.CurrentMovementParameters.GlobalSpeed)); + END_IF; + Outputs.ActionNo := Status.CurrentMovementParameters.ActionNo; IF Outputs.ActionNo = Inputs.ActionNo THEN THIS.CallTimers(FALSE); @@ -722,9 +851,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 335 THEN - TaskMessenger.ActivateOnCondition(ULINT#635, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#635; + TaskMessenger.Activate(UINT#535, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#535; END_IF; Outputs.ActionNo := BYTE#255; @@ -737,26 +866,26 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartMotorsProgramAndMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMotorsProgramAndMovementsTask.IsFirstExecutionCycle() THEN - MovementParameters := RobotStatus.CurrentMovementParameters; + MovementParameters := Status.CurrentMovementParameters; END_IF; IF StartMotorsProgramAndMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#121; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#121; + Status.Error.Id := UINT#0; ELSIF StartMotorsProgramAndMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#820; - RobotStatus.Error.Id := UINT#820; + Status.Action.Id := UINT#10020; + Status.Error.Id := UINT#10020; ELSIF StartMotorsProgramAndMovementsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#821; - RobotStatus.Error.Id := UINT#821; + Status.Action.Id := UINT#10021; + Status.Error.Id := UINT#10021; END_IF; - Messenger.ActivateOnCondition(ULINT#820,StartMotorsProgramAndMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#821,StartMotorsProgramAndMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10020,StartMotorsProgramAndMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10021,StartMotorsProgramAndMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#122,StartMotorsProgramAndMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsProgramAndMovementsTask.RestoreTriggered() AND _progress >= 320 AND _progress <= 339 THEN - RobotStatus.Action.Id := UINT#122; + Status.Action.Id := UINT#122; _progress := 0; END_IF; //******************************************* @@ -764,7 +893,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartMotorsTask***************** StartMotorsTask.IsDisabled := _stopTasksAreActive OR StartMotorsProgramAndMovementsTask.IsBusy() OR StartMotorsAndProgramTask.IsBusy(); IF StartMotorsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#140; + Status.Action.Id := UINT#140; END_IF; Messenger.ActivateOnCondition(ULINT#140,StartMotorsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#141,StartMotorsTask.IsDone(), eAxoMessageCategory#Info); @@ -772,16 +901,16 @@ NAMESPACE AXOpen.Components.Abb.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 340; END_IF; IF _progress = 340 THEN //Switching to auto - TaskMessenger.ActivateOnCondition(ULINT#640, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#640; + TaskMessenger.Activate(UINT#540, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#540; END_IF; IF Inputs.AutoOn THEN @@ -791,9 +920,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 341 THEN //Reseting error - TaskMessenger.ActivateOnCondition(ULINT#641, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#641; + TaskMessenger.Activate(UINT#541, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#541; END_IF; Outputs.ResetError := Inputs.Error AND _blink.output; @@ -806,9 +935,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 342 THEN //Reseting emergency stop error - TaskMessenger.ActivateOnCondition(ULINT#642, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#642; + TaskMessenger.Activate(UINT#542, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#542; END_IF; Outputs.ResetEmgStop := Inputs.EmgStop AND _blink.output; @@ -821,9 +950,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 343 THEN - TaskMessenger.ActivateOnCondition(ULINT#643, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#643; + TaskMessenger.Activate(UINT#543, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#543; END_IF; IF Inputs.Error THEN @@ -840,9 +969,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 344 THEN - TaskMessenger.ActivateOnCondition(ULINT#644, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#644; + TaskMessenger.Activate(UINT#544, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#544; END_IF; IF Inputs.Error THEN @@ -867,23 +996,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartMotorsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMotorsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#141; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#141; + Status.Error.Id := UINT#0; ELSIF StartMotorsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#840; - RobotStatus.Error.Id := UINT#840; + Status.Action.Id := UINT#10040; + Status.Error.Id := UINT#10040; ELSIF StartMotorsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#841; - RobotStatus.Error.Id := UINT#841; + Status.Action.Id := UINT#10041; + Status.Error.Id := UINT#10041; END_IF; - Messenger.ActivateOnCondition(ULINT#840,StartMotorsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#841,StartMotorsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10040,StartMotorsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10041,StartMotorsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#142,StartMotorsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsTask.RestoreTriggered() AND _progress >= 340 AND _progress <= 349 THEN - RobotStatus.Action.Id := UINT#142; + Status.Action.Id := UINT#142; _progress := 0; END_IF; //******************************************* @@ -891,23 +1020,22 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartMovementsTask************** StartMovementsTask.IsDisabled := _stopTasksAreActive OR StartMotorsProgramAndMovementsTask.IsBusy(); IF StartMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#150; + Status.Action.Id := UINT#150; END_IF; Messenger.ActivateOnCondition(ULINT#150,StartMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#151,StartMovementsTask.IsDone(), eAxoMessageCategory#Info); IF StartMovementsTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 350; END_IF; IF _progress = 350 THEN - TaskMessenger.ActivateOnCondition(ULINT#650, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#650; + TaskMessenger.Activate(UINT#550, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#550; END_IF; IF Inputs.CycleOn THEN @@ -917,10 +1045,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 351 THEN - TaskMessenger.ActivateOnCondition(ULINT#651, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#651; + TaskMessenger.Activate(UINT#551, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#551; END_IF; IF Inputs.MotorOnState THEN @@ -930,10 +1057,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 352 THEN - TaskMessenger.ActivateOnCondition(ULINT#652, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#652; + TaskMessenger.Activate(UINT#552, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#552; END_IF; IF NOT Inputs.Error THEN @@ -943,19 +1069,18 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 353 THEN - TaskMessenger.ActivateOnCondition(ULINT#653, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#653; + TaskMessenger.Activate(UINT#553, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#553; END_IF; - Outputs.GlobalSpeed := RobotStatus.CurrentMovementParameters.GlobalSpeed; - Outputs.ToolNo := RobotStatus.CurrentMovementParameters.ToolNo; - Outputs.WorkobjectNo := RobotStatus.CurrentMovementParameters.WorkobjectNo; - Outputs.PointNo := RobotStatus.CurrentMovementParameters.PointNo; - Outputs.UserSpecSpeed1 := RobotStatus.CurrentMovementParameters.UserSpecSpeed1; - Outputs.UserSpecSpeed2 := RobotStatus.CurrentMovementParameters.UserSpecSpeed2; - Outputs.Coordinates := RobotStatus.CurrentMovementParameters.Coordinates; + Outputs.GlobalSpeed := Status.CurrentMovementParameters.GlobalSpeed; + Outputs.ToolNo := Status.CurrentMovementParameters.ToolNo; + Outputs.WorkobjectNo := Status.CurrentMovementParameters.WorkobjectNo; + Outputs.PointNo := Status.CurrentMovementParameters.PointNo; + Outputs.UserSpecSpeed1 := Status.CurrentMovementParameters.UserSpecSpeed1; + Outputs.UserSpecSpeed2 := Status.CurrentMovementParameters.UserSpecSpeed2; + Outputs.Coordinates := Status.CurrentMovementParameters.Coordinates; Outputs.ActionNo := BYTE#254; @@ -967,43 +1092,48 @@ NAMESPACE AXOpen.Components.Abb.Robotics IF _progress = 354 THEN IF _infoTimer.output THEN - IF Inputs.GlobalSpeed <> RobotStatus.CurrentMovementParameters.GlobalSpeed THEN - RobotStatus.Error.Id := UINT#654;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! + IF Inputs.GlobalSpeed <> Status.CurrentMovementParameters.GlobalSpeed THEN + TaskMessenger.Activate( UINT#554, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#554;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! END_IF; - IF Inputs.ToolNo <> RobotStatus.CurrentMovementParameters.ToolNo THEN - RobotStatus.Error.Id := UINT#655;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! + IF Inputs.ToolNo <> Status.CurrentMovementParameters.ToolNo THEN + TaskMessenger.Activate( UINT#555, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#555;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! END_IF; - IF Inputs.WorkobjectNo <> RobotStatus.CurrentMovementParameters.WorkobjectNo THEN - RobotStatus.Error.Id := UINT#656;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! + IF Inputs.WorkobjectNo <> Status.CurrentMovementParameters.WorkobjectNo THEN + TaskMessenger.Activate( UINT#556, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#556;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! END_IF; - IF Inputs.PointNo <> RobotStatus.CurrentMovementParameters.PointNo THEN - RobotStatus.Error.Id := UINT#657;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! + IF Inputs.PointNo <> Status.CurrentMovementParameters.PointNo THEN + TaskMessenger.Activate( UINT#557, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#557;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! END_IF; - IF Inputs.UserSpecSpeed1 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed1 THEN - RobotStatus.Error.Id := UINT#658;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! + IF Inputs.UserSpecSpeed1 <> Status.CurrentMovementParameters.UserSpecSpeed1 THEN + TaskMessenger.Activate( UINT#558, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#558;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! END_IF; - IF Inputs.UserSpecSpeed2 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed2 THEN - RobotStatus.Error.Id := UINT#659;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! + IF Inputs.UserSpecSpeed2 <> Status.CurrentMovementParameters.UserSpecSpeed2 THEN + TaskMessenger.Activate( UINT#559, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#559;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! END_IF; END_IF; - IF Inputs.GlobalSpeed = RobotStatus.CurrentMovementParameters.GlobalSpeed AND - Inputs.ToolNo = RobotStatus.CurrentMovementParameters.ToolNo AND - Inputs.WorkobjectNo = RobotStatus.CurrentMovementParameters.WorkobjectNo AND - Inputs.PointNo = RobotStatus.CurrentMovementParameters.PointNo AND - Inputs.UserSpecSpeed1 = RobotStatus.CurrentMovementParameters.UserSpecSpeed1 AND - Inputs.UserSpecSpeed2 = RobotStatus.CurrentMovementParameters.UserSpecSpeed2 AND - AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,RobotStatus.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN + IF Inputs.GlobalSpeed = Status.CurrentMovementParameters.GlobalSpeed AND + Inputs.ToolNo = Status.CurrentMovementParameters.ToolNo AND + Inputs.WorkobjectNo = Status.CurrentMovementParameters.WorkobjectNo AND + Inputs.PointNo = Status.CurrentMovementParameters.PointNo AND + Inputs.UserSpecSpeed1 = Status.CurrentMovementParameters.UserSpecSpeed1 AND + Inputs.UserSpecSpeed2 = Status.CurrentMovementParameters.UserSpecSpeed2 AND + AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,Status.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN THIS.CallTimers(FALSE); _progress:=360; END_IF; END_IF; IF _progress = 360 THEN - TaskMessenger.ActivateOnCondition(ULINT#660, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#660; + TaskMessenger.Activate(UINT#560, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#560; END_IF; Outputs.ActionNo := BYTE#255; @@ -1015,35 +1145,35 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 361 THEN - TaskMessenger.ActivateOnCondition(ULINT#661, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#661; + TaskMessenger.Activate(UINT#561, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#561; END_IF; - - Outputs.ActionNo := RobotStatus.CurrentMovementParameters.ActionNo; + IF Status.CurrentMovementParameters.GlobalSpeed > BYTE#0 THEN + _errorTime := Config.ErrorTime * 100.0/TO_REAL(TO_INT(Status.CurrentMovementParameters.GlobalSpeed)); + END_IF; + Outputs.ActionNo := Status.CurrentMovementParameters.ActionNo; IF Outputs.ActionNo = Inputs.ActionNo THEN THIS.CallTimers(FALSE); - _progress:=662; + _progress:=362; END_IF; END_IF; - IF _progress = 662 THEN - TaskMessenger.ActivateOnCondition(ULINT#662, _infoTimer.output, eAxoMessageCategory#Warning); - + IF _progress = 362 THEN IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#662; + TaskMessenger.Activate(UINT#562, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#562; END_IF; Outputs.ActionNo := BYTE#255; IF Outputs.ActionNo = Inputs.ActionNo THEN - _progress := 663; + _progress := 363; END_IF; END_IF; - IF _progress = 663 THEN + IF _progress = 363 THEN _progress := 0; StartMovementsTask.DoneWhen(TRUE); END_IF; @@ -1051,26 +1181,26 @@ NAMESPACE AXOpen.Components.Abb.Robotics StartMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMovementsTask.IsFirstExecutionCycle() THEN - MovementParameters := RobotStatus.CurrentMovementParameters; + MovementParameters := Status.CurrentMovementParameters; END_IF; IF StartMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#151; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#151; + Status.Error.Id := UINT#0; ELSIF StartMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#850; - RobotStatus.Error.Id := UINT#850; + Status.Action.Id := UINT#10050; + Status.Error.Id := UINT#10050; ELSIF StartMovementsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#851; - RobotStatus.Error.Id := UINT#851; + Status.Action.Id := UINT#10051; + Status.Error.Id := UINT#10051; END_IF; - Messenger.ActivateOnCondition(ULINT#850,StartMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#851,StartMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10050,StartMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10051,StartMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#152,StartMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMovementsTask.RestoreTriggered() AND _progress >= 350 AND _progress <= 369 THEN - RobotStatus.Action.Id := UINT#152; + Status.Action.Id := UINT#152; _progress := 0; END_IF; //******************************************* @@ -1078,7 +1208,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartProgramTask******* StartProgramTask.IsDisabled := _stopTasksAreActive; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#170; + Status.Action.Id := UINT#170; END_IF; Messenger.ActivateOnCondition(ULINT#170,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#171,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); @@ -1086,16 +1216,16 @@ NAMESPACE AXOpen.Components.Abb.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 370; END_IF; IF _progress = 370 THEN - TaskMessenger.ActivateOnCondition(ULINT#670, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#670; + TaskMessenger.Activate(UINT#570, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#570; END_IF; Outputs.StartProgram:=_blink.output; @@ -1107,9 +1237,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 371 THEN - TaskMessenger.ActivateOnCondition(ULINT#671, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#671; + TaskMessenger.Activate(UINT#571, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#571; END_IF; Outputs.StartProgram:=_blink.output; @@ -1129,23 +1259,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#171; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#171; + Status.Error.Id := UINT#0; ELSIF StartProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#870; - RobotStatus.Error.Id := UINT#870; + Status.Action.Id := UINT#10070; + Status.Error.Id := UINT#10070; ELSIF StartProgramTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#871; - RobotStatus.Error.Id := UINT#871; + Status.Action.Id := UINT#10071; + Status.Error.Id := UINT#10071; END_IF; - Messenger.ActivateOnCondition(ULINT#870,StartProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#871,StartProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10070,StartProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10071,StartProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#172,StartProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartProgramTask.RestoreTriggered() AND _progress >= 370 AND _progress <= 379 THEN - RobotStatus.Action.Id := UINT#172; + Status.Action.Id := UINT#172; _progress := 0; END_IF; //******************************************* @@ -1153,7 +1283,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StopMotorsTask*************** StopMotorsTask.IsDisabled := FALSE; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#180; + Status.Action.Id := UINT#180; END_IF; Messenger.ActivateOnCondition(ULINT#180,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#181,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); @@ -1161,16 +1291,16 @@ NAMESPACE AXOpen.Components.Abb.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 380; END_IF; IF _progress = 380 THEN - TaskMessenger.ActivateOnCondition(ULINT#680, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#680; + TaskMessenger.Activate(UINT#580, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#580; END_IF; Outputs.MotorOff := TRUE; @@ -1182,9 +1312,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 381 THEN - TaskMessenger.ActivateOnCondition(ULINT#681, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#681; + TaskMessenger.Activate(UINT#581, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#581; END_IF; Outputs.MotorOff := TRUE; @@ -1204,23 +1334,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StopMotorsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopMotorsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#181; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#181; + Status.Error.Id := UINT#0; ELSIF StopMotorsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#880; - RobotStatus.Error.Id := UINT#880; + Status.Action.Id := UINT#10080; + Status.Error.Id := UINT#10080; ELSIF StopMotorsTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#881; - RobotStatus.Error.Id := UINT#881; + Status.Action.Id := UINT#10081; + Status.Error.Id := UINT#10081; END_IF; - Messenger.ActivateOnCondition(ULINT#880,StopMotorsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#881,StopMotorsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10080,StopMotorsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10081,StopMotorsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#182,StopMotorsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMotorsTask.RestoreTriggered() AND _progress >= 380 AND _progress <= 389 THEN - RobotStatus.Action.Id := UINT#182; + Status.Action.Id := UINT#182; _progress := 0; END_IF; //******************************************* @@ -1228,22 +1358,22 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StopMovementsAndProgramTask***** StopMovementsAndProgramTask.IsDisabled := FALSE; IF StopMovementsAndProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#190; + Status.Action.Id := UINT#190; END_IF; Messenger.ActivateOnCondition(ULINT#190,StopMovementsAndProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#191,StopMovementsAndProgramTask.IsDone(), eAxoMessageCategory#Info); IF StopMovementsAndProgramTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 390; END_IF; IF _progress = 390 THEN - TaskMessenger.ActivateOnCondition(ULINT#690, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#690; + TaskMessenger.Activate(UINT#590, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#590; END_IF; Outputs.SoftStop := TRUE; @@ -1261,9 +1391,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 391 THEN - TaskMessenger.ActivateOnCondition(ULINT#691, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#691; + TaskMessenger.Activate(UINT#591, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#591; END_IF; Outputs.StopProgram:=TRUE; @@ -1286,23 +1416,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics StopMovementsAndProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopMovementsAndProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#191; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#191; + Status.Error.Id := UINT#0; ELSIF StopMovementsAndProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#890; - RobotStatus.Error.Id := UINT#890; + Status.Action.Id := UINT#10090; + Status.Error.Id := UINT#10090; ELSIF StopMovementsAndProgramTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#891; - RobotStatus.Error.Id := UINT#891; + Status.Action.Id := UINT#10091; + Status.Error.Id := UINT#10091; END_IF; - Messenger.ActivateOnCondition(ULINT#890,StopMovementsAndProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#891,StopMovementsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10090,StopMovementsAndProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10091,StopMovementsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#192,StopMovementsAndProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMovementsAndProgramTask.RestoreTriggered() AND _progress >= 390 AND _progress <= 399 THEN - RobotStatus.Action.Id := UINT#192; + Status.Action.Id := UINT#192; _progress := 0; END_IF; //******************************************* @@ -1310,22 +1440,22 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StopMovementsTask*************** StopMovementsTask.IsDisabled := FALSE; IF StopMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#400; + Status.Action.Id := UINT#400; END_IF; Messenger.ActivateOnCondition(ULINT#200,StopMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#201,StopMovementsTask.IsDone(), eAxoMessageCategory#Info); IF StopMovementsTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 400; END_IF; IF _progress = 400 THEN - TaskMessenger.ActivateOnCondition(ULINT#692, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#692; + TaskMessenger.Activate(UINT#600, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#600; END_IF; Outputs.SoftStop := TRUE; @@ -1355,23 +1485,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics StopMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#201; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#201; + Status.Error.Id := UINT#0; ELSIF StopMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#900; - RobotStatus.Error.Id := UINT#900; + Status.Action.Id := UINT#10100; + Status.Error.Id := UINT#10100; ELSIF StopMovementsTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#901; - RobotStatus.Error.Id := UINT#901; + Status.Action.Id := UINT#10101; + Status.Error.Id := UINT#10101; END_IF; - Messenger.ActivateOnCondition(ULINT#900,StopMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#901,StopMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10100,StopMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10101,StopMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#202,StopMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMovementsTask.RestoreTriggered() AND _progress >= 400 AND _progress <= 409 THEN - RobotStatus.Action.Id := UINT#202; + Status.Action.Id := UINT#202; _progress := 0; END_IF; //******************************************* @@ -1379,22 +1509,22 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StopProgramTask***************** StopProgramTask.IsDisabled := FALSE; IF StopProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#210; + Status.Action.Id := UINT#210; END_IF; Messenger.ActivateOnCondition(ULINT#210,StopProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#211,StopProgramTask.IsDone(), eAxoMessageCategory#Info); IF StopProgramTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 410; END_IF; IF _progress = 410 THEN - TaskMessenger.ActivateOnCondition(ULINT#693, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#693; + TaskMessenger.Activate(UINT#610, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#610; END_IF; Outputs.StopProgram:=TRUE; @@ -1415,23 +1545,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics StopProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#911; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#211; + Status.Error.Id := UINT#0; ELSIF StopProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#910; - RobotStatus.Error.Id := UINT#910; + Status.Action.Id := UINT#10110; + Status.Error.Id := UINT#10110; ELSIF StopProgramTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#911; - RobotStatus.Error.Id := UINT#911; + Status.Action.Id := UINT#10111; + Status.Error.Id := UINT#10111; END_IF; - Messenger.ActivateOnCondition(ULINT#910,StopProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#911,StopProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10110,StopProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10111,StopProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#212,StopProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopProgramTask.RestoreTriggered() AND _progress >= 410 AND _progress <= 419 THEN - RobotStatus.Action.Id := UINT#912; + Status.Action.Id := UINT#212; _progress := 0; END_IF; //******************************************* @@ -1444,19 +1574,18 @@ NAMESPACE AXOpen.Components.Abb.Robotics OR StopMovementsAndProgramTask.IsBusy() OR StopProgramTask.IsBusy(); - Messenger.ActivateOnCondition(ULINT#705,_someTaskIsActive AND Inputs.EmgStop, eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#706,_someTaskIsActive AND NOT Inputs.SafetyOk, eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#707,_someTaskIsActive AND Inputs.ProgExecError, eAxoMessageCategory#Error); - IF _someTaskIsActive THEN IF(Inputs.EmgStop) THEN - RobotStatus.Error.Id := UINT#705; + Messenger.Activate(UINT#20001, eAxoMessageCategory#Error); + Status.Error.Id := UINT#20001; END_IF; IF(NOT Inputs.SafetyOk) THEN - RobotStatus.Error.Id := UINT#706; + Messenger.Activate(UINT#20002, eAxoMessageCategory#Error); + Status.Error.Id := UINT#20002; END_IF; IF(Inputs.ProgExecError) THEN - RobotStatus.Error.Id := UINT#707; + Messenger.Activate(UINT#20003, eAxoMessageCategory#Error); + Status.Error.Id := UINT#20003; END_IF; END_IF; //***********UPDATE**OUTPUTS***************** @@ -1505,66 +1634,66 @@ NAMESPACE AXOpen.Components.Abb.Robotics _data[10] := Outputs.WorkobjectNo; _data[11] := Outputs.PointNo; - _dword := TO_DWORD(Outputs.UserSpecSpeed1); - _data[12] := _dword.%B3; - _data[13] := _dword.%B2; - _data[14] := _dword.%B1; - _data[15] := _dword.%B0; + _dword := TO_DWORD(TO_DINT(Outputs.UserSpecSpeed1)); + _data[12] := _dword.%B0; + _data[13] := _dword.%B1; + _data[14] := _dword.%B2; + _data[15] := _dword.%B3; - _dword := TO_DWORD(Outputs.UserSpecSpeed2); - _data[16] := _dword.%B3; - _data[17] := _dword.%B2; - _data[18] := _dword.%B1; - _data[19] := _dword.%B0; + _dword := TO_DWORD(TO_DINT(Outputs.UserSpecSpeed2)); + _data[16] := _dword.%B0; + _data[17] := _dword.%B1; + _data[18] := _dword.%B2; + _data[19] := _dword.%B3; ////Coordinates - _dword := TO_DWORD((Outputs.Coordinates.X +REAL#10000.0)*REAL#10000.0); - _data[20] := _dword.%B3; - _data[21] := _dword.%B2; - _data[22] := _dword.%B1; - _data[23] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Y +REAL#10000.0)*REAL#10000.0); - _data[24] := _dword.%B3; - _data[25] := _dword.%B2; - _data[26] := _dword.%B1; - _data[27] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Z +REAL#10000.0)*REAL#10000.0); - _data[28] := _dword.%B3; - _data[29] := _dword.%B2; - _data[30] := _dword.%B1; - _data[31] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Rx +REAL#360.0)*REAL#10000.0); - _data[32] := _dword.%B3; - _data[33] := _dword.%B2; - _data[34] := _dword.%B1; - _data[35] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Ry +REAL#360.0)*REAL#10000.0); - _data[36] := _dword.%B3; - _data[37] := _dword.%B2; - _data[38] := _dword.%B1; - _data[39] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Rz +REAL#360.0)*REAL#10000.0); - _data[40] := _dword.%B3; - _data[41] := _dword.%B2; - _data[42] := _dword.%B1; - _data[43] := _dword.%B0; - - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdDO_64_bytes,_data); - Messenger.ActivateOnCondition(ULINT#704,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - RobotStatus.Error.Id := UINT#704; + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.X + REAL#10000.0)*REAL#10000.0)); + _data[20] := _dword.%B0; + _data[21] := _dword.%B1; + _data[22] := _dword.%B2; + _data[23] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Y +REAL#10000.0)*REAL#10000.0)); + _data[24] := _dword.%B0; + _data[25] := _dword.%B1; + _data[26] := _dword.%B2; + _data[27] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Z +REAL#10000.0)*REAL#10000.0)); + _data[28] := _dword.%B0; + _data[29] := _dword.%B1; + _data[30] := _dword.%B2; + _data[31] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Rx +REAL#360.0)*REAL#10000.0)); + _data[32] := _dword.%B0; + _data[33] := _dword.%B1; + _data[34] := _dword.%B2; + _data[35] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Ry +REAL#360.0)*REAL#10000.0)); + _data[36] := _dword.%B0; + _data[37] := _dword.%B1; + _data[38] := _dword.%B2; + _data[39] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Rz +REAL#360.0)*REAL#10000.0)); + _data[40] := _dword.%B0; + _data[41] := _dword.%B1; + _data[42] := _dword.%B2; + _data[43] := _dword.%B3; + + _retval := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdDO_64_bytes,_data); + IF _retval > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; END_IF; //******************************************* END_METHOD METHOD PROTECTED OVERRIDE ManualControl - RobotStatus.CurrentMovementParameters := MovementParameters; + Status.CurrentMovementParameters := MovementParameters; END_METHOD /// @@ -1581,7 +1710,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics StartMotorsTask.Restore(); StartMovementsTask.Restore(); StartMotorsProgramAndMovementsTask.Restore(); - RobotStatus.Action.Id := UINT#50; + Status.Action.Id := UINT#50; RestoreTask.DoneWhen(TRUE); END_METHOD @@ -1597,7 +1726,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics VAR_IN_OUT inData : AxoRoboticsMovementsParams; END_VAR - RobotStatus.CurrentMovementParameters := inData; + Status.CurrentMovementParameters := inData; StartMotorsProgramAndMovements := StartMotorsProgramAndMovementsTask.Invoke(THIS); END_METHOD @@ -1610,7 +1739,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics VAR_IN_OUT inData : AxoRoboticsMovementsParams; END_VAR - RobotStatus.CurrentMovementParameters := inData; + Status.CurrentMovementParameters := inData; StartMovements := StartMovementsTask.Invoke(THIS); END_METHOD diff --git a/src/components.abb.robotics/ctrl/src/AxoOmnicore_v_1_x_x.st b/src/components.abb.robotics/ctrl/src/AxoOmnicore_v_1_x_x.st index 110be9e5b..e1e47f80a 100644 --- a/src/components.abb.robotics/ctrl/src/AxoOmnicore_v_1_x_x.st +++ b/src/components.abb.robotics/ctrl/src/AxoOmnicore_v_1_x_x.st @@ -3,6 +3,8 @@ USING AXOpen.Messaging; USING AXOpen.Messaging.Static; USING AXOpen.Components.Robotics; USING AXOpen.Components.Abstractions.Robotics; +USING Siemens.Simatic.S71500.Hardware.Utilities; +USING Siemens.Simatic.S71500.MemoryAccess; NAMESPACE AXOpen.Components.Abb.Robotics {S7.extern=ReadWrite} @@ -20,10 +22,24 @@ NAMESPACE AXOpen.Components.Abb.Robotics _hwID : WORD; _hwIdDI_64_bytes : WORD; _hwIdDO_64_bytes : WORD; + + _initHwCheckDone : BOOL; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; + + _real: REAL; + _dint: DINT; + _dword2: DWORD; + END_VAR VAR PUBLIC //HEADER - + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentHeader()]} + {#ix-set:AttributeName = "<#Progress#>"} + Progress : INT; END_VAR VAR PUBLIC //Tasks @@ -89,7 +105,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics {#ix-attr:[Container(Layout.Stack)]} {#ix-attr:[ComponentDetails("Status")]} {#ix-attr:[ReadOnly()]} - RobotStatus : AxoAbbRobotics_Component_Status_v_1_x_x; + Status : AxoAbbRobotics_Component_Status_v_1_x_x; Messenger : AXOpen.Messaging.Static.AxoMessenger; TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; _progress : INT := 0; @@ -106,7 +122,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#Outputs#>"} - {#ix-attr:[ReadOnly()]} + {#ix-attr:[ReadOnly()]} Outputs : AxoAbbRobotics_Control_v_1_x_x; END_VAR @@ -125,44 +141,160 @@ NAMESPACE AXOpen.Components.Abb.Robotics VAR_INPUT parent : IAxoObject; hwID : WORD; - hwIdDI_64_bytes : WORD; // Hardware Id of the input data of the robot - hwIdDO_64_bytes : WORD; // Hardware Id of the output data of the robot END_VAR VAR _dword: DWORD; _data : ARRAY[0..63] OF BYTE; - returnValue : WORD; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; END_VAR + Progress := _progress; + SUPER.Run(parent); Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwIdDI_64_bytes = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702,hwIdDO_64_bytes = WORD#0, eAxoMessageCategory#ProgrammingError); + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; - IF parent = NULL THEN - RobotStatus.Error.Id := UINT#700; - RETURN; - ELSIF hwIdDI_64_bytes = WORD#0 THEN - RobotStatus.Error.Id := UINT#701; - RETURN; - ELSIF hwIdDO_64_bytes = WORD#0 THEN - RobotStatus.Error.Id := UINT#702; - RETURN; - END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdDI_64_bytes := TO_WORD(_outHwid); + IF _hwIdDI_64_bytes = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdDI_64_bytes , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#64 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdDO_64_bytes := TO_WORD(_outHwid); + IF _hwIdDO_64_bytes = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdDO_64_bytes , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#64 THEN + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + + _hwID := hwID; - _hwID := hwID ; - _hwIdDI_64_bytes := hwIdDI_64_bytes; - _hwIdDO_64_bytes := hwIdDO_64_bytes; + IF parent = NULL THEN + Messenger.Activate(UINT#1130,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1130; + RETURN; + END_IF; + + IF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1131; + RETURN; + END_IF; + + IF _hwIdDI_64_bytes = WORD#0 THEN + Messenger.Activate(UINT#1132,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1132; + RETURN; + END_IF; + + IF _hwIdDO_64_bytes = WORD#0 THEN + Messenger.Activate(UINT#1133,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1133; + RETURN; + END_IF; + _initHwCheckDone := TRUE; + END_IF; + //********************************************** //***********UPDATE**INPUTS****************** - returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdDI_64_bytes ,_data); - Messenger.ActivateOnCondition(ULINT#703,returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF returnValue > WORD#0 THEN - RobotStatus.Error.Id := UINT#703; + _retval := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdDI_64_bytes ,_data); + IF _retval > WORD#0 THEN + Messenger.Activate(UINT#1201,eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; @@ -225,58 +357,58 @@ NAMESPACE AXOpen.Components.Abb.Robotics Inputs.WorkobjectNo := _data[10]; Inputs.PointNo := _data[11]; - _dword.%B3 := _data[12]; - _dword.%B2 := _data[13]; - _dword.%B1 := _data[14]; - _dword.%B0 := _data[15]; + _dword.%B0 := _data[12]; + _dword.%B1 := _data[13]; + _dword.%B2 := _data[14]; + _dword.%B3 := _data[15]; Inputs.UserSpecSpeed1 := TO_DINT(_dword); - _dword.%B3 := _data[16]; - _dword.%B2 := _data[17]; - _dword.%B1 := _data[18]; - _dword.%B0 := _data[19]; + _dword.%B0 := _data[16]; + _dword.%B1 := _data[17]; + _dword.%B2 := _data[18]; + _dword.%B3 := _data[19]; Inputs.UserSpecSpeed2 := TO_DINT(_dword); - _dword.%B3 := _data[20]; - _dword.%B2 := _data[21]; - _dword.%B1 := _data[22]; - _dword.%B0 := _data[23]; - Inputs.Coordinates.X:= TO_REAL(_dword)/REAL#10000.0-REAL#10000.0; - - _dword.%B3 := _data[24]; - _dword.%B2 := _data[25]; - _dword.%B1 := _data[26]; - _dword.%B0 := _data[27]; - Inputs.Coordinates.Y:= TO_REAL(_dword)/REAL#10000.0-REAL#10000.0; - - _dword.%B3 := _data[28]; - _dword.%B2 := _data[29]; - _dword.%B1 := _data[30]; - _dword.%B0 := _data[31]; - Inputs.Coordinates.Z:= TO_REAL(_dword)/REAL#10000.0-REAL#10000.0; - - _dword.%B3 := _data[32]; - _dword.%B2 := _data[33]; - _dword.%B1 := _data[34]; - _dword.%B0 := _data[35]; - Inputs.Coordinates.Rx:= TO_REAL(_dword)/REAL#10000.0-REAL#360.0; - - _dword.%B3 := _data[36]; - _dword.%B2 := _data[37]; - _dword.%B1 := _data[39]; - _dword.%B0 := _data[39]; - Inputs.Coordinates.Ry:= TO_REAL(_dword)/REAL#10000.0-REAL#360.0; - - _dword.%B3 := _data[40]; - _dword.%B2 := _data[41]; - _dword.%B1 := _data[42]; - _dword.%B0 := _data[43]; - Inputs.Coordinates.Rz:= TO_REAL(_dword)/REAL#10000.0-REAL#360.0; - - _dword.%B3 := _data[44]; - _dword.%B2 := _data[45]; - _dword.%B1 := _data[46]; - _dword.%B0 := _data[47]; + _dword.%B0 := _data[20]; + _dword.%B1 := _data[21]; + _dword.%B2 := _data[22]; + _dword.%B3 := _data[23]; + Inputs.Coordinates.X:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#10000.0; + + _dword.%B0 := _data[24]; + _dword.%B1 := _data[25]; + _dword.%B2 := _data[26]; + _dword.%B3 := _data[27]; + Inputs.Coordinates.Y:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#10000.0; + + _dword.%B0 := _data[28]; + _dword.%B1 := _data[29]; + _dword.%B2 := _data[30]; + _dword.%B3 := _data[31]; + Inputs.Coordinates.Z:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#10000.0; + + _dword.%B0 := _data[32]; + _dword.%B1 := _data[33]; + _dword.%B2 := _data[34]; + _dword.%B3 := _data[35]; + Inputs.Coordinates.Rx:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#360.0; + + _dword.%B0 := _data[36]; + _dword.%B1 := _data[37]; + _dword.%B2 := _data[38]; + _dword.%B3 := _data[39]; + Inputs.Coordinates.Ry:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#360.0; + + _dword.%B0 := _data[40]; + _dword.%B1 := _data[41]; + _dword.%B2 := _data[42]; + _dword.%B3 := _data[43]; + Inputs.Coordinates.Rz:= TO_REAL(TO_DINT(_dword))/REAL#10000.0-REAL#360.0; + + _dword.%B0 := _data[44]; + _dword.%B1 := _data[45]; + _dword.%B2 := _data[46]; + _dword.%B3 := _data[47]; Inputs.EventId := TO_UDINT(_dword); //******************************************* _context := THIS.GetContext(); @@ -306,7 +438,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics //*************RESTORE******************** RestoreTask.IsDisabled := FALSE; - IF RestoreTask.Execute() THEN + IF RestoreTask.Execute(THIS) THEN THIS.Restore(); END_IF; //**************************************** @@ -314,29 +446,32 @@ NAMESPACE AXOpen.Components.Abb.Robotics //*************StartAtMainTask*************** StartAtMainTask.IsDisabled := _stopTasksAreActive; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#100; + Status.Action.Id := UINT#100; END_IF; Messenger.ActivateOnCondition(ULINT#100,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#101,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); - IF StartAtMainTask.Execute() THEN + IF StartAtMainTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 300; END_IF; + IF _progress = 300 THEN - TaskMessenger.ActivateOnCondition(ULINT#600, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#600; + TaskMessenger.Activate(UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; END_IF; + Outputs.ActionNo := BYTE#255; Outputs.StartAtMain := _blink.output; IF Inputs.PpMoved THEN THIS.CallTimers(FALSE); + Outputs.ActionNo := BYTE#0; Outputs.StartAtMain :=FALSE; _progress:=301; END_IF; @@ -350,23 +485,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartAtMainTask.ThrowWhen(_errorTimer.output ); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartAtMainTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#101; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#101; + Status.Error.Id := UINT#0; ELSIF StartAtMainTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#800; - RobotStatus.Error.Id := UINT#800; + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; ELSIF StartAtMainTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#801; - RobotStatus.Error.Id := UINT#801; + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,StartAtMainTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,StartAtMainTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10000,StartAtMainTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,StartAtMainTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,StartAtMainTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartAtMainTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN - RobotStatus.Action.Id := UINT#102; + Status.Action.Id := UINT#102; _progress := 0; END_IF; //******************************************* @@ -374,24 +509,24 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartMotorsAndProgramTask******* StartMotorsAndProgramTask.IsDisabled := _stopTasksAreActive OR StartProgramTask.IsBusy() OR StartMotorsTask.IsBusy(); IF StartMotorsAndProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#110; + Status.Action.Id := UINT#110; END_IF; Messenger.ActivateOnCondition(ULINT#110,StartMotorsAndProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#111,StartMotorsAndProgramTask.IsDone(), eAxoMessageCategory#Info); - IF StartMotorsAndProgramTask.Execute() THEN + IF StartMotorsAndProgramTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 310; END_IF; IF _progress = 310 THEN //Switching to auto - TaskMessenger.ActivateOnCondition(ULINT#610, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#610; + TaskMessenger.Activate(UINT#510, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#510; END_IF; IF Inputs.AutoOn THEN @@ -401,9 +536,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 311 THEN //Reseting error - TaskMessenger.ActivateOnCondition(ULINT#611, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#611; + TaskMessenger.Activate(UINT#511, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#511; END_IF; Outputs.ResetError := Inputs.Error AND _blink.output; @@ -416,9 +551,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 312 THEN //Reseting emergency stop error - TaskMessenger.ActivateOnCondition(ULINT#612, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#612; + TaskMessenger.Activate(UINT#512, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#512; END_IF; Outputs.ResetEmgStop := Inputs.EmgStop AND _blink.output; @@ -431,9 +566,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 313 THEN - TaskMessenger.ActivateOnCondition(ULINT#613, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#613; + TaskMessenger.Activate(UINT#513, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#513; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -450,9 +585,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 314 THEN - TaskMessenger.ActivateOnCondition(ULINT#614, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#614; + TaskMessenger.Activate(UINT#514, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#514; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -469,9 +604,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 315 THEN - TaskMessenger.ActivateOnCondition(ULINT#615, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#615; + TaskMessenger.Activate(UINT#515, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#515; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -481,7 +616,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics _progress := 310; END_IF; - IF Inputs.CycleOn THEN + IF NOT Inputs.Error THEN THIS.CallTimers(FALSE); Outputs.MotorOnAndStart := FALSE; _progress := 316; @@ -496,23 +631,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartMotorsAndProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMotorsAndProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#111; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#111; + Status.Error.Id := UINT#0; ELSIF StartMotorsAndProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#810; - RobotStatus.Error.Id := UINT#810; + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; ELSIF StartMotorsAndProgramTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#811; - RobotStatus.Error.Id := UINT#811; + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; END_IF; - Messenger.ActivateOnCondition(ULINT#810,StartMotorsAndProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#811,StartMotorsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10010,StartMotorsAndProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,StartMotorsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#112,StartMotorsAndProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsAndProgramTask.RestoreTriggered() AND _progress >= 310 AND _progress <= 319 THEN - RobotStatus.Action.Id := UINT#112; + Status.Action.Id := UINT#112; _progress := 0; END_IF; //******************************************* @@ -520,27 +655,26 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartMotorsProgramAndMovementsTask******* StartMotorsProgramAndMovementsTask.IsDisabled := _stopTasksAreActive OR StartProgramTask.IsBusy() OR StartMotorsTask.IsBusy() OR StartMovementsTask.IsBusy(); IF StartMotorsProgramAndMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#120; + Status.Action.Id := UINT#120; END_IF; Messenger.ActivateOnCondition(ULINT#120,StartMotorsProgramAndMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#121,StartMotorsProgramAndMovementsTask.IsDone(), eAxoMessageCategory#Info); - IF StartMotorsProgramAndMovementsTask.Execute() THEN + IF StartMotorsProgramAndMovementsTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 320; END_IF; IF _progress = 320 THEN //Switching to auto - TaskMessenger.ActivateOnCondition(ULINT#620, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#620; + TaskMessenger.Activate(UINT#520, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#520; END_IF; - IF Inputs.AutoOn THEN THIS.CallTimers(FALSE); _progress := 321; @@ -548,9 +682,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 321 THEN //Reseting error - TaskMessenger.ActivateOnCondition(ULINT#621, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#621; + TaskMessenger.Activate(UINT#521, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#521; END_IF; Outputs.ResetError := Inputs.Error AND _blink.output; @@ -563,9 +697,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 322 THEN //Reseting emergency stop error - TaskMessenger.ActivateOnCondition(ULINT#622, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#622; + TaskMessenger.Activate(UINT#522, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#522; END_IF; Outputs.ResetEmgStop := Inputs.EmgStop AND _blink.output; @@ -577,10 +711,10 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 323 THEN - TaskMessenger.ActivateOnCondition(ULINT#623, _infoTimer.output, eAxoMessageCategory#Warning); + IF _progress = 323 THEN //Switching on the motors IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#623; + TaskMessenger.Activate(UINT#523, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#523; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -596,10 +730,10 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 324 THEN - TaskMessenger.ActivateOnCondition(ULINT#624, _infoTimer.output, eAxoMessageCategory#Warning); + IF _progress = 324 THEN //Switching on the motors IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#624; + TaskMessenger.Activate(UINT#524, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#524; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -615,10 +749,10 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 325 THEN - TaskMessenger.ActivateOnCondition(ULINT#625, _infoTimer.output, eAxoMessageCategory#Warning); + IF _progress = 325 THEN //Switching on the motors IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#625; + TaskMessenger.Activate(UINT#525, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#525; END_IF; Outputs.MotorOnAndStart:=_blink.output; @@ -628,26 +762,26 @@ NAMESPACE AXOpen.Components.Abb.Robotics _progress := 320; END_IF; - IF Inputs.CycleOn THEN + IF NOT Inputs.Error THEN THIS.CallTimers(FALSE); Outputs.MotorOnAndStart := FALSE; _progress := 326; END_IF; END_IF; - IF _progress = 326 THEN - TaskMessenger.ActivateOnCondition(ULINT#626, _infoTimer.output, eAxoMessageCategory#Warning); + IF _progress = 326 THEN //Setting the movement parameters IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#626; + TaskMessenger.Activate(UINT#526, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#526; END_IF; - Outputs.GlobalSpeed := RobotStatus.CurrentMovementParameters.GlobalSpeed; - Outputs.ToolNo := RobotStatus.CurrentMovementParameters.ToolNo; - Outputs.WorkobjectNo := RobotStatus.CurrentMovementParameters.WorkobjectNo; - Outputs.PointNo := RobotStatus.CurrentMovementParameters.PointNo; - Outputs.UserSpecSpeed1 := RobotStatus.CurrentMovementParameters.UserSpecSpeed1; - Outputs.UserSpecSpeed2 := RobotStatus.CurrentMovementParameters.UserSpecSpeed2; - Outputs.Coordinates := RobotStatus.CurrentMovementParameters.Coordinates; + Outputs.GlobalSpeed := Status.CurrentMovementParameters.GlobalSpeed; + Outputs.ToolNo := Status.CurrentMovementParameters.ToolNo; + Outputs.WorkobjectNo := Status.CurrentMovementParameters.WorkobjectNo; + Outputs.PointNo := Status.CurrentMovementParameters.PointNo; + Outputs.UserSpecSpeed1 := Status.CurrentMovementParameters.UserSpecSpeed1; + Outputs.UserSpecSpeed2 := Status.CurrentMovementParameters.UserSpecSpeed2; + Outputs.Coordinates := Status.CurrentMovementParameters.Coordinates; Outputs.ActionNo := BYTE#254; @@ -657,44 +791,50 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 327 THEN + IF _progress = 327 THEN //Waiting for confirmation of the movement parameters IF _infoTimer.output THEN - IF Inputs.GlobalSpeed <> RobotStatus.CurrentMovementParameters.GlobalSpeed THEN - RobotStatus.Error.Id := UINT#627;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! - END_IF; - IF Inputs.ToolNo <> RobotStatus.CurrentMovementParameters.ToolNo THEN - RobotStatus.Error.Id := UINT#628;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! + IF Inputs.GlobalSpeed <> Status.CurrentMovementParameters.GlobalSpeed THEN + TaskMessenger.Activate( UINT#527, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#527;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! + END_IF; + IF Inputs.ToolNo <> Status.CurrentMovementParameters.ToolNo THEN + TaskMessenger.Activate( UINT#528, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#528;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! END_IF; - IF Inputs.WorkobjectNo <> RobotStatus.CurrentMovementParameters.WorkobjectNo THEN - RobotStatus.Error.Id := UINT#629;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! + IF Inputs.WorkobjectNo <> Status.CurrentMovementParameters.WorkobjectNo THEN + TaskMessenger.Activate( UINT#529, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#529;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! END_IF; - IF Inputs.PointNo <> RobotStatus.CurrentMovementParameters.PointNo THEN - RobotStatus.Error.Id := UINT#630;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! + IF Inputs.PointNo <> Status.CurrentMovementParameters.PointNo THEN + TaskMessenger.Activate( UINT#530, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#530;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! END_IF; - IF Inputs.UserSpecSpeed1 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed1 THEN - RobotStatus.Error.Id := UINT#631;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! + IF Inputs.UserSpecSpeed1 <> Status.CurrentMovementParameters.UserSpecSpeed1 THEN + TaskMessenger.Activate( UINT#531, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#531;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! END_IF; - IF Inputs.UserSpecSpeed2 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed2 THEN - RobotStatus.Error.Id := UINT#632;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! + IF Inputs.UserSpecSpeed2 <> Status.CurrentMovementParameters.UserSpecSpeed2 THEN + TaskMessenger.Activate( UINT#532, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#532;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! END_IF; END_IF; - IF Inputs.GlobalSpeed = RobotStatus.CurrentMovementParameters.GlobalSpeed AND - Inputs.ToolNo = RobotStatus.CurrentMovementParameters.ToolNo AND - Inputs.WorkobjectNo = RobotStatus.CurrentMovementParameters.WorkobjectNo AND - Inputs.PointNo = RobotStatus.CurrentMovementParameters.PointNo AND - Inputs.UserSpecSpeed1 = RobotStatus.CurrentMovementParameters.UserSpecSpeed1 AND - Inputs.UserSpecSpeed2 = RobotStatus.CurrentMovementParameters.UserSpecSpeed2 AND - AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,RobotStatus.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN + IF Inputs.GlobalSpeed = Status.CurrentMovementParameters.GlobalSpeed AND + Inputs.ToolNo = Status.CurrentMovementParameters.ToolNo AND + Inputs.WorkobjectNo = Status.CurrentMovementParameters.WorkobjectNo AND + Inputs.PointNo = Status.CurrentMovementParameters.PointNo AND + Inputs.UserSpecSpeed1 = Status.CurrentMovementParameters.UserSpecSpeed1 AND + Inputs.UserSpecSpeed2 = Status.CurrentMovementParameters.UserSpecSpeed2 AND + AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,Status.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN THIS.CallTimers(FALSE); _progress:=333; END_IF; END_IF; - IF _progress = 333 THEN - TaskMessenger.ActivateOnCondition(ULINT#633, _infoTimer.output, eAxoMessageCategory#Warning); + IF _progress = 333 THEN //Acknowledging that the mirrored data are valid IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#633; + TaskMessenger.Activate(UINT#533, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#533; END_IF; Outputs.ActionNo := BYTE#255; @@ -705,13 +845,16 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 334 THEN - TaskMessenger.ActivateOnCondition(ULINT#634, _infoTimer.output, eAxoMessageCategory#Warning); + IF _progress = 334 THEN //Waiting for the movement finished IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#634; + TaskMessenger.Activate(UINT#534, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#534; + END_IF; + IF Status.CurrentMovementParameters.GlobalSpeed > BYTE#0 THEN + _errorTime := Config.ErrorTime * 100.0/TO_REAL(TO_INT(Status.CurrentMovementParameters.GlobalSpeed)); END_IF; - Outputs.ActionNo := RobotStatus.CurrentMovementParameters.ActionNo; + Outputs.ActionNo := Status.CurrentMovementParameters.ActionNo; IF Outputs.ActionNo = Inputs.ActionNo THEN THIS.CallTimers(FALSE); @@ -719,10 +862,10 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 335 THEN - TaskMessenger.ActivateOnCondition(ULINT#635, _infoTimer.output, eAxoMessageCategory#Warning); + IF _progress = 335 THEN //Movement finished acknoledgement IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#635; + TaskMessenger.Activate(UINT#535, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#535; END_IF; Outputs.ActionNo := BYTE#255; @@ -735,26 +878,26 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartMotorsProgramAndMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMotorsProgramAndMovementsTask.IsFirstExecutionCycle() THEN - MovementParameters := RobotStatus.CurrentMovementParameters; + MovementParameters := Status.CurrentMovementParameters; END_IF; IF StartMotorsProgramAndMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#121; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#121; + Status.Error.Id := UINT#0; ELSIF StartMotorsProgramAndMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#820; - RobotStatus.Error.Id := UINT#820; + Status.Action.Id := UINT#10020; + Status.Error.Id := UINT#10020; ELSIF StartMotorsProgramAndMovementsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#821; - RobotStatus.Error.Id := UINT#821; + Status.Action.Id := UINT#10021; + Status.Error.Id := UINT#10021; END_IF; - Messenger.ActivateOnCondition(ULINT#820,StartMotorsProgramAndMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#821,StartMotorsProgramAndMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10020,StartMotorsProgramAndMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10021,StartMotorsProgramAndMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#122,StartMotorsProgramAndMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsProgramAndMovementsTask.RestoreTriggered() AND _progress >= 320 AND _progress <= 339 THEN - RobotStatus.Action.Id := UINT#122; + Status.Action.Id := UINT#122; _progress := 0; END_IF; //******************************************* @@ -762,24 +905,24 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartMotorsTask***************** StartMotorsTask.IsDisabled := _stopTasksAreActive OR StartMotorsProgramAndMovementsTask.IsBusy() OR StartMotorsAndProgramTask.IsBusy(); IF StartMotorsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#140; + Status.Action.Id := UINT#140; END_IF; Messenger.ActivateOnCondition(ULINT#140,StartMotorsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#141,StartMotorsTask.IsDone(), eAxoMessageCategory#Info); - IF StartMotorsTask.Execute() THEN + IF StartMotorsTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 340; END_IF; IF _progress = 340 THEN //Switching to auto - TaskMessenger.ActivateOnCondition(ULINT#640, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#640; + TaskMessenger.Activate(UINT#540, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#540; END_IF; IF Inputs.AutoOn THEN @@ -789,9 +932,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 341 THEN //Reseting error - TaskMessenger.ActivateOnCondition(ULINT#641, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#641; + TaskMessenger.Activate(UINT#541, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#541; END_IF; Outputs.ResetError := Inputs.Error AND _blink.output; @@ -804,9 +947,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 342 THEN //Reseting emergency stop error - TaskMessenger.ActivateOnCondition(ULINT#642, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#642; + TaskMessenger.Activate(UINT#542, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#542; END_IF; Outputs.ResetEmgStop := Inputs.EmgStop AND _blink.output; @@ -818,10 +961,10 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 343 THEN - TaskMessenger.ActivateOnCondition(ULINT#643, _infoTimer.output, eAxoMessageCategory#Warning); + IF _progress = 343 THEN //Switching on the motors IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#643; + TaskMessenger.Activate(UINT#543, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#543; END_IF; IF Inputs.Error THEN @@ -837,10 +980,10 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 344 THEN - TaskMessenger.ActivateOnCondition(ULINT#644, _infoTimer.output, eAxoMessageCategory#Warning); + IF _progress = 344 THEN //Switching on the motors IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#644; + TaskMessenger.Activate(UINT#544, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#544; END_IF; IF Inputs.Error THEN @@ -850,14 +993,14 @@ NAMESPACE AXOpen.Components.Abb.Robotics Outputs.MotorOn:=_blink.output; - IF Inputs.MotorOnState THEN + IF NOT Inputs.Error THEN Outputs.MotorOn:=FALSE; THIS.CallTimers(FALSE); _progress := 345; END_IF; END_IF; - IF _progress = 345 THEN + IF _progress = 345 THEN //Switching on the motors StartMotorsTask.DoneWhen(TRUE); THIS.CallTimers(FALSE); _progress := 0; @@ -865,23 +1008,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartMotorsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMotorsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#141; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#141; + Status.Error.Id := UINT#0; ELSIF StartMotorsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#840; - RobotStatus.Error.Id := UINT#840; + Status.Action.Id := UINT#10040; + Status.Error.Id := UINT#10040; ELSIF StartMotorsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#841; - RobotStatus.Error.Id := UINT#841; + Status.Action.Id := UINT#10041; + Status.Error.Id := UINT#10041; END_IF; - Messenger.ActivateOnCondition(ULINT#840,StartMotorsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#841,StartMotorsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10040,StartMotorsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10041,StartMotorsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#142,StartMotorsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsTask.RestoreTriggered() AND _progress >= 340 AND _progress <= 349 THEN - RobotStatus.Action.Id := UINT#142; + Status.Action.Id := UINT#142; _progress := 0; END_IF; //******************************************* @@ -889,36 +1032,34 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartMovementsTask************** StartMovementsTask.IsDisabled := _stopTasksAreActive OR StartMotorsProgramAndMovementsTask.IsBusy(); IF StartMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#150; + Status.Action.Id := UINT#150; END_IF; Messenger.ActivateOnCondition(ULINT#150,StartMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#151,StartMovementsTask.IsDone(), eAxoMessageCategory#Info); - IF StartMovementsTask.Execute() THEN + IF StartMovementsTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 350; END_IF; - IF _progress = 350 THEN - TaskMessenger.ActivateOnCondition(ULINT#650, _infoTimer.output, eAxoMessageCategory#Warning); - + IF _progress = 350 THEN IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#650; + TaskMessenger.Activate(UINT#550, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#550; END_IF; - IF Inputs.CycleOn THEN + IF Inputs.CycleOn THEN //Waiting for the automatic mode THIS.CallTimers(FALSE); _progress := 351; END_IF; END_IF; - IF _progress = 351 THEN - TaskMessenger.ActivateOnCondition(ULINT#651, _infoTimer.output, eAxoMessageCategory#Warning); - + IF _progress = 351 THEN //Wating for the motors to be switched on IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#651; + TaskMessenger.Activate(UINT#551, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#551; END_IF; IF Inputs.MotorOnState THEN @@ -927,11 +1068,10 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 352 THEN - TaskMessenger.ActivateOnCondition(ULINT#652, _infoTimer.output, eAxoMessageCategory#Warning); - + IF _progress = 352 THEN //Waiting for the error reset IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#652; + TaskMessenger.Activate(UINT#552, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#552; END_IF; IF NOT Inputs.Error THEN @@ -940,20 +1080,19 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 353 THEN - TaskMessenger.ActivateOnCondition(ULINT#653, _infoTimer.output, eAxoMessageCategory#Warning); - + IF _progress = 353 THEN //Setting the movement parameters IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#653; + TaskMessenger.Activate(UINT#553, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#553; END_IF; - Outputs.GlobalSpeed := RobotStatus.CurrentMovementParameters.GlobalSpeed; - Outputs.ToolNo := RobotStatus.CurrentMovementParameters.ToolNo; - Outputs.WorkobjectNo := RobotStatus.CurrentMovementParameters.WorkobjectNo; - Outputs.PointNo := RobotStatus.CurrentMovementParameters.PointNo; - Outputs.UserSpecSpeed1 := RobotStatus.CurrentMovementParameters.UserSpecSpeed1; - Outputs.UserSpecSpeed2 := RobotStatus.CurrentMovementParameters.UserSpecSpeed2; - Outputs.Coordinates := RobotStatus.CurrentMovementParameters.Coordinates; + Outputs.GlobalSpeed := Status.CurrentMovementParameters.GlobalSpeed; + Outputs.ToolNo := Status.CurrentMovementParameters.ToolNo; + Outputs.WorkobjectNo := Status.CurrentMovementParameters.WorkobjectNo; + Outputs.PointNo := Status.CurrentMovementParameters.PointNo; + Outputs.UserSpecSpeed1 := Status.CurrentMovementParameters.UserSpecSpeed1; + Outputs.UserSpecSpeed2 := Status.CurrentMovementParameters.UserSpecSpeed2; + Outputs.Coordinates := Status.CurrentMovementParameters.Coordinates; Outputs.ActionNo := BYTE#254; @@ -963,45 +1102,50 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 354 THEN + IF _progress = 354 THEN //Waiting for confirmation of the movement parameters IF _infoTimer.output THEN - IF Inputs.GlobalSpeed <> RobotStatus.CurrentMovementParameters.GlobalSpeed THEN - RobotStatus.Error.Id := UINT#654;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! + IF Inputs.GlobalSpeed <> Status.CurrentMovementParameters.GlobalSpeed THEN + TaskMessenger.Activate( UINT#554, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#554;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! END_IF; - IF Inputs.ToolNo <> RobotStatus.CurrentMovementParameters.ToolNo THEN - RobotStatus.Error.Id := UINT#655;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! + IF Inputs.ToolNo <> Status.CurrentMovementParameters.ToolNo THEN + TaskMessenger.Activate( UINT#555, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#555;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! END_IF; - IF Inputs.WorkobjectNo <> RobotStatus.CurrentMovementParameters.WorkobjectNo THEN - RobotStatus.Error.Id := UINT#656;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! + IF Inputs.WorkobjectNo <> Status.CurrentMovementParameters.WorkobjectNo THEN + TaskMessenger.Activate( UINT#556, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#556;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! END_IF; - IF Inputs.PointNo <> RobotStatus.CurrentMovementParameters.PointNo THEN - RobotStatus.Error.Id := UINT#657;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! + IF Inputs.PointNo <> Status.CurrentMovementParameters.PointNo THEN + TaskMessenger.Activate( UINT#557, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#557;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! END_IF; - IF Inputs.UserSpecSpeed1 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed1 THEN - RobotStatus.Error.Id := UINT#658;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! + IF Inputs.UserSpecSpeed1 <> Status.CurrentMovementParameters.UserSpecSpeed1 THEN + TaskMessenger.Activate( UINT#558, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#558;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! END_IF; - IF Inputs.UserSpecSpeed2 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed2 THEN - RobotStatus.Error.Id := UINT#659;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! + IF Inputs.UserSpecSpeed2 <> Status.CurrentMovementParameters.UserSpecSpeed2 THEN + TaskMessenger.Activate( UINT#559, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#559;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! END_IF; END_IF; - IF Inputs.GlobalSpeed = RobotStatus.CurrentMovementParameters.GlobalSpeed AND - Inputs.ToolNo = RobotStatus.CurrentMovementParameters.ToolNo AND - Inputs.WorkobjectNo = RobotStatus.CurrentMovementParameters.WorkobjectNo AND - Inputs.PointNo = RobotStatus.CurrentMovementParameters.PointNo AND - Inputs.UserSpecSpeed1 = RobotStatus.CurrentMovementParameters.UserSpecSpeed1 AND - Inputs.UserSpecSpeed2 = RobotStatus.CurrentMovementParameters.UserSpecSpeed2 AND - AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,RobotStatus.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN + IF Inputs.GlobalSpeed = Status.CurrentMovementParameters.GlobalSpeed AND + Inputs.ToolNo = Status.CurrentMovementParameters.ToolNo AND + Inputs.WorkobjectNo = Status.CurrentMovementParameters.WorkobjectNo AND + Inputs.PointNo = Status.CurrentMovementParameters.PointNo AND + Inputs.UserSpecSpeed1 = Status.CurrentMovementParameters.UserSpecSpeed1 AND + Inputs.UserSpecSpeed2 = Status.CurrentMovementParameters.UserSpecSpeed2 AND + AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,Status.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN THIS.CallTimers(FALSE); _progress:=360; END_IF; END_IF; - IF _progress = 360 THEN - TaskMessenger.ActivateOnCondition(ULINT#660, _infoTimer.output, eAxoMessageCategory#Warning); - + IF _progress = 360 THEN //Acknowledging that the mirrored data are valid IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#660; + TaskMessenger.Activate(UINT#560, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#560; END_IF; Outputs.ActionNo := BYTE#255; @@ -1012,36 +1156,37 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; END_IF; - IF _progress = 361 THEN - TaskMessenger.ActivateOnCondition(ULINT#661, _infoTimer.output, eAxoMessageCategory#Warning); - + IF _progress = 361 THEN //Waiting for the movement finished IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#661; + TaskMessenger.Activate(UINT#561, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#561; END_IF; - - Outputs.ActionNo := RobotStatus.CurrentMovementParameters.ActionNo; + IF Status.CurrentMovementParameters.GlobalSpeed > BYTE#0 THEN + _errorTime := Config.ErrorTime * 100.0/TO_REAL(TO_INT(Status.CurrentMovementParameters.GlobalSpeed)); + END_IF; + + Outputs.ActionNo := Status.CurrentMovementParameters.ActionNo; IF Outputs.ActionNo = Inputs.ActionNo THEN THIS.CallTimers(FALSE); - _progress:=662; + _progress:=362; END_IF; END_IF; - IF _progress = 662 THEN - TaskMessenger.ActivateOnCondition(ULINT#662, _infoTimer.output, eAxoMessageCategory#Warning); - + IF _progress = 362 THEN IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#662; + TaskMessenger.Activate(UINT#562, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#562; END_IF; Outputs.ActionNo := BYTE#255; IF Outputs.ActionNo = Inputs.ActionNo THEN - _progress := 663; + _progress := 363; END_IF; END_IF; - IF _progress = 663 THEN + IF _progress = 363 THEN _progress := 0; StartMovementsTask.DoneWhen(TRUE); END_IF; @@ -1049,26 +1194,26 @@ NAMESPACE AXOpen.Components.Abb.Robotics StartMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMovementsTask.IsFirstExecutionCycle() THEN - MovementParameters := RobotStatus.CurrentMovementParameters; + MovementParameters := Status.CurrentMovementParameters; END_IF; IF StartMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#151; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#151; + Status.Error.Id := UINT#0; ELSIF StartMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#850; - RobotStatus.Error.Id := UINT#850; + Status.Action.Id := UINT#10050; + Status.Error.Id := UINT#10050; ELSIF StartMovementsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#851; - RobotStatus.Error.Id := UINT#851; + Status.Action.Id := UINT#10051; + Status.Error.Id := UINT#10051; END_IF; - Messenger.ActivateOnCondition(ULINT#850,StartMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#851,StartMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10050,StartMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10051,StartMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#152,StartMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMovementsTask.RestoreTriggered() AND _progress >= 350 AND _progress <= 369 THEN - RobotStatus.Action.Id := UINT#152; + Status.Action.Id := UINT#152; _progress := 0; END_IF; //******************************************* @@ -1076,24 +1221,24 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StartProgramTask******* StartProgramTask.IsDisabled := _stopTasksAreActive; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#170; + Status.Action.Id := UINT#170; END_IF; Messenger.ActivateOnCondition(ULINT#170,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#171,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); - IF StartProgramTask.Execute() THEN + IF StartProgramTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 370; END_IF; IF _progress = 370 THEN - TaskMessenger.ActivateOnCondition(ULINT#670, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#670; + TaskMessenger.Activate(UINT#570, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#570; END_IF; Outputs.StartProgram:=_blink.output; @@ -1105,9 +1250,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 371 THEN - TaskMessenger.ActivateOnCondition(ULINT#671, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#671; + TaskMessenger.Activate(UINT#571, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#571; END_IF; Outputs.StartProgram:=_blink.output; @@ -1127,23 +1272,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StartProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#171; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#171; + Status.Error.Id := UINT#0; ELSIF StartProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#870; - RobotStatus.Error.Id := UINT#870; + Status.Action.Id := UINT#10070; + Status.Error.Id := UINT#10070; ELSIF StartProgramTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#871; - RobotStatus.Error.Id := UINT#871; + Status.Action.Id := UINT#10071; + Status.Error.Id := UINT#10071; END_IF; - Messenger.ActivateOnCondition(ULINT#870,StartProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#871,StartProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10070,StartProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10071,StartProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#172,StartProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartProgramTask.RestoreTriggered() AND _progress >= 370 AND _progress <= 379 THEN - RobotStatus.Action.Id := UINT#172; + Status.Action.Id := UINT#172; _progress := 0; END_IF; //******************************************* @@ -1151,24 +1296,24 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StopMotorsTask*************** StopMotorsTask.IsDisabled := FALSE; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#180; + Status.Action.Id := UINT#180; END_IF; Messenger.ActivateOnCondition(ULINT#180,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#181,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); - IF StopMotorsTask.Execute() THEN + IF StopMotorsTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 380; END_IF; IF _progress = 380 THEN - TaskMessenger.ActivateOnCondition(ULINT#680, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#680; + TaskMessenger.Activate(UINT#580, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#580; END_IF; Outputs.MotorOff := TRUE; @@ -1180,9 +1325,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 381 THEN - TaskMessenger.ActivateOnCondition(ULINT#681, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#681; + TaskMessenger.Activate(UINT#581, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#581; END_IF; Outputs.MotorOff := TRUE; @@ -1202,23 +1347,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics THIS.CallTimers(TRUE); StopMotorsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopMotorsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#181; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#181; + Status.Error.Id := UINT#0; ELSIF StopMotorsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#880; - RobotStatus.Error.Id := UINT#880; + Status.Action.Id := UINT#10080; + Status.Error.Id := UINT#10080; ELSIF StopMotorsTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#881; - RobotStatus.Error.Id := UINT#881; + Status.Action.Id := UINT#10081; + Status.Error.Id := UINT#10081; END_IF; - Messenger.ActivateOnCondition(ULINT#880,StopMotorsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#881,StopMotorsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10080,StopMotorsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10081,StopMotorsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#182,StopMotorsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMotorsTask.RestoreTriggered() AND _progress >= 380 AND _progress <= 389 THEN - RobotStatus.Action.Id := UINT#182; + Status.Action.Id := UINT#182; _progress := 0; END_IF; //******************************************* @@ -1226,22 +1371,22 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StopMovementsAndProgramTask***** StopMovementsAndProgramTask.IsDisabled := FALSE; IF StopMovementsAndProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#190; + Status.Action.Id := UINT#190; END_IF; Messenger.ActivateOnCondition(ULINT#190,StopMovementsAndProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#191,StopMovementsAndProgramTask.IsDone(), eAxoMessageCategory#Info); - IF StopMovementsAndProgramTask.Execute() THEN + IF StopMovementsAndProgramTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 390; END_IF; IF _progress = 390 THEN - TaskMessenger.ActivateOnCondition(ULINT#690, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#690; + TaskMessenger.Activate(UINT#590, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#590; END_IF; Outputs.SoftStop := TRUE; @@ -1259,9 +1404,9 @@ NAMESPACE AXOpen.Components.Abb.Robotics END_IF; IF _progress = 391 THEN - TaskMessenger.ActivateOnCondition(ULINT#691, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#691; + TaskMessenger.Activate(UINT#591, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#591; END_IF; Outputs.StopProgram:=TRUE; @@ -1284,23 +1429,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics StopMovementsAndProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopMovementsAndProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#191; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#191; + Status.Error.Id := UINT#0; ELSIF StopMovementsAndProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#890; - RobotStatus.Error.Id := UINT#890; + Status.Action.Id := UINT#10090; + Status.Error.Id := UINT#10090; ELSIF StopMovementsAndProgramTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#891; - RobotStatus.Error.Id := UINT#891; + Status.Action.Id := UINT#10091; + Status.Error.Id := UINT#10091; END_IF; - Messenger.ActivateOnCondition(ULINT#890,StopMovementsAndProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#891,StopMovementsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10090,StopMovementsAndProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10091,StopMovementsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#192,StopMovementsAndProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMovementsAndProgramTask.RestoreTriggered() AND _progress >= 390 AND _progress <= 399 THEN - RobotStatus.Action.Id := UINT#192; + Status.Action.Id := UINT#192; _progress := 0; END_IF; //******************************************* @@ -1308,22 +1453,22 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StopMovementsTask*************** StopMovementsTask.IsDisabled := FALSE; IF StopMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#400; + Status.Action.Id := UINT#400; END_IF; Messenger.ActivateOnCondition(ULINT#200,StopMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#201,StopMovementsTask.IsDone(), eAxoMessageCategory#Info); - IF StopMovementsTask.Execute() THEN + IF StopMovementsTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); - _progress := 300; + _progress := 400; END_IF; IF _progress = 400 THEN - TaskMessenger.ActivateOnCondition(ULINT#692, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#692; + TaskMessenger.Activate(UINT#600, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#600; END_IF; Outputs.SoftStop := TRUE; @@ -1353,23 +1498,23 @@ NAMESPACE AXOpen.Components.Abb.Robotics StopMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#201; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#201; + Status.Error.Id := UINT#0; ELSIF StopMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#900; - RobotStatus.Error.Id := UINT#900; + Status.Action.Id := UINT#10100; + Status.Error.Id := UINT#10100; ELSIF StopMovementsTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#901; - RobotStatus.Error.Id := UINT#901; + Status.Action.Id := UINT#10101; + Status.Error.Id := UINT#10101; END_IF; - Messenger.ActivateOnCondition(ULINT#900,StopMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#901,StopMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10100,StopMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10101,StopMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#202,StopMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMovementsTask.RestoreTriggered() AND _progress >= 400 AND _progress <= 409 THEN - RobotStatus.Action.Id := UINT#202; + Status.Action.Id := UINT#202; _progress := 0; END_IF; //******************************************* @@ -1377,22 +1522,22 @@ NAMESPACE AXOpen.Components.Abb.Robotics //***********StopProgramTask***************** StopProgramTask.IsDisabled := FALSE; IF StopProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#210; + Status.Action.Id := UINT#210; END_IF; Messenger.ActivateOnCondition(ULINT#210,StopProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#211,StopProgramTask.IsDone(), eAxoMessageCategory#Info); - IF StopProgramTask.Execute() THEN + IF StopProgramTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 410; END_IF; IF _progress = 410 THEN - TaskMessenger.ActivateOnCondition(ULINT#693, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#693; + TaskMessenger.Activate(UINT#610, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#610; END_IF; Outputs.StopProgram:=TRUE; @@ -1413,27 +1558,26 @@ NAMESPACE AXOpen.Components.Abb.Robotics StopProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#911; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#211; + Status.Error.Id := UINT#0; ELSIF StopProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#910; - RobotStatus.Error.Id := UINT#910; + Status.Action.Id := UINT#10110; + Status.Error.Id := UINT#10110; ELSIF StopProgramTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#911; - RobotStatus.Error.Id := UINT#911; + Status.Action.Id := UINT#10111; + Status.Error.Id := UINT#10111; END_IF; - Messenger.ActivateOnCondition(ULINT#910,StopProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#911,StopProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10110,StopProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10111,StopProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#212,StopProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopProgramTask.RestoreTriggered() AND _progress >= 410 AND _progress <= 419 THEN - RobotStatus.Action.Id := UINT#912; + Status.Action.Id := UINT#212; _progress := 0; END_IF; //******************************************* - _someTaskIsActive := StartAtMainTask.IsBusy() OR StartMotorsAndProgramTask.IsBusy() OR StartMovementsTask.IsBusy() @@ -1442,19 +1586,18 @@ NAMESPACE AXOpen.Components.Abb.Robotics OR StopMovementsAndProgramTask.IsBusy() OR StopProgramTask.IsBusy(); - Messenger.ActivateOnCondition(ULINT#705,_someTaskIsActive AND Inputs.EmgStop, eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#706,_someTaskIsActive AND NOT Inputs.SafetyOk, eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#707,_someTaskIsActive AND Inputs.ProgExecError, eAxoMessageCategory#Error); - IF _someTaskIsActive THEN IF(Inputs.EmgStop) THEN - RobotStatus.Error.Id := UINT#705; + Messenger.Activate(UINT#20001, eAxoMessageCategory#Error); + Status.Error.Id := UINT#20001; END_IF; IF(NOT Inputs.SafetyOk) THEN - RobotStatus.Error.Id := UINT#706; + Messenger.Activate(UINT#20002, eAxoMessageCategory#Error); + Status.Error.Id := UINT#20002; END_IF; IF(Inputs.ProgExecError) THEN - RobotStatus.Error.Id := UINT#707; + Messenger.Activate(UINT#20003, eAxoMessageCategory#Error); + Status.Error.Id := UINT#20003; END_IF; END_IF; //***********UPDATE**OUTPUTS***************** @@ -1503,67 +1646,66 @@ NAMESPACE AXOpen.Components.Abb.Robotics _data[10] := Outputs.WorkobjectNo; _data[11] := Outputs.PointNo; - _dword := TO_DWORD(Outputs.UserSpecSpeed1); - _data[12] := _dword.%B3; - _data[13] := _dword.%B2; - _data[14] := _dword.%B1; - _data[15] := _dword.%B0; + _dword := TO_DWORD(TO_DINT(Outputs.UserSpecSpeed1)); + _data[12] := _dword.%B0; + _data[13] := _dword.%B1; + _data[14] := _dword.%B2; + _data[15] := _dword.%B3; - _dword := TO_DWORD(Outputs.UserSpecSpeed2); - _data[16] := _dword.%B3; - _data[17] := _dword.%B2; - _data[18] := _dword.%B1; - _data[19] := _dword.%B0; + _dword := TO_DWORD(TO_DINT(Outputs.UserSpecSpeed2)); + _data[16] := _dword.%B0; + _data[17] := _dword.%B1; + _data[18] := _dword.%B2; + _data[19] := _dword.%B3; ////Coordinates - _dword := TO_DWORD((Outputs.Coordinates.X +REAL#10000.0)*REAL#10000.0); - _data[20] := _dword.%B3; - _data[21] := _dword.%B2; - _data[22] := _dword.%B1; - _data[23] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Y +REAL#10000.0)*REAL#10000.0); - _data[24] := _dword.%B3; - _data[25] := _dword.%B2; - _data[26] := _dword.%B1; - _data[27] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Z +REAL#10000.0)*REAL#10000.0); - _data[28] := _dword.%B3; - _data[29] := _dword.%B2; - _data[30] := _dword.%B1; - _data[31] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Rx +REAL#360.0)*REAL#10000.0); - _data[32] := _dword.%B3; - _data[33] := _dword.%B2; - _data[34] := _dword.%B1; - _data[35] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Ry +REAL#360.0)*REAL#10000.0); - _data[36] := _dword.%B3; - _data[37] := _dword.%B2; - _data[38] := _dword.%B1; - _data[39] := _dword.%B0; - - _dword := TO_DWORD((Outputs.Coordinates.Rz +REAL#360.0)*REAL#10000.0); - _data[40] := _dword.%B3; - _data[41] := _dword.%B2; - _data[42] := _dword.%B1; - _data[43] := _dword.%B0; - - returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdDO_64_bytes,_data); - Messenger.ActivateOnCondition(ULINT#704,returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF returnValue > WORD#0 THEN - RobotStatus.Error.Id := UINT#704; + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.X + REAL#10000.0)*REAL#10000.0)); + _data[20] := _dword.%B0; + _data[21] := _dword.%B1; + _data[22] := _dword.%B2; + _data[23] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Y +REAL#10000.0)*REAL#10000.0)); + _data[24] := _dword.%B0; + _data[25] := _dword.%B1; + _data[26] := _dword.%B2; + _data[27] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Z +REAL#10000.0)*REAL#10000.0)); + _data[28] := _dword.%B0; + _data[29] := _dword.%B1; + _data[30] := _dword.%B2; + _data[31] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Rx +REAL#360.0)*REAL#10000.0)); + _data[32] := _dword.%B0; + _data[33] := _dword.%B1; + _data[34] := _dword.%B2; + _data[35] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Ry +REAL#360.0)*REAL#10000.0)); + _data[36] := _dword.%B0; + _data[37] := _dword.%B1; + _data[38] := _dword.%B2; + _data[39] := _dword.%B3; + + _dword := TO_DWORD(TO_DINT((Outputs.Coordinates.Rz +REAL#360.0)*REAL#10000.0)); + _data[40] := _dword.%B0; + _data[41] := _dword.%B1; + _data[42] := _dword.%B2; + _data[43] := _dword.%B3; + + _retval := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdDO_64_bytes,_data); + IF _retval > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; END_IF; //******************************************* END_METHOD - METHOD PROTECTED OVERRIDE ManualControl - RobotStatus.CurrentMovementParameters := MovementParameters; + Status.CurrentMovementParameters := MovementParameters; END_METHOD /// @@ -1580,45 +1722,46 @@ NAMESPACE AXOpen.Components.Abb.Robotics StartMotorsTask.Restore(); StartMovementsTask.Restore(); StartMotorsProgramAndMovementsTask.Restore(); + Status.Action.Id := UINT#50; RestoreTask.DoneWhen(TRUE); END_METHOD METHOD PUBLIC StartAtMain : IAxoTaskState - StartAtMain := StartAtMainTask.Invoke(); + StartAtMain := StartAtMainTask.Invoke(THIS); END_METHOD METHOD PUBLIC StartMotorsAndProgram : IAxoTaskState - StartMotorsAndProgram := StartMotorsAndProgramTask.Invoke(); + StartMotorsAndProgram := StartMotorsAndProgramTask.Invoke(THIS); END_METHOD METHOD PUBLIC StartMotorsProgramAndMovements : IAxoTaskState VAR_IN_OUT inData : AxoRoboticsMovementsParams; END_VAR - RobotStatus.CurrentMovementParameters := inData; + Status.CurrentMovementParameters := inData; - StartMotorsProgramAndMovements := StartMotorsProgramAndMovementsTask.Invoke(); + StartMotorsProgramAndMovements := StartMotorsProgramAndMovementsTask.Invoke(THIS); END_METHOD METHOD PUBLIC StartMotors : IAxoTaskState - StartMotors := StartMotorsTask.Invoke(); + StartMotors := StartMotorsTask.Invoke(THIS); END_METHOD METHOD PUBLIC StartMovements : IAxoTaskState VAR_IN_OUT inData : AxoRoboticsMovementsParams; END_VAR - RobotStatus.CurrentMovementParameters := inData; + Status.CurrentMovementParameters := inData; - StartMovements := StartMovementsTask.Invoke(); + StartMovements := StartMovementsTask.Invoke(THIS); END_METHOD METHOD PUBLIC StartProgram : IAxoTaskState - StartProgram := StartProgramTask.Invoke(); + StartProgram := StartProgramTask.Invoke(THIS); END_METHOD METHOD PUBLIC StopMotors : IAxoTaskState - StopMotors := StopMotorsTask.Invoke(); + StopMotors := StopMotorsTask.Invoke(THIS); END_METHOD METHOD PUBLIC StopMovementsAndProgram : IAxoTaskState @@ -1626,7 +1769,7 @@ NAMESPACE AXOpen.Components.Abb.Robotics inStopType : eAxoRoboticsStopType; END_VAR _stopType := inStopType; - StopMovementsAndProgram := StopMovementsAndProgramTask.Invoke(); + StopMovementsAndProgram := StopMovementsAndProgramTask.Invoke(THIS); END_METHOD METHOD PUBLIC StopMovements : IAxoTaskState @@ -1634,14 +1777,13 @@ NAMESPACE AXOpen.Components.Abb.Robotics inStopType : eAxoRoboticsStopType; END_VAR _stopType := inStopType; - StopMovements := StopMovementsTask.Invoke(); + StopMovements := StopMovementsTask.Invoke(THIS); END_METHOD METHOD PUBLIC StopProgram : IAxoTaskState - StopProgram := StopProgramTask.Invoke(); + StopProgram := StopProgramTask.Invoke(THIS); END_METHOD - METHOD PRIVATE CallTimers VAR_INPUT signal : BOOL; diff --git a/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoAbbRobotics_Component_Status_v_1_x_x/AxoAbbRobotics_Component_Status_v_1_x_x.cs b/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoAbbRobotics_Component_Status_v_1_x_x/AxoAbbRobotics_Component_Status_v_1_x_x.cs index 6955af7ec..741e0e38c 100644 --- a/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoAbbRobotics_Component_Status_v_1_x_x/AxoAbbRobotics_Component_Status_v_1_x_x.cs +++ b/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoAbbRobotics_Component_Status_v_1_x_x/AxoAbbRobotics_Component_Status_v_1_x_x.cs @@ -21,65 +21,103 @@ public string ErrorDescription if (errorDescriptionDict.Count == 0) { errorDescriptionDict.Add(0, " "); - errorDescriptionDict.Add(600, "Waiting for the signal Inputs.PpMoved to be set!"); - errorDescriptionDict.Add(610, "Waiting for the signal Inputs.AutoOn to be set!"); - errorDescriptionDict.Add(611, "Waiting for the signal Inputs.Error to be reseted!"); - errorDescriptionDict.Add(612, "Waiting for the signal Inputs.EmgStop to be reseted!"); - errorDescriptionDict.Add(613, "Waiting for the signal Inputs.MotorOnState to be set!"); - errorDescriptionDict.Add(614, "Waiting for the signal Inputs.CycleOn to be set!"); - errorDescriptionDict.Add(615, "Waiting for the signal Inputs.Error to be reseted!"); - errorDescriptionDict.Add(620, "Waiting for the signal Inputs.AutoOn to be set!"); - errorDescriptionDict.Add(621, "Waiting for the signal Inputs.Error to be reseted!"); - errorDescriptionDict.Add(622, "Waiting for the signal Inputs.EmgStop to be reseted!"); - errorDescriptionDict.Add(623, "Waiting for the signal Inputs.MotorOnState to be set!"); - errorDescriptionDict.Add(624, "Waiting for the signal Inputs.CycleOn to be set!"); - errorDescriptionDict.Add(625, "Waiting for the signal Inputs.Error to be reseted!"); - errorDescriptionDict.Add(626, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(627, "Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `."); - errorDescriptionDict.Add(628, "Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `."); - errorDescriptionDict.Add(629, "Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `."); - errorDescriptionDict.Add(630, "Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `."); - errorDescriptionDict.Add(631, "Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `."); - errorDescriptionDict.Add(632, "Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `."); - errorDescriptionDict.Add(633, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(634, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(635, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(640, "Waiting for the signal Inputs.AutoOn to be set!"); - errorDescriptionDict.Add(641, "Waiting for the signal Inputs.Error to be reseted!"); - errorDescriptionDict.Add(642, "Waiting for the signal Inputs.EmgStop to be reseted!"); - errorDescriptionDict.Add(643, "Waiting for the signal Inputs.MotorOnState to be set!"); - errorDescriptionDict.Add(644, "Waiting for the signal Inputs.Error to be reseted!"); - errorDescriptionDict.Add(650, "Waiting for the signal Inputs.CycleOn to be set!"); - errorDescriptionDict.Add(651, "Waiting for the signal Inputs.MotorOnState to be set!"); - errorDescriptionDict.Add(652, "Waiting for the signal Inputs.Error to be reseted!"); - errorDescriptionDict.Add(653, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(654, "Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `."); - errorDescriptionDict.Add(655, "Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `."); - errorDescriptionDict.Add(656, "Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `."); - errorDescriptionDict.Add(657, "Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `."); - errorDescriptionDict.Add(658, "Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `."); - errorDescriptionDict.Add(659, "Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `."); - errorDescriptionDict.Add(660, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(661, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(662, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(670, "Waiting for the signal Inputs.CycleOn to be set!"); - errorDescriptionDict.Add(671, "Waiting for the signal Inputs.SystemInputBusy to be reseted!"); - errorDescriptionDict.Add(680, "Waiting for the signal Inputs.MotorOffState to be set!"); - errorDescriptionDict.Add(681, "Waiting for the signal Inputs.SystemInputBusy to be reseted!"); - errorDescriptionDict.Add(690, "Waiting for the signal Inputs.MoveInactive to be set!"); - errorDescriptionDict.Add(691, "Waiting for the signal Inputs.CycleOn to be reseted!"); - errorDescriptionDict.Add(692, "Waiting for the signal Inputs.MoveInactive to be set!"); - errorDescriptionDict.Add(693, "Waiting for the signal Inputs.CycleOn to be reseted!"); - - errorDescriptionDict.Add(700, "Error: Parent has NULL reference!"); - errorDescriptionDict.Add(701, "Input variable `hwIdDI_64_bytes` has invalid value in `Run` method!"); - errorDescriptionDict.Add(702, "Input variable `hwIdDO_64_bytes` has invalid value in `Run` method!"); - errorDescriptionDict.Add(703, "Error reading the hwIdDI_64_bytes in the UpdateInputs method!"); - errorDescriptionDict.Add(704, "Error writing the hwIdDO_64_bytes in the UpdateOutputs method!"); - errorDescriptionDict.Add(705, "Emergency stop active!"); - errorDescriptionDict.Add(706, "Safety Error !"); - errorDescriptionDict.Add(707, "Program execution error!"); + errorDescriptionDict.Add(500, "Waiting for the signal Inputs.PpMoved to be set!"); + errorDescriptionDict.Add(510, "Waiting for the signal Inputs.AutoOn to be set!"); + errorDescriptionDict.Add(511, "Waiting for the signal Inputs.Error to be reseted!"); + errorDescriptionDict.Add(512, "Waiting for the signal Inputs.EmgStop to be reseted!"); + errorDescriptionDict.Add(513, "Waiting for the signal Inputs.MotorOnState to be set!"); + errorDescriptionDict.Add(514, "Waiting for the signal Inputs.CycleOn to be set!"); + errorDescriptionDict.Add(515, "Waiting for the signal Inputs.Error to be reseted!"); + errorDescriptionDict.Add(520, "Waiting for the signal Inputs.AutoOn to be set!"); + errorDescriptionDict.Add(521, "Waiting for the signal Inputs.Error to be reseted!"); + errorDescriptionDict.Add(522, "Waiting for the signal Inputs.EmgStop to be reseted!"); + errorDescriptionDict.Add(523, "Waiting for the signal Inputs.MotorOnState to be set!"); + errorDescriptionDict.Add(524, "Waiting for the signal Inputs.CycleOn to be set!"); + errorDescriptionDict.Add(525, "Waiting for the signal Inputs.Error to be reseted!"); + errorDescriptionDict.Add(526, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(527, "Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `."); + errorDescriptionDict.Add(528, "Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `."); + errorDescriptionDict.Add(529, "Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `."); + errorDescriptionDict.Add(530, "Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `."); + errorDescriptionDict.Add(531, "Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `."); + errorDescriptionDict.Add(532, "Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `."); + errorDescriptionDict.Add(533, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(534, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(535, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(540, "Waiting for the signal Inputs.AutoOn to be set!"); + errorDescriptionDict.Add(541, "Waiting for the signal Inputs.Error to be reseted!"); + errorDescriptionDict.Add(542, "Waiting for the signal Inputs.EmgStop to be reseted!"); + errorDescriptionDict.Add(543, "Waiting for the signal Inputs.MotorOnState to be set!"); + errorDescriptionDict.Add(544, "Waiting for the signal Inputs.Error to be reseted!"); + errorDescriptionDict.Add(550, "Waiting for the signal Inputs.CycleOn to be set!"); + errorDescriptionDict.Add(551, "Waiting for the signal Inputs.MotorOnState to be set!"); + errorDescriptionDict.Add(552, "Waiting for the signal Inputs.Error to be reseted!"); + errorDescriptionDict.Add(553, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(554, "Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `."); + errorDescriptionDict.Add(555, "Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `."); + errorDescriptionDict.Add(556, "Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `."); + errorDescriptionDict.Add(557, "Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `."); + errorDescriptionDict.Add(558, "Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `."); + errorDescriptionDict.Add(559, "Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `."); + errorDescriptionDict.Add(560, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(561, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(562, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(570, "Waiting for the signal Inputs.CycleOn to be set!"); + errorDescriptionDict.Add(571, "Waiting for the signal Inputs.SystemInputBusy to be reseted!"); + errorDescriptionDict.Add(580, "Waiting for the signal Inputs.MotorOffState to be set!"); + errorDescriptionDict.Add(581, "Waiting for the signal Inputs.SystemInputBusy to be reseted!"); + errorDescriptionDict.Add(590, "Waiting for the signal Inputs.MoveInactive to be set!"); + errorDescriptionDict.Add(591, "Waiting for the signal Inputs.CycleOn to be reseted!"); + errorDescriptionDict.Add(600, "Waiting for the signal Inputs.MoveInactive to be set!"); + errorDescriptionDict.Add(610, "Waiting for the signal Inputs.CycleOn to be reseted!"); + // General alarm + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!"); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)."); + errorDescriptionDict.Add(710, "Hw configuration error. Value of _hwIdDI_64_bytes is zero."); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1."); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1."); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1."); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1."); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1."); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module with 64 input bytes (GsdId=1)."); + errorDescriptionDict.Add(720, "Hw configuration error. Value of _hwIdDO_64_bytes is zero."); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2."); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2."); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2."); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2."); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2."); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module with 64 output bytes (GsdId=2)."); + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!"); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1132, "Input variable `hwIdDI_64_bytes` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1133, "Input variable `hwIdDO_64_bytes` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1201, "Error reading the hwIdDI_64_bytes!" ); + errorDescriptionDict.Add(1231, "Error writing the _hwIdDO_64_bytes!"); + errorDescriptionDict.Add(10000, "Start at main finished with error!"); + errorDescriptionDict.Add(10001, "Start at main was aborted, while not yet completed!"); + errorDescriptionDict.Add(10010, "Start motors and program finished with error!"); + errorDescriptionDict.Add(10011, "Start motors and program was aborted, while not yet completed!"); + errorDescriptionDict.Add(10020, "Start motors program and movements finished with error!"); + errorDescriptionDict.Add(10021, "Start motors program and movements was aborted, while not yet completed!"); + errorDescriptionDict.Add(10040, "Start motors finished with error!"); + errorDescriptionDict.Add(10041, "Start motors was aborted, while not yet completed!"); + errorDescriptionDict.Add(10050, "Start movements finished with error!"); + errorDescriptionDict.Add(10051, "Start movements was aborted, while not yet completed!"); + errorDescriptionDict.Add(10070, "Start program finished with error!"); + errorDescriptionDict.Add(10071, "Start program was aborted, while not yet completed!"); + errorDescriptionDict.Add(10080, "Stop motors finished with error!"); + errorDescriptionDict.Add(10081, "Stop motors was aborted, while not yet completed!"); + errorDescriptionDict.Add(10090, "Stop movements and program finished with error!"); + errorDescriptionDict.Add(10091, "Stop movements and program was aborted, while not yet completed!"); + errorDescriptionDict.Add(10100, "Stop movements finished with error!"); + errorDescriptionDict.Add(10101, "Stop movements was aborted, while not yet completed!"); + errorDescriptionDict.Add(10110, "Stop program finished with error!"); + errorDescriptionDict.Add(10111, "Stop program was aborted, while not yet completed!"); + errorDescriptionDict.Add(20001, "Emergency stop activated!"); + errorDescriptionDict.Add(20002, "Safety circuit interupted!"); + errorDescriptionDict.Add(20003, "Program error active!"); } string errorDescription = " "; @@ -268,27 +306,26 @@ public string ActionDescription actionDescriptionDict.Add(211, "Stop program finished succesfully"); actionDescriptionDict.Add(212, "Stop program restored."); - actionDescriptionDict.Add(800, "Start at main finished with error!"); - actionDescriptionDict.Add(801, "Start at main was aborted, while not yet completed!"); - actionDescriptionDict.Add(810, "Start motors and program finished with error!"); - actionDescriptionDict.Add(811, "Start motors and program was aborted, while not yet completed!"); - actionDescriptionDict.Add(820, "Start motors program and movements finished with error!"); - actionDescriptionDict.Add(821, "Start motors program and movements was aborted, while not yet completed!"); - actionDescriptionDict.Add(840, "Start motors finished with error!"); - actionDescriptionDict.Add(841, "Start motors was aborted, while not yet completed!"); - actionDescriptionDict.Add(850, "Start movements finished with error!"); - actionDescriptionDict.Add(851, "Start movements was aborted, while not yet completed!"); - actionDescriptionDict.Add(870, "Start program finished with error!"); - actionDescriptionDict.Add(871, "Start program was aborted, while not yet completed!"); - actionDescriptionDict.Add(880, "Stop motors finished with error!"); - actionDescriptionDict.Add(881, "Stop motors was aborted, while not yet completed!"); - actionDescriptionDict.Add(890, "Stop movements and program finished with error!"); - actionDescriptionDict.Add(891, "Stop movements and program was aborted, while not yet completed!"); - actionDescriptionDict.Add(900, "Stop movements finished with error!"); - actionDescriptionDict.Add(901, "Stop movements was aborted, while not yet completed!"); - actionDescriptionDict.Add(910, "Stop program finished with error!"); - actionDescriptionDict.Add(911, "Stop program was aborted, while not yet completed!"); - + actionDescriptionDict.Add(10000, "Start at main finished with error!"); + actionDescriptionDict.Add(10001, "Start at main was aborted, while not yet completed!"); + actionDescriptionDict.Add(10010, "Start motors and program finished with error!"); + actionDescriptionDict.Add(10011, "Start motors and program was aborted, while not yet completed!"); + actionDescriptionDict.Add(10020, "Start motors program and movements finished with error!"); + actionDescriptionDict.Add(10021, "Start motors program and movements was aborted, while not yet completed!"); + actionDescriptionDict.Add(10040, "Start motors finished with error!"); + actionDescriptionDict.Add(10041, "Start motors was aborted, while not yet completed!"); + actionDescriptionDict.Add(10050, "Start movements finished with error!"); + actionDescriptionDict.Add(10051, "Start movements was aborted, while not yet completed!"); + actionDescriptionDict.Add(10070, "Start program finished with error!"); + actionDescriptionDict.Add(10071, "Start program was aborted, while not yet completed!"); + actionDescriptionDict.Add(10080, "Stop motors finished with error!"); + actionDescriptionDict.Add(10081, "Stop motors was aborted, while not yet completed!"); + actionDescriptionDict.Add(10090, "Stop movements and program finished with error!"); + actionDescriptionDict.Add(10091, "Stop movements and program was aborted, while not yet completed!"); + actionDescriptionDict.Add(10100, "Stop movements finished with error!"); + actionDescriptionDict.Add(10101, "Stop movements was aborted, while not yet completed!"); + actionDescriptionDict.Add(10110, "Stop program finished with error!"); + actionDescriptionDict.Add(10111, "Stop program was aborted, while not yet completed!"); } diff --git a/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoIrc5_v_1_x_x/AxoIrc5_v_1_x_x.cs b/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoIrc5_v_1_x_x/AxoIrc5_v_1_x_x.cs index d864470e4..e933db23c 100644 --- a/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoIrc5_v_1_x_x/AxoIrc5_v_1_x_x.cs +++ b/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoIrc5_v_1_x_x/AxoIrc5_v_1_x_x.cs @@ -75,38 +75,61 @@ private void InitializeMessenger() new KeyValuePair(211, new AxoMessengerTextItem("Stop program finished succesfully.", "")), new KeyValuePair(212, new AxoMessengerTextItem("Stop program restored.", "")), - - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwIdDI_64_bytes` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdDI_64_bytes` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("Input variable `hwIdDO_64_bytes` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdDO_64_bytes` parameter is assigned.")), - - new KeyValuePair(703, new AxoMessengerTextItem("Error reading the hwIdDI_64_bytes in the UpdateInputs method!", "Check the value of the hwIdDI_64_bytes and reacheability of the device!")), - new KeyValuePair(704, new AxoMessengerTextItem("Error writing the hwIdDO_64_bytes in the UpdateOutputs method!", "Check the value of the hwIdDO_64_bytes and reacheability of the device!")), - new KeyValuePair(705, new AxoMessengerTextItem("Emergency stop activated!", "Check the status of the `Inputs.EmgStop` signal. Required value is 'FALSE'")), - new KeyValuePair(706, new AxoMessengerTextItem("Safety circuit interupted!", "Check the status of the `Inputs.SafetyOk` signal.Required value is 'TRUE'")), - new KeyValuePair(705, new AxoMessengerTextItem("Program error active!", "Check the status of the `Inputs.ProgExecError` signal. Required value is 'FALSE'")), - - new KeyValuePair(800, new AxoMessengerTextItem("Start at main finished with error!", "Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("Start at main was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(810, new AxoMessengerTextItem("Start motors and program finished with error!", "Check the details.")), - new KeyValuePair(811, new AxoMessengerTextItem("Start motors and program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(820, new AxoMessengerTextItem("Start motors program and movements finished with error!", "Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("Start motors program and movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(840, new AxoMessengerTextItem("Start motors finished with error!", "Check the details.")), - new KeyValuePair(841, new AxoMessengerTextItem("Start motors was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(850, new AxoMessengerTextItem("Start movements finished with error!", "Check the details.")), - new KeyValuePair(851, new AxoMessengerTextItem("Start movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(870, new AxoMessengerTextItem("Start program finished with error!", "Check the details.")), - new KeyValuePair(871, new AxoMessengerTextItem("Start program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(880, new AxoMessengerTextItem("Stop motors finished with error!", "Check the details.")), - new KeyValuePair(881, new AxoMessengerTextItem("Stop motors was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(890, new AxoMessengerTextItem("Stop movements and program finished with error!", "Check the details.")), - new KeyValuePair(891, new AxoMessengerTextItem("Stop movements and program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(900, new AxoMessengerTextItem("Stop movements finished with error!", "Check the details.")), - new KeyValuePair(901, new AxoMessengerTextItem("Stop movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(910, new AxoMessengerTextItem("Stop program finished with error!", "Check the details.")), - new KeyValuePair(911, new AxoMessengerTextItem("Stop program was aborted, while not yet completed!", "Check the details.")), - + // General alarm + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdDI_64_bytes is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module with 64 input bytes (GsdId=1).","Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdDO_64_bytes is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module with 64 output bytes (GsdId=2).","Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwIdDI_64_bytes` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdDI_64_bytes` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `hwIdDO_64_bytes` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdDO_64_bytes` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the hwIdDI_64_bytes!" ,"Check the value of the _hwIdDI_64_bytes and reacheability of the device!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the _hwIdDO_64_bytes!" ,"Check the value of the _hwIdDO_64_bytes and reacheability of the device!")), + + new KeyValuePair(10000, new AxoMessengerTextItem("Start at main finished with error!" ,"Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("Start at main was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10010, new AxoMessengerTextItem("Start motors and program finished with error!" ,"Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("Start motors and program was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("Start motors program and movements finished with error!" ,"Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("Start motors program and movements was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10040, new AxoMessengerTextItem("Start motors finished with error!" ,"Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("Start motors was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10050, new AxoMessengerTextItem("Start movements finished with error!" ,"Check the details.")), + new KeyValuePair(10051, new AxoMessengerTextItem("Start movements was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10070, new AxoMessengerTextItem("Start program finished with error!" ,"Check the details.")), + new KeyValuePair(10071, new AxoMessengerTextItem("Start program was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10080, new AxoMessengerTextItem("Stop motors finished with error!" ,"Check the details.")), + new KeyValuePair(10081, new AxoMessengerTextItem("Stop motors was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10090, new AxoMessengerTextItem("Stop movements and program finished with error!" ,"Check the details.")), + new KeyValuePair(10091, new AxoMessengerTextItem("Stop movements and program was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10100, new AxoMessengerTextItem("Stop movements finished with error!" ,"Check the details.")), + new KeyValuePair(10101, new AxoMessengerTextItem("Stop movements was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10110, new AxoMessengerTextItem("Stop program finished with error!" ,"Check the details.")), + new KeyValuePair(10111, new AxoMessengerTextItem("Stop program was aborted, while not yet completed!" ,"Check the details.")), + + + new KeyValuePair(20001, new AxoMessengerTextItem("Emergency stop activated!" ,"Check the status of the `Inputs.EmgStop` signal. Required value is 'FALSE'")), + new KeyValuePair(20002, new AxoMessengerTextItem("Safety circuit interupted!" ,"Check the status of the `Inputs.SafetyOk` signal.Required value is 'TRUE'")), + new KeyValuePair(20003, new AxoMessengerTextItem("Program error active!" ,"Check the status of the `Inputs.ProgExecError` signal. Required value is 'FALSE'")), }; @@ -119,65 +142,65 @@ private void InitializeTaskMessenger() { new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(600, new AxoMessengerTextItem("Waiting for the signal Inputs.PpMoved to be set!", "Check the status of the `Inputs.PpMoved` signal.")), - - - new KeyValuePair(610, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), - new KeyValuePair(611, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(612, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(613, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), - new KeyValuePair(614, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), - new KeyValuePair(615, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - - new KeyValuePair(620, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), - new KeyValuePair(621, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(622, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(623, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), - new KeyValuePair(624, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), - new KeyValuePair(625, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(626, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(627, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), - new KeyValuePair(628, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), - new KeyValuePair(629, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), - new KeyValuePair(630, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), - new KeyValuePair(631, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), - new KeyValuePair(632, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), - new KeyValuePair(633, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), - new KeyValuePair(634, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(635, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - - new KeyValuePair(640, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), - new KeyValuePair(641, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(642, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(643, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), - new KeyValuePair(644, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - - new KeyValuePair(650, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), - new KeyValuePair(651, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), - new KeyValuePair(652, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(653, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(654, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), - new KeyValuePair(655, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), - new KeyValuePair(656, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), - new KeyValuePair(657, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), - new KeyValuePair(658, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), - new KeyValuePair(659, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), - new KeyValuePair(660, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), - new KeyValuePair(661, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(662, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - - new KeyValuePair(670, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), - new KeyValuePair(671, new AxoMessengerTextItem("Waiting for the signal Inputs.SystemInputBusy to be reseted!", "Check the status of the `SystemInputBusy` signal.")), - - new KeyValuePair(680, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOffState to be set!", "Check the status of the `Inputs.MotorOffState` signal.")), - new KeyValuePair(681, new AxoMessengerTextItem("Waiting for the signal Inputs.SystemInputBusy to be reseted!", "Check the status of the `SystemInputBusy` signal.")), - - new KeyValuePair(690, new AxoMessengerTextItem("Waiting for the signal Inputs.MoveInactive to be set!", "Check the status of the `Inputs.MoveInactive` signal.")), - new KeyValuePair(691, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be reseted!", "Check the status of the `CycleOn` signal.")), - - new KeyValuePair(692, new AxoMessengerTextItem("Waiting for the signal Inputs.MoveInactive to be set!", "Check the status of the `Inputs.MoveInactive` signal.")), - - new KeyValuePair(693, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be reseted!", "Check the status of the `CycleOn` signal.")), + new KeyValuePair(500, new AxoMessengerTextItem("Waiting for the signal Inputs.PpMoved to be set!", "Check the status of the `Inputs.PpMoved` signal.")), + + + new KeyValuePair(510, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), + new KeyValuePair(511, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(512, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(513, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), + new KeyValuePair(514, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), + new KeyValuePair(515, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + + new KeyValuePair(520, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), + new KeyValuePair(521, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(522, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(523, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), + new KeyValuePair(524, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), + new KeyValuePair(525, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(526, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(527, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), + new KeyValuePair(528, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), + new KeyValuePair(529, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), + new KeyValuePair(530, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), + new KeyValuePair(531, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), + new KeyValuePair(532, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), + new KeyValuePair(533, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), + new KeyValuePair(534, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(535, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + + new KeyValuePair(540, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), + new KeyValuePair(541, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(542, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(543, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), + new KeyValuePair(544, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + + new KeyValuePair(550, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), + new KeyValuePair(551, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), + new KeyValuePair(552, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(553, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(554, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), + new KeyValuePair(555, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), + new KeyValuePair(556, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), + new KeyValuePair(557, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), + new KeyValuePair(558, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), + new KeyValuePair(559, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), + new KeyValuePair(560, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), + new KeyValuePair(561, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(562, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + + new KeyValuePair(570, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), + new KeyValuePair(571, new AxoMessengerTextItem("Waiting for the signal Inputs.SystemInputBusy to be reseted!", "Check the status of the `SystemInputBusy` signal.")), + + new KeyValuePair(580, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOffState to be set!", "Check the status of the `Inputs.MotorOffState` signal.")), + new KeyValuePair(581, new AxoMessengerTextItem("Waiting for the signal Inputs.SystemInputBusy to be reseted!", "Check the status of the `SystemInputBusy` signal.")), + + new KeyValuePair(590, new AxoMessengerTextItem("Waiting for the signal Inputs.MoveInactive to be set!", "Check the status of the `Inputs.MoveInactive` signal.")), + new KeyValuePair(591, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be reseted!", "Check the status of the `CycleOn` signal.")), + + new KeyValuePair(600, new AxoMessengerTextItem("Waiting for the signal Inputs.MoveInactive to be set!", "Check the status of the `Inputs.MoveInactive` signal.")), + + new KeyValuePair(610, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be reseted!", "Check the status of the `CycleOn` signal.")), }; diff --git a/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoOmnicore_v_1_x_x/AxoOmnicore_v_1_x_x.cs b/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoOmnicore_v_1_x_x/AxoOmnicore_v_1_x_x.cs index eea67a744..18b91b6f8 100644 --- a/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoOmnicore_v_1_x_x/AxoOmnicore_v_1_x_x.cs +++ b/src/components.abb.robotics/src/AXOpen.Components.Abb.Robotics/AxoOmnicore_v_1_x_x/AxoOmnicore_v_1_x_x.cs @@ -25,6 +25,7 @@ partial void PostConstruct(ITwinObject parent, string readableTail, string symbo } } + private void InitializeMessenger() { List> messengerTextList = new List> @@ -72,41 +73,60 @@ private void InitializeMessenger() new KeyValuePair(211, new AxoMessengerTextItem("Stop program finished succesfully.", "")), new KeyValuePair(212, new AxoMessengerTextItem("Stop program restored.", "")), - - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwIdDI_64_bytes` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdDI_64_bytes` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("Input variable `hwIdDO_64_bytes` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdDO_64_bytes` parameter is assigned.")), - - new KeyValuePair(703, new AxoMessengerTextItem("Error reading the hwIdDI_64_bytes in the UpdateInputs method!", "Check the value of the hwIdDI_64_bytes and reacheability of the device!")), - - new KeyValuePair(704, new AxoMessengerTextItem("Error writing the hwIdDO_64_bytes in the UpdateOutputs method!", "Check the value of the hwIdDO_64_bytes and reacheability of the device!")), - - new KeyValuePair(705, new AxoMessengerTextItem("Emergency stop activated!", "Check the status of the `Inputs.EmgStop` signal. Required value is 'FALSE'")), - new KeyValuePair(706, new AxoMessengerTextItem("Safety circuit interupted!", "Check the status of the `Inputs.SafetyOk` signal.Required value is 'TRUE'")), - new KeyValuePair(705, new AxoMessengerTextItem("Program error active!", "Check the status of the `Inputs.ProgExecError` signal. Required value is 'FALSE'")), - - new KeyValuePair(800, new AxoMessengerTextItem("Start at main finished with error!", "Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("Start at main was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(810, new AxoMessengerTextItem("Start motors and program finished with error!", "Check the details.")), - new KeyValuePair(811, new AxoMessengerTextItem("Start motors and program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(820, new AxoMessengerTextItem("Start motors program and movements finished with error!", "Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("Start motors program and movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(840, new AxoMessengerTextItem("Start motors finished with error!", "Check the details.")), - new KeyValuePair(841, new AxoMessengerTextItem("Start motors was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(850, new AxoMessengerTextItem("Start movements finished with error!", "Check the details.")), - new KeyValuePair(851, new AxoMessengerTextItem("Start movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(870, new AxoMessengerTextItem("Start program finished with error!", "Check the details.")), - new KeyValuePair(871, new AxoMessengerTextItem("Start program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(880, new AxoMessengerTextItem("Stop motors finished with error!", "Check the details.")), - new KeyValuePair(881, new AxoMessengerTextItem("Stop motors was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(890, new AxoMessengerTextItem("Stop movements and program finished with error!", "Check the details.")), - new KeyValuePair(891, new AxoMessengerTextItem("Stop movements and program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(900, new AxoMessengerTextItem("Stop movements finished with error!", "Check the details.")), - new KeyValuePair(901, new AxoMessengerTextItem("Stop movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(910, new AxoMessengerTextItem("Stop program finished with error!", "Check the details.")), - new KeyValuePair(911, new AxoMessengerTextItem("Stop program was aborted, while not yet completed!", "Check the details.")), - - + // General alarm + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdDI_64_bytes is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module with 64 input bytes (GsdId=1).","Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdDO_64_bytes is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module with 64 output bytes (GsdId=2).","Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwIdDI_64_bytes` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdDI_64_bytes` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `hwIdDO_64_bytes` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdDO_64_bytes` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the hwIdDI_64_bytes!" ,"Check the value of the _hwIdDI_64_bytes and reacheability of the device!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the _hwIdDO_64_bytes!" ,"Check the value of the _hwIdDO_64_bytes and reacheability of the device!")), + + new KeyValuePair(10000, new AxoMessengerTextItem("Start at main finished with error!" ,"Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("Start at main was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10010, new AxoMessengerTextItem("Start motors and program finished with error!" ,"Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("Start motors and program was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("Start motors program and movements finished with error!" ,"Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("Start motors program and movements was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10040, new AxoMessengerTextItem("Start motors finished with error!" ,"Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("Start motors was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10050, new AxoMessengerTextItem("Start movements finished with error!" ,"Check the details.")), + new KeyValuePair(10051, new AxoMessengerTextItem("Start movements was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10070, new AxoMessengerTextItem("Start program finished with error!" ,"Check the details.")), + new KeyValuePair(10071, new AxoMessengerTextItem("Start program was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10080, new AxoMessengerTextItem("Stop motors finished with error!" ,"Check the details.")), + new KeyValuePair(10081, new AxoMessengerTextItem("Stop motors was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10090, new AxoMessengerTextItem("Stop movements and program finished with error!" ,"Check the details.")), + new KeyValuePair(10091, new AxoMessengerTextItem("Stop movements and program was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10100, new AxoMessengerTextItem("Stop movements finished with error!" ,"Check the details.")), + new KeyValuePair(10101, new AxoMessengerTextItem("Stop movements was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10110, new AxoMessengerTextItem("Stop program finished with error!" ,"Check the details.")), + new KeyValuePair(10111, new AxoMessengerTextItem("Stop program was aborted, while not yet completed!" ,"Check the details.")), + + new KeyValuePair(20001, new AxoMessengerTextItem("Emergency stop activated!" ,"Check the status of the `Inputs.EmgStop` signal. Required value is 'FALSE'")), + new KeyValuePair(20002, new AxoMessengerTextItem("Safety circuit interupted!" ,"Check the status of the `Inputs.SafetyOk` signal.Required value is 'TRUE'")), + new KeyValuePair(20003, new AxoMessengerTextItem("Program error active!" ,"Check the status of the `Inputs.ProgExecError` signal. Required value is 'FALSE'")), }; Messenger.DotNetMessengerTextList = messengerTextList; @@ -117,65 +137,65 @@ private void InitializeTaskMessenger() List> messengerTextList = new List> { new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(600, new AxoMessengerTextItem("Waiting for the signal Inputs.PpMoved to be set!", "Check the status of the `Inputs.PpMoved` signal.")), - - - new KeyValuePair(610, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), - new KeyValuePair(611, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(612, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(613, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), - new KeyValuePair(614, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), - new KeyValuePair(615, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - - new KeyValuePair(620, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), - new KeyValuePair(621, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(622, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(623, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), - new KeyValuePair(624, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), - new KeyValuePair(625, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(626, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(627, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), - new KeyValuePair(628, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), - new KeyValuePair(629, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), - new KeyValuePair(630, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), - new KeyValuePair(631, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), - new KeyValuePair(632, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), - new KeyValuePair(633, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), - new KeyValuePair(634, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(635, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - - new KeyValuePair(640, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), - new KeyValuePair(641, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(642, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(643, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), - new KeyValuePair(644, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - - new KeyValuePair(650, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), - new KeyValuePair(651, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), - new KeyValuePair(652, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), - new KeyValuePair(653, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(654, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), - new KeyValuePair(655, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), - new KeyValuePair(656, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), - new KeyValuePair(657, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), - new KeyValuePair(658, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), - new KeyValuePair(659, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), - new KeyValuePair(660, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), - new KeyValuePair(661, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(662, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - - new KeyValuePair(670, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), - new KeyValuePair(671, new AxoMessengerTextItem("Waiting for the signal Inputs.SystemInputBusy to be reseted!", "Check the status of the `SystemInputBusy` signal.")), - - new KeyValuePair(680, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOffState to be set!", "Check the status of the `Inputs.MotorOffState` signal.")), - new KeyValuePair(681, new AxoMessengerTextItem("Waiting for the signal Inputs.SystemInputBusy to be reseted!", "Check the status of the `SystemInputBusy` signal.")), - - new KeyValuePair(690, new AxoMessengerTextItem("Waiting for the signal Inputs.MoveInactive to be set!", "Check the status of the `Inputs.MoveInactive` signal.")), - new KeyValuePair(691, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be reseted!", "Check the status of the `CycleOn` signal.")), - - new KeyValuePair(692, new AxoMessengerTextItem("Waiting for the signal Inputs.MoveInactive to be set!", "Check the status of the `Inputs.MoveInactive` signal.")), - - new KeyValuePair(693, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be reseted!", "Check the status of the `CycleOn` signal.")), + + new KeyValuePair(500, new AxoMessengerTextItem("Waiting for the signal Inputs.PpMoved to be set!", "Check the status of the `Inputs.PpMoved` signal.")), + + new KeyValuePair(510, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), + new KeyValuePair(511, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(512, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(513, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), + new KeyValuePair(514, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), + new KeyValuePair(515, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + + new KeyValuePair(520, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), + new KeyValuePair(521, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(522, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(523, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), + new KeyValuePair(524, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), + new KeyValuePair(525, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(526, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(527, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), + new KeyValuePair(528, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), + new KeyValuePair(529, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), + new KeyValuePair(530, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), + new KeyValuePair(531, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), + new KeyValuePair(532, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), + new KeyValuePair(533, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), + new KeyValuePair(534, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(535, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + + new KeyValuePair(540, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoOn to be set!", "Check the status of the `Inputs.PpMoved` signal.")), + new KeyValuePair(541, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(542, new AxoMessengerTextItem("Waiting for the signal Inputs.EmgStop to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(543, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), + new KeyValuePair(544, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + + new KeyValuePair(550, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), + new KeyValuePair(551, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOnState to be set!", "Check the status of the `Inputs.MotorOnState` signal.")), + new KeyValuePair(552, new AxoMessengerTextItem("Waiting for the signal Inputs.Error to be reseted!", "Check the status of the `Error` signal.")), + new KeyValuePair(553, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(554, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), + new KeyValuePair(555, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), + new KeyValuePair(556, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), + new KeyValuePair(557, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), + new KeyValuePair(558, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), + new KeyValuePair(559, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), + new KeyValuePair(560, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), + new KeyValuePair(561, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(562, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + + new KeyValuePair(570, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be set!", "Check the status of the `Inputs.CycleOn` signal.")), + new KeyValuePair(571, new AxoMessengerTextItem("Waiting for the signal Inputs.SystemInputBusy to be reseted!", "Check the status of the `SystemInputBusy` signal.")), + + new KeyValuePair(580, new AxoMessengerTextItem("Waiting for the signal Inputs.MotorOffState to be set!", "Check the status of the `Inputs.MotorOffState` signal.")), + new KeyValuePair(581, new AxoMessengerTextItem("Waiting for the signal Inputs.SystemInputBusy to be reseted!", "Check the status of the `SystemInputBusy` signal.")), + + new KeyValuePair(590, new AxoMessengerTextItem("Waiting for the signal Inputs.MoveInactive to be set!", "Check the status of the `Inputs.MoveInactive` signal.")), + new KeyValuePair(591, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be reseted!", "Check the status of the `CycleOn` signal.")), + + new KeyValuePair(600, new AxoMessengerTextItem("Waiting for the signal Inputs.MoveInactive to be set!", "Check the status of the `Inputs.MoveInactive` signal.")), + + new KeyValuePair(610, new AxoMessengerTextItem("Waiting for the signal Inputs.CycleOn to be reseted!", "Check the status of the `CycleOn` signal.")), }; diff --git a/src/components.abstractions/app/apax.yml b/src/components.abstractions/app/apax.yml index b30bbc8cb..53311af4a 100644 --- a/src/components.abstractions/app/apax.yml +++ b/src/components.abstractions/app/apax.yml @@ -1,12 +1,12 @@ -name: "components.abstractions-app" +name: "components.abstractions-app" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Abstractions" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,144 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/components.abstractions/ctrl/apax.yml b/src/components.abstractions/ctrl/apax.yml index 8c6eece52..0ae3e3559 100644 --- a/src/components.abstractions/ctrl/apax.yml +++ b/src/components.abstractions/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.core": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.abstractions/ctrl/src/AxoDrives/IAxoDrive.st b/src/components.abstractions/ctrl/src/AxoDrives/IAxoDrive.st index 7e1ec8010..f0d261513 100644 --- a/src/components.abstractions/ctrl/src/AxoDrives/IAxoDrive.st +++ b/src/components.abstractions/ctrl/src/AxoDrives/IAxoDrive.st @@ -12,7 +12,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoHalt : AXOpen.Core.IAxoTaskState @@ -26,7 +26,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoHome : AXOpen.Core.IAxoTaskState @@ -43,7 +43,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoMoveAbsolute : AXOpen.Core.IAxoTaskState @@ -62,7 +62,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoMoveRelative : AXOpen.Core.IAxoTaskState @@ -80,7 +80,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoMoveAdditive : AXOpen.Core.IAxoTaskState @@ -98,7 +98,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoMoveVelocity : AXOpen.Core.IAxoTaskState @@ -116,7 +116,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoTorqueControl: AXOpen.Core.IAxoTaskState @@ -137,7 +137,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoSetPosition : AXOpen.Core.IAxoTaskState @@ -149,7 +149,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives VAR_OUTPUT Done : BOOL; // ‘Position’ has new value Error : BOOL; // Signals that an error has occurred within the FunctionBlock - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoSetOverride : AXOpen.Core.IAxoToggleTask @@ -163,7 +163,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Enabled : BOOL; // Signals that the override factor(s) is (are) set successfully Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the FumethodnctionBlock - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoReadParameter : AXOpen.Core.IAxoToggleTask @@ -175,7 +175,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : LINT; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR END_METHOD @@ -188,7 +188,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : REAL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR END_METHOD @@ -201,7 +201,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR END_METHOD @@ -215,7 +215,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoWriteRealParameter : AXOpen.Core.IAxoTaskState @@ -228,7 +228,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoWriteBoolParameter : AXOpen.Core.IAxoTaskState @@ -241,7 +241,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoReadDigitalInput : AXOpen.Core.IAxoToggleTask @@ -253,7 +253,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected input signal END_VAR END_METHOD @@ -266,7 +266,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected output signal END_VAR END_METHOD @@ -280,7 +280,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Done : BOOL; // Writing of the output signal value is done Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD METHOD AxoReadActualPosition : AXOpen.Core.IAxoToggleTask @@ -291,7 +291,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Position : LREAL; // New absolute position (in axis’ unit [u]) END_VAR END_METHOD @@ -303,7 +303,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Velocity : LREAL; // The value of the actual velocity (in axis’ unit [u/s]) END_VAR END_METHOD @@ -315,7 +315,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Torque : LREAL; // The value of the actual torque or force (in technical units) END_VAR END_METHOD @@ -327,7 +327,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ErrorStop : BOOL; // See state diagram Disabled : BOOL; // See state diagram Stopping : BOOL; // See state diagram @@ -347,7 +347,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ConstantVelocity: BOOL; // Velocity is constant. Velocity may be 0. For the actual value a window is applicable (window is vendor specific) Accelerating : BOOL; // Increasing the absolute value of the velocity Decelerating : BOOL; // Decreasing the absolute value of the velocity @@ -363,7 +363,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification HomeAbsSwitch : BOOL; // Digital home switch input is active LimitSwitchPos : BOOL; // Positive hardware end switch is active LimitSwitchNeg : BOOL; // Negative hardware end switch is active @@ -383,7 +383,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification AxisErrorID : DWORD; // The value of the axis error. These values are vendor specific END_VAR END_METHOD @@ -392,7 +392,7 @@ NAMESPACE AXOpen.Components.Abstractions.Drives Done : BOOL; // ‘Standstill’ or ‘Disabled’ state is reached Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD END_INTERFACE diff --git a/src/components.balluff.identification/app/apax.yml b/src/components.balluff.identification/app/apax.yml index 4e25604d8..35a18fd32 100644 --- a/src/components.balluff.identification/app/apax.yml +++ b/src/components.balluff.identification/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.balluff.identification" +name: "app_axopen.components.balluff.identification" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Balluff.Identification" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,144 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/components.balluff.identification/ctrl/apax.yml b/src/components.balluff.identification/ctrl/apax.yml index 4dd207541..11e3ec281 100644 --- a/src/components.balluff.identification/ctrl/apax.yml +++ b/src/components.balluff.identification/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.io": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.balluff.identification/ctrl/src/Axo_BIS_M_4XX_045.st b/src/components.balluff.identification/ctrl/src/Axo_BIS_M_4XX_045.st index 6fd965ae0..a49f19ee4 100644 --- a/src/components.balluff.identification/ctrl/src/Axo_BIS_M_4XX_045.st +++ b/src/components.balluff.identification/ctrl/src/Axo_BIS_M_4XX_045.st @@ -4,6 +4,7 @@ USING AXOpen.Messaging; USING AXOpen.Messaging.Static; USING System.Strings; USING System.Serialization; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Balluff.Identification {S7.extern=ReadWrite} @@ -13,7 +14,6 @@ NAMESPACE AXOpen.Components.Balluff.Identification _infoTime : LTIME := LT#2S; _errorTimer : AXOpen.Timers.OnDelayTimer; _errorTime : LTIME := LT#5S; - _blink : AXOpen.Timers.AxoBlinker; _context : IAxoContext; _someTaskIsActive : BOOL; _hwID : WORD; @@ -27,7 +27,6 @@ NAMESPACE AXOpen.Components.Balluff.Identification _writeCharAddress : WORD; _writeCharNumberOfBytes : WORD; _CommandDesignator : BYTE; - _StartAddress : WORD; _NumberOfBytes : WORD; _LastTogleBitValue : BOOL; @@ -55,7 +54,17 @@ NAMESPACE AXOpen.Components.Balluff.Identification returnValue : WORD; _tempString_8 : STRING[8]; _index : INT; - + _StartAddress : WORD; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _blink : AXOpen.Timers.AxoBlinker; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR VAR PUBLIC //HEADER @@ -122,7 +131,7 @@ NAMESPACE AXOpen.Components.Balluff.Identification {#ix-attr:[Container(Layout.Stack)]} {#ix-attr:[ComponentDetails("Status")]} {#ix-attr:[ReadOnly()]} - ReaderStatus : Axo_BIS_M_4XX_045_Component_Status; + Status : Axo_BIS_M_4XX_045_Component_Status; Messenger : AXOpen.Messaging.Static.AxoMessenger; TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; _progress : INT := 0; @@ -169,25 +178,77 @@ NAMESPACE AXOpen.Components.Balluff.Identification Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwId_BISM = WORD#0, eAxoMessageCategory#ProgrammingError); - IF parent = NULL THEN - ReaderStatus.Error.Id := UINT#700; - RETURN; - ELSIF hwId_BISM = WORD#0 THEN - ReaderStatus.Error.Id := UINT#701; - RETURN; + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_BISM := TO_WORD(_outHwid); + IF _hwId_BISM = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_BISM , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#10 OR _outputsCount <> UINT#10 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; END_IF; - _hwID := hwID ; + _hwID := hwID ; _hwId_BISM := hwId_BISM; //***********UPDATE**INPUTS****************** returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwId_BISM ,_data); - Messenger.ActivateOnCondition(ULINT#703,returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF returnValue > WORD#0 THEN - ReaderStatus.Error.Id := UINT#703; + Messenger.Activate(UINT#1201,eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; @@ -220,19 +281,18 @@ NAMESPACE AXOpen.Components.Balluff.Identification IF Inputs.BitHeader2_CodeTagPresent AND NOT _codeTagPresent_PV THEN _data[0] := BYTE#8; - Deserialize(UINT#0,_data,ReaderStatus.UID); + Deserialize(UINT#0,_data,Status.UID); ELSIF NOT Inputs.BitHeader2_CodeTagPresent AND _codeTagPresent_PV THEN - ReaderStatus.UID := ''; + Status.UID := ''; END_IF; _codeTagPresent_PV := Inputs.BitHeader2_CodeTagPresent; IF Inputs.BitHeader2_Power AND NOT _power_PV THEN - ReaderStatus.VersionHighByte := Inputs.Data[0]; - ReaderStatus.VersionLowByte := Inputs.Data[4]; + Status.VersionHighByte := Inputs.Data[0]; + Status.VersionLowByte := Inputs.Data[4]; END_IF; _power_PV := Inputs.BitHeader2_Power; - //******************************************* _context := THIS.GetContext(); @@ -263,23 +323,23 @@ NAMESPACE AXOpen.Components.Balluff.Identification //*************ReadTask************ ReadTask.IsDisabled := FALSE; IF ReadTask.StartTriggered() THEN - ReaderStatus.Action.Id := UINT#100; + Status.Action.Id := UINT#100; END_IF; Messenger.ActivateOnCondition(ULINT#100,ReadTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#101,ReadTask.IsDone(), eAxoMessageCategory#Info); IF ReadTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - ReaderStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 300; END_IF; IF _progress = 300 THEN - TaskMessenger.ActivateOnCondition(ULINT#500, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#500; + TaskMessenger.Activate( UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; END_IF; IF Inputs.BitHeader1_CodeTagPresent THEN @@ -289,16 +349,16 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 301 THEN - TaskMessenger.ActivateOnCondition(ULINT#501, _infoTimer.output AND Inputs.BitHeader1_JobAccepted, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#502, _infoTimer.output AND Inputs.BitHeader1_JobEnd, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#503, _infoTimer.output AND Inputs.BitHeader1_ToggleBit, eAxoMessageCategory#Warning); IF _infoTimer.output THEN IF Inputs.BitHeader1_JobAccepted THEN - ReaderStatus.Error.Id := UINT#501; + TaskMessenger.Activate( UINT#501, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#501; ELSIF Inputs.BitHeader1_JobEnd THEN - ReaderStatus.Error.Id := UINT#502; + TaskMessenger.Activate( UINT#502, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#502; ELSIF Inputs.BitHeader1_ToggleBit THEN - ReaderStatus.Error.Id := UINT#503; + TaskMessenger.Activate( UINT#503, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#503; END_IF; END_IF; _CommandDesignator := BYTE#16#0; @@ -315,7 +375,7 @@ NAMESPACE AXOpen.Components.Balluff.Identification AND NOT Inputs.BitHeader1_ToggleBit) THEN THIS.CallTimers(FALSE); _progress:=304; - // ------- compute couts buffer to read ---- + // ------- compute counts buffer to read ---- _lenghtInLastReadedBuffer := TO_INT( _readNumberOfBytes) MOD INT#8; _buffersCountToRead := TO_INT( _readNumberOfBytes) / INT#8; _readedBuffersCount := INT#0 ; @@ -328,9 +388,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 304 THEN - TaskMessenger.ActivateOnCondition(ULINT#504, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#504; + TaskMessenger.Activate( UINT#504, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#504; END_IF; // Set job datas @@ -346,9 +406,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 305 THEN - TaskMessenger.ActivateOnCondition(ULINT#505, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#505; + TaskMessenger.Activate( UINT#505, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#505; END_IF; IF Inputs.BitHeader1_JobAccepted THEN @@ -359,10 +419,11 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 306 THEN - TaskMessenger.ActivateOnCondition(ULINT#506, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#506; + TaskMessenger.Activate( UINT#506, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#506; END_IF; + _data[0] := BYTE#8; Deserialize(UINT#0, _data , _tempString_8); _ReadWriteData := Concat(_ReadWriteData,_tempString_8); @@ -376,9 +437,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 307 THEN - TaskMessenger.ActivateOnCondition(ULINT#507, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#507; + TaskMessenger.Activate( UINT#507, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#507; END_IF; Outputs.BitHeader1_ToggleBit := NOT Outputs.BitHeader1_ToggleBit; @@ -391,11 +452,10 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 308 THEN - TaskMessenger.ActivateOnCondition(ULINT#508, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#508; + TaskMessenger.Activate( UINT#508, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#508; END_IF; - IF(_LastTogleBitValue <> Inputs.BitHeader1_ToggleBit) THEN _progress := 306; @@ -412,9 +472,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 309 THEN - TaskMessenger.ActivateOnCondition(ULINT#509, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#509; + TaskMessenger.Activate( UINT#509, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#509; END_IF; i := PositionOf(_ReadWriteData,_RestCharacter); @@ -437,23 +497,23 @@ NAMESPACE AXOpen.Components.Balluff.Identification THIS.CallTimers(TRUE); ReadTask.ThrowWhen(_errorTimer.output ); - ReaderStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF ReadTask.DoneReached() THEN - ReaderStatus.Action.Id := UINT#101; - ReaderStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#101; + Status.Error.Id := UINT#0; ELSIF ReadTask.ErrorOccured() THEN - ReaderStatus.Action.Id := UINT#800; - ReaderStatus.Error.Id := UINT#800; + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; ELSIF ReadTask.AbortTriggered()THEN - ReaderStatus.Action.Id := UINT#801; - ReaderStatus.Error.Id := UINT#801; + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,ReadTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,ReadTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10000,ReadTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,ReadTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,ReadTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ReadTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN - ReaderStatus.Action.Id := UINT#102; + Status.Action.Id := UINT#102; _progress := 0; END_IF; //******************************************* @@ -462,7 +522,7 @@ NAMESPACE AXOpen.Components.Balluff.Identification //***********WriteTask******* WriteTask.IsDisabled := FALSE; IF WriteTask.StartTriggered() THEN - ReaderStatus.Action.Id := UINT#120; + Status.Action.Id := UINT#120; END_IF; Messenger.ActivateOnCondition(ULINT#120,WriteTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#121,WriteTask.IsDone(), eAxoMessageCategory#Info); @@ -470,23 +530,23 @@ NAMESPACE AXOpen.Components.Balluff.Identification _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - ReaderStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 320; END_IF; IF _progress = 0 THEN - ReaderStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 320; END_IF; IF _progress = 320 THEN - TaskMessenger.ActivateOnCondition(ULINT#520, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#520; + TaskMessenger.Activate( UINT#520, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#520; END_IF; IF Inputs.BitHeader1_CodeTagPresent THEN @@ -496,9 +556,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 321 THEN - TaskMessenger.ActivateOnCondition(ULINT#521, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#521; + TaskMessenger.Activate( UINT#521, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#521; END_IF; _DataToWrite := ''; @@ -523,16 +583,16 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 322 THEN - TaskMessenger.ActivateOnCondition(ULINT#522, _infoTimer.output AND Inputs.BitHeader1_JobAccepted, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#523, _infoTimer.output AND Inputs.BitHeader1_JobEnd, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#524, _infoTimer.output AND Inputs.BitHeader1_ToggleBit, eAxoMessageCategory#Warning); IF _infoTimer.output THEN IF Inputs.BitHeader1_JobAccepted THEN - ReaderStatus.Error.Id := UINT#522; + TaskMessenger.Activate( UINT#522, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#522; ELSIF Inputs.BitHeader1_JobEnd THEN - ReaderStatus.Error.Id := UINT#523; + TaskMessenger.Activate( UINT#523, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#523; ELSIF Inputs.BitHeader1_ToggleBit THEN - ReaderStatus.Error.Id := UINT#524; + TaskMessenger.Activate( UINT#524, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#524; END_IF; END_IF; @@ -553,9 +613,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 325 THEN - TaskMessenger.ActivateOnCondition(ULINT#525, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#525; + TaskMessenger.Activate( UINT#525, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#525; END_IF; // Set job datas @@ -574,9 +634,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 326 THEN - TaskMessenger.ActivateOnCondition(ULINT#526, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#526; + TaskMessenger.Activate( UINT#526, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#526; END_IF; Outputs.BitHeader1_Job := TRUE; @@ -590,9 +650,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 327 THEN - TaskMessenger.ActivateOnCondition(ULINT#527, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#527; + TaskMessenger.Activate( UINT#527, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#527; END_IF; _singleLoopIndex := 0; @@ -617,9 +677,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 328 THEN - TaskMessenger.ActivateOnCondition(ULINT#528, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#528; + TaskMessenger.Activate( UINT#528, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#528; END_IF; Outputs.BitHeader1_ToggleBit := NOT Outputs.BitHeader1_ToggleBit; @@ -631,9 +691,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 329 THEN - TaskMessenger.ActivateOnCondition(ULINT#529, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#529; + TaskMessenger.Activate( UINT#529, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#529; END_IF; IF _LastTogleBitValue <> Inputs.BitHeader1_ToggleBit THEN @@ -647,13 +707,13 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 330 THEN - TaskMessenger.ActivateOnCondition(ULINT#530, _infoTimer.output AND Inputs.BitHeader1_JobAccepted, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#531, _infoTimer.output AND Inputs.BitHeader1_JobError, eAxoMessageCategory#Warning); IF _infoTimer.output THEN IF Inputs.BitHeader1_JobAccepted THEN - ReaderStatus.Error.Id := UINT#530; + TaskMessenger.Activate( UINT#530, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#530; ELSIF Inputs.BitHeader1_JobError THEN - ReaderStatus.Error.Id := UINT#531; + TaskMessenger.Activate( UINT#531, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#531; END_IF; END_IF; @@ -673,23 +733,23 @@ NAMESPACE AXOpen.Components.Balluff.Identification THIS.CallTimers(TRUE); WriteTask.ThrowWhen(_errorTimer.output); - ReaderStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF WriteTask.DoneReached() THEN - ReaderStatus.Action.Id := UINT#121; - ReaderStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#121; + Status.Error.Id := UINT#0; ELSIF WriteTask.ErrorOccured() THEN - ReaderStatus.Action.Id := UINT#820; - ReaderStatus.Error.Id := UINT#820; + Status.Action.Id := UINT#10020; + Status.Error.Id := UINT#10020; ELSIF WriteTask.AbortTriggered() THEN - ReaderStatus.Action.Id := UINT#821; - ReaderStatus.Error.Id := UINT#821; + Status.Action.Id := UINT#10021; + Status.Error.Id := UINT#10021; END_IF; - Messenger.ActivateOnCondition(ULINT#820,WriteTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#821,WriteTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10020,WriteTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10021,WriteTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#122,WriteTask.RestoreTriggered() , eAxoMessageCategory#Error); IF WriteTask.RestoreTriggered() AND _progress >= 320 AND _progress <= 339 THEN - ReaderStatus.Action.Id := UINT#122; + Status.Action.Id := UINT#122; _progress := 0; END_IF; //******************************************* @@ -697,7 +757,7 @@ NAMESPACE AXOpen.Components.Balluff.Identification //****ResetCommunicationTask***** ResetCommunicationTask.IsDisabled := FALSE; IF ResetCommunicationTask.StartTriggered() THEN - ReaderStatus.Action.Id := UINT#140; + Status.Action.Id := UINT#140; END_IF; Messenger.ActivateOnCondition(ULINT#140,ResetCommunicationTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#141,ResetCommunicationTask.IsDone(), eAxoMessageCategory#Info); @@ -705,16 +765,16 @@ NAMESPACE AXOpen.Components.Balluff.Identification _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - ReaderStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 340; END_IF; IF _progress = 340 THEN - TaskMessenger.ActivateOnCondition(ULINT#540, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#540; + TaskMessenger.Activate( UINT#540, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#540; END_IF; WriteTask.Restore(); @@ -729,9 +789,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 341 THEN - TaskMessenger.ActivateOnCondition(ULINT#541, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#541; + TaskMessenger.Activate( UINT#541, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#541; END_IF; Outputs.BitHeader1_Job := FALSE; // ResetSet AV @@ -755,26 +815,26 @@ NAMESPACE AXOpen.Components.Balluff.Identification THIS.CallTimers(TRUE); ResetCommunicationTask.ThrowWhen(_errorTimer.output); - ReaderStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF ResetCommunicationTask.IsFirstExecutionCycle() THEN ; END_IF; IF ResetCommunicationTask.DoneReached() THEN - ReaderStatus.Action.Id := UINT#141; - ReaderStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#141; + Status.Error.Id := UINT#0; ELSIF ResetCommunicationTask.ErrorOccured() THEN - ReaderStatus.Action.Id := UINT#840; - ReaderStatus.Error.Id := UINT#840; + Status.Action.Id := UINT#10040; + Status.Error.Id := UINT#10040; ELSIF ResetCommunicationTask.AbortTriggered() THEN - ReaderStatus.Action.Id := UINT#841; - ReaderStatus.Error.Id := UINT#841; + Status.Action.Id := UINT#10041; + Status.Error.Id := UINT#10041; END_IF; - Messenger.ActivateOnCondition(ULINT#840,ResetCommunicationTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#841,ResetCommunicationTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10040,ResetCommunicationTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10041,ResetCommunicationTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#142,ResetCommunicationTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ResetCommunicationTask.RestoreTriggered() AND _progress >= 340 AND _progress <= 349 THEN - ReaderStatus.Action.Id := UINT#142; + Status.Action.Id := UINT#142; _progress := 0; END_IF; //******************************************* @@ -782,7 +842,7 @@ NAMESPACE AXOpen.Components.Balluff.Identification //***********ResetReaderTask***************** ResetReaderTask.IsDisabled := FALSE; IF ResetReaderTask.StartTriggered() THEN - ReaderStatus.Action.Id := UINT#150; + Status.Action.Id := UINT#150; END_IF; Messenger.ActivateOnCondition(ULINT#150,ResetReaderTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#151,ResetReaderTask.IsDone(), eAxoMessageCategory#Info); @@ -790,16 +850,16 @@ NAMESPACE AXOpen.Components.Balluff.Identification _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - ReaderStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 350; END_IF; IF _progress = 350 THEN - TaskMessenger.ActivateOnCondition(ULINT#550, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#550; + TaskMessenger.Activate( UINT#550, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#550; END_IF; Outputs.BitHeader1_GroundState := TRUE; // set GR @@ -822,9 +882,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 351 THEN - TaskMessenger.ActivateOnCondition(ULINT#551, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#551; + TaskMessenger.Activate( UINT#551, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#551; END_IF; Outputs.BitHeader1_GroundState := TRUE; @@ -836,9 +896,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 352 THEN - TaskMessenger.ActivateOnCondition(ULINT#552, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#552; + TaskMessenger.Activate( UINT#552, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#552; END_IF; Outputs.BitHeader1_GroundState := FALSE; @@ -857,23 +917,23 @@ NAMESPACE AXOpen.Components.Balluff.Identification THIS.CallTimers(TRUE); ResetReaderTask.ThrowWhen(_errorTimer.output); - ReaderStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF ResetReaderTask.DoneReached() THEN - ReaderStatus.Action.Id := UINT#141; - ReaderStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#141; + Status.Error.Id := UINT#0; ELSIF ResetReaderTask.ErrorOccured() THEN - ReaderStatus.Action.Id := UINT#850; - ReaderStatus.Error.Id := UINT#850; + Status.Action.Id := UINT#10050; + Status.Error.Id := UINT#10050; ELSIF ResetReaderTask.AbortTriggered() THEN - ReaderStatus.Action.Id := UINT#851; - ReaderStatus.Error.Id := UINT#851; + Status.Action.Id := UINT#10051; + Status.Error.Id := UINT#10051; END_IF; - Messenger.ActivateOnCondition(ULINT#850,ResetReaderTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#851,ResetReaderTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10050,ResetReaderTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10051,ResetReaderTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#152,ResetReaderTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ResetReaderTask.RestoreTriggered() AND _progress >= 350 AND _progress <= 359 THEN - ReaderStatus.Action.Id := UINT#152; + Status.Action.Id := UINT#152; _progress := 0; END_IF; //******************************************* @@ -881,22 +941,22 @@ NAMESPACE AXOpen.Components.Balluff.Identification //***********WriteCharToMemoryTask************** WriteCharToMemoryTask.IsDisabled := FALSE; IF WriteCharToMemoryTask.StartTriggered() THEN - ReaderStatus.Action.Id := UINT#160; + Status.Action.Id := UINT#160; END_IF; Messenger.ActivateOnCondition(ULINT#160,WriteCharToMemoryTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#161,WriteCharToMemoryTask.IsDone(), eAxoMessageCategory#Info); IF WriteCharToMemoryTask.Execute(THIS) THEN IF _progress = 0 THEN - ReaderStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 360; END_IF; IF _progress = 360 THEN - TaskMessenger.ActivateOnCondition(ULINT#560, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#560; + TaskMessenger.Activate( UINT#560, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#560; END_IF; IF Inputs.BitHeader1_CodeTagPresent THEN @@ -906,10 +966,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 361 THEN - TaskMessenger.ActivateOnCondition(ULINT#561, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#561; + TaskMessenger.Activate( UINT#561, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#561; END_IF; Outputs.BitHeader1_Job := TRUE; // set AV @@ -930,10 +989,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 362 THEN - TaskMessenger.ActivateOnCondition(ULINT#562, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#562; + TaskMessenger.Activate( UINT#562, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#562; END_IF; IF Inputs.BitHeader1_JobAccepted THEN @@ -948,10 +1006,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 363 THEN - TaskMessenger.ActivateOnCondition(ULINT#563, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#563; + TaskMessenger.Activate( UINT#563, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#563; END_IF; IF Inputs.BitHeader1_JobEnd THEN @@ -967,10 +1024,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 366 THEN - TaskMessenger.ActivateOnCondition(ULINT#566, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#566; + TaskMessenger.Activate( UINT#566, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#566; END_IF; Outputs.BitHeader1_Job := FALSE; // ResetSet AV @@ -984,10 +1040,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 367 THEN - TaskMessenger.ActivateOnCondition(ULINT#567, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#567; + TaskMessenger.Activate( UINT#567, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#567; END_IF; IF NOT Inputs.BitHeader1_JobAccepted THEN @@ -997,10 +1052,9 @@ NAMESPACE AXOpen.Components.Balluff.Identification END_IF; IF _progress = 368 THEN - TaskMessenger.ActivateOnCondition(ULINT#568, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - ReaderStatus.Error.Id := UINT#568; + TaskMessenger.Activate( UINT#568, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#568; END_IF; IF NOT Inputs.BitHeader1_JobError THEN @@ -1018,26 +1072,26 @@ NAMESPACE AXOpen.Components.Balluff.Identification WriteCharToMemoryTask.ThrowWhen(_errorTimer.output); - ReaderStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF WriteCharToMemoryTask.IsFirstExecutionCycle() THEN ; END_IF; IF WriteCharToMemoryTask.DoneReached() THEN - ReaderStatus.Action.Id := UINT#161; - ReaderStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#161; + Status.Error.Id := UINT#0; ELSIF WriteCharToMemoryTask.ErrorOccured() THEN - ReaderStatus.Action.Id := UINT#860; - ReaderStatus.Error.Id := UINT#860; + Status.Action.Id := UINT#10060; + Status.Error.Id := UINT#10060; ELSIF WriteCharToMemoryTask.AbortTriggered() THEN - ReaderStatus.Action.Id := UINT#861; - ReaderStatus.Error.Id := UINT#861; + Status.Action.Id := UINT#10061; + Status.Error.Id := UINT#10061; END_IF; - Messenger.ActivateOnCondition(ULINT#860,WriteCharToMemoryTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#861,WriteCharToMemoryTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10060,WriteCharToMemoryTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10061,WriteCharToMemoryTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#162,WriteCharToMemoryTask.RestoreTriggered() , eAxoMessageCategory#Error); IF WriteCharToMemoryTask.RestoreTriggered() AND _progress >= 360 AND _progress <= 369 THEN - ReaderStatus.Action.Id := UINT#162; + Status.Action.Id := UINT#162; _progress := 0; END_IF; //******************************************* @@ -1084,16 +1138,15 @@ NAMESPACE AXOpen.Components.Balluff.Identification _data[9] := _data[0]; returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwId_BISM,_data); - Messenger.ActivateOnCondition(ULINT#704,returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF returnValue > WORD#0 THEN - ReaderStatus.Error.Id := UINT#704; + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; END_IF; //******************************************* END_METHOD - METHOD PROTECTED OVERRIDE ManualControl _readAddress := ReadAddress; _readNumberOfBytes := ReadNumberOfBytes; @@ -1113,7 +1166,7 @@ NAMESPACE AXOpen.Components.Balluff.Identification ResetCommunicationTask.Restore(); ResetReaderTask.Restore(); WriteCharToMemoryTask.Restore(); - ReaderStatus.Action.Id := UINT#50; + Status.Action.Id := UINT#50; RestoreTask.DoneWhen(TRUE); END_METHOD diff --git a/src/components.balluff.identification/src/AXOpen.Components.Balluff.Identification/Axo_BIS_M_4XX_045/Axo_BIS_M_4XX_045.cs b/src/components.balluff.identification/src/AXOpen.Components.Balluff.Identification/Axo_BIS_M_4XX_045/Axo_BIS_M_4XX_045.cs index d2c4be66a..57b5a0a64 100644 --- a/src/components.balluff.identification/src/AXOpen.Components.Balluff.Identification/Axo_BIS_M_4XX_045/Axo_BIS_M_4XX_045.cs +++ b/src/components.balluff.identification/src/AXOpen.Components.Balluff.Identification/Axo_BIS_M_4XX_045/Axo_BIS_M_4XX_045.cs @@ -53,23 +53,35 @@ private void InitializeMessenger() new KeyValuePair(162, new AxoMessengerTextItem("Write char to memory restored.", "")), - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId_BISM` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwId_BISM` parameter is assigned.")), - - new KeyValuePair(703, new AxoMessengerTextItem("Error reading the hwId_BISM in the UpdateInputs method!", "Check the value of the hwId_BISM and reacheability of the device!")), - - new KeyValuePair(704, new AxoMessengerTextItem("Error writing the hwId_BISM in the UpdateOutputs method!", "Check the value of the hwId_BISM and reacheability of the device!")), - - new KeyValuePair(800, new AxoMessengerTextItem("Read finished with error!", "Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("Read was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(820, new AxoMessengerTextItem("Write finished with error!", "Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("Write was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(840, new AxoMessengerTextItem("Reset communication finished with error!", "Check the details.")), - new KeyValuePair(841, new AxoMessengerTextItem("Reset communication was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(850, new AxoMessengerTextItem("Reset reader finished with error!", "Check the details.")), - new KeyValuePair(851, new AxoMessengerTextItem("Reset reader was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(860, new AxoMessengerTextItem("Write char to memory finished with error!", "Check the details.")), - new KeyValuePair(861, new AxoMessengerTextItem("Write char to memory was aborted, while not yet completed!", "Check the details.")), + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwId_BISM is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'ID_Mod_BIS_M_4XX_045'." ,"Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwId_BISM` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_BISM` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the hwId_BISM!" ,"Check the value of the hwId_BISM and reacheability of the device!")), + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the hwId_BISM!" ,"Check the value of the hwId_BISM and reacheability of the device!")), + + new KeyValuePair(10000, new AxoMessengerTextItem("Read finished with error!", "Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("Read was aborted, while not yet completed!", "Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("Write finished with error!", "Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("Write was aborted, while not yet completed!", "Check the details.")), + new KeyValuePair(10040, new AxoMessengerTextItem("Reset communication finished with error!", "Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("Reset communication was aborted, while not yet completed!", "Check the details.")), + new KeyValuePair(10050, new AxoMessengerTextItem("Reset reader finished with error!", "Check the details.")), + new KeyValuePair(10051, new AxoMessengerTextItem("Reset reader was aborted, while not yet completed!", "Check the details.")), + new KeyValuePair(10060, new AxoMessengerTextItem("Write char to memory finished with error!", "Check the details.")), + new KeyValuePair(10061, new AxoMessengerTextItem("Write char to memory was aborted, while not yet completed!", "Check the details.")), }; diff --git a/src/components.balluff.identification/src/AXOpen.Components.Balluff.Identification/Axo_BIS_M_4XX_045_Component_Status/Axo_BIS_M_4XX_045_Component_Status.cs b/src/components.balluff.identification/src/AXOpen.Components.Balluff.Identification/Axo_BIS_M_4XX_045_Component_Status/Axo_BIS_M_4XX_045_Component_Status.cs index cf3f34dca..84d64fa7a 100644 --- a/src/components.balluff.identification/src/AXOpen.Components.Balluff.Identification/Axo_BIS_M_4XX_045_Component_Status/Axo_BIS_M_4XX_045_Component_Status.cs +++ b/src/components.balluff.identification/src/AXOpen.Components.Balluff.Identification/Axo_BIS_M_4XX_045_Component_Status/Axo_BIS_M_4XX_045_Component_Status.cs @@ -1,4 +1,5 @@ -using System; +using AXOpen.Messaging.Static; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -40,24 +41,31 @@ public string ErrorDescription errorDescriptionDict.Add(567,"Waiting for the signal Inputs.BitHeader1_JobAccepted to be reseted!"); errorDescriptionDict.Add(568,"Waiting for the signal Inputs.BitHeader1_JobError to be reseted!"); - - errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(701, "Input variable `hwId_BISM` has invalid value in `Run` method!"); - - errorDescriptionDict.Add(703, "Error reading the hwId_BISM in the UpdateInputs method!"); - errorDescriptionDict.Add(704, "Error writing the hwId_BISM in the UpdateOutputs method!"); - - errorDescriptionDict.Add(800, "Read finished with error!"); - errorDescriptionDict.Add(801, "Read was aborted, while not yet completed!"); - errorDescriptionDict.Add(820, "Write finished with error!"); - errorDescriptionDict.Add(821, "Write was aborted, while not yet completed!"); - errorDescriptionDict.Add(840, "Reset communication finished with error!"); - errorDescriptionDict.Add(841, "Reset communication was aborted, while not yet completed!"); - errorDescriptionDict.Add(850, "Reset reader finished with error!"); - errorDescriptionDict.Add(851, "Reset reader was aborted, while not yet completed!"); - errorDescriptionDict.Add(860, "Write char to memory finished with error!"); - errorDescriptionDict.Add(861, "Write char to memory was aborted, while not yet completed!"); - + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!"); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)."); + errorDescriptionDict.Add(710, "Hw configuration error. Value of hwId_BISM is zero."); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1."); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1."); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1."); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1."); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1."); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'ID_Mod_BIS_M_4XX_045'."); + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!"); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1132, "Input variable `hwId_BISM` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1201, "Error reading the hwId_BISM!"); + errorDescriptionDict.Add(1231, "Error writing the hwId_BISM!"); + errorDescriptionDict.Add(10000, "Read finished with error!"); + errorDescriptionDict.Add(10001, "Read was aborted, while not yet completed!"); + errorDescriptionDict.Add(10020, "Write finished with error!"); + errorDescriptionDict.Add(10021, "Write was aborted, while not yet completed!"); + errorDescriptionDict.Add(10040, "Reset communication finished with error!"); + errorDescriptionDict.Add(10041, "Reset communication was aborted, while not yet completed!"); + errorDescriptionDict.Add(10050, "Reset reader finished with error!"); + errorDescriptionDict.Add(10051, "Reset reader was aborted, while not yet completed!"); + errorDescriptionDict.Add(10060, "Write char to memory finished with error!"); + errorDescriptionDict.Add(10061, "Write char to memory was aborted, while not yet completed!"); } string errorDescription = " "; @@ -178,16 +186,16 @@ public string ActionDescription actionDescriptionDict.Add(162, "Write char to memory restored."); - actionDescriptionDict.Add(800, "Read finished with error!"); - actionDescriptionDict.Add(801, "Read was aborted, while not yet completed!"); - actionDescriptionDict.Add(820, "Write finished with error!"); - actionDescriptionDict.Add(821, "Write was aborted, while not yet completed!"); - actionDescriptionDict.Add(840, "Reset communication finished with error!"); - actionDescriptionDict.Add(841, "Reset communication was aborted, while not yet completed!"); - actionDescriptionDict.Add(850, "Reset reader finished with error!"); - actionDescriptionDict.Add(851, "Reset reader was aborted, while not yet completed!"); - actionDescriptionDict.Add(860, "Write char to memory finished with error!"); - actionDescriptionDict.Add(861, "Write char to memory was aborted, while not yet completed!"); + actionDescriptionDict.Add(10000, "Read finished with error!"); + actionDescriptionDict.Add(10001, "Read was aborted, while not yet completed!"); + actionDescriptionDict.Add(10020, "Write finished with error!"); + actionDescriptionDict.Add(10021, "Write was aborted, while not yet completed!"); + actionDescriptionDict.Add(10040, "Reset communication finished with error!"); + actionDescriptionDict.Add(10041, "Reset communication was aborted, while not yet completed!"); + actionDescriptionDict.Add(10050, "Reset reader finished with error!"); + actionDescriptionDict.Add(10051, "Reset reader was aborted, while not yet completed!"); + actionDescriptionDict.Add(10060, "Write char to memory finished with error!"); + actionDescriptionDict.Add(10061, "Write char to memory was aborted, while not yet completed!"); } diff --git a/src/components.cognex.vision/app/SystemConstants/plc_line_1518_HwIdentifiers.st b/src/components.cognex.vision/app/SystemConstants/plc_line_1518_HwIdentifiers.st deleted file mode 100644 index 0c90ab7d5..000000000 --- a/src/components.cognex.vision/app/SystemConstants/plc_line_1518_HwIdentifiers.st +++ /dev/null @@ -1,75 +0,0 @@ -CONFIGURATION HardwareIDs - VAR_GLOBAL CONSTANT - dm_280_HwID : UINT := UINT#299; - dm_280_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#309; - dm_280_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#306; - dm_280_Rack_HwID : UINT := UINT#301; - dm_280_Result_Data_128_bytes_Result_Data___128_bytes_HwID : UINT := UINT#303; - dm_280_Results_Control_Results_Control_HwID : UINT := UINT#308; - dm_280_Results_Status_Results_Status_HwID : UINT := UINT#305; - dm_280_Soft_Event_Control_Soft_Event_Control_HwID : UINT := UINT#307; - dm_280_User_Data_128_bytes_User_Data___128_bytes_HwID : UINT := UINT#304; - dm_280_dm_280_HwID : UINT := UINT#302; - dm_280_dm_280_DataMan_280_CC_B_HwID : UINT := UINT#310; - dm_280_dm_280_profinet_HwID : UINT := UINT#298; - dm_280_dm_280_profinet_Port_1_HwID : UINT := UINT#300; - dm_300_HwID : UINT := UINT#286; - dm_300_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#296; - dm_300_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#293; - dm_300_Rack_HwID : UINT := UINT#288; - dm_300_Result_Data_64_bytes_Result_Data___64_bytes_HwID : UINT := UINT#290; - dm_300_Results_Control_Results_Control_HwID : UINT := UINT#295; - dm_300_Results_Status_Results_Status_HwID : UINT := UINT#292; - dm_300_Soft_Event_Control_Soft_Event_Control_HwID : UINT := UINT#294; - dm_300_User_Data_64_bytes_User_Data___64_bytes_HwID : UINT := UINT#291; - dm_300_dm_300_HwID : UINT := UINT#289; - dm_300_dm_300_DataMan_300_HwID : UINT := UINT#297; - dm_300_dm_300_profinet_HwID : UINT := UINT#285; - dm_300_dm_300_profinet_Port_1_HwID : UINT := UINT#287; - is2800_HwID : UINT := UINT#258; - is2800_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#269; - is2800_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#264; - is2800_Command_Control_Command_Control_HwID : UINT := UINT#266; - is2800_Inspection_Control_Inspection_Control_HwID : UINT := UINT#268; - is2800_Inspection_Status_Inspection_Status_HwID : UINT := UINT#265; - is2800_Rack_HwID : UINT := UINT#260; - is2800_Result_Data_64_bytes_Results___64_bytes_HwID : UINT := UINT#262; - is2800_SoftEvent_Control_ExternalEvent_Control_HwID : UINT := UINT#267; - is2800_User_Data_64_bytes_User_Data___64_bytes_HwID : UINT := UINT#263; - is2800_is2800_HwID : UINT := UINT#261; - is2800_is2800_In_Sight_IS28XX_CC_B_HwID : UINT := UINT#270; - is2800_is2800_profinet_HwID : UINT := UINT#257; - is2800_is2800_profinet_Port_1_HwID : UINT := UINT#259; - is7600_HwID : UINT := UINT#272; - is7600_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#283; - is7600_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#279; - is7600_Command_Control_Command_Control_HwID : UINT := UINT#280; - is7600_Inspection_Control_Inspection_Control_HwID : UINT := UINT#282; - is7600_Inspection_Status_Inspection_Status_HwID : UINT := UINT#278; - is7600_Rack_HwID : UINT := UINT#274; - is7600_Result_Data_64_bytes_Results___64_bytes_HwID : UINT := UINT#276; - is7600_SoftEvent_Control_SoftEvent_Control_HwID : UINT := UINT#281; - is7600_User_Data_64_bytes_User_Data___64_bytes_HwID : UINT := UINT#277; - is7600_is7600_HwID : UINT := UINT#275; - is7600_is7600_In_Sight_IS79XX_IS75XX_CC_B_HwID : UINT := UINT#284; - is7600_is7600_profinet_HwID : UINT := UINT#271; - is7600_is7600_profinet_Port_1_HwID : UINT := UINT#273; - plc_line_1518_HwID : UINT := UINT#32; - plc_line_1518_Rail_0_HwID : UINT := UINT#311; - plc_line_1518_plc_line_1518_HwID : UINT := UINT#48; - plc_line_1518_plc_line_1518_CPU_display_1_HwID : UINT := UINT#54; - plc_line_1518_plc_line_1518_Card_reader_writer_1_HwID : UINT := UINT#51; - plc_line_1518_plc_line_1518_OPC_UA_1_HwID : UINT := UINT#117; - plc_line_1518_plc_line_1518_Virtual_communication_interface_HwID : UINT := UINT#135; - plc_line_1518_plc_line_1518_profinet_x1_HwID : UINT := UINT#64; - plc_line_1518_plc_line_1518_profinet_x1_Port_1_HwID : UINT := UINT#65; - plc_line_1518_plc_line_1518_profinet_x1_Port_2_HwID : UINT := UINT#66; - plc_line_1518_plc_line_1518_profinet_x2_HwID : UINT := UINT#72; - plc_line_1518_plc_line_1518_profinet_x2_Port_3_HwID : UINT := UINT#73; - plc_line_1518_plc_line_1518_profinet_x2_Port_4_HwID : UINT := UINT#74; - plc_line_1518_plc_line_1518_profinet_x3_HwID : UINT := UINT#120; - plc_line_1518_plc_line_1518_profinet_x3_Port_5_HwID : UINT := UINT#121; - profinet_plc_line_1518_HwID : UINT := UINT#256; - - END_VAR -END_CONFIGURATION diff --git a/src/components.cognex.vision/app/SystemConstants/plc_line_1518_IoAddresses.st b/src/components.cognex.vision/app/SystemConstants/plc_line_1518_IoAddresses.st deleted file mode 100644 index 9ce1de623..000000000 --- a/src/components.cognex.vision/app/SystemConstants/plc_line_1518_IoAddresses.st +++ /dev/null @@ -1,165 +0,0 @@ -CONFIGURATION IoAddresses - VAR_GLOBAL - dm_280_Acquisition_Control_OutputAddress AT %QB343: BYTE; - dm_280_Acquisition_Status_InputAddress_0 AT %IB373: BYTE; - dm_280_Acquisition_Status_InputAddress_1 AT %IB374: BYTE; - dm_280_Acquisition_Status_InputAddress_2 AT %IB375: BYTE; - dm_280_Result_Data_128_bytes_InputAddress_0 AT %IL236: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_1 AT %IL244: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_2 AT %IL252: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_3 AT %IL260: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_4 AT %IL268: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_5 AT %IL276: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_6 AT %IL284: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_7 AT %IL292: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_8 AT %IL300: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_9 AT %IL308: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_10 AT %IL316: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_11 AT %IL324: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_12 AT %IL332: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_13 AT %IL340: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_14 AT %IL348: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_15 AT %IL356: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_16 AT %IL364: LWORD; - dm_280_Results_Control_OutputAddress AT %QB342: BYTE; - dm_280_Results_Status_InputAddress AT %IB372: BYTE; - dm_280_Soft_Event_Control_InputAddress AT %IB376: BYTE; - dm_280_Soft_Event_Control_OutputAddress AT %QB341: BYTE; - dm_280_User_Data_128_bytes_OutputAddress_0 AT %QD209: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_1 AT %QD213: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_2 AT %QD217: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_3 AT %QD221: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_4 AT %QD225: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_5 AT %QD229: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_6 AT %QD233: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_7 AT %QD237: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_8 AT %QD241: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_9 AT %QD245: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_10 AT %QD249: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_11 AT %QD253: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_12 AT %QD257: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_13 AT %QD261: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_14 AT %QD265: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_15 AT %QD269: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_16 AT %QD273: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_17 AT %QD277: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_18 AT %QD281: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_19 AT %QD285: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_20 AT %QD289: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_21 AT %QD293: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_22 AT %QD297: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_23 AT %QD301: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_24 AT %QD305: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_25 AT %QD309: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_26 AT %QD313: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_27 AT %QD317: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_28 AT %QD321: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_29 AT %QD325: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_30 AT %QD329: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_31 AT %QD333: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_32 AT %QD337: DWORD; - dm_300_Acquisition_Control_OutputAddress AT %QB208: BYTE; - dm_300_Acquisition_Status_InputAddress_0 AT %IB232: BYTE; - dm_300_Acquisition_Status_InputAddress_1 AT %IB233: BYTE; - dm_300_Acquisition_Status_InputAddress_2 AT %IB234: BYTE; - dm_300_Result_Data_64_bytes_InputAddress_0 AT %IL159: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_1 AT %IL167: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_2 AT %IL175: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_3 AT %IL183: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_4 AT %IL191: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_5 AT %IL199: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_6 AT %IL207: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_7 AT %IL215: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_8 AT %IL223: LWORD; - dm_300_Results_Control_OutputAddress AT %QB207: BYTE; - dm_300_Results_Status_InputAddress AT %IB231: BYTE; - dm_300_Soft_Event_Control_InputAddress AT %IB235: BYTE; - dm_300_Soft_Event_Control_OutputAddress AT %QB206: BYTE; - dm_300_User_Data_64_bytes_OutputAddress_0 AT %QD138: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_1 AT %QD142: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_2 AT %QD146: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_3 AT %QD150: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_4 AT %QD154: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_5 AT %QD158: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_6 AT %QD162: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_7 AT %QD166: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_8 AT %QD170: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_9 AT %QD174: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_10 AT %QD178: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_11 AT %QD182: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_12 AT %QD186: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_13 AT %QD190: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_14 AT %QD194: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_15 AT %QD198: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_16 AT %QD202: DWORD; - is2800_Acquisition_Control_OutputAddress AT %QB68: BYTE; - is2800_Acquisition_Status_InputAddress AT %ID68: DWORD; - is2800_Command_Control_InputAddress AT %ID76: DWORD; - is2800_Command_Control_OutputAddress AT %QW64: WORD; - is2800_Inspection_Control_OutputAddress AT %QB67: BYTE; - is2800_Inspection_Status_InputAddress AT %ID72: DWORD; - is2800_Result_Data_64_bytes_InputAddress_0 AT %ID0: DWORD; - is2800_Result_Data_64_bytes_InputAddress_1 AT %ID4: DWORD; - is2800_Result_Data_64_bytes_InputAddress_2 AT %ID8: DWORD; - is2800_Result_Data_64_bytes_InputAddress_3 AT %ID12: DWORD; - is2800_Result_Data_64_bytes_InputAddress_4 AT %ID16: DWORD; - is2800_Result_Data_64_bytes_InputAddress_5 AT %ID20: DWORD; - is2800_Result_Data_64_bytes_InputAddress_6 AT %ID24: DWORD; - is2800_Result_Data_64_bytes_InputAddress_7 AT %ID28: DWORD; - is2800_Result_Data_64_bytes_InputAddress_8 AT %ID32: DWORD; - is2800_Result_Data_64_bytes_InputAddress_9 AT %ID36: DWORD; - is2800_Result_Data_64_bytes_InputAddress_10 AT %ID40: DWORD; - is2800_Result_Data_64_bytes_InputAddress_11 AT %ID44: DWORD; - is2800_Result_Data_64_bytes_InputAddress_12 AT %ID48: DWORD; - is2800_Result_Data_64_bytes_InputAddress_13 AT %ID52: DWORD; - is2800_Result_Data_64_bytes_InputAddress_14 AT %ID56: DWORD; - is2800_Result_Data_64_bytes_InputAddress_15 AT %ID60: DWORD; - is2800_Result_Data_64_bytes_InputAddress_16 AT %ID64: DWORD; - is2800_SoftEvent_Control_InputAddress AT %IB80: BYTE; - is2800_SoftEvent_Control_OutputAddress AT %QB66: BYTE; - is2800_User_Data_64_bytes_OutputAddress_0 AT %QL0: LWORD; - is2800_User_Data_64_bytes_OutputAddress_1 AT %QL8: LWORD; - is2800_User_Data_64_bytes_OutputAddress_2 AT %QL16: LWORD; - is2800_User_Data_64_bytes_OutputAddress_3 AT %QL24: LWORD; - is2800_User_Data_64_bytes_OutputAddress_4 AT %QL32: LWORD; - is2800_User_Data_64_bytes_OutputAddress_5 AT %QL40: LWORD; - is2800_User_Data_64_bytes_OutputAddress_6 AT %QL48: LWORD; - is2800_User_Data_64_bytes_OutputAddress_7 AT %QL56: LWORD; - is7600_Acquisition_Control_OutputAddress AT %QB137: BYTE; - is7600_Acquisition_Status_InputAddress_0 AT %IB153: BYTE; - is7600_Acquisition_Status_InputAddress_1 AT %IB154: BYTE; - is7600_Acquisition_Status_InputAddress_2 AT %IB155: BYTE; - is7600_Command_Control_InputAddress AT %IW156: WORD; - is7600_Command_Control_OutputAddress AT %QW133: WORD; - is7600_Inspection_Control_OutputAddress AT %QB136: BYTE; - is7600_Inspection_Status_InputAddress AT %ID149: DWORD; - is7600_Result_Data_64_bytes_InputAddress_0 AT %ID81: DWORD; - is7600_Result_Data_64_bytes_InputAddress_1 AT %ID85: DWORD; - is7600_Result_Data_64_bytes_InputAddress_2 AT %ID89: DWORD; - is7600_Result_Data_64_bytes_InputAddress_3 AT %ID93: DWORD; - is7600_Result_Data_64_bytes_InputAddress_4 AT %ID97: DWORD; - is7600_Result_Data_64_bytes_InputAddress_5 AT %ID101: DWORD; - is7600_Result_Data_64_bytes_InputAddress_6 AT %ID105: DWORD; - is7600_Result_Data_64_bytes_InputAddress_7 AT %ID109: DWORD; - is7600_Result_Data_64_bytes_InputAddress_8 AT %ID113: DWORD; - is7600_Result_Data_64_bytes_InputAddress_9 AT %ID117: DWORD; - is7600_Result_Data_64_bytes_InputAddress_10 AT %ID121: DWORD; - is7600_Result_Data_64_bytes_InputAddress_11 AT %ID125: DWORD; - is7600_Result_Data_64_bytes_InputAddress_12 AT %ID129: DWORD; - is7600_Result_Data_64_bytes_InputAddress_13 AT %ID133: DWORD; - is7600_Result_Data_64_bytes_InputAddress_14 AT %ID137: DWORD; - is7600_Result_Data_64_bytes_InputAddress_15 AT %ID141: DWORD; - is7600_Result_Data_64_bytes_InputAddress_16 AT %ID145: DWORD; - is7600_SoftEvent_Control_InputAddress AT %IB158: BYTE; - is7600_SoftEvent_Control_OutputAddress AT %QB135: BYTE; - is7600_User_Data_64_bytes_OutputAddress_0 AT %QL69: LWORD; - is7600_User_Data_64_bytes_OutputAddress_1 AT %QL77: LWORD; - is7600_User_Data_64_bytes_OutputAddress_2 AT %QL85: LWORD; - is7600_User_Data_64_bytes_OutputAddress_3 AT %QL93: LWORD; - is7600_User_Data_64_bytes_OutputAddress_4 AT %QL101: LWORD; - is7600_User_Data_64_bytes_OutputAddress_5 AT %QL109: LWORD; - is7600_User_Data_64_bytes_OutputAddress_6 AT %QL117: LWORD; - is7600_User_Data_64_bytes_OutputAddress_7 AT %QL125: LWORD; - - END_VAR -END_CONFIGURATION diff --git a/src/components.cognex.vision/app/SystemConstants/plc_line_HwIdentifiers.st b/src/components.cognex.vision/app/SystemConstants/plc_line_HwIdentifiers.st index 0967cb061..d252c979f 100644 --- a/src/components.cognex.vision/app/SystemConstants/plc_line_HwIdentifiers.st +++ b/src/components.cognex.vision/app/SystemConstants/plc_line_HwIdentifiers.st @@ -1,61 +1,61 @@ CONFIGURATION HardwareIDs VAR_GLOBAL CONSTANT - dm_280_HwID : UINT := UINT#299; - dm_280_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#309; - dm_280_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#306; - dm_280_Rack_HwID : UINT := UINT#301; - dm_280_Result_Data_128_bytes_Result_Data___128_bytes_HwID : UINT := UINT#303; - dm_280_Results_Control_Results_Control_HwID : UINT := UINT#308; - dm_280_Results_Status_Results_Status_HwID : UINT := UINT#305; - dm_280_Soft_Event_Control_Soft_Event_Control_HwID : UINT := UINT#307; - dm_280_User_Data_128_bytes_User_Data___128_bytes_HwID : UINT := UINT#304; - dm_280_dm_280_HwID : UINT := UINT#302; - dm_280_dm_280_DataMan_280_CC_B_HwID : UINT := UINT#310; - dm_280_dm_280_profinet_HwID : UINT := UINT#298; - dm_280_dm_280_profinet_Port_1_HwID : UINT := UINT#300; - dm_300_HwID : UINT := UINT#286; - dm_300_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#296; - dm_300_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#293; - dm_300_Rack_HwID : UINT := UINT#288; - dm_300_Result_Data_64_bytes_Result_Data___64_bytes_HwID : UINT := UINT#290; - dm_300_Results_Control_Results_Control_HwID : UINT := UINT#295; - dm_300_Results_Status_Results_Status_HwID : UINT := UINT#292; - dm_300_Soft_Event_Control_Soft_Event_Control_HwID : UINT := UINT#294; - dm_300_User_Data_64_bytes_User_Data___64_bytes_HwID : UINT := UINT#291; - dm_300_dm_300_HwID : UINT := UINT#289; - dm_300_dm_300_DataMan_300_HwID : UINT := UINT#297; - dm_300_dm_300_profinet_HwID : UINT := UINT#285; - dm_300_dm_300_profinet_Port_1_HwID : UINT := UINT#287; - is2800_HwID : UINT := UINT#258; - is2800_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#269; - is2800_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#264; - is2800_Command_Control_Command_Control_HwID : UINT := UINT#266; - is2800_Inspection_Control_Inspection_Control_HwID : UINT := UINT#268; - is2800_Inspection_Status_Inspection_Status_HwID : UINT := UINT#265; - is2800_Rack_HwID : UINT := UINT#260; - is2800_Result_Data_64_bytes_Results___64_bytes_HwID : UINT := UINT#262; - is2800_SoftEvent_Control_ExternalEvent_Control_HwID : UINT := UINT#267; - is2800_User_Data_64_bytes_User_Data___64_bytes_HwID : UINT := UINT#263; - is2800_is2800_HwID : UINT := UINT#261; - is2800_is2800_In_Sight_IS28XX_CC_B_HwID : UINT := UINT#270; - is2800_is2800_profinet_HwID : UINT := UINT#257; - is2800_is2800_profinet_Port_1_HwID : UINT := UINT#259; - is7600_HwID : UINT := UINT#272; - is7600_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#283; - is7600_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#279; - is7600_Command_Control_Command_Control_HwID : UINT := UINT#280; - is7600_Inspection_Control_Inspection_Control_HwID : UINT := UINT#282; - is7600_Inspection_Status_Inspection_Status_HwID : UINT := UINT#278; - is7600_Rack_HwID : UINT := UINT#274; - is7600_Result_Data_64_bytes_Results___64_bytes_HwID : UINT := UINT#276; - is7600_SoftEvent_Control_SoftEvent_Control_HwID : UINT := UINT#281; - is7600_User_Data_64_bytes_User_Data___64_bytes_HwID : UINT := UINT#277; - is7600_is7600_HwID : UINT := UINT#275; - is7600_is7600_In_Sight_IS79XX_IS75XX_CC_B_HwID : UINT := UINT#284; - is7600_is7600_profinet_HwID : UINT := UINT#271; - is7600_is7600_profinet_Port_1_HwID : UINT := UINT#273; + dm_280_HwID : UINT := UINT#322; + dm_280_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#332; + dm_280_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#329; + dm_280_Rack_HwID : UINT := UINT#324; + dm_280_Result_Data_128_bytes_Result_Data___128_bytes_HwID : UINT := UINT#326; + dm_280_Results_Control_Results_Control_HwID : UINT := UINT#331; + dm_280_Results_Status_Results_Status_HwID : UINT := UINT#328; + dm_280_Soft_Event_Control_Soft_Event_Control_HwID : UINT := UINT#330; + dm_280_User_Data_128_bytes_User_Data___128_bytes_HwID : UINT := UINT#327; + dm_280_dm_280_HwID : UINT := UINT#325; + dm_280_dm_280_DataMan_280_CC_B_HwID : UINT := UINT#333; + dm_280_dm_280_profinet_HwID : UINT := UINT#321; + dm_280_dm_280_profinet_Port_1_HwID : UINT := UINT#323; + dm_300_HwID : UINT := UINT#309; + dm_300_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#319; + dm_300_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#316; + dm_300_Rack_HwID : UINT := UINT#311; + dm_300_Result_Data_64_bytes_Result_Data___64_bytes_HwID : UINT := UINT#313; + dm_300_Results_Control_Results_Control_HwID : UINT := UINT#318; + dm_300_Results_Status_Results_Status_HwID : UINT := UINT#315; + dm_300_Soft_Event_Control_Soft_Event_Control_HwID : UINT := UINT#317; + dm_300_User_Data_64_bytes_User_Data___64_bytes_HwID : UINT := UINT#314; + dm_300_dm_300_HwID : UINT := UINT#312; + dm_300_dm_300_DataMan_300_HwID : UINT := UINT#320; + dm_300_dm_300_profinet_HwID : UINT := UINT#308; + dm_300_dm_300_profinet_Port_1_HwID : UINT := UINT#310; + is2800_HwID : UINT := UINT#281; + is2800_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#292; + is2800_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#287; + is2800_Command_Control_Command_Control_HwID : UINT := UINT#289; + is2800_Inspection_Control_Inspection_Control_HwID : UINT := UINT#291; + is2800_Inspection_Status_Inspection_Status_HwID : UINT := UINT#288; + is2800_Rack_HwID : UINT := UINT#283; + is2800_Result_Data_64_bytes_Results___64_bytes_HwID : UINT := UINT#285; + is2800_SoftEvent_Control_ExternalEvent_Control_HwID : UINT := UINT#290; + is2800_User_Data_64_bytes_User_Data___64_bytes_HwID : UINT := UINT#286; + is2800_is2800_HwID : UINT := UINT#284; + is2800_is2800_In_Sight_IS28XX_CC_B_HwID : UINT := UINT#293; + is2800_is2800_profinet_HwID : UINT := UINT#280; + is2800_is2800_profinet_Port_1_HwID : UINT := UINT#282; + is7600_HwID : UINT := UINT#295; + is7600_Acquisition_Control_Acquisition_Control_HwID : UINT := UINT#306; + is7600_Acquisition_Status_Acquisition_Status_HwID : UINT := UINT#302; + is7600_Command_Control_Command_Control_HwID : UINT := UINT#303; + is7600_Inspection_Control_Inspection_Control_HwID : UINT := UINT#305; + is7600_Inspection_Status_Inspection_Status_HwID : UINT := UINT#301; + is7600_Rack_HwID : UINT := UINT#297; + is7600_Result_Data_64_bytes_Results___64_bytes_HwID : UINT := UINT#299; + is7600_SoftEvent_Control_SoftEvent_Control_HwID : UINT := UINT#304; + is7600_User_Data_64_bytes_User_Data___64_bytes_HwID : UINT := UINT#300; + is7600_is7600_HwID : UINT := UINT#298; + is7600_is7600_In_Sight_IS79XX_IS75XX_CC_B_HwID : UINT := UINT#307; + is7600_is7600_profinet_HwID : UINT := UINT#294; + is7600_is7600_profinet_Port_1_HwID : UINT := UINT#296; plc_line_HwID : UINT := UINT#32; - plc_line_Rail_0_HwID : UINT := UINT#311; + plc_line_Rail_0_HwID : UINT := UINT#334; plc_line_plc_line_HwID : UINT := UINT#48; plc_line_plc_line_CPU_display_1_HwID : UINT := UINT#54; plc_line_plc_line_Card_reader_writer_1_HwID : UINT := UINT#51; @@ -68,6 +68,29 @@ CONFIGURATION HardwareIDs plc_line_plc_line_profinet_x2_HwID : UINT := UINT#72; plc_line_plc_line_profinet_x2_Port_3_HwID : UINT := UINT#73; profinet_plc_line_HwID : UINT := UINT#256; + vision_pro_HwID : UINT := UINT#258; + vision_pro_Engine_Control_1_Engine_Control_HwID : UINT := UINT#277; + vision_pro_Engine_Control_2_Engine_Control_HwID : UINT := UINT#276; + vision_pro_Engine_Control_3_Engine_Control_HwID : UINT := UINT#275; + vision_pro_Engine_Control_4_Engine_Control_HwID : UINT := UINT#274; + vision_pro_Rack_HwID : UINT := UINT#260; + vision_pro_Result_Data_240_bytes_1_Results___240_bytes_HwID : UINT := UINT#272; + vision_pro_Result_Data_240_bytes_2_Results___240_bytes_HwID : UINT := UINT#266; + vision_pro_Result_Data_240_bytes_3_Results___240_bytes_HwID : UINT := UINT#265; + vision_pro_Result_Data_240_bytes_4_Results___240_bytes_HwID : UINT := UINT#264; + vision_pro_Result_Data_240_bytes_5_Results___240_bytes_HwID : UINT := UINT#263; + vision_pro_Result_Data_64_bytes_1_Results___64_bytes_HwID : UINT := UINT#262; + vision_pro_System_Control_System_Control_HwID : UINT := UINT#278; + vision_pro_User_Data_240_bytes_1_User_Data___240_bytes_HwID : UINT := UINT#273; + vision_pro_User_Data_240_bytes_2_User_Data___240_bytes_HwID : UINT := UINT#271; + vision_pro_User_Data_240_bytes_3_User_Data___240_bytes_HwID : UINT := UINT#270; + vision_pro_User_Data_240_bytes_4_User_Data___240_bytes_HwID : UINT := UINT#269; + vision_pro_User_Data_240_bytes_5_User_Data___240_bytes_HwID : UINT := UINT#268; + vision_pro_User_Data_64_bytes_1_User_Data___64_bytes_HwID : UINT := UINT#267; + vision_pro_vision_pro_HwID : UINT := UINT#261; + vision_pro_vision_pro_Communication_Card_CC24_HwID : UINT := UINT#279; + vision_pro_vision_pro_profinet_HwID : UINT := UINT#257; + vision_pro_vision_pro_profinet_Port_1_HwID : UINT := UINT#259; END_VAR END_CONFIGURATION diff --git a/src/components.cognex.vision/app/SystemConstants/plc_line_IoAddresses.st b/src/components.cognex.vision/app/SystemConstants/plc_line_IoAddresses.st index 9ce1de623..ca8e60911 100644 --- a/src/components.cognex.vision/app/SystemConstants/plc_line_IoAddresses.st +++ b/src/components.cognex.vision/app/SystemConstants/plc_line_IoAddresses.st @@ -1,165 +1,493 @@ CONFIGURATION IoAddresses VAR_GLOBAL - dm_280_Acquisition_Control_OutputAddress AT %QB343: BYTE; - dm_280_Acquisition_Status_InputAddress_0 AT %IB373: BYTE; - dm_280_Acquisition_Status_InputAddress_1 AT %IB374: BYTE; - dm_280_Acquisition_Status_InputAddress_2 AT %IB375: BYTE; - dm_280_Result_Data_128_bytes_InputAddress_0 AT %IL236: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_1 AT %IL244: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_2 AT %IL252: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_3 AT %IL260: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_4 AT %IL268: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_5 AT %IL276: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_6 AT %IL284: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_7 AT %IL292: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_8 AT %IL300: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_9 AT %IL308: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_10 AT %IL316: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_11 AT %IL324: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_12 AT %IL332: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_13 AT %IL340: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_14 AT %IL348: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_15 AT %IL356: LWORD; - dm_280_Result_Data_128_bytes_InputAddress_16 AT %IL364: LWORD; - dm_280_Results_Control_OutputAddress AT %QB342: BYTE; - dm_280_Results_Status_InputAddress AT %IB372: BYTE; - dm_280_Soft_Event_Control_InputAddress AT %IB376: BYTE; - dm_280_Soft_Event_Control_OutputAddress AT %QB341: BYTE; - dm_280_User_Data_128_bytes_OutputAddress_0 AT %QD209: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_1 AT %QD213: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_2 AT %QD217: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_3 AT %QD221: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_4 AT %QD225: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_5 AT %QD229: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_6 AT %QD233: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_7 AT %QD237: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_8 AT %QD241: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_9 AT %QD245: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_10 AT %QD249: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_11 AT %QD253: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_12 AT %QD257: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_13 AT %QD261: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_14 AT %QD265: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_15 AT %QD269: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_16 AT %QD273: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_17 AT %QD277: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_18 AT %QD281: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_19 AT %QD285: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_20 AT %QD289: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_21 AT %QD293: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_22 AT %QD297: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_23 AT %QD301: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_24 AT %QD305: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_25 AT %QD309: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_26 AT %QD313: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_27 AT %QD317: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_28 AT %QD321: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_29 AT %QD325: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_30 AT %QD329: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_31 AT %QD333: DWORD; - dm_280_User_Data_128_bytes_OutputAddress_32 AT %QD337: DWORD; - dm_300_Acquisition_Control_OutputAddress AT %QB208: BYTE; - dm_300_Acquisition_Status_InputAddress_0 AT %IB232: BYTE; - dm_300_Acquisition_Status_InputAddress_1 AT %IB233: BYTE; - dm_300_Acquisition_Status_InputAddress_2 AT %IB234: BYTE; - dm_300_Result_Data_64_bytes_InputAddress_0 AT %IL159: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_1 AT %IL167: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_2 AT %IL175: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_3 AT %IL183: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_4 AT %IL191: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_5 AT %IL199: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_6 AT %IL207: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_7 AT %IL215: LWORD; - dm_300_Result_Data_64_bytes_InputAddress_8 AT %IL223: LWORD; - dm_300_Results_Control_OutputAddress AT %QB207: BYTE; - dm_300_Results_Status_InputAddress AT %IB231: BYTE; - dm_300_Soft_Event_Control_InputAddress AT %IB235: BYTE; - dm_300_Soft_Event_Control_OutputAddress AT %QB206: BYTE; - dm_300_User_Data_64_bytes_OutputAddress_0 AT %QD138: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_1 AT %QD142: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_2 AT %QD146: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_3 AT %QD150: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_4 AT %QD154: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_5 AT %QD158: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_6 AT %QD162: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_7 AT %QD166: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_8 AT %QD170: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_9 AT %QD174: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_10 AT %QD178: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_11 AT %QD182: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_12 AT %QD186: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_13 AT %QD190: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_14 AT %QD194: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_15 AT %QD198: DWORD; - dm_300_User_Data_64_bytes_OutputAddress_16 AT %QD202: DWORD; - is2800_Acquisition_Control_OutputAddress AT %QB68: BYTE; - is2800_Acquisition_Status_InputAddress AT %ID68: DWORD; - is2800_Command_Control_InputAddress AT %ID76: DWORD; - is2800_Command_Control_OutputAddress AT %QW64: WORD; - is2800_Inspection_Control_OutputAddress AT %QB67: BYTE; - is2800_Inspection_Status_InputAddress AT %ID72: DWORD; - is2800_Result_Data_64_bytes_InputAddress_0 AT %ID0: DWORD; - is2800_Result_Data_64_bytes_InputAddress_1 AT %ID4: DWORD; - is2800_Result_Data_64_bytes_InputAddress_2 AT %ID8: DWORD; - is2800_Result_Data_64_bytes_InputAddress_3 AT %ID12: DWORD; - is2800_Result_Data_64_bytes_InputAddress_4 AT %ID16: DWORD; - is2800_Result_Data_64_bytes_InputAddress_5 AT %ID20: DWORD; - is2800_Result_Data_64_bytes_InputAddress_6 AT %ID24: DWORD; - is2800_Result_Data_64_bytes_InputAddress_7 AT %ID28: DWORD; - is2800_Result_Data_64_bytes_InputAddress_8 AT %ID32: DWORD; - is2800_Result_Data_64_bytes_InputAddress_9 AT %ID36: DWORD; - is2800_Result_Data_64_bytes_InputAddress_10 AT %ID40: DWORD; - is2800_Result_Data_64_bytes_InputAddress_11 AT %ID44: DWORD; - is2800_Result_Data_64_bytes_InputAddress_12 AT %ID48: DWORD; - is2800_Result_Data_64_bytes_InputAddress_13 AT %ID52: DWORD; - is2800_Result_Data_64_bytes_InputAddress_14 AT %ID56: DWORD; - is2800_Result_Data_64_bytes_InputAddress_15 AT %ID60: DWORD; - is2800_Result_Data_64_bytes_InputAddress_16 AT %ID64: DWORD; - is2800_SoftEvent_Control_InputAddress AT %IB80: BYTE; - is2800_SoftEvent_Control_OutputAddress AT %QB66: BYTE; - is2800_User_Data_64_bytes_OutputAddress_0 AT %QL0: LWORD; - is2800_User_Data_64_bytes_OutputAddress_1 AT %QL8: LWORD; - is2800_User_Data_64_bytes_OutputAddress_2 AT %QL16: LWORD; - is2800_User_Data_64_bytes_OutputAddress_3 AT %QL24: LWORD; - is2800_User_Data_64_bytes_OutputAddress_4 AT %QL32: LWORD; - is2800_User_Data_64_bytes_OutputAddress_5 AT %QL40: LWORD; - is2800_User_Data_64_bytes_OutputAddress_6 AT %QL48: LWORD; - is2800_User_Data_64_bytes_OutputAddress_7 AT %QL56: LWORD; - is7600_Acquisition_Control_OutputAddress AT %QB137: BYTE; - is7600_Acquisition_Status_InputAddress_0 AT %IB153: BYTE; - is7600_Acquisition_Status_InputAddress_1 AT %IB154: BYTE; - is7600_Acquisition_Status_InputAddress_2 AT %IB155: BYTE; - is7600_Command_Control_InputAddress AT %IW156: WORD; - is7600_Command_Control_OutputAddress AT %QW133: WORD; - is7600_Inspection_Control_OutputAddress AT %QB136: BYTE; - is7600_Inspection_Status_InputAddress AT %ID149: DWORD; - is7600_Result_Data_64_bytes_InputAddress_0 AT %ID81: DWORD; - is7600_Result_Data_64_bytes_InputAddress_1 AT %ID85: DWORD; - is7600_Result_Data_64_bytes_InputAddress_2 AT %ID89: DWORD; - is7600_Result_Data_64_bytes_InputAddress_3 AT %ID93: DWORD; - is7600_Result_Data_64_bytes_InputAddress_4 AT %ID97: DWORD; - is7600_Result_Data_64_bytes_InputAddress_5 AT %ID101: DWORD; - is7600_Result_Data_64_bytes_InputAddress_6 AT %ID105: DWORD; - is7600_Result_Data_64_bytes_InputAddress_7 AT %ID109: DWORD; - is7600_Result_Data_64_bytes_InputAddress_8 AT %ID113: DWORD; - is7600_Result_Data_64_bytes_InputAddress_9 AT %ID117: DWORD; - is7600_Result_Data_64_bytes_InputAddress_10 AT %ID121: DWORD; - is7600_Result_Data_64_bytes_InputAddress_11 AT %ID125: DWORD; - is7600_Result_Data_64_bytes_InputAddress_12 AT %ID129: DWORD; - is7600_Result_Data_64_bytes_InputAddress_13 AT %ID133: DWORD; - is7600_Result_Data_64_bytes_InputAddress_14 AT %ID137: DWORD; - is7600_Result_Data_64_bytes_InputAddress_15 AT %ID141: DWORD; - is7600_Result_Data_64_bytes_InputAddress_16 AT %ID145: DWORD; - is7600_SoftEvent_Control_InputAddress AT %IB158: BYTE; - is7600_SoftEvent_Control_OutputAddress AT %QB135: BYTE; - is7600_User_Data_64_bytes_OutputAddress_0 AT %QL69: LWORD; - is7600_User_Data_64_bytes_OutputAddress_1 AT %QL77: LWORD; - is7600_User_Data_64_bytes_OutputAddress_2 AT %QL85: LWORD; - is7600_User_Data_64_bytes_OutputAddress_3 AT %QL93: LWORD; - is7600_User_Data_64_bytes_OutputAddress_4 AT %QL101: LWORD; - is7600_User_Data_64_bytes_OutputAddress_5 AT %QL109: LWORD; - is7600_User_Data_64_bytes_OutputAddress_6 AT %QL117: LWORD; - is7600_User_Data_64_bytes_OutputAddress_7 AT %QL125: LWORD; + dm_280_Acquisition_Control_OutputAddress AT %QB1627: BYTE; + dm_280_Acquisition_Status_InputAddress_0 AT %IB1685: BYTE; + dm_280_Acquisition_Status_InputAddress_1 AT %IB1686: BYTE; + dm_280_Acquisition_Status_InputAddress_2 AT %IB1687: BYTE; + dm_280_Result_Data_128_bytes_InputAddress_0 AT %IL1548: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_1 AT %IL1556: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_2 AT %IL1564: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_3 AT %IL1572: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_4 AT %IL1580: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_5 AT %IL1588: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_6 AT %IL1596: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_7 AT %IL1604: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_8 AT %IL1612: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_9 AT %IL1620: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_10 AT %IL1628: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_11 AT %IL1636: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_12 AT %IL1644: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_13 AT %IL1652: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_14 AT %IL1660: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_15 AT %IL1668: LWORD; + dm_280_Result_Data_128_bytes_InputAddress_16 AT %IL1676: LWORD; + dm_280_Results_Control_OutputAddress AT %QB1626: BYTE; + dm_280_Results_Status_InputAddress AT %IB1684: BYTE; + dm_280_Soft_Event_Control_InputAddress AT %IB1688: BYTE; + dm_280_Soft_Event_Control_OutputAddress AT %QB1625: BYTE; + dm_280_User_Data_128_bytes_OutputAddress_0 AT %QD1493: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_1 AT %QD1497: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_2 AT %QD1501: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_3 AT %QD1505: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_4 AT %QD1509: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_5 AT %QD1513: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_6 AT %QD1517: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_7 AT %QD1521: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_8 AT %QD1525: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_9 AT %QD1529: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_10 AT %QD1533: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_11 AT %QD1537: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_12 AT %QD1541: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_13 AT %QD1545: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_14 AT %QD1549: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_15 AT %QD1553: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_16 AT %QD1557: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_17 AT %QD1561: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_18 AT %QD1565: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_19 AT %QD1569: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_20 AT %QD1573: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_21 AT %QD1577: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_22 AT %QD1581: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_23 AT %QD1585: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_24 AT %QD1589: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_25 AT %QD1593: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_26 AT %QD1597: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_27 AT %QD1601: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_28 AT %QD1605: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_29 AT %QD1609: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_30 AT %QD1613: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_31 AT %QD1617: DWORD; + dm_280_User_Data_128_bytes_OutputAddress_32 AT %QD1621: DWORD; + dm_300_Acquisition_Control_OutputAddress AT %QB1492: BYTE; + dm_300_Acquisition_Status_InputAddress_0 AT %IB1544: BYTE; + dm_300_Acquisition_Status_InputAddress_1 AT %IB1545: BYTE; + dm_300_Acquisition_Status_InputAddress_2 AT %IB1546: BYTE; + dm_300_Result_Data_64_bytes_InputAddress_0 AT %IL1471: LWORD; + dm_300_Result_Data_64_bytes_InputAddress_1 AT %IL1479: LWORD; + dm_300_Result_Data_64_bytes_InputAddress_2 AT %IL1487: LWORD; + dm_300_Result_Data_64_bytes_InputAddress_3 AT %IL1495: LWORD; + dm_300_Result_Data_64_bytes_InputAddress_4 AT %IL1503: LWORD; + dm_300_Result_Data_64_bytes_InputAddress_5 AT %IL1511: LWORD; + dm_300_Result_Data_64_bytes_InputAddress_6 AT %IL1519: LWORD; + dm_300_Result_Data_64_bytes_InputAddress_7 AT %IL1527: LWORD; + dm_300_Result_Data_64_bytes_InputAddress_8 AT %IL1535: LWORD; + dm_300_Results_Control_OutputAddress AT %QB1491: BYTE; + dm_300_Results_Status_InputAddress AT %IB1543: BYTE; + dm_300_Soft_Event_Control_InputAddress AT %IB1547: BYTE; + dm_300_Soft_Event_Control_OutputAddress AT %QB1490: BYTE; + dm_300_User_Data_64_bytes_OutputAddress_0 AT %QD1422: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_1 AT %QD1426: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_2 AT %QD1430: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_3 AT %QD1434: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_4 AT %QD1438: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_5 AT %QD1442: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_6 AT %QD1446: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_7 AT %QD1450: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_8 AT %QD1454: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_9 AT %QD1458: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_10 AT %QD1462: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_11 AT %QD1466: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_12 AT %QD1470: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_13 AT %QD1474: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_14 AT %QD1478: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_15 AT %QD1482: DWORD; + dm_300_User_Data_64_bytes_OutputAddress_16 AT %QD1486: DWORD; + is2800_Acquisition_Control_OutputAddress AT %QB1352: BYTE; + is2800_Acquisition_Status_InputAddress AT %ID1380: DWORD; + is2800_Command_Control_InputAddress AT %ID1388: DWORD; + is2800_Command_Control_OutputAddress AT %QW1348: WORD; + is2800_Inspection_Control_OutputAddress AT %QB1351: BYTE; + is2800_Inspection_Status_InputAddress AT %ID1384: DWORD; + is2800_Result_Data_64_bytes_InputAddress_0 AT %ID1312: DWORD; + is2800_Result_Data_64_bytes_InputAddress_1 AT %ID1316: DWORD; + is2800_Result_Data_64_bytes_InputAddress_2 AT %ID1320: DWORD; + is2800_Result_Data_64_bytes_InputAddress_3 AT %ID1324: DWORD; + is2800_Result_Data_64_bytes_InputAddress_4 AT %ID1328: DWORD; + is2800_Result_Data_64_bytes_InputAddress_5 AT %ID1332: DWORD; + is2800_Result_Data_64_bytes_InputAddress_6 AT %ID1336: DWORD; + is2800_Result_Data_64_bytes_InputAddress_7 AT %ID1340: DWORD; + is2800_Result_Data_64_bytes_InputAddress_8 AT %ID1344: DWORD; + is2800_Result_Data_64_bytes_InputAddress_9 AT %ID1348: DWORD; + is2800_Result_Data_64_bytes_InputAddress_10 AT %ID1352: DWORD; + is2800_Result_Data_64_bytes_InputAddress_11 AT %ID1356: DWORD; + is2800_Result_Data_64_bytes_InputAddress_12 AT %ID1360: DWORD; + is2800_Result_Data_64_bytes_InputAddress_13 AT %ID1364: DWORD; + is2800_Result_Data_64_bytes_InputAddress_14 AT %ID1368: DWORD; + is2800_Result_Data_64_bytes_InputAddress_15 AT %ID1372: DWORD; + is2800_Result_Data_64_bytes_InputAddress_16 AT %ID1376: DWORD; + is2800_SoftEvent_Control_InputAddress AT %IB1392: BYTE; + is2800_SoftEvent_Control_OutputAddress AT %QB1350: BYTE; + is2800_User_Data_64_bytes_OutputAddress_0 AT %QL1284: LWORD; + is2800_User_Data_64_bytes_OutputAddress_1 AT %QL1292: LWORD; + is2800_User_Data_64_bytes_OutputAddress_2 AT %QL1300: LWORD; + is2800_User_Data_64_bytes_OutputAddress_3 AT %QL1308: LWORD; + is2800_User_Data_64_bytes_OutputAddress_4 AT %QL1316: LWORD; + is2800_User_Data_64_bytes_OutputAddress_5 AT %QL1324: LWORD; + is2800_User_Data_64_bytes_OutputAddress_6 AT %QL1332: LWORD; + is2800_User_Data_64_bytes_OutputAddress_7 AT %QL1340: LWORD; + is7600_Acquisition_Control_OutputAddress AT %QB1421: BYTE; + is7600_Acquisition_Status_InputAddress_0 AT %IB1465: BYTE; + is7600_Acquisition_Status_InputAddress_1 AT %IB1466: BYTE; + is7600_Acquisition_Status_InputAddress_2 AT %IB1467: BYTE; + is7600_Command_Control_InputAddress AT %IW1468: WORD; + is7600_Command_Control_OutputAddress AT %QW1417: WORD; + is7600_Inspection_Control_OutputAddress AT %QB1420: BYTE; + is7600_Inspection_Status_InputAddress AT %ID1461: DWORD; + is7600_Result_Data_64_bytes_InputAddress_0 AT %ID1393: DWORD; + is7600_Result_Data_64_bytes_InputAddress_1 AT %ID1397: DWORD; + is7600_Result_Data_64_bytes_InputAddress_2 AT %ID1401: DWORD; + is7600_Result_Data_64_bytes_InputAddress_3 AT %ID1405: DWORD; + is7600_Result_Data_64_bytes_InputAddress_4 AT %ID1409: DWORD; + is7600_Result_Data_64_bytes_InputAddress_5 AT %ID1413: DWORD; + is7600_Result_Data_64_bytes_InputAddress_6 AT %ID1417: DWORD; + is7600_Result_Data_64_bytes_InputAddress_7 AT %ID1421: DWORD; + is7600_Result_Data_64_bytes_InputAddress_8 AT %ID1425: DWORD; + is7600_Result_Data_64_bytes_InputAddress_9 AT %ID1429: DWORD; + is7600_Result_Data_64_bytes_InputAddress_10 AT %ID1433: DWORD; + is7600_Result_Data_64_bytes_InputAddress_11 AT %ID1437: DWORD; + is7600_Result_Data_64_bytes_InputAddress_12 AT %ID1441: DWORD; + is7600_Result_Data_64_bytes_InputAddress_13 AT %ID1445: DWORD; + is7600_Result_Data_64_bytes_InputAddress_14 AT %ID1449: DWORD; + is7600_Result_Data_64_bytes_InputAddress_15 AT %ID1453: DWORD; + is7600_Result_Data_64_bytes_InputAddress_16 AT %ID1457: DWORD; + is7600_SoftEvent_Control_InputAddress AT %IB1470: BYTE; + is7600_SoftEvent_Control_OutputAddress AT %QB1419: BYTE; + is7600_User_Data_64_bytes_OutputAddress_0 AT %QL1353: LWORD; + is7600_User_Data_64_bytes_OutputAddress_1 AT %QL1361: LWORD; + is7600_User_Data_64_bytes_OutputAddress_2 AT %QL1369: LWORD; + is7600_User_Data_64_bytes_OutputAddress_3 AT %QL1377: LWORD; + is7600_User_Data_64_bytes_OutputAddress_4 AT %QL1385: LWORD; + is7600_User_Data_64_bytes_OutputAddress_5 AT %QL1393: LWORD; + is7600_User_Data_64_bytes_OutputAddress_6 AT %QL1401: LWORD; + is7600_User_Data_64_bytes_OutputAddress_7 AT %QL1409: LWORD; + vision_pro_Engine_Control_1_InputAddress AT %IL1288: LWORD; + vision_pro_Engine_Control_1_OutputAddress AT %QB1267: BYTE; + vision_pro_Engine_Control_2_InputAddress AT %IL1280: LWORD; + vision_pro_Engine_Control_2_OutputAddress AT %QB1266: BYTE; + vision_pro_Engine_Control_3_InputAddress AT %IL1272: LWORD; + vision_pro_Engine_Control_3_OutputAddress AT %QB1265: BYTE; + vision_pro_Engine_Control_4_InputAddress AT %IL1264: LWORD; + vision_pro_Engine_Control_4_OutputAddress AT %QB1264: BYTE; + vision_pro_Result_Data_240_bytes_1_InputAddress_0 AT %IL1024: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_1 AT %IL1032: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_2 AT %IL1040: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_3 AT %IL1048: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_4 AT %IL1056: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_5 AT %IL1064: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_6 AT %IL1072: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_7 AT %IL1080: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_8 AT %IL1088: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_9 AT %IL1096: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_10 AT %IL1104: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_11 AT %IL1112: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_12 AT %IL1120: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_13 AT %IL1128: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_14 AT %IL1136: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_15 AT %IL1144: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_16 AT %IL1152: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_17 AT %IL1160: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_18 AT %IL1168: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_19 AT %IL1176: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_20 AT %IL1184: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_21 AT %IL1192: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_22 AT %IL1200: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_23 AT %IL1208: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_24 AT %IL1216: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_25 AT %IL1224: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_26 AT %IL1232: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_27 AT %IL1240: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_28 AT %IL1248: LWORD; + vision_pro_Result_Data_240_bytes_1_InputAddress_29 AT %IL1256: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_0 AT %IL784: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_1 AT %IL792: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_2 AT %IL800: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_3 AT %IL808: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_4 AT %IL816: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_5 AT %IL824: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_6 AT %IL832: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_7 AT %IL840: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_8 AT %IL848: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_9 AT %IL856: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_10 AT %IL864: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_11 AT %IL872: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_12 AT %IL880: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_13 AT %IL888: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_14 AT %IL896: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_15 AT %IL904: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_16 AT %IL912: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_17 AT %IL920: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_18 AT %IL928: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_19 AT %IL936: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_20 AT %IL944: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_21 AT %IL952: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_22 AT %IL960: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_23 AT %IL968: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_24 AT %IL976: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_25 AT %IL984: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_26 AT %IL992: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_27 AT %IL1000: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_28 AT %IL1008: LWORD; + vision_pro_Result_Data_240_bytes_2_InputAddress_29 AT %IL1016: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_0 AT %IL544: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_1 AT %IL552: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_2 AT %IL560: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_3 AT %IL568: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_4 AT %IL576: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_5 AT %IL584: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_6 AT %IL592: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_7 AT %IL600: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_8 AT %IL608: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_9 AT %IL616: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_10 AT %IL624: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_11 AT %IL632: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_12 AT %IL640: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_13 AT %IL648: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_14 AT %IL656: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_15 AT %IL664: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_16 AT %IL672: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_17 AT %IL680: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_18 AT %IL688: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_19 AT %IL696: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_20 AT %IL704: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_21 AT %IL712: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_22 AT %IL720: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_23 AT %IL728: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_24 AT %IL736: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_25 AT %IL744: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_26 AT %IL752: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_27 AT %IL760: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_28 AT %IL768: LWORD; + vision_pro_Result_Data_240_bytes_3_InputAddress_29 AT %IL776: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_0 AT %IL304: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_1 AT %IL312: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_2 AT %IL320: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_3 AT %IL328: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_4 AT %IL336: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_5 AT %IL344: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_6 AT %IL352: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_7 AT %IL360: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_8 AT %IL368: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_9 AT %IL376: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_10 AT %IL384: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_11 AT %IL392: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_12 AT %IL400: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_13 AT %IL408: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_14 AT %IL416: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_15 AT %IL424: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_16 AT %IL432: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_17 AT %IL440: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_18 AT %IL448: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_19 AT %IL456: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_20 AT %IL464: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_21 AT %IL472: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_22 AT %IL480: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_23 AT %IL488: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_24 AT %IL496: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_25 AT %IL504: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_26 AT %IL512: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_27 AT %IL520: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_28 AT %IL528: LWORD; + vision_pro_Result_Data_240_bytes_4_InputAddress_29 AT %IL536: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_0 AT %IL64: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_1 AT %IL72: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_2 AT %IL80: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_3 AT %IL88: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_4 AT %IL96: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_5 AT %IL104: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_6 AT %IL112: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_7 AT %IL120: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_8 AT %IL128: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_9 AT %IL136: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_10 AT %IL144: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_11 AT %IL152: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_12 AT %IL160: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_13 AT %IL168: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_14 AT %IL176: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_15 AT %IL184: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_16 AT %IL192: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_17 AT %IL200: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_18 AT %IL208: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_19 AT %IL216: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_20 AT %IL224: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_21 AT %IL232: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_22 AT %IL240: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_23 AT %IL248: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_24 AT %IL256: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_25 AT %IL264: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_26 AT %IL272: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_27 AT %IL280: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_28 AT %IL288: LWORD; + vision_pro_Result_Data_240_bytes_5_InputAddress_29 AT %IL296: LWORD; + vision_pro_Result_Data_64_bytes_1_InputAddress_0 AT %IL0: LWORD; + vision_pro_Result_Data_64_bytes_1_InputAddress_1 AT %IL8: LWORD; + vision_pro_Result_Data_64_bytes_1_InputAddress_2 AT %IL16: LWORD; + vision_pro_Result_Data_64_bytes_1_InputAddress_3 AT %IL24: LWORD; + vision_pro_Result_Data_64_bytes_1_InputAddress_4 AT %IL32: LWORD; + vision_pro_Result_Data_64_bytes_1_InputAddress_5 AT %IL40: LWORD; + vision_pro_Result_Data_64_bytes_1_InputAddress_6 AT %IL48: LWORD; + vision_pro_Result_Data_64_bytes_1_InputAddress_7 AT %IL56: LWORD; + vision_pro_System_Control_InputAddress_0 AT %IL1296: LWORD; + vision_pro_System_Control_InputAddress_1 AT %IL1304: LWORD; + vision_pro_System_Control_OutputAddress_0 AT %QL1268: LWORD; + vision_pro_System_Control_OutputAddress_1 AT %QL1276: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_0 AT %QL1024: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_1 AT %QL1032: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_2 AT %QL1040: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_3 AT %QL1048: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_4 AT %QL1056: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_5 AT %QL1064: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_6 AT %QL1072: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_7 AT %QL1080: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_8 AT %QL1088: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_9 AT %QL1096: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_10 AT %QL1104: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_11 AT %QL1112: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_12 AT %QL1120: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_13 AT %QL1128: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_14 AT %QL1136: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_15 AT %QL1144: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_16 AT %QL1152: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_17 AT %QL1160: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_18 AT %QL1168: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_19 AT %QL1176: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_20 AT %QL1184: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_21 AT %QL1192: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_22 AT %QL1200: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_23 AT %QL1208: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_24 AT %QL1216: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_25 AT %QL1224: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_26 AT %QL1232: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_27 AT %QL1240: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_28 AT %QL1248: LWORD; + vision_pro_User_Data_240_bytes_1_OutputAddress_29 AT %QL1256: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_0 AT %QL784: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_1 AT %QL792: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_2 AT %QL800: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_3 AT %QL808: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_4 AT %QL816: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_5 AT %QL824: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_6 AT %QL832: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_7 AT %QL840: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_8 AT %QL848: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_9 AT %QL856: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_10 AT %QL864: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_11 AT %QL872: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_12 AT %QL880: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_13 AT %QL888: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_14 AT %QL896: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_15 AT %QL904: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_16 AT %QL912: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_17 AT %QL920: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_18 AT %QL928: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_19 AT %QL936: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_20 AT %QL944: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_21 AT %QL952: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_22 AT %QL960: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_23 AT %QL968: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_24 AT %QL976: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_25 AT %QL984: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_26 AT %QL992: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_27 AT %QL1000: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_28 AT %QL1008: LWORD; + vision_pro_User_Data_240_bytes_2_OutputAddress_29 AT %QL1016: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_0 AT %QL544: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_1 AT %QL552: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_2 AT %QL560: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_3 AT %QL568: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_4 AT %QL576: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_5 AT %QL584: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_6 AT %QL592: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_7 AT %QL600: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_8 AT %QL608: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_9 AT %QL616: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_10 AT %QL624: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_11 AT %QL632: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_12 AT %QL640: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_13 AT %QL648: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_14 AT %QL656: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_15 AT %QL664: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_16 AT %QL672: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_17 AT %QL680: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_18 AT %QL688: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_19 AT %QL696: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_20 AT %QL704: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_21 AT %QL712: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_22 AT %QL720: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_23 AT %QL728: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_24 AT %QL736: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_25 AT %QL744: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_26 AT %QL752: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_27 AT %QL760: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_28 AT %QL768: LWORD; + vision_pro_User_Data_240_bytes_3_OutputAddress_29 AT %QL776: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_0 AT %QL304: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_1 AT %QL312: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_2 AT %QL320: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_3 AT %QL328: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_4 AT %QL336: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_5 AT %QL344: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_6 AT %QL352: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_7 AT %QL360: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_8 AT %QL368: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_9 AT %QL376: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_10 AT %QL384: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_11 AT %QL392: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_12 AT %QL400: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_13 AT %QL408: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_14 AT %QL416: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_15 AT %QL424: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_16 AT %QL432: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_17 AT %QL440: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_18 AT %QL448: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_19 AT %QL456: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_20 AT %QL464: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_21 AT %QL472: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_22 AT %QL480: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_23 AT %QL488: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_24 AT %QL496: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_25 AT %QL504: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_26 AT %QL512: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_27 AT %QL520: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_28 AT %QL528: LWORD; + vision_pro_User_Data_240_bytes_4_OutputAddress_29 AT %QL536: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_0 AT %QL64: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_1 AT %QL72: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_2 AT %QL80: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_3 AT %QL88: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_4 AT %QL96: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_5 AT %QL104: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_6 AT %QL112: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_7 AT %QL120: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_8 AT %QL128: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_9 AT %QL136: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_10 AT %QL144: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_11 AT %QL152: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_12 AT %QL160: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_13 AT %QL168: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_14 AT %QL176: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_15 AT %QL184: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_16 AT %QL192: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_17 AT %QL200: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_18 AT %QL208: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_19 AT %QL216: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_20 AT %QL224: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_21 AT %QL232: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_22 AT %QL240: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_23 AT %QL248: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_24 AT %QL256: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_25 AT %QL264: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_26 AT %QL272: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_27 AT %QL280: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_28 AT %QL288: LWORD; + vision_pro_User_Data_240_bytes_5_OutputAddress_29 AT %QL296: LWORD; + vision_pro_User_Data_64_bytes_1_OutputAddress_0 AT %QL0: LWORD; + vision_pro_User_Data_64_bytes_1_OutputAddress_1 AT %QL8: LWORD; + vision_pro_User_Data_64_bytes_1_OutputAddress_2 AT %QL16: LWORD; + vision_pro_User_Data_64_bytes_1_OutputAddress_3 AT %QL24: LWORD; + vision_pro_User_Data_64_bytes_1_OutputAddress_4 AT %QL32: LWORD; + vision_pro_User_Data_64_bytes_1_OutputAddress_5 AT %QL40: LWORD; + vision_pro_User_Data_64_bytes_1_OutputAddress_6 AT %QL48: LWORD; + vision_pro_User_Data_64_bytes_1_OutputAddress_7 AT %QL56: LWORD; END_VAR END_CONFIGURATION diff --git a/src/components.cognex.vision/app/SystemConstants/plc_main_HwIdentifiers.st b/src/components.cognex.vision/app/SystemConstants/plc_main_HwIdentifiers.st new file mode 100644 index 000000000..fa0e6f597 --- /dev/null +++ b/src/components.cognex.vision/app/SystemConstants/plc_main_HwIdentifiers.st @@ -0,0 +1,44 @@ +CONFIGURATION HardwareIDs + VAR_GLOBAL CONSTANT + communicationcard_HwID : UINT := UINT#258; + communicationcard_Engine_Control_1_Engine_Control_HwID : UINT := UINT#277; + communicationcard_Engine_Control_2_Engine_Control_HwID : UINT := UINT#276; + communicationcard_Engine_Control_3_Engine_Control_HwID : UINT := UINT#275; + communicationcard_Engine_Control_4_Engine_Control_HwID : UINT := UINT#274; + communicationcard_Rack_HwID : UINT := UINT#260; + communicationcard_Result_Data_240_bytes_1_Results___240_bytes_HwID : UINT := UINT#272; + communicationcard_Result_Data_240_bytes_2_Results___240_bytes_HwID : UINT := UINT#266; + communicationcard_Result_Data_240_bytes_3_Results___240_bytes_HwID : UINT := UINT#265; + communicationcard_Result_Data_240_bytes_4_Results___240_bytes_HwID : UINT := UINT#264; + communicationcard_Result_Data_240_bytes_5_Results___240_bytes_HwID : UINT := UINT#263; + communicationcard_Result_Data_64_bytes_1_Results___64_bytes_HwID : UINT := UINT#262; + communicationcard_System_Control_System_Control_HwID : UINT := UINT#278; + communicationcard_User_Data_240_bytes_1_User_Data___240_bytes_HwID : UINT := UINT#273; + communicationcard_User_Data_240_bytes_2_User_Data___240_bytes_HwID : UINT := UINT#271; + communicationcard_User_Data_240_bytes_3_User_Data___240_bytes_HwID : UINT := UINT#270; + communicationcard_User_Data_240_bytes_4_User_Data___240_bytes_HwID : UINT := UINT#269; + communicationcard_User_Data_240_bytes_5_User_Data___240_bytes_HwID : UINT := UINT#268; + communicationcard_User_Data_64_bytes_1_User_Data___64_bytes_HwID : UINT := UINT#267; + communicationcard_communicationcard_HwID : UINT := UINT#261; + communicationcard_communicationcard_Communication_Card_CC24_HwID : UINT := UINT#279; + communicationcard_communicationcard_profinet_HwID : UINT := UINT#257; + communicationcard_communicationcard_profinet_Port_1_HwID : UINT := UINT#259; + plc_main_HwID : UINT := UINT#32; + plc_main_Rail_0_HwID : UINT := UINT#280; + plc_main_plc_main_HwID : UINT := UINT#48; + plc_main_plc_main_CPU_display_1_HwID : UINT := UINT#54; + plc_main_plc_main_Card_reader_writer_1_HwID : UINT := UINT#51; + plc_main_plc_main_OPC_UA_1_HwID : UINT := UINT#117; + plc_main_plc_main_Virtual_communication_interface_HwID : UINT := UINT#135; + plc_main_plc_main_profinet_x1_HwID : UINT := UINT#64; + plc_main_plc_main_profinet_x1_Port_1_HwID : UINT := UINT#65; + plc_main_plc_main_profinet_x1_Port_2_HwID : UINT := UINT#66; + plc_main_plc_main_profinet_x2_HwID : UINT := UINT#72; + plc_main_plc_main_profinet_x2_Port_3_HwID : UINT := UINT#73; + plc_main_plc_main_profinet_x2_Port_4_HwID : UINT := UINT#74; + plc_main_plc_main_profinet_x3_HwID : UINT := UINT#120; + plc_main_plc_main_profinet_x3_Port_5_HwID : UINT := UINT#121; + profinet_plc_main_HwID : UINT := UINT#256; + + END_VAR +END_CONFIGURATION diff --git a/src/components.cognex.vision/app/SystemConstants/plc_main_IoAddresses.st b/src/components.cognex.vision/app/SystemConstants/plc_main_IoAddresses.st new file mode 100644 index 000000000..3b07f1921 --- /dev/null +++ b/src/components.cognex.vision/app/SystemConstants/plc_main_IoAddresses.st @@ -0,0 +1,333 @@ +CONFIGURATION IoAddresses + VAR_GLOBAL + communicationcard_Engine_Control_1_InputAddress AT %IL1288: LWORD; + communicationcard_Engine_Control_1_OutputAddress AT %QB1267: BYTE; + communicationcard_Engine_Control_2_InputAddress AT %IL1280: LWORD; + communicationcard_Engine_Control_2_OutputAddress AT %QB1266: BYTE; + communicationcard_Engine_Control_3_InputAddress AT %IL1272: LWORD; + communicationcard_Engine_Control_3_OutputAddress AT %QB1265: BYTE; + communicationcard_Engine_Control_4_InputAddress AT %IL1264: LWORD; + communicationcard_Engine_Control_4_OutputAddress AT %QB1264: BYTE; + communicationcard_Result_Data_240_bytes_1_InputAddress_0 AT %IL1024: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_1 AT %IL1032: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_2 AT %IL1040: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_3 AT %IL1048: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_4 AT %IL1056: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_5 AT %IL1064: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_6 AT %IL1072: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_7 AT %IL1080: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_8 AT %IL1088: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_9 AT %IL1096: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_10 AT %IL1104: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_11 AT %IL1112: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_12 AT %IL1120: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_13 AT %IL1128: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_14 AT %IL1136: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_15 AT %IL1144: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_16 AT %IL1152: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_17 AT %IL1160: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_18 AT %IL1168: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_19 AT %IL1176: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_20 AT %IL1184: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_21 AT %IL1192: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_22 AT %IL1200: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_23 AT %IL1208: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_24 AT %IL1216: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_25 AT %IL1224: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_26 AT %IL1232: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_27 AT %IL1240: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_28 AT %IL1248: LWORD; + communicationcard_Result_Data_240_bytes_1_InputAddress_29 AT %IL1256: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_0 AT %IL784: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_1 AT %IL792: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_2 AT %IL800: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_3 AT %IL808: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_4 AT %IL816: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_5 AT %IL824: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_6 AT %IL832: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_7 AT %IL840: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_8 AT %IL848: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_9 AT %IL856: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_10 AT %IL864: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_11 AT %IL872: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_12 AT %IL880: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_13 AT %IL888: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_14 AT %IL896: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_15 AT %IL904: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_16 AT %IL912: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_17 AT %IL920: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_18 AT %IL928: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_19 AT %IL936: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_20 AT %IL944: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_21 AT %IL952: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_22 AT %IL960: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_23 AT %IL968: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_24 AT %IL976: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_25 AT %IL984: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_26 AT %IL992: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_27 AT %IL1000: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_28 AT %IL1008: LWORD; + communicationcard_Result_Data_240_bytes_2_InputAddress_29 AT %IL1016: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_0 AT %IL544: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_1 AT %IL552: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_2 AT %IL560: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_3 AT %IL568: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_4 AT %IL576: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_5 AT %IL584: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_6 AT %IL592: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_7 AT %IL600: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_8 AT %IL608: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_9 AT %IL616: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_10 AT %IL624: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_11 AT %IL632: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_12 AT %IL640: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_13 AT %IL648: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_14 AT %IL656: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_15 AT %IL664: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_16 AT %IL672: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_17 AT %IL680: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_18 AT %IL688: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_19 AT %IL696: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_20 AT %IL704: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_21 AT %IL712: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_22 AT %IL720: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_23 AT %IL728: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_24 AT %IL736: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_25 AT %IL744: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_26 AT %IL752: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_27 AT %IL760: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_28 AT %IL768: LWORD; + communicationcard_Result_Data_240_bytes_3_InputAddress_29 AT %IL776: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_0 AT %IL304: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_1 AT %IL312: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_2 AT %IL320: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_3 AT %IL328: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_4 AT %IL336: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_5 AT %IL344: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_6 AT %IL352: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_7 AT %IL360: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_8 AT %IL368: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_9 AT %IL376: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_10 AT %IL384: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_11 AT %IL392: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_12 AT %IL400: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_13 AT %IL408: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_14 AT %IL416: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_15 AT %IL424: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_16 AT %IL432: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_17 AT %IL440: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_18 AT %IL448: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_19 AT %IL456: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_20 AT %IL464: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_21 AT %IL472: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_22 AT %IL480: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_23 AT %IL488: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_24 AT %IL496: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_25 AT %IL504: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_26 AT %IL512: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_27 AT %IL520: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_28 AT %IL528: LWORD; + communicationcard_Result_Data_240_bytes_4_InputAddress_29 AT %IL536: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_0 AT %IL64: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_1 AT %IL72: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_2 AT %IL80: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_3 AT %IL88: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_4 AT %IL96: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_5 AT %IL104: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_6 AT %IL112: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_7 AT %IL120: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_8 AT %IL128: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_9 AT %IL136: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_10 AT %IL144: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_11 AT %IL152: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_12 AT %IL160: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_13 AT %IL168: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_14 AT %IL176: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_15 AT %IL184: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_16 AT %IL192: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_17 AT %IL200: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_18 AT %IL208: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_19 AT %IL216: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_20 AT %IL224: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_21 AT %IL232: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_22 AT %IL240: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_23 AT %IL248: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_24 AT %IL256: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_25 AT %IL264: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_26 AT %IL272: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_27 AT %IL280: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_28 AT %IL288: LWORD; + communicationcard_Result_Data_240_bytes_5_InputAddress_29 AT %IL296: LWORD; + communicationcard_Result_Data_64_bytes_1_InputAddress_0 AT %IL0: LWORD; + communicationcard_Result_Data_64_bytes_1_InputAddress_1 AT %IL8: LWORD; + communicationcard_Result_Data_64_bytes_1_InputAddress_2 AT %IL16: LWORD; + communicationcard_Result_Data_64_bytes_1_InputAddress_3 AT %IL24: LWORD; + communicationcard_Result_Data_64_bytes_1_InputAddress_4 AT %IL32: LWORD; + communicationcard_Result_Data_64_bytes_1_InputAddress_5 AT %IL40: LWORD; + communicationcard_Result_Data_64_bytes_1_InputAddress_6 AT %IL48: LWORD; + communicationcard_Result_Data_64_bytes_1_InputAddress_7 AT %IL56: LWORD; + communicationcard_System_Control_InputAddress_0 AT %IL1296: LWORD; + communicationcard_System_Control_InputAddress_1 AT %IL1304: LWORD; + communicationcard_System_Control_OutputAddress_0 AT %QL1268: LWORD; + communicationcard_System_Control_OutputAddress_1 AT %QL1276: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_0 AT %QL1024: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_1 AT %QL1032: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_2 AT %QL1040: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_3 AT %QL1048: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_4 AT %QL1056: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_5 AT %QL1064: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_6 AT %QL1072: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_7 AT %QL1080: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_8 AT %QL1088: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_9 AT %QL1096: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_10 AT %QL1104: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_11 AT %QL1112: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_12 AT %QL1120: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_13 AT %QL1128: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_14 AT %QL1136: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_15 AT %QL1144: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_16 AT %QL1152: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_17 AT %QL1160: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_18 AT %QL1168: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_19 AT %QL1176: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_20 AT %QL1184: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_21 AT %QL1192: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_22 AT %QL1200: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_23 AT %QL1208: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_24 AT %QL1216: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_25 AT %QL1224: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_26 AT %QL1232: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_27 AT %QL1240: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_28 AT %QL1248: LWORD; + communicationcard_User_Data_240_bytes_1_OutputAddress_29 AT %QL1256: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_0 AT %QL784: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_1 AT %QL792: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_2 AT %QL800: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_3 AT %QL808: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_4 AT %QL816: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_5 AT %QL824: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_6 AT %QL832: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_7 AT %QL840: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_8 AT %QL848: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_9 AT %QL856: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_10 AT %QL864: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_11 AT %QL872: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_12 AT %QL880: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_13 AT %QL888: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_14 AT %QL896: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_15 AT %QL904: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_16 AT %QL912: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_17 AT %QL920: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_18 AT %QL928: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_19 AT %QL936: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_20 AT %QL944: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_21 AT %QL952: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_22 AT %QL960: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_23 AT %QL968: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_24 AT %QL976: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_25 AT %QL984: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_26 AT %QL992: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_27 AT %QL1000: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_28 AT %QL1008: LWORD; + communicationcard_User_Data_240_bytes_2_OutputAddress_29 AT %QL1016: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_0 AT %QL544: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_1 AT %QL552: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_2 AT %QL560: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_3 AT %QL568: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_4 AT %QL576: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_5 AT %QL584: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_6 AT %QL592: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_7 AT %QL600: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_8 AT %QL608: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_9 AT %QL616: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_10 AT %QL624: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_11 AT %QL632: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_12 AT %QL640: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_13 AT %QL648: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_14 AT %QL656: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_15 AT %QL664: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_16 AT %QL672: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_17 AT %QL680: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_18 AT %QL688: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_19 AT %QL696: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_20 AT %QL704: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_21 AT %QL712: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_22 AT %QL720: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_23 AT %QL728: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_24 AT %QL736: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_25 AT %QL744: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_26 AT %QL752: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_27 AT %QL760: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_28 AT %QL768: LWORD; + communicationcard_User_Data_240_bytes_3_OutputAddress_29 AT %QL776: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_0 AT %QL304: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_1 AT %QL312: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_2 AT %QL320: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_3 AT %QL328: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_4 AT %QL336: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_5 AT %QL344: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_6 AT %QL352: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_7 AT %QL360: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_8 AT %QL368: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_9 AT %QL376: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_10 AT %QL384: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_11 AT %QL392: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_12 AT %QL400: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_13 AT %QL408: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_14 AT %QL416: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_15 AT %QL424: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_16 AT %QL432: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_17 AT %QL440: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_18 AT %QL448: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_19 AT %QL456: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_20 AT %QL464: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_21 AT %QL472: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_22 AT %QL480: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_23 AT %QL488: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_24 AT %QL496: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_25 AT %QL504: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_26 AT %QL512: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_27 AT %QL520: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_28 AT %QL528: LWORD; + communicationcard_User_Data_240_bytes_4_OutputAddress_29 AT %QL536: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_0 AT %QL64: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_1 AT %QL72: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_2 AT %QL80: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_3 AT %QL88: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_4 AT %QL96: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_5 AT %QL104: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_6 AT %QL112: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_7 AT %QL120: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_8 AT %QL128: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_9 AT %QL136: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_10 AT %QL144: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_11 AT %QL152: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_12 AT %QL160: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_13 AT %QL168: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_14 AT %QL176: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_15 AT %QL184: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_16 AT %QL192: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_17 AT %QL200: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_18 AT %QL208: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_19 AT %QL216: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_20 AT %QL224: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_21 AT %QL232: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_22 AT %QL240: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_23 AT %QL248: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_24 AT %QL256: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_25 AT %QL264: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_26 AT %QL272: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_27 AT %QL280: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_28 AT %QL288: LWORD; + communicationcard_User_Data_240_bytes_5_OutputAddress_29 AT %QL296: LWORD; + communicationcard_User_Data_64_bytes_1_OutputAddress_0 AT %QL0: LWORD; + communicationcard_User_Data_64_bytes_1_OutputAddress_1 AT %QL8: LWORD; + communicationcard_User_Data_64_bytes_1_OutputAddress_2 AT %QL16: LWORD; + communicationcard_User_Data_64_bytes_1_OutputAddress_3 AT %QL24: LWORD; + communicationcard_User_Data_64_bytes_1_OutputAddress_4 AT %QL32: LWORD; + communicationcard_User_Data_64_bytes_1_OutputAddress_5 AT %QL40: LWORD; + communicationcard_User_Data_64_bytes_1_OutputAddress_6 AT %QL48: LWORD; + communicationcard_User_Data_64_bytes_1_OutputAddress_7 AT %QL56: LWORD; + + END_VAR +END_CONFIGURATION diff --git a/src/components.cognex.vision/app/apax.yml b/src/components.cognex.vision/app/apax.yml index 37b0e9838..9e596a75b 100644 --- a/src/components.cognex.vision/app/apax.yml +++ b/src/components.cognex.vision/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.cognex.vision" +name: "app_axopen.components.cognex.vision" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Cognex.Vision" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,138 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | - apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\$PLC_NAME\\$PLC_NAME.cer --continuously + + + + diff --git a/src/components.cognex.vision/app/gsd/source/gsdml-v2.3-cognex-cc24-20140828.xml b/src/components.cognex.vision/app/gsd/source/gsdml-v2.3-cognex-cc24-20140828.xml new file mode 100644 index 000000000..e7ff60557 --- /dev/null +++ b/src/components.cognex.vision/app/gsd/source/gsdml-v2.3-cognex-cc24-20140828.xml @@ -0,0 +1,621 @@ + + + + PROFINET Device Profile + 1.00 + Device Profile for PROFINET Devices + PROFIBUS Nutzerorganisation e. V. (PNO) + Device + + 4 + 1 + GSDML + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components.cognex.vision/app/hwc/plc_line.hwl.yml b/src/components.cognex.vision/app/hwc/plc_line.hwl.yml index dd5fe3e07..d6b83780b 100644 --- a/src/components.cognex.vision/app/hwc/plc_line.hwl.yml +++ b/src/components.cognex.vision/app/hwc/plc_line.hwl.yml @@ -2,11 +2,11 @@ Devices: - Name: plc_line Modules: - Apply: - TemplateName: 6ES7516-3AP03-0AB0_v3_1 - Arguments: - PLCName: plc_line - IpAddress_X1: 192.168.100.120/24 - ProfinetDeviceName_X1: plc_line_x1 + TemplateName: 6ES7516-3AP03-0AB0_v3_1 + Arguments: + PLCName: plc_line + IpAddress_X1: 192.168.100.120/24 + ProfinetDeviceName_X1: plc_line_x1 IoSystems: - Name: profinet_plc_line ControllerInterfaces: @@ -16,3 +16,4 @@ IoSystems: - Ref: dm_300/dm_300/profinet - Ref: is7600/is7600/profinet - Ref: is2800/is2800/profinet + - Ref: vision_pro/vision_pro/profinet diff --git a/src/components.cognex.vision/app/ix-blazor/Pages/Component_5.razor b/src/components.cognex.vision/app/ix-blazor/Pages/Component_5.razor new file mode 100644 index 000000000..5aa971e10 --- /dev/null +++ b/src/components.cognex.vision/app/ix-blazor/Pages/Component_5.razor @@ -0,0 +1,24 @@ +@page "/Component_5" +@using AXOpen.Core; + +Documentation + + + + + + + + + + + + + + + + + + + + diff --git a/src/components.cognex.vision/app/ix-blazor/Pages/Documentation.razor b/src/components.cognex.vision/app/ix-blazor/Pages/Documentation.razor index 2db24630c..1cad24665 100644 --- a/src/components.cognex.vision/app/ix-blazor/Pages/Documentation.razor +++ b/src/components.cognex.vision/app/ix-blazor/Pages/Documentation.razor @@ -16,4 +16,7 @@ + + + \ No newline at end of file diff --git a/src/components.cognex.vision/app/ix/Entry.cs b/src/components.cognex.vision/app/ix/Entry.cs index 6c2c44aff..3fdcd9fd1 100644 --- a/src/components.cognex.vision/app/ix/Entry.cs +++ b/src/components.cognex.vision/app/ix/Entry.cs @@ -24,12 +24,17 @@ public class ConnectionConfig public class TwinConnectorSelector { // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => - public static string TargetIp { get; } = "192.168.100.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP - private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. - private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings - private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + //public static string TargetIp { get; } = "192.168.100.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP + //private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. + //private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings + //private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. + //private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. + public static string TargetIp { get; } = "10.1.100.90"; + private static string Pass => @"MTSservis1234+"; + private static string UserName = "admin"; + private const bool IgnoreSslErrors = true; + private static string CertificatePath = "..\\certs\\plc_main\\plc_main.cer"; static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.cognex.vision/app/monitor.mon b/src/components.cognex.vision/app/monitor.mon index 9fee304b2..e96024fdd 100644 --- a/src/components.cognex.vision/app/monitor.mon +++ b/src/components.cognex.vision/app/monitor.mon @@ -1,5 +1,11 @@ -documentation.componentFour.Insight_2800._progress -documentation.componentFour.Insight_2800._jobName -documentation.componentFour.Insight_2800.Config.ResultDataSize -documentation.componentFour.Insight_2800.ReadTask -documentation.componentFour +Inputs.communicationcard_Result_Data_240_bytes_1_0 +documentation.componentFive.VisionPro._readResultsLength +documentation.componentFive.VisionPro.index +documentation.componentFive.VisionPro._data_in_1301 +documentation.componentFive.VisionPro.ResultData.Data +documentation.componentFive.VisionPro.Inputs.Status.ReadDataLockerJobID +documentation.componentFive.VisionPro.Config.CameraNo +documentation.componentFive.VisionPro.Outputs.Control.JobLoadID +documentation.componentFive.VisionPro.Inputs.Status.CurentJobID +documentation.componentFive.VisionPro.Outputs.Control.InitiateJobLoad +documentation.componentFive.VisionPro.Inputs.Status.JobLoadComplete \ No newline at end of file diff --git a/src/components.cognex.vision/app/src/Documentation/Component_1.st b/src/components.cognex.vision/app/src/Documentation/Component_1.st index 58d5e4e14..6c8d9ecd0 100644 --- a/src/components.cognex.vision/app/src/Documentation/Component_1.st +++ b/src/components.cognex.vision/app/src/Documentation/Component_1.st @@ -1,6 +1,6 @@ USING AXOpen.Core; -NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 +NAMESPACE AXOpen.Components.Cognex.Vision {S7.extern=ReadWrite} CLASS Component_1 EXTENDS AXOpen.Core.AxoObject @@ -31,20 +31,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; // - Insight_7600.Run( parent := THIS, - ResultDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoInsight_ResultDataSize#RESULT_DATA_64B, - UserDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoInsight_UserDataSize#USER_DATA_64B, - hwID := HwIdentifiers#is7600_HwID, - hwIdAcquisitionControl := HwIdentifiers#is7600_Acquisition_Control_Acquisition_Control_HwID, - hwIdAcquisitionStatus := HwIdentifiers#is7600_Acquisition_Status_Acquisition_Status_HwID, - hwIdInspectionControl := HwIdentifiers#is7600_Inspection_Control_Inspection_Control_HwID, - hwIdInspectionStatus := HwIdentifiers#is7600_Inspection_Status_Inspection_Status_HwID, - hwIdCommandControl := HwIdentifiers#is7600_Command_Control_Command_Control_HwID, - hwIdSoftEventControl := HwIdentifiers#is7600_SoftEvent_Control_SoftEvent_Control_HwID, - hwIdResultData := HwIdentifiers#is7600_Result_Data_64_bytes_Results___64_bytes_HwID, - hwIdUserData := HwIdentifiers#is7600_User_Data_64_bytes_User_Data___64_bytes_HwID); + Insight_7600.Run(parent := THIS, hwID := HwIdentifiers#is7600_HwID); // - THIS.UseInSequencer(); + THIS.UseInSequencer(); END_METHOD // diff --git a/src/components.cognex.vision/app/src/Documentation/Component_2.st b/src/components.cognex.vision/app/src/Documentation/Component_2.st index 5ac565dc7..3a8579fd8 100644 --- a/src/components.cognex.vision/app/src/Documentation/Component_2.st +++ b/src/components.cognex.vision/app/src/Documentation/Component_2.st @@ -1,6 +1,6 @@ USING AXOpen.Core; -NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 +NAMESPACE AXOpen.Components.Cognex.Vision {S7.extern=ReadWrite} CLASS Component_2 EXTENDS AXOpen.Core.AxoObject @@ -30,18 +30,8 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 // END_IF; - // - Dataman_280.Run(parent := THIS, - ResultDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoDataman_ResultDataSize#RESULT_DATA_128B, - UserDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoDataman_UserDataSize#USER_DATA_128B, - hwID := HwIdentifiers#dm_280_HwID, - hwIdAcquisitionControl := HwIdentifiers#dm_280_Acquisition_Control_Acquisition_Control_HwID, - hwIdAcquisitionStatus := HwIdentifiers#dm_280_Acquisition_Status_Acquisition_Status_HwID, - hwIdResultsControl := HwIdentifiers#dm_280_Results_Control_Results_Control_HwID, - hwIdResultsStatus := HwIdentifiers#dm_280_Results_Status_Results_Status_HwID, - hwIdSoftEventControl := HwIdentifiers#dm_280_Soft_Event_Control_Soft_Event_Control_HwID, - hwIdResultData := HwIdentifiers#dm_280_Result_Data_128_bytes_Result_Data___128_bytes_HwID, - hwIdUserData := HwIdentifiers#dm_280_User_Data_128_bytes_User_Data___128_bytes_HwID); + // + Dataman_280.Run(parent := THIS, hwID := HwIdentifiers#dm_280_HwID); // THIS.UseInSequencer(); diff --git a/src/components.cognex.vision/app/src/Documentation/Component_3.st b/src/components.cognex.vision/app/src/Documentation/Component_3.st index cf41ab021..fac1d2a49 100644 --- a/src/components.cognex.vision/app/src/Documentation/Component_3.st +++ b/src/components.cognex.vision/app/src/Documentation/Component_3.st @@ -1,6 +1,6 @@ USING AXOpen.Core; -NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 +NAMESPACE AXOpen.Components.Cognex.Vision {S7.extern=ReadWrite} CLASS Component_3 EXTENDS AXOpen.Core.AxoObject @@ -31,20 +31,10 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; // - Dataman_300.Run(parent := THIS, - ResultDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoDataman_ResultDataSize#RESULT_DATA_64B, - UserDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoDataman_UserDataSize#USER_DATA_64B, - hwID := HwIdentifiers#dm_300_HwID, - hwIdAcquisitionControl := HwIdentifiers#dm_300_Acquisition_Control_Acquisition_Control_HwID, - hwIdAcquisitionStatus := HwIdentifiers#dm_300_Acquisition_Status_Acquisition_Status_HwID, - hwIdResultsControl := HwIdentifiers#dm_300_Results_Control_Results_Control_HwID, - hwIdResultsStatus := HwIdentifiers#dm_300_Results_Status_Results_Status_HwID, - hwIdSoftEventControl := HwIdentifiers#dm_300_Soft_Event_Control_Soft_Event_Control_HwID, - hwIdResultData := HwIdentifiers#dm_300_Result_Data_64_bytes_Result_Data___64_bytes_HwID, - hwIdUserData := HwIdentifiers#dm_300_User_Data_64_bytes_User_Data___64_bytes_HwID); + Dataman_300.Run(parent := THIS, hwID := HwIdentifiers#dm_300_HwID); // - THIS.UseInSequencer(); + THIS.UseInSequencer(); END_METHOD // diff --git a/src/components.cognex.vision/app/src/Documentation/Component_4.st b/src/components.cognex.vision/app/src/Documentation/Component_4.st index 3d70b591e..5d030fdbc 100644 --- a/src/components.cognex.vision/app/src/Documentation/Component_4.st +++ b/src/components.cognex.vision/app/src/Documentation/Component_4.st @@ -1,12 +1,12 @@ USING AXOpen.Core; -NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 +NAMESPACE AXOpen.Components.Cognex.Vision {S7.extern=ReadWrite} CLASS Component_4 EXTENDS AXOpen.Core.AxoObject // VAR PUBLIC - Insight_2800 : AXOpen.Components.Cognex.Vision.v_6_0_0_0.AxoInsight; + Insight_2800 : AXOpen.Components.Cognex.Vision.v_24_0_0.AxoInsight; END_VAR // @@ -31,18 +31,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; // - Insight_2800.Run( parent := THIS, - ResultDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoInsight_ResultDataSize#RESULT_DATA_64B, - UserDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoInsight_UserDataSize#USER_DATA_64B, - hwID := HwIdentifiers#is2800_HwID, - hwIdAcquisitionControl := HwIdentifiers#is2800_Acquisition_Control_Acquisition_Control_HwID, - hwIdAcquisitionStatus := HwIdentifiers#is2800_Acquisition_Status_Acquisition_Status_HwID, - hwIdInspectionControl := HwIdentifiers#is2800_Inspection_Control_Inspection_Control_HwID, - hwIdInspectionStatus := HwIdentifiers#is2800_Inspection_Status_Inspection_Status_HwID, - hwIdCommandControl := HwIdentifiers#is2800_Command_Control_Command_Control_HwID, - hwIdSoftEventControl := HwIdentifiers#is2800_SoftEvent_Control_ExternalEvent_Control_HwID, - hwIdResultData := HwIdentifiers#is2800_Result_Data_64_bytes_Results___64_bytes_HwID, - hwIdUserData := HwIdentifiers#is2800_User_Data_64_bytes_User_Data___64_bytes_HwID); + Insight_2800.Run(parent := THIS, hwID := HwIdentifiers#is2800_HwID); // THIS.UseInSequencer(); END_METHOD @@ -54,7 +43,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_VAR VAR PRIVATE - _InspectionResults : AXOpen.Components.Cognex.Vision.v_6_0_0_0.AxoInsight_ResultData; + _InspectionResults : AXOpen.Components.Cognex.Vision.v_24_0_0.AxoInsight_ResultData; END_VAR METHOD PRIVATE UseInSequencer diff --git a/src/components.cognex.vision/app/src/Documentation/Component_5.st b/src/components.cognex.vision/app/src/Documentation/Component_5.st new file mode 100644 index 000000000..02423554a --- /dev/null +++ b/src/components.cognex.vision/app/src/Documentation/Component_5.st @@ -0,0 +1,109 @@ +USING AXOpen.Core; + +NAMESPACE AXOpen.Components.Cognex.Vision + + {S7.extern=ReadWrite} + CLASS Component_5 EXTENDS AXOpen.Core.AxoObject + // + VAR PUBLIC + VisionPro : AXOpen.Components.Cognex.Vision.AxoVisionPro; + END_VAR + // + + // + VAR PUBLIC + {#ix-set:AttributeName = "<#Activate manual control#>"} + ActivateManualControl : BOOL; + END_VAR + // + + METHOD PUBLIC OVERRIDE Run + VAR_INPUT + parent : IAxoObject; + END_VAR + + SUPER.Run(parent); + + IF ActivateManualControl THEN + // + VisionPro.ActivateManualControl(); + // + END_IF; + + // + VisionPro.Run(parent := THIS, hwID := HwIdentifiers#vision_pro_HwID, CameraNo := BYTE#1); + // + THIS.UseInSequencer(); + END_METHOD + + // + VAR PUBLIC + Sequencer : AxoSequencer; + Steps : ARRAY[0..10] OF AXOpen.Core.AxoStep; + END_VAR + + VAR PRIVATE + _InspectionResults : ARRAY[0..1300] OF BYTE; + _UserData : ARRAY[0..1300] OF BYTE; + END_VAR + + METHOD PRIVATE UseInSequencer + IF Sequencer.GetContext().OpenCycleCount() <= ULINT#10 THEN + Sequencer.SequenceMode := eAxoSequenceMode#RunOnce; + END_IF; + + Sequencer.Run(THIS); + Sequencer.Open(); + + IF(Steps[0].Execute(Sequencer, 'Restore')) THEN + VisionPro.Restore(); + Sequencer.MoveNext(); + END_IF; + + IF(Steps[1].Execute(Sequencer, 'HardResetAllCameras')) THEN + IF(VisionPro.HardResetAllCameras().IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[2].Execute(Sequencer, 'SendData')) THEN + IF(VisionPro.SendData(InspectionType := BYTE#1, BufferID := BYTE#0, JobID := BYTE#1, Length := UINT#1, Data := _UserData).IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[3].Execute(Sequencer, 'Trigger')) THEN + IF(VisionPro.Trigger().IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[4].Execute(Sequencer, 'SendData')) THEN + IF(VisionPro.SendData(InspectionType := BYTE#2, BufferID := BYTE#0, JobID := BYTE#1, Length := UINT#1, Data := _UserData).IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[5].Execute(Sequencer, 'ReadResults')) THEN + IF(VisionPro.ReadResults(JobID := BYTE#1, Length := UINT#620, Data := _InspectionResults).IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[6].Execute(Sequencer, 'Reset')) THEN + IF(VisionPro.Reset().IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[7].Execute(Sequencer, 'Restore')) THEN + VisionPro.Restore(); + Sequencer.CompleteSequence(); + END_IF; + END_METHOD + + // + + + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.cognex.vision/app/src/Documentation/DocumentationContext.st b/src/components.cognex.vision/app/src/Documentation/DocumentationContext.st index bb9936416..eecd628f4 100644 --- a/src/components.cognex.vision/app/src/Documentation/DocumentationContext.st +++ b/src/components.cognex.vision/app/src/Documentation/DocumentationContext.st @@ -1,4 +1,6 @@ -NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 +USING AXOpen.Components.Cognex.Vision; + +NAMESPACE AXOpen.Components.Cognex.Vision {S7.extern=ReadWrite} CLASS DocumentationContext EXTENDS AXOpen.Core.AxoContext @@ -8,6 +10,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 componentTwo : Component_2; componentThree : Component_3; componentFour : Component_4; + componentFive : Component_5; END_VAR METHOD PROTECTED OVERRIDE Main @@ -16,6 +19,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 componentTwo.Run(_rootObject); componentThree.Run(_rootObject); componentFour.Run(_rootObject); + componentFive.Run(_rootObject); END_METHOD END_CLASS END_NAMESPACE \ No newline at end of file diff --git a/src/components.cognex.vision/app/src/IO/HwIdentifiers.st b/src/components.cognex.vision/app/src/IO/HwIdentifiers.st index c26dc1f5b..ddeae428b 100644 --- a/src/components.cognex.vision/app/src/IO/HwIdentifiers.st +++ b/src/components.cognex.vision/app/src/IO/HwIdentifiers.st @@ -2,62 +2,62 @@ NAMESPACE AXOpen.Components.Cognex.Vision TYPE HwIdentifiers : WORD ( - dm_280_HwID := WORD#299, - dm_280_Acquisition_Control_Acquisition_Control_HwID := WORD#309, - dm_280_Acquisition_Status_Acquisition_Status_HwID := WORD#306, - dm_280_Rack_HwID := WORD#301, - dm_280_Result_Data_128_bytes_Result_Data___128_bytes_HwID := WORD#303, - dm_280_Results_Control_Results_Control_HwID := WORD#308, - dm_280_Results_Status_Results_Status_HwID := WORD#305, - dm_280_Soft_Event_Control_Soft_Event_Control_HwID := WORD#307, - dm_280_User_Data_128_bytes_User_Data___128_bytes_HwID := WORD#304, - dm_280_dm_280_HwID := WORD#302, - dm_280_dm_280_DataMan_280_CC_B_HwID := WORD#310, - dm_280_dm_280_profinet_HwID := WORD#298, - dm_280_dm_280_profinet_Port_1_HwID := WORD#300, - dm_300_HwID := WORD#286, - dm_300_Acquisition_Control_Acquisition_Control_HwID := WORD#296, - dm_300_Acquisition_Status_Acquisition_Status_HwID := WORD#293, - dm_300_Rack_HwID := WORD#288, - dm_300_Result_Data_64_bytes_Result_Data___64_bytes_HwID := WORD#290, - dm_300_Results_Control_Results_Control_HwID := WORD#295, - dm_300_Results_Status_Results_Status_HwID := WORD#292, - dm_300_Soft_Event_Control_Soft_Event_Control_HwID := WORD#294, - dm_300_User_Data_64_bytes_User_Data___64_bytes_HwID := WORD#291, - dm_300_dm_300_HwID := WORD#289, - dm_300_dm_300_DataMan_300_HwID := WORD#297, - dm_300_dm_300_profinet_HwID := WORD#285, - dm_300_dm_300_profinet_Port_1_HwID := WORD#287, - is2800_HwID := WORD#258, - is2800_Acquisition_Control_Acquisition_Control_HwID := WORD#269, - is2800_Acquisition_Status_Acquisition_Status_HwID := WORD#264, - is2800_Command_Control_Command_Control_HwID := WORD#266, - is2800_Inspection_Control_Inspection_Control_HwID := WORD#268, - is2800_Inspection_Status_Inspection_Status_HwID := WORD#265, - is2800_Rack_HwID := WORD#260, - is2800_Result_Data_64_bytes_Results___64_bytes_HwID := WORD#262, - is2800_SoftEvent_Control_ExternalEvent_Control_HwID := WORD#267, - is2800_User_Data_64_bytes_User_Data___64_bytes_HwID := WORD#263, - is2800_is2800_HwID := WORD#261, - is2800_is2800_In_Sight_IS28XX_CC_B_HwID := WORD#270, - is2800_is2800_profinet_HwID := WORD#257, - is2800_is2800_profinet_Port_1_HwID := WORD#259, - is7600_HwID := WORD#272, - is7600_Acquisition_Control_Acquisition_Control_HwID := WORD#283, - is7600_Acquisition_Status_Acquisition_Status_HwID := WORD#279, - is7600_Command_Control_Command_Control_HwID := WORD#280, - is7600_Inspection_Control_Inspection_Control_HwID := WORD#282, - is7600_Inspection_Status_Inspection_Status_HwID := WORD#278, - is7600_Rack_HwID := WORD#274, - is7600_Result_Data_64_bytes_Results___64_bytes_HwID := WORD#276, - is7600_SoftEvent_Control_SoftEvent_Control_HwID := WORD#281, - is7600_User_Data_64_bytes_User_Data___64_bytes_HwID := WORD#277, - is7600_is7600_HwID := WORD#275, - is7600_is7600_In_Sight_IS79XX_IS75XX_CC_B_HwID := WORD#284, - is7600_is7600_profinet_HwID := WORD#271, - is7600_is7600_profinet_Port_1_HwID := WORD#273, + dm_280_HwID := WORD#322, + dm_280_Acquisition_Control_Acquisition_Control_HwID := WORD#332, + dm_280_Acquisition_Status_Acquisition_Status_HwID := WORD#329, + dm_280_Rack_HwID := WORD#324, + dm_280_Result_Data_128_bytes_Result_Data___128_bytes_HwID := WORD#326, + dm_280_Results_Control_Results_Control_HwID := WORD#331, + dm_280_Results_Status_Results_Status_HwID := WORD#328, + dm_280_Soft_Event_Control_Soft_Event_Control_HwID := WORD#330, + dm_280_User_Data_128_bytes_User_Data___128_bytes_HwID := WORD#327, + dm_280_dm_280_HwID := WORD#325, + dm_280_dm_280_DataMan_280_CC_B_HwID := WORD#333, + dm_280_dm_280_profinet_HwID := WORD#321, + dm_280_dm_280_profinet_Port_1_HwID := WORD#323, + dm_300_HwID := WORD#309, + dm_300_Acquisition_Control_Acquisition_Control_HwID := WORD#319, + dm_300_Acquisition_Status_Acquisition_Status_HwID := WORD#316, + dm_300_Rack_HwID := WORD#311, + dm_300_Result_Data_64_bytes_Result_Data___64_bytes_HwID := WORD#313, + dm_300_Results_Control_Results_Control_HwID := WORD#318, + dm_300_Results_Status_Results_Status_HwID := WORD#315, + dm_300_Soft_Event_Control_Soft_Event_Control_HwID := WORD#317, + dm_300_User_Data_64_bytes_User_Data___64_bytes_HwID := WORD#314, + dm_300_dm_300_HwID := WORD#312, + dm_300_dm_300_DataMan_300_HwID := WORD#320, + dm_300_dm_300_profinet_HwID := WORD#308, + dm_300_dm_300_profinet_Port_1_HwID := WORD#310, + is2800_HwID := WORD#281, + is2800_Acquisition_Control_Acquisition_Control_HwID := WORD#292, + is2800_Acquisition_Status_Acquisition_Status_HwID := WORD#287, + is2800_Command_Control_Command_Control_HwID := WORD#289, + is2800_Inspection_Control_Inspection_Control_HwID := WORD#291, + is2800_Inspection_Status_Inspection_Status_HwID := WORD#288, + is2800_Rack_HwID := WORD#283, + is2800_Result_Data_64_bytes_Results___64_bytes_HwID := WORD#285, + is2800_SoftEvent_Control_ExternalEvent_Control_HwID := WORD#290, + is2800_User_Data_64_bytes_User_Data___64_bytes_HwID := WORD#286, + is2800_is2800_HwID := WORD#284, + is2800_is2800_In_Sight_IS28XX_CC_B_HwID := WORD#293, + is2800_is2800_profinet_HwID := WORD#280, + is2800_is2800_profinet_Port_1_HwID := WORD#282, + is7600_HwID := WORD#295, + is7600_Acquisition_Control_Acquisition_Control_HwID := WORD#306, + is7600_Acquisition_Status_Acquisition_Status_HwID := WORD#302, + is7600_Command_Control_Command_Control_HwID := WORD#303, + is7600_Inspection_Control_Inspection_Control_HwID := WORD#305, + is7600_Inspection_Status_Inspection_Status_HwID := WORD#301, + is7600_Rack_HwID := WORD#297, + is7600_Result_Data_64_bytes_Results___64_bytes_HwID := WORD#299, + is7600_SoftEvent_Control_SoftEvent_Control_HwID := WORD#304, + is7600_User_Data_64_bytes_User_Data___64_bytes_HwID := WORD#300, + is7600_is7600_HwID := WORD#298, + is7600_is7600_In_Sight_IS79XX_IS75XX_CC_B_HwID := WORD#307, + is7600_is7600_profinet_HwID := WORD#294, + is7600_is7600_profinet_Port_1_HwID := WORD#296, plc_line_HwID := WORD#32, - plc_line_Rail_0_HwID := WORD#311, + plc_line_Rail_0_HwID := WORD#334, plc_line_plc_line_HwID := WORD#48, plc_line_plc_line_CPU_display_1_HwID := WORD#54, plc_line_plc_line_Card_reader_writer_1_HwID := WORD#51, @@ -70,6 +70,29 @@ NAMESPACE AXOpen.Components.Cognex.Vision plc_line_plc_line_profinet_x2_HwID := WORD#72, plc_line_plc_line_profinet_x2_Port_3_HwID := WORD#73, profinet_plc_line_HwID := WORD#256, + vision_pro_HwID := WORD#258, + vision_pro_Engine_Control_1_Engine_Control_HwID := WORD#277, + vision_pro_Engine_Control_2_Engine_Control_HwID := WORD#276, + vision_pro_Engine_Control_3_Engine_Control_HwID := WORD#275, + vision_pro_Engine_Control_4_Engine_Control_HwID := WORD#274, + vision_pro_Rack_HwID := WORD#260, + vision_pro_Result_Data_240_bytes_1_Results___240_bytes_HwID := WORD#272, + vision_pro_Result_Data_240_bytes_2_Results___240_bytes_HwID := WORD#266, + vision_pro_Result_Data_240_bytes_3_Results___240_bytes_HwID := WORD#265, + vision_pro_Result_Data_240_bytes_4_Results___240_bytes_HwID := WORD#264, + vision_pro_Result_Data_240_bytes_5_Results___240_bytes_HwID := WORD#263, + vision_pro_Result_Data_64_bytes_1_Results___64_bytes_HwID := WORD#262, + vision_pro_System_Control_System_Control_HwID := WORD#278, + vision_pro_User_Data_240_bytes_1_User_Data___240_bytes_HwID := WORD#273, + vision_pro_User_Data_240_bytes_2_User_Data___240_bytes_HwID := WORD#271, + vision_pro_User_Data_240_bytes_3_User_Data___240_bytes_HwID := WORD#270, + vision_pro_User_Data_240_bytes_4_User_Data___240_bytes_HwID := WORD#269, + vision_pro_User_Data_240_bytes_5_User_Data___240_bytes_HwID := WORD#268, + vision_pro_User_Data_64_bytes_1_User_Data___64_bytes_HwID := WORD#267, + vision_pro_vision_pro_HwID := WORD#261, + vision_pro_vision_pro_Communication_Card_CC24_HwID := WORD#279, + vision_pro_vision_pro_profinet_HwID := WORD#257, + vision_pro_vision_pro_profinet_Port_1_HwID := WORD#259, NONE := WORD#0 ); diff --git a/src/components.cognex.vision/app/src/IO/Inputs.st b/src/components.cognex.vision/app/src/IO/Inputs.st index 8b1815535..dbef4a1e3 100644 --- a/src/components.cognex.vision/app/src/IO/Inputs.st +++ b/src/components.cognex.vision/app/src/IO/Inputs.st @@ -3,86 +3,250 @@ NAMESPACE AXOpen.Components.Cognex.Vision {S7.extern=ReadWrite} {#ix-attr:[Container(Layout.Wrap)]} Inputs : STRUCT - dm_280_Acquisition_Status_0 AT %B373: BYTE; - dm_280_Acquisition_Status_1 AT %B374: BYTE; - dm_280_Acquisition_Status_2 AT %B375: BYTE; - dm_280_Result_Data_128_bytes_0 AT %B236: LWORD; - dm_280_Result_Data_128_bytes_1 AT %B244: LWORD; - dm_280_Result_Data_128_bytes_2 AT %B252: LWORD; - dm_280_Result_Data_128_bytes_3 AT %B260: LWORD; - dm_280_Result_Data_128_bytes_4 AT %B268: LWORD; - dm_280_Result_Data_128_bytes_5 AT %B276: LWORD; - dm_280_Result_Data_128_bytes_6 AT %B284: LWORD; - dm_280_Result_Data_128_bytes_7 AT %B292: LWORD; - dm_280_Result_Data_128_bytes_8 AT %B300: LWORD; - dm_280_Result_Data_128_bytes_9 AT %B308: LWORD; - dm_280_Result_Data_128_bytes_10 AT %B316: LWORD; - dm_280_Result_Data_128_bytes_11 AT %B324: LWORD; - dm_280_Result_Data_128_bytes_12 AT %B332: LWORD; - dm_280_Result_Data_128_bytes_13 AT %B340: LWORD; - dm_280_Result_Data_128_bytes_14 AT %B348: LWORD; - dm_280_Result_Data_128_bytes_15 AT %B356: LWORD; - dm_280_Result_Data_128_bytes_16 AT %B364: LWORD; - dm_280_Results_Status AT %B372: BYTE; - dm_280_Soft_Event_Control AT %B376: BYTE; - dm_300_Acquisition_Status_0 AT %B232: BYTE; - dm_300_Acquisition_Status_1 AT %B233: BYTE; - dm_300_Acquisition_Status_2 AT %B234: BYTE; - dm_300_Result_Data_64_bytes_0 AT %B159: LWORD; - dm_300_Result_Data_64_bytes_1 AT %B167: LWORD; - dm_300_Result_Data_64_bytes_2 AT %B175: LWORD; - dm_300_Result_Data_64_bytes_3 AT %B183: LWORD; - dm_300_Result_Data_64_bytes_4 AT %B191: LWORD; - dm_300_Result_Data_64_bytes_5 AT %B199: LWORD; - dm_300_Result_Data_64_bytes_6 AT %B207: LWORD; - dm_300_Result_Data_64_bytes_7 AT %B215: LWORD; - dm_300_Result_Data_64_bytes_8 AT %B223: LWORD; - dm_300_Results_Status AT %B231: BYTE; - dm_300_Soft_Event_Control AT %B235: BYTE; - is2800_Acquisition_Status AT %B68: DWORD; - is2800_Command_Control AT %B76: DWORD; - is2800_Inspection_Status AT %B72: DWORD; - is2800_Result_Data_64_bytes_0 AT %B0: DWORD; - is2800_Result_Data_64_bytes_1 AT %B4: DWORD; - is2800_Result_Data_64_bytes_2 AT %B8: DWORD; - is2800_Result_Data_64_bytes_3 AT %B12: DWORD; - is2800_Result_Data_64_bytes_4 AT %B16: DWORD; - is2800_Result_Data_64_bytes_5 AT %B20: DWORD; - is2800_Result_Data_64_bytes_6 AT %B24: DWORD; - is2800_Result_Data_64_bytes_7 AT %B28: DWORD; - is2800_Result_Data_64_bytes_8 AT %B32: DWORD; - is2800_Result_Data_64_bytes_9 AT %B36: DWORD; - is2800_Result_Data_64_bytes_10 AT %B40: DWORD; - is2800_Result_Data_64_bytes_11 AT %B44: DWORD; - is2800_Result_Data_64_bytes_12 AT %B48: DWORD; - is2800_Result_Data_64_bytes_13 AT %B52: DWORD; - is2800_Result_Data_64_bytes_14 AT %B56: DWORD; - is2800_Result_Data_64_bytes_15 AT %B60: DWORD; - is2800_Result_Data_64_bytes_16 AT %B64: DWORD; - is2800_SoftEvent_Control AT %B80: BYTE; - is7600_Acquisition_Status_0 AT %B153: BYTE; - is7600_Acquisition_Status_1 AT %B154: BYTE; - is7600_Acquisition_Status_2 AT %B155: BYTE; - is7600_Command_Control AT %B156: WORD; - is7600_Inspection_Status AT %B149: DWORD; - is7600_Result_Data_64_bytes_0 AT %B81: DWORD; - is7600_Result_Data_64_bytes_1 AT %B85: DWORD; - is7600_Result_Data_64_bytes_2 AT %B89: DWORD; - is7600_Result_Data_64_bytes_3 AT %B93: DWORD; - is7600_Result_Data_64_bytes_4 AT %B97: DWORD; - is7600_Result_Data_64_bytes_5 AT %B101: DWORD; - is7600_Result_Data_64_bytes_6 AT %B105: DWORD; - is7600_Result_Data_64_bytes_7 AT %B109: DWORD; - is7600_Result_Data_64_bytes_8 AT %B113: DWORD; - is7600_Result_Data_64_bytes_9 AT %B117: DWORD; - is7600_Result_Data_64_bytes_10 AT %B121: DWORD; - is7600_Result_Data_64_bytes_11 AT %B125: DWORD; - is7600_Result_Data_64_bytes_12 AT %B129: DWORD; - is7600_Result_Data_64_bytes_13 AT %B133: DWORD; - is7600_Result_Data_64_bytes_14 AT %B137: DWORD; - is7600_Result_Data_64_bytes_15 AT %B141: DWORD; - is7600_Result_Data_64_bytes_16 AT %B145: DWORD; - is7600_SoftEvent_Control AT %B158: BYTE; + dm_280_Acquisition_Status_0 AT %B1685: BYTE; + dm_280_Acquisition_Status_1 AT %B1686: BYTE; + dm_280_Acquisition_Status_2 AT %B1687: BYTE; + dm_280_Result_Data_128_bytes_0 AT %B1548: LWORD; + dm_280_Result_Data_128_bytes_1 AT %B1556: LWORD; + dm_280_Result_Data_128_bytes_2 AT %B1564: LWORD; + dm_280_Result_Data_128_bytes_3 AT %B1572: LWORD; + dm_280_Result_Data_128_bytes_4 AT %B1580: LWORD; + dm_280_Result_Data_128_bytes_5 AT %B1588: LWORD; + dm_280_Result_Data_128_bytes_6 AT %B1596: LWORD; + dm_280_Result_Data_128_bytes_7 AT %B1604: LWORD; + dm_280_Result_Data_128_bytes_8 AT %B1612: LWORD; + dm_280_Result_Data_128_bytes_9 AT %B1620: LWORD; + dm_280_Result_Data_128_bytes_10 AT %B1628: LWORD; + dm_280_Result_Data_128_bytes_11 AT %B1636: LWORD; + dm_280_Result_Data_128_bytes_12 AT %B1644: LWORD; + dm_280_Result_Data_128_bytes_13 AT %B1652: LWORD; + dm_280_Result_Data_128_bytes_14 AT %B1660: LWORD; + dm_280_Result_Data_128_bytes_15 AT %B1668: LWORD; + dm_280_Result_Data_128_bytes_16 AT %B1676: LWORD; + dm_280_Results_Status AT %B1684: BYTE; + dm_280_Soft_Event_Control AT %B1688: BYTE; + dm_300_Acquisition_Status_0 AT %B1544: BYTE; + dm_300_Acquisition_Status_1 AT %B1545: BYTE; + dm_300_Acquisition_Status_2 AT %B1546: BYTE; + dm_300_Result_Data_64_bytes_0 AT %B1471: LWORD; + dm_300_Result_Data_64_bytes_1 AT %B1479: LWORD; + dm_300_Result_Data_64_bytes_2 AT %B1487: LWORD; + dm_300_Result_Data_64_bytes_3 AT %B1495: LWORD; + dm_300_Result_Data_64_bytes_4 AT %B1503: LWORD; + dm_300_Result_Data_64_bytes_5 AT %B1511: LWORD; + dm_300_Result_Data_64_bytes_6 AT %B1519: LWORD; + dm_300_Result_Data_64_bytes_7 AT %B1527: LWORD; + dm_300_Result_Data_64_bytes_8 AT %B1535: LWORD; + dm_300_Results_Status AT %B1543: BYTE; + dm_300_Soft_Event_Control AT %B1547: BYTE; + is2800_Acquisition_Status AT %B1380: DWORD; + is2800_Command_Control AT %B1388: DWORD; + is2800_Inspection_Status AT %B1384: DWORD; + is2800_Result_Data_64_bytes_0 AT %B1312: DWORD; + is2800_Result_Data_64_bytes_1 AT %B1316: DWORD; + is2800_Result_Data_64_bytes_2 AT %B1320: DWORD; + is2800_Result_Data_64_bytes_3 AT %B1324: DWORD; + is2800_Result_Data_64_bytes_4 AT %B1328: DWORD; + is2800_Result_Data_64_bytes_5 AT %B1332: DWORD; + is2800_Result_Data_64_bytes_6 AT %B1336: DWORD; + is2800_Result_Data_64_bytes_7 AT %B1340: DWORD; + is2800_Result_Data_64_bytes_8 AT %B1344: DWORD; + is2800_Result_Data_64_bytes_9 AT %B1348: DWORD; + is2800_Result_Data_64_bytes_10 AT %B1352: DWORD; + is2800_Result_Data_64_bytes_11 AT %B1356: DWORD; + is2800_Result_Data_64_bytes_12 AT %B1360: DWORD; + is2800_Result_Data_64_bytes_13 AT %B1364: DWORD; + is2800_Result_Data_64_bytes_14 AT %B1368: DWORD; + is2800_Result_Data_64_bytes_15 AT %B1372: DWORD; + is2800_Result_Data_64_bytes_16 AT %B1376: DWORD; + is2800_SoftEvent_Control AT %B1392: BYTE; + is7600_Acquisition_Status_0 AT %B1465: BYTE; + is7600_Acquisition_Status_1 AT %B1466: BYTE; + is7600_Acquisition_Status_2 AT %B1467: BYTE; + is7600_Command_Control AT %B1468: WORD; + is7600_Inspection_Status AT %B1461: DWORD; + is7600_Result_Data_64_bytes_0 AT %B1393: DWORD; + is7600_Result_Data_64_bytes_1 AT %B1397: DWORD; + is7600_Result_Data_64_bytes_2 AT %B1401: DWORD; + is7600_Result_Data_64_bytes_3 AT %B1405: DWORD; + is7600_Result_Data_64_bytes_4 AT %B1409: DWORD; + is7600_Result_Data_64_bytes_5 AT %B1413: DWORD; + is7600_Result_Data_64_bytes_6 AT %B1417: DWORD; + is7600_Result_Data_64_bytes_7 AT %B1421: DWORD; + is7600_Result_Data_64_bytes_8 AT %B1425: DWORD; + is7600_Result_Data_64_bytes_9 AT %B1429: DWORD; + is7600_Result_Data_64_bytes_10 AT %B1433: DWORD; + is7600_Result_Data_64_bytes_11 AT %B1437: DWORD; + is7600_Result_Data_64_bytes_12 AT %B1441: DWORD; + is7600_Result_Data_64_bytes_13 AT %B1445: DWORD; + is7600_Result_Data_64_bytes_14 AT %B1449: DWORD; + is7600_Result_Data_64_bytes_15 AT %B1453: DWORD; + is7600_Result_Data_64_bytes_16 AT %B1457: DWORD; + is7600_SoftEvent_Control AT %B1470: BYTE; + vision_pro_Engine_Control_1 AT %B1288: LWORD; + vision_pro_Engine_Control_2 AT %B1280: LWORD; + vision_pro_Engine_Control_3 AT %B1272: LWORD; + vision_pro_Engine_Control_4 AT %B1264: LWORD; + vision_pro_Result_Data_240_bytes_1_0 AT %B1024: LWORD; + vision_pro_Result_Data_240_bytes_1_1 AT %B1032: LWORD; + vision_pro_Result_Data_240_bytes_1_2 AT %B1040: LWORD; + vision_pro_Result_Data_240_bytes_1_3 AT %B1048: LWORD; + vision_pro_Result_Data_240_bytes_1_4 AT %B1056: LWORD; + vision_pro_Result_Data_240_bytes_1_5 AT %B1064: LWORD; + vision_pro_Result_Data_240_bytes_1_6 AT %B1072: LWORD; + vision_pro_Result_Data_240_bytes_1_7 AT %B1080: LWORD; + vision_pro_Result_Data_240_bytes_1_8 AT %B1088: LWORD; + vision_pro_Result_Data_240_bytes_1_9 AT %B1096: LWORD; + vision_pro_Result_Data_240_bytes_1_10 AT %B1104: LWORD; + vision_pro_Result_Data_240_bytes_1_11 AT %B1112: LWORD; + vision_pro_Result_Data_240_bytes_1_12 AT %B1120: LWORD; + vision_pro_Result_Data_240_bytes_1_13 AT %B1128: LWORD; + vision_pro_Result_Data_240_bytes_1_14 AT %B1136: LWORD; + vision_pro_Result_Data_240_bytes_1_15 AT %B1144: LWORD; + vision_pro_Result_Data_240_bytes_1_16 AT %B1152: LWORD; + vision_pro_Result_Data_240_bytes_1_17 AT %B1160: LWORD; + vision_pro_Result_Data_240_bytes_1_18 AT %B1168: LWORD; + vision_pro_Result_Data_240_bytes_1_19 AT %B1176: LWORD; + vision_pro_Result_Data_240_bytes_1_20 AT %B1184: LWORD; + vision_pro_Result_Data_240_bytes_1_21 AT %B1192: LWORD; + vision_pro_Result_Data_240_bytes_1_22 AT %B1200: LWORD; + vision_pro_Result_Data_240_bytes_1_23 AT %B1208: LWORD; + vision_pro_Result_Data_240_bytes_1_24 AT %B1216: LWORD; + vision_pro_Result_Data_240_bytes_1_25 AT %B1224: LWORD; + vision_pro_Result_Data_240_bytes_1_26 AT %B1232: LWORD; + vision_pro_Result_Data_240_bytes_1_27 AT %B1240: LWORD; + vision_pro_Result_Data_240_bytes_1_28 AT %B1248: LWORD; + vision_pro_Result_Data_240_bytes_1_29 AT %B1256: LWORD; + vision_pro_Result_Data_240_bytes_2_0 AT %B784: LWORD; + vision_pro_Result_Data_240_bytes_2_1 AT %B792: LWORD; + vision_pro_Result_Data_240_bytes_2_2 AT %B800: LWORD; + vision_pro_Result_Data_240_bytes_2_3 AT %B808: LWORD; + vision_pro_Result_Data_240_bytes_2_4 AT %B816: LWORD; + vision_pro_Result_Data_240_bytes_2_5 AT %B824: LWORD; + vision_pro_Result_Data_240_bytes_2_6 AT %B832: LWORD; + vision_pro_Result_Data_240_bytes_2_7 AT %B840: LWORD; + vision_pro_Result_Data_240_bytes_2_8 AT %B848: LWORD; + vision_pro_Result_Data_240_bytes_2_9 AT %B856: LWORD; + vision_pro_Result_Data_240_bytes_2_10 AT %B864: LWORD; + vision_pro_Result_Data_240_bytes_2_11 AT %B872: LWORD; + vision_pro_Result_Data_240_bytes_2_12 AT %B880: LWORD; + vision_pro_Result_Data_240_bytes_2_13 AT %B888: LWORD; + vision_pro_Result_Data_240_bytes_2_14 AT %B896: LWORD; + vision_pro_Result_Data_240_bytes_2_15 AT %B904: LWORD; + vision_pro_Result_Data_240_bytes_2_16 AT %B912: LWORD; + vision_pro_Result_Data_240_bytes_2_17 AT %B920: LWORD; + vision_pro_Result_Data_240_bytes_2_18 AT %B928: LWORD; + vision_pro_Result_Data_240_bytes_2_19 AT %B936: LWORD; + vision_pro_Result_Data_240_bytes_2_20 AT %B944: LWORD; + vision_pro_Result_Data_240_bytes_2_21 AT %B952: LWORD; + vision_pro_Result_Data_240_bytes_2_22 AT %B960: LWORD; + vision_pro_Result_Data_240_bytes_2_23 AT %B968: LWORD; + vision_pro_Result_Data_240_bytes_2_24 AT %B976: LWORD; + vision_pro_Result_Data_240_bytes_2_25 AT %B984: LWORD; + vision_pro_Result_Data_240_bytes_2_26 AT %B992: LWORD; + vision_pro_Result_Data_240_bytes_2_27 AT %B1000: LWORD; + vision_pro_Result_Data_240_bytes_2_28 AT %B1008: LWORD; + vision_pro_Result_Data_240_bytes_2_29 AT %B1016: LWORD; + vision_pro_Result_Data_240_bytes_3_0 AT %B544: LWORD; + vision_pro_Result_Data_240_bytes_3_1 AT %B552: LWORD; + vision_pro_Result_Data_240_bytes_3_2 AT %B560: LWORD; + vision_pro_Result_Data_240_bytes_3_3 AT %B568: LWORD; + vision_pro_Result_Data_240_bytes_3_4 AT %B576: LWORD; + vision_pro_Result_Data_240_bytes_3_5 AT %B584: LWORD; + vision_pro_Result_Data_240_bytes_3_6 AT %B592: LWORD; + vision_pro_Result_Data_240_bytes_3_7 AT %B600: LWORD; + vision_pro_Result_Data_240_bytes_3_8 AT %B608: LWORD; + vision_pro_Result_Data_240_bytes_3_9 AT %B616: LWORD; + vision_pro_Result_Data_240_bytes_3_10 AT %B624: LWORD; + vision_pro_Result_Data_240_bytes_3_11 AT %B632: LWORD; + vision_pro_Result_Data_240_bytes_3_12 AT %B640: LWORD; + vision_pro_Result_Data_240_bytes_3_13 AT %B648: LWORD; + vision_pro_Result_Data_240_bytes_3_14 AT %B656: LWORD; + vision_pro_Result_Data_240_bytes_3_15 AT %B664: LWORD; + vision_pro_Result_Data_240_bytes_3_16 AT %B672: LWORD; + vision_pro_Result_Data_240_bytes_3_17 AT %B680: LWORD; + vision_pro_Result_Data_240_bytes_3_18 AT %B688: LWORD; + vision_pro_Result_Data_240_bytes_3_19 AT %B696: LWORD; + vision_pro_Result_Data_240_bytes_3_20 AT %B704: LWORD; + vision_pro_Result_Data_240_bytes_3_21 AT %B712: LWORD; + vision_pro_Result_Data_240_bytes_3_22 AT %B720: LWORD; + vision_pro_Result_Data_240_bytes_3_23 AT %B728: LWORD; + vision_pro_Result_Data_240_bytes_3_24 AT %B736: LWORD; + vision_pro_Result_Data_240_bytes_3_25 AT %B744: LWORD; + vision_pro_Result_Data_240_bytes_3_26 AT %B752: LWORD; + vision_pro_Result_Data_240_bytes_3_27 AT %B760: LWORD; + vision_pro_Result_Data_240_bytes_3_28 AT %B768: LWORD; + vision_pro_Result_Data_240_bytes_3_29 AT %B776: LWORD; + vision_pro_Result_Data_240_bytes_4_0 AT %B304: LWORD; + vision_pro_Result_Data_240_bytes_4_1 AT %B312: LWORD; + vision_pro_Result_Data_240_bytes_4_2 AT %B320: LWORD; + vision_pro_Result_Data_240_bytes_4_3 AT %B328: LWORD; + vision_pro_Result_Data_240_bytes_4_4 AT %B336: LWORD; + vision_pro_Result_Data_240_bytes_4_5 AT %B344: LWORD; + vision_pro_Result_Data_240_bytes_4_6 AT %B352: LWORD; + vision_pro_Result_Data_240_bytes_4_7 AT %B360: LWORD; + vision_pro_Result_Data_240_bytes_4_8 AT %B368: LWORD; + vision_pro_Result_Data_240_bytes_4_9 AT %B376: LWORD; + vision_pro_Result_Data_240_bytes_4_10 AT %B384: LWORD; + vision_pro_Result_Data_240_bytes_4_11 AT %B392: LWORD; + vision_pro_Result_Data_240_bytes_4_12 AT %B400: LWORD; + vision_pro_Result_Data_240_bytes_4_13 AT %B408: LWORD; + vision_pro_Result_Data_240_bytes_4_14 AT %B416: LWORD; + vision_pro_Result_Data_240_bytes_4_15 AT %B424: LWORD; + vision_pro_Result_Data_240_bytes_4_16 AT %B432: LWORD; + vision_pro_Result_Data_240_bytes_4_17 AT %B440: LWORD; + vision_pro_Result_Data_240_bytes_4_18 AT %B448: LWORD; + vision_pro_Result_Data_240_bytes_4_19 AT %B456: LWORD; + vision_pro_Result_Data_240_bytes_4_20 AT %B464: LWORD; + vision_pro_Result_Data_240_bytes_4_21 AT %B472: LWORD; + vision_pro_Result_Data_240_bytes_4_22 AT %B480: LWORD; + vision_pro_Result_Data_240_bytes_4_23 AT %B488: LWORD; + vision_pro_Result_Data_240_bytes_4_24 AT %B496: LWORD; + vision_pro_Result_Data_240_bytes_4_25 AT %B504: LWORD; + vision_pro_Result_Data_240_bytes_4_26 AT %B512: LWORD; + vision_pro_Result_Data_240_bytes_4_27 AT %B520: LWORD; + vision_pro_Result_Data_240_bytes_4_28 AT %B528: LWORD; + vision_pro_Result_Data_240_bytes_4_29 AT %B536: LWORD; + vision_pro_Result_Data_240_bytes_5_0 AT %B64: LWORD; + vision_pro_Result_Data_240_bytes_5_1 AT %B72: LWORD; + vision_pro_Result_Data_240_bytes_5_2 AT %B80: LWORD; + vision_pro_Result_Data_240_bytes_5_3 AT %B88: LWORD; + vision_pro_Result_Data_240_bytes_5_4 AT %B96: LWORD; + vision_pro_Result_Data_240_bytes_5_5 AT %B104: LWORD; + vision_pro_Result_Data_240_bytes_5_6 AT %B112: LWORD; + vision_pro_Result_Data_240_bytes_5_7 AT %B120: LWORD; + vision_pro_Result_Data_240_bytes_5_8 AT %B128: LWORD; + vision_pro_Result_Data_240_bytes_5_9 AT %B136: LWORD; + vision_pro_Result_Data_240_bytes_5_10 AT %B144: LWORD; + vision_pro_Result_Data_240_bytes_5_11 AT %B152: LWORD; + vision_pro_Result_Data_240_bytes_5_12 AT %B160: LWORD; + vision_pro_Result_Data_240_bytes_5_13 AT %B168: LWORD; + vision_pro_Result_Data_240_bytes_5_14 AT %B176: LWORD; + vision_pro_Result_Data_240_bytes_5_15 AT %B184: LWORD; + vision_pro_Result_Data_240_bytes_5_16 AT %B192: LWORD; + vision_pro_Result_Data_240_bytes_5_17 AT %B200: LWORD; + vision_pro_Result_Data_240_bytes_5_18 AT %B208: LWORD; + vision_pro_Result_Data_240_bytes_5_19 AT %B216: LWORD; + vision_pro_Result_Data_240_bytes_5_20 AT %B224: LWORD; + vision_pro_Result_Data_240_bytes_5_21 AT %B232: LWORD; + vision_pro_Result_Data_240_bytes_5_22 AT %B240: LWORD; + vision_pro_Result_Data_240_bytes_5_23 AT %B248: LWORD; + vision_pro_Result_Data_240_bytes_5_24 AT %B256: LWORD; + vision_pro_Result_Data_240_bytes_5_25 AT %B264: LWORD; + vision_pro_Result_Data_240_bytes_5_26 AT %B272: LWORD; + vision_pro_Result_Data_240_bytes_5_27 AT %B280: LWORD; + vision_pro_Result_Data_240_bytes_5_28 AT %B288: LWORD; + vision_pro_Result_Data_240_bytes_5_29 AT %B296: LWORD; + vision_pro_Result_Data_64_bytes_1_0 AT %B0: LWORD; + vision_pro_Result_Data_64_bytes_1_1 AT %B8: LWORD; + vision_pro_Result_Data_64_bytes_1_2 AT %B16: LWORD; + vision_pro_Result_Data_64_bytes_1_3 AT %B24: LWORD; + vision_pro_Result_Data_64_bytes_1_4 AT %B32: LWORD; + vision_pro_Result_Data_64_bytes_1_5 AT %B40: LWORD; + vision_pro_Result_Data_64_bytes_1_6 AT %B48: LWORD; + vision_pro_Result_Data_64_bytes_1_7 AT %B56: LWORD; + vision_pro_System_Control_0 AT %B1296: LWORD; + vision_pro_System_Control_1 AT %B1304: LWORD; END_STRUCT; END_TYPE END_NAMESPACE diff --git a/src/components.cognex.vision/app/src/IO/Outputs.st b/src/components.cognex.vision/app/src/IO/Outputs.st index 5f700ee86..7c13e1249 100644 --- a/src/components.cognex.vision/app/src/IO/Outputs.st +++ b/src/components.cognex.vision/app/src/IO/Outputs.st @@ -3,86 +3,250 @@ NAMESPACE AXOpen.Components.Cognex.Vision {S7.extern=ReadWrite} {#ix-attr:[Container(Layout.Wrap)]} Outputs : STRUCT - dm_280_Acquisition_Control AT %B343: BYTE; - dm_280_Results_Control AT %B342: BYTE; - dm_280_Soft_Event_Control AT %B341: BYTE; - dm_280_User_Data_128_bytes_0 AT %B209: DWORD; - dm_280_User_Data_128_bytes_1 AT %B213: DWORD; - dm_280_User_Data_128_bytes_2 AT %B217: DWORD; - dm_280_User_Data_128_bytes_3 AT %B221: DWORD; - dm_280_User_Data_128_bytes_4 AT %B225: DWORD; - dm_280_User_Data_128_bytes_5 AT %B229: DWORD; - dm_280_User_Data_128_bytes_6 AT %B233: DWORD; - dm_280_User_Data_128_bytes_7 AT %B237: DWORD; - dm_280_User_Data_128_bytes_8 AT %B241: DWORD; - dm_280_User_Data_128_bytes_9 AT %B245: DWORD; - dm_280_User_Data_128_bytes_10 AT %B249: DWORD; - dm_280_User_Data_128_bytes_11 AT %B253: DWORD; - dm_280_User_Data_128_bytes_12 AT %B257: DWORD; - dm_280_User_Data_128_bytes_13 AT %B261: DWORD; - dm_280_User_Data_128_bytes_14 AT %B265: DWORD; - dm_280_User_Data_128_bytes_15 AT %B269: DWORD; - dm_280_User_Data_128_bytes_16 AT %B273: DWORD; - dm_280_User_Data_128_bytes_17 AT %B277: DWORD; - dm_280_User_Data_128_bytes_18 AT %B281: DWORD; - dm_280_User_Data_128_bytes_19 AT %B285: DWORD; - dm_280_User_Data_128_bytes_20 AT %B289: DWORD; - dm_280_User_Data_128_bytes_21 AT %B293: DWORD; - dm_280_User_Data_128_bytes_22 AT %B297: DWORD; - dm_280_User_Data_128_bytes_23 AT %B301: DWORD; - dm_280_User_Data_128_bytes_24 AT %B305: DWORD; - dm_280_User_Data_128_bytes_25 AT %B309: DWORD; - dm_280_User_Data_128_bytes_26 AT %B313: DWORD; - dm_280_User_Data_128_bytes_27 AT %B317: DWORD; - dm_280_User_Data_128_bytes_28 AT %B321: DWORD; - dm_280_User_Data_128_bytes_29 AT %B325: DWORD; - dm_280_User_Data_128_bytes_30 AT %B329: DWORD; - dm_280_User_Data_128_bytes_31 AT %B333: DWORD; - dm_280_User_Data_128_bytes_32 AT %B337: DWORD; - dm_300_Acquisition_Control AT %B208: BYTE; - dm_300_Results_Control AT %B207: BYTE; - dm_300_Soft_Event_Control AT %B206: BYTE; - dm_300_User_Data_64_bytes_0 AT %B138: DWORD; - dm_300_User_Data_64_bytes_1 AT %B142: DWORD; - dm_300_User_Data_64_bytes_2 AT %B146: DWORD; - dm_300_User_Data_64_bytes_3 AT %B150: DWORD; - dm_300_User_Data_64_bytes_4 AT %B154: DWORD; - dm_300_User_Data_64_bytes_5 AT %B158: DWORD; - dm_300_User_Data_64_bytes_6 AT %B162: DWORD; - dm_300_User_Data_64_bytes_7 AT %B166: DWORD; - dm_300_User_Data_64_bytes_8 AT %B170: DWORD; - dm_300_User_Data_64_bytes_9 AT %B174: DWORD; - dm_300_User_Data_64_bytes_10 AT %B178: DWORD; - dm_300_User_Data_64_bytes_11 AT %B182: DWORD; - dm_300_User_Data_64_bytes_12 AT %B186: DWORD; - dm_300_User_Data_64_bytes_13 AT %B190: DWORD; - dm_300_User_Data_64_bytes_14 AT %B194: DWORD; - dm_300_User_Data_64_bytes_15 AT %B198: DWORD; - dm_300_User_Data_64_bytes_16 AT %B202: DWORD; - is2800_Acquisition_Control AT %B68: BYTE; - is2800_Command_Control AT %B64: WORD; - is2800_Inspection_Control AT %B67: BYTE; - is2800_SoftEvent_Control AT %B66: BYTE; - is2800_User_Data_64_bytes_0 AT %B0: LWORD; - is2800_User_Data_64_bytes_1 AT %B8: LWORD; - is2800_User_Data_64_bytes_2 AT %B16: LWORD; - is2800_User_Data_64_bytes_3 AT %B24: LWORD; - is2800_User_Data_64_bytes_4 AT %B32: LWORD; - is2800_User_Data_64_bytes_5 AT %B40: LWORD; - is2800_User_Data_64_bytes_6 AT %B48: LWORD; - is2800_User_Data_64_bytes_7 AT %B56: LWORD; - is7600_Acquisition_Control AT %B137: BYTE; - is7600_Command_Control AT %B133: WORD; - is7600_Inspection_Control AT %B136: BYTE; - is7600_SoftEvent_Control AT %B135: BYTE; - is7600_User_Data_64_bytes_0 AT %B69: LWORD; - is7600_User_Data_64_bytes_1 AT %B77: LWORD; - is7600_User_Data_64_bytes_2 AT %B85: LWORD; - is7600_User_Data_64_bytes_3 AT %B93: LWORD; - is7600_User_Data_64_bytes_4 AT %B101: LWORD; - is7600_User_Data_64_bytes_5 AT %B109: LWORD; - is7600_User_Data_64_bytes_6 AT %B117: LWORD; - is7600_User_Data_64_bytes_7 AT %B125: LWORD; + dm_280_Acquisition_Control AT %B1627: BYTE; + dm_280_Results_Control AT %B1626: BYTE; + dm_280_Soft_Event_Control AT %B1625: BYTE; + dm_280_User_Data_128_bytes_0 AT %B1493: DWORD; + dm_280_User_Data_128_bytes_1 AT %B1497: DWORD; + dm_280_User_Data_128_bytes_2 AT %B1501: DWORD; + dm_280_User_Data_128_bytes_3 AT %B1505: DWORD; + dm_280_User_Data_128_bytes_4 AT %B1509: DWORD; + dm_280_User_Data_128_bytes_5 AT %B1513: DWORD; + dm_280_User_Data_128_bytes_6 AT %B1517: DWORD; + dm_280_User_Data_128_bytes_7 AT %B1521: DWORD; + dm_280_User_Data_128_bytes_8 AT %B1525: DWORD; + dm_280_User_Data_128_bytes_9 AT %B1529: DWORD; + dm_280_User_Data_128_bytes_10 AT %B1533: DWORD; + dm_280_User_Data_128_bytes_11 AT %B1537: DWORD; + dm_280_User_Data_128_bytes_12 AT %B1541: DWORD; + dm_280_User_Data_128_bytes_13 AT %B1545: DWORD; + dm_280_User_Data_128_bytes_14 AT %B1549: DWORD; + dm_280_User_Data_128_bytes_15 AT %B1553: DWORD; + dm_280_User_Data_128_bytes_16 AT %B1557: DWORD; + dm_280_User_Data_128_bytes_17 AT %B1561: DWORD; + dm_280_User_Data_128_bytes_18 AT %B1565: DWORD; + dm_280_User_Data_128_bytes_19 AT %B1569: DWORD; + dm_280_User_Data_128_bytes_20 AT %B1573: DWORD; + dm_280_User_Data_128_bytes_21 AT %B1577: DWORD; + dm_280_User_Data_128_bytes_22 AT %B1581: DWORD; + dm_280_User_Data_128_bytes_23 AT %B1585: DWORD; + dm_280_User_Data_128_bytes_24 AT %B1589: DWORD; + dm_280_User_Data_128_bytes_25 AT %B1593: DWORD; + dm_280_User_Data_128_bytes_26 AT %B1597: DWORD; + dm_280_User_Data_128_bytes_27 AT %B1601: DWORD; + dm_280_User_Data_128_bytes_28 AT %B1605: DWORD; + dm_280_User_Data_128_bytes_29 AT %B1609: DWORD; + dm_280_User_Data_128_bytes_30 AT %B1613: DWORD; + dm_280_User_Data_128_bytes_31 AT %B1617: DWORD; + dm_280_User_Data_128_bytes_32 AT %B1621: DWORD; + dm_300_Acquisition_Control AT %B1492: BYTE; + dm_300_Results_Control AT %B1491: BYTE; + dm_300_Soft_Event_Control AT %B1490: BYTE; + dm_300_User_Data_64_bytes_0 AT %B1422: DWORD; + dm_300_User_Data_64_bytes_1 AT %B1426: DWORD; + dm_300_User_Data_64_bytes_2 AT %B1430: DWORD; + dm_300_User_Data_64_bytes_3 AT %B1434: DWORD; + dm_300_User_Data_64_bytes_4 AT %B1438: DWORD; + dm_300_User_Data_64_bytes_5 AT %B1442: DWORD; + dm_300_User_Data_64_bytes_6 AT %B1446: DWORD; + dm_300_User_Data_64_bytes_7 AT %B1450: DWORD; + dm_300_User_Data_64_bytes_8 AT %B1454: DWORD; + dm_300_User_Data_64_bytes_9 AT %B1458: DWORD; + dm_300_User_Data_64_bytes_10 AT %B1462: DWORD; + dm_300_User_Data_64_bytes_11 AT %B1466: DWORD; + dm_300_User_Data_64_bytes_12 AT %B1470: DWORD; + dm_300_User_Data_64_bytes_13 AT %B1474: DWORD; + dm_300_User_Data_64_bytes_14 AT %B1478: DWORD; + dm_300_User_Data_64_bytes_15 AT %B1482: DWORD; + dm_300_User_Data_64_bytes_16 AT %B1486: DWORD; + is2800_Acquisition_Control AT %B1352: BYTE; + is2800_Command_Control AT %B1348: WORD; + is2800_Inspection_Control AT %B1351: BYTE; + is2800_SoftEvent_Control AT %B1350: BYTE; + is2800_User_Data_64_bytes_0 AT %B1284: LWORD; + is2800_User_Data_64_bytes_1 AT %B1292: LWORD; + is2800_User_Data_64_bytes_2 AT %B1300: LWORD; + is2800_User_Data_64_bytes_3 AT %B1308: LWORD; + is2800_User_Data_64_bytes_4 AT %B1316: LWORD; + is2800_User_Data_64_bytes_5 AT %B1324: LWORD; + is2800_User_Data_64_bytes_6 AT %B1332: LWORD; + is2800_User_Data_64_bytes_7 AT %B1340: LWORD; + is7600_Acquisition_Control AT %B1421: BYTE; + is7600_Command_Control AT %B1417: WORD; + is7600_Inspection_Control AT %B1420: BYTE; + is7600_SoftEvent_Control AT %B1419: BYTE; + is7600_User_Data_64_bytes_0 AT %B1353: LWORD; + is7600_User_Data_64_bytes_1 AT %B1361: LWORD; + is7600_User_Data_64_bytes_2 AT %B1369: LWORD; + is7600_User_Data_64_bytes_3 AT %B1377: LWORD; + is7600_User_Data_64_bytes_4 AT %B1385: LWORD; + is7600_User_Data_64_bytes_5 AT %B1393: LWORD; + is7600_User_Data_64_bytes_6 AT %B1401: LWORD; + is7600_User_Data_64_bytes_7 AT %B1409: LWORD; + vision_pro_Engine_Control_1 AT %B1267: BYTE; + vision_pro_Engine_Control_2 AT %B1266: BYTE; + vision_pro_Engine_Control_3 AT %B1265: BYTE; + vision_pro_Engine_Control_4 AT %B1264: BYTE; + vision_pro_System_Control_0 AT %B1268: LWORD; + vision_pro_System_Control_1 AT %B1276: LWORD; + vision_pro_User_Data_240_bytes_1_0 AT %B1024: LWORD; + vision_pro_User_Data_240_bytes_1_1 AT %B1032: LWORD; + vision_pro_User_Data_240_bytes_1_2 AT %B1040: LWORD; + vision_pro_User_Data_240_bytes_1_3 AT %B1048: LWORD; + vision_pro_User_Data_240_bytes_1_4 AT %B1056: LWORD; + vision_pro_User_Data_240_bytes_1_5 AT %B1064: LWORD; + vision_pro_User_Data_240_bytes_1_6 AT %B1072: LWORD; + vision_pro_User_Data_240_bytes_1_7 AT %B1080: LWORD; + vision_pro_User_Data_240_bytes_1_8 AT %B1088: LWORD; + vision_pro_User_Data_240_bytes_1_9 AT %B1096: LWORD; + vision_pro_User_Data_240_bytes_1_10 AT %B1104: LWORD; + vision_pro_User_Data_240_bytes_1_11 AT %B1112: LWORD; + vision_pro_User_Data_240_bytes_1_12 AT %B1120: LWORD; + vision_pro_User_Data_240_bytes_1_13 AT %B1128: LWORD; + vision_pro_User_Data_240_bytes_1_14 AT %B1136: LWORD; + vision_pro_User_Data_240_bytes_1_15 AT %B1144: LWORD; + vision_pro_User_Data_240_bytes_1_16 AT %B1152: LWORD; + vision_pro_User_Data_240_bytes_1_17 AT %B1160: LWORD; + vision_pro_User_Data_240_bytes_1_18 AT %B1168: LWORD; + vision_pro_User_Data_240_bytes_1_19 AT %B1176: LWORD; + vision_pro_User_Data_240_bytes_1_20 AT %B1184: LWORD; + vision_pro_User_Data_240_bytes_1_21 AT %B1192: LWORD; + vision_pro_User_Data_240_bytes_1_22 AT %B1200: LWORD; + vision_pro_User_Data_240_bytes_1_23 AT %B1208: LWORD; + vision_pro_User_Data_240_bytes_1_24 AT %B1216: LWORD; + vision_pro_User_Data_240_bytes_1_25 AT %B1224: LWORD; + vision_pro_User_Data_240_bytes_1_26 AT %B1232: LWORD; + vision_pro_User_Data_240_bytes_1_27 AT %B1240: LWORD; + vision_pro_User_Data_240_bytes_1_28 AT %B1248: LWORD; + vision_pro_User_Data_240_bytes_1_29 AT %B1256: LWORD; + vision_pro_User_Data_240_bytes_2_0 AT %B784: LWORD; + vision_pro_User_Data_240_bytes_2_1 AT %B792: LWORD; + vision_pro_User_Data_240_bytes_2_2 AT %B800: LWORD; + vision_pro_User_Data_240_bytes_2_3 AT %B808: LWORD; + vision_pro_User_Data_240_bytes_2_4 AT %B816: LWORD; + vision_pro_User_Data_240_bytes_2_5 AT %B824: LWORD; + vision_pro_User_Data_240_bytes_2_6 AT %B832: LWORD; + vision_pro_User_Data_240_bytes_2_7 AT %B840: LWORD; + vision_pro_User_Data_240_bytes_2_8 AT %B848: LWORD; + vision_pro_User_Data_240_bytes_2_9 AT %B856: LWORD; + vision_pro_User_Data_240_bytes_2_10 AT %B864: LWORD; + vision_pro_User_Data_240_bytes_2_11 AT %B872: LWORD; + vision_pro_User_Data_240_bytes_2_12 AT %B880: LWORD; + vision_pro_User_Data_240_bytes_2_13 AT %B888: LWORD; + vision_pro_User_Data_240_bytes_2_14 AT %B896: LWORD; + vision_pro_User_Data_240_bytes_2_15 AT %B904: LWORD; + vision_pro_User_Data_240_bytes_2_16 AT %B912: LWORD; + vision_pro_User_Data_240_bytes_2_17 AT %B920: LWORD; + vision_pro_User_Data_240_bytes_2_18 AT %B928: LWORD; + vision_pro_User_Data_240_bytes_2_19 AT %B936: LWORD; + vision_pro_User_Data_240_bytes_2_20 AT %B944: LWORD; + vision_pro_User_Data_240_bytes_2_21 AT %B952: LWORD; + vision_pro_User_Data_240_bytes_2_22 AT %B960: LWORD; + vision_pro_User_Data_240_bytes_2_23 AT %B968: LWORD; + vision_pro_User_Data_240_bytes_2_24 AT %B976: LWORD; + vision_pro_User_Data_240_bytes_2_25 AT %B984: LWORD; + vision_pro_User_Data_240_bytes_2_26 AT %B992: LWORD; + vision_pro_User_Data_240_bytes_2_27 AT %B1000: LWORD; + vision_pro_User_Data_240_bytes_2_28 AT %B1008: LWORD; + vision_pro_User_Data_240_bytes_2_29 AT %B1016: LWORD; + vision_pro_User_Data_240_bytes_3_0 AT %B544: LWORD; + vision_pro_User_Data_240_bytes_3_1 AT %B552: LWORD; + vision_pro_User_Data_240_bytes_3_2 AT %B560: LWORD; + vision_pro_User_Data_240_bytes_3_3 AT %B568: LWORD; + vision_pro_User_Data_240_bytes_3_4 AT %B576: LWORD; + vision_pro_User_Data_240_bytes_3_5 AT %B584: LWORD; + vision_pro_User_Data_240_bytes_3_6 AT %B592: LWORD; + vision_pro_User_Data_240_bytes_3_7 AT %B600: LWORD; + vision_pro_User_Data_240_bytes_3_8 AT %B608: LWORD; + vision_pro_User_Data_240_bytes_3_9 AT %B616: LWORD; + vision_pro_User_Data_240_bytes_3_10 AT %B624: LWORD; + vision_pro_User_Data_240_bytes_3_11 AT %B632: LWORD; + vision_pro_User_Data_240_bytes_3_12 AT %B640: LWORD; + vision_pro_User_Data_240_bytes_3_13 AT %B648: LWORD; + vision_pro_User_Data_240_bytes_3_14 AT %B656: LWORD; + vision_pro_User_Data_240_bytes_3_15 AT %B664: LWORD; + vision_pro_User_Data_240_bytes_3_16 AT %B672: LWORD; + vision_pro_User_Data_240_bytes_3_17 AT %B680: LWORD; + vision_pro_User_Data_240_bytes_3_18 AT %B688: LWORD; + vision_pro_User_Data_240_bytes_3_19 AT %B696: LWORD; + vision_pro_User_Data_240_bytes_3_20 AT %B704: LWORD; + vision_pro_User_Data_240_bytes_3_21 AT %B712: LWORD; + vision_pro_User_Data_240_bytes_3_22 AT %B720: LWORD; + vision_pro_User_Data_240_bytes_3_23 AT %B728: LWORD; + vision_pro_User_Data_240_bytes_3_24 AT %B736: LWORD; + vision_pro_User_Data_240_bytes_3_25 AT %B744: LWORD; + vision_pro_User_Data_240_bytes_3_26 AT %B752: LWORD; + vision_pro_User_Data_240_bytes_3_27 AT %B760: LWORD; + vision_pro_User_Data_240_bytes_3_28 AT %B768: LWORD; + vision_pro_User_Data_240_bytes_3_29 AT %B776: LWORD; + vision_pro_User_Data_240_bytes_4_0 AT %B304: LWORD; + vision_pro_User_Data_240_bytes_4_1 AT %B312: LWORD; + vision_pro_User_Data_240_bytes_4_2 AT %B320: LWORD; + vision_pro_User_Data_240_bytes_4_3 AT %B328: LWORD; + vision_pro_User_Data_240_bytes_4_4 AT %B336: LWORD; + vision_pro_User_Data_240_bytes_4_5 AT %B344: LWORD; + vision_pro_User_Data_240_bytes_4_6 AT %B352: LWORD; + vision_pro_User_Data_240_bytes_4_7 AT %B360: LWORD; + vision_pro_User_Data_240_bytes_4_8 AT %B368: LWORD; + vision_pro_User_Data_240_bytes_4_9 AT %B376: LWORD; + vision_pro_User_Data_240_bytes_4_10 AT %B384: LWORD; + vision_pro_User_Data_240_bytes_4_11 AT %B392: LWORD; + vision_pro_User_Data_240_bytes_4_12 AT %B400: LWORD; + vision_pro_User_Data_240_bytes_4_13 AT %B408: LWORD; + vision_pro_User_Data_240_bytes_4_14 AT %B416: LWORD; + vision_pro_User_Data_240_bytes_4_15 AT %B424: LWORD; + vision_pro_User_Data_240_bytes_4_16 AT %B432: LWORD; + vision_pro_User_Data_240_bytes_4_17 AT %B440: LWORD; + vision_pro_User_Data_240_bytes_4_18 AT %B448: LWORD; + vision_pro_User_Data_240_bytes_4_19 AT %B456: LWORD; + vision_pro_User_Data_240_bytes_4_20 AT %B464: LWORD; + vision_pro_User_Data_240_bytes_4_21 AT %B472: LWORD; + vision_pro_User_Data_240_bytes_4_22 AT %B480: LWORD; + vision_pro_User_Data_240_bytes_4_23 AT %B488: LWORD; + vision_pro_User_Data_240_bytes_4_24 AT %B496: LWORD; + vision_pro_User_Data_240_bytes_4_25 AT %B504: LWORD; + vision_pro_User_Data_240_bytes_4_26 AT %B512: LWORD; + vision_pro_User_Data_240_bytes_4_27 AT %B520: LWORD; + vision_pro_User_Data_240_bytes_4_28 AT %B528: LWORD; + vision_pro_User_Data_240_bytes_4_29 AT %B536: LWORD; + vision_pro_User_Data_240_bytes_5_0 AT %B64: LWORD; + vision_pro_User_Data_240_bytes_5_1 AT %B72: LWORD; + vision_pro_User_Data_240_bytes_5_2 AT %B80: LWORD; + vision_pro_User_Data_240_bytes_5_3 AT %B88: LWORD; + vision_pro_User_Data_240_bytes_5_4 AT %B96: LWORD; + vision_pro_User_Data_240_bytes_5_5 AT %B104: LWORD; + vision_pro_User_Data_240_bytes_5_6 AT %B112: LWORD; + vision_pro_User_Data_240_bytes_5_7 AT %B120: LWORD; + vision_pro_User_Data_240_bytes_5_8 AT %B128: LWORD; + vision_pro_User_Data_240_bytes_5_9 AT %B136: LWORD; + vision_pro_User_Data_240_bytes_5_10 AT %B144: LWORD; + vision_pro_User_Data_240_bytes_5_11 AT %B152: LWORD; + vision_pro_User_Data_240_bytes_5_12 AT %B160: LWORD; + vision_pro_User_Data_240_bytes_5_13 AT %B168: LWORD; + vision_pro_User_Data_240_bytes_5_14 AT %B176: LWORD; + vision_pro_User_Data_240_bytes_5_15 AT %B184: LWORD; + vision_pro_User_Data_240_bytes_5_16 AT %B192: LWORD; + vision_pro_User_Data_240_bytes_5_17 AT %B200: LWORD; + vision_pro_User_Data_240_bytes_5_18 AT %B208: LWORD; + vision_pro_User_Data_240_bytes_5_19 AT %B216: LWORD; + vision_pro_User_Data_240_bytes_5_20 AT %B224: LWORD; + vision_pro_User_Data_240_bytes_5_21 AT %B232: LWORD; + vision_pro_User_Data_240_bytes_5_22 AT %B240: LWORD; + vision_pro_User_Data_240_bytes_5_23 AT %B248: LWORD; + vision_pro_User_Data_240_bytes_5_24 AT %B256: LWORD; + vision_pro_User_Data_240_bytes_5_25 AT %B264: LWORD; + vision_pro_User_Data_240_bytes_5_26 AT %B272: LWORD; + vision_pro_User_Data_240_bytes_5_27 AT %B280: LWORD; + vision_pro_User_Data_240_bytes_5_28 AT %B288: LWORD; + vision_pro_User_Data_240_bytes_5_29 AT %B296: LWORD; + vision_pro_User_Data_64_bytes_1_0 AT %B0: LWORD; + vision_pro_User_Data_64_bytes_1_1 AT %B8: LWORD; + vision_pro_User_Data_64_bytes_1_2 AT %B16: LWORD; + vision_pro_User_Data_64_bytes_1_3 AT %B24: LWORD; + vision_pro_User_Data_64_bytes_1_4 AT %B32: LWORD; + vision_pro_User_Data_64_bytes_1_5 AT %B40: LWORD; + vision_pro_User_Data_64_bytes_1_6 AT %B48: LWORD; + vision_pro_User_Data_64_bytes_1_7 AT %B56: LWORD; END_STRUCT; END_TYPE END_NAMESPACE diff --git a/src/components.cognex.vision/app/src/IO/PLC_LINE/HwIdentifiers.st b/src/components.cognex.vision/app/src/IO/PLC_LINE/HwIdentifiers.st deleted file mode 100644 index da26f4b93..000000000 --- a/src/components.cognex.vision/app/src/IO/PLC_LINE/HwIdentifiers.st +++ /dev/null @@ -1,61 +0,0 @@ -TYPE - HwIdentifiers : WORD - ( - is7600_HwID := WORD#259, - is7600_Acquisition_Control_Acquisition_Control_HwID := WORD#269, - is7600_Acquisition_Status_Acquisition_Status_HwID := WORD#265, - is7600_Command_Control_Command_Control_HwID := WORD#266, - is7600_Inspection_Control_Inspection_Control_HwID := WORD#268, - is7600_Inspection_Status_Inspection_Status_HwID := WORD#264, - is7600_Rack_HwID := WORD#260, - is7600_Result_Data_64_bytes_Results___64_bytes_HwID := WORD#262, - is7600_SoftEvent_Control_SoftEvent_Control_HwID := WORD#267, - is7600_User_Data_64_bytes_User_Data___64_bytes_HwID := WORD#263, - is7600_is7600_HwID := WORD#261, - is7600_is7600_In_Sight_IS79XX_IS75XX_CC_B_HwID := WORD#270, - is7600_is7600_profinet_HwID := WORD#257, - is7600_is7600_profinet_Port_1_HwID := WORD#258, - plc_line_HwID := WORD#32, - plc_line_Rail_0_HwID := WORD#297, - plc_line_plc_line_HwID := WORD#48, - plc_line_plc_line_CPU_display_1_HwID := WORD#54, - plc_line_plc_line_Card_reader_writer_1_HwID := WORD#51, - plc_line_plc_line_DP_interface_1_HwID := WORD#60, - plc_line_plc_line_OPC_UA_1_HwID := WORD#117, - plc_line_plc_line_profinet_x1_HwID := WORD#64, - plc_line_plc_line_profinet_x1_Port_1_HwID := WORD#65, - plc_line_plc_line_profinet_x1_Port_2_HwID := WORD#66, - plc_line_plc_line_profinet_x2_HwID := WORD#72, - plc_line_plc_line_profinet_x2_Port_3_HwID := WORD#73, - plc_line_plc_line_virtual_communication_interface_HwID := WORD#135, - profinet_plc_line_HwID := WORD#256, - reader_st1_HwID := WORD#286, - reader_st1_Acquisition_Control_Acquisition_Control_HwID := WORD#295, - reader_st1_Acquisition_Status_Acquisition_Status_HwID := WORD#292, - reader_st1_Rack_HwID := WORD#287, - reader_st1_Result_Data_128_bytes_Result_Data___128_bytes_HwID := WORD#289, - reader_st1_Results_Control_Results_Control_HwID := WORD#294, - reader_st1_Results_Status_Results_Status_HwID := WORD#291, - reader_st1_Soft_Event_Control_Soft_Event_Control_HwID := WORD#293, - reader_st1_User_Data_128_bytes_User_Data___128_bytes_HwID := WORD#290, - reader_st1_reader_st1_HwID := WORD#288, - reader_st1_reader_st1_DataMan_280_CC_B_HwID := WORD#296, - reader_st1_reader_st1_profinet_HwID := WORD#284, - reader_st1_reader_st1_profinet_Port_1_HwID := WORD#285, - reader_st2_HwID := WORD#273, - reader_st2_Acquisition_Control_Acquisition_Control_HwID := WORD#282, - reader_st2_Acquisition_Status_Acquisition_Status_HwID := WORD#279, - reader_st2_Rack_HwID := WORD#274, - reader_st2_Result_Data_64_bytes_Result_Data___64_bytes_HwID := WORD#276, - reader_st2_Results_Control_Results_Control_HwID := WORD#281, - reader_st2_Results_Status_Results_Status_HwID := WORD#278, - reader_st2_Soft_Event_Control_Soft_Event_Control_HwID := WORD#280, - reader_st2_User_Data_64_bytes_User_Data___64_bytes_HwID := WORD#277, - reader_st2_reader_st2_HwID := WORD#275, - reader_st2_reader_st2_DataMan_300_HwID := WORD#283, - reader_st2_reader_st2_profinet_HwID := WORD#271, - reader_st2_reader_st2_profinet_Port_1_HwID := WORD#272, - - NONE := WORD#0 - ); -END_TYPE diff --git a/src/components.cognex.vision/app/src/Sandbox/SandboxContext.st b/src/components.cognex.vision/app/src/Sandbox/SandboxContext.st index 7a63dcd62..b7ec8b5a0 100644 --- a/src/components.cognex.vision/app/src/Sandbox/SandboxContext.st +++ b/src/components.cognex.vision/app/src/Sandbox/SandboxContext.st @@ -1,7 +1,34 @@ USING AXOpen.Components.Cognex.Vision; USING System.Timer; -NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 +NAMESPACE AXOpen.Components.Cognex.Vision + + // {S7.extern=ReadWrite} + // CLASS SandboxContext EXTENDS AXOpen.Core.AxoContext + // VAR PUBLIC + // {#ix-set:AttributeName = "<#Activate manual control#>"} + // ActivateManualControl : BOOL; + // _rootObject : AxoObject; + // Insight_7600 : AXOpen.Components.Cognex.Vision.v_6_0_0_0.AxoInsight; + // END_VAR + + // VAR PRIVATE + // _InspectionResults : AXOpen.Components.Cognex.Vision.v_6_0_0_0.AxoInsight_ResultData; + // END_VAR + + + // METHOD PROTECTED OVERRIDE Main + // RETURN; + // THIS.InitializeRootObject(_rootObject); + + // IF(ActivateManualControl) THEN + // Insight_7600.ActivateManualControl(); + // END_IF; + + // Insight_7600.Run(parent:= _rootObject, hwID := HwIdentifiers#is7600_1_HwID); + + // END_METHOD + // END_CLASS {S7.extern=ReadWrite} CLASS SandboxContext EXTENDS AXOpen.Core.AxoContext @@ -9,7 +36,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 {#ix-set:AttributeName = "<#Activate manual control#>"} ActivateManualControl : BOOL; _rootObject : AxoObject; - Insight_7600 : AXOpen.Components.Cognex.Vision.v_6_0_0_0.AxoInsight; + VisionPro : AXOpen.Components.Cognex.Vision.AxoVisionPro; END_VAR VAR PRIVATE @@ -22,24 +49,14 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 THIS.InitializeRootObject(_rootObject); IF(ActivateManualControl) THEN - Insight_7600.ActivateManualControl(); + VisionPro.ActivateManualControl(); END_IF; - Insight_7600.Run( parent := _rootObject, - ResultDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoInsight_ResultDataSize#RESULT_DATA_64B, - UserDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoInsight_UserDataSize#USER_DATA_64B, - hwID := HwIdentifiers#is7600_HwID, - hwIdAcquisitionControl := HwIdentifiers#is7600_Acquisition_Control_Acquisition_Control_HwID, - hwIdAcquisitionStatus := HwIdentifiers#is7600_Acquisition_Status_Acquisition_Status_HwID, - hwIdInspectionControl := HwIdentifiers#is7600_Inspection_Control_Inspection_Control_HwID, - hwIdInspectionStatus := HwIdentifiers#is7600_Inspection_Status_Inspection_Status_HwID, - hwIdCommandControl := HwIdentifiers#is7600_Command_Control_Command_Control_HwID, - hwIdSoftEventControl := HwIdentifiers#is7600_SoftEvent_Control_SoftEvent_Control_HwID, - hwIdResultData := HwIdentifiers#is7600_Result_Data_64_bytes_Results___64_bytes_HwID, - hwIdUserData := HwIdentifiers#is7600_User_Data_64_bytes_User_Data___64_bytes_HwID); + VisionPro.Run(parent := _rootObject, hwID := HwIdentifiers#vision_pro_HwID, CameraNo := BYTE#1); END_METHOD END_CLASS + END_NAMESPACE diff --git a/src/components.cognex.vision/app/src/configuration.st b/src/components.cognex.vision/app/src/configuration.st index a4714a527..04fee5cab 100644 --- a/src/components.cognex.vision/app/src/configuration.st +++ b/src/components.cognex.vision/app/src/configuration.st @@ -1,4 +1,4 @@ -USING AXOpen.Components.Cognex.Vision.v_6_0_0_0; +USING AXOpen.Components.Cognex.Vision; CONFIGURATION MyConfiguration TASK Main(Interval := T#10ms, Priority := 1); @@ -13,6 +13,10 @@ CONFIGURATION MyConfiguration _rtc : AXOpen.S71500.Rtc; {S7.extern=ReadWrite} _rtm : AXOpen.S71500.Rtm; + {S7.extern=ReadWrite} + Inputs AT %IB0 : AXOpen.Components.Cognex.Vision.Inputs; + {S7.extern=ReadWrite} + Outputs AT %QB0 : AXOpen.Components.Cognex.Vision.Outputs; END_VAR END_CONFIGURATION diff --git a/src/components.cognex.vision/app/src/program.st b/src/components.cognex.vision/app/src/program.st index d65e1d9e8..62e4f5504 100644 --- a/src/components.cognex.vision/app/src/program.st +++ b/src/components.cognex.vision/app/src/program.st @@ -1,4 +1,4 @@ -USING AXOpen.Components.Cognex.Vision.v_6_0_0_0; +USING AXOpen.Components.Cognex.Vision; PROGRAM MyProgram VAR_EXTERNAL diff --git a/src/components.cognex.vision/app/test/documentation.st b/src/components.cognex.vision/app/test/documentation.st index 169ee5f6f..7a1e7c67b 100644 --- a/src/components.cognex.vision/app/test/documentation.st +++ b/src/components.cognex.vision/app/test/documentation.st @@ -1,5 +1,5 @@ USING AxUnit; -USING AXOpen.Components.Cognex.Vision.v_6_0_0_0; +USING AXOpen.Components.Cognex.Vision; USING AXOpen.Core.Dummies; NAMESPACE DocumentationTest diff --git a/src/components.cognex.vision/ctrl/apax.yml b/src/components.cognex.vision/ctrl/apax.yml index 00de07d45..182c9535d 100644 --- a/src/components.cognex.vision/ctrl/apax.yml +++ b/src/components.cognex.vision/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.io": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.cognex.vision/ctrl/assets/gsdml-v2.3-cognex-cc24-20140828.xml b/src/components.cognex.vision/ctrl/assets/gsdml-v2.3-cognex-cc24-20140828.xml new file mode 100644 index 000000000..e7ff60557 --- /dev/null +++ b/src/components.cognex.vision/ctrl/assets/gsdml-v2.3-cognex-cc24-20140828.xml @@ -0,0 +1,621 @@ + + + + PROFINET Device Profile + 1.00 + Device Profile for PROFINET Devices + PROFIBUS Nutzerorganisation e. V. (PNO) + Device + + 4 + 1 + GSDML + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components.cognex.vision/ctrl/assets/is2800.hwl.yml b/src/components.cognex.vision/ctrl/assets/is2800.hwl.yml index 844f2361d..47cf05303 100644 --- a/src/components.cognex.vision/ctrl/assets/is2800.hwl.yml +++ b/src/components.cognex.vision/ctrl/assets/is2800.hwl.yml @@ -40,55 +40,55 @@ Devices: - Name: SoftEvent_Control TypeIdentifier: GsdId: '106' - FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML + FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML Slot: 6 # - Name: User_Data-16_bytes # TypeIdentifier: # GsdId: '301' # FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - # Slot: 7 + # Slot: 7 # Upto four modules with GsdId = 301-305 could be used in slots 7-10 # - Name: User_Data-32_bytes # TypeIdentifier: # GsdId: '302' # FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - # Slot: 7 + # Slot: 7 # Upto four modules with GsdId = 301-305 could be used in slots 7-10 - Name: User_Data-64_bytes TypeIdentifier: GsdId: '303' FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - Slot: 7 + Slot: 7 # Upto four modules with GsdId = 301-305 could be used in slots 7-10 # - Name: User_Data-128_bytes # TypeIdentifier: # GsdId: '304' # FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - # Slot: 7 + # Slot: 7 # Upto four modules with GsdId = 301-305 could be used in slots 7-10 # - Name: User_Data-254_bytes # TypeIdentifier: # GsdId: '305' # FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - # Slot: 7 + # Slot: 7 # Upto four modules with GsdId = 301-305 could be used in slots 7-10 # - Name: Result_Data-16_bytes # TypeIdentifier: # GsdId: '401' # FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - # Slot: 11 + # Slot: 11 # Upto four modules with GsdId = 401-405 could be used in slots 11-14 # - Name: Result_Data-32_bytes # TypeIdentifier: # GsdId: '402' # FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - # Slot: 11 + # Slot: 11 # Upto four modules with GsdId = 401-405 could be used in slots 11-14 - Name: Result_Data-64_bytes TypeIdentifier: GsdId: '403' FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - Slot: 11 + Slot: 11 # Upto four modules with GsdId = 401-405 could be used in slots 11-14 # - Name: Result_Data-128_bytes # TypeIdentifier: # GsdId: '404' # FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - # Slot: 11 + # Slot: 11 # Upto four modules with GsdId = 401-405 could be used in slots 11-14 # - Name: Result_Data-250_bytes # TypeIdentifier: # GsdId: '405' # FileName: GSDML-V2.42-Cognex-IS2800ClassB-20230405.XML - # Slot: 11 + # Slot: 11 # Upto four modules with GsdId = 401-405 could be used in slots 11-14 diff --git a/src/components.cognex.vision/ctrl/assets/vision_pro.hwl.yml b/src/components.cognex.vision/ctrl/assets/vision_pro.hwl.yml new file mode 100644 index 000000000..2618f0622 --- /dev/null +++ b/src/components.cognex.vision/ctrl/assets/vision_pro.hwl.yml @@ -0,0 +1,99 @@ +Devices: +- Name: vision_pro + Modules: + - Name: vision_pro + TypeIdentifier: + GsdId: DAP1 + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Interfaces: + - Name: profinet + Label: X1 + Addresses: + Configured: + - IPv4: 192.168.100.14/24 + - ProfinetDeviceName: vision_pro + - Name: System_Control + TypeIdentifier: + GsdId: '101' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 1 + - Name: Engine_Control_1 + TypeIdentifier: + GsdId: '401' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 2 + - Name: Engine_Control_2 + TypeIdentifier: + GsdId: '401' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 3 + - Name: Engine_Control_3 + TypeIdentifier: + GsdId: '401' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 4 + - Name: Engine_Control_4 + TypeIdentifier: + GsdId: '401' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 5 + - Name: User_Data_240_bytes_1 + TypeIdentifier: + GsdId: '705' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 6 + - Name: User_Data_240_bytes_2 + TypeIdentifier: + GsdId: '705' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 7 + - Name: User_Data_240_bytes_3 + TypeIdentifier: + GsdId: '705' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 8 + - Name: User_Data_240_bytes_4 + TypeIdentifier: + GsdId: '705' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 9 + - Name: User_Data_240_bytes_5 + TypeIdentifier: + GsdId: '705' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 10 + - Name: User_Data_64_bytes_1 + TypeIdentifier: + GsdId: '703' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 11 + - Name: Result_Data_240_bytes_1 + TypeIdentifier: + GsdId: '805' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 12 + - Name: Result_Data_240_bytes_2 + TypeIdentifier: + GsdId: '805' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 13 + - Name: Result_Data_240_bytes_3 + TypeIdentifier: + GsdId: '805' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 14 + - Name: Result_Data_240_bytes_4 + TypeIdentifier: + GsdId: '805' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 15 + - Name: Result_Data_240_bytes_5 + TypeIdentifier: + GsdId: '805' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 16 + - Name: Result_Data_64_bytes_1 + TypeIdentifier: + GsdId: '803' + FileName: gsdml-v2.3-cognex-cc24-20140828.xml + Slot: 17 diff --git a/src/components.cognex.vision/ctrl/src/AxoDataman/v_6_0_0/AxoDataman.st b/src/components.cognex.vision/ctrl/src/AxoDataman/v_6_0_0/AxoDataman.st index 04dd858aa..75dc20725 100644 --- a/src/components.cognex.vision/ctrl/src/AxoDataman/v_6_0_0/AxoDataman.st +++ b/src/components.cognex.vision/ctrl/src/AxoDataman/v_6_0_0/AxoDataman.st @@ -2,34 +2,34 @@ USING AXOpen.Messaging.Static; USING AXOpen.Messaging; USING AXOpen.Core; USING AXOpen.Components.Abstractions; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 {S7.extern=ReadWrite} CLASS PUBLIC AxoDataman EXTENDS AXOpen.Core.AxoComponent IMPLEMENTS AXOpen.Components.Abstractions.IAxoCodeReader VAR PRIVATE - _ResultDataSize : eAxoDataman_ResultDataSize; - _UserDataSize : eAxoDataman_UserDataSize; - _hwID : WORD; - _hwIdAcquisitionControl : WORD; - _hwIdAcquisitionStatus : WORD; - _hwIdResultsControl : WORD; - _hwIdResultsStatus : WORD; - _hwIdSoftEventControl : WORD; - _hwIdResultData : WORD; - _hwIdUserData : WORD; - - _progress : INT := 0; - _infoTimer : AXOpen.Timers.OnDelayTimer; - _errorTimer : AXOpen.Timers.OnDelayTimer; - _inspectionCompleted : BOOL; - _data_in : ARRAY[0..254] OF BYTE; - _jobNumber : UINT; - _softEventNumber : UINT; - _UserDataChanged : BOOL; + _UserDataSize : eAxoDataman_UserDataSize; + _ResultDataSize : eAxoDataman_ResultDataSize; + _hwID : WORD; + _hwIdAcquisitionControl : WORD; + _hwIdAcquisitionStatus : WORD; + _hwIdResultsControl : WORD; + _hwIdResultsStatus : WORD; + _hwIdSoftEventControl : WORD; + _hwIdUserData : WORD; + _hwIdResultData : WORD; + + _progress : INT := 0; + _infoTimer : AXOpen.Timers.OnDelayTimer; + _errorTimer : AXOpen.Timers.OnDelayTimer; + _inspectionCompleted : BOOL; + _data_in : ARRAY[0..254] OF BYTE; + _jobNumber : UINT; + _softEventNumber : UINT; + _UserDataChanged : BOOL; _invalidDataSize : BOOL; - _returnValue : WORD; _data_1 : ARRAY[0..0] OF BYTE; _data_16 : ARRAY[0..15] OF BYTE; _data_32 : ARRAY[0..31] OF BYTE; @@ -37,6 +37,16 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _data_128 : ARRAY[0..127] OF BYTE; _data_250 : ARRAY[0..249] OF BYTE; + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _startAddress : UDINT; + _bytesCount : UINT; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR VAR PUBLIC //Header @@ -154,78 +164,391 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 METHOD PUBLIC Run VAR_INPUT parent : IAxoObject; - ResultDataSize : eAxoDataman_ResultDataSize; - UserDataSize : eAxoDataman_UserDataSize; hwID : WORD; - hwIdAcquisitionControl : WORD; - hwIdAcquisitionStatus : WORD; - hwIdResultsControl : WORD; - hwIdResultsStatus : WORD; - hwIdSoftEventControl : WORD; - hwIdResultData : WORD; - hwIdUserData : WORD; END_VAR VAR - _index : INT; + _index : INT; END_VAR SUPER.Run(parent); Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwIdAcquisitionControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702,hwIdAcquisitionStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#703,hwIdResultsControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#704,hwIdResultsStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#705,hwIdSoftEventControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#706,hwIdResultData = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#707,hwIdUserData = WORD#0, eAxoMessageCategory#ProgrammingError); - - IF parent = NULL THEN - Status.Error.Id := UINT#700; - RETURN; - ELSIF hwIdAcquisitionControl = WORD#0 THEN - Status.Error.Id := UINT#701; - RETURN; - ELSIF hwIdAcquisitionStatus = WORD#0 THEN - Status.Error.Id := UINT#702; - RETURN; - ELSIF hwIdResultsControl = WORD#0 THEN - Status.Error.Id := UINT#703; - RETURN; - ELSIF hwIdResultsStatus = WORD#0 THEN - Status.Error.Id := UINT#704; - RETURN; - ELSIF hwIdSoftEventControl = WORD#0 THEN - Status.Error.Id := UINT#705; - RETURN; - ELSIF hwIdResultData = WORD#0 THEN - Status.Error.Id := UINT#706; - RETURN; - ELSIF hwIdUserData = WORD#0 THEN - Status.Error.Id := UINT#707; - RETURN; - END_IF; + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdAcquisitionControl := TO_WORD(_outHwid); + IF _hwIdAcquisitionControl = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdAcquisitionControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdAcquisitionStatus := TO_WORD(_outHwid); + IF _hwIdAcquisitionStatus = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdAcquisitionStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#3 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 3*****************// + _geoAddr.Slot := UINT#3; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdResultsControl := TO_WORD(_outHwid); + IF _hwIdResultsControl = WORD#0 THEN + Messenger.Activate(UINT#730,eAxoMessageCategory#Error); + Status.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#731,eAxoMessageCategory#Error); + Status.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#732,eAxoMessageCategory#Error); + Status.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#733,eAxoMessageCategory#Error); + Status.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#734,eAxoMessageCategory#Error); + Status.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#735,eAxoMessageCategory#Error); + Status.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdResultsControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#736,eAxoMessageCategory#Error); + Status.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 4*****************// + _geoAddr.Slot := UINT#4; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdResultsStatus := TO_WORD(_outHwid); + IF _hwIdResultsStatus = WORD#0 THEN + Messenger.Activate(UINT#740,eAxoMessageCategory#Error); + Status.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#741,eAxoMessageCategory#Error); + Status.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#742,eAxoMessageCategory#Error); + Status.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#743,eAxoMessageCategory#Error); + Status.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#744,eAxoMessageCategory#Error); + Status.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#745,eAxoMessageCategory#Error); + Status.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdResultsStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#746,eAxoMessageCategory#Error); + Status.Error.Id := UINT#746; + RETURN; + END_IF; + //******************Slot 5*****************// + _geoAddr.Slot := UINT#5; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdSoftEventControl := TO_WORD(_outHwid); + IF _hwIdSoftEventControl = WORD#0 THEN + Messenger.Activate(UINT#750,eAxoMessageCategory#Error); + Status.Error.Id := UINT#750; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#751,eAxoMessageCategory#Error); + Status.Error.Id := UINT#751; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#752,eAxoMessageCategory#Error); + Status.Error.Id := UINT#752; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#753,eAxoMessageCategory#Error); + Status.Error.Id := UINT#753; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#754,eAxoMessageCategory#Error); + Status.Error.Id := UINT#754; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#755,eAxoMessageCategory#Error); + Status.Error.Id := UINT#755; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdSoftEventControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#756,eAxoMessageCategory#Error); + Status.Error.Id := UINT#756; + RETURN; + END_IF; + //******************Slot 6*****************// + _geoAddr.Slot := UINT#6; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUserData := TO_WORD(_outHwid); + IF _hwIdUserData = WORD#0 THEN + Messenger.Activate(UINT#760,eAxoMessageCategory#Error); + Status.Error.Id := UINT#760; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#761,eAxoMessageCategory#Error); + Status.Error.Id := UINT#761; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#762,eAxoMessageCategory#Error); + Status.Error.Id := UINT#762; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#763,eAxoMessageCategory#Error); + Status.Error.Id := UINT#763; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#764,eAxoMessageCategory#Error); + Status.Error.Id := UINT#764; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#765,eAxoMessageCategory#Error); + Status.Error.Id := UINT#765; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUserData , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#0 AND _outputsCount = UINT#20 THEN //16 + 4 ( Option(UINT) + Length(UINT)) + _UserDataSize := eAxoDataman_UserDataSize#USER_DATA_16B; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#36 THEN //32 + 4 ( Option(UINT) + Length(UINT)) + _UserDataSize := eAxoDataman_UserDataSize#USER_DATA_32B; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#68 THEN //6432 + 4 ( Option(UINT) + Length(UINT)) + _UserDataSize := eAxoDataman_UserDataSize#USER_DATA_64B; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#132 THEN //128 + 4 ( Option(UINT) + Length(UINT)) + _UserDataSize := eAxoDataman_UserDataSize#USER_DATA_128B; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#254 THEN //25 + 4 ( Option(UINT) + Length(UINT)) + _UserDataSize := eAxoDataman_UserDataSize#USER_DATA_250B; + ELSE + _UserDataSize := eAxoDataman_UserDataSize#USER_DATA_SIZE_INVALID; + Messenger.Activate(UINT#766,eAxoMessageCategory#Error); + Status.Error.Id := UINT#766; + RETURN; + END_IF; + //******************Slot 7*****************// + _geoAddr.Slot := UINT#7; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdResultData := TO_WORD(_outHwid); + IF _hwIdResultData = WORD#0 THEN + Messenger.Activate(UINT#770,eAxoMessageCategory#Error); + Status.Error.Id := UINT#770; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#771,eAxoMessageCategory#Error); + Status.Error.Id := UINT#771; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#772,eAxoMessageCategory#Error); + Status.Error.Id := UINT#772; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#773,eAxoMessageCategory#Error); + Status.Error.Id := UINT#773; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#774,eAxoMessageCategory#Error); + Status.Error.Id := UINT#774; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#775,eAxoMessageCategory#Error); + Status.Error.Id := UINT#775; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdResultData , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount = UINT#0 AND _inputsCount = UINT#24 THEN //16 + 8 ( Id(UINT) + Code(UINT) + Extended(UINT) + Length(UINT)) + _ResultDataSize := eAxoDataman_ResultDataSize#RESULT_DATA_16B; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#40 THEN //32 + 8 ( Id(UINT) + Code(UINT) + Extended(UINT) + Length(UINT)) + _ResultDataSize := eAxoDataman_ResultDataSize#RESULT_DATA_32B; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#72 THEN //64 + 8 ( Id(UINT) + Code(UINT) + Extended(UINT) + Length(UINT)) + _ResultDataSize := eAxoDataman_ResultDataSize#RESULT_DATA_64B; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#136 THEN //128 + 8 ( Id(UINT) + Code(UINT) + Extended(UINT) + Length(UINT)) + _ResultDataSize := eAxoDataman_ResultDataSize#RESULT_DATA_128B; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#254 THEN //246 + 8 ( Id(UINT) + Code(UINT) + Extended(UINT) + Length(UINT)) + _ResultDataSize := eAxoDataman_ResultDataSize#RESULT_DATA_246B; + ELSE + _ResultDataSize := eAxoDataman_ResultDataSize#RESULT_DATA_SIZE_INVALID; + Messenger.Activate(UINT#776,eAxoMessageCategory#Error); + Status.Error.Id := UINT#776; + END_IF; - _hwID := hwID; - _ResultDataSize := ResultDataSize; - _UserDataSize := UserDataSize; - _hwIdAcquisitionControl := hwIdAcquisitionControl; - _hwIdAcquisitionStatus := hwIdAcquisitionStatus; - _hwIdResultsControl := hwIdResultsControl; - _hwIdResultsStatus := hwIdResultsStatus; - _hwIdSoftEventControl := hwIdSoftEventControl; - _hwIdResultData := hwIdResultData; - _hwIdUserData := hwIdUserData; + IF parent = NULL THEN + Messenger.Activate(UINT#1130, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1130; + RETURN; + ELSIF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1131; + RETURN; + ELSIF _hwIdAcquisitionControl = WORD#0 THEN + Messenger.Activate(UINT#1132, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1132; + RETURN; + ELSIF _hwIdAcquisitionStatus = WORD#0 THEN + Messenger.Activate(UINT#1133, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1133; + RETURN; + ELSIF _hwIdResultsControl = WORD#0 THEN + Messenger.Activate(UINT#1134, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1134; + RETURN; + ELSIF _hwIdResultsStatus = WORD#0 THEN + Messenger.Activate(UINT#1135, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1135; + RETURN; + ELSIF _hwIdSoftEventControl = WORD#0 THEN + Messenger.Activate(UINT#1136, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1136; + RETURN; + ELSIF _hwIdUserData= WORD#0 THEN + Messenger.Activate(UINT#1137, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1137; + RETURN; + ELSIF _hwIdResultData = WORD#0 THEN + Messenger.Activate(UINT#1138, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1138; + RETURN; + END_IF; - //**************************************** - //***********Update inputs inline********* - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdAcquisitionStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#708,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#708; + _initHwCheckDone := TRUE; + END_IF; + + //***********Update inputs ************** + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdAcquisitionStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; @@ -235,10 +558,10 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 AcquisitionStatus.TriggerID.%B1 := _data_in[1]; AcquisitionStatus.TriggerID.%B0 := _data_in[2]; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultsStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#709,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#709; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultsStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1202, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1202; RETURN; END_IF; @@ -248,10 +571,10 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 ResultsStatus.ResultsAvailable := _data_in[0].%X3; ResultsStatus.ErrorDetected := _data_in[0].%X7; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdSoftEventControl ,_data_in); - Messenger.ActivateOnCondition(ULINT#710,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#710; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdSoftEventControl ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1203, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1203; RETURN; END_IF; @@ -264,10 +587,10 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 SoftEventStatus.Reserved06 := _data_in[0].%X6; SoftEventStatus.SetMatchStringAcknowledge := _data_in[0].%X7; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData ,_data_in); - Messenger.ActivateOnCondition(ULINT#711,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#711; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1204, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1204; RETURN; END_IF; @@ -277,16 +600,14 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _ResultDataSize = eAxoDataman_ResultDataSize#RESULT_DATA_128B OR _ResultDataSize = eAxoDataman_ResultDataSize#RESULT_DATA_246B); - Messenger.ActivateOnCondition(ULINT#712,_invalidDataSize, eAxoMessageCategory#ProgrammingError); - IF _invalidDataSize THEN - Status.Error.Id := UINT#712; + Messenger.Activate(UINT#1205, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1205; RETURN; END_IF; Config.ResultDataSize := _ResultDataSize; - Results.Id.%B1 := _data_in[0]; Results.Id.%B0 := _data_in[1]; Results.Code.%B1 := _data_in[2]; @@ -307,7 +628,6 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 IF Config.ContinuousReading THEN THIS.ContinuousReading(); END_IF; - //*************RESTORE******************** RestoreTask.IsDisabled := FALSE; @@ -332,6 +652,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 300 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; + END_IF; + AcquisitionControl.TriggerEnable := FALSE; AcquisitionControl.Trigger := FALSE; ResultsControl.ResultsAcknowledge := TRUE; @@ -348,10 +673,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 301 THEN - TaskMessenger.ActivateOnCondition(ULINT#600, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#600; + TaskMessenger.Activate( UINT#501, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#501; END_IF; + IF NOT ResultsStatus.ResultsAvailable THEN THIS.CallTimers(FALSE); _progress := 302; @@ -374,14 +700,14 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 Status.Action.Id := UINT#101; Status.Error.Id := UINT#0; ELSIF ClearResultDataTask.ErrorOccured() THEN - Status.Action.Id := UINT#800; - Status.Error.Id := UINT#800; + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; ELSIF ClearResultDataTask.AbortTriggered()THEN - Status.Action.Id := UINT#801; - Status.Error.Id := UINT#801; + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,ClearResultDataTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,ClearResultDataTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10000,ClearResultDataTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,ClearResultDataTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,ClearResultDataTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ClearResultDataTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN Status.Action.Id := UINT#102; @@ -409,14 +735,16 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 310 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#510, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#510; + END_IF; + AcquisitionControl.TriggerEnable := TRUE; AcquisitionControl.Trigger := FALSE; ResultsControl.EnableResultBuffering := FALSE; ResultsControl.ResultsAcknowledge := ResultsStatus.ResultsAvailable; - TaskMessenger.ActivateOnCondition(ULINT#610, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - Status.Error.Id := UINT#610; - END_IF; + IF NOT ResultsStatus.ResultsAvailable THEN THIS.CallTimers(FALSE); _progress := 311; @@ -424,10 +752,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 311 THEN - TaskMessenger.ActivateOnCondition(ULINT#611, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#611; + TaskMessenger.Activate( UINT#511, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#511; END_IF; + IF AcquisitionStatus.TriggerReady THEN THIS.CallTimers(FALSE); _progress := 312; @@ -435,11 +764,13 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 312 THEN - TaskMessenger.ActivateOnCondition(ULINT#612, _infoTimer.output, eAxoMessageCategory#Warning); - AcquisitionControl.Trigger := TRUE; IF _infoTimer.output THEN - Status.Error.Id := UINT#612; + TaskMessenger.Activate( UINT#512, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#512; END_IF; + + AcquisitionControl.Trigger := TRUE; + IF AcquisitionStatus.TriggerAcknowledge THEN THIS.CallTimers(FALSE); _progress := 313; @@ -447,10 +778,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 313 THEN - TaskMessenger.ActivateOnCondition(ULINT#613, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#613; + TaskMessenger.Activate( UINT#513, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#513; END_IF; + IF ResultsStatus.ResultsAvailable THEN THIS.CallTimers(FALSE); _progress := 314; @@ -458,11 +790,16 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 314 THEN - TaskMessenger.ActivateOnCondition(ULINT#614, Results.Length > TO_UINT(Config.ResultDataSize), eAxoMessageCategory#Error); + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#514, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#514; + END_IF; + IF (*Results.Code = UINT#0 OR*) Results.Length=UINT#0 OR Results.Length > TO_UINT(Config.ResultDataSize) THEN ReadTask.ThrowWhen(TRUE); IF Results.Length > TO_UINT(Config.ResultDataSize) THEN - Status.Error.Id := UINT#614; + TaskMessenger.Activate( UINT#614, eAxoMessageCategory#Error); + Status.Error.Id := UINT#614; END_IF; ELSE THIS.CallTimers(FALSE); @@ -471,9 +808,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 315 THEN - TaskMessenger.ActivateOnCondition(ULINT#615, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#615; + TaskMessenger.Activate( UINT#515, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#515; END_IF; FOR _index := 0 TO (TO_INT(Results.Length) - INT#1) DO @@ -487,6 +824,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 316 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#516, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#516; + END_IF; + AcquisitionControl.Trigger := FALSE; ResultsControl.EnableResultBuffering := FALSE; ResultsControl.ResultsAcknowledge := TRUE; @@ -495,10 +837,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 319 THEN - TaskMessenger.ActivateOnCondition(ULINT#619, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#619; + TaskMessenger.Activate( UINT#519, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#519; END_IF; + AcquisitionControl.TriggerEnable :=FALSE; AcquisitionControl.Trigger := FALSE; ResultsControl.EnableResultBuffering := FALSE; @@ -510,10 +853,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 320 THEN - TaskMessenger.ActivateOnCondition(ULINT#620, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#620; + TaskMessenger.Activate( UINT#520, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#520; END_IF; + AcquisitionControl.TriggerEnable :=TRUE; IF NOT ResultsStatus.ErrorDetected THEN THIS.CallTimers(FALSE); @@ -522,6 +866,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 321 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#521, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#521; + END_IF; + AcquisitionControl.TriggerEnable :=FALSE; IF _infoTimer.elapsedTime >= T#1s THEN THIS.CallTimers(FALSE); @@ -538,42 +887,41 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 Status.Action.Id := UINT#111; Status.Error.Id := UINT#0; ELSIF ReadTask.ErrorOccured() THEN - Status.Action.Id := UINT#810; - Status.Error.Id := UINT#810; + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; ELSIF ReadTask.AbortTriggered()THEN - Status.Action.Id := UINT#811; - Status.Error.Id := UINT#811; + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; END_IF; - Messenger.ActivateOnCondition(ULINT#810,ReadTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#811,ReadTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10010,ReadTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,ReadTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#112,ReadTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ReadTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 329 THEN Status.Action.Id := UINT#112; _progress := 0; END_IF; + //****************************************** - //*********************************************** - //****************Update outputs inline********** - + //***********Update outputs **************** _data_1[0].%X0 := AcquisitionControl.TriggerEnable; _data_1[0].%X1 := AcquisitionControl.Trigger; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdAcquisitionControl,_data_1); - Messenger.ActivateOnCondition(ULINT#713,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#713; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdAcquisitionControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; - END_IF; + END_IF; _data_1[0].%X0 := ResultsControl.EnableResultBuffering; _data_1[0].%X1 := ResultsControl.ResultsAcknowledge; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdResultsControl,_data_1); - Messenger.ActivateOnCondition(ULINT#714,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#714; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdResultsControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1232, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1232; RETURN; - END_IF; + END_IF; _data_1[0].%X0 := SoftEventControl.TrainCode; _data_1[0].%X1 := SoftEventControl.TrainMatchString; @@ -584,12 +932,12 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _data_1[0].%X6 := SoftEventControl.Reserved06; _data_1[0].%X7 := SoftEventControl.SetMatchString; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdSoftEventControl,_data_1); - Messenger.ActivateOnCondition(ULINT#715,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#715; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdSoftEventControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1233, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1233; RETURN; - END_IF; + END_IF; _invalidDataSize := NOT (_UserDataSize = eAxoDataman_UserDataSize#USER_DATA_16B OR _UserDataSize = eAxoDataman_UserDataSize#USER_DATA_32B OR @@ -597,10 +945,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _UserDataSize = eAxoDataman_UserDataSize#USER_DATA_128B OR _UserDataSize = eAxoDataman_UserDataSize#USER_DATA_250B); - Messenger.ActivateOnCondition(ULINT#716,_invalidDataSize, eAxoMessageCategory#ProgrammingError); - IF _invalidDataSize THEN - Status.Error.Id := UINT#716; + Messenger.Activate(UINT#1234, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1234; RETURN; END_IF; @@ -611,52 +958,52 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 FOR _index := 0 TO 15 DO _data_16[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_16); - Messenger.ActivateOnCondition(ULINT#717,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#717; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_16); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1235, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1235; RETURN; - END_IF; + END_IF; ELSIF Config.UserDataSize = eAxoDataman_UserDataSize#USER_DATA_32B THEN FOR _index := 0 TO 31 DO _data_32[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_32); - Messenger.ActivateOnCondition(ULINT#718,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#718; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_32); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1236, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1236; RETURN; - END_IF; + END_IF; ELSIF Config.UserDataSize = eAxoDataman_UserDataSize#USER_DATA_64B THEN FOR _index := 0 TO 63 DO _data_64[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_64); - Messenger.ActivateOnCondition(ULINT#719,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#719; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_64); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1237, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1237; RETURN; - END_IF; + END_IF; ELSIF Config.UserDataSize = eAxoDataman_UserDataSize#USER_DATA_128B THEN FOR _index := 0 TO 127 DO _data_128[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_128); - Messenger.ActivateOnCondition(ULINT#720,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#720; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_128); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1238, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1238; RETURN; - END_IF; + END_IF; ELSIF Config.UserDataSize = eAxoDataman_UserDataSize#USER_DATA_250B THEN FOR _index := 0 TO 253 DO _data_250[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_250); - Messenger.ActivateOnCondition(ULINT#721,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#721; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_250); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1239, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1239; RETURN; - END_IF; + END_IF; END_IF; _UserDataChanged := UserData.DataChanged; END_IF; @@ -694,11 +1041,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _index : INT; END_VAR IF ResultsStatus.ResultsAvailable AND NOT ResultsControl.ResultsAcknowledge AND Results.Code > UINT#0 AND Results.Length > UINT#0 THEN - Messenger.ActivateOnCondition(ULINT#820, Results.Length > TO_UINT(Config.ResultDataSize), eAxoMessageCategory#Error); - TaskMessenger.ActivateOnCondition(ULINT#713, Results.Length > TO_UINT(Config.ResultDataSize), eAxoMessageCategory#Error); IF Results.Length > TO_UINT(Config.ResultDataSize) THEN - Status.Action.Id := UINT#820; - Status.Error.Id := UINT#713; + Messenger.Activate( UINT#10020, eAxoMessageCategory#Error); + Status.Action.Id := UINT#10020; + TaskMessenger.Activate( UINT#713, eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; ELSE FOR _index := 0 TO (TO_INT(Results.Length) - INT#1) DO ResultData.Data[_index] := _data_in[_index + 8]; @@ -710,7 +1057,6 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 Status.Action.Id := UINT#120; END_IF; END_IF; - ResultsControl.ResultsAcknowledge := ResultsStatus.ResultsAvailable; END_METHOD @@ -774,6 +1120,5 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; END_METHOD - END_CLASS END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/AxoInsight.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/AxoInsight.st new file mode 100644 index 000000000..7d5684376 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/AxoInsight.st @@ -0,0 +1,2555 @@ +USING AXOpen.Messaging.Static; +USING AXOpen.Messaging; +USING AXOpen.Core; +USING AXOpen.Components.Abstractions; +USING System.Strings; +USING System.Serialization; +USING Siemens.Simatic.S71500.Hardware.Utilities; + +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + CLASS PUBLIC AxoInsight EXTENDS AXOpen.Core.AxoComponent IMPLEMENTS AXOpen.Components.Abstractions.IAxoVisionSensor + VAR PRIVATE + _UserDataSize_Slot_7 : UINT; + _UserDataSize_Slot_8 : UINT; + _UserDataSize_Slot_9 : UINT; + _UserDataSize_Slot_10 : UINT; + _UserDataSize : UINT; + _ResultDataSize_Slot_11 : UINT; + _ResultDataSize_Slot_12 : UINT; + _ResultDataSize_Slot_13 : UINT; + _ResultDataSize_Slot_14 : UINT; + _ResultDataSize : UINT; + _hwID : WORD; + _hwIdAcquisitionControl : WORD; + _hwIdAcquisitionStatus : WORD; + _hwIdInspectionControl : WORD; + _hwIdInspectionStatus : WORD; + _hwIdCommandControl : WORD; + _hwIdSoftEventControl : WORD; + _hwIdUserDataSlot_7 : WORD; + _hwIdUserDataSlot_8 : WORD; + _hwIdUserDataSlot_9 : WORD; + _hwIdUserDataSlot_10 : WORD; + _hwIdResultData_Slot_11 : WORD; + _hwIdResultData_Slot_12 : WORD; + _hwIdResultData_Slot_13 : WORD; + _hwIdResultData_Slot_14 : WORD; + + _progress : INT := 0; + _infoTimer : AXOpen.Timers.OnDelayTimer; + _errorTimer : AXOpen.Timers.OnDelayTimer; + _jobName : STRING; + _inspectionCompleted : BOOL; + _data_255 : ARRAY[0..254] OF BYTE; + _jobNumber : UINT; + _softEventNumber : UINT; + _UserDataChanged : BOOL; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _startAddress : UDINT; + _bytesCount : UINT; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; + _offset : INT; + _fromFor : INT; + _toFor : INT; + _userDataLength : UINT; + _userData : AxoInsight_UserData; + END_VAR + + VAR PUBLIC //Header + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentHeader()]} + {#ix-set:AttributeName = "<#Trigger#>"} + TriggerTask : AXOpen.Core.AxoTask; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentHeader()]} + {#ix-attr:[ReadOnly()]} + {#ix-set:DisplayFormat = "string"} + {#ix-set:AttributeName = "<#Inspection results#>"} + InspectionResults : AxoInsight_ResultData; + + END_VAR + + VAR PUBLIC //Tasks + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Restore#>"} + RestoreTask : AXOpen.Core.AxoTask; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Clear inspection results#>"} + ClearInspectionResultsTask : AXOpen.Core.AxoTask; + {#ix-attr:[Container(Layout.UniformGrid)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Required job name#>"} + RequiredJobName : STRING; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Change job by name#>"} + ChangeJobByNameTask : AXOpen.Core.AxoTask; + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Required job number#>"} + RequiredJobNumber : UINT; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Change job by number#>"} + ChangeJobByNumberTask : AXOpen.Core.AxoTask; + + {#ix-attr:[Container(Layout.UniformGrid)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Required soft event number#>"} + RequiredSoftEventNumber : UINT; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Trigger soft event#>"} + SoftEventTask : AXOpen.Core.AxoTask; + + {#ix-attr:[Container(Layout.UniformGrid)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#User data to sent#>"} + UserDataToSent : AxoInsight_UserData; + {#ix-attr:[Container(Layout.UniformGrid)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#User data length#>"} + UserDataLength : UINT; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Send user data#>"} + SendUserDataTask : AXOpen.Core.AxoTask; + END_VAR + + VAR PUBLIC //Config + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ReadOnly()]} + Config : AxoInsight_Config; + END_VAR + + VAR PUBLIC //Status + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-attr:[ReadOnly()]} + Status : AxoInsight_Status; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Results#>"} + Results : AxoInsight_Results; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-set:AttributeName = "<#Acquisition control#>"} + {#ix-attr:[ReadOnly()]} + AcquisitionControl : AxoInsight_AcquisitionControl; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-set:AttributeName = "<#Acquisition status#>"} + {#ix-attr:[ReadOnly()]} + AcquisitionStatus : AxoInsight_AcquisitionStatus; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-set:AttributeName = "<#Inspection control#>"} + {#ix-attr:[ReadOnly()]} + InspectionControl : AxoInsight_InspectionControl; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-set:AttributeName = "<#Inspection status#>"} + {#ix-attr:[ReadOnly()]} + InspectionStatus : AxoInsight_InspectionStatus; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-set:AttributeName = "<#Command control#>"} + {#ix-attr:[ReadOnly()]} + CommandControl : AxoInsight_CommandControl; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-set:AttributeName = "<#Command status#>"} + {#ix-attr:[ReadOnly()]} + CommandStatus : AxoInsight_CommandStatus; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-set:AttributeName = "<#Soft-event control#>"} + {#ix-attr:[ReadOnly()]} + SoftEventControl : AxoInsight_SoftEventControl; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-set:AttributeName = "<#Soft-event status#>"} + {#ix-attr:[ReadOnly()]} + SoftEventStatus : AxoInsight_SoftEventStatus; + + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-set:AttributeName = "<#User data#>"} + {#ix-attr:[ReadOnly()]} + UserData : AxoInsight_UserData; + END_VAR + + VAR PUBLIC //Hardware diagnostics + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Hardware diagnostics")]} + {#ix-set:AttributeName = "<#Update diagnostics#>"} + HardwareDiagnosticsTask : AXOpen.Io.AxoHardwareDiagnostics; + END_VAR + + VAR PUBLIC //Messengers + Messenger : AXOpen.Messaging.Static.AxoMessenger; + TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; + END_VAR + + /// + /// Runs tasks and logic of this component. + /// >[!IMPORTANT] This method or one of its overloads must be called cyclically. + /// + METHOD PUBLIC Run + VAR_INPUT + parent : IAxoObject; + hwID : WORD; + END_VAR + VAR + _index : INT; + _invalidDataSize : BOOL; + _data_1 : ARRAY[0..0] OF BYTE; + _data_2 : ARRAY[0..1] OF BYTE; + _data_16 : ARRAY[0..15] OF BYTE; + _data_32 : ARRAY[0..31] OF BYTE; + _data_64 : ARRAY[0..63] OF BYTE; + _data_128 : ARRAY[0..127] OF BYTE; + _data_254 : ARRAY[0..253] OF BYTE; + END_VAR + + SUPER.Run(parent); + + Messenger.Serve(THIS); + + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdAcquisitionControl := TO_WORD(_outHwid); + IF _hwIdAcquisitionControl = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdAcquisitionControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdAcquisitionStatus := TO_WORD(_outHwid); + IF _hwIdAcquisitionStatus = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdAcquisitionStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF (_inputsCount <> UINT#3 AND _inputsCount <> UINT#4) OR _outputsCount <> UINT#0 THEN // 3 for is2000, 4 for 2800 + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 3*****************// + _geoAddr.Slot := UINT#3; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdInspectionControl := TO_WORD(_outHwid); + IF _hwIdInspectionControl = WORD#0 THEN + Messenger.Activate(UINT#730,eAxoMessageCategory#Error); + Status.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#731,eAxoMessageCategory#Error); + Status.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#732,eAxoMessageCategory#Error); + Status.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#733,eAxoMessageCategory#Error); + Status.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#734,eAxoMessageCategory#Error); + Status.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#735,eAxoMessageCategory#Error); + Status.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdInspectionControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#736,eAxoMessageCategory#Error); + Status.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 4*****************// + _geoAddr.Slot := UINT#4; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdInspectionStatus := TO_WORD(_outHwid); + IF _hwIdInspectionStatus = WORD#0 THEN + Messenger.Activate(UINT#740,eAxoMessageCategory#Error); + Status.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#741,eAxoMessageCategory#Error); + Status.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#742,eAxoMessageCategory#Error); + Status.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#743,eAxoMessageCategory#Error); + Status.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#744,eAxoMessageCategory#Error); + Status.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#745,eAxoMessageCategory#Error); + Status.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdInspectionStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#4 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#746,eAxoMessageCategory#Error); + Status.Error.Id := UINT#746; + RETURN; + END_IF; + //******************Slot 5*****************// + _geoAddr.Slot := UINT#5; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdCommandControl := TO_WORD(_outHwid); + IF _hwIdCommandControl = WORD#0 THEN + Messenger.Activate(UINT#750,eAxoMessageCategory#Error); + Status.Error.Id := UINT#750; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#751,eAxoMessageCategory#Error); + Status.Error.Id := UINT#751; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#752,eAxoMessageCategory#Error); + Status.Error.Id := UINT#752; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#753,eAxoMessageCategory#Error); + Status.Error.Id := UINT#753; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#754,eAxoMessageCategory#Error); + Status.Error.Id := UINT#754; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#755,eAxoMessageCategory#Error); + Status.Error.Id := UINT#755; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdCommandControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF (_inputsCount <> UINT#2 AND _inputsCount <> UINT#4) OR _outputsCount <> UINT#2 THEN + Messenger.Activate(UINT#756,eAxoMessageCategory#Error); + Status.Error.Id := UINT#756; + RETURN; + END_IF; + //******************Slot 6*****************// + _geoAddr.Slot := UINT#6; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdSoftEventControl := TO_WORD(_outHwid); + IF _hwIdSoftEventControl = WORD#0 THEN + Messenger.Activate(UINT#760,eAxoMessageCategory#Error); + Status.Error.Id := UINT#760; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#761,eAxoMessageCategory#Error); + Status.Error.Id := UINT#761; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#762,eAxoMessageCategory#Error); + Status.Error.Id := UINT#762; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#763,eAxoMessageCategory#Error); + Status.Error.Id := UINT#763; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#764,eAxoMessageCategory#Error); + Status.Error.Id := UINT#764; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#765,eAxoMessageCategory#Error); + Status.Error.Id := UINT#765; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdSoftEventControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#766,eAxoMessageCategory#Error); + Status.Error.Id := UINT#766; + RETURN; + END_IF; + //******************Slot 7*****************// + _geoAddr.Slot := UINT#7; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUserDataSlot_7 := TO_WORD(_outHwid); + IF _hwIdUserDataSlot_7 = WORD#0 THEN + Messenger.Activate(UINT#770,eAxoMessageCategory#Error); + Status.Error.Id := UINT#770; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#771,eAxoMessageCategory#Error); + Status.Error.Id := UINT#771; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#772,eAxoMessageCategory#Error); + Status.Error.Id := UINT#772; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#773,eAxoMessageCategory#Error); + Status.Error.Id := UINT#773; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#774,eAxoMessageCategory#Error); + Status.Error.Id := UINT#774; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#775,eAxoMessageCategory#Error); + Status.Error.Id := UINT#775; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUserDataSlot_7 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#0 AND _outputsCount = UINT#16 THEN + _UserDataSize_Slot_7 := UINT#16; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#32 THEN + _UserDataSize_Slot_7 := UINT#32; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#64 THEN + _UserDataSize_Slot_7 := UINT#64; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#128 THEN + _UserDataSize_Slot_7 := UINT#128; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#254 THEN + _UserDataSize_Slot_7 := UINT#254; + ELSE + _UserDataSize_Slot_7 := UINT#0; + Messenger.Activate(UINT#776,eAxoMessageCategory#Error); + Status.Error.Id := UINT#776; + END_IF; + //******************Slot 8*****************// + _geoAddr.Slot := UINT#8; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUserDataSlot_8 := TO_WORD(_outHwid); + // IF _hwIdUserDataSlot_8 = WORD#0 THEN + // Messenger.Activate(UINT#780,eAxoMessageCategory#Error); + // Status.Error.Id := UINT#780; + // RETURN; + // END_IF; + IF _hwIdUserDataSlot_8 <> WORD#0 THEN + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#781,eAxoMessageCategory#Error); + Status.Error.Id := UINT#781; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#782,eAxoMessageCategory#Error); + Status.Error.Id := UINT#782; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#783,eAxoMessageCategory#Error); + Status.Error.Id := UINT#783; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#784,eAxoMessageCategory#Error); + Status.Error.Id := UINT#784; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#785,eAxoMessageCategory#Error); + Status.Error.Id := UINT#785; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUserDataSlot_8 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#0 AND _outputsCount = UINT#16 THEN + _UserDataSize_Slot_8 := UINT#16; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#32 THEN + _UserDataSize_Slot_8 := UINT#32; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#64 THEN + _UserDataSize_Slot_8 := UINT#64; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#128 THEN + _UserDataSize_Slot_8 := UINT#128; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#254 THEN + _UserDataSize_Slot_8 := UINT#254; + ELSE + _UserDataSize_Slot_8 := UINT#0; + Messenger.Activate(UINT#786,eAxoMessageCategory#Error); + Status.Error.Id := UINT#786; + END_IF; + END_IF; + //******************Slot 9*****************// + _geoAddr.Slot := UINT#9; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUserDataSlot_9 := TO_WORD(_outHwid); + IF _hwIdUserDataSlot_9 <> WORD#0 AND _hwIdUserDataSlot_8 = WORD#0 THEN // Slot 7 is mandatory. If there are User data defined at Slot 7, Slot 8 is empty and another data are defined in slot 9 + Messenger.Activate(UINT#790,eAxoMessageCategory#Error); // an error message will prompt to move module from slot 9 to Slot 8 + Status.Error.Id := UINT#790; + RETURN; + END_IF; + IF _hwIdUserDataSlot_9 <> WORD#0 THEN + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#791,eAxoMessageCategory#Error); + Status.Error.Id := UINT#791; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#792,eAxoMessageCategory#Error); + Status.Error.Id := UINT#792; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#793,eAxoMessageCategory#Error); + Status.Error.Id := UINT#793; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#794,eAxoMessageCategory#Error); + Status.Error.Id := UINT#794; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#795,eAxoMessageCategory#Error); + Status.Error.Id := UINT#795; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUserDataSlot_9 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#0 AND _outputsCount = UINT#16 THEN + _UserDataSize_Slot_9 := UINT#16; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#32 THEN + _UserDataSize_Slot_9 := UINT#32; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#64 THEN + _UserDataSize_Slot_9 := UINT#64; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#128 THEN + _UserDataSize_Slot_9 := UINT#128; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#254 THEN + _UserDataSize_Slot_9 := UINT#254; + ELSE + _UserDataSize_Slot_9 := UINT#0; + Messenger.Activate(UINT#796,eAxoMessageCategory#Error); + Status.Error.Id := UINT#796; + END_IF; + END_IF; + //******************Slot 10*****************// + _geoAddr.Slot := UINT#10; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUserDataSlot_10 := TO_WORD(_outHwid); + IF _hwIdUserDataSlot_10 <> WORD#0 AND _hwIdUserDataSlot_9 = WORD#0 THEN // Slot 7 is mandatory. If there are User data defined at Slot 7, Slot 9 is empty and another data are defined in slot 10 + Messenger.Activate(UINT#800,eAxoMessageCategory#Error); // an error message will prompt to move module from slot 10 to Slot 9 + Status.Error.Id := UINT#800; + RETURN; + END_IF; + IF _hwIdUserDataSlot_10 <> WORD#0 THEN + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#801,eAxoMessageCategory#Error); + Status.Error.Id := UINT#801; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#802,eAxoMessageCategory#Error); + Status.Error.Id := UINT#802; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#803,eAxoMessageCategory#Error); + Status.Error.Id := UINT#803; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#804,eAxoMessageCategory#Error); + Status.Error.Id := UINT#804; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#805,eAxoMessageCategory#Error); + Status.Error.Id := UINT#805; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUserDataSlot_10 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#0 AND _outputsCount = UINT#16 THEN + _UserDataSize_Slot_10 := UINT#16; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#32 THEN + _UserDataSize_Slot_10 := UINT#32; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#64 THEN + _UserDataSize_Slot_10 := UINT#64; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#128 THEN + _UserDataSize_Slot_10 := UINT#128; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#254 THEN + _UserDataSize_Slot_10 := UINT#254; + ELSE + _UserDataSize_Slot_10 := UINT#0; + Messenger.Activate(UINT#806,eAxoMessageCategory#Error); + Status.Error.Id := UINT#806; + END_IF; + END_IF; + //******************Slot 11*****************// + _geoAddr.Slot := UINT#11; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdResultData_Slot_11 := TO_WORD(_outHwid); + IF _hwIdResultData_Slot_11 = WORD#0 THEN + Messenger.Activate(UINT#810,eAxoMessageCategory#Error); + Status.Error.Id := UINT#810; + RETURN; + END_IF; + IF _hwIdResultData_Slot_11 <> WORD#0 THEN + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#811,eAxoMessageCategory#Error); + Status.Error.Id := UINT#811; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#812,eAxoMessageCategory#Error); + Status.Error.Id := UINT#812; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#813,eAxoMessageCategory#Error); + Status.Error.Id := UINT#813; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#814,eAxoMessageCategory#Error); + Status.Error.Id := UINT#814; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#815,eAxoMessageCategory#Error); + Status.Error.Id := UINT#815; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdResultData_Slot_11 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount = UINT#0 AND _inputsCount = UINT#20 THEN + _ResultDataSize_Slot_11 := UINT#16; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#36 THEN + _ResultDataSize_Slot_11 := UINT#32; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#68 THEN + _ResultDataSize_Slot_11 := UINT#64; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#132 THEN + _ResultDataSize_Slot_11 := UINT#128; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#254 THEN + _ResultDataSize_Slot_11 := UINT#250; + ELSE + _ResultDataSize_Slot_11 := UINT#0; + Messenger.Activate(UINT#816,eAxoMessageCategory#Error); + Status.Error.Id := UINT#816; + END_IF; + END_IF; + //******************Slot 12*****************// + _geoAddr.Slot := UINT#12; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdResultData_Slot_12 := TO_WORD(_outHwid); + // IF _hwIdResultData_Slot_12 = WORD#0 THEN + // Messenger.Activate(UINT#820,eAxoMessageCategory#Error); + // Status.Error.Id := UINT#820; + // RETURN; + // END_IF; + IF _hwIdResultData_Slot_12 <> WORD#0 THEN + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#821,eAxoMessageCategory#Error); + Status.Error.Id := UINT#821; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#822,eAxoMessageCategory#Error); + Status.Error.Id := UINT#822; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#823,eAxoMessageCategory#Error); + Status.Error.Id := UINT#823; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#824,eAxoMessageCategory#Error); + Status.Error.Id := UINT#824; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#825,eAxoMessageCategory#Error); + Status.Error.Id := UINT#825; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdResultData_Slot_12 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount = UINT#0 AND _inputsCount = UINT#16 THEN + _ResultDataSize_Slot_12 := UINT#16; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#32 THEN + _ResultDataSize_Slot_12 := UINT#32; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#64 THEN + _ResultDataSize_Slot_12 := UINT#64; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#128 THEN + _ResultDataSize_Slot_12 := UINT#128; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#250 THEN + _ResultDataSize_Slot_12 := UINT#250; + ELSE + _ResultDataSize_Slot_12 := UINT#0; + Messenger.Activate(UINT#826,eAxoMessageCategory#Error); + Status.Error.Id := UINT#826; + END_IF; + END_IF; + //******************Slot 13*****************// + _geoAddr.Slot := UINT#13; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdResultData_Slot_13 := TO_WORD(_outHwid); + IF _hwIdResultData_Slot_13 <> WORD#0 AND _hwIdResultData_Slot_12 = WORD#0 THEN // Slot 11 is mandatory. If there are Result data defined at Slot 11, Slot 12 is empty and another data are defined in slot 13 + Messenger.Activate(UINT#830,eAxoMessageCategory#Error); // an error message will prompt to move module from slot 13 to Slot 12 + Status.Error.Id := UINT#830; + RETURN; + END_IF; + IF _hwIdResultData_Slot_13 <> WORD#0 THEN + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#831,eAxoMessageCategory#Error); + Status.Error.Id := UINT#831; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#832,eAxoMessageCategory#Error); + Status.Error.Id := UINT#832; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#833,eAxoMessageCategory#Error); + Status.Error.Id := UINT#833; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#834,eAxoMessageCategory#Error); + Status.Error.Id := UINT#834; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#835,eAxoMessageCategory#Error); + Status.Error.Id := UINT#835; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdResultData_Slot_13 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount = UINT#0 AND _inputsCount = UINT#16 THEN + _ResultDataSize_Slot_13 := UINT#16; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#32 THEN + _ResultDataSize_Slot_13 := UINT#32; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#64 THEN + _ResultDataSize_Slot_13 := UINT#64; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#128 THEN + _ResultDataSize_Slot_13 := UINT#128; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#250 THEN + _ResultDataSize_Slot_13 := UINT#250; + ELSE + _ResultDataSize_Slot_13 := UINT#0; + Messenger.Activate(UINT#836,eAxoMessageCategory#Error); + Status.Error.Id := UINT#836; + END_IF; + END_IF; + //******************Slot 14*****************// + _geoAddr.Slot := UINT#14; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdResultData_Slot_14 := TO_WORD(_outHwid); + IF _hwIdResultData_Slot_14 <> WORD#0 AND _hwIdResultData_Slot_13 = WORD#0 THEN // Slot 11 is mandatory. If there are Result data defined at Slot 11, Slot 13 is empty and another data are defined in slot 14 + Messenger.Activate(UINT#840,eAxoMessageCategory#Error); // an error message will prompt to move module from slot 14 to Slot 13 + Status.Error.Id := UINT#840; + RETURN; + END_IF; + IF _hwIdResultData_Slot_14 <> WORD#0 THEN + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#841,eAxoMessageCategory#Error); + Status.Error.Id := UINT#841; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#842,eAxoMessageCategory#Error); + Status.Error.Id := UINT#842; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#843,eAxoMessageCategory#Error); + Status.Error.Id := UINT#843; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#844,eAxoMessageCategory#Error); + Status.Error.Id := UINT#844; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#845,eAxoMessageCategory#Error); + Status.Error.Id := UINT#845; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdResultData_Slot_14 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount = UINT#0 AND _inputsCount = UINT#16 THEN + _ResultDataSize_Slot_14 := UINT#16; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#32 THEN + _ResultDataSize_Slot_14 := UINT#32; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#64 THEN + _ResultDataSize_Slot_14 := UINT#64; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#128 THEN + _ResultDataSize_Slot_14 := UINT#128; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#250 THEN + _ResultDataSize_Slot_14 := UINT#250; + ELSE + _ResultDataSize_Slot_14 := UINT#0; + Messenger.Activate(UINT#846,eAxoMessageCategory#Error); + Status.Error.Id := UINT#846; + END_IF; + END_IF; + //*************Slot 7 - 10***************************// + IF _UserDataSize_Slot_7 = UINT#0 AND _UserDataSize_Slot_8 = UINT#0 AND _UserDataSize_Slot_9 = UINT#0 AND _UserDataSize_Slot_10 = UINT#0 THEN + Messenger.Activate(UINT#1400,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1400; + RETURN; + END_IF; + _UserDataSize := _UserDataSize_Slot_7 + _UserDataSize_Slot_8 + _UserDataSize_Slot_9 + _UserDataSize_Slot_10; + //*************Slot 11 - 14**************************// + IF _ResultDataSize_Slot_11 = UINT#0 AND _ResultDataSize_Slot_12 = UINT#0 AND _ResultDataSize_Slot_13 = UINT#0 AND _ResultDataSize_Slot_14 = UINT#0 THEN + Messenger.Activate(UINT#1401,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1401; + RETURN; + END_IF; + _ResultDataSize := _ResultDataSize_Slot_11 + _ResultDataSize_Slot_12 + _ResultDataSize_Slot_13 + _ResultDataSize_Slot_14; + //***************************************************// + + IF parent = NULL THEN + Messenger.Activate(UINT#1130, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1130; + RETURN; + ELSIF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1131; + RETURN; + ELSIF _hwIdAcquisitionControl = WORD#0 THEN + Messenger.Activate(UINT#1132, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1132; + RETURN; + ELSIF _hwIdAcquisitionStatus = WORD#0 THEN + Messenger.Activate(UINT#1133, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1133; + RETURN; + ELSIF _hwIdInspectionControl = WORD#0 THEN + Messenger.Activate(UINT#1134, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1134; + RETURN; + ELSIF _hwIdInspectionStatus = WORD#0 THEN + Messenger.Activate(UINT#1135, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1135; + RETURN; + ELSIF _hwIdCommandControl = WORD#0 THEN + Messenger.Activate(UINT#1136, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1136; + RETURN; + ELSIF _hwIdSoftEventControl = WORD#0 THEN + Messenger.Activate(UINT#1137, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1137; + RETURN; + ELSIF _hwIdUserDataSlot_7 = WORD#0 AND _hwIdUserDataSlot_8 = WORD#0 AND _hwIdUserDataSlot_9 = WORD#0 AND _hwIdUserDataSlot_10 = WORD#0 THEN + Messenger.Activate(UINT#1138, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1138; + RETURN; + ELSIF _hwIdResultData_Slot_11 = WORD#0 AND _hwIdResultData_Slot_12 = WORD#0 AND _hwIdResultData_Slot_13 = WORD#0 AND _hwIdResultData_Slot_14 = WORD#0 THEN + Messenger.Activate(UINT#1139, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1139; + RETURN; + END_IF; + + _initHwCheckDone := TRUE; + END_IF; + + //***********Update inputs ************** + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdAcquisitionStatus ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; + RETURN; + END_IF; + + AcquisitionStatus.TriggerReady := _data_255[0].%X0; + AcquisitionStatus.TriggerAcknowledge := _data_255[0].%X1; + AcquisitionStatus.ExposureComplete := _data_255[0].%X2; + AcquisitionStatus.MissedAcquisition := _data_255[0].%X3; + AcquisitionStatus.OfflineReason0 := _data_255[0].%X4; + AcquisitionStatus.OfflineReason1 := _data_255[0].%X5; + AcquisitionStatus.OfflineReason2 := _data_255[0].%X6; + AcquisitionStatus.Online := _data_255[0].%X7; + + AcquisitionStatus.AcquisitionID.%B1 := _data_255[1]; + AcquisitionStatus.AcquisitionID.%B0 := _data_255[2]; + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdInspectionStatus ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1202, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1202; + RETURN; + END_IF; + + InspectionStatus.SystemBusy := _data_255[0].%X0; + InspectionStatus.InspectionCompleted := _data_255[0].%X1; + InspectionStatus.ResultsBufferOverrun := _data_255[0].%X2; + InspectionStatus.ResultsValid := _data_255[0].%X3; + InspectionStatus.CommandExecuting := _data_255[0].%X4; + InspectionStatus.CommandComplete := _data_255[0].%X5; + InspectionStatus.CommandFailed := _data_255[0].%X6; + InspectionStatus.ExtendedUserDataSetAcknowledge := _data_255[0].%X0; + InspectionStatus.OverallJobPassFail := _data_255[1].%X0; + InspectionStatus.TestRunReady := _data_255[1].%X1; + InspectionStatus.Error := _data_255[1].%X7; + + InspectionStatus.ErrorCode.%B1 := _data_255[2]; + InspectionStatus.ErrorCode.%B0 := _data_255[3]; + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdCommandControl ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1203, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1203; + RETURN; + END_IF; + + CommandStatus.CurrentJobID.%B0 := _data_255[1]; + CommandStatus.CurrentJobID.%B1 := _data_255[0]; + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdSoftEventControl ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1204, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1204; + RETURN; + END_IF; + + SoftEventStatus.TriggerSoftEventAcknowledge.Data[0] := _data_255[0].%X0; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[1] := _data_255[0].%X1; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[2] := _data_255[0].%X2; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[3] := _data_255[0].%X3; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[4] := _data_255[0].%X4; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[5] := _data_255[0].%X5; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[6] := _data_255[0].%X6; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[7] := _data_255[0].%X7; + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData_Slot_11 ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1205, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1205; + RETURN; + END_IF; + + _invalidDataSize := NOT ( _ResultDataSize_Slot_11 = UINT#16 OR + _ResultDataSize_Slot_11 = UINT#32 OR + _ResultDataSize_Slot_11 = UINT#64 OR + _ResultDataSize_Slot_11 = UINT#128 OR + _ResultDataSize_Slot_11 = UINT#250 ); + + IF _invalidDataSize THEN + Messenger.Activate(UINT#1206, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1206; + RETURN; + END_IF; + Results.InspectionID.%B1 := _data_255[0]; + Results.InspectionID.%B0 := _data_255[1]; + Results.ResultCode.%B1 := _data_255[2]; + Results.ResultCode.%B0 := _data_255[3]; + + IF _hwIdResultData_Slot_12 <> WORD#0 THEN + // going to be read conditionally + // _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData_Slot_12 ,_data_in); + // IF _retVal > WORD#0 THEN + // Messenger.Activate(UINT#1207, eAxoMessageCategory#ProgrammingError); + // Status.Error.Id := UINT#1207; + // RETURN; + // END_IF; + + _invalidDataSize := NOT ( _ResultDataSize_Slot_12 = UINT#16 OR + _ResultDataSize_Slot_12 = UINT#32 OR + _ResultDataSize_Slot_12 = UINT#64 OR + _ResultDataSize_Slot_12 = UINT#128 OR + _ResultDataSize_Slot_12 = UINT#250 ); + + IF _invalidDataSize THEN + Messenger.Activate(UINT#1208, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1208; + RETURN; + END_IF; + END_IF; + IF _hwIdResultData_Slot_13 <> WORD#0 THEN + // going to be read conditionally + // _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData_Slot_13 ,_data_in); + // IF _retVal > WORD#0 THEN + // Messenger.Activate(UINT#1209, eAxoMessageCategory#ProgrammingError); + // Status.Error.Id := UINT#1209; + // RETURN; + // END_IF; + + _invalidDataSize := NOT ( _ResultDataSize_Slot_13 = UINT#16 OR + _ResultDataSize_Slot_13 = UINT#32 OR + _ResultDataSize_Slot_13 = UINT#64 OR + _ResultDataSize_Slot_13 = UINT#128 OR + _ResultDataSize_Slot_13 = UINT#250 ); + + IF _invalidDataSize THEN + Messenger.Activate(UINT#1210, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1210; + RETURN; + END_IF; + END_IF; + IF _hwIdResultData_Slot_14 <> WORD#0 THEN + // going to be read conditionally + // _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData_Slot_14 ,_data_in); + // IF _retVal > WORD#0 THEN + // Messenger.Activate(UINT#1211, eAxoMessageCategory#ProgrammingError); + // Status.Error.Id := UINT#1211; + // RETURN; + // END_IF; + + _invalidDataSize := NOT ( _ResultDataSize_Slot_14 = UINT#16 OR + _ResultDataSize_Slot_14 = UINT#32 OR + _ResultDataSize_Slot_14 = UINT#64 OR + _ResultDataSize_Slot_14 = UINT#128 OR + _ResultDataSize_Slot_14 = UINT#250 ); + + IF _invalidDataSize THEN + Messenger.Activate(UINT#1212, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1212; + RETURN; + END_IF; + END_IF; + + Config.ResultDataSize := _ResultDataSize; + + //**************************************Execute inline******************** + RestoreTask.Run(THIS); + ClearInspectionResultsTask.Run(THIS); + TriggerTask.Run(THIS); + ChangeJobByNameTask.Run(THIS); + ChangeJobByNumberTask.Run(THIS); + SoftEventTask.Run(THIS); + SendUserDataTask.Run(THIS); + HardwareDiagnosticsTask.Run(THIS,_hwID); + //*************RESTORE******************** + RestoreTask.IsDisabled := FALSE; + IF RestoreTask.Execute(THIS) THEN + THIS.Restore(); + END_IF; + //**************************************** + + //*************CLEAR*DATA***************** + ClearInspectionResultsTask.IsDisabled := RestoreTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy() OR SendUserDataTask.IsBusy(); + IF ClearInspectionResultsTask.StartTriggered() THEN + Status.Action.Id := UINT#100; + END_IF; + Messenger.ActivateOnCondition(ULINT#100,ClearInspectionResultsTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#101,ClearInspectionResultsTask.IsDone(), eAxoMessageCategory#Info); + IF ClearInspectionResultsTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 300; + END_IF; + + IF _progress = 300 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; + END_IF; + + AcquisitionControl.TriggerEnable := FALSE; + AcquisitionControl.Trigger := FALSE; + InspectionControl.AcknowledgeInspectionResults := TRUE; + Results.InspectionID := UINT#0; + Results.ResultCode := UINT#0; + + FOR _index := 0 TO 999 DO + InspectionResults.Data[_index] := BYTE#0; + END_FOR; + InspectionResults.DataChanged := NOT InspectionResults.DataChanged ; + + THIS.CallTimers(FALSE); + _progress := 301; + END_IF; + + IF _progress = 301 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#501, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#501; + END_IF; + + IF NOT InspectionStatus.ResultsValid THEN + THIS.CallTimers(FALSE); + _progress := 302; + END_IF; + END_IF; + + IF _progress = 302 THEN + InspectionControl.AcknowledgeInspectionResults := TRUE; + ClearInspectionResultsTask.DoneWhen(TRUE); + THIS.CallTimers(FALSE); + _progress := 0; + END_IF; + + THIS.CallTimers(TRUE); + + ClearInspectionResultsTask.ThrowWhen(_errorTimer.output); + + Status.Action.Id := TO_UINT(_progress); + END_IF; + IF ClearInspectionResultsTask.DoneReached() THEN + Status.Action.Id := UINT#101; + Status.Error.Id := UINT#0; + ELSIF ClearInspectionResultsTask.ErrorOccured() THEN + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; + ELSIF ClearInspectionResultsTask.AbortTriggered()THEN + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; + END_IF; + Messenger.ActivateOnCondition(ULINT#10000,ClearInspectionResultsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,ClearInspectionResultsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#102,ClearInspectionResultsTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF ClearInspectionResultsTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN + Status.Action.Id := UINT#102; + _progress := 0; + END_IF; + //**************************************** + //*************READ*********************** + TriggerTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy() OR SendUserDataTask.IsBusy(); + IF TriggerTask.StartTriggered() THEN + Status.Action.Id := UINT#110; + END_IF; + Messenger.ActivateOnCondition(ULINT#110,TriggerTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#111,TriggerTask.IsDone(), eAxoMessageCategory#Info); + IF TriggerTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 310; + END_IF; + + IF _progress = 310 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#510, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#510; + END_IF; + + AcquisitionControl.TriggerEnable := TRUE; + AcquisitionControl.Trigger := FALSE; + AcquisitionControl.ClearExposureComplete := AcquisitionStatus.ExposureComplete; + AcquisitionControl.SetOffline := FALSE; + + InspectionControl.EnableResultsBuffering := FALSE; + InspectionControl.AcknowledgeInspectionResults := InspectionStatus.ResultsValid; + InspectionControl.ExtendedUserDataSet := FALSE; + InspectionControl.ExecuteCommand := FALSE; + InspectionControl.ClearError := InspectionStatus.Error; + + CommandControl.Command:= UINT#0; + _progress := 311; + END_IF; + + IF _progress = 311 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#511, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#511; + END_IF; + + IF NOT AcquisitionStatus.ExposureComplete THEN + AcquisitionControl.ClearExposureComplete := FALSE; + THIS.CallTimers(FALSE); + _progress :=312; + END_IF; + END_IF; + + IF _progress = 312 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#512, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#512; + END_IF; + + IF NOT InspectionStatus.ResultsValid THEN + InspectionControl.AcknowledgeInspectionResults := FALSE; + THIS.CallTimers(FALSE); + _progress := 313; + END_IF; + END_IF; + + IF _progress = 313 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#513, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#513; + END_IF; + + IF NOT InspectionStatus.Error THEN + InspectionControl.ClearError := FALSE; + THIS.CallTimers(FALSE); + _progress := 314; + END_IF; + END_IF; + + IF _progress = 314 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#514, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#514; + END_IF; + + _inspectionCompleted := InspectionStatus.InspectionCompleted; + IF AcquisitionStatus.TriggerReady THEN + THIS.CallTimers(FALSE); + _progress := 315; + END_IF; + END_IF; + + IF _progress = 315 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#515, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#515; + END_IF; + + AcquisitionControl.Trigger := TRUE; + IF AcquisitionStatus.TriggerAcknowledge THEN + THIS.CallTimers(FALSE); + _progress := 316; + END_IF; + END_IF; + + IF _progress = 316 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#516, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#516; + END_IF; + + AcquisitionControl.Trigger := FALSE; + IF _inspectionCompleted <> InspectionStatus.InspectionCompleted THEN + THIS.CallTimers(FALSE); + _progress := 317; + END_IF; + END_IF; + + IF _progress = 317 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#517, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#517; + END_IF; + + IF InspectionStatus.ResultsValid THEN + THIS.CallTimers(FALSE); + _progress := 318; + END_IF; + END_IF; + + IF _progress = 318 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#518, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#518; + END_IF; + _offset := INT#4; + _fromFor := INT#0; + // Slot 11 + IF _ResultDataSize > _ResultDataSize_Slot_11 THEN + _toFor := TO_INT(_ResultDataSize_Slot_11) - INT#1; + ELSE + _toFor := TO_INT(_ResultDataSize) - INT#1; + END_IF; + FOR _index := _fromFor TO _toFor DO + InspectionResults.Data[_index] := _data_255[_index + _offset]; + END_FOR; + // Slot 12 + IF _ResultDataSize > _ResultDataSize_Slot_11 AND _ResultDataSize_Slot_12 > UINT#0 THEN + IF _ResultDataSize > _ResultDataSize_Slot_12 + _ResultDataSize_Slot_11 THEN + _toFor := TO_INT(_ResultDataSize_Slot_12) - INT#1; + ELSE + _toFor := TO_INT(_ResultDataSize - _ResultDataSize_Slot_11) - INT#1; + END_IF; + _fromFor := INT#0; + _offset := TO_INT(_ResultDataSize_Slot_11); + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData_Slot_12 ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1207, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1207; + RETURN; + END_IF; + FOR _index := _fromFor TO _toFor DO + InspectionResults.Data[_index + _offset] := _data_255[_index]; + END_FOR; + END_IF; + // Slot 13 + IF _ResultDataSize > (_ResultDataSize_Slot_11 + _ResultDataSize_Slot_12) AND _ResultDataSize_Slot_13 > UINT#0 THEN + IF _ResultDataSize > _ResultDataSize_Slot_13 + _ResultDataSize_Slot_12 + _ResultDataSize_Slot_11 THEN + _toFor := TO_INT(_ResultDataSize_Slot_13) - INT#1; + ELSE + _toFor := TO_INT(_ResultDataSize - _ResultDataSize_Slot_12 - _ResultDataSize_Slot_11) - INT#1; + END_IF; + _fromFor := INT#0; + _offset := TO_INT(_ResultDataSize_Slot_11 + _ResultDataSize_Slot_12); + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData_Slot_13 ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1209, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1209; + RETURN; + END_IF; + FOR _index := _fromFor TO _toFor DO + InspectionResults.Data[_index + _offset] := _data_255[_index]; + END_FOR; + END_IF; + // Slot 14 + IF _ResultDataSize > (_ResultDataSize_Slot_11 + _ResultDataSize_Slot_12 + _ResultDataSize_Slot_13) (*AND _ResultDataSize_Slot_14 > UINT#0*) THEN + // IF _ResultDataSize > _ResultDataSize_Slot_14 + _ResultDataSize_Slot_13 + _ResultDataSize_Slot_12 + _ResultDataSize_Slot_11 THEN + // _toFor := TO_INT(_ResultDataSize_Slot_13) - INT#1; + // ELSE + _toFor := TO_INT(_ResultDataSize - _ResultDataSize_Slot_13 - _ResultDataSize_Slot_12 - _ResultDataSize_Slot_11) - INT#1; + // END_IF; + _fromFor := INT#0; + _offset := TO_INT(_ResultDataSize_Slot_11 + _ResultDataSize_Slot_12 + _ResultDataSize_Slot_13); + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData_Slot_14 ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1211, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1211; + RETURN; + END_IF; + FOR _index := _fromFor TO _toFor DO + InspectionResults.Data[_index + _offset] := _data_255[_index]; + END_FOR; + END_IF; + // Cleanig the rest of the array + FOR _index := Config.ResultDataSize TO 999 DO + InspectionResults.Data[_index] := BYTE#0; + END_FOR; + InspectionResults.DataChanged := NOT InspectionResults.DataChanged ; + _progress := 319; + END_IF; + + IF _progress = 319 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#519, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#519; + END_IF; + + AcquisitionControl.Trigger := FALSE; + InspectionControl.EnableResultsBuffering := FALSE; + InspectionControl.AcknowledgeInspectionResults := TRUE; + TriggerTask.ThrowWhen(InspectionStatus.Error); + TriggerTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + + THIS.CallTimers(TRUE); + + TriggerTask.ThrowWhen(_errorTimer.output); + + Status.Action.Id := TO_UINT(_progress); + END_IF; + IF TriggerTask.DoneReached() THEN + Status.Action.Id := UINT#111; + Status.Error.Id := UINT#0; + ELSIF TriggerTask.ErrorOccured() THEN + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; + ELSIF TriggerTask.AbortTriggered() THEN + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; + END_IF; + Messenger.ActivateOnCondition(ULINT#10010,TriggerTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,TriggerTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#112,TriggerTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF TriggerTask.RestoreTriggered() AND _progress >= 310 AND _progress <= 319 THEN + Status.Action.Id := UINT#112; + _progress := 0; + END_IF; + //**************************************** + + //*************CHANGE JOB BY NAME********* + ChangeJobByNameTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy() OR SendUserDataTask.IsBusy(); + IF ChangeJobByNameTask.StartTriggered() THEN + Status.Action.Id := UINT#120; + END_IF; + Messenger.ActivateOnCondition(ULINT#120,ChangeJobByNameTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#121,ChangeJobByNameTask.IsDone(), eAxoMessageCategory#Info); + IF ChangeJobByNameTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + Status.CurrentJobName := ''; + Status.CurrentJobNumber := UINT#0; + THIS.CallTimers(FALSE); + _progress := 320; + END_IF; + + IF _progress = 320 THEN + THIS.CallTimers(FALSE); + IF _jobName='' THEN + TaskMessenger.Activate( UINT#520, eAxoMessageCategory#Error); + Status.Error.Id := UINT#520; + ChangeJobByNameTask.ThrowWhen(TRUE); + ELSE + _progress := 321; + END_IF; + END_IF; + + IF _progress = 321 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#521, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#521; + END_IF; + + InspectionControl.ExecuteCommand:=FALSE; + InspectionControl.ClearError:=TRUE; + AcquisitionControl.SetOffline := FALSE; + IF NOT InspectionStatus.CommandExecuting THEN + THIS.CallTimers(FALSE); + _progress := 322; + END_IF; + END_IF; + + IF _progress = 322 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#522, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#522; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + IF(NOT AcquisitionStatus.Online) THEN + THIS.CallTimers(FALSE); + _progress := 323; + END_IF; + END_IF; + + IF _progress = 323 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#523, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#523; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + InspectionControl.ExecuteCommand := FALSE; + InspectionControl.ClearError := InspectionStatus.Error; + IF NOT InspectionStatus.Error THEN + THIS.CallTimers(FALSE); + _progress := 324; + // _jobName := THIS.AppendSuffix(_jobName); + END_IF; + END_IF; + + IF _progress = 324 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#524, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#524; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + + Serialize(UINT#0, _jobName, _data_255); + FOR _index := INT#0 TO (LengthOf(_jobName) - INT#1) BY INT#1 DO + _userData.Data[_index] := _data_255[_index + INT#1]; + END_FOR; + FOR _index := LengthOf(_jobName) TO INT#1015 BY INT#1 DO + _userData.Data[_index] :=BYTE#0; + END_FOR; + + IF THIS.SetUserData(_userData,TO_UINT(LengthOf(_jobName))) THEN + THIS.CallTimers(FALSE); + _progress := 325; + END_IF; + END_IF; + + IF _progress = 325 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#525, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#525; + END_IF; + + // UserData.ToggleDataChangedFlag(); + + AcquisitionControl.SetOffline := TRUE; + InspectionControl.ExtendedUserDataSet := TRUE; + CommandControl.Command := UINT#16384;//16#4000; + InspectionControl.ExecuteCommand:=TRUE; + + IF(InspectionStatus.ExtendedUserDataSetAcknowledge OR(InspectionStatus.CommandComplete AND NOT InspectionStatus.CommandFailed)) THEN + THIS.CallTimers(FALSE); + _progress := 326; + END_IF; + END_IF; + + IF _progress = 326 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#526, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#526; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + InspectionControl.ExtendedUserDataSet := FALSE; + CommandControl.Command := UINT#16384;//16#4000; + InspectionControl.ExecuteCommand:=TRUE; + + IF(NOT InspectionStatus.ExtendedUserDataSetAcknowledge) THEN + THIS.CallTimers(FALSE); + _progress := 327; + END_IF; + END_IF; + + IF _progress = 327 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#527, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#527; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + CommandControl.Command := UINT#16384;//16#4000; + InspectionControl.ExecuteCommand:=TRUE; + + IF(InspectionStatus.CommandComplete AND NOT InspectionStatus.CommandFailed) THEN + THIS.CallTimers(FALSE); + _progress := 328; + ELSIF(InspectionStatus.CommandComplete AND InspectionStatus.CommandFailed AND NOT InspectionStatus.CommandExecuting) THEN + _progress := 339; + END_IF; + END_IF; + + IF _progress = 328 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#528, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#528; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + CommandControl.Command := UINT#0; + InspectionControl.ExecuteCommand:=FALSE; + IF(NOT InspectionStatus.CommandComplete) THEN + THIS.CallTimers(FALSE); + _progress := 329; + END_IF; + END_IF; + + IF _progress = 329 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#529, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#529; + END_IF; + + AcquisitionControl.SetOffline := FALSE; + + IF(AcquisitionStatus.Online) THEN + THIS.CallTimers(FALSE); + _progress := 330; + END_IF; + END_IF; + + IF _progress = 330 THEN + Status.CurrentJobName := _jobName; + InspectionControl.ExecuteCommand := FALSE; + AcquisitionControl.SetOffline := FALSE; + InspectionControl.ClearError := FALSE; + CommandControl.Command := UINT#0; + ChangeJobByNameTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + IF _progress = 339 THEN + InspectionControl.ExecuteCommand := FALSE; + AcquisitionControl.SetOffline := FALSE; + CommandControl.Command := UINT#0; + ChangeJobByNameTask.ThrowWhen(TRUE); + END_IF; + + THIS.CallTimers(TRUE); + ChangeJobByNameTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + END_IF; + IF ChangeJobByNameTask.DoneReached() THEN + Status.Action.Id := UINT#121; + Status.Error.Id := UINT#0; + ELSIF ChangeJobByNameTask.ErrorOccured() THEN + Status.Action.Id := UINT#10020; + Status.Error.Id := UINT#10020; + ELSIF ChangeJobByNameTask.AbortTriggered() THEN + Status.Action.Id := UINT#10021; + Status.Error.Id := UINT#10021; + END_IF; + Messenger.ActivateOnCondition(ULINT#10020,ChangeJobByNameTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10021,ChangeJobByNameTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#122,ChangeJobByNameTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF ChangeJobByNameTask.RestoreTriggered() AND _progress >= 320 AND _progress <= 339 THEN + Status.Action.Id := UINT#122; + _progress := 0; + END_IF; + //**************************************** + + //*************CHANGE JOB BY NUMBER******* + ChangeJobByNumberTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR SoftEventTask.IsBusy() OR SendUserDataTask.IsBusy(); + IF ChangeJobByNumberTask.StartTriggered() THEN + Status.Action.Id := UINT#140; + END_IF; + Messenger.ActivateOnCondition(ULINT#140,ChangeJobByNumberTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#141,ChangeJobByNumberTask.IsDone(), eAxoMessageCategory#Info); + IF ChangeJobByNumberTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + Status.CurrentJobName := ''; + Status.CurrentJobNumber := UINT#0; + THIS.CallTimers(FALSE); + _progress := 340; + END_IF; + + IF _progress = 340 THEN + THIS.CallTimers(FALSE); + + IF _jobNumber > Config.MaxJobNumber THEN + TaskMessenger.Activate( UINT#540, eAxoMessageCategory#Error); + Status.Error.Id := UINT#540; + ChangeJobByNumberTask.ThrowWhen(TRUE); + ELSE + _progress := 341; + END_IF; + END_IF; + + IF _progress = 341 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#541, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#541; + END_IF; + + InspectionControl.ExecuteCommand:=FALSE; + InspectionControl.ClearError:=FALSE; + AcquisitionControl.SetOffline := FALSE; + IF NOT InspectionStatus.CommandExecuting THEN + THIS.CallTimers(FALSE); + _progress := 342; + END_IF; + END_IF; + + IF _progress = 342 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#542, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#542; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + IF(NOT AcquisitionStatus.Online) THEN + THIS.CallTimers(FALSE); + _progress := 343; + END_IF; + END_IF; + + IF _progress = 343 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#543, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#543; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + InspectionControl.ExecuteCommand := FALSE; + InspectionControl.ClearError := InspectionStatus.Error; + IF NOT InspectionStatus.Error THEN + THIS.CallTimers(FALSE); + _progress := 344; + END_IF; + END_IF; + + IF _progress = 344 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#544, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#544; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + CommandControl.Command := _jobNumber; + InspectionControl.ExecuteCommand:=TRUE; + + IF(InspectionStatus.CommandComplete AND NOT InspectionStatus.CommandFailed) THEN + THIS.CallTimers(FALSE); + _progress := 345; + ELSIF(InspectionStatus.CommandComplete AND InspectionStatus.CommandFailed AND NOT InspectionStatus.CommandExecuting) THEN + _progress := 349; + END_IF; + END_IF; + + IF _progress = 345 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#545, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#545; + END_IF; + + AcquisitionControl.SetOffline := TRUE; + CommandControl.Command := UINT#0; + InspectionControl.ExecuteCommand:=FALSE; + IF(NOT InspectionStatus.CommandComplete) THEN + THIS.CallTimers(FALSE); + _progress := 346; + END_IF; + END_IF; + + IF _progress = 346 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#546, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#546; + END_IF; + + AcquisitionControl.SetOffline := FALSE; + IF(AcquisitionStatus.Online) THEN + THIS.CallTimers(FALSE); + _progress := 347; + END_IF; + END_IF; + + IF _progress = 347 THEN + Status.CurrentJobNumber := _jobNumber; + InspectionControl.ExecuteCommand := FALSE; + AcquisitionControl.SetOffline := FALSE; + InspectionControl.ClearError := FALSE; + CommandControl.Command := UINT#0; + ChangeJobByNumberTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + IF _progress = 349 THEN + InspectionControl.ExecuteCommand := FALSE; + AcquisitionControl.SetOffline := FALSE; + CommandControl.Command := UINT#0; + ChangeJobByNumberTask.ThrowWhen(TRUE); + END_IF; + + THIS.CallTimers(TRUE); + ChangeJobByNumberTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + END_IF; + IF ChangeJobByNumberTask.DoneReached() THEN + Status.Action.Id := UINT#141; + Status.Error.Id := UINT#0; + ELSIF ChangeJobByNumberTask.ErrorOccured() THEN + Status.Action.Id := UINT#10040; + Status.Error.Id := UINT#10040; + ELSIF ChangeJobByNumberTask.AbortTriggered() THEN + Status.Action.Id := UINT#10041; + Status.Error.Id := UINT#10041; + END_IF; + Messenger.ActivateOnCondition(ULINT#10040,ChangeJobByNumberTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10041,ChangeJobByNumberTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#142,ChangeJobByNumberTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF ChangeJobByNumberTask.RestoreTriggered() AND _progress >= 340 AND _progress <= 349 THEN + Status.Action.Id := UINT#142; + _progress := 0; + END_IF; + //**************************************** + + //*************Soft event***************** + SoftEventTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SendUserDataTask.IsBusy(); + IF SoftEventTask.StartTriggered() THEN + Status.Action.Id := UINT#150; + END_IF; + Messenger.ActivateOnCondition(ULINT#150,SoftEventTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#151,SoftEventTask.IsDone(), eAxoMessageCategory#Info); + IF SoftEventTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 350; + END_IF; + + IF _progress = 350 THEN + THIS.CallTimers(FALSE); + IF _softEventNumber > UINT#7 THEN + TaskMessenger.Activate( UINT#550, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#550; + SoftEventTask.ThrowWhen(TRUE); + ELSE + _progress := 351; + END_IF; + END_IF; + + IF _progress = 351 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#551, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#551; + END_IF; + _progress := 352; + END_IF; + + IF _progress = 352 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#552, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#552; + END_IF; + + SoftEventControl.TriggerSoftEvent.Data[_softEventNumber] := TRUE; + SoftEventControl.TriggerSoftEvent.ToggleDataChangedFlag(); + IF SoftEventStatus.TriggerSoftEventAcknowledge.Data[_softEventNumber] THEN + SoftEventStatus.TriggerSoftEventAcknowledge.ToggleDataChangedFlag(); + THIS.CallTimers(FALSE); + _progress := 353; + END_IF; + END_IF; + + IF _progress = 353 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#553, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#553; + END_IF; + + SoftEventControl.TriggerSoftEvent.Data[_softEventNumber] := FALSE; + SoftEventControl.TriggerSoftEvent.ToggleDataChangedFlag(); + IF NOT SoftEventStatus.TriggerSoftEventAcknowledge.Data[_softEventNumber] THEN + SoftEventStatus.TriggerSoftEventAcknowledge.ToggleDataChangedFlag(); + THIS.CallTimers(FALSE); + _progress := 354; + END_IF; + END_IF; + + IF _progress = 354 THEN + SoftEventTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + THIS.CallTimers(TRUE); + SoftEventTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + END_IF; + IF SoftEventTask.DoneReached() THEN + Status.Action.Id := UINT#151; + Status.Error.Id := UINT#0; + ELSIF SoftEventTask.ErrorOccured() THEN + Status.Action.Id := UINT#10050; + Status.Error.Id := UINT#10050; + ELSIF SoftEventTask.AbortTriggered() THEN + Status.Action.Id := UINT#10051; + Status.Error.Id := UINT#10051; + END_IF; + Messenger.ActivateOnCondition(ULINT#10050,SoftEventTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10051,SoftEventTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#152,SoftEventTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF SoftEventTask.RestoreTriggered() AND _progress >= 350 AND _progress <= 359 THEN + Status.Action.Id := UINT#152; + _progress := 0; + END_IF; + //****************************************** + + //*************SendUserData***************** + SendUserDataTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy(); + IF SendUserDataTask.StartTriggered() THEN + Status.Action.Id := UINT#160; + END_IF; + Messenger.ActivateOnCondition(ULINT#160,SendUserDataTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#161,SendUserDataTask.IsDone(), eAxoMessageCategory#Info); + IF SendUserDataTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 360; + END_IF; + + IF _progress = 360 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#560, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#560; + END_IF; + IF THIS.SetUserData(_userData, _userDataLength) THEN + THIS.CallTimers(FALSE); + _progress := 361; + END_IF; + END_IF; + + IF _progress = 361 THEN + SendUserDataTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + THIS.CallTimers(TRUE); + SendUserDataTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + END_IF; + IF SendUserDataTask.DoneReached() THEN + Status.Action.Id := UINT#161; + Status.Error.Id := UINT#0; + ELSIF SendUserDataTask.ErrorOccured() THEN + Status.Action.Id := UINT#10060; + Status.Error.Id := UINT#10060; + ELSIF SoftEventTask.AbortTriggered() THEN + Status.Action.Id := UINT#10061; + Status.Error.Id := UINT#10061; + END_IF; + Messenger.ActivateOnCondition(ULINT#10060,SendUserDataTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10061,SendUserDataTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#162,SendUserDataTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF SendUserDataTask.RestoreTriggered() AND _progress >= 360 AND _progress <= 369 THEN + Status.Action.Id := UINT#162; + _progress := 0; + END_IF; + //****************************************** + + //***********Update outputs **************** + _data_1[0].%X0 := AcquisitionControl.TriggerEnable; + _data_1[0].%X1 := AcquisitionControl.Trigger; + _data_1[0].%X2 := AcquisitionControl.ClearExposureComplete; + _data_1[0].%X7 := AcquisitionControl.SetOffline; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdAcquisitionControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; + RETURN; + END_IF; + + _data_1[0].%X0 := InspectionControl.EnableResultsBuffering; + _data_1[0].%X1 := InspectionControl.AcknowledgeInspectionResults; + _data_1[0].%X2 := InspectionControl.ExtendedUserDataSet; + _data_1[0].%X3 := InspectionControl.ExecuteCommand; + _data_1[0].%X7 := InspectionControl.ClearError; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdInspectionControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1232, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1232; + RETURN; + END_IF; + + _data_2[0] := CommandControl.Command.%B1; + _data_2[1] := CommandControl.Command.%B0; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdCommandControl,_data_2); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1233, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1233; + RETURN; + END_IF; + + _data_1[0].%X0 := SoftEventControl.TriggerSoftEvent.Data[0]; + _data_1[0].%X1 := SoftEventControl.TriggerSoftEvent.Data[1]; + _data_1[0].%X2 := SoftEventControl.TriggerSoftEvent.Data[2]; + _data_1[0].%X3 := SoftEventControl.TriggerSoftEvent.Data[3]; + _data_1[0].%X4 := SoftEventControl.TriggerSoftEvent.Data[4]; + _data_1[0].%X5 := SoftEventControl.TriggerSoftEvent.Data[5]; + _data_1[0].%X6 := SoftEventControl.TriggerSoftEvent.Data[6]; + _data_1[0].%X7 := SoftEventControl.TriggerSoftEvent.Data[7]; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdSoftEventControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1234, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1234; + RETURN; + END_IF; + + IF _hwIdUserDataSlot_7 <> WORD#0 THEN + _invalidDataSize := NOT ( _UserDataSize_Slot_7 = UINT#16 OR + _UserDataSize_Slot_7 = UINT#32 OR + _UserDataSize_Slot_7 = UINT#64 OR + _UserDataSize_Slot_7 = UINT#128 OR + _UserDataSize_Slot_7 = UINT#254 ); + IF _invalidDataSize THEN + Messenger.Activate(UINT#1235, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1235; + RETURN; + END_IF; + IF (UserData.DataChanged <> _UserDataChanged) THEN + IF _UserDataSize_Slot_7 = UINT#16 THEN + FOR _index := 0 TO 15 DO + _data_16[_index] := UserData.Data[_index]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_7 ,_data_16); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1236, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1236; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_7 = UINT#32 THEN + FOR _index := 0 TO 31 DO + _data_32[_index] := UserData.Data[_index]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_7 ,_data_32); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1237, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1237; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_7 = UINT#64 THEN + FOR _index := 0 TO 63 DO + _data_64[_index] := UserData.Data[_index]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_7 ,_data_64); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1238, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1238; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_7 = UINT#128 THEN + FOR _index := 0 TO 127 DO + _data_128[_index] := UserData.Data[_index]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_7 ,_data_128); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1239, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1239; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_7 = UINT#254 THEN + FOR _index := 0 TO 253 DO + _data_254[_index] := UserData.Data[_index]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_7 ,_data_254); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1240, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1240; + RETURN; + END_IF; + END_IF; + END_IF; + END_IF; + + IF _hwIdUserDataSlot_8 <> WORD#0 THEN + _invalidDataSize := NOT ( _UserDataSize_Slot_8 = UINT#16 OR + _UserDataSize_Slot_8 = UINT#32 OR + _UserDataSize_Slot_8 = UINT#64 OR + _UserDataSize_Slot_8 = UINT#128 OR + _UserDataSize_Slot_8 = UINT#254 ); + IF _invalidDataSize THEN + Messenger.Activate(UINT#1241, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1241; + RETURN; + END_IF; + IF (UserData.DataChanged <> _UserDataChanged) THEN + _offset := TO_INT(_UserDataSize_Slot_7); + IF _UserDataSize_Slot_8 = UINT#16 THEN + FOR _index := 0 TO 15 DO + _data_16[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_8 ,_data_16); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1242, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1242; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_8 = UINT#32 THEN + FOR _index := 0 TO 31 DO + _data_32[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_8 ,_data_32); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1243, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1243; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_8 = UINT#64 THEN + FOR _index := 0 TO 63 DO + _data_64[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_8 ,_data_64); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1244, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1244; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_8 = UINT#128 THEN + FOR _index := 0 TO 127 DO + _data_128[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_8 ,_data_128); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1245, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1245; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_8 = UINT#254 THEN + FOR _index := 0 TO 253 DO + _data_254[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_8 ,_data_254); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1246, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1246; + RETURN; + END_IF; + END_IF; + END_IF; + END_IF; + + IF _hwIdUserDataSlot_9 <> WORD#0 THEN + _invalidDataSize := NOT ( _UserDataSize_Slot_9 = UINT#16 OR + _UserDataSize_Slot_9 = UINT#32 OR + _UserDataSize_Slot_9 = UINT#64 OR + _UserDataSize_Slot_9 = UINT#128 OR + _UserDataSize_Slot_9 = UINT#254 ); + IF _invalidDataSize THEN + Messenger.Activate(UINT#1247, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1247; + RETURN; + END_IF; + IF (UserData.DataChanged <> _UserDataChanged) THEN + _offset := TO_INT(_UserDataSize_Slot_7)+TO_INT(_UserDataSize_Slot_8); + IF _UserDataSize_Slot_9 = UINT#16 THEN + FOR _index := 0 TO 15 DO + _data_16[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_9 ,_data_16); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1248, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1248; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_9 = UINT#32 THEN + FOR _index := 0 TO 31 DO + _data_32[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_9 ,_data_32); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1249, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1249; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_9 = UINT#64 THEN + FOR _index := 0 TO 63 DO + _data_64[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_9 ,_data_64); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1250, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1250; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_9 = UINT#128 THEN + FOR _index := 0 TO 127 DO + _data_128[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_9 ,_data_128); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1251, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1251; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_9 = UINT#254 THEN + FOR _index := 0 TO 253 DO + _data_254[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_9 ,_data_254); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1252, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1252; + RETURN; + END_IF; + END_IF; + END_IF; + END_IF; + + IF _hwIdUserDataSlot_10 <> WORD#0 THEN + _invalidDataSize := NOT ( _UserDataSize_Slot_10 = UINT#16 OR + _UserDataSize_Slot_10 = UINT#32 OR + _UserDataSize_Slot_10 = UINT#64 OR + _UserDataSize_Slot_10 = UINT#128 OR + _UserDataSize_Slot_10 = UINT#254 ); + IF _invalidDataSize THEN + Messenger.Activate(UINT#1253, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1253; + RETURN; + END_IF; + IF (UserData.DataChanged <> _UserDataChanged) THEN + _offset := TO_INT(_UserDataSize_Slot_7)+TO_INT(_UserDataSize_Slot_8)+TO_INT(_UserDataSize_Slot_9); + IF _UserDataSize_Slot_10 = UINT#16 THEN + FOR _index := 0 TO 15 DO + _data_16[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_10 ,_data_16); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1254, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1254; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_10 = UINT#32 THEN + FOR _index := 0 TO 31 DO + _data_32[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_10 ,_data_32); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1255, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1255; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_10 = UINT#64 THEN + FOR _index := 0 TO 63 DO + _data_64[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_10 ,_data_64); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1256, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1256; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_10 = UINT#128 THEN + FOR _index := 0 TO 127 DO + _data_128[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_10 ,_data_128); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1257, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1257; + RETURN; + END_IF; + ELSIF _UserDataSize_Slot_10 = UINT#254 THEN + FOR _index := 0 TO 253 DO + _data_254[_index] := UserData.Data[_index+_offset]; + END_FOR; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserDataSlot_10 ,_data_254); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1258, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1258; + RETURN; + END_IF; + END_IF; + END_IF; + END_IF; + + _UserDataChanged := UserData.DataChanged; //TODO check the functionality in case of multiple user data slots + Config.UserDataSize := _UserDataSize; + END_METHOD + + /// + /// Clears the inspection results. + /// + METHOD PUBLIC ClearInspectionResults : IAxoTaskState + ClearInspectionResults := ClearInspectionResultsTask.Invoke(THIS);; + END_METHOD + + /// + /// Triggers the reading sequence and waits for results. + /// + METHOD PUBLIC Trigger : IAxoTaskState + Trigger := TriggerTask.Invoke(THIS); + END_METHOD + + /// + /// Changes the sensor job using job number. + /// + METHOD PUBLIC ChangeJob : IAxoTaskState + VAR_INPUT + Job : UINT; + END_VAR + _jobNumber := Job; + ChangeJob := ChangeJobByNumberTask.Invoke(THIS); + END_METHOD + + /// + /// Changes the sensor job using job name. + /// + METHOD PUBLIC ChangeJob : IAxoTaskState + VAR_INPUT + Job : STRING; + END_VAR + _jobName := Job; + ChangeJob := ChangeJobByNameTask.Invoke(THIS); + END_METHOD + + /// + /// Triggers the soft event. + /// + METHOD PUBLIC SoftEvent : IAxoTaskState + VAR_INPUT + EventNumber : UINT; + END_VAR + _softEventNumber := EventNumber; + SoftEvent := SoftEventTask.Invoke(THIS); + END_METHOD + + /// + /// Sends the user data from PLC to device. + /// + METHOD PUBLIC SendUserData : IAxoTaskState + VAR_IN_OUT + Data : AxoInsight_UserData; + END_VAR + VAR_INPUT + Length : UINT; + END_VAR + + _userDataLength := Length; + _userData := Data; + SendUserData := SendUserDataTask.Invoke(THIS); + END_METHOD + + METHOD PRIVATE CallTimers + VAR_INPUT + signal : BOOL; + END_VAR + + _infoTimer.OnDelay(THIS, signal , Config.InfoTime); + _errorTimer.OnDelay(THIS, signal , Config.ErrorTime ); + END_METHOD + + METHOD PRIVATE AppendSuffix :STRING + VAR_INPUT + jobName : STRING; + END_VAR + VAR + position : INT; + END_VAR + position := LengthOf(jobName) - 4; + IF EndOf(jobName, 4) <> '.job' THEN + AppendSuffix := Concat(jobName,'.job'); + ELSE + AppendSuffix := jobName; + END_IF; + END_METHOD + + METHOD PRIVATE SetUserData : BOOL + VAR_IN_OUT + Data : AxoInsight_UserData; + END_VAR + VAR_INPUT + Length : UINT; + END_VAR + VAR + _index : UINT; + _maxIndex : UINT; + END_VAR + + SetUserData := FALSE; + + _maxIndex := UINT#1015; + + IF (Length) >= Config.UserDataSize THEN + Messenger.Activate(UINT#716, eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + + IF (Length) > _maxIndex THEN + Messenger.Activate(UINT#717, eAxoMessageCategory#Error); + Status.Error.Id := UINT#717; + RETURN; + END_IF; + + FOR _index := UINT#0 TO Length BY UINT#1 DO + UserData.Data[( _index)] := Data.Data[_index]; + END_FOR; + + FOR _index := Length TO _maxIndex BY UINT#1 DO + UserData.Data[_index] := BYTE#0; + END_FOR; + UserData.ToggleDataChangedFlag(); + + SetUserData := TRUE; + END_METHOD + + /// + /// Custom logic for the manual control. + /// + METHOD PROTECTED OVERRIDE ManualControl + _jobName := RequiredJobName; + _jobNumber := RequiredJobNumber; + _softEventNumber := RequiredSoftEventNumber; + _userDataLength := UserDataLength; + _userData := UserDataToSent; + END_METHOD + + /// + /// Restores this instance . + /// + METHOD PUBLIC OVERRIDE Restore + VAR + _index : INT; + END_VAR + _progress := 0; + Status.Action.Id := UINT#0; + Status.Error.Id := UINT#0; + Status.CurrentJobName := ''; + Messenger.Restore(); + TaskMessenger.Restore(); + + + ClearInspectionResultsTask.Restore(); + TriggerTask.Restore(); + ChangeJobByNameTask.Restore(); + ChangeJobByNumberTask.Restore(); + SoftEventTask.Restore(); + SendUserDataTask.Restore(); + HardwareDiagnosticsTask.Restore(); + + FOR _index := 0 TO 1015 DO + UserDataToSent.Data[_index] := BYTE#0; + END_FOR; + UserDataLength := UINT#0; + + RequiredJobName := ''; + RequiredJobNumber := UINT#0; + + Results.InspectionID := UINT#0; + Results.ResultCode := UINT#0; + + FOR _index := 0 TO 249 DO + InspectionResults.Data[_index] := BYTE#0; + END_FOR; + InspectionResults.ToggleDataChangedFlag(); + + AcquisitionControl.TriggerEnable := FALSE; + AcquisitionControl.Trigger := FALSE; + AcquisitionControl.ClearExposureComplete := AcquisitionStatus.ExposureComplete; + AcquisitionControl.SetOffline := FALSE; + + + InspectionControl.EnableResultsBuffering := FALSE; + InspectionControl.AcknowledgeInspectionResults := FALSE; + InspectionControl.ExtendedUserDataSet := FALSE; + InspectionControl.ExecuteCommand := FALSE; + InspectionControl.ClearError := InspectionStatus.Error; + + CommandControl.Command := UINT#0; + + SoftEventControl.TriggerSoftEvent.Data[0] := FALSE; + SoftEventControl.TriggerSoftEvent.Data[1] := FALSE; + SoftEventControl.TriggerSoftEvent.Data[2] := FALSE; + SoftEventControl.TriggerSoftEvent.Data[3] := FALSE; + SoftEventControl.TriggerSoftEvent.Data[4] := FALSE; + SoftEventControl.TriggerSoftEvent.Data[5] := FALSE; + SoftEventControl.TriggerSoftEvent.Data[6] := FALSE; + SoftEventControl.TriggerSoftEvent.Data[7] := FALSE; + + FOR _index := 0 TO 253 DO + UserData.Data[_index] := BYTE#0; + END_FOR; + UserData.ToggleDataChangedFlag(); + + IF NOT AcquisitionStatus.ExposureComplete AND NOT InspectionStatus.Error THEN + Status.Action.Id := UINT#50; + RestoreTask.DoneWhen(TRUE); + END_IF; + END_METHOD + + END_CLASS +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoBoolArray8.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoBoolArray8.st new file mode 100644 index 000000000..b6ef7dba0 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoBoolArray8.st @@ -0,0 +1,9 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + {S7.extern=ReadWrite} + CLASS PUBLIC AxoBoolArray8 EXTENDS AXOpen.Core.AxoBoolArray + VAR PUBLIC + Data : ARRAY [0..7] OF BOOL; + END_VAR + END_CLASS +END_NAMESPACE + diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_AcquisitionControl.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_AcquisitionControl.st new file mode 100644 index 000000000..4748ebfb3 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_AcquisitionControl.st @@ -0,0 +1,17 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_AcquisitionControl : + STRUCT + {#ix-set:AttributeName = "<#Trigger enable#>"} + TriggerEnable : BOOL; + {#ix-set:AttributeName = "<#Trigger#>"} + Trigger : BOOL; + {#ix-set:AttributeName = "<#Clear exposure complete#>"} + ClearExposureComplete : BOOL; + {#ix-set:AttributeName = "<#Set offline#>"} + SetOffline : BOOL; + END_STRUCT; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_AcquisitionStatus.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_AcquisitionStatus.st new file mode 100644 index 000000000..b064f312e --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_AcquisitionStatus.st @@ -0,0 +1,29 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_AcquisitionStatus : + STRUCT + {#ix-set:AttributeName = "<#Trigger ready#>"} + TriggerReady : BOOL; + {#ix-set:AttributeName = "<#Trigger acknowledge#>"} + TriggerAcknowledge : BOOL; + {#ix-set:AttributeName = "<#Exposure complete#>"} + ExposureComplete : BOOL; + {#ix-set:AttributeName = "<#Missed acquisition#>"} + MissedAcquisition : BOOL; + {#ix-set:AttributeName = "<#Offline reason 0#>"} + OfflineReason0 : BOOL; + {#ix-set:AttributeName = "<#Offline reason 1#>"} + OfflineReason1 : BOOL; + {#ix-set:AttributeName = "<#Offline reason 2#>"} + OfflineReason2 : BOOL; + {#ix-set:AttributeName = "<#Online#>"} + Online : BOOL; + {#ix-set:AttributeName = "<#Acquisition ID#>"} + AcquisitionID : UINT; + END_STRUCT; + END_TYPE +END_NAMESPACE + + diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_CommandControl.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_CommandControl.st new file mode 100644 index 000000000..2d8ef5895 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_CommandControl.st @@ -0,0 +1,11 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_CommandControl : + STRUCT + {#ix-set:AttributeName = "<#Command#>"} + Command : UINT; + END_STRUCT; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_CommandStatus.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_CommandStatus.st new file mode 100644 index 000000000..00b6fd97f --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_CommandStatus.st @@ -0,0 +1,11 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_CommandStatus : + STRUCT + {#ix-set:AttributeName = "<#Current job ID#>"} + CurrentJobID : UINT; + END_STRUCT; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_Config.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_Config.st new file mode 100644 index 000000000..e4816f2e8 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_Config.st @@ -0,0 +1,19 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_Config : + STRUCT + {#ix-set:AttributeName = "<#Info time#>"} + InfoTime : LTIME := LT#10S; + {#ix-set:AttributeName = "<#Error time#>"} + ErrorTime : LTIME := LT#50S; + {#ix-set:AttributeName = "<#Max job number#>"} + MaxJobNumber : UINT := UINT#999; + {#ix-set:AttributeName = "<#Result data size#>"} + ResultDataSize : UINT; + {#ix-set:AttributeName = "<#User data size#>"} + UserDataSize : UINT; + END_STRUCT; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_InspectionControl.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_InspectionControl.st new file mode 100644 index 000000000..32f3937cc --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_InspectionControl.st @@ -0,0 +1,19 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_InspectionControl : + STRUCT + {#ix-set:AttributeName = "<#Enable results buffering#>"} + EnableResultsBuffering : BOOL; + {#ix-set:AttributeName = "<#Acknowledge inspection results#>"} + AcknowledgeInspectionResults : BOOL; + {#ix-set:AttributeName = "<#Extended user data set#>"} + ExtendedUserDataSet : BOOL; + {#ix-set:AttributeName = "<#Execute command#>"} + ExecuteCommand : BOOL; + {#ix-set:AttributeName = "<#Clear error#>"} + ClearError : BOOL; + END_STRUCT; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_InspectionStatus.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_InspectionStatus.st new file mode 100644 index 000000000..bd416ba6d --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_InspectionStatus.st @@ -0,0 +1,33 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_InspectionStatus : + STRUCT + {#ix-set:AttributeName = "<#System busy#>"} + SystemBusy : BOOL; + {#ix-set:AttributeName = "<#Inspection completed#>"} + InspectionCompleted : BOOL; + {#ix-set:AttributeName = "<#Results buffer overrun#>"} + ResultsBufferOverrun : BOOL; + {#ix-set:AttributeName = "<#Results valid#>"} + ResultsValid : BOOL; + {#ix-set:AttributeName = "<#Command executing#>"} + CommandExecuting : BOOL; + {#ix-set:AttributeName = "<#Command complete#>"} + CommandComplete : BOOL; + {#ix-set:AttributeName = "<#Command failed#>"} + CommandFailed : BOOL; + {#ix-set:AttributeName = "<#Extended user data set acknowledge#>"} + ExtendedUserDataSetAcknowledge : BOOL; + {#ix-set:AttributeName = "<#Overall job pass fail#>"} + OverallJobPassFail : BOOL; + {#ix-set:AttributeName = "<#Test run ready#>"} + TestRunReady : BOOL; + {#ix-set:AttributeName = "<#Error#>"} + Error : BOOL; + {#ix-set:AttributeName = "<#Error code#>"} + ErrorCode : UINT; + END_STRUCT; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_ResultData.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_ResultData.st new file mode 100644 index 000000000..e1f5dcc3f --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_ResultData.st @@ -0,0 +1,8 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + {S7.extern=ReadWrite} + CLASS PUBLIC AxoInsight_ResultData EXTENDS AXOpen.Core.AxoByteArray + VAR PUBLIC + Data : ARRAY [0..999] OF BYTE; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_Results.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_Results.st new file mode 100644 index 000000000..835cd3b4c --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_Results.st @@ -0,0 +1,13 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_Results : + STRUCT + {#ix-set:AttributeName = "<#Inspection ID#>"} + InspectionID : UINT; + {#ix-set:AttributeName = "<#Result code#>"} + ResultCode : UINT; + END_STRUCT; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_SoftEventControl.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_SoftEventControl.st new file mode 100644 index 000000000..b0936e99e --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_SoftEventControl.st @@ -0,0 +1,11 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_SoftEventControl : + STRUCT + {#ix-set:AttributeName = "<#Trigger soft-event#>"} + TriggerSoftEvent : AxoBoolArray8; + END_STRUCT; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_SoftEventStatus.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_SoftEventStatus.st new file mode 100644 index 000000000..0a241a067 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_SoftEventStatus.st @@ -0,0 +1,11 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE + {#ix-attr:[Container(Layout.Wrap)]} + {S7.extern=ReadWrite} + AxoInsight_SoftEventStatus : + STRUCT + {#ix-set:AttributeName = "<#Trigger soft-event acknowledge#>"} + TriggerSoftEventAcknowledge : AxoBoolArray8; + END_STRUCT; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_Status.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_Status.st new file mode 100644 index 000000000..a982fb68d --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_Status.st @@ -0,0 +1,14 @@ +USING AXOpen.Core; +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + {#ix-attr:[Container(Layout.Stack)]} + {S7.extern=ReadWrite} + CLASS AxoInsight_Status EXTENDS AXOpen.Components.Abstractions.AxoComponent_Status + VAR PUBLIC + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-set:AttributeName = "<#Current job name#>"} + CurrentJobName : STRING; + {#ix-set:AttributeName = "<#Current job number#>"} + CurrentJobNumber : UINT; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_UserData.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_UserData.st new file mode 100644 index 000000000..a2e76f7c3 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/AxoInsight_UserData.st @@ -0,0 +1,8 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + {S7.extern=ReadWrite} + CLASS PUBLIC AxoInsight_UserData EXTENDS AXOpen.Core.AxoByteArray + VAR PUBLIC + Data : ARRAY [0..1015] OF BYTE; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/eAxoInsight_ResultDataSize.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/eAxoInsight_ResultDataSize.st new file mode 100644 index 000000000..f5ac97616 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/eAxoInsight_ResultDataSize.st @@ -0,0 +1,13 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE PUBLIC + eAxoInsight_ResultDataSize : INT + ( + RESULT_DATA_SIZE_INVALID := 0, + RESULT_DATA_16B := 16, + RESULT_DATA_32B := 32, + RESULT_DATA_64B := 64, + RESULT_DATA_128B := 128, + RESULT_DATA_250B := 250 + ) := RESULT_DATA_64B; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/eAxoInsight_UserDataSize.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/eAxoInsight_UserDataSize.st new file mode 100644 index 000000000..81181fe77 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/TypeStructuresAndEnums/eAxoInsight_UserDataSize.st @@ -0,0 +1,13 @@ +NAMESPACE AXOpen.Components.Cognex.Vision.v_24_0_0 + TYPE PUBLIC + eAxoInsight_UserDataSize : INT + ( + USER_DATA_SIZE_INVALID := 0, + USER_DATA_16B := 16, + USER_DATA_32B := 32, + USER_DATA_64B := 64, + USER_DATA_128B := 128, + USER_DATA_254B := 254 + ) := USER_DATA_64B; + END_TYPE +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/AxoInsight.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/AxoInsight.st index 37e154561..22053bd0a 100644 --- a/src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/AxoInsight.st +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/AxoInsight.st @@ -1,47 +1,63 @@ +USING AXOpen.Components.Cognex.Vision.v_24_0_0; USING AXOpen.Messaging.Static; USING AXOpen.Messaging; USING AXOpen.Core; USING AXOpen.Components.Abstractions; USING System.Strings; USING System.Serialization; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 {#ix-attr:[Container(Layout.Wrap)]} {S7.extern=ReadWrite} CLASS PUBLIC AxoInsight EXTENDS AXOpen.Core.AxoComponent IMPLEMENTS AXOpen.Components.Abstractions.IAxoVisionSensor VAR PRIVATE - _ResultDataSize : eAxoInsight_ResultDataSize; - _UserDataSize : eAxoInsight_UserDataSize; - _hwID : WORD; - _hwIdAcquisitionControl : WORD; - _hwIdAcquisitionStatus : WORD; - _hwIdInspectionControl : WORD; - _hwIdInspectionStatus : WORD; - _hwIdCommandControl : WORD; - _hwIdSoftEventControl : WORD; - _hwIdResultData : WORD; - _hwIdUserData : WORD; - - _progress : INT := 0; - _infoTimer : AXOpen.Timers.OnDelayTimer; - _errorTimer : AXOpen.Timers.OnDelayTimer; - _jobName : STRING; - _inspectionCompleted : BOOL; - _data_in : ARRAY[0..254] OF BYTE; - _jobNumber : UINT; - _softEventNumber : UINT; - _UserDataChanged : BOOL; - + _UserDataSize : eAxoInsight_UserDataSize; + _ResultDataSize : eAxoInsight_ResultDataSize; + _hwID : WORD; + _hwIdAcquisitionControl : WORD; + _hwIdAcquisitionStatus : WORD; + _hwIdInspectionControl : WORD; + _hwIdInspectionStatus : WORD; + _hwIdCommandControl : WORD; + _hwIdSoftEventControl : WORD; + _hwIdUserData : WORD; + _hwIdResultData : WORD; + + _progress : INT := 0; + _infoTimer : AXOpen.Timers.OnDelayTimer; + _errorTimer : AXOpen.Timers.OnDelayTimer; + _jobName : STRING; + _inspectionCompleted : BOOL; + _data_255 : ARRAY[0..254] OF BYTE; + _jobNumber : UINT; + _softEventNumber : UINT; + _UserDataChanged : BOOL; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _startAddress : UDINT; + _bytesCount : UINT; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; + _userDataLength : UINT; + _userData : AxoInsight_UserData; END_VAR VAR PUBLIC //Header {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[ComponentHeader()]} - {#ix-set:AttributeName = "<#Read#>"} + {#ix-set:AttributeName = "<#Trigger#>"} TriggerTask : AXOpen.Core.AxoTask; {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[ComponentHeader()]} + {#ix-attr:[ReadOnly()]} + {#ix-set:DisplayFormat = "string"} {#ix-set:AttributeName = "<#Inspection results#>"} InspectionResults : AxoInsight_ResultData; @@ -63,7 +79,6 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 {#ix-attr:[ComponentDetails("Tasks")]} {#ix-set:AttributeName = "<#Change job by name#>"} ChangeJobByNameTask : AXOpen.Core.AxoTask; - {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-attr:[ComponentDetails("Tasks")]} {#ix-set:AttributeName = "<#Required job number#>"} @@ -72,6 +87,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 {#ix-set:AttributeName = "<#Change job by number#>"} ChangeJobByNumberTask : AXOpen.Core.AxoTask; + {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-attr:[ComponentDetails("Tasks")]} {#ix-set:AttributeName = "<#Required soft event number#>"} @@ -80,11 +96,26 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 {#ix-set:AttributeName = "<#Trigger soft event#>"} SoftEventTask : AXOpen.Core.AxoTask; + {#ix-attr:[Container(Layout.UniformGrid)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#User data to sent#>"} + UserDataToSent : AxoInsight_UserData; + {#ix-attr:[Container(Layout.UniformGrid)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#User data length#>"} + UserDataLength : UINT; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Send user data#>"} + SendUserDataTask : AXOpen.Core.AxoTask; + END_VAR VAR PUBLIC //Config {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ReadOnly()]} Config : AxoInsight_Config; END_VAR @@ -184,21 +215,10 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 METHOD PUBLIC Run VAR_INPUT parent : IAxoObject; - ResultDataSize : eAxoInsight_ResultDataSize; - UserDataSize : eAxoInsight_UserDataSize; hwID : WORD; - hwIdAcquisitionControl : WORD; - hwIdAcquisitionStatus : WORD; - hwIdInspectionControl : WORD; - hwIdInspectionStatus : WORD; - hwIdCommandControl : WORD; - hwIdSoftEventControl : WORD; - hwIdResultData : WORD; - hwIdUserData : WORD; END_VAR VAR _index : INT; - _returnValue : WORD; _invalidDataSize : BOOL; _data_1 : ARRAY[0..0] OF BYTE; _data_2 : ARRAY[0..1] OF BYTE; @@ -213,131 +233,494 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwIdAcquisitionControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702,hwIdAcquisitionStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#703,hwIdInspectionControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#704,hwIdInspectionStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#705,hwIdCommandControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#706,hwIdSoftEventControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#707,hwIdResultData = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#708,hwIdUserData = WORD#0, eAxoMessageCategory#ProgrammingError); - - IF parent = NULL THEN - Status.Error.Id := UINT#700; - RETURN; - ELSIF hwIdAcquisitionControl = WORD#0 THEN - Status.Error.Id := UINT#701; - RETURN; - ELSIF hwIdAcquisitionStatus = WORD#0 THEN - Status.Error.Id := UINT#702; - RETURN; - ELSIF hwIdInspectionControl = WORD#0 THEN - Status.Error.Id := UINT#703; - RETURN; - ELSIF hwIdInspectionStatus = WORD#0 THEN - Status.Error.Id := UINT#704; - RETURN; - ELSIF hwIdCommandControl = WORD#0 THEN - Status.Error.Id := UINT#705; - RETURN; - ELSIF hwIdSoftEventControl = WORD#0 THEN - Status.Error.Id := UINT#706; - RETURN; - ELSIF hwIdResultData = WORD#0 THEN - Status.Error.Id := UINT#707; - RETURN; - ELSIF hwIdUserData = WORD#0 THEN - Status.Error.Id := UINT#708; - RETURN; + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdAcquisitionControl := TO_WORD(_outHwid); + IF _hwIdAcquisitionControl = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdAcquisitionControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdAcquisitionStatus := TO_WORD(_outHwid); + IF _hwIdAcquisitionStatus = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdAcquisitionStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF (_inputsCount <> UINT#3 AND _inputsCount <> UINT#4) OR _outputsCount <> UINT#0 THEN // 3 for is2000, 4 for 2800 + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 3*****************// + _geoAddr.Slot := UINT#3; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdInspectionControl := TO_WORD(_outHwid); + IF _hwIdInspectionControl = WORD#0 THEN + Messenger.Activate(UINT#730,eAxoMessageCategory#Error); + Status.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#731,eAxoMessageCategory#Error); + Status.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#732,eAxoMessageCategory#Error); + Status.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#733,eAxoMessageCategory#Error); + Status.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#734,eAxoMessageCategory#Error); + Status.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#735,eAxoMessageCategory#Error); + Status.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdInspectionControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#736,eAxoMessageCategory#Error); + Status.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 4*****************// + _geoAddr.Slot := UINT#4; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdInspectionStatus := TO_WORD(_outHwid); + IF _hwIdInspectionStatus = WORD#0 THEN + Messenger.Activate(UINT#740,eAxoMessageCategory#Error); + Status.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#741,eAxoMessageCategory#Error); + Status.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#742,eAxoMessageCategory#Error); + Status.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#743,eAxoMessageCategory#Error); + Status.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#744,eAxoMessageCategory#Error); + Status.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#745,eAxoMessageCategory#Error); + Status.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdInspectionStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#4 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#746,eAxoMessageCategory#Error); + Status.Error.Id := UINT#746; + RETURN; + END_IF; + //******************Slot 5*****************// + _geoAddr.Slot := UINT#5; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdCommandControl := TO_WORD(_outHwid); + IF _hwIdCommandControl = WORD#0 THEN + Messenger.Activate(UINT#750,eAxoMessageCategory#Error); + Status.Error.Id := UINT#750; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#751,eAxoMessageCategory#Error); + Status.Error.Id := UINT#751; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#752,eAxoMessageCategory#Error); + Status.Error.Id := UINT#752; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#753,eAxoMessageCategory#Error); + Status.Error.Id := UINT#753; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#754,eAxoMessageCategory#Error); + Status.Error.Id := UINT#754; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#755,eAxoMessageCategory#Error); + Status.Error.Id := UINT#755; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdCommandControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF (_inputsCount <> UINT#2 AND _inputsCount <> UINT#4) OR _outputsCount <> UINT#2 THEN + Messenger.Activate(UINT#756,eAxoMessageCategory#Error); + Status.Error.Id := UINT#756; + RETURN; + END_IF; + //******************Slot 6*****************// + _geoAddr.Slot := UINT#6; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdSoftEventControl := TO_WORD(_outHwid); + IF _hwIdSoftEventControl = WORD#0 THEN + Messenger.Activate(UINT#760,eAxoMessageCategory#Error); + Status.Error.Id := UINT#760; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#761,eAxoMessageCategory#Error); + Status.Error.Id := UINT#761; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#762,eAxoMessageCategory#Error); + Status.Error.Id := UINT#762; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#763,eAxoMessageCategory#Error); + Status.Error.Id := UINT#763; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#764,eAxoMessageCategory#Error); + Status.Error.Id := UINT#764; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#765,eAxoMessageCategory#Error); + Status.Error.Id := UINT#765; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdSoftEventControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#766,eAxoMessageCategory#Error); + Status.Error.Id := UINT#766; + RETURN; + END_IF; + //******************Slot 7*****************// + _geoAddr.Slot := UINT#7; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUserData := TO_WORD(_outHwid); + IF _hwIdUserData = WORD#0 THEN + Messenger.Activate(UINT#770,eAxoMessageCategory#Error); + Status.Error.Id := UINT#770; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#771,eAxoMessageCategory#Error); + Status.Error.Id := UINT#771; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#772,eAxoMessageCategory#Error); + Status.Error.Id := UINT#772; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#773,eAxoMessageCategory#Error); + Status.Error.Id := UINT#773; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#774,eAxoMessageCategory#Error); + Status.Error.Id := UINT#774; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#775,eAxoMessageCategory#Error); + Status.Error.Id := UINT#775; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUserData , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#0 AND _outputsCount = UINT#16 THEN + _UserDataSize := eAxoInsight_UserDataSize#USER_DATA_16B; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#32 THEN + _UserDataSize := eAxoInsight_UserDataSize#USER_DATA_32B; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#64 THEN + _UserDataSize := eAxoInsight_UserDataSize#USER_DATA_64B; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#128 THEN + _UserDataSize := eAxoInsight_UserDataSize#USER_DATA_128B; + ELSIF _inputsCount = UINT#0 AND _outputsCount = UINT#254 THEN + _UserDataSize := eAxoInsight_UserDataSize#USER_DATA_254B; + ELSE + _UserDataSize := eAxoInsight_UserDataSize#USER_DATA_SIZE_INVALID; + Messenger.Activate(UINT#776,eAxoMessageCategory#Error); + Status.Error.Id := UINT#776; + END_IF; + //******************Slot 8*****************// + _geoAddr.Slot := UINT#8; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdResultData := TO_WORD(_outHwid); + IF _hwIdResultData = WORD#0 THEN + Messenger.Activate(UINT#780,eAxoMessageCategory#Error); + Status.Error.Id := UINT#780; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#781,eAxoMessageCategory#Error); + Status.Error.Id := UINT#781; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#782,eAxoMessageCategory#Error); + Status.Error.Id := UINT#782; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#783,eAxoMessageCategory#Error); + Status.Error.Id := UINT#783; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#784,eAxoMessageCategory#Error); + Status.Error.Id := UINT#784; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#785,eAxoMessageCategory#Error); + Status.Error.Id := UINT#785; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdResultData , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount = UINT#0 AND _inputsCount = UINT#20 THEN + _ResultDataSize := eAxoInsight_ResultDataSize#RESULT_DATA_16B; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#36 THEN + _ResultDataSize := eAxoInsight_ResultDataSize#RESULT_DATA_32B; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#68 THEN + _ResultDataSize := eAxoInsight_ResultDataSize#RESULT_DATA_64B; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#132 THEN + _ResultDataSize := eAxoInsight_ResultDataSize#RESULT_DATA_128B; + ELSIF _outputsCount = UINT#0 AND _inputsCount = UINT#250 THEN + _ResultDataSize := eAxoInsight_ResultDataSize#RESULT_DATA_250B; + ELSE + _ResultDataSize := eAxoInsight_ResultDataSize#RESULT_DATA_SIZE_INVALID; + Messenger.Activate(UINT#786,eAxoMessageCategory#Error); + Status.Error.Id := UINT#786; + END_IF; + + + IF parent = NULL THEN + Messenger.Activate(UINT#1130, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1130; + RETURN; + ELSIF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1131; + RETURN; + ELSIF _hwIdAcquisitionControl = WORD#0 THEN + Messenger.Activate(UINT#1132, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1132; + RETURN; + ELSIF _hwIdAcquisitionStatus = WORD#0 THEN + Messenger.Activate(UINT#1133, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1133; + RETURN; + ELSIF _hwIdInspectionControl = WORD#0 THEN + Messenger.Activate(UINT#1134, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1134; + RETURN; + ELSIF _hwIdInspectionStatus = WORD#0 THEN + Messenger.Activate(UINT#1135, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1135; + RETURN; + ELSIF _hwIdCommandControl = WORD#0 THEN + Messenger.Activate(UINT#1136, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1136; + RETURN; + ELSIF _hwIdSoftEventControl = WORD#0 THEN + Messenger.Activate(UINT#1137, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1137; + RETURN; + ELSIF _hwIdUserData= WORD#0 THEN + Messenger.Activate(UINT#1138, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1138; + RETURN; + ELSIF _hwIdResultData = WORD#0 THEN + Messenger.Activate(UINT#1139, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1139; + RETURN; + END_IF; + + _initHwCheckDone := TRUE; END_IF; - _ResultDataSize := ResultDataSize; - _UserDataSize := UserDataSize; - _hwID := hwID; - _hwIdAcquisitionControl := hwIdAcquisitionControl; - _hwIdAcquisitionStatus := hwIdAcquisitionStatus; - _hwIdInspectionControl := hwIdInspectionControl; - _hwIdInspectionStatus := hwIdInspectionStatus; - _hwIdCommandControl := hwIdCommandControl; - _hwIdSoftEventControl := hwIdSoftEventControl; - _hwIdResultData := hwIdResultData; - _hwIdUserData := hwIdUserData; - - //**************************************Update Inputs inline************** - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdAcquisitionStatus ,_data_in); - - Messenger.ActivateOnCondition(ULINT#709,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#709; + //***********Update inputs ************** + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdAcquisitionStatus ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; - AcquisitionStatus.TriggerReady := _data_in[0].%X0; - AcquisitionStatus.TriggerAcknowledge := _data_in[0].%X1; - AcquisitionStatus.ExposureComplete := _data_in[0].%X2; - AcquisitionStatus.MissedAcquisition := _data_in[0].%X3; - AcquisitionStatus.OfflineReason0 := _data_in[0].%X4; - AcquisitionStatus.OfflineReason1 := _data_in[0].%X5; - AcquisitionStatus.OfflineReason2 := _data_in[0].%X6; - AcquisitionStatus.Online := _data_in[0].%X7; - - AcquisitionStatus.AcquisitionID.%B1 := _data_in[1]; - AcquisitionStatus.AcquisitionID.%B0 := _data_in[2]; - - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdInspectionStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#710,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#710; + AcquisitionStatus.TriggerReady := _data_255[0].%X0; + AcquisitionStatus.TriggerAcknowledge := _data_255[0].%X1; + AcquisitionStatus.ExposureComplete := _data_255[0].%X2; + AcquisitionStatus.MissedAcquisition := _data_255[0].%X3; + AcquisitionStatus.OfflineReason0 := _data_255[0].%X4; + AcquisitionStatus.OfflineReason1 := _data_255[0].%X5; + AcquisitionStatus.OfflineReason2 := _data_255[0].%X6; + AcquisitionStatus.Online := _data_255[0].%X7; + + AcquisitionStatus.AcquisitionID.%B1 := _data_255[1]; + AcquisitionStatus.AcquisitionID.%B0 := _data_255[2]; + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdInspectionStatus ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1202, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1202; RETURN; END_IF; - InspectionStatus.SystemBusy := _data_in[0].%X0; - InspectionStatus.InspectionCompleted := _data_in[0].%X1; - InspectionStatus.ResultsBufferOverrun := _data_in[0].%X2; - InspectionStatus.ResultsValid := _data_in[0].%X3; - InspectionStatus.CommandExecuting := _data_in[0].%X4; - InspectionStatus.CommandComplete := _data_in[0].%X5; - InspectionStatus.CommandFailed := _data_in[0].%X6; - InspectionStatus.ExtendedUserDataSetAcknowledge := _data_in[0].%X0; - InspectionStatus.OverallJobPassFail := _data_in[1].%X0; - InspectionStatus.TestRunReady := _data_in[1].%X1; - InspectionStatus.Error := _data_in[1].%X7; - - InspectionStatus.ErrorCode.%B1 := _data_in[2]; - InspectionStatus.ErrorCode.%B0 := _data_in[3]; - - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdCommandControl ,_data_in); - Messenger.ActivateOnCondition(ULINT#711,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#711; + InspectionStatus.SystemBusy := _data_255[0].%X0; + InspectionStatus.InspectionCompleted := _data_255[0].%X1; + InspectionStatus.ResultsBufferOverrun := _data_255[0].%X2; + InspectionStatus.ResultsValid := _data_255[0].%X3; + InspectionStatus.CommandExecuting := _data_255[0].%X4; + InspectionStatus.CommandComplete := _data_255[0].%X5; + InspectionStatus.CommandFailed := _data_255[0].%X6; + InspectionStatus.ExtendedUserDataSetAcknowledge := _data_255[0].%X0; + InspectionStatus.OverallJobPassFail := _data_255[1].%X0; + InspectionStatus.TestRunReady := _data_255[1].%X1; + InspectionStatus.Error := _data_255[1].%X7; + + InspectionStatus.ErrorCode.%B1 := _data_255[2]; + InspectionStatus.ErrorCode.%B0 := _data_255[3]; + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdCommandControl ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1203, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1203; RETURN; END_IF; - CommandStatus.CurrentJobID.%B0 := _data_in[1]; - CommandStatus.CurrentJobID.%B1 := _data_in[0]; + CommandStatus.CurrentJobID.%B0 := _data_255[1]; + CommandStatus.CurrentJobID.%B1 := _data_255[0]; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdSoftEventControl ,_data_in); - Messenger.ActivateOnCondition(ULINT#712,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#712; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdSoftEventControl ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1204, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1204; RETURN; END_IF; - SoftEventStatus.TriggerSoftEventAcknowledge.Data[0] := _data_in[0].%X0; - SoftEventStatus.TriggerSoftEventAcknowledge.Data[1] := _data_in[0].%X1; - SoftEventStatus.TriggerSoftEventAcknowledge.Data[2] := _data_in[0].%X2; - SoftEventStatus.TriggerSoftEventAcknowledge.Data[3] := _data_in[0].%X3; - SoftEventStatus.TriggerSoftEventAcknowledge.Data[4] := _data_in[0].%X4; - SoftEventStatus.TriggerSoftEventAcknowledge.Data[5] := _data_in[0].%X5; - SoftEventStatus.TriggerSoftEventAcknowledge.Data[6] := _data_in[0].%X6; - SoftEventStatus.TriggerSoftEventAcknowledge.Data[7] := _data_in[0].%X7; - - - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData ,_data_in); - Messenger.ActivateOnCondition(ULINT#713,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#713; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[0] := _data_255[0].%X0; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[1] := _data_255[0].%X1; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[2] := _data_255[0].%X2; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[3] := _data_255[0].%X3; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[4] := _data_255[0].%X4; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[5] := _data_255[0].%X5; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[6] := _data_255[0].%X6; + SoftEventStatus.TriggerSoftEventAcknowledge.Data[7] := _data_255[0].%X7; + + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdResultData ,_data_255); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1205, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1205; RETURN; END_IF; @@ -347,19 +730,18 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _ResultDataSize = eAxoInsight_ResultDataSize#RESULT_DATA_128B OR _ResultDataSize = eAxoInsight_ResultDataSize#RESULT_DATA_250B); - Messenger.ActivateOnCondition(ULINT#714,_invalidDataSize, eAxoMessageCategory#ProgrammingError); - IF _invalidDataSize THEN - Status.Error.Id := UINT#714; + Messenger.Activate(UINT#1206, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1206; RETURN; END_IF; Config.ResultDataSize := _ResultDataSize; - Results.InspectionID.%B1 := _data_in[0]; - Results.InspectionID.%B0 := _data_in[1]; - Results.ResultCode.%B1 := _data_in[2]; - Results.ResultCode.%B0 := _data_in[3]; + Results.InspectionID.%B1 := _data_255[0]; + Results.InspectionID.%B0 := _data_255[1]; + Results.ResultCode.%B1 := _data_255[2]; + Results.ResultCode.%B0 := _data_255[3]; //**************************************Execute inline******************** RestoreTask.Run(THIS); @@ -368,6 +750,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 ChangeJobByNameTask.Run(THIS); ChangeJobByNumberTask.Run(THIS); SoftEventTask.Run(THIS); + SendUserDataTask.Run(THIS); HardwareDiagnosticsTask.Run(THIS,_hwID); //*************RESTORE******************** RestoreTask.IsDisabled := FALSE; @@ -377,7 +760,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 //**************************************** //*************CLEAR*DATA***************** - ClearInspectionResultsTask.IsDisabled := RestoreTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy(); + ClearInspectionResultsTask.IsDisabled := RestoreTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy() OR SendUserDataTask.IsBusy(); IF ClearInspectionResultsTask.StartTriggered() THEN Status.Action.Id := UINT#100; END_IF; @@ -392,6 +775,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 300 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; + END_IF; + AcquisitionControl.TriggerEnable := FALSE; AcquisitionControl.Trigger := FALSE; InspectionControl.AcknowledgeInspectionResults := TRUE; @@ -408,9 +796,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 301 THEN - TaskMessenger.ActivateOnCondition(ULINT#601, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#601; + TaskMessenger.Activate( UINT#501, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#501; END_IF; IF NOT InspectionStatus.ResultsValid THEN @@ -436,14 +824,14 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 Status.Action.Id := UINT#101; Status.Error.Id := UINT#0; ELSIF ClearInspectionResultsTask.ErrorOccured() THEN - Status.Action.Id := UINT#800; - Status.Error.Id := UINT#800; + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; ELSIF ClearInspectionResultsTask.AbortTriggered()THEN - Status.Action.Id := UINT#801; - Status.Error.Id := UINT#801; + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,ClearInspectionResultsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,ClearInspectionResultsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10000,ClearInspectionResultsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,ClearInspectionResultsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,ClearInspectionResultsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ClearInspectionResultsTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN Status.Action.Id := UINT#102; @@ -451,7 +839,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; //**************************************** //*************READ*********************** - TriggerTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy(); + TriggerTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy() OR SendUserDataTask.IsBusy(); IF TriggerTask.StartTriggered() THEN Status.Action.Id := UINT#110; END_IF; @@ -466,6 +854,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 310 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#510, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#510; + END_IF; + AcquisitionControl.TriggerEnable := TRUE; AcquisitionControl.Trigger := FALSE; AcquisitionControl.ClearExposureComplete := AcquisitionStatus.ExposureComplete; @@ -482,9 +875,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 311 THEN - TaskMessenger.ActivateOnCondition(ULINT#611, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#611; + TaskMessenger.Activate( UINT#511, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#511; END_IF; IF NOT AcquisitionStatus.ExposureComplete THEN @@ -495,9 +888,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 312 THEN - TaskMessenger.ActivateOnCondition(ULINT#612, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#612; + TaskMessenger.Activate( UINT#512, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#512; END_IF; IF NOT InspectionStatus.ResultsValid THEN @@ -508,9 +901,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 313 THEN - TaskMessenger.ActivateOnCondition(ULINT#613, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#613; + TaskMessenger.Activate( UINT#513, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#513; END_IF; IF NOT InspectionStatus.Error THEN @@ -521,9 +914,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 314 THEN - TaskMessenger.ActivateOnCondition(ULINT#614, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#614; + TaskMessenger.Activate( UINT#514, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#514; END_IF; _inspectionCompleted := InspectionStatus.InspectionCompleted; @@ -534,9 +927,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 315 THEN - TaskMessenger.ActivateOnCondition(ULINT#615, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#615; + TaskMessenger.Activate( UINT#515, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#515; END_IF; AcquisitionControl.Trigger := TRUE; @@ -547,9 +940,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 316 THEN - TaskMessenger.ActivateOnCondition(ULINT#616, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#616; + TaskMessenger.Activate( UINT#516, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#516; END_IF; AcquisitionControl.Trigger := FALSE; @@ -560,9 +953,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 317 THEN - TaskMessenger.ActivateOnCondition(ULINT#617, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#617; + TaskMessenger.Activate( UINT#517, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#517; END_IF; IF InspectionStatus.ResultsValid THEN @@ -572,12 +965,13 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 318 THEN - TaskMessenger.ActivateOnCondition(ULINT#618, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#618; + TaskMessenger.Activate( UINT#518, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#518; END_IF; + FOR _index := 0 TO (TO_INT(Config.ResultDataSize) - INT#1) DO - InspectionResults.Data[_index] := _data_in[_index + 4]; + InspectionResults.Data[_index] := _data_255[_index + 4]; END_FOR; FOR _index := Config.ResultDataSize TO 249 DO InspectionResults.Data[_index] := BYTE#0; @@ -587,10 +981,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 319 THEN - TaskMessenger.ActivateOnCondition(ULINT#619, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#619; + TaskMessenger.Activate( UINT#519, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#519; END_IF; + AcquisitionControl.Trigger := FALSE; InspectionControl.EnableResultsBuffering := FALSE; InspectionControl.AcknowledgeInspectionResults := TRUE; @@ -610,14 +1005,14 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 Status.Action.Id := UINT#111; Status.Error.Id := UINT#0; ELSIF TriggerTask.ErrorOccured() THEN - Status.Action.Id := UINT#810; - Status.Error.Id := UINT#810; + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; ELSIF TriggerTask.AbortTriggered() THEN - Status.Action.Id := UINT#811; - Status.Error.Id := UINT#811; + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; END_IF; - Messenger.ActivateOnCondition(ULINT#810,TriggerTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#811,TriggerTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10010,TriggerTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,TriggerTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#112,TriggerTask.RestoreTriggered() , eAxoMessageCategory#Error); IF TriggerTask.RestoreTriggered() AND _progress >= 310 AND _progress <= 319 THEN Status.Action.Id := UINT#112; @@ -626,7 +1021,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 //**************************************** //*************CHANGE JOB BY NAME********* - ChangeJobByNameTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy(); + ChangeJobByNameTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy() OR SendUserDataTask.IsBusy(); IF ChangeJobByNameTask.StartTriggered() THEN Status.Action.Id := UINT#120; END_IF; @@ -644,10 +1039,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 IF _progress = 320 THEN THIS.CallTimers(FALSE); - TaskMessenger.ActivateOnCondition(ULINT#725, _jobName='', eAxoMessageCategory#Error); - IF _jobName='' THEN - Status.Error.Id := UINT#725; + TaskMessenger.Activate( UINT#520, eAxoMessageCategory#Error); + Status.Error.Id := UINT#520; ChangeJobByNameTask.ThrowWhen(TRUE); ELSE _progress := 321; @@ -655,9 +1049,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 321 THEN - TaskMessenger.ActivateOnCondition(ULINT#621, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#621; + TaskMessenger.Activate( UINT#521, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#521; END_IF; InspectionControl.ExecuteCommand:=FALSE; @@ -670,9 +1064,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 322 THEN - TaskMessenger.ActivateOnCondition(ULINT#622, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#622; + TaskMessenger.Activate( UINT#522, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#522; END_IF; AcquisitionControl.SetOffline := TRUE; @@ -683,9 +1077,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 323 THEN - TaskMessenger.ActivateOnCondition(ULINT#623, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#623; + TaskMessenger.Activate( UINT#523, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#523; END_IF; AcquisitionControl.SetOffline := TRUE; @@ -699,26 +1093,34 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 324 THEN - TaskMessenger.ActivateOnCondition(ULINT#624, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#624; + TaskMessenger.Activate( UINT#524, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#524; END_IF; AcquisitionControl.SetOffline := TRUE; - IF THIS.SetUserDataAsString(_jobName,UINT#0) THEN + Serialize(UINT#0, _jobName, _data_255); + FOR _index := INT#0 TO (LengthOf(_jobName) - INT#1) BY INT#1 DO + _userData.Data[_index] := _data_255[_index + INT#1]; + END_FOR; + FOR _index := LengthOf(_jobName) TO INT#253 BY INT#1 DO + _userData.Data[_index] :=BYTE#0; + END_FOR; + + IF THIS.SetUserData(_userData,TO_UINT(LengthOf(_jobName))) THEN THIS.CallTimers(FALSE); _progress := 325; END_IF; END_IF; IF _progress = 325 THEN - TaskMessenger.ActivateOnCondition(ULINT#625, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#625; + TaskMessenger.Activate( UINT#525, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#525; END_IF; - UserData.ToggleDataChangedFlag(); + // UserData.ToggleDataChangedFlag(); AcquisitionControl.SetOffline := TRUE; InspectionControl.ExtendedUserDataSet := TRUE; @@ -732,9 +1134,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 326 THEN - TaskMessenger.ActivateOnCondition(ULINT#626, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#626; + TaskMessenger.Activate( UINT#526, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#526; END_IF; AcquisitionControl.SetOffline := TRUE; @@ -749,9 +1151,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 327 THEN - TaskMessenger.ActivateOnCondition(ULINT#627, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#627; + TaskMessenger.Activate( UINT#527, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#527; END_IF; AcquisitionControl.SetOffline := TRUE; @@ -767,9 +1169,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 328 THEN - TaskMessenger.ActivateOnCondition(ULINT#628, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#628; + TaskMessenger.Activate( UINT#528, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#528; END_IF; AcquisitionControl.SetOffline := TRUE; @@ -782,9 +1184,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 329 THEN - TaskMessenger.ActivateOnCondition(ULINT#629, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#629; + TaskMessenger.Activate( UINT#529, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#529; END_IF; AcquisitionControl.SetOffline := FALSE; @@ -820,14 +1222,14 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 Status.Action.Id := UINT#121; Status.Error.Id := UINT#0; ELSIF ChangeJobByNameTask.ErrorOccured() THEN - Status.Action.Id := UINT#820; - Status.Error.Id := UINT#820; + Status.Action.Id := UINT#10020; + Status.Error.Id := UINT#10020; ELSIF ChangeJobByNameTask.AbortTriggered() THEN - Status.Action.Id := UINT#821; - Status.Error.Id := UINT#821; + Status.Action.Id := UINT#10021; + Status.Error.Id := UINT#10021; END_IF; - Messenger.ActivateOnCondition(ULINT#820,ChangeJobByNameTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#821,ChangeJobByNameTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10020,ChangeJobByNameTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10021,ChangeJobByNameTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#122,ChangeJobByNameTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ChangeJobByNameTask.RestoreTriggered() AND _progress >= 320 AND _progress <= 339 THEN Status.Action.Id := UINT#122; @@ -836,7 +1238,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 //**************************************** //*************CHANGE JOB BY NUMBER******* - ChangeJobByNumberTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR SoftEventTask.IsBusy(); + ChangeJobByNumberTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR SoftEventTask.IsBusy() OR SendUserDataTask.IsBusy(); IF ChangeJobByNumberTask.StartTriggered() THEN Status.Action.Id := UINT#140; END_IF; @@ -854,10 +1256,10 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 IF _progress = 340 THEN THIS.CallTimers(FALSE); - TaskMessenger.ActivateOnCondition(ULINT#726, _jobNumber > Config.MaxJobNumber, eAxoMessageCategory#Error); - - IF _jobNumber > Config.MaxJobNumber THEN - Status.Error.Id := UINT#726; + + IF _jobNumber > Config.MaxJobNumber THEN + TaskMessenger.Activate( UINT#540, eAxoMessageCategory#Error); + Status.Error.Id := UINT#540; ChangeJobByNumberTask.ThrowWhen(TRUE); ELSE _progress := 341; @@ -865,9 +1267,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 341 THEN - TaskMessenger.ActivateOnCondition(ULINT#641, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#641; + TaskMessenger.Activate( UINT#541, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#541; END_IF; InspectionControl.ExecuteCommand:=FALSE; @@ -880,9 +1282,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 342 THEN - TaskMessenger.ActivateOnCondition(ULINT#642, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#642; + TaskMessenger.Activate( UINT#542, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#542; END_IF; AcquisitionControl.SetOffline := TRUE; @@ -893,9 +1295,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 343 THEN - TaskMessenger.ActivateOnCondition(ULINT#643, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#643; + TaskMessenger.Activate( UINT#543, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#543; END_IF; AcquisitionControl.SetOffline := TRUE; @@ -908,9 +1310,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 344 THEN - TaskMessenger.ActivateOnCondition(ULINT#644, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#644; + TaskMessenger.Activate( UINT#544, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#544; END_IF; AcquisitionControl.SetOffline := TRUE; @@ -926,9 +1328,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 345 THEN - TaskMessenger.ActivateOnCondition(ULINT#645, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#645; + TaskMessenger.Activate( UINT#545, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#545; END_IF; AcquisitionControl.SetOffline := TRUE; @@ -941,9 +1343,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 346 THEN - TaskMessenger.ActivateOnCondition(ULINT#646, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#646; + TaskMessenger.Activate( UINT#546, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#546; END_IF; AcquisitionControl.SetOffline := FALSE; @@ -978,14 +1380,14 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 Status.Action.Id := UINT#141; Status.Error.Id := UINT#0; ELSIF ChangeJobByNumberTask.ErrorOccured() THEN - Status.Action.Id := UINT#840; - Status.Error.Id := UINT#840; + Status.Action.Id := UINT#10040; + Status.Error.Id := UINT#10040; ELSIF ChangeJobByNumberTask.AbortTriggered() THEN - Status.Action.Id := UINT#841; - Status.Error.Id := UINT#841; + Status.Action.Id := UINT#10041; + Status.Error.Id := UINT#10041; END_IF; - Messenger.ActivateOnCondition(ULINT#840,ChangeJobByNumberTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#841,ChangeJobByNumberTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10040,ChangeJobByNumberTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10041,ChangeJobByNumberTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#142,ChangeJobByNumberTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ChangeJobByNumberTask.RestoreTriggered() AND _progress >= 340 AND _progress <= 349 THEN Status.Action.Id := UINT#142; @@ -994,7 +1396,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 //**************************************** //*************Soft event***************** - SoftEventTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy(); + SoftEventTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SendUserDataTask.IsBusy(); IF SoftEventTask.StartTriggered() THEN Status.Action.Id := UINT#150; END_IF; @@ -1010,10 +1412,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 IF _progress = 350 THEN THIS.CallTimers(FALSE); - TaskMessenger.ActivateOnCondition(ULINT#727, _softEventNumber > UINT#7, eAxoMessageCategory#Error); - IF _softEventNumber > UINT#7 THEN - Status.Error.Id := UINT#727; + TaskMessenger.Activate( UINT#550, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#550; SoftEventTask.ThrowWhen(TRUE); ELSE _progress := 351; @@ -1021,15 +1422,17 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 351 THEN - THIS.CallTimers(FALSE); + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#551, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#551; + END_IF; _progress := 352; END_IF; IF _progress = 352 THEN - TaskMessenger.ActivateOnCondition(ULINT#652, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - Status.Error.Id := UINT#652; + TaskMessenger.Activate( UINT#552, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#552; END_IF; SoftEventControl.TriggerSoftEvent.Data[_softEventNumber] := TRUE; @@ -1042,10 +1445,9 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; IF _progress = 353 THEN - TaskMessenger.ActivateOnCondition(ULINT#653, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - Status.Error.Id := UINT#653; + TaskMessenger.Activate( UINT#553, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#553; END_IF; SoftEventControl.TriggerSoftEvent.Data[_softEventNumber] := FALSE; @@ -1070,32 +1472,87 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 Status.Action.Id := UINT#151; Status.Error.Id := UINT#0; ELSIF SoftEventTask.ErrorOccured() THEN - Status.Action.Id := UINT#850; - Status.Error.Id := UINT#850; + Status.Action.Id := UINT#10050; + Status.Error.Id := UINT#10050; ELSIF SoftEventTask.AbortTriggered() THEN - Status.Action.Id := UINT#851; - Status.Error.Id := UINT#851; + Status.Action.Id := UINT#10051; + Status.Error.Id := UINT#10051; END_IF; - Messenger.ActivateOnCondition(ULINT#850,SoftEventTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#851,SoftEventTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10050,SoftEventTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10051,SoftEventTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#152,SoftEventTask.RestoreTriggered() , eAxoMessageCategory#Error); - IF SoftEventTask.RestoreTriggered() AND _progress >= 340 AND _progress <= 349 THEN + IF SoftEventTask.RestoreTriggered() AND _progress >= 350 AND _progress <= 359 THEN Status.Action.Id := UINT#152; _progress := 0; END_IF; + //****************************************** + + //*************SendUserData***************** + SendUserDataTask.IsDisabled := RestoreTask.IsBusy() OR ClearInspectionResultsTask.IsBusy() OR TriggerTask.IsBusy() OR ChangeJobByNameTask.IsBusy() OR ChangeJobByNumberTask.IsBusy() OR SoftEventTask.IsBusy(); + IF SendUserDataTask.StartTriggered() THEN + Status.Action.Id := UINT#160; + END_IF; + Messenger.ActivateOnCondition(ULINT#160,SendUserDataTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#161,SendUserDataTask.IsDone(), eAxoMessageCategory#Info); + IF SendUserDataTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 360; + END_IF; - //**************************************Update Outputs inline************** + IF _progress = 360 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#560, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#560; + END_IF; + IF THIS.SetUserData(_userData, _userDataLength) THEN + THIS.CallTimers(FALSE); + _progress := 361; + END_IF; + END_IF; + + IF _progress = 361 THEN + SendUserDataTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + THIS.CallTimers(TRUE); + SendUserDataTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + END_IF; + IF SendUserDataTask.DoneReached() THEN + Status.Action.Id := UINT#161; + Status.Error.Id := UINT#0; + ELSIF SendUserDataTask.ErrorOccured() THEN + Status.Action.Id := UINT#10060; + Status.Error.Id := UINT#10060; + ELSIF SoftEventTask.AbortTriggered() THEN + Status.Action.Id := UINT#10061; + Status.Error.Id := UINT#10061; + END_IF; + Messenger.ActivateOnCondition(ULINT#10060,SendUserDataTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10061,SendUserDataTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#162,SendUserDataTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF SendUserDataTask.RestoreTriggered() AND _progress >= 360 AND _progress <= 369 THEN + Status.Action.Id := UINT#162; + _progress := 0; + END_IF; + //****************************************** + + //***********Update outputs **************** _data_1[0].%X0 := AcquisitionControl.TriggerEnable; _data_1[0].%X1 := AcquisitionControl.Trigger; _data_1[0].%X2 := AcquisitionControl.ClearExposureComplete; _data_1[0].%X7 := AcquisitionControl.SetOffline; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdAcquisitionControl,_data_1); - Messenger.ActivateOnCondition(ULINT#715,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#715; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdAcquisitionControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; - END_IF; + END_IF; _data_1[0].%X0 := InspectionControl.EnableResultsBuffering; _data_1[0].%X1 := InspectionControl.AcknowledgeInspectionResults; @@ -1103,22 +1560,22 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _data_1[0].%X3 := InspectionControl.ExecuteCommand; _data_1[0].%X7 := InspectionControl.ClearError; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdInspectionControl,_data_1); - Messenger.ActivateOnCondition(ULINT#716,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#716; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdInspectionControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1232, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1232; RETURN; - END_IF; + END_IF; _data_2[0] := CommandControl.Command.%B1; _data_2[1] := CommandControl.Command.%B0; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdCommandControl,_data_2); - Messenger.ActivateOnCondition(ULINT#717,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#717; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdCommandControl,_data_2); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1233, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1233; RETURN; - END_IF; + END_IF; _data_1[0].%X0 := SoftEventControl.TriggerSoftEvent.Data[0]; _data_1[0].%X1 := SoftEventControl.TriggerSoftEvent.Data[1]; @@ -1129,12 +1586,12 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _data_1[0].%X6 := SoftEventControl.TriggerSoftEvent.Data[6]; _data_1[0].%X7 := SoftEventControl.TriggerSoftEvent.Data[7]; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdSoftEventControl,_data_1); - Messenger.ActivateOnCondition(ULINT#718,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#718; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdSoftEventControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1234, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1234; RETURN; - END_IF; + END_IF; _invalidDataSize := NOT (_UserDataSize = eAxoInsight_UserDataSize#USER_DATA_16B OR _UserDataSize = eAxoInsight_UserDataSize#USER_DATA_32B OR @@ -1142,12 +1599,11 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _UserDataSize = eAxoInsight_UserDataSize#USER_DATA_128B OR _UserDataSize = eAxoInsight_UserDataSize#USER_DATA_254B); - Messenger.ActivateOnCondition(ULINT#719,_invalidDataSize, eAxoMessageCategory#ProgrammingError); - IF _invalidDataSize THEN - Status.Error.Id := UINT#719; + Messenger.Activate(UINT#1235, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1235; RETURN; - END_IF; + END_IF; Config.UserDataSize := _UserDataSize; @@ -1156,52 +1612,52 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 FOR _index := 0 TO 15 DO _data_16[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_16); - Messenger.ActivateOnCondition(ULINT#720,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#720; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_16); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1236, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1236; RETURN; - END_IF; + END_IF; ELSIF Config.UserDataSize = eAxoInsight_UserDataSize#USER_DATA_32B THEN FOR _index := 0 TO 31 DO _data_32[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_32); - Messenger.ActivateOnCondition(ULINT#721,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#721; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_32); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1237, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1237; RETURN; - END_IF; + END_IF; ELSIF Config.UserDataSize = eAxoInsight_UserDataSize#USER_DATA_64B THEN FOR _index := 0 TO 63 DO _data_64[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_64); - Messenger.ActivateOnCondition(ULINT#722,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#722; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_64); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1238, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1238; RETURN; - END_IF; + END_IF; ELSIF Config.UserDataSize = eAxoInsight_UserDataSize#USER_DATA_128B THEN FOR _index := 0 TO 127 DO _data_128[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_128); - Messenger.ActivateOnCondition(ULINT#723,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#723; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_128); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1239, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1239; RETURN; - END_IF; + END_IF; ELSIF Config.UserDataSize = eAxoInsight_UserDataSize#USER_DATA_254B THEN FOR _index := 0 TO 253 DO _data_254[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_254); - Messenger.ActivateOnCondition(ULINT#724,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#724; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_254); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1240, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1240; RETURN; - END_IF; + END_IF; END_IF; _UserDataChanged := UserData.DataChanged; END_IF; @@ -1255,6 +1711,22 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 SoftEvent := SoftEventTask.Invoke(THIS); END_METHOD + /// + /// Sends the user data from PLC to device. + /// + METHOD PUBLIC SendUserData : IAxoTaskState + VAR_IN_OUT + Data : AxoInsight_UserData; + END_VAR + VAR_INPUT + Length : UINT; + END_VAR + + _userDataLength := Length; + _userData := Data; + SendUserData := SendUserDataTask.Invoke(THIS); + END_METHOD + METHOD PRIVATE CallTimers VAR_INPUT signal : BOOL; @@ -1264,7 +1736,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _errorTimer.OnDelay(THIS, signal , Config.ErrorTime ); END_METHOD - METHOD INTERNAL AppendSuffix :STRING + METHOD INTERNAL AppendSuffix : STRING VAR_INPUT jobName : STRING; END_VAR @@ -1279,49 +1751,44 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 END_IF; END_METHOD - METHOD INTERNAL SetUserDataAsString : BOOL + METHOD PRIVATE SetUserData : BOOL + VAR_IN_OUT + Data : AxoInsight_UserData; + END_VAR VAR_INPUT - inValue : STRING; - inPosition : UINT; + Length : UINT; END_VAR VAR _index : UINT; - _size : UINT; _maxIndex : UINT; - _data : ARRAY[0..255] OF BYTE; END_VAR - SetUserDataAsString := FALSE; - - _size := TO_UINT(LengthOf(inValue)); + SetUserData := FALSE; - _maxIndex := UINT#255; - - Messenger.ActivateOnCondition(ULINT#716, (inPosition +_size) >= TO_UINT(Config.UserDataSize), eAxoMessageCategory#Error); + _maxIndex := UINT#253; - IF (inPosition +_size) >= TO_UINT(Config.UserDataSize) THEN + IF (Length) >= TO_UINT(Config.UserDataSize) THEN + Messenger.Activate(UINT#716, eAxoMessageCategory#Error); Status.Error.Id := UINT#716; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#717, (inPosition +_size) > _maxIndex ,eAxoMessageCategory#Error); - - IF (inPosition +_size) > _maxIndex THEN + IF (Length) > _maxIndex THEN + Messenger.Activate(UINT#717, eAxoMessageCategory#Error); Status.Error.Id := UINT#717; RETURN; END_IF; - Serialize(UINT#0, inValue, _data); - FOR _index := UINT#0 TO _size BY UINT#1 DO - UserData.Data[(inPosition + _index)] := _data[_index + UINT#1]; + FOR _index := UINT#0 TO Length BY UINT#1 DO + UserData.Data[( _index)] := Data.Data[_index]; END_FOR; - FOR _index := inPosition +_size TO _maxIndex BY UINT#1 DO + FOR _index := Length TO _maxIndex BY UINT#1 DO UserData.Data[_index] := BYTE#0; END_FOR; - // UserData.ToggleDataChangedFlag(); + UserData.ToggleDataChangedFlag(); - SetUserDataAsString := TRUE; + SetUserData := TRUE; END_METHOD /// @@ -1331,6 +1798,8 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 _jobName := RequiredJobName; _jobNumber := RequiredJobNumber; _softEventNumber := RequiredSoftEventNumber; + _userDataLength := UserDataLength; + _userData := UserDataToSent; END_METHOD /// @@ -1353,8 +1822,13 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 ChangeJobByNameTask.Restore(); ChangeJobByNumberTask.Restore(); SoftEventTask.Restore(); + SendUserDataTask.Restore(); HardwareDiagnosticsTask.Restore(); + FOR _index := 0 TO 253 DO + UserDataToSent.Data[_index] := BYTE#0; + END_FOR; + UserDataLength := UINT#0; RequiredJobName := ''; RequiredJobNumber := UINT#0; diff --git a/src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/TypeStructuresAndEnums/AxoInsight_UserData.st b/src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/TypeStructuresAndEnums/AxoInsight_UserData.st index 74786d3c0..a21aa48e5 100644 --- a/src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/TypeStructuresAndEnums/AxoInsight_UserData.st +++ b/src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/TypeStructuresAndEnums/AxoInsight_UserData.st @@ -2,7 +2,7 @@ NAMESPACE AXOpen.Components.Cognex.Vision.v_6_0_0_0 {S7.extern=ReadWrite} CLASS PUBLIC AxoInsight_UserData EXTENDS AXOpen.Core.AxoByteArray VAR PUBLIC - Data : ARRAY [0..255] OF BYTE; + Data : ARRAY [0..253] OF BYTE; END_VAR END_CLASS END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/AxoVisionPro.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/AxoVisionPro.st new file mode 100644 index 000000000..a0b0bb28d --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/AxoVisionPro.st @@ -0,0 +1,4369 @@ +USING AXOpen.Core; +USING AXOpen.Messaging; +USING AXOpen.Messaging.Static; +USING AXOpen.Components.Abstractions; +USING Siemens.Simatic.S71500.Hardware.Utilities; +USING Siemens.Simatic.S71500.MemoryAccess; +USING AXOpen.Timers; + +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + CLASS AxoVisionPro EXTENDS AXOpen.Core.AxoComponent + VAR PUBLIC //Header + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentHeader()]} + {#ix-set:AttributeName = "<#Result data#>"} + {#ix-attr:[ReadOnly()]} + {#ix-set:DisplayFormat = "string"} + ResultData : AxoVisionPro_ResultData; + {#ix-attr:[ComponentHeader()]} + {#ix-set:AttributeName = "<#User data#>"} + {#ix-set:DisplayFormat = "string"} + UserData : AxoVisionPro_ResultData; + {#ix-attr:[ComponentHeader()]} + {#ix-set:AttributeName = "<#Progress#>"} + {#ix-attr:[ReadOnly()]} + Progress : INT; + END_VAR + + VAR PUBLIC // TASKS + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Restore#>"} + RestoreTask : AXOpen.Core.AxoTask; + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Hard reset all cameras#>"} + HardResetAllCamerasTask : AXOpen.Core.AxoTask; + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Reset#>"} + ResetTask : AXOpen.Core.AxoTask; + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#Trigger #>"} + TriggerTask : AXOpen.Core.AxoTask; + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#ReadResults#>"} + ReadResultsTask : AXOpen.Core.AxoTask; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#ReadResults job ID (service mode)#>"} + ReadResultsJobIDServiceMode : BYTE; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#ReadResults length (service mode)#>"} + ReadResultsLengthServiceMode : UINT; + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#SendData#>"} + SendDataTask : AXOpen.Core.AxoTask; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#SendData inspection type (service mode)#>"} + SendDataInspectionTypeServiceMode : BYTE; // (0 = Undefined, 1 = Zmena jobu/referencie, 2=Nacitanie + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#SendData BufferID (service mode)#>"} + SendDataBufferIDServiceMode : BYTE; // Buffer ID, 0-9 + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#SendResults job ID (service mode)#>"} + SendResultsJobIDServiceMode : BYTE; + {#ix-attr:[ComponentDetails("Tasks")]} + {#ix-set:AttributeName = "<#SendResults length (service mode)#>"} + SendResultsLengthServiceMode : UINT; + END_VAR + + // VAR PUBLIC // TEMPLATE TASKS + // {#ix-attr:[Container(Layout.Wrap)]} + // {#ix-attr:[ComponentDetails("Template tasks")]} + // {#ix-set:AttributeName = "<#TemplateTask_10steps_4#>"} + // TemplateTask_10steps_4 : AXOpen.Core.AxoTask; + // {#ix-attr:[Container(Layout.Wrap)]} + // {#ix-attr:[ComponentDetails("Template tasks")]} + // {#ix-set:AttributeName = "<#TemplateTask_10steps_5#>"} + // TemplateTask_10steps_5 : AXOpen.Core.AxoTask; + // {#ix-attr:[Container(Layout.Wrap)]} + // {#ix-attr:[ComponentDetails("Template tasks")]} + // {#ix-set:AttributeName = "<#TemplateTask_10steps_6#>"} + // TemplateTask_10steps_6 : AXOpen.Core.AxoTask; + + + + // {#ix-attr:[Container(Layout.Wrap)]} + // {#ix-attr:[ComponentDetails("Template tasks")]} + // {#ix-set:AttributeName = "<#TemplateTask_20steps_3#>"} + // TemplateTask_20steps_3 : AXOpen.Core.AxoTask; + // {#ix-attr:[Container(Layout.Wrap)]} + // {#ix-attr:[ComponentDetails("Template tasks")]} + // {#ix-set:AttributeName = "<#TemplateTask_20steps_4#>"} + // TemplateTask_20steps_4 : AXOpen.Core.AxoTask; + // {#ix-attr:[Container(Layout.Wrap)]} + // {#ix-attr:[ComponentDetails("Template tasks")]} + // {#ix-set:AttributeName = "<#TemplateTask_20steps_5#>"} + // TemplateTask_20steps_5 : AXOpen.Core.AxoTask; + // {#ix-attr:[Container(Layout.Wrap)]} + // {#ix-attr:[ComponentDetails("Template tasks")]} + // {#ix-set:AttributeName = "<#TemplateTask_20steps_6#>"} + // TemplateTask_20steps_6 : AXOpen.Core.AxoTask; + + // END_VAR + + VAR PUBLIC // CONFIG + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ReadOnly()]} + Config : AxoVisionPro_Config; + END_VAR + + VAR PUBLIC // STATUS + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-attr:[ReadOnly()]} + Status : AxoVisionPro_Component_Status; + Messenger : AXOpen.Messaging.Static.AxoMessenger; + TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; + END_VAR + + VAR PUBLIC // HARDWARE SIGNALS + {#ix-attr:[ComponentDetails("HARDWARE SIGNALS")]} + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-set:AttributeName = "<#Inputs#>"} + {#ix-attr:[ReadOnly()]} + Inputs : AxoVisionPro_In; + {#ix-attr:[ComponentDetails("HARDWARE SIGNALS")]} + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-set:AttributeName = "<#Outputs#>"} + {#ix-attr:[ReadOnly()]} + Outputs : AxoVisionPro_Out; + END_VAR + + VAR PUBLIC // HARDWARE DIAGNOSTICS TASK + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Hardware diagnostics")]} + {#ix-set:AttributeName = "<#Update diagnostics#>"} + HardwareDiagnosticsTask : AXOpen.Io.AxoHardwareDiagnostics; + END_VAR + + VAR PRIVATE + _progress : INT; + _infoTimer : AXOpen.Timers.OnDelayTimer; + _errorTimer : AXOpen.Timers.OnDelayTimer; + _data_in_1301 : ARRAY[0..1300] OF BYTE; + _data_out_1301 : ARRAY[0..1300] OF BYTE; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _startAddress : UDINT; + _bytesCount : UINT; + _Clock_1Hz : AxoBlinker; + _readResultsJobID : BYTE; + _readResultsLength : UINT; + _data_ : ARRAY[0..1300] OF BYTE; + _data_out : ARRAY[0..1300] OF BYTE; + _sendDataInspectionType : BYTE; + _sendDataBufferID : BYTE; + _sendDataJobID : BYTE; + _sendDataLength : UINT; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; + END_VAR + + /// + /// Runs tasks and logic of this component. + /// >[!IMPORTANT] This method must or one of its overloads be called cyclically. + /// + METHOD PUBLIC Run + VAR_INPUT + parent : IAxoObject; + hwID : WORD; + CameraNo : BYTE; + END_VAR + VAR_TEMP + SeparatorPos : Int; + inputsAddress : UDInt; + inputsCount : UInt; + outputsAddress : UDInt; + outputsCount : UInt; + retValRdAddr : Int; + i : Int; + BitOffset : Int; + LogGeoData_retval : WORD; + _tmpWord : WORD; + + index : UINT; + + END_VAR + + Progress := _progress; + + SUPER.Run(parent); + + Messenger.Serve(THIS); + + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(ULINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(ULINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + Config.HWIDs.HW_Head := TO_UINT(hwID); + _retval := ReadSlotFromHardwareID(hardwareID := Config.HWIDs.HW_Head, geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_SystemControl); + IF Config.HWIDs.HW_SystemControl = UINT#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#16 OR _outputsCount <> UINT#16 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_EngineControl_1); + IF Config.HWIDs.HW_EngineControl_1 = UINT#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_EngineControl_1) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#8 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 3*****************// + _geoAddr.Slot := UINT#3; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_EngineControl_2); + IF Config.HWIDs.HW_EngineControl_2 = UINT#0 THEN + Messenger.Activate(UINT#730,eAxoMessageCategory#Error); + Status.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#731,eAxoMessageCategory#Error); + Status.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#732,eAxoMessageCategory#Error); + Status.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#733,eAxoMessageCategory#Error); + Status.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#734,eAxoMessageCategory#Error); + Status.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#735,eAxoMessageCategory#Error); + Status.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_EngineControl_2) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#8 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#736,eAxoMessageCategory#Error); + Status.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 4*****************// + _geoAddr.Slot := UINT#4; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_EngineControl_3); + IF Config.HWIDs.HW_EngineControl_3 = UINT#0 THEN + Messenger.Activate(UINT#740,eAxoMessageCategory#Error); + Status.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#741,eAxoMessageCategory#Error); + Status.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#742,eAxoMessageCategory#Error); + Status.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#743,eAxoMessageCategory#Error); + Status.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#744,eAxoMessageCategory#Error); + Status.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#745,eAxoMessageCategory#Error); + Status.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_EngineControl_3) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#8 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#746,eAxoMessageCategory#Error); + Status.Error.Id := UINT#746; + RETURN; + END_IF; + //******************Slot 5*****************// + _geoAddr.Slot := UINT#5; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_EngineControl_4); + IF Config.HWIDs.HW_EngineControl_4 = UINT#0 THEN + Messenger.Activate(UINT#750,eAxoMessageCategory#Error); + Status.Error.Id := UINT#750; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#751,eAxoMessageCategory#Error); + Status.Error.Id := UINT#751; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#752,eAxoMessageCategory#Error); + Status.Error.Id := UINT#752; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#753,eAxoMessageCategory#Error); + Status.Error.Id := UINT#753; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#754,eAxoMessageCategory#Error); + Status.Error.Id := UINT#754; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#755,eAxoMessageCategory#Error); + Status.Error.Id := UINT#755; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_EngineControl_4) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#8 OR _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#756,eAxoMessageCategory#Error); + Status.Error.Id := UINT#756; + RETURN; + END_IF; + //******************Slot 6*****************// + _geoAddr.Slot := UINT#6; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_UserData_240B_1); + IF Config.HWIDs.HW_UserData_240B_1 = UINT#0 THEN + Messenger.Activate(UINT#760,eAxoMessageCategory#Error); + Status.Error.Id := UINT#760; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#761,eAxoMessageCategory#Error); + Status.Error.Id := UINT#761; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#762,eAxoMessageCategory#Error); + Status.Error.Id := UINT#762; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#763,eAxoMessageCategory#Error); + Status.Error.Id := UINT#763; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#764,eAxoMessageCategory#Error); + Status.Error.Id := UINT#764; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#765,eAxoMessageCategory#Error); + Status.Error.Id := UINT#765; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#240 THEN + Messenger.Activate(UINT#766,eAxoMessageCategory#Error); + Status.Error.Id := UINT#766; + RETURN; + END_IF; + //******************Slot 7*****************// + _geoAddr.Slot := UINT#7; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_UserData_240B_2); + IF Config.HWIDs.HW_UserData_240B_2 = UINT#0 THEN + Messenger.Activate(UINT#770,eAxoMessageCategory#Error); + Status.Error.Id := UINT#770; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#771,eAxoMessageCategory#Error); + Status.Error.Id := UINT#771; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#772,eAxoMessageCategory#Error); + Status.Error.Id := UINT#772; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#773,eAxoMessageCategory#Error); + Status.Error.Id := UINT#773; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#774,eAxoMessageCategory#Error); + Status.Error.Id := UINT#774; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#775,eAxoMessageCategory#Error); + Status.Error.Id := UINT#775; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_2) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#240 THEN + Messenger.Activate(UINT#776,eAxoMessageCategory#Error); + Status.Error.Id := UINT#776; + RETURN; + END_IF; + //******************Slot 8*****************// + _geoAddr.Slot := UINT#8; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_UserData_240B_3); + IF Config.HWIDs.HW_UserData_240B_3 = UINT#0 THEN + Messenger.Activate(UINT#780,eAxoMessageCategory#Error); + Status.Error.Id := UINT#780; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#781,eAxoMessageCategory#Error); + Status.Error.Id := UINT#781; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#782,eAxoMessageCategory#Error); + Status.Error.Id := UINT#782; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#783,eAxoMessageCategory#Error); + Status.Error.Id := UINT#783; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#784,eAxoMessageCategory#Error); + Status.Error.Id := UINT#784; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#785,eAxoMessageCategory#Error); + Status.Error.Id := UINT#785; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_3) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#240 THEN + Messenger.Activate(UINT#786,eAxoMessageCategory#Error); + Status.Error.Id := UINT#786; + RETURN; + END_IF; + //******************Slot 9*****************// + _geoAddr.Slot := UINT#9; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_UserData_240B_4); + IF Config.HWIDs.HW_UserData_240B_4 = UINT#0 THEN + Messenger.Activate(UINT#790,eAxoMessageCategory#Error); + Status.Error.Id := UINT#790; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#791,eAxoMessageCategory#Error); + Status.Error.Id := UINT#791; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#792,eAxoMessageCategory#Error); + Status.Error.Id := UINT#792; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#793,eAxoMessageCategory#Error); + Status.Error.Id := UINT#793; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#794,eAxoMessageCategory#Error); + Status.Error.Id := UINT#794; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#795,eAxoMessageCategory#Error); + Status.Error.Id := UINT#795; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_4) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#240 THEN + Messenger.Activate(UINT#796,eAxoMessageCategory#Error); + Status.Error.Id := UINT#796; + RETURN; + END_IF; + //******************Slot 10*****************// + _geoAddr.Slot := UINT#10; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_UserData_240B_5); + IF Config.HWIDs.HW_UserData_240B_5 = UINT#0 THEN + Messenger.Activate(UINT#800,eAxoMessageCategory#Error); + Status.Error.Id := UINT#800; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#801,eAxoMessageCategory#Error); + Status.Error.Id := UINT#801; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#802,eAxoMessageCategory#Error); + Status.Error.Id := UINT#802; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#803,eAxoMessageCategory#Error); + Status.Error.Id := UINT#803; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#804,eAxoMessageCategory#Error); + Status.Error.Id := UINT#804; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#805,eAxoMessageCategory#Error); + Status.Error.Id := UINT#805; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_5) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#240 THEN + Messenger.Activate(UINT#806,eAxoMessageCategory#Error); + Status.Error.Id := UINT#806; + RETURN; + END_IF; + //******************Slot 11*****************// + _geoAddr.Slot := UINT#11; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_UserData_64B_1); + IF Config.HWIDs.HW_UserData_64B_1 = UINT#0 THEN + Messenger.Activate(UINT#810,eAxoMessageCategory#Error); + Status.Error.Id := UINT#810; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#811,eAxoMessageCategory#Error); + Status.Error.Id := UINT#811; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#812,eAxoMessageCategory#Error); + Status.Error.Id := UINT#812; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#813,eAxoMessageCategory#Error); + Status.Error.Id := UINT#813; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#814,eAxoMessageCategory#Error); + Status.Error.Id := UINT#814; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#815,eAxoMessageCategory#Error); + Status.Error.Id := UINT#815; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_64B_1) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#64 THEN + Messenger.Activate(UINT#816,eAxoMessageCategory#Error); + Status.Error.Id := UINT#816; + RETURN; + END_IF; + //******************Slot 12*****************// + _geoAddr.Slot := UINT#12; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_Results_240B_1); + IF Config.HWIDs.HW_Results_240B_1 = UINT#0 THEN + Messenger.Activate(UINT#820,eAxoMessageCategory#Error); + Status.Error.Id := UINT#820; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#821,eAxoMessageCategory#Error); + Status.Error.Id := UINT#821; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#822,eAxoMessageCategory#Error); + Status.Error.Id := UINT#822; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#823,eAxoMessageCategory#Error); + Status.Error.Id := UINT#823; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#824,eAxoMessageCategory#Error); + Status.Error.Id := UINT#824; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#825,eAxoMessageCategory#Error); + Status.Error.Id := UINT#825; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_1) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#240 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#826,eAxoMessageCategory#Error); + Status.Error.Id := UINT#826; + RETURN; + END_IF; + //******************Slot 13*****************// + _geoAddr.Slot := UINT#13; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_Results_240B_2); + IF Config.HWIDs.HW_Results_240B_2 = UINT#0 THEN + Messenger.Activate(UINT#830,eAxoMessageCategory#Error); + Status.Error.Id := UINT#830; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#831,eAxoMessageCategory#Error); + Status.Error.Id := UINT#831; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#832,eAxoMessageCategory#Error); + Status.Error.Id := UINT#832; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#833,eAxoMessageCategory#Error); + Status.Error.Id := UINT#833; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#834,eAxoMessageCategory#Error); + Status.Error.Id := UINT#834; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#835,eAxoMessageCategory#Error); + Status.Error.Id := UINT#835; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_2) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#240 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#836,eAxoMessageCategory#Error); + Status.Error.Id := UINT#836; + RETURN; + END_IF; + //******************Slot 14*****************// + _geoAddr.Slot := UINT#14; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_Results_240B_3); + IF Config.HWIDs.HW_Results_240B_3 = UINT#0 THEN + Messenger.Activate(UINT#840,eAxoMessageCategory#Error); + Status.Error.Id := UINT#840; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#841,eAxoMessageCategory#Error); + Status.Error.Id := UINT#841; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#842,eAxoMessageCategory#Error); + Status.Error.Id := UINT#842; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#843,eAxoMessageCategory#Error); + Status.Error.Id := UINT#843; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#844,eAxoMessageCategory#Error); + Status.Error.Id := UINT#844; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#845,eAxoMessageCategory#Error); + Status.Error.Id := UINT#845; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_3) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#240 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#846,eAxoMessageCategory#Error); + Status.Error.Id := UINT#846; + RETURN; + END_IF; + //******************Slot 15*****************// + _geoAddr.Slot := UINT#15; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_Results_240B_4); + IF Config.HWIDs.HW_Results_240B_4 = UINT#0 THEN + Messenger.Activate(UINT#850,eAxoMessageCategory#Error); + Status.Error.Id := UINT#850; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#851,eAxoMessageCategory#Error); + Status.Error.Id := UINT#851; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#852,eAxoMessageCategory#Error); + Status.Error.Id := UINT#852; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#853,eAxoMessageCategory#Error); + Status.Error.Id := UINT#853; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#854,eAxoMessageCategory#Error); + Status.Error.Id := UINT#854; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#855,eAxoMessageCategory#Error); + Status.Error.Id := UINT#855; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_4) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#240 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#856,eAxoMessageCategory#Error); + Status.Error.Id := UINT#856; + RETURN; + END_IF; + //******************Slot 16*****************// + _geoAddr.Slot := UINT#16; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_Results_240B_5); + IF Config.HWIDs.HW_Results_240B_5 = UINT#0 THEN + Messenger.Activate(UINT#860,eAxoMessageCategory#Error); + Status.Error.Id := UINT#860; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#861,eAxoMessageCategory#Error); + Status.Error.Id := UINT#861; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#862,eAxoMessageCategory#Error); + Status.Error.Id := UINT#862; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#863,eAxoMessageCategory#Error); + Status.Error.Id := UINT#863; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#864,eAxoMessageCategory#Error); + Status.Error.Id := UINT#864; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#865,eAxoMessageCategory#Error); + Status.Error.Id := UINT#865; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_5) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#240 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#866,eAxoMessageCategory#Error); + Status.Error.Id := UINT#866; + RETURN; + END_IF; + //******************Slot 17*****************// + _geoAddr.Slot := UINT#17; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => Config.HWIDs.HW_Results_64B_1); + IF Config.HWIDs.HW_Results_64B_1 = UINT#0 THEN + Messenger.Activate(UINT#870,eAxoMessageCategory#Error); + Status.Error.Id := UINT#870; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#871,eAxoMessageCategory#Error); + Status.Error.Id := UINT#871; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#872,eAxoMessageCategory#Error); + Status.Error.Id := UINT#872; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#873,eAxoMessageCategory#Error); + Status.Error.Id := UINT#873; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#874,eAxoMessageCategory#Error); + Status.Error.Id := UINT#874; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#875,eAxoMessageCategory#Error); + Status.Error.Id := UINT#875; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_64B_1) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#64 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#876,eAxoMessageCategory#Error); + Status.Error.Id := UINT#876; + RETURN; + END_IF; + + IF parent = NULL THEN + Messenger.Activate(UINT#1130,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1130; + RETURN; + END_IF; + + IF Config.HWIDs.HW_Head = UINT#0 THEN + Messenger.Activate(UINT#1131,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1131; + RETURN; + END_IF; + + IF Config.HWIDs.HW_SystemControl = UINT#0 THEN + Messenger.Activate(UINT#1132,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1132; + RETURN; + END_IF; + + IF Config.HWIDs.HW_EngineControl_1 = UINT#0 THEN + Messenger.Activate(UINT#1133,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1133; + RETURN; + END_IF; + + IF Config.HWIDs.HW_EngineControl_2 = UINT#0 THEN + Messenger.Activate(UINT#1134,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1134; + RETURN; + END_IF; + + IF Config.HWIDs.HW_EngineControl_3 = UINT#0 THEN + Messenger.Activate(UINT#1135,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1135; + RETURN; + END_IF; + + IF Config.HWIDs.HW_EngineControl_4 = UINT#0 THEN + Messenger.Activate(UINT#1136,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1136; + RETURN; + END_IF; + + IF Config.HWIDs.HW_UserData_240B_1 = UINT#0 THEN + Messenger.Activate(UINT#1137,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1137; + RETURN; + END_IF; + + IF Config.HWIDs.HW_UserData_240B_2 = UINT#0 THEN + Messenger.Activate(UINT#1138,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1138; + RETURN; + END_IF; + + IF Config.HWIDs.HW_UserData_240B_3 = UINT#0 THEN + Messenger.Activate(UINT#1139,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1139; + RETURN; + END_IF; + + IF Config.HWIDs.HW_UserData_240B_4 = UINT#0 THEN + Messenger.Activate(UINT#1140,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1140; + RETURN; + END_IF; + + IF Config.HWIDs.HW_UserData_240B_5 = UINT#0 THEN + Messenger.Activate(UINT#1141,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1141; + RETURN; + END_IF; + + IF Config.HWIDs.HW_UserData_64B_1 = UINT#0 THEN + Messenger.Activate(UINT#1142,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1142; + RETURN; + END_IF; + + IF Config.HWIDs.HW_Results_240B_1 = UINT#0 THEN + Messenger.Activate(UINT#1143,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1143; + RETURN; + END_IF; + + IF Config.HWIDs.HW_Results_240B_2 = UINT#0 THEN + Messenger.Activate(UINT#1144,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1144; + RETURN; + END_IF; + + IF Config.HWIDs.HW_Results_240B_3 = UINT#0 THEN + Messenger.Activate(UINT#1145,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1145; + RETURN; + END_IF; + + IF Config.HWIDs.HW_Results_240B_4 = UINT#0 THEN + Messenger.Activate(UINT#1146,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1146; + RETURN; + END_IF; + + IF Config.HWIDs.HW_Results_240B_5 = UINT#0 THEN + Messenger.Activate(UINT#1147,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1147; + RETURN; + END_IF; + + IF Config.HWIDs.HW_Results_64B_1 = UINT#0 THEN + Messenger.Activate(UINT#1148,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1148; + RETURN; + END_IF; + + _initHwCheckDone := TRUE; + END_IF; + + //***********Update inputs ************** + + Config.CameraNo := CameraNo; + + IF Config.CameraNo < BYTE#1 THEN + Messenger.Activate(UINT#1301, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1301; + RETURN; + END_IF; + + IF Config.CameraNo > BYTE#8 THEN + Messenger.Activate(UINT#1302, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1302; + RETURN; + END_IF; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount);//(LADDR := Component.HW.HW_SystemControl, PIADDR => inputsAddress, PICount => inputsCount, PQADDR => outputsAddress, PQCount => outputsCount); + + IF CameraNo = BYTE#1 THEN + inputsAddress := inputsAddress + UDINT#8; + BitOffset := 0; + ELSIF CameraNo = BYTE#2 THEN + inputsAddress := inputsAddress + UDINT#8; + BitOffset := 4; + ELSIF CameraNo = BYTE#3 THEN + inputsAddress := inputsAddress + UDINT#9; + BitOffset := 0; + ELSIF CameraNo = BYTE#4 THEN + inputsAddress := inputsAddress + UDINT#9; + BitOffset := 4; + ELSIF CameraNo = BYTE#5 THEN + inputsAddress := inputsAddress + UDINT#10; + BitOffset := 0; + ELSIF CameraNo = BYTE#6 THEN + inputsAddress := inputsAddress + UDINT#10; + BitOffset := 4; + ELSIF CameraNo = BYTE#7 THEN + inputsAddress := inputsAddress + UDINT#11; + BitOffset := 0; + ELSIF CameraNo = BYTE#8 THEN + inputsAddress := inputsAddress + UDINT#11; + BitOffset := 4; + END_IF; + + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress), bitOffset := BitOffset, value => Inputs.Status.SoftEvent.ResetAck ); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress), bitOffset := (BitOffset + INT#1),value => Inputs.Status.SoftEvent.DataHandlerDone); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress), bitOffset := (BitOffset + INT#2),value => Inputs.Status.SoftEvent.TriggerAck); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress), bitOffset := (BitOffset + INT#3),value => Inputs.Status.SoftEvent.Reserve); + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress), bitOffset := INT#0, value => Inputs.Status.SystemReady); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress), bitOffset := INT#1, value => Inputs.Status.SystemBusy); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress), bitOffset := INT#7, value => Inputs.Status.Online); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress + UDINT#1), bitOffset := INT#5, value => Inputs.Status.JobLoadComplete); + //nacitanie user dat pre kontrolu.. ci a ako to nastavili ine kamery. + ReadMemory(area := ReadArea#Input, byteOffset := TO_DINT(inputsAddress) + DINT#4, value => Inputs.Status.CurentJobID ); + Inputs.Status.ReadDataLockerJobID := TO_BYTE(TO_INT(Inputs.Status.CurentJobID) / INT#10); + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_EngineControl_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress), bitOffset := INT#5, value => Inputs.Status.ResultValid); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + DINT#4, value => Inputs.Status.ID_Inspection); + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + DINT#1, bitOffset := INT#0, value => Inputs.Status.SetUserDataAck); + + //nacitanie user dat pre kontrolu.. ci a ako to nastavili ine kamery. + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + ReadMemory(area := ReadArea#Output,byteOffset := TO_DINT(outputsAddress), value => Inputs.Status.UserDataJobID); + Inputs.Status.UserDataLockerJobID := TO_BYTE(TO_UINT(Inputs.Status.UserDataJobID) / UINT#10); + ReadMemory(area := ReadArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#1, value => Inputs.Status.UserDataLockerIdOperation); + + //*************INITIALIZATION************* + RestoreTask.Run(THIS); + HardResetAllCamerasTask.Run(THIS); + ResetTask.Run(THIS); + TriggerTask.Run(THIS); + // TemplateTask_10steps_4.Run(THIS); + // TemplateTask_10steps_5.Run(THIS); + // TemplateTask_10steps_6.Run(THIS); + ReadResultsTask.Run(THIS); + SendDataTask.Run(THIS); + // TemplateTask_20steps_3.Run(THIS); + // TemplateTask_20steps_4.Run(THIS); + // TemplateTask_20steps_5.Run(THIS); + // TemplateTask_20steps_6.Run(THIS); + + //**************************************** + + //********************Diagnostics********* + HardwareDiagnosticsTask.Run(THIS,TO_WORD(Config.HWIDs.HW_Head)); + //**************************************** + + //*************RESTORE******************** + RestoreTask.IsDisabled := FALSE; + IF RestoreTask.Execute(THIS) THEN + THIS.Restore(); + END_IF; + //**************************************** + + //*************HardResetAllCamerasTask************** + HardResetAllCamerasTask.SetIsDisabled(FALSE); + IF HardResetAllCamerasTask.StartTriggered() THEN + Status.Action.Id := UINT#100; + END_IF; + Messenger.ActivateOnCondition(ULINT#100,HardResetAllCamerasTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#101,HardResetAllCamerasTask.IsDone(), eAxoMessageCategory#Info); + IF HardResetAllCamerasTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 300; + END_IF; + + IF _progress = 300 THEN // HardResetAllCamerasTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; + END_IF; + + Outputs.Control.SoftEvent.Trigger := FALSE; + Outputs.Control.SoftEvent.DataHandlerAck := FALSE; + Outputs.Control.SetUserdata := FALSE; + Outputs.Control.InitiateJobLoad := FALSE; + Outputs.Control.InspectionResultsAck := FALSE; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress),value:= BYTE#0); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#1,value:= BYTE#0); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#2,value:= BYTE#0); + Outputs.Control.JobLoadID := WORD#0; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := INT#4, value:= FALSE); + + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#2,value:= WORD#0); + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_EngineControl_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := INT#1, value:= FALSE); + + IF Inputs.Status.CurentJobID > WORD#0 THEN + THIS.CallTimers(FALSE); + _progress := 301; + ELSE + _progress := 309; + END_IF; + END_IF; + + IF _progress = 301 THEN // HardResetAllCamerasTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#501, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#501; + END_IF; + + _Clock_1Hz.Blink(THIS,TIME#500MS,TIME#500MS); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := INT#4, value:= _Clock_1Hz.output); + + IF Inputs.Status.CurentJobID = WORD#0 THEN + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := INT#4, value:= FALSE); + THIS.CallTimers(FALSE); + _progress := 309; + END_IF; + END_IF; + + IF _progress = 302 THEN // HardResetAllCamerasTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#502, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#502; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 303; + END_IF; + END_IF; + + IF _progress = 303 THEN // HardResetAllCamerasTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#503, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#503; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 304; + END_IF; + END_IF; + + IF _progress = 304 THEN // HardResetAllCamerasTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#504, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#504; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 305; + END_IF; + END_IF; + + IF _progress = 305 THEN // HardResetAllCamerasTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#505, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#505; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 306; + END_IF; + END_IF; + + IF _progress = 306 THEN // HardResetAllCamerasTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#506, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#506; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 307; + END_IF; + END_IF; + + IF _progress = 307 THEN // HardResetAllCamerasTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#507, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#507; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 308; + END_IF; + END_IF; + + IF _progress = 308 THEN // HardResetAllCamerasTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#508, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#508; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 309; + END_IF; + END_IF; + + IF _progress = 309 THEN // HardResetAllCamerasTask running: , + HardResetAllCamerasTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + THIS.CallTimers(TRUE); + + HardResetAllCamerasTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + HardResetAllCamerasTask.ThrowWhen(HardResetAllCamerasTask.Duration >= Config.ErrorTime ,'HardResetAllCamerasTask error.'); + END_IF; + IF HardResetAllCamerasTask.DoneReached() THEN + Status.Action.Id := UINT#101; + Status.Error.Id := UINT#0; + ELSIF HardResetAllCamerasTask.ErrorOccured() THEN + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; + ELSIF HardResetAllCamerasTask.AbortTriggered()THEN + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; + END_IF; + Messenger.ActivateOnCondition(ULINT#10000,HardResetAllCamerasTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,HardResetAllCamerasTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#102,HardResetAllCamerasTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF HardResetAllCamerasTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN + Status.Action.Id := UINT#102; + _progress := 0; + END_IF; + //************************************************** + + //*************ResetTask*************** + ResetTask.SetIsDisabled(FALSE); + IF ResetTask.StartTriggered() THEN + Status.Action.Id := UINT#110; + END_IF; + Messenger.ActivateOnCondition(ULINT#110,ResetTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#111,ResetTask.IsDone(), eAxoMessageCategory#Info); + IF ResetTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 310; + END_IF; + + IF _progress = 310 THEN // ResetTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#510, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#510; + END_IF; + + Outputs.Control.SoftEvent.Trigger := FALSE; + Outputs.Control.SoftEvent.DataHandlerAck := FALSE; + Outputs.Control.SetUserdata := FALSE; + Outputs.Control.InitiateJobLoad := FALSE; + Outputs.Control.InspectionResultsAck := FALSE; + Inputs.Status.ReadedDataVariantSize := UINT#0; + Inputs.Status.WrittenDataVariantSize := UINT#0; + + IF (Inputs.Status.UserDataLockerJobID = (Config.CameraNo)) OR (Inputs.Status.UserDataLockerJobID = BYTE#0) THEN + THIS.CallTimers(FALSE); + _progress := 311; + ELSE + THIS.CallTimers(FALSE); + _progress := 312; + END_IF; + END_IF; + + IF _progress = 311 THEN // ResetTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#511, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#511; + END_IF; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress),value:= BYTE#0); + + //zapisovanie dat pre kameru, ]: typ spracovania dat (0 = Undefined, 1 = Zmena jobu/referencie, 2=Nacitanie parametrov0, 3=Nacitanie paramterov1,…) + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#1,value:= BYTE#0); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#2,value:= BYTE#0); + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 312; + END_IF; + END_IF; + + IF _progress = 312 THEN // ResetTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#512, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#512; + END_IF; + + IF (Inputs.Status.ReadDataLockerJobID = TO_WORD(Config.CameraNo)) OR (Inputs.Status.ReadDataLockerJobID = WORD#0) THEN + THIS.CallTimers(FALSE); + _progress := 313; + ELSE + THIS.CallTimers(FALSE); + _progress := 314; + END_IF; + END_IF; + + IF _progress = 313 THEN // ResetTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#513, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#513; + END_IF; + + Inputs.Status.ReadDataLockerJobID := BYTE#0; + Outputs.Control.JobLoadID := WORD#0; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress),bitOffset := INT#4,value:= FALSE); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#2,value:= WORD#0); + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_EngineControl_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress),bitOffset := INT#1,value:= FALSE); + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 314; + END_IF; + END_IF; + + IF _progress = 314 THEN // ResetTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#514, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#514; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 315; + END_IF; + END_IF; + + IF _progress = 315 THEN // ResetTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#515, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#515; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 316; + END_IF; + END_IF; + + IF _progress = 316 THEN // ResetTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#516, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#516; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 317; + END_IF; + END_IF; + + IF _progress = 317 THEN // ResetTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#517, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#517; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 318; + END_IF; + END_IF; + + IF _progress = 318 THEN // ResetTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#518, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#518; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 319; + END_IF; + END_IF; + + IF _progress = 319 THEN // ResetTask running: , + ResetTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + THIS.CallTimers(TRUE); + + ResetTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + ResetTask.ThrowWhen(ResetTask.Duration >= Config.ErrorTime ,'ResetTask error.'); + END_IF; + IF ResetTask.DoneReached() THEN + Status.Action.Id := UINT#111; + Status.Error.Id := UINT#0; + ELSIF ResetTask.ErrorOccured() THEN + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; + ELSIF ResetTask.AbortTriggered()THEN + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; + END_IF; + Messenger.ActivateOnCondition(ULINT#10010,ResetTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,ResetTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#112,ResetTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF ResetTask.RestoreTriggered() AND _progress >= 310 AND _progress <= 319 THEN + Status.Action.Id := UINT#112; + _progress := 0; + END_IF; + //************************************************** + + //*************TriggerTask*************** + TriggerTask.SetIsDisabled(FALSE); + IF TriggerTask.StartTriggered() THEN + Status.Action.Id := UINT#120; + END_IF; + Messenger.ActivateOnCondition(ULINT#120,TriggerTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#121,TriggerTask.IsDone(), eAxoMessageCategory#Info); + IF TriggerTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 320; + END_IF; + + IF _progress = 320 THEN // TriggerTask running: , Waiting for system ready + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#520, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#520; + END_IF; + + Outputs.Control.SoftEvent.Trigger := FALSE; + Outputs.Control.SoftEvent.Reset := FALSE; + Outputs.Control.SoftEvent.DataHandlerAck := FALSE; + + IF Inputs.Status.SystemReady THEN + THIS.CallTimers(FALSE); + _progress := 321; + END_IF; + END_IF; + + IF _progress = 321 THEN // TriggerTask running: , Waiting for online + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#521, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#521; + END_IF; + + IF Inputs.Status.Online THEN + THIS.CallTimers(FALSE); + _progress := 322; + END_IF; + END_IF; + + IF _progress = 322 THEN // TriggerTask running: , camera reset before trigger + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#522, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#522; + END_IF; + + Outputs.Control.SoftEvent.Reset := TRUE; + + IF (Inputs.Status.SoftEvent.ResetAck ) THEN + Outputs.Control.SoftEvent.Reset := FALSE; + THIS.CallTimers(FALSE); + _progress := 323; + END_IF; + END_IF; + + IF _progress = 323 THEN // TriggerTask running: , trigger set + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#523, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#523; + END_IF; + + IF NOT Inputs.Status.SoftEvent.TriggerAck THEN + Outputs.Control.SoftEvent.Trigger := TRUE; + THIS.CallTimers(FALSE); + _progress := 324; + END_IF; + END_IF; + + IF _progress = 324 THEN // TriggerTask running: , wait for trigger ack + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#524, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#524; + END_IF; + + IF Inputs.Status.SoftEvent.TriggerAck THEN + Outputs.Control.SoftEvent.Trigger := FALSE; + THIS.CallTimers(FALSE); + _progress := 325; + END_IF; + END_IF; + + IF _progress = 325 THEN // TriggerTask running: , wait for trigger ack false + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#525, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#525; + END_IF; + + IF NOT Inputs.Status.SoftEvent.TriggerAck THEN + THIS.CallTimers(FALSE); + _progress := 326; + END_IF; + END_IF; + + IF _progress = 326 THEN // TriggerTask running: , trigger done + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#526, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#526; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 327; + END_IF; + END_IF; + + IF _progress = 327 THEN // TriggerTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#527, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#527; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 328; + END_IF; + END_IF; + + IF _progress = 328 THEN // TriggerTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#528, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#528; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 329; + END_IF; + END_IF; + + IF _progress = 329 THEN // TriggerTask running: , + TriggerTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + THIS.CallTimers(TRUE); + + TriggerTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + TriggerTask.ThrowWhen(TriggerTask.Duration >= Config.ErrorTime ,'TriggerTask error.'); + END_IF; + IF TriggerTask.DoneReached() THEN + Status.Action.Id := UINT#121; + Status.Error.Id := UINT#0; + ELSIF TriggerTask.ErrorOccured() THEN + Status.Action.Id := UINT#10020; + Status.Error.Id := UINT#10020; + ELSIF TriggerTask.AbortTriggered()THEN + Status.Action.Id := UINT#10021; + Status.Error.Id := UINT#10021; + END_IF; + Messenger.ActivateOnCondition(ULINT#10020,TriggerTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10021,TriggerTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#122,TriggerTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF TriggerTask.RestoreTriggered() AND _progress >= 320 AND _progress <= 329 THEN + Status.Action.Id := UINT#122; + _progress := 0; + END_IF; + //************************************************** + + // //*************TemplateTask_10steps_4*************** + // TemplateTask_10steps_4.SetIsDisabled(FALSE); + // IF TemplateTask_10steps_4.StartTriggered() THEN + // Status.Action.Id := UINT#130; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#130,TemplateTask_10steps_4.IsBusy(), eAxoMessageCategory#Info); + // Messenger.ActivateOnCondition(ULINT#131,TemplateTask_10steps_4.IsDone(), eAxoMessageCategory#Info); + // IF TemplateTask_10steps_4.Execute(THIS) THEN + // IF _progress = 0 THEN + // Status.Error.Id := UINT#0; + // TaskMessenger.Restore(); + // THIS.CallTimers(FALSE); + // _progress := 330; + // END_IF; + + // IF _progress = 330 THEN // TemplateTask_10steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#530, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#530; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 331; + // END_IF; + // END_IF; + + // IF _progress = 331 THEN // TemplateTask_10steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#531, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#531; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 332; + // END_IF; + // END_IF; + + // IF _progress = 332 THEN // TemplateTask_10steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#532, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#532; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 333; + // END_IF; + // END_IF; + + // IF _progress = 333 THEN // TemplateTask_10steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#533, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#533; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 334; + // END_IF; + // END_IF; + + // IF _progress = 334 THEN // TemplateTask_10steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#534, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#534; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 335; + // END_IF; + // END_IF; + + // IF _progress = 335 THEN // TemplateTask_10steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#535, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#535; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 336; + // END_IF; + // END_IF; + + // IF _progress = 336 THEN // TemplateTask_10steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#536, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#536; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 337; + // END_IF; + // END_IF; + + // IF _progress = 337 THEN // TemplateTask_10steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#537, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#537; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 338; + // END_IF; + // END_IF; + + // IF _progress = 338 THEN // TemplateTask_10steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#538, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#538; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 339; + // END_IF; + // END_IF; + + // IF _progress = 339 THEN // TemplateTask_10steps_4 running: , + // TemplateTask_10steps_4.DoneWhen(TRUE); + // _progress := 0; + // END_IF; + + // THIS.CallTimers(TRUE); + + // TemplateTask_10steps_4.ThrowWhen(_errorTimer.output); + // Status.Action.Id := TO_UINT(_progress); + // TemplateTask_10steps_4.ThrowWhen(TemplateTask_10steps_4.Duration >= Config.ErrorTime ,'TemplateTask_10steps_4 error.'); + // END_IF; + // IF TemplateTask_10steps_4.DoneReached() THEN + // Status.Action.Id := UINT#131; + // Status.Error.Id := UINT#0; + // ELSIF TemplateTask_10steps_4.ErrorOccured() THEN + // Status.Action.Id := UINT#10030; + // Status.Error.Id := UINT#10030; + // ELSIF TemplateTask_10steps_4.AbortTriggered()THEN + // Status.Action.Id := UINT#10031; + // Status.Error.Id := UINT#10031; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#10030,TemplateTask_10steps_4.HasError(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#10031,TemplateTask_10steps_4.IsAborted(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#132,TemplateTask_10steps_4.RestoreTriggered() , eAxoMessageCategory#Error); + // IF TemplateTask_10steps_4.RestoreTriggered() AND _progress >= 330 AND _progress <= 339 THEN + // Status.Action.Id := UINT#132; + // _progress := 0; + // END_IF; + // //************************************************** + + // //*************TemplateTask_10steps_5*************** + // TemplateTask_10steps_5.SetIsDisabled(FALSE); + // IF TemplateTask_10steps_5.StartTriggered() THEN + // Status.Action.Id := UINT#140; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#140,TemplateTask_10steps_5.IsBusy(), eAxoMessageCategory#Info); + // Messenger.ActivateOnCondition(ULINT#141,TemplateTask_10steps_5.IsDone(), eAxoMessageCategory#Info); + // IF TemplateTask_10steps_5.Execute(THIS) THEN + // IF _progress = 0 THEN + // Status.Error.Id := UINT#0; + // TaskMessenger.Restore(); + // THIS.CallTimers(FALSE); + // _progress := 340; + // END_IF; + + // IF _progress = 340 THEN // TemplateTask_10steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#540, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#540; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 341; + // END_IF; + // END_IF; + + // IF _progress = 341 THEN // TemplateTask_10steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#541, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#541; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 342; + // END_IF; + // END_IF; + + // IF _progress = 342 THEN // TemplateTask_10steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#542, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#542; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 343; + // END_IF; + // END_IF; + + // IF _progress = 343 THEN // TemplateTask_10steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#543, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#543; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 344; + // END_IF; + // END_IF; + + // IF _progress = 344 THEN // TemplateTask_10steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#544, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#544; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 345; + // END_IF; + // END_IF; + + // IF _progress = 345 THEN // TemplateTask_10steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#545, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#545; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 346; + // END_IF; + // END_IF; + + // IF _progress = 346 THEN // TemplateTask_10steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#546, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#546; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 347; + // END_IF; + // END_IF; + + // IF _progress = 347 THEN // TemplateTask_10steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#547, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#547; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 348; + // END_IF; + // END_IF; + + // IF _progress = 348 THEN // TemplateTask_10steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#548, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#548; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 349; + // END_IF; + // END_IF; + + // IF _progress = 349 THEN // TemplateTask_10steps_5 running: , + // TemplateTask_10steps_5.DoneWhen(TRUE); + // _progress := 0; + // END_IF; + + // THIS.CallTimers(TRUE); + + // TemplateTask_10steps_5.ThrowWhen(_errorTimer.output); + // Status.Action.Id := TO_UINT(_progress); + // TemplateTask_10steps_5.ThrowWhen(TemplateTask_10steps_5.Duration >= Config.ErrorTime ,'TemplateTask_10steps_5 error.'); + // END_IF; + // IF TemplateTask_10steps_5.DoneReached() THEN + // Status.Action.Id := UINT#141; + // Status.Error.Id := UINT#0; + // ELSIF TemplateTask_10steps_5.ErrorOccured() THEN + // Status.Action.Id := UINT#10040; + // Status.Error.Id := UINT#10040; + // ELSIF TemplateTask_10steps_5.AbortTriggered()THEN + // Status.Action.Id := UINT#10041; + // Status.Error.Id := UINT#10041; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#10040,TemplateTask_10steps_5.HasError(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#10041,TemplateTask_10steps_5.IsAborted(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#142,TemplateTask_10steps_5.RestoreTriggered() , eAxoMessageCategory#Error); + // IF TemplateTask_10steps_5.RestoreTriggered() AND _progress >= 340 AND _progress <= 349 THEN + // Status.Action.Id := UINT#142; + // _progress := 0; + // END_IF; + // //************************************************** + + // //*************TemplateTask_10steps_6*************** + // TemplateTask_10steps_6.SetIsDisabled(FALSE); + // IF TemplateTask_10steps_6.StartTriggered() THEN + // Status.Action.Id := UINT#150; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#150,TemplateTask_10steps_6.IsBusy(), eAxoMessageCategory#Info); + // Messenger.ActivateOnCondition(ULINT#151,TemplateTask_10steps_6.IsDone(), eAxoMessageCategory#Info); + // IF TemplateTask_10steps_6.Execute(THIS) THEN + // IF _progress = 0 THEN + // Status.Error.Id := UINT#0; + // TaskMessenger.Restore(); + // THIS.CallTimers(FALSE); + // _progress := 350; + // END_IF; + + // IF _progress = 350 THEN // TemplateTask_10steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#550, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#550; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 351; + // END_IF; + // END_IF; + + // IF _progress = 351 THEN // TemplateTask_10steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#551, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#551; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 352; + // END_IF; + // END_IF; + + // IF _progress = 352 THEN // TemplateTask_10steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#552, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#552; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 335; + // END_IF; + // END_IF; + + // IF _progress = 353 THEN // TemplateTask_10steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#553, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#553; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 354; + // END_IF; + // END_IF; + + // IF _progress = 354 THEN // TemplateTask_10steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#554, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#554; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 355; + // END_IF; + // END_IF; + + // IF _progress = 355 THEN // TemplateTask_10steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#555, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#555; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 356; + // END_IF; + // END_IF; + + // IF _progress = 356 THEN // TemplateTask_10steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#556, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#556; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 357; + // END_IF; + // END_IF; + + // IF _progress = 357 THEN // TemplateTask_10steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#557, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#557; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 358; + // END_IF; + // END_IF; + + // IF _progress = 358 THEN // TemplateTask_10steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#558, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#558; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 359; + // END_IF; + // END_IF; + + // IF _progress = 359 THEN // TemplateTask_10steps_6 running: , + // TemplateTask_10steps_6.DoneWhen(TRUE); + // _progress := 0; + // END_IF; + + // THIS.CallTimers(TRUE); + + // TemplateTask_10steps_6.ThrowWhen(_errorTimer.output); + // Status.Action.Id := TO_UINT(_progress); + // TemplateTask_10steps_6.ThrowWhen(TemplateTask_10steps_6.Duration >= Config.ErrorTime ,'TemplateTask_10steps_6 error.'); + // END_IF; + // IF TemplateTask_10steps_6.DoneReached() THEN + // Status.Action.Id := UINT#151; + // Status.Error.Id := UINT#0; + // ELSIF TemplateTask_10steps_6.ErrorOccured() THEN + // Status.Action.Id := UINT#10050; + // Status.Error.Id := UINT#10050; + // ELSIF TemplateTask_10steps_6.AbortTriggered()THEN + // Status.Action.Id := UINT#10051; + // Status.Error.Id := UINT#10051; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#10050,TemplateTask_10steps_6.HasError(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#10051,TemplateTask_10steps_6.IsAborted(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#152,TemplateTask_10steps_6.RestoreTriggered() , eAxoMessageCategory#Error); + // IF TemplateTask_10steps_6.RestoreTriggered() AND _progress >= 350 AND _progress <= 359 THEN + // Status.Action.Id := UINT#152; + // _progress := 0; + // END_IF; + // //************************************************** + + //*************ReadResultsTask*************** + ReadResultsTask.SetIsDisabled(FALSE); + IF ReadResultsTask.StartTriggered() THEN + Status.Action.Id := UINT#160; + END_IF; + Messenger.ActivateOnCondition(ULINT#160,ReadResultsTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#161,ReadResultsTask.IsDone(), eAxoMessageCategory#Info); + IF ReadResultsTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 360; + END_IF; + + IF _progress = 360 THEN // ReadResultsTask running: , Waiting for system ready + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#560, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#560; + END_IF; + + IF Inputs.Status.SystemReady THEN + THIS.CallTimers(FALSE); + _progress := 361; + END_IF; + END_IF; + + IF _progress = 361 THEN // ReadResultsTask running: , Waiting for online + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#561, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#561; + END_IF; + + IF Inputs.Status.Online THEN + THIS.CallTimers(FALSE); + _progress := 362; + END_IF; + END_IF; + + IF _progress = 362 THEN // ReadResultsTask running: , check correct JOBID + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#562, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#562; + END_IF; + + IF (_readResultsJobID >= BYTE#0) AND (_readResultsJobID < BYTE#10) THEN + THIS.CallTimers(FALSE); + _progress := 363; + END_IF; + END_IF; + + IF _progress = 363 THEN // ReadResultsTask running: , Wait for free Data Buffer + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#563, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#563; + END_IF; + + // PLC nastavi na User Data ID inspekcie, ID operacie a User Data (cislo jobu, seriove cislo kusu, tolerancie). + // V dalsom kroku nastavi SetUserData bit a caka na potrvdenie prevzatia dat pomocou UserDataAck. + // Akonahle dostane UserDataAck, moze resetnut SetUserData bit a UserData prepisovat pre inu inspekciu. + + IF (Inputs.Status.ReadDataLockerJobID = BYTE#0 OR (Inputs.Status.ReadDataLockerJobID = Config.CameraNo)) + AND (NOT Inputs.Status.JobLoadComplete) THEN + + Outputs.Control.JobLoadID := TO_BYTE(TO_UINT(_readResultsJobID) + (TO_UINT(Config.CameraNo) * UINT#10)); //nastavenie ID podla jobuID 50-59 pre kameru 5 + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#2,value:= Outputs.Control.JobLoadID); + _progress := 364; + END_IF; + + END_IF; + + IF _progress = 364 THEN // ReadResultsTask running: , Lock Data Buffer + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#564, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#564; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 365; + END_IF; + END_IF; + + IF _progress = 365 THEN // ReadResultsTask running: , set bit user data + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#565, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#565; + END_IF; + + Outputs.Control.InitiateJobLoad := TRUE; + _Clock_1Hz.Blink(THIS,TIME#500MS,TIME#500MS); + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress),bitOffset := INT#4,value:= _Clock_1Hz.output); + IF (Inputs.Status.CurentJobID = Outputs.Control.JobLoadID) AND Outputs.Control.JobLoadID > WORD#0 AND + Inputs.Status.CurentJobID > BYTE#0 AND Inputs.Status.JobLoadComplete THEN + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress),bitOffset := INT#4,value:= FALSE); // ??? not in original code, but probably it should be reseted here + THIS.CallTimers(FALSE); + _progress := 366; + END_IF; + END_IF; + + IF _progress = 366 THEN // ReadResultsTask running: , wait for result valid + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#566, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#566; + END_IF; + + IF Inputs.Status.ResultValid THEN + THIS.CallTimers(FALSE); + _progress := 367; + END_IF; + END_IF; + + IF _progress = 367 THEN // ReadResultsTask running: , calculate size variant data + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#567, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#567; + END_IF; + Inputs.Status.ReadedDataVariantSize := _readResultsLength; + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 368; + END_IF; + END_IF; + + IF _progress = 368 THEN // ReadResultsTask running: , check HW correct config + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#568, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#568; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 369; + END_IF; + END_IF; + + IF _progress = 369 THEN // ReadResultsTask running: , move data from HW to byte buffer + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#569, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#569; + END_IF; + + IF _readResultsLength = UINT#0 THEN + TaskMessenger.Activate( UINT#1303, eAxoMessageCategory#Error); + Status.Error.Id:= UINT#1303; + RETURN; + END_IF; + + CASE THIS._readResultsLength OF + UINT#1..UINT#240: // Statement section case 1 + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO _readResultsLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index]); + END_FOR; + + FOR index := _readResultsLength TO UINT#1300 DO + _data_in_1301[index] := BYTE#0; + END_FOR; + + UINT#241..UINT#480: + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#239 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := 240 TO _readResultsLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#240]); + END_FOR; + + FOR index := _readResultsLength TO UINT#1300 DO + _data_in_1301[index] := BYTE#0; + END_FOR; + + UINT#481..UINT#720: + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#239 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#240 TO UINT#479 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#240]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#480 TO _readResultsLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + FOR index := _readResultsLength TO UINT#1300 DO + _data_in_1301[index] := BYTE#0; + END_FOR; + + UINT#721..UINT#960: + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#239 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#240 TO UINT#479 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#240]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#480 TO UINT#719 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_4),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#720 TO _readResultsLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + FOR index := _readResultsLength TO UINT#1300 DO + _data_in_1301[index] := BYTE#0; + END_FOR; + + UINT#961..UINT#1200: + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#239 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#240 TO UINT#479 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#240]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#480 TO UINT#719 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_4),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#720 TO UINT#960 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_5),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#961 TO _readResultsLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + FOR index := _readResultsLength TO UINT#1300 DO + _data_in_1301[index] := BYTE#0; + END_FOR; + + UINT#1201..UINT#1264: + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#239 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#240 TO UINT#479 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#240]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#480 TO UINT#719 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_4),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#720 TO UINT#960 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_240B_5),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#961 TO _readResultsLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_Results_64B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#1201 TO _readResultsLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + ReadMemory(area := ReadArea#Input,byteOffset := TO_DINT(inputsAddress) + TO_DINT(index), value => _data_in_1301[index - UINT#480]); + END_FOR; + + FOR index := _readResultsLength TO UINT#1300 DO + _data_in_1301[index] := BYTE#0; + END_FOR; + + ELSE + TaskMessenger.Activate( UINT#1304, eAxoMessageCategory#Error); + Status.Error.Id:= UINT#1304; + END_CASE; + THIS.ResultData.Data := _data_in_1301; + THIS.ResultData.ToggleDataChangedFlag(); + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 370; + END_IF; + END_IF; + + IF _progress = 370 THEN // ReadResultsTask running: , Read Data + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#570, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#570; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 371; + END_IF; + END_IF; + + IF _progress = 371 THEN // ReadResultsTask running: , set release result data ack + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#571, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#571; + END_IF; + + Outputs.Control.InspectionResultsAck := TRUE; + Outputs.Control.InitiateJobLoad := FALSE; + + Outputs.Control.JobLoadID := BYTE#0; + + IF NOT Inputs.Status.ResultValid THEN + Outputs.Control.InspectionResultsAck := false; + THIS.CallTimers(FALSE); + _progress := 372; + END_IF; + END_IF; + + IF _progress = 372 THEN // ReadResultsTask running: , set for free Data Buffer + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#572, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#572; + END_IF; + + Outputs.Control.JobLoadID := BYTE#0; + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#2, value:= Outputs.Control.JobLoadID); + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 373; + END_IF; + END_IF; + + IF _progress = 373 THEN // ReadResultsTask running: , set bit user data + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#573, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#573; + END_IF; + + Outputs.Control.InitiateJobLoad := TRUE; + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := 4, value:= Outputs.Control.InitiateJobLoad); + + IF (Inputs.Status.CurentJobID = WORD#0) AND Inputs.Status.JobLoadComplete THEN + Outputs.Control.InitiateJobLoad := FALSE; + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := 4, value:= Outputs.Control.InitiateJobLoad); + THIS.CallTimers(FALSE); + _progress := 374; + END_IF; + END_IF; + + IF _progress = 374 THEN // ReadResultsTask running: , set release Locker + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#574, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#574; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 375; + END_IF; + END_IF; + + IF _progress = 375 THEN // ReadResultsTask running: , Result ack + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#575, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#575; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 376; + END_IF; + END_IF; + + IF _progress = 376 THEN // ReadResultsTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#576, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#576; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 377; + END_IF; + END_IF; + + IF _progress = 377 THEN // ReadResultsTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#577, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#577; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 378; + END_IF; + END_IF; + + IF _progress = 378 THEN // ReadResultsTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#578, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#578; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 379; + END_IF; + END_IF; + + IF _progress = 379 THEN // ReadResultsTask running: , + ReadResultsTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + THIS.CallTimers(TRUE); + ReadResultsTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + ReadResultsTask.ThrowWhen(ReadResultsTask.Duration >= Config.ErrorTime ,'ReadResultsTask error.'); + END_IF; + IF ReadResultsTask.DoneReached() THEN + Status.Action.Id := UINT#161; + Status.Error.Id := UINT#0; + ELSIF ReadResultsTask.ErrorOccured() THEN + Status.Action.Id := UINT#10060; + Status.Error.Id := UINT#10060; + ELSIF ReadResultsTask.AbortTriggered()THEN + Status.Action.Id := UINT#10061; + Status.Error.Id := UINT#10061; + END_IF; + Messenger.ActivateOnCondition(ULINT#10060,ReadResultsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10061,ReadResultsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#162,ReadResultsTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF ReadResultsTask.RestoreTriggered() AND _progress >= 360 AND _progress <= 379 THEN + Status.Action.Id := UINT#162; + _progress := 0; + END_IF; + //************************************************** + + //*************SendDataTask*************** + SendDataTask.SetIsDisabled(FALSE); + IF SendDataTask.StartTriggered() THEN + Status.Action.Id := UINT#180; + END_IF; + Messenger.ActivateOnCondition(ULINT#180,SendDataTask.IsBusy(), eAxoMessageCategory#Info); + Messenger.ActivateOnCondition(ULINT#181,SendDataTask.IsDone(), eAxoMessageCategory#Info); + IF SendDataTask.Execute(THIS) THEN + IF _progress = 0 THEN + Status.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + _progress := 380; + END_IF; + + IF _progress = 380 THEN // SendDataTask running: , Waiting for system ready + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#580, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#580; + END_IF; + //Userdata buffer sa plnia prve 4 bajty informacne, data su od 4 a viac. + //(0 = Undefined, 1 = Zmena jobu/referencie, 2=Nacitanie data + + Outputs.Control.SoftEvent.Reset := FALSE; + Outputs.Control.SoftEvent.DataHandlerAck := FALSE; + + IF Inputs.Status.SystemReady THEN + THIS.CallTimers(FALSE); + _progress := 381; + END_IF; + END_IF; + + IF _progress = 381 THEN // SendDataTask running: , Waiting for online + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#581, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#581; + END_IF; + + IF Inputs.Status.Online THEN + THIS.CallTimers(FALSE); + _progress := 382; + END_IF; + END_IF; + + IF _progress = 382 THEN // SendDataTask running: , Wait for free Data Buffer + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#582, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#582; + END_IF; + // PLC nastavi na User Data ID inspekcie, ID operacie a User Data (cislo jobu, seriove cislo kusu, tolerancie). + // V dalsom kroku nastavi SetUserData bit a caka na potrvdenie prevzatia dat pomocou UserDataAck. + // Akonahle dostane UserDataAck, moze resetnut SetUserData bit a UserData prepisovat pre inu inspekciu. + Outputs.Control.WriteDataID := TO_BYTE(TO_UINT(_sendDataBufferID) + (TO_UINT(Config.CameraNo) * UINT#10)); + + IF Inputs.Status.UserDataLockerJobID = BYTE#0 OR (Inputs.Status.UserDataLockerJobID = Config.CameraNo) THEN + THIS.CallTimers(FALSE); + _progress := 383; + END_IF; + END_IF; + + IF _progress = 383 THEN // SendDataTask running: , Lock Data Buffer + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#583, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#583; + END_IF; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress + UDINT#0), value:= Outputs.Control.WriteDataID); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress + UDINT#1),value:= _sendDataInspectionType); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress + UDINT#2),value:= _sendDataJobID); + + IF (Inputs.Status.UserDataLockerJobID = Config.CameraNo) THEN // IF (Inputs.Status.UserDataLockerJobID = Config.CameraNo) THEN + THIS.CallTimers(FALSE); + _progress := 384; + END_IF; + END_IF; + + IF _progress = 384 THEN // SendDataTask running: , serialize User data DATA + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#584, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#584; + END_IF; + + Inputs.Status.WrittenDataVariantSize := _sendDataLength; + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 385; + END_IF; + END_IF; + + IF _progress = 385 THEN // SendDataTask running: , check HW correct config + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#585, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#585; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 386; + END_IF; + END_IF; + + IF _progress = 386 THEN // SendDataTask running: , Fill User DATA + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#586, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#586; + END_IF; + IF _sendDataLength = UINT#0 THEN + TaskMessenger.Activate( UINT#1305, eAxoMessageCategory#Error); + Status.Error.Id:= UINT#1305; + RETURN; + END_IF; + + CASE _sendDataLength OF + UINT#1..UINT#235: // Statement section case 1 + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO _sendDataLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#4 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + FOR index := _sendDataLength TO UINT#235 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#4 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#236 TO UINT#475 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#236 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#476 TO UINT#715 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#476 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_4),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#716 TO UINT#955 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#716 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_5),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#956 TO UINT#1195 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#956 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_64B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#1196 TO UINT#1263 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#1196 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + UINT#236..UINT#475: // Statement section case 1 + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#235 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#4 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#236 TO _sendDataLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#236 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + FOR index := _sendDataLength TO UINT#475 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#236 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#476 TO UINT#715 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#476 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_4),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#716 TO UINT#955 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#716 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_5),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#956 TO UINT#1195 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#956 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_64B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#1196 TO UINT#1263 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#1196 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + UINT#476..UINT#715: + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#235 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#4 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#236 TO UINT#475 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#236 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#476 TO _sendDataLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#476 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + FOR index := _sendDataLength TO UINT#715 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#476 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_4),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#716 TO UINT#955 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#716 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_5),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#956 TO UINT#1195 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#956 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_64B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#1196 TO UINT#1263 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#1196 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + UINT#716..UINT#955: + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#235 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#4 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#236 TO UINT#475 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#236 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#476 TO UINT#715 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#476 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_4),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#716 TO _sendDataLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#716 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + FOR index := _sendDataLength TO UINT#955 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#716 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_5),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#956 TO UINT#1195 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#956 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_64B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#1196 TO UINT#1263 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#1196 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + UINT#956..UINT#1195: + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#235 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#4 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#236 TO UINT#475 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#236 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#476 TO UINT#715 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#476 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_4),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#716 TO UINT#955 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#716 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_5),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#956 TO _sendDataLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#956 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + FOR index := _sendDataLength TO UINT#1195 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#956 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_64B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#1196 TO UINT#1259 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#1196 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + UINT#1196..UINT#1260: + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#0 TO UINT#235 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#4 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_2),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#236 TO UINT#475 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#236 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_3),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#476 TO UINT#715 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#476 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_4),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#716 TO UINT#955 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#716 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_5),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#956 TO UINT#1195 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#956 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_64B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + FOR index := UINT#1196 TO _sendDataLength - UINT#1 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#1196 + TO_DINT(index),value:= _data_out_1301[index]); + END_FOR; + + FOR index := _sendDataLength TO UINT#1263 DO //nacitavanie tolko dat kolko treba do buffra. + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) - DINT#1196 + TO_DINT(index),value:= BYTE#0); + END_FOR; + + + ELSE + TaskMessenger.Activate( UINT#1306, eAxoMessageCategory#Error); + Status.Error.Id:= UINT#1306; + END_CASE; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 387; + END_IF; + END_IF; + + IF _progress = 387 THEN // SendDataTask running: , set bit user data + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#587, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#587; + END_IF; + + IF NOT Inputs.Status.SetUserDataAck THEN + Outputs.Control.SetUserdata := TRUE; + THIS.CallTimers(FALSE); + _progress := 388; + END_IF; + END_IF; + + IF _progress = 388 THEN // SendDataTask running: , wait for confirm user data ack + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#588, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#588; + END_IF; + + IF Inputs.Status.SetUserDataAck THEN + Outputs.Control.SetUserdata := FALSE; + THIS.CallTimers(FALSE); + _progress := 389; + END_IF; + END_IF; + + IF _progress = 389 THEN // SendDataTask running: , wait for release user data ack + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#589, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#589; + END_IF; + + IF NOT Inputs.Status.SetUserDataAck THEN + THIS.CallTimers(FALSE); + _progress := 390; + END_IF; + END_IF; + + IF _progress = 390 THEN // SendDataTask running: , wait for release user data ack + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#590, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#590; + END_IF; + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_UserData_240B_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#0,value:= BYTE#0); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#1,value:= BYTE#0); + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 391; + END_IF; + END_IF; + + IF _progress = 391 THEN // SendDataTask running: , data handler set + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#591, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#591; + END_IF; + + IF NOT Inputs.Status.SoftEvent.DataHandlerDone THEN + Outputs.Control.SoftEvent.DataHandlerAck := TRUE; + THIS.CallTimers(FALSE); + _progress := 392; + END_IF; + END_IF; + + IF _progress = 392 THEN // SendDataTask running: , wait for data handler ack + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#592, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#592; + END_IF; + + IF Inputs.Status.SoftEvent.DataHandlerDone THEN + Outputs.Control.SoftEvent.DataHandlerAck := FALSE; + THIS.CallTimers(FALSE); + _progress := 393; + END_IF; + END_IF; + + IF _progress = 393 THEN // SendDataTask running: , wait for data handler ack false + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#593, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#593; + END_IF; + + IF NOT Inputs.Status.SoftEvent.DataHandlerDone THEN + THIS.CallTimers(FALSE); + _progress := 394; + END_IF; + END_IF; + + IF _progress = 394 THEN // SendDataTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#594, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#594; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 395; + END_IF; + END_IF; + + IF _progress = 395 THEN // SendDataTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#595, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#595; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 396; + END_IF; + END_IF; + + IF _progress = 396 THEN // SendDataTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#596, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#596; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 397; + END_IF; + END_IF; + + IF _progress = 397 THEN // SendDataTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#597, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#597; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 398; + END_IF; + END_IF; + + IF _progress = 398 THEN // SendDataTask running: , + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#598, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#598; + END_IF; + + IF TRUE THEN + THIS.CallTimers(FALSE); + _progress := 399; + END_IF; + END_IF; + + IF _progress = 399 THEN // SendDataTask running: , + SendDataTask.DoneWhen(TRUE); + _progress := 0; + END_IF; + + THIS.CallTimers(TRUE); + + SendDataTask.ThrowWhen(_errorTimer.output); + Status.Action.Id := TO_UINT(_progress); + SendDataTask.ThrowWhen(SendDataTask.Duration >= Config.ErrorTime ,'SendDataTask error.'); + END_IF; + IF SendDataTask.DoneReached() THEN + Status.Action.Id := UINT#181; + Status.Error.Id := UINT#0; + ELSIF SendDataTask.ErrorOccured() THEN + Status.Action.Id := UINT#10080; + Status.Error.Id := UINT#10080; + ELSIF SendDataTask.AbortTriggered()THEN + Status.Action.Id := UINT#10081; + Status.Error.Id := UINT#10081; + END_IF; + Messenger.ActivateOnCondition(ULINT#10080,SendDataTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10081,SendDataTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#182,SendDataTask.RestoreTriggered() , eAxoMessageCategory#Error); + IF SendDataTask.RestoreTriggered() AND _progress >= 380 AND _progress <= 399 THEN + Status.Action.Id := UINT#182; + _progress := 0; + END_IF; + //************************************************** + + // //*************TemplateTask_20steps_3*************** + // TemplateTask_20steps_3.SetIsDisabled(FALSE); + // IF TemplateTask_20steps_3.StartTriggered() THEN + // Status.Action.Id := UINT#200; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#200,TemplateTask_20steps_3.IsBusy(), eAxoMessageCategory#Info); + // Messenger.ActivateOnCondition(ULINT#201,TemplateTask_20steps_3.IsDone(), eAxoMessageCategory#Info); + // IF TemplateTask_20steps_3.Execute(THIS) THEN + // IF _progress = 0 THEN + // Status.Error.Id := UINT#0; + // TaskMessenger.Restore(); + // THIS.CallTimers(FALSE); + // _progress := 400; + // END_IF; + + // IF _progress = 400 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#600, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#600; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 401; + // END_IF; + // END_IF; + + // IF _progress = 401 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#601, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#601; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 402; + // END_IF; + // END_IF; + + // IF _progress = 402 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#602, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#602; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 403; + // END_IF; + // END_IF; + + // IF _progress = 403 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#603, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#603; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 404; + // END_IF; + // END_IF; + + // IF _progress = 404 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#604, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#604; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 405; + // END_IF; + // END_IF; + + // IF _progress = 405 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#605, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#605; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 406; + // END_IF; + // END_IF; + + // IF _progress = 406 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#606, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#606; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 407; + // END_IF; + // END_IF; + + // IF _progress = 407 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#607, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#607; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 408; + // END_IF; + // END_IF; + + // IF _progress = 408 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#608, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#608; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 409; + // END_IF; + // END_IF; + + // IF _progress = 409 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#609, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#609; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 410; + // END_IF; + // END_IF; + + // IF _progress = 410 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#610, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#610; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 411; + // END_IF; + // END_IF; + + // IF _progress = 411 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#611, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#611; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 412; + // END_IF; + // END_IF; + + // IF _progress = 412 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#612, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#612; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 413; + // END_IF; + // END_IF; + + // IF _progress = 413 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#613, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#613; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 414; + // END_IF; + // END_IF; + + // IF _progress = 414 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#614, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#614; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 415; + // END_IF; + // END_IF; + + // IF _progress = 415 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#615, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#615; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 416; + // END_IF; + // END_IF; + + // IF _progress = 416 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#616, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#616; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 417; + // END_IF; + // END_IF; + + // IF _progress = 417 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#617, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#617; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 418; + // END_IF; + // END_IF; + + // IF _progress = 418 THEN // TemplateTask_20steps_3 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#618, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#618; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 419; + // END_IF; + // END_IF; + + // IF _progress = 419 THEN // TemplateTask_20steps_3 running: , + // TemplateTask_20steps_3.DoneWhen(TRUE); + // _progress := 0; + // END_IF; + + // THIS.CallTimers(TRUE); + + // TemplateTask_20steps_3.ThrowWhen(_errorTimer.output); + // Status.Action.Id := TO_UINT(_progress); + // TemplateTask_20steps_3.ThrowWhen(TemplateTask_20steps_3.Duration >= Config.ErrorTime ,'TemplateTask_20steps_3 error.'); + // END_IF; + // IF TemplateTask_20steps_3.DoneReached() THEN + // Status.Action.Id := UINT#201; + // Status.Error.Id := UINT#0; + // ELSIF TemplateTask_20steps_3.ErrorOccured() THEN + // Status.Action.Id := UINT#10100; + // Status.Error.Id := UINT#10100; + // ELSIF TemplateTask_20steps_3.AbortTriggered()THEN + // Status.Action.Id := UINT#10101; + // Status.Error.Id := UINT#10101; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#10100,TemplateTask_20steps_3.HasError(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#10101,TemplateTask_20steps_3.IsAborted(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#202,TemplateTask_20steps_3.RestoreTriggered() , eAxoMessageCategory#Error); + // IF TemplateTask_20steps_3.RestoreTriggered() AND _progress >= 400 AND _progress <= 419 THEN + // Status.Action.Id := UINT#202; + // _progress := 0; + // END_IF; + // //************************************************** + + // //*************TemplateTask_20steps_4*************** + // TemplateTask_20steps_4.SetIsDisabled(FALSE); + // IF TemplateTask_20steps_4.StartTriggered() THEN + // Status.Action.Id := UINT#220; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#220,TemplateTask_20steps_4.IsBusy(), eAxoMessageCategory#Info); + // Messenger.ActivateOnCondition(ULINT#221,TemplateTask_20steps_4.IsDone(), eAxoMessageCategory#Info); + // IF TemplateTask_20steps_4.Execute(THIS) THEN + // IF _progress = 0 THEN + // Status.Error.Id := UINT#0; + // TaskMessenger.Restore(); + // THIS.CallTimers(FALSE); + // _progress := 420; + // END_IF; + + // IF _progress = 420 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#620, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#620; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 421; + // END_IF; + // END_IF; + + // IF _progress = 421 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#621, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#621; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 422; + // END_IF; + // END_IF; + + // IF _progress = 422 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#622, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#622; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 423; + // END_IF; + // END_IF; + + // IF _progress = 423 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#623, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#623; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 424; + // END_IF; + // END_IF; + + // IF _progress = 424 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#624, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#624; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 425; + // END_IF; + // END_IF; + + // IF _progress = 425 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#625, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#625; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 426; + // END_IF; + // END_IF; + + // IF _progress = 426 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#626, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#626; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 427; + // END_IF; + // END_IF; + + // IF _progress = 427 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#627, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#627; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 428; + // END_IF; + // END_IF; + + // IF _progress = 428 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#628, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#628; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 429; + // END_IF; + // END_IF; + + // IF _progress = 429 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#629, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#629; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 430; + // END_IF; + // END_IF; + + // IF _progress = 430 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#630, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#630; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 431; + // END_IF; + // END_IF; + + // IF _progress = 431 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#631, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#631; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 432; + // END_IF; + // END_IF; + + // IF _progress = 432 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#632, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#632; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 433; + // END_IF; + // END_IF; + + // IF _progress = 433 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#633, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#633; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 434; + // END_IF; + // END_IF; + + // IF _progress = 434 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#634, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#634; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 435; + // END_IF; + // END_IF; + + // IF _progress = 435 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#635, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#635; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 436; + // END_IF; + // END_IF; + + // IF _progress = 436 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#636, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#636; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 437; + // END_IF; + // END_IF; + + // IF _progress = 437 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#637, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#637; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 438; + // END_IF; + // END_IF; + + // IF _progress = 438 THEN // TemplateTask_20steps_4 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#638, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#638; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 439; + // END_IF; + // END_IF; + + // IF _progress = 439 THEN // TemplateTask_20steps_4 running: , + // TemplateTask_20steps_4.DoneWhen(TRUE); + // _progress := 0; + // END_IF; + + // THIS.CallTimers(TRUE); + + // TemplateTask_20steps_4.ThrowWhen(_errorTimer.output); + // Status.Action.Id := TO_UINT(_progress); + // TemplateTask_20steps_4.ThrowWhen(TemplateTask_20steps_4.Duration >= Config.ErrorTime ,'TemplateTask_20steps_4 error'); + // END_IF; + // IF TemplateTask_20steps_4.DoneReached() THEN + // Status.Action.Id := UINT#221; + // Status.Error.Id := UINT#0; + // ELSIF TemplateTask_20steps_4.ErrorOccured() THEN + // Status.Action.Id := UINT#10120; + // Status.Error.Id := UINT#10120; + // ELSIF TemplateTask_20steps_4.AbortTriggered()THEN + // Status.Action.Id := UINT#10121; + // Status.Error.Id := UINT#10121; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#10120,TemplateTask_20steps_4.HasError(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#10121,TemplateTask_20steps_4.IsAborted(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#222,TemplateTask_20steps_4.RestoreTriggered() , eAxoMessageCategory#Error); + // IF TemplateTask_20steps_4.RestoreTriggered() AND _progress >= 420 AND _progress <= 439 THEN + // Status.Action.Id := UINT#222; + // _progress := 0; + // END_IF; + // //************************************************** + + // //*************TemplateTask_20steps_5*************** + // TemplateTask_20steps_5.SetIsDisabled(FALSE); + // IF TemplateTask_20steps_5.StartTriggered() THEN + // Status.Action.Id := UINT#240; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#240,TemplateTask_20steps_5.IsBusy(), eAxoMessageCategory#Info); + // Messenger.ActivateOnCondition(ULINT#241,TemplateTask_20steps_5.IsDone(), eAxoMessageCategory#Info); + // IF TemplateTask_20steps_5.Execute(THIS) THEN + // IF _progress = 0 THEN + // Status.Error.Id := UINT#0; + // TaskMessenger.Restore(); + // THIS.CallTimers(FALSE); + // _progress := 440; + // END_IF; + + // IF _progress = 440 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#640, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#640; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 441; + // END_IF; + // END_IF; + + // IF _progress = 441 THEN // TemplateTask_20steps_5 running , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#641, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#641; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 442; + // END_IF; + // END_IF; + + // IF _progress = 442 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#642, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#642; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 443; + // END_IF; + // END_IF; + + // IF _progress = 443 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#643, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#643; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 444; + // END_IF; + // END_IF; + + // IF _progress = 444 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#644, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#644; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 445; + // END_IF; + // END_IF; + + // IF _progress = 445 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#645, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#645; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 446; + // END_IF; + // END_IF; + + // IF _progress = 446 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#646, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#646; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 447; + // END_IF; + // END_IF; + + // IF _progress = 447 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#647, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#647; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 448; + // END_IF; + // END_IF; + + // IF _progress = 448 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#648, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#648; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 449; + // END_IF; + // END_IF; + + // IF _progress = 449 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#649, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#649; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 450; + // END_IF; + // END_IF; + + // IF _progress = 450 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#650, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#650; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 451; + // END_IF; + // END_IF; + + // IF _progress = 451 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#651, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#651; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 452; + // END_IF; + // END_IF; + + // IF _progress = 452 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#652, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#652; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 453; + // END_IF; + // END_IF; + + // IF _progress = 453 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#653, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#653; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 454; + // END_IF; + // END_IF; + + // IF _progress = 454 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#654, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#654; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 455; + // END_IF; + // END_IF; + + // IF _progress = 455 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#655, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#655; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 456; + // END_IF; + // END_IF; + + // IF _progress = 456 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#656, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#656; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 457; + // END_IF; + // END_IF; + + // IF _progress = 457 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#657, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#657; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 458; + // END_IF; + // END_IF; + + // IF _progress = 458 THEN // TemplateTask_20steps_5 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#658, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#658; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 459; + // END_IF; + // END_IF; + + // IF _progress = 459 THEN // TemplateTask_20steps_5 running: , + // TemplateTask_20steps_5.DoneWhen(TRUE); + // _progress := 0; + // END_IF; + + // THIS.CallTimers(TRUE); + + // TemplateTask_20steps_5.ThrowWhen(_errorTimer.output); + // Status.Action.Id := TO_UINT(_progress); + // TemplateTask_20steps_5.ThrowWhen(TemplateTask_20steps_5.Duration >= Config.ErrorTime ,'TemplateTask_20steps_5 error.'); + // END_IF; + // IF TemplateTask_20steps_5.DoneReached() THEN + // Status.Action.Id := UINT#241; + // Status.Error.Id := UINT#0; + // ELSIF TemplateTask_20steps_5.ErrorOccured() THEN + // Status.Action.Id := UINT#10140; + // Status.Error.Id := UINT#10140; + // ELSIF TemplateTask_20steps_5.AbortTriggered()THEN + // Status.Action.Id := UINT#10141; + // Status.Error.Id := UINT#10141; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#10140,TemplateTask_20steps_5.HasError(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#10141,TemplateTask_20steps_5.IsAborted(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#242,TemplateTask_20steps_5.RestoreTriggered() , eAxoMessageCategory#Error); + // IF TemplateTask_20steps_5.RestoreTriggered() AND _progress >= 440 AND _progress <= 459 THEN + // Status.Action.Id := UINT#242; + // _progress := 0; + // END_IF; + // //************************************************** + + // //*************TemplateTask_20steps_6*************** + // TemplateTask_20steps_6.SetIsDisabled(FALSE); + // IF TemplateTask_20steps_6.StartTriggered() THEN + // Status.Action.Id := UINT#260; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#260,TemplateTask_20steps_6.IsBusy(), eAxoMessageCategory#Info); + // Messenger.ActivateOnCondition(ULINT#261,TemplateTask_20steps_6.IsDone(), eAxoMessageCategory#Info); + // IF TemplateTask_20steps_6.Execute(THIS) THEN + // IF _progress = 0 THEN + // Status.Error.Id := UINT#0; + // TaskMessenger.Restore(); + // THIS.CallTimers(FALSE); + // _progress := 460; + // END_IF; + + // IF _progress = 460 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#660, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#660; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 461; + // END_IF; + // END_IF; + + // IF _progress = 461 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#661, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#661; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 462; + // END_IF; + // END_IF; + + // IF _progress = 462 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#662, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#662; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 463; + // END_IF; + // END_IF; + + // IF _progress = 463 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#663, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#663; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 464; + // END_IF; + // END_IF; + + // IF _progress = 464 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#664, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#664; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 465; + // END_IF; + // END_IF; + + // IF _progress = 465 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#665, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#665; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 466; + // END_IF; + // END_IF; + + // IF _progress = 466 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#666, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#666; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 467; + // END_IF; + // END_IF; + + // IF _progress = 467 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#667, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#667; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 468; + // END_IF; + // END_IF; + + // IF _progress = 468 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#668, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#668; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 469; + // END_IF; + // END_IF; + + // IF _progress = 469 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#669, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#669; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 470; + // END_IF; + // END_IF; + + // IF _progress = 470 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#670, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#670; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 471; + // END_IF; + // END_IF; + + // IF _progress = 471 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#671, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#671; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 472; + // END_IF; + // END_IF; + + // IF _progress = 472 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#672, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#672; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 473; + // END_IF; + // END_IF; + + // IF _progress = 473 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#673, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#673; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 474; + // END_IF; + // END_IF; + + // IF _progress = 474 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#674, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#674; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 475; + // END_IF; + // END_IF; + + // IF _progress = 475 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#675, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#675; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 476; + // END_IF; + // END_IF; + + // IF _progress = 476 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#676, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#676; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 477; + // END_IF; + // END_IF; + + // IF _progress = 477 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#677, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#677; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 478; + // END_IF; + // END_IF; + + // IF _progress = 478 THEN // TemplateTask_20steps_6 running: , + // IF _infoTimer.output THEN + // TaskMessenger.Activate( UINT#678, eAxoMessageCategory#Warning); + // Status.Error.Id := UINT#678; + // END_IF; + + // IF TRUE THEN + // THIS.CallTimers(FALSE); + // _progress := 479; + // END_IF; + // END_IF; + + // IF _progress = 479 THEN // TemplateTask_20steps_6 running: , + // TemplateTask_20steps_6.DoneWhen(TRUE); + // _progress := 0; + // END_IF; + + // THIS.CallTimers(TRUE); + + // TemplateTask_20steps_6.ThrowWhen(_errorTimer.output); + // Status.Action.Id := TO_UINT(_progress); + // TemplateTask_20steps_6.ThrowWhen(TemplateTask_20steps_6.Duration >= Config.ErrorTime ,'TemplateTask_20steps_6 error.'); + // END_IF; + // IF TemplateTask_20steps_6.DoneReached() THEN + // Status.Action.Id := UINT#261; + // Status.Error.Id := UINT#0; + // ELSIF TemplateTask_20steps_6.ErrorOccured() THEN + // Status.Action.Id := UINT#10160; + // Status.Error.Id := UINT#10160; + // ELSIF TemplateTask_20steps_6.AbortTriggered()THEN + // Status.Action.Id := UINT#10161; + // Status.Error.Id := UINT#10161; + // END_IF; + // Messenger.ActivateOnCondition(ULINT#10160,TemplateTask_20steps_6.HasError(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#10161,TemplateTask_20steps_6.IsAborted(), eAxoMessageCategory#Error); + // Messenger.ActivateOnCondition(ULINT#262,TemplateTask_20steps_6.RestoreTriggered() , eAxoMessageCategory#Error); + // IF TemplateTask_20steps_6.RestoreTriggered() AND _progress >= 460 AND _progress <= 479 THEN + // Status.Action.Id := UINT#262; + // _progress := 0; + // END_IF; + // //****************************************** + + + //***********Update outputs **************** + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + + IF CameraNo = BYTE#1 THEN + outputsAddress := outputsAddress + UDINT#4; + BitOffset := 0; + ELSIF CameraNo = BYTE#2 THEN + outputsAddress := outputsAddress + UDINT#4; + BitOffset := 4; + ELSIF CameraNo = BYTE#3 THEN + outputsAddress := outputsAddress + UDINT#5; + BitOffset := 0; + ELSIF CameraNo = BYTE#4 THEN + outputsAddress := outputsAddress + UDINT#5; + BitOffset := 4; + ELSIF CameraNo = BYTE#5 THEN + outputsAddress := outputsAddress + UDINT#6; + BitOffset := 0; + ELSIF CameraNo = BYTE#6 THEN + outputsAddress := outputsAddress + UDINT#6; + BitOffset := 4; + ELSIF CameraNo = BYTE#7 THEN + outputsAddress := outputsAddress + UDINT#7; + BitOffset := 0; + ELSIF CameraNo = BYTE#8 THEN + outputsAddress := outputsAddress + UDINT#8; + BitOffset := 4; + END_IF; + + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := BitOffset, value:= Outputs.Control.SoftEvent.Reset); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := BitOffset + INT#1, value:= Outputs.Control.SoftEvent.DataHandlerAck); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := BitOffset + INT#2, value:= Outputs.Control.SoftEvent.Trigger); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := BitOffset + INT#3, value:= Outputs.Control.SoftEvent.Reserve); + + IF (Inputs.Status.ReadDataLockerJobID = Config.CameraNo) THEN + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_SystemControl),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := INT#4, value:= Outputs.Control.InitiateJobLoad ); + + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress) + DINT#2, value:= Outputs.Control.JobLoadID); + + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_EngineControl_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := INT#1, value:= Outputs.Control.InspectionResultsAck); + END_IF; + + + IF (Inputs.Status.UserDataLockerJobID = Config.CameraNo) THEN + retValRdAddr := ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(Config.HWIDs.HW_EngineControl_1),inputStartAddress=> inputsAddress,inputCount => inputsCount,outputStartAddress => outputsAddress,outputCount=> outputsCount); + WriteMemory(area := WriteArea#Output,byteOffset := TO_DINT(outputsAddress), bitOffset := INT#3, value:= Outputs.Control.SetUserdata); + END_IF; + + // - User Data [20-1400]: Spolocny buffer pre user data. Vyuziva sa vzdy cely buffer (v jednom CASE moze pristupovat len jedna inspekcia). + // o Byte[0]: cislo inspekcie (camera*10 + ( 0 az 9)), pre ktore su aktualne data v bufferi platne + // o Byte[1]: typ spracovania dat (0 = Undefined, 1 = Zmena jobu/referencie, ) + // o Byte[2]: cislo jobu + // o Byte[3-??]: id kusu + + //****************************************** + + END_METHOD + + METHOD PUBLIC HardResetAllCameras : IAxoTaskState + HardResetAllCameras := HardResetAllCamerasTask.Invoke(THIS); + END_METHOD + + METHOD PUBLIC Reset : IAxoTaskState + Reset := ResetTask.Invoke(THIS); + END_METHOD + + METHOD PUBLIC Trigger : IAxoTaskState + Trigger := TriggerTask.Invoke(THIS); + END_METHOD + + // METHOD PUBLIC TemplateMethod_10steps_4 : IAxoTaskState + // TemplateMethod_10steps_4 := TemplateTask_10steps_4.Invoke(THIS); + // END_METHOD + + // METHOD PUBLIC TemplateMethod_10steps_5 : IAxoTaskState + // TemplateMethod_10steps_5 := TemplateTask_10steps_5.Invoke(THIS); + // END_METHOD + + // METHOD PUBLIC TemplateMethod_10steps_6 : IAxoTaskState + // TemplateMethod_10steps_6 := TemplateTask_10steps_6.Invoke(THIS); + // END_METHOD + + METHOD PUBLIC ReadResults : IAxoTaskState + VAR_INPUT + JobID : BYTE; + Length : UINT; + END_VAR + VAR_IN_OUT + Data : ARRAY[0..1300] OF BYTE; + END_VAR + _readResultsJobID := JobID; + _readResultsLength := Length; + _data_in_1301 := Data; + ReadResults := ReadResultsTask.Invoke(THIS); + END_METHOD + + METHOD PUBLIC SendData : IAxoTaskState + VAR_INPUT + InspectionType : BYTE; // (0 = Undefined, 1 = Zmena jobu/referencie, 2=Nacitanie + BufferID : BYTE; // Buffer ID, 0-9 + JobID : BYTE; + Length : UINT; + END_VAR + VAR_IN_OUT + Data : ARRAY[0..1300] OF BYTE; + END_VAR + _sendDataInspectionType := InspectionType; + _sendDataBufferID := BufferID; + _sendDataJobID := JobID; + _sendDataLength := Length; + _data_out_1301 := Data; + SendData := SendDataTask.Invoke(THIS); + END_METHOD + + // METHOD PUBLIC TemplateMethod_20steps_3 : IAxoTaskState + // TemplateMethod_20steps_3 := TemplateTask_20steps_3.Invoke(THIS); + // END_METHOD + + // METHOD PUBLIC TemplateMethod_20steps_4 : IAxoTaskState + // TemplateMethod_20steps_4 := TemplateTask_20steps_4.Invoke(THIS); + // END_METHOD + + // METHOD PUBLIC TemplateMethod_20steps_5 : IAxoTaskState + // TemplateMethod_20steps_5 := TemplateTask_20steps_5.Invoke(THIS); + // END_METHOD + + // METHOD PUBLIC TemplateMethod_20steps_6 : IAxoTaskState + // TemplateMethod_20steps_6 := TemplateTask_20steps_6.Invoke(THIS); + // END_METHOD + + + METHOD PROTECTED OVERRIDE ManualControl + THIS._isManuallyControllable := TRUE; + + _readResultsJobID := ReadResultsJobIDServiceMode; + _readResultsLength := ReadResultsLengthServiceMode; + _data_in_1301 := ResultData.Data; + + _sendDataInspectionType := SendDataInspectionTypeServiceMode; + _sendDataBufferID := SendDataBufferIDServiceMode; + _sendDataJobID := SendResultsJobIDServiceMode; + _sendDataLength := SendResultsLengthServiceMode; + _data_out_1301 := UserData.Data; + + END_METHOD + + /// + /// Restores this component into intial state. + /// + METHOD PUBLIC OVERRIDE Restore + VAR + _index : INT; + END_VAR + Status.Action.Id := UINT#0; + Status.Error.Id := UINT#0; + + _progress := INT#0; + + + FOR _index := 0 TO 1300 DO + _data_in_1301[_index] := BYTE#0; + _data_out_1301[_index] := BYTE#0; + END_FOR; + + + HardResetAllCamerasTask.Restore(); + ResetTask.Restore(); + TriggerTask.Restore(); + // TemplateTask_10steps_4.Restore(); + // TemplateTask_10steps_5.Restore(); + // TemplateTask_10steps_6.Restore(); + ReadResultsTask.Restore(); + SendDataTask.Restore(); + // TemplateTask_20steps_3.Restore(); + // TemplateTask_20steps_4.Restore(); + // TemplateTask_20steps_5.Restore(); + // TemplateTask_20steps_6.Restore(); + HardwareDiagnosticsTask.Restore(); + + Status.Action.Id := UINT#50; + RestoreTask.DoneWhen(TRUE); + + END_METHOD + + METHOD PRIVATE CallTimers + VAR_INPUT + signal : BOOL; + END_VAR + + _infoTimer.OnDelay(THIS, signal ,Config.InfoTime); + _errorTimer.OnDelay(THIS, signal , Config.ErrorTime); + END_METHOD + + END_CLASS +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionProHWIDs.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionProHWIDs.st new file mode 100644 index 000000000..7627d0835 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionProHWIDs.st @@ -0,0 +1,43 @@ +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + CLASS AxoVisionProHWIDs + VAR PUBLIC + {#ix-set:AttributeName = "<#Hardware ID 'HEAD' submodule#>"} + HW_Head : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'SystemControl' submodule#>"} + HW_SystemControl : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'EngineControl_1' submodule#>"} + HW_EngineControl_1 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'EngineControl_2' submodule#>"} + HW_EngineControl_2 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'EngineControl_3' submodule#>"} + HW_EngineControl_3 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'EngineControl_4' submodule#>"} + HW_EngineControl_4 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'UserData_240B_1' submodule#>"} + HW_UserData_240B_1 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'UserData_240B_2' submodule#>"} + HW_UserData_240B_2 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'UserData_240B_3' submodule#>"} + HW_UserData_240B_3 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'UserData_240B_4' submodule#>"} + HW_UserData_240B_4 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'UserData_240B_5' submodule#>"} + HW_UserData_240B_5 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'UserData_64B_1' submodule#>"} + HW_UserData_64B_1 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Results_240B_1' submodule#>"} + HW_Results_240B_1 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Results_240B_2' submodule#>"} + HW_Results_240B_2 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Results_240B_3' submodule#>"} + HW_Results_240B_3 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Results_240B_4' submodule#>"} + HW_Results_240B_4 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Results_240B_5' submodule#>"} + HW_Results_240B_5 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Results_64B_1' submodule#>"} + HW_Results_64B_1 : UINT; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionProSoftEventControl.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionProSoftEventControl.st new file mode 100644 index 000000000..00e625ba2 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionProSoftEventControl.st @@ -0,0 +1,11 @@ +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + CLASS AxoVisionProSoftEventControl + VAR PUBLIC + Reset : BOOL; + DataHandlerAck : BOOL; + Trigger : BOOL; + Reserve : BOOL; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionProSoftEventStatus.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionProSoftEventStatus.st new file mode 100644 index 000000000..5f75c06f6 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionProSoftEventStatus.st @@ -0,0 +1,12 @@ + +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + CLASS AxoVisionProSoftEventStatus + VAR PUBLIC + ResetAck : BOOL; + DataHandlerDone : BOOL; + TriggerAck : BOOL; + Reserve : BOOL; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Component_Status.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Component_Status.st new file mode 100644 index 000000000..6a5083865 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Component_Status.st @@ -0,0 +1,9 @@ +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Stack)]} + CLASS PUBLIC AxoVisionPro_Component_Status EXTENDS AXOpen.Components.Abstractions.AxoComponent_Status + VAR PUBLIC + + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Config.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Config.st new file mode 100644 index 000000000..30995909d --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Config.st @@ -0,0 +1,16 @@ +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Stack)]} + CLASS PUBLIC AxoVisionPro_Config + VAR PUBLIC + {#ix-set:AttributeName = "<#Info time#>"} + InfoTime : LTIME := LT#5S; + {#ix-set:AttributeName = "<#Error time#>"} + ErrorTime : LTIME := LT#10S; + {#ix-set:AttributeName = "<#Camera number#>"} + CameraNo : BYTE; + {#ix-set:AttributeName = "<#Hardware IDs#>"} + HWIDs : AxoVisionProHWIDs; + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Control.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Control.st new file mode 100644 index 000000000..2a6bbe944 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Control.st @@ -0,0 +1,15 @@ +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Stack)]} + CLASS PUBLIC AxoVisionPro_Control + VAR PUBLIC + SoftEvent : AxoVisionProSoftEventControl; + SetUserdata : BOOL; + InitiateJobLoad : BOOL; + InspectionResultsAck : BOOL; + ID_Inspection : BYTE; + JobLoadID : WORD; + WriteDataID : BYTE; + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_In.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_In.st new file mode 100644 index 000000000..b054b3a65 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_In.st @@ -0,0 +1,11 @@ +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + CLASS PUBLIC AxoVisionPro_In + VAR PUBLIC + {#ix-set:AttributeName = "<#Status#>"} + {#ix-attr:[ReadOnly()]} + Status : AxoVisionPro_Status; + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Out.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Out.st new file mode 100644 index 000000000..42a277b3c --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Out.st @@ -0,0 +1,10 @@ +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + CLASS PUBLIC AxoVisionPro_Out + VAR PUBLIC + {#ix-set:AttributeName = "<#Control#>"} + Control : AxoVisionPro_Control; + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_ResultData.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_ResultData.st new file mode 100644 index 000000000..db2a996af --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_ResultData.st @@ -0,0 +1,8 @@ +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + CLASS PUBLIC AxoVisionPro_ResultData EXTENDS AXOpen.Core.AxoByteArray + VAR PUBLIC + Data : ARRAY [0..1300] OF BYTE; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Status.st b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Status.st new file mode 100644 index 000000000..1d562b277 --- /dev/null +++ b/src/components.cognex.vision/ctrl/src/AxoVisionPro/TypesStructuresAndEnums/AxoVisionPro_Status.st @@ -0,0 +1,25 @@ +NAMESPACE AXOpen.Components.Cognex.Vision + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Stack)]} + CLASS PUBLIC AxoVisionPro_Status + VAR PUBLIC + SoftEvent : AxoVisionProSoftEventStatus; + SetUserDataAck : BOOL; + Online : BOOL; + SystemBusy : BOOL; + SystemReady : BOOL; + JobLoadComplete : BOOL; + InspectionOnline : BOOL; // Error ID bit z errorID int premennej + ResultValid : BOOL; + ID_Inspection : BYTE; // rezerva CurentJobID, mozno na kontrolu. + CurentJobID : WORD; + UserDataJobID : BYTE; + ReadedDataVariantSize : UINT; // velkost VARIANT dat ktore chceme vycitat + WrittenDataVariantSize : UINT; // velkost VARIANT dat ktore chceme vycitat + UserDataLockerJobID : BYTE; // camera*10 + job + UserDataLockerIdOperation : BYTE; + ReadDataLockerJobID : BYTE; // camera*10 + job + + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoDataman/AxoDataman.cs b/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoDataman/AxoDataman.cs index d140b8df2..ed0c6f935 100644 --- a/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoDataman/AxoDataman.cs +++ b/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoDataman/AxoDataman.cs @@ -50,38 +50,100 @@ private void InitializeMessenger() new KeyValuePair(120, new AxoMessengerTextItem("Continous reading active: New data read.", "")), - new KeyValuePair(700, new AxoMessengerTextItem("Parent has NULL reference in the Run method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("hwIdAcquisitionControl has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdAcquisitionControl` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("hwIdAcquisitionStatus has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdAcquisitionStatus` parameter is assigned.")), - new KeyValuePair(703, new AxoMessengerTextItem("hwIdResultsControl has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdResultsControl` parameter is assigned.")), - new KeyValuePair(704, new AxoMessengerTextItem("hwIdResultsStatus has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdResultsStatus` parameter is assigned.")), - new KeyValuePair(705, new AxoMessengerTextItem("hwIdSoftEventControl has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdSoftEventControl` parameter is assigned.")), - new KeyValuePair(706, new AxoMessengerTextItem("hwIdResultData has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdResultData` parameter is assigned.")), - new KeyValuePair(707, new AxoMessengerTextItem("hwIdUserData has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdUserData` parameter is assigned.")), - - new KeyValuePair(708, new AxoMessengerTextItem("Error reading the AcquisitionStatus in the UpdateInputs method!", "Check the value of the hwIdAcquisitionStatus and reacheability of the device!")), - new KeyValuePair(709, new AxoMessengerTextItem("Error reading the ResultsStatus in the UpdateInputs method!", "Check the value of the hwIdResultsStatus and reacheability of the device!")), - new KeyValuePair(710, new AxoMessengerTextItem("Error reading the SoftEventControl in the UpdateInputs method!", "Check the value of the hwIdSoftEventControl and reacheability of the device!")), - new KeyValuePair(711, new AxoMessengerTextItem("Error reading the ResultData in the UpdateInputs method!", "Check the value of the hwIdResultData and reacheability of the device!")), - new KeyValuePair(712, new AxoMessengerTextItem("ResultData has invalid size!", "Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), - - new KeyValuePair(713, new AxoMessengerTextItem("Error writing the AcquisitionControl in the UpdateOutputs method!", "Check the value of the hwIdAcquisitionControl and reacheability of the device!")), - new KeyValuePair(714, new AxoMessengerTextItem("Error writing the ResultsControl in the UpdateOutputs method!", "Check the value of the hwIdesultsControl and reacheability of the device!")), - new KeyValuePair(715, new AxoMessengerTextItem("Error writing the SoftEventControl in the UpdateOutputs method!", "Check the value of the hwIdSoftEventControl and reacheability of the device!")), - new KeyValuePair(716, new AxoMessengerTextItem("UserData has invalid size!", "Check the real size of the `UserData`, so as the value of the UserDataSize parameter!")), - new KeyValuePair(717, new AxoMessengerTextItem("Error writing the 16bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(718, new AxoMessengerTextItem("Error writing the 32bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(719, new AxoMessengerTextItem("Error writing the 64bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(720, new AxoMessengerTextItem("Error writing the 128bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(721, new AxoMessengerTextItem("Error writing the 250bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - - new KeyValuePair(800, new AxoMessengerTextItem("Clearing of the result data finished with error!", "Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("Clearing of the result data was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(810, new AxoMessengerTextItem("Reading finished with error!", "Check the details.")), - new KeyValuePair(811, new AxoMessengerTextItem("Reading was aborted, while not yet completed!", "Check the details.")), - - new KeyValuePair(820, new AxoMessengerTextItem("Continous reading finished with error!", "Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("Continous reading was aborted, while not yet completed!", "Check the details.")), + // General alarm + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwIdAcquisitionControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Acquisition_Control' (GsdId=101)." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of hwIdAcquisitionStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'Acquisition_Status' (GsdId=201)." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of hwIdResultsControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'Results_Control' (GsdId=102)." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of hwIdResultsStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'Results_Status' (GsdId=202)." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of hwIdSoftEventControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'Soft_Event_Control' (GsdId=105)." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of hwIdUserData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 6. Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-250_bytes' (GsdId=301,302,303,304,305)." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of hwIdResultData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes' (GsdId=401,402,403,404,405)." ,"Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `_hwIdAcquisitionControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdAcquisitionControl` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `_hwIdAcquisitionStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdAcquisitionStatus` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `_hwIdResultsControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdResultsControl` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `_hwIdResultsStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdResultsStatus` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `_hwIdSoftEventControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdSoftEventControl` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `_hwIdUserData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdUserData` parameter is assigned.")), + new KeyValuePair(1138, new AxoMessengerTextItem("Input variable `_hwIdResultData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdResultData` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the AcquisitionStatus!" ,"Check the value of the _hwIdAcquisitionStatus and reacheability of the device!")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the ResultsStatus!" ,"Check the value of the _hwIdResultsStatus and reacheability of the device!")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the SoftEventControl!" ,"Check the value of the _hwIdSoftEventControl and reacheability of the device!")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the ResultData!" ,"Check the value of the _hwIdResultData and reacheability of the device!")), + new KeyValuePair(1205, new AxoMessengerTextItem("ResultData has invalid size!" ,"Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the AcquisitionControl!" ,"Check the value of the _hwIdAcquisitionControl and reacheability of the device!")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the ResultsControl!" ,"Check the value of the _hwIdResultsControl and reacheability of the device!")), + new KeyValuePair(1233, new AxoMessengerTextItem("Error writing the SoftEventControl!" ,"Check the value of the _hwIdSoftEventControl and reacheability of the device!")), + new KeyValuePair(1234, new AxoMessengerTextItem("UserData has invalid size!" ,"Check the real size of the `UserData`, so as the value of the UserDataSize parameter!")), + new KeyValuePair(1235, new AxoMessengerTextItem("Error writing the 16bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1236, new AxoMessengerTextItem("Error writing the 32bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1237, new AxoMessengerTextItem("Error writing the 64bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1238, new AxoMessengerTextItem("Error writing the 128bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1239, new AxoMessengerTextItem("Error writing the 250bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + + new KeyValuePair(10000, new AxoMessengerTextItem("Clearing of the result data finished with error!" ,"Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("Clearing of the result data was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10010, new AxoMessengerTextItem("Reading finished with error!" ,"Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("Reading was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("Continous reading finished with error!" ,"Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("Continous reading was aborted, while not yet completed!" ,"Check the details.")), + }; Messenger.DotNetMessengerTextList = messengerTextList; @@ -92,16 +154,104 @@ private void InitializeTaskMessenger() List> messengerTextList = new List> { new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(600, new AxoMessengerTextItem("Waiting for the signal ResultsAvailable to be reseted!" ,"Check the status of the `ResultsAvailable` signal.")), - - new KeyValuePair(610, new AxoMessengerTextItem("Waiting for the signal ResultsAvailable to be reseted!" ,"Check the status of the `ResultsAvailable` signal.")), - new KeyValuePair(611, new AxoMessengerTextItem("Waiting for the signal TriggerReady to be set!" ,"Check the status of the `TriggerReady` signal.")), - new KeyValuePair(612, new AxoMessengerTextItem("Waiting for the signal TriggerAcknowledge to be set!" ,"Check the status of the `TriggerAcknowledge` signal.")), - new KeyValuePair(613, new AxoMessengerTextItem("Waiting for the signal ResultsAvailable to be set!" ,"Check the status of the `ResultsAvailable` signal.")), - new KeyValuePair(614, new AxoMessengerTextItem("ResultData has invalid size!" ,"Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), - new KeyValuePair(615, new AxoMessengerTextItem("Waiting for the ResultData to be copied!" ,"Check the status of the `ResultData` data.")), - new KeyValuePair(619, new AxoMessengerTextItem("Waiting for the signal TriggerReady to be reseted!" ,"Check the status of the `TriggerReady` signal.")), - new KeyValuePair(620, new AxoMessengerTextItem("Waiting for the signal ErrorDetected to be reseted!" ,"Check the status of the `ErrorDetected` signal.")), + new KeyValuePair(500, new AxoMessengerTextItem("Waiting for the signal ResultsAvailable to be reseted!" ,"Check the status of the `ResultsAvailable` signal.")), + + new KeyValuePair(510, new AxoMessengerTextItem("Waiting for the signal ResultsAvailable to be reseted!" ,"Check the status of the `ResultsAvailable` signal.")), + new KeyValuePair(511, new AxoMessengerTextItem("Waiting for the signal TriggerReady to be set!" ,"Check the status of the `TriggerReady` signal.")), + new KeyValuePair(512, new AxoMessengerTextItem("Waiting for the signal TriggerAcknowledge to be set!" ,"Check the status of the `TriggerAcknowledge` signal.")), + new KeyValuePair(513, new AxoMessengerTextItem("Waiting for the signal ResultsAvailable to be set!" ,"Check the status of the `ResultsAvailable` signal.")), + new KeyValuePair(514, new AxoMessengerTextItem("ResultData has invalid size!" ,"Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), + new KeyValuePair(515, new AxoMessengerTextItem("Waiting for the ResultData to be copied!" ,"Check the status of the `ResultData` data.")), + new KeyValuePair(519, new AxoMessengerTextItem("Waiting for the signal TriggerReady to be reseted!" ,"Check the status of the `TriggerReady` signal.")), + new KeyValuePair(520, new AxoMessengerTextItem("Waiting for the signal ErrorDetected to be reseted!" ,"Check the status of the `ErrorDetected` signal.")), + + // General alarm + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwIdAcquisitionControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Acquisition_Control' (GsdId=101)." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of hwIdAcquisitionStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'Acquisition_Status' (GsdId=201)." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of hwIdResultsControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'Results_Control' (GsdId=102)." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of hwIdResultsStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'Results_Status' (GsdId=202)." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of hwIdSoftEventControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'Soft_Event_Control' (GsdId=105)." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of hwIdResultData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 6. Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-250_bytes' (GsdId=301,302,303,304,305)." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of hwIdUserData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes' (GsdId=401,402,403,404,405)." ,"Check the hardware configuration.")), + + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `_hwIdAcquisitionControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdAcquisitionControl` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `_hwIdAcquisitionStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdAcquisitionStatus` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `_hwIdResultsControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdResultsControl` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `_hwIdResultsStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdResultsStatus` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `_hwIdSoftEventControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdSoftEventControl` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `_hwIdResultData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdResultData` parameter is assigned.")), + new KeyValuePair(1138, new AxoMessengerTextItem("Input variable `_hwIdUserData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_hwIdUserData` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the AcquisitionStatus!" ,"Check the value of the _hwIdAcquisitionStatus and reacheability of the device!")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the ResultsStatus!" ,"Check the value of the _hwIdResultsStatus and reacheability of the device!")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the SoftEventControl!" ,"Check the value of the _hwIdSoftEventControl and reacheability of the device!")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the ResultData!" ,"Check the value of the _hwIdResultData and reacheability of the device!")), + new KeyValuePair(1205, new AxoMessengerTextItem("ResultData has invalid size!" ,"Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the AcquisitionControl!" ,"Check the value of the _hwIdAcquisitionControl and reacheability of the device!")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the ResultsControl!" ,"Check the value of the _hwIdResultsControl and reacheability of the device!")), + new KeyValuePair(1233, new AxoMessengerTextItem("Error writing the SoftEventControl!" ,"Check the value of the _hwIdSoftEventControl and reacheability of the device!")), + new KeyValuePair(1234, new AxoMessengerTextItem("UserData has invalid size!" ,"Check the real size of the `UserData`, so as the value of the UserDataSize parameter!")), + new KeyValuePair(1235, new AxoMessengerTextItem("Error writing the 16bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1236, new AxoMessengerTextItem("Error writing the 32bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1237, new AxoMessengerTextItem("Error writing the 64bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1238, new AxoMessengerTextItem("Error writing the 128bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1239, new AxoMessengerTextItem("Error writing the 250bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), }; @@ -122,51 +272,97 @@ public string ErrorDescription if (errorDescriptionDict.Count == 0) { errorDescriptionDict.Add(0, " "); - errorDescriptionDict.Add(610, "Waiting for the signal ResultsAvailable to be reseted!"); - errorDescriptionDict.Add(611, "Waiting for the signal TriggerReady to be set!"); - errorDescriptionDict.Add(612, "Waiting for the signal TriggerAcknowledge to be set!"); - errorDescriptionDict.Add(613, "Waiting for the signal ResultsAvailable to be set!"); - errorDescriptionDict.Add(614, "ResultData has invalid size!"); - errorDescriptionDict.Add(615, "Waiting for the ResultData to be copied!"); - errorDescriptionDict.Add(619, "Waiting for the signal TriggerReady to be reseted!"); - errorDescriptionDict.Add(620, "Waiting for the signal ErrorDetected to be reseted!"); - - - - errorDescriptionDict.Add(700, "Parent has NULL reference in the Run method!"); - errorDescriptionDict.Add(701, "hwIdAcquisitionControl has invalid value in the Run method!"); - errorDescriptionDict.Add(702, "hwIdAcquisitionStatus has invalid value in the Run method!"); - errorDescriptionDict.Add(703, "hwIdResultsControl has invalid value in the Run method!"); - errorDescriptionDict.Add(704, "hwIdResultsStatus has invalid value in the Run method!"); - errorDescriptionDict.Add(705, "hwIdSoftEventControl has invalid value in the Run method!"); - errorDescriptionDict.Add(706, "hwIdResultData has invalid value in the Run method!"); - errorDescriptionDict.Add(707, "hwIdUserData has invalid value in the Run method!"); - - errorDescriptionDict.Add(708, "Error reading the AcquisitionStatus in the UpdateInputs method!"); - errorDescriptionDict.Add(709, "Error reading the ResultsStatus in the UpdateInputs method!"); - errorDescriptionDict.Add(710, "Error reading the SoftEventControl in the UpdateInputs method!"); - errorDescriptionDict.Add(711, "Error reading the ResultData in the UpdateInputs method!"); - errorDescriptionDict.Add(712, "ResultData has invalid size!"); - - errorDescriptionDict.Add(713, "Error writing the AcquisitionControl in the UpdateOutputs method!"); - errorDescriptionDict.Add(714, "Error writing the ResultsControl in the UpdateOutputs method!"); - errorDescriptionDict.Add(715, "Error writing the SoftEventControl in the UpdateOutputs method!"); - errorDescriptionDict.Add(716, "UserData has invalid size!"); - errorDescriptionDict.Add(717, "Error writing the 16bytes of the UserData in the UpdateOutputs method!"); - errorDescriptionDict.Add(718, "Error writing the 32bytes of the UserData in the UpdateOutputs method!"); - errorDescriptionDict.Add(719, "Error writing the 64bytes of the UserData in the UpdateOutputs method!"); - errorDescriptionDict.Add(720, "Error writing the 128bytes of the UserData in the UpdateOutputs method!"); - errorDescriptionDict.Add(721, "Error writing the 250bytes of the UserData in the UpdateOutputs method!"); - - - errorDescriptionDict.Add(800, "Clearing of the result data finished with error!"); - errorDescriptionDict.Add(801, "Clearing of the result data was aborted, while not yet completed!"); - - errorDescriptionDict.Add(810, "Reading finished with error!"); - errorDescriptionDict.Add(811, "Reading was aborted, while not yet completed!"); - - errorDescriptionDict.Add(820, "Continous reading finished with error!"); - errorDescriptionDict.Add(821, "Continous reading was aborted, while not yet completed!"); + errorDescriptionDict.Add(510, "Waiting for the signal ResultsAvailable to be reseted!"); + errorDescriptionDict.Add(511, "Waiting for the signal TriggerReady to be set!"); + errorDescriptionDict.Add(512, "Waiting for the signal TriggerAcknowledge to be set!"); + errorDescriptionDict.Add(513, "Waiting for the signal ResultsAvailable to be set!"); + errorDescriptionDict.Add(514, "ResultData has invalid size!"); + errorDescriptionDict.Add(515, "Waiting for the ResultData to be copied!"); + errorDescriptionDict.Add(519, "Waiting for the signal TriggerReady to be reseted!"); + errorDescriptionDict.Add(520, "Waiting for the signal ErrorDetected to be reseted!"); + + // General alarm + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ); + errorDescriptionDict.Add(710, "Hw configuration error. Value of hwIdAcquisitionControl is zero." ); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Acquisition_Control' (GsdId=101)." ); + errorDescriptionDict.Add(720, "Hw configuration error. Value of hwIdAcquisitionStatus is zero." ); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'Acquisition_Status' (GsdId=201)." ); + errorDescriptionDict.Add(730, "Hw configuration error. Value of hwIdResultsControl is zero." ); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ); + errorDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'Results_Control' (GsdId=102)." ); + errorDescriptionDict.Add(740, "Hw configuration error. Value of hwIdResultsStatus is zero." ); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ); + errorDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'Results_Status' (GsdId=202)." ); + errorDescriptionDict.Add(750, "Hw configuration error. Value of hwIdSoftEventControl is zero." ); + errorDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ); + errorDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ); + errorDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ); + errorDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ); + errorDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ); + errorDescriptionDict.Add(756, "Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'Soft_Event_Control' (GsdId=105)." ); + errorDescriptionDict.Add(760, "Hw configuration error. Value of hwIdUserData is zero."); + errorDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6."); + errorDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6."); + errorDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6."); + errorDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6."); + errorDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6."); + errorDescriptionDict.Add(766, "Hw configuration error: Module with unexpected size or type detected in Slot 6. Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-250_bytes' (GsdId=301,302,303,304,305)."); + errorDescriptionDict.Add(770, "Hw configuration error. Value of hwIdResultData is zero." ); + errorDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ); + errorDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ); + errorDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ); + errorDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ); + errorDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ); + errorDescriptionDict.Add(776, "Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes' (GsdId=401,402,403,404,405)."); + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1132, "Input variable `_hwIdAcquisitionControl` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1133, "Input variable `_hwIdAcquisitionStatus` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1134, "Input variable `_hwIdResultsControl` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1135, "Input variable `_hwIdResultsStatus` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1136, "Input variable `_hwIdSoftEventControl` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1137, "Input variable `_hwIdResultData` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1138, "Input variable `_hwIdUserData` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1201, "Error reading the AcquisitionStatus!" ); + errorDescriptionDict.Add(1202, "Error reading the ResultsStatus!" ); + errorDescriptionDict.Add(1203, "Error reading the SoftEventControl!" ); + errorDescriptionDict.Add(1204, "Error reading the ResultData!" ); + errorDescriptionDict.Add(1205, "ResultData has invalid size!" ); + errorDescriptionDict.Add(1231, "Error writing the AcquisitionControl!" ); + errorDescriptionDict.Add(1232, "Error writing the ResultsControl!" ); + errorDescriptionDict.Add(1233, "Error writing the SoftEventControl!" ); + errorDescriptionDict.Add(1234, "UserData has invalid size!" ); + errorDescriptionDict.Add(1235, "Error writing the 16bytes of the UserData!" ); + errorDescriptionDict.Add(1236, "Error writing the 32bytes of the UserData!" ); + errorDescriptionDict.Add(1237, "Error writing the 64bytes of the UserData!" ); + errorDescriptionDict.Add(1238, "Error writing the 128bytes of the UserData!" ); + errorDescriptionDict.Add(1239, "Error writing the 250bytes of the UserData!" ); + errorDescriptionDict.Add(10000, "Clearing of the result data finished with error!" ); + errorDescriptionDict.Add(10001, "Clearing of the result data was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10010, "Reading finished with error!" ); + errorDescriptionDict.Add(10011, "Reading was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10020, "Continous reading finished with error!" ); + errorDescriptionDict.Add(10021, "Continous reading was aborted, while not yet completed!" ); } string errorDescription = " "; @@ -242,14 +438,14 @@ public string ActionDescription actionDescriptionDict.Add(120, "Continous reading active: New data read."); - actionDescriptionDict.Add(800, "Clearing of the result data finished with error!"); - actionDescriptionDict.Add(801, "Clearing of the result data was aborted, while not yet completed!"); + actionDescriptionDict.Add(10000, "Clearing of the result data finished with error!"); + actionDescriptionDict.Add(10001, "Clearing of the result data was aborted, while not yet completed!"); - actionDescriptionDict.Add(810, "Reading finished with error!"); - actionDescriptionDict.Add(811, "Reading was aborted, while not yet completed!"); + actionDescriptionDict.Add(10010, "Reading finished with error!"); + actionDescriptionDict.Add(10011, "Reading was aborted, while not yet completed!"); - actionDescriptionDict.Add(820, "Continous reading finished with error!"); - actionDescriptionDict.Add(821, "Continous reading was aborted, while not yet completed!"); + actionDescriptionDict.Add(10020, "Continous reading finished with error!"); + actionDescriptionDict.Add(10021, "Continous reading was aborted, while not yet completed!"); } diff --git a/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoInsight/AxoInsight.cs b/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoInsight/AxoInsight.cs deleted file mode 100644 index 0837bc71b..000000000 --- a/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoInsight/AxoInsight.cs +++ /dev/null @@ -1,356 +0,0 @@ -using AXOpen.Components.Abstractions; -using AXOpen.Messaging.Static; -using AXSharp.Connector; -using System; -using System.Collections.Generic; - -namespace AXOpen.Components.Cognex.Vision.v_6_0_0_0 -{ - public partial class AxoInsight - { - partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) - { - try - { - InitializeMessenger(); - InitializeTaskMessenger(); - } - catch (Exception) - { - - throw; - } - } - private void InitializeMessenger() - { - List> messengerTextList = new List> - { - new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - - new KeyValuePair(50, new AxoMessengerTextItem("Restore has been executed.", "")), - - new KeyValuePair(100, new AxoMessengerTextItem("Clearing of the inspection results started.", "")), - new KeyValuePair(101, new AxoMessengerTextItem("Clearing of the inspection results finished succesfully.", "")), - new KeyValuePair(102, new AxoMessengerTextItem("Clearing of the inspection results restored.", "")), - - new KeyValuePair(110, new AxoMessengerTextItem("Reading started.", "")), - new KeyValuePair(111, new AxoMessengerTextItem("Reading finished succesfully.", "")), - new KeyValuePair(112, new AxoMessengerTextItem("Reading restored.", "")), - - new KeyValuePair(120, new AxoMessengerTextItem("Change job by name started.", "")), - new KeyValuePair(121, new AxoMessengerTextItem("Change job by name finished succesfully.", "")), - new KeyValuePair(122, new AxoMessengerTextItem("Change job by name restored.", "")), - - new KeyValuePair(140, new AxoMessengerTextItem("Change job by number started.", "")), - new KeyValuePair(141, new AxoMessengerTextItem("Change job by number finished succesfully.", "")), - new KeyValuePair(142, new AxoMessengerTextItem("Change job by number restored.", "")), - - new KeyValuePair(150, new AxoMessengerTextItem("SoftEvent started.", "")), - new KeyValuePair(151, new AxoMessengerTextItem("SoftEvent finished succesfully.", "")), - new KeyValuePair(152, new AxoMessengerTextItem("SoftEvent restored.", "")), - - - new KeyValuePair(700, new AxoMessengerTextItem("Parent has NULL reference in the Run method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("hwIdAcquisitionControl has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdAcquisitionControl` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("hwIdAcquisitionStatus has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdAcquisitionStatus` parameter is assigned.")), - new KeyValuePair(703, new AxoMessengerTextItem("hwIdInspectionControl has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdInspectionControl` parameter is assigned.")), - new KeyValuePair(704, new AxoMessengerTextItem("hwIdInspectionStatus has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdInspectionStatus` parameter is assigned.")), - new KeyValuePair(705, new AxoMessengerTextItem("hwIdCommandControl has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdCommandControl` parameter is assigned.")), - new KeyValuePair(706, new AxoMessengerTextItem("hwIdSoftEventControl has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdSoftEventControl` parameter is assigned.")), - new KeyValuePair(707, new AxoMessengerTextItem("hwIdResultData has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdResultData` parameter is assigned.")), - new KeyValuePair(708, new AxoMessengerTextItem("hwIdUserData has invalid value in the Run method!", "Check the call of the `Run` method, if the `hwIdUserData` parameter is assigned.")), - - new KeyValuePair(709, new AxoMessengerTextItem("Error reading the AcquisitionStatus in the UpdateInputs method!", "Check the value of the hwIdAcquisitionStatus and reacheability of the device!")), - new KeyValuePair(710, new AxoMessengerTextItem("Error reading the InspectionStatus in the UpdateInputs method!", "Check the value of the hwIdInspectionStatus and reacheability of the device!")), - new KeyValuePair(711, new AxoMessengerTextItem("Error reading the CommandControl in the UpdateInputs method!", "Check the value of the hwIdCommandControl and reacheability of the device!")), - new KeyValuePair(712, new AxoMessengerTextItem("Error reading the SoftEventControl in the UpdateInputs method!", "Check the value of the hwIdSoftEventControl and reacheability of the device!")), - new KeyValuePair(713, new AxoMessengerTextItem("Error reading the ResultData in the UpdateInputs method!", "Check the value of the hwIdResultData and reacheability of the device!")), - new KeyValuePair(714, new AxoMessengerTextItem("ResultData has invalid size!", "Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), - - new KeyValuePair(715, new AxoMessengerTextItem("Error writing the AcquisitionControl in the UpdateOutputs method!", "Check the value of the hwIdAcquisitionControl and reacheability of the device!")), - new KeyValuePair(716, new AxoMessengerTextItem("Error writing the ResultsControl in the UpdateOutputs method!", "Check the value of the hwIdesultsControl and reacheability of the device!")), - new KeyValuePair(717, new AxoMessengerTextItem("Error writing the CommandControl in the UpdateOutputs method!", "Check the value of the hwIdCommandControl and reacheability of the device!")), - new KeyValuePair(718, new AxoMessengerTextItem("Error writing the SoftEventControl in the UpdateOutputs method!", "Check the value of the hwIdSoftEventControl and reacheability of the device!")), - new KeyValuePair(719, new AxoMessengerTextItem("UserData has invalid size!", "Check the real size of the `UserData`, so as the value of the UserDataSize parameter!")), - new KeyValuePair(720, new AxoMessengerTextItem("Error writing the 16bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(721, new AxoMessengerTextItem("Error writing the 32bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(722, new AxoMessengerTextItem("Error writing the 64bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(723, new AxoMessengerTextItem("Error writing the 128bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(724, new AxoMessengerTextItem("Error writing the 254bytes of the UserData in the UpdateOutputs method!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - - new KeyValuePair(800, new AxoMessengerTextItem("Clearing of the inspection results finished with error!", "Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("Clearing of the inspection results was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(810, new AxoMessengerTextItem("Reading finished with error!", "Check the details.")), - new KeyValuePair(811, new AxoMessengerTextItem("Reading was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(820, new AxoMessengerTextItem("Change job by name finished with error!", "Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("Change job by name was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(840, new AxoMessengerTextItem("Change job by number finished with error!", "Check the details.")), - new KeyValuePair(841, new AxoMessengerTextItem("Change job by number was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(850, new AxoMessengerTextItem("SoftEvent finished with error!", "Check the details.")), - new KeyValuePair(851, new AxoMessengerTextItem("SoftEvent was aborted, while not yet completed!", "Check the details.")), - - }; - - Messenger.DotNetMessengerTextList = messengerTextList; - } - - private void InitializeTaskMessenger() - { - List> messengerTextList = new List> - { - new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - - new KeyValuePair(601, new AxoMessengerTextItem("Waiting for the signal ResultsValid to be reseted!" ,"Check the status of the `ResultsValid` signal.")), - - new KeyValuePair(611, new AxoMessengerTextItem("Waiting for the signal ExposureComplete to be reseted!" ,"Check the status of the `ExposureComplete` signal.")), - new KeyValuePair(612, new AxoMessengerTextItem("Waiting for the signal ResultsValid to be reseted!" ,"Check the status of the `ResultsValid` signal.")), - new KeyValuePair(613, new AxoMessengerTextItem("Waiting for the signal Error to be reseted!" ,"Check the status of the `Error` signal.")), - new KeyValuePair(614, new AxoMessengerTextItem("Waiting for the signal TriggerReady to be set!" ,"Check the status of the `TriggerReady` signal.")), - new KeyValuePair(615, new AxoMessengerTextItem("Waiting for the signal TriggerAcknowledge to be set!" ,"Check the status of the `TriggerAcknowledge` signal.")), - new KeyValuePair(616, new AxoMessengerTextItem("Waiting for the signal InspectionCompleted to be toggled!" ,"Check the status of the `InspectionCompleted` signal.")), - new KeyValuePair(617, new AxoMessengerTextItem("Waiting for the signal ResultsValid to be set!" ,"Check the status of the `ResultsValid` signal.")), - new KeyValuePair(618, new AxoMessengerTextItem("Waiting for the InspectionResults to be copied!" ,"Check the status of the `InspectionResults` data.")), - - new KeyValuePair(621, new AxoMessengerTextItem("Waiting for the signal CommandExecuting to be reseted!" ,"Check the status of the `CommandExecuting` signal.")), - new KeyValuePair(622, new AxoMessengerTextItem("Waiting for the signal Online to be reseted!" ,"Check the status of the `Online` signal.")), - new KeyValuePair(623, new AxoMessengerTextItem("Waiting for the signal Error to be reseted!" ,"Check the status of the `Error` signal.")), - new KeyValuePair(624, new AxoMessengerTextItem("Waiting for the Job name to be written to User data!" ,"Check the status of the `User` data.")), - new KeyValuePair(625, new AxoMessengerTextItem("Waiting for the signal ExtendedUserDataSetAcknowledge to be set!" ,"Check the status of the `ExtendedUserDataSetAcknowledge` signal.")), - new KeyValuePair(626, new AxoMessengerTextItem("Waiting for the signal ExtendedUserDataSetAcknowledge to be reseted!" ,"Check the status of the `ExtendedUserDataSetAcknowledge` signal.")), - new KeyValuePair(627, new AxoMessengerTextItem("Waiting for the signal CommandComplete to be set!" ,"Check the status of the `CommandComplete` signal.")), - new KeyValuePair(628, new AxoMessengerTextItem("Waiting for the signal CommandComplete to be reseted!" ,"Check the status of the `CommandComplete` signal.")), - new KeyValuePair(629, new AxoMessengerTextItem("Waiting for the signal Online to be set!" ,"Check the status of the `Online` signal.")), - - - new KeyValuePair(641, new AxoMessengerTextItem("Waiting for the signal CommandExecuting to be reseted!" ,"Check the status of the `CommandExecuting` signal.")), - new KeyValuePair(642, new AxoMessengerTextItem("Waiting for the signal Online to be reseted!" ,"Check the status of the `Online` signal.")), - new KeyValuePair(643, new AxoMessengerTextItem("Waiting for the signal Error to be reseted!" ,"Check the status of the `Error` signal.")), - new KeyValuePair(644, new AxoMessengerTextItem("Waiting for the signal CommandComplete to be set!" ,"Check the status of the `CommandComplete` signal.")), - new KeyValuePair(645, new AxoMessengerTextItem("Waiting for the signal CommandComplete to be reseted!" ,"Check the status of the `CommandComplete` signal.")), - new KeyValuePair(646, new AxoMessengerTextItem("Waiting for the signal Online to be set!" ,"Check the status of the `Online` signal.")), - - new KeyValuePair(652, new AxoMessengerTextItem("Waiting for the signal TriggerSoftEvent to be set!" ,"Check the status of the `TriggerSoftEvent` signal.")), - new KeyValuePair(653, new AxoMessengerTextItem("Waiting for the signal TriggerSoftEvent to be reseted!" ,"Check the status of the `TriggerSoftEvent` signal.")), - - new KeyValuePair(725, new AxoMessengerTextItem("Empty job name inserted!" ,"Check the required job name.")), - new KeyValuePair(726, new AxoMessengerTextItem("Required job number is greater than the maximal value!" ,"Check the sensor manufacturer documentation.")), - new KeyValuePair(727, new AxoMessengerTextItem("Required soft event number is greater than the maximal value of 7!" ,"Check the sensor manufacturer documentation.")), - - }; - - TaskMessenger.DotNetMessengerTextList = messengerTextList; - } - } - - public partial class AxoInsight_Status : AxoComponent_Status - { - Dictionary errorDescriptionDict = new Dictionary(); - Dictionary actionDescriptionDict = new Dictionary(); - - public string ErrorDescription - { - get - { - if(errorDescriptionDict == null) { errorDescriptionDict = new Dictionary(); } - if(errorDescriptionDict.Count == 0) - { - errorDescriptionDict.Add(0 , " "); - errorDescriptionDict.Add(600, "Waiting for the signal ExposureComplete to be reseted!"); - errorDescriptionDict.Add(601, "Waiting for the signal ResultsValid to be reseted!"); - errorDescriptionDict.Add(602, "Waiting for the signal Error to be reseted!"); - errorDescriptionDict.Add(603, "Waiting for the signal TriggerReady to be set!"); - errorDescriptionDict.Add(604, "Waiting for the signal TriggerAcknowledge to be set!"); - errorDescriptionDict.Add(605, "Waiting for the signal InspectionCompleted to be toggled!"); - errorDescriptionDict.Add(606, "Waiting for the signal ResultsValid to be set!"); - errorDescriptionDict.Add(607, "Waiting for the InspectionResults to be copied!"); - errorDescriptionDict.Add(608, "Waiting for the signal CommandExecuting to be reseted!"); - errorDescriptionDict.Add(609, "Waiting for the signal Online to be reseted!"); - errorDescriptionDict.Add(610, "Waiting for the signal Error to be reseted!"); - errorDescriptionDict.Add(611, "Waiting for the Job name to be written to the User data!"); - errorDescriptionDict.Add(612, "Waiting for the signal ExtendedUserDataSetAcknowledge to be set!"); - errorDescriptionDict.Add(613, "Waiting for the signal ExtendedUserDataSetAcknowledge to be reseted!"); - errorDescriptionDict.Add(614, "Waiting for the signal CommandComplete to be set!"); - errorDescriptionDict.Add(615, "Waiting for the signal CommandComplete to be reseted!"); - errorDescriptionDict.Add(616, "Waiting for the signal Online to be set!"); - errorDescriptionDict.Add(617, "Waiting for the signal TriggerSoftEvent to be set!"); - errorDescriptionDict.Add(618, "Waiting for the signal TriggerSoftEvent to be reseted!"); - - - errorDescriptionDict.Add(700, "Parent has NULL reference in the Run method!"); - errorDescriptionDict.Add(701, "hwIdAcquisitionControl has invalid value in the Run method!"); - errorDescriptionDict.Add(702, "hwIdAcquisitionStatus has invalid value in the Run method!"); - errorDescriptionDict.Add(703, "hwIdInspectionControl has invalid value in the Run method!"); - errorDescriptionDict.Add(704, "hwIdInspectionStatus has invalid value in the Run method!"); - errorDescriptionDict.Add(705, "hwIdCommandControl has invalid value in the Run method!"); - errorDescriptionDict.Add(706, "hwIdSoftEventControl has invalid value in the Run method!"); - errorDescriptionDict.Add(707, "hwIdResultData has invalid value in the Run method!"); - errorDescriptionDict.Add(708, "hwIdUserData has invalid value in the Run method!"); - errorDescriptionDict.Add(709, "Error reading the AcquisitionStatus in the UpdateInputs method!"); - errorDescriptionDict.Add(710, "Error reading the InspectionStatus in the UpdateInputs method!"); - errorDescriptionDict.Add(711, "Error reading the CommandControl in the UpdateInputs method!"); - errorDescriptionDict.Add(712, "Error reading the SoftEventControl in the UpdateInputs method!"); - errorDescriptionDict.Add(713, "Error reading the ResultData in the UpdateInputs method!"); - errorDescriptionDict.Add(714, "ResultData has invalid size!"); - errorDescriptionDict.Add(715, "Error writing the AcquisitionControl in the UpdateOutputs method!"); - errorDescriptionDict.Add(716, "Error writing the ResultsControl in the UpdateOutputs method!"); - errorDescriptionDict.Add(717, "Error writing the CommandControl in the UpdateOutputs method!"); - errorDescriptionDict.Add(718, "Error writing the SoftEventControl in the UpdateOutputs method!"); - errorDescriptionDict.Add(719, "UserData has invalid size!"); - errorDescriptionDict.Add(720, "Error writing the 16bytes of the UserData in the UpdateOutputs method!"); - errorDescriptionDict.Add(721, "Error writing the 32bytes of the UserData in the UpdateOutputs method!"); - errorDescriptionDict.Add(722, "Error writing the 64bytes of the UserData in the UpdateOutputs method!"); - errorDescriptionDict.Add(723, "Error writing the 128bytes of the UserData in the UpdateOutputs method!"); - errorDescriptionDict.Add(724, "Error writing the 254bytes of the UserData in the UpdateOutputs method!"); - errorDescriptionDict.Add(725, "Empty job name inserted!"); - errorDescriptionDict.Add(726, "Required job number is greater than the maximal value!"); - errorDescriptionDict.Add(727, "Required soft event number is greater than the maximal value of 7!"); - errorDescriptionDict.Add(800, "Clearing of the inspection results finished with error!"); - errorDescriptionDict.Add(801, "Clearing of the inspection results was aborted, while not yet completed!"); - errorDescriptionDict.Add(810, "Reading finished with error!"); - errorDescriptionDict.Add(811, "Reading was aborted, while not yet completed!"); - errorDescriptionDict.Add(820, "Change job by name finished with error!"); - errorDescriptionDict.Add(821, "Change job by name was aborted, while not yet completed!"); - errorDescriptionDict.Add(840, "Change job by number finished with error!"); - errorDescriptionDict.Add(841, "Change job by number was aborted, while not yet completed!"); - errorDescriptionDict.Add(850, "SoftEvent finished with error!"); - errorDescriptionDict.Add(851, "SoftEvent was aborted, while not yet completed!"); - } - string errorDescription = " "; - - if(Error == null) - return errorDescription; - - if (errorDescriptionDict.TryGetValue(Error.Id.LastValue, out errorDescription)) - { - return errorDescription; - } - else - - { - return " "; - } - } - } - - public string ActionDescription - { - get - { - if (actionDescriptionDict == null) { actionDescriptionDict = new Dictionary(); } - if (actionDescriptionDict.Count == 0) - { - actionDescriptionDict.Add(0, " "); - actionDescriptionDict.Add(50, "Restore has been executed."); - - actionDescriptionDict.Add(100, "Clearing of the inspection results started."); - actionDescriptionDict.Add(300, "Clearing of the inspection results running."); - actionDescriptionDict.Add(301, "Clearing of the inspection results running."); - actionDescriptionDict.Add(302, "Clearing of the inspection results running."); - actionDescriptionDict.Add(303, "Clearing of the inspection results running."); - actionDescriptionDict.Add(304, "Clearing of the inspection results running."); - actionDescriptionDict.Add(305, "Clearing of the inspection results running."); - actionDescriptionDict.Add(306, "Clearing of the inspection results running."); - actionDescriptionDict.Add(307, "Clearing of the inspection results running."); - actionDescriptionDict.Add(308, "Clearing of the inspection results running."); - actionDescriptionDict.Add(309, "Clearing of the inspection results running."); - actionDescriptionDict.Add(101, "Clearing of the inspection results finished succesfully."); - actionDescriptionDict.Add(102, "Clearing of the inspection results restored."); - - actionDescriptionDict.Add(110, "Reading started."); - actionDescriptionDict.Add(310, "Reading running."); - actionDescriptionDict.Add(311, "Reading running."); - actionDescriptionDict.Add(312, "Reading running."); - actionDescriptionDict.Add(313, "Reading running."); - actionDescriptionDict.Add(314, "Reading running."); - actionDescriptionDict.Add(315, "Reading running."); - actionDescriptionDict.Add(316, "Reading running."); - actionDescriptionDict.Add(317, "Reading running."); - actionDescriptionDict.Add(318, "Reading running."); - actionDescriptionDict.Add(319, "Reading running."); - actionDescriptionDict.Add(111, "Reading finished succesfully."); - actionDescriptionDict.Add(112, "Reading restored."); - - actionDescriptionDict.Add(120, "Change job by name started."); - actionDescriptionDict.Add(320, "Change job by name running."); - actionDescriptionDict.Add(321, "Change job by name running."); - actionDescriptionDict.Add(322, "Change job by name running."); - actionDescriptionDict.Add(323, "Change job by name running."); - actionDescriptionDict.Add(324, "Change job by name running."); - actionDescriptionDict.Add(325, "Change job by name running."); - actionDescriptionDict.Add(326, "Change job by name running."); - actionDescriptionDict.Add(327, "Change job by name running."); - actionDescriptionDict.Add(328, "Change job by name running."); - actionDescriptionDict.Add(329, "Change job by name running."); - actionDescriptionDict.Add(330, "Change job by name running."); - actionDescriptionDict.Add(331, "Change job by name running."); - actionDescriptionDict.Add(332, "Change job by name running."); - actionDescriptionDict.Add(333, "Change job by name running."); - actionDescriptionDict.Add(334, "Change job by name running."); - actionDescriptionDict.Add(335, "Change job by name running."); - actionDescriptionDict.Add(336, "Change job by name running."); - actionDescriptionDict.Add(337, "Change job by name running."); - actionDescriptionDict.Add(338, "Change job by name running."); - actionDescriptionDict.Add(339, "Change job by name running."); - actionDescriptionDict.Add(121, "Change job by name finished succesfully."); - actionDescriptionDict.Add(122, "Change job by name restored."); - - actionDescriptionDict.Add(140, "Change job by number started."); - actionDescriptionDict.Add(340, "Change job by number running."); - actionDescriptionDict.Add(341, "Change job by number running."); - actionDescriptionDict.Add(342, "Change job by number running."); - actionDescriptionDict.Add(343, "Change job by number running."); - actionDescriptionDict.Add(344, "Change job by number running."); - actionDescriptionDict.Add(345, "Change job by number running."); - actionDescriptionDict.Add(346, "Change job by number running."); - actionDescriptionDict.Add(347, "Change job by number running."); - actionDescriptionDict.Add(348, "Change job by number running."); - actionDescriptionDict.Add(349, "Change job by number running."); - actionDescriptionDict.Add(141, "Change job by number finished succesfully."); - actionDescriptionDict.Add(142, "Change job by number restored."); - - actionDescriptionDict.Add(150, "SoftEvent started."); - actionDescriptionDict.Add(350, "SoftEvent running."); - actionDescriptionDict.Add(351, "SoftEvent running."); - actionDescriptionDict.Add(352, "SoftEvent running."); - actionDescriptionDict.Add(353, "SoftEvent running."); - actionDescriptionDict.Add(354, "SoftEvent running."); - actionDescriptionDict.Add(355, "SoftEvent running."); - actionDescriptionDict.Add(356, "SoftEvent running."); - actionDescriptionDict.Add(357, "SoftEvent running."); - actionDescriptionDict.Add(358, "SoftEvent running."); - actionDescriptionDict.Add(359, "SoftEvent running."); - actionDescriptionDict.Add(151, "SoftEvent finished succesfully."); - actionDescriptionDict.Add(152, "SoftEvent restored."); - - - actionDescriptionDict.Add(800, "Clearing of the inspection results finished with error!"); - actionDescriptionDict.Add(801, "Clearing of the inspection results was aborted, while not yet completed!"); - actionDescriptionDict.Add(810, "Reading finished with error!"); - actionDescriptionDict.Add(811, "Reading was aborted, while not yet completed!"); - actionDescriptionDict.Add(820, "Change job by name finished with error!"); - actionDescriptionDict.Add(821, "Change job by name was aborted, while not yet completed!"); - actionDescriptionDict.Add(840, "Change job by number finished with error!"); - actionDescriptionDict.Add(841, "Change job by number was aborted, while not yet completed!"); - actionDescriptionDict.Add(850, "Soft event finished with error!"); - actionDescriptionDict.Add(851, "Soft event finished was aborted, while not yet completed!"); - } - - string actionDescription = " "; - - if (Action == null) - return actionDescription; - - if (actionDescriptionDict.TryGetValue(Action.Id.LastValue, out actionDescription)) - { - return actionDescription; - } - else - { - return " "; - } - - } - } - } -} - diff --git a/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoInsight/v_24_0_0/AxoInsight.cs b/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoInsight/v_24_0_0/AxoInsight.cs new file mode 100644 index 000000000..cc6191ae9 --- /dev/null +++ b/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoInsight/v_24_0_0/AxoInsight.cs @@ -0,0 +1,640 @@ +using AXOpen.Components.Abstractions; +using AXOpen.Messaging.Static; +using AXSharp.Connector; +using System; +using System.Collections.Generic; + +namespace AXOpen.Components.Cognex.Vision.v_24_0_0 +{ + public partial class AxoInsight + { + partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) + { + try + { + InitializeMessenger(); + InitializeTaskMessenger(); + } + catch (Exception) + { + + throw; + } + } + private void InitializeMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + + new KeyValuePair(50, new AxoMessengerTextItem("Restore has been executed.", "")), + + new KeyValuePair(100, new AxoMessengerTextItem("Clearing of the inspection results started.", "")), + new KeyValuePair(101, new AxoMessengerTextItem("Clearing of the inspection results finished succesfully.", "")), + new KeyValuePair(102, new AxoMessengerTextItem("Clearing of the inspection results restored.", "")), + + new KeyValuePair(110, new AxoMessengerTextItem("Reading started.", "")), + new KeyValuePair(111, new AxoMessengerTextItem("Reading finished succesfully.", "")), + new KeyValuePair(112, new AxoMessengerTextItem("Reading restored.", "")), + + new KeyValuePair(120, new AxoMessengerTextItem("Change job by name started.", "")), + new KeyValuePair(121, new AxoMessengerTextItem("Change job by name finished succesfully.", "")), + new KeyValuePair(122, new AxoMessengerTextItem("Change job by name restored.", "")), + + new KeyValuePair(140, new AxoMessengerTextItem("Change job by number started.", "")), + new KeyValuePair(141, new AxoMessengerTextItem("Change job by number finished succesfully.", "")), + new KeyValuePair(142, new AxoMessengerTextItem("Change job by number restored.", "")), + + new KeyValuePair(150, new AxoMessengerTextItem("SoftEvent started.", "")), + new KeyValuePair(151, new AxoMessengerTextItem("SoftEvent finished succesfully.", "")), + new KeyValuePair(152, new AxoMessengerTextItem("SoftEvent restored.", "")), + + // General alarms + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwIdAcquisitionControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Acquisition_Control'." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of hwIdAcquisitionStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2.Expected module: 'Acquisition_Status'." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of hwIdInspectionControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3.Expected module: 'Inspection_Control'." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of hwIdInspectionStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4.Expected module: 'Inspection_Status'." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of hwIdCommandControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 5.Expected module: 'Command_Control'." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of hwIdSoftEventControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 6.Expected module: 'SoftEvent_Control'." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of hwIdUserData_7 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 7.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-254_bytes'.", "Check the hardware configuration.")), + + new KeyValuePair(780, new AxoMessengerTextItem("Hw configuration error. Value of hwIdUserData_8 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(781, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(782, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(783, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(784, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(785, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(786, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 8.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-254_bytes'.", "Check the hardware configuration.")), + + new KeyValuePair(790, new AxoMessengerTextItem("Hw configuration error. Move the module from slot 9 into the empty slot 8" ,"Check the hardware configuration.")), + new KeyValuePair(791, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(792, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(793, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(794, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(795, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(796, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 9.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-254_bytes'.", "Check the hardware configuration.")), + + new KeyValuePair(790, new AxoMessengerTextItem("Hw configuration error. Move the module from slot 10 into the empty slot 9" ,"Check the hardware configuration.")), + new KeyValuePair(801, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(802, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(803, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(804, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(805, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(806, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 10.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-254_bytes'.", "Check the hardware configuration.")), + + new KeyValuePair(810, new AxoMessengerTextItem("Hw configuration error. Value of hwIdResultData_11 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(811, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(812, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(813, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(814, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(815, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(816, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 11.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'." ,"Check the hardware configuration.")), + + new KeyValuePair(820, new AxoMessengerTextItem("Hw configuration error. Value of hwIdResultData_12 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(821, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(822, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(823, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(824, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(825, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(826, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 12.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'." ,"Check the hardware configuration.")), + + new KeyValuePair(830, new AxoMessengerTextItem("Hw configuration error. Move the module from slot 13 into the empty slot 12" ,"Check the hardware configuration.")), + new KeyValuePair(831, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(832, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(833, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(834, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(835, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(836, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 13.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'." ,"Check the hardware configuration.")), + + new KeyValuePair(840, new AxoMessengerTextItem("Hw configuration error. Move the module from slot 14 into the empty slot 13" ,"Check the hardware configuration.")), + new KeyValuePair(841, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(842, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(843, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(844, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(845, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(846, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 14.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'." ,"Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwIdAcquisitionControl ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdAcquisitionControl ` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `hwIdAcquisitionStatus ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdAcquisitionStatus ` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `hwIdInspectionControl ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdInspectionControl ` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `hwIdInspectionStatus ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdInspectionStatus ` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `hwIdCommandControl ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdCommandControl ` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `hwIdSoftEventControl ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdSoftEventControl ` parameter is assigned.")), + new KeyValuePair(1138, new AxoMessengerTextItem("Input variables `hwIdUserData_7-10` have invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdUserData_7-10` parameters are assigned.")), + new KeyValuePair(1139, new AxoMessengerTextItem("Input variables `hwIdResultData_11-14` have invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdResultData_11-14 ` parameters are assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the AcquisitionStatus!" ,"Check the value of the hwIdAcquisitionStatus and reacheability of the device!")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the InspectionStatus!" ,"Check the value of the hwIdInspectionStatusand reacheability of the device!")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the CommandControl!" ,"Check the value of the hwIdCommandControl and reacheability of the device!")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the SoftEventControl!" ,"Check the value of the hwIdSoftEventControl and reacheability of the device!")), + new KeyValuePair(1205, new AxoMessengerTextItem("Error reading the ResultData at slot 11!" ,"Check the value of the _hwIdResultData_Slot_11 and reacheability of the device!")), + new KeyValuePair(1206, new AxoMessengerTextItem("_ResultDataSize_Slot_11 has invalid size!" ,"Check the real size of the `_ResultDataSize_Slot_11`, so as the value of the ResultDataSize parameter!")), + new KeyValuePair(1207, new AxoMessengerTextItem("Error reading the ResultData at slot 12!" ,"Check the value of the _hwIdResultData_Slot_12 and reacheability of the device!")), + new KeyValuePair(1208, new AxoMessengerTextItem("_ResultDataSize_Slot_12 has invalid size!" ,"Check the real size of the `_ResultDataSize_Slot_12`, so as the value of the ResultDataSize parameter!")), + new KeyValuePair(1209, new AxoMessengerTextItem("Error reading the ResultData at slot 13!" ,"Check the value of the _hwIdResultData_Slot_13 and reacheability of the device!")), + new KeyValuePair(1210, new AxoMessengerTextItem("_ResultDataSize_Slot_13 has invalid size!" ,"Check the real size of the `_ResultDataSize_Slot_13`, so as the value of the ResultDataSize parameter!")), + new KeyValuePair(1211, new AxoMessengerTextItem("Error reading the ResultData at slot 14!" ,"Check the value of the _hwIdResultData_Slot_14 and reacheability of the device!")), + new KeyValuePair(1212, new AxoMessengerTextItem("_ResultDataSize_Slot_14 has invalid size!" ,"Check the real size of the `_ResultDataSize_Slot_14`, so as the value of the ResultDataSize parameter!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the AcquisitionControl!" ,"Check the value of the hwIdAcquisitionControl and reacheability of the device!")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the ResultsControl!" ,"Check the value of the hwIdesultsControl and reacheability of the device!")), + new KeyValuePair(1233, new AxoMessengerTextItem("Error writing the CommandControl!" ,"Check the value of the hwIdCommandControl and reacheability of the device!")), + new KeyValuePair(1234, new AxoMessengerTextItem("Error writing the SoftEventControl!" ,"Check the value of the hwIdSoftEventControl and reacheability of the device!")), + new KeyValuePair(1235, new AxoMessengerTextItem("UserData at slot 7 has invalid size!" ,"Check the real size of the `_UserDataSize_Slot_7`, so as the value of the UserDataSize parameter!")), + new KeyValuePair(1236, new AxoMessengerTextItem("Error writing the 16bytes of the UserData at Slot 7!" ,"Check the value of the _hwIdUserDataSlot_7, the real size of the `_UserDataSize_Slot_7`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1237, new AxoMessengerTextItem("Error writing the 32bytes of the UserData at Slot 7!" ,"Check the value of the _hwIdUserDataSlot_7, the real size of the `_UserDataSize_Slot_7`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1238, new AxoMessengerTextItem("Error writing the 64bytes of the UserData at Slot 7!" ,"Check the value of the _hwIdUserDataSlot_7, the real size of the `_UserDataSize_Slot_7`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1239, new AxoMessengerTextItem("Error writing the 128bytes of the UserData at Slot 7!" ,"Check the value of the _hwIdUserDataSlot_7, the real size of the `_UserDataSize_Slot_7`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1240, new AxoMessengerTextItem("Error writing the 254bytes of the UserData at Slot 7!" ,"Check the value of the _hwIdUserDataSlot_7, the real size of the `_UserDataSize_Slot_7`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1241, new AxoMessengerTextItem("UserData at slot 8 has invalid size!" ,"Check the real size of the `_UserDataSize_Slot_8`, so as the value of the UserDataSize parameter!")), + new KeyValuePair(1242, new AxoMessengerTextItem("Error writing the 16bytes of the UserData at Slot 8!" ,"Check the value of the _hwIdUserDataSlot_8, the real size of the `_UserDataSize_Slot_8`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1243, new AxoMessengerTextItem("Error writing the 32bytes of the UserData at Slot 8!" ,"Check the value of the _hwIdUserDataSlot_8, the real size of the `_UserDataSize_Slot_8`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1244, new AxoMessengerTextItem("Error writing the 64bytes of the UserData at Slot 8!" ,"Check the value of the _hwIdUserDataSlot_8, the real size of the `_UserDataSize_Slot_8`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1245, new AxoMessengerTextItem("Error writing the 128bytes of the UserData at Slot 8!" ,"Check the value of the _hwIdUserDataSlot_8, the real size of the `_UserDataSize_Slot_8`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1246, new AxoMessengerTextItem("Error writing the 254bytes of the UserData at Slot 8!" ,"Check the value of the _hwIdUserDataSlot_8, the real size of the `_UserDataSize_Slot_8`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1247, new AxoMessengerTextItem("UserData at slot 9 has invalid size!" ,"Check the real size of the `_UserDataSize_Slot_9`, so as the value of the UserDataSize parameter!")), + new KeyValuePair(1248, new AxoMessengerTextItem("Error writing the 16bytes of the UserData at Slot 9!" ,"Check the value of the _hwIdUserDataSlot_9, the real size of the `_UserDataSize_Slot_9`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1249, new AxoMessengerTextItem("Error writing the 32bytes of the UserData at Slot 9!" ,"Check the value of the _hwIdUserDataSlot_9, the real size of the `_UserDataSize_Slot_9`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1250, new AxoMessengerTextItem("Error writing the 64bytes of the UserData at Slot 9!" ,"Check the value of the _hwIdUserDataSlot_9, the real size of the `_UserDataSize_Slot_9`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1251, new AxoMessengerTextItem("Error writing the 128bytes of the UserData at Slot 9!" ,"Check the value of the _hwIdUserDataSlot_9, the real size of the `_UserDataSize_Slot_9`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1252, new AxoMessengerTextItem("Error writing the 254bytes of the UserData at Slot 9!" ,"Check the value of the _hwIdUserDataSlot_9, the real size of the `_UserDataSize_Slot_9`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1253, new AxoMessengerTextItem("UserData at slot 10 has invalid size!" ,"Check the real size of the `_UserDataSize_Slot_10`, so as the value of the UserDataSize parameter!")), + new KeyValuePair(1254, new AxoMessengerTextItem("Error writing the 16bytes of the UserData at Slot 10!" ,"Check the value of the _hwIdUserDataSlot_10, the real size of the `_UserDataSize_Slot_10`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1255, new AxoMessengerTextItem("Error writing the 32bytes of the UserData at Slot 10!" ,"Check the value of the _hwIdUserDataSlot_10, the real size of the `_UserDataSize_Slot_10`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1256, new AxoMessengerTextItem("Error writing the 64bytes of the UserData at Slot 10!" ,"Check the value of the _hwIdUserDataSlot_10, the real size of the `_UserDataSize_Slot_10`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1257, new AxoMessengerTextItem("Error writing the 128bytes of the UserData at Slot 10!" ,"Check the value of the _hwIdUserDataSlot_10, the real size of the `_UserDataSize_Slot_10`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1258, new AxoMessengerTextItem("Error writing the 254bytes of the UserData at Slot 10!" ,"Check the value of the _hwIdUserDataSlot_10, the real size of the `_UserDataSize_Slot_10`, the value of the UserDataSize parameter and reacheability of the device!")), + + new KeyValuePair(1400, new AxoMessengerTextItem("Hw configuration error. User data size equals to zero. Seems that no modules are defined in slots 7-10" ,"Check the hardware configuration.")), + new KeyValuePair(1401, new AxoMessengerTextItem("Hw configuration error. Result data size equals to zero. Seems that no modules are defined in slots 11-14" ,"Check the hardware configuration.")), + + new KeyValuePair(10000, new AxoMessengerTextItem("Clearing of the inspection results finished with error!" ,"Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("Clearing of the inspection results was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10010, new AxoMessengerTextItem("Reading finished with error!" ,"Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("Reading was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("Change job by name finished with error!" ,"Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("Change job by name was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10040, new AxoMessengerTextItem("Change job by number finished with error!" ,"Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("Change job by number was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10050, new AxoMessengerTextItem("SoftEvent finished with error!" ,"Check the details.")), + new KeyValuePair(10051, new AxoMessengerTextItem("SoftEvent was aborted, while not yet completed!" ,"Check the details.")), + + }; + + Messenger.DotNetMessengerTextList = messengerTextList; + } + + private void InitializeTaskMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + + new KeyValuePair(501, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ResultsValid to be reseted!" ,"Check the status of the `InspectionStatus.ResultsValid` signal.")), + + new KeyValuePair(511, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.ExposureComplete to be reseted!" ,"Check the status of the `AcquisitionStatus.ExposureComplete` signal.")), + new KeyValuePair(512, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ResultsValid to be reseted!" ,"Check the status of the `InspectionStatus.ResultsValid` signal.")), + new KeyValuePair(513, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.Error to be reseted!" ,"Check the status of the `InspectionStatus.Error` signal.")), + new KeyValuePair(514, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.TriggerReady to be set!" ,"Check the status of the `AcquisitionStatus.TriggerReady` signal.")), + new KeyValuePair(515, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.TriggerAcknowledge to be set!" ,"Check the status of the `AcquisitionStatus.TriggerAcknowledge` signal.")), + new KeyValuePair(516, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.InspectionCompleted to be toggled!" ,"Check the status of the `InspectionStatus.InspectionCompleted` signal.")), + new KeyValuePair(517, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ResultsValid to be set!" ,"Check the status of the `InspectionStatus.ResultsValid` signal.")), + new KeyValuePair(518, new AxoMessengerTextItem("Waiting for the InspectionResults to be copied!" ,"Check the status of the `InspectionResults` data.")), + + new KeyValuePair(520, new AxoMessengerTextItem("Empty job name inserted!" ,"Check the required job name.")), + new KeyValuePair(521, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandExecuting to be reseted!" ,"Check the status of the `InspectionStatus.CommandExecuting` signal.")), + new KeyValuePair(522, new AxoMessengerTextItem("Waiting for the signal Online to be reseted!" ,"Check the status of the `Online` signal.")), + new KeyValuePair(523, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.Error to be reseted!" ,"Check the status of the `InspectionStatus.Error` signal.")), + new KeyValuePair(524, new AxoMessengerTextItem("Waiting for the Job name to be written to User data!" ,"Check the status of the `User` data.")), + new KeyValuePair(525, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ExtendedUserDataSetAcknowledge to be set!" ,"Check the status of the `InspectionStatus.ExtendedUserDataSetAcknowledge` signal.")), + new KeyValuePair(526, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ExtendedUserDataSetAcknowledge to be reseted!" ,"Check the status of the `InspectionStatus.ExtendedUserDataSetAcknowledge` signal.")), + new KeyValuePair(527, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandComplete to be set!" ,"Check the status of the `InspectionStatus.CommandComplete` signal.")), + new KeyValuePair(528, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandComplete to be reseted!" ,"Check the status of the `InspectionStatus.CommandComplete` signal.")), + new KeyValuePair(529, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.Online to be set!" ,"Check the status of the `AcquisitionStatus.Online` signal.")), + + new KeyValuePair(540, new AxoMessengerTextItem("Required job number is greater than the maximal value!" ,"Check the sensor manufacturer documentation.")), + new KeyValuePair(541, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandExecuting to be reseted!" ,"Check the status of the `InspectionStatus.CommandExecuting` signal.")), + new KeyValuePair(542, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.Online to be reseted!" ,"Check the status of the `AcquisitionStatus.Online` signal.")), + new KeyValuePair(543, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.Error to be reseted!" ,"Check the status of the `InspectionStatus.Error` signal.")), + new KeyValuePair(544, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandComplete to be set!" ,"Check the status of the `InspectionStatus.CommandComplete` signal.")), + new KeyValuePair(545, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandComplete to be reseted!" ,"Check the status of the `InspectionStatus.CommandComplete` signal.")), + new KeyValuePair(546, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.Online to be set!" ,"Check the status of the `AcquisitionStatus.Online` signal.")), + + new KeyValuePair(550, new AxoMessengerTextItem("Required soft event number is greater than the maximal value of 7!" ,"Check the sensor manufacturer documentation.")), + new KeyValuePair(552, new AxoMessengerTextItem("Waiting for the signal SoftEventStatus.TriggerSoftEventAcknowledge to be set!" ,"Check the status of the `SoftEventStatus.TriggerSoftEventAcknowledge` signal.")), + new KeyValuePair(553, new AxoMessengerTextItem("Waiting for the signal SoftEventStatus.TriggerSoftEventAcknowledge to be reseted!" ,"Check the status of the `SoftEventStatus.TriggerSoftEventAcknowledge` signal.")), + + }; + + TaskMessenger.DotNetMessengerTextList = messengerTextList; + } + } + + public partial class AxoInsight_Status : AxoComponent_Status + { + Dictionary errorDescriptionDict = new Dictionary(); + Dictionary actionDescriptionDict = new Dictionary(); + + public string ErrorDescription + { + get + { + if (errorDescriptionDict == null) { errorDescriptionDict = new Dictionary(); } + if (errorDescriptionDict.Count == 0) + { + errorDescriptionDict.Add(0, " "); + + errorDescriptionDict.Add(501, "Waiting for the signal InspectionStatus.ResultsValid to be reseted!"); + + errorDescriptionDict.Add(511, "Waiting for the signal AcquisitionStatus.ExposureComplete to be reseted!"); + errorDescriptionDict.Add(512, "Waiting for the signal InspectionStatus.ResultsValid to be reseted!"); + errorDescriptionDict.Add(513, "Waiting for the signal InspectionStatus.Error to be reseted!"); + errorDescriptionDict.Add(514, "Waiting for the signal AcquisitionStatus.TriggerReady to be set!"); + errorDescriptionDict.Add(515, "Waiting for the signal AcquisitionStatus.TriggerAcknowledge to be set!"); + errorDescriptionDict.Add(516, "Waiting for the signal InspectionStatus.InspectionCompleted to be toggled!"); + errorDescriptionDict.Add(517, "Waiting for the signal InspectionStatus.ResultsValid to be set!"); + errorDescriptionDict.Add(518, "Waiting for the InspectionResults to be copied!"); + + errorDescriptionDict.Add(520, "Empty job name inserted!"); + errorDescriptionDict.Add(521, "Waiting for the signal InspectionStatus.CommandExecuting to be reseted!"); + errorDescriptionDict.Add(522, "Waiting for the signal AcquisitionStatus.Online to be reseted!"); + errorDescriptionDict.Add(523, "Waiting for the signal InspectionStatus.Error to be reseted!"); + errorDescriptionDict.Add(524, "Waiting for the Job name to be written to the User data!"); + errorDescriptionDict.Add(525, "Waiting for the signal InspectionStatus.ExtendedUserDataSetAcknowledge to be set!"); + errorDescriptionDict.Add(526, "Waiting for the signal InspectionStatus.ExtendedUserDataSetAcknowledge to be reseted!"); + errorDescriptionDict.Add(527, "Waiting for the signal InspectionStatus.CommandComplete to be set!"); + errorDescriptionDict.Add(528, "Waiting for the signal InspectionStatus.CommandComplete to be reseted!"); + errorDescriptionDict.Add(529, "Waiting for the signal AcquisitionStatus.Online to be set!"); + + errorDescriptionDict.Add(540, "Required job number is greater than the maximal value!"); + errorDescriptionDict.Add(541, "Waiting for the signal InspectionStatus.CommandExecuting to be reseted!"); + errorDescriptionDict.Add(542, "Waiting for the signal AcquisitionStatus.Online to be reseted!"); + errorDescriptionDict.Add(543, "Waiting for the signal InspectionStatus.Error to be reseted!"); + errorDescriptionDict.Add(544, "Waiting for the signal InspectionStatus.CommandComplete to be set!"); + errorDescriptionDict.Add(545, "Waiting for the signal InspectionStatus.CommandComplete to be reseted!"); + errorDescriptionDict.Add(546, "Waiting for the signal AcquisitionStatus.Online to be set!"); + + errorDescriptionDict.Add(550, "Required soft event number is greater than the maximal value of 7!"); + errorDescriptionDict.Add(552, "Waiting for the signal SoftEventStatus.TriggerSoftEventAcknowledge to be set!"); + errorDescriptionDict.Add(553, "Waiting for the signal SoftEventStatus.TriggerSoftEventAcknowledge to be reseted!"); + + + // General alarms + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ); + errorDescriptionDict.Add(710, "Hw configuration error. Value of hwIdAcquisitionControl is zero." ); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Acquisition_Control'." ); + errorDescriptionDict.Add(720, "Hw configuration error. Value of hwIdAcquisitionStatus is zero." ); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2.Expected module: 'Acquisition_Status'." ); + errorDescriptionDict.Add(730, "Hw configuration error. Value of hwIdInspectionControl is zero." ); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ); + errorDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 3.Expected module: 'Inspection_Control'." ); + errorDescriptionDict.Add(740, "Hw configuration error. Value of hwIdInspectionStatus is zero." ); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ); + errorDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 4.Expected module: 'Inspection_Status'." ); + errorDescriptionDict.Add(750, "Hw configuration error. Value of hwIdCommandControl is zero." ); + errorDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ); + errorDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ); + errorDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ); + errorDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ); + errorDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ); + errorDescriptionDict.Add(756, "Hw configuration error: Module with unexpected size or type detected in Slot 5.Expected module: 'Command_Control'." ); + errorDescriptionDict.Add(760, "Hw configuration error. Value of hwIdSoftEventControl is zero." ); + errorDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ); + errorDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ); + errorDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ); + errorDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ); + errorDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ); + errorDescriptionDict.Add(766, "Hw configuration error: Module with unexpected size or type detected in Slot 6.Expected module: 'SoftEvent_Control'." ); + errorDescriptionDict.Add(770, "Hw configuration error. Value of hwIdUserData_7 is zero." ); + errorDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ); + errorDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ); + errorDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ); + errorDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ); + errorDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ); + errorDescriptionDict.Add(776, "Hw configuration error: Module with unexpected size or type detected in Slot 7.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-254_bytes'."); + errorDescriptionDict.Add(780, "Hw configuration error. Value of hwIdUserData_8 is zero."); + errorDescriptionDict.Add(781, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ); + errorDescriptionDict.Add(782, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ); + errorDescriptionDict.Add(783, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ); + errorDescriptionDict.Add(784, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ); + errorDescriptionDict.Add(785, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ); + errorDescriptionDict.Add(786, "Hw configuration error: Module with unexpected size or type detected in Slot 8.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-254_bytes'."); + errorDescriptionDict.Add(790, "Hw configuration error. Move the module from slot 9 into the empty slot 8"); + errorDescriptionDict.Add(791, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9." ); + errorDescriptionDict.Add(792, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9." ); + errorDescriptionDict.Add(793, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9." ); + errorDescriptionDict.Add(794, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9." ); + errorDescriptionDict.Add(795, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9." ); + errorDescriptionDict.Add(796, "Hw configuration error: Module with unexpected size or type detected in Slot 9.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-254_bytes'."); + errorDescriptionDict.Add(800, "Hw configuration error. Move the module from slot 10 into the empty slot 9" ); + errorDescriptionDict.Add(801, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10." ); + errorDescriptionDict.Add(802, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10." ); + errorDescriptionDict.Add(803, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10." ); + errorDescriptionDict.Add(804, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10." ); + errorDescriptionDict.Add(805, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10."); + errorDescriptionDict.Add(806, "Hw configuration error: Module with unexpected size or type detected in Slot 10.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-254_bytes'."); + errorDescriptionDict.Add(810, "Hw configuration error. Value of hwIdResultData_11 is zero." ); + errorDescriptionDict.Add(811, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11." ); + errorDescriptionDict.Add(812, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11." ); + errorDescriptionDict.Add(813, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11." ); + errorDescriptionDict.Add(814, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11." ); + errorDescriptionDict.Add(815, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11."); + errorDescriptionDict.Add(816, "Hw configuration error: Module with unexpected size or type detected in Slot 11.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'."); + errorDescriptionDict.Add(820, "Hw configuration error. Value of hwIdResultData_12 is zero." ); + errorDescriptionDict.Add(821, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12." ); + errorDescriptionDict.Add(822, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12." ); + errorDescriptionDict.Add(823, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12." ); + errorDescriptionDict.Add(824, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12." ); + errorDescriptionDict.Add(825, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12."); + errorDescriptionDict.Add(826, "Hw configuration error: Module with unexpected size or type detected in Slot 12.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'."); + errorDescriptionDict.Add(830, "Hw configuration error. Move the module from slot 13 into the empty slot 12" ); + errorDescriptionDict.Add(831, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13." ); + errorDescriptionDict.Add(832, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13." ); + errorDescriptionDict.Add(833, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13." ); + errorDescriptionDict.Add(834, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13." ); + errorDescriptionDict.Add(835, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13." ); + errorDescriptionDict.Add(836, "Hw configuration error: Module with unexpected size or type detected in Slot 13.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'."); + errorDescriptionDict.Add(840, "Hw configuration error. Move the module from slot 14 into the empty slot 13" ); + errorDescriptionDict.Add(841, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14." ); + errorDescriptionDict.Add(842, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14." ); + errorDescriptionDict.Add(843, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14." ); + errorDescriptionDict.Add(844, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14." ); + errorDescriptionDict.Add(845, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14."); + errorDescriptionDict.Add(846, "Hw configuration error: Module with unexpected size or type detected in Slot 11.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'."); + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1132, "Input variable `hwIdAcquisitionControl ` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1133, "Input variable `hwIdAcquisitionStatus ` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1134, "Input variable `hwIdInspectionControl ` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1135, "Input variable `hwIdInspectionStatus ` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1136, "Input variable `hwIdCommandControl ` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1137, "Input variable `hwIdSoftEventControl ` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1138, "Input variables `hwIdUserData_7-10` have invalid value in `Run` method!" ); + errorDescriptionDict.Add(1139, "Input variables `hwIdResultData_11-14` have invalid value in `Run` method!" ); + errorDescriptionDict.Add(1201, "Error reading the AcquisitionStatus!" ); + errorDescriptionDict.Add(1202, "Error reading the InspectionStatus!" ); + errorDescriptionDict.Add(1203, "Error reading the CommandControl!" ); + errorDescriptionDict.Add(1204, "Error reading the SoftEventControl!" ); + errorDescriptionDict.Add(1205, "Error reading the ResultData at slot 11!" ); + errorDescriptionDict.Add(1206, "_ResultDataSize_Slot_11 has invalid size!" ); + errorDescriptionDict.Add(1207, "Error reading the ResultData at slot 12!" ); + errorDescriptionDict.Add(1208, "_ResultDataSize_Slot_12 has invalid size!" ); + errorDescriptionDict.Add(1209, "Error reading the ResultData at slot 13!" ); + errorDescriptionDict.Add(1210, "_ResultDataSize_Slot_13 has invalid size!" ); + errorDescriptionDict.Add(1211, "Error reading the ResultData at slot 14!" ); + errorDescriptionDict.Add(1212, "_ResultDataSize_Slot_14 has invalid size!" ); + errorDescriptionDict.Add(1231, "Error writing the AcquisitionControl!" ); + errorDescriptionDict.Add(1232, "Error writing the ResultsControl!" ); + errorDescriptionDict.Add(1233, "Error writing the CommandControl!" ); + errorDescriptionDict.Add(1234, "Error writing the SoftEventControl!" ); + errorDescriptionDict.Add(1235, "UserData at slot 7 has invalid size!" ); + errorDescriptionDict.Add(1236, "Error writing the 16bytes of the UserData at Slot 7!" ); + errorDescriptionDict.Add(1237, "Error writing the 32bytes of the UserData at Slot 7!" ); + errorDescriptionDict.Add(1238, "Error writing the 64bytes of the UserData at Slot 7!" ); + errorDescriptionDict.Add(1239, "Error writing the 128bytes of the UserData at Slot 7!" ); + errorDescriptionDict.Add(1240, "Error writing the 254bytes of the UserData at Slot 7!" ); + errorDescriptionDict.Add(1241, "UserData at slot 8 has invalid size!" ); + errorDescriptionDict.Add(1242, "Error writing the 16bytes of the UserData at Slot 8!" ); + errorDescriptionDict.Add(1243, "Error writing the 32bytes of the UserData at Slot 8!" ); + errorDescriptionDict.Add(1244, "Error writing the 64bytes of the UserData at Slot 8!" ); + errorDescriptionDict.Add(1245, "Error writing the 128bytes of the UserData at Slot 8!" ); + errorDescriptionDict.Add(1246, "Error writing the 254bytes of the UserData at Slot 8!" ); + errorDescriptionDict.Add(1247, "UserData at slot 9 has invalid size!" ); + errorDescriptionDict.Add(1248, "Error writing the 16bytes of the UserData at Slot 9!" ); + errorDescriptionDict.Add(1249, "Error writing the 32bytes of the UserData at Slot 9!" ); + errorDescriptionDict.Add(1250, "Error writing the 64bytes of the UserData at Slot 9!" ); + errorDescriptionDict.Add(1251, "Error writing the 128bytes of the UserData at Slot 9!" ); + errorDescriptionDict.Add(1252, "Error writing the 254bytes of the UserData at Slot 9!" ); + errorDescriptionDict.Add(1253, "UserData at slot 10 has invalid size!" ); + errorDescriptionDict.Add(1254, "Error writing the 16bytes of the UserData at Slot 10!" ); + errorDescriptionDict.Add(1255, "Error writing the 32bytes of the UserData at Slot 10!" ); + errorDescriptionDict.Add(1256, "Error writing the 64bytes of the UserData at Slot 10!" ); + errorDescriptionDict.Add(1257, "Error writing the 128bytes of the UserData at Slot 10!" ); + errorDescriptionDict.Add(1258, "Error writing the 254bytes of the UserData at Slot 10!" ); + errorDescriptionDict.Add(1400, "Hw configuration error. User data size equals to zero. Seems that no modules are defined in slots 7-10" ); + errorDescriptionDict.Add(1401, "Hw configuration error. Result data size equals to zero. Seems that no modules are defined in slots 11-14" ); + errorDescriptionDict.Add(10000, "Clearing of the inspection results finished with error!" ); + errorDescriptionDict.Add(10001, "Clearing of the inspection results was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10010, "Reading finished with error!" ); + errorDescriptionDict.Add(10011, "Reading was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10020, "Change job by name finished with error!" ); + errorDescriptionDict.Add(10021, "Change job by name was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10040, "Change job by number finished with error!" ); + errorDescriptionDict.Add(10041, "Change job by number was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10050, "SoftEvent finished with error!" ); + errorDescriptionDict.Add(10051, "SoftEvent was aborted, while not yet completed!" ); + + } + string errorDescription = " "; + + if (Error == null) + return errorDescription; + + if (errorDescriptionDict.TryGetValue(Error.Id.LastValue, out errorDescription)) + { + return errorDescription; + } + else + + { + return " "; + } + } + } + + public string ActionDescription + { + get + { + if (actionDescriptionDict == null) { actionDescriptionDict = new Dictionary(); } + if (actionDescriptionDict.Count == 0) + { + actionDescriptionDict.Add(0, " "); + actionDescriptionDict.Add(50, "Restore has been executed."); + + actionDescriptionDict.Add(100, "Clearing of the inspection results started."); + actionDescriptionDict.Add(300, "Clearing of the inspection results running."); + actionDescriptionDict.Add(301, "Clearing of the inspection results running."); + actionDescriptionDict.Add(302, "Clearing of the inspection results running."); + actionDescriptionDict.Add(303, "Clearing of the inspection results running."); + actionDescriptionDict.Add(304, "Clearing of the inspection results running."); + actionDescriptionDict.Add(305, "Clearing of the inspection results running."); + actionDescriptionDict.Add(306, "Clearing of the inspection results running."); + actionDescriptionDict.Add(307, "Clearing of the inspection results running."); + actionDescriptionDict.Add(308, "Clearing of the inspection results running."); + actionDescriptionDict.Add(309, "Clearing of the inspection results running."); + actionDescriptionDict.Add(101, "Clearing of the inspection results finished succesfully."); + actionDescriptionDict.Add(102, "Clearing of the inspection results restored."); + + actionDescriptionDict.Add(110, "Reading started."); + actionDescriptionDict.Add(310, "Reading running."); + actionDescriptionDict.Add(311, "Reading running."); + actionDescriptionDict.Add(312, "Reading running."); + actionDescriptionDict.Add(313, "Reading running."); + actionDescriptionDict.Add(314, "Reading running."); + actionDescriptionDict.Add(315, "Reading running."); + actionDescriptionDict.Add(316, "Reading running."); + actionDescriptionDict.Add(317, "Reading running."); + actionDescriptionDict.Add(318, "Reading running."); + actionDescriptionDict.Add(319, "Reading running."); + actionDescriptionDict.Add(111, "Reading finished succesfully."); + actionDescriptionDict.Add(112, "Reading restored."); + + actionDescriptionDict.Add(120, "Change job by name started."); + actionDescriptionDict.Add(320, "Change job by name running."); + actionDescriptionDict.Add(321, "Change job by name running."); + actionDescriptionDict.Add(322, "Change job by name running."); + actionDescriptionDict.Add(323, "Change job by name running."); + actionDescriptionDict.Add(324, "Change job by name running."); + actionDescriptionDict.Add(325, "Change job by name running."); + actionDescriptionDict.Add(326, "Change job by name running."); + actionDescriptionDict.Add(327, "Change job by name running."); + actionDescriptionDict.Add(328, "Change job by name running."); + actionDescriptionDict.Add(329, "Change job by name running."); + actionDescriptionDict.Add(330, "Change job by name running."); + actionDescriptionDict.Add(331, "Change job by name running."); + actionDescriptionDict.Add(332, "Change job by name running."); + actionDescriptionDict.Add(333, "Change job by name running."); + actionDescriptionDict.Add(334, "Change job by name running."); + actionDescriptionDict.Add(335, "Change job by name running."); + actionDescriptionDict.Add(336, "Change job by name running."); + actionDescriptionDict.Add(337, "Change job by name running."); + actionDescriptionDict.Add(338, "Change job by name running."); + actionDescriptionDict.Add(339, "Change job by name running."); + actionDescriptionDict.Add(121, "Change job by name finished succesfully."); + actionDescriptionDict.Add(122, "Change job by name restored."); + + actionDescriptionDict.Add(140, "Change job by number started."); + actionDescriptionDict.Add(340, "Change job by number running."); + actionDescriptionDict.Add(341, "Change job by number running."); + actionDescriptionDict.Add(342, "Change job by number running."); + actionDescriptionDict.Add(343, "Change job by number running."); + actionDescriptionDict.Add(344, "Change job by number running."); + actionDescriptionDict.Add(345, "Change job by number running."); + actionDescriptionDict.Add(346, "Change job by number running."); + actionDescriptionDict.Add(347, "Change job by number running."); + actionDescriptionDict.Add(348, "Change job by number running."); + actionDescriptionDict.Add(349, "Change job by number running."); + actionDescriptionDict.Add(141, "Change job by number finished succesfully."); + actionDescriptionDict.Add(142, "Change job by number restored."); + + actionDescriptionDict.Add(150, "SoftEvent started."); + actionDescriptionDict.Add(350, "SoftEvent running."); + actionDescriptionDict.Add(351, "SoftEvent running."); + actionDescriptionDict.Add(352, "SoftEvent running."); + actionDescriptionDict.Add(353, "SoftEvent running."); + actionDescriptionDict.Add(354, "SoftEvent running."); + actionDescriptionDict.Add(355, "SoftEvent running."); + actionDescriptionDict.Add(356, "SoftEvent running."); + actionDescriptionDict.Add(357, "SoftEvent running."); + actionDescriptionDict.Add(358, "SoftEvent running."); + actionDescriptionDict.Add(359, "SoftEvent running."); + actionDescriptionDict.Add(151, "SoftEvent finished succesfully."); + actionDescriptionDict.Add(152, "SoftEvent restored."); + + + actionDescriptionDict.Add(10000, "Clearing of the inspection results finished with error!"); + actionDescriptionDict.Add(10001, "Clearing of the inspection results was aborted, while not yet completed!"); + actionDescriptionDict.Add(10010, "Reading finished with error!"); + actionDescriptionDict.Add(10011, "Reading was aborted, while not yet completed!"); + actionDescriptionDict.Add(10020, "Change job by name finished with error!"); + actionDescriptionDict.Add(10021, "Change job by name was aborted, while not yet completed!"); + actionDescriptionDict.Add(10040, "Change job by number finished with error!"); + actionDescriptionDict.Add(10041, "Change job by number was aborted, while not yet completed!"); + actionDescriptionDict.Add(10050, "Soft event finished with error!"); + actionDescriptionDict.Add(10051, "Soft event finished was aborted, while not yet completed!"); + } + + string actionDescription = " "; + + if (Action == null) + return actionDescription; + + if (actionDescriptionDict.TryGetValue(Action.Id.LastValue, out actionDescription)) + { + return actionDescription; + } + else + { + return " "; + } + + } + } + } +} + diff --git a/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoInsight/v_6_0_0_0/AxoInsight.cs b/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoInsight/v_6_0_0_0/AxoInsight.cs new file mode 100644 index 000000000..39270c874 --- /dev/null +++ b/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoInsight/v_6_0_0_0/AxoInsight.cs @@ -0,0 +1,496 @@ +using AXOpen.Components.Abstractions; +using AXOpen.Messaging.Static; +using AXSharp.Connector; +using System; +using System.Collections.Generic; + +namespace AXOpen.Components.Cognex.Vision.v_6_0_0_0 +{ + public partial class AxoInsight + { + partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) + { + try + { + InitializeMessenger(); + InitializeTaskMessenger(); + } + catch (Exception) + { + + throw; + } + } + private void InitializeMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + + new KeyValuePair(50, new AxoMessengerTextItem("Restore has been executed.", "")), + + new KeyValuePair(100, new AxoMessengerTextItem("Clearing of the inspection results started.", "")), + new KeyValuePair(101, new AxoMessengerTextItem("Clearing of the inspection results finished succesfully.", "")), + new KeyValuePair(102, new AxoMessengerTextItem("Clearing of the inspection results restored.", "")), + + new KeyValuePair(110, new AxoMessengerTextItem("Reading started.", "")), + new KeyValuePair(111, new AxoMessengerTextItem("Reading finished succesfully.", "")), + new KeyValuePair(112, new AxoMessengerTextItem("Reading restored.", "")), + + new KeyValuePair(120, new AxoMessengerTextItem("Change job by name started.", "")), + new KeyValuePair(121, new AxoMessengerTextItem("Change job by name finished succesfully.", "")), + new KeyValuePair(122, new AxoMessengerTextItem("Change job by name restored.", "")), + + new KeyValuePair(140, new AxoMessengerTextItem("Change job by number started.", "")), + new KeyValuePair(141, new AxoMessengerTextItem("Change job by number finished succesfully.", "")), + new KeyValuePair(142, new AxoMessengerTextItem("Change job by number restored.", "")), + + new KeyValuePair(150, new AxoMessengerTextItem("SoftEvent started.", "")), + new KeyValuePair(151, new AxoMessengerTextItem("SoftEvent finished succesfully.", "")), + new KeyValuePair(152, new AxoMessengerTextItem("SoftEvent restored.", "")), + + // General alarms + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwIdAcquisitionControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Acquisition_Control'." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of hwIdAcquisitionStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2.Expected module: 'Acquisition_Status'." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of hwIdInspectionControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3.Expected module: 'Inspection_Control'." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of hwIdInspectionStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4.Expected module: 'Inspection_Status'." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of hwIdCommandControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 5.Expected module: 'Command_Control'." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of hwIdSoftEventControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 6.Expected module: 'SoftEvent_Control'." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of hwIdUserData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 7.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-250_bytes'.", "Check the hardware configuration.")), + + new KeyValuePair(780, new AxoMessengerTextItem("Hw configuration error. Value of hwIdResultData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(781, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(782, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(783, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(784, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(785, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(786, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 8.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'." ,"Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwIdAcquisitionControl ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdAcquisitionControl ` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `hwIdAcquisitionStatus ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdAcquisitionStatus ` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `hwIdInspectionControl ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdInspectionControl ` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `hwIdInspectionStatus ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdInspectionStatus ` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `hwIdCommandControl ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdCommandControl ` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `hwIdSoftEventControl ` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdSoftEventControl ` parameter is assigned.")), + new KeyValuePair(1138, new AxoMessengerTextItem("Input variable `hwIdUserData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdUserData` parameter is assigned.")), + new KeyValuePair(1139, new AxoMessengerTextItem("Input variable `hwIdResultData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdResultData ` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the AcquisitionStatus!" ,"Check the value of the hwIdAcquisitionStatus and reacheability of the device!")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the InspectionStatus!" ,"Check the value of the hwIdInspectionStatusand reacheability of the device!")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the CommandControl!" ,"Check the value of the hwIdCommandControl and reacheability of the device!")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the SoftEventControl!" ,"Check the value of the hwIdSoftEventControl and reacheability of the device!")), + new KeyValuePair(1205, new AxoMessengerTextItem("Error reading the ResultData!" ,"Check the value of the hwIdResultData and reacheability of the device!")), + new KeyValuePair(1206, new AxoMessengerTextItem("ResultData has invalid size!" ,"Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the AcquisitionControl!" ,"Check the value of the hwIdAcquisitionControl and reacheability of the device!")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the ResultsControl!" ,"Check the value of the hwIdesultsControl and reacheability of the device!")), + new KeyValuePair(1233, new AxoMessengerTextItem("Error writing the CommandControl!" ,"Check the value of the hwIdCommandControl and reacheability of the device!")), + new KeyValuePair(1234, new AxoMessengerTextItem("Error writing the SoftEventControl!" ,"Check the value of the hwIdSoftEventControl and reacheability of the device!")), + new KeyValuePair(1235, new AxoMessengerTextItem("UserData has invalid size!" ,"Check the real size of the `UserData`, so as the value of the UserDataSize parameter!")), + new KeyValuePair(1236, new AxoMessengerTextItem("Error writing the 16bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1237, new AxoMessengerTextItem("Error writing the 32bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1238, new AxoMessengerTextItem("Error writing the 64bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1239, new AxoMessengerTextItem("Error writing the 128bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1240, new AxoMessengerTextItem("Error writing the 254bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + + new KeyValuePair(10000, new AxoMessengerTextItem("Clearing of the inspection results finished with error!" ,"Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("Clearing of the inspection results was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10010, new AxoMessengerTextItem("Reading finished with error!" ,"Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("Reading was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("Change job by name finished with error!" ,"Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("Change job by name was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10040, new AxoMessengerTextItem("Change job by number finished with error!" ,"Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("Change job by number was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10050, new AxoMessengerTextItem("SoftEvent finished with error!" ,"Check the details.")), + new KeyValuePair(10051, new AxoMessengerTextItem("SoftEvent was aborted, while not yet completed!" ,"Check the details.")), + + }; + + Messenger.DotNetMessengerTextList = messengerTextList; + } + + private void InitializeTaskMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + + new KeyValuePair(501, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ResultsValid to be reseted!" ,"Check the status of the `InspectionStatus.ResultsValid` signal.")), + + new KeyValuePair(511, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.ExposureComplete to be reseted!" ,"Check the status of the `AcquisitionStatus.ExposureComplete` signal.")), + new KeyValuePair(512, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ResultsValid to be reseted!" ,"Check the status of the `InspectionStatus.ResultsValid` signal.")), + new KeyValuePair(513, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.Error to be reseted!" ,"Check the status of the `InspectionStatus.Error` signal.")), + new KeyValuePair(514, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.TriggerReady to be set!" ,"Check the status of the `AcquisitionStatus.TriggerReady` signal.")), + new KeyValuePair(515, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.TriggerAcknowledge to be set!" ,"Check the status of the `AcquisitionStatus.TriggerAcknowledge` signal.")), + new KeyValuePair(516, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.InspectionCompleted to be toggled!" ,"Check the status of the `InspectionStatus.InspectionCompleted` signal.")), + new KeyValuePair(517, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ResultsValid to be set!" ,"Check the status of the `InspectionStatus.ResultsValid` signal.")), + new KeyValuePair(518, new AxoMessengerTextItem("Waiting for the InspectionResults to be copied!" ,"Check the status of the `InspectionResults` data.")), + + new KeyValuePair(520, new AxoMessengerTextItem("Empty job name inserted!" ,"Check the required job name.")), + new KeyValuePair(521, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandExecuting to be reseted!" ,"Check the status of the `InspectionStatus.CommandExecuting` signal.")), + new KeyValuePair(522, new AxoMessengerTextItem("Waiting for the signal Online to be reseted!" ,"Check the status of the `Online` signal.")), + new KeyValuePair(523, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.Error to be reseted!" ,"Check the status of the `InspectionStatus.Error` signal.")), + new KeyValuePair(524, new AxoMessengerTextItem("Waiting for the Job name to be written to User data!" ,"Check the status of the `User` data.")), + new KeyValuePair(525, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ExtendedUserDataSetAcknowledge to be set!" ,"Check the status of the `InspectionStatus.ExtendedUserDataSetAcknowledge` signal.")), + new KeyValuePair(526, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.ExtendedUserDataSetAcknowledge to be reseted!" ,"Check the status of the `InspectionStatus.ExtendedUserDataSetAcknowledge` signal.")), + new KeyValuePair(527, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandComplete to be set!" ,"Check the status of the `InspectionStatus.CommandComplete` signal.")), + new KeyValuePair(528, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandComplete to be reseted!" ,"Check the status of the `InspectionStatus.CommandComplete` signal.")), + new KeyValuePair(529, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.Online to be set!" ,"Check the status of the `AcquisitionStatus.Online` signal.")), + + new KeyValuePair(540, new AxoMessengerTextItem("Required job number is greater than the maximal value!" ,"Check the sensor manufacturer documentation.")), + new KeyValuePair(541, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandExecuting to be reseted!" ,"Check the status of the `InspectionStatus.CommandExecuting` signal.")), + new KeyValuePair(542, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.Online to be reseted!" ,"Check the status of the `AcquisitionStatus.Online` signal.")), + new KeyValuePair(543, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.Error to be reseted!" ,"Check the status of the `InspectionStatus.Error` signal.")), + new KeyValuePair(544, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandComplete to be set!" ,"Check the status of the `InspectionStatus.CommandComplete` signal.")), + new KeyValuePair(545, new AxoMessengerTextItem("Waiting for the signal InspectionStatus.CommandComplete to be reseted!" ,"Check the status of the `InspectionStatus.CommandComplete` signal.")), + new KeyValuePair(546, new AxoMessengerTextItem("Waiting for the signal AcquisitionStatus.Online to be set!" ,"Check the status of the `AcquisitionStatus.Online` signal.")), + + new KeyValuePair(550, new AxoMessengerTextItem("Required soft event number is greater than the maximal value of 7!" ,"Check the sensor manufacturer documentation.")), + new KeyValuePair(552, new AxoMessengerTextItem("Waiting for the signal SoftEventStatus.TriggerSoftEventAcknowledge to be set!" ,"Check the status of the `SoftEventStatus.TriggerSoftEventAcknowledge` signal.")), + new KeyValuePair(553, new AxoMessengerTextItem("Waiting for the signal SoftEventStatus.TriggerSoftEventAcknowledge to be reseted!" ,"Check the status of the `SoftEventStatus.TriggerSoftEventAcknowledge` signal.")), + + }; + + TaskMessenger.DotNetMessengerTextList = messengerTextList; + } + } + + public partial class AxoInsight_Status : AxoComponent_Status + { + Dictionary errorDescriptionDict = new Dictionary(); + Dictionary actionDescriptionDict = new Dictionary(); + + public string ErrorDescription + { + get + { + if(errorDescriptionDict == null) { errorDescriptionDict = new Dictionary(); } + if(errorDescriptionDict.Count == 0) + { + errorDescriptionDict.Add(0 , " "); + + errorDescriptionDict.Add(501, "Waiting for the signal InspectionStatus.ResultsValid to be reseted!"); + + errorDescriptionDict.Add(511, "Waiting for the signal AcquisitionStatus.ExposureComplete to be reseted!"); + errorDescriptionDict.Add(512, "Waiting for the signal InspectionStatus.ResultsValid to be reseted!"); + errorDescriptionDict.Add(513, "Waiting for the signal InspectionStatus.Error to be reseted!"); + errorDescriptionDict.Add(514, "Waiting for the signal AcquisitionStatus.TriggerReady to be set!"); + errorDescriptionDict.Add(515, "Waiting for the signal AcquisitionStatus.TriggerAcknowledge to be set!"); + errorDescriptionDict.Add(516, "Waiting for the signal InspectionStatus.InspectionCompleted to be toggled!"); + errorDescriptionDict.Add(517, "Waiting for the signal InspectionStatus.ResultsValid to be set!"); + errorDescriptionDict.Add(518, "Waiting for the InspectionResults to be copied!"); + + errorDescriptionDict.Add(520, "Empty job name inserted!"); + errorDescriptionDict.Add(521, "Waiting for the signal InspectionStatus.CommandExecuting to be reseted!"); + errorDescriptionDict.Add(522, "Waiting for the signal AcquisitionStatus.Online to be reseted!"); + errorDescriptionDict.Add(523, "Waiting for the signal InspectionStatus.Error to be reseted!"); + errorDescriptionDict.Add(524, "Waiting for the Job name to be written to the User data!"); + errorDescriptionDict.Add(525, "Waiting for the signal InspectionStatus.ExtendedUserDataSetAcknowledge to be set!"); + errorDescriptionDict.Add(526, "Waiting for the signal InspectionStatus.ExtendedUserDataSetAcknowledge to be reseted!"); + errorDescriptionDict.Add(527, "Waiting for the signal InspectionStatus.CommandComplete to be set!"); + errorDescriptionDict.Add(528, "Waiting for the signal InspectionStatus.CommandComplete to be reseted!"); + errorDescriptionDict.Add(529, "Waiting for the signal AcquisitionStatus.Online to be set!"); + + errorDescriptionDict.Add(540, "Required job number is greater than the maximal value!"); + errorDescriptionDict.Add(541, "Waiting for the signal InspectionStatus.CommandExecuting to be reseted!"); + errorDescriptionDict.Add(542, "Waiting for the signal AcquisitionStatus.Online to be reseted!"); + errorDescriptionDict.Add(543, "Waiting for the signal InspectionStatus.Error to be reseted!"); + errorDescriptionDict.Add(544, "Waiting for the signal InspectionStatus.CommandComplete to be set!"); + errorDescriptionDict.Add(545, "Waiting for the signal InspectionStatus.CommandComplete to be reseted!"); + errorDescriptionDict.Add(546, "Waiting for the signal AcquisitionStatus.Online to be set!"); + + errorDescriptionDict.Add(550, "Required soft event number is greater than the maximal value of 7!"); + errorDescriptionDict.Add(552, "Waiting for the signal SoftEventStatus.TriggerSoftEventAcknowledge to be set!"); + errorDescriptionDict.Add(553, "Waiting for the signal SoftEventStatus.TriggerSoftEventAcknowledge to be reseted!"); + + + // General alarms + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ); + errorDescriptionDict.Add(710, "Hw configuration error. Value of hwIdAcquisitionControl is zero." ); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Acquisition_Control'." ); + errorDescriptionDict.Add(720, "Hw configuration error. Value of hwIdAcquisitionStatus is zero." ); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2.Expected module: 'Acquisition_Status'." ); + errorDescriptionDict.Add(730, "Hw configuration error. Value of hwIdInspectionControl is zero." ); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ); + errorDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 3.Expected module: 'Inspection_Control'." ); + errorDescriptionDict.Add(740, "Hw configuration error. Value of hwIdInspectionStatus is zero." ); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ); + errorDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 4.Expected module: 'Inspection_Status'." ); + errorDescriptionDict.Add(750, "Hw configuration error. Value of hwIdCommandControl is zero." ); + errorDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ); + errorDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ); + errorDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ); + errorDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ); + errorDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ); + errorDescriptionDict.Add(756, "Hw configuration error: Module with unexpected size or type detected in Slot 5.Expected module: 'Command_Control'." ); + errorDescriptionDict.Add(760, "Hw configuration error. Value of hwIdSoftEventControl is zero." ); + errorDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ); + errorDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ); + errorDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ); + errorDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ); + errorDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ); + errorDescriptionDict.Add(766, "Hw configuration error: Module with unexpected size or type detected in Slot 6.Expected module: 'SoftEvent_Control'." ); + errorDescriptionDict.Add(770, "Hw configuration error. Value of hwIdUserData is zero." ); + errorDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ); + errorDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ); + errorDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ); + errorDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ); + errorDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7."); + errorDescriptionDict.Add(776, "Hw configuration error: Module with unexpected size or type detected in Slot 7.Allowed modules: 'User_Data-16_bytes,User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-250_bytes'."); + errorDescriptionDict.Add(780, "Hw configuration error. Value of hwIdResultData is zero." ); + errorDescriptionDict.Add(781, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ); + errorDescriptionDict.Add(782, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ); + errorDescriptionDict.Add(783, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ); + errorDescriptionDict.Add(784, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ); + errorDescriptionDict.Add(785, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ); + errorDescriptionDict.Add(786, "Hw configuration error: Module with unexpected size or type detected in Slot 8.Allowed modules: 'Result_Data-16_bytes,Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes'."); + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!"); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1132, "Input variable `hwIdAcquisitionControl ` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1133, "Input variable `hwIdAcquisitionStatus ` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1134, "Input variable `hwIdInspectionControl ` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1135, "Input variable `hwIdInspectionStatus ` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1136, "Input variable `hwIdCommandControl ` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1137, "Input variable `hwIdSoftEventControl ` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1138, "Input variable `hwIdUserData` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1139, "Input variable `hwIdResultData` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1201, "Error reading the AcquisitionStatus!"); + errorDescriptionDict.Add(1202, "Error reading the InspectionStatus!"); + errorDescriptionDict.Add(1203, "Error reading the CommandControl!"); + errorDescriptionDict.Add(1204, "Error reading the SoftEventControl!"); + errorDescriptionDict.Add(1205, "Error reading the ResultData!"); + errorDescriptionDict.Add(1206, "ResultData has invalid size!"); + errorDescriptionDict.Add(1231, "Error writing the AcquisitionControl!"); + errorDescriptionDict.Add(1232, "Error writing the ResultsControl!"); + errorDescriptionDict.Add(1233, "Error writing the CommandControl!"); + errorDescriptionDict.Add(1234, "Error writing the SoftEventControl!"); + errorDescriptionDict.Add(1235, "UserData has invalid size!"); + errorDescriptionDict.Add(1236, "Error writing the 16bytes of the UserData!"); + errorDescriptionDict.Add(1237, "Error writing the 32bytes of the UserData!"); + errorDescriptionDict.Add(1238, "Error writing the 64bytes of the UserData!"); + errorDescriptionDict.Add(1239, "Error writing the 128bytes of the UserData!"); + errorDescriptionDict.Add(1240, "Error writing the 254bytes of the UserData!"); + errorDescriptionDict.Add(10000, "Clearing of the inspection results finished with error!"); + errorDescriptionDict.Add(10001, "Clearing of the inspection results was aborted, while not yet completed!"); + errorDescriptionDict.Add(10010, "Reading finished with error!"); + errorDescriptionDict.Add(10011, "Reading was aborted, while not yet completed!"); + errorDescriptionDict.Add(10020, "Change job by name finished with error!"); + errorDescriptionDict.Add(10021, "Change job by name was aborted, while not yet completed!"); + errorDescriptionDict.Add(10040, "Change job by number finished with error!"); + errorDescriptionDict.Add(10041, "Change job by number was aborted, while not yet completed!"); + errorDescriptionDict.Add(10050, "SoftEvent finished with error!"); + errorDescriptionDict.Add(10051, "SoftEvent was aborted, while not yet completed!"); + } + string errorDescription = " "; + + if(Error == null) + return errorDescription; + + if (errorDescriptionDict.TryGetValue(Error.Id.LastValue, out errorDescription)) + { + return errorDescription; + } + else + + { + return " "; + } + } + } + + public string ActionDescription + { + get + { + if (actionDescriptionDict == null) { actionDescriptionDict = new Dictionary(); } + if (actionDescriptionDict.Count == 0) + { + actionDescriptionDict.Add(0, " "); + actionDescriptionDict.Add(50, "Restore has been executed."); + + actionDescriptionDict.Add(100, "Clearing of the inspection results started."); + actionDescriptionDict.Add(300, "Clearing of the inspection results running."); + actionDescriptionDict.Add(301, "Clearing of the inspection results running."); + actionDescriptionDict.Add(302, "Clearing of the inspection results running."); + actionDescriptionDict.Add(303, "Clearing of the inspection results running."); + actionDescriptionDict.Add(304, "Clearing of the inspection results running."); + actionDescriptionDict.Add(305, "Clearing of the inspection results running."); + actionDescriptionDict.Add(306, "Clearing of the inspection results running."); + actionDescriptionDict.Add(307, "Clearing of the inspection results running."); + actionDescriptionDict.Add(308, "Clearing of the inspection results running."); + actionDescriptionDict.Add(309, "Clearing of the inspection results running."); + actionDescriptionDict.Add(101, "Clearing of the inspection results finished succesfully."); + actionDescriptionDict.Add(102, "Clearing of the inspection results restored."); + + actionDescriptionDict.Add(110, "Reading started."); + actionDescriptionDict.Add(310, "Reading running."); + actionDescriptionDict.Add(311, "Reading running."); + actionDescriptionDict.Add(312, "Reading running."); + actionDescriptionDict.Add(313, "Reading running."); + actionDescriptionDict.Add(314, "Reading running."); + actionDescriptionDict.Add(315, "Reading running."); + actionDescriptionDict.Add(316, "Reading running."); + actionDescriptionDict.Add(317, "Reading running."); + actionDescriptionDict.Add(318, "Reading running."); + actionDescriptionDict.Add(319, "Reading running."); + actionDescriptionDict.Add(111, "Reading finished succesfully."); + actionDescriptionDict.Add(112, "Reading restored."); + + actionDescriptionDict.Add(120, "Change job by name started."); + actionDescriptionDict.Add(320, "Change job by name running."); + actionDescriptionDict.Add(321, "Change job by name running."); + actionDescriptionDict.Add(322, "Change job by name running."); + actionDescriptionDict.Add(323, "Change job by name running."); + actionDescriptionDict.Add(324, "Change job by name running."); + actionDescriptionDict.Add(325, "Change job by name running."); + actionDescriptionDict.Add(326, "Change job by name running."); + actionDescriptionDict.Add(327, "Change job by name running."); + actionDescriptionDict.Add(328, "Change job by name running."); + actionDescriptionDict.Add(329, "Change job by name running."); + actionDescriptionDict.Add(330, "Change job by name running."); + actionDescriptionDict.Add(331, "Change job by name running."); + actionDescriptionDict.Add(332, "Change job by name running."); + actionDescriptionDict.Add(333, "Change job by name running."); + actionDescriptionDict.Add(334, "Change job by name running."); + actionDescriptionDict.Add(335, "Change job by name running."); + actionDescriptionDict.Add(336, "Change job by name running."); + actionDescriptionDict.Add(337, "Change job by name running."); + actionDescriptionDict.Add(338, "Change job by name running."); + actionDescriptionDict.Add(339, "Change job by name running."); + actionDescriptionDict.Add(121, "Change job by name finished succesfully."); + actionDescriptionDict.Add(122, "Change job by name restored."); + + actionDescriptionDict.Add(140, "Change job by number started."); + actionDescriptionDict.Add(340, "Change job by number running."); + actionDescriptionDict.Add(341, "Change job by number running."); + actionDescriptionDict.Add(342, "Change job by number running."); + actionDescriptionDict.Add(343, "Change job by number running."); + actionDescriptionDict.Add(344, "Change job by number running."); + actionDescriptionDict.Add(345, "Change job by number running."); + actionDescriptionDict.Add(346, "Change job by number running."); + actionDescriptionDict.Add(347, "Change job by number running."); + actionDescriptionDict.Add(348, "Change job by number running."); + actionDescriptionDict.Add(349, "Change job by number running."); + actionDescriptionDict.Add(141, "Change job by number finished succesfully."); + actionDescriptionDict.Add(142, "Change job by number restored."); + + actionDescriptionDict.Add(150, "SoftEvent started."); + actionDescriptionDict.Add(350, "SoftEvent running."); + actionDescriptionDict.Add(351, "SoftEvent running."); + actionDescriptionDict.Add(352, "SoftEvent running."); + actionDescriptionDict.Add(353, "SoftEvent running."); + actionDescriptionDict.Add(354, "SoftEvent running."); + actionDescriptionDict.Add(355, "SoftEvent running."); + actionDescriptionDict.Add(356, "SoftEvent running."); + actionDescriptionDict.Add(357, "SoftEvent running."); + actionDescriptionDict.Add(358, "SoftEvent running."); + actionDescriptionDict.Add(359, "SoftEvent running."); + actionDescriptionDict.Add(151, "SoftEvent finished succesfully."); + actionDescriptionDict.Add(152, "SoftEvent restored."); + + + actionDescriptionDict.Add(10000, "Clearing of the inspection results finished with error!"); + actionDescriptionDict.Add(10001, "Clearing of the inspection results was aborted, while not yet completed!"); + actionDescriptionDict.Add(10010, "Reading finished with error!"); + actionDescriptionDict.Add(10011, "Reading was aborted, while not yet completed!"); + actionDescriptionDict.Add(10020, "Change job by name finished with error!"); + actionDescriptionDict.Add(10021, "Change job by name was aborted, while not yet completed!"); + actionDescriptionDict.Add(10040, "Change job by number finished with error!"); + actionDescriptionDict.Add(10041, "Change job by number was aborted, while not yet completed!"); + actionDescriptionDict.Add(10050, "Soft event finished with error!"); + actionDescriptionDict.Add(10051, "Soft event finished was aborted, while not yet completed!"); + } + + string actionDescription = " "; + + if (Action == null) + return actionDescription; + + if (actionDescriptionDict.TryGetValue(Action.Id.LastValue, out actionDescription)) + { + return actionDescription; + } + else + { + return " "; + } + + } + } + } +} + diff --git a/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoVisionPro/AxoVisionPro.cs b/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoVisionPro/AxoVisionPro.cs new file mode 100644 index 000000000..744d0991f --- /dev/null +++ b/src/components.cognex.vision/src/AXOpen.Components.Cognex.Vision/AxoVisionPro/AxoVisionPro.cs @@ -0,0 +1,1689 @@ +using AXOpen.Messaging.Static; +using AXSharp.Connector; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AXOpen.Components.Cognex.Vision +{ + public partial class AxoVisionPro + { + partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) + { + try + { + InitializeMessenger(); + InitializeTaskMessenger(); + } + catch (Exception) + { + throw; + } + } + private void InitializeMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(50, new AxoMessengerTextItem("Restore has been executed.","")), + // HardResetAllCamerasTask + new KeyValuePair(100, new AxoMessengerTextItem("HardResetAllCamerasTask started.","")), + new KeyValuePair(101, new AxoMessengerTextItem("HardResetAllCamerasTask finished succesfully.","")), + new KeyValuePair(102, new AxoMessengerTextItem("HardResetAllCamerasTask restored.","")), + // ResetTask + new KeyValuePair(110, new AxoMessengerTextItem("ResetTask started.","")), + new KeyValuePair(111, new AxoMessengerTextItem("ResetTask finished succesfully.","")), + new KeyValuePair(112, new AxoMessengerTextItem("ResetTask restored.","")), + // TriggerTask + new KeyValuePair(120, new AxoMessengerTextItem("TriggerTask started.","")), + new KeyValuePair(121, new AxoMessengerTextItem("TriggerTask finished succesfully.","")), + new KeyValuePair(122, new AxoMessengerTextItem("TriggerTask restored.","")), + // TemplateTask_10steps_4 + new KeyValuePair(130, new AxoMessengerTextItem("TemplateTask_10steps_4 started.","")), + new KeyValuePair(131, new AxoMessengerTextItem("TemplateTask_10steps_4 finished succesfully.","")), + new KeyValuePair(132, new AxoMessengerTextItem("TemplateTask_10steps_4 restored.","")), + // TemplateTask_10steps_5 + new KeyValuePair(140, new AxoMessengerTextItem("TemplateTask_10steps_5 started.","")), + new KeyValuePair(141, new AxoMessengerTextItem("TemplateTask_10steps_5 finished succesfully.","")), + new KeyValuePair(142, new AxoMessengerTextItem("TemplateTask_10steps_5 restored.","")), + // TemplateTask_10steps_6 + new KeyValuePair(150, new AxoMessengerTextItem("TemplateTask_10steps_6 started.","")), + new KeyValuePair(151, new AxoMessengerTextItem("TemplateTask_10steps_6 finished succesfully.","")), + new KeyValuePair(152, new AxoMessengerTextItem("TemplateTask_10steps_6 restored.","")), + // ReadResultsTask + new KeyValuePair(160, new AxoMessengerTextItem("ReadResultsTask started.","")), + new KeyValuePair(161, new AxoMessengerTextItem("ReadResultsTask finished succesfully.","")), + new KeyValuePair(162, new AxoMessengerTextItem("ReadResultsTask restored.","")), + // SendDataTask + new KeyValuePair(180, new AxoMessengerTextItem("SendDataTask started.","")), + new KeyValuePair(181, new AxoMessengerTextItem("SendDataTask finished succesfully.","")), + new KeyValuePair(182, new AxoMessengerTextItem("SendDataTask restored.","")), + // TemplateTask_20steps_3 + new KeyValuePair(200, new AxoMessengerTextItem("TemplateTask_20steps_3 started.","")), + new KeyValuePair(201, new AxoMessengerTextItem("TemplateTask_20steps_3 finished succesfully.","")), + new KeyValuePair(202, new AxoMessengerTextItem("TemplateTask_20steps_3 restored.","")), + // TemplateTask_20steps_4 + new KeyValuePair(220, new AxoMessengerTextItem("TemplateTask_20steps_4 started.","")), + new KeyValuePair(221, new AxoMessengerTextItem("TemplateTask_20steps_4 finished succesfully.","")), + new KeyValuePair(222, new AxoMessengerTextItem("TemplateTask_20steps_4 restored.","")), + // TemplateTask_20steps_5 + new KeyValuePair(240, new AxoMessengerTextItem("TemplateTask_20steps_5 started.","")), + new KeyValuePair(241, new AxoMessengerTextItem("TemplateTask_20steps_5 finished succesfully.","")), + new KeyValuePair(242, new AxoMessengerTextItem("TemplateTask_20steps_5 restored.","")), + // TemplateTask_20steps_6 + new KeyValuePair(260, new AxoMessengerTextItem("TemplateTask_20steps_6 started.","")), + new KeyValuePair(261, new AxoMessengerTextItem("TemplateTask_20steps_6 finished succesfully.","")), + new KeyValuePair(262, new AxoMessengerTextItem("TemplateTask_20steps_6 restored.","")), + // General alarms + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_SystemControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'System_Control' GsdId: '101'." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Engine_Control_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'Engine_Control' GsdId: '401'." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Engine_Control_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'Engine_Control' GsdId: '401'." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Engine_Control_3 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'Engine_Control' GsdId: '401'." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Engine_Control_4 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'Engine_Control' GsdId: '401'." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_User_Data_240_bytes_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 6. Expected module: 'User_Data_240_bytes' GsdId: '705'." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_User_Data_240_bytes_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'User_Data_240_bytes' GsdId: '705'." ,"Check the hardware configuration.")), + + new KeyValuePair(780, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_User_Data_240_bytes_3 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(781, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(782, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(783, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(784, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(785, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(786, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 8. Expected module: 'User_Data_240_bytes' GsdId: '705'." ,"Check the hardware configuration.")), + + new KeyValuePair(790, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_User_Data_240_bytes_4 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(791, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(792, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(793, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(794, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(795, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(796, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 9. Expected module: 'User_Data_240_bytes' GsdId: '705'." ,"Check the hardware configuration.")), + + new KeyValuePair(800, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_User_Data_240_bytes_5 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(801, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(802, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(803, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(804, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(805, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(806, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 10. Expected module: 'User_Data_240_bytes' GsdId: '705'." ,"Check the hardware configuration.")), + + new KeyValuePair(810, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_User_Data_64_bytes_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(811, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(812, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(813, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(814, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(815, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(816, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 11. Expected module: 'User_Data_64_bytes' GsdId: '703'." ,"Check the hardware configuration.")), + + new KeyValuePair(820, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Results_240_bytes_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(821, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(822, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(823, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(824, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(825, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(826, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 12. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ,"Check the hardware configuration.")), + + new KeyValuePair(830, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Results_240_bytes_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(831, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(832, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(833, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(834, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(835, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(836, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 13. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ,"Check the hardware configuration.")), + + new KeyValuePair(840, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Results_240_bytes_3 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(841, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(842, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(843, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(844, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(845, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(846, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 14. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ,"Check the hardware configuration.")), + + new KeyValuePair(850, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Results_240_bytes_4 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(851, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(852, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(853, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(854, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(855, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(856, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 15. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ,"Check the hardware configuration.")), + + new KeyValuePair(860, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Results_240_bytes_5 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(861, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(862, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(863, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(864, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(865, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(866, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 16. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ,"Check the hardware configuration.")), + + new KeyValuePair(870, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_Result_Data_64_bytes_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(871, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(872, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(873, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(874, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(875, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(876, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 17. Expected module: 'Result_Data_64_bytes' GsdId: '803'." ,"Check the hardware configuration.")), + + new KeyValuePair(880, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_18 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(881, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(882, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(883, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(884, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(885, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(886, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 18. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(890, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_19 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(891, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(892, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(893, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(894, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(895, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(896, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 19. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(900, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_20 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(901, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(902, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(903, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(904, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(905, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(906, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 20. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(910, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(911, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(912, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(913, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(914, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(915, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(916, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 21. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(920, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(921, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(922, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(923, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(924, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(925, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(926, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 22. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(930, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_3 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(931, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(932, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(933, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(934, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(935, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(936, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 23. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(940, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_4 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(941, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(942, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(943, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(944, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(945, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(946, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 24. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(950, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_5 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(951, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(952, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(953, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(954, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(955, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(956, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 25. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(960, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_6 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(961, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(962, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(963, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(964, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(965, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(966, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 26. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(970, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_7 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(971, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(972, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(973, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(974, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(975, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(976, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 27. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(980, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_8 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(981, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(982, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(983, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(984, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(985, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(986, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 28. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(990, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_9 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(991, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(992, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(993, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(994, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(995, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(996, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 29. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1000, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_10 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1001, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1002, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1003, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1004, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1005, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1006, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 30. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1010, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_11 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1011, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1012, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1013, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1014, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1015, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1016, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 31. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1020, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_12 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1021, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1022, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1023, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1024, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1025, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1026, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 32. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1030, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_13 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1031, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1032, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1033, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1034, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1035, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1036, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 33. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1040, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_14 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1041, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1042, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1043, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1044, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1045, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1046, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 34. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1050, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_15 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1051, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1052, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1053, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1054, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1055, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1056, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 35. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1060, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_16 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1061, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1062, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1063, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1064, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1065, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1066, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 36. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1070, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_17 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1071, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1072, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1073, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1074, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1075, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1076, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 37. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1080, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_18 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1081, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1082, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1083, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1084, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1085, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1086, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 38. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1090, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_19 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1091, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1092, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1093, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1094, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1095, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1096, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 39. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1100, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_20 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1101, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1102, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1103, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1104, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1105, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1106, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 40. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwID_SystemControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_SystemControl` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `hwID_Engine_Control_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_Engine_Control_1` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `hwID_Engine_Control_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_Engine_Control_2` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `hwID_Engine_Control_3` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_Engine_Control_3` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `hwID_Engine_Control_4` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_Engine_Control_4` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `hwID_User_Data_240_bytes_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_User_Data_240_bytes_1` parameter is assigned.")), + new KeyValuePair(1138, new AxoMessengerTextItem("Input variable `hwID_User_Data_240_bytes_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_User_Data_240_bytes_2` parameter is assigned.")), + new KeyValuePair(1139, new AxoMessengerTextItem("Input variable `hwID_User_Data_240_bytes_3` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_User_Data_240_bytes_3` parameter is assigned.")), + new KeyValuePair(1140, new AxoMessengerTextItem("Input variable `hwID_User_Data_240_bytes_4` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_User_Data_240_bytes_4` parameter is assigned.")), + new KeyValuePair(1141, new AxoMessengerTextItem("Input variable `hwID_User_Data_240_bytes_5` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_User_Data_240_bytes_5` parameter is assigned.")), + new KeyValuePair(1142, new AxoMessengerTextItem("Input variable `hwID_User_Data_64_bytes_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_User_Data_64_bytes_1` parameter is assigned.")), + new KeyValuePair(1143, new AxoMessengerTextItem("Input variable `hwID_Results_240_bytes_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_Results_240_bytes_1` parameter is assigned.")), + new KeyValuePair(1144, new AxoMessengerTextItem("Input variable `hwID_Results_240_bytes_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_Results_240_bytes_2` parameter is assigned.")), + new KeyValuePair(1145, new AxoMessengerTextItem("Input variable `hwID_Results_240_bytes_3` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_Results_240_bytes_3` parameter is assigned.")), + new KeyValuePair(1146, new AxoMessengerTextItem("Input variable `hwID_Results_240_bytes_4` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_Results_240_bytes_4` parameter is assigned.")), + new KeyValuePair(1147, new AxoMessengerTextItem("Input variable `hwID_Results_240_bytes_5` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_Results_240_bytes_5` parameter is assigned.")), + new KeyValuePair(1148, new AxoMessengerTextItem("Input variable `hwId_17` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_17` parameter is assigned.")), + new KeyValuePair(1149, new AxoMessengerTextItem("Input variable `hwId_18` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_18` parameter is assigned.")), + new KeyValuePair(1150, new AxoMessengerTextItem("Input variable `hwId_19` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_19` parameter is assigned.")), + new KeyValuePair(1151, new AxoMessengerTextItem("Input variable `hwId_20` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_20` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_SystemControl!" ,"Check the value of the _hwID_SystemControl and reacheability of the device!")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_Engine_Control_1!" ,"Check the value of the _hwID_Engine_Control_1 and reacheability of the device!")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_Engine_Control_2!" ,"Check the value of the hwID_Engine_Control_2 and reacheability of the device!")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_Engine_Control_3!" ,"Check the value of the hwID_Engine_Control_3 and reacheability of the device!")), + new KeyValuePair(1205, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_Engine_Control_4!" ,"Check the value of the hwID_Engine_Control_4 and reacheability of the device!")), + new KeyValuePair(1206, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_1!" ,"Check the value of the hwID_User_Data_240_bytes_1 and reacheability of the device!")), + new KeyValuePair(1207, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_2!" ,"Check the value of the hwID_User_Data_240_bytes_2 and reacheability of the device!")), + new KeyValuePair(1208, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_3!" ,"Check the value of the hwID_User_Data_240_bytes_3 and reacheability of the device!")), + new KeyValuePair(1209, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_4!" ,"Check the value of the hwID_User_Data_240_bytes_4 and reacheability of the device!")), + new KeyValuePair(1210, new AxoMessengerTextItem("Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_5!" ,"Check the value of the hwID_User_Data_240_bytes_5 and reacheability of the device!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_User_Data_64_bytes_1!" ,"Check the value of the hwID_User_Data_64_bytes_1 and reacheability of the device!")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_1!" ,"Check the value of the hwID_Results_240_bytes_1 and reacheability of the device!")), + new KeyValuePair(1233, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_2!" ,"Check the value of the hwID_Results_240_bytes_2 and reacheability of the device!")), + new KeyValuePair(1234, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_3!" ,"Check the value of the hwID_Results_240_bytes_3 and reacheability of the device!")), + new KeyValuePair(1235, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_4!" ,"Check the value of the hwID_Results_240_bytes_4 and reacheability of the device!")), + new KeyValuePair(1236, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_5!" ,"Check the value of the hwID_Results_240_bytes_5 and reacheability of the device!")), + new KeyValuePair(1237, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_17!" ,"Check the value of the hwID_17 and reacheability of the device!")), + new KeyValuePair(1238, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_18!" ,"Check the value of the hwID_18 and reacheability of the device!")), + new KeyValuePair(1239, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_19!" ,"Check the value of the hwID_19 and reacheability of the device!")), + new KeyValuePair(1230, new AxoMessengerTextItem("Error writing the AxoVisionProOutputStructure_hwID_20!" ,"Check the value of the hwID_20 and reacheability of the device!")), + + new KeyValuePair(1301, new AxoMessengerTextItem("Invalid value of the 'CameraNo' input variable, value too low!" ,"Check the value of the 'CameraNo' input variable!")), + new KeyValuePair(1302, new AxoMessengerTextItem("Invalid value of the 'CameraNo' input variable, value too high!" ,"Check the value of the 'CameraNo' input variable!")), + new KeyValuePair(1303, new AxoMessengerTextItem("No results to read: required result length is zero in 'ReadResultsTask'." ,"Correct the required length.")), + new KeyValuePair(1304, new AxoMessengerTextItem("Result data size oversized!" ,"Check the hardware configuration!")), + new KeyValuePair(1305, new AxoMessengerTextItem("No user data to send: required user data length is zero in 'SendDataTask'." ,"Correct the required length.")), + new KeyValuePair(1306, new AxoMessengerTextItem("User data size oversized!" ,"Check the hardware configuration!")), + + + // HardResetAllCamerasTask + new KeyValuePair(10000, new AxoMessengerTextItem("HardResetAllCamerasTask finished with error!" ,"Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("HardResetAllCamerasTask was aborted, while not yet completed!" ,"Check the details.")), + // ResetTask + new KeyValuePair(10010, new AxoMessengerTextItem("ResetTask finished with error!" ,"Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("ResetTask was aborted, while not yet completed!" ,"Check the details.")), + // TriggerTask + new KeyValuePair(10020, new AxoMessengerTextItem("TriggerTask finished with error!" ,"Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("TriggerTask was aborted, while not yet completed!" ,"Check the details.")), + // TemplateTask_10steps_4 + new KeyValuePair(10030, new AxoMessengerTextItem("TemplateTask_10steps_4 task finished with error!" ,"Check the details.")), + new KeyValuePair(10031, new AxoMessengerTextItem("TemplateTask_10steps_4 task was aborted, while not yet completed!" ,"Check the details.")), + // TemplateTask_10steps_5 + new KeyValuePair(10040, new AxoMessengerTextItem("TemplateTask_10steps_5 task finished with error!" ,"Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("TemplateTask_10steps_5 task was aborted, while not yet completed!" ,"Check the details.")), + // TemplateTask_10steps_6 + new KeyValuePair(10050, new AxoMessengerTextItem("TemplateTask_10steps_6 task finished with error!" ,"Check the details.")), + new KeyValuePair(10051, new AxoMessengerTextItem("TemplateTask_10steps_6 task was aborted, while not yet completed!" ,"Check the details.")), + + // ReadResultsTask + new KeyValuePair(10060, new AxoMessengerTextItem("ReadResultsTask task finished with error!" ,"Check the details.")), + new KeyValuePair(10061, new AxoMessengerTextItem("ReadResultsTask task was aborted, while not yet completed!" ,"Check the details.")), + // SendDataTask + new KeyValuePair(10080, new AxoMessengerTextItem("SendDataTask task finished with error!" ,"Check the details.")), + new KeyValuePair(10081, new AxoMessengerTextItem("SendDataTask task was aborted, while not yet completed!" ,"Check the details.")), + // TemplateTask_20steps_3 + new KeyValuePair(10100, new AxoMessengerTextItem("TemplateTask_20steps_3 task finished with error!" ,"Check the details.")), + new KeyValuePair(10101, new AxoMessengerTextItem("TemplateTask_20steps_3 task was aborted, while not yet completed!" ,"Check the details.")), + // TemplateTask_20steps_4 + new KeyValuePair(10120, new AxoMessengerTextItem("TemplateTask_20steps_4 task finished with error!" ,"Check the details.")), + new KeyValuePair(10121, new AxoMessengerTextItem("TemplateTask_20steps_4 task was aborted, while not yet completed!" ,"Check the details.")), + // TemplateTask_20steps_5 + new KeyValuePair(10140, new AxoMessengerTextItem("TemplateTask_20steps_5 task finished with error!" ,"Check the details.")), + new KeyValuePair(10141, new AxoMessengerTextItem("TemplateTask_20steps_5 task was aborted, while not yet completed!" ,"Check the details.")), + // TemplateTask_20steps_6 + new KeyValuePair(10160, new AxoMessengerTextItem("TemplateTask_20steps_6 task finished with error!" ,"Check the details.")), + new KeyValuePair(10161, new AxoMessengerTextItem("TemplateTask_20steps_6 task was aborted, while not yet completed!" ,"Check the details.")), + + }; + + Messenger.DotNetMessengerTextList = messengerTextList; + } + + private void InitializeTaskMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + // HardResetAllCamerasTask + new KeyValuePair(500, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.CurentJobID` to be greater then zero!" ,"Check the status of the `Inputs.Status.CurentJobID` signal/variable.")), + new KeyValuePair(501, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.CurentJobID` to be equal to zero!" ,"Check the status of the `Inputs.Status.CurentJobID` signal/variable.")), + new KeyValuePair(502, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(503, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(504, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(505, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(506, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(507, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(508, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(509, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + // ResetTask + new KeyValuePair(510, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.UserDataLockerJobID` to be equal to value of 'Config.CameraNo' or equal to zero!" ,"Check the status of the `Inputs.Status.UserDataLockerJobID` signal/variable.")), + new KeyValuePair(511, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(512, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.ReadDataLockerJobID` to be equal to value of 'Config.CameraNo' or equal to zero!" ,"Check the status of the `Inputs.Status.ReadDataLockerJobID` signal/variable.")), + new KeyValuePair(513, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(514, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(515, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(516, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(517, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(518, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(519, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + // TriggerTask + new KeyValuePair(520, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SystemReady` to be set!" ,"Check the status of the `Inputs.Status.SystemReady` signal/variable.")), + new KeyValuePair(521, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.Online` to be set!" ,"Check the status of the `Inputs.Status.Online` signal/variable.")), + new KeyValuePair(522, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SoftEvent.ResetAck` to be set!" ,"Check the status of the `Inputs.Status.SoftEvent.ResetAck` signal/variable.")), + new KeyValuePair(523, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SoftEvent.TriggerAck` to be reseted!" ,"Check the status of the `Inputs.Status.SoftEvent.TriggerAck` signal/variable.")), + new KeyValuePair(524, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SoftEvent.TriggerAck` to be set!" ,"Check the status of the `Inputs.Status.SoftEvent.TriggerAck` signal/variable.")), + new KeyValuePair(525, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SoftEvent.TriggerAck` to be reseted!" ,"Check the status of the Inputs.Status.SoftEvent.TriggerAck` signal/variable.")), + new KeyValuePair(526, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(527, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(528, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(529, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + //TemplateTask_10steps_4 + new KeyValuePair(530, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(531, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(532, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(533, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(534, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(535, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(536, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(537, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(538, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(539, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + //TemplateTask_10steps_5 + new KeyValuePair(540, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(541, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(542, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(543, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(544, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(545, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(546, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(547, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(548, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(549, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + //TemplateTask_10steps_6 + new KeyValuePair(550, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(551, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(552, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(553, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(554, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(555, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(556, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(557, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(558, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(559, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + //ReadResultsTask + new KeyValuePair(560, new AxoMessengerTextItem("Waiting for the signal/variable `Waiting for system ready` to be set!" ,"Check the status of the `Waiting for system ready` signal/variable.")), + new KeyValuePair(561, new AxoMessengerTextItem("Waiting for the signal/variable `Waiting for online` to be set!" ,"Check the status of the `Waiting for online` signal/variable.")), + new KeyValuePair(562, new AxoMessengerTextItem("Waiting for the signal/variable `_readResultsJobID` to be greather or equal to zero and lower to ten!" ,"Check the status of the `_readResultsJobID` signal/variable.")), + new KeyValuePair(563, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.ReadDataLockerJobID` to be equal to value of 'Config.CameraNo' or equal to zero!" ,"Check the status of the `Inputs.Status.ReadDataLockerJobID` signal/variable.")), + new KeyValuePair(564, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(565, new AxoMessengerTextItem("Waiting for the variable `Inputs.Status.CurentJobID` to be equal to value of 'Outputs.Control.JobLoadID' and greather to zero, so as the the variable 'Inputs.Status.JobLoadComplete' to be set!" ,"Check the statuses of the `Inputs.Status.CurentJobID` and 'Inputs.Status.JobLoadComplete' variables.")), + new KeyValuePair(566, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.ResultValid` to be set!" ,"Check the status of the `Inputs.Status.ResultValid` signal/variable.")), + new KeyValuePair(567, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(568, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(569, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(570, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(571, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.ResultValid` to be reseted!" ,"Check the status of the `Inputs.Status.ResultValid` signal/variable.")), + new KeyValuePair(572, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(573, new AxoMessengerTextItem("Waiting for the variable `Inputs.Status.CurentJobID` to be equal to zero and variable 'Inputs.Status.JobLoadComplete' to be set!" ,"Check the statuses of the `Inputs.Status.CurentJobID` and 'Inputs.Status.JobLoadComplete' variables.")), + new KeyValuePair(574, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(575, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(576, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(577, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(578, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(579, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + //SendDataTask + new KeyValuePair(580, new AxoMessengerTextItem("Waiting for the signal/variable `Waiting for system ready` to be set!" ,"Check the status of the `Waiting for system ready` signal/variable.")), + new KeyValuePair(581, new AxoMessengerTextItem("Waiting for the signal/variable `Waiting for online` to be set!" ,"Check the status of the `Waiting for online` signal/variable.")), + new KeyValuePair(582, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.UserDataLockerJobID` to be equal to value of 'Config.CameraNo' or equal to zero!" ,"Check the status of the `Inputs.Status.UserDataLockerJobID` signal/variable.")), + new KeyValuePair(583, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.UserDataLockerJobID` to be equal to value of 'Config.CameraNo'!" ,"Check the status of the `Inputs.Status.UserDataLockerJobID` signal/variable.")), + new KeyValuePair(584, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(585, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(586, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(587, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SetUserDataAck` to be reseted!" ,"Check the status of the `Inputs.Status.SetUserDataAck` signal/variable.")), + new KeyValuePair(588, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SetUserDataAck` to be set!" ,"Check the status of the `Inputs.Status.SetUserDataAck` signal/variable.")), + new KeyValuePair(589, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SetUserDataAck` to be reseted!" ,"Check the status of the `Inputs.Status.SetUserDataAck` signal/variable.")), + new KeyValuePair(590, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(591, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SoftEvent.DataHandlerDone` to be reseted!" ,"Check the status of the `Inputs.Status.SoftEvent.DataHandlerDone` signal/variable.")), + new KeyValuePair(592, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SoftEvent.DataHandlerDone` to be set!" ,"Check the status of the `Inputs.Status.SoftEvent.DataHandlerDone` signal/variable.")), + new KeyValuePair(593, new AxoMessengerTextItem("Waiting for the signal/variable `Inputs.Status.SoftEvent.DataHandlerDone` to be reseted!" ,"Check the status of the `Inputs.Status.SoftEvent.DataHandlerDone` signal/variable.")), + new KeyValuePair(594, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(595, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(596, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(597, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(598, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(599, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + //TemplateTask_20steps_3 + new KeyValuePair(600, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(601, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(602, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(603, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(604, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(605, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(606, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(607, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(608, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(609, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(610, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(611, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(612, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(613, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(614, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(615, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(616, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(617, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(618, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(619, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + //TemplateTask_20steps_4 + new KeyValuePair(620, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(621, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(622, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(623, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(624, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(625, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(626, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(627, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(628, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(629, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(630, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(631, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(632, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(633, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(634, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(635, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(636, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(637, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(638, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(639, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + //TemplateTask_20steps_5 + new KeyValuePair(640, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(641, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(642, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(643, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(644, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(645, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(646, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(647, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(648, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(649, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(650, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(651, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(652, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(653, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(654, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(655, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(656, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(657, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(658, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(659, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + //TemplateTask_20steps_6 + new KeyValuePair(660, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(661, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(662, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(663, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(664, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(665, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(666, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(667, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(668, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(669, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(670, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(671, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(672, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(673, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(674, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(675, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(676, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(677, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(678, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + new KeyValuePair(679, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !" ,"Check the status of the `` signal/variable.")), + + + + }; + + TaskMessenger.DotNetMessengerTextList = messengerTextList; + } + } + + public partial class AxoVisionPro_Component_Status : AXOpen.Components.Abstractions.AxoComponent_Status + { + Dictionary errorDescriptionDict = new Dictionary(); + Dictionary actionDescriptionDict = new Dictionary(); + + public string ErrorDescription + { + get + { + if (errorDescriptionDict == null) { errorDescriptionDict = new Dictionary(); } + if (errorDescriptionDict.Count == 0) + { + errorDescriptionDict.Add(0, " "); + // HardResetAllCamerasTask + errorDescriptionDict.Add(500, "Waiting for the signal/variable `Inputs.Status.CurentJobID` to be greater then zero!" ); + errorDescriptionDict.Add(501, "Waiting for the signal/variable `Inputs.Status.CurentJobID` to be equal to zero!" ); + errorDescriptionDict.Add(502, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(503, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(504, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(505, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(506, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(507, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(508, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(509, "Waiting for the signal/variable `` to be set/reseted !" ); + // ResetTask + errorDescriptionDict.Add(510, "Waiting for the signal/variable `Inputs.Status.UserDataLockerJobID` to be equal to value of 'Config.CameraNo' or equal to zero!" ); + errorDescriptionDict.Add(511, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(512, "Waiting for the signal/variable `Inputs.Status.ReadDataLockerJobID` to be equal to value of 'Config.CameraNo' or equal to zero!" ); + errorDescriptionDict.Add(513, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(514, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(515, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(516, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(517, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(518, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(519, "Waiting for the signal/variable `` to be set/reseted !" ); + // TriggerTask + errorDescriptionDict.Add(520, "Waiting for the signal/variable `Inputs.Status.SystemReady` to be set!" ); + errorDescriptionDict.Add(521, "Waiting for the signal/variable `Inputs.Status.Online` to be set!" ); + errorDescriptionDict.Add(522, "Waiting for the signal/variable `Inputs.Status.SoftEvent.ResetAck` to be set!" ); + errorDescriptionDict.Add(523, "Waiting for the signal/variable `Inputs.Status.SoftEvent.TriggerAck` to be reseted!" ); + errorDescriptionDict.Add(524, "Waiting for the signal/variable `Inputs.Status.SoftEvent.TriggerAck` to be set!" ); + errorDescriptionDict.Add(525, "Waiting for the signal/variable `Inputs.Status.SoftEvent.TriggerAck` to be reseted!" ); + errorDescriptionDict.Add(526, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(527, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(528, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(529, "Waiting for the signal/variable `` to be set/reseted !" ); + //TemplateTask_10steps_4 + errorDescriptionDict.Add(530, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(531, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(532, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(533, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(534, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(535, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(536, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(537, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(538, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(539, "Waiting for the signal/variable `` to be set/reseted !" ); + //TemplateTask_10steps_5 + errorDescriptionDict.Add(540, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(541, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(542, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(543, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(544, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(545, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(546, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(547, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(548, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(549, "Waiting for the signal/variable `` to be set/reseted !" ); + //TemplateTask_10steps_6 + errorDescriptionDict.Add(550, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(551, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(552, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(553, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(554, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(555, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(556, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(557, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(558, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(559, "Waiting for the signal/variable `` to be set/reseted !" ); + //ReadResultsTask + errorDescriptionDict.Add(560, "Waiting for the signal/variable `Waiting for system ready` to be set!" ); + errorDescriptionDict.Add(561, "Waiting for the signal/variable `Waiting for online` to be set!" ); + errorDescriptionDict.Add(562, "Waiting for the signal/variable `_readResultsJobID` to be greather or equal to zero and lower to ten!" ); + errorDescriptionDict.Add(563, "Waiting for the signal/variable `Inputs.Status.ReadDataLockerJobID` to be equal to value of 'Config.CameraNo' or equal to zero!" ); + errorDescriptionDict.Add(564, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(565, "Waiting for the variable `Inputs.Status.CurentJobID` to be equal to value of 'Outputs.Control.JobLoadID' and greather to zero, so as the the variable 'Inputs.Status.JobLoadComplete' to be set!"); + errorDescriptionDict.Add(566, "Waiting for the signal/variable `Inputs.Status.ResultValid` to be set!" ); + errorDescriptionDict.Add(567, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(568, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(569, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(570, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(571, "Waiting for the signal/variable `Inputs.Status.ResultValid` to be reseted!" ); + errorDescriptionDict.Add(572, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(573, "Waiting for the variable `Inputs.Status.CurentJobID` to be equal to zero and variable 'Inputs.Status.JobLoadComplete' to be set!" ); + errorDescriptionDict.Add(574, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(575, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(576, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(577, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(578, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(579, "Waiting for the signal/variable `` to be set/reseted !" ); + //SendDataTask + errorDescriptionDict.Add(580, "Waiting for the signal/variable `Waiting for system ready` to be set!" ); + errorDescriptionDict.Add(581, "Waiting for the signal/variable `Waiting for online` to be set!" ); + errorDescriptionDict.Add(582, "Waiting for the signal/variable `Inputs.Status.UserDataLockerJobID` to be equal to value of 'Config.CameraNo' or equal to zero!" ); + errorDescriptionDict.Add(583, "Waiting for the signal/variable `Inputs.Status.UserDataLockerJobID` to be equal to value of 'Config.CameraNo'!" ); + errorDescriptionDict.Add(584, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(585, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(586, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(587, "Waiting for the signal/variable `Inputs.Status.SetUserDataAck` to be reseted!" ); + errorDescriptionDict.Add(588, "Waiting for the signal/variable `Inputs.Status.SetUserDataAck` to be set!" ); + errorDescriptionDict.Add(589, "Waiting for the signal/variable `Inputs.Status.SetUserDataAck` to be reseted!" ); + errorDescriptionDict.Add(590, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(591, "Waiting for the signal/variable `Inputs.Status.SoftEvent.DataHandlerDone` to be reseted!" ); + errorDescriptionDict.Add(592, "Waiting for the signal/variable `Inputs.Status.SoftEvent.DataHandlerDone` to be set!" ); + errorDescriptionDict.Add(593, "Waiting for the signal/variable `Inputs.Status.SoftEvent.DataHandlerDone` to be reseted!" ); + errorDescriptionDict.Add(594, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(595, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(596, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(597, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(598, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(599, "Waiting for the signal/variable `` to be set/reseted !" ); + //TemplateTask_20steps_3 + errorDescriptionDict.Add(600, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(601, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(602, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(603, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(604, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(605, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(606, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(607, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(608, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(609, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(610, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(611, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(612, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(613, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(614, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(615, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(616, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(617, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(618, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(619, "Waiting for the signal/variable `` to be set/reseted !" ); + //TemplateTask_20steps_4 + errorDescriptionDict.Add(620, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(621, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(622, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(623, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(624, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(625, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(626, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(627, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(628, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(629, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(630, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(631, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(632, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(633, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(634, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(635, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(636, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(637, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(638, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(639, "Waiting for the signal/variable `` to be set/reseted !" ); + //TemplateTask_20steps_5 + errorDescriptionDict.Add(640, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(641, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(642, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(643, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(644, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(645, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(646, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(647, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(648, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(649, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(650, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(651, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(652, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(653, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(654, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(655, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(656, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(657, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(658, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(659, "Waiting for the signal/variable `` to be set/reseted !" ); + //TemplateTask_20steps_6 + errorDescriptionDict.Add(660, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(661, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(662, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(663, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(664, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(665, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(666, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(667, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(668, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(669, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(670, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(671, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(672, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(673, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(674, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(675, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(676, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(677, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(678, "Waiting for the signal/variable `` to be set/reseted !" ); + errorDescriptionDict.Add(679, "Waiting for the signal/variable `` to be set/reseted !" ); + // General alarms + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ); + + errorDescriptionDict.Add(710, "Hw configuration error. Value of _hwID_SystemControl is zero." ); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'System_Control' GsdId: '101'." ); + + errorDescriptionDict.Add(720, "Hw configuration error. Value of _hwID_Engine_Control_1 is zero." ); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'Engine_Control' GsdId: '401'." ); + + errorDescriptionDict.Add(730, "Hw configuration error. Value of _hwID_Engine_Control_2 is zero." ); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ); + errorDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'Engine_Control' GsdId: '401'." ); + + errorDescriptionDict.Add(740, "Hw configuration error. Value of _hwID_Engine_Control_3 is zero." ); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ); + errorDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'Engine_Control' GsdId: '401'." ); + + errorDescriptionDict.Add(750, "Hw configuration error. Value of _hwID_Engine_Control_4 is zero." ); + errorDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ); + errorDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ); + errorDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ); + errorDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ); + errorDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ); + errorDescriptionDict.Add(756, "Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'Engine_Control' GsdId: '401'." ); + + errorDescriptionDict.Add(760, "Hw configuration error. Value of _hwID_User_Data_240_bytes_1 is zero." ); + errorDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ); + errorDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ); + errorDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ); + errorDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ); + errorDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ); + errorDescriptionDict.Add(766, "Hw configuration error: Module with unexpected size or type detected in Slot 6. Expected module: 'User_Data_240_bytes' GsdId: '705'." ); + + errorDescriptionDict.Add(770, "Hw configuration error. Value of _hwID_User_Data_240_bytes_2 is zero." ); + errorDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ); + errorDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ); + errorDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ); + errorDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ); + errorDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ); + errorDescriptionDict.Add(776, "Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'User_Data_240_bytes' GsdId: '705'." ); + + errorDescriptionDict.Add(780, "Hw configuration error. Value of _hwID_User_Data_240_bytes_3 is zero." ); + errorDescriptionDict.Add(781, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ); + errorDescriptionDict.Add(782, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ); + errorDescriptionDict.Add(783, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ); + errorDescriptionDict.Add(784, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ); + errorDescriptionDict.Add(785, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ); + errorDescriptionDict.Add(786, "Hw configuration error: Module with unexpected size or type detected in Slot 8. Expected module: 'User_Data_240_bytes' GsdId: '705'." ); + + errorDescriptionDict.Add(790, "Hw configuration error. Value of _hwID_User_Data_240_bytes_4 is zero." ); + errorDescriptionDict.Add(791, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9." ); + errorDescriptionDict.Add(792, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9." ); + errorDescriptionDict.Add(793, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9." ); + errorDescriptionDict.Add(794, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9." ); + errorDescriptionDict.Add(795, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9." ); + errorDescriptionDict.Add(796, "Hw configuration error: Module with unexpected size or type detected in Slot 9. Expected module: 'User_Data_240_bytes' GsdId: '705'." ); + + errorDescriptionDict.Add(800, "Hw configuration error. Value of _hwID_User_Data_240_bytes_5 is zero." ); + errorDescriptionDict.Add(801, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10." ); + errorDescriptionDict.Add(802, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10." ); + errorDescriptionDict.Add(803, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10." ); + errorDescriptionDict.Add(804, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10." ); + errorDescriptionDict.Add(805, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10." ); + errorDescriptionDict.Add(806, "Hw configuration error: Module with unexpected size or type detected in Slot 10. Expected module: 'User_Data_240_bytes' GsdId: '705'." ); + + errorDescriptionDict.Add(810, "Hw configuration error. Value of _hwID_User_Data_64_bytes_1 is zero." ); + errorDescriptionDict.Add(811, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11." ); + errorDescriptionDict.Add(812, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11." ); + errorDescriptionDict.Add(813, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11." ); + errorDescriptionDict.Add(814, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11." ); + errorDescriptionDict.Add(815, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11." ); + errorDescriptionDict.Add(816, "Hw configuration error: Module with unexpected size or type detected in Slot 11. Expected module: 'User_Data_64_bytes' GsdId: '703'." ); + + errorDescriptionDict.Add(820, "Hw configuration error. Value of _hwID_Results_240_bytes_1 is zero." ); + errorDescriptionDict.Add(821, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12." ); + errorDescriptionDict.Add(822, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12." ); + errorDescriptionDict.Add(823, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12." ); + errorDescriptionDict.Add(824, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12." ); + errorDescriptionDict.Add(825, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12." ); + errorDescriptionDict.Add(826, "Hw configuration error: Module with unexpected size or type detected in Slot 12. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ); + + errorDescriptionDict.Add(830, "Hw configuration error. Value of _hwID_Results_240_bytes_2 is zero." ); + errorDescriptionDict.Add(831, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13." ); + errorDescriptionDict.Add(832, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13." ); + errorDescriptionDict.Add(833, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13." ); + errorDescriptionDict.Add(834, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13." ); + errorDescriptionDict.Add(835, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13." ); + errorDescriptionDict.Add(836, "Hw configuration error: Module with unexpected size or type detected in Slot 13. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ); + + errorDescriptionDict.Add(840, "Hw configuration error. Value of _hwID_Results_240_bytes_3 is zero." ); + errorDescriptionDict.Add(841, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14." ); + errorDescriptionDict.Add(842, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14." ); + errorDescriptionDict.Add(843, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14." ); + errorDescriptionDict.Add(844, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14." ); + errorDescriptionDict.Add(845, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14." ); + errorDescriptionDict.Add(846, "Hw configuration error: Module with unexpected size or type detected in Slot 14. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ); + + errorDescriptionDict.Add(850, "Hw configuration error. Value of _hwID_Results_240_bytes_4 is zero." ); + errorDescriptionDict.Add(851, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 15." ); + errorDescriptionDict.Add(852, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 15." ); + errorDescriptionDict.Add(853, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 15." ); + errorDescriptionDict.Add(854, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 15." ); + errorDescriptionDict.Add(855, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 15." ); + errorDescriptionDict.Add(856, "Hw configuration error: Module with unexpected size or type detected in Slot 15. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ); + + errorDescriptionDict.Add(860, "Hw configuration error. Value of _hwID_Results_240_bytes_5 is zero." ); + errorDescriptionDict.Add(861, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 16." ); + errorDescriptionDict.Add(862, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 16." ); + errorDescriptionDict.Add(863, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 16." ); + errorDescriptionDict.Add(864, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 16." ); + errorDescriptionDict.Add(865, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 16." ); + errorDescriptionDict.Add(866, "Hw configuration error: Module with unexpected size or type detected in Slot 16. Expected module: 'Result_Data_240_bytes' GsdId: '805'." ); + + errorDescriptionDict.Add(870, "Hw configuration error. Value of _hwID_Result_Data_64_bytes_1 is zero." ); + errorDescriptionDict.Add(871, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 17." ); + errorDescriptionDict.Add(872, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 17." ); + errorDescriptionDict.Add(873, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 17." ); + errorDescriptionDict.Add(874, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 17." ); + errorDescriptionDict.Add(875, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 17." ); + errorDescriptionDict.Add(876, "Hw configuration error: Module with unexpected size or type detected in Slot 17. Expected module: 'Result_Data_64_bytes' GsdId: '803'." ); + + errorDescriptionDict.Add(880, "Hw configuration error. Value of _hwID_in_18 is zero." ); + errorDescriptionDict.Add(881, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 18." ); + errorDescriptionDict.Add(882, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 18." ); + errorDescriptionDict.Add(883, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 18." ); + errorDescriptionDict.Add(884, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 18." ); + errorDescriptionDict.Add(885, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 18." ); + errorDescriptionDict.Add(886, "Hw configuration error: Module with unexpected size or type detected in Slot 18. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(890, "Hw configuration error. Value of _hwID_in_19 is zero." ); + errorDescriptionDict.Add(891, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 19." ); + errorDescriptionDict.Add(892, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 19." ); + errorDescriptionDict.Add(893, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 19." ); + errorDescriptionDict.Add(894, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 19." ); + errorDescriptionDict.Add(895, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 19." ); + errorDescriptionDict.Add(896, "Hw configuration error: Module with unexpected size or type detected in Slot 19. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(900, "Hw configuration error. Value of _hwID_in_20 is zero." ); + errorDescriptionDict.Add(901, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 20." ); + errorDescriptionDict.Add(902, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 20." ); + errorDescriptionDict.Add(903, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 20." ); + errorDescriptionDict.Add(904, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 20." ); + errorDescriptionDict.Add(905, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 20." ); + errorDescriptionDict.Add(906, "Hw configuration error: Module with unexpected size or type detected in Slot 20. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(910, "Hw configuration error. Value of _hwID_out_1 is zero." ); + errorDescriptionDict.Add(911, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 21." ); + errorDescriptionDict.Add(912, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 21." ); + errorDescriptionDict.Add(913, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 21." ); + errorDescriptionDict.Add(914, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 21." ); + errorDescriptionDict.Add(915, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 21." ); + errorDescriptionDict.Add(916, "Hw configuration error: Module with unexpected size or type detected in Slot 21. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(920, "Hw configuration error. Value of _hwID_out_2 is zero." ); + errorDescriptionDict.Add(921, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 22." ); + errorDescriptionDict.Add(922, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 22." ); + errorDescriptionDict.Add(923, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 22." ); + errorDescriptionDict.Add(924, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 22." ); + errorDescriptionDict.Add(925, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 22." ); + errorDescriptionDict.Add(926, "Hw configuration error: Module with unexpected size or type detected in Slot 22. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(930, "Hw configuration error. Value of _hwID_out_3 is zero." ); + errorDescriptionDict.Add(931, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 23." ); + errorDescriptionDict.Add(932, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 23." ); + errorDescriptionDict.Add(933, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 23." ); + errorDescriptionDict.Add(934, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 23." ); + errorDescriptionDict.Add(935, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 23." ); + errorDescriptionDict.Add(936, "Hw configuration error: Module with unexpected size or type detected in Slot 23. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(940, "Hw configuration error. Value of _hwID_out_4 is zero." ); + errorDescriptionDict.Add(941, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 24." ); + errorDescriptionDict.Add(942, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 24." ); + errorDescriptionDict.Add(943, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 24." ); + errorDescriptionDict.Add(944, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 24." ); + errorDescriptionDict.Add(945, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 24." ); + errorDescriptionDict.Add(946, "Hw configuration error: Module with unexpected size or type detected in Slot 24. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(950, "Hw configuration error. Value of _hwID_out_5 is zero." ); + errorDescriptionDict.Add(951, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 25." ); + errorDescriptionDict.Add(952, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 25." ); + errorDescriptionDict.Add(953, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 25." ); + errorDescriptionDict.Add(954, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 25." ); + errorDescriptionDict.Add(955, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 25." ); + errorDescriptionDict.Add(956, "Hw configuration error: Module with unexpected size or type detected in Slot 25. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(960, "Hw configuration error. Value of _hwID_out_6 is zero." ); + errorDescriptionDict.Add(961, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 26." ); + errorDescriptionDict.Add(962, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 26." ); + errorDescriptionDict.Add(963, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 26." ); + errorDescriptionDict.Add(964, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 26." ); + errorDescriptionDict.Add(965, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 26." ); + errorDescriptionDict.Add(966, "Hw configuration error: Module with unexpected size or type detected in Slot 26. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(970, "Hw configuration error. Value of _hwID_out_7 is zero." ); + errorDescriptionDict.Add(971, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 27." ); + errorDescriptionDict.Add(972, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 27." ); + errorDescriptionDict.Add(973, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 27." ); + errorDescriptionDict.Add(974, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 27." ); + errorDescriptionDict.Add(975, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 27." ); + errorDescriptionDict.Add(976, "Hw configuration error: Module with unexpected size or type detected in Slot 27. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(980, "Hw configuration error. Value of _hwID_out_8 is zero." ); + errorDescriptionDict.Add(981, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 28." ); + errorDescriptionDict.Add(982, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 28." ); + errorDescriptionDict.Add(983, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 28." ); + errorDescriptionDict.Add(984, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 28." ); + errorDescriptionDict.Add(985, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 28." ); + errorDescriptionDict.Add(986, "Hw configuration error: Module with unexpected size or type detected in Slot 28. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(990, "Hw configuration error. Value of _hwID_out_9 is zero." ); + errorDescriptionDict.Add(991, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 29." ); + errorDescriptionDict.Add(992, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 29." ); + errorDescriptionDict.Add(993, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 29." ); + errorDescriptionDict.Add(994, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 29." ); + errorDescriptionDict.Add(995, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 29." ); + errorDescriptionDict.Add(996, "Hw configuration error: Module with unexpected size or type detected in Slot 29. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1000,"Hw configuration error. Value of _hwID_out_10 is zero." ); + errorDescriptionDict.Add(1001,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 30." ); + errorDescriptionDict.Add(1002,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 30." ); + errorDescriptionDict.Add(1003,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 30." ); + errorDescriptionDict.Add(1004,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 30." ); + errorDescriptionDict.Add(1005,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 30." ); + errorDescriptionDict.Add(1006,"Hw configuration error: Module with unexpected size or type detected in Slot 30. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1010,"Hw configuration error. Value of _hwID_out_11 is zero." ); + errorDescriptionDict.Add(1011,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 31." ); + errorDescriptionDict.Add(1012,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 31." ); + errorDescriptionDict.Add(1013,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 31." ); + errorDescriptionDict.Add(1014,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 31." ); + errorDescriptionDict.Add(1015,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 31." ); + errorDescriptionDict.Add(1016,"Hw configuration error: Module with unexpected size or type detected in Slot 31. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1020,"Hw configuration error. Value of _hwID_out_12 is zero." ); + errorDescriptionDict.Add(1021,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 32." ); + errorDescriptionDict.Add(1022,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 32." ); + errorDescriptionDict.Add(1023,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 32." ); + errorDescriptionDict.Add(1024,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 32." ); + errorDescriptionDict.Add(1025,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 32." ); + errorDescriptionDict.Add(1026,"Hw configuration error: Module with unexpected size or type detected in Slot 32. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1030,"Hw configuration error. Value of _hwID_out_13 is zero." ); + errorDescriptionDict.Add(1031,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 33." ); + errorDescriptionDict.Add(1032,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 33." ); + errorDescriptionDict.Add(1033,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 33." ); + errorDescriptionDict.Add(1034,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 33." ); + errorDescriptionDict.Add(1035,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 33." ); + errorDescriptionDict.Add(1036,"Hw configuration error: Module with unexpected size or type detected in Slot 33. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1040,"Hw configuration error. Value of _hwID_out_14 is zero." ); + errorDescriptionDict.Add(1041,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 34." ); + errorDescriptionDict.Add(1042,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 34." ); + errorDescriptionDict.Add(1043,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 34." ); + errorDescriptionDict.Add(1044,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 34." ); + errorDescriptionDict.Add(1045,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 34." ); + errorDescriptionDict.Add(1046,"Hw configuration error: Module with unexpected size or type detected in Slot 34. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1050,"Hw configuration error. Value of _hwID_out_15 is zero." ); + errorDescriptionDict.Add(1051,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 35." ); + errorDescriptionDict.Add(1052,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 35." ); + errorDescriptionDict.Add(1053,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 35." ); + errorDescriptionDict.Add(1054,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 35." ); + errorDescriptionDict.Add(1055,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 35." ); + errorDescriptionDict.Add(1056,"Hw configuration error: Module with unexpected size or type detected in Slot 35. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1060,"Hw configuration error. Value of _hwID_out_16 is zero." ); + errorDescriptionDict.Add(1061,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 36." ); + errorDescriptionDict.Add(1062,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 36." ); + errorDescriptionDict.Add(1063,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 36." ); + errorDescriptionDict.Add(1064,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 36." ); + errorDescriptionDict.Add(1065,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 36." ); + errorDescriptionDict.Add(1066,"Hw configuration error: Module with unexpected size or type detected in Slot 36. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1070,"Hw configuration error. Value of _hwID_out_17 is zero." ); + errorDescriptionDict.Add(1071,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 37." ); + errorDescriptionDict.Add(1072,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 37." ); + errorDescriptionDict.Add(1073,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 37." ); + errorDescriptionDict.Add(1074,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 37." ); + errorDescriptionDict.Add(1075,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 37." ); + errorDescriptionDict.Add(1076,"Hw configuration error: Module with unexpected size or type detected in Slot 37. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1080,"Hw configuration error. Value of _hwID_out_18 is zero." ); + errorDescriptionDict.Add(1081,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 38." ); + errorDescriptionDict.Add(1082,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 38." ); + errorDescriptionDict.Add(1083,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 38." ); + errorDescriptionDict.Add(1084,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 38." ); + errorDescriptionDict.Add(1085,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 38." ); + errorDescriptionDict.Add(1086,"Hw configuration error: Module with unexpected size or type detected in Slot 38. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1090,"Hw configuration error. Value of _hwID_out_19 is zero." ); + errorDescriptionDict.Add(1091,"Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 39." ); + errorDescriptionDict.Add(1092,"Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 39." ); + errorDescriptionDict.Add(1093,"Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 39." ); + errorDescriptionDict.Add(1094,"Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 39." ); + errorDescriptionDict.Add(1095,"Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 39." ); + errorDescriptionDict.Add(1096,"Hw configuration error: Module with unexpected size or type detected in Slot 39. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1100, "Hw configuration error. Value of _hwID_out_20 is zero." ); + errorDescriptionDict.Add(1101, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 40." ); + errorDescriptionDict.Add(1102, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 40." ); + errorDescriptionDict.Add(1103, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 40." ); + errorDescriptionDict.Add(1104, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 40." ); + errorDescriptionDict.Add(1105, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 40." ); + errorDescriptionDict.Add(1106, "Hw configuration error: Module with unexpected size or type detected in Slot 40. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1132, "Input variable `hwID_SystemControl` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1133, "Input variable `hwID_Engine_Control_1` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1134, "Input variable `hwID_Engine_Control_2` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1135, "Input variable `hwID_Engine_Control_3` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1136, "Input variable `hwID_Engine_Control_4` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1137, "Input variable `hwID_User_Data_240_bytes_1` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1138, "Input variable `hwID_User_Data_240_bytes_2` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1139, "Input variable `hwID_User_Data_240_bytes_3` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1140, "Input variable `hwID_User_Data_240_bytes_4` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1141, "Input variable `hwID_User_Data_240_bytes_5` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1142, "Input variable `hwID_User_Data_64_bytes_1` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1143, "Input variable `hwID_Results_240_bytes_1` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1144, "Input variable `hwID_Results_240_bytes_2` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1145, "Input variable `hwID_Results_240_bytes_3` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1146, "Input variable `hwID_Results_240_bytes_4` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1147, "Input variable `hwID_Results_240_bytes_5` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1148, "Input variable `hwId_17` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1149, "Input variable `hwId_18` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1150, "Input variable `hwId_19` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1151, "Input variable `hwId_20` has invalid value in `Run` method!" ); + + errorDescriptionDict.Add(1201, "Error reading the AxoVisionProInputStructure_hwID_SystemControl!" ); + errorDescriptionDict.Add(1202, "Error reading the AxoVisionProInputStructure_hwID_Engine_Control_1!" ); + errorDescriptionDict.Add(1203, "Error reading the AxoVisionProInputStructure_hwID_Engine_Control_2!" ); + errorDescriptionDict.Add(1204, "Error reading the AxoVisionProInputStructure_hwID_Engine_Control_3!" ); + errorDescriptionDict.Add(1205, "Error reading the AxoVisionProInputStructure_hwID_Engine_Control_4!" ); + errorDescriptionDict.Add(1206, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_1!" ); + errorDescriptionDict.Add(1207, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_2!" ); + errorDescriptionDict.Add(1208, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_3!" ); + errorDescriptionDict.Add(1209, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_4!" ); + errorDescriptionDict.Add(1210, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_5!" ); + + errorDescriptionDict.Add(1231, "Error writing the AxoVisionProOutputStructure_hwID_User_Data_64_bytes_1!" ); + errorDescriptionDict.Add(1232, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_1!" ); + errorDescriptionDict.Add(1233, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_2!" ); + errorDescriptionDict.Add(1234, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_3!" ); + errorDescriptionDict.Add(1235, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_4!" ); + errorDescriptionDict.Add(1236, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_5!" ); + errorDescriptionDict.Add(1237, "Error writing the AxoVisionProOutputStructure_hwID_17!" ); + errorDescriptionDict.Add(1238, "Error writing the AxoVisionProOutputStructure_hwID_18!" ); + errorDescriptionDict.Add(1239, "Error writing the AxoVisionProOutputStructure_hwID_19!" ); + errorDescriptionDict.Add(1230, "Error writing the AxoVisionProOutputStructure_hwID_20!" ); + + errorDescriptionDict.Add(1301, "Invalid value of the 'CameraNo' input variable, value too low!" ); + errorDescriptionDict.Add(1302, "Invalid value of the 'CameraNo' input variable, value too high!" ); + errorDescriptionDict.Add(1303, "No results to read: required result length is zero in 'ReadResultsTask'." ); + errorDescriptionDict.Add(1304, "Result data size oversized!" ); + errorDescriptionDict.Add(1305, "No user data to send: required user data length is zero in 'SendDataTask'." ); + errorDescriptionDict.Add(1306, "User data size oversized!"); + + + // HardResetAllCamerasTask + errorDescriptionDict.Add(10000, "HardResetAllCamerasTask finished with error!"); + errorDescriptionDict.Add(10001, "HardResetAllCamerasTask was aborted, while not yet completed!"); + // ResetTask + errorDescriptionDict.Add(10010, "ResetTask finished with error!"); + errorDescriptionDict.Add(10011, "ResetTask was aborted, while not yet completed!"); + // TriggerTask + errorDescriptionDict.Add(10020, "TriggerTask finished with error!"); + errorDescriptionDict.Add(10021, "TriggerTask was aborted, while not yet completed!"); + // TemplateTask_10steps_4 + errorDescriptionDict.Add(10030, "TemplateTask_10steps_4 task finished with error!"); + errorDescriptionDict.Add(10031, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); + // TemplateTask_10steps_5 + errorDescriptionDict.Add(10040, "TemplateTask_10steps_5 task finished with error!"); + errorDescriptionDict.Add(10041, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); + // TemplateTask_10steps_6 + errorDescriptionDict.Add(10050, "TemplateTask_10steps_6 task finished with error!"); + errorDescriptionDict.Add(10051, "TemplateTask_10steps_6 task was aborted, while not yet completed!"); + + // ReadResultsTask + errorDescriptionDict.Add(10060, "ReadResultsTask task finished with error!"); + errorDescriptionDict.Add(10061, "ReadResultsTask task was aborted, while not yet completed!"); + // SendDataTask + errorDescriptionDict.Add(10080, "SendDataTask task finished with error!"); + errorDescriptionDict.Add(10081, "SendDataTask task was aborted, while not yet completed!"); + // TemplateTask_20steps_3 + errorDescriptionDict.Add(10100,"TemplateTask_20steps_3 task finished with error!"); + errorDescriptionDict.Add(10101, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); + // TemplateTask_20steps_4 + errorDescriptionDict.Add(10120,"TemplateTask_20steps_4 task finished with error!"); + errorDescriptionDict.Add(10121, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); + // TemplateTask_20steps_5 + errorDescriptionDict.Add(10140,"TemplateTask_20steps_5 task finished with error!"); + errorDescriptionDict.Add(10141, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + // TemplateTask_20steps_6 + errorDescriptionDict.Add(10160,"TemplateTask_20steps_6 task finished with error!"); + errorDescriptionDict.Add(10161, "TemplateTask_20steps_6 task was aborted, while not yet completed!"); + + } + string errorDescription = " "; + + if (Error == null || Error.Id == null) + return errorDescription; + + if (errorDescriptionDict.TryGetValue(Error.Id.Cyclic, out errorDescription)) + { + return errorDescription; + } + else + + { + return " "; + } + } + } + + public string ActionDescription + { + get + { + if (actionDescriptionDict == null) { actionDescriptionDict = new Dictionary(); } + if (actionDescriptionDict.Count == 0) + { + actionDescriptionDict.Add(0, " "); + actionDescriptionDict.Add(50, "Restore has been executed."); + // HardResetAllCamerasTask + actionDescriptionDict.Add(100, "HardResetAllCamerasTask started."); + actionDescriptionDict.Add(300, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(301, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(302, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(303, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(304, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(305, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(306, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(307, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(308, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(309, "HardResetAllCamerasTask running."); + actionDescriptionDict.Add(101, "HardResetAllCamerasTask finished succesfully."); + actionDescriptionDict.Add(102, "HardResetAllCamerasTask restored."); + // ResetTask + actionDescriptionDict.Add(110, "ResetTask started."); + actionDescriptionDict.Add(310, "ResetTask running."); + actionDescriptionDict.Add(311, "ResetTask running."); + actionDescriptionDict.Add(312, "ResetTask running."); + actionDescriptionDict.Add(313, "ResetTask running."); + actionDescriptionDict.Add(314, "ResetTask running."); + actionDescriptionDict.Add(315, "ResetTask running."); + actionDescriptionDict.Add(316, "ResetTask running."); + actionDescriptionDict.Add(317, "ResetTask running."); + actionDescriptionDict.Add(318, "ResetTask running."); + actionDescriptionDict.Add(319, "ResetTask running."); + actionDescriptionDict.Add(111, "ResetTask finished succesfully."); + actionDescriptionDict.Add(112, "ResetTask restored."); + // TriggerTask + actionDescriptionDict.Add(120, "TriggerTask started."); + actionDescriptionDict.Add(320, "TriggerTask running, Waiting for system ready"); + actionDescriptionDict.Add(321, "TriggerTask running, Waiting for online"); + actionDescriptionDict.Add(322, "TriggerTask running, camera reset before trigger"); + actionDescriptionDict.Add(323, "TriggerTask running, trigger set"); + actionDescriptionDict.Add(324, "TriggerTask running, wait for trigger ack"); + actionDescriptionDict.Add(325, "TriggerTask running, wait for trigger ack false>"); + actionDescriptionDict.Add(326, "TriggerTask running, trigger done>"); + actionDescriptionDict.Add(327, "TriggerTask running, "); + actionDescriptionDict.Add(328, "TriggerTask running, "); + actionDescriptionDict.Add(329, "TriggerTask running, "); + actionDescriptionDict.Add(121, "TriggerTask finished succesfully."); + actionDescriptionDict.Add(122, "TriggerTask restored."); + // TemplateTask_10steps_4 + actionDescriptionDict.Add(130, "TemplateTask_10steps_4 started."); + actionDescriptionDict.Add(330, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(331, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(332, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(333, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(334, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(335, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(336, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(337, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(338, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(339, "TemplateTask_10steps_4 running, "); + actionDescriptionDict.Add(131, "TemplateTask_10steps_4 finished succesfully."); + actionDescriptionDict.Add(132, "TemplateTask_10steps_4 restored."); + // TemplateTask_10steps_5 + actionDescriptionDict.Add(140, "TemplateTask_10steps_5 started."); + actionDescriptionDict.Add(340, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(341, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(342, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(343, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(344, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(345, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(346, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(347, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(348, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(349, "TemplateTask_10steps_5 running, "); + actionDescriptionDict.Add(141, "TemplateTask_10steps_5 finished succesfully."); + actionDescriptionDict.Add(142, "TemplateTask_10steps_5 restored."); + // TemplateTask_10steps_6 + actionDescriptionDict.Add(150, "TemplateTask_10steps_6 started."); + actionDescriptionDict.Add(350, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(351, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(352, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(353, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(354, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(355, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(356, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(357, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(358, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(359, "TemplateTask_10steps_6 running, "); + actionDescriptionDict.Add(151, "TemplateTask_10steps_6 finished succesfully."); + actionDescriptionDict.Add(152, "TemplateTask_10steps_6 restored."); + + // ReadResultsTask + actionDescriptionDict.Add(160, "ReadResultsTask started."); + actionDescriptionDict.Add(360, "ReadResultsTask running, Waiting for system ready"); + actionDescriptionDict.Add(361, "ReadResultsTask running, Waiting for online"); + actionDescriptionDict.Add(362, "ReadResultsTask running, check correct JOBID"); + actionDescriptionDict.Add(363, "ReadResultsTask running, Wait for free Data Buffer"); + actionDescriptionDict.Add(364, "ReadResultsTask running, Lock Data Buffer"); + actionDescriptionDict.Add(365, "ReadResultsTask running, set bit user data"); + actionDescriptionDict.Add(366, "ReadResultsTask running, wait for result valid"); + actionDescriptionDict.Add(367, "ReadResultsTask running, calculate size variant data"); + actionDescriptionDict.Add(368, "ReadResultsTask running, check HW correct config"); + actionDescriptionDict.Add(369, "ReadResultsTask running, move data from HW to byte buffer"); + actionDescriptionDict.Add(370, "ReadResultsTask running, Read Data"); + actionDescriptionDict.Add(371, "ReadResultsTask running, set release result data ack"); + actionDescriptionDict.Add(372, "ReadResultsTask running, set for free Data Buffer"); + actionDescriptionDict.Add(373, "ReadResultsTask running, set bit user data"); + actionDescriptionDict.Add(374, "ReadResultsTask running, set release Locker"); + actionDescriptionDict.Add(375, "ReadResultsTask running, Result ack>"); + actionDescriptionDict.Add(376, "ReadResultsTask running, "); + actionDescriptionDict.Add(377, "ReadResultsTask running, "); + actionDescriptionDict.Add(378, "ReadResultsTask running, "); + actionDescriptionDict.Add(379, "ReadResultsTask running, "); + actionDescriptionDict.Add(161, "ReadResultsTask finished succesfully."); + actionDescriptionDict.Add(162, "ReadResultsTask restored."); + // SendDataTask + actionDescriptionDict.Add(180, "SendDataTask started."); + actionDescriptionDict.Add(380, "SendDataTask running, Waiting for system ready"); + actionDescriptionDict.Add(381, "SendDataTask running, Waiting for online"); + actionDescriptionDict.Add(382, "SendDataTask running, Wait for free Data Buffer"); + actionDescriptionDict.Add(383, "SendDataTask running, Lock Data Buffer"); + actionDescriptionDict.Add(384, "SendDataTask running, serialize User data DATA"); + actionDescriptionDict.Add(385, "SendDataTask running, check HW correct config"); + actionDescriptionDict.Add(386, "SendDataTask running, Fill User DATA"); + actionDescriptionDict.Add(387, "SendDataTask running, set bit user data"); + actionDescriptionDict.Add(388, "SendDataTask running, wait for confirm user data ack"); + actionDescriptionDict.Add(389, "SendDataTask running, wait for release user data ack"); + actionDescriptionDict.Add(390, "SendDataTask running, wait for release user data ack"); + actionDescriptionDict.Add(391, "SendDataTask running, data handler set"); + actionDescriptionDict.Add(392, "SendDataTask running, wait for data handler ack"); + actionDescriptionDict.Add(393, "SendDataTask running, wait for data handler ack false"); + actionDescriptionDict.Add(394, "SendDataTask running, "); + actionDescriptionDict.Add(395, "SendDataTask running, "); + actionDescriptionDict.Add(396, "SendDataTask running, "); + actionDescriptionDict.Add(397, "SendDataTask running, "); + actionDescriptionDict.Add(398, "SendDataTask running, "); + actionDescriptionDict.Add(399, "SendDataTask running, "); + actionDescriptionDict.Add(181, "SendDataTask finished succesfully."); + actionDescriptionDict.Add(182, "SendDataTask restored."); + // TemplateTask_20steps_3 + actionDescriptionDict.Add(200, "TemplateTask_20steps_3 started."); + actionDescriptionDict.Add(400, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(401, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(402, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(403, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(404, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(405, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(406, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(407, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(408, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(409, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(410, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(411, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(412, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(413, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(414, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(415, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(416, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(417, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(418, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(419, "TemplateTask_20steps_3 running, "); + actionDescriptionDict.Add(201, "TemplateTask_20steps_3 finished succesfully."); + actionDescriptionDict.Add(202, "TemplateTask_20steps_3 restored."); + // TemplateTask_20steps_4 + actionDescriptionDict.Add(220, "TemplateTask_20steps_4 started."); + actionDescriptionDict.Add(420, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(421, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(422, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(423, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(424, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(425, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(426, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(427, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(428, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(429, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(430, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(431, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(432, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(433, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(434, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(435, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(436, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(437, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(438, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(439, "TemplateTask_20steps_4 running, "); + actionDescriptionDict.Add(221, "TemplateTask_20steps_4 finished succesfully."); + actionDescriptionDict.Add(222, "TemplateTask_20steps_4 restored."); + // TemplateTask_20steps_5 + actionDescriptionDict.Add(240, "TemplateTask_20steps_5 started."); + actionDescriptionDict.Add(440, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(441, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(442, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(443, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(444, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(445, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(446, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(447, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(448, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(449, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(450, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(451, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(452, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(453, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(454, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(455, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(456, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(457, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(458, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(459, "TemplateTask_20steps_5 running, "); + actionDescriptionDict.Add(241, "TemplateTask_20steps_5 finished succesfully."); + actionDescriptionDict.Add(242, "TemplateTask_20steps_5 restored."); + // TemplateTask_20steps_6 + actionDescriptionDict.Add(260, "TemplateTask_20steps_6 started."); + actionDescriptionDict.Add(460, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(461, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(462, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(463, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(464, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(465, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(466, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(467, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(468, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(469, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(470, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(471, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(472, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(473, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(474, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(475, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(476, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(477, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(478, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(479, "TemplateTask_20steps_6 running, "); + actionDescriptionDict.Add(261, "TemplateTask_20steps_6 finished succesfully."); + actionDescriptionDict.Add(262, "TemplateTask_20steps_6 restored."); + // General alarms + actionDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); + actionDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!"); + actionDescriptionDict.Add(702, "Input variable `hwID_System_Control` has invalid value in `Run` method!"); + actionDescriptionDict.Add(703, "Input variable `hwID_Engine_Control_1` has invalid value in `Run` method!"); + actionDescriptionDict.Add(704, "Input variable `hwID_Engine_Control_2` has invalid value in `Run` method!"); + actionDescriptionDict.Add(705, "Input variable `hwID_Engine_Control_3` has invalid value in `Run` method!"); + actionDescriptionDict.Add(706, "Input variable `hwID_Engine_Control_4` has invalid value in `Run` method!"); + actionDescriptionDict.Add(707, "Input variable `hwID_User_Data_240_bytes_1` has invalid value in `Run` method!"); + actionDescriptionDict.Add(708, "Input variable `hwID_User_Data_240_bytes_2` has invalid value in `Run` method!"); + actionDescriptionDict.Add(709, "Input variable `hwID_User_Data_240_bytes_3` has invalid value in `Run` method!"); + actionDescriptionDict.Add(710, "Input variable `hwID_User_Data_240_bytes_4` has invalid value in `Run` method!"); + actionDescriptionDict.Add(711, "Input variable `hwID_User_Data_240_bytes_5` has invalid value in `Run` method!"); + actionDescriptionDict.Add(712, "Input variable `hwID_User_Data_64_bytes_1` has invalid value in `Run` method!"); + actionDescriptionDict.Add(713, "Input variable `hwID_Results_240_bytes_1` has invalid value in `Run` method!"); + actionDescriptionDict.Add(714, "Input variable `hwID_Results_240_bytes_2` has invalid value in `Run` method!"); + actionDescriptionDict.Add(715, "Input variable `hwID_Results_240_bytes_3` has invalid value in `Run` method!"); + actionDescriptionDict.Add(716, "Input variable `hwID_Results_240_bytes_4` has invalid value in `Run` method!"); + actionDescriptionDict.Add(717, "Input variable `hwID_Results_240_bytes_5` has invalid value in `Run` method!"); + actionDescriptionDict.Add(718, "Input variable `hwId_17` has invalid value in `Run` method!"); + actionDescriptionDict.Add(719, "Input variable `hwId_18` has invalid value in `Run` method!"); + actionDescriptionDict.Add(720, "Input variable `hwId_19` has invalid value in `Run` method!"); + actionDescriptionDict.Add(721, "Input variable `hwId_20` has invalid value in `Run` method!"); + + actionDescriptionDict.Add(722, "Error reading the AxoVisionProInputStructure_hwID_System_Control!"); + actionDescriptionDict.Add(723, "Error reading the AxoVisionProInputStructure_hwID_Engine_Control_1!"); + actionDescriptionDict.Add(724, "Error reading the AxoVisionProInputStructure_hwID_Engine_Control_2!"); + actionDescriptionDict.Add(725, "Error reading the AxoVisionProInputStructure_hwID_Engine_Control_3!"); + actionDescriptionDict.Add(726, "Error reading the AxoVisionProInputStructure_hwID_Engine_Control_4!"); + actionDescriptionDict.Add(727, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_1!"); + actionDescriptionDict.Add(728, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_2!"); + actionDescriptionDict.Add(729, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_3!"); + actionDescriptionDict.Add(730, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_4!"); + actionDescriptionDict.Add(731, "Error reading the AxoVisionProInputStructure_hwID_User_Data_240_bytes_5!"); + + actionDescriptionDict.Add(733, "Error writing the AxoVisionProOutputStructure_hwID_User_Data_64_bytes_1!"); + actionDescriptionDict.Add(734, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_1!"); + actionDescriptionDict.Add(735, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_2!"); + actionDescriptionDict.Add(736, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_3!"); + actionDescriptionDict.Add(737, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_4!"); + actionDescriptionDict.Add(738, "Error writing the AxoVisionProOutputStructure_hwID_Results_240_bytes_5!"); + actionDescriptionDict.Add(739, "Error writing the AxoVisionProOutputStructure_hwID_17!"); + actionDescriptionDict.Add(740, "Error writing the AxoVisionProOutputStructure_hwID_18!"); + actionDescriptionDict.Add(741, "Error writing the AxoVisionProOutputStructure_hwID_19!"); + actionDescriptionDict.Add(742, "Error writing the AxoVisionProOutputStructure_hwID_20!"); + + + // HardResetAllCamerasTask + actionDescriptionDict.Add(10000, "HardResetAllCamerasTask finished with error!"); + actionDescriptionDict.Add(10001, "HardResetAllCamerasTask was aborted, while not yet completed!"); + // ResetTask + actionDescriptionDict.Add(10010, "ResetTask finished with error!"); + actionDescriptionDict.Add(10011, "ResetTask was aborted, while not yet completed!"); + // TriggerTask + actionDescriptionDict.Add(10020, "TriggerTask finished with error!"); + actionDescriptionDict.Add(10021, "TriggerTask was aborted, while not yet completed!"); + // TemplateTask_10steps_4 + actionDescriptionDict.Add(10030, "TemplateTask_10steps_4 task finished with error!"); + actionDescriptionDict.Add(10031, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); + // TemplateTask_10steps_5 + actionDescriptionDict.Add(10040, "TemplateTask_10steps_5 task finished with error!"); + actionDescriptionDict.Add(10041, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); + // TemplateTask_10steps_6 + actionDescriptionDict.Add(10050, "TemplateTask_10steps_6 task finished with error!"); + actionDescriptionDict.Add(10051, "TemplateTask_10steps_6 task was aborted, while not yet completed!"); + + // ReadResultsTask + actionDescriptionDict.Add(10060, "ReadResultsTask task finished with error!"); + actionDescriptionDict.Add(10061, "ReadResultsTask task was aborted, while not yet completed!"); + // SendDataTask + actionDescriptionDict.Add(10080, "SendDataTask task finished with error!"); + actionDescriptionDict.Add(10081, "SendDataTask task was aborted, while not yet completed!"); + // TemplateTask_20steps_3 + actionDescriptionDict.Add(10100, "TemplateTask_20steps_3 task finished with error!"); + actionDescriptionDict.Add(10101, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); + // TemplateTask_20steps_4 + actionDescriptionDict.Add(10120, "TemplateTask_20steps_4 task finished with error!"); + actionDescriptionDict.Add(10121, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); + // TemplateTask_20steps_5 + actionDescriptionDict.Add(10140, "TemplateTask_20steps_5 task finished with error!"); + actionDescriptionDict.Add(10141, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + // TemplateTask_20steps_6 + actionDescriptionDict.Add(10160, "TemplateTask_20steps_6 task finished with error!"); + actionDescriptionDict.Add(10161, "TemplateTask_20steps_6 task was aborted, while not yet completed!"); + + } + + string actionDescription = " "; + + if (Action == null || Action.Id == null) + return actionDescription; + + if (actionDescriptionDict.TryGetValue(Action.Id.Cyclic, out actionDescription)) + { + return actionDescription; + } + else + { + return " "; + } + + } + } + } + +} diff --git a/src/components.desoutter.tightening/app/apax.yml b/src/components.desoutter.tightening/app/apax.yml index 564413d55..efa5035a9 100644 --- a/src/components.desoutter.tightening/app/apax.yml +++ b/src/components.desoutter.tightening/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.desoutter.tightening" +name: "app_axopen.components.desoutter.tightening" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Desoutter.Tightening" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,144 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/components.desoutter.tightening/ctrl/apax.yml b/src/components.desoutter.tightening/ctrl/apax.yml index 767e63a9f..d4eab48f5 100644 --- a/src/components.desoutter.tightening/ctrl/apax.yml +++ b/src/components.desoutter.tightening/ctrl/apax.yml @@ -12,27 +12,37 @@ devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: "@inxton/axopen.io": '0.0.0-dev.0' -publicKeys: - "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" +publicKeys: + "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.desoutter.tightening/ctrl/assets/wp462-t1-rh-deso.hwl.yml b/src/components.desoutter.tightening/ctrl/assets/wp462-t1-rh-deso.hwl.yml index 921314406..8084553a5 100644 --- a/src/components.desoutter.tightening/ctrl/assets/wp462-t1-rh-deso.hwl.yml +++ b/src/components.desoutter.tightening/ctrl/assets/wp462-t1-rh-deso.hwl.yml @@ -16,31 +16,39 @@ Devices: TypeIdentifier: GsdId: ID_MODULE_INPUT1B FileName: GSDML-V2.2-DESOUTTER-PRT-20100408.XML + Slot: 1 - Name: Input_1_byte_2 TypeIdentifier: GsdId: ID_MODULE_INPUT1B FileName: GSDML-V2.2-DESOUTTER-PRT-20100408.XML + Slot: 2 - Name: Input_2_word_1 TypeIdentifier: GsdId: ID_MODULE_INPUT2W FileName: GSDML-V2.2-DESOUTTER-PRT-20100408.XML + Slot: 3 - Name: Input_1_word_1 TypeIdentifier: GsdId: ID_MODULE_INPUT1W FileName: GSDML-V2.2-DESOUTTER-PRT-20100408.XML + Slot: 4 - Name: Input_2_word_2 TypeIdentifier: GsdId: ID_MODULE_INPUT2W FileName: GSDML-V2.2-DESOUTTER-PRT-20100408.XML + Slot: 5 - Name: Input_1_word_2 TypeIdentifier: GsdId: ID_MODULE_INPUT1W FileName: GSDML-V2.2-DESOUTTER-PRT-20100408.XML + Slot: 6 - Name: Output_1_byte_1 TypeIdentifier: GsdId: ID_MODULE_OUTPUT1B FileName: GSDML-V2.2-DESOUTTER-PRT-20100408.XML + Slot: 7 - Name: Output_1_byte_2 TypeIdentifier: GsdId: ID_MODULE_OUTPUT1B FileName: GSDML-V2.2-DESOUTTER-PRT-20100408.XML + Slot: 8 diff --git a/src/components.desoutter.tightening/ctrl/src/CVIC_II/AxoCVIC_II.st b/src/components.desoutter.tightening/ctrl/src/CVIC_II/AxoCVIC_II.st index d032b9f0b..95f84df29 100644 --- a/src/components.desoutter.tightening/ctrl/src/CVIC_II/AxoCVIC_II.st +++ b/src/components.desoutter.tightening/ctrl/src/CVIC_II/AxoCVIC_II.st @@ -7,6 +7,7 @@ USING AXOpen.Components.Abstractions; USING AXOpen.Components.Abstractions.Drives; USING System.Math; USING System.BitAccess; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Desoutter.Tightening {S7.extern=ReadWrite} @@ -30,7 +31,18 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening _returnValue : WORD; _data_1 : ARRAY[0..0] OF BYTE; _data_2 : ARRAY[0..1] OF BYTE; - _data_4 : ARRAY[0..3] OF BYTE; + _data_4 : ARRAY[0..3] OF BYTE; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _startAddress : UDINT; + _bytesCount : UINT; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR VAR PUBLIC //HEADER @@ -140,72 +152,429 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening VAR_INPUT parent : IAxoObject; hwID : WORD; - hwId_Input_1_byte_1 : WORD; - hwId_Input_1_byte_2 : WORD; - hwId_Input_2_word_1 : WORD; - hwId_Input_1_word_1 : WORD; - hwId_Input_2_word_2 : WORD; - hwId_Input_1_word_2 : WORD; - hwId_Output_1_byte_1 : WORD; - hwId_Output_1_byte_2 : WORD; END_VAR SUPER.Run(parent); Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwId_Input_1_byte_1 = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702,hwId_Input_1_byte_2 = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#703,hwId_Input_2_word_1 = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#704,hwId_Input_1_word_1 = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#705,hwId_Input_2_word_2 = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#706,hwId_Input_1_word_2 = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#707,hwId_Output_1_byte_1 = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#708,hwId_Output_1_byte_2 = WORD#0, eAxoMessageCategory#ProgrammingError); - - IF parent = NULL THEN - Status.Error.Id := UINT#700; - RETURN; - ELSIF hwId_Input_1_byte_2 = WORD#0 THEN - Status.Error.Id := UINT#701; - RETURN; - ELSIF hwId_Input_1_byte_2 = WORD#0 THEN - Status.Error.Id := UINT#702; - RETURN; - ELSIF hwId_Input_2_word_1 = WORD#0 THEN - Status.Error.Id := UINT#703; - RETURN; - ELSIF hwId_Input_1_word_1 = WORD#0 THEN - Status.Error.Id := UINT#704; - RETURN; - ELSIF hwId_Input_2_word_2 = WORD#0 THEN - Status.Error.Id := UINT#705; - RETURN; - ELSIF hwId_Input_1_word_2 = WORD#0 THEN - Status.Error.Id := UINT#706; - RETURN; - ELSIF hwId_Output_1_byte_1 = WORD#0 THEN - Status.Error.Id := UINT#707; - RETURN; - ELSIF hwId_Output_1_byte_2 = WORD#0 THEN - Status.Error.Id := UINT#708; - RETURN; - END_IF; - _hwID := hwID; - _hwId_Input_1_byte_1 := hwId_Input_1_byte_1; - _hwId_Input_1_byte_2 := hwId_Input_1_byte_2; - _hwId_Input_2_word_1 := hwId_Input_2_word_1; - _hwId_Input_1_word_1 := hwId_Input_1_word_1; - _hwId_Input_2_word_2 := hwId_Input_2_word_2; - _hwId_Input_1_word_2 := hwId_Input_1_word_2; - _hwId_Output_1_byte_1 := hwId_Output_1_byte_1; - _hwId_Output_1_byte_2 := hwId_Output_1_byte_2; + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(ULINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(ULINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_Input_1_byte_1 := TO_WORD(_outHwid); + IF _hwId_Input_1_byte_1 = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_Input_1_byte_1 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_Input_1_byte_2 := TO_WORD(_outHwid); + IF _hwId_Input_1_byte_2 = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_Input_1_byte_2 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 3*****************// + _geoAddr.Slot := UINT#3; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_Input_2_word_1 := TO_WORD(_outHwid); + IF _hwId_Input_2_word_1 = WORD#0 THEN + Messenger.Activate(UINT#730,eAxoMessageCategory#Error); + Status.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#731,eAxoMessageCategory#Error); + Status.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#732,eAxoMessageCategory#Error); + Status.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#733,eAxoMessageCategory#Error); + Status.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#734,eAxoMessageCategory#Error); + Status.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#735,eAxoMessageCategory#Error); + Status.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_Input_2_word_1 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#4 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#736,eAxoMessageCategory#Error); + Status.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 4*****************// + _geoAddr.Slot := UINT#4; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_Input_1_word_1 := TO_WORD(_outHwid); + IF _hwId_Input_1_word_1 = WORD#0 THEN + Messenger.Activate(UINT#740,eAxoMessageCategory#Error); + Status.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#741,eAxoMessageCategory#Error); + Status.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#742,eAxoMessageCategory#Error); + Status.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#743,eAxoMessageCategory#Error); + Status.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#744,eAxoMessageCategory#Error); + Status.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#745,eAxoMessageCategory#Error); + Status.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_Input_1_word_1 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#2 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#746,eAxoMessageCategory#Error); + Status.Error.Id := UINT#746; + RETURN; + END_IF; + //******************Slot 5*****************// + _geoAddr.Slot := UINT#5; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_Input_2_word_2 := TO_WORD(_outHwid); + IF _hwId_Input_2_word_2 = WORD#0 THEN + Messenger.Activate(UINT#750,eAxoMessageCategory#Error); + Status.Error.Id := UINT#750; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#751,eAxoMessageCategory#Error); + Status.Error.Id := UINT#751; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#752,eAxoMessageCategory#Error); + Status.Error.Id := UINT#752; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#753,eAxoMessageCategory#Error); + Status.Error.Id := UINT#753; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#754,eAxoMessageCategory#Error); + Status.Error.Id := UINT#754; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#755,eAxoMessageCategory#Error); + Status.Error.Id := UINT#755; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_Input_2_word_2 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#4 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#756,eAxoMessageCategory#Error); + Status.Error.Id := UINT#756; + RETURN; + END_IF; + //******************Slot 6*****************// + _geoAddr.Slot := UINT#6; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_Input_1_word_2 := TO_WORD(_outHwid); + IF _hwId_Input_1_word_2 = WORD#0 THEN + Messenger.Activate(UINT#760,eAxoMessageCategory#Error); + Status.Error.Id := UINT#760; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#761,eAxoMessageCategory#Error); + Status.Error.Id := UINT#761; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#762,eAxoMessageCategory#Error); + Status.Error.Id := UINT#762; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#763,eAxoMessageCategory#Error); + Status.Error.Id := UINT#763; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#764,eAxoMessageCategory#Error); + Status.Error.Id := UINT#764; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#765,eAxoMessageCategory#Error); + Status.Error.Id := UINT#765; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_Input_1_word_2 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#2 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#766,eAxoMessageCategory#Error); + Status.Error.Id := UINT#766; + RETURN; + END_IF; + //******************Slot 7*****************// + _geoAddr.Slot := UINT#7; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_Output_1_byte_1 := TO_WORD(_outHwid); + IF _hwId_Output_1_byte_1 = WORD#0 THEN + Messenger.Activate(UINT#770,eAxoMessageCategory#Error); + Status.Error.Id := UINT#770; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#771,eAxoMessageCategory#Error); + Status.Error.Id := UINT#771; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#772,eAxoMessageCategory#Error); + Status.Error.Id := UINT#772; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#773,eAxoMessageCategory#Error); + Status.Error.Id := UINT#773; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#774,eAxoMessageCategory#Error); + Status.Error.Id := UINT#774; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#775,eAxoMessageCategory#Error); + Status.Error.Id := UINT#775; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_Output_1_byte_1 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#1 OR _inputsCount <> UINT#0 THEN + Messenger.Activate(UINT#776,eAxoMessageCategory#Error); + Status.Error.Id := UINT#776; + RETURN; + END_IF; + //******************Slot 8*****************// + _geoAddr.Slot := UINT#8; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_Output_1_byte_2 := TO_WORD(_outHwid); + IF _hwId_Output_1_byte_2 = WORD#0 THEN + Messenger.Activate(UINT#780,eAxoMessageCategory#Error); + Status.Error.Id := UINT#780; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#781,eAxoMessageCategory#Error); + Status.Error.Id := UINT#781; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#782,eAxoMessageCategory#Error); + Status.Error.Id := UINT#782; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#783,eAxoMessageCategory#Error); + Status.Error.Id := UINT#783; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#784,eAxoMessageCategory#Error); + Status.Error.Id := UINT#784; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#785,eAxoMessageCategory#Error); + Status.Error.Id := UINT#785; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_Output_1_byte_2 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#1 OR _inputsCount <> UINT#0 THEN + Messenger.Activate(UINT#786,eAxoMessageCategory#Error); + Status.Error.Id := UINT#786; + RETURN; + END_IF; + + + IF parent = NULL THEN + Messenger.Activate(UINT#1130,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1130; + RETURN; + END_IF; + + IF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1131; + RETURN; + END_IF; + + IF _hwId_Input_1_byte_1 = WORD#0 THEN + Messenger.Activate(UINT#1132,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1132; + RETURN; + END_IF; + + IF _hwId_Input_1_byte_2 = WORD#0 THEN + Messenger.Activate(UINT#1133,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1133; + RETURN; + END_IF; + + IF _hwId_Input_2_word_1 = WORD#0 THEN + Messenger.Activate(UINT#1134,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1134; + RETURN; + END_IF; + + IF _hwId_Input_1_word_1 = WORD#0 THEN + Messenger.Activate(UINT#1135,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1135; + RETURN; + END_IF; + + IF _hwId_Input_2_word_2 = WORD#0 THEN + Messenger.Activate(UINT#1136,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1136; + RETURN; + END_IF; + + IF _hwId_Input_1_word_2 = WORD#0 THEN + Messenger.Activate(UINT#1137,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1137; + RETURN; + END_IF; + + IF _hwId_Output_1_byte_1 = WORD#0 THEN + Messenger.Activate(UINT#1138,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1138; + RETURN; + END_IF; + + IF _hwId_Output_1_byte_2 = WORD#0 THEN + Messenger.Activate(UINT#1139,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1139; + RETURN; + END_IF; + + _initHwCheckDone := TRUE; + END_IF; //***************************************** _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwId_Input_1_byte_1 ,_data_1); - Messenger.ActivateOnCondition(ULINT#709,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#709; + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; @@ -219,45 +588,45 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening Inputs.Status.NumberOfCyclesOk := _data_1[0].%X7; _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwId_Input_1_byte_2 ,_data_1); - Messenger.ActivateOnCondition(ULINT#710,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#710; + Messenger.Activate(UINT#1202, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1202; RETURN; END_IF; Inputs.ScrewingProgram := _data_1[0]; _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwId_Input_2_word_1 ,_data_4); - Messenger.ActivateOnCondition(ULINT#711,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#711; + Messenger.Activate(UINT#1203, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1203; RETURN; END_IF; System.Serialization.Deserialize(UINT#0,_data_4,Inputs.Torque); _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwId_Input_1_word_1 ,_data_2); - Messenger.ActivateOnCondition(ULINT#712,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#712; + Messenger.Activate(UINT#1204, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1204; RETURN; END_IF; System.Serialization.Deserialize(UINT#0,_data_2,Inputs.TorqueTrend); _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwId_Input_2_word_2 ,_data_4); - Messenger.ActivateOnCondition(ULINT#713,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#713; + Messenger.Activate(UINT#1205, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1205; RETURN; END_IF; System.Serialization.Deserialize(UINT#0,_data_4,Inputs.Angle); _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwId_Input_1_word_2 ,_data_2); - Messenger.ActivateOnCondition(ULINT#714,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#714; + Messenger.Activate(UINT#1206, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1206; RETURN; END_IF; @@ -298,9 +667,9 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening END_IF; IF _progress = 300 THEN - TaskMessenger.ActivateOnCondition(ULINT#600, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#600; + TaskMessenger.Activate( UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; END_IF; Outputs.Control.SpindleValidation := FALSE; @@ -314,20 +683,22 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening END_IF; IF _progress = 301 THEN - TaskMessenger.ActivateOnCondition(ULINT#601, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#601; + TaskMessenger.Activate( UINT#501, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#501; END_IF; + IF NOT Inputs.Status.InCycle THEN _progress := 302; END_IF; END_IF; IF _progress = 302 THEN - TaskMessenger.ActivateOnCondition(ULINT#602, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#602; + TaskMessenger.Activate( UINT#502, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#502; END_IF; + IF Inputs.Status.Ready THEN _progress := 303; END_IF; @@ -340,6 +711,7 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening Outputs.Control.Direction := FALSE; Outputs.Control.ErrorAck := FALSE; ResetTask.DoneWhen(TRUE); + _progress := 0; END_IF; THIS.CallTimers(TRUE); @@ -351,14 +723,14 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening Status.Action.Id := UINT#101; Status.Error.Id := UINT#0; ELSIF ResetTask.ErrorOccured() THEN - Status.Action.Id := UINT#800; - Status.Error.Id := UINT#800; + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; ELSIF ResetTask.AbortTriggered()THEN - Status.Action.Id := UINT#801; - Status.Error.Id := UINT#801; + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,ResetTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,ResetTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10000,ResetTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,ResetTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,ResetTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ResetTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN Status.Action.Id := UINT#102; @@ -376,11 +748,11 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening Messenger.ActivateOnCondition(ULINT#111,SetScrewingProgramTask.IsDone(), eAxoMessageCategory#Info); IF SetScrewingProgramTask.Execute(THIS) THEN IF _RequiredScrewingProgram < Config.ScrewingProgramMin THEN - Status.Error.Id := UINT#717; + Status.Error.Id := UINT#1401; RETURN; END_IF; IF _RequiredScrewingProgram > Config.ScrewingProgramMax THEN - Status.Error.Id := UINT#718; + Status.Error.Id := UINT#1402; RETURN; END_IF; @@ -393,9 +765,9 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening //Set program IF _progress = 310 THEN - TaskMessenger.ActivateOnCondition(ULINT#610, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#610; + TaskMessenger.Activate( UINT#510, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#510; END_IF; Outputs.ScrewingProgram := _RequiredScrewingProgram; @@ -421,14 +793,14 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening Status.Action.Id := UINT#111; Status.Error.Id := UINT#0; ELSIF SetScrewingProgramTask.ErrorOccured() THEN - Status.Action.Id := UINT#810; - Status.Error.Id := UINT#810; + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; ELSIF SetScrewingProgramTask.AbortTriggered()THEN - Status.Action.Id := UINT#811; - Status.Error.Id := UINT#811; + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; END_IF; - Messenger.ActivateOnCondition(ULINT#810,SetScrewingProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#811,SetScrewingProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10010,SetScrewingProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,SetScrewingProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#112,SetScrewingProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF SetScrewingProgramTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 329 THEN Status.Action.Id := UINT#112; @@ -443,11 +815,11 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening END_IF; IF StartScrewingTask.Execute(THIS) THEN IF _RequiredScrewingProgram < Config.ScrewingProgramMin THEN - Status.Error.Id := UINT#717; + Status.Error.Id := UINT#1401; RETURN; END_IF; IF _RequiredScrewingProgram > Config.ScrewingProgramMax THEN - Status.Error.Id := UINT#718; + Status.Error.Id := UINT#1402; RETURN; END_IF; @@ -486,9 +858,9 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening //Set program IF _progress = 322 THEN - TaskMessenger.ActivateOnCondition(ULINT#622, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#622; + TaskMessenger.Activate( UINT#522, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#522; END_IF; Outputs.ScrewingProgram := _RequiredScrewingProgram; @@ -503,10 +875,9 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening // wait for screwdriver ready IF _progress = 323 THEN - TaskMessenger.ActivateOnCondition(ULINT#623, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - Status.Error.Id := UINT#623; + TaskMessenger.Activate( UINT#523, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#523; END_IF; IF (NOT Inputs.Status.InCycle) THEN @@ -517,10 +888,9 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening // wait for screwdriver ready IF _progress = 324 THEN - TaskMessenger.ActivateOnCondition(ULINT#624, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - Status.Error.Id := UINT#624; + TaskMessenger.Activate( UINT#524, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#524; END_IF; IF (Inputs.Status.Ready ) THEN @@ -531,9 +901,9 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening // start screwing cycle IF _progress = 325 THEN - TaskMessenger.ActivateOnCondition(ULINT#625, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#625; + TaskMessenger.Activate( UINT#525, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#525; END_IF; Outputs.Control.StartCycle := TRUE; @@ -547,9 +917,9 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening // wait for screwing cycle end IF _progress = 326 THEN - TaskMessenger.ActivateOnCondition(ULINT#626, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#626; + TaskMessenger.Activate( UINT#526, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#526; END_IF; IF (NOT Inputs.Status.InCycle ) THEN @@ -561,9 +931,9 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening // wait for screwing cycle end IF _progress = 327 THEN - TaskMessenger.ActivateOnCondition(ULINT#627, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#627; + TaskMessenger.Activate( UINT#527, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#527; END_IF; IF (Inputs.Status.Failed OR Inputs.Status.Passed) THEN @@ -595,14 +965,14 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening Status.Action.Id := UINT#121; Status.Error.Id := UINT#0; ELSIF StartScrewingTask.ErrorOccured() THEN - Status.Action.Id := UINT#820; - Status.Error.Id := UINT#820; + Status.Action.Id := UINT#10020; + Status.Error.Id := UINT#10020; ELSIF StartScrewingTask.AbortTriggered() THEN - Status.Action.Id := UINT#821; - Status.Error.Id := UINT#821; + Status.Action.Id := UINT#10021; + Status.Error.Id := UINT#10021; END_IF; - Messenger.ActivateOnCondition(ULINT#820,StartScrewingTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#821,StartScrewingTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10020,StartScrewingTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10021,StartScrewingTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#122,StartScrewingTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartScrewingTask.RestoreTriggered() AND _progress >= 320 AND _progress <= 339 THEN Status.Action.Id := UINT#122; @@ -621,18 +991,18 @@ NAMESPACE AXOpen.Components.Desoutter.Tightening _data_1[0].%X7 := Outputs.Control.Reset; _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwId_Output_1_byte_1,_data_1); - Messenger.ActivateOnCondition(ULINT#715,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#715; + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; END_IF; _data_1[0] := Outputs.ScrewingProgram; _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwId_Output_1_byte_2,_data_1); - Messenger.ActivateOnCondition(ULINT#716,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#716; + Messenger.Activate(UINT#1232, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1232; RETURN; END_IF; diff --git a/src/components.desoutter.tightening/src/AXOpen.Components.Desoutter.Tightening/AxoCVIC_II/AxoCVICC_II.cs b/src/components.desoutter.tightening/src/AXOpen.Components.Desoutter.Tightening/AxoCVIC_II/AxoCVICC_II.cs index 478b4e1a6..dbf145c84 100644 --- a/src/components.desoutter.tightening/src/AXOpen.Components.Desoutter.Tightening/AxoCVIC_II/AxoCVICC_II.cs +++ b/src/components.desoutter.tightening/src/AXOpen.Components.Desoutter.Tightening/AxoCVIC_II/AxoCVICC_II.cs @@ -44,51 +44,123 @@ private void InitializeMessenger() { new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(50, new AxoMessengerTextItem("Restore has been executed.", "")), + new KeyValuePair(50, new AxoMessengerTextItem("Restore has been executed.","")), + + new KeyValuePair(100, new AxoMessengerTextItem("Reset started.","")), + new KeyValuePair(101, new AxoMessengerTextItem("Reset finished succesfully.","")), + new KeyValuePair(102, new AxoMessengerTextItem("Reset restored.","")), + + new KeyValuePair(110, new AxoMessengerTextItem("Set screwing program started.","")), + new KeyValuePair(111, new AxoMessengerTextItem("Set screwing program finished succesfully.","")), + new KeyValuePair(112, new AxoMessengerTextItem("Set screwing program restored.","")), + + new KeyValuePair(120, new AxoMessengerTextItem("Screwing started.","")), + new KeyValuePair(121, new AxoMessengerTextItem("Screwing finished succesfully.","")), + new KeyValuePair(122, new AxoMessengerTextItem("Screwing restored.","")), + + // General alarm + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwId_Input_1_byte_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hardware configuration error: Unexpected module detected in Slot 1. Expected module: 'ID_MODULE_INPUT1B'." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of hwId_Input_1_byte_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hardware configuration error: Unexpected module detected in Slot 2. Expected module: 'ID_MODULE_INPUT1B'." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of _hwIDhwId_Input_2_word_1_3 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hardware configuration error: Unexpected module detected in Slot 3. Expected module: 'ID_MODULE_INPUT2W'." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of hwId_Input_1_word_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hardware configuration error: Unexpected module detected in Slot 4. Expected module: 'ID_MODULE_INPUT1W'." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of hwId_Input_2_word_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hardware configuration error: Unexpected module detected in Slot 5. Expected module: 'ID_MODULE_INPUT2W'." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of hwId_Input_1_word_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hardware configuration error: Unexpected module detected in Slot 6. Expected module: 'ID_MODULE_INPUT1W'." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of hwId_Output_1_byte_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hardware configuration error: Unexpected module detected in Slot 7. Expected module: 'ID_MODULE_OUTPUT1B'." ,"Check the hardware configuration.")), + + new KeyValuePair(780, new AxoMessengerTextItem("Hw configuration error. Value of hwId_Output_1_byte_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(781, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(782, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(783, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(784, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(785, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(786, new AxoMessengerTextItem("Hardware configuration error: Unexpected module detected in Slot 8. Expected module: 'ID_MODULE_OUTPUT1B'." ,"Check the hardware configuration.")), + + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwId_Input_1_byte_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_Input_1_byte_1` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `hwId_Input_1_byte_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_Input_1_byte_2` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `hwId_Input_2_word_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_Input_2_word_1` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `hwId_Input_1_word_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_Input_1_word_1` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `hwId_Input_2_word_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_Input_2_word_2` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `hwId_Input_1_word_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId_Input_1_word_2` parameter is assigned.")), + + new KeyValuePair(10000, new AxoMessengerTextItem("Reseting the device results finished with error!" ,"Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("Reseting the device results was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10010, new AxoMessengerTextItem("Changing of the screwing program finished with error!" ,"Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("Changing of the screwing program was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("Screwing finished with error!" ,"Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("Screwing was aborted, while not yet completed!" ,"Check the details.")), + + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the hwId_Input_1_byte_1!" ,"Check the hardware configuration.")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the hwId_Input_1_byte_2!" ,"Check the hardware configuration.")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the hwId_Input_2_word_1!" ,"Check the hardware configuration.")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the hwId_Input_1_word_1!" ,"Check the hardware configuration.")), + new KeyValuePair(1205, new AxoMessengerTextItem("Error reading the hwId_Input_2_word_2!" ,"Check the hardware configuration.")), + new KeyValuePair(1206, new AxoMessengerTextItem("Error reading the hwId_Input_1_word_2!" ,"Check the hardware configuration.")), + + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the _hwId_Output_1_byte_1!" ,"Check the hardware configuration.")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the _hwId_Output_1_byte_2!" ,"Check the hardware configuration.")), + + + + new KeyValuePair(1401, new AxoMessengerTextItem("Value of the required screwing program is lower then the minimal value!" ,"Check the value of the required screwing program.")), + new KeyValuePair(1402, new AxoMessengerTextItem("Value of the required screwing program is higher then the maximal value!" ,"Check the value of the required screwing program.")), - new KeyValuePair(100, new AxoMessengerTextItem("Reset started.", "")), - new KeyValuePair(101, new AxoMessengerTextItem("Reset finished succesfully.", "")), - new KeyValuePair(102, new AxoMessengerTextItem("Reset restored.", "")), - - new KeyValuePair(110, new AxoMessengerTextItem("Set screwing program started.", "")), - new KeyValuePair(111, new AxoMessengerTextItem("Set screwing program finished succesfully.", "")), - new KeyValuePair(112, new AxoMessengerTextItem("Set screwing program restored.", "")), - - new KeyValuePair(120, new AxoMessengerTextItem("Screwing started.", "")), - new KeyValuePair(121, new AxoMessengerTextItem("Screwing finished succesfully.", "")), - new KeyValuePair(122, new AxoMessengerTextItem("Screwing restored.", "")), - - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in the`Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId_Input_1_byte_1` has invalid value in the `Run` method!", "Check the call of the `Run` method, if the `hwId_Input_1_byte_1` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("Input variable `hwId_Input_1_byte_2` has invalid value in the `Run` method!", "Check the call of the `Run` method, if the `hwId_Input_1_byte_2` parameter is assigned.")), - new KeyValuePair(703, new AxoMessengerTextItem("Input variable `hwId_Input_2_word_1` has invalid value in the `Run` method!", "Check the call of the `Run` method, if the `hwId_Input_2_word_1` parameter is assigned.")), - new KeyValuePair(704, new AxoMessengerTextItem("Input variable `hwId_Input_1_word_1` has invalid value in the `Run` method!", "Check the call of the `Run` method, if the `hwId_Input_1_word_1` parameter is assigned.")), - new KeyValuePair(705, new AxoMessengerTextItem("Input variable `hwId_Input_2_word_2` has invalid value in the `Run` method!", "Check the call of the `Run` method, if the `hwId_Input_2_word_2` parameter is assigned.")), - new KeyValuePair(706, new AxoMessengerTextItem("Input variable `hwId_Input_1_word_2` has invalid value in the `Run` method!", "Check the call of the `Run` method, if the `hwId_Input_1_word_2` parameter is assigned.")), - new KeyValuePair(707, new AxoMessengerTextItem("Input variable `hwId_Output_1_byte_1` has invalid value in the `Run` method!", "Check the call of the `Run` method, if the `hwId_Output_1_byte_1` parameter is assigned.")), - new KeyValuePair(708, new AxoMessengerTextItem("Input variable `hwId_Output_1_byte_2` has invalid value in the `Run` method!", "Check the call of the `Run` method, if the `hwId_Output_1_byte_2` parameter is assigned.")), - - new KeyValuePair(709, new AxoMessengerTextItem("Error reading the hwId_Input_1_byte_1 in the Execute method!", "Check the value of the hwId_Input_1_byte_1 and reacheability of the device!")), - new KeyValuePair(710, new AxoMessengerTextItem("Error reading the hwId_Input_1_byte_2 in the Execute method!", "Check the value of the hwId_Input_1_byte_2 and reacheability of the device!")), - new KeyValuePair(711, new AxoMessengerTextItem("Error reading the hwId_Input_2_word_1 in the Execute method!", "Check the value of the hwId_Input_2_word_1 and reacheability of the device!")), - new KeyValuePair(712, new AxoMessengerTextItem("Error reading the hwId_Input_1_word_1 in the Execute method!", "Check the value of the hwId_Input_1_word_1 and reacheability of the device!")), - new KeyValuePair(713, new AxoMessengerTextItem("Error reading the hwId_Input_2_word_2 in the Execute method!", "Check the value of the hwId_Input_2_word_2 and reacheability of the device!")), - new KeyValuePair(714, new AxoMessengerTextItem("Error reading the hwId_Input_1_word_2 in the Execute method!", "Check the value of the hwId_Input_1_word_2 and reacheability of the device!")), - - new KeyValuePair(715, new AxoMessengerTextItem("Error writing the hwId_Output_1_byte_1 in the Execute method!", "Check the value of the hwId_Output_1_byte_1 and reacheability of the device!")), - new KeyValuePair(716, new AxoMessengerTextItem("Error writing the hwId_Output_1_byte_2 in the Execute method!", "Check the value of the hwId_Output_1_byte_2 and reacheability of the device!")), - - - - new KeyValuePair(717, new AxoMessengerTextItem("Value of the required screwing program is lower then the minimal value!", "Check the value of the required screwing program.")), - new KeyValuePair(718, new AxoMessengerTextItem("Value of the required screwing program is higher then the maximal value!", "Check the value of the required screwing program.")), - - new KeyValuePair(800, new AxoMessengerTextItem("Reseting the device results finished with error!", "Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("Reseting the device results was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(810, new AxoMessengerTextItem("Changing of the screwing program finished with error!", "Check the details.")), - new KeyValuePair(811, new AxoMessengerTextItem("Changing of the screwing program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(820, new AxoMessengerTextItem("Screwing finished with error!", "Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("Screwing was aborted, while not yet completed!", "Check the details.")), }; @@ -126,45 +198,114 @@ public string ErrorDescription if (errorDescriptionDict.Count == 0) { errorDescriptionDict.Add(0, " "); - errorDescriptionDict.Add(600, "Waiting for the signal Inputs.Status.Failed to be reseted!"); - errorDescriptionDict.Add(601, "Waiting for the signal Inputs.Status.InCycle to be reseted!"); - errorDescriptionDict.Add(602, "Waiting for the signal `Inputs.Status.Ready` to be set!"); - - errorDescriptionDict.Add(610, "Waiting for the value of the `Inputs.ScrewingProgram` to be the same as the value of `Outputs.ScrewingProgram`!"); - - errorDescriptionDict.Add(622, "Waiting for the value of the `Inputs.ScrewingProgram` to be the same as the value of `Outputs.ScrewingProgram`!"); - errorDescriptionDict.Add(623, "Waiting for the signal Inputs.Status.InCycle to be reseted!"); - errorDescriptionDict.Add(624, "Waiting for the signal `Inputs.Status.Ready` to be set!"); - errorDescriptionDict.Add(625, "Waiting for the signal `Inputs.Status.InCycle` to be set!"); - errorDescriptionDict.Add(626, "Waiting for the signal `Inputs.Status.InCycle` to be reseted!"); - errorDescriptionDict.Add(627, "Waiting for the the result bits: One of the signals 'Inputs.Status.Failed' or 'Inputs.Status.Passed' has to be set!"); + errorDescriptionDict.Add(500, "Waiting for the signal Inputs.Status.Failed to be reseted!"); + errorDescriptionDict.Add(501, "Waiting for the signal Inputs.Status.InCycle to be reseted!"); + errorDescriptionDict.Add(502, "Waiting for the signal `Inputs.Status.Ready` to be set!"); + + errorDescriptionDict.Add(510, "Waiting for the value of the `Inputs.ScrewingProgram` to be the same as the value of `Outputs.ScrewingProgram`!"); + + errorDescriptionDict.Add(522, "Waiting for the value of the `Inputs.ScrewingProgram` to be the same as the value of `Outputs.ScrewingProgram`!"); + errorDescriptionDict.Add(523, "Waiting for the signal Inputs.Status.InCycle to be reseted!"); + errorDescriptionDict.Add(524, "Waiting for the signal `Inputs.Status.Ready` to be set!"); + errorDescriptionDict.Add(525, "Waiting for the signal `Inputs.Status.InCycle` to be set!"); + errorDescriptionDict.Add(526, "Waiting for the signal `Inputs.Status.InCycle` to be reseted!"); + errorDescriptionDict.Add(527, "Waiting for the the result bits: One of the signals 'Inputs.Status.Failed' or 'Inputs.Status.Passed' has to be set!"); + + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!"); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)."); + + errorDescriptionDict.Add(710, "Hw configuration error. Value of hwId_Input_1_byte_1 is zero."); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1."); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1."); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1."); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1."); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1."); + errorDescriptionDict.Add(716, "Hardware configuration error: Unexpected module detected in Slot 1. Expected module: 'ID_MODULE_INPUT1B'."); + + errorDescriptionDict.Add(720, "Hw configuration error. Value of hwId_Input_1_byte_2 is zero."); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2."); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2."); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2."); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2."); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2."); + errorDescriptionDict.Add(726, "Hardware configuration error: Unexpected module detected in Slot 2. Expected module: 'ID_MODULE_INPUT1B'."); + + errorDescriptionDict.Add(730, "Hw configuration error. Value of _hwIDhwId_Input_2_word_1_3 is zero."); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3."); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3."); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3."); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3."); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3."); + errorDescriptionDict.Add(736, "Hardware configuration error: Unexpected module detected in Slot 3. Expected module: 'ID_MODULE_INPUT2W'."); + + errorDescriptionDict.Add(740, "Hw configuration error. Value of hwId_Input_1_word_1 is zero."); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4."); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4."); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4."); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4."); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4."); + errorDescriptionDict.Add(746, "Hardware configuration error: Unexpected module detected in Slot 4. Expected module: 'ID_MODULE_INPUT1W'."); + + errorDescriptionDict.Add(750, "Hw configuration error. Value of hwId_Input_2_word_2 is zero."); + errorDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5."); + errorDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5."); + errorDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5."); + errorDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5."); + errorDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5."); + errorDescriptionDict.Add(756, "Hardware configuration error: Unexpected module detected in Slot 5. Expected module: 'ID_MODULE_INPUT2W'."); + + errorDescriptionDict.Add(760, "Hw configuration error. Value of hwId_Input_1_word_2 is zero."); + errorDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6."); + errorDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6."); + errorDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6."); + errorDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6."); + errorDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6."); + errorDescriptionDict.Add(766, "Hardware configuration error: Unexpected module detected in Slot 6. Expected module: 'ID_MODULE_INPUT1W'."); + + errorDescriptionDict.Add(770, "Hw configuration error. Value of hwId_Output_1_byte_1 is zero."); + errorDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7."); + errorDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7."); + errorDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7."); + errorDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7."); + errorDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7."); + errorDescriptionDict.Add(776, "Hardware configuration error: Unexpected module detected in Slot 7. Expected module: 'ID_MODULE_OUTPUT1B'."); + + errorDescriptionDict.Add(780, "Hw configuration error. Value of hwId_Output_1_byte_2 is zero."); + errorDescriptionDict.Add(781, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8."); + errorDescriptionDict.Add(782, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8."); + errorDescriptionDict.Add(783, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8."); + errorDescriptionDict.Add(784, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8."); + errorDescriptionDict.Add(785, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8."); + errorDescriptionDict.Add(786, "Hardware configuration error: Unexpected module detected in Slot 8. Expected module: 'ID_MODULE_OUTPUT1B'."); + + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!"); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1132, "Input variable `hwId_Input_1_byte_1` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1133, "Input variable `hwId_Input_1_byte_2` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1134, "Input variable `hwId_Input_2_word_1` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1135, "Input variable `hwId_Input_1_word_1` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1136, "Input variable `hwId_Input_2_word_2` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1137, "Input variable `hwId_Input_1_word_2` has invalid value in `Run` method!"); + + errorDescriptionDict.Add(1201, "Error reading the hwId_Input_1_byte_1!"); + errorDescriptionDict.Add(1202, "Error reading the hwId_Input_1_byte_2!"); + errorDescriptionDict.Add(1203, "Error reading the hwId_Input_2_word_1!"); + errorDescriptionDict.Add(1204, "Error reading the hwId_Input_1_word_1!"); + errorDescriptionDict.Add(1205, "Error reading the hwId_Input_2_word_2!"); + errorDescriptionDict.Add(1206, "Error reading the hwId_Input_1_word_2!"); + errorDescriptionDict.Add(1231, "Error writing the _hwId_Output_1_byte_1!"); + errorDescriptionDict.Add(1232, "Error writing the _hwId_Output_1_byte_2!"); + + errorDescriptionDict.Add(1401, "Value of the required screwing program is lower then the minimal value!"); + errorDescriptionDict.Add(1402, "Value of the required screwing program is higher then the maximal value!"); - - errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in the`Run` method!"); - errorDescriptionDict.Add(701, "Input variable `hwId_Input_1_byte_1` has invalid value in the `Run` method!"); - errorDescriptionDict.Add(702, "Input variable `hwId_Input_1_byte_2` has invalid value in the `Run` method!"); - errorDescriptionDict.Add(703, "Input variable `hwId_Input_2_word_1` has invalid value in the `Run` method!"); - errorDescriptionDict.Add(704, "Input variable `hwId_Input_1_word_1` has invalid value in the `Run` method!"); - errorDescriptionDict.Add(705, "Input variable `hwId_Input_2_word_2` has invalid value in the `Run` method!"); - errorDescriptionDict.Add(706, "Input variable `hwId_Input_1_word_2` has invalid value in the `Run` method!"); - errorDescriptionDict.Add(707, "Input variable `hwId_Output_1_byte_1` has invalid value in the `Run` method!"); - errorDescriptionDict.Add(708, "Input variable `hwId_Output_1_byte_2` has invalid value in the `Run` method!"); - errorDescriptionDict.Add(709, "Error reading the hwId_Input_1_byte_1 in the Execute method!"); - errorDescriptionDict.Add(710, "Error reading the hwId_Input_1_byte_2 in the Execute method!"); - errorDescriptionDict.Add(711, "Error reading the hwId_Input_2_word_1 in the Execute method!"); - errorDescriptionDict.Add(712, "Error reading the hwId_Input_1_word_1 in the Execute method!"); - errorDescriptionDict.Add(713, "Error reading the hwId_Input_2_word_2 in the Execute method!"); - errorDescriptionDict.Add(714, "Error reading the hwId_Input_1_word_2 in the Execute method!"); - errorDescriptionDict.Add(715, "Error writing the hwId_Output_1_byte_1 in the Execute method!"); - errorDescriptionDict.Add(716, "Error writing the hwId_Output_1_byte_2 in the Execute method!"); - errorDescriptionDict.Add(717, "Value of the required screwing program is lower then the minimal value!"); - errorDescriptionDict.Add(718, "Value of the required screwing program is higher then the maximal value!"); - errorDescriptionDict.Add(800, "Reseting the device results finished with error!"); - errorDescriptionDict.Add(801, "Reseting the device results was aborted, while not yet completed!"); - errorDescriptionDict.Add(810, "Changing of the screwing program finished with error!"); - errorDescriptionDict.Add(811, "Changing of the screwing program was aborted, while not yet completed!"); - errorDescriptionDict.Add(820, "Screwing finished with error!"); - errorDescriptionDict.Add(821, "Screwing was aborted, while not yet completed!"); + errorDescriptionDict.Add(10000, "Reseting the device results finished with error!"); + errorDescriptionDict.Add(10001, "Reseting the device results was aborted, while not yet completed!"); + errorDescriptionDict.Add(10010, "Changing of the screwing program finished with error!"); + errorDescriptionDict.Add(10011, "Changing of the screwing program was aborted, while not yet completed!"); + errorDescriptionDict.Add(10020, "Screwing finished with error!"); + errorDescriptionDict.Add(10021, "Screwing was aborted, while not yet completed!"); } string errorDescription = " "; @@ -247,13 +388,12 @@ public string ActionDescription actionDescriptionDict.Add(121, "Screwing finished succesfully."); actionDescriptionDict.Add(122, "Screwing restored."); - actionDescriptionDict.Add(800, "Reseting the device finished with error!"); - actionDescriptionDict.Add(801, "Reseting the device was aborted, while not yet completed!"); - actionDescriptionDict.Add(810, "Changing of the screwing program finished with error!"); - actionDescriptionDict.Add(811, "Changing of the screwing program was aborted, while not yet completed!"); - actionDescriptionDict.Add(820, "Screwing finished with error!"); - actionDescriptionDict.Add(821, "Screwing was aborted, while not yet completed!"); - + actionDescriptionDict.Add(10000, "Reseting the device finished with error!"); + actionDescriptionDict.Add(10001, "Reseting the device was aborted, while not yet completed!"); + actionDescriptionDict.Add(10010, "Changing of the screwing program finished with error!"); + actionDescriptionDict.Add(10011, "Changing of the screwing program was aborted, while not yet completed!"); + actionDescriptionDict.Add(10020, "Screwing finished with error!"); + actionDescriptionDict.Add(10021, "Screwing was aborted, while not yet completed!"); } diff --git a/src/components.drives/app/apax.yml b/src/components.drives/app/apax.yml index 3a17e3752..c25a696cb 100644 --- a/src/components.drives/app/apax.yml +++ b/src/components.drives/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.drives" +name: "app_axopen.components.drives" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Drives" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,138 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + diff --git a/src/components.drives/app/src/Documentation/AxoDriveExample.st b/src/components.drives/app/src/Documentation/AxoDriveExample.st index c3a0a3c9b..85d8f9689 100644 --- a/src/components.drives/app/src/Documentation/AxoDriveExample.st +++ b/src/components.drives/app/src/Documentation/AxoDriveExample.st @@ -16,7 +16,6 @@ NAMESPACE AXOpen.Components.Drives /// METHOD PROTECTED OVERRIDE UpdateInputs : BOOL VAR_INPUT - refAxisIn : REF_TO ARRAY[*] OF BYTE; // Reference to the input data of the axis AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; END_VAR ; @@ -28,7 +27,6 @@ NAMESPACE AXOpen.Components.Drives METHOD PROTECTED OVERRIDE UpdateOutputs : BOOL VAR_INPUT AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; - refAxisOut : REF_TO ARRAY[*] OF BYTE; // Reference to the output data of the axis END_VAR ; END_METHOD @@ -43,7 +41,7 @@ NAMESPACE AXOpen.Components.Drives Status : BOOL; // Effective state of the power stage Valid : BOOL; // If true, a valid set of outputs is available at the method Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -69,7 +67,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -92,7 +90,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -114,7 +112,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -140,7 +138,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -166,7 +164,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -195,7 +193,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -220,7 +218,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -251,7 +249,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -274,7 +272,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // ‘Position’ has new value Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -295,7 +293,7 @@ NAMESPACE AXOpen.Components.Drives Enabled : BOOL; // Signals that the override factor(s) is (are) set successfully Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -314,7 +312,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : LINT; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR ; @@ -333,7 +331,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : REAL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR ; @@ -352,7 +350,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR ; @@ -373,7 +371,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -393,7 +391,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -413,7 +411,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -432,7 +430,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected input signal END_VAR ; @@ -452,7 +450,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected output signal END_VAR ; @@ -473,7 +471,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Writing of the output signal value is done Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -490,7 +488,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Position : LREAL; // New absolute position (in axis’ unit [u]) END_VAR ; @@ -510,7 +508,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Velocity : LREAL; // The value of the actual velocity (in axis’ unit [u/s]) END_VAR ; @@ -530,7 +528,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Torque : LREAL; // The value of the actual torque or force (in technical units) END_VAR ; @@ -548,7 +546,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ErrorStop : BOOL; // See state diagram Disabled : BOOL; // See state diagram Stopping : BOOL; // See state diagram @@ -574,7 +572,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ConstantVelocity: BOOL; // Velocity is constant. Velocity may be 0. For the actual value a window is applicable (window is vendor specific) Accelerating : BOOL; // Increasing the absolute value of the velocity Decelerating : BOOL; // Decreasing the absolute value of the velocity @@ -597,7 +595,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification HomeAbsSwitch : BOOL; // Digital home switch input is active LimitSwitchPos : BOOL; // Positive hardware end switch is active LimitSwitchNeg : BOOL; // Negative hardware end switch is active @@ -627,7 +625,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification AxisErrorID : DWORD; // The value of the axis error. These values are vendor specific END_VAR ; @@ -646,14 +644,14 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // ‘Standstill’ or ‘Disabled’ state is reached Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD METHOD PUBLIC OVERRIDE MC_MoveRelative VAR_INPUT - AxisRef : IAxoAxisReference; + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; Execute : BOOL; ContinuousUpdate : BOOL; Distance : LREAL; @@ -668,7 +666,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; CommandAborted : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; @@ -691,7 +689,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; CommandAborted : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; diff --git a/src/components.drives/app/src/Documentation/Component_1.st b/src/components.drives/app/src/Documentation/Component_1.st index 3ee4eb578..3466996a8 100644 --- a/src/components.drives/app/src/Documentation/Component_1.st +++ b/src/components.drives/app/src/Documentation/Component_1.st @@ -12,8 +12,7 @@ NAMESPACE AXOpen.Components.Drives // VAR PUBLIC - AxisIn : ARRAY[0..10] OF BYTE; // Input data of the axis - AxisOut : ARRAY[0..10] OF BYTE; // Output data of the axis + AxisRef : AxoDriveAxisReferenceExample; Enable : BOOL; // As long as ‘Enable’ is true, power is being enabled. EnablePositive : BOOL; // As long as ‘Enable’ is true, this permits motion in positive direction EnableNegative : BOOL; // As long as ‘Enable’ is true, this permits motion in negative direction @@ -28,7 +27,7 @@ NAMESPACE AXOpen.Components.Drives SUPER.Run(parent); // - AxoDrive_.Run(THIS, REF(AxisIn), REF(AxisOut), Enable, EnablePositive, EnableNegative); + AxoDrive_.Run(THIS, AxisRef, Enable, EnablePositive, EnableNegative); // THIS.UseInSequencer(); diff --git a/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDriveAxisRefExample.st b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDriveAxisRefExample.st new file mode 100644 index 000000000..23ca43fdb --- /dev/null +++ b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDriveAxisRefExample.st @@ -0,0 +1,41 @@ +USING AXOpen.Core; +USING AXOpen.Messaging.Static; +USING AXOpen.Messaging; +USING AXOpen.Core; +USING AXOpen.Components.Abstractions; +USING AXOpen.Components.Abstractions.Drives; + + +NAMESPACE AXOpen.Components.Drives + {S7.extern=ReadWrite} + CLASS AxoDriveAxisReferenceExample IMPLEMENTS AXOpen.Components.Abstractions.Drives.IAxoAxisReference + VAR PUBLIC // HWin + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("HW inputs")]} + {#ix-attr:[ReadOnly()]} + Inputs : AxoDrive_Status_Example; + END_VAR + VAR PUBLIC // HWout + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("HW outputs")]} + {#ix-attr:[ReadOnly()]} + Outputs : AxoDrive_Control_Example; + END_VAR + VAR PUBLIC // HWIDs + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("HWids")]} + {#ix-attr:[ReadOnly()]} + HWIDs : AxoDrive_HWIDs_Example; + END_VAR + VAR PUBLIC // Data + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Data")]} + {#ix-attr:[ReadOnly()]} + Data : AxoDrive_Data_Example; + END_VAR + VAR PUBLIC + Config : AXOpen.Components.Drives.AxoDrive_Config; + Status : AXOpen.Components.Drives.AxoDrive_Status; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_Control_Example.st b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_Control_Example.st new file mode 100644 index 000000000..489843739 --- /dev/null +++ b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_Control_Example.st @@ -0,0 +1,22 @@ +NAMESPACE AXOpen.Components.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Tabs)]} + CLASS PUBLIC AxoDrive_Control_Example + VAR PUBLIC + {#ix-set:AttributeName = "<#DriveControlWord#>"} + DriveControlWord : WORD; + {#ix-set:AttributeName = "<#CommandPosition#>"} + CommandPosition : DINT; + {#ix-set:AttributeName = "<#CommandVelocity#>"} + CommandVelocity : DINT; + {#ix-set:AttributeName = "<#CommandAcceleration#>"} + CommandAcceleration : DINT; + {#ix-set:AttributeName = "<#CommandDecceleration#>"} + CommandDecceleration : DINT; + {#ix-set:AttributeName = "<#CommandTorque#>"} + CommandTorque : INT; + {#ix-set:AttributeName = "<#CommandJerk#>"} + CommandJerk : DINT; + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_Data_Example.st b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_Data_Example.st new file mode 100644 index 000000000..cfb873e9a --- /dev/null +++ b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_Data_Example.st @@ -0,0 +1,11 @@ +NAMESPACE AXOpen.Components.Drives + {S7.extern=ReadWrite} + CLASS AxoDrive_Data_Example + VAR PUBLIC + Cycle : ULINT; + OverrideVelocityFactor : LREAL := 1.0; //LREAL value to be written + OverrideAccelerationFactor : LREAL := 1.0; //LREAL value to be written + OverrideJerkFactor : LREAL := 1.0; //LREAL value to be written + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_HWIDs_Example.st b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_HWIDs_Example.st new file mode 100644 index 000000000..c3ec6b257 --- /dev/null +++ b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_HWIDs_Example.st @@ -0,0 +1,37 @@ +NAMESPACE AXOpen.Components.Drives + {S7.extern=ReadWrite} + CLASS AxoDrive_HWIDs_Example + VAR PUBLIC + {#ix-set:AttributeName = "<#Hardware ID Device#>"} + HW_Device : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Outputs' module#>"} + HW_Outputs : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Inputs' module#>"} + HW_Inputs : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0134_0_0__Servodrive_profile__Control_word' submodule#>"} + HW_S_0_0134_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0282_0_0__Drive_controlled_positioning__Command_value' submodule#>"} + HW_S_0_0282_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0259_0_0__Positioning_profile__Profile_velocity' submodule#>"} + HW_S_0_0259_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0260_0_0__Positioning_profile__Acceleration' submodule#>"} + HW_S_0_0260_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0359_0_0__Positioning_profile__Deceleration' submodule#>"} + HW_S_0_0359_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0080_0_0__Torque_force_command_value' submodule#>"} + HW_S_0_0080_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0193_0_0__Positioning_jerk' submodule#>"} + HW_S_0_0193_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0135_0_0__Servodrive_profile__Status_word' submodule#>"} + HW_S_0_0135_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0386_0_0__Position_controller__Position_actual_value' submodule#>"} + HW_S_0_0386_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0535_0_0__Velocity_controller__Velocity_actual_value' submodule#>"} + HW_S_0_0535_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register' submodule#>"} + HW_S_0_0390_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0084_0_0__Torque_force_feedback_value' submodule#>"} + HW_S_0_0084_0_0 : UINT; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_Status_Example.st b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_Status_Example.st new file mode 100644 index 000000000..abcc4215a --- /dev/null +++ b/src/components.drives/app/src/Documentation/TypesStructuresAndEnums/AxoDrive_Status_Example.st @@ -0,0 +1,21 @@ +NAMESPACE AXOpen.Components.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Tabs)]} + CLASS PUBLIC AxoDrive_Status_Example + VAR PUBLIC + {#ix-set:AttributeName = "<#DriveStatusWord#>"} + DriveStatusWord : WORD; + {#ix-set:AttributeName = "<#ActualPosition#>"} + ActualPosition : DINT; + {#ix-set:AttributeName = "<#ActualVelocity#>"} + ActualVelocity : DINT; + {#ix-set:AttributeName = "<#DiagnosticMessage#>"} + DiagnosticMessage : DWORD; + {#ix-set:AttributeName = "<#ActualTorque#>"} + ActualTorque : INT; + END_VAR + END_CLASS +END_NAMESPACE + + + diff --git a/src/components.drives/app/src/Sandbox/SandboxContext.st b/src/components.drives/app/src/Sandbox/SandboxContext.st index 92f3d668a..f702a028e 100644 --- a/src/components.drives/app/src/Sandbox/SandboxContext.st +++ b/src/components.drives/app/src/Sandbox/SandboxContext.st @@ -2,11 +2,10 @@ NAMESPACE AXOpen.Components.Drives {S7.extern=ReadWrite} CLASS SandboxContext EXTENDS AXOpen.Core.AxoContext VAR PUBLIC - _manualControl : BOOL; - PlcInputs : ARRAY [0..10] OF BYTE; - PlcOutputs : ARRAY [0..10] OF BYTE; - _rootObject : AxoObject; - _testDrive : AXOpen.Components.Drives.AxoDriveExample; + _manualControl : BOOL; + _AxisRef : AxoDriveAxisReferenceExample; + _rootObject : AxoObject; + _testDrive : AXOpen.Components.Drives.AxoDriveExample; END_VAR @@ -16,8 +15,7 @@ NAMESPACE AXOpen.Components.Drives _testDrive.ActivateManualControl(); END_IF; _testDrive.Run(parent := _rootObject, - refAxisIn := REF(PlcInputs), - refAxisOut := REF(PlcOutputs), + AxisRef := _AxisRef, Enable := TRUE, EnablePositive := TRUE, EnableNegative := TRUE); diff --git a/src/components.drives/ctrl/apax.yml b/src/components.drives/ctrl/apax.yml index e04711b20..aa729bb2b 100644 --- a/src/components.drives/ctrl/apax.yml +++ b/src/components.drives/ctrl/apax.yml @@ -13,24 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.io": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" +publicKeys: + "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.drives/ctrl/src/AxoDrives/AxoDrive.st b/src/components.drives/ctrl/src/AxoDrives/AxoDrive.st index ed4a9ad0b..6af9728a1 100644 --- a/src/components.drives/ctrl/src/AxoDrives/AxoDrive.st +++ b/src/components.drives/ctrl/src/AxoDrives/AxoDrive.st @@ -1,3 +1,4 @@ +USING AXOpen.Components.Abstractions.Drives; USING AXOpen.Core; USING AXOpen.Messaging.Static; USING AXOpen.Messaging; @@ -7,7 +8,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[Container(Layout.Wrap)]} {S7.extern=ReadWrite} CLASS PUBLIC ABSTRACT AxoDrive EXTENDS AXOpen.Core.AxoComponent IMPLEMENTS AXOpen.Components.Abstractions.Drives.IAxoDrive - VAR PUBLIC //HEADER + VAR PUBLIC //HEADER {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[ComponentHeader()]} {#ix-attr:[ReadOnly()]} @@ -53,7 +54,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Administrative")]} {#ix-set:AttributeName = "<#Power error ID#>"} {#ix-attr:[ReadOnly()]} - AxoPower_ErrorID : WORD; + AxoPower_ErrorID : DINT; //***********Stop********************************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -89,7 +90,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Administrative")]} {#ix-set:AttributeName = "<#Stop error ID#>"} {#ix-attr:[ReadOnly()]} - AxoStop_ErrorID : WORD; + AxoStop_ErrorID : DINT; //***********Halt********************************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -125,7 +126,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Administrative")]} {#ix-set:AttributeName = "<#Halt error ID#>"} {#ix-attr:[ReadOnly()]} - AxoHalt_ErrorID : WORD; + AxoHalt_ErrorID : DINT; //***********Home********************************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -162,7 +163,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Administrative")]} {#ix-set:AttributeName = "<#Home error ID#>"} {#ix-attr:[ReadOnly()]} - AxoHome_ErrorID : WORD; + AxoHome_ErrorID : DINT; {#ix-attr:[ComponentDetails("Administrative")]} {#ix-set:AttributeName = "<#Home done#>"} {#ix-attr:[ReadOnly()]} @@ -229,7 +230,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Discrete motion")]} {#ix-set:AttributeName = "<#Move absolute error ID#>"} {#ix-attr:[ReadOnly()]} - AxoMoveAbsolute_ErrorID : WORD; + AxoMoveAbsolute_ErrorID : DINT; //***********MoveRelative************************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -277,7 +278,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Discrete motion")]} {#ix-set:AttributeName = "<#Move relative error ID#>"} {#ix-attr:[ReadOnly()]} - AxoMoveRelative_ErrorID : WORD; + AxoMoveRelative_ErrorID : DINT; //***********MoveAdditive************************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -325,7 +326,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Discrete motion")]} {#ix-set:AttributeName = "<#Move additive error ID#>"} {#ix-attr:[ReadOnly()]} - AxoMoveAdditive_ErrorID : WORD; + AxoMoveAdditive_ErrorID : DINT; //***********MoveVelocity************************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -373,7 +374,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Continuous motion")]} {#ix-set:AttributeName = "<#Move velocity error ID#>"} {#ix-attr:[ReadOnly()]} - AxoMoveVelocity_ErrorID : WORD; + AxoMoveVelocity_ErrorID : DINT; //***********TorqueControl************************ {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -430,7 +431,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Continuous motion")]} {#ix-set:AttributeName = "<#Torque control error ID#>"} {#ix-attr:[ReadOnly()]} - AxoTorqueControl_ErrorID : WORD; + AxoTorqueControl_ErrorID : DINT; //***********SetPosition************************** {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -461,7 +462,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Administrative")]} {#ix-set:AttributeName = "<#Set position error ID#>"} {#ix-attr:[ReadOnly()]} - AxoSetPosition_ErrorID : WORD; + AxoSetPosition_ErrorID : DINT; //***********SetOverride************************** {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -492,7 +493,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Administrative")]} {#ix-set:AttributeName = "<#Set override error ID#>"} {#ix-attr:[ReadOnly()]} - AxoSetOverride_ErrorID : WORD; + AxoSetOverride_ErrorID : DINT; //***********ReadParameter************************ {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -517,7 +518,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Parametrization")]} {#ix-set:AttributeName = "<#Read parameter error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadParameter_ErrorID : WORD; + AxoReadParameter_ErrorID : DINT; {#ix-attr:[ComponentDetails("Parametrization")]} {#ix-set:AttributeName = "<#Read parameter value#>"} {#ix-attr:[ReadOnly()]} @@ -546,7 +547,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Parametrization")]} {#ix-set:AttributeName = "<#Read real parameter error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadRealParameter_ErrorID : WORD; + AxoReadRealParameter_ErrorID : DINT; {#ix-attr:[ComponentDetails("Parametrization")]} {#ix-set:AttributeName = "<#Read real parameter value#>"} {#ix-attr:[ReadOnly()]} @@ -575,7 +576,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Parametrization")]} {#ix-set:AttributeName = "<#Read bool parameter error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadBoolParameter_ErrorID : WORD; + AxoReadBoolParameter_ErrorID : DINT; {#ix-attr:[ComponentDetails("Parametrization")]} {#ix-set:AttributeName = "<#Read bool parameter value#>"} {#ix-attr:[ReadOnly()]} @@ -610,7 +611,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Parametrization")]} {#ix-set:AttributeName = "<#Write parameter error ID#>"} {#ix-attr:[ReadOnly()]} - AxoWriteParameter_ErrorID : WORD; + AxoWriteParameter_ErrorID : DINT; //***********WriteRealParameter******************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -641,7 +642,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Parametrization")]} {#ix-set:AttributeName = "<#Write real parameter error ID#>"} {#ix-attr:[ReadOnly()]} - AxoWriteRealParameter_ErrorID : WORD; + AxoWriteRealParameter_ErrorID : DINT; //***********WriteBoolParameter******************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -672,7 +673,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Parametrization")]} {#ix-set:AttributeName = "<#Write bool parameter error ID#>"} {#ix-attr:[ReadOnly()]} - AxoWriteBoolParameter_ErrorID : WORD; + AxoWriteBoolParameter_ErrorID : DINT; //***********ReadDigitalInput********************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -697,7 +698,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Drive IO")]} {#ix-set:AttributeName = "<#Read digital input error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadDigitalInput_ErrorID : WORD; + AxoReadDigitalInput_ErrorID : DINT; {#ix-attr:[ComponentDetails("Drive IO")]} {#ix-set:AttributeName = "<#Read digital input value#>"} {#ix-attr:[ReadOnly()]} @@ -726,7 +727,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Drive IO")]} {#ix-set:AttributeName = "<#Read digital output error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadDigitalOutput_ErrorID : WORD; + AxoReadDigitalOutput_ErrorID : DINT; {#ix-attr:[ComponentDetails("Drive IO")]} {#ix-set:AttributeName = "<#Read digital output value#>"} {#ix-attr:[ReadOnly()]} @@ -761,7 +762,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Drive IO")]} {#ix-set:AttributeName = "<#Write digital output error ID#>"} {#ix-attr:[ReadOnly()]} - AxoWriteDigitalOutput_ErrorID : WORD; + AxoWriteDigitalOutput_ErrorID : DINT; //***********ReadActualPosition******************* {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -783,7 +784,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read actual position error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadActualPosition_ErrorID : WORD; + AxoReadActualPosition_ErrorID : DINT; {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read actual position value#>"} {#ix-attr:[ReadOnly()]} @@ -809,7 +810,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read actual velocity error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadActualVelocity_ErrorID : WORD; + AxoReadActualVelocity_ErrorID : DINT; {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read actual velocity value#>"} {#ix-attr:[ReadOnly()]} @@ -835,7 +836,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read actual torque error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadActualTorque_ErrorID : WORD; + AxoReadActualTorque_ErrorID : DINT; {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read actual torque value#>"} {#ix-attr:[ReadOnly()]} @@ -861,7 +862,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read status error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadStatus_ErrorID : WORD; + AxoReadStatus_ErrorID : DINT; {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read status error stop#>"} {#ix-attr:[ReadOnly()]} @@ -918,7 +919,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read motion state error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadMotionState_ErrorID : WORD; + AxoReadMotionState_ErrorID : DINT; {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read motion state constant velocity#>"} {#ix-attr:[ReadOnly()]} @@ -960,7 +961,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read axis info error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadAxisInfo_ErrorID : WORD; + AxoReadAxisInfo_ErrorID : DINT; {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read axis info home absolute switch#>"} {#ix-attr:[ReadOnly()]} @@ -1018,7 +1019,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read axis error error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReadAxisError_ErrorID : WORD; + AxoReadAxisError_ErrorID : DINT; {#ix-attr:[ComponentDetails("Read values")]} {#ix-set:AttributeName = "<#Read axis error axis error ID#>"} {#ix-attr:[ReadOnly()]} @@ -1044,7 +1045,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Administrative")]} {#ix-set:AttributeName = "<#Reset error ID#>"} {#ix-attr:[ReadOnly()]} - AxoReset_ErrorID : WORD; + AxoReset_ErrorID : DINT; //***********Jog********************************** {#ix-attr:[Container(Layout.UniformGrid)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} @@ -1092,7 +1093,7 @@ NAMESPACE AXOpen.Components.Drives {#ix-attr:[ComponentDetails("Jog")]} {#ix-set:AttributeName = "<#Jog error ID#>"} {#ix-attr:[ReadOnly()]} - AxoJog_ErrorID : WORD; + AxoJog_ErrorID : DINT; {#ix-attr:[ComponentDetails("Jog")]} {#ix-set:AttributeName = "<#Jog aborted#>"} {#ix-attr:[ReadOnly()]} @@ -1106,24 +1107,14 @@ NAMESPACE AXOpen.Components.Drives DriveConfig : AxoDrive_Config; END_VAR - VAR PUBLIC //STATUS - {#ix-attr:[Container(Layout.Stack)]} - {#ix-attr:[ComponentDetails("Status")]} - {#ix-attr:[ReadOnly()]} - DriveStatus : AxoDrive_Status; - Messenger : AXOpen.Messaging.Static.AxoMessenger; - TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; + VAR PROTECTED + MessageCodeFromMC : ULINT; + ErrorFromMC : BOOL; END_VAR - VAR PRIVATE - _AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; _movementDisabled : BOOL; - _messageCode : ULINT; _lastMessageCode : ULINT; _disabledDuringMovement : BOOL; - _error : BOOL; - _warning : BOOL; - _category : AXOpen.Messaging.eAxoMessageCategory; _movementInPositiveDirection : BOOL; _movementInNegativeDirection : BOOL; //***********Stop********************************* @@ -1231,29 +1222,25 @@ NAMESPACE AXOpen.Components.Drives METHOD PUBLIC Run VAR_INPUT parent : IAxoObject; - refAxisIn : REF_TO ARRAY[*] OF BYTE; // Reference to the input data of the axis - refAxisOut : REF_TO ARRAY[*] OF BYTE; // Reference to the output data of the axis + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; Enable : BOOL; // As long as ‘Enable’ is true, power is being enabled. EnablePositive : BOOL; // As long as ‘Enable’ is true, this permits motion in positive direction EnableNegative : BOOL; // As long as ‘Enable’ is true, this permits motion in negative direction END_VAR - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - IF parent = NULL THEN - DriveStatus.Error.Id := UINT#700; RETURN; END_IF; - SUPER.Run(parent); - - IF NOT THIS.IsValidReferences(refAxisIn,refAxisOut) THEN + IF AxisRef = NULL THEN RETURN; END_IF; - - THIS.UpdateInputs(refAxisIn,_AxisRef); - THIS.Execute(_AxisRef,Enable,EnablePositive,EnableNegative); - THIS.UpdateOutputs(_AxisRef,refAxisIn); + + SUPER.Run(parent); + + THIS.UpdateInputs(AxisRef); + THIS.Execute(AxisRef,Enable,EnablePositive,EnableNegative); + THIS.UpdateOutputs(AxisRef); END_METHOD @@ -1265,42 +1252,6 @@ NAMESPACE AXOpen.Components.Drives EnableNegative : BOOL; // As long as ‘Enable’ is true, this permits motion in negative direction END_VAR - Messenger.Serve(THIS); - TaskMessenger.Serve(THIS); -// THIS SHOULD BE PROBABLE REMOVED => - // RestoreTask.Run(THIS); - // AxoPower_Task.Run(THIS); - // AxoStop_Task.Run(THIS); - // AxoHalt_Task.Run(THIS); - // AxoHome_Task.Run(THIS); - // AxoMoveAbsolute_Task.Run(THIS); - // AxoMoveRelative_Task.Run(THIS); - // AxoMoveAdditive_Task.Run(THIS); - // AxoMoveVelocity_Task.Run(THIS); - // AxoTorqueControl_Task.Run(THIS); - // AxoSetPosition_Task.Run(THIS); - // AxoSetOverride_Task.Run(THIS); - // AxoReadParameter_Task.Run(THIS); - // AxoReadRealParameter_Task.Run(THIS); - // AxoReadBoolParameter_Task.Run(THIS); - // AxoWriteParameter_Task.Run(THIS); - // AxoWriteRealParameter_Task.Run(THIS); - // AxoWriteBoolParameter_Task.Run(THIS); - // AxoReadDigitalInput_Task.Run(THIS); - // AxoReadDigitalOutput_Task.Run(THIS); - // AxoWriteDigitalOutput_Task.Run(THIS); - // AxoReadActualPosition_Task.Run(THIS); - // AxoReadActualVelocity_Task.Run(THIS); - // AxoReadActualTorque_Task.Run(THIS); - // AxoReadStatus_Task.Run(THIS); - // AxoReadMotionState_Task.Run(THIS); - // AxoReadAxisInfo_Task.Run(THIS); - // AxoReadAxisError_Task.Run(THIS); - // AxoReset_Task.Run(THIS); - // AxoJogPositive.Run(THIS); - // AxoJogNegative.Run(THIS); -// <= THIS SHOULD BE PROBABLE REMOVED - //*************RESTORE********************** RestoreTask.IsDisabled := FALSE; IF RestoreTask.Execute(THIS) THEN @@ -1592,6 +1543,9 @@ NAMESPACE AXOpen.Components.Drives AxoMoveVelocity_Task.Abort(); END_IF; END_IF; + IF AxoMoveVelocity_Task.RestoreTriggered() OR AxoMoveVelocity_Task.AbortTriggered() THEN; + AxoMoveVelocity_InVelocity := FALSE; + END_IF; //****************************************** //*************AXO_TORQUE_CONTROL*********** @@ -1636,6 +1590,9 @@ NAMESPACE AXOpen.Components.Drives AxoTorqueControl_Task.Abort(); END_IF; END_IF; + IF AxoTorqueControl_Task.RestoreTriggered() OR AxoTorqueControl_Task.AbortTriggered() THEN; + AxoTorqueControl_InTorque := FALSE; + END_IF; //****************************************** IF DriveState = eAxoDriveState#ContinuousMotion AND (ActualVelocity > 0.5 AND NOT EnablePositive OR ActualVelocity < -0.5 AND NOT EnableNegative) THEN _disabledDuringMovement := TRUE; @@ -1689,6 +1646,10 @@ NAMESPACE AXOpen.Components.Drives AxoReadParameter_Error, AxoReadParameter_ErrorID, AxoReadParameter_Value); + IF AxoReadParameter_Task.IsSwitchedOff() THEN + AxoReadParameter_Valid := FALSE; + AxoReadParameter_Value := LINT#0; + END_IF; //****************************************** //*************AXO_READ_REAL_PARAMETER****** @@ -1702,6 +1663,10 @@ NAMESPACE AXOpen.Components.Drives AxoReadRealParameter_Error, AxoReadRealParameter_ErrorID, AxoReadRealParameter_Value); + IF AxoReadRealParameter_Task.IsSwitchedOff() THEN + AxoReadRealParameter_Valid := FALSE; + AxoReadRealParameter_Value := REAL#0.0; + END_IF; //****************************************** //*************AXO_READ_BOOL_PARAMETER****** @@ -1715,6 +1680,10 @@ NAMESPACE AXOpen.Components.Drives AxoReadBoolParameter_Error, AxoReadBoolParameter_ErrorID, AxoReadBoolParameter_Value); + IF AxoReadBoolParameter_Task.IsSwitchedOff() THEN + AxoReadBoolParameter_Valid := FALSE; + AxoReadBoolParameter_Value := FALSE; + END_IF; //****************************************** //*************AXO_WRITE_PARAMETER********** @@ -1779,6 +1748,10 @@ NAMESPACE AXOpen.Components.Drives AxoReadDigitalInput_Error, AxoReadDigitalInput_ErrorID, AxoReadDigitalInput_Value); + IF AxoReadDigitalInput_Task.IsSwitchedOff() THEN + AxoReadDigitalInput_Valid := FALSE; + AxoReadDigitalInput_Value := FALSE; + END_IF; //****************************************** //*************AXO_READ_DIGITAL_OUTPUT****** @@ -1792,6 +1765,10 @@ NAMESPACE AXOpen.Components.Drives AxoReadDigitalOutput_Error, AxoReadDigitalOutput_ErrorID, AxoReadDigitalOutput_Value); + IF AxoReadDigitalOutput_Task.IsSwitchedOff() THEN + AxoReadDigitalOutput_Valid := FALSE; + AxoReadDigitalOutput_Value := FALSE; + END_IF; //****************************************** //*************AXO_WRITE_DIGITAL_OUTPUT***** @@ -1821,6 +1798,10 @@ NAMESPACE AXOpen.Components.Drives AxoReadActualPosition_Error, AxoReadActualPosition_ErrorID, AxoReadActualPosition_Value); + IF AxoReadActualPosition_Task.IsSwitchedOff() THEN + AxoReadActualPosition_Valid := FALSE; + AxoReadActualPosition_Value := LREAL#0.0; + END_IF; //****************************************** //*************AXO_READ_ACTUAL_VELOCITY***** @@ -1833,6 +1814,10 @@ NAMESPACE AXOpen.Components.Drives AxoReadActualVelocity_Error, AxoReadActualVelocity_ErrorID, AxoReadActualVelocity_Value); + IF AxoReadActualVelocity_Task.IsSwitchedOff() THEN + AxoReadActualVelocity_Valid := FALSE; + AxoReadActualVelocity_Value := LREAL#0.0; + END_IF; //****************************************** //*************AXO_READ_ACTUAL_TORQUE******* @@ -1845,6 +1830,10 @@ NAMESPACE AXOpen.Components.Drives AxoReadActualTorque_Error, AxoReadActualTorque_ErrorID, AxoReadActualTorque_Value); + IF AxoReadActualTorque_Task.IsSwitchedOff() THEN + AxoReadActualTorque_Valid := FALSE; + AxoReadActualTorque_Value := LREAL#0.0; + END_IF; //****************************************** //*************AXO_READ_STATUS************** @@ -1864,6 +1853,17 @@ NAMESPACE AXOpen.Components.Drives AxoReadStatus_DiscreteMotion, AxoReadStatus_ContinuousMotion, AxoReadStatus_SynchronizedMotion); + IF AxoReadStatus_Task.IsSwitchedOff() THEN + AxoReadStatus_Valid := FALSE; + AxoReadStatus_ErrorStop := FALSE; + AxoReadStatus_Disabled := FALSE; + AxoReadStatus_Stopping := FALSE; + AxoReadStatus_Homing := FALSE; + AxoReadStatus_Standstill := FALSE; + AxoReadStatus_DiscreteMotion := FALSE; + AxoReadStatus_ContinuousMotion := FALSE; + AxoReadStatus_SynchronizedMotion := FALSE; + END_IF; //****************************************** //*************AXO_READ_MOTION_STATE******** @@ -1881,6 +1881,14 @@ NAMESPACE AXOpen.Components.Drives AxoReadMotionState_Decelerating, AxoReadMotionState_DirectionPositive, AxoReadMotionState_DirectionNegative); + IF AxoReadMotionState_Task.IsSwitchedOff() THEN + AxoReadMotionState_Valid := FALSE; + AxoReadMotionState_ConstantVelocity := FALSE; + AxoReadMotionState_Accelerating := FALSE; + AxoReadMotionState_Decelerating := FALSE; + AxoReadMotionState_DirectionPositive := FALSE; + AxoReadMotionState_DirectionNegative := FALSE; + END_IF; //****************************************** //*************AXO_READ_AXIS_INFO*********** @@ -1901,6 +1909,18 @@ NAMESPACE AXOpen.Components.Drives AxoReadAxisInfo_PowerOn, AxoReadAxisInfo_IsHomed, AxoReadAxisInfo_AxisWarning); + IF AxoReadAxisInfo_Task.IsSwitchedOff() THEN + AxoReadAxisInfo_Valid := FALSE; + AxoReadAxisInfo_HomeAbsSwitch := FALSE; + AxoReadAxisInfo_LimitSwitchPos := FALSE; + AxoReadAxisInfo_LimitSwitchNeg := FALSE; + AxoReadAxisInfo_Simulation := FALSE; + AxoReadAxisInfo_CommunicationReady := FALSE; + AxoReadAxisInfo_ReadyForPowerOn := FALSE; + AxoReadAxisInfo_PowerOn := FALSE; + AxoReadAxisInfo_IsHomed := FALSE; + AxoReadAxisInfo_AxisWarning := FALSE; + END_IF; //****************************************** //*************AXO_READ_AXIS_ERROR********** @@ -1913,6 +1933,11 @@ NAMESPACE AXOpen.Components.Drives AxoReadAxisError_Error, AxoReadAxisError_ErrorID, AxoReadAxisError_AxisErrorID); + IF AxoReadAxisError_Task.IsSwitchedOff() THEN + AxoReadAxisError_Valid := FALSE; + AxoReadAxisError_ErrorID := DINT#0; + AxoReadAxisError_AxisErrorID := DWORD#0; + END_IF; //****************************************** //*************AXO_RESET******************** @@ -1940,7 +1965,7 @@ NAMESPACE AXOpen.Components.Drives AxoJog_Busy := FALSE; AxoJog_CommandAborted := FALSE; AxoJog_Error := FALSE; - AxoJog_ErrorID := FALSE; + AxoJog_ErrorID := DINT#0; IF AxoJogPositive.IsSwitchedOn() THEN AxoJog_Direction := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection; ELSIF AxoJogNegative.IsSwitchedOn() THEN @@ -1984,183 +2009,161 @@ NAMESPACE AXOpen.Components.Drives AxoJogNegative.StopMotion := FALSE; END_IF; //****************************************** - _error := FALSE; - _warning := FALSE; + ErrorFromMC := FALSE; + // _warning := FALSE; IF AxoPower_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoPower_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoPower_ErrorID); END_IF; ELSIF AxoStop_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoStop_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoStop_ErrorID); END_IF; ELSIF AxoHalt_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoHalt_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoHalt_ErrorID); END_IF; ELSIF AxoHome_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoHome_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoHome_ErrorID); END_IF; ELSIF AxoMoveAbsolute_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoMoveAbsolute_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoMoveAbsolute_ErrorID); END_IF; ELSIF AxoMoveRelative_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoMoveRelative_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoMoveRelative_ErrorID); END_IF; ELSIF AxoMoveAdditive_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoMoveAdditive_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoMoveAdditive_ErrorID); END_IF; ELSIF AxoMoveVelocity_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoMoveVelocity_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoMoveVelocity_ErrorID); END_IF; ELSIF AxoTorqueControl_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoTorqueControl_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoTorqueControl_ErrorID); END_IF; ELSIF AxoSetPosition_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoSetPosition_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoSetPosition_ErrorID); END_IF; ELSIF AxoSetOverride_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoSetOverride_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoSetOverride_ErrorID); END_IF; ELSIF AxoReadParameter_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadParameter_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadParameter_ErrorID); END_IF; ELSIF AxoReadRealParameter_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadRealParameter_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadRealParameter_ErrorID); END_IF; ELSIF AxoReadBoolParameter_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadBoolParameter_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadBoolParameter_ErrorID); END_IF; ELSIF AxoWriteParameter_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoWriteParameter_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoWriteParameter_ErrorID); END_IF; ELSIF AxoWriteRealParameter_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoWriteRealParameter_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoWriteRealParameter_ErrorID); END_IF; ELSIF AxoWriteBoolParameter_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoWriteBoolParameter_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoWriteBoolParameter_ErrorID); END_IF; ELSIF AxoReadDigitalInput_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadDigitalInput_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadDigitalInput_ErrorID); END_IF; ELSIF AxoReadDigitalOutput_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadDigitalOutput_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadDigitalOutput_ErrorID); END_IF; ELSIF AxoWriteDigitalOutput_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoWriteDigitalOutput_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoWriteDigitalOutput_ErrorID); END_IF; ELSIF AxoReadActualPosition_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadActualPosition_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadActualPosition_ErrorID); END_IF; ELSIF AxoReadActualVelocity_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadActualVelocity_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadActualVelocity_ErrorID); END_IF; ELSIF AxoReadActualTorque_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadActualTorque_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadActualTorque_ErrorID); END_IF; ELSIF AxoReadStatus_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadStatus_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadStatus_ErrorID); END_IF; ELSIF AxoReadMotionState_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadMotionState_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadMotionState_ErrorID); END_IF; ELSIF AxoReadAxisInfo_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadAxisInfo_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadAxisInfo_ErrorID); END_IF; ELSIF AxoReadAxisError_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReadAxisError_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReadAxisError_ErrorID); END_IF; ELSIF AxoReset_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoReset_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoReset_ErrorID); END_IF; ELSIF AxoJog_Error THEN - _error := TRUE; - IF _messageCode = ULINT#0 THEN - _messageCode := TO_ULINT(AxoJog_ErrorID); + ErrorFromMC := TRUE; + IF MessageCodeFromMC = ULINT#0 THEN + MessageCodeFromMC := TO_ULINT(AxoJog_ErrorID); END_IF; END_IF; - _category := eAxoMessageCategory#Error; - IF _warning AND NOT _error THEN - _category := eAxoMessageCategory#Warning; - END_IF; - Messenger.ActivateOnCondition(_messageCode, (_error OR _warning) AND _messageCode = _lastMessageCode ,_category); - // IF NOT Messenger.IsActive THEN - IF Messenger.MessengerState = eAxoMessengerState#Idle THEN - IF _error OR _warning THEN - _lastMessageCode := _messageCode; - ELSE - _messageCode := ULINT#0; - END_IF; - END_IF; - END_METHOD /// /// Restores this instance . /// METHOD PUBLIC OVERRIDE Restore - VAR - _index : INT; - END_VAR - DriveStatus.Action.Id := UINT#0; - DriveStatus.Error.Id := UINT#0; - Messenger.Restore(); - TaskMessenger.Restore(); - //AxoPower_Task.Restore(); AxoStop_Task.Restore(); AxoHalt_Task.Restore(); @@ -2172,22 +2175,35 @@ NAMESPACE AXOpen.Components.Drives AxoTorqueControl_Task.Restore(); AxoSetPosition_Task.Restore(); AxoSetOverride_Task.SwitchOff(); + // MC_SetOverride(AxisRef, FALSE); AxoReadParameter_Task.SwitchOff(); + // MC_ReadParameter(AxisRef, FALSE); AxoReadRealParameter_Task.SwitchOff(); + // MC_ReadRealParameter(AxisRef, FALSE); AxoReadBoolParameter_Task.SwitchOff(); + // MC_ReadBoolParameter(AxisRef, FALSE); AxoWriteParameter_Task.Restore(); AxoWriteRealParameter_Task.Restore(); AxoWriteBoolParameter_Task.Restore(); AxoReadDigitalInput_Task.SwitchOff(); + // MC_ReadDigitalInput(AxisRef, FALSE); AxoReadDigitalOutput_Task.SwitchOff(); + // MC_ReadDigitalOutput(AxisRef, FALSE); AxoWriteDigitalOutput_Task.Restore(); AxoReadActualPosition_Task.SwitchOff(); + // MC_ReadActualPosition(AxisRef, FALSE); AxoReadActualVelocity_Task.SwitchOff(); + // MC_ReadActualVelocity(AxisRef, FALSE); AxoReadActualTorque_Task.SwitchOff(); + // MC_ReadActualTorque(AxisRef, FALSE); AxoReadStatus_Task.SwitchOff(); + // MC_ReadStatus(AxisRef, FALSE); AxoReadMotionState_Task.SwitchOff(); + // MC_ReadMotionState(AxisRef, FALSE); AxoReadAxisInfo_Task.SwitchOff(); + // MC_ReadAxisInfo(AxisRef, FALSE); AxoReadAxisError_Task.SwitchOff(); + // MC_ReadAxisError(AxisRef, FALSE); AxoReset_Task.Restore(); AxoJogPositive.RemoteSwitchOn := FALSE; AxoJogPositive.StartMotion := FALSE; @@ -2196,6 +2212,111 @@ NAMESPACE AXOpen.Components.Drives AxoJogNegative.StartMotion := FALSE; AxoJogNegative.StopMotion := FALSE; + //************************************************ + MessageCodeFromMC := ULINT#0; + ErrorFromMC := FALSE; + _movementDisabled := FALSE; + _lastMessageCode := ULINT#0; + _disabledDuringMovement := FALSE; + _movementInPositiveDirection := FALSE; + _movementInNegativeDirection := FALSE; + //***********Stop********************************* + _AxoStop_Deceleration := LREAL#0.0; + _AxoStop_Jerk := LREAL#0.0; + //***********Halt********************************* + _AxoHalt_Deceleration := LREAL#0.0; + _AxoHalt_Jerk := LREAL#0.0; + //***********Home********************************* + _AxoHome_Position := LREAL#0.0; + _AxoHome_HommingMode := INT#0; + _AxoHome_Velocity := LREAL#0.0; + _AxoHome_Acceleration := LREAL#0.0; + _AxoHome_Deceleration := LREAL#0.0; + //***********MoveAbsolute************************* + _AxoMoveAbsolute_ContinuousUpdate := FALSE; + _AxoMoveAbsolute_Position := LREAL#0.0; + _AxoMoveAbsolute_Velocity := LREAL#0.0; + _AxoMoveAbsolute_Acceleration := LREAL#0.0; + _AxoMoveAbsolute_Deceleration := LREAL#0.0; + _AxoMoveAbsolute_Jerk := LREAL#0.0; + _AxoMoveAbsolute_Direction := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; + //***********MoveRelative************************* + _AxoMoveRelative_ContinuousUpdate := FALSE; + _AxoMoveRelative_Distance := LREAL#0.0; + _AxoMoveRelative_Velocity := LREAL#0.0; + _AxoMoveRelative_Acceleration := LREAL#0.0; + _AxoMoveRelative_Deceleration := LREAL#0.0; + _AxoMoveRelative_Jerk := LREAL#0.0; + //***********MoveAdditive************************* + _AxoMoveAdditive_ContinuousUpdate := FALSE; + _AxoMoveAdditive_Distance := LREAL#0.0; + _AxoMoveAdditive_Velocity := LREAL#0.0; + _AxoMoveAdditive_Acceleration := LREAL#0.0; + _AxoMoveAdditive_Deceleration := LREAL#0.0; + _AxoMoveAdditive_Jerk := LREAL#0.0; + //***********MoveVelocity************************* + _AxoMoveVelocity_ContinuousUpdate := FALSE; + _AxoMoveVelocity_Velocity := LREAL#0.0; + _AxoMoveVelocity_Acceleration := LREAL#0.0; + _AxoMoveVelocity_Deceleration := LREAL#0.0; + _AxoMoveVelocity_Jerk := LREAL#0.0; + _AxoMoveVelocity_Direction := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; + //***********TorqueControl************************ + _AxoTorqueControl_ContinuousUpdate := FALSE; + _AxoTorqueControl_Torque := LREAL#0.0; + _AxoTorqueControl_TorqueRamp := LREAL#0.0; + _AxoTorqueControl_PositionLimit := LREAL#0.0; + _AxoTorqueControl_Velocity := LREAL#0.0; + _AxoTorqueControl_Acceleration := LREAL#0.0; + _AxoTorqueControl_Deceleration := LREAL#0.0; + _AxoTorqueControl_Jerk := LREAL#0.0; + _AxoTorqueControl_Direction := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; + //***********SetPosition************************** + _AxoSetPosition_Position := LREAL#0.0; + _AxoSetPosition_Relative := FALSE; + _AxoSetPosition_ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately; + //***********SetOverride************************** + _AxoSetOverride_VelFactor := LREAL#0.0; + _AxoSetOverride_AccFactor := LREAL#0.0; + _AxoSetOverride_JerkFactor := LREAL#0.0; + //***********ReadParameter************************ + _AxoReadParameter_ParameterNumber := DINT#0; + //***********ReadReadParameter************************ + _AxoReadRealParameter_ParameterNumber := DINT#0; + //***********ReadBoolParameter******************** + _AxoReadBoolParameter_ParameterNumber := DINT#0; + //***********WriteParameter*********************** + _AxoWriteParameter_ParameterNumber := DINT#0; + _AxoWriteParameter_Value := LINT#0; + _AxoWriteParameter_ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately; + //***********WriteRealParameter*********************** + _AxoWriteRealParameter_ParameterNumber := DINT#0; + _AxoWriteRealParameter_Value := REAL#0.0; + _AxoWriteRealParameter_ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately; + //***********WriteBoolParameter******************* + _AxoWriteBoolParameter_ParameterNumber := DINT#0; + _AxoWriteBoolParameter_Value := FALSE; + _AxoWriteBoolParameter_ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately; + //***********ReadDigitalInput********************* + _AxoReadDigitalInput_InputNumber := INT#0; + //***********ReadDigitalOutput******************** + _AxoReadDigitalOutput_OutputNumber := INT#0; + //***********WriteDigitalOutput******************* + _AxoWriteDigitalOutput_OutputNumber := INT#0; + _AxoWriteDigitalOutput_Value := FALSE; + _AxoWriteDigitalOutput_ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately; + //***********ReadMotionState********************** + _AxoReadMotionState_Source := AXOpen.Components.Abstractions.Drives.eAxoSource#ActualValue; + //***********Jog********************************** + _AxoJog_Velocity := LREAL#0.0; + _AxoJog_Acceleration := LREAL#0.0; + _AxoJog_Deceleration := LREAL#0.0; + _AxoJog_Jerk := LREAL#0.0; + _AxoJog_Direction := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; + _AxoJogInVelocity := FALSE; + _AxoJog_Active := FALSE; + //************************************************ + RestoreTask.DoneWhen(TRUE); END_METHOD @@ -2332,7 +2453,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoHome_Position := Position; @@ -2366,7 +2487,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoStop_Deceleration := Deceleration; @@ -2397,7 +2518,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoHalt_Deceleration := Deceleration; @@ -2432,7 +2553,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoMoveAbsolute_ContinuousUpdate := ContinuousUpdate; @@ -2471,7 +2592,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoMoveRelative_ContinuousUpdate := ContinuousUpdate; @@ -2512,10 +2633,10 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR - _AxoMoveAdditive_ContinuousUpdate := ContinuousUpdate; + _AxoMoveAdditive_ContinuousUpdate := ContinuousUpdate; _AxoMoveAdditive_Distance := Distance; _AxoMoveAdditive_Velocity := Velocity; _AxoMoveAdditive_Acceleration := Acceleration; @@ -2550,7 +2671,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoMoveVelocity_ContinuousUpdate := ContinuousUpdate; @@ -2594,7 +2715,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoTorqueControl_ContinuousUpdate := ContinuousUpdate; @@ -2632,7 +2753,7 @@ NAMESPACE AXOpen.Components.Drives VAR_OUTPUT Done : BOOL; // ‘Position’ has new value Error : BOOL; // Signals that an error has occurred within the FunctionBlock - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoSetPosition_Position := Position; @@ -2661,7 +2782,7 @@ NAMESPACE AXOpen.Components.Drives Enabled : BOOL; // Signals that the override factor(s) is (are) set successfully Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the FumethodnctionBlock - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR IF Enable THEN @@ -2672,6 +2793,7 @@ NAMESPACE AXOpen.Components.Drives AxoSetOverride_Task.SwitchOn(); ELSE AxoSetOverride_Task.SwitchOff(); + // THIS.MC_SetOverride(AxisRef, FALSE); END_IF; AxoSetOverride := AxoSetOverride_Task; @@ -2690,7 +2812,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : LINT; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR @@ -2700,6 +2822,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadParameter_Task.SwitchOn(); ELSE AxoReadParameter_Task.SwitchOff(); + // THIS.MC_ReadParameter(AxisRef, FALSE); END_IF; Valid := AxoReadParameter_Valid; @@ -2723,7 +2846,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : REAL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR @@ -2733,6 +2856,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadRealParameter_Task.SwitchOn(); ELSE AxoReadRealParameter_Task.SwitchOff(); + // THIS.MC_ReadRealParameter(AxisRef, FALSE); END_IF; Valid := AxoReadRealParameter_Valid; @@ -2756,7 +2880,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR @@ -2766,6 +2890,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadBoolParameter_Task.SwitchOn(); ELSE AxoReadBoolParameter_Task.SwitchOff(); + // THIS.MC_ReadBoolParameter(AxisRef, FALSE); END_IF; Valid := AxoReadBoolParameter_Valid; @@ -2790,7 +2915,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoWriteParameter_ParameterNumber := ParameterNumber; @@ -2803,7 +2928,7 @@ NAMESPACE AXOpen.Components.Drives ErrorID := AxoWriteParameter_ErrorID; AxoWriteParameter := AxoWriteParameter_Task.Invoke(THIS); - END_METHOD + END_METHOD /// /// This method modifies the value of a vendor specific parameter of type REAL. @@ -2818,7 +2943,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoWriteRealParameter_ParameterNumber := ParameterNumber; @@ -2846,7 +2971,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoWriteBoolParameter_ParameterNumber := ParameterNumber; @@ -2874,7 +2999,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected input signal END_VAR @@ -2884,6 +3009,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadDigitalInput_Task.SwitchOn(); ELSE AxoReadDigitalInput_Task.SwitchOff(); + // THIS.MC_ReadDigitalInput(AxisRef, FALSE); END_IF; Valid := AxoReadDigitalInput_Valid; @@ -2908,16 +3034,16 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected output signal END_VAR IF Enable THEN _AxoReadDigitalOutput_OutputNumber := OutputNumber; - AxoReadDigitalOutput_Task.SwitchOn(); ELSE AxoReadDigitalOutput_Task.SwitchOff(); + // THIS.MC_ReadDigitalOutput(AxisRef, FALSE); END_IF; Valid := AxoReadDigitalOutput_Valid; @@ -2942,7 +3068,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Writing of the output signal value is done Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR _AxoWriteDigitalOutput_OutputNumber := OutputNumber; @@ -2968,7 +3094,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Position : LREAL; // New absolute position (in axis’ unit [u]) END_VAR @@ -2976,6 +3102,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadActualPosition_Task.SwitchOn(); ELSE AxoReadActualPosition_Task.SwitchOff(); + // THIS.MC_ReadActualPosition(AxisRef, FALSE); END_IF; Valid := AxoReadActualPosition_Valid; @@ -3000,7 +3127,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Velocity : LREAL; // The value of the actual velocity (in axis’ unit [u/s]) END_VAR @@ -3008,6 +3135,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadActualVelocity_Task.SwitchOn(); ELSE AxoReadActualVelocity_Task.SwitchOff(); + // THIS.MC_ReadActualVelocity(AxisRef, FALSE); END_IF; Valid := AxoReadActualVelocity_Valid; @@ -3032,7 +3160,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Torque : LREAL; // The value of the actual torque or force (in technical units) END_VAR @@ -3040,6 +3168,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadActualTorque_Task.SwitchOn(); ELSE AxoReadActualTorque_Task.SwitchOff(); + // THIS.MC_ReadActualTorque(AxisRef, FALSE); END_IF; Valid := AxoReadActualTorque_Valid; @@ -3062,7 +3191,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ErrorStop : BOOL; // See state diagram Disabled : BOOL; // See state diagram Stopping : BOOL; // See state diagram @@ -3077,6 +3206,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadStatus_Task.SwitchOn(); ELSE AxoReadStatus_Task.SwitchOff(); + // THIS.MC_ReadStatus(AxisRef, FALSE); END_IF; Valid := AxoReadStatus_Valid; @@ -3107,7 +3237,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ConstantVelocity: BOOL; // Velocity is constant. Velocity may be 0. For the actual value a window is applicable (window is vendor specific) Accelerating : BOOL; // Increasing the absolute value of the velocity Decelerating : BOOL; // Decreasing the absolute value of the velocity @@ -3119,6 +3249,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadMotionState_Task.SwitchOn(); ELSE AxoReadMotionState_Task.SwitchOff(); + // THIS.MC_ReadMotionState(AxisRef, FALSE); END_IF; Valid := AxoReadMotionState_Valid; @@ -3146,7 +3277,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification HomeAbsSwitch : BOOL; // Digital home switch input is active LimitSwitchPos : BOOL; // Positive hardware end switch is active LimitSwitchNeg : BOOL; // Negative hardware end switch is active @@ -3162,6 +3293,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadAxisInfo_Task.SwitchOn(); ELSE AxoReadAxisInfo_Task.SwitchOff(); + // THIS.ReadAxisInfo(AxisRef, FALSE); END_IF; Valid := AxoReadAxisInfo_Valid; @@ -3193,7 +3325,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification AxisErrorID : DWORD; // The value of the axis error. These values are vendor specific END_VAR @@ -3201,6 +3333,7 @@ NAMESPACE AXOpen.Components.Drives AxoReadAxisError_Task.SwitchOn(); ELSE AxoReadAxisError_Task.SwitchOff(); + // THIS.MC_ReadAxisError(FALSE); END_IF; Valid := AxoReadAxisError_Valid; @@ -3221,7 +3354,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // ‘Standstill’ or ‘Disabled’ state is reached Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR Done := AxoReset_Done; @@ -3232,44 +3365,23 @@ NAMESPACE AXOpen.Components.Drives AxoReset := AxoReset_Task.Invoke(THIS); END_METHOD - - METHOD PROTECTED IsValidReferences: BOOL - VAR_INPUT - refAxisIn : REF_TO ARRAY[*] OF BYTE; // Reference to the input data of the axis - refAxisOut : REF_TO ARRAY[*] OF BYTE; // Reference to the output data of the axis - END_VAR - IsValidReferences := FALSE; - IF refAxisIn = NULL THEN - DriveStatus.Error.Id := UINT#701; - ELSIF refAxisOut = NULL THEN - DriveStatus.Error.Id := UINT#702; - ELSE - IsValidReferences := TRUE; - END_IF; - - Messenger.ActivateOnCondition(ULINT#701,refAxisIn = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702,refAxisOut = NULL, eAxoMessageCategory#ProgrammingError); - END_METHOD - /// - /// Ensures swapping the hardware input data structure into the AxisRef data structure + /// Ensures reading the hardware input data into the AxisRef data structure /// This vendor specific method must be overridden in derived class. /// METHOD PROTECTED ABSTRACT UpdateInputs : BOOL VAR_INPUT - refAxisIn : REF_TO ARRAY[*] OF BYTE; // Reference to the input data of the axis AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; END_VAR END_METHOD /// - /// Ensures swapping the AxisRef data structure into the hardware output data structure + /// Ensures writing the AxisRef data structure into the hardware output data /// This vendor specific method must be overridden in derived class. /// METHOD PROTECTED ABSTRACT UpdateOutputs : BOOL VAR_INPUT AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; - refAxisOut : REF_TO ARRAY[*] OF BYTE; // Reference to the output data of the axis END_VAR END_METHOD @@ -3286,7 +3398,7 @@ NAMESPACE AXOpen.Components.Drives Status : BOOL; // Effective state of the power stage Valid : BOOL; // If true, a valid set of outputs is available at the method Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3312,7 +3424,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3335,7 +3447,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3357,7 +3469,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3383,7 +3495,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3408,7 +3520,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3436,7 +3548,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3461,7 +3573,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3492,7 +3604,7 @@ NAMESPACE AXOpen.Components.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3515,7 +3627,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // ‘Position’ has new value Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3536,7 +3648,7 @@ NAMESPACE AXOpen.Components.Drives Enabled : BOOL; // Signals that the override factor(s) is (are) set successfully Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3555,7 +3667,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : LINT; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR END_METHOD @@ -3574,7 +3686,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : REAL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR END_METHOD @@ -3593,7 +3705,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR END_METHOD @@ -3614,7 +3726,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3634,7 +3746,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3654,7 +3766,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3673,7 +3785,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected input signal END_VAR END_METHOD @@ -3693,7 +3805,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected output signal END_VAR END_METHOD @@ -3714,7 +3826,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // Writing of the output signal value is done Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD @@ -3731,7 +3843,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Position : LREAL; // New absolute position (in axis’ unit [u]) END_VAR END_METHOD @@ -3751,7 +3863,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Velocity : LREAL; // The value of the actual velocity (in axis’ unit [u/s]) END_VAR END_METHOD @@ -3771,7 +3883,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Torque : LREAL; // The value of the actual torque or force (in technical units) END_VAR END_METHOD @@ -3789,7 +3901,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ErrorStop : BOOL; // See state diagram Disabled : BOOL; // See state diagram Stopping : BOOL; // See state diagram @@ -3815,7 +3927,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ConstantVelocity: BOOL; // Velocity is constant. Velocity may be 0. For the actual value a window is applicable (window is vendor specific) Accelerating : BOOL; // Increasing the absolute value of the velocity Decelerating : BOOL; // Decreasing the absolute value of the velocity @@ -3838,7 +3950,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification HomeAbsSwitch : BOOL; // Digital home switch input is active LimitSwitchPos : BOOL; // Positive hardware end switch is active LimitSwitchNeg : BOOL; // Negative hardware end switch is active @@ -3865,7 +3977,7 @@ NAMESPACE AXOpen.Components.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification AxisErrorID : DWORD; // The value of the axis error. These values are vendor specific END_VAR END_METHOD @@ -3884,7 +3996,7 @@ NAMESPACE AXOpen.Components.Drives Done : BOOL; // ‘Standstill’ or ‘Disabled’ state is reached Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR END_METHOD END_CLASS diff --git a/src/components.drives/ctrl/test/AxoTestDrive.st b/src/components.drives/ctrl/test/AxoTestDrive.st index 3c99f2729..94ad211ab 100644 --- a/src/components.drives/ctrl/test/AxoTestDrive.st +++ b/src/components.drives/ctrl/test/AxoTestDrive.st @@ -10,7 +10,7 @@ NAMESPACE AxoDriveTests.Tests METHOD PROTECTED OVERRIDE UpdateInputs : BOOL VAR_INPUT - refAxisIn : REF_TO ARRAY[*] OF BYTE; + // refAxisIn : REF_TO ARRAY[*] OF BYTE; AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; END_VAR ; @@ -19,7 +19,7 @@ NAMESPACE AxoDriveTests.Tests METHOD PROTECTED OVERRIDE UpdateOutputs : BOOL VAR_INPUT AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; - refAxisOut : REF_TO ARRAY[*] OF BYTE; + // refAxisOut : REF_TO ARRAY[*] OF BYTE; END_VAR ; END_METHOD @@ -33,7 +33,7 @@ NAMESPACE AxoDriveTests.Tests Status : BOOL; Valid : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -54,7 +54,7 @@ NAMESPACE AxoDriveTests.Tests Active : BOOL; CommandAborted : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -72,7 +72,7 @@ NAMESPACE AxoDriveTests.Tests Active : BOOL; CommandAborted : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -90,7 +90,7 @@ NAMESPACE AxoDriveTests.Tests Active : BOOL; CommandAborted : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -113,7 +113,7 @@ NAMESPACE AxoDriveTests.Tests Active : BOOL; CommandAborted : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -135,7 +135,7 @@ NAMESPACE AxoDriveTests.Tests Active : BOOL; CommandAborted : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -157,7 +157,7 @@ NAMESPACE AxoDriveTests.Tests Active : BOOL; CommandAborted : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -179,7 +179,7 @@ NAMESPACE AxoDriveTests.Tests Active : BOOL; CommandAborted : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -204,7 +204,7 @@ NAMESPACE AxoDriveTests.Tests Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -221,7 +221,7 @@ NAMESPACE AxoDriveTests.Tests Done : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -238,7 +238,7 @@ NAMESPACE AxoDriveTests.Tests Enabled : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -253,7 +253,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : LINT; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR ; @@ -269,7 +269,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; Value : REAL; END_VAR ; @@ -285,7 +285,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; Value : BOOL; END_VAR ; @@ -303,7 +303,7 @@ NAMESPACE AxoDriveTests.Tests Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR ; END_METHOD @@ -320,7 +320,7 @@ NAMESPACE AxoDriveTests.Tests Done : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -337,7 +337,7 @@ NAMESPACE AxoDriveTests.Tests Done : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -352,7 +352,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; Value : BOOL; END_VAR ; @@ -368,7 +368,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; Value : BOOL; END_VAR ; @@ -386,7 +386,7 @@ NAMESPACE AxoDriveTests.Tests Done : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD @@ -400,7 +400,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; Position : LREAL; END_VAR ; @@ -415,7 +415,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; Velocity : LREAL; END_VAR ; @@ -430,7 +430,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; Torque : LREAL; END_VAR ; @@ -445,7 +445,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; ErrorStop : BOOL; Disabled : BOOL; Stopping : BOOL; @@ -468,7 +468,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; ConstantVelocity: BOOL; Accelerating : BOOL; Decelerating : BOOL; @@ -487,7 +487,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; HomeAbsSwitch : BOOL; LimitSwitchPos : BOOL; LimitSwitchNeg : BOOL; @@ -510,7 +510,7 @@ NAMESPACE AxoDriveTests.Tests Valid : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; AxisErrorID : DWORD; END_VAR ; @@ -525,7 +525,7 @@ NAMESPACE AxoDriveTests.Tests Done : BOOL; Busy : BOOL; Error : BOOL; - ErrorID : WORD; + ErrorID : DINT; END_VAR ; END_METHOD diff --git a/src/components.drives/src/AXOpen.Components.Drives/Drives/AxoDrive.cs b/src/components.drives/src/AXOpen.Components.Drives/Drives/AxoDrive.cs index ed460b844..0208ddfbe 100644 --- a/src/components.drives/src/AXOpen.Components.Drives/Drives/AxoDrive.cs +++ b/src/components.drives/src/AXOpen.Components.Drives/Drives/AxoDrive.cs @@ -10,182 +10,182 @@ namespace AXOpen.Components.Drives { - public partial class AxoDrive - { - partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) - { - try - { - InitializeMessenger(); - InitializeTaskMessenger(); - } - catch (Exception) - { - - throw; - } - } - - private void InitializeMessenger() - { - List> messengerTextList = new List> - { - new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(700, new AxoMessengerTextItem("Parent has NULL reference!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("refAxisIn has NULL reference!", "Check the call of the `Run` method, if the `refAxisIn` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("refAxisOut has NULL reference!", "Check the call of the `Run` method, if the `refAxisOut` parameter is assigned.")), - new KeyValuePair(703, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(704, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(705, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(706, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(707, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(708, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(709, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(710, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(711, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(712, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(713, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(714, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(715, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(716, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(717, new AxoMessengerTextItem(" ", " ")), - }; - - Messenger.DotNetMessengerTextList = messengerTextList; - } - - private void InitializeTaskMessenger() - { - List> messengerTextList = new List> - { - new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(600, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(601, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(602, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(603, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(604, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(605, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(606, new AxoMessengerTextItem(" ", " ")), - - }; - - TaskMessenger.DotNetMessengerTextList = messengerTextList; - } - } - - public partial class AxoDrive_Status : AxoComponent_Status - { - Dictionary errorDescriptionDict = new Dictionary(); - Dictionary actionDescriptionDict = new Dictionary(); - - public string ErrorDescription - { - get - { - if (errorDescriptionDict == null) { errorDescriptionDict = new Dictionary(); } - if (errorDescriptionDict.Count == 0) - { - errorDescriptionDict.Add(0, " "); - - //WARNINGs - errorDescriptionDict.Add(600, ""); - errorDescriptionDict.Add(601, ""); - errorDescriptionDict.Add(602, ""); - errorDescriptionDict.Add(603, ""); - errorDescriptionDict.Add(604, ""); - errorDescriptionDict.Add(605, ""); - errorDescriptionDict.Add(606, ""); - errorDescriptionDict.Add(607, ""); - errorDescriptionDict.Add(608, ""); - errorDescriptionDict.Add(609, ""); - errorDescriptionDict.Add(610, ""); - - - errorDescriptionDict.Add(700, "Error: Parent has NULL reference!"); - errorDescriptionDict.Add(701, "Error: refAxisIn has NULL reference!"); - errorDescriptionDict.Add(702, "Error: refAxisOut has NULL reference!"); - errorDescriptionDict.Add(703, "Error: "); - errorDescriptionDict.Add(704, "Error: "); - errorDescriptionDict.Add(705, "Error: "); - errorDescriptionDict.Add(706, "Error: "); - errorDescriptionDict.Add(707, "Error: "); - errorDescriptionDict.Add(708, "Error: "); - errorDescriptionDict.Add(709, "Error: "); - errorDescriptionDict.Add(710, "Error: "); - - } - string errorDescription = " "; - if (Error != null && Error.Id != null && errorDescriptionDict.TryGetValue(Error.Id.LastValue, out errorDescription)) - { - return errorDescription; - } - else - - { - return " "; - } - } - } - - public string ActionDescription - { - get - { - if (actionDescriptionDict == null) { actionDescriptionDict = new Dictionary(); } - if (actionDescriptionDict.Count == 0) - { - actionDescriptionDict.Add(0, " "); - //INFOs - actionDescriptionDict.Add(300, ""); - actionDescriptionDict.Add(301, ""); - actionDescriptionDict.Add(302, ""); - actionDescriptionDict.Add(303, ""); - actionDescriptionDict.Add(304, ""); - actionDescriptionDict.Add(305, ""); - actionDescriptionDict.Add(306, ""); - actionDescriptionDict.Add(307, ""); - actionDescriptionDict.Add(308, ""); - actionDescriptionDict.Add(309, ""); - actionDescriptionDict.Add(310, ""); - - //WARNINGs - actionDescriptionDict.Add(600, ""); - actionDescriptionDict.Add(601, ""); - actionDescriptionDict.Add(602, ""); - actionDescriptionDict.Add(603, ""); - actionDescriptionDict.Add(604, ""); - actionDescriptionDict.Add(605, ""); - actionDescriptionDict.Add(606, ""); - actionDescriptionDict.Add(607, ""); - actionDescriptionDict.Add(608, ""); - actionDescriptionDict.Add(609, ""); - actionDescriptionDict.Add(610, ""); - - //ERRORs - actionDescriptionDict.Add(700, ""); - actionDescriptionDict.Add(701, ""); - actionDescriptionDict.Add(702, ""); - actionDescriptionDict.Add(703, ""); - actionDescriptionDict.Add(704, ""); - actionDescriptionDict.Add(705, ""); - actionDescriptionDict.Add(706, ""); - actionDescriptionDict.Add(707, ""); - actionDescriptionDict.Add(708, ""); - actionDescriptionDict.Add(709, ""); - actionDescriptionDict.Add(710, ""); - - } - string actionDescription = " "; - if (Action != null && Action.Id != null && actionDescriptionDict.TryGetValue(Action.Id.LastValue, out actionDescription)) - { - return actionDescription; - } - else - { - return " "; - } - - } - } - } + //public partial class AxoDrive + //{ + // partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) + // { + // try + // { + // InitializeMessenger(); + // InitializeTaskMessenger(); + // } + // catch (Exception) + // { + + // throw; + // } + // } + + // private void InitializeMessenger() + // { + // List> messengerTextList = new List> + // { + // new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(700, new AxoMessengerTextItem("Parent has NULL reference!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), + // new KeyValuePair(701, new AxoMessengerTextItem("refAxisIn has NULL reference!", "Check the call of the `Run` method, if the `refAxisIn` parameter is assigned.")), + // new KeyValuePair(702, new AxoMessengerTextItem("refAxisOut has NULL reference!", "Check the call of the `Run` method, if the `refAxisOut` parameter is assigned.")), + // new KeyValuePair(703, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(704, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(705, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(706, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(707, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(708, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(709, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(710, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(711, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(712, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(713, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(714, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(715, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(716, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(717, new AxoMessengerTextItem(" ", " ")), + // }; + + // Messenger.DotNetMessengerTextList = messengerTextList; + // } + + // private void InitializeTaskMessenger() + // { + // List> messengerTextList = new List> + // { + // new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(600, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(601, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(602, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(603, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(604, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(605, new AxoMessengerTextItem(" ", " ")), + // new KeyValuePair(606, new AxoMessengerTextItem(" ", " ")), + + // }; + + // TaskMessenger.DotNetMessengerTextList = messengerTextList; + // } + //} + + //public partial class AxoDrive_Status : AxoComponent_Status + //{ + // Dictionary errorDescriptionDict = new Dictionary(); + // Dictionary actionDescriptionDict = new Dictionary(); + + // public string ErrorDescription + // { + // get + // { + // if (errorDescriptionDict == null) { errorDescriptionDict = new Dictionary(); } + // if (errorDescriptionDict.Count == 0) + // { + // errorDescriptionDict.Add(0, " "); + + // //WARNINGs + // errorDescriptionDict.Add(600, ""); + // errorDescriptionDict.Add(601, ""); + // errorDescriptionDict.Add(602, ""); + // errorDescriptionDict.Add(603, ""); + // errorDescriptionDict.Add(604, ""); + // errorDescriptionDict.Add(605, ""); + // errorDescriptionDict.Add(606, ""); + // errorDescriptionDict.Add(607, ""); + // errorDescriptionDict.Add(608, ""); + // errorDescriptionDict.Add(609, ""); + // errorDescriptionDict.Add(610, ""); + + + // errorDescriptionDict.Add(700, "Error: Parent has NULL reference!"); + // errorDescriptionDict.Add(701, "Error: refAxisIn has NULL reference!"); + // errorDescriptionDict.Add(702, "Error: refAxisOut has NULL reference!"); + // errorDescriptionDict.Add(703, "Error: "); + // errorDescriptionDict.Add(704, "Error: "); + // errorDescriptionDict.Add(705, "Error: "); + // errorDescriptionDict.Add(706, "Error: "); + // errorDescriptionDict.Add(707, "Error: "); + // errorDescriptionDict.Add(708, "Error: "); + // errorDescriptionDict.Add(709, "Error: "); + // errorDescriptionDict.Add(710, "Error: "); + + // } + // string errorDescription = " "; + // if (Error != null && Error.Id != null && errorDescriptionDict.TryGetValue(Error.Id.LastValue, out errorDescription)) + // { + // return errorDescription; + // } + // else + + // { + // return " "; + // } + // } + // } + + // public string ActionDescription + // { + // get + // { + // if (actionDescriptionDict == null) { actionDescriptionDict = new Dictionary(); } + // if (actionDescriptionDict.Count == 0) + // { + // actionDescriptionDict.Add(0, " "); + // //INFOs + // actionDescriptionDict.Add(300, ""); + // actionDescriptionDict.Add(301, ""); + // actionDescriptionDict.Add(302, ""); + // actionDescriptionDict.Add(303, ""); + // actionDescriptionDict.Add(304, ""); + // actionDescriptionDict.Add(305, ""); + // actionDescriptionDict.Add(306, ""); + // actionDescriptionDict.Add(307, ""); + // actionDescriptionDict.Add(308, ""); + // actionDescriptionDict.Add(309, ""); + // actionDescriptionDict.Add(310, ""); + + // //WARNINGs + // actionDescriptionDict.Add(600, ""); + // actionDescriptionDict.Add(601, ""); + // actionDescriptionDict.Add(602, ""); + // actionDescriptionDict.Add(603, ""); + // actionDescriptionDict.Add(604, ""); + // actionDescriptionDict.Add(605, ""); + // actionDescriptionDict.Add(606, ""); + // actionDescriptionDict.Add(607, ""); + // actionDescriptionDict.Add(608, ""); + // actionDescriptionDict.Add(609, ""); + // actionDescriptionDict.Add(610, ""); + + // //ERRORs + // actionDescriptionDict.Add(700, ""); + // actionDescriptionDict.Add(701, ""); + // actionDescriptionDict.Add(702, ""); + // actionDescriptionDict.Add(703, ""); + // actionDescriptionDict.Add(704, ""); + // actionDescriptionDict.Add(705, ""); + // actionDescriptionDict.Add(706, ""); + // actionDescriptionDict.Add(707, ""); + // actionDescriptionDict.Add(708, ""); + // actionDescriptionDict.Add(709, ""); + // actionDescriptionDict.Add(710, ""); + + // } + // string actionDescription = " "; + // if (Action != null && Action.Id != null && actionDescriptionDict.TryGetValue(Action.Id.LastValue, out actionDescription)) + // { + // return actionDescription; + // } + // else + // { + // return " "; + // } + + // } + // } + //} } diff --git a/src/components.elements/app/apax.yml b/src/components.elements/app/apax.yml index c7a068c3b..906b2383d 100644 --- a/src/components.elements/app/apax.yml +++ b/src/components.elements/app/apax.yml @@ -1,12 +1,12 @@ -name: "elementscomponents" +name: "elementscomponents" version: '0.0.0-dev.0' type: app targets: - "1500" - - llvm + # - llvm variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Elements" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,144 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/components.elements/ctrl/apax.yml b/src/components.elements/ctrl/apax.yml index dd04dc868..7fc9159e9 100644 --- a/src/components.elements/ctrl/apax.yml +++ b/src/components.elements/ctrl/apax.yml @@ -12,25 +12,37 @@ devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: "@inxton/axopen.components.abstractions": '0.0.0-dev.0' -publicKeys: - "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: + postbuild: + - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" +publicKeys: + "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.elements/ctrl/src/AxoCarousel/AxoCarousel.st b/src/components.elements/ctrl/src/AxoCarousel/AxoCarousel.st index c1c5fe9c5..4a468bde2 100644 --- a/src/components.elements/ctrl/src/AxoCarousel/AxoCarousel.st +++ b/src/components.elements/ctrl/src/AxoCarousel/AxoCarousel.st @@ -50,13 +50,13 @@ NAMESPACE AXOpen.Elements {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#Inputs#>"} - {#ix-attr:[ReadOnly()]} + // {#ix-attr:[ReadOnly()]} //TODO uncomment this after debugging is finished Inputs : AxoCarousel_State; {#ix-attr:[ComponentDetails("Hardware signals")]} {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#Outputs#>"} - {#ix-attr:[ReadOnly()]} + // {#ix-attr:[ReadOnly()]} //TODO uncomment this after debugging is finished Outputs : AxoCarousel_Control; END_VAR @@ -91,23 +91,21 @@ NAMESPACE AXOpen.Elements SUPER.Run(parent); Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); Status.Error.Id := UINT#700; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#701,Config.NumberOfPositions < UINT#2 , eAxoMessageCategory#ProgrammingError); - - IF Config.NumberOfPositions <= UINT#0 THEN + IF Config.NumberOfPositions < UINT#2 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); Status.Error.Id := UINT#701; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#702,Config.NumberOfPositions > UINT#32 , eAxoMessageCategory#ProgrammingError); - - IF Config.NumberOfPositions <= UINT#0 THEN + IF Config.NumberOfPositions > UINT#32 THEN + Messenger.Activate(UINT#702, eAxoMessageCategory#ProgrammingError); Status.Error.Id := UINT#702; RETURN; END_IF; @@ -163,9 +161,10 @@ NAMESPACE AXOpen.Elements END_IF; IF _progress = 300 THEN // TurnTask running: checking the initial position - TaskMessenger.ActivateOnCondition(ULINT#703, NOT Inputs.InPosition, eAxoMessageCategory#Error); // Turn table is not in the initial position - IF NOT Inputs.InPosition THEN - Status.Error.Id := UINT#703; + IF NOT Inputs.InPosition THEN // Turn table is not in the initial position + Messenger.Activate( UINT#703, eAxoMessageCategory#Error); + TaskMessenger.Activate( UINT#703, eAxoMessageCategory#Error); + Status.Error.Id := UINT#703; END_IF; IF Inputs.InPosition THEN @@ -175,13 +174,15 @@ NAMESPACE AXOpen.Elements END_IF; IF _progress = 301 THEN // TurnTask running: evaluating start index - IF CurrentPosition = UINT#0 THEN - Status.Error.Id := UINT#704; - TaskMessenger.Activate(ULINT#704, eAxoMessageCategory#Error); // Invalid coding, no signal from any coding sensor + IF CurrentPosition = UINT#0 THEN // Invalid coding, no signal from any coding sensor + Messenger.Activate( UINT#704, eAxoMessageCategory#Error); + TaskMessenger.Activate( UINT#704, eAxoMessageCategory#Error); + Status.Error.Id := UINT#704; END_IF; - IF CurrentPosition > Config.NumberOfPositions THEN - Status.Error.Id := UINT#705; - TaskMessenger.Activate(ULINT#705, eAxoMessageCategory#Error); // Invalid coding, current position is greather then maximum + IF CurrentPosition > Config.NumberOfPositions THEN // Invalid coding, current position is greather then maximum + Messenger.Activate( UINT#705, eAxoMessageCategory#Error); + TaskMessenger.Activate( UINT#705, eAxoMessageCategory#Error); + Status.Error.Id := UINT#705; END_IF; IF CurrentPosition > UINT#0 AND CurrentPosition<= Config.NumberOfPositions THEN @@ -193,9 +194,9 @@ NAMESPACE AXOpen.Elements END_IF; IF _progress = 302 THEN // TurnTask running: turn table moving, waiting for 'Inputs.InPosition' to be reseted. - TaskMessenger.ActivateOnCondition(ULINT#502, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#502; + TaskMessenger.Activate( UINT#502, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#502; END_IF; Outputs.EnableTurn := TRUE; @@ -209,9 +210,9 @@ NAMESPACE AXOpen.Elements END_IF; IF _progress = 303 THEN // TurnTask running: turn table moving, waiting for 'Inputs.InPosition' to be set. - TaskMessenger.ActivateOnCondition(ULINT#503, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#503; + TaskMessenger.Activate( UINT#503, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#503; END_IF; Outputs.EnableTurn := FALSE; @@ -230,8 +231,9 @@ NAMESPACE AXOpen.Elements THIS.CallTimers(FALSE); _progress := 309; ELSE - TaskMessenger.Activate(ULINT#706, eAxoMessageCategory#Error); - Status.Error.Id := UINT#706; + Messenger.Activate( UINT#706, eAxoMessageCategory#Error); + TaskMessenger.Activate( UINT#706, eAxoMessageCategory#Error); + Status.Error.Id := UINT#706; END_IF; END_IF; @@ -249,14 +251,14 @@ NAMESPACE AXOpen.Elements Status.Action.Id := UINT#101; Status.Error.Id := UINT#0; ELSIF TurnTask.ErrorOccured() THEN - Status.Action.Id := UINT#800; - Status.Error.Id := UINT#800; + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; ELSIF TurnTask.AbortTriggered()THEN - Status.Action.Id := UINT#801; - Status.Error.Id := UINT#801; + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,TurnTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,TurnTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10000,TurnTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,TurnTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,TurnTask.RestoreTriggered() , eAxoMessageCategory#Error); IF TurnTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN Status.Action.Id := UINT#102; @@ -280,9 +282,9 @@ NAMESPACE AXOpen.Elements END_IF; IF _progress = 312 THEN // InitPositionTask running: turn table moving, waiting for 'Inputs.InPosition' to be reseted. - TaskMessenger.ActivateOnCondition(ULINT#512, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#512; + TaskMessenger.Activate( UINT#512, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#512; END_IF; Outputs.EnableTurn := TRUE; @@ -296,9 +298,9 @@ NAMESPACE AXOpen.Elements END_IF; IF _progress = 313 THEN // InitPositionTask running: turn table moving, waiting for 'Inputs.InPosition' to be set. - TaskMessenger.ActivateOnCondition(ULINT#513, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#513; + TaskMessenger.Activate( UINT#513, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#513; END_IF; Outputs.EnableTurn := FALSE; @@ -326,14 +328,14 @@ NAMESPACE AXOpen.Elements Status.Action.Id := UINT#111; Status.Error.Id := UINT#0; ELSIF InitPositionTask.ErrorOccured() THEN - Status.Action.Id := UINT#810; - Status.Error.Id := UINT#810; + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; ELSIF InitPositionTask.AbortTriggered()THEN - Status.Action.Id := UINT#811; - Status.Error.Id := UINT#811; + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; END_IF; - Messenger.ActivateOnCondition(ULINT#810,InitPositionTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#811,InitPositionTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10010,InitPositionTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,InitPositionTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#112,InitPositionTask.RestoreTriggered() , eAxoMessageCategory#Error); IF InitPositionTask.RestoreTriggered() AND _progress >= 310 AND _progress <= 319 THEN Status.Action.Id := UINT#112; @@ -382,6 +384,10 @@ NAMESPACE AXOpen.Elements Status.Action.Id := UINT#50; RestoreTask.DoneWhen(TRUE); + Outputs.EnableTurn := FALSE; + Outputs.StartTurn := FALSE; + + END_METHOD METHOD PRIVATE CallTimers diff --git a/src/components.elements/src/AXOpen.Components.Elements/AxoCarousel/AxoCarousel.cs b/src/components.elements/src/AXOpen.Components.Elements/AxoCarousel/AxoCarousel.cs index 1e8d60e8c..4f05efcf7 100644 --- a/src/components.elements/src/AXOpen.Components.Elements/AxoCarousel/AxoCarousel.cs +++ b/src/components.elements/src/AXOpen.Components.Elements/AxoCarousel/AxoCarousel.cs @@ -125,42 +125,42 @@ private void InitializeMessenger() // TurnTask - new KeyValuePair(800, new AxoMessengerTextItem("TurnTask finished with error!","Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("TurnTask was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10000, new AxoMessengerTextItem("TurnTask finished with error!","Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("TurnTask was aborted, while not yet completed!","Check the details.")), // InitPositionTask - new KeyValuePair(810, new AxoMessengerTextItem("InitPositionTask finished with error!","Check the details.")), - new KeyValuePair(811, new AxoMessengerTextItem("InitPositionTask was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10010, new AxoMessengerTextItem("InitPositionTask finished with error!","Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("InitPositionTask was aborted, while not yet completed!","Check the details.")), // TemplateTask_10steps_3 - new KeyValuePair(820, new AxoMessengerTextItem("TemplateTask_10steps_3 finished with error!","Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("TemplateTask_10steps_3 was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("TemplateTask_10steps_3 finished with error!","Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("TemplateTask_10steps_3 was aborted, while not yet completed!","Check the details.")), // TemplateTask_10steps_4 - new KeyValuePair(830, new AxoMessengerTextItem("TemplateTask_10steps_4 task finished with error!","Check the details.")), - new KeyValuePair(831, new AxoMessengerTextItem("TemplateTask_10steps_4 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10030, new AxoMessengerTextItem("TemplateTask_10steps_4 task finished with error!","Check the details.")), + new KeyValuePair(10031, new AxoMessengerTextItem("TemplateTask_10steps_4 task was aborted, while not yet completed!","Check the details.")), // TemplateTask_10steps_5 - new KeyValuePair(840, new AxoMessengerTextItem("TemplateTask_10steps_5 task finished with error!","Check the details.")), - new KeyValuePair(841, new AxoMessengerTextItem("TemplateTask_10steps_5 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10040, new AxoMessengerTextItem("TemplateTask_10steps_5 task finished with error!","Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("TemplateTask_10steps_5 task was aborted, while not yet completed!","Check the details.")), // TemplateTask_10steps_6 - new KeyValuePair(850, new AxoMessengerTextItem("TemplateTask_10steps_6 task finished with error!","Check the details.")), - new KeyValuePair(851, new AxoMessengerTextItem("TemplateTask_10steps_6 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10050, new AxoMessengerTextItem("TemplateTask_10steps_6 task finished with error!","Check the details.")), + new KeyValuePair(10051, new AxoMessengerTextItem("TemplateTask_10steps_6 task was aborted, while not yet completed!","Check the details.")), // TemplateTask_20steps_1 - new KeyValuePair(860, new AxoMessengerTextItem("TemplateTask_20steps_1 task finished with error!","Check the details.")), - new KeyValuePair(861, new AxoMessengerTextItem("TemplateTask_20steps_1 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10060, new AxoMessengerTextItem("TemplateTask_20steps_1 task finished with error!","Check the details.")), + new KeyValuePair(10061, new AxoMessengerTextItem("TemplateTask_20steps_1 task was aborted, while not yet completed!","Check the details.")), // TemplateTask_20steps_2 - new KeyValuePair(880, new AxoMessengerTextItem("TemplateTask_20steps_2 task finished with error!","Check the details.")), - new KeyValuePair(881, new AxoMessengerTextItem("TemplateTask_20steps_2 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10080, new AxoMessengerTextItem("TemplateTask_20steps_2 task finished with error!","Check the details.")), + new KeyValuePair(10081, new AxoMessengerTextItem("TemplateTask_20steps_2 task was aborted, while not yet completed!","Check the details.")), // TemplateTask_20steps_3 - new KeyValuePair(900, new AxoMessengerTextItem("TemplateTask_20steps_3 task finished with error!","Check the details.")), - new KeyValuePair(901, new AxoMessengerTextItem("TemplateTask_20steps_3 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10100, new AxoMessengerTextItem("TemplateTask_20steps_3 task finished with error!","Check the details.")), + new KeyValuePair(10101, new AxoMessengerTextItem("TemplateTask_20steps_3 task was aborted, while not yet completed!","Check the details.")), // TemplateTask_20steps_4 - new KeyValuePair(920, new AxoMessengerTextItem("TemplateTask_20steps_4 task finished with error!","Check the details.")), - new KeyValuePair(921, new AxoMessengerTextItem("TemplateTask_20steps_4 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10120, new AxoMessengerTextItem("TemplateTask_20steps_4 task finished with error!","Check the details.")), + new KeyValuePair(10121, new AxoMessengerTextItem("TemplateTask_20steps_4 task was aborted, while not yet completed!","Check the details.")), // TemplateTask_20steps_5 - new KeyValuePair(940, new AxoMessengerTextItem("TemplateTask_20steps_5 task finished with error!","Check the details.")), - new KeyValuePair(941, new AxoMessengerTextItem("TemplateTask_20steps_5 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10140, new AxoMessengerTextItem("TemplateTask_20steps_5 task finished with error!","Check the details.")), + new KeyValuePair(10141, new AxoMessengerTextItem("TemplateTask_20steps_5 task was aborted, while not yet completed!","Check the details.")), // TemplateTask_20steps_6 - new KeyValuePair(960, new AxoMessengerTextItem("TemplateTask_20steps_6 task finished with error!","Check the details.")), - new KeyValuePair(961, new AxoMessengerTextItem("TemplateTask_20steps_6 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10160, new AxoMessengerTextItem("TemplateTask_20steps_6 task finished with error!","Check the details.")), + new KeyValuePair(10161, new AxoMessengerTextItem("TemplateTask_20steps_6 task was aborted, while not yet completed!","Check the details.")), }; @@ -364,7 +364,11 @@ private void InitializeTaskMessenger() new KeyValuePair(677, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), new KeyValuePair(678, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), new KeyValuePair(679, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), - + + new KeyValuePair(703, new AxoMessengerTextItem("Turn table is not in the initial position", "Move the turn table in the initial position and check the signals of the position sensors.")), + new KeyValuePair(704, new AxoMessengerTextItem("Invalid coding, no signal from any coding sensor!", "Check the signals of the coding sensors.")), + new KeyValuePair(705, new AxoMessengerTextItem("Invalid coding, current position is greather then maximum!", "Check the signals of the coding sensors, so as the value of 'Config.NumberOfPositions' variable.")), + new KeyValuePair(706, new AxoMessengerTextItem("Invalid coding, unexpected value!", "Check the signals of the coding sensors.")), }; diff --git a/src/components.elements/src/AXOpen.Components.Elements/AxoCarousel_Component_Status/AxoCarousel_Component_Status.cs b/src/components.elements/src/AXOpen.Components.Elements/AxoCarousel_Component_Status/AxoCarousel_Component_Status.cs index eba32966d..7acb3fbee 100644 --- a/src/components.elements/src/AXOpen.Components.Elements/AxoCarousel_Component_Status/AxoCarousel_Component_Status.cs +++ b/src/components.elements/src/AXOpen.Components.Elements/AxoCarousel_Component_Status/AxoCarousel_Component_Status.cs @@ -262,42 +262,42 @@ public string ErrorDescription // TurnTask - errorDescriptionDict.Add(800, "TurnTask finished with error!"); - errorDescriptionDict.Add(801, "TurnTask was aborted, while not yet completed!"); + errorDescriptionDict.Add(10000, "TurnTask finished with error!"); + errorDescriptionDict.Add(10001, "TurnTask was aborted, while not yet completed!"); // InitPositionTask - errorDescriptionDict.Add(810, "InitPositionTask finished with error!"); - errorDescriptionDict.Add(811, "InitPositionTask was aborted, while not yet completed!"); + errorDescriptionDict.Add(10010, "InitPositionTask finished with error!"); + errorDescriptionDict.Add(10011, "InitPositionTask was aborted, while not yet completed!"); // TemplateTask_10steps_3 - errorDescriptionDict.Add(820, "TemplateTask_10steps_3 finished with error!"); - errorDescriptionDict.Add(821, "TemplateTask_10steps_3 was aborted, while not yet completed!"); + errorDescriptionDict.Add(10020, "TemplateTask_10steps_3 finished with error!"); + errorDescriptionDict.Add(10021, "TemplateTask_10steps_3 was aborted, while not yet completed!"); // TemplateTask_10steps_4 - errorDescriptionDict.Add(830, "TemplateTask_10steps_4 task finished with error!"); - errorDescriptionDict.Add(831, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10030, "TemplateTask_10steps_4 task finished with error!"); + errorDescriptionDict.Add(10031, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); // TemplateTask_10steps_5 - errorDescriptionDict.Add(840, "TemplateTask_10steps_5 task finished with error!"); - errorDescriptionDict.Add(841, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10040, "TemplateTask_10steps_5 task finished with error!"); + errorDescriptionDict.Add(10041, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); // TemplateTask_10steps_6 - errorDescriptionDict.Add(850, "TemplateTask_10steps_6 task finished with error!"); - errorDescriptionDict.Add(851, "TemplateTask_10steps_6 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10050, "TemplateTask_10steps_6 task finished with error!"); + errorDescriptionDict.Add(10051, "TemplateTask_10steps_6 task was aborted, while not yet completed!"); // TemplateTask_20steps_1 - errorDescriptionDict.Add(860, "TemplateTask_20steps_1 task finished with error!"); - errorDescriptionDict.Add(861, "TemplateTask_20steps_1 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10060, "TemplateTask_20steps_1 task finished with error!"); + errorDescriptionDict.Add(10061, "TemplateTask_20steps_1 task was aborted, while not yet completed!"); // TemplateTask_20steps_2 - errorDescriptionDict.Add(880, "TemplateTask_20steps_2 task finished with error!"); - errorDescriptionDict.Add(881, "TemplateTask_20steps_2 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10080, "TemplateTask_20steps_2 task finished with error!"); + errorDescriptionDict.Add(10081, "TemplateTask_20steps_2 task was aborted, while not yet completed!"); // TemplateTask_20steps_3 - errorDescriptionDict.Add(900, "TemplateTask_20steps_3 task finished with error!"); - errorDescriptionDict.Add(901, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10100, "TemplateTask_20steps_3 task finished with error!"); + errorDescriptionDict.Add(10101, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); // TemplateTask_20steps_4 - errorDescriptionDict.Add(920, "TemplateTask_20steps_4 task finished with error!"); - errorDescriptionDict.Add(921, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10120, "TemplateTask_20steps_4 task finished with error!"); + errorDescriptionDict.Add(10121, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); // TemplateTask_20steps_5 - errorDescriptionDict.Add(940, "TemplateTask_20steps_5 task finished with error!"); - errorDescriptionDict.Add(941, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10140, "TemplateTask_20steps_5 task finished with error!"); + errorDescriptionDict.Add(10141, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); // TemplateTask_20steps_6 - errorDescriptionDict.Add(960, "TemplateTask_20steps_6 task finished with error!"); - errorDescriptionDict.Add(961, "TemplateTask_20steps_6 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10160, "TemplateTask_20steps_6 task finished with error!"); + errorDescriptionDict.Add(10161, "TemplateTask_20steps_6 task was aborted, while not yet completed!"); } @@ -604,42 +604,42 @@ public string ActionDescription // TurnTask - actionDescriptionDict.Add(800, "TurnTask finished with error!"); - actionDescriptionDict.Add(801, "TurnTask was aborted, while not yet completed!"); + actionDescriptionDict.Add(10000, "TurnTask finished with error!"); + actionDescriptionDict.Add(10001, "TurnTask was aborted, while not yet completed!"); // InitPositionTask - actionDescriptionDict.Add(810, "InitPositionTask finished with error!"); - actionDescriptionDict.Add(811, "InitPositionTask was aborted, while not yet completed!"); + actionDescriptionDict.Add(10010, "InitPositionTask finished with error!"); + actionDescriptionDict.Add(10011, "InitPositionTask was aborted, while not yet completed!"); // TemplateTask_10steps_3 - actionDescriptionDict.Add(820, "TemplateTask_10steps_3 finished with error!"); - actionDescriptionDict.Add(821, "TemplateTask_10steps_3 was aborted, while not yet completed!"); + actionDescriptionDict.Add(10020, "TemplateTask_10steps_3 finished with error!"); + actionDescriptionDict.Add(10021, "TemplateTask_10steps_3 was aborted, while not yet completed!"); // TemplateTask_10steps_4 - actionDescriptionDict.Add(830, "TemplateTask_10steps_4 task finished with error!"); - actionDescriptionDict.Add(831, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10030, "TemplateTask_10steps_4 task finished with error!"); + actionDescriptionDict.Add(10031, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); // TemplateTask_10steps_5 - actionDescriptionDict.Add(840, "TemplateTask_10steps_5 task finished with error!"); - actionDescriptionDict.Add(841, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10040, "TemplateTask_10steps_5 task finished with error!"); + actionDescriptionDict.Add(10041, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); // TemplateTask_10steps_6 - actionDescriptionDict.Add(850, "TemplateTask_10steps_6 task finished with error!"); - actionDescriptionDict.Add(851, "TemplateTask_10steps_6 task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10050, "TemplateTask_10steps_6 task finished with error!"); + actionDescriptionDict.Add(10051, "TemplateTask_10steps_6 task was aborted, while not yet completed!"); // TemplateTask_20steps_1 - actionDescriptionDict.Add(860, "TemplateTask_20steps_1 task finished with error!"); - actionDescriptionDict.Add(861, "TemplateTask_20steps_1 task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10060, "TemplateTask_20steps_1 task finished with error!"); + actionDescriptionDict.Add(10061, "TemplateTask_20steps_1 task was aborted, while not yet completed!"); // TemplateTask_20steps_2 - actionDescriptionDict.Add(880, "TemplateTask_20steps_2 task finished with error!"); - actionDescriptionDict.Add(881, "TemplateTask_20steps_2 task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10080, "TemplateTask_20steps_2 task finished with error!"); + actionDescriptionDict.Add(10081, "TemplateTask_20steps_2 task was aborted, while not yet completed!"); // TemplateTask_20steps_3 - actionDescriptionDict.Add(900, "TemplateTask_20steps_3 task finished with error!"); - actionDescriptionDict.Add(901, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10100, "TemplateTask_20steps_3 task finished with error!"); + actionDescriptionDict.Add(10101, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); // TemplateTask_20steps_4 - actionDescriptionDict.Add(920, "TemplateTask_20steps_4 task finished with error!"); - actionDescriptionDict.Add(921, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10120, "TemplateTask_20steps_4 task finished with error!"); + actionDescriptionDict.Add(10121, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); // TemplateTask_20steps_5 - actionDescriptionDict.Add(940, "TemplateTask_20steps_5 task finished with error!"); - actionDescriptionDict.Add(941, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10140, "TemplateTask_20steps_5 task finished with error!"); + actionDescriptionDict.Add(10141, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); // TemplateTask_20steps_6 - actionDescriptionDict.Add(960, "TemplateTask_20steps_6 task finished with error!"); - actionDescriptionDict.Add(961, "TemplateTask_20steps_6 task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10160, "TemplateTask_20steps_6 task finished with error!"); + actionDescriptionDict.Add(10161, "TemplateTask_20steps_6 task was aborted, while not yet completed!"); } diff --git a/src/components.festo.drives/app/SystemConstants/plc_line_HwIdentifiers.st b/src/components.festo.drives/app/SystemConstants/plc_line_HwIdentifiers.st index 553dcc796..1fa6d7061 100644 --- a/src/components.festo.drives/app/SystemConstants/plc_line_HwIdentifiers.st +++ b/src/components.festo.drives/app/SystemConstants/plc_line_HwIdentifiers.st @@ -20,12 +20,12 @@ CONFIGURATION HardwareIDs plc_line_plc_line_Card_reader_writer_1_HwID : UINT := UINT#51; plc_line_plc_line_DP_interface_1_HwID : UINT := UINT#60; plc_line_plc_line_OPC_UA_1_HwID : UINT := UINT#117; + plc_line_plc_line_Virtual_communication_interface_HwID : UINT := UINT#135; plc_line_plc_line_profinet_x1_HwID : UINT := UINT#64; plc_line_plc_line_profinet_x1_Port_1_HwID : UINT := UINT#65; plc_line_plc_line_profinet_x1_Port_2_HwID : UINT := UINT#66; plc_line_plc_line_profinet_x2_HwID : UINT := UINT#72; plc_line_plc_line_profinet_x2_Port_3_HwID : UINT := UINT#73; - plc_line_plc_line_virtual_communication_interface_HwID : UINT := UINT#135; profinet_plc_line_HwID : UINT := UINT#256; END_VAR diff --git a/src/components.festo.drives/app/apax.yml b/src/components.festo.drives/app/apax.yml index 6c189543f..82f55665c 100644 --- a/src/components.festo.drives/app/apax.yml +++ b/src/components.festo.drives/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.festo.drives" +name: "app_axopen.components.festo.drives" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Festo.Drives" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,138 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + diff --git a/src/components.festo.drives/app/src/Documentation/Component_1.st b/src/components.festo.drives/app/src/Documentation/Component_1.st index b6f233904..76ca478e4 100644 --- a/src/components.festo.drives/app/src/Documentation/Component_1.st +++ b/src/components.festo.drives/app/src/Documentation/Component_1.st @@ -34,9 +34,6 @@ NAMESPACE AXOpen.Components.Festo.Drives // AxoCmmtAs.Run(parent := THIS, hwID := HwIdentifiers#cmmtas_HwID, - hwIdTelegram111 := HwIdentifiers#cmmtas_SiemensTelegram111_PZD_12_12_HwID, - hwIdTelegram750 := HwIdentifiers#cmmtas_SiemensTelegram750_PZD_4_1_HwID, - MAP_HW_ID := HwIdentifiers#cmmtas_cmmtas_DoServo_Module_Access_Point_HwID, Enable := Enable, EnablePositive := EnablePositive, EnableNegative := EnableNegative); @@ -48,7 +45,7 @@ NAMESPACE AXOpen.Components.Festo.Drives // VAR PUBLIC Sequencer : AxoSequencer; - Steps : ARRAY[0..30] OF AXOpen.Core.AxoStep; + Steps : ARRAY[0..40] OF AXOpen.Core.AxoStep; END_VAR VAR PRIVATE @@ -56,8 +53,12 @@ NAMESPACE AXOpen.Components.Festo.Drives _BoolValue : BOOL; _DintValue : DINT; _RealValue : REAL; - _i : INT; _TaskState : IAxoTaskState; + ReadDigitalInput_Valid : BOOL; + ReadDigitalInput_Value : BOOL; + MoveVelocity_InVelocity : BOOL; + MoveTorque_InTorque : BOOL; + Stop_Done : BOOL; END_VAR METHOD PRIVATE UseInSequencer @@ -65,318 +66,375 @@ NAMESPACE AXOpen.Components.Festo.Drives Sequencer.Open(); Sequencer.SequenceMode := eAxoSequenceMode#RunOnce; - _i := 0; - IF(Steps[_i].Execute(Sequencer, 'Restore')) THEN + IF(Steps[2].Execute(Sequencer, TRUE, 'Restore')) THEN manualControl := FALSE; Enable := FALSE; EnablePositive := FALSE; EnableNegative := FALSE; - AxoCmmtAs.Restore(); + AxoCmmtAs.Restore(); Sequencer.MoveNext(); + RETURN; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Reset drive')) THEN + IF(Steps[3].Execute(Sequencer, TRUE, 'Reset drive')) THEN IF(AxoCmmtAs.AxoReset().IsDone()) THEN - Sequencer.MoveNext(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Enable drive')) THEN + IF(Steps[4].Execute(Sequencer, TRUE, 'Enable drive')) THEN Enable := TRUE; EnablePositive := TRUE; EnableNegative := TRUE; IF(AxoCmmtAs.AxoPower_Status) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Drive homming')) THEN - IF(AxoCmmtAs.AxoHome( Position := LREAL#0.005, - HommingMode := INT#-17, - Velocity := LREAL#0.01, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0 - ).IsDone()) THEN - Sequencer.MoveNext(); - AxoCmmtAs.Restore(); + IF(Steps[5].Execute(Sequencer, TRUE, 'Drive homming')) THEN + IF(AxoCmmtAs.AxoHome( Position := LREAL#5.0, + HommingMode := INT#1, // Negative hardware limit switch with zero pulse + Velocity := LREAL#10.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0049 AND AxoCmmtAs.ActualPosition <=0.0051) THEN - Sequencer.MoveNext(); + + IF(Steps[6].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=4.9 AND AxoCmmtAs.ActualPosition <=5.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Set position')) THEN + IF(Steps[7].Execute(Sequencer, TRUE, 'Set position')) THEN IF(AxoCmmtAs.AxoSetPosition(Position := LREAL#0.0).IsDone()) THEN + AxoCmmtAs.Restore(); Sequencer.MoveNext(); - AxoCmmtAs.Restore(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=-0.0001 AND AxoCmmtAs.ActualPosition <=0.0001) THEN - Sequencer.MoveNext(); + IF(Steps[8].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=-0.1 AND AxoCmmtAs.ActualPosition <=0.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move absolute')) THEN - IF(AxoCmmtAs.AxoMoveAbsolute( Position := LREAL#0.005, - Velocity := LREAL#0.3, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ).IsDone()) THEN - Sequencer.MoveNext(); - AxoCmmtAs.Restore(); + IF(Steps[9].Execute(Sequencer, TRUE, 'Move absolute')) THEN + IF(AxoCmmtAs.AxoMoveAbsolute( ContinuousUpdate := FALSE, + Position := LREAL#5.0, + Velocity := LREAL#5.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0049 AND AxoCmmtAs.ActualPosition <=0.0051) THEN - Sequencer.MoveNext(); + IF(Steps[10].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=4.9 AND AxoCmmtAs.ActualPosition <=5.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move additive')) THEN - AxoCmmtAs.AxoMoveAbsolute( Position := LREAL#0.010, - Velocity := LREAL#0.3, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ); - IF AxoCmmtAs.ActualPosition > 0.006 THEN - AxoCmmtAs.AxoMoveAdditive( Distance := LREAL#0.005, - Velocity := LREAL#0.1, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ); - END_IF; - IF(AxoCmmtAs.AxoMoveAdditive_Task.IsDone()) THEN - Sequencer.MoveNext(); - AxoCmmtAs.Restore(); + IF(Steps[11].Execute(Sequencer, TRUE, 'Move absolute')) THEN + AxoCmmtAs.AxoMoveAbsolute( ContinuousUpdate := FALSE, + Position := LREAL#10.0, + Velocity := LREAL#1.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ); + IF AxoCmmtAs.ActualPosition > 6.0 THEN + // AxoCmmtAs.Restore(); // commented out as we need to keep it moving after exiting this step + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[12].Execute(Sequencer, TRUE, 'Move additive')) THEN + IF AxoCmmtAs.AxoMoveAdditive( ContinuousUpdate := FALSE, + Distance := LREAL#5.0, + Velocity := LREAL#5.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone() THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0149 AND AxoCmmtAs.ActualPosition <=0.0151) THEN - Sequencer.MoveNext(); + IF(Steps[13].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=14.9 AND AxoCmmtAs.ActualPosition <=15.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move relative')) THEN - IF(AxoCmmtAs.AxoMoveRelative( Distance := LREAL#-0.0050, - Velocity := LREAL#0.10, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ).IsDone()) THEN - Sequencer.MoveNext(); - AxoCmmtAs.Restore(); + IF(Steps[14].Execute(Sequencer, TRUE, 'Move relative')) THEN + IF(AxoCmmtAs.AxoMoveRelative( ContinuousUpdate := FALSE, + Distance := LREAL#-5.0, + Velocity := LREAL#5.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0099 AND AxoCmmtAs.ActualPosition <=0.0101) THEN - Sequencer.MoveNext(); + IF(Steps[15].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=9.9 AND AxoCmmtAs.ActualPosition <=10.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Read digital input')) THEN - AxoCmmtAs.AxoReadDigitalInput(Enable := TRUE, InputNumber := 2 , Valid=> _Valid, Value => _BoolValue); - IF(_Valid AND _BoolValue) THEN - Sequencer.MoveNext(); - AxoCmmtAs.AxoReadDigitalInput(Enable :=FALSE); - AxoCmmtAs.Restore(); + IF(Steps[16].Execute(Sequencer, TRUE, 'Read digital input')) THEN + AxoCmmtAs.AxoReadDigitalInput(Enable := TRUE, InputNumber := 38 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // 38~~X1C.7 Negative limit switch + IF(ReadDigitalInput_Valid AND ReadDigitalInput_Value) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move velocity')) THEN - AxoCmmtAs.AxoMoveVelocity( Velocity := LREAL#0.01, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0, - Direction := eAxoDriveDirection#NegativeDirection, - InVelocity => _BoolValue); - IF(_BoolValue) THEN + IF(Steps[17].Execute(Sequencer, TRUE, 'Stop reading digital input')) THEN + AxoCmmtAs.AxoReadDigitalInput(Enable := FALSE, InputNumber := 38 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // 38~~X1C.7 Negative limit switch + IF(NOT ReadDigitalInput_Valid AND NOT ReadDigitalInput_Value) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[18].Execute(Sequencer, TRUE, 'Move velocity')) THEN + AxoCmmtAs.AxoMoveVelocity( ContinuousUpdate := FALSE, + Velocity := LREAL#2.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Direction := eAxoDriveDirection#NegativeDirection, + InVelocity => MoveVelocity_InVelocity); + IF MoveVelocity_InVelocity THEN + MoveVelocity_InVelocity := FALSE; + AxoCmmtAs.Restore(); Sequencer.MoveNext(); - AxoCmmtAs.Restore(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Halt')) THEN - IF(AxoCmmtAs.AxoHalt( Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ).IsDone()) THEN - Sequencer.MoveNext(); - AxoCmmtAs.Restore(); - RETURN; + IF(Steps[19].Execute(Sequencer, TRUE, 'Halt')) THEN + IF(AxoCmmtAs.AxoHalt( Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move velocity')) THEN - AxoCmmtAs.AxoMoveVelocity( Velocity := LREAL#0.01, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0, - Direction := eAxoDriveDirection#PositiveDirection, - InVelocity => _BoolValue); - IF(_BoolValue) THEN - Sequencer.MoveNext(); - AxoCmmtAs.Restore(); + IF(Steps[20].Execute(Sequencer, TRUE, 'Move velocity')) THEN + AxoCmmtAs.AxoMoveVelocity( ContinuousUpdate := FALSE, + Velocity := LREAL#2.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Direction := eAxoDriveDirection#NegativeDirection, + InVelocity => MoveVelocity_InVelocity); + IF MoveVelocity_InVelocity THEN + MoveVelocity_InVelocity := FALSE; + // AxoCmmtAs.Restore(); // commented out as we need to keep it moving after exiting this step + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Read digital input')) THEN - AxoCmmtAs.AxoReadDigitalInput(Enable := TRUE, InputNumber := 2 , Valid=> _Valid, Value => _BoolValue); - IF(_Valid AND _BoolValue) THEN - Sequencer.MoveNext(); + IF(Steps[21].Execute(Sequencer, TRUE, 'Read digital input')) THEN + AxoCmmtAs.AxoReadDigitalInput(Enable := TRUE, InputNumber := 38 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // 38~~X1C.7 Negative limit switch + IF(ReadDigitalInput_Valid AND NOT ReadDigitalInput_Value) THEN AxoCmmtAs.AxoReadDigitalInput(Enable :=FALSE); - AxoCmmtAs.Restore(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Disable drive')) THEN + IF(Steps[22].Execute(Sequencer, TRUE, 'Stop reading digital input')) THEN + AxoCmmtAs.AxoReadDigitalInput(Enable := FALSE, InputNumber := 38 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // 38~~X1C.7 Negative limit switch + IF(NOT ReadDigitalInput_Valid AND NOT ReadDigitalInput_Value) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[23].Execute(Sequencer, TRUE, 'Disable drive')) THEN Enable := FALSE; - EnablePositive := TRUE; - EnableNegative := TRUE; + EnablePositive := FALSE; + EnableNegative := FALSE; IF(NOT AxoCmmtAs.AxoPower_Status) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Reset drive')) THEN - AxoCmmtAs.AxoReset(); - Sequencer.MoveNext(); + IF(Steps[24].Execute(Sequencer, TRUE, 'Restore')) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Enable drive')) THEN + IF(Steps[25].Execute(Sequencer, TRUE, 'Reset drive')) THEN + IF(AxoCmmtAs.AxoReset().IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[26].Execute(Sequencer, TRUE, 'Enable drive')) THEN Enable := TRUE; EnablePositive := TRUE; EnableNegative := TRUE; IF(AxoCmmtAs.AxoPower_Status) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Jog')) THEN + IF(Steps[27].Execute(Sequencer, TRUE, 'Jog')) THEN manualControl := TRUE; - AxoCmmtAs.AxoJogPositive.RemoteSwitchOn := AxoCmmtAs.ActualPosition <= 0.02; - AxoCmmtAs.AxoJog_Velocity := LREAL#0.01; - AxoCmmtAs.AxoJog_Acceleration := LREAL#1.0; - AxoCmmtAs.AxoJog_Deceleration := LREAL#1.0; - AxoCmmtAs.AxoJog_Jerk := LREAL#100.0; + AxoCmmtAs.AxoJogPositive.RemoteSwitchOn := TRUE; + AxoCmmtAs.AxoJog_Velocity := LREAL#10.0; + AxoCmmtAs.AxoJog_Acceleration := LREAL#1500.0; + AxoCmmtAs.AxoJog_Deceleration := LREAL#1500.0; + AxoCmmtAs.AxoJog_Jerk := LREAL#150000.0; AxoCmmtAs.AxoJog_Direction := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection; - IF(AxoCmmtAs.ActualPosition > 0.02) THEN + IF(AxoCmmtAs.ActualPosition > 1.0) THEN AxoCmmtAs.AxoJogPositive.RemoteSwitchOn := FALSE; END_IF; - IF(AxoCmmtAs.ActualPosition > 0.02 AND AxoCmmtAs.AxoHalt_Done) THEN - Sequencer.MoveNext(); + IF( AxoCmmtAs.ActualPosition > 1.0 AND + AxoCmmtAs.DriveState = AXOpen.Components.Drives.eAxoDriveState#Standstill AND + AxoCmmtAs.AxoHalt_Task.IsDone()) THEN manualControl := FALSE; - END_IF; + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Torque control')) THEN - AxoCmmtAs.AxoTorqueControl( Torque := LREAL#0.6 , - TorqueRamp := LREAL#1.0 , - PositionLimit := LREAL#0.100, - Velocity := LREAL#1.0, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0, - Direction := eAxoDriveDirection#PositiveDirection, - InTorque => _BoolValue); - IF(_BoolValue) THEN - Sequencer.MoveNext(); - AxoCmmtAs.Restore(); + IF(Steps[28].Execute(Sequencer, TRUE, 'Torque control')) THEN + AxoCmmtAs.AxoTorqueControl( ContinuousUpdate := FALSE, + Torque := LREAL#0.1, + TorqueRamp := LREAL#1.0, + PositionLimit := LREAL#50.0, + Velocity := LREAL#50.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Direction := eAxoDriveDirection#PositiveDirection, + InTorque => MoveTorque_InTorque); + IF MoveTorque_InTorque THEN + MoveTorque_InTorque := FALSE; + // AxoCmmtAs.Restore(); // commented out as we need to stay in torque up to reach the position 10.0 + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0021) THEN - Sequencer.MoveNext(); + IF(Steps[29].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=10.0) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Stop')) THEN - AxoCmmtAs.AxoStop( Deceleration := LREAL#1.0, - Jerk := LREAL#500.0, - Done => _BoolValue); - IF(_BoolValue) THEN - Sequencer.MoveNext(); + IF(Steps[30].Execute(Sequencer, TRUE, 'Stop')) THEN + AxoCmmtAs.AxoStop( Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Done => Stop_Done); + IF(Stop_Done) THEN + Stop_Done := FALSE; + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Release stop')) THEN + IF(Steps[31].Execute(Sequencer, TRUE, 'Release stop')) THEN AxoCmmtAs.AxoStop_Task.Restore(); IF(AxoCmmtAs.AxoStop_Task.IsReady()) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move absolute')) THEN - IF(AxoCmmtAs.AxoMoveAbsolute( Position := LREAL#0.0, - Velocity := LREAL#0.5, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ).IsDone()) THEN - Sequencer.MoveNext(); - AxoCmmtAs.Restore(); + IF(Steps[32].Execute(Sequencer, TRUE, 'Move absolute')) THEN + IF(AxoCmmtAs.AxoMoveAbsolute( ContinuousUpdate := FALSE, + Position := LREAL#0.0, + Velocity := LREAL#10.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Disable drive')) THEN - Enable := FALSE; - EnablePositive := FALSE; - EnableNegative := FALSE; + IF(Steps[33].Execute(Sequencer, TRUE, 'Disable drive')) THEN + AxoCmmtAsEnable := FALSE; + AxoCmmtAsEnablePositive := FALSE; + AxoCmmtAsEnableNegative := FALSE; IF(NOT AxoCmmtAs.AxoPower_Status) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Reset drive')) THEN + IF(Steps[34].Execute(Sequencer, TRUE, 'Reset drive')) THEN IF(AxoCmmtAs.AxoReset().IsDone()) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Restore')) THEN - AxoCmmtAs.Restore(); - Sequencer.CompleteSequence(); + IF(Steps[35].Execute(Sequencer, TRUE, 'Restore')) THEN + AxoCmmtAs.Restore(); + Sequencer.CompleteSequence(); END_IF; + END_METHOD // END_CLASS diff --git a/src/components.festo.drives/app/src/Documentation/Component_2.st b/src/components.festo.drives/app/src/Documentation/Component_2.st index 93395fa25..88dacb241 100644 --- a/src/components.festo.drives/app/src/Documentation/Component_2.st +++ b/src/components.festo.drives/app/src/Documentation/Component_2.st @@ -19,11 +19,11 @@ NAMESPACE AXOpen.Components.Festo.Drives END_VAR // - METHOD PUBLIC OVERRIDE Run VAR_INPUT parent : IAxoObject; END_VAR + // RETURN; SUPER.Run(parent); @@ -32,11 +32,8 @@ NAMESPACE AXOpen.Components.Festo.Drives END_IF; // - AxoCmmtAs.Run(parent := THIS, + AxoCmmtAs.Run(parent := THIS, hwID := HwIdentifiers#cmmtas_HwID, - hwIdTelegram111 := HwIdentifiers#cmmtas_SiemensTelegram111_PZD_12_12_HwID, - hwIdTelegram750 := HwIdentifiers#cmmtas_SiemensTelegram750_PZD_4_1_HwID, - MAP_HW_ID := HwIdentifiers#cmmtas_cmmtas_DoServo_Module_Access_Point_HwID, Enable := Enable, EnablePositive := EnablePositive, EnableNegative := EnableNegative); @@ -48,7 +45,7 @@ NAMESPACE AXOpen.Components.Festo.Drives // VAR PUBLIC Sequencer : AxoSequencer; - Steps : ARRAY[0..30] OF AXOpen.Core.AxoStep; + Steps : ARRAY[0..40] OF AXOpen.Core.AxoStep; END_VAR VAR PRIVATE @@ -56,8 +53,12 @@ NAMESPACE AXOpen.Components.Festo.Drives _BoolValue : BOOL; _DintValue : DINT; _RealValue : REAL; - _i : INT; _TaskState : IAxoTaskState; + ReadDigitalInput_Valid : BOOL; + ReadDigitalInput_Value : BOOL; + MoveVelocity_InVelocity : BOOL; + MoveTorque_InTorque : BOOL; + Stop_Done : BOOL; END_VAR METHOD PRIVATE UseInSequencer @@ -65,310 +66,375 @@ NAMESPACE AXOpen.Components.Festo.Drives Sequencer.Open(); Sequencer.SequenceMode := eAxoSequenceMode#RunOnce; - _i := 0; - IF(Steps[_i].Execute(Sequencer, 'Restore')) THEN + IF(Steps[2].Execute(Sequencer, TRUE, 'Restore')) THEN manualControl := FALSE; Enable := FALSE; EnablePositive := FALSE; EnableNegative := FALSE; - AxoCmmtAs.Restore(); + AxoCmmtAs.Restore(); Sequencer.MoveNext(); + RETURN; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Reset drive')) THEN + IF(Steps[3].Execute(Sequencer, TRUE, 'Reset drive')) THEN IF(AxoCmmtAs.AxoReset().IsDone()) THEN - Sequencer.MoveNext(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Enable drive')) THEN + IF(Steps[4].Execute(Sequencer, TRUE, 'Enable drive')) THEN Enable := TRUE; EnablePositive := TRUE; EnableNegative := TRUE; IF(AxoCmmtAs.AxoPower_Status) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Drive homming')) THEN - IF(AxoCmmtAs.AxoHome( Position := LREAL#0.005, - HommingMode := INT#-17, - Velocity := LREAL#0.01, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0 - ).IsDone()) THEN - Sequencer.MoveNext(); + IF(Steps[5].Execute(Sequencer, TRUE, 'Drive homming')) THEN + IF(AxoCmmtAs.AxoHome( Position := LREAL#5.0, + HommingMode := INT#1, // Negative hardware limit switch with zero pulse + Velocity := LREAL#10.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0049 AND AxoCmmtAs.ActualPosition <=0.0051) THEN - Sequencer.MoveNext(); + + IF(Steps[6].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=4.9 AND AxoCmmtAs.ActualPosition <=5.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Set position')) THEN + IF(Steps[7].Execute(Sequencer, TRUE, 'Set position')) THEN IF(AxoCmmtAs.AxoSetPosition(Position := LREAL#0.0).IsDone()) THEN + AxoCmmtAs.Restore(); Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=-0.0001 AND AxoCmmtAs.ActualPosition <=0.0001) THEN - Sequencer.MoveNext(); + IF(Steps[8].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=-0.1 AND AxoCmmtAs.ActualPosition <=0.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move absolute')) THEN - IF(AxoCmmtAs.AxoMoveAbsolute( Position := LREAL#0.005, - Velocity := LREAL#0.3, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ).IsDone()) THEN - Sequencer.MoveNext(); - AxoCmmtAs.AxoMoveAbsolute_Task.Restore(); - RETURN; + IF(Steps[9].Execute(Sequencer, TRUE, 'Move absolute')) THEN + IF(AxoCmmtAs.AxoMoveAbsolute( ContinuousUpdate := FALSE, + Position := LREAL#5.0, + Velocity := LREAL#5.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0049 AND AxoCmmtAs.ActualPosition <=0.0051) THEN - Sequencer.MoveNext(); + IF(Steps[10].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=4.9 AND AxoCmmtAs.ActualPosition <=5.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move additive')) THEN - AxoCmmtAs.AxoMoveAbsolute( Position := LREAL#0.010, - Velocity := LREAL#0.3, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ); - IF AxoCmmtAs.ActualPosition > 0.006 THEN - AxoCmmtAs.AxoMoveAdditive( Distance := LREAL#0.005, - Velocity := LREAL#0.1, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ); - END_IF; - IF(AxoCmmtAs.AxoMoveAdditive_Task.IsDone()) THEN - Sequencer.MoveNext(); + IF(Steps[11].Execute(Sequencer, TRUE, 'Move absolute')) THEN + AxoCmmtAs.AxoMoveAbsolute( ContinuousUpdate := FALSE, + Position := LREAL#10.0, + Velocity := LREAL#1.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ); + IF AxoCmmtAs.ActualPosition > 6.0 THEN + // AxoCmmtAs.Restore(); // commented out as we need to keep it moving after exiting this step + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[12].Execute(Sequencer, TRUE, 'Move additive')) THEN + IF AxoCmmtAs.AxoMoveAdditive( ContinuousUpdate := FALSE, + Distance := LREAL#5.0, + Velocity := LREAL#5.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone() THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0149 AND AxoCmmtAs.ActualPosition <=0.0151) THEN - Sequencer.MoveNext(); + IF(Steps[13].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=14.9 AND AxoCmmtAs.ActualPosition <=15.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move relative')) THEN - IF(AxoCmmtAs.AxoMoveRelative( Distance := LREAL#-0.0050, - Velocity := LREAL#0.10, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ).IsDone()) THEN - Sequencer.MoveNext(); + IF(Steps[14].Execute(Sequencer, TRUE, 'Move relative')) THEN + IF(AxoCmmtAs.AxoMoveRelative( ContinuousUpdate := FALSE, + Distance := LREAL#-5.0, + Velocity := LREAL#5.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0099 AND AxoCmmtAs.ActualPosition <=0.0101) THEN - Sequencer.MoveNext(); + IF(Steps[15].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=9.9 AND AxoCmmtAs.ActualPosition <=10.1) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Read digital input')) THEN - AxoCmmtAs.AxoReadDigitalInput(Enable := TRUE, InputNumber := 2 , Valid=> _Valid, Value => _BoolValue); - IF(_Valid AND _BoolValue) THEN - Sequencer.MoveNext(); - AxoCmmtAs.AxoReadDigitalInput(Enable :=FALSE); + IF(Steps[16].Execute(Sequencer, TRUE, 'Read digital input')) THEN + AxoCmmtAs.AxoReadDigitalInput(Enable := TRUE, InputNumber := 38 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // 38~~X1C.7 Negative limit switch + IF(ReadDigitalInput_Valid AND ReadDigitalInput_Value) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move velocity')) THEN - AxoCmmtAs.AxoMoveVelocity( Velocity := LREAL#0.01, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0, - Direction := eAxoDriveDirection#NegativeDirection, - InVelocity => _BoolValue); - IF(_BoolValue) THEN + IF(Steps[17].Execute(Sequencer, TRUE, 'Stop reading digital input')) THEN + AxoCmmtAs.AxoReadDigitalInput(Enable := FALSE, InputNumber := 38 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // 38~~X1C.7 Negative limit switch + IF(NOT ReadDigitalInput_Valid AND NOT ReadDigitalInput_Value) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[18].Execute(Sequencer, TRUE, 'Move velocity')) THEN + AxoCmmtAs.AxoMoveVelocity( ContinuousUpdate := FALSE, + Velocity := LREAL#2.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Direction := eAxoDriveDirection#NegativeDirection, + InVelocity => MoveVelocity_InVelocity); + IF MoveVelocity_InVelocity THEN + MoveVelocity_InVelocity := FALSE; + AxoCmmtAs.Restore(); Sequencer.MoveNext(); - AxoCmmtAs.AxoMoveVelocity_Task.Restore(); - RETURN; + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Halt')) THEN - IF(AxoCmmtAs.AxoHalt( Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ).IsDone()) THEN - Sequencer.MoveNext(); + IF(Steps[19].Execute(Sequencer, TRUE, 'Halt')) THEN + IF(AxoCmmtAs.AxoHalt( Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move velocity')) THEN - AxoCmmtAs.AxoMoveVelocity( Velocity := LREAL#0.01, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0, - Direction := eAxoDriveDirection#PositiveDirection, - InVelocity => _BoolValue); - IF(_BoolValue) THEN - Sequencer.MoveNext(); + IF(Steps[20].Execute(Sequencer, TRUE, 'Move velocity')) THEN + AxoCmmtAs.AxoMoveVelocity( ContinuousUpdate := FALSE, + Velocity := LREAL#2.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Direction := eAxoDriveDirection#NegativeDirection, + InVelocity => MoveVelocity_InVelocity); + IF MoveVelocity_InVelocity THEN + MoveVelocity_InVelocity := FALSE; + // AxoCmmtAs.Restore(); // commented out as we need to keep it moving after exiting this step + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Read digital input')) THEN - AxoCmmtAs.AxoReadDigitalInput(Enable := TRUE, InputNumber := 2 , Valid=> _Valid, Value => _BoolValue); - IF(_Valid AND _BoolValue) THEN - Sequencer.MoveNext(); + IF(Steps[21].Execute(Sequencer, TRUE, 'Read digital input')) THEN + AxoCmmtAs.AxoReadDigitalInput(Enable := TRUE, InputNumber := 38 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // 38~~X1C.7 Negative limit switch + IF(ReadDigitalInput_Valid AND NOT ReadDigitalInput_Value) THEN AxoCmmtAs.AxoReadDigitalInput(Enable :=FALSE); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; + IF(Steps[22].Execute(Sequencer, TRUE, 'Stop reading digital input')) THEN + AxoCmmtAs.AxoReadDigitalInput(Enable := FALSE, InputNumber := 38 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // 38~~X1C.7 Negative limit switch + IF(NOT ReadDigitalInput_Valid AND NOT ReadDigitalInput_Value) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Disable drive')) THEN + IF(Steps[23].Execute(Sequencer, TRUE, 'Disable drive')) THEN Enable := FALSE; - EnablePositive := TRUE; - EnableNegative := TRUE; + EnablePositive := FALSE; + EnableNegative := FALSE; IF(NOT AxoCmmtAs.AxoPower_Status) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Reset drive')) THEN - AxoCmmtAs.AxoReset(); - Sequencer.MoveNext(); + IF(Steps[24].Execute(Sequencer, TRUE, 'Restore')) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Enable drive')) THEN + IF(Steps[25].Execute(Sequencer, TRUE, 'Reset drive')) THEN + IF(AxoCmmtAs.AxoReset().IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[26].Execute(Sequencer, TRUE, 'Enable drive')) THEN Enable := TRUE; EnablePositive := TRUE; EnableNegative := TRUE; IF(AxoCmmtAs.AxoPower_Status) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Jog')) THEN + IF(Steps[27].Execute(Sequencer, TRUE, 'Jog')) THEN manualControl := TRUE; - AxoCmmtAs.AxoJogPositive.RemoteSwitchOn := AxoCmmtAs.ActualPosition <= 0.02; - AxoCmmtAs.AxoJog_Velocity := LREAL#0.01; - AxoCmmtAs.AxoJog_Acceleration := LREAL#1.0; - AxoCmmtAs.AxoJog_Deceleration := LREAL#1.0; - AxoCmmtAs.AxoJog_Jerk := LREAL#100.0; + AxoCmmtAs.AxoJogPositive.RemoteSwitchOn := TRUE; + AxoCmmtAs.AxoJog_Velocity := LREAL#10.0; + AxoCmmtAs.AxoJog_Acceleration := LREAL#1500.0; + AxoCmmtAs.AxoJog_Deceleration := LREAL#1500.0; + AxoCmmtAs.AxoJog_Jerk := LREAL#150000.0; AxoCmmtAs.AxoJog_Direction := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection; - IF(AxoCmmtAs.ActualPosition > 0.02) THEN + IF(AxoCmmtAs.ActualPosition > 1.0) THEN AxoCmmtAs.AxoJogPositive.RemoteSwitchOn := FALSE; END_IF; - IF(AxoCmmtAs.ActualPosition > 0.02 AND AxoCmmtAs.AxoHalt_Done) THEN - Sequencer.MoveNext(); + IF( AxoCmmtAs.ActualPosition > 1.0 AND + AxoCmmtAs.DriveState = AXOpen.Components.Drives.eAxoDriveState#Standstill AND + AxoCmmtAs.AxoHalt_Task.IsDone()) THEN manualControl := FALSE; - END_IF; + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Torque control')) THEN - AxoCmmtAs.AxoTorqueControl( Torque := LREAL#0.6 , - TorqueRamp := LREAL#1.0 , - PositionLimit := LREAL#0.100, - Velocity := LREAL#1.0, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0, - Direction := eAxoDriveDirection#PositiveDirection, - InTorque => _BoolValue); - IF(_BoolValue) THEN - Sequencer.MoveNext(); + IF(Steps[28].Execute(Sequencer, TRUE, 'Torque control')) THEN + AxoCmmtAs.AxoTorqueControl( ContinuousUpdate := FALSE, + Torque := LREAL#0.1, + TorqueRamp := LREAL#1.0, + PositionLimit := LREAL#50.0, + Velocity := LREAL#50.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Direction := eAxoDriveDirection#PositiveDirection, + InTorque => MoveTorque_InTorque); + IF MoveTorque_InTorque THEN + MoveTorque_InTorque := FALSE; + // AxoCmmtAs.Restore(); // commented out as we need to stay in torque up to reach the position 10.0 + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Check position')) THEN - IF(AxoCmmtAs.ActualPosition >=0.0021) THEN - Sequencer.MoveNext(); + IF(Steps[29].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(AxoCmmtAs.ActualPosition >=10.0) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Stop')) THEN - AxoCmmtAs.AxoStop( Deceleration := LREAL#1.0, - Jerk := LREAL#500.0, - Done => _BoolValue); - IF(_BoolValue) THEN - Sequencer.MoveNext(); + IF(Steps[30].Execute(Sequencer, TRUE, 'Stop')) THEN + AxoCmmtAs.AxoStop( Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Done => Stop_Done); + IF(Stop_Done) THEN + Stop_Done := FALSE; + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Release stop')) THEN + IF(Steps[31].Execute(Sequencer, TRUE, 'Release stop')) THEN AxoCmmtAs.AxoStop_Task.Restore(); IF(AxoCmmtAs.AxoStop_Task.IsReady()) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Move absolute')) THEN - IF(AxoCmmtAs.AxoMoveAbsolute( Position := LREAL#0.0, - Velocity := LREAL#0.5, - Acceleration := LREAL#1.0, - Deceleration := LREAL#1.0, - Jerk := LREAL#500.0 - ).IsDone()) THEN - Sequencer.MoveNext(); + IF(Steps[32].Execute(Sequencer, TRUE, 'Move absolute')) THEN + IF(AxoCmmtAs.AxoMoveAbsolute( ContinuousUpdate := FALSE, + Position := LREAL#0.0, + Velocity := LREAL#10.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Disable drive')) THEN - Enable := FALSE; - EnablePositive := FALSE; - EnableNegative := FALSE; + IF(Steps[33].Execute(Sequencer, TRUE, 'Disable drive')) THEN + AxoCmmtAsEnable := FALSE; + AxoCmmtAsEnablePositive := FALSE; + AxoCmmtAsEnableNegative := FALSE; IF(NOT AxoCmmtAs.AxoPower_Status) THEN - Sequencer.CompleteSequence(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Reset drive')) THEN + IF(Steps[34].Execute(Sequencer, TRUE, 'Reset drive')) THEN IF(AxoCmmtAs.AxoReset().IsDone()) THEN - Sequencer.MoveNext(); + AxoCmmtAs.Restore(); + Sequencer.MoveNext(); + RETURN; END_IF; END_IF; - _i := _i + 1; - IF(Steps[_i].Execute(Sequencer, 'Restore')) THEN - AxoCmmtAs.Restore(); - Sequencer.CompleteSequence(); + IF(Steps[35].Execute(Sequencer, TRUE, 'Restore')) THEN + AxoCmmtAs.Restore(); + Sequencer.CompleteSequence(); END_IF; + END_METHOD // END_CLASS diff --git a/src/components.festo.drives/app/src/IO/HwIdentifiers.st b/src/components.festo.drives/app/src/IO/HwIdentifiers.st index e2da84206..54d563b7b 100644 --- a/src/components.festo.drives/app/src/IO/HwIdentifiers.st +++ b/src/components.festo.drives/app/src/IO/HwIdentifiers.st @@ -22,12 +22,12 @@ NAMESPACE AXOpen.Components.Festo.Drives plc_line_plc_line_Card_reader_writer_1_HwID := WORD#51, plc_line_plc_line_DP_interface_1_HwID := WORD#60, plc_line_plc_line_OPC_UA_1_HwID := WORD#117, + plc_line_plc_line_Virtual_communication_interface_HwID := WORD#135, plc_line_plc_line_profinet_x1_HwID := WORD#64, plc_line_plc_line_profinet_x1_Port_1_HwID := WORD#65, plc_line_plc_line_profinet_x1_Port_2_HwID := WORD#66, plc_line_plc_line_profinet_x2_HwID := WORD#72, plc_line_plc_line_profinet_x2_Port_3_HwID := WORD#73, - plc_line_plc_line_virtual_communication_interface_HwID := WORD#135, profinet_plc_line_HwID := WORD#256, NONE := WORD#0 diff --git a/src/components.festo.drives/app/src/Sandbox/SandboxContext.st b/src/components.festo.drives/app/src/Sandbox/SandboxContext.st index b4f186ffd..25a90ef85 100644 --- a/src/components.festo.drives/app/src/Sandbox/SandboxContext.st +++ b/src/components.festo.drives/app/src/Sandbox/SandboxContext.st @@ -49,9 +49,6 @@ NAMESPACE AXOpen.Components.Festo.Drives END_IF; AxoCmmtAs.Run(parent := _rootObject, hwID := HwIdentifiers#cmmtas_HwID, - hwIdTelegram111 := HwIdentifiers#cmmtas_SiemensTelegram111_PZD_12_12_HwID, - hwIdTelegram750 := HwIdentifiers#cmmtas_SiemensTelegram750_PZD_4_1_HwID, - MAP_HW_ID := HwIdentifiers#cmmtas_cmmtas_DoServo_Module_Access_Point_HwID, Enable := Enable, EnablePositive := EnablePositive, EnableNegative := EnableNegative); diff --git a/src/components.festo.drives/components.festo.drives.sln b/src/components.festo.drives/components.festo.drives.sln index 65ea3b2fd..0810dc643 100644 --- a/src/components.festo.drives/components.festo.drives.sln +++ b/src/components.festo.drives/components.festo.drives.sln @@ -1,151 +1,151 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{019064C8-1D4D-4264-BD04-DDDFC4308D6D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{A29F313C-6B0C-4ECC-857E-27756B306E1A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{95651310-B9A5-4DC2-8E43-EC640FCBCE44}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{383C53AD-5BEE-4DDF-BB09-0E3376512BCC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{01341864-3B18-4E60-931F-98EAC24EEAE7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{DE253056-26FE-4BAE-851B-B6E94A77D22E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{C6BBE176-E1DC-4F3B-A0B0-756A935571E4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{3F2AD802-248D-47E4-880C-1653DE83926A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{1AEABE44-234E-47E0-9389-2C6CF046AAC3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_drives", "..\components.drives\src\AXOpen.Components.Drives\inxton_axopen_components_drives.csproj", "{69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_drives", "..\components.drives\src\AXOpen.Components.Drives\inxton_axopen_components_drives.csproj", "{AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazorapp", "app\ix-blazor\AXOpen.Components.Festo.Drives.blazorapp.csproj", "{907CE722-62D1-47FE-8FC8-35A4D8F80F4F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazorapp", "app\ix-blazor\AXOpen.Components.Festo.Drives.blazorapp.csproj", "{70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_axopen_components_festo_drives", "app\ix\app_axopen_components_festo_drives.csproj", "{B5E83C17-E527-416F-A55D-7344663794B6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_axopen_components_festo_drives", "app\ix\app_axopen_components_festo_drives.csproj", "{FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor\AXOpen.Components.Festo.Drives.blazor.csproj", "{A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor\AXOpen.Components.Festo.Drives.blazor.csproj", "{08965A8B-6912-41F7-A1B9-82AC0B8D3A43}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_festo_drives", "src\AXOpen.Components.Festo.Drives\inxton_axopen_components_festo_drives.csproj", "{DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_festo_drives", "src\AXOpen.Components.Festo.Drives\inxton_axopen_components_festo_drives.csproj", "{CF596C38-A60B-4642-9FFD-739BDCEDA455}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives_tests", "tests\AXOpen.Components.Festo.Drives.Tests\AXOpen.Components.Festo.Drives_tests.csproj", "{2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives_tests", "tests\AXOpen.Components.Festo.Drives.Tests\AXOpen.Components.Festo.Drives_tests.csproj", "{12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\core\src\AXOpen.Core.Blazor\axopen_core_blazor.csproj", "{B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\core\src\AXOpen.Core.Blazor\axopen_core_blazor.csproj", "{85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{2B450256-7867-4D61-B085-1E62FE41C89C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{7AE56C18-2193-4D11-8CFB-94ABD70CBF02}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{1ABE1403-917A-4A15-886B-28255241C646}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{03E434BE-A707-4EBF-8504-AB076AFACCB6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{8E45E5D7-C553-498C-ACF3-5FE833B39813}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{42CCCA07-4072-406E-8FD9-8C21D81DE8DB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{04FA926D-CA6F-4628-839A-106FB3ED6291}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{E21608C2-0913-4F35-8CB3-BE58A46CE344}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{98820E4B-60E0-47A2-B753-97B0264E787A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{0DDD6B05-155B-4939-A244-F097F7435EC9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{1A3CA764-788E-4738-A253-EF11E85F26A5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{52E629AE-AC63-407B-B5C5-B4032C907F3D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox\AXOpen.ToolBox.csproj", "{1250981A-A533-44B5-8853-5844A8B94163}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox\AXOpen.ToolBox.csproj", "{4C831B08-A31A-4878-8BF3-55E100D17A7C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "..\abstractions\src\AXOpen.Abstractions", "{3956B79E-24C0-4C62-B0B4-3F26AB5416A5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "..\abstractions\src\AXOpen.Abstractions", "{506FC316-4233-477B-8A4B-52A97FFC3A43}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\abstractions\src", "{F05C6C29-15DF-40DF-B985-47F1F659A2B3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\abstractions\src", "{88D1E3A0-11D6-4D0C-838A-45C9B89C7977}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstractions", "{C0CE9147-2DA1-49AC-806A-C4E7B1A1F8A3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstractions", "{1FEBCE20-0A5D-47B2-A182-B0EC70F34A6B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{17EEA354-B6D1-4E39-BBF8-1176460F4DF8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{026CEA7F-6046-46BC-AC65-D52FC0D8823B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{205CDFCE-B57C-4C27-9892-4D00CF169510}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{38429A87-485D-4C4A-8842-799533627C07}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{CAA833FA-DA2D-421F-A927-806CACADBA22}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{823917FB-A772-41A0-8165-53FDB5631002}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{1CB57C6C-551D-4EC3-B2FD-CF02F23AB858}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "..\base", "{D88EDBB6-1E75-44FD-A0B0-13B254DE18AC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "..\base", "{FFAA7124-46A7-42B3-806D-A6191A24301A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions", "{08A50F48-8C29-44C9-ACA5-F2C1B293B1A6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions", "{B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstractions\src", "{ED9488B3-925A-4AD9-B69F-94925DE42FB3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstractions\src", "{D4B589C8-8451-49F5-899E-7C6EE551013D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{4D1E7E70-94A5-4F1C-87E1-2C7C6159572B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{024D3BBF-7F13-4C01-A93A-35BCAA4D8033}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives", "..\components.drives\src\AXOpen.Components.Drives", "{9EEB1196-9525-424F-9D24-06C791B2723D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives", "..\components.drives\src\AXOpen.Components.Drives", "{3DE29700-9588-4FA8-9E55-AFAAB6079B3B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.drives\src", "{4DB67FD6-8972-402A-B97D-28497764367E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.drives\src", "{935E3F7E-9859-4C42-85CC-2C41255E561A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.drives", "..\components.drives", "{C1BB194D-4BE6-445B-8856-2BE47354911C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.drives", "..\components.drives", "{A95B3B75-BA4B-4A24-8423-0F7F567B63FE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{AC0BC2A2-E758-440E-97B2-13FB60A1B52B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{DC7412A2-F252-4408-98C6-28AAAF8915CC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{E6A2BD83-A2A7-43AB-81F2-95F77A1F52DA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{1ABBAB40-C0F6-47CC-9955-E45A4954D7E3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{B4D341AD-ED05-4D3A-B77F-440792E7F6DA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{C9A50598-A8C5-45B3-9878-1B107014525A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor", "{29097211-CA0C-4914-AB2F-BA70CB486C46}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor", "{AF8234A0-6224-4B8A-9BD1-1673447D1551}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives", "src\AXOpen.Components.Festo.Drives", "{FC80409E-28D4-479E-BC39-CB00ABCABC45}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives", "src\AXOpen.Components.Festo.Drives", "{283A01B7-7AFE-46A3-8093-EE737BF16464}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{91172136-EBF9-476A-9AD0-767862206D87}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BC80146C-7A5D-45E4-8C65-EC1E76C8E548}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.Tests", "tests\AXOpen.Components.Festo.Drives.Tests", "{2C2C7248-79D0-4983-A331-8FEEDBC900E4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.Tests", "tests\AXOpen.Components.Festo.Drives.Tests", "{7EF7D930-813F-45AE-B45E-0D67DFECA1ED}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7546452B-30DA-4A1A-A69C-B866133E1BF6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1589AACD-FDFB-4FD6-9AB2-791BCF986D93}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.festo.drives", "..\components.festo.drives", "{4CF427B8-81D0-48B0-B9F4-6E2629DAE963}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.festo.drives", "..\components.festo.drives", "{B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "..\core\src\AXOpen.Core.Blazor", "{F62482CB-0D61-4640-8166-315DB252A5F2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "..\core\src\AXOpen.Core.Blazor", "{96A2C2CF-9275-4743-A308-7FC44BF6346B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "..\core\src\AXOpen.Core", "{0ABB5959-1AF4-4289-B1A9-B3301126B86A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "..\core\src\AXOpen.Core", "{85B06B85-89A3-4836-A4FC-0A36917D013E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{7444B7DD-5747-4DF2-8A2C-01B3651A6C8F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{C54DB5FB-93D2-4999-88E9-F586174B797C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{24DE9E19-E550-4AB4-B79F-1D71C5D9C579}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{3C5E1378-F872-4E82-B52D-A847344930CF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{E9FD5853-B939-49DD-BE98-93AA03CBF345}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{4984B4BF-EFED-4B22-B38E-D83E8EA5C361}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{2FC2CF37-9B1B-43B9-A765-33597E3C0CCC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{CC039A30-6AA5-4305-80A3-16AA7044A986}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{F827C714-4DA2-47B7-95FE-3D986752B6AE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{896998BB-B249-451F-A3A9-3A62D3D77A7E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{FF2A1720-45FA-42FE-A31B-A78101EF0D09}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{4F71F957-0CA1-4D88-BC9A-689936F71C6E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{D336FE23-7549-4A44-AF76-C54E4C2BED42}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{A373AE85-0BD9-43D8-BA03-3487A7A4465C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{F5D5C86A-96F3-47ED-A3DE-D12924334C32}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\io\src", "{F13D8A4C-E5BF-4C01-B504-66E43F82D177}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\io\src", "{B6A1803A-46A6-4264-8AE4-DE15FA9E690B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "..\io", "{982551A1-9CF3-46D5-BEC1-95BE94C48DB4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "..\io", "{B9F42C1B-37F0-4021-8E19-589AC49E7EB9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\sdk-ax\ctrl\ix", "{906F3D81-03A9-49A0-BD78-FF94B36B9EC8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\sdk-ax\ctrl\ix", "{3210DEAA-DEE3-4543-8100-8A177FAE2466}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{F11C5886-F059-4821-B814-D80AAC92F980}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{CB156B7E-0FC1-484C-895E-DB56609A8434}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{6B100CFB-B1D9-4EC6-95CD-38718D3879E7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{D8D56C6E-4020-4F2C-8E17-218ACF02CC59}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{62EF1534-28F2-46A2-A798-E6202045B98E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{A80CA72E-6877-4B3D-8174-B47FD5F42C92}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{49AFF210-5E12-4F9C-A0B9-D97B2C7579B7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{A27D7180-3E4A-431F-8644-E5C1D5F32B95}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{3C9EFEC2-724E-462F-B0B5-F23B6C29BDE3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{136622EA-40EC-4CA5-873B-D35335D94EC4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{B0E6D9FF-878A-451C-B41C-9A1374AB1295}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{1BFA9944-2C75-481E-B94A-C9F8247459F7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{FE35C140-921C-4D04-86BA-251762F2A7FB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{86A9F9A6-8A64-4F75-8A6C-892455A8E538}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{A50B4464-9329-414D-9DCD-14B7379EE93D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{321ABF68-D92F-438C-9FF0-A81C3E2663C0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{6A3692FD-80C0-420E-ACA0-3BFF3C7EEEA2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{4D2E0F64-C9DC-466E-8ABF-0FFFC6C057E3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{C9A31423-5400-4518-AB6A-C73252B316DC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\timers\src", "{B4EB2666-113B-4842-AFF2-914325BC23AE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\timers\src", "{101213E4-86F8-4ED4-9CF9-FE63BC0A57FF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "..\timers", "{E3262DA4-637B-4037-9121-344F87CF7ED5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "..\timers", "{A0B006F1-1A99-4229-94FF-120DEFCDDEF6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox", "{50E63130-CE6E-4196-95B7-1184F88C1DA4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox", "{ECB779F3-7314-4820-94F4-C67E51DAD356}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\toolbox\src", "{4BEEC294-B043-42B3-A1A1-909BF070F7F2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\toolbox\src", "{0D7A6701-3E3B-43C7-8298-8B6454A3570B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "..\toolbox", "{FE85BB14-CF5C-4073-BEAD-391ADBD4A5B0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "..\toolbox", "{BB37B576-B6E5-4E28-B1B1-BB13A54469D2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -153,165 +153,165 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {019064C8-1D4D-4264-BD04-DDDFC4308D6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {019064C8-1D4D-4264-BD04-DDDFC4308D6D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {019064C8-1D4D-4264-BD04-DDDFC4308D6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {019064C8-1D4D-4264-BD04-DDDFC4308D6D}.Release|Any CPU.Build.0 = Release|Any CPU - {95651310-B9A5-4DC2-8E43-EC640FCBCE44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95651310-B9A5-4DC2-8E43-EC640FCBCE44}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95651310-B9A5-4DC2-8E43-EC640FCBCE44}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95651310-B9A5-4DC2-8E43-EC640FCBCE44}.Release|Any CPU.Build.0 = Release|Any CPU - {01341864-3B18-4E60-931F-98EAC24EEAE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {01341864-3B18-4E60-931F-98EAC24EEAE7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {01341864-3B18-4E60-931F-98EAC24EEAE7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {01341864-3B18-4E60-931F-98EAC24EEAE7}.Release|Any CPU.Build.0 = Release|Any CPU - {DE253056-26FE-4BAE-851B-B6E94A77D22E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DE253056-26FE-4BAE-851B-B6E94A77D22E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DE253056-26FE-4BAE-851B-B6E94A77D22E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DE253056-26FE-4BAE-851B-B6E94A77D22E}.Release|Any CPU.Build.0 = Release|Any CPU - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}.Release|Any CPU.Build.0 = Release|Any CPU - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}.Release|Any CPU.Build.0 = Release|Any CPU - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}.Release|Any CPU.Build.0 = Release|Any CPU - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F}.Release|Any CPU.Build.0 = Release|Any CPU - {B5E83C17-E527-416F-A55D-7344663794B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5E83C17-E527-416F-A55D-7344663794B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5E83C17-E527-416F-A55D-7344663794B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5E83C17-E527-416F-A55D-7344663794B6}.Release|Any CPU.Build.0 = Release|Any CPU - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}.Release|Any CPU.Build.0 = Release|Any CPU - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}.Release|Any CPU.Build.0 = Release|Any CPU - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}.Release|Any CPU.Build.0 = Release|Any CPU - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}.Release|Any CPU.Build.0 = Release|Any CPU - {2B450256-7867-4D61-B085-1E62FE41C89C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B450256-7867-4D61-B085-1E62FE41C89C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B450256-7867-4D61-B085-1E62FE41C89C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B450256-7867-4D61-B085-1E62FE41C89C}.Release|Any CPU.Build.0 = Release|Any CPU - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}.Release|Any CPU.Build.0 = Release|Any CPU - {1ABE1403-917A-4A15-886B-28255241C646}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1ABE1403-917A-4A15-886B-28255241C646}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1ABE1403-917A-4A15-886B-28255241C646}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1ABE1403-917A-4A15-886B-28255241C646}.Release|Any CPU.Build.0 = Release|Any CPU - {03E434BE-A707-4EBF-8504-AB076AFACCB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {03E434BE-A707-4EBF-8504-AB076AFACCB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {03E434BE-A707-4EBF-8504-AB076AFACCB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {03E434BE-A707-4EBF-8504-AB076AFACCB6}.Release|Any CPU.Build.0 = Release|Any CPU - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}.Release|Any CPU.Build.0 = Release|Any CPU - {04FA926D-CA6F-4628-839A-106FB3ED6291}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04FA926D-CA6F-4628-839A-106FB3ED6291}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04FA926D-CA6F-4628-839A-106FB3ED6291}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04FA926D-CA6F-4628-839A-106FB3ED6291}.Release|Any CPU.Build.0 = Release|Any CPU - {98820E4B-60E0-47A2-B753-97B0264E787A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {98820E4B-60E0-47A2-B753-97B0264E787A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {98820E4B-60E0-47A2-B753-97B0264E787A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {98820E4B-60E0-47A2-B753-97B0264E787A}.Release|Any CPU.Build.0 = Release|Any CPU - {1A3CA764-788E-4738-A253-EF11E85F26A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1A3CA764-788E-4738-A253-EF11E85F26A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1A3CA764-788E-4738-A253-EF11E85F26A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1A3CA764-788E-4738-A253-EF11E85F26A5}.Release|Any CPU.Build.0 = Release|Any CPU - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}.Release|Any CPU.Build.0 = Release|Any CPU - {1250981A-A533-44B5-8853-5844A8B94163}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1250981A-A533-44B5-8853-5844A8B94163}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1250981A-A533-44B5-8853-5844A8B94163}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1250981A-A533-44B5-8853-5844A8B94163}.Release|Any CPU.Build.0 = Release|Any CPU + {A29F313C-6B0C-4ECC-857E-27756B306E1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A29F313C-6B0C-4ECC-857E-27756B306E1A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A29F313C-6B0C-4ECC-857E-27756B306E1A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A29F313C-6B0C-4ECC-857E-27756B306E1A}.Release|Any CPU.Build.0 = Release|Any CPU + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC}.Release|Any CPU.Build.0 = Release|Any CPU + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Release|Any CPU.Build.0 = Release|Any CPU + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Release|Any CPU.Build.0 = Release|Any CPU + {3F2AD802-248D-47E4-880C-1653DE83926A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F2AD802-248D-47E4-880C-1653DE83926A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F2AD802-248D-47E4-880C-1653DE83926A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F2AD802-248D-47E4-880C-1653DE83926A}.Release|Any CPU.Build.0 = Release|Any CPU + {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Release|Any CPU.Build.0 = Release|Any CPU + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Release|Any CPU.Build.0 = Release|Any CPU + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Release|Any CPU.Build.0 = Release|Any CPU + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Release|Any CPU.Build.0 = Release|Any CPU + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Release|Any CPU.Build.0 = Release|Any CPU + {CF596C38-A60B-4642-9FFD-739BDCEDA455}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF596C38-A60B-4642-9FFD-739BDCEDA455}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF596C38-A60B-4642-9FFD-739BDCEDA455}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF596C38-A60B-4642-9FFD-739BDCEDA455}.Release|Any CPU.Build.0 = Release|Any CPU + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}.Release|Any CPU.Build.0 = Release|Any CPU + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}.Release|Any CPU.Build.0 = Release|Any CPU + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Release|Any CPU.Build.0 = Release|Any CPU + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Release|Any CPU.Build.0 = Release|Any CPU + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Release|Any CPU.Build.0 = Release|Any CPU + {8E45E5D7-C553-498C-ACF3-5FE833B39813}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E45E5D7-C553-498C-ACF3-5FE833B39813}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E45E5D7-C553-498C-ACF3-5FE833B39813}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E45E5D7-C553-498C-ACF3-5FE833B39813}.Release|Any CPU.Build.0 = Release|Any CPU + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Release|Any CPU.Build.0 = Release|Any CPU + {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Release|Any CPU.Build.0 = Release|Any CPU + {0DDD6B05-155B-4939-A244-F097F7435EC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DDD6B05-155B-4939-A244-F097F7435EC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DDD6B05-155B-4939-A244-F097F7435EC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DDD6B05-155B-4939-A244-F097F7435EC9}.Release|Any CPU.Build.0 = Release|Any CPU + {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Release|Any CPU.Build.0 = Release|Any CPU + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Release|Any CPU.Build.0 = Release|Any CPU + {4C831B08-A31A-4878-8BF3-55E100D17A7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C831B08-A31A-4878-8BF3-55E100D17A7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C831B08-A31A-4878-8BF3-55E100D17A7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C831B08-A31A-4878-8BF3-55E100D17A7C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {95651310-B9A5-4DC2-8E43-EC640FCBCE44} = {3956B79E-24C0-4C62-B0B4-3F26AB5416A5} - {3956B79E-24C0-4C62-B0B4-3F26AB5416A5} = {F05C6C29-15DF-40DF-B985-47F1F659A2B3} - {F05C6C29-15DF-40DF-B985-47F1F659A2B3} = {C0CE9147-2DA1-49AC-806A-C4E7B1A1F8A3} - {01341864-3B18-4E60-931F-98EAC24EEAE7} = {17EEA354-B6D1-4E39-BBF8-1176460F4DF8} - {17EEA354-B6D1-4E39-BBF8-1176460F4DF8} = {823917FB-A772-41A0-8165-53FDB5631002} - {DE253056-26FE-4BAE-851B-B6E94A77D22E} = {026CEA7F-6046-46BC-AC65-D52FC0D8823B} - {026CEA7F-6046-46BC-AC65-D52FC0D8823B} = {823917FB-A772-41A0-8165-53FDB5631002} - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A} = {38429A87-485D-4C4A-8842-799533627C07} - {38429A87-485D-4C4A-8842-799533627C07} = {823917FB-A772-41A0-8165-53FDB5631002} - {823917FB-A772-41A0-8165-53FDB5631002} = {D88EDBB6-1E75-44FD-A0B0-13B254DE18AC} - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE} = {08A50F48-8C29-44C9-ACA5-F2C1B293B1A6} - {08A50F48-8C29-44C9-ACA5-F2C1B293B1A6} = {ED9488B3-925A-4AD9-B69F-94925DE42FB3} - {ED9488B3-925A-4AD9-B69F-94925DE42FB3} = {4D1E7E70-94A5-4F1C-87E1-2C7C6159572B} - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A} = {9EEB1196-9525-424F-9D24-06C791B2723D} - {9EEB1196-9525-424F-9D24-06C791B2723D} = {4DB67FD6-8972-402A-B97D-28497764367E} - {4DB67FD6-8972-402A-B97D-28497764367E} = {C1BB194D-4BE6-445B-8856-2BE47354911C} - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F} = {AC0BC2A2-E758-440E-97B2-13FB60A1B52B} - {AC0BC2A2-E758-440E-97B2-13FB60A1B52B} = {B4D341AD-ED05-4D3A-B77F-440792E7F6DA} - {B5E83C17-E527-416F-A55D-7344663794B6} = {E6A2BD83-A2A7-43AB-81F2-95F77A1F52DA} - {E6A2BD83-A2A7-43AB-81F2-95F77A1F52DA} = {B4D341AD-ED05-4D3A-B77F-440792E7F6DA} - {B4D341AD-ED05-4D3A-B77F-440792E7F6DA} = {4CF427B8-81D0-48B0-B9F4-6E2629DAE963} - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2} = {29097211-CA0C-4914-AB2F-BA70CB486C46} - {29097211-CA0C-4914-AB2F-BA70CB486C46} = {91172136-EBF9-476A-9AD0-767862206D87} - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC} = {FC80409E-28D4-479E-BC39-CB00ABCABC45} - {FC80409E-28D4-479E-BC39-CB00ABCABC45} = {91172136-EBF9-476A-9AD0-767862206D87} - {91172136-EBF9-476A-9AD0-767862206D87} = {4CF427B8-81D0-48B0-B9F4-6E2629DAE963} - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041} = {2C2C7248-79D0-4983-A331-8FEEDBC900E4} - {2C2C7248-79D0-4983-A331-8FEEDBC900E4} = {7546452B-30DA-4A1A-A69C-B866133E1BF6} - {7546452B-30DA-4A1A-A69C-B866133E1BF6} = {4CF427B8-81D0-48B0-B9F4-6E2629DAE963} - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6} = {F62482CB-0D61-4640-8166-315DB252A5F2} - {F62482CB-0D61-4640-8166-315DB252A5F2} = {7444B7DD-5747-4DF2-8A2C-01B3651A6C8F} - {2B450256-7867-4D61-B085-1E62FE41C89C} = {0ABB5959-1AF4-4289-B1A9-B3301126B86A} - {0ABB5959-1AF4-4289-B1A9-B3301126B86A} = {7444B7DD-5747-4DF2-8A2C-01B3651A6C8F} - {7444B7DD-5747-4DF2-8A2C-01B3651A6C8F} = {24DE9E19-E550-4AB4-B79F-1D71C5D9C579} - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773} = {E9FD5853-B939-49DD-BE98-93AA03CBF345} - {E9FD5853-B939-49DD-BE98-93AA03CBF345} = {4984B4BF-EFED-4B22-B38E-D83E8EA5C361} - {4984B4BF-EFED-4B22-B38E-D83E8EA5C361} = {CC039A30-6AA5-4305-80A3-16AA7044A986} - {CC039A30-6AA5-4305-80A3-16AA7044A986} = {896998BB-B249-451F-A3A9-3A62D3D77A7E} - {1ABE1403-917A-4A15-886B-28255241C646} = {4F71F957-0CA1-4D88-BC9A-689936F71C6E} - {4F71F957-0CA1-4D88-BC9A-689936F71C6E} = {F13D8A4C-E5BF-4C01-B504-66E43F82D177} - {03E434BE-A707-4EBF-8504-AB076AFACCB6} = {A373AE85-0BD9-43D8-BA03-3487A7A4465C} - {A373AE85-0BD9-43D8-BA03-3487A7A4465C} = {F13D8A4C-E5BF-4C01-B504-66E43F82D177} - {F13D8A4C-E5BF-4C01-B504-66E43F82D177} = {982551A1-9CF3-46D5-BEC1-95BE94C48DB4} - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA} = {906F3D81-03A9-49A0-BD78-FF94B36B9EC8} - {906F3D81-03A9-49A0-BD78-FF94B36B9EC8} = {F11C5886-F059-4821-B814-D80AAC92F980} - {F11C5886-F059-4821-B814-D80AAC92F980} = {6B100CFB-B1D9-4EC6-95CD-38718D3879E7} - {04FA926D-CA6F-4628-839A-106FB3ED6291} = {62EF1534-28F2-46A2-A798-E6202045B98E} - {62EF1534-28F2-46A2-A798-E6202045B98E} = {3C9EFEC2-724E-462F-B0B5-F23B6C29BDE3} - {98820E4B-60E0-47A2-B753-97B0264E787A} = {49AFF210-5E12-4F9C-A0B9-D97B2C7579B7} - {49AFF210-5E12-4F9C-A0B9-D97B2C7579B7} = {3C9EFEC2-724E-462F-B0B5-F23B6C29BDE3} - {3C9EFEC2-724E-462F-B0B5-F23B6C29BDE3} = {B0E6D9FF-878A-451C-B41C-9A1374AB1295} - {1A3CA764-788E-4738-A253-EF11E85F26A5} = {FE35C140-921C-4D04-86BA-251762F2A7FB} - {FE35C140-921C-4D04-86BA-251762F2A7FB} = {86A9F9A6-8A64-4F75-8A6C-892455A8E538} - {86A9F9A6-8A64-4F75-8A6C-892455A8E538} = {321ABF68-D92F-438C-9FF0-A81C3E2663C0} - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD} = {4D2E0F64-C9DC-466E-8ABF-0FFFC6C057E3} - {4D2E0F64-C9DC-466E-8ABF-0FFFC6C057E3} = {B4EB2666-113B-4842-AFF2-914325BC23AE} - {B4EB2666-113B-4842-AFF2-914325BC23AE} = {E3262DA4-637B-4037-9121-344F87CF7ED5} - {1250981A-A533-44B5-8853-5844A8B94163} = {50E63130-CE6E-4196-95B7-1184F88C1DA4} - {50E63130-CE6E-4196-95B7-1184F88C1DA4} = {4BEEC294-B043-42B3-A1A1-909BF070F7F2} - {4BEEC294-B043-42B3-A1A1-909BF070F7F2} = {FE85BB14-CF5C-4073-BEAD-391ADBD4A5B0} + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC} = {506FC316-4233-477B-8A4B-52A97FFC3A43} + {506FC316-4233-477B-8A4B-52A97FFC3A43} = {88D1E3A0-11D6-4D0C-838A-45C9B89C7977} + {88D1E3A0-11D6-4D0C-838A-45C9B89C7977} = {1FEBCE20-0A5D-47B2-A182-B0EC70F34A6B} + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694} = {F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8} + {F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4} = {205CDFCE-B57C-4C27-9892-4D00CF169510} + {205CDFCE-B57C-4C27-9892-4D00CF169510} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} + {3F2AD802-248D-47E4-880C-1653DE83926A} = {CAA833FA-DA2D-421F-A927-806CACADBA22} + {CAA833FA-DA2D-421F-A927-806CACADBA22} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} + {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} = {FFAA7124-46A7-42B3-806D-A6191A24301A} + {1AEABE44-234E-47E0-9389-2C6CF046AAC3} = {B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A} + {B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A} = {D4B589C8-8451-49F5-899E-7C6EE551013D} + {D4B589C8-8451-49F5-899E-7C6EE551013D} = {024D3BBF-7F13-4C01-A93A-35BCAA4D8033} + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5} = {3DE29700-9588-4FA8-9E55-AFAAB6079B3B} + {3DE29700-9588-4FA8-9E55-AFAAB6079B3B} = {935E3F7E-9859-4C42-85CC-2C41255E561A} + {935E3F7E-9859-4C42-85CC-2C41255E561A} = {A95B3B75-BA4B-4A24-8423-0F7F567B63FE} + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA} = {DC7412A2-F252-4408-98C6-28AAAF8915CC} + {DC7412A2-F252-4408-98C6-28AAAF8915CC} = {C9A50598-A8C5-45B3-9878-1B107014525A} + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70} = {1ABBAB40-C0F6-47CC-9955-E45A4954D7E3} + {1ABBAB40-C0F6-47CC-9955-E45A4954D7E3} = {C9A50598-A8C5-45B3-9878-1B107014525A} + {C9A50598-A8C5-45B3-9878-1B107014525A} = {B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF} + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43} = {AF8234A0-6224-4B8A-9BD1-1673447D1551} + {AF8234A0-6224-4B8A-9BD1-1673447D1551} = {BC80146C-7A5D-45E4-8C65-EC1E76C8E548} + {CF596C38-A60B-4642-9FFD-739BDCEDA455} = {283A01B7-7AFE-46A3-8093-EE737BF16464} + {283A01B7-7AFE-46A3-8093-EE737BF16464} = {BC80146C-7A5D-45E4-8C65-EC1E76C8E548} + {BC80146C-7A5D-45E4-8C65-EC1E76C8E548} = {B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF} + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F} = {7EF7D930-813F-45AE-B45E-0D67DFECA1ED} + {7EF7D930-813F-45AE-B45E-0D67DFECA1ED} = {1589AACD-FDFB-4FD6-9AB2-791BCF986D93} + {1589AACD-FDFB-4FD6-9AB2-791BCF986D93} = {B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF} + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2} = {96A2C2CF-9275-4743-A308-7FC44BF6346B} + {96A2C2CF-9275-4743-A308-7FC44BF6346B} = {C54DB5FB-93D2-4999-88E9-F586174B797C} + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC} = {85B06B85-89A3-4836-A4FC-0A36917D013E} + {85B06B85-89A3-4836-A4FC-0A36917D013E} = {C54DB5FB-93D2-4999-88E9-F586174B797C} + {C54DB5FB-93D2-4999-88E9-F586174B797C} = {3C5E1378-F872-4E82-B52D-A847344930CF} + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02} = {7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F} + {7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F} = {2FC2CF37-9B1B-43B9-A765-33597E3C0CCC} + {2FC2CF37-9B1B-43B9-A765-33597E3C0CCC} = {F827C714-4DA2-47B7-95FE-3D986752B6AE} + {F827C714-4DA2-47B7-95FE-3D986752B6AE} = {FF2A1720-45FA-42FE-A31B-A78101EF0D09} + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897} = {D336FE23-7549-4A44-AF76-C54E4C2BED42} + {D336FE23-7549-4A44-AF76-C54E4C2BED42} = {B6A1803A-46A6-4264-8AE4-DE15FA9E690B} + {8E45E5D7-C553-498C-ACF3-5FE833B39813} = {F5D5C86A-96F3-47ED-A3DE-D12924334C32} + {F5D5C86A-96F3-47ED-A3DE-D12924334C32} = {B6A1803A-46A6-4264-8AE4-DE15FA9E690B} + {B6A1803A-46A6-4264-8AE4-DE15FA9E690B} = {B9F42C1B-37F0-4021-8E19-589AC49E7EB9} + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB} = {3210DEAA-DEE3-4543-8100-8A177FAE2466} + {3210DEAA-DEE3-4543-8100-8A177FAE2466} = {CB156B7E-0FC1-484C-895E-DB56609A8434} + {CB156B7E-0FC1-484C-895E-DB56609A8434} = {D8D56C6E-4020-4F2C-8E17-218ACF02CC59} + {E21608C2-0913-4F35-8CB3-BE58A46CE344} = {A80CA72E-6877-4B3D-8174-B47FD5F42C92} + {A80CA72E-6877-4B3D-8174-B47FD5F42C92} = {136622EA-40EC-4CA5-873B-D35335D94EC4} + {0DDD6B05-155B-4939-A244-F097F7435EC9} = {A27D7180-3E4A-431F-8644-E5C1D5F32B95} + {A27D7180-3E4A-431F-8644-E5C1D5F32B95} = {136622EA-40EC-4CA5-873B-D35335D94EC4} + {136622EA-40EC-4CA5-873B-D35335D94EC4} = {1BFA9944-2C75-481E-B94A-C9F8247459F7} + {52E629AE-AC63-407B-B5C5-B4032C907F3D} = {EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64} + {EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64} = {A50B4464-9329-414D-9DCD-14B7379EE93D} + {A50B4464-9329-414D-9DCD-14B7379EE93D} = {6A3692FD-80C0-420E-ACA0-3BFF3C7EEEA2} + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E} = {C9A31423-5400-4518-AB6A-C73252B316DC} + {C9A31423-5400-4518-AB6A-C73252B316DC} = {101213E4-86F8-4ED4-9CF9-FE63BC0A57FF} + {101213E4-86F8-4ED4-9CF9-FE63BC0A57FF} = {A0B006F1-1A99-4229-94FF-120DEFCDDEF6} + {4C831B08-A31A-4878-8BF3-55E100D17A7C} = {ECB779F3-7314-4820-94F4-C67E51DAD356} + {ECB779F3-7314-4820-94F4-C67E51DAD356} = {0D7A6701-3E3B-43C7-8298-8B6454A3570B} + {0D7A6701-3E3B-43C7-8298-8B6454A3570B} = {BB37B576-B6E5-4E28-B1B1-BB13A54469D2} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {044A0481-AE12-4FDC-ABF0-C1C314EF6E88} + SolutionGuid = {7DFA52FF-96FE-4308-92BD-FCB01E97A25A} EndGlobalSection EndGlobal diff --git a/src/components.festo.drives/ctrl/apax.yml b/src/components.festo.drives/ctrl/apax.yml index e9bdee0bf..6447b9f80 100644 --- a/src/components.festo.drives/ctrl/apax.yml +++ b/src/components.festo.drives/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.components.drives": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.festo.drives/ctrl/assets/cmmtas.hwl.yml b/src/components.festo.drives/ctrl/assets/cmmtas.hwl.yml index 3a0157aa0..23426da3c 100644 --- a/src/components.festo.drives/ctrl/assets/cmmtas.hwl.yml +++ b/src/components.festo.drives/ctrl/assets/cmmtas.hwl.yml @@ -17,6 +17,7 @@ Devices: FileName: GSDML-V2.41-Festo-CMMT-AS-20230601.xml GsdId: IDM_SERVO Submodules: + # Do not uncomment this module. It is added by default and cannot be removed under any circumstances. # - Name: Module_Access_Point # TypeIdentifier: # FileName: GSDML-V2.41-FESTO-CMMT-AS-20230601.XML diff --git a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st b/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st index f737861d1..fb65acc43 100644 --- a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st +++ b/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st @@ -7,87 +7,134 @@ USING AXOpen.Components.Abstractions.Drives; USING AXOpen.Components.Drives; USING System.Math; USING System.BitAccess; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Festo.Drives {#ix-attr:[Container(Layout.Wrap)]} {S7.extern=ReadWrite} CLASS PUBLIC AxoCmmtAs EXTENDS AXOpen.Components.Drives.AxoDrive IMPLEMENTS AXOpen.Components.Abstractions.Drives.IAxoDrive - - VAR PUBLIC //Debug + VAR PUBLIC //STATUS {#ix-attr:[Container(Layout.Stack)]} - {#ix-attr:[ComponentHeader()]} - State : UINT; + {#ix-attr:[ComponentDetails("Status")]} + {#ix-attr:[ReadOnly()]} + DriveStatus : AxoCmmtAs_Component_Status; + Messenger : AXOpen.Messaging.Static.AxoMessenger; + TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; + END_VAR + VAR PUBLIC // HwDiag {#ix-attr:[Container(Layout.Stack)]} - {#ix-attr:[ComponentHeader()]} - Debug : LINT; + {#ix-attr:[ComponentDetails("Hardware diagnostics")]} + {#ix-set:AttributeName = "<#Update diagnostics#>"} + HardwareDiagnosticsTask : AXOpen.Io.AxoHardwareDiagnostics; END_VAR - - VAR PUBLIC //CONFIG + VAR PUBLIC // AxisRef + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("AxisRef")]} + {#ix-attr:[ReadOnly()]} + AxisRefExt : AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; + END_VAR + VAR PUBLIC // Scaling {#ix-attr:[Container(Layout.Stack)]} - {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ComponentDetails("Scaling")]} {#ix-attr:[ReadOnly()]} {#ix-set:AttributeName = "<#Scaling constant required position#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} ScalingConstantRequiredPosition : LREAL := 1000; - {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ComponentDetails("Scaling")]} {#ix-attr:[ReadOnly()]} {#ix-set:AttributeName = "<#Scaling constant actual position#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} ScalingConstantActualPosition : LREAL := 0.001; - {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ComponentDetails("Scaling")]} {#ix-attr:[ReadOnly()]} {#ix-set:AttributeName = "<#Scaling constant required velocity#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} ScalingConstantRequiredVelocity : LREAL := 1; - {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ComponentDetails("Scaling")]} {#ix-attr:[ReadOnly()]} {#ix-set:AttributeName = "<#Scaling constant actual velocity#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} ScalingConstantActualVelocity : LREAL := 0.000000000931322574615478515625; - {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ComponentDetails("Scaling")]} {#ix-attr:[ReadOnly()]} {#ix-set:AttributeName = "<#Scaling constant required torque#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} ScalingConstantRequiredTorque : LREAL := 1; - {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ComponentDetails("Scaling")]} {#ix-attr:[ReadOnly()]} {#ix-set:AttributeName = "<#Scaling constant actual torque#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} ScalingConstantActualTorque : LREAL := 0.00006103515625; - {#ix-attr:[ComponentDetails("Config")]} + {#ix-attr:[ComponentDetails("Scaling")]} {#ix-attr:[ReadOnly()]} {#ix-set:AttributeName = "<#Scaling constant required acceleration#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} - ScalingConstantRequiredAcceleration : LREAL := 0.00006103515625; - {#ix-attr:[ComponentDetails("Config")]} + ScalingConstantRequiredAcceleration : LREAL := LREAL#16.384; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant actual acceleration#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} + ScalingConstantActualAcceleration : LREAL := LREAL#0.06103515625; + {#ix-attr:[ComponentDetails("Scaling")]} {#ix-attr:[ReadOnly()]} {#ix-set:AttributeName = "<#Scaling constant required deceleration#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} - ScalingConstantRequiredDeceleration : LREAL := 0.00006103515625; + ScalingConstantRequiredDeceleration : LREAL := LREAL#16.384; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant actual deceleration#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} + ScalingConstantActualDeceleration : LREAL := LREAL#0.06103515625; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant required jerk#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} + ScalingConstantRequiredJerk : LREAL := LREAL#0.001; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant actual jerk#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} + ScalingConstantActualJerk : LREAL := LREAL#1000.0; END_VAR - VAR PUBLIC + VAR PUBLIC // Debug {#ix-attr:[Container(Layout.Stack)]} - {#ix-attr:[ComponentDetails("Hardware diagnostics")]} - {#ix-set:AttributeName = "<#Update diagnostics#>"} - HardwareDiagnosticsTask : AXOpen.Io.AxoHardwareDiagnostics; + {#ix-attr:[ComponentHeader()]} + State : UINT; + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentHeader()]} + Debug : LINT; END_VAR VAR PRIVATE - ScalingRead : BOOL := FALSE; - PNU_11724 : LINT; - PNU_11725 : LINT; - PNU_12345 : REAL; - PNU_11122 : REAL; - PNU_810 : REAL; - PNU_811 : REAL; - PNU_11203 : BOOL; - PNU_11734 : LINT; - PNU_11735 : LINT; - // State : UINT; - _AxisRefExt : AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; - Parametrization : AxoReadWritePROFIdriveParameter; + _ScalingRead : BOOL := FALSE; + PNU_11724 : LINT; // Resolution position (P1.7841.0.0) + PNU_11725 : LINT; // Resolution velocity (P1.7842.0.0) + PNU_11726 : LINT; // Resolution acceleration (P1.7843.0.0) + PNU_11727 : LINT; // Resolution jerk (P1.7844.0.0) + PNU_12345 : REAL; // Base value velocity (P1.11280701.0.0) + PNU_11122 : REAL; // Maximum motor torque/servo drive (P1.381.0.0) + PNU_810 : REAL; // Base value acceleration (P1.11280702.0.0) + PNU_811 : REAL; // Base value deceleration (P1.11280703.0.0) + PNU_11203 : BOOL; // Move to axis zero point after homing (P1.841.0.0) + PNU_11734 : LINT; // Axis zero point offset (P1.8416.0.0) + PNU_11735 : LINT; // Referencing method (P1.8417.0.0) + Parametrization : AxoReadWritePROFIdriveParameter; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _blink : AXOpen.Timers.AxoBlinker; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; + _infoTimer : AXOpen.Timers.OnDelayTimer; + _infoTime : LTIME := LT#2S; + _errorTimer : AXOpen.Timers.OnDelayTimer; + _errorTime : LTIME := LT#5S; END_VAR /// @@ -98,77 +145,396 @@ NAMESPACE AXOpen.Components.Festo.Drives VAR_INPUT parent : IAxoObject; hwID : WORD; - hwIdTelegram111 : WORD; // Hardware ID of the Profidrive telegram 111 of this axis - hwIdTelegram750 : WORD; // Hardware ID of the Profidrive telegram 750 of this axis - MAP_HW_ID : WORD; // Hardware identifier of the module acces point submodule Enable : BOOL; // As long as ‘Enable’ is true, power is being enabled. EnablePositive : BOOL; // As long as ‘Enable’ is true, this permits motion in positive direction EnableNegative : BOOL; // As long as ‘Enable’ is true, this permits motion in negative direction END_VAR - + VAR + // _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; + tempDWord : DWORD; + // | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 |-1| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | + _exp : ARRAY [-10..10] OF LREAL := [0.000000001,0.000000001,0.00000001,0.0000001,0.000001,0.00001,0.0001,0.001,0.01,0.1,1.0,10.0,100.0,1000.0,10000.0,100000.0,1000000.0,10000000.0,100000000.0,100000000.0,100000000.0]; + END_VAR + _infoTime := DriveConfig.InfoTime; + _errorTime := DriveConfig.ErrorTime; SUPER.Run(parent); + Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#742, Enable AND NOT EnablePositive, eAxoMessageCategory#Warning); - Messenger.ActivateOnCondition(ULINT#743, Enable AND NOT EnableNegative, eAxoMessageCategory#Warning); - Messenger.ActivateOnCondition(ULINT#701, hwID = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702, hwIdTelegram111 = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#703, hwIdTelegram750 = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#704, MAP_HW_ID = WORD#0, eAxoMessageCategory#ProgrammingError); + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate( UINT#700, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate( UINT#701, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#701; + RETURN; + END_IF; + + AxisRefExt.HWIDs.HW_Device := TO_UINT(hwID); + _retval := ReadSlotFromHardwareID(hardwareID := AxisRefExt.HWIDs.HW_Device, geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate( UINT#702,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#702; + RETURN; + END_IF; - IF parent = NULL THEN - DriveStatus.Error.Id := UINT#700; - RETURN; - ELSIF hwID = WORD#0 THEN - DriveStatus.Error.Id := UINT#701; - RETURN; - ELSIF hwIdTelegram111 = WORD#0 THEN - DriveStatus.Error.Id := UINT#702; - RETURN; - ELSIF hwIdTelegram750 = WORD#0 THEN - DriveStatus.Error.Id := UINT#703; - RETURN; - ELSIF MAP_HW_ID = WORD#0 THEN - DriveStatus.Error.Id := UINT#704; - RETURN; - END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + AxisRefExt.HWIDs.HW_DoServo := _outHwid; + IF AxisRefExt.HWIDs.HW_DoServo = UINT#0 THEN + Messenger.Activate( UINT#710,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#711,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#712,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#713,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#714,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#715,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(AxisRefExt.HWIDs.HW_DoServo) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#716,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + //******************Subslot 0**************// + _geoAddr.Subslot := UINT#0; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + AxisRefExt.HWIDs.HW_DoServoSub := _outHwid; + IF AxisRefExt.HWIDs.HW_DoServoSub = UINT#0 THEN + Messenger.Activate( UINT#720,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#721,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#722,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#723,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#724,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#725,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(AxisRefExt.HWIDs.HW_DoServoSub) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#726,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + //******************Subslot 1**************// + _geoAddr.Subslot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + AxisRefExt.HWIDs.HW_ModuleAccessPoint := _outHwid; + IF AxisRefExt.HWIDs.HW_ModuleAccessPoint = UINT#0 THEN + Messenger.Activate( UINT#730,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#731,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#732,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#733,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#734,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#735,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#736,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + //******************Subslot 2**************// + _geoAddr.Subslot := UINT#2; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + AxisRefExt.HWIDs.HW_EmptyModule_1 := _outHwid; + IF AxisRefExt.HWIDs.HW_EmptyModule_1 = UINT#0 THEN + Messenger.Activate( UINT#740,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#741,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#742,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#743,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#744,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#745,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(AxisRefExt.HWIDs.HW_EmptyModule_1) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#746,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#746; + RETURN; + END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + //******************Subslot 3**************// + _geoAddr.Subslot := UINT#3; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + AxisRefExt.HWIDs.HW_Telegram111 := _outHwid; + IF AxisRefExt.HWIDs.HW_Telegram111 = UINT#0 THEN + Messenger.Activate( UINT#750,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#750; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#751,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#751; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#752,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#752; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#753,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#753; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#754,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#754; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#755,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#755; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(AxisRefExt.HWIDs.HW_Telegram111) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#24 OR _outputsCount <> UINT#24 THEN + Messenger.Activate( UINT#756,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#756; + RETURN; + END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + //******************Subslot 4**************// + _geoAddr.Subslot := UINT#4; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + AxisRefExt.HWIDs.HW_EmptyModule_2 := _outHwid; + IF AxisRefExt.HWIDs.HW_EmptyModule_2 = UINT#0 THEN + Messenger.Activate( UINT#760,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#760; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#761,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#761; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#762,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#762; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#763,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#763; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#764,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#764; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#765,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#765; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(AxisRefExt.HWIDs.HW_EmptyModule_2) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#766,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#766; + RETURN; + END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + //******************Subslot 5**************// + _geoAddr.Subslot := UINT#5; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + AxisRefExt.HWIDs.HW_Telegram750 := _outHwid; + IF AxisRefExt.HWIDs.HW_Telegram750 = UINT#0 THEN + Messenger.Activate( UINT#770,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#770; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#771,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#771; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#772,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#772; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#773,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#773; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#774,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#774; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#775,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#775; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := TO_WORD(AxisRefExt.HWIDs.HW_Telegram750) , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#2 OR _outputsCount <> UINT#8 THEN + Messenger.Activate( UINT#776,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#776; + RETURN; + END_IF; + // ********************************************* + + IF parent = NULL THEN + Messenger.Activate( UINT#1130,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1130; + RETURN; + END_IF; + IF AxisRefExt.HWIDs.HW_Device = UINT#0 THEN + Messenger.Activate( UINT#1131,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1131; + RETURN; + END_IF; - _AxisRefExt.Data.hwID := hwID; - _AxisRefExt.Data.hwIdTelegram111 := hwIdTelegram111; - _AxisRefExt.Data.hwIdTelegram750 := hwIdTelegram750; - _AxisRefExt.Data.MAP_HW_ID := MAP_HW_ID; - - - // Parametrization.Initialize(THIS); - // HardwareDiagnosticsTask.Initialize(THIS); - - SUPER.Execute(_AxisRefExt,Enable,EnablePositive,EnableNegative); - THIS.Execute(_AxisRefExt); - END_METHOD + IF AxisRefExt.HWIDs.HW_DoServo = UINT#0 THEN + Messenger.Activate( UINT#1132,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1132; + RETURN; + END_IF; + IF AxisRefExt.HWIDs.HW_ModuleAccessPoint = UINT#0 THEN + Messenger.Activate( UINT#1133,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1133; + RETURN; + END_IF; + IF AxisRefExt.HWIDs.HW_EmptyModule_1 = UINT#0 THEN + Messenger.Activate( UINT#1134,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1134; + RETURN; + END_IF; + IF AxisRefExt.HWIDs.HW_Telegram111 = UINT#0 THEN + Messenger.Activate( UINT#1135,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1135; + RETURN; + END_IF; + IF AxisRefExt.HWIDs.HW_EmptyModule_2 = UINT#0 THEN + Messenger.Activate( UINT#1136,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1136; + RETURN; + END_IF; + IF AxisRefExt.HWIDs.HW_Telegram750 = UINT#0 THEN + Messenger.Activate( UINT#1137,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1137; + RETURN; + END_IF; - METHOD PRIVATE Execute - VAR_INPUT - AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; - END_VAR - VAR - _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; - tempDWord : DWORD; - END_VAR - _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#707,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN - DriveStatus.Error.Id := UINT#707; - RETURN; - END_IF; + _initHwCheckDone := TRUE; + END_IF; + Messenger.ActivateOnCondition(ULINT#1800, NOT _ScalingRead, eAxoMessageCategory#Warning); //********************Diagnostics******************// - HardwareDiagnosticsTask.Run(THIS,_AxisReference^.Data.hwID); + HardwareDiagnosticsTask.Run(THIS,TO_WORD(AxisRefExt.HWIDs.HW_Device)); //********************PARAMETRIZAION***************// Parametrization.Run(THIS); - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint); //*******************SCALING***********************// - Messenger.ActivateOnCondition(ULINT#744,NOT ScalingRead , eAxoMessageCategory#Warning); - IF NOT ScalingRead THEN + IF NOT _ScalingRead THEN + Messenger.Activate(ULINT#1800 , eAxoMessageCategory#Warning); IF State = UINT#0 THEN State := UINT#1; END_IF; @@ -179,7 +545,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11724; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11724 := Parametrization.Outputs.ValueReadLINT; State := UINT#2; @@ -198,7 +564,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11725; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11725 := Parametrization.Outputs.ValueReadLINT; State := UINT#4; @@ -217,7 +583,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12345; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_12345 := Parametrization.Outputs.ValueReadREAL; State := UINT#6; @@ -236,7 +602,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11122; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11122 := Parametrization.Outputs.ValueReadREAL; State := UINT#8; @@ -255,7 +621,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 810; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_810 := Parametrization.Outputs.ValueReadREAL; State := UINT#10; @@ -274,7 +640,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 811; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_811 := Parametrization.Outputs.ValueReadREAL; State := UINT#12; @@ -286,71 +652,125 @@ NAMESPACE AXOpen.Components.Festo.Drives State := UINT#13; END_IF; END_IF; - + //Reading PNU 11726 Resolution acceleration (P1.7843.0.0) IF State = UINT#13 THEN - ScalingConstantRequiredPosition := EXP(LN(10) * TO_LREAL(-1 * PNU_11724)); - ScalingConstantActualPosition := EXP(LN(10) * TO_LREAL(PNU_11724)); - ScalingConstantRequiredVelocity := EXP(LN(10) * TO_LREAL(-1 * PNU_11725)); - ScalingConstantActualVelocity := PNU_12345 / 1073741824.0; + Parametrization.Inputs.Enable := TRUE; + Parametrization.Inputs.ReadWrite := FALSE; + Parametrization.Inputs.ParameterNo := 11726; + Parametrization.Inputs.Subindex := 0; + Parametrization.Inputs.AxisNo := BYTE#1; + Parametrization.Inputs.HardwareId := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint); + IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + PNU_11726 := Parametrization.Outputs.ValueReadLINT; + State := UINT#14; + END_IF; + END_IF; + IF State = UINT#14 THEN + Parametrization.Inputs.Enable := FALSE; + IF NOT Parametrization.Outputs.Done THEN + State := UINT#15; + END_IF; + END_IF; + //Reading PNU 11727 Resolution jerk (P1.7844.0.0) + IF State = UINT#15 THEN + Parametrization.Inputs.Enable := TRUE; + Parametrization.Inputs.ReadWrite := FALSE; + Parametrization.Inputs.ParameterNo := 11727; + Parametrization.Inputs.Subindex := 0; + Parametrization.Inputs.AxisNo := BYTE#1; + Parametrization.Inputs.HardwareId := TO_WORD(AxisRefExt.HWIDs.HW_ModuleAccessPoint); + IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + PNU_11727 := Parametrization.Outputs.ValueReadLINT; + State := UINT#16; + END_IF; + END_IF; + IF State = UINT#16 THEN + Parametrization.Inputs.Enable := FALSE; + IF NOT Parametrization.Outputs.Done THEN + State := UINT#17; + END_IF; + END_IF; + IF State = UINT#17 THEN + ScalingConstantRequiredPosition := _exp[-1*(TO_INT(PNU_11724) + 3)]; + ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; + + ScalingConstantRequiredVelocity := _exp[-1*(TO_INT(PNU_11725) + 3)]; + ScalingConstantActualVelocity := PNU_12345 * _exp[(TO_INT(PNU_11725) + 6)] / LREAL#1073741824.0; // 16#4000 0000 ~~ 1073741824 + + ScalingConstantRequiredAcceleration := LREAL#16384.0 * _exp[TO_INT(PNU_11726)] / PNU_810; // 16#4000 ~~ 16384 + ScalingConstantActualAcceleration := LREAL#1.0 / ScalingConstantRequiredAcceleration; + + ScalingConstantRequiredDeceleration := LREAL#16384.0 * _exp[TO_INT(PNU_11726)] / PNU_811; // 16#4000 ~~ 16384 + ScalingConstantActualDeceleration := LREAL#1.0 / ScalingConstantRequiredDeceleration; + ScalingConstantRequiredTorque := 1; - ScalingConstantActualTorque := PNU_11122 / 16384; - ScalingConstantRequiredAcceleration := 16384 / PNU_810; - ScalingConstantRequiredDeceleration := 16384 / PNU_811; - THIS. - ScalingRead := TRUE; + ScalingConstantActualTorque := PNU_11122 / 16384; // 16#4000 ~~ 16384 + + ScalingConstantRequiredJerk := _exp[TO_INT(PNU_11727)]; + ScalingConstantActualJerk := LREAL#1.0 / ScalingConstantRequiredJerk; + + + _ScalingRead := TRUE; State := UINT#0; - AxoStop_Deceleration := 1.0; - AxoStop_Jerk := 500.0; - AxoHalt_Deceleration := 1.0; - AxoHalt_Jerk := 500.0; - AxoHome_Position := 0.0; - AxoHome_HommingMode := -17; - AxoHome_Velocity := 0.01; - AxoHome_Acceleration := 1; - AxoHome_Deceleration := 1; - AxoSetPosition_Position := 0.0; - AxoMoveAbsolute_Position := 0.0; - AxoMoveAbsolute_Velocity := 0.01; - AxoMoveAbsolute_Acceleration := 1; - AxoMoveAbsolute_Deceleration := 1; - AxoMoveAbsolute_Jerk := 500; - AxoMoveRelative_Distance := 0.0; - AxoMoveRelative_Velocity := 0.01; - AxoMoveRelative_Acceleration := 1; - AxoMoveRelative_Deceleration := 1; - AxoMoveRelative_Jerk := 500; - AxoMoveAdditive_Distance := 0.0; - AxoMoveAdditive_Velocity := 0.01; - AxoMoveAdditive_Acceleration := 1; - AxoMoveAdditive_Deceleration := 1; - AxoMoveAdditive_Jerk := 500; - AxoMoveVelocity_Velocity := 0.01; - AxoMoveVelocity_Acceleration := 1; - AxoMoveVelocity_Deceleration := 1; - AxoMoveVelocity_Jerk := 500; - AxoTorqueControl_Torque := 0.0; - AxoTorqueControl_TorqueRamp := 1; - AxoTorqueControl_Velocity := 0.01; - AxoTorqueControl_Acceleration := 1; - AxoTorqueControl_Deceleration := 1; - AxoTorqueControl_Jerk := 500; - AxoJog_Velocity := 0.01; - AxoJog_Acceleration := 1; - AxoJog_Deceleration := 1; - AxoJog_Jerk := 500; + AxoStop_Deceleration := 1000.0; // mm/s2 + AxoStop_Jerk := 150000.0; // mm/s3 + AxoHalt_Deceleration := 1000.0; // mm/s2 + AxoHalt_Jerk := 150000.0; // mm/s3 + AxoHome_Position := 0.0; // mm + AxoHome_HommingMode := 1; // Negative hardware limit switch with zero pulse + AxoHome_Velocity := 2.0; // mm/s + AxoHome_Acceleration := 1000.0; // mm/s2 + AxoHome_Deceleration := 1000.0; // mm/s2 + AxoSetPosition_Position := 0.0; // mm + AxoMoveAbsolute_Position := 0.0; // mm + AxoMoveAbsolute_Velocity := 5.0; // mm/s + AxoMoveAbsolute_Acceleration := 1000.0; // mm/s2 + AxoMoveAbsolute_Deceleration := 1000.0; // mm/s2 + AxoMoveAbsolute_Jerk := 150000.0; // mm/s3 + AxoMoveRelative_Distance := 5.0; // mm + AxoMoveRelative_Velocity := 5.0; // mm/s + AxoMoveRelative_Acceleration := 1000.0; // mm/s2 + AxoMoveRelative_Deceleration := 1000.0; // mm/s2 + AxoMoveRelative_Jerk := 150000.0; // mm/s3 + AxoMoveAdditive_Distance := 5.0; // mm + AxoMoveAdditive_Velocity := 5.0; // mm/s + AxoMoveAdditive_Acceleration := 1000.0; // mm/s2 + AxoMoveAdditive_Deceleration := 1000.0; // mm/s2 + AxoMoveAdditive_Jerk := 150000.0; // mm/s3 + AxoMoveVelocity_Velocity := 5.0; // mm/s + AxoMoveVelocity_Acceleration := 1000.0; // mm/s2 + AxoMoveVelocity_Deceleration := 1000.0; // mm/s2 + AxoMoveVelocity_Jerk := 150000.0; // mm/s3 + AxoTorqueControl_Torque := 0.0; // Nm + AxoTorqueControl_TorqueRamp := 1.0; // Nm/s + AxoTorqueControl_Velocity := 5.0; // mm/s + AxoTorqueControl_Acceleration := 1000.0;// mm/s2 + AxoTorqueControl_Deceleration := 1000.0;// mm/s2 + AxoTorqueControl_Jerk := 150000.0; // mm/s3 + AxoJog_Velocity := 2.0; // mm/s + AxoJog_Acceleration := 500.0; // mm/s2 + AxoJog_Deceleration := 500.0; // mm/s2 + AxoJog_Jerk := 150000.0; // mm/s3 END_IF; RETURN; END_IF; //*************************************************// - THIS.ActualPosition := TO_LREAL(_AxisReference^.Telegram111_In.XIST_A) * ScalingConstantActualPosition; - THIS.ActualVelocity := TO_LREAL(_AxisReference^.Telegram111_In.NIST_B) * ScalingConstantActualVelocity; - THIS.ActualTorque := TO_LREAL(_AxisReference^.Telegram750_In.M_Actual) * ScalingConstantActualTorque; + Messenger.ActivateOnCondition(ULINT#300, Enable AND NOT EnablePositive, eAxoMessageCategory#Warning); + Messenger.ActivateOnCondition(ULINT#301, Enable AND NOT EnableNegative, eAxoMessageCategory#Warning); + + //************************************************************ + SUPER.Run(THIS,AxisRefExt,Enable,EnablePositive,EnableNegative); + //************************************************************ - IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN + THIS.ActualPosition := TO_LREAL(AxisRefExt.Telegram111_In.XIST_A) * ScalingConstantActualPosition; + THIS.ActualVelocity := TO_LREAL(AxisRefExt.Telegram111_In.NIST_B) * ScalingConstantActualVelocity; + THIS.ActualTorque := TO_LREAL(AxisRefExt.Telegram750_In.M_Actual) * ScalingConstantActualTorque; + + IF NOT AxisRefExt.Telegram111_In.ZSW1.operationEnabled THEN DriveState := AXOpen.Components.Drives.eAxoDriveState#Disabled; - ELSIF State>=UINT#20 AND State=UINT#20 AND State=UINT#80 AND State - /// Ensures swapping the hardware input data structure into the AxisRef data structure - /// - METHOD PROTECTED OVERRIDE UpdateInputs : BOOL - VAR_INPUT - refAxisIn : REF_TO ARRAY[*] OF BYTE; // Reference to the input data of the axis - AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; - END_VAR - ; END_METHOD /// - /// Ensures swapping the AxisRef data structure into the hardware output data structure + /// Ensures swapping the hardware input data structure into the AxisRef data structure /// - METHOD PROTECTED OVERRIDE UpdateOutputs : BOOL - VAR_INPUT - AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; - refAxisOut : REF_TO ARRAY[*] OF BYTE; // Reference to the output data of the axis - END_VAR - ; - END_METHOD - - METHOD PROTECTED UpdateInputs : BOOL + METHOD PROTECTED OVERRIDE UpdateInputs : BOOL VAR_INPUT AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; END_VAR @@ -402,16 +804,16 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#707,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN - DriveStatus.Error.Id := UINT#707; + Messenger.Activate( UINT#1410, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1410; RETURN; END_IF; - returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_AxisReference^.Data.hwIdTelegram111 ,_Telegram111); - Messenger.ActivateOnCondition(ULINT#827,returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); + returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(TO_WORD(_AxisReference^.HWIDs.HW_Telegram111) ,_Telegram111); IF returnValue > WORD#0 THEN + Messenger.Activate( UINT#1411, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1411; RETURN; END_IF; @@ -480,15 +882,19 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference^.Telegram111_In.Reserved.%B1 := _Telegram111[22]; _AxisReference^.Telegram111_In.Reserved.%B0 := _Telegram111[23]; //M_Actual - returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_AxisReference^.Data.hwIdTelegram750,_Telegram750); - Messenger.ActivateOnCondition(ULINT#828,returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); + returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(TO_WORD(_AxisReference^.HWIDs.HW_Telegram750),_Telegram750); IF returnValue > WORD#0 THEN + Messenger.Activate( UINT#1412, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1412; RETURN; END_IF; _AxisReference^.Telegram750_In.M_Actual := TO_INT(_Telegram750[0]); END_METHOD - METHOD PROTECTED UpdateOutputs : BOOL + /// + /// Ensures swapping the AxisRef data structure into the hardware output data structure + /// + METHOD PROTECTED OVERRIDE UpdateOutputs : BOOL VAR_INPUT AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; END_VAR @@ -500,9 +906,10 @@ NAMESPACE AXOpen.Components.Festo.Drives returnValue : WORD; END_VAR _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#707,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + IF(_AxisReference = NULL) THEN - DriveStatus.Error.Id := UINT#707; + Messenger.Activate( UINT#1420, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1420; RETURN; END_IF; @@ -598,9 +1005,10 @@ NAMESPACE AXOpen.Components.Festo.Drives _Telegram111[23] := _AxisReference^.Telegram111_Out.reserved11.%B0; _Telegram111[22] := _AxisReference^.Telegram111_Out.reserved11.%B1; - returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_AxisReference^.Data.hwIdTelegram111,_Telegram111); - Messenger.ActivateOnCondition(ULINT#829,returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); + returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(TO_WORD(_AxisReference^.HWIDs.HW_Telegram111),_Telegram111); IF returnValue > WORD#0 THEN + Messenger.Activate( UINT#1421, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1421; RETURN; END_IF; // M_ADD1, M_LIMIT_POS, M_LIMIT_NEG @@ -613,20 +1021,21 @@ NAMESPACE AXOpen.Components.Festo.Drives _Telegram750[7] := _AxisReference^.Telegram750_Out.Reserved.%B0; _Telegram750[6] := _AxisReference^.Telegram750_Out.Reserved.%B1; - returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_AxisReference^.Data.hwIdTelegram750,_Telegram750); - Messenger.ActivateOnCondition(ULINT#830,returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); + returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(TO_WORD(_AxisReference^.HWIDs.HW_Telegram750),_Telegram750); IF returnValue > WORD#0 THEN + Messenger.Activate( UINT#1422, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1422; RETURN; END_IF; END_METHOD - /// /// This method controls the power stage (On or Off). /// VAR INTERNAL MC_PowerEnable_PV : BOOL := FALSE; //Enable - previous value + MC_PowerCycle : ULINT := ULINT#0; END_VAR METHOD PUBLIC OVERRIDE MC_Power VAR_INPUT @@ -637,7 +1046,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Status : BOOL; // Effective state of the power stage Valid : BOOL; // If true, a valid set of outputs is available at the method Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -646,24 +1055,26 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#709,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1430, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1430; RETURN; END_IF; IF Enable THEN + MC_PowerCycle := MC_PowerCycle + ULINT#1; THIS.UpdateInputs(AxisRef); IF NOT MC_PowerEnable_PV THEN _AxisReference^.Telegram750_Out.M_LIMIT_POS := 16384; _AxisReference^.Telegram750_Out.M_LIMIT_NEG := -16384; _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(16384.0 * _AxisReference^.Data.OverrideAccelerationFactor); _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(16384.0 * _AxisReference^.Data.OverrideAccelerationFactor); - _AxisReference^.Telegram111_Out.Override_ := TO_WORD(TO_INT(16384.0 * _AxisReference^.Data.OverrideVelocityFactor)); + _AxisReference^.Telegram111_Out.Override_ := TO_WORD(TO_INT(16384.0 )); // * _AxisReference^.Data.OverrideVelocityFactor)); _AxisReference^.Telegram111_Out.MDI_VELOCITY := DINT#1; END_IF; _AxisReference^.Telegram111_Out.STW1.on_ := TRUE; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; + _AxisReference^.Telegram111_Out.STW1.acknowledgeFault := FALSE; // _AxisReference^.Telegram111_Out.MDI_VELOCITY := DINT#1; _AxisReference^.Telegram111_Out.POS_STW2.SW_Limit := TRUE; _AxisReference^.Telegram111_Out.POS_STW2.HW_Limit := TRUE; @@ -674,19 +1085,41 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference^.Telegram111_Out.STW1.intermediateStop := TRUE; _AxisReference^.Telegram111_Out.STW1.controlByPlc := TRUE; IF _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN + MC_PowerCycle := ULINT#0; Status := TRUE; (* Status OK*) Valid := TRUE; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent = TRUE THEN Error := TRUE; (* Set the ERROR-Output *) Valid := TRUE; - ErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + ErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); + END_IF; + IF MC_PowerCycle >= ULINT#200 THEN + MC_PowerCycle := ULINT#0; + _AxisReference^.Telegram111_Out.STW1.on_ := FALSE; + _AxisReference^.Telegram111_Out.STW1.StartHoming := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.PosModulo := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.NegModulo := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.SetupMode := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.MDI_Activate := FALSE; + _AxisReference^.Telegram111_Out.POS_STW2.Trackingmode := FALSE; + _AxisReference^.Telegram111_Out.POS_STW2.jog_inc := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.travBlockBit0 := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.travBlockBit1 := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.travBlockBit2 := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.travBlockBit3 := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.travBlockBit4 := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.travBlockBit5 := FALSE; + _AxisReference^.Telegram111_Out.POS_STW1.travBlockBit6 := FALSE; + _AxisReference^.Telegram111_Out.STW2.TravelToFixStop := FALSE; + _AxisReference^.Telegram111_Out.STW1.acknowledgeFault := TRUE; END_IF; THIS.UpdateOutputs(AxisRef); END_IF; - - IF NOT Enable AND MC_PowerEnable_PV THEN + IF NOT Enable AND MC_PowerEnable_PV THEN THIS.UpdateInputs(AxisRef); + MC_PowerCycle := ULINT#0; _AxisReference^.Telegram111_Out.STW1.on_ := FALSE; THIS.UpdateOutputs(AxisRef); END_IF; @@ -701,7 +1134,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_HomeExecute_PV : BOOL; //Execute - previous value - MC_HomeErrorID : WORD; + MC_HomeErrorID : DINT; MC_HomeCycle : ULINT; END_VAR METHOD PUBLIC OVERRIDE MC_Home @@ -720,7 +1153,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -729,21 +1162,22 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#710,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1440, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1440; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#745, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#746, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); HommingModeInvalid := TRUE; IF HommingMode = -27 OR HommingMode = -23 OR HommingMode = -18 OR HommingMode = -17 OR HommingMode = -2 OR HommingMode = -1 OR HommingMode = 1 OR HommingMode = 2 THEN HommingModeInvalid := FALSE; ELSIF HommingMode = 7 OR HommingMode = 11 OR HommingMode = 17 OR HommingMode = 18 OR HommingMode = 23 OR HommingMode = 27 OR HommingMode = 33 OR HommingMode = 34 OR HommingMode = 37 THEN HommingModeInvalid := FALSE; END_IF; - Messenger.ActivateOnCondition(ULINT#747, Execute AND HommingModeInvalid, eAxoMessageCategory#ProgrammingError); + + Messenger.ActivateOnCondition(ULINT#1441, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1442, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1443, Execute AND HommingModeInvalid, eAxoMessageCategory#ProgrammingError); IF THIS.AxoHome_Task.StartTriggered() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Home; @@ -759,7 +1193,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF State = UINT#0 THEN Busy := TRUE; Active := TRUE; - MC_HomeErrorID := WORD#16#0000; + MC_HomeErrorID := DINT#0; _AxisReference^.Telegram111_Out.STW1.StartHoming := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.PosModulo := FALSE; @@ -796,13 +1230,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11206; //Acc Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(Acceleration); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(Acceleration * ScalingConstantRequiredAcceleration * 0.001); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#22; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#748; + Messenger.Activate( UINT#1444, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1444; State := UINT#59; END_IF; END_IF; @@ -823,13 +1258,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11209;//Acc Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(Acceleration); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(Acceleration * ScalingConstantRequiredAcceleration * 0.001); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#24; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#749; + Messenger.Activate( UINT#1445, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1445; State := UINT#59; END_IF; END_IF; @@ -850,13 +1286,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11728;//Acc Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(Acceleration); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(Acceleration * ScalingConstantRequiredAcceleration * 0.001); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#26; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#750; + Messenger.Activate( UINT#1446, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1446; State := UINT#59; END_IF; END_IF; @@ -877,13 +1314,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11205; //Vel Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(Velocity); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(Velocity * ScalingConstantRequiredVelocity * 0.001); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#28; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#751; + Messenger.Activate( UINT#1447, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1447; State := UINT#59; END_IF; END_IF; @@ -904,13 +1342,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11208;//Vel Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(Velocity)*REAL#0.5; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(Velocity* ScalingConstantRequiredVelocity * 0.001)*REAL#0.5; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#30; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#752; + Messenger.Activate( UINT#1448, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1448; State := UINT#59; END_IF; END_IF; @@ -931,13 +1370,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11211;//Vel Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(Velocity)*REAL#5.0; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(Velocity * ScalingConstantRequiredVelocity * 0.001)*REAL#5.0; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#32; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#753; + Messenger.Activate( UINT#1449, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1449; State := UINT#59; END_IF; END_IF; @@ -958,13 +1398,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11735;//mode Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11735 := Parametrization.Outputs.ValueReadLINT; State := UINT#34; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#765; + Messenger.Activate( UINT#1450, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1450; State := UINT#59; END_IF; END_IF; @@ -985,13 +1426,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11735;//mode Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteLINT := TO_LINT(HommingMode); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#36; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#754; + Messenger.Activate( UINT#1451, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1451; State := UINT#59; END_IF; END_IF; @@ -1012,13 +1454,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12681;//deactivate save zero offset Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteBOOL := FALSE; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#38; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#756; + Messenger.Activate( UINT#1452, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1452; State := UINT#59; END_IF; END_IF; @@ -1060,13 +1503,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11203;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11203 := Parametrization.Outputs.ValueReadBool; State := UINT#42; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#757; + Messenger.Activate( UINT#1453, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1453; State := UINT#59; END_IF; END_IF; @@ -1087,13 +1531,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11734;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11734 := Parametrization.Outputs.ValueReadLINT; State := UINT#44; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#758; + Messenger.Activate( UINT#1454, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1454; State := UINT#59; END_IF; END_IF; @@ -1114,13 +1559,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11203;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteBOOL := FALSE; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#46; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#759; + Messenger.Activate( UINT#1455, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1455; State := UINT#59; END_IF; END_IF; @@ -1141,13 +1587,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11734;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteLINT := TO_LINT(Position * -10000000000.0); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteLINT := TO_LINT(Position * -10000000.0); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#48; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#760; + Messenger.Activate( UINT#1456, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1456; State := UINT#59; END_IF; END_IF; @@ -1168,13 +1615,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11735;//mode Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteLINT := TO_LINT(37); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#50; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#761; + Messenger.Activate( UINT#1457, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1457; State := UINT#59; END_IF; END_IF; @@ -1212,13 +1660,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11203;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteBool := PNU_11203; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#54; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#762; + Messenger.Activate( UINT#1458, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1458; State := UINT#59; END_IF; END_IF; @@ -1239,13 +1688,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11734;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteLINT := PNU_11734; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#56; END_IF; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#763; + Messenger.Activate( UINT#1459, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1459; State := UINT#59; END_IF; END_IF; @@ -1264,11 +1714,12 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11735; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteLINT := PNU_11735; IF Parametrization.Outputs.Error THEN - MC_HomeErrorID := WORD#766; + Messenger.Activate( UINT#1460, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1460; State := UINT#59; END_IF; _AxisReference^.Telegram111_Out.STW1.StartHoming := FALSE; @@ -1289,8 +1740,8 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN State := UINT#58; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent THEN - IF MC_HomeErrorID = WORD#0 THEN - MC_HomeErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + IF MC_HomeErrorID = DINT#0 THEN + MC_HomeErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; State := UINT#59; ELSIF _AxisReference^.Data.Cycle <> MC_HomeCycle THEN @@ -1303,7 +1754,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoHome_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; - MC_HomeErrorID := WORD#0; + MC_HomeErrorID := DINT#0; State := UINT#0; // MC_HomeCycle := ULINT#0; Parametrization.Inputs.Enable := FALSE; @@ -1312,7 +1763,7 @@ NAMESPACE AXOpen.Components.Festo.Drives END_IF; IF THIS.AxoHome_Task.RestoreTriggered() AND State>=UINT#20 AND State<=UINT#59 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_HomeErrorID := WORD#0; + MC_HomeErrorID := DINT#0; State := UINT#0; MC_HomeCycle := ULINT#0; Parametrization.Inputs.Enable := FALSE; @@ -1331,7 +1782,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_StopExecute_PV : BOOL; //Execute - previous value - MC_StopErrorID : WORD; + MC_StopErrorID : DINT; MC_StopCycle : ULINT; END_VAR METHOD PUBLIC OVERRIDE MC_Stop @@ -1347,7 +1798,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -1355,14 +1806,14 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#711,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1470, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1470; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#740, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#741, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1471, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1472, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); IF THIS.AxoStop_Task.StartTriggered() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Stop; @@ -1379,7 +1830,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF State = UINT#0 THEN Busy := TRUE; Active := TRUE; - MC_StopErrorID := WORD#16#0000; + MC_StopErrorID := DINT#0; _AxisReference^.Telegram111_Out.STW2.TravelToFixStop := FALSE; State := UINT#60; END_IF; @@ -1400,13 +1851,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12327; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(Jerk); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(Jerk * ScalingConstantRequiredJerk ); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#62; END_IF; IF Parametrization.Outputs.Error THEN - MC_StopErrorID := WORD#755; + Messenger.Activate( UINT#1473, eAxoMessageCategory#ProgrammingError); + MC_StopErrorID := DINT#1473; State := UINT#69; END_IF; END_IF; @@ -1468,13 +1920,13 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN State := UINT#68; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent THEN - IF MC_StopErrorID = WORD#0 THEN - MC_StopErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + IF MC_StopErrorID = DINT#0 THEN + MC_StopErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; State := UINT#69; ELSIF _AxisReference^.Data.Cycle <> MC_StopCycle THEN _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; - State := UINT#1068; + State := UINT#68; END_IF; END_IF; THIS.UpdateOutputs(AxisRef); @@ -1483,7 +1935,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoStop_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; _AxisReference^.Telegram111_Out.STW1.cancelTraversing := TRUE; - MC_StopErrorID := WORD#0; + MC_StopErrorID := DINT#0; State := UINT#0; // MC_StopCycle := ULINT#0; THIS.UpdateOutputs(AxisRef); @@ -1492,7 +1944,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoStop_Task.RestoreTriggered() AND State>=UINT#60 AND State<=UINT#69 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; _AxisReference^.Telegram111_Out.STW1.cancelTraversing := TRUE; - MC_StopErrorID := WORD#0; + MC_StopErrorID := DINT#0; State := UINT#0; MC_StopCycle := ULINT#0; THIS.UpdateOutputs(AxisRef); @@ -1508,7 +1960,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_HaltExecute_PV : BOOL; //Execute - previous value - MC_HaltErrorID : WORD; + MC_HaltErrorID : DINT; MC_HaltCycle : ULINT; END_VAR METHOD PUBLIC OVERRIDE MC_Halt @@ -1524,7 +1976,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -1532,15 +1984,12 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#711,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1480, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1480; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#825, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#826, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); - IF THIS.AxoHalt_Task.StartTriggered() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Halt; END_IF; @@ -1551,12 +2000,15 @@ NAMESPACE AXOpen.Components.Festo.Drives State := UINT#0; END_IF; - IF Execute THEN + IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1481, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1482, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + THIS.UpdateInputs(AxisRef); IF State = UINT#0 THEN Busy := TRUE; Active := TRUE; - MC_HaltErrorID := WORD#16#0000; + MC_HaltErrorID := DINT#0; _AxisReference^.Telegram111_Out.STW2.TravelToFixStop := FALSE; State := UINT#70; END_IF; @@ -1576,13 +2028,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12327; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(Jerk); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(Jerk * ScalingConstantRequiredJerk); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#72; END_IF; IF Parametrization.Outputs.Error THEN - MC_HaltErrorID := WORD#764; + Messenger.Activate( UINT#1483, eAxoMessageCategory#ProgrammingError); + MC_HaltErrorID := DINT#1483; State := UINT#79; END_IF; END_IF; @@ -1639,8 +2092,8 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN State := UINT#78; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent THEN - IF MC_HaltErrorID = WORD#0 THEN - MC_HaltErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + IF MC_HaltErrorID = DINT#0 THEN + MC_HaltErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; State := UINT#79; ELSIF _AxisReference^.Data.Cycle <> MC_HaltCycle THEN @@ -1654,7 +2107,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoHalt_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; _AxisReference^.Telegram111_Out.STW1.cancelTraversing := TRUE; - MC_HaltErrorID := WORD#0; + MC_HaltErrorID := DINT#0; State := UINT#0; // MC_HaltCycle := ULINT#0; THIS.UpdateOutputs(AxisRef); @@ -1663,7 +2116,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoHalt_Task.RestoreTriggered() AND State>=UINT#70 AND State<=UINT#79 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; _AxisReference^.Telegram111_Out.STW1.cancelTraversing := TRUE; - MC_HaltErrorID := WORD#0; + MC_HaltErrorID := DINT#0; State := UINT#0; MC_HaltCycle := ULINT#0; THIS.UpdateOutputs(AxisRef); @@ -1678,7 +2131,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_MoveAbsoluteExecute_PV : BOOL; //Execute - previous value - MC_MoveAbsoluteErrorID : WORD; + MC_MoveAbsoluteErrorID : DINT; MC_MoveAbsoluteCycle : ULINT; MC_MoveAbsoluteContinuousUpdate_SV : BOOL; MC_MoveAbsolutePosition_PV : LREAL; @@ -1706,7 +2159,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -1715,16 +2168,16 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#713,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1490, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1490; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#767, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#768, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#769, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#770, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1491, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1492, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1493, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1494, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); IF THIS.AxoMoveAbsolute_Task.StartTriggered() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_MoveAbsolute; @@ -1745,7 +2198,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF State = UINT#0 THEN Busy := TRUE; Active := TRUE; - MC_MoveAbsoluteErrorID := WORD#16#0000; + MC_MoveAbsoluteErrorID := DINT#0; _AxisReference^.Telegram111_Out.STW1.StartHoming := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.PosModulo := FALSE; @@ -1770,10 +2223,10 @@ NAMESPACE AXOpen.Components.Festo.Drives Busy := TRUE; Active := TRUE; IF Velocity > 0 AND Acceleration > 0 AND Deceleration >0 AND Jerk > 0 THEN - _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT(Position * ScalingConstantRequiredPosition); - _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity *ScalingConstantRequiredVelocity); - _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration *ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); - _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration *ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT(Position * ScalingConstantRequiredPosition); + _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); MC_MoveAbsolutePosition_PV := Position; MC_MoveAbsoluteVelocity_PV := Velocity; MC_MoveAbsoluteAcceleration_PV := Acceleration; @@ -1792,13 +2245,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12327; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_MoveAbsoluteJerk_PV * _AxisReference^.Data.OverrideJerkFactor); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_MoveAbsoluteJerk_PV * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#82; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveAbsoluteErrorID := WORD#771; + Messenger.Activate( UINT#1495, eAxoMessageCategory#ProgrammingError); + MC_MoveAbsoluteErrorID := DINT#1495; State := UINT#89; END_IF; END_IF; @@ -1864,8 +2318,8 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN State := UINT#88; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent THEN - IF MC_MoveAbsoluteErrorID = WORD#0 THEN - MC_MoveAbsoluteErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + IF MC_MoveAbsoluteErrorID = DINT#0 THEN + MC_MoveAbsoluteErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; State := UINT#89; ELSIF _AxisReference^.Data.Cycle <> MC_MoveAbsoluteCycle THEN @@ -1880,7 +2334,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoMoveAbsolute_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_MoveAbsoluteErrorID := WORD#0; + MC_MoveAbsoluteErrorID := DINT#0; State := UINT#0; // MC_MoveAbsoluteCycle := ULINT#0; THIS.UpdateOutputs(AxisRef); @@ -1889,7 +2343,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoMoveAbsolute_Task.RestoreTriggered() AND State>=UINT#80 AND State<=UINT#89 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_MoveAbsoluteErrorID := WORD#0; + MC_MoveAbsoluteErrorID := DINT#0; MC_MoveAbsoluteCycle := ULINT#0; State := UINT#0; MC_MoveAbsoluteExecute_PV := FALSE; @@ -1905,7 +2359,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_MoveRelativeExecute_PV : BOOL; //Execute - previous value - MC_MoveRelativeErrorID : WORD; + MC_MoveRelativeErrorID : DINT; MC_MoveRelativeCycle : ULINT; MC_MoveRelativeContinuousUpdate_SV : BOOL; MC_MoveRelativeDistance_PV : LREAL; @@ -1931,7 +2385,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -1940,16 +2394,16 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#714,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1500, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1500; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#772, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#773, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#774, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#775, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1501, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1502, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1503, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1504, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); IF THIS.AxoMoveRelative_Task.StartTriggered() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_MoveRelative; @@ -1969,7 +2423,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF State = UINT#0 THEN Busy := TRUE; Active := TRUE; - MC_MoveRelativeErrorID := WORD#16#0000; + MC_MoveRelativeErrorID := DINT#0; _AxisReference^.Telegram111_Out.STW1.StartHoming := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.PosModulo := FALSE; @@ -1994,10 +2448,10 @@ NAMESPACE AXOpen.Components.Festo.Drives Busy := TRUE; Active := TRUE; IF Velocity > 0 AND Acceleration > 0 AND Deceleration >0 AND Jerk > 0 THEN - _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT(Distance * ScalingConstantRequiredPosition); - _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity *ScalingConstantRequiredVelocity); - _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration *ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); - _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration *ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT(Distance * ScalingConstantRequiredPosition); + _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); MC_MoveRelativeDistance_PV := Distance; MC_MoveRelativeVelocity_PV := Velocity; MC_MoveRelativeAcceleration_PV := Acceleration; @@ -2015,13 +2469,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12327; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_MoveRelativeJerk_PV * _AxisReference^.Data.OverrideJerkFactor); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_MoveRelativeJerk_PV * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#92; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveRelativeErrorID := WORD#776; + Messenger.Activate( UINT#1505, eAxoMessageCategory#ProgrammingError); + MC_MoveRelativeErrorID := DINT#1505; State := UINT#99; END_IF; END_IF; @@ -2080,10 +2535,10 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_MoveRelativeJerk_PV <> Jerk ) THEN _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; IF NOT _AxisReference^.Telegram111_In.ZSW1.acknowledgeTraversingBlockActivated THEN - _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT((Distance) * ScalingConstantRequiredPosition) - _AxisReference^.Telegram111_In.XIST_A; - _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity *ScalingConstantRequiredVelocity); - _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration *ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); - _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration *ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT((Distance) * ScalingConstantRequiredPosition) - _AxisReference^.Telegram111_In.XIST_A; + _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); MC_MoveRelativeDistance_PV := Distance; MC_MoveRelativeVelocity_PV := Velocity; MC_MoveRelativeAcceleration_PV := Acceleration; @@ -2095,8 +2550,8 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN State := UINT#98; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent THEN - IF MC_MoveRelativeErrorID = WORD#0 THEN - MC_MoveRelativeErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + IF MC_MoveRelativeErrorID = DINT#0 THEN + MC_MoveRelativeErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; State := UINT#99; ELSIF _AxisReference^.Data.Cycle <> MC_MoveRelativeCycle THEN @@ -2110,7 +2565,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoMoveRelative_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_MoveRelativeErrorID := WORD#0; + MC_MoveRelativeErrorID := DINT#0; // MC_MoveRelativeCycle := ULINT#0; State := UINT#0; THIS.UpdateOutputs(AxisRef); @@ -2119,7 +2574,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoMoveRelative_Task.RestoreTriggered() AND State>=UINT#90 AND State<=UINT#99 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_MoveRelativeErrorID := WORD#0; + MC_MoveRelativeErrorID := DINT#0; MC_MoveRelativeCycle := ULINT#0; State := UINT#0; THIS.UpdateOutputs(AxisRef); @@ -2137,7 +2592,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_MoveAdditiveExecute_PV : BOOL; //Execute - previous value - MC_MoveAdditiveErrorID : WORD; + MC_MoveAdditiveErrorID : DINT; MC_MoveAdditiveCycle : ULINT; MC_MoveAdditiveContinuousUpdate_SV : BOOL; MC_MoveAdditiveDistance_PV : LREAL; @@ -2163,7 +2618,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -2172,16 +2627,16 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#715,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1510, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1510; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#777, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#778, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#779, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#780, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1511, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1512, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1513, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1514, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); IF Execute AND NOT MC_MoveAdditiveExecute_PV THEN State := UINT#0; @@ -2196,7 +2651,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF State = UINT#0 THEN Busy := TRUE; Active := TRUE; - MC_MoveAdditiveErrorID := WORD#16#0000; + MC_MoveAdditiveErrorID := DINT#0; _AxisReference^.Telegram111_Out.STW1.StartHoming := FALSE; // _AxisReference^.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.PosModulo := FALSE; @@ -2226,15 +2681,15 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; IF _AxisReference^.Status.CurrentMotionTaskId = eAxoMotionTaskId#Axo_MoveAbsolute THEN AxoMoveAbsolute_Task.Abort(); - _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT((MC_MoveAbsolutePosition_PV + Distance) * ScalingConstantRequiredPosition); - _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity *ScalingConstantRequiredVelocity); - _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration *ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); - _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration *ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT((MC_MoveAbsolutePosition_PV + Distance) * ScalingConstantRequiredPosition); + _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); ELSE - _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT((Distance) * ScalingConstantRequiredPosition); - _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity *ScalingConstantRequiredVelocity); - _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration *ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); - _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration *ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT((Distance) * ScalingConstantRequiredPosition); + _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); _AxisReference^.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; END_IF; IF _AxisReference^.Status.CurrentMotionTaskId = eAxoMotionTaskId#Axo_MoveRelative THEN @@ -2258,13 +2713,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12327; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_MoveAdditiveJerk_PV * _AxisReference^.Data.OverrideJerkFactor); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_MoveAdditiveJerk_PV * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#102; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveAdditiveErrorID := WORD#781; + Messenger.Activate( UINT#1515, eAxoMessageCategory#ProgrammingError); + MC_MoveAdditiveErrorID := DINT#1515; State := UINT#109; END_IF; END_IF; @@ -2327,9 +2783,9 @@ NAMESPACE AXOpen.Components.Festo.Drives ELSE _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT((Distance) * ScalingConstantRequiredPosition) - _AxisReference^.Telegram111_In.XIST_A; END_IF; - _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity *ScalingConstantRequiredVelocity); - _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration *ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); - _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration *ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); MC_MoveAdditiveDistance_PV := Distance; MC_MoveAdditiveVelocity_PV := Velocity; MC_MoveAdditiveAcceleration_PV := Acceleration; @@ -2341,8 +2797,8 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN State := UINT#108; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent THEN - IF MC_MoveAdditiveErrorID = WORD#0 THEN - MC_MoveAdditiveErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + IF MC_MoveAdditiveErrorID = DINT#0 THEN + MC_MoveAdditiveErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; State := UINT#109; ELSIF _AxisReference^.Data.Cycle <> MC_MoveAdditiveCycle THEN @@ -2356,7 +2812,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoMoveAdditive_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_MoveAdditiveErrorID := WORD#0; + MC_MoveAdditiveErrorID := DINT#0; // MC_MoveAdditiveCycle := ULINT#0; State := UINT#0; THIS.UpdateOutputs(AxisRef); @@ -2365,7 +2821,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoMoveAdditive_Task.RestoreTriggered() AND State>=UINT#100 AND State<=UINT#109 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_MoveAdditiveErrorID := WORD#0; + MC_MoveAdditiveErrorID := DINT#0; MC_MoveAdditiveCycle := ULINT#0; State := UINT#0; THIS.UpdateOutputs(AxisRef); @@ -2380,7 +2836,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_MoveVelocityExecute_PV : BOOL; //Execute - previous value - MC_MoveVelocityErrorID : WORD; + MC_MoveVelocityErrorID : DINT; MC_MoveVelocityCycle : ULINT; MC_MoveVelocityContinuousUpdate_SV : BOOL; MC_MoveVelocityVelocity_PV : LREAL; @@ -2406,46 +2862,32 @@ NAMESPACE AXOpen.Components.Festo.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; Dummy : BOOL; Velocity_ : LREAL; Direction_ : AXOpen.Components.Abstractions.Drives.eAxoDriveDirection; + VelocityWindowPerCent : LREAL := LREAL#5.0; + VelocityWindowMin : LREAL; + VelocityWindowMax : LREAL; END_VAR _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#716,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1520, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1520; + InVelocity := FALSE; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#737,Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection, eAxoMessageCategory#ProgrammingError); - - IF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN - Velocity_ := Velocity; - ELSIF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection THEN - Velocity_ := -1 * Velocity; - ELSE - RETURN; - END_IF; - - IF Velocity_> 0 THEN - Direction_ := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection; - ELSE - Direction_ := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection; - END_IF; - _AxisReference ?= AxisRef; - - Messenger.ActivateOnCondition(ULINT#713,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#782, Execute AND Velocity = 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#783, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#784, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#785, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1522, Execute AND Velocity = 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1523, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1524, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1525, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); IF THIS.AxoMoveVelocity_Task.StartTriggered() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_MoveVelocity; @@ -2457,6 +2899,27 @@ NAMESPACE AXOpen.Components.Festo.Drives END_IF; IF Execute THEN + IF Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection THEN + Messenger.Activate( UINT#1521, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1521; + InVelocity := FALSE; + RETURN; + END_IF; + + IF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN + Velocity_ := Velocity; + ELSIF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection THEN + Velocity_ := -1 * Velocity; + ELSE + RETURN; + END_IF; + + IF Velocity_> 0 THEN + Direction_ := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection; + ELSE + Direction_ := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection; + END_IF; + THIS.UpdateInputs(AxisRef); IF NOT ContinuousUpdate THEN MC_MoveVelocityContinuousUpdate_SV := FALSE; @@ -2465,7 +2928,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF State = UINT#0 THEN Busy := TRUE; Active := TRUE; - MC_MoveVelocityErrorID := WORD#16#0000; + MC_MoveVelocityErrorID := DINT#0; _AxisReference^.Telegram111_Out.STW1.StartHoming := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.PosModulo := FALSE; @@ -2491,9 +2954,9 @@ NAMESPACE AXOpen.Components.Festo.Drives Active := TRUE; IF Velocity <> 0 AND Acceleration > 0 AND Deceleration >0 AND Jerk > 0 THEN _AxisReference^.Telegram111_Out.MDI_TARPOS := DINT#0; - _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(ABS(Velocity_) *ScalingConstantRequiredVelocity); - _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration *ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); - _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration *ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(ABS(Velocity_) * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); MC_MoveVelocityVelocity_PV := Velocity_; MC_MoveVelocityAcceleration_PV := Acceleration; @@ -2512,13 +2975,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12327; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_MoveVelocityJerk_PV * _AxisReference^.Data.OverrideJerkFactor); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_MoveVelocityJerk_PV * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#112; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveVelocityErrorID := WORD#786; + Messenger.Activate( UINT#1526, eAxoMessageCategory#ProgrammingError); + MC_MoveVelocityErrorID := DINT#1526; State := UINT#119; END_IF; END_IF; @@ -2550,13 +3014,20 @@ NAMESPACE AXOpen.Components.Festo.Drives State := UINT#115; END_IF; END_IF; + IF Direction_ = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN + VelocityWindowMax := Velocity_ + (Velocity_ * VelocityWindowPerCent / REAL#100.0); + VelocityWindowMin := Velocity_ - (Velocity_ * VelocityWindowPerCent / REAL#100.0); + ELSE + VelocityWindowMax := Velocity_ - (Velocity_ * VelocityWindowPerCent / REAL#100.0); + VelocityWindowMin := Velocity_ + (Velocity_ * VelocityWindowPerCent / REAL#100.0); + END_IF; + InVelocity := ActualVelocity >= VelocityWindowMin AND ActualVelocity <= VelocityWindowMax; IF State = UINT#115 THEN - IF TRUE THEN + IF InVelocity THEN State := UINT#116; END_IF; END_IF; IF State = UINT#116 THEN - InVelocity := TRUE; IF NOT MC_MoveVelocityContinuousUpdate_SV THEN State := UINT#117; END_IF; @@ -2588,8 +3059,8 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN State := UINT#118; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent THEN - IF MC_MoveVelocityErrorID = WORD#0 THEN - MC_MoveVelocityErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + IF MC_MoveVelocityErrorID = DINT#0 THEN + MC_MoveVelocityErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; State := UINT#119; ELSIF _AxisReference^.Data.Cycle <> MC_MoveVelocityCycle THEN @@ -2603,7 +3074,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoMoveVelocity_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_MoveVelocityErrorID := WORD#0; + MC_MoveVelocityErrorID := DINT#0; // MC_MoveVelocityCycle := ULINT#0; State := UINT#0; THIS.UpdateOutputs(AxisRef); @@ -2612,7 +3083,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoMoveVelocity_Task.RestoreTriggered() AND State>=UINT#110 AND State<=UINT#119 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_MoveVelocityErrorID := WORD#0; + MC_MoveVelocityErrorID := DINT#0; MC_MoveVelocityCycle := ULINT#0; State := UINT#0; THIS.UpdateOutputs(AxisRef); @@ -2630,7 +3101,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_TorqueControlExecute_PV : BOOL; //Execute - previous value - MC_TorqueControlErrorID : WORD; + MC_TorqueControlErrorID : DINT; MC_TorqueControlCycle : ULINT; MC_TorqueControlContinuousUpdate_SV : BOOL; MC_TorqueControlTorque_PV : LREAL; @@ -2662,40 +3133,26 @@ NAMESPACE AXOpen.Components.Festo.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; Dummy : BOOL; Torque_ : LREAL; PositiveDirection_ : BOOL; + TorqueWindowPerCent : LREAL := LREAL#5.0; + TorqueWindowMin : LREAL; + TorqueWindowMax : LREAL; END_VAR _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#717,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1530, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1530; RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#739,Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#814, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#815, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#816, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#817, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#818, Execute AND Torque = 0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#819, Execute AND TorqueRamp <= 0, eAxoMessageCategory#ProgrammingError); - - IF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN - Torque_ := Torque; - ELSIF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection THEN - Torque_ := -1 * Torque; - ELSE - RETURN; - END_IF; - PositiveDirection_ := Torque_ > 0; - IF THIS.AxoTorqueControl_Task.StartTriggered() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_TorqueControl; END_IF; @@ -2706,6 +3163,23 @@ NAMESPACE AXOpen.Components.Festo.Drives END_IF; IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1531,Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1532, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1533, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1534, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1535, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1536, Execute AND Torque = 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1537, Execute AND TorqueRamp <= 0, eAxoMessageCategory#ProgrammingError); + + IF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN + Torque_ := Torque; + ELSIF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection THEN + Torque_ := -1 * Torque; + ELSE + RETURN; + END_IF; + PositiveDirection_ := Torque_ > 0; + THIS.UpdateInputs(AxisRef); IF NOT ContinuousUpdate THEN MC_TorqueControlContinuousUpdate_SV := FALSE; @@ -2714,7 +3188,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF State = UINT#0 THEN Busy := TRUE; Active := TRUE; - MC_TorqueControlErrorID := WORD#16#0000; + MC_TorqueControlErrorID := DINT#0; _AxisReference^.Telegram111_Out.STW1.StartHoming := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.PosModulo := FALSE; @@ -2734,10 +3208,10 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.Enable := FALSE; MC_TorqueControlContinuousUpdate_SV := ContinuousUpdate; IF Velocity > 0 AND Acceleration > 0 AND Deceleration > 0 AND Jerk > 0 AND Torque <> 0 AND TorqueRamp > 0 THEN - _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT(PositionLimit * ScalingConstantRequiredPosition); - _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity *ScalingConstantRequiredVelocity); - _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration *ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); - _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration *ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_TARPOS := TO_DINT(PositionLimit * ScalingConstantRequiredPosition); + _AxisReference^.Telegram111_Out.MDI_VELOCITY := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Telegram111_Out.MDI_ACC := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Telegram111_Out.MDI_DEC := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); MC_TorqueControlPositionLimit_PV := PositionLimit; MC_TorqueControlVelocity_PV := Velocity; @@ -2755,10 +3229,12 @@ NAMESPACE AXOpen.Components.Festo.Drives Active := TRUE; IF PositiveDirection_ AND THIS.ActualPosition >= MC_TorqueControlPositionLimit_PV THEN State := UINT#129; - MC_TorqueControlErrorID := TO_WORD(823); + Messenger.Activate( UINT#1538, eAxoMessageCategory#ProgrammingError); + MC_TorqueControlErrorID := DINT#1538; ELSIF NOT PositiveDirection_ AND THIS.ActualPosition <= MC_TorqueControlPositionLimit_PV THEN State := UINT#129; - MC_TorqueControlErrorID := TO_WORD(824); + Messenger.Activate( UINT#1539, eAxoMessageCategory#ProgrammingError); + MC_TorqueControlErrorID := DINT#1539; ELSE State := UINT#121; END_IF; @@ -2772,25 +3248,57 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12168; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_TorqueControlTorque_PV * ScalingConstantRequiredTorque); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + Parametrization.Inputs.Enable := FALSE; + Parametrization.Inputs.ReadWrite := FALSE; State := UINT#122; + RETURN; END_IF; IF Parametrization.Outputs.Error THEN - MC_TorqueControlErrorID := WORD#820; + Messenger.Activate( UINT#1540, eAxoMessageCategory#ProgrammingError); + MC_TorqueControlErrorID := DINT#1540; + Parametrization.Inputs.Enable := FALSE; + Parametrization.Inputs.ReadWrite := FALSE; State := UINT#129; END_IF; END_IF; + // IF State = UINT#122 THEN + // Busy := TRUE; + // Active := TRUE; + // Parametrization.Inputs.Enable := FALSE; + // Parametrization.Inputs.ReadWrite := FALSE; + // Debug := Debug + LINT#1; + // IF NOT Parametrization.Outputs.Done THEN + // State := UINT#123; + // END_IF; + // END_IF; + //Writing PNU 11822 Default value torque rise ramp torque IF State = UINT#122 THEN Busy := TRUE; Active := TRUE; - Parametrization.Inputs.Enable := FALSE; - Parametrization.Inputs.ReadWrite := FALSE; - IF NOT Parametrization.Outputs.Done THEN + Parametrization.Inputs.Enable := TRUE; + Parametrization.Inputs.ReadWrite := TRUE; + Parametrization.Inputs.ParameterNo := 11822; + Parametrization.Inputs.Subindex := 0; + Parametrization.Inputs.AxisNo := BYTE#1; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_TorqueControlTorqueRamp_PV); + IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + Parametrization.Inputs.Enable := FALSE; + Parametrization.Inputs.ReadWrite := FALSE; State := UINT#123; + RETURN; END_IF; - END_IF; + IF Parametrization.Outputs.Error THEN + Messenger.Activate( UINT#1540, eAxoMessageCategory#ProgrammingError); + MC_TorqueControlErrorID := DINT#1540; + Parametrization.Inputs.Enable := FALSE; + Parametrization.Inputs.ReadWrite := FALSE; + State := UINT#129; + END_IF; + END_IF; //Writing PNU 12327 Jerk IF State = UINT#123 THEN Busy := TRUE; @@ -2800,13 +3308,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12327; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; - Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_TorqueControlJerk_PV * _AxisReference^.Data.OverrideJerkFactor); + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + Parametrization.Inputs.ValueWriteREAL := TO_REAL(MC_TorqueControlJerk_PV * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + Parametrization.Inputs.Enable := FALSE; + Parametrization.Inputs.ReadWrite := FALSE; State := UINT#124; + RETURN; END_IF; IF Parametrization.Outputs.Error THEN - MC_TorqueControlErrorID := WORD#821; + Messenger.Activate( UINT#1541, eAxoMessageCategory#ProgrammingError); + MC_TorqueControlErrorID := DINT#1541; State := UINT#129; END_IF; END_IF; @@ -2834,6 +3346,14 @@ NAMESPACE AXOpen.Components.Festo.Drives State := UINT#126; END_IF; END_IF; + IF PositiveDirection_ THEN + TorqueWindowMax := Torque_ + (Torque_ * TorqueWindowPerCent / REAL#100.0); + TorqueWindowMin := Torque_ - (Torque_ * TorqueWindowPerCent / REAL#100.0); + ELSE + TorqueWindowMax := Torque_ - (Torque_ * TorqueWindowPerCent / REAL#100.0); + TorqueWindowMin := Torque_ + (Torque_ * TorqueWindowPerCent / REAL#100.0); + END_IF; + InTorque := ActualTorque >= TorqueWindowMin AND ActualTorque <= TorqueWindowMax; IF State = UINT#126 THEN InTorque := _AxisReference^.Telegram111_In.POS_ZSW2.%X13; IF NOT MC_TorqueControlContinuousUpdate_SV THEN @@ -2853,7 +3373,8 @@ NAMESPACE AXOpen.Components.Festo.Drives END_IF; IF (State=UINT#126 OR State =UINT#127) AND _AxisReference^.Telegram111_In.ZSW1.targetPosReached THEN - MC_TorqueControlErrorID := TO_WORD(822); + Messenger.Activate( UINT#1542, eAxoMessageCategory#ProgrammingError); + MC_TorqueControlErrorID := DINT#1542; State := UINT#129; END_IF; @@ -2875,8 +3396,8 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN State := UINT#128; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent THEN - IF MC_TorqueControlErrorID = WORD#0 THEN - MC_TorqueControlErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + IF MC_TorqueControlErrorID = DINT#0 THEN + MC_TorqueControlErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; State := UINT#129; ELSIF _AxisReference^.Data.Cycle <> MC_TorqueControlCycle THEN @@ -2890,7 +3411,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoTorqueControl_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_TorqueControlErrorID := WORD#0; + MC_TorqueControlErrorID := DINT#0; // MC_TorqueControlCycle := ULINT#0; State := UINT#0; THIS.UpdateOutputs(AxisRef); @@ -2899,7 +3420,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoTorqueControl_Task.RestoreTriggered() AND State>=UINT#120 AND State<=UINT#129 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; - MC_TorqueControlErrorID := WORD#0; + MC_TorqueControlErrorID := DINT#0; MC_TorqueControlCycle := ULINT#0; State := UINT#0; THIS.UpdateOutputs(AxisRef); @@ -2917,7 +3438,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_SetPositionExecute_PV : BOOL; //Execute - previous value - MC_SetPositionErrorID : WORD; + MC_SetPositionErrorID : DINT; MC_SetPositionCycle : ULINT; MC_SetPositionActualPosition : LINT; END_VAR @@ -2933,7 +3454,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Done : BOOL; // ‘Position’ has new value Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -2942,9 +3463,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#718,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1550, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1550; RETURN; END_IF; @@ -2961,7 +3482,7 @@ NAMESPACE AXOpen.Components.Festo.Drives THIS.UpdateInputs(AxisRef); IF State = UINT#0 THEN Busy := TRUE; - MC_SetPositionErrorID := WORD#16#0000; + MC_SetPositionErrorID := DINT#0; _AxisReference^.Telegram111_Out.STW1.StartHoming := FALSE; _AxisReference^.Telegram111_Out.STW1.activateTraversing := FALSE; _AxisReference^.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; @@ -2990,13 +3511,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11735;//mode Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11735 := Parametrization.Outputs.ValueReadLINT; State := UINT#131; END_IF; IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#787; + Messenger.Activate( UINT#1551, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1551; State := UINT#159; END_IF; END_IF; @@ -3015,13 +3537,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12681;//deactivate save zero offset Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteBOOL := FALSE; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#133; END_IF; IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#789; + Messenger.Activate( UINT#1552, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1552; State := UINT#159; END_IF; END_IF; @@ -3040,13 +3563,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11203;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11203 := Parametrization.Outputs.ValueReadBool; State := UINT#135; END_IF; IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#790; + Messenger.Activate( UINT#1553, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1553; State := UINT#159; END_IF; END_IF; @@ -3065,13 +3589,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11734;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11734 := Parametrization.Outputs.ValueReadLINT; State := UINT#137; END_IF; IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#791; + Messenger.Activate( UINT#1554, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1554; State := UINT#159; END_IF; END_IF; @@ -3090,13 +3615,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11203;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteBOOL := FALSE; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#139; END_IF; IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#792; + Messenger.Activate( UINT#1555, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1555; State := UINT#159; END_IF; END_IF; @@ -3116,17 +3642,18 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11734;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Relative THEN - Parametrization.Inputs.ValueWriteLINT := MC_SetPositionActualPosition + TO_LINT(Position * -10000000000.0); + Parametrization.Inputs.ValueWriteLINT := MC_SetPositionActualPosition + TO_LINT(Position * -10000000.0); ELSE - Parametrization.Inputs.ValueWriteLINT := TO_LINT(Position * -10000000000.0); + Parametrization.Inputs.ValueWriteLINT := TO_LINT(Position * -10000000.0); END_IF; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#141; END_IF; IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#793; + Messenger.Activate( UINT#1556, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1556; State := UINT#159; END_IF; END_IF; @@ -3145,13 +3672,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11735;//mode Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteLINT := TO_LINT(37); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#143; END_IF; IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#794; + Messenger.Activate( UINT#1557, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1557; State := UINT#159; END_IF; END_IF; @@ -3185,13 +3713,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11203;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteBool := PNU_11203; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#147; END_IF; IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#795; + Messenger.Activate( UINT#1558, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1558; State := UINT#159; END_IF; END_IF; @@ -3210,13 +3739,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11734;//Move to axis zero after homming Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteLINT := PNU_11734; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#149; END_IF; IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#796; + Messenger.Activate( UINT#1559, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1559; State := UINT#159; END_IF; END_IF; @@ -3234,14 +3764,15 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 11735; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteLINT := PNU_11735; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#151; - END_IF; - IF Parametrization.Outputs.Error THEN - MC_SetPositionErrorID := WORD#797; - State := UINT#159; + END_IF; + IF Parametrization.Outputs.Error THEN + Messenger.Activate( UINT#1560, eAxoMessageCategory#ProgrammingError); + MC_SetPositionErrorID := DINT#1560; + State := UINT#159; END_IF; END_IF; IF State = UINT#151 THEN @@ -3299,8 +3830,8 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _AxisReference^.Telegram111_In.ZSW1.operationEnabled THEN State := UINT#158; ELSIF _AxisReference^.Telegram111_In.ZSW1.faultPresent THEN - IF MC_SetPositionErrorID = WORD#0 THEN - MC_SetPositionErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + IF MC_SetPositionErrorID = DINT#0 THEN + MC_SetPositionErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; State := UINT#159; ELSIF _AxisReference^.Data.Cycle <> MC_SetPositionCycle THEN @@ -3312,16 +3843,16 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoSetPosition_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; - MC_SetPositionErrorID := WORD#0; + MC_SetPositionErrorID := DINT#0; // MC_SetPositionCycle := ULINT#0; Parametrization.Inputs.Enable := FALSE; Parametrization.Inputs.ReadWrite := FALSE; State := UINT#0; THIS.UpdateOutputs(AxisRef); END_IF; - IF THIS.AxoSetPosition_Task.RestoreTriggered() AND State>=UINT#20 AND State<=UINT#59 THEN + IF THIS.AxoSetPosition_Task.RestoreTriggered() AND State>=UINT#130 AND State<=UINT#159 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_SetPositionErrorID := WORD#0; + MC_SetPositionErrorID := DINT#0; MC_SetPositionCycle := ULINT#0; Parametrization.Inputs.Enable := FALSE; Parametrization.Inputs.ReadWrite := FALSE; @@ -3349,7 +3880,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Enabled : BOOL; // Signals that the override factor(s) is (are) set successfully Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -3357,16 +3888,17 @@ NAMESPACE AXOpen.Components.Festo.Drives END_VAR _AxisReference ?= AxisRef; - - Messenger.ActivateOnCondition(ULINT#719,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#798, Enable AND (VelocityFactor <= 0.0 OR VelocityFactor >= 2.0), eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#799, Enable AND (AccelerationFactor <= 0.0 OR AccelerationFactor > 1.0), eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#800, Enable AND (JerkFactor <= 0.0 OR JerkFactor > 1.0), eAxoMessageCategory#ProgrammingError); - + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1570, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1570; RETURN; END_IF; + Messenger.ActivateOnCondition(ULINT#1571, Enable AND (VelocityFactor <= 0.0 OR VelocityFactor >= 2.0), eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1572, Enable AND (AccelerationFactor <= 0.0 OR AccelerationFactor > 1.0), eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1573, Enable AND (JerkFactor <= 0.0 OR JerkFactor > 1.0), eAxoMessageCategory#ProgrammingError); + IF Enable THEN Busy := TRUE; IF VelocityFactor <= 0.0 OR VelocityFactor >= 2.0 OR AccelerationFactor <= 0.0 OR AccelerationFactor > 1.0 OR JerkFactor <= 0.0 OR JerkFactor > 1.0 THEN @@ -3388,7 +3920,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_ReadParameterEnable_PV : BOOL := FALSE; //Enable - previous value - MC_ReadParameterErrorID : WORD; + MC_ReadParameterErrorID : DINT; MC_ReadParameterCycle : ULINT; MC_ReadParameterValue : LINT; MC_ReadParameterValid : BOOL; @@ -3403,7 +3935,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : LINT; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR VAR @@ -3413,9 +3945,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#720,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1580, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1580; RETURN; END_IF; @@ -3428,7 +3960,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF Enable THEN IF State = UINT#0 THEN Busy := TRUE; - MC_ReadParameterErrorID := WORD#16#0000; + MC_ReadParameterErrorID := DINT#0; Parametrization.Inputs.Enable := FALSE; State := UINT#160; END_IF; @@ -3439,14 +3971,15 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := TO_INT(ParameterNumber); Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN MC_ReadParameterValid := TRUE; MC_ReadParameterValue := Parametrization.Outputs.ValueReadLINT; State := UINT#161; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveVelocityErrorID := WORD#801; + Messenger.Activate( UINT#1581, eAxoMessageCategory#ProgrammingError); + MC_ReadParameterErrorID := DINT#1581; State := UINT#169; END_IF; END_IF; @@ -3472,7 +4005,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT Enable AND MC_ReadParameterEnable_PV THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_ReadParameterErrorID := WORD#0; + MC_ReadParameterErrorID := DINT#0; MC_ReadParameterCycle := ULINT#0; MC_ReadParameterValid := FALSE; MC_ReadParameterValue := LINT#0; @@ -3490,7 +4023,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_ReadRealParameterEnable_PV : BOOL := FALSE; //Enable - previous value - MC_ReadRealParameterErrorID : WORD; + MC_ReadRealParameterErrorID : DINT; MC_ReadRealParameterCycle : ULINT; MC_ReadRealParameterValue : REAL; MC_ReadRealParameterValid : BOOL; @@ -3505,7 +4038,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : REAL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR VAR @@ -3515,11 +4048,12 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#721,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1590, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1590; RETURN; END_IF; + IF Enable AND NOT MC_ReadRealParameterEnable_PV AND State = UINT#0 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_ReadRealParameter; _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; @@ -3529,7 +4063,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF Enable THEN IF State = UINT#0 THEN Busy := TRUE; - MC_ReadRealParameterErrorID := WORD#16#0000; + MC_ReadRealParameterErrorID := DINT#0; Parametrization.Inputs.Enable := FALSE; State := UINT#170; END_IF; @@ -3540,14 +4074,15 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := TO_INT(ParameterNumber); Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN MC_ReadRealParameterValid := TRUE; MC_ReadRealParameterValue := Parametrization.Outputs.ValueReadREAL; State := UINT#171; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveVelocityErrorID := WORD#802; + Messenger.Activate( UINT#1591, eAxoMessageCategory#ProgrammingError); + MC_ReadRealParameterErrorID := DINT#1591; State := UINT#179; END_IF; END_IF; @@ -3573,7 +4108,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT Enable AND MC_ReadRealParameterEnable_PV THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_ReadRealParameterErrorID := WORD#0; + MC_ReadRealParameterErrorID := DINT#0; MC_ReadRealParameterCycle := ULINT#0; MC_ReadRealParameterValid := FALSE; MC_ReadRealParameterValue := REAL#0.0; @@ -3591,7 +4126,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_ReadBoolParameterEnable_PV : BOOL := FALSE; //Enable - previous value - MC_ReadBoolParameterErrorID : WORD; + MC_ReadBoolParameterErrorID : DINT; MC_ReadBoolParameterCycle : ULINT; MC_ReadBoolParameterValue : BOOL; MC_ReadBoolParameterValid : BOOL; @@ -3606,7 +4141,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR VAR @@ -3617,9 +4152,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#722,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1600, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1600; RETURN; END_IF; @@ -3632,7 +4167,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF Enable THEN IF State = UINT#0 THEN Busy := TRUE; - MC_ReadBoolParameterErrorID := WORD#16#0000; + MC_ReadBoolParameterErrorID := DINT#0; Parametrization.Inputs.Enable := FALSE; State := UINT#180; END_IF; @@ -3643,14 +4178,15 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := TO_INT(ParameterNumber); Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN MC_ReadBoolParameterValid := TRUE; MC_ReadBoolParameterValue := Parametrization.Outputs.ValueReadBOOL; State := UINT#181; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveVelocityErrorID := WORD#801; + Messenger.Activate( UINT#1601, eAxoMessageCategory#ProgrammingError); + MC_ReadBoolParameterErrorID := DINT#1601; State := UINT#189; END_IF; END_IF; @@ -3676,7 +4212,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT Enable AND MC_ReadBoolParameterEnable_PV THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_ReadBoolParameterErrorID := WORD#0; + MC_ReadBoolParameterErrorID := DINT#0; MC_ReadBoolParameterCycle := ULINT#0; MC_ReadBoolParameterValid := FALSE; MC_ReadBoolParameterValue := FALSE; @@ -3695,7 +4231,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_WriteParameterExecute_PV : BOOL := FALSE; //Enable - previous value - MC_WriteParameterErrorID : WORD; + MC_WriteParameterErrorID : DINT; MC_WriteParameterCycle : ULINT; END_VAR METHOD PUBLIC OVERRIDE MC_WriteParameter @@ -3710,7 +4246,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -3719,9 +4255,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#723,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1610, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1610; RETURN; END_IF; @@ -3747,13 +4283,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := TO_INT(ParameterNumber); Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteLINT := Value; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#191; END_IF; IF Parametrization.Outputs.Error THEN - MC_WriteParameterErrorID := WORD#804; + Messenger.Activate( UINT#1611, eAxoMessageCategory#ProgrammingError); + MC_WriteParameterErrorID := DINT#1611; State := UINT#199; END_IF; END_IF; @@ -3784,14 +4321,14 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoWriteParameter_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; - MC_WriteParameterErrorID := WORD#0; + MC_WriteParameterErrorID := DINT#0; // MC_WriteParameterCycle := ULINT#0; State := UINT#0; END_IF; IF THIS.AxoWriteParameter_Task.RestoreTriggered() AND State>=UINT#190 AND State<=UINT#199 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_WriteParameterErrorID := WORD#0; + MC_WriteParameterErrorID := DINT#0; MC_WriteParameterCycle := ULINT#0; State := UINT#0; END_IF; @@ -3805,7 +4342,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_WriteRealParameterExecute_PV : BOOL := FALSE; //Enable - previous value - MC_WriteRealParameterErrorID : WORD; + MC_WriteRealParameterErrorID : DINT; MC_WriteRealParameterCycle : ULINT; END_VAR METHOD PUBLIC OVERRIDE MC_WriteRealParameter @@ -3820,7 +4357,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -3829,9 +4366,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#724,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1620, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1620; RETURN; END_IF; @@ -3857,13 +4394,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := TO_INT(ParameterNumber); Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteREAL := Value; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#201; END_IF; IF Parametrization.Outputs.Error THEN - MC_WriteRealParameterErrorID := WORD#805; + Messenger.Activate( UINT#1621, eAxoMessageCategory#ProgrammingError); + MC_WriteRealParameterErrorID := DINT#1621; State := UINT#209; END_IF; END_IF; @@ -3894,14 +4432,14 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoWriteRealParameter_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; - MC_WriteRealParameterErrorID := WORD#0; + MC_WriteRealParameterErrorID := DINT#0; // MC_WriteRealParameterCycle := ULINT#0; State := UINT#0; END_IF; IF THIS.AxoWriteRealParameter_Task.RestoreTriggered() AND State>=UINT#200 AND State<=UINT#209 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_WriteRealParameterErrorID := WORD#0; + MC_WriteRealParameterErrorID := DINT#0; MC_WriteRealParameterCycle := ULINT#0; State := UINT#0; END_IF; @@ -3915,7 +4453,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_WriteBoolParameterExecute_PV : BOOL := FALSE; //Enable - previous value - MC_WriteBoolParameterErrorID : WORD; + MC_WriteBoolParameterErrorID : DINT; MC_WriteBoolParameterCycle : ULINT; END_VAR METHOD PUBLIC OVERRIDE MC_WriteBoolParameter @@ -3930,7 +4468,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -3939,9 +4477,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#725,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1630, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1630; RETURN; END_IF; @@ -3967,13 +4505,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := TO_INT(ParameterNumber); Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteBOOL := Value; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#211; END_IF; IF Parametrization.Outputs.Error THEN - MC_WriteBoolParameterErrorID := WORD#805; + Messenger.Activate( UINT#1631, eAxoMessageCategory#ProgrammingError); + MC_WriteBoolParameterErrorID := DINT#1631; State := UINT#219; END_IF; END_IF; @@ -4004,14 +4543,14 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoWriteBoolParameter_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; - MC_WriteBoolParameterErrorID := WORD#0; + MC_WriteBoolParameterErrorID := DINT#0; // MC_WriteBoolParameterCycle := ULINT#0; State := UINT#0; END_IF; IF THIS.AxoWriteBoolParameter_Task.RestoreTriggered() AND State>=UINT#210 AND State<=UINT#219 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_WriteBoolParameterErrorID := WORD#0; + MC_WriteBoolParameterErrorID := DINT#0; MC_WriteBoolParameterCycle := ULINT#0; State := UINT#0; END_IF; @@ -4026,7 +4565,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_ReadDigitalInputEnable_PV : BOOL := FALSE; //Enable - previous value - MC_ReadDigitalInputErrorID : WORD; + MC_ReadDigitalInputErrorID : DINT; MC_ReadDigitalInputCycle : ULINT; MC_ReadDigitalInputValue : BOOL; MC_ReadDigitalInputValid : BOOL; @@ -4041,7 +4580,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected input signal END_VAR VAR @@ -4051,9 +4590,15 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#726,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1640, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1640; + RETURN; + END_IF; + + IF(InputNumber < 0 OR InputNumber > 64) THEN // TODO check the min max input number + Messenger.Activate( UINT#1641, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1641; RETURN; END_IF; @@ -4066,7 +4611,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF Enable THEN IF State = UINT#0 THEN Busy := TRUE; - MC_ReadDigitalInputErrorID := WORD#16#0000; + MC_ReadDigitalInputErrorID := DINT#0; Parametrization.Inputs.Enable := FALSE; State := UINT#220; END_IF; @@ -4074,17 +4619,26 @@ NAMESPACE AXOpen.Components.Festo.Drives Busy := TRUE; Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; - Parametrization.Inputs.ParameterNo := 2888; + IF InputNumber>= 0 AND InputNumber < 32 THEN + Parametrization.Inputs.ParameterNo := 2888; //X1A + ELSIF InputNumber>= 32 AND InputNumber < 64 THEN + Parametrization.Inputs.ParameterNo := 2889; //X1C + END_IF; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN MC_ReadDigitalInputValid := TRUE; - MC_ReadDigitalInputValue := GetBit(TO_LWORD(Parametrization.Outputs.ValueReadLINT), TO_USINT(InputNumber)); + IF InputNumber>= 0 AND InputNumber < 32 THEN + MC_ReadDigitalInputValue := GetBit(TO_LWORD(Parametrization.Outputs.ValueReadLINT), TO_USINT(InputNumber)); //X1A + ELSIF InputNumber>= 32 AND InputNumber < 64 THEN + MC_ReadDigitalInputValue := GetBit(TO_LWORD(Parametrization.Outputs.ValueReadLINT), TO_USINT(InputNumber-INT#32)); //X1C + END_IF; State := UINT#221; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveVelocityErrorID := WORD#807; + Messenger.Activate( UINT#1642, eAxoMessageCategory#ProgrammingError); + MC_ReadDigitalInputErrorID := DINT#1642; State := UINT#229; END_IF; END_IF; @@ -4110,7 +4664,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT Enable AND MC_ReadDigitalInputEnable_PV THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_ReadDigitalInputErrorID := WORD#0; + MC_ReadDigitalInputErrorID := DINT#0; MC_ReadDigitalInputCycle := ULINT#0; MC_ReadDigitalInputValid := FALSE; MC_ReadDigitalInputValue := FALSE; @@ -4129,7 +4683,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_ReadDigitalOutputEnable_PV : BOOL := FALSE; //Enable - previous value - MC_ReadDigitalOutputErrorID : WORD; + MC_ReadDigitalOutputErrorID : DINT; MC_ReadDigitalOutputCycle : ULINT; MC_ReadDigitalOutputValue : BOOL; MC_ReadDigitalOutputValid : BOOL; @@ -4144,7 +4698,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected output signal END_VAR VAR @@ -4154,9 +4708,15 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#727,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1650, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1650; + RETURN; + END_IF; + + IF(OutputNumber < 0 OR OutputNumber >256) THEN // TODO check the min max input number + Messenger.Activate( UINT#1651, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1651; RETURN; END_IF; @@ -4169,7 +4729,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF Enable THEN IF State = UINT#0 THEN Busy := TRUE; - MC_ReadDigitalOutputErrorID := WORD#16#0000; + MC_ReadDigitalOutputErrorID := DINT#0; Parametrization.Inputs.Enable := FALSE; State := UINT#230; END_IF; @@ -4180,14 +4740,15 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 2888; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN MC_ReadDigitalOutputValid := TRUE; MC_ReadDigitalOutputValue := GetBit(TO_LWORD(Parametrization.Outputs.ValueReadLINT), TO_USINT(OutputNumber)); State := UINT#231; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveVelocityErrorID := WORD#809; + Messenger.Activate( UINT#1652, eAxoMessageCategory#ProgrammingError); + MC_ReadDigitalOutputErrorID := DINT#1652; State := UINT#239; END_IF; END_IF; @@ -4213,7 +4774,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT Enable AND MC_ReadDigitalOutputEnable_PV THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_ReadDigitalOutputErrorID := WORD#0; + MC_ReadDigitalOutputErrorID := DINT#0; MC_ReadDigitalOutputCycle := ULINT#0; MC_ReadDigitalOutputValid := FALSE; MC_ReadDigitalOutputValue := FALSE; @@ -4231,7 +4792,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_WriteDigitalOutputExecute_PV : BOOL := FALSE; //Enable - previous value - MC_WriteDigitalOutputErrorID : WORD; + MC_WriteDigitalOutputErrorID : DINT; MC_WriteDigitalOutputCycle : ULINT; END_VAR METHOD PUBLIC OVERRIDE MC_WriteDigitalOutput @@ -4246,7 +4807,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Done : BOOL; // Writing of the output signal value is done Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -4258,9 +4819,15 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#728,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1660, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1660; + RETURN; + END_IF; + + IF(OutputNumber < 0 OR OutputNumber >256) THEN // TODO check the min max input number + Messenger.Activate( UINT#1661, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1661; RETURN; END_IF; @@ -4280,7 +4847,8 @@ NAMESPACE AXOpen.Components.Festo.Drives State := UINT#240; //Remove after implementation on the drive side State := UINT#249; - MC_WriteDigitalOutputErrorID := WORD#810; + Messenger.Activate( UINT#1662, eAxoMessageCategory#ProgrammingError); + MC_WriteDigitalOutputErrorID := DINT#1662; END_IF; IF State = UINT#240 THEN Busy := TRUE; @@ -4289,13 +4857,14 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 0; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); Parametrization.Inputs.ValueWriteBOOL := Value; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN State := UINT#241; END_IF; IF Parametrization.Outputs.Error THEN - MC_WriteDigitalOutputErrorID := WORD#811; + Messenger.Activate( UINT#1663, eAxoMessageCategory#ProgrammingError); + MC_WriteDigitalOutputErrorID := DINT#1663; State := UINT#249; END_IF; END_IF; @@ -4326,14 +4895,14 @@ NAMESPACE AXOpen.Components.Festo.Drives IF THIS.AxoWriteDigitalOutput_Task.DoneReached() THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; - MC_WriteDigitalOutputErrorID := WORD#0; + MC_WriteDigitalOutputErrorID := DINT#0; // MC_WriteDigitalOutputCycle := ULINT#0; State := UINT#0; END_IF; IF THIS.AxoWriteDigitalOutput_Task.RestoreTriggered() AND State>=UINT#240 AND State<=UINT#249 THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_WriteDigitalOutputErrorID := WORD#0; + MC_WriteDigitalOutputErrorID := DINT#0; MC_WriteDigitalOutputCycle := ULINT#0; State := UINT#0; END_IF; @@ -4355,7 +4924,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Position : LREAL; // New absolute position (in axis’ unit [u]) END_VAR VAR @@ -4365,9 +4934,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#729,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1670, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1670; RETURN; END_IF; @@ -4392,7 +4961,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Velocity : LREAL; // The value of the actual velocity (in axis’ unit [u/s]) END_VAR VAR @@ -4402,9 +4971,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#730,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1680, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1680; RETURN; END_IF; @@ -4429,7 +4998,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Torque : LREAL; // The value of the actual torque or force (in technical units) END_VAR VAR @@ -4439,11 +5008,12 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#731,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1690, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1690; RETURN; END_IF; + IF Enable THEN THIS.UpdateInputs(AxisRef); Valid := TRUE; @@ -4468,7 +5038,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ErrorStop : BOOL; // See state diagram Disabled : BOOL; // See state diagram Stopping : BOOL; // See state diagram @@ -4485,9 +5055,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#732,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1700, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1700; RETURN; END_IF; @@ -4495,7 +5065,7 @@ NAMESPACE AXOpen.Components.Festo.Drives THIS.UpdateInputs(AxisRef); Valid := TRUE; Error := _AxisReference^.Telegram111_In.ZSW1.faultPresent; - ErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + ErrorID := _AxisReference^.Telegram111_In.Fault_Code; ErrorStop := DriveState = AXOpen.Components.Drives.eAxoDriveState#ErrorStop;; Disabled := DriveState = AXOpen.Components.Drives.eAxoDriveState#Disabled; Stopping := DriveState = AXOpen.Components.Drives.eAxoDriveState#Stopping; @@ -4511,8 +5081,8 @@ NAMESPACE AXOpen.Components.Festo.Drives /// This method returns in detail the status of the axis with respect to the motion currently in progress. /// VAR INTERNAL - MC_ReadMotionStateEnable_PV : BOOL := FALSE; //Enable - previous value - MC_ReadMotionStateErrorID : WORD; + MC_ReadMotionStateEnable_PV : BOOL := FALSE; //Enable - previous value + MC_ReadMotionStateErrorID : WORD; MC_ReadMotionStateCycle : ULINT; MC_ReadMotionStateValue : LINT; MC_ReadMotionStateValid : BOOL; @@ -4527,7 +5097,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ConstantVelocity: BOOL; // Velocity is constant. Velocity may be 0. For the actual value a window is applicable (window is vendor specific) Accelerating : BOOL; // Increasing the absolute value of the velocity Decelerating : BOOL; // Decreasing the absolute value of the velocity @@ -4541,16 +5111,17 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#733,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1710, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1710; RETURN; END_IF; + IF Enable THEN THIS.UpdateInputs(AxisRef); Valid := TRUE; Error := _AxisReference^.Telegram111_In.ZSW1.faultPresent; - ErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + ErrorID := _AxisReference^.Telegram111_In.Fault_Code; ConstantVelocity := FALSE; Accelerating := _AxisReference^.Telegram111_In.ZSW1.axisAccelerates; Decelerating := _AxisReference^.Telegram111_In.ZSW1.axisDecelerates; @@ -4572,7 +5143,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification HomeAbsSwitch : BOOL; // Digital home switch input is active LimitSwitchPos : BOOL; // Positive hardware end switch is active LimitSwitchNeg : BOOL; // Negative hardware end switch is active @@ -4590,9 +5161,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#734,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1720, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1720; RETURN; END_IF; @@ -4600,7 +5171,7 @@ NAMESPACE AXOpen.Components.Festo.Drives THIS.UpdateInputs(AxisRef); Valid := TRUE; Error := _AxisReference^.Telegram111_In.ZSW1.faultPresent; - ErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + ErrorID := _AxisReference^.Telegram111_In.Fault_Code; HomeAbsSwitch := FALSE; LimitSwitchPos := _AxisReference^.Telegram111_In.POS_ZSW1.%X9; LimitSwitchNeg := _AxisReference^.Telegram111_In.POS_ZSW1.%X8; @@ -4619,7 +5190,7 @@ NAMESPACE AXOpen.Components.Festo.Drives /// VAR INTERNAL MC_ReadAxisErrorEnable_PV : BOOL := FALSE; //Enable - previous value - MC_ReadAxisErrorErrorID : WORD; + MC_ReadAxisErrorErrorID : DINT; MC_ReadAxisErrorCycle : ULINT; MC_ReadAxisErrorValue : LINT; MC_ReadAxisErrorValid : BOOL; @@ -4634,7 +5205,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification AxisErrorID : DWORD; // The value of the axis error. These values are vendor specific END_VAR VAR @@ -4645,9 +5216,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#735,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1730, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1730; RETURN; END_IF; @@ -4661,7 +5232,7 @@ NAMESPACE AXOpen.Components.Festo.Drives THIS.UpdateInputs(AxisRef); IF State = UINT#0 THEN Busy := TRUE; - MC_ReadAxisErrorErrorID := WORD#16#0000; + MC_ReadAxisErrorErrorID := DINT#0; Parametrization.Inputs.Enable := FALSE; State := UINT#310; END_IF; @@ -4672,14 +5243,15 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.ParameterNo := 12306; Parametrization.Inputs.Subindex := 0; Parametrization.Inputs.AxisNo := BYTE#1; - Parametrization.Inputs.HardwareId := _AxisReference^.Data.MAP_HW_ID; + Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN MC_ReadAxisErrorValid := TRUE; MC_ReadAxisErrorValue := Parametrization.Outputs.ValueReadLINT; State := UINT#311; END_IF; IF Parametrization.Outputs.Error THEN - MC_MoveVelocityErrorID := WORD#813; + Messenger.Activate( UINT#1731, eAxoMessageCategory#ProgrammingError); + MC_ReadAxisErrorErrorID := DINT#1731; State := UINT#319; END_IF; END_IF; @@ -4706,7 +5278,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT Enable AND MC_ReadAxisErrorEnable_PV THEN _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; - MC_ReadAxisErrorErrorID := WORD#0; + MC_ReadAxisErrorErrorID := DINT#0; MC_ReadAxisErrorCycle := ULINT#0; MC_ReadAxisErrorValid := FALSE; MC_ReadAxisErrorValue := LINT#0; @@ -4741,7 +5313,7 @@ NAMESPACE AXOpen.Components.Festo.Drives Done : BOOL; // ‘Standstill’ or ‘Disabled’ state is reached Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Festo.Drives.AxoCmmtAsAxisReference; @@ -4750,9 +5322,9 @@ NAMESPACE AXOpen.Components.Festo.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#736,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); - IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1740, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1740; RETURN; END_IF; @@ -4834,7 +5406,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF State = UINT#329 THEN _AxisReference^.Telegram111_Out.STW1.acknowledgeFault := FALSE; Error := TRUE; - ErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + ErrorID := TO_DINT(_AxisReference^.Telegram111_In.Fault_Code); END_IF; THIS.UpdateOutputs(AxisRef); END_IF; @@ -4847,17 +5419,18 @@ NAMESPACE AXOpen.Components.Festo.Drives END_METHOD METHOD PUBLIC OVERRIDE Restore + MC_PowerCycle := ULINT#0; MC_HomeExecute_PV := FALSE; - MC_HomeErrorID := WORD#0; + MC_HomeErrorID := DINT#0; MC_HomeCycle := ULINT#0; MC_StopExecute_PV := FALSE; - MC_StopErrorID := WORD#0; + MC_StopErrorID := DINT#0; MC_StopCycle := ULINT#0; MC_HaltExecute_PV := FALSE; - MC_HaltErrorID := WORD#0; + MC_HaltErrorID := DINT#0; MC_HaltCycle := ULINT#0; MC_MoveAbsoluteExecute_PV := FALSE; - MC_MoveAbsoluteErrorID := WORD#0; + MC_MoveAbsoluteErrorID := DINT#0; MC_MoveAbsoluteCycle := ULINT#0; MC_MoveAbsoluteContinuousUpdate_SV := FALSE; MC_MoveAbsolutePosition_PV := LREAL#0.0; @@ -4867,7 +5440,7 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_MoveAbsoluteJerk_PV := LREAL#0.0; MC_MoveAbsoluteDirection_PV := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; MC_MoveRelativeExecute_PV := FALSE; - MC_MoveRelativeErrorID := WORD#0; + MC_MoveRelativeErrorID := DINT#0; MC_MoveRelativeCycle := ULINT#0; MC_MoveRelativeContinuousUpdate_SV := FALSE; MC_MoveRelativeDistance_PV := LREAL#0.0; @@ -4876,7 +5449,7 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_MoveRelativeDeceleration_PV := LREAL#0.0; MC_MoveRelativeJerk_PV := LREAL#0.0; MC_MoveAdditiveExecute_PV := FALSE; - MC_MoveAdditiveErrorID := WORD#0; + MC_MoveAdditiveErrorID := DINT#0; MC_MoveAdditiveCycle := ULINT#0; MC_MoveAdditiveContinuousUpdate_SV := FALSE; MC_MoveAdditiveDistance_PV := LREAL#0.0; @@ -4885,7 +5458,7 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_MoveAdditiveDeceleration_PV := LREAL#0.0; MC_MoveAdditiveJerk_PV := LREAL#0.0; MC_MoveVelocityExecute_PV := FALSE; - MC_MoveVelocityErrorID := WORD#0; + MC_MoveVelocityErrorID := DINT#0; MC_MoveVelocityCycle := ULINT#0; MC_MoveVelocityContinuousUpdate_SV := FALSE; MC_MoveVelocityVelocity_PV := LREAL#0.0; @@ -4894,7 +5467,7 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_MoveVelocityJerk_PV := LREAL#0.0; MC_MoveVelocityDirection_PV := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; MC_TorqueControlExecute_PV := FALSE; - MC_TorqueControlErrorID := WORD#0; + MC_TorqueControlErrorID := DINT#0; MC_TorqueControlCycle := ULINT#0; MC_TorqueControlContinuousUpdate_SV := FALSE; MC_TorqueControlTorque_PV := LREAL#0.0; @@ -4906,45 +5479,45 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_TorqueControlJerk_PV := LREAL#0.0; MC_TorqueControlDirection_PV := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; MC_SetPositionExecute_PV := FALSE; - MC_SetPositionErrorID := WORD#0; + MC_SetPositionErrorID := DINT#0; MC_SetPositionCycle := ULINT#0; MC_SetPositionActualPosition := LINT#0; MC_ReadParameterEnable_PV := FALSE; - MC_ReadParameterErrorID := WORD#0; + MC_ReadParameterErrorID := DINT#0; MC_ReadParameterCycle := ULINT#0; MC_ReadParameterValue := LINT#0; MC_ReadParameterValid := FALSE; MC_ReadRealParameterEnable_PV := FALSE; - MC_ReadRealParameterErrorID := WORD#0; + MC_ReadRealParameterErrorID := DINT#0; MC_ReadRealParameterCycle := ULINT#0; MC_ReadRealParameterValue := REAL#0.0; MC_ReadRealParameterValid := FALSE; MC_ReadBoolParameterEnable_PV := FALSE; - MC_ReadBoolParameterErrorID := WORD#0; + MC_ReadBoolParameterErrorID := DINT#0; MC_ReadBoolParameterCycle := ULINT#0; MC_ReadBoolParameterValue := FALSE; MC_ReadBoolParameterValid := FALSE; MC_WriteParameterExecute_PV := FALSE; - MC_WriteParameterErrorID := WORD#0; + MC_WriteParameterErrorID := DINT#0; MC_WriteParameterCycle := ULINT#0; MC_WriteRealParameterExecute_PV := FALSE; - MC_WriteRealParameterErrorID := WORD#0; + MC_WriteRealParameterErrorID := DINT#0; MC_WriteRealParameterCycle := ULINT#0; MC_WriteBoolParameterExecute_PV := FALSE; - MC_WriteBoolParameterErrorID := WORD#0; + MC_WriteBoolParameterErrorID := DINT#0; MC_WriteBoolParameterCycle := ULINT#0; MC_ReadDigitalInputEnable_PV := FALSE; - MC_ReadDigitalInputErrorID := WORD#0; + MC_ReadDigitalInputErrorID := DINT#0; MC_ReadDigitalInputCycle := ULINT#0; MC_ReadDigitalInputValue := FALSE; MC_ReadDigitalInputValid := FALSE; MC_ReadDigitalOutputEnable_PV := FALSE; - MC_ReadDigitalOutputErrorID := WORD#0; + MC_ReadDigitalOutputErrorID := DINT#0; MC_ReadDigitalOutputCycle := ULINT#0; MC_ReadDigitalOutputValue := FALSE; MC_ReadDigitalOutputValid := FALSE; MC_WriteDigitalOutputExecute_PV := FALSE; - MC_WriteDigitalOutputErrorID := WORD#0; + MC_WriteDigitalOutputErrorID := DINT#0; MC_WriteDigitalOutputCycle := ULINT#0; MC_ReadStatusEnable_PV := FALSE; MC_ReadStatusDone_PV := FALSE; @@ -4955,15 +5528,15 @@ NAMESPACE AXOpen.Components.Festo.Drives MC_ReadMotionStateValue := LINT#0; MC_ReadMotionStateValid := FALSE; MC_ReadAxisErrorEnable_PV := FALSE; - MC_ReadAxisErrorErrorID := WORD#0; + MC_ReadAxisErrorErrorID := DINT#0; MC_ReadAxisErrorCycle := ULINT#0; MC_ReadAxisErrorValue := LINT#0; MC_ReadAxisErrorValid := FALSE; LastMessageCode := ULINT#0; - MC_ResetExecute_PV := FALSE; + MC_ResetExecute_PV := FALSE; MC_ResetPower_PV := FALSE; - _AxisRefExt.Data.Cycle := ULINT#0; + AxisRefExt.Data.Cycle := ULINT#0; State := UINT#0; DriveStatus.Action.Id := UINT#0; DriveStatus.Error.Id := UINT#0; @@ -5006,26 +5579,27 @@ NAMESPACE AXOpen.Components.Festo.Drives AxoJogNegative.StopMotion := FALSE; Parametrization.Restore(); - _AxisRefExt.Telegram111_Out.STW1.activateTraversing := FALSE; - _AxisRefExt.Telegram111_Out.STW1.StartHoming := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.PosModulo := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.NegModulo := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.SetupMode := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.MDI_Activate := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW2.Trackingmode := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW2.jog_inc := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit0 := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit1 := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit2 := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit3 := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit4 := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit5 := FALSE; - _AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit6 := FALSE; - _AxisRefExt.Telegram111_Out.STW2.TravelToFixStop := FALSE; - RestoreTask.DoneWhen(TRUE); + AxisRefExt.Telegram111_Out.STW1.activateTraversing := FALSE; + AxisRefExt.Telegram111_Out.STW1.StartHoming := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.MDI_MOD := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.PosModulo := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.NegModulo := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.SetupMode := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.MDI_Activate := FALSE; + AxisRefExt.Telegram111_Out.POS_STW2.Trackingmode := FALSE; + AxisRefExt.Telegram111_Out.POS_STW2.jog_inc := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit0 := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit1 := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit2 := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit3 := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit4 := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit5 := FALSE; + AxisRefExt.Telegram111_Out.POS_STW1.travBlockBit6 := FALSE; + AxisRefExt.Telegram111_Out.STW2.TravelToFixStop := FALSE; SUPER.Restore(); + + RestoreTask.DoneWhen(TRUE); END_METHOD END_CLASS END_NAMESPACE diff --git a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAsAxisReference.st b/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAsAxisReference.st deleted file mode 100644 index bba02c381..000000000 --- a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAsAxisReference.st +++ /dev/null @@ -1,16 +0,0 @@ -// USING AXOpen.Components.Drives; - -NAMESPACE AXOpen.Components.Festo.Drives - {S7.extern=ReadWrite} - CLASS AxoCmmtAsAxisReference IMPLEMENTS AXOpen.Components.Abstractions.Drives.IAxoAxisReference - VAR PUBLIC - Telegram111_In : AXOpen.Components.Festo.Drives.PROFIdriveTelegram_111_IN; - Telegram111_Out : AXOpen.Components.Festo.Drives.PROFIdriveTelegram_111_OUT; - Telegram750_In : AXOpen.Components.Festo.Drives.PROFIdriveTelegram_750_IN; - Telegram750_Out : AXOpen.Components.Festo.Drives.PROFIdriveTelegram_750_OUT; - Data : AXOpen.Components.Festo.Drives.AxoCmmtAsAxisData; - Config : AXOpen.Components.Drives.AxoDrive_Config; - Status : AXOpen.Components.Drives.AxoDrive_Status; - END_VAR - END_CLASS -END_NAMESPACE diff --git a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAsAxisData.st b/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAsAxisData.st similarity index 66% rename from src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAsAxisData.st rename to src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAsAxisData.st index ecc03c68a..f446d4add 100644 --- a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAsAxisData.st +++ b/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAsAxisData.st @@ -3,11 +3,7 @@ NAMESPACE AXOpen.Components.Festo.Drives {S7.extern=ReadWrite} CLASS AxoCmmtAsAxisData VAR PUBLIC - hwID : WORD; - hwIdTelegram111 : WORD; - hwIdTelegram750 : WORD; - MAP_HW_ID : WORD; - Cycle : ULINT; + Cycle : ULINT; OverrideVelocityFactor : LREAL := 1.0; //LREAL value to be written OverrideAccelerationFactor : LREAL := 1.0; //LREAL value to be written OverrideJerkFactor : LREAL := 1.0; //LREAL value to be written diff --git a/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAsAxisHWIDs.st b/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAsAxisHWIDs.st new file mode 100644 index 000000000..00f022fe0 --- /dev/null +++ b/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAsAxisHWIDs.st @@ -0,0 +1,23 @@ +NAMESPACE AXOpen.Components.Festo.Drives + {S7.extern=ReadWrite} + CLASS AxoCmmtAsAxisHWIDs + VAR PUBLIC + {#ix-set:AttributeName = "<#Hardware ID Device#>"} + HW_Device : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'DoServo' module#>"} + HW_DoServo : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'DoServo' submodule#>"} + HW_DoServoSub : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'ModuleAccessPoint' module#>"} + HW_ModuleAccessPoint : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'EmptyModule_1' submodule#>"} + HW_EmptyModule_1 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Telegram111' submodule#>"} + HW_Telegram111 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'EmptyModule_2' submodule#>"} + HW_EmptyModule_2 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Telegram750' submodule#>"} + HW_Telegram750 : UINT; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAsAxisReference.st b/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAsAxisReference.st new file mode 100644 index 000000000..060c86037 --- /dev/null +++ b/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAsAxisReference.st @@ -0,0 +1,47 @@ + +NAMESPACE AXOpen.Components.Festo.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Tabs)]} + CLASS AxoCmmtAsAxisReference IMPLEMENTS AXOpen.Components.Abstractions.Drives.IAxoAxisReference + VAR PUBLIC // Telegram 111 + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Telegram 111")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Telegram111 Inputs#>"} + Telegram111_In : AXOpen.Components.Festo.Drives.PROFIdriveTelegram_111_IN; + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Telegram 111")]} + // {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Telegram111 Outputs#>"} + Telegram111_Out : AXOpen.Components.Festo.Drives.PROFIdriveTelegram_111_OUT; + END_VAR + VAR PUBLIC // Telegram 750 + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Telegram 750")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Telegram750 Inputs#>"} + Telegram750_In : AXOpen.Components.Festo.Drives.PROFIdriveTelegram_750_IN; + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Telegram 750")]} + // {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Telegram750 Outputs#>"} + Telegram750_Out : AXOpen.Components.Festo.Drives.PROFIdriveTelegram_750_OUT; + END_VAR + VAR PUBLIC // HWIDs + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("HWids")]} + {#ix-attr:[ReadOnly()]} + HWIDs : AXOpen.Components.Festo.Drives.AxoCmmtAsAxisHWIDs; + END_VAR + VAR PUBLIC // Data + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Data")]} + {#ix-attr:[ReadOnly()]} + Data : AXOpen.Components.Festo.Drives.AxoCmmtAsAxisData; + END_VAR + VAR PUBLIC + Config : AXOpen.Components.Drives.AxoDrive_Config; + Status : AXOpen.Components.Drives.AxoDrive_Status; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAs_Component_Status.st b/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAs_Component_Status.st new file mode 100644 index 000000000..9a1007dbd --- /dev/null +++ b/src/components.festo.drives/ctrl/src/AxoCmmtAs/TypesStructuresAndEnums/AxoCmmtAs_Component_Status.st @@ -0,0 +1,9 @@ +NAMESPACE AXOpen.Components.Festo.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Stack)]} + CLASS PUBLIC AxoCmmtAs_Component_Status EXTENDS AXOpen.Components.Drives.AxoDrive_Status + VAR PUBLIC + + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.festo.drives/ctrl/src/PROFIdrive/PROFIdriveTelegram_111.st b/src/components.festo.drives/ctrl/src/PROFIdrive/PROFIdriveTelegram_111.st index b3164811e..ce605f5d9 100644 --- a/src/components.festo.drives/ctrl/src/PROFIdrive/PROFIdriveTelegram_111.st +++ b/src/components.festo.drives/ctrl/src/PROFIdrive/PROFIdriveTelegram_111.st @@ -6,52 +6,36 @@ NAMESPACE AXOpen.Components.Festo.Drives VAR PUBLIC {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#jog1#>"} - {#ix-attr:[ReadOnly()]} jog1 : BOOL; {#ix-set:AttributeName = "<#jog2#>"} - {#ix-attr:[ReadOnly()]} jog2 : BOOL; {#ix-set:AttributeName = "<#controlByPlc#>"} - {#ix-attr:[ReadOnly()]} controlByPlc : BOOL; {#ix-set:AttributeName = "<#StartHoming#>"} - {#ix-attr:[ReadOnly()]} StartHoming : BOOL; {#ix-set:AttributeName = "<#ReleaseBrake#>"} - {#ix-attr:[ReadOnly()]} ReleaseBrake : BOOL; {#ix-set:AttributeName = "<#ExternalBlockChange#>"} - {#ix-attr:[ReadOnly()]} ExternalBlockChange : BOOL; {#ix-set:AttributeName = "<#reserved14#>"} - {#ix-attr:[ReadOnly()]} reserved14 : BOOL; {#ix-set:AttributeName = "<#reserved15#>"} - {#ix-attr:[ReadOnly()]} reserved15 : BOOL; {#ix-set:AttributeName = "<#on#>"} - {#ix-attr:[ReadOnly()]} on_ : BOOL; {#ix-set:AttributeName = "<#noCoastStop#>"} - {#ix-attr:[ReadOnly()]} noCoastStop : BOOL; {#ix-set:AttributeName = "<#noQuickStop#>"} - {#ix-attr:[ReadOnly()]} noQuickStop : BOOL; {#ix-set:AttributeName = "<#enableOperation#>"} - {#ix-attr:[ReadOnly()]} enableOperation : BOOL; {#ix-set:AttributeName = "<#cancelTraversing#>"} - {#ix-attr:[ReadOnly()]} cancelTraversing : BOOL; {#ix-set:AttributeName = "<#intermediateStop#>"} - {#ix-attr:[ReadOnly()]} intermediateStop : BOOL; {#ix-set:AttributeName = "<#activateTraversing#>"} - {#ix-attr:[ReadOnly()]} activateTraversing : BOOL; {#ix-set:AttributeName = "<#acknowledgeFault#>"} - {#ix-attr:[ReadOnly()]} acknowledgeFault : BOOL; END_VAR END_CLASS @@ -62,52 +46,36 @@ NAMESPACE AXOpen.Components.Festo.Drives VAR PUBLIC {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#MDI_MOD#>"} - {#ix-attr:[ReadOnly()]} MDI_MOD : BOOL; {#ix-set:AttributeName = "<#PosModulo#>"} - {#ix-attr:[ReadOnly()]} PosModulo : BOOL; {#ix-set:AttributeName = "<#NegModulo#>"} - {#ix-attr:[ReadOnly()]} NegModulo : BOOL; {#ix-set:AttributeName = "<#reserved11#>"} - {#ix-attr:[ReadOnly()]} reserved11 : BOOL; {#ix-set:AttributeName = "<#reserved12#>"} - {#ix-attr:[ReadOnly()]} reserved12 : BOOL; {#ix-set:AttributeName = "<#reserved13#>"} - {#ix-attr:[ReadOnly()]} reserved13 : BOOL; {#ix-set:AttributeName = "<#SetupMode#>"} - {#ix-attr:[ReadOnly()]} SetupMode : BOOL; {#ix-set:AttributeName = "<#MDI_Activate#>"} - {#ix-attr:[ReadOnly()]} MDI_Activate : BOOL; {#ix-set:AttributeName = "<#travBlockBit0#>"} - {#ix-attr:[ReadOnly()]} travBlockBit0 : BOOL; {#ix-set:AttributeName = "<#travBlockBit1#>"} - {#ix-attr:[ReadOnly()]} travBlockBit1 : BOOL; {#ix-set:AttributeName = "<#travBlockBit2#>"} - {#ix-attr:[ReadOnly()]} travBlockBit2 : BOOL; {#ix-set:AttributeName = "<#travBlockBit3#>"} - {#ix-attr:[ReadOnly()]} travBlockBit3 : BOOL; {#ix-set:AttributeName = "<#travBlockBit4#>"} - {#ix-attr:[ReadOnly()]} travBlockBit4 : BOOL; {#ix-set:AttributeName = "<#travBlockBit5#>"} - {#ix-attr:[ReadOnly()]} travBlockBit5 : BOOL; {#ix-set:AttributeName = "<#travBlockBit6#>"} - {#ix-attr:[ReadOnly()]} travBlockBit6 : BOOL; {#ix-set:AttributeName = "<#reserved7#>"} - {#ix-attr:[ReadOnly()]} reserved7 : BOOL; END_VAR END_CLASS @@ -118,52 +86,36 @@ NAMESPACE AXOpen.Components.Festo.Drives VAR PUBLIC {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#FlyingRef#>"} - {#ix-attr:[ReadOnly()]} FlyingRef : BOOL; {#ix-set:AttributeName = "<#reserved9#>"} - {#ix-attr:[ReadOnly()]} reserved9 : BOOL; {#ix-set:AttributeName = "<#SelectProbe#>"} - {#ix-attr:[ReadOnly()]} SelectProbe : BOOL; {#ix-set:AttributeName = "<#ProbeEdgeEval#>"} - {#ix-attr:[ReadOnly()]} ProbeEdgeEval : BOOL; {#ix-set:AttributeName = "<#reserved12#>"} - {#ix-attr:[ReadOnly()]} reserved12 : BOOL; {#ix-set:AttributeName = "<#reserved13#>"} - {#ix-attr:[ReadOnly()]} reserved13 : BOOL; {#ix-set:AttributeName = "<#SW-Limit#>"} - {#ix-attr:[ReadOnly()]} SW_Limit : BOOL; {#ix-set:AttributeName = "<#HW-Limit#>"} - {#ix-attr:[ReadOnly()]} HW_Limit : BOOL; {#ix-set:AttributeName = "<#Trackingmode#>"} - {#ix-attr:[ReadOnly()]} Trackingmode : BOOL; {#ix-set:AttributeName = "<#SetReferencePoint#>"} - {#ix-attr:[ReadOnly()]} SetReferencePoint : BOOL; {#ix-set:AttributeName = "<#reserved2#>"} - {#ix-attr:[ReadOnly()]} reserved2 : BOOL; {#ix-set:AttributeName = "<#reserved3#>"} - {#ix-attr:[ReadOnly()]} reserved3 : BOOL; {#ix-set:AttributeName = "<#reserved4#>"} - {#ix-attr:[ReadOnly()]} reserved4 : BOOL; {#ix-set:AttributeName = "<#jog_inc#>"} - {#ix-attr:[ReadOnly()]} jog_inc : BOOL; {#ix-set:AttributeName = "<#reserved6#>"} - {#ix-attr:[ReadOnly()]} reserved6 : BOOL; {#ix-set:AttributeName = "<#reserved7#>"} - {#ix-attr:[ReadOnly()]} reserved7 : BOOL; END_VAR END_CLASS @@ -174,52 +126,36 @@ NAMESPACE AXOpen.Components.Festo.Drives VAR PUBLIC {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#TravelToFixStop#>"} - {#ix-attr:[ReadOnly()]} TravelToFixStop : BOOL; {#ix-set:AttributeName = "<#reserved9#>"} - {#ix-attr:[ReadOnly()]} reserved9 : BOOL; {#ix-set:AttributeName = "<#reserved10#>"} - {#ix-attr:[ReadOnly()]} reserved10 : BOOL; {#ix-set:AttributeName = "<#reserved11#>"} - {#ix-attr:[ReadOnly()]} reserved11 : BOOL; {#ix-set:AttributeName = "<#signOfLifeBit0#>"} - {#ix-attr:[ReadOnly()]} signOfLifeBit0 : BOOL; {#ix-set:AttributeName = "<#signOfLifeBit1#>"} - {#ix-attr:[ReadOnly()]} signOfLifeBit1 : BOOL; {#ix-set:AttributeName = "<#signOfLifeBit2#>"} - {#ix-attr:[ReadOnly()]} signOfLifeBit2 : BOOL; {#ix-set:AttributeName = "<#signOfLifeBit3#>"} - {#ix-attr:[ReadOnly()]} signOfLifeBit3 : BOOL; {#ix-set:AttributeName = "<#reserved0#>"} - {#ix-attr:[ReadOnly()]} reserved0 : BOOL; {#ix-set:AttributeName = "<#reserved1#>"} - {#ix-attr:[ReadOnly()]} reserved1 : BOOL; {#ix-set:AttributeName = "<#reserved2#>"} - {#ix-attr:[ReadOnly()]} reserved2 : BOOL; {#ix-set:AttributeName = "<#reserved3#>"} - {#ix-attr:[ReadOnly()]} reserved3 : BOOL; {#ix-set:AttributeName = "<#reserved4#>"} - {#ix-attr:[ReadOnly()]} reserved4 : BOOL; {#ix-set:AttributeName = "<#reserved5#>"} - {#ix-attr:[ReadOnly()]} reserved5 : BOOL; {#ix-set:AttributeName = "<#reserved6#>"} - {#ix-attr:[ReadOnly()]} reserved6 : BOOL; {#ix-set:AttributeName = "<#reserved7#>"} - {#ix-attr:[ReadOnly()]} reserved7 : BOOL; END_VAR END_CLASS @@ -231,41 +167,31 @@ NAMESPACE AXOpen.Components.Festo.Drives {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#STW1#>"} - {#ix-attr:[ReadOnly()]} STW1 : PROFIdriveTelegram_111_STW1; {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#POS_STW1#>"} - {#ix-attr:[ReadOnly()]} POS_STW1 : PROFIdriveTelegram_111_POS_STW1; {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#POS_STW2#>"} - {#ix-attr:[ReadOnly()]} POS_STW2 : PROFIdriveTelegram_111_POS_STW2; {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#STW2#>"} - {#ix-attr:[ReadOnly()]} STW2 : PROFIdriveTelegram_111_STW2; {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#Override#>"} - {#ix-attr:[ReadOnly()]} Override_ : WORD; {#ix-set:AttributeName = "<#MDI_TARPOS#>"} - {#ix-attr:[ReadOnly()]} MDI_TARPOS : DINT; {#ix-set:AttributeName = "<#MDI_VELOCITY#>"} - {#ix-attr:[ReadOnly()]} MDI_VELOCITY : DINT; {#ix-set:AttributeName = "<#MDI_ACC#>"} - {#ix-attr:[ReadOnly()]} MDI_ACC : UINT; {#ix-set:AttributeName = "<#MDI_DEC#>"} - {#ix-attr:[ReadOnly()]} MDI_DEC : UINT; {#ix-set:AttributeName = "<#reserved11#>"} - {#ix-attr:[ReadOnly()]} reserved11 : WORD; END_VAR @@ -277,52 +203,36 @@ NAMESPACE AXOpen.Components.Festo.Drives VAR PUBLIC {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#followingErrorInTolerance#>"} - {#ix-attr:[ReadOnly()]} followingErrorInTolerance : BOOL; {#ix-set:AttributeName = "<#controlRequest#>"} - {#ix-attr:[ReadOnly()]} controlRequest : BOOL; {#ix-set:AttributeName = "<#targetPosReached#>"} - {#ix-attr:[ReadOnly()]} targetPosReached : BOOL; {#ix-set:AttributeName = "<#homePosSet#>"} - {#ix-attr:[ReadOnly()]} homePosSet : BOOL; {#ix-set:AttributeName = "<#acknowledgeTraversingBlockActivated#>"} - {#ix-attr:[ReadOnly()]} acknowledgeTraversingBlockActivated : BOOL; {#ix-set:AttributeName = "<#driveStopped#>"} - {#ix-attr:[ReadOnly()]} driveStopped : BOOL; {#ix-set:AttributeName = "<#axisAccelerates#>"} - {#ix-attr:[ReadOnly()]} axisAccelerates : BOOL; {#ix-set:AttributeName = "<#axisDecelerates#>"} - {#ix-attr:[ReadOnly()]} axisDecelerates : BOOL; {#ix-set:AttributeName = "<#readyForSwitchOn#>"} - {#ix-attr:[ReadOnly()]} readyForSwitchOn : BOOL; {#ix-set:AttributeName = "<#ready#>"} - {#ix-attr:[ReadOnly()]} ready : BOOL; {#ix-set:AttributeName = "<#operationEnabled#>"} - {#ix-attr:[ReadOnly()]} operationEnabled : BOOL; {#ix-set:AttributeName = "<#faultPresent#>"} - {#ix-attr:[ReadOnly()]} faultPresent : BOOL; {#ix-set:AttributeName = "<#noCoastingActive#>"} - {#ix-attr:[ReadOnly()]} noCoastingActive : BOOL; {#ix-set:AttributeName = "<#noQuickStopActive#>"} - {#ix-attr:[ReadOnly()]} noQuickStopActive : BOOL; {#ix-set:AttributeName = "<#switchingOnInhibitedActive#>"} - {#ix-attr:[ReadOnly()]} switchingOnInhibitedActive : BOOL; {#ix-set:AttributeName = "<#warningActive#>"} - {#ix-attr:[ReadOnly()]} warningActive : BOOL; END_VAR END_CLASS @@ -333,52 +243,36 @@ NAMESPACE AXOpen.Components.Festo.Drives VAR PUBLIC {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#deviceSpecificBit8#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit8 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit9#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit9 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit10#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit10 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit11#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit11 : BOOL; {#ix-set:AttributeName = "<#doSignOfLifeBit0#>"} - {#ix-attr:[ReadOnly()]} doSignOfLifeBit0 : BOOL; {#ix-set:AttributeName = "<#doSignOfLifeBit1#>"} - {#ix-attr:[ReadOnly()]} doSignOfLifeBit1 : BOOL; {#ix-set:AttributeName = "<#doSignOfLifeBit2#>"} - {#ix-attr:[ReadOnly()]} doSignOfLifeBit2 : BOOL; {#ix-set:AttributeName = "<#doSignOfLifeBit3#>"} - {#ix-attr:[ReadOnly()]} doSignOfLifeBit3 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit0#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit0 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit1#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit1 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit2#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit2 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit3#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit3 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit4#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit4 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit5#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit5 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit6#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit6 : BOOL; {#ix-set:AttributeName = "<#deviceSpecificBit7#>"} - {#ix-attr:[ReadOnly()]} deviceSpecificBit7 : BOOL; END_VAR END_CLASS @@ -390,38 +284,28 @@ NAMESPACE AXOpen.Components.Festo.Drives {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#ZSW1#>"} - {#ix-attr:[ReadOnly()]} ZSW1 : PROFIdriveTelegram_111_ZSW1; {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#POS_ZSW1#>"} - {#ix-attr:[ReadOnly()]} POS_ZSW1 : WORD; {#ix-set:AttributeName = "<#POS_ZSW2#>"} - {#ix-attr:[ReadOnly()]} POS_ZSW2 : WORD; {#ix-attr:[Container(Layout.Stack)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#ZSW2#>"} - {#ix-attr:[ReadOnly()]} ZSW2 : PROFIdriveTelegram_111_ZSW2; {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#MELDW#>"} - {#ix-attr:[ReadOnly()]} MELDW : WORD; {#ix-set:AttributeName = "<#XIST_A#>"} - {#ix-attr:[ReadOnly()]} XIST_A : DINT; {#ix-set:AttributeName = "<#NIST_B#>"} - {#ix-attr:[ReadOnly()]} NIST_B : DINT; {#ix-set:AttributeName = "<#Fault_Code#>"} - {#ix-attr:[ReadOnly()]} Fault_Code : UINT; {#ix-set:AttributeName = "<#Warn_Code#>"} - {#ix-attr:[ReadOnly()]} Warn_Code : UINT; {#ix-set:AttributeName = "<#Reserved#>"} - {#ix-attr:[ReadOnly()]} Reserved : WORD; END_VAR END_CLASS @@ -434,12 +318,10 @@ NAMESPACE AXOpen.Components.Festo.Drives {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#OUT#>"} - {#ix-attr:[ReadOnly()]} OUT : PROFIdriveTelegram_111_OUT; {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#IN#>"} - {#ix-attr:[ReadOnly()]} IN : PROFIdriveTelegram_111_IN; END_VAR END_CLASS diff --git a/src/components.festo.drives/ctrl/src/PROFIdrive/PROFIdriveTelegram_750.st b/src/components.festo.drives/ctrl/src/PROFIdrive/PROFIdriveTelegram_750.st index 9d260bdbe..891e5872f 100644 --- a/src/components.festo.drives/ctrl/src/PROFIdrive/PROFIdriveTelegram_750.st +++ b/src/components.festo.drives/ctrl/src/PROFIdrive/PROFIdriveTelegram_750.st @@ -6,16 +6,12 @@ NAMESPACE AXOpen.Components.Festo.Drives VAR PUBLIC {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#M_ADD1#>"} - {#ix-attr:[ReadOnly()]} M_ADD1 : INT; {#ix-set:AttributeName = "<#M_LIMIT_POS#>"} - {#ix-attr:[ReadOnly()]} M_LIMIT_POS : INT; {#ix-set:AttributeName = "<#M_LIMIT_NEG#>"} - {#ix-attr:[ReadOnly()]} M_LIMIT_NEG : INT; {#ix-set:AttributeName = "<#Reserved#>"} - {#ix-attr:[ReadOnly()]} Reserved : WORD; END_VAR END_CLASS @@ -26,7 +22,6 @@ NAMESPACE AXOpen.Components.Festo.Drives VAR PUBLIC {#ix-attr:[Container(Layout.Stack)]} {#ix-set:AttributeName = "<#M_Actual#>"} - {#ix-attr:[ReadOnly()]} M_Actual : INT; END_VAR END_CLASS @@ -39,12 +34,10 @@ NAMESPACE AXOpen.Components.Festo.Drives {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#OUT#>"} - {#ix-attr:[ReadOnly()]} OUT : PROFIdriveTelegram_750_OUT; {#ix-attr:[Container(Layout.Wrap)]} {#ix-attr:[Group(GroupLayout.GroupBox)]} {#ix-set:AttributeName = "<#IN#>"} - {#ix-attr:[ReadOnly()]} IN : PROFIdriveTelegram_750_IN; END_VAR END_CLASS diff --git a/src/components.festo.drives/src/AXOpen.Components.Festo.Drives/AxoCmmtAs/AxoCmmtAs.cs b/src/components.festo.drives/src/AXOpen.Components.Festo.Drives/AxoCmmtAs/AxoCmmtAs.cs index 80231d060..d111c956a 100644 --- a/src/components.festo.drives/src/AXOpen.Components.Festo.Drives/AxoCmmtAs/AxoCmmtAs.cs +++ b/src/components.festo.drives/src/AXOpen.Components.Festo.Drives/AxoCmmtAs/AxoCmmtAs.cs @@ -339,137 +339,229 @@ private void InitializeMessenger() new KeyValuePair(689, new AxoMessengerTextItem("System starts","For detailed description of this error check the vendor document CMMT-AS_manual_2023-04k_8195473g1.pdf")), new KeyValuePair(693, new AxoMessengerTextItem("Error when recording the cogging table","For detailed description of this error check the vendor document CMMT-AS_manual_2023-04k_8195473g1.pdf")), + // General alarms + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdDoServo is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'DoServo' (GsdId=IDM_SERVO)." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdDoServo is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 0." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 0." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 0." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 0." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 0." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 0. Expected module: 'DoServo' (GsdId=IDM_SERVO)." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdModuleAccessPoint is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 1. Expected module: 'Module_Access_Point' (GsdId=IDS_MAP)." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdEmptyModule_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 1. Expected module: 'empty_submodule' (GsdId=IDS_EMPTY)." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdTelegram111 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 3. Expected module: 'SiemensTelegram111-PZD-12-12' (GsdId=IDS_TELEGRAM_111)." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdEmptyModule_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 4. Expected module: 'empty_submodule' (GsdId=IDS_EMPTY)." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of _hwIdTelegram750 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 5. Expected module: 'SiemensTelegram750-PZD-4-1' (GsdId=IDS_TELEGRAM_750)." ,"Check the hardware configuration.")), + + + new KeyValuePair(1400, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `Execute` method!" ,"Check the call of the `Execute` method, if the `AxisRef` parameter is assigned.")), + + new KeyValuePair(1410, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateInputs` method!" ,"Check the call of the `UpdateInputs` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1411, new AxoMessengerTextItem("Error reading the Telegram 111!" ,"Check the hardware configuration and hardware identifier.")), + new KeyValuePair(1412, new AxoMessengerTextItem("Error reading the Telegram 750!" ,"Check the hardware configuration and hardware identifier.")), + + new KeyValuePair(1420, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateOutputs` method!" ,"Check the call of the `UpdateOutputs` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1421, new AxoMessengerTextItem("Error writing the Telegram 111!" ,"Check the hardware configuration and hardware identifier.")), + new KeyValuePair(1422, new AxoMessengerTextItem("Error writing the Telegram 750!" ,"Check the hardware configuration and hardware identifier.")), + + new KeyValuePair(1430, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Power` method!" ,"Check the call of the `MC_Power` method, if the `AxisRef` parameter is assigned.")), + + new KeyValuePair(1440, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Home` method!" ,"Check the call of the `MC_Home` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1441, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_Home` method!" ,"Check the value of the `Acceleration` at the input of the `MC_Home` method.")), + new KeyValuePair(1442, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_Home` method!" ,"Check the value of the `Deceleration` at the input of the `MC_Home` method.")), + new KeyValuePair(1443, new AxoMessengerTextItem("Input variable `HomingMode` has invalid value in `MC_Home` method!" ,"Check the value of the `HomingMode` at the input of the `MC_Home` method.")), + new KeyValuePair(1444, new AxoMessengerTextItem("Unable to write parameter PNU 11206 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11206` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1445, new AxoMessengerTextItem("Unable to write parameter PNU 11209 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11209` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1446, new AxoMessengerTextItem("Unable to write parameter PNU 11728 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11728` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1447, new AxoMessengerTextItem("Unable to write parameter PNU 11205 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11205` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1448, new AxoMessengerTextItem("Unable to write parameter PNU 11208 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11208` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1449, new AxoMessengerTextItem("Unable to write parameter PNU 11211 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11211` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1450, new AxoMessengerTextItem("Unable to read parameter PNU 11735 from the drive in `MC_Home` method!" ,"Check the Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1451, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11735` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1452, new AxoMessengerTextItem("Unable to write parameter PNU 12681 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 12681` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1453, new AxoMessengerTextItem("Unable to read parameter PNU 11203 from the drive in `MC_Home` method!" ,"Check the Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1454, new AxoMessengerTextItem("Unable to read parameter PNU 11734 from the drive in `MC_Home` method!" ,"Check the Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1455, new AxoMessengerTextItem("Unable to write parameter PNU 11203 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11203` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1456, new AxoMessengerTextItem("Unable to write parameter PNU 11734 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11734` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1457, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11735` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1458, new AxoMessengerTextItem("Unable to write parameter PNU 11203 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11203` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1459, new AxoMessengerTextItem("Unable to write parameter PNU 11734 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11734` or Module access point Hardware ID in the `MC_Home` method.")), + new KeyValuePair(1460, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_Home` method!" ,"Check the value of the `PNU 11735` or Module access point Hardware ID in the `MC_Home` method.")), + + + new KeyValuePair(1470, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Stop` method!" ,"Check the call of the `MC_Stop` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1471, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_Stop` method!" ,"Check the value of the `Deceleration` at the input of the `MC_Stop` method.")), + new KeyValuePair(1472, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_Stop` method!" ,"Check the value of the `Jerk` at the input of the `MC_Stop` method.")), + new KeyValuePair(1473, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_Stop` method!" ,"Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_Stop` method.")), + + new KeyValuePair(1480, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Halt` method!" ,"Check the call of the `MC_Halt` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1481, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_Halt` method!" ,"Check the value of the `Deceleration` at the input of the `MC_Halt` method.")), + new KeyValuePair(1482, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_Halt` method!" ,"Check the value of the `Jerk` at the input of the `MC_Halt` method.")), + new KeyValuePair(1483, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_Halt` method!" ,"Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_Halt` method.")), + + new KeyValuePair(1490, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveAbsolute` method!" ,"Check the call of the `MC_MoveAbsolute` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1491, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_MoveAbsolute` method!" ,"Check the value of the `Velocity` at the input of the `MC_MoveAbsolute` method.")), + new KeyValuePair(1492, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_MoveAbsolute` method!" ,"Check the value of the `Acceleration` at the input of the `MC_MoveAbsolute` method.")), + new KeyValuePair(1493, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_MoveAbsolute` method!" ,"Check the value of the `Deceleration` at the input of the `MC_MoveAbsolute` method.")), + new KeyValuePair(1494, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_MoveAbsolute` method!" ,"Check the value of the `Jerk` at the input of the `MC_MoveAbsolute` method.")), + new KeyValuePair(1495, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_MoveAbsolute` method!" ,"Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_MoveAbsolute` method.")), + + new KeyValuePair(1500, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveRelative` method!" ,"Check the call of the `MC_MoveRelative` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1501, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_MoveRelative` method!" ,"Check the value of the `Velocity` at the input of the `MC_MoveRelative` method.")), + new KeyValuePair(1502, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_MoveRelative` method!" ,"Check the value of the `Acceleration` at the input of the `MC_MoveRelative` method.")), + new KeyValuePair(1503, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_MoveRelative` method!" ,"Check the value of the `Deceleration` at the input of the `MC_MoveRelative` method.")), + new KeyValuePair(1504, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_MoveRelative` method!" ,"Check the value of the `Jerk` at the input of the `MC_MoveRelative` method.")), + new KeyValuePair(1505, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_MoveRelative` method!" ,"Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_MoveRelative` method.")), + + new KeyValuePair(1510, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveAdditive` method!" ,"Check the call of the `MC_MoveAdditive` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1511, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_MoveAdditive` method!" ,"Check the value of the `Velocity` at the input of the `MC_MoveAdditive` method.")), + new KeyValuePair(1512, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_MoveAdditive` method!" ,"Check the value of the `Acceleration` at the input of the `MC_MoveAdditive` method.")), + new KeyValuePair(1513, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_MoveAdditive` method!" ,"Check the value of the `Deceleration` at the input of the `MC_MoveAdditive` method.")), + new KeyValuePair(1514, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_MoveAdditive` method!" ,"Check the value of the `Jerk` at the input of the `MC_MoveAdditive` method.")), + new KeyValuePair(1515, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_MoveAdditive` method!" ,"Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_MoveAdditive` method.")), + + new KeyValuePair(1520, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveVelocity` method!" ,"Check the call of the `MC_MoveVelocity` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1521, new AxoMessengerTextItem("Input variable `Direction` has invalid value in `MC_MoveVelocity` method!" ,"Check the value of the `Direction` at the input of the `MC_MoveVelocity` method.")), + new KeyValuePair(1522, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_MoveVelocity` method!" ,"Check the value of the `Velocity` at the input of the `MC_MoveVelocity` method.")), + new KeyValuePair(1523, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_MoveVelocity` method!" ,"Check the value of the `Acceleration` at the input of the `MC_MoveVelocity` method.")), + new KeyValuePair(1524, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_MoveVelocity` method!" ,"Check the value of the `Deceleration` at the input of the `MC_MoveVelocity` method.")), + new KeyValuePair(1525, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_MoveVelocity` method!" ,"Check the value of the `Jerk` at the input of the `MC_MoveVelocity` method.")), + new KeyValuePair(1526, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_MoveVelocity` method!" ,"Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_MoveVelocity` method.")), + + new KeyValuePair(1530, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_TorqueControl` method!" ,"Check the call of the `MC_TorqueControl` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1531, new AxoMessengerTextItem("Input variable `Direction` has invalid value in `MC_TorqueControl` method!" ,"Check the value of the `Direction` at the input of the `MC_TorqueControl` method.")), + new KeyValuePair(1532, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_TorqueControl` method!" ,"Check the value of the `Velocity` at the input of the `MC_TorqueControl` method.")), + new KeyValuePair(1533, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_TorqueControl` method!" ,"Check the value of the `Acceleration` at the input of the `MC_TorqueControl` method.")), + new KeyValuePair(1534, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_TorqueControl` method!" ,"Check the value of the `Deceleration` at the input of the `MC_TorqueControl` method.")), + new KeyValuePair(1535, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_TorqueControl` method!" ,"Check the value of the `Jerk` at the input of the `MC_TorqueControl` method.")), + new KeyValuePair(1536, new AxoMessengerTextItem("Input variable `Torque` has invalid value in `MC_TorqueControl` method!" ,"Check the value of the `Torque` at the input of the `MC_TorqueControl` method.")), + new KeyValuePair(1537, new AxoMessengerTextItem("Input variable `TorqueRamp` has invalid value in `MC_TorqueControl` method!" ,"Check the value of the `TorqueRamp` at the input of the `MC_TorqueControl` method.")), + new KeyValuePair(1538, new AxoMessengerTextItem("Actual position is higher then the limit position set before the movement has started in `MC_TorqueControl` method!" ,"Check the Limit position value in the `MC_TorqueControl` method.")), + new KeyValuePair(1539, new AxoMessengerTextItem("Actual position is lower then the limit position set before the movement has started in `MC_TorqueControl` method!" ,"Check the Limit position value in the `MC_TorqueControl` method.")), + new KeyValuePair(1540, new AxoMessengerTextItem("Unable to write parameter PNU 12168 into the drive in `MC_TorqueControl` method!" ,"Check the value of the `PNU 12168` or Module access point Hardware ID in the `MC_TorqueControl` method.")), + new KeyValuePair(1541, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_TorqueControl` method!" ,"Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_TorqueControl` method.")), + new KeyValuePair(1542, new AxoMessengerTextItem("Limit position reached in `MC_TorqueControl` method!" ,"Check the Limit position value in the `MC_TorqueControl` method.")), + + new KeyValuePair(1550, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_SetPosition` method!" ,"Check the call of the `MC_SetPosition` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1551, new AxoMessengerTextItem("Unable to read parameter PNU 11735 from the drive in `MC_SetPosition` method!" ,"Check the Module access point Hardware ID in the `MC_SetPosition` method.")), + new KeyValuePair(1552, new AxoMessengerTextItem("Unable to write parameter PNU 12681 into the drive in `MC_SetPosition` method!" ,"Check the value of the `PNU 12681` or the Module access point Hardware ID in the `MC_SetPosition` method.")), + new KeyValuePair(1553, new AxoMessengerTextItem("Unable to read parameter PNU 11203 from the drive in `MC_SetPosition` method!" ,"Check the Module access point Hardware ID in the `MC_SetPosition` method.")), + new KeyValuePair(1554, new AxoMessengerTextItem("Unable to read parameter PNU 11734 from the drive in `MC_SetPosition` method!" ,"Check the Module access point Hardware ID in the `MC_SetPosition` method.")), + new KeyValuePair(1555, new AxoMessengerTextItem("Unable to write parameter PNU 11203 into the drive in `MC_SetPosition` method!" ,"Check the value of the `PNU 11203` or the Module access point Hardware ID in the `MC_SetPosition` method.")), + new KeyValuePair(1556, new AxoMessengerTextItem("Unable to write parameter PNU 11734 into the drive in `MC_SetPosition` method!" ,"Check the value of the `PNU 11734` or the Module access point Hardware ID in the `MC_SetPosition` method.")), + new KeyValuePair(1557, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_SetPosition` method!" ,"Check the value of the `PNU 11735` or the Module access point Hardware ID in the `MC_SetPosition` method.")), + new KeyValuePair(1558, new AxoMessengerTextItem("Unable to write parameter PNU 11203 into the drive in `MC_SetPosition` method!" ,"Check the value of the `PNU 11203` or the Module access point Hardware ID in the `MC_SetPosition` method.")), + new KeyValuePair(1559, new AxoMessengerTextItem("Unable to write parameter PNU 11734 into the drive in `MC_SetPosition` method!" ,"Check the value of the `PNU 11203` or the Module access point Hardware ID in the `MC_SetPosition` method.")), + new KeyValuePair(1560, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_SetPosition` method!" ,"Check the value of the `PNU 11735` or the Module access point Hardware ID in the `MC_SetPosition` method.")), + + new KeyValuePair(1570, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_SetOverride` method!" ,"Check the call of the `MC_SetOverride` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1571, new AxoMessengerTextItem("Input variable `VelocityFactor` has invalid value in `MC_Override` method!" ,"Check the value of the `VelocityFactor` at the input of the `MC_Override` method.")), + new KeyValuePair(1572, new AxoMessengerTextItem("Input variable `AccelerationFactor` has invalid value in `MC_Override` method!" ,"Check the value of the `AccelerationFactor` at the input of the `MC_Override` method.")), + new KeyValuePair(1573, new AxoMessengerTextItem("Input variable `JerkFactor` has invalid value in `MC_Override` method!" ,"Check the value of the `JerkFactor` at the input of the `MC_Override` method.")), + + new KeyValuePair(1580, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadParameter` method!" ,"Check the call of the `MC_ReadParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1581, new AxoMessengerTextItem("Unable to read parameter from the drive in `MC_ReadParameter` method!" ,"Check the Module access point Hardware ID in the `MC_ReadParameter` method.")), + + new KeyValuePair(1590, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadRealParameter` method!" ,"Check the call of the `MC_ReadRealParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1591, new AxoMessengerTextItem("Unable to read parameter from the drive in `MC_ReadRealParameter` method!" ,"Check the Module access point Hardware ID in the `MC_ReadRealParameter` method.")), + + new KeyValuePair(1600, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadBoolParameter` method!" ,"Check the call of the `MC_ReadBoolParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1601, new AxoMessengerTextItem("Unable to read parameter from the drive in `MC_ReadBoolParameter` method!" ,"Check the Module access point Hardware ID in the `MC_ReadBoolParameter` method.")), + + new KeyValuePair(1610, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteParameter` method!" ,"Check the call of the `MC_WriteParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1611, new AxoMessengerTextItem("Unable to write parameter into the drive in `MC_WriteParameter` method!" ,"Check the parameter number, parameter value or the Module access point Hardware ID in the `MC_WriteParameter` method.")), + + new KeyValuePair(1620, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteRealParameter` method!" ,"Check the call of the `MC_WriteRealParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1621, new AxoMessengerTextItem("Unable to write parameter into the drive in `MC_WriteRealParameter` method!" ,"Check the parameter number, parameter value or the Module access point Hardware ID in the `MC_WriteRealParameter` method.")), + + new KeyValuePair(1630, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteBoolParameter` method!" ,"Check the call of the `MC_WriteBoolParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1631, new AxoMessengerTextItem("Unable to write parameter into the drive in `MC_WriteBoolParameter` method!" ,"Check the parameter number, parameter value or the Module access point Hardware ID in the `MC_WriteBoolParameter` method.")), + + new KeyValuePair(1640, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadDigitalInput` method!" ,"Check the call of the `MC_ReadDigitalInput` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1641, new AxoMessengerTextItem("Input variable `InputNumber` has invalid value in `MC_ReadDigitalInput` method!" ,"Check the value of the `InputNumber` at the input of the `MC_ReadDigitalInput` method.")), + new KeyValuePair(1642, new AxoMessengerTextItem("Unable to read parameter PNU 2888 from the drive in `MC_ReadDigitalInput` method!" ,"Check the Module access point Hardware ID in the `MC_ReadDigitalInput` method.")), + + new KeyValuePair(1650, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadDigitalOutput` method!" ,"Check the call of the `MC_ReadDigitalOutput` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1651, new AxoMessengerTextItem("Input variable `OutputNumber` has invalid value in `MC_ReadDigitalOutput` method!" ,"Check the value of the `OutputNumber` at the input of the `MC_ReadDigitalOutput` method.")), + new KeyValuePair(1652, new AxoMessengerTextItem("Unable to read parameter PNU 2888 from the drive in `MC_ReadDigitalOutput` method!" ,"Check the Module access point Hardware ID in the `MC_ReadDigitalOutput` method.")), + + new KeyValuePair(1660, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteDigitalOutput` method!" ,"Check the call of the `MC_WriteDigitalOutput` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1661, new AxoMessengerTextItem("Input variable `OutputNumber` has invalid value in `MC_WriteDigitalOutput` method!" ,"Check the value of the `OutputNumber` at the input of the `MC_WriteDigitalOutput` method.")), + new KeyValuePair(1662, new AxoMessengerTextItem("The functionality was not implemented within the drive at the time of creating this library." ,"Contact your local FESTO subsidiary to check for updates. If changes have occurred, create a GitHub issue to implement the update on the PLC side.")), + new KeyValuePair(1663, new AxoMessengerTextItem("Unable to write parameter PNU 2888 from the drive in `MC_WriteDigitalOutput` method!" ,"Check the Module access point Hardware ID in the `MC_WriteDigitalOutput` method.")), + + new KeyValuePair(1670, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualPosition` method!" ,"Check the call of the `MC_ReadActualPosition` method, if the `AxisRef` parameter is assigned.")), + + new KeyValuePair(1680, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualVelocity` method!" ,"Check the call of the `MC_ReadActualVelocity` method, if the `AxisRef` parameter is assigned.")), + + new KeyValuePair(1690, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualTorque` method!" ,"Check the call of the `MC_ReadActualTorque` method, if the `AxisRef` parameter is assigned.")), + + new KeyValuePair(1700, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadStatus` method!" ,"Check the call of the `MC_ReadStatus` method, if the `AxisRef` parameter is assigned.")), + + new KeyValuePair(1710, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadMotionState` method!" ,"Check the call of the `MC_ReadMotionState` method, if the `AxisRef` parameter is assigned.")), + + new KeyValuePair(1720, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadAxisInfo` method!" ,"Check the call of the `MC_ReadAxisInfo` method, if the `AxisRef` parameter is assigned.")), + + new KeyValuePair(1730, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadAxisError` method!" ,"Check the call of the `MC_ReadAxisError` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1731, new AxoMessengerTextItem("Unable to read parameter PNU 12306 from the drive in `MC_ReadAxisError` method!" ,"Check the Module access point Hardware ID in the `MC_ReadAxisError` method.")), + + new KeyValuePair(1740, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Reset` method!" ,"Check the call of the `MC_Reset` method, if the `AxisRef` parameter is assigned.")), + + + + new KeyValuePair(1800, new AxoMessengerTextItem("Scaling parameters not yet read out of the drive" ,"Check proper value of the Module access point Hardware ID")), + + new KeyValuePair(2000, new AxoMessengerTextItem("Movement in positive direction is disabled" ,"Check the safety condition")), + new KeyValuePair(2001, new AxoMessengerTextItem("Movement in negative direction is disabled" ,"Check the safety condition")), + - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwID` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `hwID` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("Input variable `hwIdTelegram111` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdTelegram111` parameter is assigned.")), - new KeyValuePair(703, new AxoMessengerTextItem("Input variable `hwIdTelegram750` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdTelegram750` parameter is assigned.")), - new KeyValuePair(704, new AxoMessengerTextItem("Input variable `MAP_HW_ID` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `MAP_HW_ID` parameter is assigned.")), - - new KeyValuePair(707, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateInputs` method!", "Check the call of the `UpdateInputs` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(708, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateOutputs` method!", "Check the call of the `UpdateOutputs` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(709, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Power` method!", "Check the call of the `MC_Power` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(710, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Home` method!", "Check the call of the `MC_Home` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(711, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Stop` method!", "Check the call of the `MC_Stop` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(712, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Halt` method!", "Check the call of the `MC_Halt` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(713, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveAbsolute` method!", "Check the call of the `MC_MoveAbsolute` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(714, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveRelative` method!", "Check the call of the `MC_MoveRelative` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(715, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveAdditive` method!", "Check the call of the `MC_MoveAdditive` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(716, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveVelocity` method!", "Check the call of the `MC_MoveVelocity` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(717, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_TorqueControl` method!", "Check the call of the `MC_TorqueControl` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(718, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_SetPosition` method!", "Check the call of the `MC_SetPosition` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(719, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_SetOverride` method!", "Check the call of the `MC_SetOverride` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(720, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadParameter` method!", "Check the call of the `MC_ReadParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(721, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadRealParameter` method!", "Check the call of the `MC_ReadRealParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(722, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadBoolParameter` method!", "Check the call of the `MC_ReadBoolParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(723, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteParameter` method!", "Check the call of the `MC_WriteParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(724, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteRealParameter` method!", "Check the call of the `MC_WriteRealParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(725, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteBoolParameter` method!", "Check the call of the `MC_WriteBoolParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(726, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadDigitalInput` method!", "Check the call of the `MC_ReadDigitalInput` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(727, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadDigitalOutput` method!", "Check the call of the `MC_ReadDigitalOutput` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(728, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteDigitalOutput` method!", "Check the call of the `MC_WriteDigitalOutput` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(729, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualPosition` method!", "Check the call of the `MC_ReadActualPosition` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(730, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualVelocity` method!", "Check the call of the `MC_ReadActualVelocity` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(731, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualTorque` method!", "Check the call of the `MC_ReadActualTorque` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(732, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadStatus` method!", "Check the call of the `MC_ReadStatus` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(733, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadMotionState` method!", "Check the call of the `MC_ReadMotionState` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(734, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadAxisInfo` method!", "Check the call of the `MC_ReadAxisInfo` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(735, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadAxisError` method!", "Check the call of the `MC_ReadAxisError` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(736, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Reset` method!", "Check the call of the `MC_Reset` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(737, new AxoMessengerTextItem("Input variable `Direction` has invalid value in `MC_MoveVelocity` method!", "Check the value of the `Direction` at the input of the `MC_MoveVelocity` method.")), - new KeyValuePair(738, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateStatus` method!", "Check the call of the `UpdateStatus` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(739, new AxoMessengerTextItem("Input variable `Direction` has invalid value in `MC_TorqueControl` method!", "Check the value of the `Direction` at the input of the `MC_TorqueControl` method.")), - new KeyValuePair(740, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_Stop` method!", "Check the value of the `Deceleration` at the input of the `MC_Stop` method.")), - new KeyValuePair(741, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_Stop` method!", "Check the value of the `Jerk` at the input of the `MC_Stop` method.")), - new KeyValuePair(742, new AxoMessengerTextItem("Movement in positive direction is disabled", "Check the safety condition")), - new KeyValuePair(743, new AxoMessengerTextItem("Movement in negative direction is disabled", "Check the safety condition")), - new KeyValuePair(744, new AxoMessengerTextItem("Scaling parameters not yet read out of the drive", "Check proper value of the Module access point Hardware ID")), - new KeyValuePair(745, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_Home` method!", "Check the value of the `Acceleration` at the input of the `MC_Home` method.")), - new KeyValuePair(746, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_Home` method!", "Check the value of the `Deceleration` at the input of the `MC_Home` method.")), - new KeyValuePair(747, new AxoMessengerTextItem("Input variable `HomingMode` has invalid value in `MC_Home` method!", "Check the value of the `HomingMode` at the input of the `MC_Home` method.")), - new KeyValuePair(748, new AxoMessengerTextItem("Unable to write parameter PNU 11206 into the drive in `MC_Home` method!", "Check the value of the `PNU 11206` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(749, new AxoMessengerTextItem("Unable to write parameter PNU 11209 into the drive in `MC_Home` method!", "Check the value of the `PNU 11209` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(750, new AxoMessengerTextItem("Unable to write parameter PNU 11728 into the drive in `MC_Home` method!", "Check the value of the `PNU 11728` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(751, new AxoMessengerTextItem("Unable to write parameter PNU 11205 into the drive in `MC_Home` method!", "Check the value of the `PNU 11205` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(752, new AxoMessengerTextItem("Unable to write parameter PNU 11208 into the drive in `MC_Home` method!", "Check the value of the `PNU 11208` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(753, new AxoMessengerTextItem("Unable to write parameter PNU 11211 into the drive in `MC_Home` method!", "Check the value of the `PNU 11211` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(754, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_Home` method!", "Check the value of the `PNU 11735` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(755, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_Stop` method!", "Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_Stop` method.")), - new KeyValuePair(756, new AxoMessengerTextItem("Unable to write parameter PNU 12681 into the drive in `MC_Home` method!", "Check the value of the `PNU 12681` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(757, new AxoMessengerTextItem("Unable to read parameter PNU 11203 from the drive in `MC_Home` method!", "Check the Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(758, new AxoMessengerTextItem("Unable to read parameter PNU 11734 from the drive in `MC_Home` method!", "Check the Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(759, new AxoMessengerTextItem("Unable to write parameter PNU 11203 into the drive in `MC_Home` method!", "Check the value of the `PNU 11203` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(760, new AxoMessengerTextItem("Unable to write parameter PNU 11734 into the drive in `MC_Home` method!", "Check the value of the `PNU 11734` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(761, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_Home` method!", "Check the value of the `PNU 11735` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(762, new AxoMessengerTextItem("Unable to write parameter PNU 11203 into the drive in `MC_Home` method!", "Check the value of the `PNU 11203` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(763, new AxoMessengerTextItem("Unable to write parameter PNU 11734 into the drive in `MC_Home` method!", "Check the value of the `PNU 11734` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(764, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_Halt` method!", "Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_Halt` method.")), - new KeyValuePair(765, new AxoMessengerTextItem("Unable to read parameter PNU 11735 from the drive in `MC_Home` method!", "Check the Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(766, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_Home` method!", "Check the value of the `PNU 11735` or Module access point Hardware ID in the `MC_Home` method.")), - new KeyValuePair(767, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_MoveAbsolute` method!", "Check the value of the `Velocity` at the input of the `MC_MoveAbsolute` method.")), - new KeyValuePair(768, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_MoveAbsolute` method!", "Check the value of the `Acceleration` at the input of the `MC_MoveAbsolute` method.")), - new KeyValuePair(769, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_MoveAbsolute` method!", "Check the value of the `Deceleration` at the input of the `MC_MoveAbsolute` method.")), - new KeyValuePair(770, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_MoveAbsolute` method!", "Check the value of the `Jerk` at the input of the `MC_MoveAbsolute` method.")), - new KeyValuePair(771, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_MoveAbsolute` method!", "Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_MoveAbsolute` method.")), - new KeyValuePair(772, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_MoveRelative` method!", "Check the value of the `Velocity` at the input of the `MC_MoveRelative` method.")), - new KeyValuePair(773, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_MoveRelative` method!", "Check the value of the `Acceleration` at the input of the `MC_MoveRelative` method.")), - new KeyValuePair(774, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_MoveRelative` method!", "Check the value of the `Deceleration` at the input of the `MC_MoveRelative` method.")), - new KeyValuePair(775, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_MoveRelative` method!", "Check the value of the `Jerk` at the input of the `MC_MoveRelative` method.")), - new KeyValuePair(776, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_MoveRelative` method!", "Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_MoveRelative` method.")), - new KeyValuePair(777, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_MoveAdditive` method!", "Check the value of the `Velocity` at the input of the `MC_MoveAdditive` method.")), - new KeyValuePair(778, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_MoveAdditive` method!", "Check the value of the `Acceleration` at the input of the `MC_MoveAdditive` method.")), - new KeyValuePair(779, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_MoveAdditive` method!", "Check the value of the `Deceleration` at the input of the `MC_MoveAdditive` method.")), - new KeyValuePair(780, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_MoveAdditive` method!", "Check the value of the `Jerk` at the input of the `MC_MoveAdditive` method.")), - new KeyValuePair(781, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_MoveAdditive` method!", "Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_MoveAdditive` method.")), - new KeyValuePair(782, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_MoveVelocity` method!", "Check the value of the `Velocity` at the input of the `MC_MoveVelocity` method.")), - new KeyValuePair(783, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_MoveVelocity` method!", "Check the value of the `Acceleration` at the input of the `MC_MoveVelocity` method.")), - new KeyValuePair(784, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_MoveVelocity` method!", "Check the value of the `Deceleration` at the input of the `MC_MoveVelocity` method.")), - new KeyValuePair(785, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_MoveVelocity` method!", "Check the value of the `Jerk` at the input of the `MC_MoveVelocity` method.")), - new KeyValuePair(786, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_MoveVelocity` method!", "Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_MoveVelocity` method.")), - new KeyValuePair(787, new AxoMessengerTextItem("Unable to read parameter PNU 11735 from the drive in `MC_SetPosition` method!", "Check the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(788, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_SetPosition` method!", "Check the value of the `PNU 11735` or the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(789, new AxoMessengerTextItem("Unable to write parameter PNU 12681 into the drive in `MC_SetPosition` method!", "Check the value of the `PNU 12681` or the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(790, new AxoMessengerTextItem("Unable to read parameter PNU 11203 from the drive in `MC_SetPosition` method!", "Check the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(791, new AxoMessengerTextItem("Unable to read parameter PNU 11734 from the drive in `MC_SetPosition` method!", "Check the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(792, new AxoMessengerTextItem("Unable to write parameter PNU 11203 into the drive in `MC_SetPosition` method!", "Check the value of the `PNU 11203` or the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(793, new AxoMessengerTextItem("Unable to write parameter PNU 11734 into the drive in `MC_SetPosition` method!", "Check the value of the `PNU 11734` or the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(794, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_SetPosition` method!", "Check the value of the `PNU 11735` or the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(795, new AxoMessengerTextItem("Unable to write parameter PNU 11203 into the drive in `MC_SetPosition` method!", "Check the value of the `PNU 11203` or the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(796, new AxoMessengerTextItem("Unable to write parameter PNU 11734 into the drive in `MC_SetPosition` method!", "Check the value of the `PNU 11203` or the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(797, new AxoMessengerTextItem("Unable to write parameter PNU 11735 into the drive in `MC_SetPosition` method!", "Check the value of the `PNU 11735` or the Module access point Hardware ID in the `MC_SetPosition` method.")), - new KeyValuePair(798, new AxoMessengerTextItem("Input variable `VelocityFactor` has invalid value in `MC_Override` method!", "Check the value of the `VelocityFactor` at the input of the `MC_Override` method.")), - new KeyValuePair(799, new AxoMessengerTextItem("Input variable `AccelerationFactor` has invalid value in `MC_Override` method!", "Check the value of the `AccelerationFactor` at the input of the `MC_Override` method.")), - new KeyValuePair(800, new AxoMessengerTextItem("Input variable `JerkFactor` has invalid value in `MC_Override` method!", "Check the value of the `JerkFactor` at the input of the `MC_Override` method.")), - new KeyValuePair(801, new AxoMessengerTextItem("Unable to read parameter from the drive in `MC_ReadParameter` method!", "Check the Module access point Hardware ID in the `MC_ReadParameter` method.")), - new KeyValuePair(802, new AxoMessengerTextItem("Unable to read parameter from the drive in `MC_ReadRealParameter` method!", "Check the Module access point Hardware ID in the `MC_ReadRealParameter` method.")), - new KeyValuePair(803, new AxoMessengerTextItem("Unable to read parameter from the drive in `MC_ReadBoolParameter` method!", "Check the Module access point Hardware ID in the `MC_ReadBoolParameter` method.")), - new KeyValuePair(804, new AxoMessengerTextItem("Unable to write parameter into the drive in `MC_WriteParameter` method!", "Check the parameter number, parameter value or the Module access point Hardware ID in the `MC_WriteParameter` method.")), - new KeyValuePair(805, new AxoMessengerTextItem("Unable to write parameter into the drive in `MC_WriteRealParameter` method!", "Check the parameter number, parameter value or the Module access point Hardware ID in the `MC_WriteRealParameter` method.")), - new KeyValuePair(806, new AxoMessengerTextItem("Input variable `InputNumber` has invalid value in `MC_ReadDigitalInput` method!", "Check the value of the `InputNumber` at the input of the `MC_ReadDigitalInput` method.")), - new KeyValuePair(807, new AxoMessengerTextItem("Unable to read parameter PNU 2888 from the drive in `MC_ReadDigitalInput` method!", "Check the Module access point Hardware ID in the `MC_ReadDigitalInput` method.")), - new KeyValuePair(808, new AxoMessengerTextItem("Input variable `OutputNumber` has invalid value in `MC_ReadDigitalOutput` method!", "Check the value of the `OutputNumber` at the input of the `MC_ReadDigitalOutput` method.")), - new KeyValuePair(809, new AxoMessengerTextItem("Unable to read parameter PNU 2888 from the drive in `MC_ReadDigitalOutput` method!", "Check the Module access point Hardware ID in the `MC_ReadDigitalOutput` method.")), - new KeyValuePair(810, new AxoMessengerTextItem("The functionality was not implemented within the drive at the time of creating this library.", "Contact your local FESTO subsidiary to check for updates. If changes have occurred, create a GitHub issue to implement the update on the PLC side.")), - new KeyValuePair(811, new AxoMessengerTextItem("Unable to read parameter PNU 2888 from the drive in `MC_ReadDigitalOutput` method!", "Check the Module access point Hardware ID in the `MC_ReadDigitalOutput` method.")), - new KeyValuePair(812, new AxoMessengerTextItem("Unable to read parameter PNU 171 from the drive in `MC_ReadMotionState` method!", "Check the Module access point Hardware ID in the `MC_ReadMotionState` method.")), - new KeyValuePair(813, new AxoMessengerTextItem("Unable to read parameter PNU 12306 from the drive in `MC_ReadAxisError` method!", "Check the Module access point Hardware ID in the `MC_ReadAxisError` method.")), - new KeyValuePair(814, new AxoMessengerTextItem("Input variable `Velocity` has invalid value in `MC_TorqueControl` method!", "Check the value of the `Velocity` at the input of the `MC_TorqueControl` method.")), - new KeyValuePair(815, new AxoMessengerTextItem("Input variable `Acceleration` has invalid value in `MC_TorqueControl` method!", "Check the value of the `Acceleration` at the input of the `MC_TorqueControl` method.")), - new KeyValuePair(816, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_TorqueControl` method!", "Check the value of the `Deceleration` at the input of the `MC_TorqueControl` method.")), - new KeyValuePair(817, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_TorqueControl` method!", "Check the value of the `Jerk` at the input of the `MC_TorqueControl` method.")), - new KeyValuePair(818, new AxoMessengerTextItem("Input variable `Torque` has invalid value in `MC_TorqueControl` method!", "Check the value of the `Torque` at the input of the `MC_TorqueControl` method.")), - new KeyValuePair(819, new AxoMessengerTextItem("Input variable `TorqueRamp` has invalid value in `MC_TorqueControl` method!", "Check the value of the `TorqueRamp` at the input of the `MC_TorqueControl` method.")), - new KeyValuePair(820, new AxoMessengerTextItem("Unable to write parameter PNU 12168 into the drive in `MC_TorqueControl` method!", "Check the value of the `PNU 12168` or Module access point Hardware ID in the `MC_TorqueControl` method.")), - new KeyValuePair(821, new AxoMessengerTextItem("Unable to write parameter PNU 12327 into the drive in `MC_TorqueControl` method!", "Check the value of the `PNU 12327` or Module access point Hardware ID in the `MC_TorqueControl` method.")), - new KeyValuePair(822, new AxoMessengerTextItem("Limit position reached in `MC_TorqueControl` method!", "Check the Limit position value in the `MC_TorqueControl` method.")), - new KeyValuePair(823, new AxoMessengerTextItem("Actual position is higher then the limit position set before the movement has started in `MC_TorqueControl` method!","Check the Limit position value in the `MC_TorqueControl` method.")), - new KeyValuePair(824, new AxoMessengerTextItem("Actual position is lower then the limit position set before the movement has started in `MC_TorqueControl` method!","Check the Limit position value in the `MC_TorqueControl` method.")), - new KeyValuePair(825, new AxoMessengerTextItem("Input variable `Deceleration` has invalid value in `MC_Halt` method!", "Check the value of the `Deceleration` at the input of the `MC_Halt` method.")), - new KeyValuePair(826, new AxoMessengerTextItem("Input variable `Jerk` has invalid value in `MC_Halt` method!", "Check the value of the `Jerk` at the input of the `MC_Halt` method.")), - new KeyValuePair(827, new AxoMessengerTextItem("Error reading the Telegram 111!", "Check the hardware configuration and hardware identifier.")), - new KeyValuePair(828, new AxoMessengerTextItem("Error reading the Telegram 750!", "Check the hardware configuration and hardware identifier.")), - new KeyValuePair(829, new AxoMessengerTextItem("Error writing the Telegram 111!", "Check the hardware configuration and hardware identifier.")), - new KeyValuePair(830, new AxoMessengerTextItem("Error writing the Telegram 750!", "Check the hardware configuration and hardware identifier.")), }; Messenger.DotNetMessengerTextList = messengerTextList; diff --git a/src/components.festo.drives/this.sln b/src/components.festo.drives/this.sln index 65ea3b2fd..0810dc643 100644 --- a/src/components.festo.drives/this.sln +++ b/src/components.festo.drives/this.sln @@ -1,151 +1,151 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{019064C8-1D4D-4264-BD04-DDDFC4308D6D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{A29F313C-6B0C-4ECC-857E-27756B306E1A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{95651310-B9A5-4DC2-8E43-EC640FCBCE44}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{383C53AD-5BEE-4DDF-BB09-0E3376512BCC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{01341864-3B18-4E60-931F-98EAC24EEAE7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{DE253056-26FE-4BAE-851B-B6E94A77D22E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{C6BBE176-E1DC-4F3B-A0B0-756A935571E4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{3F2AD802-248D-47E4-880C-1653DE83926A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{1AEABE44-234E-47E0-9389-2C6CF046AAC3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_drives", "..\components.drives\src\AXOpen.Components.Drives\inxton_axopen_components_drives.csproj", "{69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_drives", "..\components.drives\src\AXOpen.Components.Drives\inxton_axopen_components_drives.csproj", "{AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazorapp", "app\ix-blazor\AXOpen.Components.Festo.Drives.blazorapp.csproj", "{907CE722-62D1-47FE-8FC8-35A4D8F80F4F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazorapp", "app\ix-blazor\AXOpen.Components.Festo.Drives.blazorapp.csproj", "{70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_axopen_components_festo_drives", "app\ix\app_axopen_components_festo_drives.csproj", "{B5E83C17-E527-416F-A55D-7344663794B6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_axopen_components_festo_drives", "app\ix\app_axopen_components_festo_drives.csproj", "{FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor\AXOpen.Components.Festo.Drives.blazor.csproj", "{A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor\AXOpen.Components.Festo.Drives.blazor.csproj", "{08965A8B-6912-41F7-A1B9-82AC0B8D3A43}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_festo_drives", "src\AXOpen.Components.Festo.Drives\inxton_axopen_components_festo_drives.csproj", "{DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_festo_drives", "src\AXOpen.Components.Festo.Drives\inxton_axopen_components_festo_drives.csproj", "{CF596C38-A60B-4642-9FFD-739BDCEDA455}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives_tests", "tests\AXOpen.Components.Festo.Drives.Tests\AXOpen.Components.Festo.Drives_tests.csproj", "{2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives_tests", "tests\AXOpen.Components.Festo.Drives.Tests\AXOpen.Components.Festo.Drives_tests.csproj", "{12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\core\src\AXOpen.Core.Blazor\axopen_core_blazor.csproj", "{B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\core\src\AXOpen.Core.Blazor\axopen_core_blazor.csproj", "{85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{2B450256-7867-4D61-B085-1E62FE41C89C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{7AE56C18-2193-4D11-8CFB-94ABD70CBF02}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{1ABE1403-917A-4A15-886B-28255241C646}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{03E434BE-A707-4EBF-8504-AB076AFACCB6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{8E45E5D7-C553-498C-ACF3-5FE833B39813}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{42CCCA07-4072-406E-8FD9-8C21D81DE8DB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{04FA926D-CA6F-4628-839A-106FB3ED6291}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{E21608C2-0913-4F35-8CB3-BE58A46CE344}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{98820E4B-60E0-47A2-B753-97B0264E787A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{0DDD6B05-155B-4939-A244-F097F7435EC9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{1A3CA764-788E-4738-A253-EF11E85F26A5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{52E629AE-AC63-407B-B5C5-B4032C907F3D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox\AXOpen.ToolBox.csproj", "{1250981A-A533-44B5-8853-5844A8B94163}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox\AXOpen.ToolBox.csproj", "{4C831B08-A31A-4878-8BF3-55E100D17A7C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "..\abstractions\src\AXOpen.Abstractions", "{3956B79E-24C0-4C62-B0B4-3F26AB5416A5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "..\abstractions\src\AXOpen.Abstractions", "{506FC316-4233-477B-8A4B-52A97FFC3A43}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\abstractions\src", "{F05C6C29-15DF-40DF-B985-47F1F659A2B3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\abstractions\src", "{88D1E3A0-11D6-4D0C-838A-45C9B89C7977}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstractions", "{C0CE9147-2DA1-49AC-806A-C4E7B1A1F8A3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstractions", "{1FEBCE20-0A5D-47B2-A182-B0EC70F34A6B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{17EEA354-B6D1-4E39-BBF8-1176460F4DF8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{026CEA7F-6046-46BC-AC65-D52FC0D8823B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{205CDFCE-B57C-4C27-9892-4D00CF169510}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{38429A87-485D-4C4A-8842-799533627C07}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{CAA833FA-DA2D-421F-A927-806CACADBA22}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{823917FB-A772-41A0-8165-53FDB5631002}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{1CB57C6C-551D-4EC3-B2FD-CF02F23AB858}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "..\base", "{D88EDBB6-1E75-44FD-A0B0-13B254DE18AC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "..\base", "{FFAA7124-46A7-42B3-806D-A6191A24301A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions", "{08A50F48-8C29-44C9-ACA5-F2C1B293B1A6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions", "{B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstractions\src", "{ED9488B3-925A-4AD9-B69F-94925DE42FB3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstractions\src", "{D4B589C8-8451-49F5-899E-7C6EE551013D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{4D1E7E70-94A5-4F1C-87E1-2C7C6159572B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{024D3BBF-7F13-4C01-A93A-35BCAA4D8033}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives", "..\components.drives\src\AXOpen.Components.Drives", "{9EEB1196-9525-424F-9D24-06C791B2723D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives", "..\components.drives\src\AXOpen.Components.Drives", "{3DE29700-9588-4FA8-9E55-AFAAB6079B3B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.drives\src", "{4DB67FD6-8972-402A-B97D-28497764367E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.drives\src", "{935E3F7E-9859-4C42-85CC-2C41255E561A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.drives", "..\components.drives", "{C1BB194D-4BE6-445B-8856-2BE47354911C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.drives", "..\components.drives", "{A95B3B75-BA4B-4A24-8423-0F7F567B63FE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{AC0BC2A2-E758-440E-97B2-13FB60A1B52B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{DC7412A2-F252-4408-98C6-28AAAF8915CC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{E6A2BD83-A2A7-43AB-81F2-95F77A1F52DA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{1ABBAB40-C0F6-47CC-9955-E45A4954D7E3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{B4D341AD-ED05-4D3A-B77F-440792E7F6DA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{C9A50598-A8C5-45B3-9878-1B107014525A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor", "{29097211-CA0C-4914-AB2F-BA70CB486C46}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor", "{AF8234A0-6224-4B8A-9BD1-1673447D1551}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives", "src\AXOpen.Components.Festo.Drives", "{FC80409E-28D4-479E-BC39-CB00ABCABC45}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives", "src\AXOpen.Components.Festo.Drives", "{283A01B7-7AFE-46A3-8093-EE737BF16464}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{91172136-EBF9-476A-9AD0-767862206D87}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{BC80146C-7A5D-45E4-8C65-EC1E76C8E548}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.Tests", "tests\AXOpen.Components.Festo.Drives.Tests", "{2C2C7248-79D0-4983-A331-8FEEDBC900E4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.Tests", "tests\AXOpen.Components.Festo.Drives.Tests", "{7EF7D930-813F-45AE-B45E-0D67DFECA1ED}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7546452B-30DA-4A1A-A69C-B866133E1BF6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1589AACD-FDFB-4FD6-9AB2-791BCF986D93}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.festo.drives", "..\components.festo.drives", "{4CF427B8-81D0-48B0-B9F4-6E2629DAE963}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.festo.drives", "..\components.festo.drives", "{B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "..\core\src\AXOpen.Core.Blazor", "{F62482CB-0D61-4640-8166-315DB252A5F2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "..\core\src\AXOpen.Core.Blazor", "{96A2C2CF-9275-4743-A308-7FC44BF6346B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "..\core\src\AXOpen.Core", "{0ABB5959-1AF4-4289-B1A9-B3301126B86A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "..\core\src\AXOpen.Core", "{85B06B85-89A3-4836-A4FC-0A36917D013E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{7444B7DD-5747-4DF2-8A2C-01B3651A6C8F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{C54DB5FB-93D2-4999-88E9-F586174B797C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{24DE9E19-E550-4AB4-B79F-1D71C5D9C579}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{3C5E1378-F872-4E82-B52D-A847344930CF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{E9FD5853-B939-49DD-BE98-93AA03CBF345}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{4984B4BF-EFED-4B22-B38E-D83E8EA5C361}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{2FC2CF37-9B1B-43B9-A765-33597E3C0CCC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{CC039A30-6AA5-4305-80A3-16AA7044A986}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{F827C714-4DA2-47B7-95FE-3D986752B6AE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{896998BB-B249-451F-A3A9-3A62D3D77A7E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{FF2A1720-45FA-42FE-A31B-A78101EF0D09}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{4F71F957-0CA1-4D88-BC9A-689936F71C6E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{D336FE23-7549-4A44-AF76-C54E4C2BED42}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{A373AE85-0BD9-43D8-BA03-3487A7A4465C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{F5D5C86A-96F3-47ED-A3DE-D12924334C32}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\io\src", "{F13D8A4C-E5BF-4C01-B504-66E43F82D177}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\io\src", "{B6A1803A-46A6-4264-8AE4-DE15FA9E690B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "..\io", "{982551A1-9CF3-46D5-BEC1-95BE94C48DB4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "..\io", "{B9F42C1B-37F0-4021-8E19-589AC49E7EB9}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\sdk-ax\ctrl\ix", "{906F3D81-03A9-49A0-BD78-FF94B36B9EC8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\sdk-ax\ctrl\ix", "{3210DEAA-DEE3-4543-8100-8A177FAE2466}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{F11C5886-F059-4821-B814-D80AAC92F980}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{CB156B7E-0FC1-484C-895E-DB56609A8434}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{6B100CFB-B1D9-4EC6-95CD-38718D3879E7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{D8D56C6E-4020-4F2C-8E17-218ACF02CC59}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{62EF1534-28F2-46A2-A798-E6202045B98E}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{A80CA72E-6877-4B3D-8174-B47FD5F42C92}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{49AFF210-5E12-4F9C-A0B9-D97B2C7579B7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{A27D7180-3E4A-431F-8644-E5C1D5F32B95}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{3C9EFEC2-724E-462F-B0B5-F23B6C29BDE3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{136622EA-40EC-4CA5-873B-D35335D94EC4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{B0E6D9FF-878A-451C-B41C-9A1374AB1295}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{1BFA9944-2C75-481E-B94A-C9F8247459F7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{FE35C140-921C-4D04-86BA-251762F2A7FB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{86A9F9A6-8A64-4F75-8A6C-892455A8E538}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{A50B4464-9329-414D-9DCD-14B7379EE93D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{321ABF68-D92F-438C-9FF0-A81C3E2663C0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{6A3692FD-80C0-420E-ACA0-3BFF3C7EEEA2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{4D2E0F64-C9DC-466E-8ABF-0FFFC6C057E3}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{C9A31423-5400-4518-AB6A-C73252B316DC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\timers\src", "{B4EB2666-113B-4842-AFF2-914325BC23AE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\timers\src", "{101213E4-86F8-4ED4-9CF9-FE63BC0A57FF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "..\timers", "{E3262DA4-637B-4037-9121-344F87CF7ED5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "..\timers", "{A0B006F1-1A99-4229-94FF-120DEFCDDEF6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox", "{50E63130-CE6E-4196-95B7-1184F88C1DA4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox", "{ECB779F3-7314-4820-94F4-C67E51DAD356}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\toolbox\src", "{4BEEC294-B043-42B3-A1A1-909BF070F7F2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\toolbox\src", "{0D7A6701-3E3B-43C7-8298-8B6454A3570B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "..\toolbox", "{FE85BB14-CF5C-4073-BEAD-391ADBD4A5B0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "..\toolbox", "{BB37B576-B6E5-4E28-B1B1-BB13A54469D2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -153,165 +153,165 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {019064C8-1D4D-4264-BD04-DDDFC4308D6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {019064C8-1D4D-4264-BD04-DDDFC4308D6D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {019064C8-1D4D-4264-BD04-DDDFC4308D6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {019064C8-1D4D-4264-BD04-DDDFC4308D6D}.Release|Any CPU.Build.0 = Release|Any CPU - {95651310-B9A5-4DC2-8E43-EC640FCBCE44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95651310-B9A5-4DC2-8E43-EC640FCBCE44}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95651310-B9A5-4DC2-8E43-EC640FCBCE44}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95651310-B9A5-4DC2-8E43-EC640FCBCE44}.Release|Any CPU.Build.0 = Release|Any CPU - {01341864-3B18-4E60-931F-98EAC24EEAE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {01341864-3B18-4E60-931F-98EAC24EEAE7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {01341864-3B18-4E60-931F-98EAC24EEAE7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {01341864-3B18-4E60-931F-98EAC24EEAE7}.Release|Any CPU.Build.0 = Release|Any CPU - {DE253056-26FE-4BAE-851B-B6E94A77D22E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DE253056-26FE-4BAE-851B-B6E94A77D22E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DE253056-26FE-4BAE-851B-B6E94A77D22E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DE253056-26FE-4BAE-851B-B6E94A77D22E}.Release|Any CPU.Build.0 = Release|Any CPU - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A}.Release|Any CPU.Build.0 = Release|Any CPU - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE}.Release|Any CPU.Build.0 = Release|Any CPU - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A}.Release|Any CPU.Build.0 = Release|Any CPU - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F}.Release|Any CPU.Build.0 = Release|Any CPU - {B5E83C17-E527-416F-A55D-7344663794B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B5E83C17-E527-416F-A55D-7344663794B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B5E83C17-E527-416F-A55D-7344663794B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B5E83C17-E527-416F-A55D-7344663794B6}.Release|Any CPU.Build.0 = Release|Any CPU - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2}.Release|Any CPU.Build.0 = Release|Any CPU - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC}.Release|Any CPU.Build.0 = Release|Any CPU - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041}.Release|Any CPU.Build.0 = Release|Any CPU - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6}.Release|Any CPU.Build.0 = Release|Any CPU - {2B450256-7867-4D61-B085-1E62FE41C89C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B450256-7867-4D61-B085-1E62FE41C89C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B450256-7867-4D61-B085-1E62FE41C89C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B450256-7867-4D61-B085-1E62FE41C89C}.Release|Any CPU.Build.0 = Release|Any CPU - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773}.Release|Any CPU.Build.0 = Release|Any CPU - {1ABE1403-917A-4A15-886B-28255241C646}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1ABE1403-917A-4A15-886B-28255241C646}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1ABE1403-917A-4A15-886B-28255241C646}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1ABE1403-917A-4A15-886B-28255241C646}.Release|Any CPU.Build.0 = Release|Any CPU - {03E434BE-A707-4EBF-8504-AB076AFACCB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {03E434BE-A707-4EBF-8504-AB076AFACCB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {03E434BE-A707-4EBF-8504-AB076AFACCB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {03E434BE-A707-4EBF-8504-AB076AFACCB6}.Release|Any CPU.Build.0 = Release|Any CPU - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA}.Release|Any CPU.Build.0 = Release|Any CPU - {04FA926D-CA6F-4628-839A-106FB3ED6291}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04FA926D-CA6F-4628-839A-106FB3ED6291}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04FA926D-CA6F-4628-839A-106FB3ED6291}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04FA926D-CA6F-4628-839A-106FB3ED6291}.Release|Any CPU.Build.0 = Release|Any CPU - {98820E4B-60E0-47A2-B753-97B0264E787A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {98820E4B-60E0-47A2-B753-97B0264E787A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {98820E4B-60E0-47A2-B753-97B0264E787A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {98820E4B-60E0-47A2-B753-97B0264E787A}.Release|Any CPU.Build.0 = Release|Any CPU - {1A3CA764-788E-4738-A253-EF11E85F26A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1A3CA764-788E-4738-A253-EF11E85F26A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1A3CA764-788E-4738-A253-EF11E85F26A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1A3CA764-788E-4738-A253-EF11E85F26A5}.Release|Any CPU.Build.0 = Release|Any CPU - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD}.Release|Any CPU.Build.0 = Release|Any CPU - {1250981A-A533-44B5-8853-5844A8B94163}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1250981A-A533-44B5-8853-5844A8B94163}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1250981A-A533-44B5-8853-5844A8B94163}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1250981A-A533-44B5-8853-5844A8B94163}.Release|Any CPU.Build.0 = Release|Any CPU + {A29F313C-6B0C-4ECC-857E-27756B306E1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A29F313C-6B0C-4ECC-857E-27756B306E1A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A29F313C-6B0C-4ECC-857E-27756B306E1A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A29F313C-6B0C-4ECC-857E-27756B306E1A}.Release|Any CPU.Build.0 = Release|Any CPU + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC}.Release|Any CPU.Build.0 = Release|Any CPU + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Release|Any CPU.Build.0 = Release|Any CPU + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Release|Any CPU.Build.0 = Release|Any CPU + {3F2AD802-248D-47E4-880C-1653DE83926A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F2AD802-248D-47E4-880C-1653DE83926A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F2AD802-248D-47E4-880C-1653DE83926A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F2AD802-248D-47E4-880C-1653DE83926A}.Release|Any CPU.Build.0 = Release|Any CPU + {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Release|Any CPU.Build.0 = Release|Any CPU + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Release|Any CPU.Build.0 = Release|Any CPU + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Release|Any CPU.Build.0 = Release|Any CPU + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Release|Any CPU.Build.0 = Release|Any CPU + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Release|Any CPU.Build.0 = Release|Any CPU + {CF596C38-A60B-4642-9FFD-739BDCEDA455}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CF596C38-A60B-4642-9FFD-739BDCEDA455}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CF596C38-A60B-4642-9FFD-739BDCEDA455}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CF596C38-A60B-4642-9FFD-739BDCEDA455}.Release|Any CPU.Build.0 = Release|Any CPU + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F}.Release|Any CPU.Build.0 = Release|Any CPU + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2}.Release|Any CPU.Build.0 = Release|Any CPU + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Release|Any CPU.Build.0 = Release|Any CPU + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Release|Any CPU.Build.0 = Release|Any CPU + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Release|Any CPU.Build.0 = Release|Any CPU + {8E45E5D7-C553-498C-ACF3-5FE833B39813}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E45E5D7-C553-498C-ACF3-5FE833B39813}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E45E5D7-C553-498C-ACF3-5FE833B39813}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E45E5D7-C553-498C-ACF3-5FE833B39813}.Release|Any CPU.Build.0 = Release|Any CPU + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Release|Any CPU.Build.0 = Release|Any CPU + {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Release|Any CPU.Build.0 = Release|Any CPU + {0DDD6B05-155B-4939-A244-F097F7435EC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DDD6B05-155B-4939-A244-F097F7435EC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DDD6B05-155B-4939-A244-F097F7435EC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DDD6B05-155B-4939-A244-F097F7435EC9}.Release|Any CPU.Build.0 = Release|Any CPU + {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Release|Any CPU.Build.0 = Release|Any CPU + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Release|Any CPU.Build.0 = Release|Any CPU + {4C831B08-A31A-4878-8BF3-55E100D17A7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C831B08-A31A-4878-8BF3-55E100D17A7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C831B08-A31A-4878-8BF3-55E100D17A7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C831B08-A31A-4878-8BF3-55E100D17A7C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {95651310-B9A5-4DC2-8E43-EC640FCBCE44} = {3956B79E-24C0-4C62-B0B4-3F26AB5416A5} - {3956B79E-24C0-4C62-B0B4-3F26AB5416A5} = {F05C6C29-15DF-40DF-B985-47F1F659A2B3} - {F05C6C29-15DF-40DF-B985-47F1F659A2B3} = {C0CE9147-2DA1-49AC-806A-C4E7B1A1F8A3} - {01341864-3B18-4E60-931F-98EAC24EEAE7} = {17EEA354-B6D1-4E39-BBF8-1176460F4DF8} - {17EEA354-B6D1-4E39-BBF8-1176460F4DF8} = {823917FB-A772-41A0-8165-53FDB5631002} - {DE253056-26FE-4BAE-851B-B6E94A77D22E} = {026CEA7F-6046-46BC-AC65-D52FC0D8823B} - {026CEA7F-6046-46BC-AC65-D52FC0D8823B} = {823917FB-A772-41A0-8165-53FDB5631002} - {F27DDB5D-75F6-40B7-95E1-ED7B2EB36E8A} = {38429A87-485D-4C4A-8842-799533627C07} - {38429A87-485D-4C4A-8842-799533627C07} = {823917FB-A772-41A0-8165-53FDB5631002} - {823917FB-A772-41A0-8165-53FDB5631002} = {D88EDBB6-1E75-44FD-A0B0-13B254DE18AC} - {E0C297A1-ECC4-48EA-85AB-7BF58D196CDE} = {08A50F48-8C29-44C9-ACA5-F2C1B293B1A6} - {08A50F48-8C29-44C9-ACA5-F2C1B293B1A6} = {ED9488B3-925A-4AD9-B69F-94925DE42FB3} - {ED9488B3-925A-4AD9-B69F-94925DE42FB3} = {4D1E7E70-94A5-4F1C-87E1-2C7C6159572B} - {69E7F2A5-1F5D-4F81-B776-3EA3ACF0AA6A} = {9EEB1196-9525-424F-9D24-06C791B2723D} - {9EEB1196-9525-424F-9D24-06C791B2723D} = {4DB67FD6-8972-402A-B97D-28497764367E} - {4DB67FD6-8972-402A-B97D-28497764367E} = {C1BB194D-4BE6-445B-8856-2BE47354911C} - {907CE722-62D1-47FE-8FC8-35A4D8F80F4F} = {AC0BC2A2-E758-440E-97B2-13FB60A1B52B} - {AC0BC2A2-E758-440E-97B2-13FB60A1B52B} = {B4D341AD-ED05-4D3A-B77F-440792E7F6DA} - {B5E83C17-E527-416F-A55D-7344663794B6} = {E6A2BD83-A2A7-43AB-81F2-95F77A1F52DA} - {E6A2BD83-A2A7-43AB-81F2-95F77A1F52DA} = {B4D341AD-ED05-4D3A-B77F-440792E7F6DA} - {B4D341AD-ED05-4D3A-B77F-440792E7F6DA} = {4CF427B8-81D0-48B0-B9F4-6E2629DAE963} - {A9A46B5A-E39F-4B67-809C-273EE0DC8EF2} = {29097211-CA0C-4914-AB2F-BA70CB486C46} - {29097211-CA0C-4914-AB2F-BA70CB486C46} = {91172136-EBF9-476A-9AD0-767862206D87} - {DC79C4F3-B6BF-4F3C-A946-A44D7E4567DC} = {FC80409E-28D4-479E-BC39-CB00ABCABC45} - {FC80409E-28D4-479E-BC39-CB00ABCABC45} = {91172136-EBF9-476A-9AD0-767862206D87} - {91172136-EBF9-476A-9AD0-767862206D87} = {4CF427B8-81D0-48B0-B9F4-6E2629DAE963} - {2D76DED4-9C5E-40B4-B0F1-24E2D58C7041} = {2C2C7248-79D0-4983-A331-8FEEDBC900E4} - {2C2C7248-79D0-4983-A331-8FEEDBC900E4} = {7546452B-30DA-4A1A-A69C-B866133E1BF6} - {7546452B-30DA-4A1A-A69C-B866133E1BF6} = {4CF427B8-81D0-48B0-B9F4-6E2629DAE963} - {B4B94C0C-89AA-4001-8D60-3B2908AC6CA6} = {F62482CB-0D61-4640-8166-315DB252A5F2} - {F62482CB-0D61-4640-8166-315DB252A5F2} = {7444B7DD-5747-4DF2-8A2C-01B3651A6C8F} - {2B450256-7867-4D61-B085-1E62FE41C89C} = {0ABB5959-1AF4-4289-B1A9-B3301126B86A} - {0ABB5959-1AF4-4289-B1A9-B3301126B86A} = {7444B7DD-5747-4DF2-8A2C-01B3651A6C8F} - {7444B7DD-5747-4DF2-8A2C-01B3651A6C8F} = {24DE9E19-E550-4AB4-B79F-1D71C5D9C579} - {4CC01CFB-F8CA-47B3-A8E8-E9829FC9A773} = {E9FD5853-B939-49DD-BE98-93AA03CBF345} - {E9FD5853-B939-49DD-BE98-93AA03CBF345} = {4984B4BF-EFED-4B22-B38E-D83E8EA5C361} - {4984B4BF-EFED-4B22-B38E-D83E8EA5C361} = {CC039A30-6AA5-4305-80A3-16AA7044A986} - {CC039A30-6AA5-4305-80A3-16AA7044A986} = {896998BB-B249-451F-A3A9-3A62D3D77A7E} - {1ABE1403-917A-4A15-886B-28255241C646} = {4F71F957-0CA1-4D88-BC9A-689936F71C6E} - {4F71F957-0CA1-4D88-BC9A-689936F71C6E} = {F13D8A4C-E5BF-4C01-B504-66E43F82D177} - {03E434BE-A707-4EBF-8504-AB076AFACCB6} = {A373AE85-0BD9-43D8-BA03-3487A7A4465C} - {A373AE85-0BD9-43D8-BA03-3487A7A4465C} = {F13D8A4C-E5BF-4C01-B504-66E43F82D177} - {F13D8A4C-E5BF-4C01-B504-66E43F82D177} = {982551A1-9CF3-46D5-BEC1-95BE94C48DB4} - {DB21F84E-C1E5-4453-8FBA-A2232D2AD0DA} = {906F3D81-03A9-49A0-BD78-FF94B36B9EC8} - {906F3D81-03A9-49A0-BD78-FF94B36B9EC8} = {F11C5886-F059-4821-B814-D80AAC92F980} - {F11C5886-F059-4821-B814-D80AAC92F980} = {6B100CFB-B1D9-4EC6-95CD-38718D3879E7} - {04FA926D-CA6F-4628-839A-106FB3ED6291} = {62EF1534-28F2-46A2-A798-E6202045B98E} - {62EF1534-28F2-46A2-A798-E6202045B98E} = {3C9EFEC2-724E-462F-B0B5-F23B6C29BDE3} - {98820E4B-60E0-47A2-B753-97B0264E787A} = {49AFF210-5E12-4F9C-A0B9-D97B2C7579B7} - {49AFF210-5E12-4F9C-A0B9-D97B2C7579B7} = {3C9EFEC2-724E-462F-B0B5-F23B6C29BDE3} - {3C9EFEC2-724E-462F-B0B5-F23B6C29BDE3} = {B0E6D9FF-878A-451C-B41C-9A1374AB1295} - {1A3CA764-788E-4738-A253-EF11E85F26A5} = {FE35C140-921C-4D04-86BA-251762F2A7FB} - {FE35C140-921C-4D04-86BA-251762F2A7FB} = {86A9F9A6-8A64-4F75-8A6C-892455A8E538} - {86A9F9A6-8A64-4F75-8A6C-892455A8E538} = {321ABF68-D92F-438C-9FF0-A81C3E2663C0} - {7D0CD912-8F18-4E10-9AE7-C41BC6D33EBD} = {4D2E0F64-C9DC-466E-8ABF-0FFFC6C057E3} - {4D2E0F64-C9DC-466E-8ABF-0FFFC6C057E3} = {B4EB2666-113B-4842-AFF2-914325BC23AE} - {B4EB2666-113B-4842-AFF2-914325BC23AE} = {E3262DA4-637B-4037-9121-344F87CF7ED5} - {1250981A-A533-44B5-8853-5844A8B94163} = {50E63130-CE6E-4196-95B7-1184F88C1DA4} - {50E63130-CE6E-4196-95B7-1184F88C1DA4} = {4BEEC294-B043-42B3-A1A1-909BF070F7F2} - {4BEEC294-B043-42B3-A1A1-909BF070F7F2} = {FE85BB14-CF5C-4073-BEAD-391ADBD4A5B0} + {383C53AD-5BEE-4DDF-BB09-0E3376512BCC} = {506FC316-4233-477B-8A4B-52A97FFC3A43} + {506FC316-4233-477B-8A4B-52A97FFC3A43} = {88D1E3A0-11D6-4D0C-838A-45C9B89C7977} + {88D1E3A0-11D6-4D0C-838A-45C9B89C7977} = {1FEBCE20-0A5D-47B2-A182-B0EC70F34A6B} + {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694} = {F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8} + {F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} + {C6BBE176-E1DC-4F3B-A0B0-756A935571E4} = {205CDFCE-B57C-4C27-9892-4D00CF169510} + {205CDFCE-B57C-4C27-9892-4D00CF169510} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} + {3F2AD802-248D-47E4-880C-1653DE83926A} = {CAA833FA-DA2D-421F-A927-806CACADBA22} + {CAA833FA-DA2D-421F-A927-806CACADBA22} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} + {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} = {FFAA7124-46A7-42B3-806D-A6191A24301A} + {1AEABE44-234E-47E0-9389-2C6CF046AAC3} = {B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A} + {B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A} = {D4B589C8-8451-49F5-899E-7C6EE551013D} + {D4B589C8-8451-49F5-899E-7C6EE551013D} = {024D3BBF-7F13-4C01-A93A-35BCAA4D8033} + {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5} = {3DE29700-9588-4FA8-9E55-AFAAB6079B3B} + {3DE29700-9588-4FA8-9E55-AFAAB6079B3B} = {935E3F7E-9859-4C42-85CC-2C41255E561A} + {935E3F7E-9859-4C42-85CC-2C41255E561A} = {A95B3B75-BA4B-4A24-8423-0F7F567B63FE} + {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA} = {DC7412A2-F252-4408-98C6-28AAAF8915CC} + {DC7412A2-F252-4408-98C6-28AAAF8915CC} = {C9A50598-A8C5-45B3-9878-1B107014525A} + {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70} = {1ABBAB40-C0F6-47CC-9955-E45A4954D7E3} + {1ABBAB40-C0F6-47CC-9955-E45A4954D7E3} = {C9A50598-A8C5-45B3-9878-1B107014525A} + {C9A50598-A8C5-45B3-9878-1B107014525A} = {B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF} + {08965A8B-6912-41F7-A1B9-82AC0B8D3A43} = {AF8234A0-6224-4B8A-9BD1-1673447D1551} + {AF8234A0-6224-4B8A-9BD1-1673447D1551} = {BC80146C-7A5D-45E4-8C65-EC1E76C8E548} + {CF596C38-A60B-4642-9FFD-739BDCEDA455} = {283A01B7-7AFE-46A3-8093-EE737BF16464} + {283A01B7-7AFE-46A3-8093-EE737BF16464} = {BC80146C-7A5D-45E4-8C65-EC1E76C8E548} + {BC80146C-7A5D-45E4-8C65-EC1E76C8E548} = {B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF} + {12F1FE0F-F200-41D1-BC2C-EC6D7042A26F} = {7EF7D930-813F-45AE-B45E-0D67DFECA1ED} + {7EF7D930-813F-45AE-B45E-0D67DFECA1ED} = {1589AACD-FDFB-4FD6-9AB2-791BCF986D93} + {1589AACD-FDFB-4FD6-9AB2-791BCF986D93} = {B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF} + {85D7919F-44A4-4F8C-BD83-7DCB467EBEE2} = {96A2C2CF-9275-4743-A308-7FC44BF6346B} + {96A2C2CF-9275-4743-A308-7FC44BF6346B} = {C54DB5FB-93D2-4999-88E9-F586174B797C} + {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC} = {85B06B85-89A3-4836-A4FC-0A36917D013E} + {85B06B85-89A3-4836-A4FC-0A36917D013E} = {C54DB5FB-93D2-4999-88E9-F586174B797C} + {C54DB5FB-93D2-4999-88E9-F586174B797C} = {3C5E1378-F872-4E82-B52D-A847344930CF} + {7AE56C18-2193-4D11-8CFB-94ABD70CBF02} = {7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F} + {7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F} = {2FC2CF37-9B1B-43B9-A765-33597E3C0CCC} + {2FC2CF37-9B1B-43B9-A765-33597E3C0CCC} = {F827C714-4DA2-47B7-95FE-3D986752B6AE} + {F827C714-4DA2-47B7-95FE-3D986752B6AE} = {FF2A1720-45FA-42FE-A31B-A78101EF0D09} + {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897} = {D336FE23-7549-4A44-AF76-C54E4C2BED42} + {D336FE23-7549-4A44-AF76-C54E4C2BED42} = {B6A1803A-46A6-4264-8AE4-DE15FA9E690B} + {8E45E5D7-C553-498C-ACF3-5FE833B39813} = {F5D5C86A-96F3-47ED-A3DE-D12924334C32} + {F5D5C86A-96F3-47ED-A3DE-D12924334C32} = {B6A1803A-46A6-4264-8AE4-DE15FA9E690B} + {B6A1803A-46A6-4264-8AE4-DE15FA9E690B} = {B9F42C1B-37F0-4021-8E19-589AC49E7EB9} + {42CCCA07-4072-406E-8FD9-8C21D81DE8DB} = {3210DEAA-DEE3-4543-8100-8A177FAE2466} + {3210DEAA-DEE3-4543-8100-8A177FAE2466} = {CB156B7E-0FC1-484C-895E-DB56609A8434} + {CB156B7E-0FC1-484C-895E-DB56609A8434} = {D8D56C6E-4020-4F2C-8E17-218ACF02CC59} + {E21608C2-0913-4F35-8CB3-BE58A46CE344} = {A80CA72E-6877-4B3D-8174-B47FD5F42C92} + {A80CA72E-6877-4B3D-8174-B47FD5F42C92} = {136622EA-40EC-4CA5-873B-D35335D94EC4} + {0DDD6B05-155B-4939-A244-F097F7435EC9} = {A27D7180-3E4A-431F-8644-E5C1D5F32B95} + {A27D7180-3E4A-431F-8644-E5C1D5F32B95} = {136622EA-40EC-4CA5-873B-D35335D94EC4} + {136622EA-40EC-4CA5-873B-D35335D94EC4} = {1BFA9944-2C75-481E-B94A-C9F8247459F7} + {52E629AE-AC63-407B-B5C5-B4032C907F3D} = {EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64} + {EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64} = {A50B4464-9329-414D-9DCD-14B7379EE93D} + {A50B4464-9329-414D-9DCD-14B7379EE93D} = {6A3692FD-80C0-420E-ACA0-3BFF3C7EEEA2} + {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E} = {C9A31423-5400-4518-AB6A-C73252B316DC} + {C9A31423-5400-4518-AB6A-C73252B316DC} = {101213E4-86F8-4ED4-9CF9-FE63BC0A57FF} + {101213E4-86F8-4ED4-9CF9-FE63BC0A57FF} = {A0B006F1-1A99-4229-94FF-120DEFCDDEF6} + {4C831B08-A31A-4878-8BF3-55E100D17A7C} = {ECB779F3-7314-4820-94F4-C67E51DAD356} + {ECB779F3-7314-4820-94F4-C67E51DAD356} = {0D7A6701-3E3B-43C7-8298-8B6454A3570B} + {0D7A6701-3E3B-43C7-8298-8B6454A3570B} = {BB37B576-B6E5-4E28-B1B1-BB13A54469D2} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {044A0481-AE12-4FDC-ABF0-C1C314EF6E88} + SolutionGuid = {7DFA52FF-96FE-4308-92BD-FCB01E97A25A} EndGlobalSection EndGlobal diff --git a/src/components.keyence.vision/app/apax.yml b/src/components.keyence.vision/app/apax.yml index fb988fdff..c4c892b4b 100644 --- a/src/components.keyence.vision/app/apax.yml +++ b/src/components.keyence.vision/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.keyence.vision" +name: "app_axopen.components.keyence.vision" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Keyence.Vision" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,139 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + diff --git a/src/components.keyence.vision/app/src/Documentation/Component_1.st b/src/components.keyence.vision/app/src/Documentation/Component_1.st index 2c18d39cc..5495d2947 100644 --- a/src/components.keyence.vision/app/src/Documentation/Component_1.st +++ b/src/components.keyence.vision/app/src/Documentation/Component_1.st @@ -29,24 +29,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision // Component.Run( parent := THIS, - ResultDataSize := AXOpen.Components.Keyence.Vision.eAxo_SR_750_ResultDataSize#RESULT_DATA_128B, - UserDataSize := AXOpen.Components.Keyence.Vision.eAxo_SR_750_UserDataSize#USER_DATA_128B, - hwID := HwIdentifiers#sr_750_1_HwID, - hwIdHandshakeAndGeneralErrorStatus := HwIdentifiers#sr_750_1_HandshakeAndGeneralErrorStatus_Handshake_and_General_Error_Status_Bits_HwID, - hwIdBUSY_Status := HwIdentifiers#sr_750_1_BusyStatus_BUSY_Status_Bits_HwID, - hwIdCompletionStatus := HwIdentifiers#sr_750_1_CompletionStatus_Completion_Status_Bits_HwID, - hwIdErrorStatus := HwIdentifiers#sr_750_1_ErrorStatus_Error_Status_Bits_HwID, - hwIdTerminalStatus := HwIdentifiers#sr_750_1_TerminalStatus_Terminal_Status_Bits_HwID, - hwIdUnstableReadStatus := HwIdentifiers#sr_750_1_UnstableReadStatus_Unstable_Read_Status_Bits_HwID, - hwIdMatchingLevelAndTotalEvaluationGradeStatus := HwIdentifiers#sr_750_1_MatchingLevelAndTotalEvaluationGradeStatus_Matching_Level_and_Total_Evaluation_Grade_Status_HwID, - hwIdOperationalResultStatus := HwIdentifiers#sr_750_1_OperationResultStatus_Operation_Result_Status_HwID, - hwIdReadData := HwIdentifiers#sr_750_1_ReadData_128_bytes_Read_Data_128Byte_HwID, - hwIdLatchAndErrorClearControl := HwIdentifiers#sr_750_1_LatchAndErrorClearControl_Latch_and_Error_Clear_Control_Bits_HwID, - hwIdOperationInstructionControl := HwIdentifiers#sr_750_1_OperationInstructionControl_Operation_instruction_Control_Bits_HwID, - hwIdCompletionClearControl := HwIdentifiers#sr_750_1_CompletionClearControl_Completion_Clear_Control_Bits_HwID, - hwIdParameterBankNumber := HwIdentifiers#sr_750_1_ParameterBank_Parameter_Bank_Number_HwID, - hwIdUserData := HwIdentifiers#sr_750_1_UserData_128_bytes_User_Data_128Byte_HwID - ); + hwID := HwIdentifiers#sr_750_1_HwID); // THIS.UseInSequencer(); diff --git a/src/components.keyence.vision/app/src/Documentation/Component_2.st b/src/components.keyence.vision/app/src/Documentation/Component_2.st index 6a7f397f9..ee60c759a 100644 --- a/src/components.keyence.vision/app/src/Documentation/Component_2.st +++ b/src/components.keyence.vision/app/src/Documentation/Component_2.st @@ -27,26 +27,8 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; // - Component.Run( - parent := THIS, - ResultDataSize := AXOpen.Components.Keyence.Vision.eAxo_SR_1000_ResultDataSize#RESULT_DATA_128B, - UserDataSize := AXOpen.Components.Keyence.Vision.eAxo_SR_1000_UserDataSize#USER_DATA_128B, - hwID := HwIdentifiers#sr_1000_1_HwID, - hwIdHandshakeAndGeneralErrorStatus := HwIdentifiers#sr_1000_1_HandshakeAndGeneralErrorStatus_Handshake_and_General_Error_Status_Bits_HwID, - hwIdBUSY_Status := HwIdentifiers#sr_1000_1_BusyStatus_BUSY_Status_Bits_HwID, - hwIdCompletionStatus := HwIdentifiers#sr_1000_1_CompletionStatus_Completion_Status_Bits_HwID, - hwIdErrorStatus := HwIdentifiers#sr_1000_1_ErrorStatus_Error_Status_Bits_HwID, - hwIdTerminalStatus := HwIdentifiers#sr_1000_1_TerminalStatus_Terminal_Status_Bits_HwID, - hwIdUnstableReadStatus := HwIdentifiers#sr_1000_1_UnstableReadStatus_Unstable_Read_Status_Bits_HwID, - hwIdMatchingLevelAndTotalEvaluationGradeStatus := HwIdentifiers#sr_1000_1_MatchingLevelAndTotalEvaluationGradeStatus_Matching_Level_and_Total_Evaluation_Grade_Status_HwID, - hwIdOperationalResultStatus := HwIdentifiers#sr_1000_1_OperationResultStatus_Operation_Result_Status_HwID, - hwIdReadData := HwIdentifiers#sr_1000_1_ReadData_128_bytes_Read_Data_128Byte_HwID, - hwIdLatchAndErrorClearControl := HwIdentifiers#sr_1000_1_LatchAndErrorClearControl_Latch_and_Error_Clear_Control_Bits_HwID, - hwIdOperationInstructionControl := HwIdentifiers#sr_1000_1_OperationInstructionControl_Operation_instruction_Control_Bits_HwID, - hwIdCompletionClearControl := HwIdentifiers#sr_1000_1_CompletionClearControl_Completion_Clear_Control_Bits_HwID, - hwIdParameterBankNumber := HwIdentifiers#sr_1000_1_ParameterBank_Parameter_Bank_Number_HwID, - hwIdUserData := HwIdentifiers#sr_1000_1_UserData_128_bytes_User_Data_128Byte_HwID - ); + Component.Run( parent := THIS, + hwID := HwIdentifiers#sr_1000_1_HwID); // THIS.UseInSequencer(); diff --git a/src/components.keyence.vision/app/src/Sandbox/SandboxContext.st b/src/components.keyence.vision/app/src/Sandbox/SandboxContext.st index 169f93405..54f617bb0 100644 --- a/src/components.keyence.vision/app/src/Sandbox/SandboxContext.st +++ b/src/components.keyence.vision/app/src/Sandbox/SandboxContext.st @@ -14,47 +14,11 @@ NAMESPACE AXOpen.Components.Keyence.Vision RETURN; - _sr_750.Run( - parent := _rootObject, - ResultDataSize := AXOpen.Components.Keyence.Vision.eAxo_SR_750_ResultDataSize#RESULT_DATA_128B, - UserDataSize := AXOpen.Components.Keyence.Vision.eAxo_SR_750_UserDataSize#USER_DATA_128B, - hwID := HwIdentifiers#sr_750_1_HwID, - hwIdHandshakeAndGeneralErrorStatus := HwIdentifiers#sr_750_1_HandshakeAndGeneralErrorStatus_Handshake_and_General_Error_Status_Bits_HwID, - hwIdBUSY_Status := HwIdentifiers#sr_750_1_BusyStatus_BUSY_Status_Bits_HwID, - hwIdCompletionStatus := HwIdentifiers#sr_750_1_CompletionStatus_Completion_Status_Bits_HwID, - hwIdErrorStatus := HwIdentifiers#sr_750_1_ErrorStatus_Error_Status_Bits_HwID, - hwIdTerminalStatus := HwIdentifiers#sr_750_1_TerminalStatus_Terminal_Status_Bits_HwID, - hwIdUnstableReadStatus := HwIdentifiers#sr_750_1_UnstableReadStatus_Unstable_Read_Status_Bits_HwID, - hwIdMatchingLevelAndTotalEvaluationGradeStatus := HwIdentifiers#sr_750_1_MatchingLevelAndTotalEvaluationGradeStatus_Matching_Level_and_Total_Evaluation_Grade_Status_HwID, - hwIdOperationalResultStatus := HwIdentifiers#sr_750_1_OperationResultStatus_Operation_Result_Status_HwID, - hwIdReadData := HwIdentifiers#sr_750_1_ReadData_128_bytes_Read_Data_128Byte_HwID, - hwIdLatchAndErrorClearControl := HwIdentifiers#sr_750_1_LatchAndErrorClearControl_Latch_and_Error_Clear_Control_Bits_HwID, - hwIdOperationInstructionControl := HwIdentifiers#sr_750_1_OperationInstructionControl_Operation_instruction_Control_Bits_HwID, - hwIdCompletionClearControl := HwIdentifiers#sr_750_1_CompletionClearControl_Completion_Clear_Control_Bits_HwID, - hwIdParameterBankNumber := HwIdentifiers#sr_750_1_ParameterBank_Parameter_Bank_Number_HwID, - hwIdUserData := HwIdentifiers#sr_750_1_UserData_128_bytes_User_Data_128Byte_HwID - ); + _sr_750.Run( parent := _rootObject, + hwID := HwIdentifiers#sr_750_1_HwID); - _sr_1000.Run( - parent := _rootObject, - ResultDataSize := AXOpen.Components.Keyence.Vision.eAxo_SR_1000_ResultDataSize#RESULT_DATA_128B, - UserDataSize := AXOpen.Components.Keyence.Vision.eAxo_SR_1000_UserDataSize#USER_DATA_128B, - hwID := HwIdentifiers#sr_1000_1_HwID, - hwIdHandshakeAndGeneralErrorStatus := HwIdentifiers#sr_1000_1_HandshakeAndGeneralErrorStatus_Handshake_and_General_Error_Status_Bits_HwID, - hwIdBUSY_Status := HwIdentifiers#sr_1000_1_BusyStatus_BUSY_Status_Bits_HwID, - hwIdCompletionStatus := HwIdentifiers#sr_1000_1_CompletionStatus_Completion_Status_Bits_HwID, - hwIdErrorStatus := HwIdentifiers#sr_1000_1_ErrorStatus_Error_Status_Bits_HwID, - hwIdTerminalStatus := HwIdentifiers#sr_1000_1_TerminalStatus_Terminal_Status_Bits_HwID, - hwIdUnstableReadStatus := HwIdentifiers#sr_1000_1_UnstableReadStatus_Unstable_Read_Status_Bits_HwID, - hwIdMatchingLevelAndTotalEvaluationGradeStatus := HwIdentifiers#sr_1000_1_MatchingLevelAndTotalEvaluationGradeStatus_Matching_Level_and_Total_Evaluation_Grade_Status_HwID, - hwIdOperationalResultStatus := HwIdentifiers#sr_1000_1_OperationResultStatus_Operation_Result_Status_HwID, - hwIdReadData := HwIdentifiers#sr_1000_1_ReadData_128_bytes_Read_Data_128Byte_HwID, - hwIdLatchAndErrorClearControl := HwIdentifiers#sr_1000_1_LatchAndErrorClearControl_Latch_and_Error_Clear_Control_Bits_HwID, - hwIdOperationInstructionControl := HwIdentifiers#sr_1000_1_OperationInstructionControl_Operation_instruction_Control_Bits_HwID, - hwIdCompletionClearControl := HwIdentifiers#sr_1000_1_CompletionClearControl_Completion_Clear_Control_Bits_HwID, - hwIdParameterBankNumber := HwIdentifiers#sr_1000_1_ParameterBank_Parameter_Bank_Number_HwID, - hwIdUserData := HwIdentifiers#sr_1000_1_UserData_128_bytes_User_Data_128Byte_HwID - ); + _sr_1000.Run( parent := _rootObject, + hwID := HwIdentifiers#sr_1000_1_HwID); IF(_manualControl) THEN diff --git a/src/components.keyence.vision/ctrl/apax.yml b/src/components.keyence.vision/ctrl/apax.yml index 1cf718efa..644d4a867 100644 --- a/src/components.keyence.vision/ctrl/apax.yml +++ b/src/components.keyence.vision/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.io": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.keyence.vision/ctrl/src/Axo_SR_1000.st b/src/components.keyence.vision/ctrl/src/Axo_SR_1000.st index 1e90d5f30..1c2d92061 100644 --- a/src/components.keyence.vision/ctrl/src/Axo_SR_1000.st +++ b/src/components.keyence.vision/ctrl/src/Axo_SR_1000.st @@ -2,6 +2,7 @@ USING AXOpen.Messaging.Static; USING AXOpen.Messaging; USING AXOpen.Core; USING AXOpen.Components.Abstractions; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Keyence.Vision {S7.extern=ReadWrite} @@ -34,7 +35,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision _UserDataChanged : BOOL; _invalidDataSize : BOOL; - _returnValue : WORD; + _retVal : WORD; _word : WORD; _data_1 : ARRAY[0..0] OF BYTE; _data_2 : ARRAY[0..1] OF BYTE; @@ -46,6 +47,20 @@ NAMESPACE AXOpen.Components.Keyence.Vision _prevResultDataReadyCount : UINT; _prevResultDataUpdateCount : UINT; _resultString : STRING[254]; + + _initHwCheckDone : BOOL; + _geoAddr : GeoAddr; + _outHwid : UINT; + _startAddress : UDINT; + _bytesCount : UINT; + _blink : AXOpen.Timers.AxoBlinker; + _programNo : BYTE; + _IDcode : ARRAY[0..63] OF BYTE; + _automaticStart : BOOL; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR VAR PUBLIC //Header @@ -221,23 +236,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision METHOD PUBLIC Run VAR_INPUT parent : IAxoObject; - ResultDataSize : eAxo_SR_1000_ResultDataSize; - UserDataSize : eAxo_SR_1000_UserDataSize; hwID : WORD; - hwIdHandshakeAndGeneralErrorStatus : WORD; - hwIdBUSY_Status : WORD; - hwIdCompletionStatus : WORD; - hwIdErrorStatus : WORD; - hwIdTerminalStatus : WORD; - hwIdUnstableReadStatus : WORD; - hwIdMatchingLevelAndTotalEvaluationGradeStatus : WORD; - hwIdOperationalResultStatus : WORD; - hwIdReadData : WORD; - hwIdLatchAndErrorClearControl : WORD; - hwIdOperationInstructionControl : WORD; - hwIdCompletionClearControl : WORD; - hwIdParameterBankNumber : WORD; - hwIdUserData : WORD; END_VAR VAR @@ -248,97 +247,723 @@ NAMESPACE AXOpen.Components.Keyence.Vision Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwID = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702,hwIdHandshakeAndGeneralErrorStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#703,hwIdBUSY_Status = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#704,hwIdCompletionStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#705,hwIdErrorStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#706,hwIdTerminalStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#707,hwIdUnstableReadStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#708,hwIdMatchingLevelAndTotalEvaluationGradeStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#709,hwIdOperationalResultStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#710,hwIdReadData = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#711,hwIdLatchAndErrorClearControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#712,hwIdCompletionClearControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#713,hwIdCompletionClearControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#714,hwIdParameterBankNumber = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#715,hwIdUserData = WORD#0, eAxoMessageCategory#ProgrammingError); - - IF parent = NULL THEN - Status.Error.Id := UINT#700; - RETURN; - ELSIF hwID = WORD#0 THEN - Status.Error.Id := UINT#701; - RETURN; - ELSIF hwIdHandshakeAndGeneralErrorStatus = WORD#0 THEN - Status.Error.Id := UINT#702; - RETURN; - ELSIF hwIdBUSY_Status = WORD#0 THEN - Status.Error.Id := UINT#703; - RETURN; - ELSIF hwIdCompletionStatus = WORD#0 THEN - Status.Error.Id := UINT#704; - RETURN; - ELSIF hwIdErrorStatus = WORD#0 THEN - Status.Error.Id := UINT#705; - RETURN; - ELSIF hwIdTerminalStatus = WORD#0 THEN - Status.Error.Id := UINT#706; - RETURN; - ELSIF hwIdUnstableReadStatus = WORD#0 THEN - Status.Error.Id := UINT#707; - RETURN; - ELSIF hwIdMatchingLevelAndTotalEvaluationGradeStatus = WORD#0 THEN - Status.Error.Id := UINT#708; - RETURN; - ELSIF hwIdOperationalResultStatus = WORD#0 THEN - Status.Error.Id := UINT#709; - RETURN; - ELSIF hwIdReadData = WORD#0 THEN - Status.Error.Id := UINT#710; - RETURN; - ELSIF hwIdLatchAndErrorClearControl = WORD#0 THEN - Status.Error.Id := UINT#711; - RETURN; - ELSIF hwIdCompletionClearControl = WORD#0 THEN - Status.Error.Id := UINT#712; - RETURN; - ELSIF hwIdCompletionClearControl = WORD#0 THEN - Status.Error.Id := UINT#713; - RETURN; - ELSIF hwIdParameterBankNumber = WORD#0 THEN - Status.Error.Id := UINT#714; - RETURN; - ELSIF hwIdUserData = WORD#0 THEN - Status.Error.Id := UINT#715; - RETURN; - END_IF; + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _geoAddr.HardwareType := UINT#4; // (4-Module) + _hwIdHandshakeAndGeneralErrorStatus := TO_WORD(_outHwid); + IF _hwIdHandshakeAndGeneralErrorStatus = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdHandshakeAndGeneralErrorStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdBUSY_Status := TO_WORD(_outHwid); + IF _hwIdBUSY_Status = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdBUSY_Status , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 3*****************// + _geoAddr.Slot := UINT#3; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdCompletionStatus := TO_WORD(_outHwid); + IF _hwIdCompletionStatus = WORD#0 THEN + Messenger.Activate(UINT#730,eAxoMessageCategory#Error); + Status.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#731,eAxoMessageCategory#Error); + Status.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#732,eAxoMessageCategory#Error); + Status.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#733,eAxoMessageCategory#Error); + Status.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#734,eAxoMessageCategory#Error); + Status.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#735,eAxoMessageCategory#Error); + Status.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdCompletionStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#736,eAxoMessageCategory#Error); + Status.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 4*****************// + _geoAddr.Slot := UINT#4; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdErrorStatus := TO_WORD(_outHwid); + IF _hwIdErrorStatus = WORD#0 THEN + Messenger.Activate(UINT#740,eAxoMessageCategory#Error); + Status.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#741,eAxoMessageCategory#Error); + Status.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#742,eAxoMessageCategory#Error); + Status.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#743,eAxoMessageCategory#Error); + Status.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#744,eAxoMessageCategory#Error); + Status.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#745,eAxoMessageCategory#Error); + Status.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdErrorStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#746,eAxoMessageCategory#Error); + Status.Error.Id := UINT#746; + RETURN; + END_IF; + //******************Slot 5*****************// + _geoAddr.Slot := UINT#5; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdTerminalStatus := TO_WORD(_outHwid); + IF _hwIdTerminalStatus = WORD#0 THEN + Messenger.Activate(UINT#750,eAxoMessageCategory#Error); + Status.Error.Id := UINT#750; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#751,eAxoMessageCategory#Error); + Status.Error.Id := UINT#751; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#752,eAxoMessageCategory#Error); + Status.Error.Id := UINT#752; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#753,eAxoMessageCategory#Error); + Status.Error.Id := UINT#753; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#754,eAxoMessageCategory#Error); + Status.Error.Id := UINT#754; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#755,eAxoMessageCategory#Error); + Status.Error.Id := UINT#755; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdTerminalStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#756,eAxoMessageCategory#Error); + Status.Error.Id := UINT#756; + RETURN; + END_IF; + //******************Slot 6*****************// + _geoAddr.Slot := UINT#6; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUnstableReadStatus := TO_WORD(_outHwid); + IF _hwIdUnstableReadStatus = WORD#0 THEN + Messenger.Activate(UINT#760,eAxoMessageCategory#Error); + Status.Error.Id := UINT#760; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#761,eAxoMessageCategory#Error); + Status.Error.Id := UINT#761; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#762,eAxoMessageCategory#Error); + Status.Error.Id := UINT#762; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#763,eAxoMessageCategory#Error); + Status.Error.Id := UINT#763; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#764,eAxoMessageCategory#Error); + Status.Error.Id := UINT#764; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#765,eAxoMessageCategory#Error); + Status.Error.Id := UINT#765; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUnstableReadStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#766,eAxoMessageCategory#Error); + Status.Error.Id := UINT#766; + RETURN; + END_IF; + //******************Slot 7*****************// + _geoAddr.Slot := UINT#7; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdMatchingLevelAndTotalEvaluationGradeStatus := TO_WORD(_outHwid); + IF _hwIdMatchingLevelAndTotalEvaluationGradeStatus = WORD#0 THEN + Messenger.Activate(UINT#770,eAxoMessageCategory#Error); + Status.Error.Id := UINT#770; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#771,eAxoMessageCategory#Error); + Status.Error.Id := UINT#771; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#772,eAxoMessageCategory#Error); + Status.Error.Id := UINT#772; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#773,eAxoMessageCategory#Error); + Status.Error.Id := UINT#773; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#774,eAxoMessageCategory#Error); + Status.Error.Id := UINT#774; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#775,eAxoMessageCategory#Error); + Status.Error.Id := UINT#775; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdMatchingLevelAndTotalEvaluationGradeStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#8 THEN + Messenger.Activate(UINT#776,eAxoMessageCategory#Error); + Status.Error.Id := UINT#776; + RETURN; + END_IF; + //******************Slot 8*****************// + _geoAddr.Slot := UINT#8; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdOperationalResultStatus := TO_WORD(_outHwid); + IF _hwIdOperationalResultStatus = WORD#0 THEN + Messenger.Activate(UINT#780,eAxoMessageCategory#Error); + Status.Error.Id := UINT#780; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#781,eAxoMessageCategory#Error); + Status.Error.Id := UINT#781; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#782,eAxoMessageCategory#Error); + Status.Error.Id := UINT#782; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#783,eAxoMessageCategory#Error); + Status.Error.Id := UINT#783; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#784,eAxoMessageCategory#Error); + Status.Error.Id := UINT#784; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#785,eAxoMessageCategory#Error); + Status.Error.Id := UINT#785; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdOperationalResultStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#20 THEN + Messenger.Activate(UINT#786,eAxoMessageCategory#Error); + Status.Error.Id := UINT#786; + RETURN; + END_IF; + //******************Slot 9*****************// + _geoAddr.Slot := UINT#9; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdReadData := TO_WORD(_outHwid); + IF _hwIdReadData = WORD#0 THEN + Messenger.Activate(UINT#790,eAxoMessageCategory#Error); + Status.Error.Id := UINT#790; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#791,eAxoMessageCategory#Error); + Status.Error.Id := UINT#791; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#792,eAxoMessageCategory#Error); + Status.Error.Id := UINT#792; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#793,eAxoMessageCategory#Error); + Status.Error.Id := UINT#793; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#794,eAxoMessageCategory#Error); + Status.Error.Id := UINT#794; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#795,eAxoMessageCategory#Error); + Status.Error.Id := UINT#795; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdReadData , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#32 THEN + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_32B; + ELSIF _inputsCount = UINT#64 THEN + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_64B; + ELSIF _inputsCount = UINT#128 THEN + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_128B; + ELSIF _inputsCount = UINT#246 THEN + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_246B; + ELSE + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_SIZE_INVALID; + Messenger.Activate(UINT#796,eAxoMessageCategory#Error); + Status.Error.Id := UINT#796; + RETURN; + END_IF; + //******************Slot 10*****************// + _geoAddr.Slot := UINT#10; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdLatchAndErrorClearControl := TO_WORD(_outHwid); + IF _hwIdLatchAndErrorClearControl = WORD#0 THEN + Messenger.Activate(UINT#800,eAxoMessageCategory#Error); + Status.Error.Id := UINT#800; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#801,eAxoMessageCategory#Error); + Status.Error.Id := UINT#801; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#802,eAxoMessageCategory#Error); + Status.Error.Id := UINT#802; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#803,eAxoMessageCategory#Error); + Status.Error.Id := UINT#803; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#804,eAxoMessageCategory#Error); + Status.Error.Id := UINT#804; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#805,eAxoMessageCategory#Error); + Status.Error.Id := UINT#805; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdLatchAndErrorClearControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#806,eAxoMessageCategory#Error); + Status.Error.Id := UINT#806; + RETURN; + END_IF; + //******************Slot 11*****************// + _geoAddr.Slot := UINT#11; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdOperationInstructionControl := TO_WORD(_outHwid); + IF _hwIdOperationInstructionControl = WORD#0 THEN + Messenger.Activate(UINT#810,eAxoMessageCategory#Error); + Status.Error.Id := UINT#810; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#811,eAxoMessageCategory#Error); + Status.Error.Id := UINT#811; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#812,eAxoMessageCategory#Error); + Status.Error.Id := UINT#812; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#813,eAxoMessageCategory#Error); + Status.Error.Id := UINT#813; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#814,eAxoMessageCategory#Error); + Status.Error.Id := UINT#814; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#815,eAxoMessageCategory#Error); + Status.Error.Id := UINT#815; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdOperationInstructionControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#816,eAxoMessageCategory#Error); + Status.Error.Id := UINT#816; + RETURN; + END_IF; + //******************Slot 12*****************// + _geoAddr.Slot := UINT#12; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdCompletionClearControl := TO_WORD(_outHwid); + IF _hwIdCompletionClearControl = WORD#0 THEN + Messenger.Activate(UINT#820,eAxoMessageCategory#Error); + Status.Error.Id := UINT#820; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#821,eAxoMessageCategory#Error); + Status.Error.Id := UINT#821; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#822,eAxoMessageCategory#Error); + Status.Error.Id := UINT#822; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#823,eAxoMessageCategory#Error); + Status.Error.Id := UINT#823; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#824,eAxoMessageCategory#Error); + Status.Error.Id := UINT#824; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#825,eAxoMessageCategory#Error); + Status.Error.Id := UINT#825; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdCompletionClearControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#826,eAxoMessageCategory#Error); + Status.Error.Id := UINT#826; + RETURN; + END_IF; + //******************Slot 13*****************// + _geoAddr.Slot := UINT#13; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdParameterBankNumber := TO_WORD(_outHwid); + IF _hwIdParameterBankNumber = WORD#0 THEN + Messenger.Activate(UINT#830,eAxoMessageCategory#Error); + Status.Error.Id := UINT#830; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#831,eAxoMessageCategory#Error); + Status.Error.Id := UINT#831; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#832,eAxoMessageCategory#Error); + Status.Error.Id := UINT#832; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#833,eAxoMessageCategory#Error); + Status.Error.Id := UINT#833; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#834,eAxoMessageCategory#Error); + Status.Error.Id := UINT#834; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#835,eAxoMessageCategory#Error); + Status.Error.Id := UINT#835; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdParameterBankNumber , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#2 THEN + Messenger.Activate(UINT#836,eAxoMessageCategory#Error); + Status.Error.Id := UINT#836; + RETURN; + END_IF; + //******************Slot 14*****************// + _geoAddr.Slot := UINT#14; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUserData := TO_WORD(_outHwid); + IF _hwIdUserData = WORD#0 THEN + Messenger.Activate(UINT#840,eAxoMessageCategory#Error); + Status.Error.Id := UINT#840; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#841,eAxoMessageCategory#Error); + Status.Error.Id := UINT#841; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#842,eAxoMessageCategory#Error); + Status.Error.Id := UINT#842; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#843,eAxoMessageCategory#Error); + Status.Error.Id := UINT#843; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#844,eAxoMessageCategory#Error); + Status.Error.Id := UINT#844; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#845,eAxoMessageCategory#Error); + Status.Error.Id := UINT#845; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUserData , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#32 THEN + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_32B; + ELSIF _inputsCount = UINT#64 THEN + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_64B; + ELSIF _inputsCount = UINT#128 THEN + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_128B; + ELSIF _inputsCount = UINT#252 THEN + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_252B; + ELSE + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_SIZE_INVALID; + Messenger.Activate(UINT#846,eAxoMessageCategory#Error); + Status.Error.Id := UINT#846; + RETURN; + END_IF; + + IF parent = NULL THEN + Messenger.Activate(UINT#1130,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1130; + RETURN; + END_IF; + + IF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1131; + RETURN; + END_IF; + + IF _hwIdHandshakeAndGeneralErrorStatus = WORD#0 THEN + Messenger.Activate(UINT#1132,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1132; + RETURN; + END_IF; + + IF _hwIdBUSY_Status = WORD#0 THEN + Messenger.Activate(UINT#1133,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1133; + RETURN; + END_IF; + + IF _hwIdCompletionStatus = WORD#0 THEN + Messenger.Activate(UINT#1134,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1134; + RETURN; + END_IF; - _hwID := hwID; - _ResultDataSize := ResultDataSize; - _UserDataSize := UserDataSize; - _hwIdHandshakeAndGeneralErrorStatus := hwIdHandshakeAndGeneralErrorStatus; - _hwIdBUSY_Status := hwIdBUSY_Status; - _hwIdCompletionStatus := hwIdCompletionStatus; - _hwIdErrorStatus := hwIdErrorStatus; - _hwIdTerminalStatus := hwIdTerminalStatus; - _hwIdUnstableReadStatus := hwIdUnstableReadStatus; - _hwIdMatchingLevelAndTotalEvaluationGradeStatus := hwIdMatchingLevelAndTotalEvaluationGradeStatus; - _hwIdOperationalResultStatus := hwIdOperationalResultStatus; - _hwIdReadData := hwIdReadData; - _hwIdLatchAndErrorClearControl := hwIdLatchAndErrorClearControl; - _hwIdOperationInstructionControl := hwIdOperationInstructionControl; - _hwIdCompletionClearControl := hwIdCompletionClearControl; - _hwIdParameterBankNumber := hwIdParameterBankNumber; - _hwIdUserData := hwIdUserData; + IF _hwIdErrorStatus = WORD#0 THEN + Messenger.Activate(UINT#1135,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1135; + RETURN; + END_IF; + + IF _hwIdTerminalStatus = WORD#0 THEN + Messenger.Activate(UINT#1136,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1136; + RETURN; + END_IF; + + IF _hwIdUnstableReadStatus = WORD#0 THEN + Messenger.Activate(UINT#1137,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1137; + RETURN; + END_IF; + + IF _hwIdMatchingLevelAndTotalEvaluationGradeStatus = WORD#0 THEN + Messenger.Activate(UINT#1138,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1138; + RETURN; + END_IF; + + IF _hwIdOperationalResultStatus = WORD#0 THEN + Messenger.Activate(UINT#1139,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1139; + RETURN; + END_IF; + + IF _hwIdReadData = WORD#0 THEN + Messenger.Activate(UINT#1140,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1140; + RETURN; + END_IF; + + IF _hwIdLatchAndErrorClearControl = WORD#0 THEN + Messenger.Activate(UINT#1141,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1141; + RETURN; + END_IF; + + IF _hwIdOperationInstructionControl = WORD#0 THEN + Messenger.Activate(UINT#1142,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1142; + RETURN; + END_IF; + + IF _hwIdCompletionClearControl = WORD#0 THEN + Messenger.Activate(UINT#1143,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1143; + RETURN; + END_IF; + + IF _hwIdParameterBankNumber = WORD#0 THEN + Messenger.Activate(UINT#1144,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1144; + RETURN; + END_IF; + + IF _hwIdUserData = WORD#0 THEN + Messenger.Activate(UINT#1145,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1145; + RETURN; + END_IF; + + + _initHwCheckDone := TRUE; + END_IF; //**************************************** //***********Update inputs *************** - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdHandshakeAndGeneralErrorStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#716,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#716; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdHandshakeAndGeneralErrorStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; @@ -348,10 +973,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision HandshakeAndGeneralErrorStatus.BufferOverflowError := _data_in[0].%X6; HandshakeAndGeneralErrorStatus.GeneralError := _data_in[0].%X7; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdBUSY_Status ,_data_in); - Messenger.ActivateOnCondition(ULINT#717,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#717; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdBUSY_Status ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1202, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1202; RETURN; END_IF; @@ -361,23 +986,24 @@ NAMESPACE AXOpen.Components.Keyence.Vision BUSY_Status.MODE_BUSY := _data_in[0].%X3; BUSY_Status.ERR_BUSY := _data_in[0].%X4; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdCompletionStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#718,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#718; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdCompletionStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1203, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1203; RETURN; END_IF; + CompletionStatus.ReadComplete := _data_in[0].%X0; CompletionStatus.PresetComplete := _data_in[0].%X1; CompletionStatus.RegisterPresetDataComplete := _data_in[0].%X2; CompletionStatus.TuneComplete := _data_in[0].%X3; CompletionStatus.EXT_RequestComplete := _data_in[0].%X7; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdErrorStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#719,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#719; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdErrorStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1204, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1204; RETURN; END_IF; @@ -387,10 +1013,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision ErrorStatus.TuneFailure := _data_in[0].%X3; ErrorStatus.EXT_RequestFailure := _data_in[0].%X7; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdTerminalStatus,_data_in); - Messenger.ActivateOnCondition(ULINT#720,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#720; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdTerminalStatus,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1205, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1205; RETURN; END_IF; @@ -400,10 +1026,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision TerminalStatus.OUT2_Status := _data_in[0].%X5; TerminalStatus.OUT3_Status := _data_in[0].%X6; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdUnstableReadStatus,_data_in); - Messenger.ActivateOnCondition(ULINT#721,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#721; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdUnstableReadStatus,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1206, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1206; RETURN; END_IF; @@ -413,10 +1039,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision UnstableReadStatus.ISO_IEC_TR_29158_Unstable := _data_in[0].%X3; UnstableReadStatus.SAE_AS9132_Unstable := _data_in[0].%X4; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdMatchingLevelAndTotalEvaluationGradeStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#722,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#722; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdMatchingLevelAndTotalEvaluationGradeStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1207, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1207; RETURN; END_IF; @@ -433,10 +1059,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision _word.%B0 := _data_in[7]; MatchingLevelAndTotalEvaluationGradeStatus._Reserved := TO_UINT(_word); - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdOperationalResultStatus,_data_in); - Messenger.ActivateOnCondition(ULINT#723,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#723; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdOperationalResultStatus,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1208, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1208; RETURN; END_IF; @@ -471,10 +1097,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision _word.%B0 := _data_in[19]; OperationalResultStatus._Reserved_3 := TO_UINT(_word); - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdReadData,_data_in); - Messenger.ActivateOnCondition(ULINT#724,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#724; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdReadData,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1209, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1209; RETURN; END_IF; @@ -483,15 +1109,12 @@ NAMESPACE AXOpen.Components.Keyence.Vision _ResultDataSize = eAxo_SR_1000_ResultDataSize#RESULT_DATA_128B OR _ResultDataSize = eAxo_SR_1000_ResultDataSize#RESULT_DATA_246B); - Messenger.ActivateOnCondition(ULINT#725,_invalidDataSize, eAxoMessageCategory#ProgrammingError); - IF _invalidDataSize THEN - Status.Error.Id := UINT#725; + Messenger.Activate(UINT#1210, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1210; RETURN; END_IF; - Config.ResultDataSize := _ResultDataSize; - _word.%B1 := _data_in[0]; _word.%B0 := _data_in[1]; ReadData.ResultDataReadyCount := TO_UINT(_word); @@ -545,9 +1168,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 330 THEN // ClearResultDataTask running, reset outputs - TaskMessenger.ActivateOnCondition(ULINT#530, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#530; + TaskMessenger.Activate( UINT#530, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#530; END_IF; LatchAndErrorClearControl.ResultDataLatch := FALSE; @@ -577,9 +1200,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 331 THEN // ClearResultDataTask running, clear error flag - TaskMessenger.ActivateOnCondition(ULINT#531, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#531; + TaskMessenger.Activate( UINT#531, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#531; END_IF; LatchAndErrorClearControl.ErrorClear := HandshakeAndGeneralErrorStatus.Error; @@ -591,9 +1214,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 332 THEN // ClearResultDataTask running, clear read complete flag - TaskMessenger.ActivateOnCondition(ULINT#532, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#532; + TaskMessenger.Activate( UINT#532, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#532; END_IF; CompletionClearControl.ReadCompleteClear := CompletionStatus.ReadComplete; @@ -605,9 +1228,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 333 THEN //ClearResultDataTask running, clear preset complete flag - TaskMessenger.ActivateOnCondition(ULINT#533, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#533; + TaskMessenger.Activate( UINT#533, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#533; END_IF; CompletionClearControl.PresetCompleteClear := CompletionStatus.PresetComplete; @@ -619,9 +1242,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 334 THEN // ClearResultDataTask running, clear register preset data complete flag - TaskMessenger.ActivateOnCondition(ULINT#534, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#534; + TaskMessenger.Activate( UINT#534, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#534; END_IF; CompletionClearControl.RegisterPresetDataCompleteClear := CompletionStatus.RegisterPresetDataComplete; @@ -633,9 +1256,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 335 THEN // ClearResultDataTask running, clear tune complete flag - TaskMessenger.ActivateOnCondition(ULINT#535, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#535; + TaskMessenger.Activate( UINT#535, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#535; END_IF; CompletionClearControl.TuneCompleteClear := CompletionStatus.TuneComplete; @@ -647,9 +1270,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 336 THEN // ClearResultDataTask running, clear external request complete flag - TaskMessenger.ActivateOnCondition(ULINT#536, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#536; + TaskMessenger.Activate( UINT#536, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#536; END_IF; CompletionClearControl.EXT_RequestCompleteClear := CompletionStatus.EXT_RequestComplete; @@ -661,9 +1284,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 337 THEN // ClearResultDataTask running, waiting for general error flag is reseted - TaskMessenger.ActivateOnCondition(ULINT#537, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#537; + TaskMessenger.Activate( UINT#537, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#537; END_IF; IF NOT HandshakeAndGeneralErrorStatus.GeneralError THEN @@ -673,9 +1296,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 338 THEN // ClearResultDataTask running, - TaskMessenger.ActivateOnCondition(ULINT#538, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#538; + TaskMessenger.Activate( UINT#538, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#538; END_IF; IF TRUE THEN @@ -686,6 +1309,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision IF _progress = 339 THEN // ClearResultDataTask finished ClearResultDataTask.DoneWhen(TRUE); + _progress := 0; END_IF; THIS.CallTimers(TRUE); @@ -697,14 +1321,14 @@ NAMESPACE AXOpen.Components.Keyence.Vision Status.Action.Id := UINT#131; Status.Error.Id := UINT#0; ELSIF ClearResultDataTask.ErrorOccured() THEN - Status.Action.Id := UINT#830; - Status.Error.Id := UINT#830; + Status.Action.Id := UINT#10030; + Status.Error.Id := UINT#10030; ELSIF ClearResultDataTask.AbortTriggered()THEN - Status.Action.Id := UINT#831; - Status.Error.Id := UINT#831; + Status.Action.Id := UINT#10031; + Status.Error.Id := UINT#10031; END_IF; - Messenger.ActivateOnCondition(ULINT#830,ClearResultDataTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#831,ClearResultDataTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10030,ClearResultDataTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10031,ClearResultDataTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#132,ClearResultDataTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ClearResultDataTask.RestoreTriggered() AND _progress >= 330 AND _progress <= 339 THEN Status.Action.Id := UINT#132; @@ -728,9 +1352,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 380 THEN // ReadTask running, reset outputs - TaskMessenger.ActivateOnCondition(ULINT#580, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#580; + TaskMessenger.Activate( UINT#580, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#580; END_IF; LatchAndErrorClearControl.ResultDataLatch := FALSE; @@ -760,9 +1384,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 381 THEN // ReadTask running, clear error flag - TaskMessenger.ActivateOnCondition(ULINT#581, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#581; + TaskMessenger.Activate( UINT#581, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#581; END_IF; LatchAndErrorClearControl.ErrorClear := HandshakeAndGeneralErrorStatus.Error; @@ -774,9 +1398,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 382 THEN // ReadTask running, clear read complete flag - TaskMessenger.ActivateOnCondition(ULINT#582, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#582; + TaskMessenger.Activate( UINT#582, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#582; END_IF; CompletionClearControl.ReadCompleteClear := CompletionStatus.ReadComplete; @@ -788,9 +1412,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 383 THEN // ReadTask running, clear preset complete flag - TaskMessenger.ActivateOnCondition(ULINT#583, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#583; + TaskMessenger.Activate( UINT#583, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#583; END_IF; CompletionClearControl.PresetCompleteClear := CompletionStatus.PresetComplete; @@ -802,9 +1426,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 384 THEN // ReadTask running, clear register preset data complete flag - TaskMessenger.ActivateOnCondition(ULINT#584, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#584; + TaskMessenger.Activate( UINT#584, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#584; END_IF; CompletionClearControl.RegisterPresetDataCompleteClear := CompletionStatus.RegisterPresetDataComplete; @@ -816,9 +1440,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 385 THEN // ReadTask running, clear tune complete flag - TaskMessenger.ActivateOnCondition(ULINT#585, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#585; + TaskMessenger.Activate( UINT#585, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#585; END_IF; CompletionClearControl.TuneCompleteClear := CompletionStatus.TuneComplete; @@ -830,9 +1454,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 386 THEN // ReadTask running, clear external request complete flag - TaskMessenger.ActivateOnCondition(ULINT#586, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#586; + TaskMessenger.Activate( UINT#586, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#586; END_IF; CompletionClearControl.EXT_RequestCompleteClear := CompletionStatus.EXT_RequestComplete; @@ -844,9 +1468,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 387 THEN // ReadTask running, waiting for general error flag is reseted - TaskMessenger.ActivateOnCondition(ULINT#587, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#587; + TaskMessenger.Activate( UINT#587, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#587; END_IF; IF NOT HandshakeAndGeneralErrorStatus.GeneralError THEN @@ -856,9 +1480,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 388 THEN // ReadTask running, setting bank number - TaskMessenger.ActivateOnCondition(ULINT#735, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#735; + TaskMessenger.Activate( UINT#588, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#588; END_IF; IF _Bank>=UINT#0 AND _Bank <=UINT#10 THEN @@ -869,9 +1493,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 389 THEN // ReadTask running, starting trigger - TaskMessenger.ActivateOnCondition(ULINT#589, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#589; + TaskMessenger.Activate( UINT#589, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#589; END_IF; OperationInstructionControl.ReadRequest := TRUE; @@ -888,9 +1512,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 390 THEN // ReadTask running, waiting for data - TaskMessenger.ActivateOnCondition(ULINT#590, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#590; + TaskMessenger.Activate( UINT#590, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#590; END_IF; IF ReadData.ResultDataReadyCount >_prevResultDataReadyCount THEN @@ -900,11 +1524,11 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 391 THEN // ReadTask running, acknowledging results - TaskMessenger.ActivateOnCondition(ULINT#591, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#591; + TaskMessenger.Activate( UINT#591, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#591; END_IF; - + CompletionClearControl.ReadCompleteClear := TRUE; IF NOT CompletionStatus.ReadComplete THEN CompletionClearControl.ReadCompleteClear := FALSE; @@ -913,9 +1537,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 392 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#592, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#592; + TaskMessenger.Activate( UINT#592, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#592; END_IF; IF TRUE THEN @@ -924,9 +1548,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 393 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#593, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#593; + TaskMessenger.Activate( UINT#593, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#593; END_IF; IF TRUE THEN @@ -935,9 +1559,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 394 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#594, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#594; + TaskMessenger.Activate( UINT#594, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#594; END_IF; IF TRUE THEN @@ -946,9 +1570,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 395 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#595, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#595; + TaskMessenger.Activate( UINT#595, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#595; END_IF; IF TRUE THEN @@ -957,9 +1581,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 396 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#596, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#596; + TaskMessenger.Activate( UINT#596, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#596; END_IF; IF TRUE THEN @@ -968,9 +1592,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 397 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#597, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#597; + TaskMessenger.Activate( UINT#597, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#597; END_IF; IF TRUE THEN @@ -979,9 +1603,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 398 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#598, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#598; + TaskMessenger.Activate( UINT#598, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#598; END_IF; IF TRUE THEN @@ -991,6 +1615,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision IF _progress = 399 THEN // ReadTask finished ReadTask.DoneWhen(TRUE); + _progress := 0; END_IF; THIS.CallTimers(TRUE); @@ -1002,14 +1627,14 @@ NAMESPACE AXOpen.Components.Keyence.Vision Status.Action.Id := UINT#181; Status.Error.Id := UINT#0; ELSIF ReadTask.ErrorOccured() THEN - Status.Action.Id := UINT#880; - Status.Error.Id := UINT#880; + Status.Action.Id := UINT#10080; + Status.Error.Id := UINT#10080; ELSIF ReadTask.AbortTriggered()THEN - Status.Action.Id := UINT#881; - Status.Error.Id := UINT#881; + Status.Action.Id := UINT#10081; + Status.Error.Id := UINT#10081; END_IF; - Messenger.ActivateOnCondition(ULINT#880,ReadTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#881,ReadTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10080,ReadTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10081,ReadTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#182,ReadTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ReadTask.RestoreTriggered() AND _progress >= 380 AND _progress <= 399 THEN Status.Action.Id := UINT#182; @@ -1033,9 +1658,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 400 THEN // TuneTask running, reset outputs - TaskMessenger.ActivateOnCondition(ULINT#600, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#600; + TaskMessenger.Activate( UINT#600, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#600; END_IF; LatchAndErrorClearControl.ResultDataLatch := FALSE; @@ -1065,9 +1690,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 401 THEN // TuneTask running, clear error flag - TaskMessenger.ActivateOnCondition(ULINT#601, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#601; + TaskMessenger.Activate( UINT#601, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#601; END_IF; LatchAndErrorClearControl.ErrorClear := HandshakeAndGeneralErrorStatus.Error; @@ -1079,9 +1704,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 402 THEN // TuneTask running, clear read complete flag - TaskMessenger.ActivateOnCondition(ULINT#602, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#602; + TaskMessenger.Activate( UINT#602, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#602; END_IF; CompletionClearControl.ReadCompleteClear := CompletionStatus.ReadComplete; @@ -1093,9 +1718,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 403 THEN // TuneTask running, clear preset complete flag - TaskMessenger.ActivateOnCondition(ULINT#603, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#603; + TaskMessenger.Activate( UINT#603, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#603; END_IF; CompletionClearControl.PresetCompleteClear := CompletionStatus.PresetComplete; @@ -1107,9 +1732,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 404 THEN // TuneTask running, clear register preset data complete flag - TaskMessenger.ActivateOnCondition(ULINT#604, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#604; + TaskMessenger.Activate( UINT#604, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#604; END_IF; CompletionClearControl.RegisterPresetDataCompleteClear := CompletionStatus.RegisterPresetDataComplete; @@ -1121,9 +1746,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 405 THEN // TuneTask running, clear tune complete flag - TaskMessenger.ActivateOnCondition(ULINT#605, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#605; + TaskMessenger.Activate( UINT#605, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#605; END_IF; CompletionClearControl.TuneCompleteClear := CompletionStatus.TuneComplete; @@ -1135,9 +1760,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 406 THEN // TuneTask running, clear external request complete flag - TaskMessenger.ActivateOnCondition(ULINT#606, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#606; + TaskMessenger.Activate( UINT#606, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#606; END_IF; CompletionClearControl.EXT_RequestCompleteClear := CompletionStatus.EXT_RequestComplete; @@ -1149,9 +1774,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 407 THEN // TuneTask running, waiting for general error flag is reseted - TaskMessenger.ActivateOnCondition(ULINT#607, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#607; + TaskMessenger.Activate( UINT#607, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#607; END_IF; IF NOT HandshakeAndGeneralErrorStatus.GeneralError THEN @@ -1161,9 +1786,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 408 THEN // TuneTask running, setting bank number - TaskMessenger.ActivateOnCondition(ULINT#735, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#735; + TaskMessenger.Activate( UINT#608, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#608; END_IF; IF _Bank>=UINT#0 AND _Bank <=UINT#10 THEN @@ -1174,9 +1799,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 409 THEN // TuneTask running, starting tune process - TaskMessenger.ActivateOnCondition(ULINT#609, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#609; + TaskMessenger.Activate( UINT#609, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#609; END_IF; OperationInstructionControl.TuneRequest := TRUE; @@ -1192,9 +1817,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 410 THEN // TuneTask running, acknowledging tunning process - TaskMessenger.ActivateOnCondition(ULINT#610, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#610; + TaskMessenger.Activate( UINT#610, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#610; END_IF; CompletionClearControl.TuneCompleteClear := TRUE; @@ -1205,9 +1830,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 411 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#611, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#611; + TaskMessenger.Activate( UINT#611, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#611; END_IF; IF TRUE THEN @@ -1216,9 +1841,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 412 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#612, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#612; + TaskMessenger.Activate( UINT#612, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#612; END_IF; IF TRUE THEN @@ -1227,9 +1852,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 413 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#613, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#613; + TaskMessenger.Activate( UINT#613, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#613; END_IF; IF TRUE THEN @@ -1238,9 +1863,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 414 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#614, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#614; + TaskMessenger.Activate( UINT#614, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#614; END_IF; IF TRUE THEN @@ -1249,9 +1874,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 415 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#615, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#615; + TaskMessenger.Activate( UINT#615, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#615; END_IF; IF TRUE THEN @@ -1260,9 +1885,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 416 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#616, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#616; + TaskMessenger.Activate( UINT#616, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#616; END_IF; IF TRUE THEN @@ -1271,9 +1896,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 417 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#617, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#617; + TaskMessenger.Activate( UINT#617, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#617; END_IF; IF TRUE THEN @@ -1282,9 +1907,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 418 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#618, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#618; + TaskMessenger.Activate( UINT#618, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#618; END_IF; IF TRUE THEN @@ -1294,6 +1919,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision IF _progress = 419 THEN // TuneTask finished TuneTask.DoneWhen(TRUE); + _progress := 0; END_IF; THIS.CallTimers(TRUE); @@ -1305,14 +1931,14 @@ NAMESPACE AXOpen.Components.Keyence.Vision Status.Action.Id := UINT#201; Status.Error.Id := UINT#0; ELSIF TuneTask.ErrorOccured() THEN - Status.Action.Id := UINT#900; - Status.Error.Id := UINT#900; + Status.Action.Id := UINT#10100; + Status.Error.Id := UINT#10100; ELSIF TuneTask.AbortTriggered()THEN - Status.Action.Id := UINT#901; - Status.Error.Id := UINT#901; + Status.Action.Id := UINT#10101; + Status.Error.Id := UINT#10101; END_IF; - Messenger.ActivateOnCondition(ULINT#900,TuneTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#901,TuneTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10100,TuneTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10101,TuneTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#202,TuneTask.RestoreTriggered() , eAxoMessageCategory#Error); IF TuneTask.RestoreTriggered() AND _progress >= 400 AND _progress <= 419 THEN Status.Action.Id := UINT#202; @@ -1324,10 +1950,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision _data_1[0].%X1 := LatchAndErrorClearControl.ResultDataLatch; _data_1[0].%X7 := LatchAndErrorClearControl.ErrorClear; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdLatchAndErrorClearControl,_data_1); - Messenger.ActivateOnCondition(ULINT#726,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#726; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdLatchAndErrorClearControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; END_IF; @@ -1336,10 +1962,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision _data_1[0].%X2 := OperationInstructionControl.RegisterPresetDataRequest; _data_1[0].%X3 := OperationInstructionControl.TuneRequest; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdOperationInstructionControl,_data_1); - Messenger.ActivateOnCondition(ULINT#727,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#727; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdOperationInstructionControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1232, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1232; RETURN; END_IF; @@ -1349,20 +1975,20 @@ NAMESPACE AXOpen.Components.Keyence.Vision _data_1[0].%X3 := CompletionClearControl.TuneCompleteClear; _data_1[0].%X7 := CompletionClearControl.EXT_RequestCompleteClear; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdCompletionClearControl,_data_1); - Messenger.ActivateOnCondition(ULINT#728,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#728; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdCompletionClearControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1233, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1233; RETURN; END_IF; _data_2[1] := TO_WORD(ParameterBankNumber.BankNumberRegister).%B0; _data_2[0] := TO_WORD(ParameterBankNumber.BankNumberRegister).%B1; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdParameterBankNumber,_data_2); - Messenger.ActivateOnCondition(ULINT#729,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#729; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdParameterBankNumber,_data_2); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1234, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1234; RETURN; END_IF; @@ -1372,10 +1998,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision _UserDataSize = eAxo_SR_1000_UserDataSize#USER_DATA_128B OR _UserDataSize = eAxo_SR_1000_UserDataSize#USER_DATA_252B); - Messenger.ActivateOnCondition(ULINT#730,_invalidDataSize, eAxoMessageCategory#ProgrammingError); - IF _invalidDataSize THEN - Status.Error.Id := UINT#730; + Messenger.Activate(UINT#1235, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1235; RETURN; END_IF; @@ -1388,10 +2013,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision FOR _index := 2 TO 33 DO _data_34[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_34); - Messenger.ActivateOnCondition(ULINT#731,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#731; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_34); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1236, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1236; RETURN; END_IF; ELSIF Config.UserDataSize = eAxo_SR_1000_UserDataSize#USER_DATA_64B THEN @@ -1400,10 +2025,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision FOR _index := 2 TO 65 DO _data_66[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_66); - Messenger.ActivateOnCondition(ULINT#732,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#732; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_66); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1237, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1237; RETURN; END_IF; ELSIF Config.UserDataSize = eAxo_SR_1000_UserDataSize#USER_DATA_128B THEN @@ -1412,10 +2037,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision FOR _index := 2 TO 129 DO _data_130[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_130); - Messenger.ActivateOnCondition(ULINT#733,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#733; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_130); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1238, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1238; RETURN; END_IF; ELSIF Config.UserDataSize = eAxo_SR_1000_UserDataSize#USER_DATA_252B THEN @@ -1424,10 +2049,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision FOR _index := 2 TO 253 DO _data_254[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_254); - Messenger.ActivateOnCondition(ULINT#734,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#734; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_254); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1239, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1239; RETURN; END_IF; END_IF; diff --git a/src/components.keyence.vision/ctrl/src/Axo_SR_750.st b/src/components.keyence.vision/ctrl/src/Axo_SR_750.st index fa0b02769..256d8846d 100644 --- a/src/components.keyence.vision/ctrl/src/Axo_SR_750.st +++ b/src/components.keyence.vision/ctrl/src/Axo_SR_750.st @@ -2,13 +2,12 @@ USING AXOpen.Messaging.Static; USING AXOpen.Messaging; USING AXOpen.Core; USING AXOpen.Components.Abstractions; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Keyence.Vision {S7.extern=ReadWrite} CLASS PUBLIC Axo_SR_750 EXTENDS AXOpen.Core.AxoComponent IMPLEMENTS AXOpen.Components.Abstractions.IAxoCodeReader VAR PRIVATE - _ResultDataSize : eAxo_SR_750_ResultDataSize; - _UserDataSize : eAxo_SR_750_UserDataSize; _hwID : WORD; _hwIdHandshakeAndGeneralErrorStatus : WORD; _hwIdBUSY_Status : WORD; @@ -34,7 +33,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision _UserDataChanged : BOOL; _invalidDataSize : BOOL; - _returnValue : WORD; + _retVal : WORD; _word : WORD; _data_1 : ARRAY[0..0] OF BYTE; _data_2 : ARRAY[0..1] OF BYTE; @@ -46,6 +45,20 @@ NAMESPACE AXOpen.Components.Keyence.Vision _prevResultDataReadyCount : UINT; _prevResultDataUpdateCount : UINT; _resultString : STRING[254]; + + _initHwCheckDone : BOOL; + _geoAddr : GeoAddr; + _outHwid : UINT; + _startAddress : UDINT; + _bytesCount : UINT; + _blink : AXOpen.Timers.AxoBlinker; + _programNo : BYTE; + _IDcode : ARRAY[0..63] OF BYTE; + _automaticStart : BOOL; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR VAR PUBLIC //Header @@ -220,24 +233,8 @@ NAMESPACE AXOpen.Components.Keyence.Vision /// METHOD PUBLIC Run VAR_INPUT - parent : IAxoObject; - ResultDataSize : eAxo_SR_750_ResultDataSize; - UserDataSize : eAxo_SR_750_UserDataSize; - hwID : WORD; - hwIdHandshakeAndGeneralErrorStatus : WORD; - hwIdBUSY_Status : WORD; - hwIdCompletionStatus : WORD; - hwIdErrorStatus : WORD; - hwIdTerminalStatus : WORD; - hwIdUnstableReadStatus : WORD; - hwIdMatchingLevelAndTotalEvaluationGradeStatus : WORD; - hwIdOperationalResultStatus : WORD; - hwIdReadData : WORD; - hwIdLatchAndErrorClearControl : WORD; - hwIdOperationInstructionControl : WORD; - hwIdCompletionClearControl : WORD; - hwIdParameterBankNumber : WORD; - hwIdUserData : WORD; + parent : IAxoObject; + hwID : WORD; END_VAR VAR @@ -248,97 +245,723 @@ NAMESPACE AXOpen.Components.Keyence.Vision Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwID = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702,hwIdHandshakeAndGeneralErrorStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#703,hwIdBUSY_Status = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#704,hwIdCompletionStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#705,hwIdErrorStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#706,hwIdTerminalStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#707,hwIdUnstableReadStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#708,hwIdMatchingLevelAndTotalEvaluationGradeStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#709,hwIdOperationalResultStatus = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#710,hwIdReadData = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#711,hwIdLatchAndErrorClearControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#712,hwIdCompletionClearControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#713,hwIdCompletionClearControl = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#714,hwIdParameterBankNumber = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#715,hwIdUserData = WORD#0, eAxoMessageCategory#ProgrammingError); - - IF parent = NULL THEN - Status.Error.Id := UINT#700; - RETURN; - ELSIF hwID = WORD#0 THEN - Status.Error.Id := UINT#701; - RETURN; - ELSIF hwIdHandshakeAndGeneralErrorStatus = WORD#0 THEN - Status.Error.Id := UINT#702; - RETURN; - ELSIF hwIdBUSY_Status = WORD#0 THEN - Status.Error.Id := UINT#703; - RETURN; - ELSIF hwIdCompletionStatus = WORD#0 THEN - Status.Error.Id := UINT#704; - RETURN; - ELSIF hwIdErrorStatus = WORD#0 THEN - Status.Error.Id := UINT#705; - RETURN; - ELSIF hwIdTerminalStatus = WORD#0 THEN - Status.Error.Id := UINT#706; - RETURN; - ELSIF hwIdUnstableReadStatus = WORD#0 THEN - Status.Error.Id := UINT#707; - RETURN; - ELSIF hwIdMatchingLevelAndTotalEvaluationGradeStatus = WORD#0 THEN - Status.Error.Id := UINT#708; - RETURN; - ELSIF hwIdOperationalResultStatus = WORD#0 THEN - Status.Error.Id := UINT#709; - RETURN; - ELSIF hwIdReadData = WORD#0 THEN - Status.Error.Id := UINT#710; - RETURN; - ELSIF hwIdLatchAndErrorClearControl = WORD#0 THEN - Status.Error.Id := UINT#711; - RETURN; - ELSIF hwIdCompletionClearControl = WORD#0 THEN - Status.Error.Id := UINT#712; - RETURN; - ELSIF hwIdCompletionClearControl = WORD#0 THEN - Status.Error.Id := UINT#713; - RETURN; - ELSIF hwIdParameterBankNumber = WORD#0 THEN - Status.Error.Id := UINT#714; - RETURN; - ELSIF hwIdUserData = WORD#0 THEN - Status.Error.Id := UINT#715; - RETURN; - END_IF; + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdHandshakeAndGeneralErrorStatus := TO_WORD(_outHwid); + IF _hwIdHandshakeAndGeneralErrorStatus = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdHandshakeAndGeneralErrorStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdBUSY_Status := TO_WORD(_outHwid); + IF _hwIdBUSY_Status = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdBUSY_Status , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 3*****************// + _geoAddr.Slot := UINT#3; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdCompletionStatus := TO_WORD(_outHwid); + IF _hwIdCompletionStatus = WORD#0 THEN + Messenger.Activate(UINT#730,eAxoMessageCategory#Error); + Status.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#731,eAxoMessageCategory#Error); + Status.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#732,eAxoMessageCategory#Error); + Status.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#733,eAxoMessageCategory#Error); + Status.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#734,eAxoMessageCategory#Error); + Status.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#735,eAxoMessageCategory#Error); + Status.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdCompletionStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#736,eAxoMessageCategory#Error); + Status.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 4*****************// + _geoAddr.Slot := UINT#4; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdErrorStatus := TO_WORD(_outHwid); + IF _hwIdErrorStatus = WORD#0 THEN + Messenger.Activate(UINT#740,eAxoMessageCategory#Error); + Status.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#741,eAxoMessageCategory#Error); + Status.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#742,eAxoMessageCategory#Error); + Status.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#743,eAxoMessageCategory#Error); + Status.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#744,eAxoMessageCategory#Error); + Status.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#745,eAxoMessageCategory#Error); + Status.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdErrorStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#746,eAxoMessageCategory#Error); + Status.Error.Id := UINT#746; + RETURN; + END_IF; + //******************Slot 5*****************// + _geoAddr.Slot := UINT#5; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdTerminalStatus := TO_WORD(_outHwid); + IF _hwIdTerminalStatus = WORD#0 THEN + Messenger.Activate(UINT#750,eAxoMessageCategory#Error); + Status.Error.Id := UINT#750; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#751,eAxoMessageCategory#Error); + Status.Error.Id := UINT#751; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#752,eAxoMessageCategory#Error); + Status.Error.Id := UINT#752; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#753,eAxoMessageCategory#Error); + Status.Error.Id := UINT#753; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#754,eAxoMessageCategory#Error); + Status.Error.Id := UINT#754; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#755,eAxoMessageCategory#Error); + Status.Error.Id := UINT#755; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdTerminalStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#756,eAxoMessageCategory#Error); + Status.Error.Id := UINT#756; + RETURN; + END_IF; + //******************Slot 6*****************// + _geoAddr.Slot := UINT#6; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUnstableReadStatus := TO_WORD(_outHwid); + IF _hwIdUnstableReadStatus = WORD#0 THEN + Messenger.Activate(UINT#760,eAxoMessageCategory#Error); + Status.Error.Id := UINT#760; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#761,eAxoMessageCategory#Error); + Status.Error.Id := UINT#761; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#762,eAxoMessageCategory#Error); + Status.Error.Id := UINT#762; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#763,eAxoMessageCategory#Error); + Status.Error.Id := UINT#763; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#764,eAxoMessageCategory#Error); + Status.Error.Id := UINT#764; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#765,eAxoMessageCategory#Error); + Status.Error.Id := UINT#765; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUnstableReadStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#1 THEN + Messenger.Activate(UINT#766,eAxoMessageCategory#Error); + Status.Error.Id := UINT#766; + RETURN; + END_IF; + //******************Slot 7*****************// + _geoAddr.Slot := UINT#7; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdMatchingLevelAndTotalEvaluationGradeStatus := TO_WORD(_outHwid); + IF _hwIdMatchingLevelAndTotalEvaluationGradeStatus = WORD#0 THEN + Messenger.Activate(UINT#770,eAxoMessageCategory#Error); + Status.Error.Id := UINT#770; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#771,eAxoMessageCategory#Error); + Status.Error.Id := UINT#771; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#772,eAxoMessageCategory#Error); + Status.Error.Id := UINT#772; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#773,eAxoMessageCategory#Error); + Status.Error.Id := UINT#773; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#774,eAxoMessageCategory#Error); + Status.Error.Id := UINT#774; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#775,eAxoMessageCategory#Error); + Status.Error.Id := UINT#775; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdMatchingLevelAndTotalEvaluationGradeStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#8 THEN + Messenger.Activate(UINT#776,eAxoMessageCategory#Error); + Status.Error.Id := UINT#776; + RETURN; + END_IF; + //******************Slot 8*****************// + _geoAddr.Slot := UINT#8; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdOperationalResultStatus := TO_WORD(_outHwid); + IF _hwIdOperationalResultStatus = WORD#0 THEN + Messenger.Activate(UINT#780,eAxoMessageCategory#Error); + Status.Error.Id := UINT#780; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#781,eAxoMessageCategory#Error); + Status.Error.Id := UINT#781; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#782,eAxoMessageCategory#Error); + Status.Error.Id := UINT#782; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#783,eAxoMessageCategory#Error); + Status.Error.Id := UINT#783; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#784,eAxoMessageCategory#Error); + Status.Error.Id := UINT#784; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#785,eAxoMessageCategory#Error); + Status.Error.Id := UINT#785; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdOperationalResultStatus , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#20 THEN + Messenger.Activate(UINT#786,eAxoMessageCategory#Error); + Status.Error.Id := UINT#786; + RETURN; + END_IF; + //******************Slot 9*****************// + _geoAddr.Slot := UINT#9; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdReadData := TO_WORD(_outHwid); + IF _hwIdReadData = WORD#0 THEN + Messenger.Activate(UINT#790,eAxoMessageCategory#Error); + Status.Error.Id := UINT#790; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#791,eAxoMessageCategory#Error); + Status.Error.Id := UINT#791; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#792,eAxoMessageCategory#Error); + Status.Error.Id := UINT#792; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#793,eAxoMessageCategory#Error); + Status.Error.Id := UINT#793; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#794,eAxoMessageCategory#Error); + Status.Error.Id := UINT#794; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#795,eAxoMessageCategory#Error); + Status.Error.Id := UINT#795; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdReadData , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#32 THEN + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_32B; + ELSIF _inputsCount = UINT#64 THEN + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_64B; + ELSIF _inputsCount = UINT#128 THEN + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_128B; + ELSIF _inputsCount = UINT#246 THEN + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_246B; + ELSE + Config.ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_SIZE_INVALID; + Messenger.Activate(UINT#796,eAxoMessageCategory#Error); + Status.Error.Id := UINT#796; + RETURN; + END_IF; + //******************Slot 10*****************// + _geoAddr.Slot := UINT#10; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdLatchAndErrorClearControl := TO_WORD(_outHwid); + IF _hwIdLatchAndErrorClearControl = WORD#0 THEN + Messenger.Activate(UINT#800,eAxoMessageCategory#Error); + Status.Error.Id := UINT#800; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#801,eAxoMessageCategory#Error); + Status.Error.Id := UINT#801; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#802,eAxoMessageCategory#Error); + Status.Error.Id := UINT#802; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#803,eAxoMessageCategory#Error); + Status.Error.Id := UINT#803; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#804,eAxoMessageCategory#Error); + Status.Error.Id := UINT#804; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#805,eAxoMessageCategory#Error); + Status.Error.Id := UINT#805; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdLatchAndErrorClearControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#806,eAxoMessageCategory#Error); + Status.Error.Id := UINT#806; + RETURN; + END_IF; + //******************Slot 11*****************// + _geoAddr.Slot := UINT#11; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdOperationInstructionControl := TO_WORD(_outHwid); + IF _hwIdOperationInstructionControl = WORD#0 THEN + Messenger.Activate(UINT#810,eAxoMessageCategory#Error); + Status.Error.Id := UINT#810; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#811,eAxoMessageCategory#Error); + Status.Error.Id := UINT#811; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#812,eAxoMessageCategory#Error); + Status.Error.Id := UINT#812; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#813,eAxoMessageCategory#Error); + Status.Error.Id := UINT#813; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#814,eAxoMessageCategory#Error); + Status.Error.Id := UINT#814; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#815,eAxoMessageCategory#Error); + Status.Error.Id := UINT#815; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdOperationInstructionControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#816,eAxoMessageCategory#Error); + Status.Error.Id := UINT#816; + RETURN; + END_IF; + //******************Slot 12*****************// + _geoAddr.Slot := UINT#12; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdCompletionClearControl := TO_WORD(_outHwid); + IF _hwIdCompletionClearControl = WORD#0 THEN + Messenger.Activate(UINT#820,eAxoMessageCategory#Error); + Status.Error.Id := UINT#820; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#821,eAxoMessageCategory#Error); + Status.Error.Id := UINT#821; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#822,eAxoMessageCategory#Error); + Status.Error.Id := UINT#822; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#823,eAxoMessageCategory#Error); + Status.Error.Id := UINT#823; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#824,eAxoMessageCategory#Error); + Status.Error.Id := UINT#824; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#825,eAxoMessageCategory#Error); + Status.Error.Id := UINT#825; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdCompletionClearControl , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#1 THEN + Messenger.Activate(UINT#826,eAxoMessageCategory#Error); + Status.Error.Id := UINT#826; + RETURN; + END_IF; + //******************Slot 13*****************// + _geoAddr.Slot := UINT#13; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdParameterBankNumber := TO_WORD(_outHwid); + IF _hwIdParameterBankNumber = WORD#0 THEN + Messenger.Activate(UINT#830,eAxoMessageCategory#Error); + Status.Error.Id := UINT#830; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#831,eAxoMessageCategory#Error); + Status.Error.Id := UINT#831; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#832,eAxoMessageCategory#Error); + Status.Error.Id := UINT#832; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#833,eAxoMessageCategory#Error); + Status.Error.Id := UINT#833; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#834,eAxoMessageCategory#Error); + Status.Error.Id := UINT#834; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#835,eAxoMessageCategory#Error); + Status.Error.Id := UINT#835; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdParameterBankNumber , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _outputsCount <> UINT#2 THEN + Messenger.Activate(UINT#836,eAxoMessageCategory#Error); + Status.Error.Id := UINT#836; + RETURN; + END_IF; + //******************Slot 14*****************// + _geoAddr.Slot := UINT#14; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdUserData := TO_WORD(_outHwid); + IF _hwIdUserData = WORD#0 THEN + Messenger.Activate(UINT#840,eAxoMessageCategory#Error); + Status.Error.Id := UINT#840; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#841,eAxoMessageCategory#Error); + Status.Error.Id := UINT#841; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#842,eAxoMessageCategory#Error); + Status.Error.Id := UINT#842; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#843,eAxoMessageCategory#Error); + Status.Error.Id := UINT#843; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#844,eAxoMessageCategory#Error); + Status.Error.Id := UINT#844; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#845,eAxoMessageCategory#Error); + Status.Error.Id := UINT#845; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdUserData , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount = UINT#32 THEN + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_32B; + ELSIF _inputsCount = UINT#64 THEN + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_64B; + ELSIF _inputsCount = UINT#128 THEN + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_128B; + ELSIF _inputsCount = UINT#252 THEN + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_252B; + ELSE + Config.UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_SIZE_INVALID; + Messenger.Activate(UINT#846,eAxoMessageCategory#Error); + Status.Error.Id := UINT#846; + RETURN; + END_IF; + + IF parent = NULL THEN + Messenger.Activate(UINT#1130,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1130; + RETURN; + END_IF; - _hwID := hwID; - _ResultDataSize := ResultDataSize; - _UserDataSize := UserDataSize; - _hwIdHandshakeAndGeneralErrorStatus := hwIdHandshakeAndGeneralErrorStatus; - _hwIdBUSY_Status := hwIdBUSY_Status; - _hwIdCompletionStatus := hwIdCompletionStatus; - _hwIdErrorStatus := hwIdErrorStatus; - _hwIdTerminalStatus := hwIdTerminalStatus; - _hwIdUnstableReadStatus := hwIdUnstableReadStatus; - _hwIdMatchingLevelAndTotalEvaluationGradeStatus := hwIdMatchingLevelAndTotalEvaluationGradeStatus; - _hwIdOperationalResultStatus := hwIdOperationalResultStatus; - _hwIdReadData := hwIdReadData; - _hwIdLatchAndErrorClearControl := hwIdLatchAndErrorClearControl; - _hwIdOperationInstructionControl := hwIdOperationInstructionControl; - _hwIdCompletionClearControl := hwIdCompletionClearControl; - _hwIdParameterBankNumber := hwIdParameterBankNumber; - _hwIdUserData := hwIdUserData; + IF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1131; + RETURN; + END_IF; + + IF _hwIdHandshakeAndGeneralErrorStatus = WORD#0 THEN + Messenger.Activate(UINT#1132,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1132; + RETURN; + END_IF; + + IF _hwIdBUSY_Status = WORD#0 THEN + Messenger.Activate(UINT#1133,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1133; + RETURN; + END_IF; + + IF _hwIdCompletionStatus = WORD#0 THEN + Messenger.Activate(UINT#1134,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1134; + RETURN; + END_IF; + + IF _hwIdErrorStatus = WORD#0 THEN + Messenger.Activate(UINT#1135,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1135; + RETURN; + END_IF; + + IF _hwIdTerminalStatus = WORD#0 THEN + Messenger.Activate(UINT#1136,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1136; + RETURN; + END_IF; + + IF _hwIdUnstableReadStatus = WORD#0 THEN + Messenger.Activate(UINT#1137,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1137; + RETURN; + END_IF; + + IF _hwIdMatchingLevelAndTotalEvaluationGradeStatus = WORD#0 THEN + Messenger.Activate(UINT#1138,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1138; + RETURN; + END_IF; + + IF _hwIdOperationalResultStatus = WORD#0 THEN + Messenger.Activate(UINT#1139,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1139; + RETURN; + END_IF; + + IF _hwIdReadData = WORD#0 THEN + Messenger.Activate(UINT#1140,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1140; + RETURN; + END_IF; + + IF _hwIdLatchAndErrorClearControl = WORD#0 THEN + Messenger.Activate(UINT#1141,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1141; + RETURN; + END_IF; + + IF _hwIdOperationInstructionControl = WORD#0 THEN + Messenger.Activate(UINT#1142,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1142; + RETURN; + END_IF; + + IF _hwIdCompletionClearControl = WORD#0 THEN + Messenger.Activate(UINT#1143,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1143; + RETURN; + END_IF; + + IF _hwIdParameterBankNumber = WORD#0 THEN + Messenger.Activate(UINT#1144,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1144; + RETURN; + END_IF; + + IF _hwIdUserData = WORD#0 THEN + Messenger.Activate(UINT#1145,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1145; + RETURN; + END_IF; + + + _initHwCheckDone := TRUE; + END_IF; //**************************************** //***********Update inputs *************** - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdHandshakeAndGeneralErrorStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#716,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#716; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdHandshakeAndGeneralErrorStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; @@ -348,10 +971,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision HandshakeAndGeneralErrorStatus.BufferOverflowError := _data_in[0].%X6; HandshakeAndGeneralErrorStatus.GeneralError := _data_in[0].%X7; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdBUSY_Status ,_data_in); - Messenger.ActivateOnCondition(ULINT#717,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#717; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdBUSY_Status ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1202, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1202; RETURN; END_IF; @@ -361,10 +984,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision BUSY_Status.MODE_BUSY := _data_in[0].%X3; BUSY_Status.ERR_BUSY := _data_in[0].%X4; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdCompletionStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#718,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#718; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdCompletionStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1203, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1203; RETURN; END_IF; @@ -374,10 +997,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision CompletionStatus.TuneComplete := _data_in[0].%X3; CompletionStatus.EXT_RequestComplete := _data_in[0].%X7; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdErrorStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#719,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#719; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdErrorStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1204, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1204; RETURN; END_IF; @@ -387,10 +1010,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision ErrorStatus.TuneFailure := _data_in[0].%X3; ErrorStatus.EXT_RequestFailure := _data_in[0].%X7; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdTerminalStatus,_data_in); - Messenger.ActivateOnCondition(ULINT#720,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#720; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdTerminalStatus,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1205, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1205; RETURN; END_IF; @@ -400,10 +1023,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision TerminalStatus.OUT2_Status := _data_in[0].%X5; TerminalStatus.OUT3_Status := _data_in[0].%X6; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdUnstableReadStatus,_data_in); - Messenger.ActivateOnCondition(ULINT#721,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#721; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdUnstableReadStatus,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1206, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1206; RETURN; END_IF; @@ -413,10 +1036,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision UnstableReadStatus.ISO_IEC_TR_29158_Unstable := _data_in[0].%X3; UnstableReadStatus.SAE_AS9132_Unstable := _data_in[0].%X4; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdMatchingLevelAndTotalEvaluationGradeStatus ,_data_in); - Messenger.ActivateOnCondition(ULINT#722,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#722; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdMatchingLevelAndTotalEvaluationGradeStatus ,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1207, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1207; RETURN; END_IF; @@ -433,13 +1056,12 @@ NAMESPACE AXOpen.Components.Keyence.Vision _word.%B0 := _data_in[7]; MatchingLevelAndTotalEvaluationGradeStatus._Reserved := TO_UINT(_word); - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdOperationalResultStatus,_data_in); - Messenger.ActivateOnCondition(ULINT#723,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#723; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdOperationalResultStatus,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1208, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1208; RETURN; END_IF; - _word.%B1 := _data_in[0]; _word.%B0 := _data_in[1]; OperationalResultStatus.ReadResultCode := TO_UINT(_word); @@ -471,27 +1093,24 @@ NAMESPACE AXOpen.Components.Keyence.Vision _word.%B0 := _data_in[19]; OperationalResultStatus._Reserved_3 := TO_UINT(_word); - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdReadData,_data_in); - Messenger.ActivateOnCondition(ULINT#724,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#724; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData( _hwIdReadData,_data_in); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1209, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1209; RETURN; END_IF; - _invalidDataSize := NOT ( _ResultDataSize = eAxo_SR_750_ResultDataSize#RESULT_DATA_32B OR - _ResultDataSize = eAxo_SR_750_ResultDataSize#RESULT_DATA_64B OR - _ResultDataSize = eAxo_SR_750_ResultDataSize#RESULT_DATA_128B OR - _ResultDataSize = eAxo_SR_750_ResultDataSize#RESULT_DATA_246B); - - Messenger.ActivateOnCondition(ULINT#725,_invalidDataSize, eAxoMessageCategory#ProgrammingError); + _invalidDataSize := NOT ( Config.ResultDataSize = eAxo_SR_750_ResultDataSize#RESULT_DATA_32B OR + Config.ResultDataSize = eAxo_SR_750_ResultDataSize#RESULT_DATA_64B OR + Config.ResultDataSize = eAxo_SR_750_ResultDataSize#RESULT_DATA_128B OR + Config.ResultDataSize = eAxo_SR_750_ResultDataSize#RESULT_DATA_246B); IF _invalidDataSize THEN - Status.Error.Id := UINT#725; + Messenger.Activate(UINT#1210, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1210; RETURN; END_IF; - Config.ResultDataSize := _ResultDataSize; - _word.%B1 := _data_in[0]; _word.%B0 := _data_in[1]; ReadData.ResultDataReadyCount := TO_UINT(_word); @@ -545,9 +1164,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 330 THEN // ClearResultDataTask running, reset outputs - TaskMessenger.ActivateOnCondition(ULINT#530, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#530; + TaskMessenger.Activate( UINT#530, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#530; END_IF; LatchAndErrorClearControl.ResultDataLatch := FALSE; @@ -577,9 +1196,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 331 THEN // ClearResultDataTask running, clear error flag - TaskMessenger.ActivateOnCondition(ULINT#531, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#531; + TaskMessenger.Activate( UINT#531, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#531; END_IF; LatchAndErrorClearControl.ErrorClear := HandshakeAndGeneralErrorStatus.Error; @@ -591,9 +1210,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 332 THEN // ClearResultDataTask running, clear read complete flag - TaskMessenger.ActivateOnCondition(ULINT#532, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#532; + TaskMessenger.Activate( UINT#532, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#532; END_IF; CompletionClearControl.ReadCompleteClear := CompletionStatus.ReadComplete; @@ -605,9 +1224,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 333 THEN //ClearResultDataTask running, clear preset complete flag - TaskMessenger.ActivateOnCondition(ULINT#533, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#533; + TaskMessenger.Activate( UINT#533, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#533; END_IF; CompletionClearControl.PresetCompleteClear := CompletionStatus.PresetComplete; @@ -619,9 +1238,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 334 THEN // ClearResultDataTask running, clear register preset data complete flag - TaskMessenger.ActivateOnCondition(ULINT#534, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#534; + TaskMessenger.Activate( UINT#534, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#534; END_IF; CompletionClearControl.RegisterPresetDataCompleteClear := CompletionStatus.RegisterPresetDataComplete; @@ -633,9 +1252,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 335 THEN // ClearResultDataTask running, clear tune complete flag - TaskMessenger.ActivateOnCondition(ULINT#535, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#535; + TaskMessenger.Activate( UINT#535, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#535; END_IF; CompletionClearControl.TuneCompleteClear := CompletionStatus.TuneComplete; @@ -647,9 +1266,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 336 THEN // ClearResultDataTask running, clear external request complete flag - TaskMessenger.ActivateOnCondition(ULINT#536, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#536; + TaskMessenger.Activate( UINT#536, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#536; END_IF; CompletionClearControl.EXT_RequestCompleteClear := CompletionStatus.EXT_RequestComplete; @@ -661,9 +1280,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 337 THEN // ClearResultDataTask running, waiting for general error flag is reseted - TaskMessenger.ActivateOnCondition(ULINT#537, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#537; + TaskMessenger.Activate( UINT#537, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#537; END_IF; IF NOT HandshakeAndGeneralErrorStatus.GeneralError THEN @@ -673,9 +1292,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 338 THEN // ClearResultDataTask running, - TaskMessenger.ActivateOnCondition(ULINT#538, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#538; + TaskMessenger.Activate( UINT#538, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#538; END_IF; IF TRUE THEN @@ -686,6 +1305,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision IF _progress = 339 THEN // ClearResultDataTask finished ClearResultDataTask.DoneWhen(TRUE); + _progress := 0; END_IF; THIS.CallTimers(TRUE); @@ -697,14 +1317,14 @@ NAMESPACE AXOpen.Components.Keyence.Vision Status.Action.Id := UINT#131; Status.Error.Id := UINT#0; ELSIF ClearResultDataTask.ErrorOccured() THEN - Status.Action.Id := UINT#830; - Status.Error.Id := UINT#830; + Status.Action.Id := UINT#10030; + Status.Error.Id := UINT#10030; ELSIF ClearResultDataTask.AbortTriggered()THEN - Status.Action.Id := UINT#831; - Status.Error.Id := UINT#831; + Status.Action.Id := UINT#10031; + Status.Error.Id := UINT#10031; END_IF; - Messenger.ActivateOnCondition(ULINT#830,ClearResultDataTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#831,ClearResultDataTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10030,ClearResultDataTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10031,ClearResultDataTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#132,ClearResultDataTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ClearResultDataTask.RestoreTriggered() AND _progress >= 330 AND _progress <= 339 THEN Status.Action.Id := UINT#132; @@ -728,9 +1348,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 380 THEN // ReadTask running, reset outputs - TaskMessenger.ActivateOnCondition(ULINT#580, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#580; + TaskMessenger.Activate( UINT#580, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#580; END_IF; LatchAndErrorClearControl.ResultDataLatch := FALSE; @@ -760,9 +1380,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 381 THEN // ReadTask running, clear error flag - TaskMessenger.ActivateOnCondition(ULINT#581, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#581; + TaskMessenger.Activate( UINT#581, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#581; END_IF; LatchAndErrorClearControl.ErrorClear := HandshakeAndGeneralErrorStatus.Error; @@ -774,9 +1394,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 382 THEN // ReadTask running, clear read complete flag - TaskMessenger.ActivateOnCondition(ULINT#582, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#582; + TaskMessenger.Activate( UINT#582, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#582; END_IF; CompletionClearControl.ReadCompleteClear := CompletionStatus.ReadComplete; @@ -788,9 +1408,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 383 THEN // ReadTask running, clear preset complete flag - TaskMessenger.ActivateOnCondition(ULINT#583, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#583; + TaskMessenger.Activate( UINT#583, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#583; END_IF; CompletionClearControl.PresetCompleteClear := CompletionStatus.PresetComplete; @@ -802,9 +1422,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 384 THEN // ReadTask running, clear register preset data complete flag - TaskMessenger.ActivateOnCondition(ULINT#584, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#584; + TaskMessenger.Activate( UINT#584, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#584; END_IF; CompletionClearControl.RegisterPresetDataCompleteClear := CompletionStatus.RegisterPresetDataComplete; @@ -816,9 +1436,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 385 THEN // ReadTask running, clear tune complete flag - TaskMessenger.ActivateOnCondition(ULINT#585, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#585; + TaskMessenger.Activate( UINT#585, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#585; END_IF; CompletionClearControl.TuneCompleteClear := CompletionStatus.TuneComplete; @@ -830,9 +1450,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 386 THEN // ReadTask running, clear external request complete flag - TaskMessenger.ActivateOnCondition(ULINT#586, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#586; + TaskMessenger.Activate( UINT#586, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#586; END_IF; CompletionClearControl.EXT_RequestCompleteClear := CompletionStatus.EXT_RequestComplete; @@ -844,9 +1464,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 387 THEN // ReadTask running, waiting for general error flag is reseted - TaskMessenger.ActivateOnCondition(ULINT#587, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#587; + TaskMessenger.Activate( UINT#587, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#587; END_IF; IF NOT HandshakeAndGeneralErrorStatus.GeneralError THEN @@ -856,9 +1476,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 388 THEN // ReadTask running, setting bank number - TaskMessenger.ActivateOnCondition(ULINT#735, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#735; + TaskMessenger.Activate( UINT#588, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#588; END_IF; IF _Bank>=UINT#0 AND _Bank <=UINT#10 THEN @@ -869,9 +1489,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 389 THEN // ReadTask running, starting trigger - TaskMessenger.ActivateOnCondition(ULINT#589, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#589; + TaskMessenger.Activate( UINT#589, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#589; END_IF; OperationInstructionControl.ReadRequest := TRUE; @@ -888,9 +1508,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 390 THEN // ReadTask running, waiting for data - TaskMessenger.ActivateOnCondition(ULINT#590, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#590; + TaskMessenger.Activate( UINT#590, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#590; END_IF; IF ReadData.ResultDataReadyCount >_prevResultDataReadyCount THEN @@ -900,9 +1520,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 391 THEN // ReadTask running, acknowledging results - TaskMessenger.ActivateOnCondition(ULINT#591, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#591; + TaskMessenger.Activate( UINT#591, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#591; END_IF; CompletionClearControl.ReadCompleteClear := TRUE; @@ -913,9 +1533,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 392 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#592, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#592; + TaskMessenger.Activate( UINT#592, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#592; END_IF; IF TRUE THEN @@ -924,9 +1544,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 393 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#593, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#593; + TaskMessenger.Activate( UINT#593, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#593; END_IF; IF TRUE THEN @@ -935,9 +1555,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 394 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#594, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#594; + TaskMessenger.Activate( UINT#594, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#594; END_IF; IF TRUE THEN @@ -946,9 +1566,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 395 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#595, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#595; + TaskMessenger.Activate( UINT#595, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#595; END_IF; IF TRUE THEN @@ -957,9 +1577,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 396 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#596, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#596; + TaskMessenger.Activate( UINT#596, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#596; END_IF; IF TRUE THEN @@ -968,9 +1588,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 397 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#597, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#597; + TaskMessenger.Activate( UINT#597, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#597; END_IF; IF TRUE THEN @@ -979,9 +1599,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 398 THEN // ReadTask running, - TaskMessenger.ActivateOnCondition(ULINT#598, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#598; + TaskMessenger.Activate( UINT#598, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#598; END_IF; IF TRUE THEN @@ -991,6 +1611,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision IF _progress = 399 THEN // ReadTask finished ReadTask.DoneWhen(TRUE); + _progress := 0; END_IF; THIS.CallTimers(TRUE); @@ -1002,14 +1623,14 @@ NAMESPACE AXOpen.Components.Keyence.Vision Status.Action.Id := UINT#181; Status.Error.Id := UINT#0; ELSIF ReadTask.ErrorOccured() THEN - Status.Action.Id := UINT#880; - Status.Error.Id := UINT#880; + Status.Action.Id := UINT#10080; + Status.Error.Id := UINT#10080; ELSIF ReadTask.AbortTriggered()THEN - Status.Action.Id := UINT#881; - Status.Error.Id := UINT#881; + Status.Action.Id := UINT#10081; + Status.Error.Id := UINT#10081; END_IF; - Messenger.ActivateOnCondition(ULINT#880,ReadTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#881,ReadTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10080,ReadTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10081,ReadTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#182,ReadTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ReadTask.RestoreTriggered() AND _progress >= 380 AND _progress <= 399 THEN Status.Action.Id := UINT#182; @@ -1033,9 +1654,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 400 THEN // TuneTask running, reset outputs - TaskMessenger.ActivateOnCondition(ULINT#600, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#600; + TaskMessenger.Activate( UINT#600, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#600; END_IF; LatchAndErrorClearControl.ResultDataLatch := FALSE; @@ -1065,9 +1686,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 401 THEN // TuneTask running, clear error flag - TaskMessenger.ActivateOnCondition(ULINT#601, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#601; + TaskMessenger.Activate( UINT#601, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#601; END_IF; LatchAndErrorClearControl.ErrorClear := HandshakeAndGeneralErrorStatus.Error; @@ -1079,9 +1700,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 402 THEN // TuneTask running, clear read complete flag - TaskMessenger.ActivateOnCondition(ULINT#602, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#602; + TaskMessenger.Activate( UINT#602, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#602; END_IF; CompletionClearControl.ReadCompleteClear := CompletionStatus.ReadComplete; @@ -1093,9 +1714,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 403 THEN // TuneTask running, clear preset complete flag - TaskMessenger.ActivateOnCondition(ULINT#603, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#603; + TaskMessenger.Activate( UINT#603, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#603; END_IF; CompletionClearControl.PresetCompleteClear := CompletionStatus.PresetComplete; @@ -1107,9 +1728,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 404 THEN // TuneTask running, clear register preset data complete flag - TaskMessenger.ActivateOnCondition(ULINT#604, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#604; + TaskMessenger.Activate( UINT#604, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#604; END_IF; CompletionClearControl.RegisterPresetDataCompleteClear := CompletionStatus.RegisterPresetDataComplete; @@ -1121,9 +1742,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 405 THEN // TuneTask running, clear tune complete flag - TaskMessenger.ActivateOnCondition(ULINT#605, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#605; + TaskMessenger.Activate( UINT#605, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#605; END_IF; CompletionClearControl.TuneCompleteClear := CompletionStatus.TuneComplete; @@ -1135,9 +1756,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 406 THEN // TuneTask running, clear external request complete flag - TaskMessenger.ActivateOnCondition(ULINT#606, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#606; + TaskMessenger.Activate( UINT#606, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#606; END_IF; CompletionClearControl.EXT_RequestCompleteClear := CompletionStatus.EXT_RequestComplete; @@ -1149,9 +1770,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 407 THEN // TuneTask running, waiting for general error flag is reseted - TaskMessenger.ActivateOnCondition(ULINT#607, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#607; + TaskMessenger.Activate( UINT#607, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#607; END_IF; IF NOT HandshakeAndGeneralErrorStatus.GeneralError THEN @@ -1161,9 +1782,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 408 THEN // TuneTask running, setting bank number - TaskMessenger.ActivateOnCondition(ULINT#735, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#735; + TaskMessenger.Activate( UINT#608, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#608; END_IF; IF _Bank>=UINT#0 AND _Bank <=UINT#10 THEN @@ -1174,11 +1795,11 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 409 THEN // TuneTask running, starting tune process - TaskMessenger.ActivateOnCondition(ULINT#609, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#609; + TaskMessenger.Activate( UINT#609, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#609; END_IF; - + OperationInstructionControl.TuneRequest := TRUE; IF CompletionStatus.TuneComplete THEN OperationInstructionControl.TuneRequest := FALSE; @@ -1192,9 +1813,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 410 THEN // TuneTask running, acknowledging tunning process - TaskMessenger.ActivateOnCondition(ULINT#610, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#610; + TaskMessenger.Activate( UINT#610, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#610; END_IF; CompletionClearControl.TuneCompleteClear := TRUE; @@ -1205,9 +1826,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 411 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#611, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#611; + TaskMessenger.Activate( UINT#611, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#611; END_IF; IF TRUE THEN @@ -1216,9 +1837,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 412 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#612, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#612; + TaskMessenger.Activate( UINT#612, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#612; END_IF; IF TRUE THEN @@ -1227,9 +1848,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 413 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#613, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#613; + TaskMessenger.Activate( UINT#613, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#613; END_IF; IF TRUE THEN @@ -1238,9 +1859,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 414 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#614, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#614; + TaskMessenger.Activate( UINT#614, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#614; END_IF; IF TRUE THEN @@ -1249,9 +1870,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 415 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#615, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#615; + TaskMessenger.Activate( UINT#615, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#615; END_IF; IF TRUE THEN @@ -1260,9 +1881,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 416 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#616, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#616; + TaskMessenger.Activate( UINT#616, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#616; END_IF; IF TRUE THEN @@ -1271,9 +1892,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 417 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#617, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#617; + TaskMessenger.Activate( UINT#617, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#617; END_IF; IF TRUE THEN @@ -1282,9 +1903,9 @@ NAMESPACE AXOpen.Components.Keyence.Vision END_IF; IF _progress = 418 THEN // TuneTask running, - TaskMessenger.ActivateOnCondition(ULINT#618, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - Status.Error.Id := UINT#618; + TaskMessenger.Activate( UINT#618, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#618; END_IF; IF TRUE THEN @@ -1294,6 +1915,7 @@ NAMESPACE AXOpen.Components.Keyence.Vision IF _progress = 419 THEN // TuneTask finished TuneTask.DoneWhen(TRUE); + _progress := 0; END_IF; THIS.CallTimers(TRUE); @@ -1305,14 +1927,14 @@ NAMESPACE AXOpen.Components.Keyence.Vision Status.Action.Id := UINT#201; Status.Error.Id := UINT#0; ELSIF TuneTask.ErrorOccured() THEN - Status.Action.Id := UINT#900; - Status.Error.Id := UINT#900; + Status.Action.Id := UINT#10100; + Status.Error.Id := UINT#10100; ELSIF TuneTask.AbortTriggered()THEN - Status.Action.Id := UINT#901; - Status.Error.Id := UINT#901; + Status.Action.Id := UINT#10101; + Status.Error.Id := UINT#10101; END_IF; - Messenger.ActivateOnCondition(ULINT#900,TuneTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#901,TuneTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10100,TuneTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10101,TuneTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#202,TuneTask.RestoreTriggered() , eAxoMessageCategory#Error); IF TuneTask.RestoreTriggered() AND _progress >= 400 AND _progress <= 419 THEN Status.Action.Id := UINT#202; @@ -1324,10 +1946,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision _data_1[0].%X1 := LatchAndErrorClearControl.ResultDataLatch; _data_1[0].%X7 := LatchAndErrorClearControl.ErrorClear; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdLatchAndErrorClearControl,_data_1); - Messenger.ActivateOnCondition(ULINT#726,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#726; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdLatchAndErrorClearControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; END_IF; @@ -1336,10 +1958,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision _data_1[0].%X2 := OperationInstructionControl.RegisterPresetDataRequest; _data_1[0].%X3 := OperationInstructionControl.TuneRequest; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdOperationInstructionControl,_data_1); - Messenger.ActivateOnCondition(ULINT#727,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#727; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdOperationInstructionControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1232, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1232; RETURN; END_IF; @@ -1349,38 +1971,35 @@ NAMESPACE AXOpen.Components.Keyence.Vision _data_1[0].%X3 := CompletionClearControl.TuneCompleteClear; _data_1[0].%X7 := CompletionClearControl.EXT_RequestCompleteClear; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdCompletionClearControl,_data_1); - Messenger.ActivateOnCondition(ULINT#728,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#728; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdCompletionClearControl,_data_1); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1233, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1233; RETURN; END_IF; _data_2[1] := TO_WORD(ParameterBankNumber.BankNumberRegister).%B0; _data_2[0] := TO_WORD(ParameterBankNumber.BankNumberRegister).%B1; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdParameterBankNumber,_data_2); - Messenger.ActivateOnCondition(ULINT#729,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#729; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdParameterBankNumber,_data_2); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1234, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1234; RETURN; END_IF; - _invalidDataSize := NOT (_UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_32B OR - _UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_64B OR - _UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_128B OR - _UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_252B); - - Messenger.ActivateOnCondition(ULINT#730,_invalidDataSize, eAxoMessageCategory#ProgrammingError); + _invalidDataSize := NOT ( Config.UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_32B OR + Config.UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_64B OR + Config.UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_128B OR + Config.UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_252B); IF _invalidDataSize THEN - Status.Error.Id := UINT#730; + Messenger.Activate(UINT#1235, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1235; RETURN; END_IF; - Config.UserDataSize := _UserDataSize; - IF (UserData.DataChanged <> _UserDataChanged) THEN IF Config.UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_32B THEN _data_34[1] := TO_WORD(User.UserDataSize).%B0; @@ -1388,10 +2007,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision FOR _index := 2 TO 33 DO _data_34[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_34); - Messenger.ActivateOnCondition(ULINT#731,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#731; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_34); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1236, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1236; RETURN; END_IF; ELSIF Config.UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_64B THEN @@ -1400,10 +2019,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision FOR _index := 2 TO 65 DO _data_66[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_66); - Messenger.ActivateOnCondition(ULINT#732,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#732; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_66); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1237, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1237; RETURN; END_IF; ELSIF Config.UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_128B THEN @@ -1412,10 +2031,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision FOR _index := 2 TO 129 DO _data_130[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_130); - Messenger.ActivateOnCondition(ULINT#733,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#733; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_130); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1238, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1238; RETURN; END_IF; ELSIF Config.UserDataSize = eAxo_SR_750_UserDataSize#USER_DATA_252B THEN @@ -1424,10 +2043,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision FOR _index := 2 TO 253 DO _data_254[_index] := UserData.Data[_index]; END_FOR; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_254); - Messenger.ActivateOnCondition(ULINT#734,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - Status.Error.Id := UINT#734; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdUserData ,_data_254); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1239, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1239; RETURN; END_IF; END_IF; diff --git a/src/components.keyence.vision/ctrl/src/Axo_SR_750_Datatypes/Axo_SR_750_Config.st b/src/components.keyence.vision/ctrl/src/Axo_SR_750_Datatypes/Axo_SR_750_Config.st index 866f4c2ec..2990f15f3 100644 --- a/src/components.keyence.vision/ctrl/src/Axo_SR_750_Datatypes/Axo_SR_750_Config.st +++ b/src/components.keyence.vision/ctrl/src/Axo_SR_750_Datatypes/Axo_SR_750_Config.st @@ -11,8 +11,10 @@ NAMESPACE AXOpen.Components.Keyence.Vision {#ix-set:AttributeName = "<#Error time#>"} ErrorTime : LTIME := LT#5S; {#ix-set:AttributeName = "<#Result data size#>"} + {S7.extern=ReadOnly} ResultDataSize : eAxo_SR_750_ResultDataSize := eAxo_SR_750_ResultDataSize#RESULT_DATA_SIZE_INVALID; {#ix-set:AttributeName = "<#User data size#>"} + {S7.extern=ReadOnly} UserDataSize : eAxo_SR_750_UserDataSize := eAxo_SR_750_UserDataSize#USER_DATA_SIZE_INVALID; END_STRUCT; END_TYPE diff --git a/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_1000/Axo_SR_1000.cs b/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_1000/Axo_SR_1000.cs index 701d6dfcf..317e01c61 100644 --- a/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_1000/Axo_SR_1000.cs +++ b/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_1000/Axo_SR_1000.cs @@ -90,85 +90,250 @@ private void InitializeMessenger() //new KeyValuePair(260, new AxoMessengerTextItem("TemplateTask_20steps_5 started.","")), //new KeyValuePair(261, new AxoMessengerTextItem("TemplateTask_20steps_5 finished succesfully.","")), //new KeyValuePair(262, new AxoMessengerTextItem("TemplateTask_20steps_5 restored.","")), - // General alarm - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwID` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwID` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("Input variable `hwIdHandshakeAndGeneralErrorStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdHandshakeAndGeneralErrorStatus` parameter is assigned.")), - new KeyValuePair(703, new AxoMessengerTextItem("Input variable `hwIdBUSY_Status` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdBUSY_Status` parameter is assigned.")), - new KeyValuePair(704, new AxoMessengerTextItem("Input variable `hwIdCompletionStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdCompletionStatus` parameter is assigned.")), - new KeyValuePair(705, new AxoMessengerTextItem("Input variable `hwIdErrorStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdErrorStatus` parameter is assigned.")), - new KeyValuePair(706, new AxoMessengerTextItem("Input variable `hwIdTerminalStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdTerminalStatus` parameter is assigned.")), - new KeyValuePair(707, new AxoMessengerTextItem("Input variable `hwIdUnstableReadStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdUnstableReadStatus` parameter is assigned.")), - new KeyValuePair(708, new AxoMessengerTextItem("Input variable `hwIdMatchingLevelAndTotalEvaluationGradeStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdMatchingLevelAndTotalEvaluationGradeStatus` parameter is assigned.")), - new KeyValuePair(709, new AxoMessengerTextItem("Input variable `hwIdOperationalResultStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdOperationalResultStatus` parameter is assigned.")), - new KeyValuePair(710, new AxoMessengerTextItem("Input variable `hwIdReadData` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdReadData` parameter is assigned.")), - new KeyValuePair(711, new AxoMessengerTextItem("Input variable `hwIdLatchAndErrorClearControlBitReg` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdLatchAndErrorClearControlBitReg` parameter is assigned.")), - new KeyValuePair(712, new AxoMessengerTextItem("Input variable `hwIdOperationInstructionControl` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdOperationInstructionControl` parameter is assigned.")), - new KeyValuePair(713, new AxoMessengerTextItem("Input variable `hwIdCompletionClearControl` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdCompletionClearControl` parameter is assigned.")), - new KeyValuePair(714, new AxoMessengerTextItem("Input variable `hwIdParameterBankNumber` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdParameterBankNumber` parameter is assigned.")), - new KeyValuePair(715, new AxoMessengerTextItem("Input variable `hwIdUserData` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdUserData` parameter is assigned.")), + // General alarms + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwIdHandshakeAndGeneralErrorStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'HandshakeAndGeneralErrorStatus' (GsdId=101)." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of hwIdBUSY_Status is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'BUSY_Status' (GsdId=102)." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of hwIdCompletionStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'CompletionStatus '(GsdId=103)." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of hwIdErrorStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'ErrorStatus' (GsdId=104)." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of hwIdTerminalStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'TerminalStatus' (GsdId=105)." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of hwIdUnstableReadStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 6. Expected module: 'UnstableReadStatus' (GsdId=106)." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of hwIdMatchingLevelAndTotalEvaluationGradeStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'MatchingLevelAndTotalEvaluationGradeStatus' (GsdId=107)." ,"Check the hardware configuration.")), + + new KeyValuePair(780, new AxoMessengerTextItem("Hw configuration error. Value of hwIdOperationalResultStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(781, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(782, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(783, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(784, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(785, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(786, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 8. Expected module: 'OperationalResultStatus' (GsdId=108)." ,"Check the hardware configuration.")), + + new KeyValuePair(790, new AxoMessengerTextItem("Hw configuration error. Value of hwIdReadData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(791, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(792, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(793, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(794, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(795, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(796, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 9. Expected module: 'Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes' (GsdId=109,110,111,112)." ,"Check the hardware configuration.")), + + new KeyValuePair(800, new AxoMessengerTextItem("Hw configuration error. Value of hwIdLatchAndErrorClearControlBitReg is zero." ,"Check the hardware configuration.")), + new KeyValuePair(801, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(802, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(803, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(804, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(805, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(806, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 10. Expected module: 'LatchAndErrorClearControlBitReg' (GsdId=201)." ,"Check the hardware configuration.")), + + new KeyValuePair(810, new AxoMessengerTextItem("Hw configuration error. Value of hwIdOperationInstructionControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(811, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(812, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(813, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(814, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(815, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(816, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 11. Expected module: 'OperationInstructionControl' (GsdId=202)." ,"Check the hardware configuration.")), + + new KeyValuePair(820, new AxoMessengerTextItem("Hw configuration error. Value of hwIdCompletionClearControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(821, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(822, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(823, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(824, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(825, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(826, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 12. Expected module: 'CompletionClearControl' (GsdId=203)." ,"Check the hardware configuration.")), + + new KeyValuePair(830, new AxoMessengerTextItem("Hw configuration error. Value of hwIdParameterBankNumber is zero." ,"Check the hardware configuration.")), + new KeyValuePair(831, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(832, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(833, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(834, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(835, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(836, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 13. Expected module: 'ParameterBankNumber' (GsdId=204)." ,"Check the hardware configuration.")), + + new KeyValuePair(840, new AxoMessengerTextItem("Hw configuration error. Value of hwIdUserData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(841, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(842, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(843, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(844, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(845, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(846, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 14. Allowed modules: 'User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-250_bytes' (GsdId=205,206,207,208)." ,"Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwIdHandshakeAndGeneralErrorStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdHandshakeAndGeneralErrorStatus` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `hwIdBUSY_Status` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdBUSY_Status` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `hwIdCompletionStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdCompletionStatus` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `hwIdErrorStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdErrorStatus` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `hwIdTerminalStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdTerminalStatus` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `hwIdUnstableReadStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdUnstableReadStatus` parameter is assigned.")), + new KeyValuePair(1138, new AxoMessengerTextItem("Input variable `hwIdMatchingLevelAndTotalEvaluationGradeStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdMatchingLevelAndTotalEvaluationGradeStatus` parameter is assigned.")), + new KeyValuePair(1139, new AxoMessengerTextItem("Input variable `hwIdOperationalResultStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdOperationalResultStatus` parameter is assigned.")), + new KeyValuePair(1140, new AxoMessengerTextItem("Input variable `hwIdReadData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdReadData` parameter is assigned.")), + new KeyValuePair(1141, new AxoMessengerTextItem("Input variable `hwIdLatchAndErrorClearControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdLatchAndErrorClearControl` parameter is assigned.")), + new KeyValuePair(1142, new AxoMessengerTextItem("Input variable `hwIdOperationInstructionControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdOperationInstructionControl` parameter is assigned.")), + new KeyValuePair(1143, new AxoMessengerTextItem("Input variable `hwIdCompletionClearControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdCompletionClearControl` parameter is assigned.")), + new KeyValuePair(1144, new AxoMessengerTextItem("Input variable `hwIdParameterBankNumber` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdParameterBankNumber` parameter is assigned.")), + new KeyValuePair(1145, new AxoMessengerTextItem("Input variable `hwIdUserData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdUserData` parameter is assigned.")), + //new KeyValuePair(1146, new AxoMessengerTextItem("Input variable `hwID_in_15` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_15` parameter is assigned.")), + //new KeyValuePair(1147, new AxoMessengerTextItem("Input variable `hwID_in_16` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_16` parameter is assigned.")), + //new KeyValuePair(1148, new AxoMessengerTextItem("Input variable `hwID_in_17` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_17` parameter is assigned.")), + //new KeyValuePair(1149, new AxoMessengerTextItem("Input variable `hwID_in_18` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_18` parameter is assigned.")), + //new KeyValuePair(1150, new AxoMessengerTextItem("Input variable `hwID_in_19` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_19` parameter is assigned.")), + //new KeyValuePair(1151, new AxoMessengerTextItem("Input variable `hwID_in_20` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_20` parameter is assigned.")), + //new KeyValuePair(1152, new AxoMessengerTextItem("Input variable `hwID_out_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_1` parameter is assigned.")), + //new KeyValuePair(1153, new AxoMessengerTextItem("Input variable `hwID_out_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_2` parameter is assigned.")), + //new KeyValuePair(1154, new AxoMessengerTextItem("Input variable `hwID_out_3` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_3` parameter is assigned.")), + //new KeyValuePair(1155, new AxoMessengerTextItem("Input variable `hwID_out_4` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_4` parameter is assigned.")), + //new KeyValuePair(1156, new AxoMessengerTextItem("Input variable `hwID_out_5` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_5` parameter is assigned.")), + //new KeyValuePair(1157, new AxoMessengerTextItem("Input variable `hwID_out_6` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_6` parameter is assigned.")), + //new KeyValuePair(1158, new AxoMessengerTextItem("Input variable `hwID_out_7` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_7` parameter is assigned.")), + //new KeyValuePair(1159, new AxoMessengerTextItem("Input variable `hwID_out_8` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_8` parameter is assigned.")), + //new KeyValuePair(1160, new AxoMessengerTextItem("Input variable `hwID_out_9` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_9` parameter is assigned.")), + //new KeyValuePair(1161, new AxoMessengerTextItem("Input variable `hwID_out_10` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_10` parameter is assigned.")), + //new KeyValuePair(1162, new AxoMessengerTextItem("Input variable `hwID_out_11` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_11` parameter is assigned.")), + //new KeyValuePair(1163, new AxoMessengerTextItem("Input variable `hwID_out_12` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_12` parameter is assigned.")), + //new KeyValuePair(1164, new AxoMessengerTextItem("Input variable `hwID_out_13` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_13` parameter is assigned.")), + //new KeyValuePair(1165, new AxoMessengerTextItem("Input variable `hwID_out_14` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_14` parameter is assigned.")), + //new KeyValuePair(1166, new AxoMessengerTextItem("Input variable `hwID_out_15` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_15` parameter is assigned.")), + //new KeyValuePair(1167, new AxoMessengerTextItem("Input variable `hwID_out_16` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_16` parameter is assigned.")), + //new KeyValuePair(1168, new AxoMessengerTextItem("Input variable `hwID_out_17` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_17` parameter is assigned.")), + //new KeyValuePair(1169, new AxoMessengerTextItem("Input variable `hwID_out_18` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_18` parameter is assigned.")), + //new KeyValuePair(1170, new AxoMessengerTextItem("Input variable `hwID_out_19` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_19` parameter is assigned.")), + //new KeyValuePair(1171, new AxoMessengerTextItem("Input variable `hwID_out_20` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_20` parameter is assigned.")), + + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the HandshakeAndGeneralErrorStatus!" ,"Check the value of the hwIdHandshakeAndGeneralErrorStatus and reacheability of the device!")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the BUSY_Status!" ,"Check the value of the hwIdBUSY_Status and reacheability of the device!")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the CompletionStatus!" ,"Check the value of the hwIdCompletionStatus and reacheability of the device!")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the ErrorStatus!" ,"Check the value of the hwIdErrorStatus and reacheability of the device!")), + new KeyValuePair(1205, new AxoMessengerTextItem("Error reading the TerminalStatus!" ,"Check the value of the hwIdTerminalStatus and reacheability of the device!")), + new KeyValuePair(1206, new AxoMessengerTextItem("Error reading the UnstableReadStatus!" ,"Check the value of the hwIdUnstableReadStatus and reacheability of the device!")), + new KeyValuePair(1207, new AxoMessengerTextItem("Error reading the MatchingLevelAndTotalEvaluationGradeStatus!" ,"Check the value of the hwIdMatchingLevelAndTotalEvaluationGradeStatus and reacheability of the device!")), + new KeyValuePair(1208, new AxoMessengerTextItem("Error reading the OperationalResultStatus!" ,"Check the value of the hwIdOperationalResultStatus and reacheability of the device!")), + new KeyValuePair(1209, new AxoMessengerTextItem("Error reading the ReadData!" ,"Check the value of the hwIdReadData and reacheability of the device!")), + new KeyValuePair(1210, new AxoMessengerTextItem("ResultData has invalid size!" ,"Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), + //new KeyValuePair(1211, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_11!" ,"Check the value of the hwID_in_11 and reacheability of the device!")), + //new KeyValuePair(1212, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_12!" ,"Check the value of the hwID_in_12 and reacheability of the device!")), + //new KeyValuePair(1213, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_13!" ,"Check the value of the hwID_in_13 and reacheability of the device!")), + //new KeyValuePair(1214, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_14!" ,"Check the value of the hwID_in_14 and reacheability of the device!")), + //new KeyValuePair(1215, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_15!" ,"Check the value of the hwID_in_15 and reacheability of the device!")), + //new KeyValuePair(1216, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_16!" ,"Check the value of the hwID_in_16 and reacheability of the device!")), + //new KeyValuePair(1217, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_17!" ,"Check the value of the hwID_in_17 and reacheability of the device!")), + //new KeyValuePair(1218, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_18!" ,"Check the value of the hwID_in_18 and reacheability of the device!")), + //new KeyValuePair(1219, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_19!" ,"Check the value of the hwID_in_19 and reacheability of the device!")), + //new KeyValuePair(1220, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_20!" ,"Check the value of the hwID_in_20 and reacheability of the device!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the LatchAndErrorClearControl!" ,"Check the value of the hwIdLatchAndErrorClearControl and reacheability of the device!")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the OperationInstructionControl!" ,"Check the value of the hwIdOperationInstructionControl and reacheability of the device!")), + new KeyValuePair(1233, new AxoMessengerTextItem("Error writing the CompletionClearControl!" ,"Check the value of the hwIdCompletionClearControl and reacheability of the device!")), + new KeyValuePair(1234, new AxoMessengerTextItem("Error writing the ParameterBankNumber!" ,"Check the value of the hwIdParameterBankNumber and reacheability of the device!")), + new KeyValuePair(1235, new AxoMessengerTextItem("UserData has invalid size!" ,"Check the real size of the `UserData`, so as the value of the UserDataSize parameter!")), + new KeyValuePair(1236, new AxoMessengerTextItem("Error writing the 32bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1237, new AxoMessengerTextItem("Error writing the 64bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1238, new AxoMessengerTextItem("Error writing the 128bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1239, new AxoMessengerTextItem("Error writing the 250bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + //new KeyValuePair(1240, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_10!" ,"Check the value of the hwID_out_10 and reacheability of the device!")), + //new KeyValuePair(1241, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_11!" ,"Check the value of the hwID_out_11 and reacheability of the device!")), + //new KeyValuePair(1242, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_12!" ,"Check the value of the hwID_out_12 and reacheability of the device!")), + //new KeyValuePair(1243, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_13!" ,"Check the value of the hwID_out_13 and reacheability of the device!")), + //new KeyValuePair(1244, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_14!" ,"Check the value of the hwID_out_14 and reacheability of the device!")), + //new KeyValuePair(1245, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_15!" ,"Check the value of the hwID_out_15 and reacheability of the device!")), + //new KeyValuePair(1246, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_16!" ,"Check the value of the hwID_out_16 and reacheability of the device!")), + //new KeyValuePair(1247, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_17!" ,"Check the value of the hwID_out_17 and reacheability of the device!")), + //new KeyValuePair(1248, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_18!" ,"Check the value of the hwID_out_18 and reacheability of the device!")), + //new KeyValuePair(1249, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_19!" ,"Check the value of the hwID_out_19 and reacheability of the device!")), + //new KeyValuePair(1250, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_20!" ,"Check the value of the hwID_out_20 and reacheability of the device!")), - new KeyValuePair(716, new AxoMessengerTextItem("Error reading the HandshakeAndGeneralErrorStatus!", "Check the value of the hwIdHandshakeAndGeneralErrorStatus and reacheability of the device!")), - new KeyValuePair(717, new AxoMessengerTextItem("Error reading the BUSY_Status!", "Check the value of the hwIdBUSY_Status and reacheability of the device!")), - new KeyValuePair(718, new AxoMessengerTextItem("Error reading the CompletionStatus!", "Check the value of the hwIdCompletionStatus and reacheability of the device!")), - new KeyValuePair(719, new AxoMessengerTextItem("Error reading the ErrorStatus!", "Check the value of the hwIdErrorStatus and reacheability of the device!")), - new KeyValuePair(720, new AxoMessengerTextItem("Error reading the TerminalStatus!", "Check the value of the hwIdTerminalStatus and reacheability of the device!")), - new KeyValuePair(721, new AxoMessengerTextItem("Error reading the UnstableReadStatus!", "Check the value of the hwIdUnstableReadStatus and reacheability of the device!")), - new KeyValuePair(722, new AxoMessengerTextItem("Error reading the MatchingLevelAndTotalEvaluationGradeStatus!", "Check the value of the hwIdMatchingLevelAndTotalEvaluationGradeStatus and reacheability of the device!")), - new KeyValuePair(723, new AxoMessengerTextItem("Error reading the OperationalResultStatus!", "Check the value of the hwIdOperationalResultStatus and reacheability of the device!")), - new KeyValuePair(724, new AxoMessengerTextItem("Error reading the ReadData!", "Check the value of the hwIdReadData and reacheability of the device!")), - new KeyValuePair(725, new AxoMessengerTextItem("ResultData has invalid size!", "Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), - new KeyValuePair(726, new AxoMessengerTextItem("Error writing the LatchAndErrorClearControl!", "Check the value of the hwIdLatchAndErrorClearControl and reacheability of the device!")), - new KeyValuePair(727, new AxoMessengerTextItem("Error writing the OperationInstructionControl!", "Check the value of the hwIdOperationInstructionControl and reacheability of the device!")), - new KeyValuePair(728, new AxoMessengerTextItem("Error writing the CompletionClearControl!", "Check the value of the hwIdCompletionClearControl and reacheability of the device!")), - new KeyValuePair(729, new AxoMessengerTextItem("Error writing the ParameterBankNumber!", "Check the value of the hwIdParameterBankNumber and reacheability of the device!")), - new KeyValuePair(730, new AxoMessengerTextItem("UserData has invalid size!", "Check the real size of the `UserData`, so as the value of the UserDataSize parameter!")), - new KeyValuePair(731, new AxoMessengerTextItem("Error writing the 32bytes of the UserData!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(732, new AxoMessengerTextItem("Error writing the 64bytes of the UserData!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(733, new AxoMessengerTextItem("Error writing the 128bytes of the UserData!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(734, new AxoMessengerTextItem("Error writing the 250bytes of the UserData!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(735, new AxoMessengerTextItem("Bank number out of range!", "Check the value of the Bank number!")), //// Clear task - //new KeyValuePair(800, new AxoMessengerTextItem("Clearing of the result data finished with error!", "Check the details.")), - //new KeyValuePair(801, new AxoMessengerTextItem("Clearing of the result data was aborted, while not yet completed!", "Check the details.")), + //new KeyValuePair(10000, new AxoMessengerTextItem("Clearing of the result data finished with error!" ,"Check the details.")), + //new KeyValuePair(10001, new AxoMessengerTextItem("Clearing of the result data was aborted, while not yet completed!" ,"Check the details.")), //// Read Task - //new KeyValuePair(810, new AxoMessengerTextItem("Reading finished with error!", "Check the details.")), - //new KeyValuePair(811, new AxoMessengerTextItem("Reading was aborted, while not yet completed!", "Check the details.")), + //new KeyValuePair(10010, new AxoMessengerTextItem("Reading finished with error!" ,"Check the details.")), + //new KeyValuePair(10011, new AxoMessengerTextItem("Reading was aborted, while not yet completed!" ,"Check the details.")), //// Continous reading - //new KeyValuePair(820, new AxoMessengerTextItem("Continous reading finished with error!", "Check the details.")), - //new KeyValuePair(821, new AxoMessengerTextItem("Continous reading was aborted, while not yet completed!", "Check the details.")), + //new KeyValuePair(10020, new AxoMessengerTextItem("Continous reading finished with error!" ,"Check the details.")), + //new KeyValuePair(10021, new AxoMessengerTextItem("Continous reading was aborted, while not yet completed!" ,"Check the details.")), // ClearResultDataTask - new KeyValuePair(830, new AxoMessengerTextItem("ClearResultDataTask finished with error!","Check the details.")), - new KeyValuePair(831, new AxoMessengerTextItem("ClearResultDataTask was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10030, new AxoMessengerTextItem("ClearResultDataTask finished with error!" ,"Check the details.")), + new KeyValuePair(10031, new AxoMessengerTextItem("ClearResultDataTask was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_10steps_2 - //new KeyValuePair(840, new AxoMessengerTextItem("TemplateTask_10steps_2 finished with error!","Check the details.")), - //new KeyValuePair(841, new AxoMessengerTextItem("TemplateTask_10steps_2 was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10040, new AxoMessengerTextItem("TemplateTask_10steps_2 finished with error!" ,"Check the details.")), + //new KeyValuePair(10041, new AxoMessengerTextItem("TemplateTask_10steps_2 was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_10steps_3 - //new KeyValuePair(850, new AxoMessengerTextItem("TemplateTask_10steps_3 finished with error!","Check the details.")), - //new KeyValuePair(851, new AxoMessengerTextItem("TemplateTask_10steps_3 was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10050, new AxoMessengerTextItem("TemplateTask_10steps_3 finished with error!" ,"Check the details.")), + //new KeyValuePair(10051, new AxoMessengerTextItem("TemplateTask_10steps_3 was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_10steps_4 - //new KeyValuePair(860, new AxoMessengerTextItem("TemplateTask_10steps_4 task finished with error!","Check the details.")), - //new KeyValuePair(861, new AxoMessengerTextItem("TemplateTask_10steps_4 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10060, new AxoMessengerTextItem("TemplateTask_10steps_4 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10061, new AxoMessengerTextItem("TemplateTask_10steps_4 task was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_10steps_5 - //new KeyValuePair(870, new AxoMessengerTextItem("TemplateTask_10steps_5 task finished with error!","Check the details.")), - //new KeyValuePair(871, new AxoMessengerTextItem("TemplateTask_10steps_5 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10070, new AxoMessengerTextItem("TemplateTask_10steps_5 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10071, new AxoMessengerTextItem("TemplateTask_10steps_5 task was aborted, while not yet completed!" ,"Check the details.")), // ReadTask - new KeyValuePair(880, new AxoMessengerTextItem("ReadTask finished with error!","Check the details.")), - new KeyValuePair(881, new AxoMessengerTextItem("ReadTask was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10080, new AxoMessengerTextItem("ReadTask finished with error!" ,"Check the details.")), + new KeyValuePair(10081, new AxoMessengerTextItem("ReadTask was aborted, while not yet completed!" ,"Check the details.")), // TuneTask - new KeyValuePair(900, new AxoMessengerTextItem("TuneTask task finished with error!","Check the details.")), - new KeyValuePair(901, new AxoMessengerTextItem("TuneTask task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10100, new AxoMessengerTextItem("TuneTask task finished with error!" ,"Check the details.")), + new KeyValuePair(10101, new AxoMessengerTextItem("TuneTask task was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_20steps_3 - //new KeyValuePair(920, new AxoMessengerTextItem("TemplateTask_20steps_3 task finished with error!","Check the details.")), - //new KeyValuePair(921, new AxoMessengerTextItem("TemplateTask_20steps_3 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10120, new AxoMessengerTextItem("TemplateTask_20steps_3 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10121, new AxoMessengerTextItem("TemplateTask_20steps_3 task was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_20steps_4 - //new KeyValuePair(940, new AxoMessengerTextItem("TemplateTask_20steps_4 task finished with error!","Check the details.")), - //new KeyValuePair(941, new AxoMessengerTextItem("TemplateTask_20steps_4 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10140, new AxoMessengerTextItem("TemplateTask_20steps_4 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10141, new AxoMessengerTextItem("TemplateTask_20steps_4 task was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_20steps_5 - //new KeyValuePair(960, new AxoMessengerTextItem("TemplateTask_20steps_5 task finished with error!","Check the details.")), - //new KeyValuePair(961, new AxoMessengerTextItem("TemplateTask_20steps_5 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10160, new AxoMessengerTextItem("TemplateTask_20steps_5 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10161, new AxoMessengerTextItem("TemplateTask_20steps_5 task was aborted, while not yet completed!" ,"Check the details.")), }; diff --git a/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_1000_Component_Status/Axo_SR_1000_Component_Status.cs b/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_1000_Component_Status/Axo_SR_1000_Component_Status.cs index 237587a96..7295c28df 100644 --- a/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_1000_Component_Status/Axo_SR_1000_Component_Status.cs +++ b/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_1000_Component_Status/Axo_SR_1000_Component_Status.cs @@ -215,52 +215,246 @@ public string ErrorDescription //errorDescriptionDict.Add(677, "Waiting for the signal/variable `` to be set/reseted !"); //errorDescriptionDict.Add(678, "Waiting for the signal/variable `` to be set/reseted !"); //errorDescriptionDict.Add(679, "Waiting for the signal/variable `` to be set/reseted !"); - // General alarms - errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!"); - errorDescriptionDict.Add(702, "Input variable `homeSensor` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(703, "Input variable `workSensor` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(704, "Input variable `moveHomeSignal` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(705, "Input variable `moveWorkSignal` has NULL reference in `Run` method!"); - //// Stop task - //errorDescriptionDict.Add(800, "Stop task finished with error!"); - //errorDescriptionDict.Add(801, "Stop task was aborted, while not yet completed!"); - //// Move to home task - //errorDescriptionDict.Add(810, "Move to home task finished with error!"); - //errorDescriptionDict.Add(811, "Move to home task was aborted, while not yet completed!"); - //// Move to work task - //errorDescriptionDict.Add(820, "Move to work task finished with error!"); - //errorDescriptionDict.Add(821, "Move to work task was aborted, while not yet completed!"); - // ClearResultDataTask - errorDescriptionDict.Add(830, "ClearResultDataTask finished with error!"); - errorDescriptionDict.Add(831, "ClearResultDataTask was aborted, while not yet completed!"); - //// TemplateTask_10steps_2 - //errorDescriptionDict.Add(840, "TemplateTask_10steps_2 finished with error!"); - //errorDescriptionDict.Add(841, "TemplateTask_10steps_2 was aborted, while not yet completed!"); - //// TemplateTask_10steps_3 - //errorDescriptionDict.Add(850, "TemplateTask_10steps_3 finished with error!"); - //errorDescriptionDict.Add(851, "TemplateTask_10steps_3 was aborted, while not yet completed!"); - //// TemplateTask_10steps_4 - //errorDescriptionDict.Add(860, "TemplateTask_10steps_4 task finished with error!"); - //errorDescriptionDict.Add(861, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); - //// TemplateTask_10steps_5 - //errorDescriptionDict.Add(870, "TemplateTask_10steps_5 task finished with error!"); - //errorDescriptionDict.Add(871, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); - // ReadTask - errorDescriptionDict.Add(880, "ReadTask task finished with error!"); - errorDescriptionDict.Add(881, "ReadTask task was aborted, while not yet completed!"); - // TuneTask - errorDescriptionDict.Add(900, "TuneTask task finished with error!"); - errorDescriptionDict.Add(901, "TuneTask task was aborted, while not yet completed!"); - //// TemplateTask_20steps_3 - //errorDescriptionDict.Add(920, "TemplateTask_20steps_3 task finished with error!"); - //errorDescriptionDict.Add(921, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); - //// TemplateTask_20steps_4 - //errorDescriptionDict.Add(940, "TemplateTask_20steps_4 task finished with error!"); - //errorDescriptionDict.Add(941, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); - //// TemplateTask_20steps_5 - //errorDescriptionDict.Add(960, "TemplateTask_20steps_5 task finished with error!"); - //errorDescriptionDict.Add(961, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + // General alarms + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ); + + errorDescriptionDict.Add(710, "Hw configuration error. Value of hwIdHandshakeAndGeneralErrorStatus is zero." ); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'HandshakeAndGeneralErrorStatus' (GsdId=101)." ); + + errorDescriptionDict.Add(720, "Hw configuration error. Value of hwIdBUSY_Status is zero." ); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'BUSY_Status' (GsdId=102)." ); + + errorDescriptionDict.Add(730, "Hw configuration error. Value of hwIdCompletionStatus is zero." ); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ); + errorDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'CompletionStatus '(GsdId=103)." ); + + errorDescriptionDict.Add(740, "Hw configuration error. Value of hwIdErrorStatus is zero." ); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ); + errorDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'ErrorStatus' (GsdId=104)."); + + errorDescriptionDict.Add(750, "Hw configuration error. Value of hwIdTerminalStatus is zero." ); + errorDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ); + errorDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ); + errorDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ); + errorDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ); + errorDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ); + errorDescriptionDict.Add(756, "Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'TerminalStatus' (GsdId=105)." ); + + errorDescriptionDict.Add(760, "Hw configuration error. Value of hwIdUnstableReadStatus is zero." ); + errorDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ); + errorDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ); + errorDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ); + errorDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ); + errorDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ); + errorDescriptionDict.Add(766, "Hw configuration error: Module with unexpected size or type detected in Slot 6. Expected module: 'UnstableReadStatus' (GsdId=106)." ); + + errorDescriptionDict.Add(770, "Hw configuration error. Value of hwIdMatchingLevelAndTotalEvaluationGradeStatus is zero." ); + errorDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ); + errorDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ); + errorDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ); + errorDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ); + errorDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ); + errorDescriptionDict.Add(776, "Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'MatchingLevelAndTotalEvaluationGradeStatus' (GsdId=107)." ); + + errorDescriptionDict.Add(780, "Hw configuration error. Value of hwIdOperationalResultStatus is zero." ); + errorDescriptionDict.Add(781, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ); + errorDescriptionDict.Add(782, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ); + errorDescriptionDict.Add(783, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ); + errorDescriptionDict.Add(784, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ); + errorDescriptionDict.Add(785, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ); + errorDescriptionDict.Add(786, "Hw configuration error: Module with unexpected size or type detected in Slot 8. Expected module: 'OperationalResultStatus' (GsdId=108)." ); + errorDescriptionDict.Add(790, "Hw configuration error. Value of hwIdReadData is zero." ); + errorDescriptionDict.Add(791, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9." ); + errorDescriptionDict.Add(792, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9." ); + errorDescriptionDict.Add(793, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9." ); + errorDescriptionDict.Add(794, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9." ); + errorDescriptionDict.Add(795, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9." ); + errorDescriptionDict.Add(796, "Hw configuration error: Module with unexpected size or type detected in Slot 9. Expected module: 'Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes' (GsdId=109,110,111,112)." ); + + errorDescriptionDict.Add(800, "Hw configuration error. Value of hwIdLatchAndErrorClearControlBitReg is zero." ); + errorDescriptionDict.Add(801, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10." ); + errorDescriptionDict.Add(802, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10." ); + errorDescriptionDict.Add(803, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10." ); + errorDescriptionDict.Add(804, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10." ); + errorDescriptionDict.Add(805, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10." ); + errorDescriptionDict.Add(806, "Hw configuration error: Module with unexpected size or type detected in Slot 10. Expected module: 'LatchAndErrorClearControlBitReg' (GsdId=201)." ); + + errorDescriptionDict.Add(810, "Hw configuration error. Value of hwIdOperationInstructionControl is zero." ); + errorDescriptionDict.Add(811, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11." ); + errorDescriptionDict.Add(812, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11." ); + errorDescriptionDict.Add(813, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11." ); + errorDescriptionDict.Add(814, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11." ); + errorDescriptionDict.Add(815, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11." ); + errorDescriptionDict.Add(816, "Hw configuration error: Module with unexpected size or type detected in Slot 11. Expected module: 'OperationInstructionControl' (GsdId=202)." ); + + errorDescriptionDict.Add(820, "Hw configuration error. Value of hwIdCompletionClearControl is zero." ); + errorDescriptionDict.Add(821, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12." ); + errorDescriptionDict.Add(822, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12." ); + errorDescriptionDict.Add(823, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12." ); + errorDescriptionDict.Add(824, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12." ); + errorDescriptionDict.Add(825, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12." ); + errorDescriptionDict.Add(826, "Hw configuration error: Module with unexpected size or type detected in Slot 12. Expected module: 'CompletionClearControl' (GsdId=203)." ); + + errorDescriptionDict.Add(830, "Hw configuration error. Value of hwIdParameterBankNumber is zero." ); + errorDescriptionDict.Add(831, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13." ); + errorDescriptionDict.Add(832, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13." ); + errorDescriptionDict.Add(833, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13." ); + errorDescriptionDict.Add(834, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13." ); + errorDescriptionDict.Add(835, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13." ); + errorDescriptionDict.Add(836, "Hw configuration error: Module with unexpected size or type detected in Slot 13. Expected module: 'ParameterBankNumber' (GsdId=204)." ); + + errorDescriptionDict.Add(840, "Hw configuration error. Value of hwIdUserData is zero." ); + errorDescriptionDict.Add(841, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14." ); + errorDescriptionDict.Add(842, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14." ); + errorDescriptionDict.Add(843, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14." ); + errorDescriptionDict.Add(844, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14." ); + errorDescriptionDict.Add(845, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14." ); + errorDescriptionDict.Add(846, "Hw configuration error: Module with unexpected size or type detected in Slot 14. Allowed modules: 'User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-250_bytes' (GsdId=205,206,207,208)." ); + + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1132, "Input variable `hwIdHandshakeAndGeneralErrorStatus` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1133, "Input variable `hwIdBUSY_Status` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1134, "Input variable `hwIdCompletionStatus` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1135, "Input variable `hwIdErrorStatus` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1136, "Input variable `hwIdTerminalStatus` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1137, "Input variable `hwIdUnstableReadStatus` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1138, "Input variable `hwIdMatchingLevelAndTotalEvaluationGradeStatus` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1139, "Input variable `hwIdOperationalResultStatus` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1140, "Input variable `hwIdReadData` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1141, "Input variable `hwIdLatchAndErrorClearControl` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1142, "Input variable `hwIdOperationInstructionControl` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1143, "Input variable `hwIdCompletionClearControl` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1144, "Input variable `hwIdParameterBankNumber` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1145, "Input variable `hwIdUserData` has invalid value in `Run` method!"); + //errorDescriptionDict.Add(1146, "Input variable `hwID_in_15` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1147, "Input variable `hwID_in_16` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1148, "Input variable `hwID_in_17` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1149, "Input variable `hwID_in_18` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1150, "Input variable `hwID_in_19` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1151, "Input variable `hwID_in_20` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1152, "Input variable `hwID_out_1` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1153, "Input variable `hwID_out_2` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1154, "Input variable `hwID_out_3` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1155, "Input variable `hwID_out_4` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1156, "Input variable `hwID_out_5` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1157, "Input variable `hwID_out_6` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1158, "Input variable `hwID_out_7` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1159, "Input variable `hwID_out_8` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1160, "Input variable `hwID_out_9` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1161, "Input variable `hwID_out_10` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1162, "Input variable `hwID_out_11` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1163, "Input variable `hwID_out_12` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1164, "Input variable `hwID_out_13` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1165, "Input variable `hwID_out_14` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1166, "Input variable `hwID_out_15` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1167, "Input variable `hwID_out_16` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1168, "Input variable `hwID_out_17` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1169, "Input variable `hwID_out_18` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1170, "Input variable `hwID_out_19` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1171, "Input variable `hwID_out_20` has invalid value in `Run` method!" ); + + errorDescriptionDict.Add(1201, "Error reading the HandshakeAndGeneralErrorStatus!" ); + errorDescriptionDict.Add(1202, "Error reading the BUSY_Status!" ); + errorDescriptionDict.Add(1203, "Error reading the CompletionStatus!" ); + errorDescriptionDict.Add(1204, "Error reading the ErrorStatus!" ); + errorDescriptionDict.Add(1205, "Error reading the TerminalStatus!" ); + errorDescriptionDict.Add(1206, "Error reading the UnstableReadStatus!" ); + errorDescriptionDict.Add(1207, "Error reading the MatchingLevelAndTotalEvaluationGradeStatus!" ); + errorDescriptionDict.Add(1208, "Error reading the OperationalResultStatus!" ); + errorDescriptionDict.Add(1209, "Error reading the ReadData!" ); + errorDescriptionDict.Add(1210, "ResultData has invalid size!" ); + //errorDescriptionDict.Add(1211, "Error reading the TemplateComponentInputStructure_hwID_in_11!" ); + //errorDescriptionDict.Add(1212, "Error reading the TemplateComponentInputStructure_hwID_in_12!" ); + //errorDescriptionDict.Add(1213, "Error reading the TemplateComponentInputStructure_hwID_in_13!" ); + //errorDescriptionDict.Add(1214, "Error reading the TemplateComponentInputStructure_hwID_in_14!" ); + //errorDescriptionDict.Add(1215, "Error reading the TemplateComponentInputStructure_hwID_in_15!" ); + //errorDescriptionDict.Add(1216, "Error reading the TemplateComponentInputStructure_hwID_in_16!" ); + //errorDescriptionDict.Add(1217, "Error reading the TemplateComponentInputStructure_hwID_in_17!" ); + //errorDescriptionDict.Add(1218, "Error reading the TemplateComponentInputStructure_hwID_in_18!" ); + //errorDescriptionDict.Add(1219, "Error reading the TemplateComponentInputStructure_hwID_in_19!" ); + //errorDescriptionDict.Add(1220, "Error reading the TemplateComponentInputStructure_hwID_in_20!" ); + + errorDescriptionDict.Add(1231, "Error writing the LatchAndErrorClearControl!" ); + errorDescriptionDict.Add(1232, "Error writing the OperationInstructionControl!" ); + errorDescriptionDict.Add(1233, "Error writing the CompletionClearControl!" ); + errorDescriptionDict.Add(1234, "Error writing the ParameterBankNumber!" ); + errorDescriptionDict.Add(1235, "UserData has invalid size!" ); + errorDescriptionDict.Add(1236, "Error writing the 32bytes of the UserData!" ); + errorDescriptionDict.Add(1237, "Error writing the 64bytes of the UserData!" ); + errorDescriptionDict.Add(1238, "Error writing the 128bytes of the UserData!" ); + errorDescriptionDict.Add(1239, "Error writing the 250bytes of the UserData!" ); + //errorDescriptionDict.Add(1240, "Error writing the TemplateComponentOutputStructure_hwID_out_10!" ); + //errorDescriptionDict.Add(1241, "Error writing the TemplateComponentOutputStructure_hwID_out_11!" ); + //errorDescriptionDict.Add(1242, "Error writing the TemplateComponentOutputStructure_hwID_out_12!" ); + //errorDescriptionDict.Add(1243, "Error writing the TemplateComponentOutputStructure_hwID_out_13!" ); + //errorDescriptionDict.Add(1244, "Error writing the TemplateComponentOutputStructure_hwID_out_14!" ); + //errorDescriptionDict.Add(1245, "Error writing the TemplateComponentOutputStructure_hwID_out_15!" ); + //errorDescriptionDict.Add(1246, "Error writing the TemplateComponentOutputStructure_hwID_out_16!" ); + //errorDescriptionDict.Add(1247, "Error writing the TemplateComponentOutputStructure_hwID_out_17!" ); + //errorDescriptionDict.Add(1248, "Error writing the TemplateComponentOutputStructure_hwID_out_18!" ); + //errorDescriptionDict.Add(1249, "Error writing the TemplateComponentOutputStructure_hwID_out_19!" ); + //errorDescriptionDict.Add(1250, "Error writing the TemplateComponentOutputStructure_hwID_out_20!" ); + + //// Clear task); + //errorDescriptionDict.Add(10000, "Clearing of the result data finished with error!" ); + //errorDescriptionDict.Add(10001, "Clearing of the result data was aborted, while not yet completed!" ); + //// Read Task); + //errorDescriptionDict.Add(10010, "Reading finished with error!" ); + //errorDescriptionDict.Add(10011, "Reading was aborted, while not yet completed!" ); + //// Continous reading); + //errorDescriptionDict.Add(10020, "Continous reading finished with error!" ); + //errorDescriptionDict.Add(10021, "Continous reading was aborted, while not yet completed!" ); + // ClearResultDataTask); + errorDescriptionDict.Add(10030, "ClearResultDataTask finished with error!" ); + errorDescriptionDict.Add(10031, "ClearResultDataTask was aborted, while not yet completed!" ); + //// TemplateTask_10steps_2); + //errorDescriptionDict.Add(10040, "TemplateTask_10steps_2 finished with error!" ); + //errorDescriptionDict.Add(10041, "TemplateTask_10steps_2 was aborted, while not yet completed!" ); + //// TemplateTask_10steps_3); + //errorDescriptionDict.Add(10050, "TemplateTask_10steps_3 finished with error!" ); + //errorDescriptionDict.Add(10051, "TemplateTask_10steps_3 was aborted, while not yet completed!" ); + //// TemplateTask_10steps_4); + //errorDescriptionDict.Add(10060, "TemplateTask_10steps_4 task finished with error!" ); + //errorDescriptionDict.Add(10061, "TemplateTask_10steps_4 task was aborted, while not yet completed!" ); + //// TemplateTask_10steps_5); + //errorDescriptionDict.Add(10070, "TemplateTask_10steps_5 task finished with error!" ); + //errorDescriptionDict.Add(10071, "TemplateTask_10steps_5 task was aborted, while not yet completed!" ); + // ReadTask); + errorDescriptionDict.Add(10080, "ReadTask finished with error!" ); + errorDescriptionDict.Add(10081, "ReadTask was aborted, while not yet completed!" ); + // TuneTask); + errorDescriptionDict.Add(10100, "TuneTask task finished with error!" ); + errorDescriptionDict.Add(10101, "TuneTask task was aborted, while not yet completed!" ); + //// TemplateTask_20steps_3); + //errorDescriptionDict.Add(10120, "TemplateTask_20steps_3 task finished with error!" ); + //errorDescriptionDict.Add(10121, "TemplateTask_20steps_3 task was aborted, while not yet completed!" ); + //// TemplateTask_20steps_4); + //errorDescriptionDict.Add(10140, "TemplateTask_20steps_4 task finished with error!" ); + //errorDescriptionDict.Add(10141, "TemplateTask_20steps_4 task was aborted, while not yet completed!" ); + //// TemplateTask_20steps_5); + //errorDescriptionDict.Add(10160, "TemplateTask_20steps_5 task finished with error!" ); + //errorDescriptionDict.Add(10161, "TemplateTask_20steps_5 task was aborted, while not yet completed!" ); } string errorDescription = " "; @@ -521,52 +715,45 @@ public string ActionDescription //actionDescriptionDict.Add(479, "TemplateTask_20steps_5 running, add the detailed description of the current action."); //actionDescriptionDict.Add(261, "TemplateTask_20steps_5 finished succesfully."); //actionDescriptionDict.Add(262, "TemplateTask_20steps_5 restored."); - //// General alarms - //actionDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); - //actionDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!"); - //actionDescriptionDict.Add(702, "Input variable `homeSensor` has NULL reference in `Run` method!"); - //actionDescriptionDict.Add(703, "Input variable `workSensor` has NULL reference in `Run` method!"); - //actionDescriptionDict.Add(704, "Input variable `moveHomeSignal` has NULL reference in `Run` method!"); - //actionDescriptionDict.Add(705, "Input variable `moveWorkSignal` has NULL reference in `Run` method!"); //// Stop task - //actionDescriptionDict.Add(800, "Stop task finished with error!"); - //actionDescriptionDict.Add(801, "Stop task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10000, "Stop task finished with error!"); + //actionDescriptionDict.Add(10001, "Stop task was aborted, while not yet completed!"); //// Move to home task - //actionDescriptionDict.Add(810, "Move to home task finished with error!"); - //actionDescriptionDict.Add(811, "Move to home task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10010, "Move to home task finished with error!"); + //actionDescriptionDict.Add(10011, "Move to home task was aborted, while not yet completed!"); //// Move to work task - //actionDescriptionDict.Add(820, "Move to work task finished with error!"); - //actionDescriptionDict.Add(821, "Move to work task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10020, "Move to work task finished with error!"); + //actionDescriptionDict.Add(10021, "Move to work task was aborted, while not yet completed!"); // ClearResultDataTask - actionDescriptionDict.Add(830, "ClearResultDataTask finished with error!"); - actionDescriptionDict.Add(831, "ClearResultDataTask was aborted, while not yet completed!"); + actionDescriptionDict.Add(10030, "ClearResultDataTask finished with error!"); + actionDescriptionDict.Add(10031, "ClearResultDataTask was aborted, while not yet completed!"); //// TemplateTask_10steps_2 - //actionDescriptionDict.Add(840, "TemplateTask_10steps_2 finished with error!"); - //actionDescriptionDict.Add(841, "TemplateTask_10steps_2 was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10040, "TemplateTask_10steps_2 finished with error!"); + //actionDescriptionDict.Add(10041, "TemplateTask_10steps_2 was aborted, while not yet completed!"); //// TemplateTask_10steps_3 - //actionDescriptionDict.Add(850, "TemplateTask_10steps_3 finished with error!"); - //actionDescriptionDict.Add(851, "TemplateTask_10steps_3 was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10050, "TemplateTask_10steps_3 finished with error!"); + //actionDescriptionDict.Add(10051, "TemplateTask_10steps_3 was aborted, while not yet completed!"); //// TemplateTask_10steps_4 - //actionDescriptionDict.Add(860, "TemplateTask_10steps_4 task finished with error!"); - //actionDescriptionDict.Add(861, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10060, "TemplateTask_10steps_4 task finished with error!"); + //actionDescriptionDict.Add(10061, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); //// TemplateTask_10steps_5 - //actionDescriptionDict.Add(870, "TemplateTask_10steps_5 task finished with error!"); - //actionDescriptionDict.Add(871, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10070, "TemplateTask_10steps_5 task finished with error!"); + //actionDescriptionDict.Add(10071, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); // ReadTask - actionDescriptionDict.Add(880, "ReadTask task finished with error!"); - actionDescriptionDict.Add(881, "ReadTask task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10080, "ReadTask task finished with error!"); + actionDescriptionDict.Add(10081, "ReadTask task was aborted, while not yet completed!"); // TuneTask - actionDescriptionDict.Add(900, "TuneTask task finished with error!"); - actionDescriptionDict.Add(901, "TuneTask task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10100, "TuneTask task finished with error!"); + actionDescriptionDict.Add(10101, "TuneTask task was aborted, while not yet completed!"); //// TemplateTask_20steps_3 - //actionDescriptionDict.Add(920, "TemplateTask_20steps_3 task finished with error!"); - //actionDescriptionDict.Add(921, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10120, "TemplateTask_20steps_3 task finished with error!"); + //actionDescriptionDict.Add(10121, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); //// TemplateTask_20steps_4 - //actionDescriptionDict.Add(940, "TemplateTask_20steps_4 task finished with error!"); - //actionDescriptionDict.Add(941, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10140, "TemplateTask_20steps_4 task finished with error!"); + //actionDescriptionDict.Add(10141, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); //// TemplateTask_20steps_5 - //actionDescriptionDict.Add(960, "TemplateTask_20steps_5 task finished with error!"); - //actionDescriptionDict.Add(961, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10160, "TemplateTask_20steps_5 task finished with error!"); + //actionDescriptionDict.Add(10161, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); } diff --git a/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_750/Axo_SR_750.cs b/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_750/Axo_SR_750.cs index 8a256b5a1..e42b272bf 100644 --- a/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_750/Axo_SR_750.cs +++ b/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_750/Axo_SR_750.cs @@ -90,85 +90,250 @@ private void InitializeMessenger() //new KeyValuePair(260, new AxoMessengerTextItem("TemplateTask_20steps_5 started.","")), //new KeyValuePair(261, new AxoMessengerTextItem("TemplateTask_20steps_5 finished succesfully.","")), //new KeyValuePair(262, new AxoMessengerTextItem("TemplateTask_20steps_5 restored.","")), - // General alarm - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwID` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwID` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("Input variable `hwIdHandshakeAndGeneralErrorStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdHandshakeAndGeneralErrorStatus` parameter is assigned.")), - new KeyValuePair(703, new AxoMessengerTextItem("Input variable `hwIdBUSY_Status` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdBUSY_Status` parameter is assigned.")), - new KeyValuePair(704, new AxoMessengerTextItem("Input variable `hwIdCompletionStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdCompletionStatus` parameter is assigned.")), - new KeyValuePair(705, new AxoMessengerTextItem("Input variable `hwIdErrorStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdErrorStatus` parameter is assigned.")), - new KeyValuePair(706, new AxoMessengerTextItem("Input variable `hwIdTerminalStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdTerminalStatus` parameter is assigned.")), - new KeyValuePair(707, new AxoMessengerTextItem("Input variable `hwIdUnstableReadStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdUnstableReadStatus` parameter is assigned.")), - new KeyValuePair(708, new AxoMessengerTextItem("Input variable `hwIdMatchingLevelAndTotalEvaluationGradeStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdMatchingLevelAndTotalEvaluationGradeStatus` parameter is assigned.")), - new KeyValuePair(709, new AxoMessengerTextItem("Input variable `hwIdOperationalResultStatus` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdOperationalResultStatus` parameter is assigned.")), - new KeyValuePair(710, new AxoMessengerTextItem("Input variable `hwIdReadData` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdReadData` parameter is assigned.")), - new KeyValuePair(711, new AxoMessengerTextItem("Input variable `hwIdLatchAndErrorClearControlBitReg` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdLatchAndErrorClearControlBitReg` parameter is assigned.")), - new KeyValuePair(712, new AxoMessengerTextItem("Input variable `hwIdOperationInstructionControl` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdOperationInstructionControl` parameter is assigned.")), - new KeyValuePair(713, new AxoMessengerTextItem("Input variable `hwIdCompletionClearControl` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdCompletionClearControl` parameter is assigned.")), - new KeyValuePair(714, new AxoMessengerTextItem("Input variable `hwIdParameterBankNumber` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdParameterBankNumber` parameter is assigned.")), - new KeyValuePair(715, new AxoMessengerTextItem("Input variable `hwIdUserData` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdUserData` parameter is assigned.")), + // General alarms + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwIdHandshakeAndGeneralErrorStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'HandshakeAndGeneralErrorStatus' (GsdId=101)." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of hwIdBUSY_Status is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'BUSY_Status' (GsdId=102)." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of hwIdCompletionStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'CompletionStatus '(GsdId=103)." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of hwIdErrorStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'ErrorStatus' (GsdId=104)." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of hwIdTerminalStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'TerminalStatus' (GsdId=105)." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of hwIdUnstableReadStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 6. Expected module: 'UnstableReadStatus' (GsdId=106)." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of hwIdMatchingLevelAndTotalEvaluationGradeStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'MatchingLevelAndTotalEvaluationGradeStatus' (GsdId=107)." ,"Check the hardware configuration.")), + + new KeyValuePair(780, new AxoMessengerTextItem("Hw configuration error. Value of hwIdOperationalResultStatus is zero." ,"Check the hardware configuration.")), + new KeyValuePair(781, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(782, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(783, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(784, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(785, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(786, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 8. Expected module: 'OperationalResultStatus' (GsdId=108)." ,"Check the hardware configuration.")), + + new KeyValuePair(790, new AxoMessengerTextItem("Hw configuration error. Value of hwIdReadData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(791, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(792, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(793, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(794, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(795, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(796, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 9. Expected module: 'Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes' (GsdId=109,110,111,112)." ,"Check the hardware configuration.")), + + new KeyValuePair(800, new AxoMessengerTextItem("Hw configuration error. Value of hwIdLatchAndErrorClearControlBitReg is zero." ,"Check the hardware configuration.")), + new KeyValuePair(801, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(802, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(803, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(804, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(805, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(806, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 10. Expected module: 'LatchAndErrorClearControlBitReg' (GsdId=201)." ,"Check the hardware configuration.")), + + new KeyValuePair(810, new AxoMessengerTextItem("Hw configuration error. Value of hwIdOperationInstructionControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(811, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(812, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(813, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(814, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(815, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(816, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 11. Expected module: 'OperationInstructionControl' (GsdId=202)." ,"Check the hardware configuration.")), + + new KeyValuePair(820, new AxoMessengerTextItem("Hw configuration error. Value of hwIdCompletionClearControl is zero." ,"Check the hardware configuration.")), + new KeyValuePair(821, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(822, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(823, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(824, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(825, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(826, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 12. Expected module: 'CompletionClearControl' (GsdId=203)." ,"Check the hardware configuration.")), + + new KeyValuePair(830, new AxoMessengerTextItem("Hw configuration error. Value of hwIdParameterBankNumber is zero." ,"Check the hardware configuration.")), + new KeyValuePair(831, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(832, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(833, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(834, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(835, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(836, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 13. Expected module: 'ParameterBankNumber' (GsdId=204)." ,"Check the hardware configuration.")), + + new KeyValuePair(840, new AxoMessengerTextItem("Hw configuration error. Value of hwIdUserData is zero." ,"Check the hardware configuration.")), + new KeyValuePair(841, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(842, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(843, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(844, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(845, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(846, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 14. Allowed modules: 'User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-250_bytes' (GsdId=205,206,207,208)." ,"Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwIdHandshakeAndGeneralErrorStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdHandshakeAndGeneralErrorStatus` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `hwIdBUSY_Status` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdBUSY_Status` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `hwIdCompletionStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdCompletionStatus` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `hwIdErrorStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdErrorStatus` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `hwIdTerminalStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdTerminalStatus` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `hwIdUnstableReadStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdUnstableReadStatus` parameter is assigned.")), + new KeyValuePair(1138, new AxoMessengerTextItem("Input variable `hwIdMatchingLevelAndTotalEvaluationGradeStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdMatchingLevelAndTotalEvaluationGradeStatus` parameter is assigned.")), + new KeyValuePair(1139, new AxoMessengerTextItem("Input variable `hwIdOperationalResultStatus` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdOperationalResultStatus` parameter is assigned.")), + new KeyValuePair(1140, new AxoMessengerTextItem("Input variable `hwIdReadData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdReadData` parameter is assigned.")), + new KeyValuePair(1141, new AxoMessengerTextItem("Input variable `hwIdLatchAndErrorClearControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdLatchAndErrorClearControl` parameter is assigned.")), + new KeyValuePair(1142, new AxoMessengerTextItem("Input variable `hwIdOperationInstructionControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdOperationInstructionControl` parameter is assigned.")), + new KeyValuePair(1143, new AxoMessengerTextItem("Input variable `hwIdCompletionClearControl` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdCompletionClearControl` parameter is assigned.")), + new KeyValuePair(1144, new AxoMessengerTextItem("Input variable `hwIdParameterBankNumber` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdParameterBankNumber` parameter is assigned.")), + new KeyValuePair(1145, new AxoMessengerTextItem("Input variable `hwIdUserData` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwIdUserData` parameter is assigned.")), + //new KeyValuePair(1146, new AxoMessengerTextItem("Input variable `hwID_in_15` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_15` parameter is assigned.")), + //new KeyValuePair(1147, new AxoMessengerTextItem("Input variable `hwID_in_16` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_16` parameter is assigned.")), + //new KeyValuePair(1148, new AxoMessengerTextItem("Input variable `hwID_in_17` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_17` parameter is assigned.")), + //new KeyValuePair(1149, new AxoMessengerTextItem("Input variable `hwID_in_18` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_18` parameter is assigned.")), + //new KeyValuePair(1150, new AxoMessengerTextItem("Input variable `hwID_in_19` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_19` parameter is assigned.")), + //new KeyValuePair(1151, new AxoMessengerTextItem("Input variable `hwID_in_20` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_20` parameter is assigned.")), + //new KeyValuePair(1152, new AxoMessengerTextItem("Input variable `hwID_out_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_1` parameter is assigned.")), + //new KeyValuePair(1153, new AxoMessengerTextItem("Input variable `hwID_out_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_2` parameter is assigned.")), + //new KeyValuePair(1154, new AxoMessengerTextItem("Input variable `hwID_out_3` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_3` parameter is assigned.")), + //new KeyValuePair(1155, new AxoMessengerTextItem("Input variable `hwID_out_4` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_4` parameter is assigned.")), + //new KeyValuePair(1156, new AxoMessengerTextItem("Input variable `hwID_out_5` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_5` parameter is assigned.")), + //new KeyValuePair(1157, new AxoMessengerTextItem("Input variable `hwID_out_6` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_6` parameter is assigned.")), + //new KeyValuePair(1158, new AxoMessengerTextItem("Input variable `hwID_out_7` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_7` parameter is assigned.")), + //new KeyValuePair(1159, new AxoMessengerTextItem("Input variable `hwID_out_8` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_8` parameter is assigned.")), + //new KeyValuePair(1160, new AxoMessengerTextItem("Input variable `hwID_out_9` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_9` parameter is assigned.")), + //new KeyValuePair(1161, new AxoMessengerTextItem("Input variable `hwID_out_10` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_10` parameter is assigned.")), + //new KeyValuePair(1162, new AxoMessengerTextItem("Input variable `hwID_out_11` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_11` parameter is assigned.")), + //new KeyValuePair(1163, new AxoMessengerTextItem("Input variable `hwID_out_12` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_12` parameter is assigned.")), + //new KeyValuePair(1164, new AxoMessengerTextItem("Input variable `hwID_out_13` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_13` parameter is assigned.")), + //new KeyValuePair(1165, new AxoMessengerTextItem("Input variable `hwID_out_14` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_14` parameter is assigned.")), + //new KeyValuePair(1166, new AxoMessengerTextItem("Input variable `hwID_out_15` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_15` parameter is assigned.")), + //new KeyValuePair(1167, new AxoMessengerTextItem("Input variable `hwID_out_16` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_16` parameter is assigned.")), + //new KeyValuePair(1168, new AxoMessengerTextItem("Input variable `hwID_out_17` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_17` parameter is assigned.")), + //new KeyValuePair(1169, new AxoMessengerTextItem("Input variable `hwID_out_18` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_18` parameter is assigned.")), + //new KeyValuePair(1170, new AxoMessengerTextItem("Input variable `hwID_out_19` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_19` parameter is assigned.")), + //new KeyValuePair(1171, new AxoMessengerTextItem("Input variable `hwID_out_20` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_20` parameter is assigned.")), + + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the HandshakeAndGeneralErrorStatus!" ,"Check the value of the hwIdHandshakeAndGeneralErrorStatus and reacheability of the device!")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the BUSY_Status!" ,"Check the value of the hwIdBUSY_Status and reacheability of the device!")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the CompletionStatus!" ,"Check the value of the hwIdCompletionStatus and reacheability of the device!")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the ErrorStatus!" ,"Check the value of the hwIdErrorStatus and reacheability of the device!")), + new KeyValuePair(1205, new AxoMessengerTextItem("Error reading the TerminalStatus!" ,"Check the value of the hwIdTerminalStatus and reacheability of the device!")), + new KeyValuePair(1206, new AxoMessengerTextItem("Error reading the UnstableReadStatus!" ,"Check the value of the hwIdUnstableReadStatus and reacheability of the device!")), + new KeyValuePair(1207, new AxoMessengerTextItem("Error reading the MatchingLevelAndTotalEvaluationGradeStatus!" ,"Check the value of the hwIdMatchingLevelAndTotalEvaluationGradeStatus and reacheability of the device!")), + new KeyValuePair(1208, new AxoMessengerTextItem("Error reading the OperationalResultStatus!" ,"Check the value of the hwIdOperationalResultStatus and reacheability of the device!")), + new KeyValuePair(1209, new AxoMessengerTextItem("Error reading the ReadData!" ,"Check the value of the hwIdReadData and reacheability of the device!")), + new KeyValuePair(1210, new AxoMessengerTextItem("ResultData has invalid size!" ,"Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), + //new KeyValuePair(1211, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_11!" ,"Check the value of the hwID_in_11 and reacheability of the device!")), + //new KeyValuePair(1212, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_12!" ,"Check the value of the hwID_in_12 and reacheability of the device!")), + //new KeyValuePair(1213, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_13!" ,"Check the value of the hwID_in_13 and reacheability of the device!")), + //new KeyValuePair(1214, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_14!" ,"Check the value of the hwID_in_14 and reacheability of the device!")), + //new KeyValuePair(1215, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_15!" ,"Check the value of the hwID_in_15 and reacheability of the device!")), + //new KeyValuePair(1216, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_16!" ,"Check the value of the hwID_in_16 and reacheability of the device!")), + //new KeyValuePair(1217, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_17!" ,"Check the value of the hwID_in_17 and reacheability of the device!")), + //new KeyValuePair(1218, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_18!" ,"Check the value of the hwID_in_18 and reacheability of the device!")), + //new KeyValuePair(1219, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_19!" ,"Check the value of the hwID_in_19 and reacheability of the device!")), + //new KeyValuePair(1220, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_20!" ,"Check the value of the hwID_in_20 and reacheability of the device!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the LatchAndErrorClearControl!" ,"Check the value of the hwIdLatchAndErrorClearControl and reacheability of the device!")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the OperationInstructionControl!" ,"Check the value of the hwIdOperationInstructionControl and reacheability of the device!")), + new KeyValuePair(1233, new AxoMessengerTextItem("Error writing the CompletionClearControl!" ,"Check the value of the hwIdCompletionClearControl and reacheability of the device!")), + new KeyValuePair(1234, new AxoMessengerTextItem("Error writing the ParameterBankNumber!" ,"Check the value of the hwIdParameterBankNumber and reacheability of the device!")), + new KeyValuePair(1235, new AxoMessengerTextItem("UserData has invalid size!" ,"Check the real size of the `UserData`, so as the value of the UserDataSize parameter!")), + new KeyValuePair(1236, new AxoMessengerTextItem("Error writing the 32bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1237, new AxoMessengerTextItem("Error writing the 64bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1238, new AxoMessengerTextItem("Error writing the 128bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + new KeyValuePair(1239, new AxoMessengerTextItem("Error writing the 250bytes of the UserData!" ,"Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), + //new KeyValuePair(1240, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_10!" ,"Check the value of the hwID_out_10 and reacheability of the device!")), + //new KeyValuePair(1241, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_11!" ,"Check the value of the hwID_out_11 and reacheability of the device!")), + //new KeyValuePair(1242, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_12!" ,"Check the value of the hwID_out_12 and reacheability of the device!")), + //new KeyValuePair(1243, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_13!" ,"Check the value of the hwID_out_13 and reacheability of the device!")), + //new KeyValuePair(1244, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_14!" ,"Check the value of the hwID_out_14 and reacheability of the device!")), + //new KeyValuePair(1245, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_15!" ,"Check the value of the hwID_out_15 and reacheability of the device!")), + //new KeyValuePair(1246, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_16!" ,"Check the value of the hwID_out_16 and reacheability of the device!")), + //new KeyValuePair(1247, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_17!" ,"Check the value of the hwID_out_17 and reacheability of the device!")), + //new KeyValuePair(1248, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_18!" ,"Check the value of the hwID_out_18 and reacheability of the device!")), + //new KeyValuePair(1249, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_19!" ,"Check the value of the hwID_out_19 and reacheability of the device!")), + //new KeyValuePair(1250, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_20!" ,"Check the value of the hwID_out_20 and reacheability of the device!")), - new KeyValuePair(716, new AxoMessengerTextItem("Error reading the HandshakeAndGeneralErrorStatus!", "Check the value of the hwIdHandshakeAndGeneralErrorStatus and reacheability of the device!")), - new KeyValuePair(717, new AxoMessengerTextItem("Error reading the BUSY_Status!", "Check the value of the hwIdBUSY_Status and reacheability of the device!")), - new KeyValuePair(718, new AxoMessengerTextItem("Error reading the CompletionStatus!", "Check the value of the hwIdCompletionStatus and reacheability of the device!")), - new KeyValuePair(719, new AxoMessengerTextItem("Error reading the ErrorStatus!", "Check the value of the hwIdErrorStatus and reacheability of the device!")), - new KeyValuePair(720, new AxoMessengerTextItem("Error reading the TerminalStatus!", "Check the value of the hwIdTerminalStatus and reacheability of the device!")), - new KeyValuePair(721, new AxoMessengerTextItem("Error reading the UnstableReadStatus!", "Check the value of the hwIdUnstableReadStatus and reacheability of the device!")), - new KeyValuePair(722, new AxoMessengerTextItem("Error reading the MatchingLevelAndTotalEvaluationGradeStatus!", "Check the value of the hwIdMatchingLevelAndTotalEvaluationGradeStatus and reacheability of the device!")), - new KeyValuePair(723, new AxoMessengerTextItem("Error reading the OperationalResultStatus!", "Check the value of the hwIdOperationalResultStatus and reacheability of the device!")), - new KeyValuePair(724, new AxoMessengerTextItem("Error reading the ReadData!", "Check the value of the hwIdReadData and reacheability of the device!")), - new KeyValuePair(725, new AxoMessengerTextItem("ResultData has invalid size!", "Check the real size of the `ResultData`, so as the value of the ResultDataSize parameter!")), - new KeyValuePair(726, new AxoMessengerTextItem("Error writing the LatchAndErrorClearControl!", "Check the value of the hwIdLatchAndErrorClearControl and reacheability of the device!")), - new KeyValuePair(727, new AxoMessengerTextItem("Error writing the OperationInstructionControl!", "Check the value of the hwIdOperationInstructionControl and reacheability of the device!")), - new KeyValuePair(728, new AxoMessengerTextItem("Error writing the CompletionClearControl!", "Check the value of the hwIdCompletionClearControl and reacheability of the device!")), - new KeyValuePair(729, new AxoMessengerTextItem("Error writing the ParameterBankNumber!", "Check the value of the hwIdParameterBankNumber and reacheability of the device!")), - new KeyValuePair(730, new AxoMessengerTextItem("UserData has invalid size!", "Check the real size of the `UserData`, so as the value of the UserDataSize parameter!")), - new KeyValuePair(731, new AxoMessengerTextItem("Error writing the 32bytes of the UserData!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(732, new AxoMessengerTextItem("Error writing the 64bytes of the UserData!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(733, new AxoMessengerTextItem("Error writing the 128bytes of the UserData!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(734, new AxoMessengerTextItem("Error writing the 250bytes of the UserData!", "Check the value of the hwIdUserData, the real size of the `UserData`, the value of the UserDataSize parameter and reacheability of the device!")), - new KeyValuePair(735, new AxoMessengerTextItem("Bank number out of range!", "Check the value of the Bank number!")), //// Clear task - //new KeyValuePair(800, new AxoMessengerTextItem("Clearing of the result data finished with error!", "Check the details.")), - //new KeyValuePair(801, new AxoMessengerTextItem("Clearing of the result data was aborted, while not yet completed!", "Check the details.")), + //new KeyValuePair(10000, new AxoMessengerTextItem("Clearing of the result data finished with error!" ,"Check the details.")), + //new KeyValuePair(10001, new AxoMessengerTextItem("Clearing of the result data was aborted, while not yet completed!" ,"Check the details.")), //// Read Task - //new KeyValuePair(810, new AxoMessengerTextItem("Reading finished with error!", "Check the details.")), - //new KeyValuePair(811, new AxoMessengerTextItem("Reading was aborted, while not yet completed!", "Check the details.")), + //new KeyValuePair(10010, new AxoMessengerTextItem("Reading finished with error!" ,"Check the details.")), + //new KeyValuePair(10011, new AxoMessengerTextItem("Reading was aborted, while not yet completed!" ,"Check the details.")), //// Continous reading - //new KeyValuePair(820, new AxoMessengerTextItem("Continous reading finished with error!", "Check the details.")), - //new KeyValuePair(821, new AxoMessengerTextItem("Continous reading was aborted, while not yet completed!", "Check the details.")), + //new KeyValuePair(10020, new AxoMessengerTextItem("Continous reading finished with error!" ,"Check the details.")), + //new KeyValuePair(10021, new AxoMessengerTextItem("Continous reading was aborted, while not yet completed!" ,"Check the details.")), // ClearResultDataTask - new KeyValuePair(830, new AxoMessengerTextItem("ClearResultDataTask finished with error!","Check the details.")), - new KeyValuePair(831, new AxoMessengerTextItem("ClearResultDataTask was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10030, new AxoMessengerTextItem("ClearResultDataTask finished with error!" ,"Check the details.")), + new KeyValuePair(10031, new AxoMessengerTextItem("ClearResultDataTask was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_10steps_2 - //new KeyValuePair(840, new AxoMessengerTextItem("TemplateTask_10steps_2 finished with error!","Check the details.")), - //new KeyValuePair(841, new AxoMessengerTextItem("TemplateTask_10steps_2 was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10040, new AxoMessengerTextItem("TemplateTask_10steps_2 finished with error!" ,"Check the details.")), + //new KeyValuePair(10041, new AxoMessengerTextItem("TemplateTask_10steps_2 was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_10steps_3 - //new KeyValuePair(850, new AxoMessengerTextItem("TemplateTask_10steps_3 finished with error!","Check the details.")), - //new KeyValuePair(851, new AxoMessengerTextItem("TemplateTask_10steps_3 was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10050, new AxoMessengerTextItem("TemplateTask_10steps_3 finished with error!" ,"Check the details.")), + //new KeyValuePair(10051, new AxoMessengerTextItem("TemplateTask_10steps_3 was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_10steps_4 - //new KeyValuePair(860, new AxoMessengerTextItem("TemplateTask_10steps_4 task finished with error!","Check the details.")), - //new KeyValuePair(861, new AxoMessengerTextItem("TemplateTask_10steps_4 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10060, new AxoMessengerTextItem("TemplateTask_10steps_4 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10061, new AxoMessengerTextItem("TemplateTask_10steps_4 task was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_10steps_5 - //new KeyValuePair(870, new AxoMessengerTextItem("TemplateTask_10steps_5 task finished with error!","Check the details.")), - //new KeyValuePair(871, new AxoMessengerTextItem("TemplateTask_10steps_5 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10070, new AxoMessengerTextItem("TemplateTask_10steps_5 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10071, new AxoMessengerTextItem("TemplateTask_10steps_5 task was aborted, while not yet completed!" ,"Check the details.")), // ReadTask - new KeyValuePair(880, new AxoMessengerTextItem("ReadTask finished with error!","Check the details.")), - new KeyValuePair(881, new AxoMessengerTextItem("ReadTask was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10080, new AxoMessengerTextItem("ReadTask finished with error!" ,"Check the details.")), + new KeyValuePair(10081, new AxoMessengerTextItem("ReadTask was aborted, while not yet completed!" ,"Check the details.")), // TuneTask - new KeyValuePair(900, new AxoMessengerTextItem("TuneTask task finished with error!","Check the details.")), - new KeyValuePair(901, new AxoMessengerTextItem("TuneTask task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10100, new AxoMessengerTextItem("TuneTask task finished with error!" ,"Check the details.")), + new KeyValuePair(10101, new AxoMessengerTextItem("TuneTask task was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_20steps_3 - //new KeyValuePair(920, new AxoMessengerTextItem("TemplateTask_20steps_3 task finished with error!","Check the details.")), - //new KeyValuePair(921, new AxoMessengerTextItem("TemplateTask_20steps_3 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10120, new AxoMessengerTextItem("TemplateTask_20steps_3 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10121, new AxoMessengerTextItem("TemplateTask_20steps_3 task was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_20steps_4 - //new KeyValuePair(940, new AxoMessengerTextItem("TemplateTask_20steps_4 task finished with error!","Check the details.")), - //new KeyValuePair(941, new AxoMessengerTextItem("TemplateTask_20steps_4 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10140, new AxoMessengerTextItem("TemplateTask_20steps_4 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10141, new AxoMessengerTextItem("TemplateTask_20steps_4 task was aborted, while not yet completed!" ,"Check the details.")), //// TemplateTask_20steps_5 - //new KeyValuePair(960, new AxoMessengerTextItem("TemplateTask_20steps_5 task finished with error!","Check the details.")), - //new KeyValuePair(961, new AxoMessengerTextItem("TemplateTask_20steps_5 task was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10160, new AxoMessengerTextItem("TemplateTask_20steps_5 task finished with error!" ,"Check the details.")), + //new KeyValuePair(10161, new AxoMessengerTextItem("TemplateTask_20steps_5 task was aborted, while not yet completed!" ,"Check the details.")), }; diff --git a/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_750_Component_Status/Axo_SR_750_Component_Status.cs b/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_750_Component_Status/Axo_SR_750_Component_Status.cs index cf94fafbe..83a5fc363 100644 --- a/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_750_Component_Status/Axo_SR_750_Component_Status.cs +++ b/src/components.keyence.vision/src/AXOpen.Components.Keyence.Vision/Axo_SR_750_Component_Status/Axo_SR_750_Component_Status.cs @@ -56,16 +56,16 @@ public string ErrorDescription //errorDescriptionDict.Add(528, "Waiting for the signal/variable `` to be set/reseted !"); //errorDescriptionDict.Add(529, "Waiting for the signal/variable `` to be set/reseted !"); // ClearResultDataTask - errorDescriptionDict.Add(530, "Waiting for the signal/variable `` to be set/reseted !"); - errorDescriptionDict.Add(531, "Waiting for the signal/variable `HandshakeAndGeneralErrorStatus.Error` to be reseted !"); - errorDescriptionDict.Add(532, "Waiting for the signal/variable `CompletionStatus.ReadComplete` to be reseted !"); - errorDescriptionDict.Add(533, "Waiting for the signal/variable `CompletionStatus.PresetComplete` to be reseted !"); - errorDescriptionDict.Add(534, "Waiting for the signal/variable `CompletionStatus.RegisterPresetDataComplete` to be reseted !"); - errorDescriptionDict.Add(535, "Waiting for the signal/variable `CompletionStatus.TuneComplete` to be reseted !"); - errorDescriptionDict.Add(536, "Waiting for the signal/variable `CompletionStatus.EXT_RequestComplete` to be reseted !"); - errorDescriptionDict.Add(537, "Waiting for the signal/variable `HandshakeAndGeneralErrorStatus.GeneralError` to be reseted !"); - errorDescriptionDict.Add(538, "Waiting for the signal/variable `` to be set/reseted !"); - errorDescriptionDict.Add(539, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(530, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(531, "Waiting for the signal/variable `HandshakeAndGeneralErrorStatus.Error` to be reseted !"); + errorDescriptionDict.Add(532, "Waiting for the signal/variable `CompletionStatus.ReadComplete` to be reseted !"); + errorDescriptionDict.Add(533, "Waiting for the signal/variable `CompletionStatus.PresetComplete` to be reseted !"); + errorDescriptionDict.Add(534, "Waiting for the signal/variable `CompletionStatus.RegisterPresetDataComplete` to be reseted !"); + errorDescriptionDict.Add(535, "Waiting for the signal/variable `CompletionStatus.TuneComplete` to be reseted !"); + errorDescriptionDict.Add(536, "Waiting for the signal/variable `CompletionStatus.EXT_RequestComplete` to be reseted !"); + errorDescriptionDict.Add(537, "Waiting for the signal/variable `HandshakeAndGeneralErrorStatus.GeneralError` to be reseted !"); + errorDescriptionDict.Add(538, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(539, "Waiting for the signal/variable `` to be set/reseted !"); //// TemplateTask_10steps_2 //errorDescriptionDict.Add(540, "Waiting for the signal/variable `` to be set/reseted !"); //errorDescriptionDict.Add(541, "Waiting for the signal/variable `` to be set/reseted !"); @@ -119,17 +119,17 @@ public string ErrorDescription errorDescriptionDict.Add(585, "Waiting for the signal/variable `CompletionStatus.TuneComplete` to be reseted !"); errorDescriptionDict.Add(586, "Waiting for the signal/variable `CompletionStatus.EXT_RequestComplete` to be reseted !"); errorDescriptionDict.Add(587, "Waiting for the signal/variable `HandshakeAndGeneralErrorStatus.GeneralError` to be reseted !"); - errorDescriptionDict.Add(588, "Waiting for the signal/variable `ParameterBankNumber.BankNumberRegister` to be set to value from 0 to 10 !"); - errorDescriptionDict.Add(589, "Waiting for the signal/variable `CompletionStatus.ReadComplete` to be set !"); - errorDescriptionDict.Add(590, "Waiting for the signal/variable `ReadData.ResultDataReadyCount` to be incremented !"); - errorDescriptionDict.Add(591, "Waiting for the signal/variable `CompletionStatus.ReadComplete` to be reseted !"); - errorDescriptionDict.Add(592, "Waiting for the signal/variable `` to be set/reseted !"); - errorDescriptionDict.Add(593, "Waiting for the signal/variable `` to be set/reseted !"); - errorDescriptionDict.Add(594, "Waiting for the signal/variable `` to be set/reseted !"); - errorDescriptionDict.Add(595, "Waiting for the signal/variable `` to be set/reseted !"); - errorDescriptionDict.Add(596, "Waiting for the signal/variable `` to be set/reseted !"); - errorDescriptionDict.Add(597, "Waiting for the signal/variable `` to be set/reseted !"); - errorDescriptionDict.Add(598, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(588, "Waiting for the signal/variable `ParameterBankNumber.BankNumberRegister` to be set to value from 0 to 10 !"); + errorDescriptionDict.Add(589, "Waiting for the signal/variable `CompletionStatus.ReadComplete` to be set !"); + errorDescriptionDict.Add(590, "Waiting for the signal/variable `ReadData.ResultDataReadyCount` to be incremented !"); + errorDescriptionDict.Add(591, "Waiting for the signal/variable `CompletionStatus.ReadComplete` to be reseted !"); + errorDescriptionDict.Add(592, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(593, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(594, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(595, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(596, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(597, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(598, "Waiting for the signal/variable `` to be set/reseted !"); errorDescriptionDict.Add(599, "Waiting for the signal/variable `` to be set/reseted !"); // TemplateTask_20steps_2 errorDescriptionDict.Add(600, "Waiting for the signal/variable `` to be set/reseted !"); @@ -215,52 +215,246 @@ public string ErrorDescription //errorDescriptionDict.Add(677, "Waiting for the signal/variable `` to be set/reseted !"); //errorDescriptionDict.Add(678, "Waiting for the signal/variable `` to be set/reseted !"); //errorDescriptionDict.Add(679, "Waiting for the signal/variable `` to be set/reseted !"); - // General alarms + // General alarms errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!"); - errorDescriptionDict.Add(702, "Input variable `homeSensor` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(703, "Input variable `workSensor` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(704, "Input variable `moveHomeSignal` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(705, "Input variable `moveWorkSignal` has NULL reference in `Run` method!"); - //// Stop task - //errorDescriptionDict.Add(800, "Stop task finished with error!"); - //errorDescriptionDict.Add(801, "Stop task was aborted, while not yet completed!"); - //// Move to home task - //errorDescriptionDict.Add(810, "Move to home task finished with error!"); - //errorDescriptionDict.Add(811, "Move to home task was aborted, while not yet completed!"); - //// Move to work task - //errorDescriptionDict.Add(820, "Move to work task finished with error!"); - //errorDescriptionDict.Add(821, "Move to work task was aborted, while not yet completed!"); - // ClearResultDataTask - errorDescriptionDict.Add(830, "ClearResultDataTask finished with error!"); - errorDescriptionDict.Add(831, "ClearResultDataTask was aborted, while not yet completed!"); - //// TemplateTask_10steps_2 - //errorDescriptionDict.Add(840, "TemplateTask_10steps_2 finished with error!"); - //errorDescriptionDict.Add(841, "TemplateTask_10steps_2 was aborted, while not yet completed!"); - //// TemplateTask_10steps_3 - //errorDescriptionDict.Add(850, "TemplateTask_10steps_3 finished with error!"); - //errorDescriptionDict.Add(851, "TemplateTask_10steps_3 was aborted, while not yet completed!"); - //// TemplateTask_10steps_4 - //errorDescriptionDict.Add(860, "TemplateTask_10steps_4 task finished with error!"); - //errorDescriptionDict.Add(861, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); - //// TemplateTask_10steps_5 - //errorDescriptionDict.Add(870, "TemplateTask_10steps_5 task finished with error!"); - //errorDescriptionDict.Add(871, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); - // ReadTask - errorDescriptionDict.Add(880, "ReadTask task finished with error!"); - errorDescriptionDict.Add(881, "ReadTask task was aborted, while not yet completed!"); - // TuneTask - errorDescriptionDict.Add(900, "TuneTask task finished with error!"); - errorDescriptionDict.Add(901, "TuneTask task was aborted, while not yet completed!"); - //// TemplateTask_20steps_3 - //errorDescriptionDict.Add(920, "TemplateTask_20steps_3 task finished with error!"); - //errorDescriptionDict.Add(921, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); - //// TemplateTask_20steps_4 - //errorDescriptionDict.Add(940, "TemplateTask_20steps_4 task finished with error!"); - //errorDescriptionDict.Add(941, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); - //// TemplateTask_20steps_5 - //errorDescriptionDict.Add(960, "TemplateTask_20steps_5 task finished with error!"); - //errorDescriptionDict.Add(961, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)."); + + errorDescriptionDict.Add(710, "Hw configuration error. Value of hwIdHandshakeAndGeneralErrorStatus is zero."); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1."); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1."); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1."); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1."); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1."); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'HandshakeAndGeneralErrorStatus' (GsdId=101)."); + + errorDescriptionDict.Add(720, "Hw configuration error. Value of hwIdBUSY_Status is zero."); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2."); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2."); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2."); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2."); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2."); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'BUSY_Status' (GsdId=102)."); + + errorDescriptionDict.Add(730, "Hw configuration error. Value of hwIdCompletionStatus is zero."); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3."); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3."); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3."); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3."); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3."); + errorDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'CompletionStatus '(GsdId=103)."); + + errorDescriptionDict.Add(740, "Hw configuration error. Value of hwIdErrorStatus is zero."); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4."); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4."); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4."); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4."); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4."); + errorDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'ErrorStatus' (GsdId=104)."); + + errorDescriptionDict.Add(750, "Hw configuration error. Value of hwIdTerminalStatus is zero."); + errorDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5."); + errorDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5."); + errorDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5."); + errorDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5."); + errorDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5."); + errorDescriptionDict.Add(756, "Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'TerminalStatus' (GsdId=105)."); + + errorDescriptionDict.Add(760, "Hw configuration error. Value of hwIdUnstableReadStatus is zero."); + errorDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6."); + errorDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6."); + errorDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6."); + errorDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6."); + errorDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6."); + errorDescriptionDict.Add(766, "Hw configuration error: Module with unexpected size or type detected in Slot 6. Expected module: 'UnstableReadStatus' (GsdId=106)."); + + errorDescriptionDict.Add(770, "Hw configuration error. Value of hwIdMatchingLevelAndTotalEvaluationGradeStatus is zero."); + errorDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7."); + errorDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7."); + errorDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7."); + errorDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7."); + errorDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7."); + errorDescriptionDict.Add(776, "Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'MatchingLevelAndTotalEvaluationGradeStatus' (GsdId=107)."); + + errorDescriptionDict.Add(780, "Hw configuration error. Value of hwIdOperationalResultStatus is zero."); + errorDescriptionDict.Add(781, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8."); + errorDescriptionDict.Add(782, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8."); + errorDescriptionDict.Add(783, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8."); + errorDescriptionDict.Add(784, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8."); + errorDescriptionDict.Add(785, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8."); + errorDescriptionDict.Add(786, "Hw configuration error: Module with unexpected size or type detected in Slot 8. Expected module: 'OperationalResultStatus' (GsdId=108)."); + errorDescriptionDict.Add(790, "Hw configuration error. Value of hwIdReadData is zero."); + errorDescriptionDict.Add(791, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9."); + errorDescriptionDict.Add(792, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9."); + errorDescriptionDict.Add(793, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9."); + errorDescriptionDict.Add(794, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9."); + errorDescriptionDict.Add(795, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9."); + errorDescriptionDict.Add(796, "Hw configuration error: Module with unexpected size or type detected in Slot 9. Expected module: 'Result_Data-32_bytes,Result_Data-64_bytes,Result_Data-128_bytes,Result_Data-246_bytes' (GsdId=109,110,111,112)."); + + errorDescriptionDict.Add(800, "Hw configuration error. Value of hwIdLatchAndErrorClearControlBitReg is zero."); + errorDescriptionDict.Add(801, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10."); + errorDescriptionDict.Add(802, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10."); + errorDescriptionDict.Add(803, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10."); + errorDescriptionDict.Add(804, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10."); + errorDescriptionDict.Add(805, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10."); + errorDescriptionDict.Add(806, "Hw configuration error: Module with unexpected size or type detected in Slot 10. Expected module: 'LatchAndErrorClearControlBitReg' (GsdId=201)."); + + errorDescriptionDict.Add(810, "Hw configuration error. Value of hwIdOperationInstructionControl is zero."); + errorDescriptionDict.Add(811, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11."); + errorDescriptionDict.Add(812, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11."); + errorDescriptionDict.Add(813, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11."); + errorDescriptionDict.Add(814, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11."); + errorDescriptionDict.Add(815, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11."); + errorDescriptionDict.Add(816, "Hw configuration error: Module with unexpected size or type detected in Slot 11. Expected module: 'OperationInstructionControl' (GsdId=202)."); + + errorDescriptionDict.Add(820, "Hw configuration error. Value of hwIdCompletionClearControl is zero."); + errorDescriptionDict.Add(821, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12."); + errorDescriptionDict.Add(822, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12."); + errorDescriptionDict.Add(823, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12."); + errorDescriptionDict.Add(824, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12."); + errorDescriptionDict.Add(825, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12."); + errorDescriptionDict.Add(826, "Hw configuration error: Module with unexpected size or type detected in Slot 12. Expected module: 'CompletionClearControl' (GsdId=203)."); + + errorDescriptionDict.Add(830, "Hw configuration error. Value of hwIdParameterBankNumber is zero."); + errorDescriptionDict.Add(831, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13."); + errorDescriptionDict.Add(832, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13."); + errorDescriptionDict.Add(833, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13."); + errorDescriptionDict.Add(834, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13."); + errorDescriptionDict.Add(835, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13."); + errorDescriptionDict.Add(836, "Hw configuration error: Module with unexpected size or type detected in Slot 13. Expected module: 'ParameterBankNumber' (GsdId=204)."); + + errorDescriptionDict.Add(840, "Hw configuration error. Value of hwIdUserData is zero."); + errorDescriptionDict.Add(841, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14."); + errorDescriptionDict.Add(842, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14."); + errorDescriptionDict.Add(843, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14."); + errorDescriptionDict.Add(844, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14."); + errorDescriptionDict.Add(845, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14."); + errorDescriptionDict.Add(846, "Hw configuration error: Module with unexpected size or type detected in Slot 14. Allowed modules: 'User_Data-32_bytes,User_Data-64_bytes,User_Data-128_bytes,User_Data-250_bytes' (GsdId=205,206,207,208)."); + + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!"); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1132, "Input variable `hwIdHandshakeAndGeneralErrorStatus` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1133, "Input variable `hwIdBUSY_Status` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1134, "Input variable `hwIdCompletionStatus` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1135, "Input variable `hwIdErrorStatus` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1136, "Input variable `hwIdTerminalStatus` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1137, "Input variable `hwIdUnstableReadStatus` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1138, "Input variable `hwIdMatchingLevelAndTotalEvaluationGradeStatus` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1139, "Input variable `hwIdOperationalResultStatus` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1140, "Input variable `hwIdReadData` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1141, "Input variable `hwIdLatchAndErrorClearControl` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1142, "Input variable `hwIdOperationInstructionControl` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1143, "Input variable `hwIdCompletionClearControl` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1144, "Input variable `hwIdParameterBankNumber` has invalid value in `Run` method!"); + errorDescriptionDict.Add(1145, "Input variable `hwIdUserData` has invalid value in `Run` method!"); + //errorDescriptionDict.Add(1146, "Input variable `hwID_in_15` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1147, "Input variable `hwID_in_16` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1148, "Input variable `hwID_in_17` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1149, "Input variable `hwID_in_18` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1150, "Input variable `hwID_in_19` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1151, "Input variable `hwID_in_20` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1152, "Input variable `hwID_out_1` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1153, "Input variable `hwID_out_2` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1154, "Input variable `hwID_out_3` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1155, "Input variable `hwID_out_4` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1156, "Input variable `hwID_out_5` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1157, "Input variable `hwID_out_6` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1158, "Input variable `hwID_out_7` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1159, "Input variable `hwID_out_8` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1160, "Input variable `hwID_out_9` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1161, "Input variable `hwID_out_10` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1162, "Input variable `hwID_out_11` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1163, "Input variable `hwID_out_12` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1164, "Input variable `hwID_out_13` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1165, "Input variable `hwID_out_14` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1166, "Input variable `hwID_out_15` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1167, "Input variable `hwID_out_16` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1168, "Input variable `hwID_out_17` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1169, "Input variable `hwID_out_18` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1170, "Input variable `hwID_out_19` has invalid value in `Run` method!" ); + //errorDescriptionDict.Add(1171, "Input variable `hwID_out_20` has invalid value in `Run` method!" ); + + errorDescriptionDict.Add(1201, "Error reading the HandshakeAndGeneralErrorStatus!"); + errorDescriptionDict.Add(1202, "Error reading the BUSY_Status!"); + errorDescriptionDict.Add(1203, "Error reading the CompletionStatus!"); + errorDescriptionDict.Add(1204, "Error reading the ErrorStatus!"); + errorDescriptionDict.Add(1205, "Error reading the TerminalStatus!"); + errorDescriptionDict.Add(1206, "Error reading the UnstableReadStatus!"); + errorDescriptionDict.Add(1207, "Error reading the MatchingLevelAndTotalEvaluationGradeStatus!"); + errorDescriptionDict.Add(1208, "Error reading the OperationalResultStatus!"); + errorDescriptionDict.Add(1209, "Error reading the ReadData!"); + errorDescriptionDict.Add(1210, "ResultData has invalid size!"); + //errorDescriptionDict.Add(1211, "Error reading the TemplateComponentInputStructure_hwID_in_11!" ); + //errorDescriptionDict.Add(1212, "Error reading the TemplateComponentInputStructure_hwID_in_12!" ); + //errorDescriptionDict.Add(1213, "Error reading the TemplateComponentInputStructure_hwID_in_13!" ); + //errorDescriptionDict.Add(1214, "Error reading the TemplateComponentInputStructure_hwID_in_14!" ); + //errorDescriptionDict.Add(1215, "Error reading the TemplateComponentInputStructure_hwID_in_15!" ); + //errorDescriptionDict.Add(1216, "Error reading the TemplateComponentInputStructure_hwID_in_16!" ); + //errorDescriptionDict.Add(1217, "Error reading the TemplateComponentInputStructure_hwID_in_17!" ); + //errorDescriptionDict.Add(1218, "Error reading the TemplateComponentInputStructure_hwID_in_18!" ); + //errorDescriptionDict.Add(1219, "Error reading the TemplateComponentInputStructure_hwID_in_19!" ); + //errorDescriptionDict.Add(1220, "Error reading the TemplateComponentInputStructure_hwID_in_20!" ); + + errorDescriptionDict.Add(1231, "Error writing the LatchAndErrorClearControl!"); + errorDescriptionDict.Add(1232, "Error writing the OperationInstructionControl!"); + errorDescriptionDict.Add(1233, "Error writing the CompletionClearControl!"); + errorDescriptionDict.Add(1234, "Error writing the ParameterBankNumber!"); + errorDescriptionDict.Add(1235, "UserData has invalid size!"); + errorDescriptionDict.Add(1236, "Error writing the 32bytes of the UserData!"); + errorDescriptionDict.Add(1237, "Error writing the 64bytes of the UserData!"); + errorDescriptionDict.Add(1238, "Error writing the 128bytes of the UserData!"); + errorDescriptionDict.Add(1239, "Error writing the 250bytes of the UserData!"); + //errorDescriptionDict.Add(1240, "Error writing the TemplateComponentOutputStructure_hwID_out_10!" ); + //errorDescriptionDict.Add(1241, "Error writing the TemplateComponentOutputStructure_hwID_out_11!" ); + //errorDescriptionDict.Add(1242, "Error writing the TemplateComponentOutputStructure_hwID_out_12!" ); + //errorDescriptionDict.Add(1243, "Error writing the TemplateComponentOutputStructure_hwID_out_13!" ); + //errorDescriptionDict.Add(1244, "Error writing the TemplateComponentOutputStructure_hwID_out_14!" ); + //errorDescriptionDict.Add(1245, "Error writing the TemplateComponentOutputStructure_hwID_out_15!" ); + //errorDescriptionDict.Add(1246, "Error writing the TemplateComponentOutputStructure_hwID_out_16!" ); + //errorDescriptionDict.Add(1247, "Error writing the TemplateComponentOutputStructure_hwID_out_17!" ); + //errorDescriptionDict.Add(1248, "Error writing the TemplateComponentOutputStructure_hwID_out_18!" ); + //errorDescriptionDict.Add(1249, "Error writing the TemplateComponentOutputStructure_hwID_out_19!" ); + //errorDescriptionDict.Add(1250, "Error writing the TemplateComponentOutputStructure_hwID_out_20!" ); + + //// Clear task); + //errorDescriptionDict.Add(10000, "Clearing of the result data finished with error!" ); + //errorDescriptionDict.Add(10001, "Clearing of the result data was aborted, while not yet completed!" ); + //// Read Task); + //errorDescriptionDict.Add(10010, "Reading finished with error!" ); + //errorDescriptionDict.Add(10011, "Reading was aborted, while not yet completed!" ); + //// Continous reading); + //errorDescriptionDict.Add(10020, "Continous reading finished with error!" ); + //errorDescriptionDict.Add(10021, "Continous reading was aborted, while not yet completed!" ); + // ClearResultDataTask); + errorDescriptionDict.Add(10030, "ClearResultDataTask finished with error!"); + errorDescriptionDict.Add(10031, "ClearResultDataTask was aborted, while not yet completed!"); + //// TemplateTask_10steps_2); + //errorDescriptionDict.Add(10040, "TemplateTask_10steps_2 finished with error!" ); + //errorDescriptionDict.Add(10041, "TemplateTask_10steps_2 was aborted, while not yet completed!" ); + //// TemplateTask_10steps_3); + //errorDescriptionDict.Add(10050, "TemplateTask_10steps_3 finished with error!" ); + //errorDescriptionDict.Add(10051, "TemplateTask_10steps_3 was aborted, while not yet completed!" ); + //// TemplateTask_10steps_4); + //errorDescriptionDict.Add(10060, "TemplateTask_10steps_4 task finished with error!" ); + //errorDescriptionDict.Add(10061, "TemplateTask_10steps_4 task was aborted, while not yet completed!" ); + //// TemplateTask_10steps_5); + //errorDescriptionDict.Add(10070, "TemplateTask_10steps_5 task finished with error!" ); + //errorDescriptionDict.Add(10071, "TemplateTask_10steps_5 task was aborted, while not yet completed!" ); + // ReadTask); + errorDescriptionDict.Add(10080, "ReadTask finished with error!"); + errorDescriptionDict.Add(10081, "ReadTask was aborted, while not yet completed!"); + // TuneTask); + errorDescriptionDict.Add(10100, "TuneTask task finished with error!"); + errorDescriptionDict.Add(10101, "TuneTask task was aborted, while not yet completed!"); + //// TemplateTask_20steps_3); + //errorDescriptionDict.Add(10120, "TemplateTask_20steps_3 task finished with error!" ); + //errorDescriptionDict.Add(10121, "TemplateTask_20steps_3 task was aborted, while not yet completed!" ); + //// TemplateTask_20steps_4); + //errorDescriptionDict.Add(10140, "TemplateTask_20steps_4 task finished with error!" ); + //errorDescriptionDict.Add(10141, "TemplateTask_20steps_4 task was aborted, while not yet completed!" ); + //// TemplateTask_20steps_5); + //errorDescriptionDict.Add(10160, "TemplateTask_20steps_5 task finished with error!" ); + //errorDescriptionDict.Add(10161, "TemplateTask_20steps_5 task was aborted, while not yet completed!" ); } string errorDescription = " "; @@ -521,52 +715,45 @@ public string ActionDescription //actionDescriptionDict.Add(479, "TemplateTask_20steps_5 running, add the detailed description of the current action."); //actionDescriptionDict.Add(261, "TemplateTask_20steps_5 finished succesfully."); //actionDescriptionDict.Add(262, "TemplateTask_20steps_5 restored."); - //// General alarms - //actionDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); - //actionDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!"); - //actionDescriptionDict.Add(702, "Input variable `homeSensor` has NULL reference in `Run` method!"); - //actionDescriptionDict.Add(703, "Input variable `workSensor` has NULL reference in `Run` method!"); - //actionDescriptionDict.Add(704, "Input variable `moveHomeSignal` has NULL reference in `Run` method!"); - //actionDescriptionDict.Add(705, "Input variable `moveWorkSignal` has NULL reference in `Run` method!"); //// Stop task - //actionDescriptionDict.Add(800, "Stop task finished with error!"); - //actionDescriptionDict.Add(801, "Stop task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10000, "Stop task finished with error!"); + //actionDescriptionDict.Add(10001, "Stop task was aborted, while not yet completed!"); //// Move to home task - //actionDescriptionDict.Add(810, "Move to home task finished with error!"); - //actionDescriptionDict.Add(811, "Move to home task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10010, "Move to home task finished with error!"); + //actionDescriptionDict.Add(10011, "Move to home task was aborted, while not yet completed!"); //// Move to work task - //actionDescriptionDict.Add(820, "Move to work task finished with error!"); - //actionDescriptionDict.Add(821, "Move to work task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10020, "Move to work task finished with error!"); + //actionDescriptionDict.Add(10021, "Move to work task was aborted, while not yet completed!"); // ClearResultDataTask - actionDescriptionDict.Add(830, "ClearResultDataTask finished with error!"); - actionDescriptionDict.Add(831, "ClearResultDataTask was aborted, while not yet completed!"); + actionDescriptionDict.Add(10030, "ClearResultDataTask finished with error!"); + actionDescriptionDict.Add(10031, "ClearResultDataTask was aborted, while not yet completed!"); //// TemplateTask_10steps_2 - //actionDescriptionDict.Add(840, "TemplateTask_10steps_2 finished with error!"); - //actionDescriptionDict.Add(841, "TemplateTask_10steps_2 was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10040, "TemplateTask_10steps_2 finished with error!"); + //actionDescriptionDict.Add(10041, "TemplateTask_10steps_2 was aborted, while not yet completed!"); //// TemplateTask_10steps_3 - //actionDescriptionDict.Add(850, "TemplateTask_10steps_3 finished with error!"); - //actionDescriptionDict.Add(851, "TemplateTask_10steps_3 was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10050, "TemplateTask_10steps_3 finished with error!"); + //actionDescriptionDict.Add(10051, "TemplateTask_10steps_3 was aborted, while not yet completed!"); //// TemplateTask_10steps_4 - //actionDescriptionDict.Add(860, "TemplateTask_10steps_4 task finished with error!"); - //actionDescriptionDict.Add(861, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10060, "TemplateTask_10steps_4 task finished with error!"); + //actionDescriptionDict.Add(10061, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); //// TemplateTask_10steps_5 - //actionDescriptionDict.Add(870, "TemplateTask_10steps_5 task finished with error!"); - //actionDescriptionDict.Add(871, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10070, "TemplateTask_10steps_5 task finished with error!"); + //actionDescriptionDict.Add(10071, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); // ReadTask - actionDescriptionDict.Add(880, "ReadTask task finished with error!"); - actionDescriptionDict.Add(881, "ReadTask task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10080, "ReadTask task finished with error!"); + actionDescriptionDict.Add(10081, "ReadTask task was aborted, while not yet completed!"); // TuneTask - actionDescriptionDict.Add(900, "TuneTask task finished with error!"); - actionDescriptionDict.Add(901, "TuneTask task was aborted, while not yet completed!"); + actionDescriptionDict.Add(10100, "TuneTask task finished with error!"); + actionDescriptionDict.Add(10101, "TuneTask task was aborted, while not yet completed!"); //// TemplateTask_20steps_3 - //actionDescriptionDict.Add(920, "TemplateTask_20steps_3 task finished with error!"); - //actionDescriptionDict.Add(921, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10120, "TemplateTask_20steps_3 task finished with error!"); + //actionDescriptionDict.Add(10121, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); //// TemplateTask_20steps_4 - //actionDescriptionDict.Add(940, "TemplateTask_20steps_4 task finished with error!"); - //actionDescriptionDict.Add(941, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10140, "TemplateTask_20steps_4 task finished with error!"); + //actionDescriptionDict.Add(10141, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); //// TemplateTask_20steps_5 - //actionDescriptionDict.Add(960, "TemplateTask_20steps_5 task finished with error!"); - //actionDescriptionDict.Add(961, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + //actionDescriptionDict.Add(10160, "TemplateTask_20steps_5 task finished with error!"); + //actionDescriptionDict.Add(10161, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); } diff --git a/src/components.kuka.robotics/app/apax.yml b/src/components.kuka.robotics/app/apax.yml index 668b66f70..ea8b62c8b 100644 --- a/src/components.kuka.robotics/app/apax.yml +++ b/src/components.kuka.robotics/app/apax.yml @@ -1,11 +1,12 @@ -name: "app_axopen.components.kuka.robotics" +name: "app_axopen.components.kuka.robotics" version: '0.0.0-dev.0' type: app targets: - "1500" + # - llvm variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Kuka.Robotics" @@ -18,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -26,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -41,76 +42,139 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + diff --git a/src/components.kuka.robotics/app/src/Documentation/Component_1.st b/src/components.kuka.robotics/app/src/Documentation/Component_1.st index bd64d0b46..a9bfbb9ce 100644 --- a/src/components.kuka.robotics/app/src/Documentation/Component_1.st +++ b/src/components.kuka.robotics/app/src/Documentation/Component_1.st @@ -29,9 +29,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; // - ExampleRobot.Run(THIS, - HwIdentifiers#KRC4_HwID, - HwIdentifiers#KRC4_DIO512_512_digital_in__and_outputs_HwID); + ExampleRobot.Run(THIS,HwIdentifiers#KRC4_HwID); // THIS.UseInSequencer(); diff --git a/src/components.kuka.robotics/app/src/Documentation/Component_2.st b/src/components.kuka.robotics/app/src/Documentation/Component_2.st index d7c61df0c..2147d5aba 100644 --- a/src/components.kuka.robotics/app/src/Documentation/Component_2.st +++ b/src/components.kuka.robotics/app/src/Documentation/Component_2.st @@ -29,9 +29,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; // - ExampleRobot.Run(THIS, - HwIdentifiers#KRC4_HwID, - HwIdentifiers#KRC4_DIO512_512_digital_in__and_outputs_HwID); + ExampleRobot.Run(THIS,HwIdentifiers#KRC4_HwID); // THIS.UseInSequencer(); diff --git a/src/components.kuka.robotics/app/src/Sandbox/SandboxContext.st b/src/components.kuka.robotics/app/src/Sandbox/SandboxContext.st index d213c69d2..a627cde54 100644 --- a/src/components.kuka.robotics/app/src/Sandbox/SandboxContext.st +++ b/src/components.kuka.robotics/app/src/Sandbox/SandboxContext.st @@ -9,9 +9,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics METHOD PROTECTED OVERRIDE Main THIS.InitializeRootObject(_rootObject); - ExampleRobot.Run(_rootObject, - HwIdentifiers#KRC4_HwID, - HwIdentifiers#KRC4_DIO512_512_digital_in__and_outputs_HwID); + ExampleRobot.Run(_rootObject,HwIdentifiers#KRC4_HwID); IF ActivateManualControl THEN ExampleRobot.ActivateManualControl(); diff --git a/src/components.kuka.robotics/ctrl/apax.yml b/src/components.kuka.robotics/ctrl/apax.yml index 094231c8d..9a0cc3825 100644 --- a/src/components.kuka.robotics/ctrl/apax.yml +++ b/src/components.kuka.robotics/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.components.robotics": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.kuka.robotics/ctrl/src/AxoKrc4_v_5_x_x.st b/src/components.kuka.robotics/ctrl/src/AxoKrc4_v_5_x_x.st index fdf9f0206..720647705 100644 --- a/src/components.kuka.robotics/ctrl/src/AxoKrc4_v_5_x_x.st +++ b/src/components.kuka.robotics/ctrl/src/AxoKrc4_v_5_x_x.st @@ -3,6 +3,7 @@ USING AXOpen.Messaging; USING AXOpen.Messaging.Static; USING AXOpen.Components.Robotics; USING AXOpen.Components.Abstractions.Robotics; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Kuka.Robotics {S7.extern=ReadWrite} @@ -12,17 +13,26 @@ NAMESPACE AXOpen.Components.Kuka.Robotics _infoTime : LTIME := LT#2S; _errorTimer : AXOpen.Timers.OnDelayTimer; _errorTime : LTIME := LT#5S; - _blink : AXOpen.Timers.AxoBlinker; _context : IAxoContext; _stopTasksAreActive : BOOL; _stopType : eAxoRoboticsStopType; _someTaskIsActive : BOOL; _hwID : WORD; + _hwId_None : WORD; _hwId_512_DI_DO : WORD; _dword: DWORD; _data : ARRAY[0..63] OF BYTE; - _returnValue : WORD; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _blink : AXOpen.Timers.AxoBlinker; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR VAR PUBLIC //HEADER @@ -92,10 +102,10 @@ NAMESPACE AXOpen.Components.Kuka.Robotics {#ix-attr:[Container(Layout.Stack)]} {#ix-attr:[ComponentDetails("Status")]} {#ix-attr:[ReadOnly()]} - RobotStatus : AxoKukaRobotics_Component_Status_v_5_x_x; - Messenger : AXOpen.Messaging.Static.AxoMessenger; - TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; - _progress : INT := 0; + Status : AxoKukaRobotics_Component_Status_v_5_x_x; + Messenger : AXOpen.Messaging.Static.AxoMessenger; + TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; + _progress : INT := 0; END_VAR VAR PUBLIC //Hardware signals @@ -128,34 +138,145 @@ NAMESPACE AXOpen.Components.Kuka.Robotics VAR_INPUT parent : IAxoObject; hwID : WORD; - hwId_512_DI_DO : WORD; // Hardware Id of the input data of the robot END_VAR SUPER.Run(parent); Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwId_512_DI_DO = WORD#0, eAxoMessageCategory#ProgrammingError); + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; - IF parent = NULL THEN - RobotStatus.Error.Id := UINT#700; - RETURN; - ELSIF hwId_512_DI_DO = WORD#0 THEN - RobotStatus.Error.Id := UINT#701; - RETURN; - END_IF; + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; //Needs to be checked, by default there is a safety module configured once gsdml file is applied + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_None := TO_WORD(_outHwid); + IF _hwId_None <> WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + // IF _retval = WORD#8091 THEN + // Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + // Status.Error.Id := UINT#711; + // RETURN; + // END_IF; + // IF _retval = WORD#8094 THEN + // Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + // Status.Error.Id := UINT#712; + // RETURN; + // END_IF; + // IF _retval = WORD#8095 THEN + // Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + // Status.Error.Id := UINT#713; + // RETURN; + // END_IF; + // IF _retval = WORD#8096 THEN + // Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + // Status.Error.Id := UINT#714; + // RETURN; + // END_IF; + // IF _retval = WORD#8097 THEN + // Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + // Status.Error.Id := UINT#715; + // RETURN; + // END_IF; + // ReadHardwareIOAddress(hardwareIdentifier := _hwId_None , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + // IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + // Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + // Status.Error.Id := UINT#716; + // RETURN; + // END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwId_512_DI_DO := TO_WORD(_outHwid); + IF _hwId_512_DI_DO = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwId_512_DI_DO , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#8 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + + IF parent = NULL THEN + Messenger.Activate(UINT#1130,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1130; + RETURN; + END_IF; + IF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1131; + RETURN; + END_IF; + IF _hwId_None <> WORD#0 THEN + Messenger.Activate(UINT#1132,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1132; + RETURN; + END_IF; + IF _hwId_512_DI_DO = WORD#0 THEN + Messenger.Activate(UINT#1133,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1133; + RETURN; + END_IF; - _hwID := hwID ; - _hwId_512_DI_DO := hwId_512_DI_DO; + _initHwCheckDone := TRUE; + END_IF; - //****************************************** //***********UPDATE**INPUTS****************** - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwId_512_DI_DO ,_data); - Messenger.ActivateOnCondition(ULINT#703,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - RobotStatus.Error.Id := UINT#703; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwId_512_DI_DO ,_data); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; @@ -304,23 +425,23 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //*************StartAtMainTask************ StartAtMainTask.IsDisabled := _stopTasksAreActive; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#100; + Status.Action.Id := UINT#100; END_IF; Messenger.ActivateOnCondition(ULINT#100,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#101,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); IF StartAtMainTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 300; END_IF; IF _progress = 300 THEN - TaskMessenger.ActivateOnCondition(ULINT#500, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#500; + TaskMessenger.Activate( UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; END_IF; Outputs.StartAtMain := NOT Inputs.PpMoved AND _blink.output; @@ -340,23 +461,23 @@ NAMESPACE AXOpen.Components.Kuka.Robotics THIS.CallTimers(TRUE); StartAtMainTask.ThrowWhen(_errorTimer.output ); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartAtMainTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#101; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#101; + Status.Error.Id := UINT#0; ELSIF StartAtMainTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#800; - RobotStatus.Error.Id := UINT#800; + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; ELSIF StartAtMainTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#801; - RobotStatus.Error.Id := UINT#801; + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,StartAtMainTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,StartAtMainTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10000,StartAtMainTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,StartAtMainTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,StartAtMainTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartAtMainTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN - RobotStatus.Action.Id := UINT#102; + Status.Action.Id := UINT#102; _progress := 0; END_IF; //******************************************* @@ -365,7 +486,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //***********StartMotorsAndProgramTask******* StartMotorsAndProgramTask.IsDisabled := _stopTasksAreActive OR StartProgramTask.IsBusy() OR StartMotorsTask.IsBusy(); IF StartMotorsAndProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#110; + Status.Action.Id := UINT#110; END_IF; Messenger.ActivateOnCondition(ULINT#110,StartMotorsAndProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#111,StartMotorsAndProgramTask.IsDone(), eAxoMessageCategory#Info); @@ -373,16 +494,16 @@ NAMESPACE AXOpen.Components.Kuka.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 310; END_IF; IF _progress = 310 THEN - TaskMessenger.ActivateOnCondition(ULINT#510, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#510; + TaskMessenger.Activate( UINT#510, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#510; END_IF; IF Inputs.UserSafetySwitchClosed THEN @@ -392,9 +513,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 311 THEN - TaskMessenger.ActivateOnCondition(ULINT#511, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#511; + TaskMessenger.Activate( UINT#511, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#511; END_IF; IF Inputs.AlarmStopActive THEN @@ -404,9 +525,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 312 THEN - TaskMessenger.ActivateOnCondition(ULINT#512, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#512; + TaskMessenger.Activate( UINT#512, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#512; END_IF; Outputs.DrivesOff:=TRUE; @@ -420,9 +541,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 313 THEN - TaskMessenger.ActivateOnCondition(ULINT#513, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#513; + TaskMessenger.Activate( UINT#513, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#513; END_IF; Outputs.ErrorConfirmation := Inputs.StopMess AND _blink.output; @@ -434,9 +555,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 314 THEN - TaskMessenger.ActivateOnCondition(ULINT#514, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#514; + TaskMessenger.Activate( UINT#514, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#514; END_IF; Outputs.MoveEnable:=TRUE; @@ -448,9 +569,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 315 THEN - TaskMessenger.ActivateOnCondition(ULINT#515, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#515; + TaskMessenger.Activate( UINT#515, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#515; END_IF; Outputs.ActivateInterface:=TRUE; @@ -462,9 +583,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 316 THEN - TaskMessenger.ActivateOnCondition(ULINT#516, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#516; + TaskMessenger.Activate( UINT#516, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#516; END_IF; IF Inputs.StopMess OR Inputs.AlarmStopActive OR NOT Inputs.RcReady THEN @@ -488,23 +609,23 @@ NAMESPACE AXOpen.Components.Kuka.Robotics THIS.CallTimers(TRUE); StartMotorsAndProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMotorsAndProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#111; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#111; + Status.Error.Id := UINT#0; ELSIF StartMotorsAndProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#810; - RobotStatus.Error.Id := UINT#810; + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; ELSIF StartMotorsAndProgramTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#811; - RobotStatus.Error.Id := UINT#811; + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; END_IF; - Messenger.ActivateOnCondition(ULINT#810,StartMotorsAndProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#811,StartMotorsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10010,StartMotorsAndProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,StartMotorsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#112,StartMotorsAndProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsAndProgramTask.RestoreTriggered() AND _progress >= 310 AND _progress <= 319 THEN - RobotStatus.Action.Id := UINT#112; + Status.Action.Id := UINT#112; _progress := 0; END_IF; //******************************************* @@ -512,7 +633,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //****StartMotorsProgramAndMovementsTask***** StartMotorsProgramAndMovementsTask.IsDisabled := _stopTasksAreActive OR StartProgramTask.IsBusy() OR StartMotorsTask.IsBusy() OR StartMovementsTask.IsBusy(); IF StartMotorsProgramAndMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#120; + Status.Action.Id := UINT#120; END_IF; Messenger.ActivateOnCondition(ULINT#120,StartMotorsProgramAndMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#121,StartMotorsProgramAndMovementsTask.IsDone(), eAxoMessageCategory#Info); @@ -520,16 +641,16 @@ NAMESPACE AXOpen.Components.Kuka.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 320; END_IF; IF _progress = 320 THEN - TaskMessenger.ActivateOnCondition(ULINT#520, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#520; + TaskMessenger.Activate( UINT#520, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#520; END_IF; IF Inputs.UserSafetySwitchClosed THEN @@ -539,9 +660,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 321 THEN - TaskMessenger.ActivateOnCondition(ULINT#521, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#521; + TaskMessenger.Activate( UINT#521, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#521; END_IF; IF Inputs.AlarmStopActive THEN @@ -551,9 +672,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 322 THEN - TaskMessenger.ActivateOnCondition(ULINT#522, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#522; + TaskMessenger.Activate( UINT#522, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#522; END_IF; Outputs.DrivesOff:=TRUE; @@ -567,9 +688,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 323 THEN - TaskMessenger.ActivateOnCondition(ULINT#523, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#523; + TaskMessenger.Activate( UINT#523, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#523; END_IF; Outputs.ErrorConfirmation := Inputs.StopMess AND _blink.output; @@ -581,9 +702,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 324 THEN - TaskMessenger.ActivateOnCondition(ULINT#524, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#524; + TaskMessenger.Activate( UINT#524, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#524; END_IF; Outputs.MoveEnable:=TRUE; @@ -595,9 +716,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 325 THEN - TaskMessenger.ActivateOnCondition(ULINT#525, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#525; + TaskMessenger.Activate( UINT#525, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#525; END_IF; Outputs.ActivateInterface:=TRUE; @@ -609,9 +730,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 326 THEN - TaskMessenger.ActivateOnCondition(ULINT#526, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#526; + TaskMessenger.Activate( UINT#526, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#526; END_IF; IF Inputs.StopMess OR Inputs.AlarmStopActive OR NOT Inputs.RcReady THEN @@ -628,18 +749,18 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 327 THEN - TaskMessenger.ActivateOnCondition(ULINT#527, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#527; + TaskMessenger.Activate( UINT#527, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#527; END_IF; - Outputs.GlobalSpeed := RobotStatus.CurrentMovementParameters.GlobalSpeed; - Outputs.ToolNo := RobotStatus.CurrentMovementParameters.ToolNo; - Outputs.WorkobjectNo := RobotStatus.CurrentMovementParameters.WorkobjectNo; - Outputs.PointNo := RobotStatus.CurrentMovementParameters.PointNo; - Outputs.UserSpecSpeed1 := RobotStatus.CurrentMovementParameters.UserSpecSpeed1; - Outputs.UserSpecSpeed2 := RobotStatus.CurrentMovementParameters.UserSpecSpeed2; - Outputs.Coordinates := RobotStatus.CurrentMovementParameters.Coordinates; + Outputs.GlobalSpeed := Status.CurrentMovementParameters.GlobalSpeed; + Outputs.ToolNo := Status.CurrentMovementParameters.ToolNo; + Outputs.WorkobjectNo := Status.CurrentMovementParameters.WorkobjectNo; + Outputs.PointNo := Status.CurrentMovementParameters.PointNo; + Outputs.UserSpecSpeed1 := Status.CurrentMovementParameters.UserSpecSpeed1; + Outputs.UserSpecSpeed2 := Status.CurrentMovementParameters.UserSpecSpeed2; + Outputs.Coordinates := Status.CurrentMovementParameters.Coordinates; Outputs.ActionNo := BYTE#254; @@ -651,42 +772,48 @@ NAMESPACE AXOpen.Components.Kuka.Robotics IF _progress = 328 THEN IF _infoTimer.output THEN - IF Inputs.GlobalSpeed <> RobotStatus.CurrentMovementParameters.GlobalSpeed THEN - RobotStatus.Error.Id := UINT#528;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! + IF Inputs.GlobalSpeed <> Status.CurrentMovementParameters.GlobalSpeed THEN + TaskMessenger.Activate( UINT#528, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#528;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! END_IF; - IF Inputs.ToolNo <> RobotStatus.CurrentMovementParameters.ToolNo THEN - RobotStatus.Error.Id := UINT#529;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! + IF Inputs.ToolNo <> Status.CurrentMovementParameters.ToolNo THEN + TaskMessenger.Activate( UINT#529, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#529;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! END_IF; - IF Inputs.WorkobjectNo <> RobotStatus.CurrentMovementParameters.WorkobjectNo THEN - RobotStatus.Error.Id := UINT#530;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! + IF Inputs.WorkobjectNo <> Status.CurrentMovementParameters.WorkobjectNo THEN + TaskMessenger.Activate( UINT#530, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#530;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! END_IF; - IF Inputs.PointNo <> RobotStatus.CurrentMovementParameters.PointNo THEN - RobotStatus.Error.Id := UINT#531;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! + IF Inputs.PointNo <> Status.CurrentMovementParameters.PointNo THEN + TaskMessenger.Activate( UINT#531, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#531;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! END_IF; - IF Inputs.UserSpecSpeed1 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed1 THEN - RobotStatus.Error.Id := UINT#532;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! + IF Inputs.UserSpecSpeed1 <> Status.CurrentMovementParameters.UserSpecSpeed1 THEN + TaskMessenger.Activate( UINT#532, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#532;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! END_IF; - IF Inputs.UserSpecSpeed2 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed2 THEN - RobotStatus.Error.Id := UINT#533;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! + IF Inputs.UserSpecSpeed2 <> Status.CurrentMovementParameters.UserSpecSpeed2 THEN + TaskMessenger.Activate( UINT#533, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#533;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! END_IF; END_IF; - IF Inputs.GlobalSpeed = RobotStatus.CurrentMovementParameters.GlobalSpeed AND - Inputs.ToolNo = RobotStatus.CurrentMovementParameters.ToolNo AND - Inputs.WorkobjectNo = RobotStatus.CurrentMovementParameters.WorkobjectNo AND - Inputs.PointNo = RobotStatus.CurrentMovementParameters.PointNo AND - Inputs.UserSpecSpeed1 = RobotStatus.CurrentMovementParameters.UserSpecSpeed1 AND - Inputs.UserSpecSpeed2 = RobotStatus.CurrentMovementParameters.UserSpecSpeed2 AND - AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,RobotStatus.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN + IF Inputs.GlobalSpeed = Status.CurrentMovementParameters.GlobalSpeed AND + Inputs.ToolNo = Status.CurrentMovementParameters.ToolNo AND + Inputs.WorkobjectNo = Status.CurrentMovementParameters.WorkobjectNo AND + Inputs.PointNo = Status.CurrentMovementParameters.PointNo AND + Inputs.UserSpecSpeed1 = Status.CurrentMovementParameters.UserSpecSpeed1 AND + Inputs.UserSpecSpeed2 = Status.CurrentMovementParameters.UserSpecSpeed2 AND + AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,Status.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN THIS.CallTimers(FALSE); _progress:=334; END_IF; END_IF; IF _progress = 334 THEN - TaskMessenger.ActivateOnCondition(ULINT#534, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#534; + TaskMessenger.Activate( UINT#534, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#534; END_IF; Outputs.ActionNo := BYTE#253; @@ -698,12 +825,12 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 335 THEN - TaskMessenger.ActivateOnCondition(ULINT#535, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#535; + TaskMessenger.Activate( UINT#535, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#535; END_IF; - Outputs.ActionNo := RobotStatus.CurrentMovementParameters.ActionNo; + Outputs.ActionNo := Status.CurrentMovementParameters.ActionNo; IF Outputs.ActionNo = Inputs.ActionNo THEN THIS.CallTimers(FALSE); @@ -712,9 +839,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 336 THEN - TaskMessenger.ActivateOnCondition(ULINT#536, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#536; + TaskMessenger.Activate( UINT#536, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#536; END_IF; Outputs.ActionNo := BYTE#255; @@ -727,26 +854,26 @@ NAMESPACE AXOpen.Components.Kuka.Robotics THIS.CallTimers(TRUE); StartMotorsProgramAndMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMotorsProgramAndMovementsTask.IsFirstExecutionCycle() THEN - MovementParameters := RobotStatus.CurrentMovementParameters; + MovementParameters := Status.CurrentMovementParameters; END_IF; IF StartMotorsProgramAndMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#121; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#121; + Status.Error.Id := UINT#0; ELSIF StartMotorsProgramAndMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#820; - RobotStatus.Error.Id := UINT#820; + Status.Action.Id := UINT#10020; + Status.Error.Id := UINT#10020; ELSIF StartMotorsProgramAndMovementsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#821; - RobotStatus.Error.Id := UINT#821; + Status.Action.Id := UINT#10021; + Status.Error.Id := UINT#10021; END_IF; - Messenger.ActivateOnCondition(ULINT#820,StartMotorsProgramAndMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#821,StartMotorsProgramAndMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10020,StartMotorsProgramAndMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10021,StartMotorsProgramAndMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#122,StartMotorsProgramAndMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsProgramAndMovementsTask.RestoreTriggered() AND _progress >= 320 AND _progress <= 339 THEN - RobotStatus.Action.Id := UINT#122; + Status.Action.Id := UINT#122; _progress := 0; END_IF; //******************************************* @@ -754,7 +881,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //***********StartMotorsTask***************** StartMotorsTask.IsDisabled := _stopTasksAreActive OR StartMotorsProgramAndMovementsTask.IsBusy() OR StartMotorsAndProgramTask.IsBusy(); IF StartMotorsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#140; + Status.Action.Id := UINT#140; END_IF; Messenger.ActivateOnCondition(ULINT#140,StartMotorsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#141,StartMotorsTask.IsDone(), eAxoMessageCategory#Info); @@ -762,16 +889,16 @@ NAMESPACE AXOpen.Components.Kuka.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 340; END_IF; IF _progress = 340 THEN - TaskMessenger.ActivateOnCondition(ULINT#540, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#540; + TaskMessenger.Activate( UINT#540, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#540; END_IF; IF Inputs.UserSafetySwitchClosed THEN @@ -781,9 +908,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 341 THEN - TaskMessenger.ActivateOnCondition(ULINT#541, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#541; + TaskMessenger.Activate( UINT#541, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#541; END_IF; IF Inputs.AlarmStopActive THEN @@ -793,9 +920,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 342 THEN - TaskMessenger.ActivateOnCondition(ULINT#542, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#542; + TaskMessenger.Activate( UINT#542, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#542; END_IF; Outputs.DrivesOff:=TRUE; @@ -816,23 +943,23 @@ NAMESPACE AXOpen.Components.Kuka.Robotics THIS.CallTimers(TRUE); StartMotorsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMotorsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#141; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#141; + Status.Error.Id := UINT#0; ELSIF StartMotorsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#840; - RobotStatus.Error.Id := UINT#840; + Status.Action.Id := UINT#10040; + Status.Error.Id := UINT#10040; ELSIF StartMotorsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#841; - RobotStatus.Error.Id := UINT#841; + Status.Action.Id := UINT#10041; + Status.Error.Id := UINT#10041; END_IF; - Messenger.ActivateOnCondition(ULINT#840,StartMotorsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#841,StartMotorsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10040,StartMotorsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10041,StartMotorsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#142,StartMotorsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsTask.RestoreTriggered() AND _progress >= 340 AND _progress <= 349 THEN - RobotStatus.Action.Id := UINT#142; + Status.Action.Id := UINT#142; _progress := 0; END_IF; //******************************************* @@ -840,22 +967,22 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //***********StartMovementsTask************** StartMovementsTask.IsDisabled := _stopTasksAreActive OR StartMotorsProgramAndMovementsTask.IsBusy(); IF StartMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#150; + Status.Action.Id := UINT#150; END_IF; Messenger.ActivateOnCondition(ULINT#150,StartMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#151,StartMovementsTask.IsDone(), eAxoMessageCategory#Info); IF StartMovementsTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 350; END_IF; IF _progress = 350 THEN - TaskMessenger.ActivateOnCondition(ULINT#550, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#550; + TaskMessenger.Activate( UINT#550, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#550; END_IF; IF Inputs.ProActive THEN @@ -865,10 +992,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 351 THEN - TaskMessenger.ActivateOnCondition(ULINT#551, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#551; + TaskMessenger.Activate( UINT#551, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#551; END_IF; IF Inputs.DrivesReady THEN @@ -878,10 +1004,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 352 THEN - TaskMessenger.ActivateOnCondition(ULINT#552, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#552; + TaskMessenger.Activate( UINT#552, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#552; END_IF; IF NOT Inputs.StopMess THEN @@ -891,19 +1016,18 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 353 THEN - TaskMessenger.ActivateOnCondition(ULINT#553, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#553; + TaskMessenger.Activate( UINT#553, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#553; END_IF; - Outputs.GlobalSpeed := RobotStatus.CurrentMovementParameters.GlobalSpeed; - Outputs.ToolNo := RobotStatus.CurrentMovementParameters.ToolNo; - Outputs.WorkobjectNo := RobotStatus.CurrentMovementParameters.WorkobjectNo; - Outputs.PointNo := RobotStatus.CurrentMovementParameters.PointNo; - Outputs.UserSpecSpeed1 := RobotStatus.CurrentMovementParameters.UserSpecSpeed1; - Outputs.UserSpecSpeed2 := RobotStatus.CurrentMovementParameters.UserSpecSpeed2; - Outputs.Coordinates := RobotStatus.CurrentMovementParameters.Coordinates; + Outputs.GlobalSpeed := Status.CurrentMovementParameters.GlobalSpeed; + Outputs.ToolNo := Status.CurrentMovementParameters.ToolNo; + Outputs.WorkobjectNo := Status.CurrentMovementParameters.WorkobjectNo; + Outputs.PointNo := Status.CurrentMovementParameters.PointNo; + Outputs.UserSpecSpeed1 := Status.CurrentMovementParameters.UserSpecSpeed1; + Outputs.UserSpecSpeed2 := Status.CurrentMovementParameters.UserSpecSpeed2; + Outputs.Coordinates := Status.CurrentMovementParameters.Coordinates; Outputs.ActionNo := BYTE#254; @@ -915,43 +1039,48 @@ NAMESPACE AXOpen.Components.Kuka.Robotics IF _progress = 354 THEN IF _infoTimer.output THEN - IF Inputs.GlobalSpeed <> RobotStatus.CurrentMovementParameters.GlobalSpeed THEN - RobotStatus.Error.Id := UINT#554;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! + IF Inputs.GlobalSpeed <> Status.CurrentMovementParameters.GlobalSpeed THEN + TaskMessenger.Activate( UINT#554, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#554;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! END_IF; - IF Inputs.ToolNo <> RobotStatus.CurrentMovementParameters.ToolNo THEN - RobotStatus.Error.Id := UINT#555;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! + IF Inputs.ToolNo <> Status.CurrentMovementParameters.ToolNo THEN + TaskMessenger.Activate( UINT#555, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#555;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! END_IF; - IF Inputs.WorkobjectNo <> RobotStatus.CurrentMovementParameters.WorkobjectNo THEN - RobotStatus.Error.Id := UINT#556;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! + IF Inputs.WorkobjectNo <> Status.CurrentMovementParameters.WorkobjectNo THEN + TaskMessenger.Activate( UINT#556, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#556;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! END_IF; - IF Inputs.PointNo <> RobotStatus.CurrentMovementParameters.PointNo THEN - RobotStatus.Error.Id := UINT#557;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! + IF Inputs.PointNo <> Status.CurrentMovementParameters.PointNo THEN + TaskMessenger.Activate( UINT#557, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#557;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! END_IF; - IF Inputs.UserSpecSpeed1 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed1 THEN - RobotStatus.Error.Id := UINT#558;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! + IF Inputs.UserSpecSpeed1 <> Status.CurrentMovementParameters.UserSpecSpeed1 THEN + TaskMessenger.Activate( UINT#558, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#558;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! END_IF; - IF Inputs.UserSpecSpeed2 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed2 THEN - RobotStatus.Error.Id := UINT#559;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! + IF Inputs.UserSpecSpeed2 <> Status.CurrentMovementParameters.UserSpecSpeed2 THEN + TaskMessenger.Activate( UINT#559, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#559;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! END_IF; END_IF; - IF Inputs.GlobalSpeed = RobotStatus.CurrentMovementParameters.GlobalSpeed AND - Inputs.ToolNo = RobotStatus.CurrentMovementParameters.ToolNo AND - Inputs.WorkobjectNo = RobotStatus.CurrentMovementParameters.WorkobjectNo AND - Inputs.PointNo = RobotStatus.CurrentMovementParameters.PointNo AND - Inputs.UserSpecSpeed1 = RobotStatus.CurrentMovementParameters.UserSpecSpeed1 AND - Inputs.UserSpecSpeed2 = RobotStatus.CurrentMovementParameters.UserSpecSpeed2 AND - AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,RobotStatus.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN + IF Inputs.GlobalSpeed = Status.CurrentMovementParameters.GlobalSpeed AND + Inputs.ToolNo = Status.CurrentMovementParameters.ToolNo AND + Inputs.WorkobjectNo = Status.CurrentMovementParameters.WorkobjectNo AND + Inputs.PointNo = Status.CurrentMovementParameters.PointNo AND + Inputs.UserSpecSpeed1 = Status.CurrentMovementParameters.UserSpecSpeed1 AND + Inputs.UserSpecSpeed2 = Status.CurrentMovementParameters.UserSpecSpeed2 AND + AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,Status.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN THIS.CallTimers(FALSE); _progress:=360; END_IF; END_IF; IF _progress = 360 THEN - TaskMessenger.ActivateOnCondition(ULINT#560, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#560; + TaskMessenger.Activate( UINT#560, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#560; END_IF; Outputs.ActionNo := BYTE#253; @@ -963,35 +1092,33 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 361 THEN - TaskMessenger.ActivateOnCondition(ULINT#561, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#561; + TaskMessenger.Activate( UINT#561, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#561; END_IF; - Outputs.ActionNo := RobotStatus.CurrentMovementParameters.ActionNo; + Outputs.ActionNo := Status.CurrentMovementParameters.ActionNo; IF Outputs.ActionNo = Inputs.ActionNo THEN THIS.CallTimers(FALSE); - _progress:=662; + _progress:=362; END_IF; END_IF; - IF _progress = 662 THEN - TaskMessenger.ActivateOnCondition(ULINT#562, _infoTimer.output, eAxoMessageCategory#Warning); - + IF _progress = 362 THEN IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#562; + TaskMessenger.Activate( UINT#562, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#562; END_IF; Outputs.ActionNo := BYTE#255; IF Outputs.ActionNo = Inputs.ActionNo THEN - _progress := 663; + _progress := 363; END_IF; END_IF; - IF _progress = 663 THEN + IF _progress = 363 THEN _progress := 0; StartMovementsTask.DoneWhen(TRUE); END_IF; @@ -1000,26 +1127,26 @@ NAMESPACE AXOpen.Components.Kuka.Robotics StartMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartMovementsTask.IsFirstExecutionCycle() THEN - MovementParameters := RobotStatus.CurrentMovementParameters; + MovementParameters := Status.CurrentMovementParameters; END_IF; IF StartMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#151; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#151; + Status.Error.Id := UINT#0; ELSIF StartMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#850; - RobotStatus.Error.Id := UINT#850; + Status.Action.Id := UINT#10050; + Status.Error.Id := UINT#10050; ELSIF StartMovementsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#851; - RobotStatus.Error.Id := UINT#851; + Status.Action.Id := UINT#10051; + Status.Error.Id := UINT#10051; END_IF; - Messenger.ActivateOnCondition(ULINT#850,StartMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#851,StartMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10050,StartMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10051,StartMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#152,StartMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMovementsTask.RestoreTriggered() AND _progress >= 350 AND _progress <= 369 THEN - RobotStatus.Action.Id := UINT#152; + Status.Action.Id := UINT#152; _progress := 0; END_IF; //******************************************* @@ -1027,7 +1154,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //***********StartProgramTask**************** StartProgramTask.IsDisabled := _stopTasksAreActive; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#170; + Status.Action.Id := UINT#170; END_IF; Messenger.ActivateOnCondition(ULINT#170,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#171,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); @@ -1035,16 +1162,16 @@ NAMESPACE AXOpen.Components.Kuka.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 370; END_IF; IF _progress = 370 THEN - TaskMessenger.ActivateOnCondition(ULINT#570, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#570; + TaskMessenger.Activate( UINT#570, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#570; END_IF; IF Inputs.UserSafetySwitchClosed THEN @@ -1054,9 +1181,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 371 THEN - TaskMessenger.ActivateOnCondition(ULINT#571, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#571; + TaskMessenger.Activate( UINT#571, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#571; END_IF; IF Inputs.AlarmStopActive THEN @@ -1066,9 +1193,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 372 THEN - TaskMessenger.ActivateOnCondition(ULINT#572, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#572; + TaskMessenger.Activate( UINT#572, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#572; END_IF; Outputs.DrivesOff:=TRUE; @@ -1081,9 +1208,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 373 THEN - TaskMessenger.ActivateOnCondition(ULINT#573, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#573; + TaskMessenger.Activate( UINT#573, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#573; END_IF; Outputs.ErrorConfirmation := Inputs.StopMess AND _blink.output; @@ -1096,9 +1223,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 374 THEN - TaskMessenger.ActivateOnCondition(ULINT#574, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#574; + TaskMessenger.Activate( UINT#574, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#574; END_IF; Outputs.MoveEnable:=TRUE; @@ -1110,9 +1237,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 375 THEN - TaskMessenger.ActivateOnCondition(ULINT#575, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#575; + TaskMessenger.Activate( UINT#575, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#575; END_IF; Outputs.ActivateInterface:=TRUE; @@ -1124,9 +1251,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 376 THEN - TaskMessenger.ActivateOnCondition(ULINT#576, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#576; + TaskMessenger.Activate( UINT#576, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#576; END_IF; IF Inputs.StopMess OR Inputs.AlarmStopActive OR NOT Inputs.RcReady THEN @@ -1150,23 +1277,23 @@ NAMESPACE AXOpen.Components.Kuka.Robotics THIS.CallTimers(TRUE); StartProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StartProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#171; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#171; + Status.Error.Id := UINT#0; ELSIF StartProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#870; - RobotStatus.Error.Id := UINT#870; + Status.Action.Id := UINT#10070; + Status.Error.Id := UINT#10070; ELSIF StartProgramTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#871; - RobotStatus.Error.Id := UINT#871; + Status.Action.Id := UINT#10071; + Status.Error.Id := UINT#10071; END_IF; - Messenger.ActivateOnCondition(ULINT#870,StartProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#871,StartProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10070,StartProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10071,StartProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#172,StartProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartProgramTask.RestoreTriggered() AND _progress >= 370 AND _progress <= 379 THEN - RobotStatus.Action.Id := UINT#172; + Status.Action.Id := UINT#172; _progress := 0; END_IF; //******************************************* @@ -1174,7 +1301,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //***********StopMotorsTask****************** StopMotorsTask.IsDisabled := FALSE; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#180; + Status.Action.Id := UINT#180; END_IF; Messenger.ActivateOnCondition(ULINT#180,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#181,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); @@ -1182,16 +1309,16 @@ NAMESPACE AXOpen.Components.Kuka.Robotics _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 380; END_IF; IF _progress = 380 THEN - TaskMessenger.ActivateOnCondition(ULINT#580, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#580; + TaskMessenger.Activate( UINT#580, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#580; END_IF; Outputs.DrivesOn :=TRUE; @@ -1212,23 +1339,23 @@ NAMESPACE AXOpen.Components.Kuka.Robotics THIS.CallTimers(TRUE); StopMotorsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopMotorsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#181; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#181; + Status.Error.Id := UINT#0; ELSIF StopMotorsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#880; - RobotStatus.Error.Id := UINT#880; + Status.Action.Id := UINT#10080; + Status.Error.Id := UINT#10080; ELSIF StopMotorsTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#881; - RobotStatus.Error.Id := UINT#881; + Status.Action.Id := UINT#10081; + Status.Error.Id := UINT#10081; END_IF; - Messenger.ActivateOnCondition(ULINT#880,StopMotorsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#881,StopMotorsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10080,StopMotorsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10081,StopMotorsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#182,StopMotorsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMotorsTask.RestoreTriggered() AND _progress >= 380 AND _progress <= 389 THEN - RobotStatus.Action.Id := UINT#182; + Status.Action.Id := UINT#182; _progress := 0; END_IF; //******************************************* @@ -1236,22 +1363,22 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //***********StopMovementsAndProgramTask***** StopMovementsAndProgramTask.IsDisabled := FALSE; IF StopMovementsAndProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#190; + Status.Action.Id := UINT#190; END_IF; Messenger.ActivateOnCondition(ULINT#190,StopMovementsAndProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#191,StopMovementsAndProgramTask.IsDone(), eAxoMessageCategory#Info); IF StopMovementsAndProgramTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 390; END_IF; IF _progress = 390 THEN - TaskMessenger.ActivateOnCondition(ULINT#590, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#590; + TaskMessenger.Activate( UINT#590, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#590; END_IF; Outputs.MoveEnable := FALSE; @@ -1263,9 +1390,9 @@ NAMESPACE AXOpen.Components.Kuka.Robotics END_IF; IF _progress = 391 THEN - TaskMessenger.ActivateOnCondition(ULINT#591, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#591; + TaskMessenger.Activate( UINT#591, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#591; END_IF; IF NOT Inputs.ProActive THEN @@ -1283,23 +1410,23 @@ NAMESPACE AXOpen.Components.Kuka.Robotics StopMovementsAndProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopMovementsAndProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#191; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#191; + Status.Error.Id := UINT#0; ELSIF StopMovementsAndProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#890; - RobotStatus.Error.Id := UINT#890; + Status.Action.Id := UINT#10090; + Status.Error.Id := UINT#10090; ELSIF StopMovementsAndProgramTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#891; - RobotStatus.Error.Id := UINT#891; + Status.Action.Id := UINT#10091; + Status.Error.Id := UINT#10091; END_IF; - Messenger.ActivateOnCondition(ULINT#890,StopMovementsAndProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#891,StopMovementsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10090,StopMovementsAndProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10091,StopMovementsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#192,StopMovementsAndProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMovementsAndProgramTask.RestoreTriggered() AND _progress >= 390 AND _progress <= 399 THEN - RobotStatus.Action.Id := UINT#192; + Status.Action.Id := UINT#192; _progress := 0; END_IF; //******************************************* @@ -1307,22 +1434,22 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //***********StopMovementsTask*************** StopMovementsTask.IsDisabled := FALSE; IF StopMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#400; + Status.Action.Id := UINT#400; END_IF; Messenger.ActivateOnCondition(ULINT#200,StopMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#201,StopMovementsTask.IsDone(), eAxoMessageCategory#Info); IF StopMovementsTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 400; END_IF; IF _progress = 400 THEN - TaskMessenger.ActivateOnCondition(ULINT#600, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#600; + TaskMessenger.Activate( UINT#600, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#600; END_IF; Outputs.MoveEnable := FALSE; @@ -1343,23 +1470,23 @@ NAMESPACE AXOpen.Components.Kuka.Robotics StopMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#201; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#201; + Status.Error.Id := UINT#0; ELSIF StopMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#900; - RobotStatus.Error.Id := UINT#900; + Status.Action.Id := UINT#10100; + Status.Error.Id := UINT#10100; ELSIF StopMovementsTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#901; - RobotStatus.Error.Id := UINT#901; + Status.Action.Id := UINT#10101; + Status.Error.Id := UINT#10101; END_IF; - Messenger.ActivateOnCondition(ULINT#900,StopMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#901,StopMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10100,StopMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10101,StopMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#202,StopMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMovementsTask.RestoreTriggered() AND _progress >= 400 AND _progress <= 409 THEN - RobotStatus.Action.Id := UINT#202; + Status.Action.Id := UINT#202; _progress := 0; END_IF; //******************************************* @@ -1367,22 +1494,22 @@ NAMESPACE AXOpen.Components.Kuka.Robotics //***********StopProgramTask***************** StopProgramTask.IsDisabled := FALSE; IF StopProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#210; + Status.Action.Id := UINT#210; END_IF; Messenger.ActivateOnCondition(ULINT#210,StopProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#211,StopProgramTask.IsDone(), eAxoMessageCategory#Info); IF StopProgramTask.Execute(THIS) THEN IF _progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 410; END_IF; IF _progress = 410 THEN - TaskMessenger.ActivateOnCondition(ULINT#610, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#610; + TaskMessenger.Activate( UINT#610, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#610; END_IF; Outputs.MoveEnable:=FALSE; @@ -1402,23 +1529,23 @@ NAMESPACE AXOpen.Components.Kuka.Robotics StopProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF StopProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#911; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#911; + Status.Error.Id := UINT#0; ELSIF StopProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#910; - RobotStatus.Error.Id := UINT#910; + Status.Action.Id := UINT#10110; + Status.Error.Id := UINT#10110; ELSIF StopProgramTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#911; - RobotStatus.Error.Id := UINT#911; + Status.Action.Id := UINT#10111; + Status.Error.Id := UINT#10111; END_IF; - Messenger.ActivateOnCondition(ULINT#910,StopProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#911,StopProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10110,StopProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10111,StopProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#212,StopProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopProgramTask.RestoreTriggered() AND _progress >= 410 AND _progress <= 419 THEN - RobotStatus.Action.Id := UINT#912; + Status.Action.Id := UINT#912; _progress := 0; END_IF; //******************************************* @@ -1431,19 +1558,19 @@ NAMESPACE AXOpen.Components.Kuka.Robotics OR StopMovementsAndProgramTask.IsBusy() OR StopProgramTask.IsBusy(); - Messenger.ActivateOnCondition(ULINT#705,_someTaskIsActive AND NOT Inputs.AlarmStopActive, eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#706,_someTaskIsActive AND NOT Inputs.UserSafetySwitchClosed, eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#707,_someTaskIsActive AND Inputs.Error, eAxoMessageCategory#Error); IF _someTaskIsActive THEN IF(NOT Inputs.AlarmStopActive) THEN - RobotStatus.Error.Id := UINT#705; + Messenger.Activate(UINT#20001,eAxoMessageCategory#Error); + Status.Error.Id := UINT#20001; END_IF; IF(NOT Inputs.UserSafetySwitchClosed) THEN - RobotStatus.Error.Id := UINT#706; + Messenger.Activate(UINT#20002,eAxoMessageCategory#Error); + Status.Error.Id := UINT#20002; END_IF; IF(Inputs.Error) THEN - RobotStatus.Error.Id := UINT#707; + Messenger.Activate(UINT#20003,eAxoMessageCategory#Error); + Status.Error.Id := UINT#20003; END_IF; END_IF; @@ -1547,17 +1674,17 @@ NAMESPACE AXOpen.Components.Kuka.Robotics _data[42] := _dword.%B1; _data[43] := _dword.%B0; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwId_512_DI_DO,_data); - Messenger.ActivateOnCondition(ULINT#704,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - RobotStatus.Error.Id := UINT#704; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwId_512_DI_DO,_data); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; END_IF; //******************************************* END_METHOD METHOD PROTECTED OVERRIDE ManualControl - RobotStatus.CurrentMovementParameters := MovementParameters; + Status.CurrentMovementParameters := MovementParameters; END_METHOD /// @@ -1574,7 +1701,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics StartMotorsTask.Restore(); StartMovementsTask.Restore(); StartMotorsProgramAndMovementsTask.Restore(); - RobotStatus.Action.Id := UINT#50; + Status.Action.Id := UINT#50; RestoreTask.DoneWhen(TRUE); END_METHOD @@ -1590,7 +1717,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics VAR_IN_OUT inData : AxoRoboticsMovementsParams; END_VAR - RobotStatus.CurrentMovementParameters := inData; + Status.CurrentMovementParameters := inData; StartMotorsProgramAndMovements := StartMotorsProgramAndMovementsTask.Invoke(THIS); END_METHOD @@ -1603,7 +1730,7 @@ NAMESPACE AXOpen.Components.Kuka.Robotics VAR_IN_OUT inData : AxoRoboticsMovementsParams; END_VAR - RobotStatus.CurrentMovementParameters := inData; + Status.CurrentMovementParameters := inData; StartMovements := StartMovementsTask.Invoke(THIS); END_METHOD diff --git a/src/components.kuka.robotics/src/AXOpen.Components.Kuka.Robotics/AxoKrc4_v_5_x_x/AxoKrc4_v_5_x_x.cs b/src/components.kuka.robotics/src/AXOpen.Components.Kuka.Robotics/AxoKrc4_v_5_x_x/AxoKrc4_v_5_x_x.cs index 3064c55a1..064a8f903 100644 --- a/src/components.kuka.robotics/src/AXOpen.Components.Kuka.Robotics/AxoKrc4_v_5_x_x/AxoKrc4_v_5_x_x.cs +++ b/src/components.kuka.robotics/src/AXOpen.Components.Kuka.Robotics/AxoKrc4_v_5_x_x/AxoKrc4_v_5_x_x.cs @@ -71,34 +71,446 @@ private void InitializeMessenger() new KeyValuePair(211, new AxoMessengerTextItem("Stop program finished succesfully.", "")), new KeyValuePair(212, new AxoMessengerTextItem("Stop program restored.", "")), + // General alarms + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_3 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_4 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_5 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_6 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 6. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_7 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(780, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_8 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(781, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(782, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(783, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(784, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(785, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ,"Check the hardware configuration.")), + new KeyValuePair(786, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 8. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(790, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_9 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(791, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(792, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(793, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(794, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(795, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9." ,"Check the hardware configuration.")), + new KeyValuePair(796, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 9. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(800, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_10 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(801, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(802, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(803, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(804, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(805, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10." ,"Check the hardware configuration.")), + new KeyValuePair(806, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 10. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(810, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_11 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(811, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(812, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(813, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(814, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(815, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11." ,"Check the hardware configuration.")), + new KeyValuePair(816, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 11. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(820, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_12 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(821, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(822, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(823, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(824, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(825, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12." ,"Check the hardware configuration.")), + new KeyValuePair(826, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 12. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(830, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_13 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(831, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(832, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(833, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(834, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(835, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13." ,"Check the hardware configuration.")), + new KeyValuePair(836, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 13. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(840, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_14 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(841, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(842, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(843, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(844, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(845, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14." ,"Check the hardware configuration.")), + new KeyValuePair(846, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 14. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(850, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_15 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(851, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(852, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(853, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(854, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(855, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 15." ,"Check the hardware configuration.")), + new KeyValuePair(856, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 15. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(860, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_16 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(861, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(862, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(863, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(864, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(865, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 16." ,"Check the hardware configuration.")), + new KeyValuePair(866, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 16. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(870, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_17 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(871, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(872, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(873, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(874, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(875, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 17." ,"Check the hardware configuration.")), + new KeyValuePair(876, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 17. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(880, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_18 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(881, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(882, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(883, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(884, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(885, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 18." ,"Check the hardware configuration.")), + new KeyValuePair(886, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 18. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(890, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_19 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(891, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(892, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(893, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(894, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(895, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 19." ,"Check the hardware configuration.")), + new KeyValuePair(896, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 19. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(900, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_in_20 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(901, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(902, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(903, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(904, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(905, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 20." ,"Check the hardware configuration.")), + new KeyValuePair(906, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 20. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(910, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(911, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(912, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(913, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(914, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(915, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 21." ,"Check the hardware configuration.")), + new KeyValuePair(916, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 21. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(920, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(921, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(922, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(923, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(924, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(925, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 22." ,"Check the hardware configuration.")), + new KeyValuePair(926, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 22. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(930, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_3 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(931, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(932, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(933, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(934, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(935, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 23." ,"Check the hardware configuration.")), + new KeyValuePair(936, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 23. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(940, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_4 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(941, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(942, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(943, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(944, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(945, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 24." ,"Check the hardware configuration.")), + new KeyValuePair(946, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 24. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(950, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_5 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(951, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(952, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(953, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(954, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(955, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 25." ,"Check the hardware configuration.")), + new KeyValuePair(956, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 25. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(960, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_6 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(961, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(962, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(963, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(964, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(965, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 26." ,"Check the hardware configuration.")), + new KeyValuePair(966, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 26. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(970, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_7 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(971, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(972, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(973, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(974, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(975, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 27." ,"Check the hardware configuration.")), + new KeyValuePair(976, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 27. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(980, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_8 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(981, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(982, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(983, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(984, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(985, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 28." ,"Check the hardware configuration.")), + new KeyValuePair(986, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 28. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(990, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_9 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(991, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(992, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(993, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(994, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(995, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 29." ,"Check the hardware configuration.")), + new KeyValuePair(996, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 29. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1000, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_10 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1001, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1002, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1003, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1004, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1005, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 30." ,"Check the hardware configuration.")), + new KeyValuePair(1006, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 30. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1010, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_11 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1011, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1012, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1013, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1014, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1015, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 31." ,"Check the hardware configuration.")), + new KeyValuePair(1016, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 31. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1020, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_12 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1021, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1022, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1023, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1024, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1025, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 32." ,"Check the hardware configuration.")), + new KeyValuePair(1026, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 32. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1030, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_13 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1031, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1032, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1033, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1034, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1035, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 33." ,"Check the hardware configuration.")), + new KeyValuePair(1036, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 33. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1040, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_14 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1041, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1042, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1043, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1044, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1045, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 34." ,"Check the hardware configuration.")), + new KeyValuePair(1046, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 34. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1050, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_15 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1051, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1052, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1053, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1054, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1055, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 35." ,"Check the hardware configuration.")), + new KeyValuePair(1056, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 35. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1060, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_16 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1061, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1062, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1063, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1064, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1065, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 36." ,"Check the hardware configuration.")), + new KeyValuePair(1066, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 36. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1070, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_17 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1071, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1072, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1073, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1074, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1075, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 37." ,"Check the hardware configuration.")), + new KeyValuePair(1076, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 37. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1080, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_18 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1081, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1082, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1083, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1084, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1085, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 38." ,"Check the hardware configuration.")), + new KeyValuePair(1086, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 38. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1090, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_19 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1091, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1092, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1093, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1094, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1095, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 39." ,"Check the hardware configuration.")), + new KeyValuePair(1096, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 39. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1100, new AxoMessengerTextItem("Hw configuration error. Value of _hwID_out_20 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(1101, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1102, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1103, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1104, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1105, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 40." ,"Check the hardware configuration.")), + new KeyValuePair(1106, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 40. Expected module: 'gsd_id_of_req_module'." ,"Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwID_in_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_1` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `hwID_in_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_2` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `hwID_in_3` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_3` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `hwID_in_4` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_4` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `hwID_in_5` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_5` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `hwID_in_6` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_6` parameter is assigned.")), + new KeyValuePair(1138, new AxoMessengerTextItem("Input variable `hwID_in_7` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_7` parameter is assigned.")), + new KeyValuePair(1139, new AxoMessengerTextItem("Input variable `hwID_in_8` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_8` parameter is assigned.")), + new KeyValuePair(1140, new AxoMessengerTextItem("Input variable `hwID_in_9` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_9` parameter is assigned.")), + new KeyValuePair(1141, new AxoMessengerTextItem("Input variable `hwID_in_10` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_10` parameter is assigned.")), + new KeyValuePair(1142, new AxoMessengerTextItem("Input variable `hwID_in_11` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_11` parameter is assigned.")), + new KeyValuePair(1143, new AxoMessengerTextItem("Input variable `hwID_in_12` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_12` parameter is assigned.")), + new KeyValuePair(1144, new AxoMessengerTextItem("Input variable `hwID_in_13` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_13` parameter is assigned.")), + new KeyValuePair(1145, new AxoMessengerTextItem("Input variable `hwID_in_14` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_14` parameter is assigned.")), + new KeyValuePair(1146, new AxoMessengerTextItem("Input variable `hwID_in_15` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_15` parameter is assigned.")), + new KeyValuePair(1147, new AxoMessengerTextItem("Input variable `hwID_in_16` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_16` parameter is assigned.")), + new KeyValuePair(1148, new AxoMessengerTextItem("Input variable `hwID_in_17` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_17` parameter is assigned.")), + new KeyValuePair(1149, new AxoMessengerTextItem("Input variable `hwID_in_18` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_18` parameter is assigned.")), + new KeyValuePair(1150, new AxoMessengerTextItem("Input variable `hwID_in_19` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_19` parameter is assigned.")), + new KeyValuePair(1151, new AxoMessengerTextItem("Input variable `hwID_in_20` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_20` parameter is assigned.")), + new KeyValuePair(1152, new AxoMessengerTextItem("Input variable `hwID_out_1` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_1` parameter is assigned.")), + new KeyValuePair(1153, new AxoMessengerTextItem("Input variable `hwID_out_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_2` parameter is assigned.")), + new KeyValuePair(1154, new AxoMessengerTextItem("Input variable `hwID_out_3` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_3` parameter is assigned.")), + new KeyValuePair(1155, new AxoMessengerTextItem("Input variable `hwID_out_4` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_4` parameter is assigned.")), + new KeyValuePair(1156, new AxoMessengerTextItem("Input variable `hwID_out_5` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_5` parameter is assigned.")), + new KeyValuePair(1157, new AxoMessengerTextItem("Input variable `hwID_out_6` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_6` parameter is assigned.")), + new KeyValuePair(1158, new AxoMessengerTextItem("Input variable `hwID_out_7` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_7` parameter is assigned.")), + new KeyValuePair(1159, new AxoMessengerTextItem("Input variable `hwID_out_8` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_8` parameter is assigned.")), + new KeyValuePair(1160, new AxoMessengerTextItem("Input variable `hwID_out_9` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_9` parameter is assigned.")), + new KeyValuePair(1161, new AxoMessengerTextItem("Input variable `hwID_out_10` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_10` parameter is assigned.")), + new KeyValuePair(1162, new AxoMessengerTextItem("Input variable `hwID_out_11` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_11` parameter is assigned.")), + new KeyValuePair(1163, new AxoMessengerTextItem("Input variable `hwID_out_12` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_12` parameter is assigned.")), + new KeyValuePair(1164, new AxoMessengerTextItem("Input variable `hwID_out_13` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_13` parameter is assigned.")), + new KeyValuePair(1165, new AxoMessengerTextItem("Input variable `hwID_out_14` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_14` parameter is assigned.")), + new KeyValuePair(1166, new AxoMessengerTextItem("Input variable `hwID_out_15` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_15` parameter is assigned.")), + new KeyValuePair(1167, new AxoMessengerTextItem("Input variable `hwID_out_16` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_16` parameter is assigned.")), + new KeyValuePair(1168, new AxoMessengerTextItem("Input variable `hwID_out_17` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_17` parameter is assigned.")), + new KeyValuePair(1169, new AxoMessengerTextItem("Input variable `hwID_out_18` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_18` parameter is assigned.")), + new KeyValuePair(1170, new AxoMessengerTextItem("Input variable `hwID_out_19` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_19` parameter is assigned.")), + new KeyValuePair(1171, new AxoMessengerTextItem("Input variable `hwID_out_20` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_out_20` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_1!" ,"Check the value of the hwID_in_1 and reacheability of the device!")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_2!" ,"Check the value of the hwID_in_2 and reacheability of the device!")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_3!" ,"Check the value of the hwID_in_3 and reacheability of the device!")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_4!" ,"Check the value of the hwID_in_4 and reacheability of the device!")), + new KeyValuePair(1205, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_5!" ,"Check the value of the hwID_in_5 and reacheability of the device!")), + new KeyValuePair(1206, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_6!" ,"Check the value of the hwID_in_6 and reacheability of the device!")), + new KeyValuePair(1207, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_7!" ,"Check the value of the hwID_in_7 and reacheability of the device!")), + new KeyValuePair(1208, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_8!" ,"Check the value of the hwID_in_8 and reacheability of the device!")), + new KeyValuePair(1209, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_9!" ,"Check the value of the hwID_in_9 and reacheability of the device!")), + new KeyValuePair(1210, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_10!" ,"Check the value of the hwID_in_10 and reacheability of the device!")), + new KeyValuePair(1211, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_11!" ,"Check the value of the hwID_in_11 and reacheability of the device!")), + new KeyValuePair(1212, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_12!" ,"Check the value of the hwID_in_12 and reacheability of the device!")), + new KeyValuePair(1213, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_13!" ,"Check the value of the hwID_in_13 and reacheability of the device!")), + new KeyValuePair(1214, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_14!" ,"Check the value of the hwID_in_14 and reacheability of the device!")), + new KeyValuePair(1215, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_15!" ,"Check the value of the hwID_in_15 and reacheability of the device!")), + new KeyValuePair(1216, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_16!" ,"Check the value of the hwID_in_16 and reacheability of the device!")), + new KeyValuePair(1217, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_17!" ,"Check the value of the hwID_in_17 and reacheability of the device!")), + new KeyValuePair(1218, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_18!" ,"Check the value of the hwID_in_18 and reacheability of the device!")), + new KeyValuePair(1219, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_19!" ,"Check the value of the hwID_in_19 and reacheability of the device!")), + new KeyValuePair(1220, new AxoMessengerTextItem("Error reading the TemplateComponentInputStructure_hwID_in_20!" ,"Check the value of the hwID_in_20 and reacheability of the device!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_1!" ,"Check the value of the hwID_out_1 and reacheability of the device!")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_2!" ,"Check the value of the hwID_out_2 and reacheability of the device!")), + new KeyValuePair(1233, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_3!" ,"Check the value of the hwID_out_3 and reacheability of the device!")), + new KeyValuePair(1234, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_4!" ,"Check the value of the hwID_out_4 and reacheability of the device!")), + new KeyValuePair(1235, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_5!" ,"Check the value of the hwID_out_5 and reacheability of the device!")), + new KeyValuePair(1236, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_6!" ,"Check the value of the hwID_out_6 and reacheability of the device!")), + new KeyValuePair(1237, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_7!" ,"Check the value of the hwID_out_7 and reacheability of the device!")), + new KeyValuePair(1238, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_8!" ,"Check the value of the hwID_out_8 and reacheability of the device!")), + new KeyValuePair(1239, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_9!" ,"Check the value of the hwID_out_9 and reacheability of the device!")), + new KeyValuePair(1240, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_10!" ,"Check the value of the hwID_out_10 and reacheability of the device!")), + new KeyValuePair(1241, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_11!" ,"Check the value of the hwID_out_11 and reacheability of the device!")), + new KeyValuePair(1242, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_12!" ,"Check the value of the hwID_out_12 and reacheability of the device!")), + new KeyValuePair(1243, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_13!" ,"Check the value of the hwID_out_13 and reacheability of the device!")), + new KeyValuePair(1244, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_14!" ,"Check the value of the hwID_out_14 and reacheability of the device!")), + new KeyValuePair(1245, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_15!" ,"Check the value of the hwID_out_15 and reacheability of the device!")), + new KeyValuePair(1246, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_16!" ,"Check the value of the hwID_out_16 and reacheability of the device!")), + new KeyValuePair(1247, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_17!" ,"Check the value of the hwID_out_17 and reacheability of the device!")), + new KeyValuePair(1248, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_18!" ,"Check the value of the hwID_out_18 and reacheability of the device!")), + new KeyValuePair(1249, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_19!" ,"Check the value of the hwID_out_19 and reacheability of the device!")), + new KeyValuePair(1250, new AxoMessengerTextItem("Error writing the TemplateComponentOutputStructure_hwID_out_20!" ,"Check the value of the hwID_out_20 and reacheability of the device!")), + + + new KeyValuePair(10000, new AxoMessengerTextItem("Start at main finished with error!","Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("Start at main was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10010, new AxoMessengerTextItem("Start motors and program finished with error!","Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("Start motors and program was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("Start motors program and movements finished with error!","Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("Start motors program and movements was aborted, while not yet completed!","Check the details.")), + //new KeyValuePair(10030, new AxoMessengerTextItem("TemplateTask_10steps_4 task finished with error!","Check the details.")), + //new KeyValuePair(10031, new AxoMessengerTextItem("TemplateTask_10steps_4 task was aborted, while not yet completed!","Check the details.")), + // TemplateTask_10steps_5 + new KeyValuePair(10040, new AxoMessengerTextItem("Start motors task finished with error!","Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("Start motors task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10050, new AxoMessengerTextItem("Start movements task finished with error!","Check the details.")), + new KeyValuePair(10051, new AxoMessengerTextItem("Start movements task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10070, new AxoMessengerTextItem("Start program task finished with error!","Check the details.")), + new KeyValuePair(10071, new AxoMessengerTextItem("Start program task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10080, new AxoMessengerTextItem("Stop motors task finished with error!","Check the details.")), + new KeyValuePair(10081, new AxoMessengerTextItem("Stop motors task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10090, new AxoMessengerTextItem("Stop movements and program task finished with error!","Check the details.")), + new KeyValuePair(10091, new AxoMessengerTextItem("Stop movements and program task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10100, new AxoMessengerTextItem("Stop movements task finished with error!","Check the details.")), + new KeyValuePair(10101, new AxoMessengerTextItem("Stop movements task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(10110, new AxoMessengerTextItem("Stop program task finished with error!","Check the details.")), + new KeyValuePair(10111, new AxoMessengerTextItem("Stop program task was aborted, while not yet completed!","Check the details.")), + + new KeyValuePair(20001, new AxoMessengerTextItem("Stop program task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(20002, new AxoMessengerTextItem("Stop program task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(20003, new AxoMessengerTextItem("Stop program task was aborted, while not yet completed!","Check the details.")), + - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId_512_DI_DO` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwId_512_DI_DO` parameter is assigned.")), - - new KeyValuePair(703, new AxoMessengerTextItem("Error reading the hwId_512_DI_DO in the UpdateInputs method!", "Check the value of the hwId_512_DI_DO and reacheability of the device!")), - - new KeyValuePair(704, new AxoMessengerTextItem("Error writing the hwId_512_DI_DO in the UpdateOutputs method!", "Check the value of the hwId_512_DI_DO and reacheability of the device!")), - - new KeyValuePair(800, new AxoMessengerTextItem("Start at main finished with error!", "Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("Start at main was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(810, new AxoMessengerTextItem("Start motors and program finished with error!", "Check the details.")), - new KeyValuePair(811, new AxoMessengerTextItem("Start motors and program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(820, new AxoMessengerTextItem("Start motors program and movements finished with error!", "Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("Start motors program and movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(840, new AxoMessengerTextItem("Start motors finished with error!", "Check the details.")), - new KeyValuePair(841, new AxoMessengerTextItem("Start motors was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(850, new AxoMessengerTextItem("Start movements finished with error!", "Check the details.")), - new KeyValuePair(851, new AxoMessengerTextItem("Start movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(870, new AxoMessengerTextItem("Start program finished with error!", "Check the details.")), - new KeyValuePair(871, new AxoMessengerTextItem("Start program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(880, new AxoMessengerTextItem("Stop motors finished with error!", "Check the details.")), - new KeyValuePair(881, new AxoMessengerTextItem("Stop motors was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(890, new AxoMessengerTextItem("Stop movements and program finished with error!", "Check the details.")), - new KeyValuePair(891, new AxoMessengerTextItem("Stop movements and program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(900, new AxoMessengerTextItem("Stop movements finished with error!", "Check the details.")), - new KeyValuePair(901, new AxoMessengerTextItem("Stop movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(910, new AxoMessengerTextItem("Stop program finished with error!", "Check the details.")), - new KeyValuePair(911, new AxoMessengerTextItem("Stop program was aborted, while not yet completed!", "Check the details.")), }; diff --git a/src/components.kuka.robotics/src/AXOpen.Components.Kuka.Robotics/AxoKukaRobotics_Component_Status_v_5_x_x/AxoKukaRobotics_Component_Status_v_5_x_x.cs b/src/components.kuka.robotics/src/AXOpen.Components.Kuka.Robotics/AxoKukaRobotics_Component_Status_v_5_x_x/AxoKukaRobotics_Component_Status_v_5_x_x.cs index a81e9acf0..14f880a81 100644 --- a/src/components.kuka.robotics/src/AXOpen.Components.Kuka.Robotics/AxoKukaRobotics_Component_Status_v_5_x_x/AxoKukaRobotics_Component_Status_v_5_x_x.cs +++ b/src/components.kuka.robotics/src/AXOpen.Components.Kuka.Robotics/AxoKukaRobotics_Component_Status_v_5_x_x/AxoKukaRobotics_Component_Status_v_5_x_x.cs @@ -76,14 +76,453 @@ public string ErrorDescription errorDescriptionDict.Add(600, "Waiting for the signal Inputs.RobotStopped to be set!"); errorDescriptionDict.Add(610, "Waiting for the signal Inputs.ProActive to be reseted!"); - errorDescriptionDict.Add(700, "Error: Parent has NULL reference!"); - errorDescriptionDict.Add(701, "Input variable `hwId_512_DI_DO` has invalid value in `Run` method!"); - errorDescriptionDict.Add(703, "Error reading the hwId_512_DI_DO in the UpdateInputs method!"); - errorDescriptionDict.Add(704, "Error writing the hwId_512_DI_DO in the UpdateOutputs method!"); - errorDescriptionDict.Add(705, "Emergency stop active!"); - errorDescriptionDict.Add(706, "Safety Error !"); - errorDescriptionDict.Add(707, "Program execution error!"); + + // General alarms + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ); + + errorDescriptionDict.Add(710, "Hw configuration error. Value of _hwID_in_1 is zero." ); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(720, "Hw configuration error. Value of _hwID_in_2 is zero." ); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(730, "Hw configuration error. Value of _hwID_in_3 is zero." ); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ); + errorDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(740, "Hw configuration error. Value of _hwID_in_4 is zero." ); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ); + errorDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(750, "Hw configuration error. Value of _hwID_in_5 is zero." ); + errorDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 5." ); + errorDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 5." ); + errorDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 5." ); + errorDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 5." ); + errorDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 5." ); + errorDescriptionDict.Add(756, "Hw configuration error: Module with unexpected size or type detected in Slot 5. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(760, "Hw configuration error. Value of _hwID_in_6 is zero." ); + errorDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 6." ); + errorDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 6." ); + errorDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 6." ); + errorDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 6." ); + errorDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 6." ); + errorDescriptionDict.Add(766, "Hw configuration error: Module with unexpected size or type detected in Slot 6. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(770, "Hw configuration error. Value of _hwID_in_7 is zero." ); + errorDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 7." ); + errorDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 7." ); + errorDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 7." ); + errorDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 7." ); + errorDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 7." ); + errorDescriptionDict.Add(776, "Hw configuration error: Module with unexpected size or type detected in Slot 7. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(780, "Hw configuration error. Value of _hwID_in_8 is zero." ); + errorDescriptionDict.Add(781, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 8." ); + errorDescriptionDict.Add(782, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 8." ); + errorDescriptionDict.Add(783, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 8." ); + errorDescriptionDict.Add(784, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 8." ); + errorDescriptionDict.Add(785, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 8." ); + errorDescriptionDict.Add(786, "Hw configuration error: Module with unexpected size or type detected in Slot 8. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(790, "Hw configuration error. Value of _hwID_in_9 is zero." ); + errorDescriptionDict.Add(791, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 9." ); + errorDescriptionDict.Add(792, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 9." ); + errorDescriptionDict.Add(793, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 9." ); + errorDescriptionDict.Add(794, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 9." ); + errorDescriptionDict.Add(795, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 9." ); + errorDescriptionDict.Add(796, "Hw configuration error: Module with unexpected size or type detected in Slot 9. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(800, "Hw configuration error. Value of _hwID_in_10 is zero." ); + errorDescriptionDict.Add(801, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 10." ); + errorDescriptionDict.Add(802, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 10." ); + errorDescriptionDict.Add(803, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 10." ); + errorDescriptionDict.Add(804, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 10." ); + errorDescriptionDict.Add(805, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 10." ); + errorDescriptionDict.Add(806, "Hw configuration error: Module with unexpected size or type detected in Slot 10. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(810, "Hw configuration error. Value of _hwID_in_11 is zero." ); + errorDescriptionDict.Add(811, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 11." ); + errorDescriptionDict.Add(812, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 11." ); + errorDescriptionDict.Add(813, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 11." ); + errorDescriptionDict.Add(814, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 11." ); + errorDescriptionDict.Add(815, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 11." ); + errorDescriptionDict.Add(816, "Hw configuration error: Module with unexpected size or type detected in Slot 11. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(820, "Hw configuration error. Value of _hwID_in_12 is zero." ); + errorDescriptionDict.Add(821, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 12." ); + errorDescriptionDict.Add(822, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 12." ); + errorDescriptionDict.Add(823, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 12." ); + errorDescriptionDict.Add(824, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 12." ); + errorDescriptionDict.Add(825, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 12." ); + errorDescriptionDict.Add(826, "Hw configuration error: Module with unexpected size or type detected in Slot 12. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(830, "Hw configuration error. Value of _hwID_in_13 is zero." ); + errorDescriptionDict.Add(831, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 13." ); + errorDescriptionDict.Add(832, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 13." ); + errorDescriptionDict.Add(833, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 13." ); + errorDescriptionDict.Add(834, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 13." ); + errorDescriptionDict.Add(835, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 13." ); + errorDescriptionDict.Add(836, "Hw configuration error: Module with unexpected size or type detected in Slot 13. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(840, "Hw configuration error. Value of _hwID_in_14 is zero." ); + errorDescriptionDict.Add(841, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 14." ); + errorDescriptionDict.Add(842, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 14." ); + errorDescriptionDict.Add(843, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 14." ); + errorDescriptionDict.Add(844, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 14." ); + errorDescriptionDict.Add(845, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 14." ); + errorDescriptionDict.Add(846, "Hw configuration error: Module with unexpected size or type detected in Slot 14. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(850, "Hw configuration error. Value of _hwID_in_15 is zero." ); + errorDescriptionDict.Add(851, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 15." ); + errorDescriptionDict.Add(852, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 15." ); + errorDescriptionDict.Add(853, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 15." ); + errorDescriptionDict.Add(854, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 15." ); + errorDescriptionDict.Add(855, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 15." ); + errorDescriptionDict.Add(856, "Hw configuration error: Module with unexpected size or type detected in Slot 15. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(860, "Hw configuration error. Value of _hwID_in_16 is zero." ); + errorDescriptionDict.Add(861, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 16." ); + errorDescriptionDict.Add(862, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 16." ); + errorDescriptionDict.Add(863, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 16." ); + errorDescriptionDict.Add(864, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 16." ); + errorDescriptionDict.Add(865, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 16." ); + errorDescriptionDict.Add(866, "Hw configuration error: Module with unexpected size or type detected in Slot 16. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(870, "Hw configuration error. Value of _hwID_in_17 is zero." ); + errorDescriptionDict.Add(871, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 17." ); + errorDescriptionDict.Add(872, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 17." ); + errorDescriptionDict.Add(873, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 17." ); + errorDescriptionDict.Add(874, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 17." ); + errorDescriptionDict.Add(875, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 17." ); + errorDescriptionDict.Add(876, "Hw configuration error: Module with unexpected size or type detected in Slot 17. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(880, "Hw configuration error. Value of _hwID_in_18 is zero." ); + errorDescriptionDict.Add(881, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 18." ); + errorDescriptionDict.Add(882, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 18." ); + errorDescriptionDict.Add(883, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 18." ); + errorDescriptionDict.Add(884, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 18." ); + errorDescriptionDict.Add(885, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 18." ); + errorDescriptionDict.Add(886, "Hw configuration error: Module with unexpected size or type detected in Slot 18. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(890, "Hw configuration error. Value of _hwID_in_19 is zero." ); + errorDescriptionDict.Add(891, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 19." ); + errorDescriptionDict.Add(892, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 19." ); + errorDescriptionDict.Add(893, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 19." ); + errorDescriptionDict.Add(894, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 19." ); + errorDescriptionDict.Add(895, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 19." ); + errorDescriptionDict.Add(896, "Hw configuration error: Module with unexpected size or type detected in Slot 19. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(900, "Hw configuration error. Value of _hwID_in_20 is zero." ); + errorDescriptionDict.Add(901, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 20." ); + errorDescriptionDict.Add(902, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 20." ); + errorDescriptionDict.Add(903, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 20." ); + errorDescriptionDict.Add(904, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 20." ); + errorDescriptionDict.Add(905, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 20." ); + errorDescriptionDict.Add(906, "Hw configuration error: Module with unexpected size or type detected in Slot 20. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(910, "Hw configuration error. Value of _hwID_out_1 is zero." ); + errorDescriptionDict.Add(911, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 21." ); + errorDescriptionDict.Add(912, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 21." ); + errorDescriptionDict.Add(913, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 21." ); + errorDescriptionDict.Add(914, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 21." ); + errorDescriptionDict.Add(915, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 21." ); + errorDescriptionDict.Add(916, "Hw configuration error: Module with unexpected size or type detected in Slot 21. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(920, "Hw configuration error. Value of _hwID_out_2 is zero." ); + errorDescriptionDict.Add(921, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 22." ); + errorDescriptionDict.Add(922, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 22." ); + errorDescriptionDict.Add(923, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 22." ); + errorDescriptionDict.Add(924, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 22." ); + errorDescriptionDict.Add(925, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 22." ); + errorDescriptionDict.Add(926, "Hw configuration error: Module with unexpected size or type detected in Slot 22. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(930, "Hw configuration error. Value of _hwID_out_3 is zero." ); + errorDescriptionDict.Add(931, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 23." ); + errorDescriptionDict.Add(932, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 23." ); + errorDescriptionDict.Add(933, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 23." ); + errorDescriptionDict.Add(934, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 23." ); + errorDescriptionDict.Add(935, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 23." ); + errorDescriptionDict.Add(936, "Hw configuration error: Module with unexpected size or type detected in Slot 23. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(940, "Hw configuration error. Value of _hwID_out_4 is zero." ); + errorDescriptionDict.Add(941, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 24." ); + errorDescriptionDict.Add(942, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 24." ); + errorDescriptionDict.Add(943, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 24." ); + errorDescriptionDict.Add(944, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 24." ); + errorDescriptionDict.Add(945, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 24." ); + errorDescriptionDict.Add(946, "Hw configuration error: Module with unexpected size or type detected in Slot 24. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(950, "Hw configuration error. Value of _hwID_out_5 is zero." ); + errorDescriptionDict.Add(951, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 25." ); + errorDescriptionDict.Add(952, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 25." ); + errorDescriptionDict.Add(953, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 25." ); + errorDescriptionDict.Add(954, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 25." ); + errorDescriptionDict.Add(955, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 25." ); + errorDescriptionDict.Add(956, "Hw configuration error: Module with unexpected size or type detected in Slot 25. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(960, "Hw configuration error. Value of _hwID_out_6 is zero." ); + errorDescriptionDict.Add(961, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 26." ); + errorDescriptionDict.Add(962, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 26." ); + errorDescriptionDict.Add(963, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 26." ); + errorDescriptionDict.Add(964, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 26." ); + errorDescriptionDict.Add(965, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 26." ); + errorDescriptionDict.Add(966, "Hw configuration error: Module with unexpected size or type detected in Slot 26. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(970, "Hw configuration error. Value of _hwID_out_7 is zero." ); + errorDescriptionDict.Add(971, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 27." ); + errorDescriptionDict.Add(972, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 27." ); + errorDescriptionDict.Add(973, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 27." ); + errorDescriptionDict.Add(974, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 27." ); + errorDescriptionDict.Add(975, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 27." ); + errorDescriptionDict.Add(976, "Hw configuration error: Module with unexpected size or type detected in Slot 27. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(980, "Hw configuration error. Value of _hwID_out_8 is zero." ); + errorDescriptionDict.Add(981, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 28." ); + errorDescriptionDict.Add(982, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 28." ); + errorDescriptionDict.Add(983, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 28." ); + errorDescriptionDict.Add(984, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 28." ); + errorDescriptionDict.Add(985, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 28." ); + errorDescriptionDict.Add(986, "Hw configuration error: Module with unexpected size or type detected in Slot 28. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(990, "Hw configuration error. Value of _hwID_out_9 is zero." ); + errorDescriptionDict.Add(991, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 29." ); + errorDescriptionDict.Add(992, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 29." ); + errorDescriptionDict.Add(993, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 29." ); + errorDescriptionDict.Add(994, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 29." ); + errorDescriptionDict.Add(995, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 29." ); + errorDescriptionDict.Add(996, "Hw configuration error: Module with unexpected size or type detected in Slot 29. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1000, "Hw configuration error. Value of _hwID_out_10 is zero." ); + errorDescriptionDict.Add(1001, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 30." ); + errorDescriptionDict.Add(1002, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 30." ); + errorDescriptionDict.Add(1003, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 30." ); + errorDescriptionDict.Add(1004, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 30." ); + errorDescriptionDict.Add(1005, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 30." ); + errorDescriptionDict.Add(1006, "Hw configuration error: Module with unexpected size or type detected in Slot 30. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1010, "Hw configuration error. Value of _hwID_out_11 is zero." ); + errorDescriptionDict.Add(1011, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 31." ); + errorDescriptionDict.Add(1012, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 31." ); + errorDescriptionDict.Add(1013, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 31." ); + errorDescriptionDict.Add(1014, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 31." ); + errorDescriptionDict.Add(1015, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 31." ); + errorDescriptionDict.Add(1016, "Hw configuration error: Module with unexpected size or type detected in Slot 31. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1020, "Hw configuration error. Value of _hwID_out_12 is zero." ); + errorDescriptionDict.Add(1021, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 32." ); + errorDescriptionDict.Add(1022, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 32." ); + errorDescriptionDict.Add(1023, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 32." ); + errorDescriptionDict.Add(1024, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 32." ); + errorDescriptionDict.Add(1025, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 32." ); + errorDescriptionDict.Add(1026, "Hw configuration error: Module with unexpected size or type detected in Slot 32. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1030, "Hw configuration error. Value of _hwID_out_13 is zero." ); + errorDescriptionDict.Add(1031, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 33." ); + errorDescriptionDict.Add(1032, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 33." ); + errorDescriptionDict.Add(1033, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 33." ); + errorDescriptionDict.Add(1034, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 33." ); + errorDescriptionDict.Add(1035, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 33." ); + errorDescriptionDict.Add(1036, "Hw configuration error: Module with unexpected size or type detected in Slot 33. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1040, "Hw configuration error. Value of _hwID_out_14 is zero." ); + errorDescriptionDict.Add(1041, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 34." ); + errorDescriptionDict.Add(1042, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 34." ); + errorDescriptionDict.Add(1043, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 34." ); + errorDescriptionDict.Add(1044, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 34." ); + errorDescriptionDict.Add(1045, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 34." ); + errorDescriptionDict.Add(1046, "Hw configuration error: Module with unexpected size or type detected in Slot 34. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1050, "Hw configuration error. Value of _hwID_out_15 is zero." ); + errorDescriptionDict.Add(1051, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 35." ); + errorDescriptionDict.Add(1052, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 35." ); + errorDescriptionDict.Add(1053, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 35." ); + errorDescriptionDict.Add(1054, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 35." ); + errorDescriptionDict.Add(1055, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 35." ); + errorDescriptionDict.Add(1056, "Hw configuration error: Module with unexpected size or type detected in Slot 35. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1060, "Hw configuration error. Value of _hwID_out_16 is zero." ); + errorDescriptionDict.Add(1061, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 36." ); + errorDescriptionDict.Add(1062, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 36." ); + errorDescriptionDict.Add(1063, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 36." ); + errorDescriptionDict.Add(1064, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 36." ); + errorDescriptionDict.Add(1065, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 36." ); + errorDescriptionDict.Add(1066, "Hw configuration error: Module with unexpected size or type detected in Slot 36. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1070, "Hw configuration error. Value of _hwID_out_17 is zero." ); + errorDescriptionDict.Add(1071, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 37." ); + errorDescriptionDict.Add(1072, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 37." ); + errorDescriptionDict.Add(1073, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 37." ); + errorDescriptionDict.Add(1074, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 37." ); + errorDescriptionDict.Add(1075, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 37." ); + errorDescriptionDict.Add(1076, "Hw configuration error: Module with unexpected size or type detected in Slot 37. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1080, "Hw configuration error. Value of _hwID_out_18 is zero." ); + errorDescriptionDict.Add(1081, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 38." ); + errorDescriptionDict.Add(1082, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 38." ); + errorDescriptionDict.Add(1083, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 38." ); + errorDescriptionDict.Add(1084, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 38." ); + errorDescriptionDict.Add(1085, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 38." ); + errorDescriptionDict.Add(1086, "Hw configuration error: Module with unexpected size or type detected in Slot 38. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1090, "Hw configuration error. Value of _hwID_out_19 is zero." ); + errorDescriptionDict.Add(1091, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 39." ); + errorDescriptionDict.Add(1092, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 39." ); + errorDescriptionDict.Add(1093, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 39." ); + errorDescriptionDict.Add(1094, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 39." ); + errorDescriptionDict.Add(1095, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 39." ); + errorDescriptionDict.Add(1096, "Hw configuration error: Module with unexpected size or type detected in Slot 39. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1100, "Hw configuration error. Value of _hwID_out_20 is zero." ); + errorDescriptionDict.Add(1101, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 40." ); + errorDescriptionDict.Add(1102, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 40." ); + errorDescriptionDict.Add(1103, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 40." ); + errorDescriptionDict.Add(1104, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 40." ); + errorDescriptionDict.Add(1105, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 40." ); + errorDescriptionDict.Add(1106, "Hw configuration error: Module with unexpected size or type detected in Slot 40. Expected module: 'gsd_id_of_req_module'." ); + + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1132, "Input variable `hwID_in_1` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1133, "Input variable `hwID_in_2` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1134, "Input variable `hwID_in_3` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1135, "Input variable `hwID_in_4` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1136, "Input variable `hwID_in_5` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1137, "Input variable `hwID_in_6` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1138, "Input variable `hwID_in_7` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1139, "Input variable `hwID_in_8` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1140, "Input variable `hwID_in_9` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1141, "Input variable `hwID_in_10` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1142, "Input variable `hwID_in_11` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1143, "Input variable `hwID_in_12` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1144, "Input variable `hwID_in_13` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1145, "Input variable `hwID_in_14` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1146, "Input variable `hwID_in_15` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1147, "Input variable `hwID_in_16` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1148, "Input variable `hwID_in_17` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1149, "Input variable `hwID_in_18` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1150, "Input variable `hwID_in_19` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1151, "Input variable `hwID_in_20` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1152, "Input variable `hwID_out_1` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1153, "Input variable `hwID_out_2` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1154, "Input variable `hwID_out_3` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1155, "Input variable `hwID_out_4` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1156, "Input variable `hwID_out_5` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1157, "Input variable `hwID_out_6` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1158, "Input variable `hwID_out_7` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1159, "Input variable `hwID_out_8` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1160, "Input variable `hwID_out_9` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1161, "Input variable `hwID_out_10` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1162, "Input variable `hwID_out_11` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1163, "Input variable `hwID_out_12` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1164, "Input variable `hwID_out_13` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1165, "Input variable `hwID_out_14` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1166, "Input variable `hwID_out_15` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1167, "Input variable `hwID_out_16` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1168, "Input variable `hwID_out_17` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1169, "Input variable `hwID_out_18` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1170, "Input variable `hwID_out_19` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1171, "Input variable `hwID_out_20` has invalid value in `Run` method!" ); + + errorDescriptionDict.Add(1201, "Error reading the TemplateComponentInputStructure_hwID_in_1!" ); + errorDescriptionDict.Add(1202, "Error reading the TemplateComponentInputStructure_hwID_in_2!" ); + errorDescriptionDict.Add(1203, "Error reading the TemplateComponentInputStructure_hwID_in_3!" ); + errorDescriptionDict.Add(1204, "Error reading the TemplateComponentInputStructure_hwID_in_4!" ); + errorDescriptionDict.Add(1205, "Error reading the TemplateComponentInputStructure_hwID_in_5!" ); + errorDescriptionDict.Add(1206, "Error reading the TemplateComponentInputStructure_hwID_in_6!" ); + errorDescriptionDict.Add(1207, "Error reading the TemplateComponentInputStructure_hwID_in_7!" ); + errorDescriptionDict.Add(1208, "Error reading the TemplateComponentInputStructure_hwID_in_8!" ); + errorDescriptionDict.Add(1209, "Error reading the TemplateComponentInputStructure_hwID_in_9!" ); + errorDescriptionDict.Add(1210, "Error reading the TemplateComponentInputStructure_hwID_in_10!" ); + errorDescriptionDict.Add(1211, "Error reading the TemplateComponentInputStructure_hwID_in_11!" ); + errorDescriptionDict.Add(1212, "Error reading the TemplateComponentInputStructure_hwID_in_12!" ); + errorDescriptionDict.Add(1213, "Error reading the TemplateComponentInputStructure_hwID_in_13!" ); + errorDescriptionDict.Add(1214, "Error reading the TemplateComponentInputStructure_hwID_in_14!" ); + errorDescriptionDict.Add(1215, "Error reading the TemplateComponentInputStructure_hwID_in_15!" ); + errorDescriptionDict.Add(1216, "Error reading the TemplateComponentInputStructure_hwID_in_16!" ); + errorDescriptionDict.Add(1217, "Error reading the TemplateComponentInputStructure_hwID_in_17!" ); + errorDescriptionDict.Add(1218, "Error reading the TemplateComponentInputStructure_hwID_in_18!" ); + errorDescriptionDict.Add(1219, "Error reading the TemplateComponentInputStructure_hwID_in_19!" ); + errorDescriptionDict.Add(1220, "Error reading the TemplateComponentInputStructure_hwID_in_20!" ); + + errorDescriptionDict.Add(1231, "Error writing the TemplateComponentOutputStructure_hwID_out_1!" ); + errorDescriptionDict.Add(1232, "Error writing the TemplateComponentOutputStructure_hwID_out_2!" ); + errorDescriptionDict.Add(1233, "Error writing the TemplateComponentOutputStructure_hwID_out_3!" ); + errorDescriptionDict.Add(1234, "Error writing the TemplateComponentOutputStructure_hwID_out_4!" ); + errorDescriptionDict.Add(1235, "Error writing the TemplateComponentOutputStructure_hwID_out_5!" ); + errorDescriptionDict.Add(1236, "Error writing the TemplateComponentOutputStructure_hwID_out_6!" ); + errorDescriptionDict.Add(1237, "Error writing the TemplateComponentOutputStructure_hwID_out_7!" ); + errorDescriptionDict.Add(1238, "Error writing the TemplateComponentOutputStructure_hwID_out_8!" ); + errorDescriptionDict.Add(1239, "Error writing the TemplateComponentOutputStructure_hwID_out_9!" ); + errorDescriptionDict.Add(1240, "Error writing the TemplateComponentOutputStructure_hwID_out_10!" ); + errorDescriptionDict.Add(1241, "Error writing the TemplateComponentOutputStructure_hwID_out_11!" ); + errorDescriptionDict.Add(1242, "Error writing the TemplateComponentOutputStructure_hwID_out_12!" ); + errorDescriptionDict.Add(1243, "Error writing the TemplateComponentOutputStructure_hwID_out_13!" ); + errorDescriptionDict.Add(1244, "Error writing the TemplateComponentOutputStructure_hwID_out_14!" ); + errorDescriptionDict.Add(1245, "Error writing the TemplateComponentOutputStructure_hwID_out_15!" ); + errorDescriptionDict.Add(1246, "Error writing the TemplateComponentOutputStructure_hwID_out_16!" ); + errorDescriptionDict.Add(1247, "Error writing the TemplateComponentOutputStructure_hwID_out_17!" ); + errorDescriptionDict.Add(1248, "Error writing the TemplateComponentOutputStructure_hwID_out_18!" ); + errorDescriptionDict.Add(1249, "Error writing the TemplateComponentOutputStructure_hwID_out_19!" ); + errorDescriptionDict.Add(1250, "Error writing the TemplateComponentOutputStructure_hwID_out_20!"); + + + errorDescriptionDict.Add(10000, "Start at main finished with error!"); + errorDescriptionDict.Add(10001, "Start at main was aborted, while not yet completed!"); + errorDescriptionDict.Add(10010, "Start motors and program finished with error!"); + errorDescriptionDict.Add(10011, "Start motors and program was aborted, while not yet completed!"); + errorDescriptionDict.Add(10020, "Start motors program and movements finished with error!"); + errorDescriptionDict.Add(10021, "Start motors program and movements was aborted, while not yet completed!"); + //errorDescriptionDict.Add(10030, "TemplateTask_10steps_4 task finished with error!"); + //errorDescriptionDict.Add(10031, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); + // TemplateTask_10steps_5 + errorDescriptionDict.Add(10040, "Start motors task finished with error!"); + errorDescriptionDict.Add(10041, "Start motors task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10050, "Start movements task finished with error!"); + errorDescriptionDict.Add(10051, "Start movements task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10070, "Start program task finished with error!"); + errorDescriptionDict.Add(10071, "Start program task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10080, "Stop motors task finished with error!"); + errorDescriptionDict.Add(10081, "Stop motors task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10090, "Stop movements and program task finished with error!"); + errorDescriptionDict.Add(10091, "Stop movements and program task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10100, "Stop movements task finished with error!"); + errorDescriptionDict.Add(10101, "Stop movements task was aborted, while not yet completed!"); + errorDescriptionDict.Add(10110, "Stop program task finished with error!"); + errorDescriptionDict.Add(10111, "Stop program task was aborted, while not yet completed!"); + + errorDescriptionDict.Add(20001, "Stop program task was aborted, while not yet completed!"); + errorDescriptionDict.Add(20002, "Stop program task was aborted, while not yet completed!"); + errorDescriptionDict.Add(20003, "Stop program task was aborted, while not yet completed!"); + + + + errorDescriptionDict.Add(20001, "Emergency stop activated!"); + errorDescriptionDict.Add(20002, "Safety circuit interupted!"); + errorDescriptionDict.Add(20003, "Program error active!"); + } string errorDescription = " "; @@ -273,26 +712,26 @@ public string ActionDescription actionDescriptionDict.Add(211, "Stop program finished succesfully"); actionDescriptionDict.Add(212, "Stop program restored."); - actionDescriptionDict.Add(800, "Start at main finished with error!"); - actionDescriptionDict.Add(801, "Start at main was aborted, while not yet completed!"); - actionDescriptionDict.Add(810, "Start motors and program finished with error!"); - actionDescriptionDict.Add(811, "Start motors and program was aborted, while not yet completed!"); - actionDescriptionDict.Add(820, "Start motors program and movements finished with error!"); - actionDescriptionDict.Add(821, "Start motors program and movements was aborted, while not yet completed!"); - actionDescriptionDict.Add(840, "Start motors finished with error!"); - actionDescriptionDict.Add(841, "Start motors was aborted, while not yet completed!"); - actionDescriptionDict.Add(850, "Start movements finished with error!"); - actionDescriptionDict.Add(851, "Start movements was aborted, while not yet completed!"); - actionDescriptionDict.Add(870, "Start program finished with error!"); - actionDescriptionDict.Add(871, "Start program was aborted, while not yet completed!"); - actionDescriptionDict.Add(880, "Stop motors finished with error!"); - actionDescriptionDict.Add(881, "Stop motors was aborted, while not yet completed!"); - actionDescriptionDict.Add(890, "Stop movements and program finished with error!"); - actionDescriptionDict.Add(891, "Stop movements and program was aborted, while not yet completed!"); - actionDescriptionDict.Add(900, "Stop movements finished with error!"); - actionDescriptionDict.Add(901, "Stop movements was aborted, while not yet completed!"); - actionDescriptionDict.Add(910, "Stop program finished with error!"); - actionDescriptionDict.Add(911, "Stop program was aborted, while not yet completed!"); + actionDescriptionDict.Add(10000, "Start at main finished with error!"); + actionDescriptionDict.Add(10001, "Start at main was aborted, while not yet completed!"); + actionDescriptionDict.Add(10010, "Start motors and program finished with error!"); + actionDescriptionDict.Add(10011, "Start motors and program was aborted, while not yet completed!"); + actionDescriptionDict.Add(10020, "Start motors program and movements finished with error!"); + actionDescriptionDict.Add(10021, "Start motors program and movements was aborted, while not yet completed!"); + actionDescriptionDict.Add(10040, "Start motors finished with error!"); + actionDescriptionDict.Add(10041, "Start motors was aborted, while not yet completed!"); + actionDescriptionDict.Add(10050, "Start movements finished with error!"); + actionDescriptionDict.Add(10051, "Start movements was aborted, while not yet completed!"); + actionDescriptionDict.Add(10070, "Start program finished with error!"); + actionDescriptionDict.Add(10071, "Start program was aborted, while not yet completed!"); + actionDescriptionDict.Add(10080, "Stop motors finished with error!"); + actionDescriptionDict.Add(10081, "Stop motors was aborted, while not yet completed!"); + actionDescriptionDict.Add(10090, "Stop movements and program finished with error!"); + actionDescriptionDict.Add(10091, "Stop movements and program was aborted, while not yet completed!"); + actionDescriptionDict.Add(10100, "Stop movements finished with error!"); + actionDescriptionDict.Add(10101, "Stop movements was aborted, while not yet completed!"); + actionDescriptionDict.Add(10110, "Stop program finished with error!"); + actionDescriptionDict.Add(10111, "Stop program was aborted, while not yet completed!"); } diff --git a/src/components.mitsubishi.robotics/app/apax.yml b/src/components.mitsubishi.robotics/app/apax.yml index d106ba15f..9530470af 100644 --- a/src/components.mitsubishi.robotics/app/apax.yml +++ b/src/components.mitsubishi.robotics/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.mitsubishi.robotics" +name: "app_axopen.components.mitsubishi.robotics" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Mitsubishi.Robotics" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,139 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + diff --git a/src/components.mitsubishi.robotics/app/src/Documentation/Component_1.st b/src/components.mitsubishi.robotics/app/src/Documentation/Component_1.st index fb924f92f..9e3412ff2 100644 --- a/src/components.mitsubishi.robotics/app/src/Documentation/Component_1.st +++ b/src/components.mitsubishi.robotics/app/src/Documentation/Component_1.st @@ -28,9 +28,7 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; // - ExampleRobot.Run( parent := THIS, - hwID := HwIdentifiers#TZ535_PN_HwID, - hwIdInOut_64_byte := HwIdentifiers#TZ535_PN_In_Out_64_byte_In_Out__64_byte_HwID); + ExampleRobot.Run(parent := THIS , hwID := HwIdentifiers#TZ535_PN_HwID); // THIS.UseInSequencer(); diff --git a/src/components.mitsubishi.robotics/app/src/Sandbox/SandboxContext.st b/src/components.mitsubishi.robotics/app/src/Sandbox/SandboxContext.st index 24729327c..dbdad58cc 100644 --- a/src/components.mitsubishi.robotics/app/src/Sandbox/SandboxContext.st +++ b/src/components.mitsubishi.robotics/app/src/Sandbox/SandboxContext.st @@ -17,9 +17,8 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics _testRobot.ActivateManualControl(); END_IF; - _testRobot.Run( parent := _rootObject, - hwID := HwIdentifiers#TZ535_PN_HwID, - hwIdInOut_64_byte := HwIdentifiers#TZ535_PN_In_Out_64_byte_In_Out__64_byte_HwID); - END_METHOD + _testRobot.Run(parent := _rootObject, hwID := HwIdentifiers#TZ535_PN_HwID); + + END_METHOD END_CLASS END_NAMESPACE \ No newline at end of file diff --git a/src/components.mitsubishi.robotics/ctrl/apax.yml b/src/components.mitsubishi.robotics/ctrl/apax.yml index bd4acecbe..0207dc86c 100644 --- a/src/components.mitsubishi.robotics/ctrl/apax.yml +++ b/src/components.mitsubishi.robotics/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.components.robotics": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.mitsubishi.robotics/ctrl/assets/TZ535-PN.hwl.yml b/src/components.mitsubishi.robotics/ctrl/assets/TZ535-PN.hwl.yml index 37b79d07d..3a6238d49 100644 --- a/src/components.mitsubishi.robotics/ctrl/assets/TZ535-PN.hwl.yml +++ b/src/components.mitsubishi.robotics/ctrl/assets/TZ535-PN.hwl.yml @@ -38,7 +38,8 @@ Devices: - Name: In_Out_64_byte TypeIdentifier: FileName: GSDML-V2.3-MITSUBISHI-TZ535_PN-20140619.XML - GsdId: ID_MODULE_IN_OUT64B + GsdId: apax build + Slot: 1 # - Name: In_Out_128_byte # TypeIdentifier: diff --git a/src/components.mitsubishi.robotics/ctrl/src/AxoCr800_v_1_x_x.st b/src/components.mitsubishi.robotics/ctrl/src/AxoCr800_v_1_x_x.st index e0c6c5b8f..7355d2193 100644 --- a/src/components.mitsubishi.robotics/ctrl/src/AxoCr800_v_1_x_x.st +++ b/src/components.mitsubishi.robotics/ctrl/src/AxoCr800_v_1_x_x.st @@ -3,6 +3,7 @@ USING AXOpen.Messaging; USING AXOpen.Messaging.Static; USING AXOpen.Components.Robotics; USING AXOpen.Components.Abstractions.Robotics; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Mitsubishi.Robotics {S7.extern=ReadWrite} @@ -18,7 +19,15 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics _hwIdInOut_64_byte : WORD; _dword: DWORD; _data : ARRAY[0..63] OF BYTE; - _returnValue : WORD; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR VAR PUBLIC //HEADER @@ -67,7 +76,7 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics {#ix-attr:[Container(Layout.Stack)]} {#ix-attr:[ComponentDetails("Status")]} {#ix-attr:[ReadOnly()]} - RobotStatus : AxoMitsubishiRobotics_Component_Status_v_1_x_x; + Status : AxoMitsubishiRobotics_Component_Status_v_1_x_x; {#ix-attr:[ComponentDetails("Status")]} {#ix-attr:[ReadOnly()]} {#ix-set:AttributeName = "<#Power progress#>"} @@ -110,31 +119,99 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics VAR_INPUT parent : IAxoObject; hwID : WORD; - hwIdInOut_64_byte : WORD; END_VAR + SUPER.Run(parent); Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwIdInOut_64_byte = WORD#0, eAxoMessageCategory#ProgrammingError); - IF parent = NULL THEN - RobotStatus.Error.Id := UINT#700; - RETURN; - ELSIF hwIdInOut_64_byte = WORD#0 THEN - RobotStatus.Error.Id := UINT#701; - RETURN; - END_IF; + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdInOut_64_byte := TO_WORD(_outHwid); + IF _hwIdInOut_64_byte = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdInOut_64_byte , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#64 OR _outputsCount <> UINT#64 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; - _hwID := hwID; - _hwIdInOut_64_byte := hwIdInOut_64_byte; + IF parent = NULL THEN + Messenger.Activate(UINT#1130,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1130; + RETURN; + END_IF; + IF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1131; + RETURN; + END_IF; + IF _hwIdInOut_64_byte = WORD#0 THEN + Messenger.Activate(UINT#1132,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1132; + RETURN; + END_IF; + + _initHwCheckDone := TRUE; + END_IF; //***********UPDATE**INPUTS****************** - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdInOut_64_byte ,_data); - Messenger.ActivateOnCondition(ULINT#702,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - RobotStatus.Error.Id := UINT#702; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdInOut_64_byte ,_data); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; @@ -274,14 +351,14 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics //*************StartAtMainTask*************** StartAtMainTask.IsDisabled := Inputs.Start; IF StartAtMainTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#100; + Status.Action.Id := UINT#100; END_IF; Messenger.ActivateOnCondition(ULINT#100,StartAtMainTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#101,StartAtMainTask.IsDone(), eAxoMessageCategory#Info); IF StartAtMainTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _power_progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; Outputs.ActionNo := BYTE#255; TaskMessenger.Restore(); THIS.CallTimers(FALSE); @@ -289,9 +366,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 300 THEN //Switching to auto mode - TaskMessenger.ActivateOnCondition(ULINT#600, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#600; + TaskMessenger.Activate( UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; END_IF; Outputs.AutoEnable:=TRUE; @@ -303,9 +380,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 301 THEN //Enabling operations - TaskMessenger.ActivateOnCondition(ULINT#601, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#601; + TaskMessenger.Activate( UINT#501, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#501; END_IF; Outputs.OperationEnable:=TRUE; @@ -317,9 +394,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 302 THEN //Reseting error - TaskMessenger.ActivateOnCondition(ULINT#602, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#602; + TaskMessenger.Activate( UINT#502, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#502; END_IF; Outputs.ErrorReset := Inputs.ErrorReset AND _blink.output; @@ -332,9 +409,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 303 THEN //<#Robot Emergency Stop Reset#> - TaskMessenger.ActivateOnCondition(ULINT#603, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#603; + TaskMessenger.Activate( UINT#503, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#503; END_IF; Outputs.ErrorReset := Inputs.EmergencyError AND _blink.output; @@ -347,9 +424,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 304 THEN //Reseting program - TaskMessenger.ActivateOnCondition(ULINT#604, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#604; + TaskMessenger.Activate( UINT#504, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#504; END_IF; Outputs.ProgramReset := _blink.output; @@ -370,23 +447,23 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics StartAtMainTask.ThrowWhen(_errorTimer.output ); - RobotStatus.Action.Id := TO_UINT(_power_progress); + Status.Action.Id := TO_UINT(_power_progress); END_IF; IF StartAtMainTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#101; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#101; + Status.Error.Id := UINT#0; ELSIF StartAtMainTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#800; - RobotStatus.Error.Id := UINT#800; + Status.Action.Id := UINT#10000; + Status.Error.Id := UINT#10000; ELSIF StartAtMainTask.AbortTriggered()THEN - RobotStatus.Action.Id := UINT#801; - RobotStatus.Error.Id := UINT#801; + Status.Action.Id := UINT#10001; + Status.Error.Id := UINT#10001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,StartAtMainTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,StartAtMainTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10000,StartAtMainTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10001,StartAtMainTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,StartAtMainTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartAtMainTask.RestoreTriggered() AND _power_progress >= 300 AND _power_progress <= 309 THEN - RobotStatus.Action.Id := UINT#102; + Status.Action.Id := UINT#102; _power_progress := 0; END_IF; //******************************************* @@ -394,13 +471,13 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics //***********StartMotorsAndProgramTask******* StartMotorsAndProgramTask.IsDisabled := FALSE; IF StartMotorsAndProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#110; + Status.Action.Id := UINT#110; END_IF; Messenger.ActivateOnCondition(ULINT#110,StartMotorsAndProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#111,StartMotorsAndProgramTask.IsDone(), eAxoMessageCategory#Info); IF StartMotorsAndProgramTask.Execute(THIS) THEN IF _power_progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; Outputs.ActionNo := BYTE#255; TaskMessenger.Restore(); THIS.CallTimers(FALSE); @@ -408,9 +485,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 310 THEN //Switching to auto mode - TaskMessenger.ActivateOnCondition(ULINT#610, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#610; + TaskMessenger.Activate( UINT#510, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#510; END_IF; Outputs.AutoEnable:=TRUE; @@ -422,9 +499,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 311 THEN //Enabling operations - TaskMessenger.ActivateOnCondition(ULINT#611, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#611; + TaskMessenger.Activate( UINT#511, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#511; END_IF; Outputs.OperationEnable:=TRUE; @@ -436,9 +513,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 312 THEN //Reseting error - TaskMessenger.ActivateOnCondition(ULINT#612, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#612; + TaskMessenger.Activate( UINT#512, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#512; END_IF; Outputs.ErrorReset := Inputs.ErrorReset AND _blink.output; @@ -451,9 +528,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 313 THEN //<#Robot Emergency Stop Reset#> - TaskMessenger.ActivateOnCondition(ULINT#613, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#613; + TaskMessenger.Activate( UINT#513, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#513; END_IF; Outputs.ErrorReset := Inputs.EmergencyError AND _blink.output; @@ -466,9 +543,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 314 THEN //Start servomotors - TaskMessenger.ActivateOnCondition(ULINT#614, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#614; + TaskMessenger.Activate( UINT#514, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#514; END_IF; IF Inputs.HighLevelError OR Inputs.LowLevelError OR Inputs.CautionLevelError OR Inputs.EmergencyError THEN @@ -485,9 +562,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 315 THEN //Start servomotors - TaskMessenger.ActivateOnCondition(ULINT#615, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#615; + TaskMessenger.Activate( UINT#515, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#515; END_IF; IF Inputs.HighLevelError OR Inputs.LowLevelError OR Inputs.CautionLevelError OR Inputs.EmergencyError THEN @@ -505,9 +582,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 316 THEN //Start program - TaskMessenger.ActivateOnCondition(ULINT#616, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#616; + TaskMessenger.Activate( UINT#516, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#516; END_IF; IF Inputs.HighLevelError OR Inputs.LowLevelError OR Inputs.CautionLevelError OR Inputs.EmergencyError THEN @@ -524,9 +601,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 317 THEN //Start program - TaskMessenger.ActivateOnCondition(ULINT#617, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#617; + TaskMessenger.Activate( UINT#517, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#517; END_IF; IF Inputs.HighLevelError OR Inputs.LowLevelError OR Inputs.CautionLevelError OR Inputs.EmergencyError THEN @@ -550,23 +627,23 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics THIS.CallTimers(TRUE); StartMotorsAndProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_power_progress); + Status.Action.Id := TO_UINT(_power_progress); END_IF; IF StartMotorsAndProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#111; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#111; + Status.Error.Id := UINT#0; ELSIF StartMotorsAndProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#810; - RobotStatus.Error.Id := UINT#810; + Status.Action.Id := UINT#10010; + Status.Error.Id := UINT#10010; ELSIF StartMotorsAndProgramTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#811; - RobotStatus.Error.Id := UINT#811; + Status.Action.Id := UINT#10011; + Status.Error.Id := UINT#10011; END_IF; - Messenger.ActivateOnCondition(ULINT#810,StartMotorsAndProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#811,StartMotorsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10010,StartMotorsAndProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10011,StartMotorsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#112,StartMotorsAndProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMotorsAndProgramTask.RestoreTriggered() AND _power_progress >= 310 AND _power_progress <= 319 THEN - RobotStatus.Action.Id := UINT#112; + Status.Action.Id := UINT#112; _power_progress := 0; END_IF; //******************************************* @@ -574,22 +651,22 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics //***********StopMovementsTask*************** StopMovementsTask.IsDisabled := FALSE; IF StopMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#120; + Status.Action.Id := UINT#120; END_IF; Messenger.ActivateOnCondition(ULINT#120,StopMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#121,StopMovementsTask.IsDone(), eAxoMessageCategory#Info); IF StopMovementsTask.Execute(THIS) THEN IF _power_progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _power_progress := 320; END_IF; IF _power_progress = 320 THEN // Switching to auto - TaskMessenger.ActivateOnCondition(ULINT#620, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#620; + TaskMessenger.Activate( UINT#520, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#520; END_IF; Outputs.AutoEnable:=TRUE; @@ -601,9 +678,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 321 THEN - TaskMessenger.ActivateOnCondition(ULINT#621, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#621; + TaskMessenger.Activate( UINT#521, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#521; END_IF; Outputs.OperationEnable:=TRUE; @@ -615,9 +692,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 322 THEN - TaskMessenger.ActivateOnCondition(ULINT#622, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#622; + TaskMessenger.Activate( UINT#522, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#522; END_IF; Outputs.Stop:=TRUE ; @@ -639,23 +716,23 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics StopMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_power_progress); + Status.Action.Id := TO_UINT(_power_progress); END_IF; IF StopMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#121; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#121; + Status.Error.Id := UINT#0; ELSIF StopMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#820; - RobotStatus.Error.Id := UINT#820; + Status.Action.Id := UINT#10020; + Status.Error.Id := UINT#10020; ELSIF StopMovementsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#821; - RobotStatus.Error.Id := UINT#821; + Status.Action.Id := UINT#10021; + Status.Error.Id := UINT#10021; END_IF; - Messenger.ActivateOnCondition(ULINT#820,StopMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#821,StopMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10020,StopMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10021,StopMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#122,StopMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMovementsTask.RestoreTriggered() AND _power_progress >= 320 AND _power_progress <= 339 THEN - RobotStatus.Action.Id := UINT#122; + Status.Action.Id := UINT#122; _power_progress := 0; END_IF; //******************************************* @@ -663,7 +740,7 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics //***********StopMovementsAndProgramTask***** StopMovementsAndProgramTask.IsDisabled := FALSE; IF StopMovementsAndProgramTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#130; + Status.Action.Id := UINT#130; END_IF; Messenger.ActivateOnCondition(ULINT#130,StopMovementsAndProgramTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#131,StopMovementsAndProgramTask.IsDone(), eAxoMessageCategory#Info); @@ -671,16 +748,16 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics IF _power_progress = 0 THEN StartMovementsTask.Restore(); _movement_progress := 0; - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _power_progress := 330; END_IF; IF _power_progress = 330 THEN - TaskMessenger.ActivateOnCondition(ULINT#630, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#630; + TaskMessenger.Activate( UINT#530, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#530; END_IF; Outputs.AutoEnable:=TRUE; @@ -692,9 +769,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 331 THEN - TaskMessenger.ActivateOnCondition(ULINT#631, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#631; + TaskMessenger.Activate( UINT#531, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#531; END_IF; Outputs.OperationEnable:=TRUE; @@ -706,9 +783,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _power_progress = 332 THEN - TaskMessenger.ActivateOnCondition(ULINT#632, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#632; + TaskMessenger.Activate( UINT#532, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#532; END_IF; Outputs.Stop:=TRUE; @@ -730,23 +807,23 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics StopMovementsAndProgramTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_power_progress); + Status.Action.Id := TO_UINT(_power_progress); END_IF; IF StopMovementsAndProgramTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#131; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#131; + Status.Error.Id := UINT#0; ELSIF StopMovementsAndProgramTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#830; - RobotStatus.Error.Id := UINT#830; + Status.Action.Id := UINT#10030; + Status.Error.Id := UINT#10030; ELSIF StopMovementsAndProgramTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#831; - RobotStatus.Error.Id := UINT#831; + Status.Action.Id := UINT#10031; + Status.Error.Id := UINT#10031; END_IF; - Messenger.ActivateOnCondition(ULINT#830,StopMovementsAndProgramTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#831,StopMovementsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10030,StopMovementsAndProgramTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10031,StopMovementsAndProgramTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#132,StopMovementsAndProgramTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StopMovementsAndProgramTask.RestoreTriggered() AND _power_progress >= 330 AND _power_progress <= 339 THEN - RobotStatus.Action.Id := UINT#132; + Status.Action.Id := UINT#132; _power_progress := 0; END_IF; //******************************************* @@ -754,38 +831,35 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics //***********StartMovementsTask************** StartMovementsTask.IsDisabled := FALSE; IF StartMovementsTask.StartTriggered() THEN - RobotStatus.Action.Id := UINT#140; + Status.Action.Id := UINT#140; END_IF; Messenger.ActivateOnCondition(ULINT#140,StartMovementsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#141,StartMovementsTask.IsDone(), eAxoMessageCategory#Info); IF StartMovementsTask.Execute(THIS) THEN IF _movement_progress = 0 THEN - RobotStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _movement_progress := 340; END_IF; IF _movement_progress = 340 THEN - TaskMessenger.ActivateOnCondition(ULINT#640, _infoTimer.output AND NOT Inputs.AutoEnable, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#641, _infoTimer.output AND NOT Inputs.OperationEnable, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#642, _infoTimer.output AND NOT Inputs.ServoOn, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#643, _infoTimer.output AND Inputs.ErrorReset, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#640; - END_IF; IF _infoTimer.output THEN - IF NOT Inputs.AutoEnable THEN - RobotStatus.Error.Id := UINT#640;//<#Waiting for AutoEnable! + IF NOT Inputs.AutoEnable THEN //<#Waiting for AutoEnable! + TaskMessenger.Activate( UINT#540, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#540; END_IF; - IF NOT Inputs.OperationEnable THEN - RobotStatus.Error.Id := UINT#641;//<#Waiting for OperationEnable! + IF NOT Inputs.OperationEnable THEN//<#Waiting for OperationEnable! + TaskMessenger.Activate( UINT#541, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#541; END_IF; - IF NOT Inputs.ServoOn THEN - RobotStatus.Error.Id := UINT#642;//<#Waiting for ServoOn! + IF NOT Inputs.ServoOn THEN//<#Waiting for ServoOn! + TaskMessenger.Activate( UINT#542, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#542; END_IF; - IF Inputs.ErrorReset THEN - RobotStatus.Error.Id := UINT#643;//<#Waiting for ErrorReset! + IF Inputs.ErrorReset THEN//<#Waiting for ErrorReset! + TaskMessenger.Activate( UINT#543, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#543; END_IF; END_IF; @@ -796,18 +870,18 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _movement_progress = 344 THEN - TaskMessenger.ActivateOnCondition(ULINT#644, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#644; + TaskMessenger.Activate( UINT#544, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#544; END_IF; - Outputs.GlobalSpeed := RobotStatus.CurrentMovementParameters.GlobalSpeed; - Outputs.ToolNo := RobotStatus.CurrentMovementParameters.ToolNo; - Outputs.WorkobjectNo := RobotStatus.CurrentMovementParameters.WorkobjectNo; - Outputs.PointNo := RobotStatus.CurrentMovementParameters.PointNo; - Outputs.UserSpecSpeed1 := RobotStatus.CurrentMovementParameters.UserSpecSpeed1; - Outputs.UserSpecSpeed2 := RobotStatus.CurrentMovementParameters.UserSpecSpeed2; - Outputs.Coordinates := RobotStatus.CurrentMovementParameters.Coordinates; + Outputs.GlobalSpeed := Status.CurrentMovementParameters.GlobalSpeed; + Outputs.ToolNo := Status.CurrentMovementParameters.ToolNo; + Outputs.WorkobjectNo := Status.CurrentMovementParameters.WorkobjectNo; + Outputs.PointNo := Status.CurrentMovementParameters.PointNo; + Outputs.UserSpecSpeed1 := Status.CurrentMovementParameters.UserSpecSpeed1; + Outputs.UserSpecSpeed2 := Status.CurrentMovementParameters.UserSpecSpeed2; + Outputs.Coordinates := Status.CurrentMovementParameters.Coordinates; Outputs.ActionNo := BYTE#254; @@ -818,41 +892,40 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _movement_progress = 345 THEN - TaskMessenger.ActivateOnCondition(ULINT#645, _infoTimer.output AND Inputs.GlobalSpeed <> RobotStatus.CurrentMovementParameters.GlobalSpeed, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#646, _infoTimer.output AND Inputs.ToolNo <> RobotStatus.CurrentMovementParameters.ToolNo, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#647, _infoTimer.output AND Inputs.WorkobjectNo <> RobotStatus.CurrentMovementParameters.WorkobjectNo, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#648, _infoTimer.output AND Inputs.PointNo <> RobotStatus.CurrentMovementParameters.PointNo, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#649, _infoTimer.output AND Inputs.UserSpecSpeed1 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed1, eAxoMessageCategory#Warning); - TaskMessenger.ActivateOnCondition(ULINT#650, _infoTimer.output AND Inputs.UserSpecSpeed2 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed2, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - IF Inputs.GlobalSpeed <> RobotStatus.CurrentMovementParameters.GlobalSpeed THEN - RobotStatus.Error.Id := UINT#645;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! + IF Inputs.GlobalSpeed <> Status.CurrentMovementParameters.GlobalSpeed THEN + TaskMessenger.Activate( UINT#545, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#545;//<#Waiting for Inputs.GlobalSpeed to be equal to MovementParameters.GlobalSpeed! END_IF; - IF Inputs.ToolNo <> RobotStatus.CurrentMovementParameters.ToolNo THEN - RobotStatus.Error.Id := UINT#646;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! + IF Inputs.ToolNo <> Status.CurrentMovementParameters.ToolNo THEN + TaskMessenger.Activate( UINT#546, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#546;//<#Waiting for Inputs.ToolNo to be equal to MovementParameters.ToolNo! END_IF; - IF Inputs.WorkobjectNo <> RobotStatus.CurrentMovementParameters.WorkobjectNo THEN - RobotStatus.Error.Id := UINT#647;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! + IF Inputs.WorkobjectNo <> Status.CurrentMovementParameters.WorkobjectNo THEN + TaskMessenger.Activate( UINT#547, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#547;//<#Waiting for Inputs.WorkobjectNo to be equal to MovementParameters.WorkobjectNo! END_IF; - IF Inputs.PointNo <> RobotStatus.CurrentMovementParameters.PointNo THEN - RobotStatus.Error.Id := UINT#648;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! + IF Inputs.PointNo <> Status.CurrentMovementParameters.PointNo THEN + TaskMessenger.Activate( UINT#548, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#548;//<#Waiting for Inputs.PointNo to be equal to MovementParameters.PointNo! END_IF; - IF Inputs.UserSpecSpeed1 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed1 THEN - RobotStatus.Error.Id := UINT#649;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! + IF Inputs.UserSpecSpeed1 <> Status.CurrentMovementParameters.UserSpecSpeed1 THEN + TaskMessenger.Activate( UINT#549, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#549;//<#Waiting for Inputs.UserSpecSpeed1 to be equal to MovementParameters.UserSpecSpeed1! END_IF; - IF Inputs.UserSpecSpeed2 <> RobotStatus.CurrentMovementParameters.UserSpecSpeed2 THEN - RobotStatus.Error.Id := UINT#650;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! + IF Inputs.UserSpecSpeed2 <> Status.CurrentMovementParameters.UserSpecSpeed2 THEN + TaskMessenger.Activate( UINT#550, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#550;//<#Waiting for Inputs.UserSpecSpeed2 to be equal to MovementParameters.UserSpecSpeed2! END_IF; END_IF; - IF Inputs.GlobalSpeed = RobotStatus.CurrentMovementParameters.GlobalSpeed AND - Inputs.ToolNo = RobotStatus.CurrentMovementParameters.ToolNo AND - Inputs.WorkobjectNo = RobotStatus.CurrentMovementParameters.WorkobjectNo AND - Inputs.PointNo = RobotStatus.CurrentMovementParameters.PointNo AND - Inputs.UserSpecSpeed1 = RobotStatus.CurrentMovementParameters.UserSpecSpeed1 AND - Inputs.UserSpecSpeed2 = RobotStatus.CurrentMovementParameters.UserSpecSpeed2 AND - AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,RobotStatus.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN + IF Inputs.GlobalSpeed = Status.CurrentMovementParameters.GlobalSpeed AND + Inputs.ToolNo = Status.CurrentMovementParameters.ToolNo AND + Inputs.WorkobjectNo = Status.CurrentMovementParameters.WorkobjectNo AND + Inputs.PointNo = Status.CurrentMovementParameters.PointNo AND + Inputs.UserSpecSpeed1 = Status.CurrentMovementParameters.UserSpecSpeed1 AND + Inputs.UserSpecSpeed2 = Status.CurrentMovementParameters.UserSpecSpeed2 AND + AXOpen.Components.Robotics.CoordinatesAreNearlyEqual(Inputs.Coordinates,Status.CurrentMovementParameters.Coordinates,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01,REAL#0.01) THEN Outputs.ActionNo := BYTE#255; THIS.CallTimers(FALSE); _movement_progress:=351; @@ -860,9 +933,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _movement_progress = 351 THEN - TaskMessenger.ActivateOnCondition(ULINT#651, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#651; + TaskMessenger.Activate( UINT#551, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#551; END_IF; IF Outputs.ActionNo = Inputs.ActionNo THEN @@ -872,12 +945,12 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _movement_progress = 352 THEN - TaskMessenger.ActivateOnCondition(ULINT#652, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#652; + TaskMessenger.Activate( UINT#552, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#552; END_IF; - Outputs.ActionNo := RobotStatus.CurrentMovementParameters.ActionNo; + Outputs.ActionNo := Status.CurrentMovementParameters.ActionNo; IF Outputs.ActionNo = Inputs.ActionNo THEN THIS.CallTimers(FALSE); @@ -886,9 +959,9 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics END_IF; IF _movement_progress = 353 THEN - TaskMessenger.ActivateOnCondition(ULINT#653, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - RobotStatus.Error.Id := UINT#653; + TaskMessenger.Activate( UINT#553, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#553; END_IF; Outputs.ActionNo := BYTE#255; @@ -907,26 +980,26 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics StartMovementsTask.ThrowWhen(_errorTimer.output); - RobotStatus.Action.Id := TO_UINT(_movement_progress); + Status.Action.Id := TO_UINT(_movement_progress); END_IF; IF StartMovementsTask.IsFirstExecutionCycle() THEN - MovementParameters := RobotStatus.CurrentMovementParameters; + MovementParameters := Status.CurrentMovementParameters; END_IF; IF StartMovementsTask.DoneReached() THEN - RobotStatus.Action.Id := UINT#141; - RobotStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#141; + Status.Error.Id := UINT#0; ELSIF StartMovementsTask.ErrorOccured() THEN - RobotStatus.Action.Id := UINT#840; - RobotStatus.Error.Id := UINT#840; + Status.Action.Id := UINT#10040; + Status.Error.Id := UINT#10040; ELSIF StartMovementsTask.AbortTriggered() THEN - RobotStatus.Action.Id := UINT#841; - RobotStatus.Error.Id := UINT#841; + Status.Action.Id := UINT#10041; + Status.Error.Id := UINT#10041; END_IF; - Messenger.ActivateOnCondition(ULINT#840,StartMovementsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#841,StartMovementsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10040,StartMovementsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#10041,StartMovementsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#142,StartMovementsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF StartMovementsTask.RestoreTriggered() AND _movement_progress >= 340 AND _movement_progress <= 349 THEN - RobotStatus.Action.Id := UINT#142; + Status.Action.Id := UINT#142; _movement_progress := 0; END_IF; //******************************************* @@ -1021,17 +1094,18 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics _data[42] := _dword.%B2; _data[43] := _dword.%B3; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdInOut_64_byte,_data); - Messenger.ActivateOnCondition(ULINT#703,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - RobotStatus.Error.Id := UINT#703; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdInOut_64_byte,_data); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; - END_IF; + END_IF; + //******************************************* END_METHOD METHOD PROTECTED OVERRIDE ManualControl - RobotStatus.CurrentMovementParameters := MovementParameters; + Status.CurrentMovementParameters := MovementParameters; END_METHOD /// @@ -1043,7 +1117,7 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics StopMovementsTask.Restore(); StopMovementsAndProgramTask.Restore(); StartMovementsTask.Restore(); - RobotStatus.Action.Id := UINT#50; + Status.Action.Id := UINT#50; _power_progress := 0; _movement_progress := 0; RestoreTask.DoneWhen(TRUE); @@ -1061,7 +1135,7 @@ NAMESPACE AXOpen.Components.Mitsubishi.Robotics VAR_IN_OUT inData : AxoRoboticsMovementsParams; END_VAR - RobotStatus.CurrentMovementParameters := inData; + Status.CurrentMovementParameters := inData; StartMovements := StartMovementsTask.Invoke(THIS); END_METHOD diff --git a/src/components.mitsubishi.robotics/src/AXOpen.Components.Mitsubishi.Robotics/AxoCr800_v_1_x_x/AxoCr800_v_1_x_x.cs b/src/components.mitsubishi.robotics/src/AXOpen.Components.Mitsubishi.Robotics/AxoCr800_v_1_x_x/AxoCr800_v_1_x_x.cs index 793a1219a..220caaf82 100644 --- a/src/components.mitsubishi.robotics/src/AXOpen.Components.Mitsubishi.Robotics/AxoCr800_v_1_x_x/AxoCr800_v_1_x_x.cs +++ b/src/components.mitsubishi.robotics/src/AXOpen.Components.Mitsubishi.Robotics/AxoCr800_v_1_x_x/AxoCr800_v_1_x_x.cs @@ -52,24 +52,37 @@ private void InitializeMessenger() new KeyValuePair(141, new AxoMessengerTextItem("Start movements finished succesfully.", "")), new KeyValuePair(142, new AxoMessengerTextItem("Start movements restored.", "")), - - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwIdInOut_64_byte` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdInOut_64_byte` parameter is assigned.")), - - new KeyValuePair(702, new AxoMessengerTextItem("Error reading the hwIdInOut_64_byte in the UpdateInputs method!", "Check the value of the `hwIdInOut_64_byte` and reacheability of the device!")), - - new KeyValuePair(703, new AxoMessengerTextItem("Error writting the hwIdInOut_64_byte in the UpdateInputs method!", "Check the value of the `hwIdInOut_64_byte` and reacheability of the device!")), - - new KeyValuePair(800, new AxoMessengerTextItem("Start at main finished with error!", "Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("Start at main was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(810, new AxoMessengerTextItem("Start motors and program finished with error!", "Check the details.")), - new KeyValuePair(811, new AxoMessengerTextItem("Start motors and program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(820, new AxoMessengerTextItem("Stop movements finished with error!", "Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("Stop movements was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(830, new AxoMessengerTextItem("Stop movements and program finished with error!", "Check the details.")), - new KeyValuePair(831, new AxoMessengerTextItem("Stop movements and program was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(840, new AxoMessengerTextItem("Start movements finished with error!", "Check the details.")), - new KeyValuePair(841, new AxoMessengerTextItem("Start movements was aborted, while not yet completed!", "Check the details.")), + // General alarm + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwIdInOut_64_byte is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'In_Out_64_byte' (GsdId=ID_MODULE_IN_OUT64B)." ,"Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `hwIdInOut_64_byte` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwID_in_1` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the InOut_64_byte!" ,"Check the value of the hwIdInOut_64_byte and reacheability of the device!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the InOut_64_byte!" ,"Check the value of the hwIdInOut_64_byte and reacheability of the device!")), + + new KeyValuePair(10000, new AxoMessengerTextItem("Start at main finished with error!" ,"Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("Start at main was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10010, new AxoMessengerTextItem("Start motors and program finished with error!" ,"Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("Start motors and program was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10020, new AxoMessengerTextItem("Stop movements finished with error!" ,"Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("Stop movements was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10030, new AxoMessengerTextItem("Stop movements and program finished with error!" ,"Check the details.")), + new KeyValuePair(10031, new AxoMessengerTextItem("Stop movements and program was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(10040, new AxoMessengerTextItem("Start movements finished with error!" ,"Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("Start movements was aborted, while not yet completed!" ,"Check the details.")), }; @@ -80,44 +93,44 @@ private void InitializeTaskMessenger() { List> messengerTextList = new List> { - new KeyValuePair(600, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), - new KeyValuePair(601, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), - new KeyValuePair(602, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), - new KeyValuePair(603, new AxoMessengerTextItem("Waiting for the signal Inputs.EmergencyError to be reseted!", "Check the status of the `EmergencyError` signal.")), - new KeyValuePair(604, new AxoMessengerTextItem("Waiting for the signal Inputs.ProgramReset to be set!", "Check the status of the `Inputs.ProgramReset` signal.")), - - new KeyValuePair(610, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), - new KeyValuePair(611, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), - new KeyValuePair(612, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), - new KeyValuePair(613, new AxoMessengerTextItem("Waiting for the signal Inputs.EmergencyError to be reseted!", "Check the status of the `EmergencyError` signal.")), - new KeyValuePair(614, new AxoMessengerTextItem("Waiting for the signal Inputs.ServoOn to be set!", "Check the status of the `Inputs.ServoOn` signal.")), - new KeyValuePair(615, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), - new KeyValuePair(616, new AxoMessengerTextItem("Waiting for the signal Inputs.Start to be set!", "Check the status of the `Inputs.Start` signal.")), - new KeyValuePair(617, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), - - new KeyValuePair(620, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), - new KeyValuePair(621, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), - new KeyValuePair(622, new AxoMessengerTextItem("Waiting for the signal Inputs.Stop to be set!", "Check the status of the `Inputs.Stop` signal.")), - - new KeyValuePair(630, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), - new KeyValuePair(631, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), - new KeyValuePair(632, new AxoMessengerTextItem("Waiting for the signal Inputs.Stop to be set!", "Check the status of the `Inputs.Stop` signal.")), - - new KeyValuePair(640, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), - new KeyValuePair(641, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), - new KeyValuePair(642, new AxoMessengerTextItem("Waiting for the signal Inputs.ServoOn to be set!", "Check the status of the `Inputs.ServoOn` signal.")), - new KeyValuePair(643, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), - - new KeyValuePair(644, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(645, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), - new KeyValuePair(646, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), - new KeyValuePair(647, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), - new KeyValuePair(648, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), - new KeyValuePair(649, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), - new KeyValuePair(650, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), - new KeyValuePair(651, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), - new KeyValuePair(652, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), - new KeyValuePair(653, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(500, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), + new KeyValuePair(501, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), + new KeyValuePair(502, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), + new KeyValuePair(503, new AxoMessengerTextItem("Waiting for the signal Inputs.EmergencyError to be reseted!", "Check the status of the `EmergencyError` signal.")), + new KeyValuePair(504, new AxoMessengerTextItem("Waiting for the signal Inputs.ProgramReset to be set!", "Check the status of the `Inputs.ProgramReset` signal.")), + + new KeyValuePair(510, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), + new KeyValuePair(511, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), + new KeyValuePair(512, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), + new KeyValuePair(513, new AxoMessengerTextItem("Waiting for the signal Inputs.EmergencyError to be reseted!", "Check the status of the `EmergencyError` signal.")), + new KeyValuePair(514, new AxoMessengerTextItem("Waiting for the signal Inputs.ServoOn to be set!", "Check the status of the `Inputs.ServoOn` signal.")), + new KeyValuePair(515, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), + new KeyValuePair(516, new AxoMessengerTextItem("Waiting for the signal Inputs.Start to be set!", "Check the status of the `Inputs.Start` signal.")), + new KeyValuePair(517, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), + + new KeyValuePair(520, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), + new KeyValuePair(521, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), + new KeyValuePair(522, new AxoMessengerTextItem("Waiting for the signal Inputs.Stop to be set!", "Check the status of the `Inputs.Stop` signal.")), + + new KeyValuePair(530, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), + new KeyValuePair(531, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), + new KeyValuePair(532, new AxoMessengerTextItem("Waiting for the signal Inputs.Stop to be set!", "Check the status of the `Inputs.Stop` signal.")), + + new KeyValuePair(540, new AxoMessengerTextItem("Waiting for the signal Inputs.AutoEnable to be set!", "Check the status of the `Inputs.AutoEnable` signal.")), + new KeyValuePair(541, new AxoMessengerTextItem("Waiting for the signal Inputs.OperationEnable to be set!", "Check the status of the `Inputs.OperationEnable` signal.")), + new KeyValuePair(542, new AxoMessengerTextItem("Waiting for the signal Inputs.ServoOn to be set!", "Check the status of the `Inputs.ServoOn` signal.")), + new KeyValuePair(543, new AxoMessengerTextItem("Waiting for the signal Inputs.ErrorReset to be reseted!", "Check the status of the `Inputs.ErrorReset` signal.")), + + new KeyValuePair(544, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(545, new AxoMessengerTextItem("Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `.", "Check the value of the Inputs.GlobalSpeedsignal")), + new KeyValuePair(546, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `.", "Check the value of the Inputs.ToolNosignal")), + new KeyValuePair(547, new AxoMessengerTextItem("Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `.", "Check the value of the Inputs.WorkobjectNosignal")), + new KeyValuePair(548, new AxoMessengerTextItem("Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `.", "Check the value of the Inputs.PointNosignal")), + new KeyValuePair(549, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `.", "Check the value of the Inputs.UserSpecSpeed1signal")), + new KeyValuePair(550, new AxoMessengerTextItem("Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `.", "Check the value of the Inputs.UserSpecSpeed2signal")), + new KeyValuePair(551, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNosignal")), + new KeyValuePair(552, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), + new KeyValuePair(553, new AxoMessengerTextItem("Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`.", "Check the value of the Inputs.ActionNo signal")), }; @@ -137,55 +150,65 @@ public string ErrorDescription if (errorDescriptionDict.Count == 0) { errorDescriptionDict.Add(0, " "); - errorDescriptionDict.Add(600, "Waiting for the signal Inputs.AutoEnable to be set!"); - errorDescriptionDict.Add(601, "Waiting for the signal Inputs.OperationEnable to be set!"); - errorDescriptionDict.Add(602, "Waiting for the signal Inputs.ErrorReset to be reseted!"); - errorDescriptionDict.Add(603, "Waiting for the signal Inputs.EmergencyError to be reseted!"); - errorDescriptionDict.Add(604, "Waiting for the signal Inputs.ProgramReset to be set!"); - errorDescriptionDict.Add(610, "Waiting for the signal Inputs.AutoEnable to be set!"); - errorDescriptionDict.Add(611, "Waiting for the signal Inputs.OperationEnable to be set!"); - errorDescriptionDict.Add(612, "Waiting for the signal Inputs.ErrorReset to be reseted!"); - errorDescriptionDict.Add(613, "Waiting for the signal Inputs.EmergencyError to be reseted!"); - errorDescriptionDict.Add(614, "Waiting for the signal Inputs.ServoOn to be set!"); - errorDescriptionDict.Add(615, "Waiting for the signal Inputs.ErrorReset to be reseted!"); - errorDescriptionDict.Add(616, "Waiting for the signal Inputs.Start to be set!"); - errorDescriptionDict.Add(617, "Waiting for the signal Inputs.ErrorReset to be reseted!"); - errorDescriptionDict.Add(620, "Waiting for the signal Inputs.AutoEnable to be set!"); - errorDescriptionDict.Add(621, "Waiting for the signal Inputs.OperationEnable to be set!"); - errorDescriptionDict.Add(622, "Waiting for the signal Inputs.Stop to be set!"); - errorDescriptionDict.Add(630, "Waiting for the signal Inputs.AutoEnable to be set!"); - errorDescriptionDict.Add(631, "Waiting for the signal Inputs.OperationEnable to be set!"); - errorDescriptionDict.Add(632, "Waiting for the signal Inputs.Stop to be set!"); - errorDescriptionDict.Add(640, "Waiting for the signal Inputs.AutoEnable to be set!"); - errorDescriptionDict.Add(641, "Waiting for the signal Inputs.OperationEnable to be set!"); - errorDescriptionDict.Add(642, "Waiting for the signal Inputs.ServoOn to be set!"); - errorDescriptionDict.Add(643, "Waiting for the signal Inputs.ErrorReset to be reseted!"); - errorDescriptionDict.Add(644, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(645, "Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `."); - errorDescriptionDict.Add(646, "Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `."); - errorDescriptionDict.Add(647, "Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `."); - errorDescriptionDict.Add(648, "Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `."); - errorDescriptionDict.Add(649, "Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `."); - errorDescriptionDict.Add(650, "Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `."); - errorDescriptionDict.Add(651, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(652, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - errorDescriptionDict.Add(653, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); - - - errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(701, "Input variable `hwIdInOut_64_byte` has invalid value in `Run` method!"); - errorDescriptionDict.Add(702, "Error reading the hwIdInOut_64_byte in the UpdateInputs method!"); - errorDescriptionDict.Add(703, "Error writting the hwIdInOut_64_byte in the UpdateInputs method!"); - errorDescriptionDict.Add(800, "Start at main finished with error!"); - errorDescriptionDict.Add(801, "Start at main was aborted, while not yet completed!"); - errorDescriptionDict.Add(810, "Start motors and program finished with error!"); - errorDescriptionDict.Add(811, "Start motors and program was aborted, while not yet completed!"); - errorDescriptionDict.Add(820, "Stop movements finished with error!"); - errorDescriptionDict.Add(821, "Stop movements was aborted, while not yet completed!"); - errorDescriptionDict.Add(830, "Stop movements and program finished with error!"); - errorDescriptionDict.Add(831, "Stop movements and program was aborted, while not yet completed!"); - errorDescriptionDict.Add(840, "Start movements finished with error!"); - errorDescriptionDict.Add(841, "Start movements was aborted, while not yet completed!"); + errorDescriptionDict.Add(500, "Waiting for the signal Inputs.AutoEnable to be set!"); + errorDescriptionDict.Add(501, "Waiting for the signal Inputs.OperationEnable to be set!"); + errorDescriptionDict.Add(502, "Waiting for the signal Inputs.ErrorReset to be reseted!"); + errorDescriptionDict.Add(503, "Waiting for the signal Inputs.EmergencyError to be reseted!"); + errorDescriptionDict.Add(504, "Waiting for the signal Inputs.ProgramReset to be set!"); + errorDescriptionDict.Add(510, "Waiting for the signal Inputs.AutoEnable to be set!"); + errorDescriptionDict.Add(511, "Waiting for the signal Inputs.OperationEnable to be set!"); + errorDescriptionDict.Add(512, "Waiting for the signal Inputs.ErrorReset to be reseted!"); + errorDescriptionDict.Add(513, "Waiting for the signal Inputs.EmergencyError to be reseted!"); + errorDescriptionDict.Add(514, "Waiting for the signal Inputs.ServoOn to be set!"); + errorDescriptionDict.Add(515, "Waiting for the signal Inputs.ErrorReset to be reseted!"); + errorDescriptionDict.Add(516, "Waiting for the signal Inputs.Start to be set!"); + errorDescriptionDict.Add(517, "Waiting for the signal Inputs.ErrorReset to be reseted!"); + errorDescriptionDict.Add(520, "Waiting for the signal Inputs.AutoEnable to be set!"); + errorDescriptionDict.Add(521, "Waiting for the signal Inputs.OperationEnable to be set!"); + errorDescriptionDict.Add(522, "Waiting for the signal Inputs.Stop to be set!"); + errorDescriptionDict.Add(530, "Waiting for the signal Inputs.AutoEnable to be set!"); + errorDescriptionDict.Add(531, "Waiting for the signal Inputs.OperationEnable to be set!"); + errorDescriptionDict.Add(532, "Waiting for the signal Inputs.Stop to be set!"); + errorDescriptionDict.Add(540, "Waiting for the signal Inputs.AutoEnable to be set!"); + errorDescriptionDict.Add(541, "Waiting for the signal Inputs.OperationEnable to be set!"); + errorDescriptionDict.Add(542, "Waiting for the signal Inputs.ServoOn to be set!"); + errorDescriptionDict.Add(543, "Waiting for the signal Inputs.ErrorReset to be reseted!"); + errorDescriptionDict.Add(544, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(545, "Waiting for the value of the `Inputs.GlobalSpeed` to be the same as the value of the `CurrentMovementParameters.GlobalSpeed `."); + errorDescriptionDict.Add(546, "Waiting for the value of the `Inputs.ToolNo` to be the same as the value of the `CurrentMovementParameters.ToolNo `."); + errorDescriptionDict.Add(547, "Waiting for the value of the `Inputs.WorkobjectNo` to be the same as the value of the `CurrentMovementParameters.WorkobjectNo `."); + errorDescriptionDict.Add(548, "Waiting for the value of the `Inputs.PointNo` to be the same as the value of the `CurrentMovementParameters.PointNo `."); + errorDescriptionDict.Add(549, "Waiting for the value of the `Inputs.UserSpecSpeed1` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed1 `."); + errorDescriptionDict.Add(550, "Waiting for the value of the `Inputs.UserSpecSpeed2` to be the same as the value of the `CurrentMovementParameters.UserSpecSpeed2 `."); + errorDescriptionDict.Add(551, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(552, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + errorDescriptionDict.Add(553, "Waiting for the value of the `Inputs.ActionNo` to be the same as the value of the `Outputs.ActionNo`."); + // General alarm + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ); + errorDescriptionDict.Add(710, "Hw configuration error. Value of hwIdInOut_64_byte is zero." ); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'In_Out_64_byte' (GsdId=ID_MODULE_IN_OUT64B)." ); + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1132, "Input variable `hwIdInOut_64_byte` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1201, "Error reading the InOut_64_byte!" ); + errorDescriptionDict.Add(1231, "Error writing the InOut_64_byte!" ); + errorDescriptionDict.Add(10000, "Start at main finished with error!" ); + errorDescriptionDict.Add(10001, "Start at main was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10010, "Start motors and program finished with error!" ); + errorDescriptionDict.Add(10011, "Start motors and program was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10020, "Stop movements finished with error!" ); + errorDescriptionDict.Add(10021, "Stop movements was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10030, "Stop movements and program finished with error!" ); + errorDescriptionDict.Add(10031, "Stop movements and program was aborted, while not yet completed!" ); + errorDescriptionDict.Add(10040, "Start movements finished with error!" ); + errorDescriptionDict.Add(10041, "Start movements was aborted, while not yet completed!"); } string errorDescription = " "; diff --git a/src/components.pneumatics/app/apax.yml b/src/components.pneumatics/app/apax.yml index 48e57d452..51bf16e48 100644 --- a/src/components.pneumatics/app/apax.yml +++ b/src/components.pneumatics/app/apax.yml @@ -1,12 +1,12 @@ -name: "pneumaticcomponents" +name: "pneumaticcomponents" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Pneumatics" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,144 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/components.pneumatics/ctrl/apax.yml b/src/components.pneumatics/ctrl/apax.yml index 766a35f08..3fc4a9dc3 100644 --- a/src/components.pneumatics/ctrl/apax.yml +++ b/src/components.pneumatics/ctrl/apax.yml @@ -7,8 +7,8 @@ files: - src - axsharp.companion.json variables: - APAX_BUILD_ARGS: - - "--debug" + # APAX_BUILD_ARGS: + # - "--debug" AXUNIT_TARGET_IP: "172.20.30.110" SIM_ENABLED: "true" registries: @@ -18,28 +18,36 @@ devDependencies: dependencies: "@inxton/axopen.components.abstractions": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: - download: - - START=$(date +%s) - - apax sld load --accept-security-disclaimer -t $AXTARGET -i $AXTARGETPLATFORMINPUT -r - - echo "Downloaded in :" $(expr $(date +%s) - $START) "s" + postbuild: + - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.rexroth.drives/app/SystemConstants/plc_line_HwIdentifiers.st b/src/components.rexroth.drives/app/SystemConstants/plc_line_HwIdentifiers.st index b66bc0329..dc6084128 100644 --- a/src/components.rexroth.drives/app/SystemConstants/plc_line_HwIdentifiers.st +++ b/src/components.rexroth.drives/app/SystemConstants/plc_line_HwIdentifiers.st @@ -1,29 +1,56 @@ CONFIGURATION HardwareIDs VAR_GLOBAL CONSTANT - ST3_indradrive_HwID : UINT := UINT#258; - ST3_indradrive_F_Modul_not_used_ID_FMod_NotUsed_HwID : UINT := UINT#266; - ST3_indradrive_Input_9_Words_ID_InMod_9Words_HwID : UINT := UINT#264; - ST3_indradrive_Output_13_Words_ID_OutMod_13Words_HwID : UINT := UINT#263; - ST3_indradrive_ParamCh_5Words_ID_PaCh_5Words_HwID : UINT := UINT#265; - ST3_indradrive_Rack_HwID : UINT := UINT#261; - ST3_indradrive_ST3_indradrive_HwID : UINT := UINT#262; - ST3_indradrive_ST3_indradrive_DAP_1_HwID : UINT := UINT#267; - ST3_indradrive_ST3_indradrive_profinet_HwID : UINT := UINT#257; - ST3_indradrive_ST3_indradrive_profinet_Port_1_HwID : UINT := UINT#259; - ST3_indradrive_ST3_indradrive_profinet_Port_2_HwID : UINT := UINT#260; + AxoCtrlxDriveXsc_HwID : UINT := UINT#258; + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_HwID : UINT := UINT#262; + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_ctrlX_DRIVE_XCS_HwID : UINT := UINT#285; + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_profinet_HwID : UINT := UINT#257; + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_profinet_Port_1_HwID : UINT := UINT#259; + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_profinet_Port_2_HwID : UINT := UINT#260; + AxoCtrlxDriveXsc_Inputs_HwID : UINT := UINT#264; + AxoCtrlxDriveXsc_Outputs_HwID : UINT := UINT#263; + AxoCtrlxDriveXsc_P_0_0106_0_0__STO_function__Operating_status_HwID : UINT := UINT#273; + AxoCtrlxDriveXsc_Rack_HwID : UINT := UINT#261; + AxoCtrlxDriveXsc_S_0_0080_0_0__Torque_force_command_value_HwID : UINT := UINT#283; + AxoCtrlxDriveXsc_S_0_0084_0_0__Torque_force_feedback_value_HwID : UINT := UINT#272; + AxoCtrlxDriveXsc_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_HwID : UINT := UINT#282; + AxoCtrlxDriveXsc_S_0_0134_0_0:_Servodrive_profile:_Control_word_HwID : UINT := UINT#274; + AxoCtrlxDriveXsc_S_0_0135_0_0:_Servodrive_profile:_Status_word_HwID : UINT := UINT#265; + AxoCtrlxDriveXsc_S_0_0144_0_0__Signal_status_word__Value_HwID : UINT := UINT#267; + AxoCtrlxDriveXsc_S_0_0145_0_0__Signal_control_word__Value_HwID : UINT := UINT#276; + AxoCtrlxDriveXsc_S_0_0193_0_0__Positioning_jerk_HwID : UINT := UINT#284; + AxoCtrlxDriveXsc_S_0_0259_0_0__Positioning_profile__Profile_velocity_HwID : UINT := UINT#278; + AxoCtrlxDriveXsc_S_0_0260_0_0__Positioning_profile__Acceleration_HwID : UINT := UINT#279; + AxoCtrlxDriveXsc_S_0_0282_0_0__Drive_controlled_positioning__Command_value_HwID : UINT := UINT#277; + AxoCtrlxDriveXsc_S_0_0359_0_0__Positioning_profile__Deceleration_HwID : UINT := UINT#280; + AxoCtrlxDriveXsc_S_0_0386_0_0__Position_controller__Position_actual_value_HwID : UINT := UINT#268; + AxoCtrlxDriveXsc_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_HwID : UINT := UINT#270; + AxoCtrlxDriveXsc_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_HwID : UINT := UINT#269; + AxoCtrlxDriveXsc_S_0_1720_0_1__Power_supply_control__Control_word_HwID : UINT := UINT#281; + AxoCtrlxDriveXsc_S_0_1720_0_2__Power_supply_control__Status_word_HwID : UINT := UINT#271; + ST3_indradrive_HwID : UINT := UINT#287; + ST3_indradrive_F_Modul_not_used_ID_FMod_NotUsed_HwID : UINT := UINT#295; + ST3_indradrive_Input_9_Words_ID_InMod_9Words_HwID : UINT := UINT#293; + ST3_indradrive_Output_13_Words_ID_OutMod_13Words_HwID : UINT := UINT#292; + ST3_indradrive_ParamCh_5Words_ID_PaCh_5Words_HwID : UINT := UINT#294; + ST3_indradrive_Rack_HwID : UINT := UINT#290; + ST3_indradrive_ST3_indradrive_HwID : UINT := UINT#291; + ST3_indradrive_ST3_indradrive_DAP_1_HwID : UINT := UINT#296; + ST3_indradrive_ST3_indradrive_profinet_HwID : UINT := UINT#286; + ST3_indradrive_ST3_indradrive_profinet_Port_1_HwID : UINT := UINT#288; + ST3_indradrive_ST3_indradrive_profinet_Port_2_HwID : UINT := UINT#289; plc_line_HwID : UINT := UINT#32; - plc_line_Rail_0_HwID : UINT := UINT#268; + plc_line_Rail_0_HwID : UINT := UINT#297; plc_line_plc_line_HwID : UINT := UINT#48; plc_line_plc_line_CPU_display_1_HwID : UINT := UINT#54; plc_line_plc_line_Card_reader_writer_1_HwID : UINT := UINT#51; plc_line_plc_line_DP_interface_1_HwID : UINT := UINT#60; plc_line_plc_line_OPC_UA_1_HwID : UINT := UINT#117; + plc_line_plc_line_Virtual_communication_interface_HwID : UINT := UINT#135; plc_line_plc_line_profinet_x1_HwID : UINT := UINT#64; plc_line_plc_line_profinet_x1_Port_1_HwID : UINT := UINT#65; plc_line_plc_line_profinet_x1_Port_2_HwID : UINT := UINT#66; plc_line_plc_line_profinet_x2_HwID : UINT := UINT#72; plc_line_plc_line_profinet_x2_Port_3_HwID : UINT := UINT#73; - plc_line_plc_line_virtual_communication_interface_HwID : UINT := UINT#135; profinet_plc_line_HwID : UINT := UINT#256; END_VAR diff --git a/src/components.rexroth.drives/app/SystemConstants/plc_line_IoAddresses.st b/src/components.rexroth.drives/app/SystemConstants/plc_line_IoAddresses.st index 96b1dbda7..f99cc9f44 100644 --- a/src/components.rexroth.drives/app/SystemConstants/plc_line_IoAddresses.st +++ b/src/components.rexroth.drives/app/SystemConstants/plc_line_IoAddresses.st @@ -1,37 +1,55 @@ CONFIGURATION IoAddresses VAR_GLOBAL - ST3_indradrive_Input_9_Words_InputAddress_0 AT %IW0: WORD; - ST3_indradrive_Input_9_Words_InputAddress_1 AT %IW2: WORD; - ST3_indradrive_Input_9_Words_InputAddress_2 AT %IW4: WORD; - ST3_indradrive_Input_9_Words_InputAddress_3 AT %IW6: WORD; - ST3_indradrive_Input_9_Words_InputAddress_4 AT %IW8: WORD; - ST3_indradrive_Input_9_Words_InputAddress_5 AT %IW10: WORD; - ST3_indradrive_Input_9_Words_InputAddress_6 AT %IW12: WORD; - ST3_indradrive_Input_9_Words_InputAddress_7 AT %IW14: WORD; - ST3_indradrive_Input_9_Words_InputAddress_8 AT %IW16: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_0 AT %QW0: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_1 AT %QW2: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_2 AT %QW4: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_3 AT %QW6: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_4 AT %QW8: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_5 AT %QW10: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_6 AT %QW12: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_7 AT %QW14: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_8 AT %QW16: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_9 AT %QW18: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_10 AT %QW20: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_11 AT %QW22: WORD; - ST3_indradrive_Output_13_Words_OutputAddress_12 AT %QW24: WORD; - ST3_indradrive_ParamCh_5Words_InputAddress_0 AT %IW18: WORD; - ST3_indradrive_ParamCh_5Words_InputAddress_1 AT %IW20: WORD; - ST3_indradrive_ParamCh_5Words_InputAddress_2 AT %IW22: WORD; - ST3_indradrive_ParamCh_5Words_InputAddress_3 AT %IW24: WORD; - ST3_indradrive_ParamCh_5Words_InputAddress_4 AT %IW26: WORD; - ST3_indradrive_ParamCh_5Words_OutputAddress_0 AT %QW26: WORD; - ST3_indradrive_ParamCh_5Words_OutputAddress_1 AT %QW28: WORD; - ST3_indradrive_ParamCh_5Words_OutputAddress_2 AT %QW30: WORD; - ST3_indradrive_ParamCh_5Words_OutputAddress_3 AT %QW32: WORD; - ST3_indradrive_ParamCh_5Words_OutputAddress_4 AT %QW34: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_1_InputAddress AT %IW0: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_2_InputAddress AT %IW20: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_3_InputAddress AT %IW18: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_4_InputAddress AT %IW2: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_5_InputAddress AT %ID4: DWORD; + AxoCtrlxDriveXsc_Inputs_Submodule_6_InputAddress AT %ID12: DWORD; + AxoCtrlxDriveXsc_Inputs_Submodule_7_InputAddress AT %ID8: DWORD; + AxoCtrlxDriveXsc_Inputs_Submodule_8_InputAddress AT %IW16: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_1_OutputAddress AT %QW0: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_2_OutputAddress AT %QW24: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_3_OutputAddress AT %QW22: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_4_OutputAddress AT %QW2: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_5_OutputAddress AT %QD26: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_6_OutputAddress AT %QD8: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_7_OutputAddress AT %QD12: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_8_OutputAddress AT %QD4: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_9_OutputAddress AT %QD16: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_10_OutputAddress AT %QW20: WORD; + ST3_indradrive_Input_9_Words_InputAddress_0 AT %IW24: WORD; + ST3_indradrive_Input_9_Words_InputAddress_1 AT %IW26: WORD; + ST3_indradrive_Input_9_Words_InputAddress_2 AT %IW28: WORD; + ST3_indradrive_Input_9_Words_InputAddress_3 AT %IW30: WORD; + ST3_indradrive_Input_9_Words_InputAddress_4 AT %IW32: WORD; + ST3_indradrive_Input_9_Words_InputAddress_5 AT %IW34: WORD; + ST3_indradrive_Input_9_Words_InputAddress_6 AT %IW36: WORD; + ST3_indradrive_Input_9_Words_InputAddress_7 AT %IW38: WORD; + ST3_indradrive_Input_9_Words_InputAddress_8 AT %IW40: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_0 AT %QW32: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_1 AT %QW34: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_2 AT %QW36: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_3 AT %QW38: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_4 AT %QW40: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_5 AT %QW42: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_6 AT %QW44: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_7 AT %QW46: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_8 AT %QW48: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_9 AT %QW50: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_10 AT %QW52: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_11 AT %QW54: WORD; + ST3_indradrive_Output_13_Words_OutputAddress_12 AT %QW56: WORD; + ST3_indradrive_ParamCh_5Words_InputAddress_0 AT %IW42: WORD; + ST3_indradrive_ParamCh_5Words_InputAddress_1 AT %IW44: WORD; + ST3_indradrive_ParamCh_5Words_InputAddress_2 AT %IW46: WORD; + ST3_indradrive_ParamCh_5Words_InputAddress_3 AT %IW48: WORD; + ST3_indradrive_ParamCh_5Words_InputAddress_4 AT %IW50: WORD; + ST3_indradrive_ParamCh_5Words_OutputAddress_0 AT %QW58: WORD; + ST3_indradrive_ParamCh_5Words_OutputAddress_1 AT %QW60: WORD; + ST3_indradrive_ParamCh_5Words_OutputAddress_2 AT %QW62: WORD; + ST3_indradrive_ParamCh_5Words_OutputAddress_3 AT %QW64: WORD; + ST3_indradrive_ParamCh_5Words_OutputAddress_4 AT %QW66: WORD; END_VAR END_CONFIGURATION diff --git a/src/components.rexroth.drives/app/apax.yml b/src/components.rexroth.drives/app/apax.yml index dabbb3d83..836db0f21 100644 --- a/src/components.rexroth.drives/app/apax.yml +++ b/src/components.rexroth.drives/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.rexroth.drives" +name: "app_axopen.components.rexroth.drives" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Rexroth.Drives" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,138 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + diff --git a/src/components.rexroth.drives/app/gsd/source/GSDML-V2.41-Bosch Rexroth AG-ctrlX DRIVE-20241107.xml b/src/components.rexroth.drives/app/gsd/source/GSDML-V2.41-Bosch Rexroth AG-ctrlX DRIVE-20241107.xml new file mode 100644 index 000000000..16b8846c5 --- /dev/null +++ b/src/components.rexroth.drives/app/gsd/source/GSDML-V2.41-Bosch Rexroth AG-ctrlX DRIVE-20241107.xml @@ -0,0 +1,20628 @@ + + + + + + + + + + + + + + PROFINET Device Profile + 1.00 + Device Profile for PROFINET Devices + PROFIBUS Nutzerorganisation e. V. (PNO) + Device + + 4 + 1 + GSDML + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components.rexroth.drives/app/hwc/plc_line.hwl.yml b/src/components.rexroth.drives/app/hwc/plc_line.hwl.yml index 9d25d9147..812349798 100644 --- a/src/components.rexroth.drives/app/hwc/plc_line.hwl.yml +++ b/src/components.rexroth.drives/app/hwc/plc_line.hwl.yml @@ -13,3 +13,4 @@ IoSystems: - Ref: plc_line/plc_line/profinet_x1 DeviceInterfaces: - Ref: ST3_indradrive/ST3_indradrive/profinet + - Ref: AxoCtrlxDriveXsc/AxoCtrlxDriveXsc/profinet diff --git a/src/components.rexroth.drives/app/ix-blazor/Pages/Component_1.razor b/src/components.rexroth.drives/app/ix-blazor/Pages/Component_1.razor index 404c71067..1c764b6ae 100644 --- a/src/components.rexroth.drives/app/ix-blazor/Pages/Component_1.razor +++ b/src/components.rexroth.drives/app/ix-blazor/Pages/Component_1.razor @@ -1,22 +1,6 @@ @page "/Component_1" @using AXOpen.Core; - - -@code -{ - #region WriteTaskDurationToConsole - private async Task WriteTaskTimesToConsole() - { - await Entry.Plc.documentation.componentOne.IndraDrive.WriteTaskDurationToConsole(); - } - #endregion - - #region PartialExtensionExample - // No partial extension example available - #endregion - -} @* diff --git a/src/components.rexroth.drives/app/ix-blazor/Pages/Component_2.razor b/src/components.rexroth.drives/app/ix-blazor/Pages/Component_2.razor new file mode 100644 index 000000000..6b1ac444c --- /dev/null +++ b/src/components.rexroth.drives/app/ix-blazor/Pages/Component_2.razor @@ -0,0 +1,25 @@ +@page "/Component_2" +@using AXOpen.Core; + + + +@* + + + + + + + + + + + + + + + + + + *@ + diff --git a/src/components.rexroth.drives/app/ix-blazor/Pages/Documentation.razor b/src/components.rexroth.drives/app/ix-blazor/Pages/Documentation.razor index d308e5dd0..450f461bd 100644 --- a/src/components.rexroth.drives/app/ix-blazor/Pages/Documentation.razor +++ b/src/components.rexroth.drives/app/ix-blazor/Pages/Documentation.razor @@ -2,5 +2,6 @@ @using AXOpen.Core; + diff --git a/src/components.rexroth.drives/app/src/Documentation/Component_1.st b/src/components.rexroth.drives/app/src/Documentation/Component_1.st index 319483ded..ac9fc02f1 100644 --- a/src/components.rexroth.drives/app/src/Documentation/Component_1.st +++ b/src/components.rexroth.drives/app/src/Documentation/Component_1.st @@ -32,9 +32,6 @@ NAMESPACE AXOpen.Components.Rexroth.Drives // IndraDrive.Run(parent := THIS, hwID := HwIdentifiers#ST3_indradrive_HwID, - hwIdParamCh_IDN := HwIdentifiers#ST3_indradrive_ParamCh_5Words_ID_PaCh_5Words_HwID, - hwIdInput_9_Words := HwIdentifiers#ST3_indradrive_Input_9_Words_ID_InMod_9Words_HwID, - hwIdOutput_13_Words := HwIdentifiers#ST3_indradrive_Output_13_Words_ID_OutMod_13Words_HwID, Enable := Enable, EnablePositive := EnablePositive, EnableNegative := EnableNegative); @@ -147,14 +144,14 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _i := _i + 1; IF(Steps[_i].Execute(Sequencer, 'Move additive')) THEN IndraDrive.AxoMoveAbsolute( Position := LREAL#10.0, - Velocity := LREAL#10.0, + Velocity := LREAL#1.0, Acceleration := LREAL#50.0, Deceleration := LREAL#50.0, Jerk := LREAL#50.0 ); - IF IndraDrive.ActualPosition > 6.0 THEN + IF IndraDrive.ActualPosition > 7.5 THEN IndraDrive.AxoMoveAdditive( Distance := LREAL#5.0, - Velocity := LREAL#1.0, + Velocity := LREAL#5.0, Acceleration := LREAL#50.0, Deceleration := LREAL#50.0, Jerk := LREAL#50.0 diff --git a/src/components.rexroth.drives/app/src/Documentation/Component_2.st b/src/components.rexroth.drives/app/src/Documentation/Component_2.st new file mode 100644 index 000000000..f5ba8f635 --- /dev/null +++ b/src/components.rexroth.drives/app/src/Documentation/Component_2.st @@ -0,0 +1,438 @@ +USING AXOpen.Components.Abstractions.Drives; +USING AXOpen.Core; + +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + CLASS Component_2 EXTENDS AXOpen.Core.AxoObject + // + VAR PUBLIC + CtrlXdrive : AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXsc; + END_VAR + // + + // + VAR PUBLIC + manualControl : BOOL; + Enable : BOOL; // As long as ‘Enable’ is true, power is being enabled. + EnablePositive : BOOL; // As long as ‘Enable’ is true, this permits motion in positive direction + EnableNegative : BOOL; // As long as ‘Enable’ is true, this permits motion in negative direction + END_VAR + // + + METHOD PUBLIC OVERRIDE Run + VAR_INPUT + parent : IAxoObject; + END_VAR + + SUPER.Run(parent); + + IF(manualControl) THEN + CtrlXdrive.ActivateManualControl(); + END_IF; + // + CtrlXdrive.Run(parent := THIS, + hwID := HwIdentifiers#AxoCtrlxDriveXsc_HwID, + Enable := Enable, + EnablePositive := EnablePositive, + EnableNegative := EnableNegative); + // + + THIS.UseInSequencer(); + END_METHOD + + // + VAR PUBLIC + Sequencer : AxoSequencer; + Steps : ARRAY[0..40] OF AXOpen.Core.AxoStep; + END_VAR + + VAR PRIVATE + _Valid : BOOL; + _BoolValue : BOOL; + _DintValue : DINT; + _RealValue : REAL; + ReadDigitalInput_Valid : BOOL; + ReadDigitalInput_Value : BOOL; + MoveVelocity_InVelocity : BOOL; + MoveTorque_InTorque : BOOL; + Stop_Done : BOOL; + END_VAR + METHOD PRIVATE UseInSequencer + + Sequencer.Run(THIS); + Sequencer.Open(); + Sequencer.SequenceMode := eAxoSequenceMode#RunOnce; + + IF(Steps[2].Execute(Sequencer, TRUE, 'Restore')) THEN + manualControl := FALSE; + Enable := FALSE; + EnablePositive := FALSE; + EnableNegative := FALSE; + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + + IF(Steps[3].Execute(Sequencer, TRUE, 'Reset drive')) THEN + IF(CtrlXdrive.AxoReset().IsDone()) THEN + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[4].Execute(Sequencer, TRUE, 'Enable drive')) THEN + Enable := TRUE; + EnablePositive := TRUE; + EnableNegative := TRUE; + IF(CtrlXdrive.AxoPower_Status) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[5].Execute(Sequencer, TRUE, 'Drive homming')) THEN + IF(CtrlXdrive.AxoHome( Position := LREAL#5.0, + HommingMode := INT#551, // Negative hardware limit switch with zero pulse + Velocity := LREAL#10.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0 + ).IsDone()) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[6].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(CtrlXdrive.ActualPosition >=4.9 AND CtrlXdrive.ActualPosition <=5.1) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[7].Execute(Sequencer, TRUE, 'Set position')) THEN + IF(CtrlXdrive.AxoSetPosition(Position := LREAL#0.0).IsDone()) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[8].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(CtrlXdrive.ActualPosition >=-0.1 AND CtrlXdrive.ActualPosition <=0.1) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[9].Execute(Sequencer, TRUE, 'Move absolute')) THEN + IF(CtrlXdrive.AxoMoveAbsolute( ContinuousUpdate := FALSE, + Position := LREAL#5.0, + Velocity := LREAL#5.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[10].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(CtrlXdrive.ActualPosition >=4.9 AND CtrlXdrive.ActualPosition <=5.1) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[11].Execute(Sequencer, TRUE, 'Move absolute')) THEN + CtrlXdrive.AxoMoveAbsolute( ContinuousUpdate := FALSE, + Position := LREAL#10.0, + Velocity := LREAL#1.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ); + IF CtrlXdrive.ActualPosition > 6.0 THEN + // CtrlXdrive.Restore(); // commented out as we need to keep it moving after exiting this step + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[12].Execute(Sequencer, TRUE, 'Move additive')) THEN + IF CtrlXdrive.AxoMoveAdditive( ContinuousUpdate := FALSE, + Distance := LREAL#5.0, + Velocity := LREAL#5.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone() THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[13].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(CtrlXdrive.ActualPosition >=14.9 AND CtrlXdrive.ActualPosition <=15.1) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[14].Execute(Sequencer, TRUE, 'Move relative')) THEN + IF(CtrlXdrive.AxoMoveRelative( ContinuousUpdate := FALSE, + Distance := LREAL#-5.0, + Velocity := LREAL#5.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[15].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(CtrlXdrive.ActualPosition >=9.9 AND CtrlXdrive.ActualPosition <=10.1) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[16].Execute(Sequencer, TRUE, 'Read digital input')) THEN + CtrlXdrive.AxoReadDigitalInput(Enable := TRUE, InputNumber := 3 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // Negative limit switch + IF(ReadDigitalInput_Valid AND ReadDigitalInput_Value) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[17].Execute(Sequencer, TRUE, 'Stop reading digital input')) THEN + CtrlXdrive.AxoReadDigitalInput(Enable := FALSE, InputNumber := 3 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // Negative limit switch + IF(NOT ReadDigitalInput_Valid AND NOT ReadDigitalInput_Value) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[18].Execute(Sequencer, TRUE, 'Move velocity')) THEN + CtrlXdrive.AxoMoveVelocity( ContinuousUpdate := FALSE, + Velocity := LREAL#2.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Direction := eAxoDriveDirection#NegativeDirection, + InVelocity => MoveVelocity_InVelocity); + IF MoveVelocity_InVelocity THEN + MoveVelocity_InVelocity := FALSE; + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[19].Execute(Sequencer, TRUE, 'Halt')) THEN + IF(CtrlXdrive.AxoHalt( Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[20].Execute(Sequencer, TRUE, 'Move velocity')) THEN + CtrlXdrive.AxoMoveVelocity( ContinuousUpdate := FALSE, + Velocity := LREAL#2.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Direction := eAxoDriveDirection#NegativeDirection, + InVelocity => MoveVelocity_InVelocity); + IF MoveVelocity_InVelocity THEN + MoveVelocity_InVelocity := FALSE; + // CtrlXdrive.Restore(); // commented out as we need to keep it moving after exiting this step + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[21].Execute(Sequencer, TRUE, 'Read digital input')) THEN + CtrlXdrive.AxoReadDigitalInput(Enable := TRUE, InputNumber := 3 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // Negative limit switch + IF(ReadDigitalInput_Valid AND NOT ReadDigitalInput_Value) THEN + CtrlXdrive.AxoReadDigitalInput(Enable :=FALSE); + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[22].Execute(Sequencer, TRUE, 'Stop reading digital input')) THEN + CtrlXdrive.AxoReadDigitalInput(Enable := FALSE, InputNumber := 3 , Valid=> ReadDigitalInput_Valid, Value => ReadDigitalInput_Value); // Negative limit switch + IF(NOT ReadDigitalInput_Valid AND NOT ReadDigitalInput_Value) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[23].Execute(Sequencer, TRUE, 'Disable drive')) THEN + Enable := FALSE; + EnablePositive := FALSE; + EnableNegative := FALSE; + IF(NOT CtrlXdrive.AxoPower_Status) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[24].Execute(Sequencer, TRUE, 'Restore')) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + + IF(Steps[25].Execute(Sequencer, TRUE, 'Reset drive')) THEN + IF(CtrlXdrive.AxoReset().IsDone()) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[26].Execute(Sequencer, TRUE, 'Enable drive')) THEN + Enable := TRUE; + EnablePositive := TRUE; + EnableNegative := TRUE; + IF(CtrlXdrive.AxoPower_Status) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[27].Execute(Sequencer, TRUE, 'Jog')) THEN + manualControl := TRUE; + CtrlXdrive.AxoJogPositive.RemoteSwitchOn := TRUE; + CtrlXdrive.AxoJog_Velocity := LREAL#10.0; + CtrlXdrive.AxoJog_Acceleration := LREAL#1500.0; + CtrlXdrive.AxoJog_Deceleration := LREAL#1500.0; + CtrlXdrive.AxoJog_Jerk := LREAL#150000.0; + CtrlXdrive.AxoJog_Direction := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection; + + IF(CtrlXdrive.ActualPosition > 1.0) THEN + CtrlXdrive.AxoJogPositive.RemoteSwitchOn := FALSE; + END_IF; + IF( CtrlXdrive.ActualPosition > 1.0 AND + CtrlXdrive.DriveState = AXOpen.Components.Drives.eAxoDriveState#Standstill AND + CtrlXdrive.AxoHalt_Task.IsDone()) THEN + manualControl := FALSE; + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[28].Execute(Sequencer, TRUE, 'Torque control')) THEN + CtrlXdrive.AxoTorqueControl( ContinuousUpdate := FALSE, + Torque := LREAL#0.015, + TorqueRamp := LREAL#1.0, + PositionLimit := LREAL#50.0, + Velocity := LREAL#50.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Direction := eAxoDriveDirection#PositiveDirection, + InTorque => MoveTorque_InTorque); + IF MoveTorque_InTorque THEN + MoveTorque_InTorque := FALSE; + // CtrlXdrive.Restore(); // commented out as we need to stay in torque up to reach the position 10.0 + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[29].Execute(Sequencer, TRUE, 'Check position')) THEN + IF(CtrlXdrive.ActualPosition >=10.0) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[30].Execute(Sequencer, TRUE, 'Stop')) THEN + CtrlXdrive.AxoStop( Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0, + Done => Stop_Done); + IF(Stop_Done) THEN + Stop_Done := FALSE; + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[31].Execute(Sequencer, TRUE, 'Release stop')) THEN + CtrlXdrive.AxoStop_Task.Restore(); + IF(CtrlXdrive.AxoStop_Task.IsReady()) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[32].Execute(Sequencer, TRUE, 'Move absolute')) THEN + IF(CtrlXdrive.AxoMoveAbsolute( ContinuousUpdate := FALSE, + Position := LREAL#0.0, + Velocity := LREAL#10.0, + Acceleration := LREAL#1500.0, + Deceleration := LREAL#1500.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[33].Execute(Sequencer, TRUE, 'Disable drive')) THEN + Enable := FALSE; + EnablePositive := FALSE; + EnableNegative := FALSE; + IF(NOT CtrlXdrive.AxoPower_Status) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[34].Execute(Sequencer, TRUE, 'Reset drive')) THEN + IF(CtrlXdrive.AxoReset().IsDone()) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RETURN; + END_IF; + END_IF; + + IF(Steps[35].Execute(Sequencer, TRUE, 'Restore')) THEN + CtrlXdrive.Restore(); + Sequencer.CompleteSequence(); + END_IF; + + END_METHOD + // + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.rexroth.drives/app/src/Documentation/DocumentationContext.st b/src/components.rexroth.drives/app/src/Documentation/DocumentationContext.st index 1e7b6a79b..7a23063a8 100644 --- a/src/components.rexroth.drives/app/src/Documentation/DocumentationContext.st +++ b/src/components.rexroth.drives/app/src/Documentation/DocumentationContext.st @@ -4,11 +4,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives VAR PUBLIC _rootObject : AxoObject; componentOne : Component_1; + componentTwo : Component_2; END_VAR METHOD PROTECTED OVERRIDE Main THIS.InitializeRootObject(_rootObject); componentOne.Run(_rootObject); + componentTwo.Run(_rootObject); END_METHOD END_CLASS END_NAMESPACE \ No newline at end of file diff --git a/src/components.rexroth.drives/app/src/IO/HwIdentifiers.st b/src/components.rexroth.drives/app/src/IO/HwIdentifiers.st index 3e1f56b3b..c750be496 100644 --- a/src/components.rexroth.drives/app/src/IO/HwIdentifiers.st +++ b/src/components.rexroth.drives/app/src/IO/HwIdentifiers.st @@ -2,30 +2,57 @@ NAMESPACE AXOpen.Components.Rexroth.Drives TYPE HwIdentifiers : WORD ( - ST3_indradrive_HwID := WORD#258, - ST3_indradrive_F_Modul_not_used_ID_FMod_NotUsed_HwID := WORD#266, - ST3_indradrive_Input_9_Words_ID_InMod_9Words_HwID := WORD#264, - ST3_indradrive_Output_13_Words_ID_OutMod_13Words_HwID := WORD#263, - ST3_indradrive_ParamCh_5Words_ID_PaCh_5Words_HwID := WORD#265, - ST3_indradrive_Rack_HwID := WORD#261, - ST3_indradrive_ST3_indradrive_HwID := WORD#262, - ST3_indradrive_ST3_indradrive_DAP_1_HwID := WORD#267, - ST3_indradrive_ST3_indradrive_profinet_HwID := WORD#257, - ST3_indradrive_ST3_indradrive_profinet_Port_1_HwID := WORD#259, - ST3_indradrive_ST3_indradrive_profinet_Port_2_HwID := WORD#260, + AxoCtrlxDriveXsc_HwID := WORD#258, + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_HwID := WORD#262, + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_ctrlX_DRIVE_XCS_HwID := WORD#285, + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_profinet_HwID := WORD#257, + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_profinet_Port_1_HwID := WORD#259, + AxoCtrlxDriveXsc_AxoCtrlxDriveXsc_profinet_Port_2_HwID := WORD#260, + AxoCtrlxDriveXsc_Inputs_HwID := WORD#264, + AxoCtrlxDriveXsc_Outputs_HwID := WORD#263, + AxoCtrlxDriveXsc_P_0_0106_0_0__STO_function__Operating_status_HwID := WORD#273, + AxoCtrlxDriveXsc_Rack_HwID := WORD#261, + AxoCtrlxDriveXsc_S_0_0080_0_0__Torque_force_command_value_HwID := WORD#283, + AxoCtrlxDriveXsc_S_0_0084_0_0__Torque_force_feedback_value_HwID := WORD#272, + AxoCtrlxDriveXsc_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_HwID := WORD#282, + AxoCtrlxDriveXsc_S_0_0134_0_0__Servodrive_profile__Control_word_HwID := WORD#274, + AxoCtrlxDriveXsc_S_0_0135_0_0__Servodrive_profile__Status_word_HwID := WORD#265, + AxoCtrlxDriveXsc_S_0_0144_0_0__Signal_status_word__Value_HwID := WORD#267, + AxoCtrlxDriveXsc_S_0_0145_0_0__Signal_control_word__Value_HwID := WORD#276, + AxoCtrlxDriveXsc_S_0_0193_0_0__Positioning_jerk_HwID := WORD#284, + AxoCtrlxDriveXsc_S_0_0259_0_0__Positioning_profile__Profile_velocity_HwID := WORD#278, + AxoCtrlxDriveXsc_S_0_0260_0_0__Positioning_profile__Acceleration_HwID := WORD#279, + AxoCtrlxDriveXsc_S_0_0282_0_0__Drive_controlled_positioning__Command_value_HwID := WORD#277, + AxoCtrlxDriveXsc_S_0_0359_0_0__Positioning_profile__Deceleration_HwID := WORD#280, + AxoCtrlxDriveXsc_S_0_0386_0_0__Position_controller__Position_actual_value_HwID := WORD#268, + AxoCtrlxDriveXsc_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_HwID := WORD#270, + AxoCtrlxDriveXsc_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_HwID := WORD#269, + AxoCtrlxDriveXsc_S_0_1720_0_1__Power_supply_control__Control_word_HwID := WORD#281, + AxoCtrlxDriveXsc_S_0_1720_0_2__Power_supply_control__Status_word_HwID := WORD#271, + ST3_indradrive_HwID := WORD#287, + ST3_indradrive_F_Modul_not_used_ID_FMod_NotUsed_HwID := WORD#295, + ST3_indradrive_Input_9_Words_ID_InMod_9Words_HwID := WORD#293, + ST3_indradrive_Output_13_Words_ID_OutMod_13Words_HwID := WORD#292, + ST3_indradrive_ParamCh_5Words_ID_PaCh_5Words_HwID := WORD#294, + ST3_indradrive_Rack_HwID := WORD#290, + ST3_indradrive_ST3_indradrive_HwID := WORD#291, + ST3_indradrive_ST3_indradrive_DAP_1_HwID := WORD#296, + ST3_indradrive_ST3_indradrive_profinet_HwID := WORD#286, + ST3_indradrive_ST3_indradrive_profinet_Port_1_HwID := WORD#288, + ST3_indradrive_ST3_indradrive_profinet_Port_2_HwID := WORD#289, plc_line_HwID := WORD#32, - plc_line_Rail_0_HwID := WORD#268, + plc_line_Rail_0_HwID := WORD#297, plc_line_plc_line_HwID := WORD#48, plc_line_plc_line_CPU_display_1_HwID := WORD#54, plc_line_plc_line_Card_reader_writer_1_HwID := WORD#51, plc_line_plc_line_DP_interface_1_HwID := WORD#60, plc_line_plc_line_OPC_UA_1_HwID := WORD#117, + plc_line_plc_line_Virtual_communication_interface_HwID := WORD#135, plc_line_plc_line_profinet_x1_HwID := WORD#64, plc_line_plc_line_profinet_x1_Port_1_HwID := WORD#65, plc_line_plc_line_profinet_x1_Port_2_HwID := WORD#66, plc_line_plc_line_profinet_x2_HwID := WORD#72, plc_line_plc_line_profinet_x2_Port_3_HwID := WORD#73, - plc_line_plc_line_virtual_communication_interface_HwID := WORD#135, profinet_plc_line_HwID := WORD#256, NONE := WORD#0 diff --git a/src/components.rexroth.drives/app/src/IO/Inputs.st b/src/components.rexroth.drives/app/src/IO/Inputs.st index 81256c185..c4a3d5b90 100644 --- a/src/components.rexroth.drives/app/src/IO/Inputs.st +++ b/src/components.rexroth.drives/app/src/IO/Inputs.st @@ -3,20 +3,28 @@ NAMESPACE AXOpen.Components.Rexroth.Drives {S7.extern=ReadWrite} {#ix-attr:[Container(Layout.Wrap)]} Inputs : STRUCT - ST3_indradrive_Input_9_Words_0 AT %B0: WORD; - ST3_indradrive_Input_9_Words_1 AT %B2: WORD; - ST3_indradrive_Input_9_Words_2 AT %B4: WORD; - ST3_indradrive_Input_9_Words_3 AT %B6: WORD; - ST3_indradrive_Input_9_Words_4 AT %B8: WORD; - ST3_indradrive_Input_9_Words_5 AT %B10: WORD; - ST3_indradrive_Input_9_Words_6 AT %B12: WORD; - ST3_indradrive_Input_9_Words_7 AT %B14: WORD; - ST3_indradrive_Input_9_Words_8 AT %B16: WORD; - ST3_indradrive_ParamCh_5Words_0 AT %B18: WORD; - ST3_indradrive_ParamCh_5Words_1 AT %B20: WORD; - ST3_indradrive_ParamCh_5Words_2 AT %B22: WORD; - ST3_indradrive_ParamCh_5Words_3 AT %B24: WORD; - ST3_indradrive_ParamCh_5Words_4 AT %B26: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_1 AT %B0: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_2 AT %B20: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_3 AT %B18: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_4 AT %B2: WORD; + AxoCtrlxDriveXsc_Inputs_Submodule_5 AT %B4: DWORD; + AxoCtrlxDriveXsc_Inputs_Submodule_6 AT %B12: DWORD; + AxoCtrlxDriveXsc_Inputs_Submodule_7 AT %B8: DWORD; + AxoCtrlxDriveXsc_Inputs_Submodule_8 AT %B16: WORD; + ST3_indradrive_Input_9_Words_0 AT %B24: WORD; + ST3_indradrive_Input_9_Words_1 AT %B26: WORD; + ST3_indradrive_Input_9_Words_2 AT %B28: WORD; + ST3_indradrive_Input_9_Words_3 AT %B30: WORD; + ST3_indradrive_Input_9_Words_4 AT %B32: WORD; + ST3_indradrive_Input_9_Words_5 AT %B34: WORD; + ST3_indradrive_Input_9_Words_6 AT %B36: WORD; + ST3_indradrive_Input_9_Words_7 AT %B38: WORD; + ST3_indradrive_Input_9_Words_8 AT %B40: WORD; + ST3_indradrive_ParamCh_5Words_0 AT %B42: WORD; + ST3_indradrive_ParamCh_5Words_1 AT %B44: WORD; + ST3_indradrive_ParamCh_5Words_2 AT %B46: WORD; + ST3_indradrive_ParamCh_5Words_3 AT %B48: WORD; + ST3_indradrive_ParamCh_5Words_4 AT %B50: WORD; END_STRUCT; END_TYPE END_NAMESPACE diff --git a/src/components.rexroth.drives/app/src/IO/Outputs.st b/src/components.rexroth.drives/app/src/IO/Outputs.st index 3f4e95409..0f3e1ebb1 100644 --- a/src/components.rexroth.drives/app/src/IO/Outputs.st +++ b/src/components.rexroth.drives/app/src/IO/Outputs.st @@ -3,24 +3,34 @@ NAMESPACE AXOpen.Components.Rexroth.Drives {S7.extern=ReadWrite} {#ix-attr:[Container(Layout.Wrap)]} Outputs : STRUCT - ST3_indradrive_Output_13_Words_0 AT %B0: WORD; - ST3_indradrive_Output_13_Words_1 AT %B2: WORD; - ST3_indradrive_Output_13_Words_2 AT %B4: WORD; - ST3_indradrive_Output_13_Words_3 AT %B6: WORD; - ST3_indradrive_Output_13_Words_4 AT %B8: WORD; - ST3_indradrive_Output_13_Words_5 AT %B10: WORD; - ST3_indradrive_Output_13_Words_6 AT %B12: WORD; - ST3_indradrive_Output_13_Words_7 AT %B14: WORD; - ST3_indradrive_Output_13_Words_8 AT %B16: WORD; - ST3_indradrive_Output_13_Words_9 AT %B18: WORD; - ST3_indradrive_Output_13_Words_10 AT %B20: WORD; - ST3_indradrive_Output_13_Words_11 AT %B22: WORD; - ST3_indradrive_Output_13_Words_12 AT %B24: WORD; - ST3_indradrive_ParamCh_5Words_0 AT %B26: WORD; - ST3_indradrive_ParamCh_5Words_1 AT %B28: WORD; - ST3_indradrive_ParamCh_5Words_2 AT %B30: WORD; - ST3_indradrive_ParamCh_5Words_3 AT %B32: WORD; - ST3_indradrive_ParamCh_5Words_4 AT %B34: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_1 AT %B0: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_2 AT %B24: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_3 AT %B22: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_4 AT %B2: WORD; + AxoCtrlxDriveXsc_Outputs_Submodule_5 AT %B26: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_6 AT %B8: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_7 AT %B12: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_8 AT %B4: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_9 AT %B16: DWORD; + AxoCtrlxDriveXsc_Outputs_Submodule_10 AT %B20: WORD; + ST3_indradrive_Output_13_Words_0 AT %B32: WORD; + ST3_indradrive_Output_13_Words_1 AT %B34: WORD; + ST3_indradrive_Output_13_Words_2 AT %B36: WORD; + ST3_indradrive_Output_13_Words_3 AT %B38: WORD; + ST3_indradrive_Output_13_Words_4 AT %B40: WORD; + ST3_indradrive_Output_13_Words_5 AT %B42: WORD; + ST3_indradrive_Output_13_Words_6 AT %B44: WORD; + ST3_indradrive_Output_13_Words_7 AT %B46: WORD; + ST3_indradrive_Output_13_Words_8 AT %B48: WORD; + ST3_indradrive_Output_13_Words_9 AT %B50: WORD; + ST3_indradrive_Output_13_Words_10 AT %B52: WORD; + ST3_indradrive_Output_13_Words_11 AT %B54: WORD; + ST3_indradrive_Output_13_Words_12 AT %B56: WORD; + ST3_indradrive_ParamCh_5Words_0 AT %B58: WORD; + ST3_indradrive_ParamCh_5Words_1 AT %B60: WORD; + ST3_indradrive_ParamCh_5Words_2 AT %B62: WORD; + ST3_indradrive_ParamCh_5Words_3 AT %B64: WORD; + ST3_indradrive_ParamCh_5Words_4 AT %B66: WORD; END_STRUCT; END_TYPE END_NAMESPACE diff --git a/src/components.rexroth.drives/app/src/Sandbox/SandboxContext.st b/src/components.rexroth.drives/app/src/Sandbox/SandboxContext.st index 510ebfcb4..911f5d2fb 100644 --- a/src/components.rexroth.drives/app/src/Sandbox/SandboxContext.st +++ b/src/components.rexroth.drives/app/src/Sandbox/SandboxContext.st @@ -16,6 +16,8 @@ NAMESPACE AXOpen.Components.Rexroth.Drives EnableNegative : BOOL := TRUE; {#ix-attr:[Container(Layout.Stack)]} IndraDrive : AXOpen.Components.Rexroth.Drives.AxoIndraDrive; + {#ix-attr:[Container(Layout.Stack)]} + CtrlXdrive : AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXsc; _rootObject : AxoObject; END_VAR @@ -46,17 +48,23 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IndraDrive.Run(parent := _rootObject, hwID := HwIdentifiers#ST3_indradrive_HwID, - hwIdParamCh_IDN := HwIdentifiers#ST3_indradrive_ParamCh_5Words_ID_PaCh_5Words_HwID, - hwIdInput_9_Words := HwIdentifiers#ST3_indradrive_Input_9_Words_ID_InMod_9Words_HwID, - hwIdOutput_13_Words := HwIdentifiers#ST3_indradrive_Output_13_Words_ID_OutMod_13Words_HwID, Enable := Enable, EnablePositive := EnablePositive, EnableNegative := EnableNegative); - THIS.UseInSequencer(); + + THIS.UseInSequencerIndraDrive(); + + CtrlXdrive.Run(parent := _rootObject, + hwID := HwIdentifiers#ST3_indradrive_HwID, + Enable := Enable, + EnablePositive := EnablePositive, + EnableNegative := EnableNegative); + + THIS.UseInSequencerCtrlXdrive(); END_METHOD - METHOD PRIVATE UseInSequencer + METHOD PRIVATE UseInSequencerIndraDrive Sequencer.Run(_rootObject); Sequencer.Open(); @@ -107,7 +115,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Velocity := Velocity, Acceleration := LREAL#50.0, Deceleration := LREAL#50.0, - Jerk := LREAL#50.0 + Jerk := LREAL#150000.0 ).IsDone()) THEN Sequencer.MoveNext(); END_IF; @@ -131,7 +139,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Velocity := Velocity, Acceleration := LREAL#50.0, Deceleration := LREAL#50.0, - Jerk := LREAL#50.0 + Jerk := LREAL#150000.0 ).IsDone()) THEN Sequencer.MoveNext(); END_IF; @@ -147,7 +155,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Velocity := Velocity, Acceleration := LREAL#50.0, Deceleration := LREAL#50.0, - Jerk := LREAL#50.0 + Jerk := LREAL#150000.0 ).IsDone()) THEN Sequencer.MoveNext(); END_IF; @@ -190,5 +198,139 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Sequencer.CompleteSequence(); END_IF; END_METHOD + METHOD PRIVATE UseInSequencerCtrlXdrive + + Sequencer.Run(_rootObject); + Sequencer.Open(); + Sequencer.SequenceMode := eAxoSequenceMode#RunOnce; + + Timer(signal := RunTimer, duration := MaxTime); + + IF(Steps[0].Execute(Sequencer, 'Restore')) THEN + _manualControl := FALSE; + Enable := FALSE; + EnablePositive := FALSE; + EnableNegative := FALSE; + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + RunTimer := FALSE; + RETURN; + END_IF; + + IF(Steps[1].Execute(Sequencer, 'Reset drive')) THEN + RunTimer := TRUE; + IF(CtrlXdrive.AxoReset().IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[2].Execute(Sequencer, 'Enable drive')) THEN + Enable := TRUE; + EnablePositive := TRUE; + EnableNegative := TRUE; + IF(CtrlXdrive.AxoPower_Status) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[3].Execute(Sequencer, 'Drive homming')) THEN + IF(CtrlXdrive.AxoHome( Position := LREAL#5.0, + HommingMode := INT#551, + Velocity := LREAL#1.0, + Acceleration := LREAL#50.0, + Deceleration := LREAL#50.0 + ).IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[4].Execute(Sequencer, 'Move absolute to start Position2')) THEN + IF(CtrlXdrive.AxoMoveAbsolute( Position := Position2, + Velocity := Velocity, + Acceleration := LREAL#50.0, + Deceleration := LREAL#50.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + + IF(Steps[5].Execute(Sequencer, 'Restore component to be able to trigger next move absolute in the same PLC cycle')) THEN + CtrlXdrive.Restore(); + + StartTime := Timer.elapsedTime; + EndTime := StartTime; + Cycle := ULINT#0; + TotalDuration := LTIME#0s; + DurationPerCycle := LTIME#0s; + + Sequencer.MoveNext(); + END_IF; + + IF(Steps[6].Execute(Sequencer, 'Move absolute to Position1')) THEN + IF(CtrlXdrive.AxoMoveAbsolute( Position := Position1, + Velocity := Velocity, + Acceleration := LREAL#50.0, + Deceleration := LREAL#50.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[7].Execute(Sequencer, 'Restore component to be able to trigger next move absolute in the same PLC cycle')) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + END_IF; + + IF(Steps[8].Execute(Sequencer, 'Move absolute to Position2')) THEN + IF(CtrlXdrive.AxoMoveAbsolute( Position := Position2, + Velocity := Velocity, + Acceleration := LREAL#50.0, + Deceleration := LREAL#50.0, + Jerk := LREAL#150000.0 + ).IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[9].Execute(Sequencer, 'Restore component to be able to trigger next move absolute in the same PLC cycle')) THEN + CtrlXdrive.Restore(); + Sequencer.MoveNext(); + END_IF; + + IF(Steps[10].Execute(Sequencer, 'Repetition')) THEN + Cycle := Cycle + ULINT#1; + EndTime := Timer.elapsedTime; + TotalDuration := EndTime - StartTime; + DurationPerCycle := TotalDuration / Cycle; + IF(Cycle >= NumberOfCycles) THEN + Sequencer.MoveNext(); + ELSE + Sequencer.RequestStep(Steps[6]); + END_IF; + END_IF; + + IF(Steps[11].Execute(Sequencer, 'Disable drive')) THEN + Enable := FALSE; + EnablePositive := FALSE; + EnableNegative := FALSE; + IF(NOT CtrlXdrive.AxoPower_Status) THEN + Sequencer.CompleteSequence(); + END_IF; + END_IF; + + IF(Steps[12].Execute(Sequencer, 'Reset drive')) THEN + IF(CtrlXdrive.AxoReset().IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + IF(Steps[13].Execute(Sequencer, 'Restore')) THEN + CtrlXdrive.Restore(); + Sequencer.CompleteSequence(); + END_IF; + END_METHOD END_CLASS END_NAMESPACE \ No newline at end of file diff --git a/src/components.rexroth.drives/ctrl/apax.yml b/src/components.rexroth.drives/ctrl/apax.yml index 756474d62..42fd6d3ed 100644 --- a/src/components.rexroth.drives/ctrl/apax.yml +++ b/src/components.rexroth.drives/ctrl/apax.yml @@ -12,22 +12,47 @@ devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: "@inxton/axopen.components.drives": '0.0.0-dev.0' + "@ax/simatic-1500-distributedio": ^10.0.1 installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: + postbuild: + - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" + ccc: | + START=$(date +%s) + ..\\..\\scripts\\create_complex_component.sh $APAX_YML_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ccc' Finished in :" $(expr $(date +%s) - $START) "s" + b: | + START=$(date +%s) apax build - apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax b' Finished in :" $(expr $(date +%s) - $START) "s" + +publicKeys: + "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 +... diff --git a/src/components.rexroth.drives/ctrl/assets/AxoCtrlxDriveXsc.hwl.yml b/src/components.rexroth.drives/ctrl/assets/AxoCtrlxDriveXsc.hwl.yml new file mode 100644 index 000000000..cdf991161 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/assets/AxoCtrlxDriveXsc.hwl.yml @@ -0,0 +1,120 @@ +Devices: +- Name: AxoCtrlxDriveXsc + Modules: + - Name: AxoCtrlxDriveXsc + TypeIdentifier: + FileName: GSDML-V2.41-Bosch Rexroth AG-ctrlX DRIVE-20241107.xml + GsdId: ID_DAP_XCS + Interfaces: + - Name: profinet + Label: X1 + Addresses: + Configured: + - IPv4: "192.168.100.41/24" + - ProfinetDeviceName: AxoCtrlxDriveXsc + # Parameters: + # IECV22LLDPMode: True + # TsnDomainName: + Ports: + - Name: Port_1 + Label: X1 P1 + - Name: Port_2 + Label: X1 P2 + - Name: Outputs + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_M_XCS_INI_0_cons' + Slot: 1 + Submodules: + - Name: 'S-0-0145_0_0__Signal_control_word__Value' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Signal_control_word_S_0_0145_0_0_cons' + Slot: 2 + - Name: 'S-0-0282_0_0__Drive-controlled_positioning__Command_value' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Positioning_command_value_S_0_0282_0_0_cons' + Slot: 3 + - Name: 'S-0-0259_0_0__Positioning_profile__Profile_velocity' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Positioning_velocity_S_0_0259_0_0_cons' + Slot: 4 + - Name: 'S-0-0260_0_0__Positioning_profile__Acceleration' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Positioning_acceleration_S_0_0260_0_0_cons' + Slot: 5 + - Name: 'S-0-0359_0_0__Positioning_profile__Deceleration' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Positioning_deceleration_S_0_0359_0_0_cons' + Slot: 6 + - Name: 'S-0-1720_0_1__Power_supply_control__Control_word' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Power_supply_control_word_S_0_1720_0_1_cons' + Slot: 7 + - Name: 'S-0-0092_0_0__Torque_force_limitation__Limit_value_bipolar' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Bipolar_torque_force_limit_value_S_0_0092_0_0_cons' + Slot: 8 + - Name: 'S-0-0080_0_0__Torque_force_command_value' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Torque_force_command_value_S_0_0080_0_0_cons' + Slot: 9 + - Name: 'S-0-0193_0_0__Positioning_jerk' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Positioning_jerk_S_0_0193_0_0_cons' + Slot: 10 + - Name: Inputs + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_M_XCS_INI_0_prod' + Slot: 2 + Submodules: + - Name: 'S-0-0144_0_0__Signal_status_word__Value' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Signal_status_word_S_0_0144_0_0_prod' + Slot: 2 + - Name: 'S-0-0386_0_0__Position_controller__Position_actual_value' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Active_position_feedback_value_S_0_0386_0_0_prod' + Slot: 3 + - Name: 'S-0-0535_0_0__Velocity_controller__Velocity_actual_value' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Active_velocity_feedback_value_S_0_0535_0_0_prod' + Slot: 4 + - Name: 'S-0-0390_0_0__Diagnostic_message__Manufacturer_status_register' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Diagnostic_message_number_S_0_0390_0_0_prod' + Slot: 5 + - Name: 'S-0-1720_0_2__Power_supply_control__Status_word' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Power_supply_status_word_S_0_1720_0_2_prod' + Slot: 6 + - Name: 'S-0-0084_0_0__Torque_force_feedback_value' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Torque_force_feedback_value_S_0_0084_0_0_prod' + Slot: 7 + - Name: 'P-0-0106_0_0__STO_function__Operating_status' + TypeIdentifier: + FileName: 'GSDML-V2.41-BOSCH REXROTH AG-CTRLX DRIVE-20241107.XML' + GsdId: 'ID_SM_Operating_status_STO_P_0_0106_0_0_prod' + Slot: 8 + + + + + + diff --git a/src/components.rexroth.drives/ctrl/assets/GSDML-011F-2602-ctrlXDRIVE.bmp b/src/components.rexroth.drives/ctrl/assets/GSDML-011F-2602-ctrlXDRIVE.bmp new file mode 100644 index 000000000..dcd4ad3e2 Binary files /dev/null and b/src/components.rexroth.drives/ctrl/assets/GSDML-011F-2602-ctrlXDRIVE.bmp differ diff --git a/src/components.rexroth.drives/ctrl/assets/GSDML-011F-2602-ctrlXDRIVE.ico b/src/components.rexroth.drives/ctrl/assets/GSDML-011F-2602-ctrlXDRIVE.ico new file mode 100644 index 000000000..68c382a4b Binary files /dev/null and b/src/components.rexroth.drives/ctrl/assets/GSDML-011F-2602-ctrlXDRIVE.ico differ diff --git a/src/components.rexroth.drives/ctrl/assets/GSDML-V2.41-Bosch Rexroth AG-ctrlX DRIVE-20241107.xml b/src/components.rexroth.drives/ctrl/assets/GSDML-V2.41-Bosch Rexroth AG-ctrlX DRIVE-20241107.xml new file mode 100644 index 000000000..16b8846c5 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/assets/GSDML-V2.41-Bosch Rexroth AG-ctrlX DRIVE-20241107.xml @@ -0,0 +1,20628 @@ + + + + + + + + + + + + + + PROFINET Device Profile + 1.00 + Device Profile for PROFINET Devices + PROFIBUS Nutzerorganisation e. V. (PNO) + Device + + 4 + 1 + GSDML + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st new file mode 100644 index 000000000..fd83d2a36 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st @@ -0,0 +1,6008 @@ +USING AXOpen.Core; +USING AXOpen.Messaging.Static; +USING AXOpen.Messaging; +USING AXOpen.Core; +USING AXOpen.Components.Abstractions; +USING AXOpen.Components.Abstractions.Drives; +USING AXOpen.Components.Drives; +USING System.Math; +USING Siemens.Simatic.S71500.Hardware.Utilities; +USING Siemens.Simatic.S71500.DistributedIO; + +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + CLASS AxoCtrlxDriveXsc EXTENDS AXOpen.Components.Drives.AxoDrive IMPLEMENTS AXOpen.Components.Abstractions.Drives.IAxoDrive + VAR PUBLIC //STATUS + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-attr:[ReadOnly()]} + DriveStatus : AxoCtrlxDriveXsc_Component_Status; + Messenger : AXOpen.Messaging.Static.AxoMessenger; + TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; + END_VAR + VAR PUBLIC // HwDiag + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Hardware diagnostics")]} + {#ix-set:AttributeName = "<#Update diagnostics#>"} + HardwareDiagnosticsTask : AXOpen.Io.AxoHardwareDiagnostics; + END_VAR + VAR PUBLIC // AxisRef + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("AxisRef")]} + {#ix-attr:[ReadOnly()]} + AxisRefExt : AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + VAR PUBLIC // Scaling + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant required position#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantRequiredPosition : LREAL := 10000.0; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant actual position#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantActualPosition : LREAL := 0.0001; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant required velocity#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantRequiredVelocity : LREAL := LREAL#0.01666666666666666666666666666667; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant actual velocity#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantActualVelocity : LREAL := 60.0; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant required torque#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantRequiredTorque : LREAL := 10.0; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant actual torque#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantActualTorque : LREAL := 0.1; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant required acceleration#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantRequiredAcceleration : LREAL := 1000.0; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant actual acceleration#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantActualAcceleration : LREAL := 0.001; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant required deceleration#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantRequiredDeceleration : LREAL := 1000.0; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant actual deceleration#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantActualDeceleration : LREAL := 0.001; + {#ix-set:AttributeName = "<#Scaling constant required jerk#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantRequiredJerk : LREAL := 1000.0; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Scaling constant actual jerk#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + ScalingConstantActualJerk : LREAL := 0.001; + END_VAR + VAR PUBLIC // Debug + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentHeader()]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#_State#>"} + _State : UINT; + END_VAR + + VAR PRIVATE + _data2 : ARRAY[0..1] OF BYTE; + _data4 : ARRAY[0..3] OF BYTE; + _data8 : ARRAY[0..7] OF BYTE; + _word : WORD; + _dword : DWORD; + _lword : LWORD; + + _Parameter : ARRAY[0..9] OF BYTE; + _Fieldbus : ARRAY[0..25] OF BYTE; + _HW_Device : WORD; + _HW_Outputs : WORD; + _HW_Inputs : WORD; + _HW_S_0_0134_0_0 : WORD; + _HW_S_0_0145_0_0 : WORD; + _HW_S_0_0282_0_0 : WORD; + _HW_S_0_0259_0_0 : WORD; + _HW_S_0_0260_0_0 : WORD; + _HW_S_0_0359_0_0 : WORD; + _HW_S_0_1720_0_1 : WORD; + _HW_S_0_0092_0_0 : WORD; + _HW_S_0_0080_0_0 : WORD; + _HW_S_0_0193_0_0 : WORD; + _HW_S_0_0135_0_0 : WORD; + _HW_S_0_0144_0_0 : WORD; + _HW_S_0_0386_0_0 : WORD; + _HW_S_0_0535_0_0 : WORD; + _HW_S_0_0390_0_0 : WORD; + _HW_S_0_1720_0_2 : WORD; + _HW_S_0_0084_0_0 : WORD; + _HW_P_0_0106_0_0 : WORD; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _blink : AXOpen.Timers.AxoBlinker; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; + _ReadRecord : ReadRecord; + _WriteRecord : WriteRecord; + _ScalingRead : BOOL; + // _State : UINT; + _S_0_0076 : WORD; // 2byte, binary + _S_0_0077 : INT; // 2byte, 0 decimal places + _S_0_0078 : INT; // 2byte, 0 decimal places + _S_0_0044 : WORD; // 2byte, binary + _S_0_0045 : INT; // 2byte, 0 decimal places + _S_0_0046 : INT; // 2byte, 0 decimal places + _S_0_0160 : WORD; // 2byte, binary + _S_0_0161 : INT; // 2byte, 0 decimal places + _S_0_0162 : INT; // 2byte, 0 decimal places + _S_0_0086 : WORD; // 2byte, binary + _S_0_0093 : INT; // 2byte, 0 decimal places + _S_0_0094 : INT; // 2byte, 0 decimal places + _S_0_0112 : REAL; // 4bytes, 3decimal places + _P_0_0450 : REAL; // 2bytes, 2decimal places + + _infoTimer : AXOpen.Timers.OnDelayTimer; + _infoTime : LTIME := LT#2S; + _errorTimer : AXOpen.Timers.OnDelayTimer; + _errorTime : LTIME := LT#5S; + _lastMessageCodeFromMC : ULINT; + END_VAR + + /// + /// Runs tasks and logic of this component. + /// >[!IMPORTANT] This method or one of its overloads must be called cyclically. + /// + METHOD PUBLIC Run + VAR_INPUT + parent : IAxoObject; + hwID : WORD; + Enable : BOOL; // As long as ‘Enable’ is true, power is being enabled. + EnablePositive : BOOL; // As long as ‘Enable’ is true, this permits motion in positive direction + EnableNegative : BOOL; // As long as ‘Enable’ is true, this permits motion in negative direction + END_VAR + VAR + // | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 |-1| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | + _exp : ARRAY [-10..10] OF LREAL := [0.000000001,0.000000001,0.00000001,0.0000001,0.000001,0.00001,0.0001,0.001,0.01,0.1,1.0,10.0,100.0,1000.0,10000.0,100000.0,1000000.0,10000000.0,100000000.0,100000000.0,100000000.0]; + END_VAR + _infoTime := DriveConfig.InfoTime; + _errorTime := DriveConfig.ErrorTime; + SUPER.Run(parent); + Messenger.Serve(THIS); + + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate( UINT#700, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate( UINT#701, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#701; + RETURN; + END_IF; + + _HW_Device := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_HW_Device), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate( UINT#702,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#702; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_Device := TO_UINT(_HW_Device); + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_Outputs := TO_WORD(_outHwid); + IF _HW_Outputs = WORD#0 THEN + Messenger.Activate( UINT#710,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#711,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#712,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#713,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#714,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#715,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_Outputs, inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#716,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#716; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_Outputs := TO_UINT(_HW_Outputs); + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_Inputs := TO_WORD(_outHwid); + IF _HW_Inputs = WORD#0 THEN + Messenger.Activate( UINT#720,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#721,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#722,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#723,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#724,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#725,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_Inputs, inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#726,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#726; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_Inputs := TO_UINT(_HW_Inputs); + //************Slot 1 Subslot 1*****************// + _geoAddr.Subslot:= UINT#1; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0134_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0134_0_0 = WORD#0 THEN + Messenger.Activate( UINT#730,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#731,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#732,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#733,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#734,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#735,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0134_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#2 THEN + Messenger.Activate( UINT#736,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#736; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0134_0_0 := TO_UINT(_HW_S_0_0134_0_0); + //************Slot 1 Subslot 2*****************// + _geoAddr.Subslot:= UINT#2; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0145_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0145_0_0 = WORD#0 THEN + Messenger.Activate( UINT#740,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#741,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#742,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#743,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#744,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#745,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0145_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#2 THEN + Messenger.Activate( UINT#746,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#746; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0145_0_0 := TO_UINT(_HW_S_0_0145_0_0); + //************Slot 1 Subslot 3*****************// + _geoAddr.Subslot:= UINT#3; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0282_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0282_0_0 = WORD#0 THEN + Messenger.Activate( UINT#750,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#750; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#751,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#751; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#752,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#752; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#753,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#753; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#754,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#754; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#755,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#755; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0282_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#4 THEN + Messenger.Activate( UINT#756,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#756; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0282_0_0 := TO_UINT(_HW_S_0_0282_0_0); + //************Slot 1 Subslot 4*****************// + _geoAddr.Subslot:= UINT#4; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0259_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0259_0_0 = WORD#0 THEN + Messenger.Activate( UINT#760,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#760; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#761,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#761; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#762,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#762; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#763,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#763; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#764,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#764; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#765,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#765; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0259_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#4 THEN + Messenger.Activate( UINT#766,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#766; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0259_0_0 := TO_UINT(_HW_S_0_0259_0_0); + //************Slot 1 Subslot 5*****************// + _geoAddr.Subslot:= UINT#5; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0260_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0260_0_0 = WORD#0 THEN + Messenger.Activate( UINT#770,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#770; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#771,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#771; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#772,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#772; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#773,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#773; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#774,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#774; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#775,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#775; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0260_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#4 THEN + Messenger.Activate( UINT#776,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#776; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0260_0_0 := TO_UINT(_HW_S_0_0260_0_0); + //************Slot 1 Subslot 6*****************// + _geoAddr.Subslot:= UINT#6; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0359_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0359_0_0 = WORD#0 THEN + Messenger.Activate( UINT#780,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#780; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#781,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#781; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#782,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#782; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#783,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#783; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#784,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#784; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#785,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#785; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0359_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#4 THEN + Messenger.Activate( UINT#786,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#786; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0359_0_0 := TO_UINT(_HW_S_0_0359_0_0); + //************Slot 1 Subslot 7*****************// + _geoAddr.Subslot:= UINT#7; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_1720_0_1 := TO_WORD(_outHwid); + IF _HW_S_0_1720_0_1 = WORD#0 THEN + Messenger.Activate( UINT#790,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#790; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#791,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#791; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#792,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#792; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#793,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#793; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#794,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#794; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#795,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#795; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_1720_0_1 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#2 THEN + Messenger.Activate( UINT#796,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#796; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_1720_0_1 := TO_UINT(_HW_S_0_1720_0_1); + //************Slot 1 Subslot 8*****************// + _geoAddr.Subslot:= UINT#8; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0092_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0092_0_0 = WORD#0 THEN + Messenger.Activate( UINT#800,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#800; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#801,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#801; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#802,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#802; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#803,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#803; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#804,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#804; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#805,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#805; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0092_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#2 THEN + Messenger.Activate( UINT#806,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#806; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0092_0_0 := TO_UINT(_HW_S_0_0092_0_0); + //************Slot 1 Subslot 9*****************// + _geoAddr.Subslot:= UINT#9; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0080_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0080_0_0 = WORD#0 THEN + Messenger.Activate( UINT#810,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#810; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#811,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#811; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#812,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#812; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#813,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#813; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#814,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#814; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#815,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#815; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0080_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#2 THEN + Messenger.Activate( UINT#816,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#816; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0080_0_0 := TO_UINT(_HW_S_0_0080_0_0); + //************Slot 1 Subslot 10*****************// + _geoAddr.Subslot:= UINT#10; + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0193_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0193_0_0 = WORD#0 THEN + Messenger.Activate( UINT#820,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#820; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#821,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#821; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#822,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#822; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#823,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#823; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#824,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#824; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#825,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#825; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0193_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#4 THEN + Messenger.Activate( UINT#826,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#826; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0193_0_0 := TO_UINT(_HW_S_0_0193_0_0); + //************Slot 2 Subslot 1*****************// + _geoAddr.Subslot:= UINT#1; + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0135_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0135_0_0 = WORD#0 THEN + Messenger.Activate( UINT#830,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#830; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#831,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#831; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#832,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#832; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#833,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#833; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#834,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#834; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#835,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#835; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0135_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#2 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#836,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#836; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0135_0_0 := TO_UINT(_HW_S_0_0135_0_0); + //************Slot 2 Subslot 2*****************// + _geoAddr.Subslot:= UINT#2; + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0144_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0144_0_0 = WORD#0 THEN + Messenger.Activate( UINT#840,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#840; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#841,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#841; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#842,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#842; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#843,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#843; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#844,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#844; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#845,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#845; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0144_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#2 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#846,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#846; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0144_0_0 := TO_UINT(_HW_S_0_0144_0_0); + //************Slot 2 Subslot 3*****************// + _geoAddr.Subslot:= UINT#3; + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0386_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0386_0_0 = WORD#0 THEN + Messenger.Activate( UINT#850,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#850; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#851,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#851; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#852,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#852; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#853,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#853; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#854,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#854; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#855,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#855; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0386_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#4 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#856,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#856; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0386_0_0 := TO_UINT(_HW_S_0_0386_0_0); + //************Slot 2 Subslot 4*****************// + _geoAddr.Subslot:= UINT#4; + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0535_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0535_0_0 = WORD#0 THEN + Messenger.Activate( UINT#860,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#860; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#861,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#861; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#862,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#862; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#863,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#863; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#864,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#864; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#865,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#865; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0535_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#4 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#866,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#866; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0535_0_0 := TO_UINT(_HW_S_0_0535_0_0); + //************Slot 2 Subslot 5*****************// + _geoAddr.Subslot:= UINT#5; + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0390_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0390_0_0 = WORD#0 THEN + Messenger.Activate( UINT#870,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#870; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#871,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#871; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#872,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#872; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#873,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#873; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#874,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#874; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#875,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#875; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0390_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#4 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#876,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#876; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0390_0_0 := TO_UINT(_HW_S_0_0390_0_0); + //************Slot 2 Subslot 6*****************// + _geoAddr.Subslot:= UINT#6; + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_1720_0_2 := TO_WORD(_outHwid); + IF _HW_S_0_1720_0_2 = WORD#0 THEN + Messenger.Activate( UINT#880,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#880; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#881,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#881; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#882,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#882; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#883,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#883; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#884,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#884; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#885,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#885; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_1720_0_2 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#2 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#886,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#886; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_1720_0_2 := TO_UINT(_HW_S_0_1720_0_2); + //************Slot 2 Subslot 7*****************// + _geoAddr.Subslot:= UINT#7; + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_S_0_0084_0_0 := TO_WORD(_outHwid); + IF _HW_S_0_0084_0_0 = WORD#0 THEN + Messenger.Activate( UINT#890,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#890; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#891,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#891; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#892,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#892; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#893,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#893; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#894,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#894; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#895,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#895; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_S_0_0084_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#2 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#896,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#896; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_S_0_0084_0_0 := TO_UINT(_HW_S_0_0084_0_0); + //************Slot 2 Subslot 8*****************// + _geoAddr.Subslot:= UINT#8; + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#5; // (5-Submodule) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _HW_P_0_0106_0_0 := TO_WORD(_outHwid); + IF _HW_P_0_0106_0_0 = WORD#0 THEN + Messenger.Activate( UINT#900,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#900; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#901,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#901; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#902,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#902; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#903,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#903; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#904,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#904; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#905,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#905; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _HW_P_0_0106_0_0 , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#2 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#906,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#906; + RETURN; + END_IF; + AxisRefExt.HWIDs.HW_P_0_0106_0_0 := TO_UINT(_HW_P_0_0106_0_0); + //****************************** */ + IF parent = NULL THEN + Messenger.Activate( UINT#1130,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1130; + RETURN; + END_IF; + IF _HW_Device = WORD#0 THEN + Messenger.Activate( UINT#1131,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1131; + RETURN; + END_IF; + IF _HW_Outputs = WORD#0 THEN + Messenger.Activate( UINT#1132,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1132; + RETURN; + END_IF; + IF _HW_Inputs = WORD#0 THEN + Messenger.Activate( UINT#1133,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1133; + RETURN; + END_IF; + IF _HW_S_0_0134_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1134,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1134; + RETURN; + END_IF; + IF _HW_S_0_0145_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1135,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1135; + RETURN; + END_IF; + IF _HW_S_0_0282_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1136,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1136; + RETURN; + END_IF; + IF _HW_S_0_0259_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1137,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1137; + RETURN; + END_IF; + IF _HW_S_0_0260_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1138,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1138; + RETURN; + END_IF; + IF _HW_S_0_0359_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1139,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1139; + RETURN; + END_IF; + IF _HW_S_0_1720_0_1 = WORD#0 THEN + Messenger.Activate( UINT#1140,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1140; + RETURN; + END_IF; + IF _HW_S_0_0092_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1141,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1141; + RETURN; + END_IF; + IF _HW_S_0_0080_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1142,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1142; + RETURN; + END_IF; + IF _HW_S_0_0193_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1143,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1143; + RETURN; + END_IF; + IF _HW_S_0_0135_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1144,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1144; + RETURN; + END_IF; + IF _HW_S_0_0144_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1145,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1145; + RETURN; + END_IF; + IF _HW_S_0_0386_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1146,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1146; + RETURN; + END_IF; + IF _HW_S_0_0535_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1147,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1147; + RETURN; + END_IF; + IF _HW_S_0_0390_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1148,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1148; + RETURN; + END_IF; + IF _HW_S_0_1720_0_2 = WORD#0 THEN + Messenger.Activate( UINT#1149,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1149; + RETURN; + END_IF; + IF _HW_S_0_0084_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1150,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1150; + RETURN; + END_IF; + IF _HW_P_0_0106_0_0 = WORD#0 THEN + Messenger.Activate( UINT#1151,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1151; + RETURN; + END_IF; + _initHwCheckDone := TRUE; + END_IF; + Messenger.ActivateOnCondition(ULINT#1800, NOT _ScalingRead, eAxoMessageCategory#Warning); + //********************Diagnostics******************// + HardwareDiagnosticsTask.Run(THIS,TO_WORD(AxisRefExt.HWIDs.HW_Device)); + //********************PARAMETRIZAION***************// + // Parametrization.Run(THIS); + // Parametrization.Inputs.HardwareId := TO_WORD(_AxisReference^.HWIDs.HW_ModuleAccessPoint); + //*******************SCALING***********************// + IF NOT _ScalingRead THEN + IF _State = UINT#0 THEN + _State := UINT#1; + END_IF; + //Reading Position data scaling: Type (0x2900:01 / S-0-0076 / --) 2byte, binary + IF _State = UINT#1 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#76, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0076 := _word; + _State := UINT#2; + END_IF; + END_IF; + IF _State = UINT#2 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#3; + END_IF; + END_IF; + //Reading Position data scaling: Factor (0x2900:02 / S-0-0077 / --) 2byte, 0 decimal places + IF _State = UINT#3 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#77, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0077 := TO_INT(_word); + _State := UINT#4; + END_IF; + END_IF; + IF _State = UINT#4 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#5; + END_IF; + END_IF; + //Reading Position data scaling: Exponent (0x2900:03 / S-0-0078 / --) 2byte, 0 decimal places + IF _State = UINT#5 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#78, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0078 := TO_INT(_word); + _State := UINT#6; + END_IF; + END_IF; + IF _State = UINT#6 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#7; + END_IF; + END_IF; + //Reading Velocity data scaling: Type (0x2902:01 / S-0-0044 / --) 2byte, binary + IF _State = UINT#7 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#44, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0044 := _word; + _State := UINT#8; + END_IF; + END_IF; + IF _State = UINT#8 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#9; + END_IF; + END_IF; + //Reading Velocity data scaling: Factor (0x2902:02 / S-0-0045 / --) 2byte, 0 decimal places + IF _State = UINT#9 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#45, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0045 := TO_INT(_word); + _State := UINT#10; + END_IF; + END_IF; + IF _State = UINT#10 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#11; + END_IF; + END_IF; + //Reading Velocity data scaling: Exponent (0x2902:03 / S-0-0046 / --) 2byte, 0 decimal places + IF _State = UINT#11 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#46, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0046 := TO_INT(_word); + _State := UINT#12; + END_IF; + END_IF; + IF _State = UINT#12 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#13; + END_IF; + END_IF; + //Reading Acceleration data scaling: Type (0x2904:01 / S-0-0160 / --) 2byte, binary + IF _State = UINT#13 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#160, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0160 := _word; + _State := UINT#14; + END_IF; + END_IF; + IF _State = UINT#14 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#15; + END_IF; + END_IF; + //Reading Acceleration data scaling: Factor (0x2904:02 / S-0-0161 / --) 2byte, 0 decimal places + IF _State = UINT#15 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#161, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0161 := TO_INT(_word); + _State := UINT#16; + END_IF; + END_IF; + IF _State = UINT#16 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#17; + END_IF; + END_IF; + //Reading Acceleration data scaling: Exponent (0x2904:03 / S-0-0162 / --) 2byte, 0 decimal places + IF _State = UINT#17 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#162, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0162 := TO_INT(_word); + _State := UINT#18; + END_IF; + END_IF; + IF _State = UINT#18 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#19; + END_IF; + END_IF; + //Reading Torque/force data scaling: Type (0x2906:01 / S-0-0086 / --) 2byte, binary + IF _State = UINT#19 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#86, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0086 := _word; + _State := UINT#20; + END_IF; + END_IF; + IF _State = UINT#20 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#21; + END_IF; + END_IF; + //Reading Torque/force data scaling: Factor (0x2906:02 / S-0-0093 / --) 2byte, 0 decimal places + IF _State = UINT#21 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#93, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0093 := TO_INT(_word); + _State := UINT#22; + END_IF; + END_IF; + IF _State = UINT#22 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#23; + END_IF; + END_IF; + //Reading Torque/force data scaling: Exponent (0x2906:03 / S-0-0094 / --) 2byte, 0 decimal places + IF _State = UINT#23 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#94, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _S_0_0094 := TO_INT(_word); + _State := UINT#24; + END_IF; + END_IF; + IF _State = UINT#24 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#25; + END_IF; + END_IF; + //Reading Inverter type data: Nominal current (0x2314:01 / S-0-0112 / --) 4bytes, 3decimal places + IF _State = UINT#25 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#112, + maxLength := UINT#4, + record := _data4); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _dword.%B0 := _data4[0]; + _dword.%B1 := _data4[1]; + _dword.%B2 := _data4[2]; + _dword.%B3 := _data4[3]; + _S_0_0112 := TO_REAL(TO_INT(_dword)) * REAL#0.001; + _State := UINT#26; + END_IF; + END_IF; + IF _State = UINT#26 THEN + _ReadRecord(request := FALSE, record := _data4); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#27; + END_IF; + END_IF; + //Reading Motor torque model: Current constant (0x2018:01 / P-0-0450 / --) 2bytes, 2decimal places + IF _State = UINT#27 THEN + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#4546, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _word.%B0 := _data2[0]; + _word.%B1 := _data2[1]; + _P_0_0450 := TO_REAL(TO_INT(_word)) * REAL#0.01; + _State := UINT#28; + END_IF; + END_IF; + IF _State = UINT#28 THEN + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#29; + END_IF; + END_IF; + //Calculating scaling constants + IF _State = UINT#29 THEN + // Position + ScalingConstantRequiredPosition := _exp[-_S_0_0078 - 3] / TO_LREAL(_S_0_0077); + ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; + // Velocity + ScalingConstantRequiredVelocity := LREAL#60.0 * _exp[-_S_0_0046 - 3] / TO_LREAL(_S_0_0045); + ScalingConstantActualVelocity := LREAL#1.0/ScalingConstantRequiredVelocity; + // Acceleration + ScalingConstantRequiredAcceleration := _exp[-_S_0_0162 - 3] / TO_LREAL(_S_0_0161); + ScalingConstantActualAcceleration := LREAL#1.0/ScalingConstantRequiredAcceleration; + // Deceleration + ScalingConstantRequiredDeceleration := ScalingConstantRequiredAcceleration; + ScalingConstantActualDeceleration := ScalingConstantActualAcceleration; + // Torque + ScalingConstantActualTorque := TO_LREAL(_S_0_0093) *_exp[_S_0_0094 - 2] * TO_LREAL(_P_0_0450) * TO_LREAL(_S_0_0112) ; + ScalingConstantRequiredTorque := LREAL#1.0/ScalingConstantActualTorque; + // Jerk + ScalingConstantRequiredJerk := 1000.0; + ScalingConstantActualJerk := 0.001; + + AxoStop_Deceleration := 1000.0; // mm/s2 + AxoStop_Jerk := 150000.0; // mm/s3 + AxoHalt_Deceleration := 1000.0; // mm/s2 + AxoHalt_Jerk := 150000.0; // mm/s3 + AxoHome_Position := 0.0; // mm + AxoHome_HommingMode := 551; // Negative direction, travel range limit switch, negative edge (NC contact) + AxoHome_Velocity := 2.0; // mm/s + AxoHome_Acceleration := 1000.0; // mm/s2 + AxoHome_Deceleration := 1000.0; // mm/s2 + AxoSetPosition_Position := 0.0; // mm + AxoMoveAbsolute_Position := 0.0; // mm + AxoMoveAbsolute_Velocity := 5.0; // mm/s + AxoMoveAbsolute_Acceleration := 1000.0; // mm/s2 + AxoMoveAbsolute_Deceleration := 1000.0; // mm/s2 + AxoMoveAbsolute_Jerk := 150000.0; // mm/s3 + AxoMoveRelative_Distance := 5.0; // mm + AxoMoveRelative_Velocity := 5.0; // mm/s + AxoMoveRelative_Acceleration := 1000.0; // mm/s2 + AxoMoveRelative_Deceleration := 1000.0; // mm/s2 + AxoMoveRelative_Jerk := 150000.0; // mm/s3 + AxoMoveAdditive_Distance := 5.0; // mm + AxoMoveAdditive_Velocity := 5.0; // mm/s + AxoMoveAdditive_Acceleration := 1000.0; // mm/s2 + AxoMoveAdditive_Deceleration := 1000.0; // mm/s2 + AxoMoveAdditive_Jerk := 150000.0; // mm/s3 + AxoMoveVelocity_Velocity := 5.0; // mm/s + AxoMoveVelocity_Acceleration := 1000.0; // mm/s2 + AxoMoveVelocity_Deceleration := 1000.0; // mm/s2 + AxoMoveVelocity_Jerk := 150000.0; // mm/s3 + AxoTorqueControl_Torque := 0.0; // Nm + AxoTorqueControl_TorqueRamp := 1.0; // Nm/s + AxoTorqueControl_Velocity := 5.0; // mm/s + AxoTorqueControl_Acceleration := 1000.0;// mm/s2 + AxoTorqueControl_Deceleration := 1000.0;// mm/s2 + AxoTorqueControl_Jerk := 150000.0; // mm/s3 + AxoJog_Velocity := 2.0; // mm/s + AxoJog_Acceleration := 500.0; // mm/s2 + AxoJog_Deceleration := 500.0; // mm/s2 + AxoJog_Jerk := 150000.0; // mm/s3 + AxisRefExt.Outputs.BipolarTorqueLimitation_S_0_0092_0_0 := INT#1000; // 1000~~ 100% + + _ScalingRead := TRUE; + _State := UINT#0; + END_IF; + RETURN; + END_IF; + //*************************************************// + + Messenger.ActivateOnCondition(ULINT#300, Enable AND NOT EnablePositive, eAxoMessageCategory#Warning); + Messenger.ActivateOnCondition(ULINT#301, Enable AND NOT EnableNegative, eAxoMessageCategory#Warning); + + //************************************************************ + SUPER.Run(THIS,AxisRefExt,Enable,EnablePositive,EnableNegative); + //************************************************************ + + THIS.ActualPosition := AxisRefExt.Inputs.ActualPosition_S_0_0386_0_0 * ScalingConstantActualPosition; + THIS.ActualVelocity := AxisRefExt.Inputs.ActualVelocity_S_0_0535_0_0 * ScalingConstantActualVelocity; + THIS.ActualTorque := AxisRefExt.Inputs.ActualTorque_S_0_0084_0_0 * ScalingConstantActualTorque; + + IF NOT AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 THEN + DriveState := AXOpen.Components.Drives.eAxoDriveState#Disabled; + ELSIF _State>=UINT#310 AND _State<=UINT#327 AND + (NOT AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.InReference OR NOT AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill ) THEN + DriveState := AXOpen.Components.Drives.eAxoDriveState#Homing; + ELSIF _State>=UINT#350 AND _State<=UINT#357 OR //******MC_MoveAbsolute*************** + _State>=UINT#360 AND _State<=UINT#367 OR //******MC_MoveRelative*************** + _State>=UINT#370 AND _State<=UINT#377 THEN //******MC_MoveAditive**************** + DriveState := AXOpen.Components.Drives.eAxoDriveState#DiscreteMotion; + ELSIF (_State>=UINT#380 AND _State=UINT#390 AND _State + /// Ensures swapping the hardware input data structure into the AxisRef data structure + /// + METHOD PROTECTED OVERRIDE UpdateInputs : BOOL + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1410, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1410; + RETURN; + END_IF; + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_HW_S_0_0135_0_0 ,_data2); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1201, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1201; + RETURN; + END_IF; + + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0._bit00_Reserve := _data2[1].%X0; // 0 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0._bit01_Reserve := _data2[1].%X1; // 1 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0._bit02_Reserve := _data2[1].%X2; // 2 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.CommandProcessingStatus := _data2[1].%X3; // 3 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill := _data2[1].%X4; // 4 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.InReference := _data2[1].%X5; // 5 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0._bit06_Reserve := _data2[1].%X6; // 6 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.HardwareLock := _data2[1].%X7; // 7 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0 := _data2[0].%X0; // 8 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1 := _data2[0].%X1; // 9 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2 := _data2[0].%X2; // 10 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0._bit11_Reserve := _data2[0].%X3; // 11 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.WarningZKL2 := _data2[0].%X4; // 12 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 := _data2[0].%X5; // 13 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 := _data2[0].%X6; // 14 + AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 := _data2[0].%X7; // 15 + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_HW_S_0_0144_0_0 ,_data2); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1202, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1202; + RETURN; + END_IF; + + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.CmPmOmBit0 := _data2[1].%X0; // 0 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.CmPmOmBit1 := _data2[1].%X1; // 1 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition := _data2[1].%X2; // 2 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck := _data2[1].%X3; // 3 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill := _data2[1].%X4; // 4 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.CommandChangeBit := _data2[1].%X5; // 5 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0._bit6_Reserve := _data2[1].%X6; // 6 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0._bit7_Reserve := _data2[1].%X7; // 7 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.LockedByHardware := _data2[0].%X0; // 8 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0._bit9_Reserve := _data2[0].%X1; // 9 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0._bit10_Reserve := _data2[0].%X2; // 10 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0._bit11_Reserve := _data2[0].%X3; // 11 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0._bit12_Reserve := _data2[0].%X4; // 12 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0._bit13_Reserve := _data2[0].%X5; // 13 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0._bit14_Reserve := _data2[0].%X6; // 14 + AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0._bit15_Reserve := _data2[0].%X7; // 15 + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_HW_S_0_0386_0_0 ,_data4); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1203, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1203; + RETURN; + END_IF; + _dword.%B3 := _data4[0]; + _dword.%B2 := _data4[1]; + _dword.%B1 := _data4[2]; + _dword.%B0 := _data4[3]; + AxisRefExt.Inputs.ActualPosition_S_0_0386_0_0 := TO_DINT(_dword); + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_HW_S_0_0535_0_0 ,_data4); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1204, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1204; + RETURN; + END_IF; + _dword.%B3 := _data4[0]; + _dword.%B2 := _data4[1]; + _dword.%B1 := _data4[2]; + _dword.%B0 := _data4[3]; + AxisRefExt.Inputs.ActualVelocity_S_0_0535_0_0 := TO_DINT(_dword); + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_HW_S_0_0390_0_0 ,_data4); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1205, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1205; + RETURN; + END_IF; + _dword.%B3 := _data4[0]; + _dword.%B2 := _data4[1]; + _dword.%B1 := _data4[2]; + _dword.%B0 := _data4[3]; + AxisRefExt.Inputs.DiagnosticMessage_S_0_0390_0_0 := _dword; + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_HW_S_0_1720_0_2 ,_data2); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1206, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1206; + RETURN; + END_IF; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2._bit0_Reserve := _data2[1].%X0; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2._bit1_Reserve := _data2[1].%X1; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2._bit2_Reserve := _data2[1].%X2; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2._bit3_Reserve := _data2[1].%X3; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.MainsStatus := _data2[1].%X4; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.HardwareEnable := _data2[1].%X5; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.ControllingTheMainsConnection := _data2[1].%X6; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.BbContact := _data2[1].%X7; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.PreselectedOPmodesFB_bit0 := _data2[0].%X0; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.PreselectedOPmodesFB_bit01 := _data2[0].%X1; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.DCbusDischarge := _data2[0].%X2; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.BrakingResistor := _data2[0].%X3; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.Warning := _data2[0].%X4; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.Error := _data2[0].%X5; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.ReadyForEnabling := _data2[0].%X6; + AxisRefExt.Inputs.SupplyUnitStatusWord_S_0_1720_0_2.Enabling := _data2[0].%X7; + + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_HW_S_0_0084_0_0 ,_data2); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1207, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1207; + RETURN; + END_IF; + _word.%B1 := _data2[0]; + _word.%B0 := _data2[1]; + AxisRefExt.Inputs.ActualTorque_S_0_0084_0_0 := TO_INT(_word); + END_METHOD + + /// + /// Ensures swapping the AxisRef data structure into the hardware output data structure + /// + METHOD PROTECTED OVERRIDE UpdateOutputs : BOOL + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1420, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1420; + RETURN; + END_IF; + //***********Update outputs ************** + _data2[1].%X0 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit00_Reserve; + _data2[1].%X1 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit01_Reserve; + _data2[1].%X2 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit02_Reserve; + _data2[1].%X3 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit03_Reserve; + _data2[1].%X4 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit04_Reserve; + _data2[1].%X5 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit05_Reserve; + _data2[1].%X6 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit06_Reserve; + _data2[1].%X7 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit07_Reserve; + _data2[0].%X0 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit0; + _data2[0].%X1 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit1; + _data2[0].%X2 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit2; + _data2[0].%X3 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit11_Reserve; + _data2[0].%X4 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0._bit12_Reserve; + _data2[0].%X5 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt; + _data2[0].%X6 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable; + _data2[0].%X7 := AxisRefExt.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_0134_0_0,_data2); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1231, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1231; + RETURN; + END_IF; + + _data2[1].%X0 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue; + _data2[1].%X2 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl; + _data2[1].%X3 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative; + _data2[1].%X4 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange; + _data2[1].%X5 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.ClearError; + _data2[1].%X6 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive; + _data2[1].%X7 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative; + _data2[0].%X0 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.SwitchToCM; + _data2[0].%X1 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.SwitchTo0M; + _data2[0].%X2 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint; + _data2[0].%X3 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0._bit11_Reserve; + _data2[0].%X4 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0._bit12_Reserve; + _data2[0].%X5 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0._bit13_Reserve; + _data2[0].%X6 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0._bit14_Reserve; + _data2[0].%X7 := AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_0145_0_0,_data2); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1232, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1232; + RETURN; + END_IF; + + _data4[3] := AxisRefExt.Outputs.CommandPosition_S_0_0282_0_0.%B0; + _data4[2] := AxisRefExt.Outputs.CommandPosition_S_0_0282_0_0.%B1; + _data4[1] := AxisRefExt.Outputs.CommandPosition_S_0_0282_0_0.%B2; + _data4[0] := AxisRefExt.Outputs.CommandPosition_S_0_0282_0_0.%B3; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_0282_0_0,_data4); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1233, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1233; + RETURN; + END_IF; + + _data4[3] := AxisRefExt.Outputs.CommandVelocity_S_0_0259_0_0.%B0; + _data4[2] := AxisRefExt.Outputs.CommandVelocity_S_0_0259_0_0.%B1; + _data4[1] := AxisRefExt.Outputs.CommandVelocity_S_0_0259_0_0.%B2; + _data4[0] := AxisRefExt.Outputs.CommandVelocity_S_0_0259_0_0.%B3; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_0259_0_0,_data4); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1234, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1234; + RETURN; + END_IF; + + _data4[3] := AxisRefExt.Outputs.CommandAcceleration_S_0_0260_0_0.%B0; + _data4[2] := AxisRefExt.Outputs.CommandAcceleration_S_0_0260_0_0.%B1; + _data4[1] := AxisRefExt.Outputs.CommandAcceleration_S_0_0260_0_0.%B2; + _data4[0] := AxisRefExt.Outputs.CommandAcceleration_S_0_0260_0_0.%B3; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_0260_0_0,_data4); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1235, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1235; + RETURN; + END_IF; + + _data4[3] := AxisRefExt.Outputs.CommandDecceleration_S_0_0359_0_0.%B0; + _data4[2] := AxisRefExt.Outputs.CommandDecceleration_S_0_0359_0_0.%B1; + _data4[1] := AxisRefExt.Outputs.CommandDecceleration_S_0_0359_0_0.%B2; + _data4[0] := AxisRefExt.Outputs.CommandDecceleration_S_0_0359_0_0.%B3; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_0359_0_0,_data4); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1236, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1236; + RETURN; + END_IF; + + _data2[1].%X0 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit0_Reserve; + _data2[1].%X1 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit1_Reserve; + _data2[1].%X2 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit2_Reserve; + _data2[1].%X3 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit3_Reserve; + _data2[1].%X4 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit4_Reserve; + _data2[1].%X5 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit5_Reserve; + _data2[1].%X6 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit6_Reserve; + _data2[1].%X7 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit7_Reserve; + _data2[0].%X0 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1.ModeSelectionBit0; + _data2[0].%X1 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1.ModeSelectionBit1; + _data2[0].%X2 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1.DCbusDischarge; + _data2[0].%X3 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit11_Reserve; + _data2[0].%X4 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1.ControllingTheReadyForOperationRelay; + _data2[0].%X5 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1._bit13_Reserve; + _data2[0].%X6 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1.ControllingDCbusChargingAndMainsContactor; + _data2[0].%X7 := AxisRefExt.Outputs.SupplyUnitControlWord_S_0_1720_0_1.Enabling; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_1720_0_1,_data2); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1237, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1237; + RETURN; + END_IF; + + _data2[1] := AxisRefExt.Outputs.BipolarTorqueLimitation_S_0_0092_0_0.%B0; + _data2[0] := AxisRefExt.Outputs.BipolarTorqueLimitation_S_0_0092_0_0.%B1; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_0092_0_0,_data2); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1238, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1238; + RETURN; + END_IF; + + _data2[1] := AxisRefExt.Outputs.CommandTorque_S_0_0080_0_0.%B0; + _data2[0] := AxisRefExt.Outputs.CommandTorque_S_0_0080_0_0.%B1; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_0080_0_0,_data2); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1239, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1239; + RETURN; + END_IF; + + _data4[3] := AxisRefExt.Outputs.CommandJerk_S_0_0193_0_0.%B0; + _data4[2] := AxisRefExt.Outputs.CommandJerk_S_0_0193_0_0.%B1; + _data4[1] := AxisRefExt.Outputs.CommandJerk_S_0_0193_0_0.%B2; + _data4[0] := AxisRefExt.Outputs.CommandJerk_S_0_0193_0_0.%B3; + + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_HW_S_0_0193_0_0,_data4); + IF _retVal > WORD#0 THEN + Messenger.Activate( UINT#1240, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1240; + RETURN; + END_IF; + + //************************************************************ + + END_METHOD + + /// + /// This method controls the power stage (On or Off). + /// + VAR INTERNAL + MC_PowerEnable_PV : BOOL := FALSE; //Enable - previous value + END_VAR + METHOD PUBLIC OVERRIDE MC_Power + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // As long as ‘Enable’ is true, power is being enabled. + END_VAR + VAR_OUTPUT + Status : BOOL; // Effective_State of the power stage + Valid : BOOL; // If true, a valid set of outputs is available at the method + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1430, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1430; + RETURN; + END_IF; + + Valid := FALSE; + IF Enable THEN + IF NOT MC_PowerEnable_PV THEN + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := TRUE; + END_IF; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 AND + _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND + _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + Status := TRUE; + Valid := TRUE; + ELSE + Status := FALSE; + Valid := TRUE; + END_IF; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 = TRUE THEN + Status := FALSE; + Error := TRUE; + ErrorID.%B1 := _AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0.%B1; + ErrorID.%B0 := _AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0.%B0; + END_IF; + END_IF; + + IF NOT Enable AND MC_PowerEnable_PV THEN + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := FALSE; + END_IF; + + MC_PowerEnable_PV := Enable; + END_METHOD + + /// + /// This method commands the axis to perform the «search home» sequence. The details of this sequence are + /// manufacturer dependent and can be set by the axis’ parameters. The ‘Position’ input is used to set the absolute + /// position when reference signal is detected. This method completes at ‘Standstill’ if it was started in ‘Standstill’. + /// + VAR INTERNAL + MC_HomeExecute_PV : BOOL; //Execute - previous value + MC_HomeErrorID : DINT; + MC_HomeCycle : ULINT; + END_VAR + METHOD PUBLIC OVERRIDE MC_Home + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Start the motion at rising edge + Position : LREAL; // Absolute position when the reference signal is detected + HommingMode : INT; // Required homming mode + Velocity : LREAL; // Value of the maximum ‘Velocity’ (not necessarily reached) [u/s]. + Acceleration : LREAL; // Value of the ‘Acceleration’ (always positive) (increasing energy of the motor) [u/s2] + Deceleration : LREAL; // Value of the ‘Deceleration’ (always positive) (decreasing energy of the motor) [u/s2] + END_VAR + VAR_OUTPUT + Done : BOOL; // Reference known and set sucessfully + Busy : BOOL; // The method is not finished and new output values are to be expected + Active : BOOL; // Indicates that the method has control on the axis + CommandAborted : BOOL; // ‘Command’ is aborted by another command + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1440, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1440; + RETURN; + END_IF; + + IF THIS.AxoHome_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Home; + END_IF; + + IF Execute AND NOT MC_HomeExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_HomeCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1441, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1442, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + + IF _State = UINT#0 THEN + Busy := TRUE; + Active := TRUE; + MC_HomeErrorID := DINT#0; + DriveStatus.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.IPOSYNC := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := FALSE; + _State := UINT#310; + END_IF; + // Reseting InReference flag + IF _State = UINT#310 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#510, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#510; + END_IF; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := TRUE; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + _State := UINT#311; + RETURN; + END_IF; + END_IF; + //Writing Homing configuration ENC_1: Home offset (0x607C:00 / S-0-0052 / --) + IF _State = UINT#311 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#511, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#511; + END_IF; + IF Acceleration <= 0 OR Deceleration <= 0 THEN + _State := UINT#329; + RETURN; + END_IF; + + _dword := TO_DWORD(TO_DINT(Position * ScalingConstantRequiredPosition)); + _data4[0] := _dword.%B0; + _data4[1] := _dword.%B1; + _data4[2] := _dword.%B2; + _data4[3] := _dword.%B3; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#52, + length := UINT#4, + record := _data4); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#312; + ElSIF _WriteRecord.error THEN + Messenger.Activate( UINT#1444, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1444; + _WriteRecord(request := FALSE, record := _data4); + _State := UINT#329; + END_IF; + END_IF; + IF _State = UINT#312 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#512, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#512; + END_IF; + _WriteRecord(request := FALSE, record := _data4); + IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#313; + END_IF; + END_IF; + //Writing Homing function: Configuration (0x2500:02 / S-0-0147 / --) + IF _State = UINT#313 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#513, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#513; + END_IF; + _word := TO_WORD(HommingMode); + _data2[0] := _word.%B0; + _data2[1] := _word.%B1; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#147, + length := UINT#2, + record := _data2); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#314; + ElSIF _WriteRecord.error THEN + Messenger.Activate( UINT#1445, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1445; + _WriteRecord(request := FALSE, record := _data2); + _State := UINT#329; + END_IF; + END_IF; + IF _State = UINT#314 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#514, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#514; + END_IF; + _WriteRecord(request := FALSE, record := _data2); + IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#315; + END_IF; + END_IF; + //Writing Homing speeds: Speed during search for switch (0x6099:01 / S-0-0041 / --) + IF _State = UINT#315 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#515, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#515; + END_IF; + _dword := TO_DWORD(TO_DINT(Velocity * ScalingConstantRequiredVelocity)); + _data4[0] := _dword.%B0; + _data4[1] := _dword.%B1; + _data4[2] := _dword.%B2; + _data4[3] := _dword.%B3; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#41, + length := UINT#4, + record := _data4); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data4); + _State := UINT#316; + ElSIF _WriteRecord.error THEN + Messenger.Activate( UINT#1446, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1446; + _WriteRecord(request := FALSE, record := _data4); + _State := UINT#329; + END_IF; + END_IF; + //Writing Homing speeds: Speed during search for zero (0x6099:02 / S-0-0542 / --) + IF _State = UINT#316 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#516, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#516; + END_IF; + _dword := TO_DWORD(TO_DINT(Velocity * ScalingConstantRequiredVelocity * 0.1)); + _data4[0] := _dword.%B0; + _data4[1] := _dword.%B1; + _data4[2] := _dword.%B2; + _data4[3] := _dword.%B3; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#542, + length := UINT#4, + record := _data4); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data4); + _State := UINT#317; + ElSIF _WriteRecord.error THEN + Messenger.Activate( UINT#1446, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1446; + _WriteRecord(request := FALSE, record := _data4); + _State := UINT#329; + END_IF; + END_IF; + //Writing Homing acceleration (0x609A:00 / S-0-0042 / --) + IF _State = UINT#317 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#517, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#517; + END_IF; + _dword := TO_DWORD(TO_DINT(Acceleration * ScalingConstantRequiredAcceleration)); + _data4[0] := _dword.%B0; + _data4[1] := _dword.%B1; + _data4[2] := _dword.%B2; + _data4[3] := _dword.%B3; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#42, + length := UINT#4, + record := _data4); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#318; + ElSIF _WriteRecord.error THEN + Messenger.Activate( UINT#1447, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1447; + _WriteRecord(request := FALSE, record := _data4); + _State := UINT#329; + END_IF; + END_IF; + IF _State = UINT#318 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#518, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#518; + END_IF; + _WriteRecord(request := FALSE, record := _data4); + IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#319; + END_IF; + END_IF; + IF _State = UINT#319 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#519, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#519; + END_IF; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit0 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit1 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit2 := FALSE; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2 THEN + _State := UINT#320; + END_IF; + END_IF; + IF _State = UINT#320 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#520, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#520; + END_IF; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND + _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#321; + END_IF; + END_IF; + IF _State = UINT#321 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#521, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#521; + END_IF; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := NOT _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue; + _State := UINT#322; + END_IF; + IF _State = UINT#322 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#522, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#522; + END_IF; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference AND _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _State := UINT#323; + END_IF; + END_IF; + IF _State = UINT#323 THEN + _State := UINT#327; + END_IF; + IF _State = UINT#327 THEN + Done := TRUE; + MC_HomeCycle := ULINT#0; + END_IF; + IF _State = UINT#328 THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + MC_HomeCycle := ULINT#0; + CommandAborted := TRUE; + AxoHome_Task.Abort(); + END_IF; + IF _State = UINT#329 THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + MC_HomeCycle := ULINT#0; + Error := TRUE; + AxoHome_Task.ThrowWhen(TRUE); + END_IF; + + IF _State>=UINT#310 AND _State MC_HomeCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#328; + END_IF; + END_IF; + + THIS.CallTimers(TRUE,FALSE); + THIS.AxoHome_Task.ThrowWhen(_errorTimer.output ); + DriveStatus.Action.Id := _State; + END_IF; + + IF THIS.AxoHome_Task.DoneReached() AND _State>=UINT#310 AND _State<=UINT#329 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + MC_HomeErrorID := DINT#0; + _State := UINT#0; + END_IF; + IF THIS.AxoHome_Task.RestoreTriggered() AND _State>=UINT#310 AND _State<=UINT#329 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + MC_HomeErrorID := DINT#0; + _State := UINT#0; + MC_HomeCycle := ULINT#0; + END_IF; + + ErrorID := MC_HomeErrorID; + MC_HomeExecute_PV := Execute; + END_METHOD + + /// + /// This method commands a controlled motion stop and transfers the axis to the_State ‘Stopping’. It aborts any + /// ongoing method execution. While the axis is in_State ‘Stopping’, no other method can perform any motion on the + /// same axis. + /// + VAR INTERNAL + MC_StopExecute_PV : BOOL; //Execute - previous value + MC_StopErrorID : DINT; + MC_StopCycle : ULINT; + END_VAR + METHOD PUBLIC OVERRIDE MC_Stop + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Start the action at rising edge + Deceleration : LREAL; // Value of the ‘Deceleration’ [u/s2] + Jerk : LREAL; // Value of the ‘Jerk’ [u/s3] + END_VAR + VAR_OUTPUT + Done : BOOL; // Zero velocity reached + Busy : BOOL; // The method is not finished and new output values are to be expected + Active : BOOL; // Indicates that the method has control on the axis + CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1470, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1470; + RETURN; + END_IF; + + IF THIS.AxoStop_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Stop; + END_IF; + + IF Execute AND NOT MC_StopExecute_PV THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_StopCycle := _AxisReference^.Data.Cycle ; + _State := UINT#0; + END_IF; + + IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1471, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1472, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + + IF _State = UINT#0 THEN + Busy := TRUE; + Active := TRUE; + MC_StopErrorID := DINT#0; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_DINT(Deceleration * ScalingConstantRequiredDeceleration ); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_DINT(Jerk * ScalingConstantRequiredJerk ); + _State := UINT#330; + END_IF; + IF _State = UINT#330 THEN + Busy := TRUE; + Active := TRUE; + IF Deceleration <= 0 OR Jerk <= 0 THEN + _State := UINT#339; + ELSE + _State := UINT#331; + END_IF; + END_IF; + IF _State = UINT#331 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#531, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#531; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill THEN + _State := UINT#332; + END_IF; + END_IF; + IF _State = UINT#332 THEN + Busy := TRUE; + Active := TRUE; + IF TRUE THEN + _State := UINT#333; + END_IF; + END_IF; + IF _State = UINT#333 THEN + Busy := TRUE; + Active := TRUE; + IF TRUE THEN + _State := UINT#334; + END_IF; + END_IF; + IF _State = UINT#334 THEN + Busy := TRUE; + Active := TRUE; + IF TRUE THEN + _State := UINT#335; + END_IF; + END_IF; + IF _State = UINT#335 THEN + Busy := TRUE; + Active := TRUE; + IF TRUE THEN + _State := UINT#336; + END_IF; + END_IF; + IF _State = UINT#336 THEN + Busy := TRUE; + Active := TRUE; + IF TRUE THEN + _State := UINT#337; + END_IF; + END_IF; + IF _State = UINT#337 THEN + Done := TRUE; + Active := TRUE; + MC_StopCycle := ULINT#0; + END_IF; + IF _State = UINT#338 THEN + MC_StopCycle := ULINT#0; + CommandAborted := TRUE; + AxoStop_Task.Abort(); + END_IF; + IF _State = UINT#339 THEN + MC_StopCycle := ULINT#0; + Error := TRUE; + AxoStop_Task.ThrowWhen(TRUE); + END_IF; + + IF _State>=UINT#330 AND _State MC_StopCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#338; + END_IF; + END_IF; + THIS.CallTimers(TRUE,FALSE); + THIS.AxoStop_Task.ThrowWhen(_errorTimer.output ); + DriveStatus.Action.Id := _State; + END_IF; + + IF THIS.AxoStop_Task.DoneReached() AND _State>=UINT#330 AND _State<=UINT#339 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_StopErrorID := DINT#0; + _State := UINT#0; + END_IF; + IF THIS.AxoStop_Task.RestoreTriggered() AND _State>=UINT#330 AND _State<=UINT#339 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_StopErrorID := DINT#0; + _State := UINT#0; + MC_StopCycle := ULINT#0; + END_IF; + ErrorID := MC_StopErrorID; + MC_StopExecute_PV := Execute; + END_METHOD + + /// + /// This method commands a controlled motion stop. The axis is moved to the_State ‘DiscreteMotion’, until the + /// velocity is zero. With the ‘Done’ output set, the_State is transferred to ‘Standstill’. + /// + VAR INTERNAL + MC_HaltExecute_PV : BOOL; //Execute - previous value + MC_HaltErrorID : DINT; + MC_HaltCycle : ULINT; + END_VAR + METHOD PUBLIC OVERRIDE MC_Halt + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Start the action at rising edge + Deceleration : LREAL; // Value of the ‘Deceleration’ [u/s2] + Jerk : LREAL; // Value of the ‘Jerk’ [u/s3] + END_VAR + VAR_OUTPUT + Done : BOOL; // Zero velocity reached + Busy : BOOL; // The method is not finished and new output values are to be expected + Active : BOOL; // Indicates that the method has control on the axis + CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1480, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1480; + RETURN; + END_IF; + + IF THIS.AxoHalt_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Halt; + END_IF; + + IF Execute AND NOT MC_HaltExecute_PV THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_HaltCycle := _AxisReference^.Data.Cycle ; + _State := UINT#0; + END_IF; + + IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1481, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1482, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + + IF _State = UINT#0 THEN + Busy := TRUE; + Active := TRUE; + MC_HaltErrorID := DINT#10; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_DINT(Deceleration * ScalingConstantRequiredDeceleration); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_DINT(Jerk * ScalingConstantRequiredJerk); + _State := UINT#340; + END_IF; + IF _State = UINT#340 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#540, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#540; + END_IF; + Busy := TRUE; + Active := TRUE; + IF Deceleration <= 0 OR Jerk <= 0 THEN + _State := UINT#349; + ELSE + _State := UINT#341; + END_IF; + END_IF; + IF _State = UINT#341 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#541, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#541; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill THEN + _State := UINT#342; + END_IF; + END_IF; + IF _State = UINT#342 THEN + Busy := TRUE; + Active := TRUE; + IF TRUE THEN + _State := UINT#343; + END_IF; + END_IF; + IF _State = UINT#343 THEN + Busy := TRUE; + Active := TRUE; + IF TRUE THEN + _State := UINT#344; + END_IF; + END_IF; + IF _State = UINT#344 THEN + IF TRUE THEN + _State := UINT#345; + END_IF; + END_IF; + IF _State = UINT#345 THEN + IF TRUE THEN + _State := UINT#346; + END_IF; + END_IF; + IF _State = UINT#346 THEN + IF TRUE THEN + _State := UINT#347; + END_IF; + END_IF; + IF _State = UINT#347 THEN + Done := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + MC_HaltCycle := ULINT#0; + END_IF; + IF _State = UINT#348 THEN + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + CommandAborted := TRUE; + THIS.AxoHalt_Task.Abort(); + END_IF; + IF _State = UINT#349 THEN + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + MC_HaltCycle := ULINT#0; + Error := TRUE; + THIS.AxoHalt_Task.ThrowWhen(TRUE); + END_IF; + IF _State>=UINT#340 AND _State MC_HaltCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#348; + END_IF; + END_IF; + THIS.CallTimers(TRUE,FALSE); + THIS.AxoHalt_Task.ThrowWhen(_errorTimer.output ); + DriveStatus.Action.Id := _State; + END_IF; + + IF THIS.AxoHalt_Task.DoneReached() AND _State>=UINT#340 AND _State<=UINT#349 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + MC_HaltErrorID := DINT#0; + _State := UINT#0; + END_IF; + IF THIS.AxoHalt_Task.RestoreTriggered() AND _State>=UINT#340 AND _State<=UINT#349 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + MC_HaltErrorID := DINT#0; + _State := UINT#0; + MC_HaltCycle := ULINT#0; + END_IF; + ErrorID := MC_HaltErrorID; + MC_HaltExecute_PV := Execute; + END_METHOD + + /// + /// This method commands a controlled motion to a specified absolute position. + /// + VAR INTERNAL + MC_MoveAbsoluteExecute_PV : BOOL; //Execute - previous value + MC_MoveAbsoluteErrorID : DINT; + MC_MoveAbsoluteCycle : ULINT; + MC_MoveAbsoluteContinuousUpdate_SV : BOOL; + MC_MoveAbsolutePosition_PV : LREAL; + MC_MoveAbsoluteVelocity_PV : LREAL; + MC_MoveAbsoluteAcceleration_PV : LREAL; + MC_MoveAbsoluteDeceleration_PV : LREAL; + MC_MoveAbsoluteJerk_PV : LREAL; + MC_MoveAbsoluteDirection_PV : AXOpen.Components.Abstractions.Drives.eAxoDriveDirection; + END_VAR + METHOD PUBLIC OVERRIDE MC_MoveAbsolute + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Start the motion at rising edge + ContinuousUpdate: BOOL; // Activate ‘ContinuousUpdate’ - target parameters should be changed during movement + Position : LREAL; // Commanded ‘Position’ for the motion (in technical unit [u]) (negative or positive) + Velocity : LREAL; // Value of the maximum ‘Velocity’ (not necessarily reached) [u/s]. + Acceleration : LREAL; // Value of the ‘Acceleration’ (always positive) (increasing energy of the motor) [u/s2] + Deceleration : LREAL; // Value of the ‘Deceleration’ (always positive) (decreasing energy of the motor) [u/s2] + Jerk : LREAL; // Value of the ‘Jerk’ [u/s3] + Direction : AXOpen.Components.Abstractions.Drives.eAxoDriveDirection; // Enum type (1-of-4 values: PositiveDirection, ShortestWay, NegativeDirection, CurrentDirection) + END_VAR + VAR_OUTPUT + Done : BOOL; // Commanded position finally reached + Busy : BOOL; // The method is not finished and new output values are to be expected + Active : BOOL; // Indicates that the method has control on the axis + CommandAborted : BOOL; // ‘Command’ is aborted by another command + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1490, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1490; + RETURN; + END_IF; + + IF THIS.AxoMoveAbsolute_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_MoveAbsolute; + END_IF; + + IF Execute AND NOT MC_MoveAbsoluteExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_MoveAbsoluteCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1491, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1492, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1493, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1494, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + + IF NOT ContinuousUpdate THEN + MC_MoveAbsoluteContinuousUpdate_SV := FALSE; + END_IF; + IF _State = UINT#0 THEN + Busy := TRUE; + Active := TRUE; + MC_MoveAbsoluteErrorID := DINT#0; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := FALSE; + MC_MoveAbsoluteContinuousUpdate_SV := ContinuousUpdate; + _State := UINT#350; + END_IF; + IF _State = UINT#350 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#550, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#550; + END_IF; + Busy := TRUE; + Active := TRUE; + IF Velocity > 0 AND Acceleration > 0 AND Deceleration > 0 AND Jerk > 0 THEN + _AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 := TO_DINT(Position * ScalingConstantRequiredPosition); + _AxisReference^.Outputs.CommandVelocity_S_0_0259_0_0 := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Outputs.CommandAcceleration_S_0_0260_0_0 := TO_DINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_DINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_DINT(Jerk * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); + MC_MoveAbsolutePosition_PV := Position; + MC_MoveAbsoluteVelocity_PV := Velocity; + MC_MoveAbsoluteAcceleration_PV := Acceleration; + MC_MoveAbsoluteDeceleration_PV := Deceleration; + MC_MoveAbsoluteJerk_PV := Jerk; + MC_MoveAbsoluteDirection_PV := Direction; + _State := UINT#351; + END_IF; + END_IF; + IF _State = UINT#351 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#551, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#551; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit0 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit1 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit2 := FALSE; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2 THEN + _State := UINT#352; + END_IF; + END_IF; + IF _State = UINT#352 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#552, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#552; + END_IF; + Busy := TRUE; + Active := TRUE; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND + _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#353; + END_IF; + END_IF; + IF _State = UINT#353 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#553, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#553; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + IF TRUE THEN + _State := UINT#354; + END_IF; + END_IF; + //Executing movement + IF _State = UINT#354 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#554, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#554; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := NOT _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck; + IF TRUE THEN + _State := UINT#355; + END_IF; + END_IF; + IF _State = UINT#355 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#555, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#555; + END_IF; + Busy := TRUE; + Active := TRUE; + IF _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue = _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck THEN + _State := UINT#356; + END_IF; + END_IF; + IF _State = UINT#356 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#556, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#556; + END_IF; + IF _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill AND _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition THEN + _State := UINT#357; + END_IF; + END_IF; + IF _State = UINT#357 THEN + Done := TRUE; + MC_MoveAbsoluteCycle := ULINT#0; + END_IF; + IF _State = UINT#358 THEN + CommandAborted := TRUE; + AxoMoveAbsolute_Task.Abort(); + END_IF; + IF _State = UINT#359 THEN + MC_MoveAbsoluteCycle := ULINT#0; + Error := TRUE; + AxoMoveAbsolute_Task.ThrowWhen(TRUE); + END_IF; + + IF _State>=UINT#350 AND _State Position OR + MC_MoveAbsoluteVelocity_PV <> Velocity OR + MC_MoveAbsoluteAcceleration_PV <> Acceleration OR + MC_MoveAbsoluteDeceleration_PV <> Deceleration OR + MC_MoveAbsoluteJerk_PV <> Jerk OR + MC_MoveAbsoluteDirection_PV <> Direction ) THEN + IF TRUE THEN + _State := UINT#350; + END_IF; + END_IF; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 OR NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#358; + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 THEN + IF MC_MoveAbsoluteErrorID = DINT#0 THEN + MC_MoveAbsoluteErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + END_IF; + _State := UINT#359; + ELSIF _AxisReference^.Data.Cycle <> MC_MoveAbsoluteCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#358; + END_IF; + END_IF; + + THIS.CallTimers(TRUE,FALSE); + THIS.AxoMoveAbsolute_Task.ThrowWhen(_errorTimer.output ); + DriveStatus.Action.Id := _State; + END_IF; + + IF THIS.AxoMoveAbsolute_Task.DoneReached() AND _State>=UINT#350 AND _State<=UINT#359 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_MoveAbsoluteErrorID := DINT#0; + _State := UINT#0; + END_IF; + + IF THIS.AxoMoveAbsolute_Task.RestoreTriggered() AND _State>=UINT#350 AND _State<=UINT#359 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_MoveAbsoluteErrorID := DINT#0; + MC_MoveAbsoluteCycle := ULINT#0; + _State := UINT#0; + MC_MoveAbsoluteExecute_PV := FALSE; + END_IF; + ErrorID := MC_MoveAbsoluteErrorID; + MC_MoveAbsoluteExecute_PV := Execute; + END_METHOD + + /// + /// This method commands a controlled motion of a specified distance relative to the set position at the time of the execution. + /// + VAR INTERNAL + MC_MoveRelativeExecute_PV : BOOL; //Execute - previous value + MC_MoveRelativeErrorID : DINT; + MC_MoveRelativeCycle : ULINT; + MC_MoveRelativeContinuousUpdate_SV : BOOL; + MC_MoveRelativeDistance_PV : LREAL; + MC_MoveRelativeVelocity_PV : LREAL; + MC_MoveRelativeAcceleration_PV : LREAL; + MC_MoveRelativeDeceleration_PV : LREAL; + MC_MoveRelativeJerk_PV : LREAL; + END_VAR + METHOD PUBLIC OVERRIDE MC_MoveRelative + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Start the motion at rising edge + ContinuousUpdate: BOOL; // Activate ‘ContinuousUpdate’ - target parameters should be changed during movement + Distance : LREAL; // Relative distance for the motion (in technical unit [u] + Velocity : LREAL; // Value of the maximum ‘Velocity’ (not necessarily reached) [u/s]. + Acceleration : LREAL; // Value of the ‘Acceleration’ (always positive) (increasing energy of the motor) [u/s2] + Deceleration : LREAL; // Value of the ‘Deceleration’ (always positive) (decreasing energy of the motor) [u/s2] + Jerk : LREAL; // Value of the ‘Jerk’ [u/s3] + END_VAR + VAR_OUTPUT + Done : BOOL; // Commanded distance reached + Busy : BOOL; // The method is not finished and new output values are to be expected + Active : BOOL; // Indicates that the method has control on the axis + CommandAborted : BOOL; // ‘Command’ is aborted by another command + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1500, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1500; + RETURN; + END_IF; + + IF THIS.AxoMoveRelative_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_MoveRelative; + END_IF; + + IF Execute AND NOT MC_MoveRelativeExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_MoveRelativeCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1501, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1502, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1503, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1504, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + + IF NOT ContinuousUpdate THEN + MC_MoveRelativeContinuousUpdate_SV := FALSE; + END_IF; + + IF _State = UINT#0 THEN + Busy := TRUE; + Active := TRUE; + MC_MoveRelativeErrorID := DINT#0; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl:= FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange := TRUE; + MC_MoveRelativeContinuousUpdate_SV := ContinuousUpdate; + _State := UINT#360; + END_IF; + IF _State = UINT#360 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#560, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#560; + END_IF; + Busy := TRUE; + Active := TRUE; + IF Velocity > 0 AND Acceleration > 0 AND Deceleration >0 AND Jerk > 0 THEN + _AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 := TO_DINT(Distance * ScalingConstantRequiredPosition); + _AxisReference^.Outputs.CommandVelocity_S_0_0259_0_0 := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Outputs.CommandAcceleration_S_0_0260_0_0 := TO_DINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_DINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_DINT(Jerk * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); + MC_MoveRelativeDistance_PV := Distance; + MC_MoveRelativeVelocity_PV := Velocity; + MC_MoveRelativeAcceleration_PV := Acceleration; + MC_MoveRelativeDeceleration_PV := Deceleration; + MC_MoveRelativeJerk_PV := Jerk; + _State := UINT#361; + END_IF; + END_IF; + IF _State = UINT#361 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#561, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#561; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit0 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit1 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit2 := FALSE; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2 THEN + _State := UINT#362; + END_IF; + END_IF; + IF _State = UINT#362 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#562, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#562; + END_IF; + Busy := TRUE; + Active := TRUE; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND + _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#363; + END_IF; + END_IF; + IF _State = UINT#363 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#563, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#563; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + IF TRUE THEN + _State := UINT#364; + END_IF; + END_IF; + //Executing movement + IF _State = UINT#364 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#564, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#564; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := NOT _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck; + IF TRUE THEN + _State := UINT#365; + END_IF; + END_IF; + IF _State = UINT#365 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#565, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#565; + END_IF; + Busy := TRUE; + Active := TRUE; + IF _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue = _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck THEN + _State := UINT#366; + END_IF; + END_IF; + IF _State = UINT#366 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#566, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#566; + END_IF; + IF _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill AND _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition THEN + _State := UINT#367; + END_IF; + END_IF; + IF _State = UINT#367 THEN + Done := TRUE; + MC_MoveRelativeCycle := ULINT#0; + END_IF; + IF _State = UINT#368 THEN + CommandAborted := TRUE; + AxoMoveRelative_Task.Abort(); + END_IF; + IF _State = UINT#369 THEN + MC_MoveRelativeCycle := ULINT#0; + Error := TRUE; + AxoMoveRelative_Task.ThrowWhen(TRUE); + END_IF; + + IF _State>=UINT#360 AND _State Distance OR + MC_MoveRelativeVelocity_PV <> Velocity OR + MC_MoveRelativeAcceleration_PV <> Acceleration OR + MC_MoveRelativeDeceleration_PV <> Deceleration OR + MC_MoveRelativeJerk_PV <> Jerk ) THEN + IF TRUE THEN + _AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 := TO_DINT(Distance * ScalingConstantRequiredPosition); + _AxisReference^.Outputs.CommandVelocity_S_0_0259_0_0 := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Outputs.CommandAcceleration_S_0_0260_0_0 := TO_DINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_DINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_DINT(Jerk * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); + MC_MoveRelativeDistance_PV := Distance; + MC_MoveRelativeVelocity_PV := Velocity; + MC_MoveRelativeAcceleration_PV := Acceleration; + MC_MoveRelativeDeceleration_PV := Deceleration; + MC_MoveRelativeJerk_PV := Jerk; + _State := UINT#361; + END_IF; + END_IF; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 OR NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#368; + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 THEN + IF MC_MoveRelativeErrorID = DINT#0 THEN + MC_MoveRelativeErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + END_IF; + _State := UINT#369; + ELSIF _AxisReference^.Data.Cycle <> MC_MoveRelativeCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#368; + END_IF; + END_IF; + + THIS.CallTimers(TRUE,FALSE); + THIS.AxoMoveRelative_Task.ThrowWhen(_errorTimer.output ); + DriveStatus.Action.Id := _State; + END_IF; + + IF THIS.AxoMoveRelative_Task.DoneReached() AND _State>=UINT#360 AND _State<=UINT#369 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_MoveRelativeErrorID := DINT#0; + // MC_MoveRelativeCycle := ULINT#0; + _State := UINT#0; + END_IF; + + IF THIS.AxoMoveRelative_Task.RestoreTriggered() AND _State>=UINT#360 AND _State<=UINT#369 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_MoveRelativeErrorID := DINT#0; + MC_MoveRelativeCycle := ULINT#0; + _State := UINT#0; + END_IF; + ErrorID := MC_MoveRelativeErrorID; + MC_MoveRelativeExecute_PV := Execute; + END_METHOD + + /// + /// This method commands a controlled motion of a specified relative distance additional to the most recent + /// commanded position in the axis_State ‘DiscreteMotion’. The most recent commanded position may be the result of a + /// previous MC_MoveAdditive motion which was aborted. If the method is activated in the axis_State ‘ContinuousMotion’, the + /// specified relative distance is added to the set position at the time of the execution. + /// + VAR INTERNAL + MC_MoveAdditiveExecute_PV : BOOL; //Execute - previous value + MC_MoveAdditiveErrorID : DINT; + MC_MoveAdditiveCycle : ULINT; + MC_MoveAdditiveContinuousUpdate_SV : BOOL; + MC_MoveAdditiveDistance_PV : LREAL; + MC_MoveAdditiveVelocity_PV : LREAL; + MC_MoveAdditiveAcceleration_PV : LREAL; + MC_MoveAdditiveDeceleration_PV : LREAL; + MC_MoveAdditiveJerk_PV : LREAL; + END_VAR + METHOD PUBLIC OVERRIDE MC_MoveAdditive + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Start the motion at rising edge + ContinuousUpdate: BOOL; // Activate ‘ContinuousUpdate’ - target parameters should be changed during movement + Distance : LREAL; // Relative distance for the motion (in technical unit [u] + Velocity : LREAL; // Value of the maximum ‘Velocity’ (not necessarily reached) [u/s]. + Acceleration : LREAL; // Value of the ‘Acceleration’ (always positive) (increasing energy of the motor) [u/s2] + Deceleration : LREAL; // Value of the ‘Deceleration’ (always positive) (decreasing energy of the motor) [u/s2] + Jerk : LREAL; // Value of the ‘Jerk’ [u/s3] + END_VAR + VAR_OUTPUT + Done : BOOL; // Commanded distance reached + Busy : BOOL; // The method is not finished and new output values are to be expected + Active : BOOL; // Indicates that the method has control on the axis + CommandAborted : BOOL; // ‘Command’ is aborted by another command + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1510, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1510; + RETURN; + END_IF; + + IF Execute AND NOT MC_MoveAdditiveExecute_PV THEN + _State := UINT#0; //TODO check if this casues the issue with two move relative movements??? + END_IF; + + IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1511, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1512, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1513, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1514, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + + IF NOT ContinuousUpdate THEN + MC_MoveAdditiveContinuousUpdate_SV := FALSE; + END_IF; + + IF _State = UINT#0 THEN + Busy := TRUE; + Active := TRUE; + MC_MoveAdditiveErrorID := DINT#0; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl:= FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange := TRUE; + MC_MoveAdditiveContinuousUpdate_SV := ContinuousUpdate; + IF Velocity > 0 AND Acceleration > 0 AND Deceleration >0 AND Jerk > 0 THEN + MC_MoveAdditiveDistance_PV := Distance; + MC_MoveAdditiveVelocity_PV := Velocity; + MC_MoveAdditiveAcceleration_PV := Acceleration; + MC_MoveAdditiveDeceleration_PV := Deceleration; + MC_MoveAdditiveJerk_PV := Jerk; + IF _AxisReference^.Status.CurrentMotionTaskId = eAxoMotionTaskId#Axo_MoveAbsolute THEN + AxoMoveAbsolute_Task.Abort(); + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := FALSE; + _AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 := TO_DINT((MC_MoveAbsolutePosition_PV + Distance) * ScalingConstantRequiredPosition); + _AxisReference^.Outputs.CommandVelocity_S_0_0259_0_0 := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Outputs.CommandAcceleration_S_0_0260_0_0 := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_DINT(Jerk * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); + ELSE + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := TRUE; + _AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 := TO_DINT((Distance) * ScalingConstantRequiredPosition); + _AxisReference^.Outputs.CommandVelocity_S_0_0259_0_0 := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Outputs.CommandAcceleration_S_0_0260_0_0 := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_DINT(Jerk * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); + END_IF; + IF _AxisReference^.Status.CurrentMotionTaskId = eAxoMotionTaskId#Axo_MoveRelative THEN + AxoMoveRelative_Task.Abort(); + END_IF; + _AxisReference^.Status.CurrentMotionTaskId := eAxoMotionTaskId#Axo_MoveAdditive; + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_MoveAdditiveCycle := _AxisReference^.Data.Cycle ; + _State := UINT#371; + END_IF; + END_IF; + IF _State = UINT#370 THEN + _State := UINT#371; + END_IF; + IF _State = UINT#371 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#571, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#571; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit0 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit1 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit2 := FALSE; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2 THEN + _State := UINT#372; + END_IF; + END_IF; + IF _State = UINT#372 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#572, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#572; + END_IF; + Busy := TRUE; + Active := TRUE; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND + _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#373; + END_IF; + END_IF; + IF _State = UINT#373 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#573, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#573; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + IF TRUE THEN + _State := UINT#374; + END_IF; + END_IF; + IF _State = UINT#374 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#574, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#574; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := NOT _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck; + IF TRUE THEN + _State := UINT#375; + END_IF; + END_IF; + IF _State = UINT#375 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#575, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#575; + END_IF; + Busy := TRUE; + Active := TRUE; + IF _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue = _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck THEN + _State := UINT#376; + END_IF; + END_IF; + IF _State = UINT#376 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#576, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#576; + END_IF; + IF _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill AND _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition THEN + _State := UINT#377; + END_IF; + END_IF; + IF _State = UINT#377 THEN + Done := TRUE; + MC_MoveAdditiveCycle := ULINT#0; + END_IF; + IF _State = UINT#378 THEN + CommandAborted := TRUE; + AxoMoveAdditive_Task.Abort(); + END_IF; + IF _State = UINT#379 THEN + MC_MoveAdditiveCycle := ULINT#0; + AxoMoveAdditive_Task.ThrowWhen(TRUE); + Error := TRUE; + END_IF; + + IF _State>=UINT#370 AND _State Distance OR + MC_MoveAdditiveVelocity_PV <> Velocity OR + MC_MoveAdditiveAcceleration_PV <> Acceleration OR + MC_MoveAdditiveDeceleration_PV <> Deceleration OR + MC_MoveAdditiveJerk_PV <> Jerk ) THEN + IF TRUE THEN + IF NOT _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative THEN + _AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 :=_AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 + TO_DINT((Distance - MC_MoveAdditiveDistance_PV) * ScalingConstantRequiredPosition); + ELSE + _AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 := TO_DINT((Distance) * ScalingConstantRequiredPosition) - _AxisReference^.Inputs.ActualPosition_S_0_0386_0_0; + END_IF; + _AxisReference^.Outputs.CommandVelocity_S_0_0259_0_0 := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Outputs.CommandAcceleration_S_0_0260_0_0 := TO_UINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_UINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_UINT(Jerk * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); + MC_MoveAdditiveDistance_PV := Distance; + MC_MoveAdditiveVelocity_PV := Velocity; + MC_MoveAdditiveAcceleration_PV := Acceleration; + MC_MoveAdditiveDeceleration_PV := Deceleration; + MC_MoveAdditiveJerk_PV := Jerk; + _State := UINT#371; + END_IF; + END_IF; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 OR NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#378; + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 THEN + IF MC_MoveAdditiveErrorID = DINT#0 THEN + MC_MoveAdditiveErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + END_IF; + _State := UINT#379; + ELSIF _AxisReference^.Data.Cycle <> MC_MoveAdditiveCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#378; + END_IF; + END_IF; + THIS.CallTimers(TRUE,FALSE); + THIS.AxoMoveAdditive_Task.ThrowWhen(_errorTimer.output ); + DriveStatus.Action.Id := _State; + END_IF; + + IF THIS.AxoMoveAdditive_Task.DoneReached() AND _State>=UINT#370 AND _State<=UINT#379 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_MoveAdditiveErrorID := DINT#0; + // MC_MoveAdditiveCycle := ULINT#0; + _State := UINT#0; + END_IF; + + IF THIS.AxoMoveAdditive_Task.RestoreTriggered() AND _State>=UINT#370 AND _State<=UINT#379 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_MoveAdditiveErrorID := DINT#0; + MC_MoveAdditiveCycle := ULINT#0; + _State := UINT#0; + END_IF; + + ErrorID := MC_MoveAdditiveErrorID; + MC_MoveAdditiveExecute_PV := Execute; + END_METHOD + + /// + /// This method commands a never ending controlled motion at a specified velocity. + /// + VAR INTERNAL + MC_MoveVelocityExecute_PV : BOOL; //Execute - previous value + MC_MoveVelocityErrorID : WORD; + MC_MoveVelocityCycle : ULINT; + MC_MoveVelocityContinuousUpdate_SV : BOOL; + MC_MoveVelocityVelocity_PV : LREAL; + MC_MoveVelocityAcceleration_PV : LREAL; + MC_MoveVelocityDeceleration_PV : LREAL; + MC_MoveVelocityJerk_PV : LREAL; + MC_MoveVelocityDirection_PV : AXOpen.Components.Abstractions.Drives.eAxoDriveDirection; + END_VAR + METHOD PUBLIC OVERRIDE MC_MoveVelocity + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Start the motion at rising edge + ContinuousUpdate: BOOL; // Activate ‘ContinuousUpdate’ - target parameters should be changed during movement + Velocity : LREAL; // Value of the maximum velocity [u/s]. Can be a signed value. + Acceleration : LREAL; // Value of the ‘Acceleration’ (always positive) (increasing energy of the motor) [u/s2] + Deceleration : LREAL; // Value of the ‘Deceleration’ (always positive) (decreasing energy of the motor) [u/s2] + Jerk : LREAL; // Value of the ‘Jerk’ [u/s3] + Direction : AXOpen.Components.Abstractions.Drives.eAxoDriveDirection; // Enum type (1-of-3 values: PositiveDirection, NegativeDirection, and CurrentDirection. Note: shortest way not applicable) + END_VAR + VAR_OUTPUT + InVelocity : BOOL; // Commanded velocity reached + Busy : BOOL; // The method is not finished and new output values are to be expected + Active : BOOL; // Indicates that the method has control on the axis + CommandAborted : BOOL; // ‘Command’ is aborted by another command + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + Velocity_ : LREAL; + Direction_ : AXOpen.Components.Abstractions.Drives.eAxoDriveDirection; + VelocityWindowPerCent : LREAL := LREAL#5.0; + VelocityWindowMin : LREAL; + VelocityWindowMax : LREAL; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1520, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1520; + RETURN; + END_IF; + + IF THIS.AxoMoveVelocity_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_MoveVelocity; + END_IF; + + IF Execute AND NOT MC_MoveVelocityExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_MoveVelocityCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1521,Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection, eAxoMessageCategory#ProgrammingError); + + IF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN + Velocity_ := Velocity; + ELSIF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection THEN + Velocity_ := -1 * Velocity; + ELSE + RETURN; + END_IF; + + IF Velocity_> 0 THEN + Direction_ := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection; + ELSE + Direction_ := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection; + END_IF; + + Messenger.ActivateOnCondition(ULINT#1522, Execute AND Velocity = 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1523, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1524, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1525, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + + IF NOT ContinuousUpdate THEN + MC_MoveVelocityContinuousUpdate_SV := FALSE; + END_IF; + + IF _State = UINT#0 THEN + Busy := TRUE; + Active := TRUE; + MC_MoveVelocityErrorID := WORD#16#0000; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit0 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit1 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit2 := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := FALSE; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SwitchToCM := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SwitchTo0M := TRUE; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; + + MC_MoveVelocityContinuousUpdate_SV := ContinuousUpdate; + _State := UINT#380; + END_IF; + IF _State = UINT#380 THEN + Busy := TRUE; + Active := TRUE; + IF Velocity <> 0 AND Acceleration > 0 AND Deceleration >0 AND Jerk > 0 THEN + _AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 := TO_DINT(0.0 * ScalingConstantRequiredPosition); + _AxisReference^.Outputs.CommandVelocity_S_0_0259_0_0 := TO_DINT(Velocity_ * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Outputs.CommandAcceleration_S_0_0260_0_0 := TO_DINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_DINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_DINT(Jerk * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); + + MC_MoveVelocityVelocity_PV := Velocity_; + MC_MoveVelocityAcceleration_PV := Acceleration; + MC_MoveVelocityDeceleration_PV := Deceleration; + MC_MoveVelocityJerk_PV := Jerk; + MC_MoveVelocityDirection_PV := Direction_; + _State := UINT#381; + END_IF; + END_IF; + IF _State = UINT#381 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#581, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#581; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit0 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit1 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit2 := FALSE; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2 THEN + _State := UINT#382; + END_IF; + END_IF; + IF _State = UINT#382 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#582, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#582; + END_IF; + Busy := TRUE; + Active := TRUE; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND + _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#383; + END_IF; + END_IF; + IF _State = UINT#383 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#583, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#583; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + IF TRUE THEN //NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.CommandProcessingStatus THEN + _State := UINT#384; + END_IF; + END_IF; + IF _State = UINT#384 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#584, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#584; + END_IF; + Busy := TRUE; + Active := TRUE; + IF Direction_ = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + ELSIF Direction_ = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := TRUE; + END_IF; + + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill THEN + _State := UINT#385; + END_IF; + END_IF; + IF _State = UINT#385 THEN + IF TRUE THEN + _State := UINT#386; + END_IF; + END_IF; + IF Direction_ = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN + VelocityWindowMax := Velocity_ + (Velocity_ * VelocityWindowPerCent / REAL#100.0); + VelocityWindowMin := Velocity_ - (Velocity_ * VelocityWindowPerCent / REAL#100.0); + ELSE + VelocityWindowMax := Velocity_ - (Velocity_ * VelocityWindowPerCent / REAL#100.0); + VelocityWindowMin := Velocity_ + (Velocity_ * VelocityWindowPerCent / REAL#100.0); + END_IF; + InVelocity := ActualVelocity >= VelocityWindowMin AND ActualVelocity <= VelocityWindowMax; + IF _State = UINT#386 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#586, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#586; + END_IF; + IF InVelocity AND NOT MC_MoveVelocityContinuousUpdate_SV THEN + _State := UINT#387; + END_IF; + END_IF; + IF _State = UINT#387 THEN + MC_MoveVelocityCycle := ULINT#0; + END_IF; + IF _State = UINT#388 THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + CommandAborted := TRUE; + AxoMoveVelocity_Task.Abort(); + END_IF; + IF _State = UINT#389 THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + MC_MoveVelocityCycle := ULINT#0; + Error := TRUE; + AxoMoveVelocity_Task.ThrowWhen(TRUE); + END_IF; + + IF _State>=UINT#380 AND _State Velocity_ OR + MC_MoveVelocityAcceleration_PV <> Acceleration OR + MC_MoveVelocityDeceleration_PV <> Deceleration OR + MC_MoveVelocityJerk_PV <> Jerk OR + MC_MoveVelocityDirection_PV <> Direction_ ) THEN + IF TRUE THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange := TRUE; + _State := UINT#380; + END_IF; + END_IF; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 OR NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#388; + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 THEN + IF MC_MoveVelocityErrorID = WORD#0 THEN + MC_MoveVelocityErrorID := TO_WORD(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + END_IF; + _State := UINT#389; + ELSIF _AxisReference^.Data.Cycle <> MC_MoveVelocityCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#388; + END_IF; + END_IF; + THIS.CallTimers(TRUE,FALSE); + THIS.AxoMoveVelocity_Task.ThrowWhen(_errorTimer.output ); + DriveStatus.Action.Id := _State; + ELSE + InVelocity := FALSE; + END_IF; + IF THIS.AxoMoveVelocity_Task.DoneReached() AND _State>=UINT#380 AND _State<=UINT#389 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + MC_MoveVelocityErrorID := WORD#0; + _State := UINT#0; + END_IF; + IF THIS.AxoMoveVelocity_Task.RestoreTriggered() AND _State>=UINT#380 AND _State<=UINT#389 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + MC_MoveVelocityErrorID := WORD#0; + _State := UINT#0; + MC_MoveVelocityCycle := ULINT#0; + END_IF; + ErrorID := TO_DINT(MC_MoveVelocityErrorID); + MC_MoveVelocityExecute_PV := Execute; + END_METHOD + + /// + /// This method continuously exerts a torque or force of the specified magnitude. This magnitude is + /// approached using a defined ramp (‘TorqueRamp’), and the method sets the ‘InTorque’ output if the + /// commanded torque level is reached. This method is applicable for force and torque. When there is no external + /// load, force is applicable. Positive torque is in the positive direction of velocity. + /// + VAR INTERNAL + MC_TorqueControlExecute_PV : BOOL; //Execute - previous value + MC_TorqueControlErrorID : DINT; + MC_TorqueControlCycle : ULINT; + MC_TorqueControlContinuousUpdate_SV : BOOL; + MC_TorqueControlTorque_PV : LREAL; + MC_TorqueControlTorqueRamp_PV : LREAL; + MC_TorqueControlPositionLimit_PV : LREAL; + MC_TorqueControlVelocity_PV : LREAL; + MC_TorqueControlAcceleration_PV : LREAL; + MC_TorqueControlDeceleration_PV : LREAL; + MC_TorqueControlJerk_PV : LREAL; + MC_TorqueControlDirection_PV : AXOpen.Components.Abstractions.Drives.eAxoDriveDirection; + END_VAR + METHOD PUBLIC OVERRIDE MC_TorqueControl + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Start the motion at rising edge + ContinuousUpdate: BOOL; // Activate ‘ContinuousUpdate’ - target parameters should be changed during movement + Torque : LREAL; // Value of the torque (Torque or force in technical unit [u]) + TorqueRamp : LREAL; // The maximum time derivative of the set value of the torque or force (in technical unit per sec. [u/s]) + PositionLimit : LREAL; // Position limit + Velocity : LREAL; // Absolute value of the maximum velocity. + Acceleration : LREAL; // Value of the maximum acceleration (acceleration is applicable with same sign of torque and velocity) + Deceleration : LREAL; // Value of the maximum deceleration (deceleration is applicable with opposite signs of torque and velocity) + Jerk : LREAL; // Value of the maximum jerk + Direction : AXOpen.Components.Abstractions.Drives.eAxoDriveDirection; // Enum type (1 of 2 values: PositiveDirection, NegativeDirection or CurrentDirection). Specifies the direction of the torque. (Note: Torque input can be signed value). + END_VAR + VAR_OUTPUT + InTorque : BOOL; // Setpoint value of torque or force equals the commandedvalue + Busy : BOOL; // The method is not finished and new output values are to be expected + Active : BOOL; // Indicates that the method has control on the axis + CommandAborted : BOOL; // ‘Command’ is aborted by another command + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + Torque_ : LREAL; + PositiveDirection_ : BOOL; + TorqueWindowPerCent : LREAL := LREAL#5.0; + TorqueWindowMin : LREAL; + TorqueWindowMax : LREAL; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1530, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1530; + RETURN; + END_IF; + + IF THIS.AxoTorqueControl_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_TorqueControl; + END_IF; + + IF Execute AND NOT MC_TorqueControlExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_TorqueControlCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + Messenger.ActivateOnCondition(ULINT#1531,Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1532, Execute AND Velocity <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1533, Execute AND Acceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1534, Execute AND Deceleration <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1535, Execute AND Jerk <= 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1536, Execute AND Torque = 0, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1537, Execute AND TorqueRamp <= 0, eAxoMessageCategory#ProgrammingError); + + IF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN + Torque_ := Torque; + ELSIF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection THEN + Torque_ := -1 * Torque; + ELSE + RETURN; + END_IF; + PositiveDirection_ := Torque_ > 0; + + IF NOT ContinuousUpdate THEN + MC_TorqueControlContinuousUpdate_SV := FALSE; + END_IF; + + IF _State = UINT#0 THEN + Busy := TRUE; + Active := TRUE; + MC_TorqueControlErrorID := DINT#0; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := FALSE; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SwitchToCM := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SwitchTo0M := TRUE; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; + MC_TorqueControlContinuousUpdate_SV := ContinuousUpdate; + _State := UINT#390; + END_IF; + IF _State = UINT#390 THEN + Busy := TRUE; + Active := TRUE; + IF Velocity > 0 AND Acceleration > 0 AND Deceleration > 0 AND Jerk > 0 AND Torque <> 0 AND TorqueRamp > 0 THEN + _AxisReference^.Outputs.CommandTorque_S_0_0080_0_0 := TO_INT(Torque_ * ScalingConstantRequiredTorque); + _AxisReference^.Outputs.CommandPosition_S_0_0282_0_0 := TO_DINT(PositionLimit * ScalingConstantRequiredPosition); + _AxisReference^.Outputs.CommandVelocity_S_0_0259_0_0 := TO_DINT(Velocity * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor); + _AxisReference^.Outputs.CommandAcceleration_S_0_0260_0_0 := TO_DINT(Acceleration * ScalingConstantRequiredAcceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandDecceleration_S_0_0359_0_0 := TO_DINT(Deceleration * ScalingConstantRequiredDeceleration * _AxisReference^.Data.OverrideAccelerationFactor); + _AxisReference^.Outputs.CommandJerk_S_0_0193_0_0 := TO_DINT(Jerk * ScalingConstantRequiredJerk * _AxisReference^.Data.OverrideJerkFactor); + + MC_TorqueControlPositionLimit_PV := PositionLimit; + MC_TorqueControlVelocity_PV := Velocity; + MC_TorqueControlAcceleration_PV := Acceleration; + MC_TorqueControlDeceleration_PV := Deceleration; + MC_TorqueControlJerk_PV := Jerk; + MC_TorqueControlDirection_PV := Direction; + MC_TorqueControlTorque_PV := Torque; + MC_TorqueControlTorqueRamp_PV := TorqueRamp; + IF PositiveDirection_ AND THIS.ActualPosition >= MC_TorqueControlPositionLimit_PV THEN + _State := UINT#399; + Messenger.Activate( UINT#1538, eAxoMessageCategory#ProgrammingError); + MC_TorqueControlErrorID := DINT#1538; + ELSIF NOT PositiveDirection_ AND THIS.ActualPosition <= MC_TorqueControlPositionLimit_PV THEN + _State := UINT#399; + Messenger.Activate( UINT#1539, eAxoMessageCategory#ProgrammingError); + MC_TorqueControlErrorID := DINT#1539; + ELSE + _State := UINT#391; + END_IF; + END_IF; + END_IF; + //Writing Torque/force control: Ramp value (0x2838:01 / S-0-0822 / --) + IF _State = UINT#391 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#591, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#591; + END_IF; + Busy := TRUE; + Active := TRUE; + _word := TO_WORD(TO_INT(TorqueRamp)); + _data2[0] := _word.%B0; + _data2[1] := _word.%B1; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#822, + length := UINT#2, + record := _data2); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data2); + _State := UINT#392; + ElSIF _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data2); + Messenger.Activate( UINT#1540, eAxoMessageCategory#ProgrammingError); + MC_WriteRealParameterErrorID := WORD#1540; + _State := UINT#399; + END_IF; + END_IF; + //Writing Torque/force control: Ramp time (0x2838:02 / S-0-0823 / --) + IF _State = UINT#392 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#592, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#592; + END_IF; + Busy := TRUE; + Active := TRUE; + _word := TO_WORD(TO_INT(REAL#1.0)); + _data2[0] := _word.%B0; + _data2[1] := _word.%B1; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#823, + length := UINT#2, + record := _data2); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data2); + _State := UINT#393; + ElSIF _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data2); + Messenger.Activate( UINT#1541, eAxoMessageCategory#ProgrammingError); + MC_WriteRealParameterErrorID := WORD#1541; + _State := UINT#399; + END_IF; + END_IF; + //Writing Torque/force control: High velocity limit value (0x60C9:00 / P-0-0421.0.3 / P-0-2249) + IF _State = UINT#393 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#593, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#593; + END_IF; + Busy := TRUE; + Active := TRUE; + _dword := TO_DWORD(TO_DINT(ABS(Velocity) * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor)); + _data4[0] := _dword.%B0; + _data4[1] := _dword.%B1; + _data4[2] := _dword.%B2; + _data4[3] := _dword.%B3; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#6345, + length := UINT#4, + record := _data4); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data4); + _State := UINT#394; + ElSIF _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data4); + Messenger.Activate( UINT#1542, eAxoMessageCategory#ProgrammingError); + MC_WriteRealParameterErrorID := WORD#1542; + _State := UINT#399; + END_IF; + END_IF; + //Writing Torque/force control: Low velocity limit value (0x60C8:00 / P-0-0421.0.4 / P-0-2250) + IF _State = UINT#394 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#594, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#594; + END_IF; + Busy := TRUE; + Active := TRUE; + _dword := TO_DWORD(TO_DINT(-1.0 * ABS(Velocity) * ScalingConstantRequiredVelocity * _AxisReference^.Data.OverrideVelocityFactor)); + _data4[0] := _dword.%B0; + _data4[1] := _dword.%B1; + _data4[2] := _dword.%B2; + _data4[3] := _dword.%B3; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#6346, + length := UINT#4, + record := _data4); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data4); + _State := UINT#395; + ElSIF _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data4); + Messenger.Activate( UINT#1543, eAxoMessageCategory#ProgrammingError); + MC_WriteRealParameterErrorID := WORD#1543; + _State := UINT#399; + END_IF; + END_IF; + //Executing movement + IF _State = UINT#395 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#595, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#595; + END_IF; + Busy := TRUE; + Active := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit0 := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit1 := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.CommandOperationModeBit2 := FALSE; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1 AND + NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2 THEN + _State := UINT#396; + END_IF; + END_IF; + IF PositiveDirection_ THEN + TorqueWindowMax := Torque_ + (Torque_ * TorqueWindowPerCent / REAL#100.0); + TorqueWindowMin := Torque_ - (Torque_ * TorqueWindowPerCent / REAL#100.0); + ELSE + TorqueWindowMax := Torque_ - (Torque_ * TorqueWindowPerCent / REAL#100.0); + TorqueWindowMin := Torque_ + (Torque_ * TorqueWindowPerCent / REAL#100.0); + END_IF; + InTorque := ActualTorque >= TorqueWindowMin AND ActualTorque <= TorqueWindowMax; + IF _State = UINT#396 THEN + IF InTorque AND NOT MC_TorqueControlContinuousUpdate_SV THEN + _State := UINT#397; + END_IF; + END_IF; + IF _State = UINT#397 THEN + MC_TorqueControlCycle := ULINT#0; + END_IF; + IF _State = UINT#398 THEN + CommandAborted := TRUE; + AxoTorqueControl_Task.Abort(); + END_IF; + IF _State = UINT#399 THEN + MC_TorqueControlCycle := ULINT#0; + Error := TRUE; + AxoTorqueControl_Task.ThrowWhen(TRUE); + END_IF; + + IF (_State>=UINT#395 AND _State <= UINT#397) THEN + IF ( PositiveDirection_ AND ActualPosition > PositionLimit) OR + (NOT PositiveDirection_ AND ActualPosition < PositionLimit) THEN + Messenger.Activate( UINT#1542, eAxoMessageCategory#ProgrammingError); + MC_TorqueControlErrorID := DINT#1542; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; + _State := UINT#399; + END_IF; + END_IF; + + IF _State>=UINT#390 AND _State Torque OR + MC_TorqueControlTorqueRamp_PV <> TorqueRamp OR + MC_TorqueControlPositionLimit_PV <> PositionLimit OR + MC_TorqueControlVelocity_PV <> Velocity OR + MC_TorqueControlAcceleration_PV <> Acceleration OR + MC_TorqueControlDeceleration_PV <> Deceleration OR + MC_TorqueControlJerk_PV <> Jerk OR + MC_TorqueControlDirection_PV <> Direction ) THEN + IF TRUE THEN + _State := UINT#390; + END_IF; + END_IF; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 OR NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _State := UINT#398; + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 THEN + IF MC_TorqueControlErrorID = DINT#0 THEN + MC_TorqueControlErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + END_IF; + _State := UINT#399; + ELSIF _AxisReference^.Data.Cycle <> MC_TorqueControlCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#398; + END_IF; + END_IF; + ELSE + InTorque := FALSE; + END_IF; + + IF THIS.AxoTorqueControl_Task.DoneReached() AND _State>=UINT#390 AND _State<=UINT#399 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_TorqueControlErrorID := DINT#0; + // MC_TorqueControlCycle := ULINT#0; + _State := UINT#0; + END_IF; + + IF THIS.AxoTorqueControl_Task.RestoreTriggered() AND _State>=UINT#390 AND _State<=UINT#399 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_TorqueControlErrorID := DINT#0; + MC_TorqueControlCycle := ULINT#0; + _State := UINT#0; + END_IF; + + ErrorID := MC_TorqueControlErrorID; + MC_TorqueControlExecute_PV := Execute; + END_METHOD + + /// + /// This method shifts the coordinate system of an axis by manipulating both the set-point position as well as the + /// actual position of an axis with the same value without any movement caused. (Re-calibration with same following error). + /// This can be used for instance for a reference situation. This method can also be used during motion without changing + /// the commanded position, which is now positioned in the shifted coordinate system. + /// + VAR INTERNAL + MC_SetPositionExecute_PV : BOOL; //Execute - previous value + MC_SetPositionErrorID : DINT; + MC_SetPositionCycle : ULINT; + MC_SetPositionActualPosition : LINT; + MC_SetPositionPowerStatusPV : BOOL; + END_VAR + METHOD PUBLIC OVERRIDE MC_SetPosition + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Start setting position in axis + Position : LREAL; // Position unit [u] (Means ‘Distance’ if ‘Relative’= TRUE) + Relative : BOOL; // ‘Relative’ distance if True, ‘Absolute’ position if False (= Default) + ExecutionMode : AXOpen.Components.Abstractions.Drives.eAxoExecutionMode; // Defines the chronological sequence of the method. + END_VAR + VAR_OUTPUT + Done : BOOL; // ‘Position’ has new value + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1550, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1550; + RETURN; + END_IF; + + IF THIS.AxoSetPosition_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_SetPosition; + END_IF; + + IF Execute AND NOT MC_SetPositionExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_SetPositionCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + IF _State = UINT#0 THEN + Busy := TRUE; + MC_SetPositionErrorID := DINT#0; + DriveStatus.Error.Id := UINT#0; + TaskMessenger.Restore(); + THIS.CallTimers(FALSE); + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.IPOSYNC := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := FALSE; + MC_SetPositionPowerStatusPV := _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 AND _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0; + _State := UINT#400; + END_IF; + // Power off + IF _State = UINT#400 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#600, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#600; + END_IF; + Busy := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := FALSE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := FALSE; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 THEN + _State := UINT#401; + RETURN; + END_IF; + END_IF; + // Reseting InReference flag + IF _State = UINT#401 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#601, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#601; + END_IF; + Busy := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := TRUE; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + _State := UINT#402; + RETURN; + END_IF; + END_IF; + //Writing Homing configuration ENC_1: Home offset (0x607C:00 / S-0-0052 / --) + IF _State = UINT#402 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#602, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#602; + END_IF; + Busy := TRUE; + _dword := TO_DWORD(TO_DINT(Position * ScalingConstantRequiredPosition)); + _data4[0] := _dword.%B0; + _data4[1] := _dword.%B1; + _data4[2] := _dword.%B2; + _data4[3] := _dword.%B3; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#52, + length := UINT#4, + record := _data4); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#403; + ElSIF _WriteRecord.error THEN + Messenger.Activate( UINT#1551, eAxoMessageCategory#ProgrammingError); + MC_HomeErrorID := DINT#1551; + _WriteRecord(request := FALSE, record := _data4); + _State := UINT#609; + END_IF; + END_IF; + IF _State = UINT#403 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#603, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#603; + END_IF; + Busy := TRUE; + _WriteRecord(request := FALSE, record := _data4); + IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#404; + END_IF; + END_IF; + IF _State = UINT#404 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#604, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#604; + END_IF; + Busy := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := TRUE; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; + IF MC_SetPositionPowerStatusPV THEN + _State := UINT#405; + ELSE + _State := UINT#407; + END_IF; + END_IF; + END_IF; + IF _State = UINT#405 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#605, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#605; + END_IF; + Busy := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := TRUE; + _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := TRUE; + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; + _State := UINT#407; + END_IF; + END_IF; + IF _State = UINT#407 THEN + Done := TRUE; + MC_SetPositionCycle := ULINT#0; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + END_IF; + IF _State = UINT#408 THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + MC_SetPositionCycle := ULINT#0; + AxoSetPosition_Task.Abort(); + END_IF; + IF _State = UINT#409 THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + MC_SetPositionCycle := ULINT#0; + AxoSetPosition_Task.ThrowWhen(TRUE); + Error := TRUE; + END_IF; + + IF _State>=UINT#400 AND _State MC_SetPositionCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#408; + END_IF; + END_IF; + THIS.CallTimers(TRUE,FALSE); + THIS.AxoHome_Task.ThrowWhen(_errorTimer.output ); + DriveStatus.Action.Id := _State; + END_IF; + + IF THIS.AxoSetPosition_Task.DoneReached() AND _State>=UINT#400 AND _State<=UINT#409 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_SetPositionErrorID := DINT#0; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _State := UINT#0; + END_IF; + IF THIS.AxoSetPosition_Task.RestoreTriggered() AND _State>=UINT#400 AND _State<=UINT#409 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_SetPositionErrorID := DINT#0; + MC_SetPositionCycle := ULINT#0; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.CancelReferencePoint := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _State := UINT#0; + END_IF; + + ErrorID := MC_SetPositionErrorID; + MC_SetPositionExecute_PV := Execute; + END_METHOD + + /// + /// This method sets the values of override for the whole axis, and all functions that are working on that axis. The override + /// parameters contribute as a factor to the calculation of the commanded velocity, acceleration and jerk of the motion. + /// + METHOD PUBLIC OVERRIDE MC_SetOverride + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // If SET, it writes the value of the override factor continuously. If RESET it should keep the last value. + VelocityFactor : LREAL; // New override factor for the velocity + AccelerationFactor: LREAL; // New override factor for the acceleration/deceleration + JerkFactor : LREAL; // New override factor for the jer + END_VAR + VAR_OUTPUT + Enabled : BOOL; // Signals that the override factor(s) is (are) set successfully + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1570, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1570; + RETURN; + END_IF; + + Messenger.ActivateOnCondition(ULINT#1571, Enable AND (VelocityFactor <= 0.0 OR VelocityFactor >= 2.0), eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1572, Enable AND (AccelerationFactor <= 0.0 OR AccelerationFactor > 1.0), eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1573, Enable AND (JerkFactor <= 0.0 OR JerkFactor > 1.0), eAxoMessageCategory#ProgrammingError); + + IF Enable THEN + Busy := TRUE; + IF VelocityFactor <= 0.0 OR VelocityFactor >= 2.0 OR AccelerationFactor <= 0.0 OR AccelerationFactor > 1.0 OR JerkFactor <= 0.0 OR JerkFactor > 1.0 THEN + Error := TRUE; + ELSE + _AxisReference^.Data.OverrideVelocityFactor := VelocityFactor; + _AxisReference^.Data.OverrideAccelerationFactor := AccelerationFactor; + _AxisReference^.Data.OverrideJerkFactor := JerkFactor; + Enabled := TRUE; + END_IF; + ELSE + _AxisReference^.Data.OverrideVelocityFactor := 1.0; + _AxisReference^.Data.OverrideAccelerationFactor := 1.0; + _AxisReference^.Data.OverrideJerkFactor := 1.0; + END_IF; + END_METHOD + + /// + /// This method returns the value of a vendor specific parameter. The returned Value has to be converted to Real + /// if necessary. If not possible, the vendor has to supply a vendor specific method to read the parameter. + /// + VAR INTERNAL + MC_ReadParameterEnable_PV : BOOL := FALSE; //Enable - previous value + MC_ReadParameterErrorID : DINT; + MC_ReadParameterCycle : ULINT; + MC_ReadParameterValue : LINT; + MC_ReadParameterValid : BOOL; + END_VAR + METHOD PUBLIC OVERRIDE MC_ReadParameter + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + ParameterNumber : DINT; // Number of the parameter. One can also use symbolic parameter names which are declared as VAR CONST. + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + Value : LINT; // Value of the specified parameter in the datatype, as specified by the vendor + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1580, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1580; + RETURN; + END_IF; + + IF Enable AND NOT MC_ReadParameterEnable_PV AND _State = UINT#0 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_ReadParameter; + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_ReadParameterCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Enable THEN + IF _State = UINT#0 THEN + Busy := TRUE; + MC_ReadParameterErrorID := DINT#0; + _State := UINT#410; + END_IF; + IF _State = UINT#410 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#610, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#610; + END_IF; + Busy := TRUE; + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := ParameterNumber, + maxLength := UINT#8, + record := _data8); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _lword.%B0 := _data8[0]; + _lword.%B1 := _data8[1]; + _lword.%B2 := _data8[2]; + _lword.%B3 := _data8[3]; + _lword.%B4 := _data8[4]; + _lword.%B5 := _data8[5]; + _lword.%B6 := _data8[6]; + _lword.%B7 := _data8[7]; + MC_ReadParameterValid := TRUE; + MC_ReadParameterValue :=TO_LINT(_lword); + _State := UINT#411; + END_IF; + IF _ReadRecord.error THEN + _ReadRecord(request := FALSE, record := _data8); + Messenger.Activate( UINT#1581, eAxoMessageCategory#ProgrammingError); + MC_ReadParameterErrorID := DINT#1581; + _State := UINT#419; + END_IF; + END_IF; + IF _State = UINT#411 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#611, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#611; + END_IF; + Busy := TRUE; + _ReadRecord(request := FALSE, record := _data8); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#410; + END_IF; + END_IF; + IF _State = UINT#419 THEN + Error := TRUE; + END_IF; + IF _State>=UINT#410 AND _State MC_ReadParameterCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#419; + END_IF; + END_IF; + END_IF; + + IF NOT Enable AND MC_ReadParameterEnable_PV AND _State>=UINT#410 AND _State<=UINT#419 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_ReadParameterErrorID := DINT#0; + MC_ReadParameterCycle := ULINT#0; + MC_ReadParameterValid := FALSE; + MC_ReadParameterValue := LINT#0; + _ReadRecord(request := FALSE, record := _data8); + _State := UINT#0; + END_IF; + + ErrorID := MC_ReadParameterErrorID; + Valid := MC_ReadParameterValid; + Value := MC_ReadParameterValue; + MC_ReadParameterEnable_PV := Enable; + END_METHOD + + /// + /// This method returns the value of a vendor specific parameter with datatype REAL. + /// + VAR INTERNAL + MC_ReadRealParameterEnable_PV : BOOL := FALSE; //Enable - previous value + MC_ReadRealParameterErrorID : DINT; + MC_ReadRealParameterCycle : ULINT; + MC_ReadRealParameterValue : REAL; + MC_ReadRealParameterValid : BOOL; + END_VAR + METHOD PUBLIC OVERRIDE MC_ReadRealParameter + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + ParameterNumber : DINT; // Number of the parameter. One can also use symbolic parameter names which are declared as VAR CONST. + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + Value : REAL; // Value of the specified parameter in the datatype, as specified by the vendor + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1590, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1590; + RETURN; + END_IF; + + IF Enable AND NOT MC_ReadRealParameterEnable_PV AND _State = UINT#0 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_ReadRealParameter; + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_ReadRealParameterCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Enable THEN + IF _State = UINT#0 THEN + Busy := TRUE; + MC_ReadRealParameterErrorID := DINT#0; + _State := UINT#420; + END_IF; + IF _State = UINT#420 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#620, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#620; + END_IF; + Busy := TRUE; + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := ParameterNumber, + maxLength := UINT#4, + record := _data4); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _dword.%B0 := _data4[0]; + _dword.%B1 := _data4[1]; + _dword.%B2 := _data4[2]; + _dword.%B3 := _data4[3]; + MC_ReadRealParameterValid := TRUE; + MC_ReadRealParameterValue :=TO_REAL(TO_DINT(_dword)); + _State := UINT#621; + END_IF; + IF _ReadRecord.error THEN + _ReadRecord(request := FALSE, record := _data4); + Messenger.Activate( UINT#1591, eAxoMessageCategory#ProgrammingError); + MC_ReadRealParameterErrorID := DINT#1591; + _State := UINT#629; + END_IF; + END_IF; + IF _State = UINT#421 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#621, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#621; + END_IF; + Busy := TRUE; + _ReadRecord(request := FALSE, record := _data4); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#420; + END_IF; + END_IF; + IF _State = UINT#429 THEN + Error := TRUE; + END_IF; + + IF _State>=UINT#420 AND _State MC_ReadRealParameterCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#429; + END_IF; + END_IF; + END_IF; + + IF NOT Enable AND MC_ReadRealParameterEnable_PV AND _State>=UINT#420 AND _State<=UINT#429 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_ReadRealParameterErrorID := DINT#0; + MC_ReadRealParameterCycle := ULINT#0; + MC_ReadRealParameterValid := FALSE; + MC_ReadRealParameterValue := REAL#0.0; + _State := UINT#0; + END_IF; + + ErrorID := MC_ReadRealParameterErrorID; + Valid := MC_ReadRealParameterValid; + Value := MC_ReadRealParameterValue; + MC_ReadRealParameterEnable_PV := Enable; + END_METHOD + + /// + /// This method returns the value of a vendor specific parameter with datatype BOOL. + /// + VAR INTERNAL + MC_ReadBoolParameterEnable_PV : BOOL := FALSE; //Enable - previous value + MC_ReadBoolParameterErrorID : WORD; + MC_ReadBoolParameterCycle : ULINT; + MC_ReadBoolParameterValue : BOOL; + MC_ReadBoolParameterValid : BOOL; + END_VAR + METHOD PUBLIC OVERRIDE MC_ReadBoolParameter + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + ParameterNumber : DINT; // Number of the parameter. One can also use symbolic parameter names which are declared as VAR CONST. + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + Value : BOOL; // Value of the specified parameter in the datatype, as specified by the vendor + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + RETURN; + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1600, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1600; + RETURN; + END_IF; + + IF Enable AND NOT MC_ReadBoolParameterEnable_PV AND _State = UINT#0 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_ReadBoolParameter; + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_ReadBoolParameterCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Enable THEN + IF _State = UINT#0 THEN + Busy := TRUE; + MC_ReadBoolParameterErrorID := WORD#16#0000; + _State := UINT#430; + END_IF; + IF _State = UINT#430 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#630, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#630; + END_IF; + Busy := TRUE; + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := ParameterNumber, + maxLength := UINT#2, + record := _data2); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + MC_ReadBoolParameterValid := TRUE; + MC_ReadBoolParameterValue := _data2[0].%X0; + _State := UINT#431; + END_IF; + IF _ReadRecord.error THEN + _ReadRecord(request := FALSE, record := _data2); + Messenger.Activate( UINT#1601, eAxoMessageCategory#ProgrammingError); + MC_ReadBoolParameterErrorID := WORD#1601; + _State := UINT#439; + END_IF; + END_IF; + IF _State = UINT#431 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#631, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#631; + END_IF; + Busy := TRUE; + _ReadRecord(request := FALSE, record := _data2); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#430; + END_IF; + END_IF; + IF _State = UINT#439 THEN + Error := TRUE; + END_IF; + + IF _State>=UINT#430 AND _State MC_ReadBoolParameterCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#439; + END_IF; + END_IF; + END_IF; + + IF NOT Enable AND MC_ReadBoolParameterEnable_PV AND _State>=UINT#430 AND _State<=UINT#439 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_ReadBoolParameterErrorID := WORD#0; + MC_ReadBoolParameterCycle := ULINT#0; + MC_ReadBoolParameterValid := FALSE; + MC_ReadBoolParameterValue := FALSE; + _State := UINT#0; + END_IF; + + ErrorID := TO_DINT(MC_ReadBoolParameterErrorID); + Valid := MC_ReadBoolParameterValid; + Value := MC_ReadBoolParameterValue; + MC_ReadBoolParameterEnable_PV := Enable; + + END_METHOD + + /// + /// This method modifies the value of a vendor specific parameter. + /// + VAR INTERNAL + MC_WriteParameterExecute_PV : BOOL := FALSE; //Enable - previous value + MC_WriteParameterErrorID : WORD; + MC_WriteParameterCycle : ULINT; + END_VAR + METHOD PUBLIC OVERRIDE MC_WriteParameter + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Write the value of the parameter at rising edge + ParameterNumber : DINT; // Number of the parameter (correspondence between number andparameter is specified in the table above) + Value : LINT; // New value of the specified parameter + ExecutionMode : AXOpen.Components.Abstractions.Drives.eAxoExecutionMode; // Defines the chronological sequence of the method. + END_VAR + VAR_OUTPUT + Done : BOOL; // Parameter successfully written + Busy : BOOL; // The method is not finished and new output values are to be expected. + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1610, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1610; + RETURN; + END_IF; + + IF THIS.AxoWriteParameter_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_WriteParameter; + END_IF; + + IF Execute AND NOT MC_WriteParameterExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_WriteParameterCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + IF _State = UINT#0 THEN + Busy := TRUE; + THIS.CallTimers(FALSE); + DriveStatus.Error.Id := UINT#0; + TaskMessenger.Restore(); + _State := UINT#440; + END_IF; + IF _State = UINT#440 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#640, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#640; + END_IF; + Busy := TRUE; + _lword := TO_LWORD(Value); + _data8[0] := _lword.%B0; + _data8[1] := _lword.%B1; + _data8[2] := _lword.%B2; + _data8[3] := _lword.%B3; + _data8[4] := _lword.%B4; + _data8[5] := _lword.%B5; + _data8[6] := _lword.%B6; + _data8[7] := _lword.%B7; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := ParameterNumber, + length := UINT#8, + record := _data8); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#441; + ElSIF _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data8); + Messenger.Activate( UINT#1611, eAxoMessageCategory#ProgrammingError); + MC_WriteParameterErrorID := WORD#1611; + _State := UINT#449; + END_IF; + END_IF; + IF _State = UINT#441 THEN + _WriteRecord(request := FALSE, record := _data8); + IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#447; + END_IF; + END_IF; + IF _State = UINT#447 THEN + Done := TRUE; + MC_WriteParameterCycle := ULINT#0; + END_IF; + IF _State = UINT#449 THEN + MC_WriteParameterCycle := ULINT#0; + Error := TRUE; + END_IF; + + IF _State>=UINT#440 AND _State MC_WriteParameterCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#449; + END_IF; + END_IF; + END_IF; + + IF THIS.AxoWriteParameter_Task.DoneReached() AND _State>=UINT#440 AND _State<=UINT#449 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_WriteParameterErrorID := WORD#0; + // MC_WriteParameterCycle := ULINT#0; + _State := UINT#0; + END_IF; + + IF THIS.AxoWriteParameter_Task.RestoreTriggered() AND _State>=UINT#440 AND _State<=UINT#449 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_WriteParameterErrorID := WORD#0; + MC_WriteParameterCycle := ULINT#0; + _State := UINT#0; + END_IF; + + ErrorID := TO_DINT(MC_WriteParameterErrorID); + MC_WriteParameterExecute_PV := Execute; + END_METHOD + + /// + /// This method modifies the value of a vendor specific parameter of type Real. + /// + VAR INTERNAL + MC_WriteRealParameterExecute_PV : BOOL := FALSE; //Enable - previous value + MC_WriteRealParameterErrorID : WORD; + MC_WriteRealParameterCycle : ULINT; + END_VAR + METHOD PUBLIC OVERRIDE MC_WriteRealParameter + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Write the value of the parameter at rising edge + ParameterNumber : DINT; // Number of the parameter (correspondence between number andparameter is specified in the table above) + Value : REAL; // New value of the specified parameter + ExecutionMode : AXOpen.Components.Abstractions.Drives.eAxoExecutionMode; // Defines the chronological sequence of the method. + END_VAR + VAR_OUTPUT + Done : BOOL; // Parameter successfully written + Busy : BOOL; // The method is not finished and new output values are to be expected. + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1620, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1620; + RETURN; + END_IF; + + IF THIS.AxoWriteRealParameter_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_WriteRealParameter; + END_IF; + + IF Execute AND NOT MC_WriteRealParameterExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_WriteRealParameterCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + IF _State = UINT#0 THEN + Busy := TRUE; + _State := UINT#450; + END_IF; + IF _State = UINT#450 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#650, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#650; + END_IF; + Busy := TRUE; + _dword := TO_DWORD(TO_DINT(Value)); + _data4[0] := _dword.%B0; + _data4[1] := _dword.%B1; + _data4[2] := _dword.%B2; + _data4[3] := _dword.%B3; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := ParameterNumber, + length := UINT#4, + record := _data4); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#451; + ElSIF _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data4); + Messenger.Activate( UINT#1621, eAxoMessageCategory#ProgrammingError); + MC_WriteRealParameterErrorID := WORD#1621; + _State := UINT#459; + END_IF; + END_IF; + IF _State = UINT#451 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#651, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#651; + END_IF; + Busy := TRUE; + _WriteRecord(request := FALSE, record := _data4); + IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#457; + END_IF; + END_IF; + IF _State = UINT#457 THEN + Done := TRUE; + MC_WriteRealParameterCycle := ULINT#0; + END_IF; + IF _State = UINT#459 THEN + MC_WriteRealParameterCycle := ULINT#0; + Error := TRUE; + END_IF; + + IF _State>=UINT#450 AND _State MC_WriteRealParameterCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#459; + END_IF; + END_IF; + END_IF; + + IF THIS.AxoWriteRealParameter_Task.DoneReached() AND _State>=UINT#450 AND _State<=UINT#459 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_WriteRealParameterErrorID := WORD#0; + // MC_WriteRealParameterCycle := ULINT#0; + _State := UINT#0; + END_IF; + + IF THIS.AxoWriteRealParameter_Task.RestoreTriggered() AND _State>=UINT#450 AND _State<=UINT#459 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_WriteRealParameterErrorID := WORD#0; + MC_WriteRealParameterCycle := ULINT#0; + _State := UINT#0; + END_IF; + + ErrorID := TO_DINT(MC_WriteRealParameterErrorID); + MC_WriteRealParameterExecute_PV := Execute; + END_METHOD + + /// + /// This method modifies the value of a vendor specific parameter of type BOOL. + /// + VAR INTERNAL + MC_WriteBoolParameterExecute_PV : BOOL := FALSE; //Enable - previous value + MC_WriteBoolParameterErrorID : WORD; + MC_WriteBoolParameterCycle : ULINT; + END_VAR + METHOD PUBLIC OVERRIDE MC_WriteBoolParameter + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Write the value of the parameter at rising edge + ParameterNumber : DINT; // Number of the parameter (correspondence between number andparameter is specified in the table above) + Value : BOOL; // New value of the specified parameter + ExecutionMode : AXOpen.Components.Abstractions.Drives.eAxoExecutionMode; // Defines the chronological sequence of the method. + END_VAR + VAR_OUTPUT + Done : BOOL; // Parameter successfully written + Busy : BOOL; // The method is not finished and new output values are to be expected. + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1630, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1630; + RETURN; + END_IF; + + IF THIS.AxoWriteBoolParameter_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_WriteBoolParameter; + END_IF; + + IF Execute AND NOT MC_WriteBoolParameterExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_WriteBoolParameterCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + IF _State = UINT#0 THEN + Busy := TRUE; + _State := UINT#460; + END_IF; + IF _State = UINT#460 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#660, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#660; + END_IF; + Busy := TRUE; + _dword := TO_DWORD(TO_DINT(Value)); + _data2[0].%X0 := Value; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := ParameterNumber, + length := UINT#2, + record := _data2); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#461; + ElSIF _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data2); + Messenger.Activate( UINT#1631, eAxoMessageCategory#ProgrammingError); + MC_WriteBoolParameterErrorID := WORD#1631; + _State := UINT#469; + END_IF; + END_IF; + IF _State = UINT#461 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#661, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#661; + END_IF; + Busy := TRUE; + _WriteRecord(request := FALSE, record := _data2); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#467; + END_IF; + END_IF; + IF _State = UINT#467 THEN + Done := TRUE; + MC_WriteBoolParameterCycle := ULINT#0; + END_IF; + IF _State = UINT#469 THEN + MC_WriteBoolParameterCycle := ULINT#0; + Error := TRUE; + END_IF; + + IF _State>=UINT#460 AND _State MC_WriteBoolParameterCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#469; + END_IF; + END_IF; + END_IF; + + IF THIS.AxoWriteBoolParameter_Task.DoneReached() AND _State>=UINT#460 AND _State<=UINT#469 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_WriteBoolParameterErrorID := WORD#0; + // MC_WriteBoolParameterCycle := ULINT#0; + _State := UINT#0; + END_IF; + + IF THIS.AxoWriteBoolParameter_Task.RestoreTriggered() AND _State>=UINT#460 AND _State<=UINT#469 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_WriteBoolParameterErrorID := WORD#0; + MC_WriteBoolParameterCycle := ULINT#0; + _State := UINT#0; + END_IF; + + ErrorID := TO_DINT(MC_WriteBoolParameterErrorID); + MC_WriteBoolParameterExecute_PV := Execute; + END_METHOD + + /// + /// This method gives access to the value of the input, referenced by the datatype MC_INPUT_REF. + /// It provides the value of the referenced input (BOOL). + /// + VAR INTERNAL + MC_ReadDigitalInputEnable_PV : BOOL := FALSE; //Enable - previous value + MC_ReadDigitalInputErrorID : WORD; + MC_ReadDigitalInputCycle : ULINT; + MC_ReadDigitalInputValue : BOOL; + MC_ReadDigitalInputValid : BOOL; + END_VAR + METHOD PUBLIC OVERRIDE MC_ReadDigitalInput + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the selected input signal continuously while enabled + InputNumber : INT; // Selects the input. Can be part of MC_INPUT_REF, if only one single input is referenced. + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + Value : BOOL; // The value of the selected input signal + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1640, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1640; + RETURN; + END_IF; + + IF(InputNumber < 0 OR InputNumber >256) THEN // TODO check the min max input number + Messenger.Activate( UINT#1641, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1641; + RETURN; + END_IF; + + IF Enable AND NOT MC_ReadDigitalInputEnable_PV AND _State = UINT#0 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_ReadDigitalInput; + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_ReadDigitalInputCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Enable THEN + IF _State = UINT#0 THEN + Busy := TRUE; + MC_ReadDigitalInputErrorID := WORD#16#0000; + _State := UINT#470; + END_IF; + IF _State = UINT#470 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#670, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#670; + END_IF; + Busy := TRUE; + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#4403, //P-0-0307.0.0 16#1000 + 307 = 4096+307=4403 + maxLength := UINT#4, + record := _data4); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _dword.%B0 := _data4[0]; + _dword.%B1 := _data4[1]; + _dword.%B2 := _data4[2]; + _dword.%B3 := _data4[3]; + MC_ReadDigitalInputValid := TRUE; + MC_ReadDigitalInputValue := System.BitAccess.GetBit(_dword, TO_USINT(InputNumber)); + _State := UINT#471; + END_IF; + IF _ReadRecord.error THEN + _ReadRecord(request := FALSE, record := _data4); + Messenger.Activate( UINT#1642, eAxoMessageCategory#ProgrammingError); + MC_ReadDigitalInputErrorID := WORD#1642; + _State := UINT#479; + END_IF; + END_IF; + IF _State = UINT#471 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#671, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#671; + END_IF; + Busy := TRUE; + _ReadRecord(request := FALSE, record := _data4); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#470; + END_IF; + END_IF; + IF _State = UINT#479 THEN + Error := TRUE; + END_IF; + + IF _State>=UINT#470 AND _State MC_ReadDigitalInputCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#479; + END_IF; + END_IF; + END_IF; + + IF NOT Enable AND MC_ReadDigitalInputEnable_PV AND _State>=UINT#470 AND _State<=UINT#479 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_ReadDigitalInputErrorID := WORD#0; + MC_ReadDigitalInputCycle := ULINT#0; + MC_ReadDigitalInputValid := FALSE; + MC_ReadDigitalInputValue := FALSE; + _State := UINT#0; + END_IF; + + ErrorID := TO_DINT(MC_ReadDigitalInputErrorID); + Valid := MC_ReadDigitalInputValid; + Value := MC_ReadDigitalInputValue; + MC_ReadDigitalInputEnable_PV := Enable; + END_METHOD + + /// + /// This method provides access to the value of a digital output, referenced by the datatype MC_OUTPUT_REF. + /// It provides the value of the referenced output (BOOL). + /// + VAR INTERNAL + MC_ReadDigitalOutputEnable_PV : BOOL := FALSE; //Enable - previous value + MC_ReadDigitalOutputErrorID : WORD; + MC_ReadDigitalOutputCycle : ULINT; + MC_ReadDigitalOutputValue : BOOL; + MC_ReadDigitalOutputValid : BOOL; + END_VAR + METHOD PUBLIC OVERRIDE MC_ReadDigitalOutput + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the selected output signal continuously while enabled + OutputNumber : INT; // Selects the output. Can be part of MC_OUTPUT_REF, if only one single output is referenced. + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + Value : BOOL; // The value of the selected output signal + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1650, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1650; + RETURN; + END_IF; + + IF(OutputNumber < 0 OR OutputNumber >256) THEN // TODO check the min max input number + Messenger.Activate( UINT#1651, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1651; + RETURN; + END_IF; + + IF Enable AND NOT MC_ReadDigitalOutputEnable_PV AND _State = UINT#0 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_ReadDigitalOutput; + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_ReadDigitalOutputCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Enable THEN + IF _State = UINT#0 THEN + Busy := TRUE; + MC_ReadDigitalOutputErrorID := WORD#16#0000; + _State := UINT#480; + END_IF; + IF _State = UINT#480 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#680, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#680; + END_IF; + Busy := TRUE; + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#4409, //P-0-0313.0.0 16#1000 + 313 = 4096+313=4409 + maxLength := UINT#4, + record := _data4); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + _dword.%B0 := _data4[0]; + _dword.%B1 := _data4[1]; + _dword.%B2 := _data4[2]; + _dword.%B3 := _data4[3]; + MC_ReadDigitalOutputValid := TRUE; + MC_ReadDigitalOutputValue := System.BitAccess.GetBit(_dword, TO_USINT(OutputNumber)); + _State := UINT#481; + END_IF; + IF _ReadRecord.error THEN + _ReadRecord(request := FALSE, record := _data4); + Messenger.Activate( UINT#1652, eAxoMessageCategory#ProgrammingError); + MC_ReadDigitalOutputErrorID := WORD#1652; + _State := UINT#489; + END_IF; + END_IF; + IF _State = UINT#481 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#681, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#681; + END_IF; + Busy := TRUE; + _ReadRecord(request := FALSE, record := _data4); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#480; + END_IF; + END_IF; + IF _State = UINT#489 THEN + Error := TRUE; + END_IF; + + IF _State>=UINT#480 AND _State MC_ReadDigitalOutputCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#489; + END_IF; + END_IF; + END_IF; + + IF NOT Enable AND MC_ReadDigitalOutputEnable_PV AND _State>=UINT#480 AND _State<=UINT#489 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_ReadDigitalOutputErrorID := WORD#0; + MC_ReadDigitalOutputCycle := ULINT#0; + MC_ReadDigitalOutputValid := FALSE; + MC_ReadDigitalOutputValue := FALSE; + _State := UINT#0; + END_IF; + + ErrorID := TO_DINT(MC_ReadDigitalOutputErrorID); + Valid := MC_ReadDigitalOutputValid; + Value := MC_ReadDigitalOutputValue; + MC_ReadDigitalOutputEnable_PV := Enable; + END_METHOD + + /// + /// This method writes a value to the output referenced by the argument ‘Output’ once (with rising edge of Execute) + /// + VAR INTERNAL + MC_WriteDigitalOutputExecute_PV : BOOL := FALSE; //Enable - previous value + MC_WriteDigitalOutputErrorID : WORD; + MC_WriteDigitalOutputCycle : ULINT; + MC_WriteDigitalOutputParameterPV : DWORD; + END_VAR + METHOD PUBLIC OVERRIDE MC_WriteDigitalOutput + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Write the value of the selected output + OutputNumber : INT; // Selects the output. Can be part of MC_OUTPUT_REF, if only one single output is referenced. + Value : BOOL; // The value of the selected output signal + ExecutionMode : AXOpen.Components.Abstractions.Drives.eAxoExecutionMode; // Defines the chronological sequence of the method. + END_VAR + VAR_OUTPUT + Done : BOOL; // Writing of the output signal value is done + Busy : BOOL; // The method is not finished and new output values are to be expected. + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + Valid_ : BOOL; + Error_ : BOOL; + ErrorID_ : WORD; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1660, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1660; + RETURN; + END_IF; + + IF(OutputNumber < 0 OR OutputNumber >256) THEN // TODO check the min max input number + Messenger.Activate( UINT#1661, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1661; + RETURN; + END_IF; + + IF THIS.AxoWriteDigitalOutput_Task.StartTriggered() THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_WriteDigitalOutput; + END_IF; + + IF Execute AND NOT MC_WriteDigitalOutputExecute_PV AND _State = UINT#0 THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_WriteDigitalOutputCycle := _AxisReference^.Data.Cycle ; + END_IF; + + IF Execute THEN + IF _State = UINT#0 THEN + Busy := TRUE; + _State := UINT#490; + END_IF; + IF _State = UINT#490 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#690, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#690; + END_IF; + Busy := TRUE; + _ReadRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#4409, //P-0-0313.0.0 16#1000 + 313 = 4096+313=4409 + maxLength := UINT#4, + record := _data4); + IF NOT _ReadRecord.busy AND _ReadRecord.valid AND NOT _ReadRecord.error THEN + MC_WriteDigitalOutputParameterPV.%B0 := _data4[0]; + MC_WriteDigitalOutputParameterPV.%B1 := _data4[1]; + MC_WriteDigitalOutputParameterPV.%B2 := _data4[2]; + MC_WriteDigitalOutputParameterPV.%B3 := _data4[3]; + _State := UINT#491; + END_IF; + IF _ReadRecord.error THEN + Messenger.Activate( UINT#1662, eAxoMessageCategory#ProgrammingError); + MC_WriteDigitalOutputErrorID := WORD#1662; + _State := UINT#499; + END_IF; + END_IF; + IF _State = UINT#491 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#691, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#691; + END_IF; + Busy := TRUE; + _ReadRecord(request := FALSE, record := _data8); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := UINT#492; + END_IF; + END_IF; + IF _State = UINT#492 THEN + IF _infoTimer.output THEN + TaskMessenger.Activate( UINT#692, eAxoMessageCategory#Warning); + DriveStatus.Error.Id := UINT#692; + END_IF; + Busy := TRUE; + MC_WriteDigitalOutputParameterPV := System.BitAccess.SetBit(value := MC_WriteDigitalOutputParameterPV,bitValue := Value,index := TO_USINT(OutputNumber)); + _State := UINT#493; + END_IF; + IF _State = UINT#493 THEN + Busy := TRUE; + _data4[0] := MC_WriteDigitalOutputParameterPV.%B0; + _data4[1] := MC_WriteDigitalOutputParameterPV.%B1; + _data4[2] := MC_WriteDigitalOutputParameterPV.%B2; + _data4[3] := MC_WriteDigitalOutputParameterPV.%B3; + _WriteRecord( request := TRUE, + id := _HW_S_0_0134_0_0, + index := DINT#4409, //P-0-0313.0.0 16#1000 + 313 = 4096+313=4409 + length := UINT#4, + record := _data4); + IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#494; + ElSIF _WriteRecord.error THEN + _WriteRecord(request := FALSE, record := _data4); + Messenger.Activate( UINT#1663, eAxoMessageCategory#ProgrammingError); + MC_WriteParameterErrorID := WORD#1663; + _State := UINT#499; + END_IF; + END_IF; + IF _State = UINT#494 THEN + _WriteRecord(request := FALSE, record := _data4); + IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN + _State := UINT#497; + END_IF; + END_IF; + + IF _State = UINT#497 THEN + Done := TRUE; + MC_WriteDigitalOutputCycle := ULINT#0; + END_IF; + IF _State = UINT#499 THEN + MC_WriteDigitalOutputCycle := ULINT#0; + Error := TRUE; + END_IF; + + IF _State>=UINT#490 AND _State MC_WriteDigitalOutputCycle THEN + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + _State := UINT#499; + END_IF; + END_IF; + END_IF; + + IF THIS.AxoWriteDigitalOutput_Task.DoneReached() AND _State>=UINT#490 AND _State<=UINT#499 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_Done; + MC_WriteDigitalOutputErrorID := WORD#0; + // MC_WriteDigitalOutputCycle := ULINT#0; + _State := UINT#0; + END_IF; + + IF THIS.AxoWriteDigitalOutput_Task.RestoreTriggered() AND _State>=UINT#490 AND _State<=UINT#499 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_WriteDigitalOutputErrorID := WORD#0; + MC_WriteDigitalOutputCycle := ULINT#0; + _State := UINT#0; + END_IF; + + ErrorID := TO_DINT(MC_WriteDigitalOutputErrorID); + MC_WriteDigitalOutputExecute_PV := Execute; + + END_METHOD + + /// + /// This method returns the actual position. + /// + METHOD PUBLIC OVERRIDE MC_ReadActualPosition + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + Position : LREAL; // New absolute position (in axis’ unit [u]) + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1670, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1670; + RETURN; + END_IF; + + IF Enable THEN + Valid := TRUE; + Position := THIS.ActualPosition; + END_IF; + END_METHOD + + /// + /// This method returns the value of the actual velocity as long as ‘Enable’ is set. ‘Valid’ is true when the + /// dataoutput ‘Velocity’ is valid. If ‘Enable’ is Reset, the data loses its validity, and all outputs are reset, + /// no matter if new data is available. + /// + METHOD PUBLIC OVERRIDE MC_ReadActualVelocity + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + Velocity : LREAL; // The value of the actual velocity (in axis’ unit [u/s]) + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1680, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1680; + RETURN; + END_IF; + + IF Enable THEN + Valid := TRUE; + Velocity := THIS.ActualVelocity; + END_IF; + END_METHOD + + /// + /// This method returns the value of the actual torque or force as long as ‘Enable’ is set. ‘Valid’ is true when the + /// data-output ‘Torque’ is valid. If ‘Enable’ is Reset, the data loses its validity, and ‘Valid’ is also reset, + /// no matter if new data is available. + /// + METHOD PUBLIC OVERRIDE MC_ReadActualTorque + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + Torque : LREAL; // The value of the actual torque or force (in technical units) + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1690, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1690; + RETURN; + END_IF; + + IF Enable THEN + Valid := TRUE; + Torque := THIS.ActualTorque; + END_IF; + END_METHOD + + /// + /// This method returns in detail the status of the_State diagram of the axis + /// + VAR INTERNAL + MC_ReadStatusEnable_PV : BOOL := FALSE; //Enable - previous value + MC_ReadStatusDone_PV : BOOL := FALSE; //Done - previous value + MC_ReadStatusStateNumber : INT; //Call number of the method MC_ReadRealParameter + END_VAR + METHOD PUBLIC OVERRIDE MC_ReadStatus + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + ErrorStop : BOOL; // See_State diagram + Disabled : BOOL; // See_State diagram + Stopping : BOOL; // See_State diagram + Homing : BOOL; // See_State diagram + Standstill : BOOL; // See_State diagram + DiscreteMotion : BOOL; // See_State diagram + ContinuousMotion : BOOL; // See_State diagram + SynchronizedMotion : BOOL; // See_State diagram + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1700, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1700; + RETURN; + END_IF; + + // IF Enable THEN + // THIS.UpdateInputs(_AxisReference^); + // Valid := TRUE; + // Error := _AxisReference^.Telegram111_In.ZSW1.faultPresent; + // ErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + // ErrorStop := DriveState = AXOpen.Components.Drives.eAxoDriveState#ErrorStop;; + // Disabled := DriveState = AXOpen.Components.Drives.eAxoDriveState#Disabled; + // Stopping := DriveState = AXOpen.Components.Drives.eAxoDriveState#Stopping; + // Homing := DriveState = AXOpen.Components.Drives.eAxoDriveState#Homing; + // Standstill := DriveState = AXOpen.Components.Drives.eAxoDriveState#Standstill; + // DiscreteMotion := DriveState = AXOpen.Components.Drives.eAxoDriveState#DiscreteMotion; + // ContinuousMotion := DriveState = AXOpen.Components.Drives.eAxoDriveState#ContinuousMotion; + // SynchronizedMotion := DriveState = AXOpen.Components.Drives.eAxoDriveState#SynchronizedMotion; + // END_IF; + END_METHOD + + /// + /// This method returns in detail the status of the axis with respect to the motion currently in progress. + /// + VAR INTERNAL + MC_ReadMotionStateEnable_PV : BOOL := FALSE; //Enable - previous value + MC_ReadMotionStateErrorID : WORD; + MC_ReadMotionStateCycle : ULINT; + MC_ReadMotionStateValue : LINT; + MC_ReadMotionStateValid : BOOL; + END_VAR + METHOD PUBLIC OVERRIDE MC_ReadMotionState + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + Source : AXOpen.Components.Abstractions.Drives.eAxoSource; // Defines the source of the relevant data: CommandedValue;SetValue, ActualValue. + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + ConstantVelocity: BOOL; // Velocity is constant. Velocity may be 0. For the actual value a window is applicable (window is vendor specific) + Accelerating : BOOL; // Increasing the absolute value of the velocity + Decelerating : BOOL; // Decreasing the absolute value of the velocity + DirectionPositive: BOOL; // Signals that the position is increasing + DirectionNegative: BOOL; // Signals that the position is decreasing + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1710, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1710; + RETURN; + END_IF; + + // IF Enable THEN + // THIS.UpdateInputs(_AxisReference^); + // Valid := TRUE; + // Error := _AxisReference^.Telegram111_In.ZSW1.faultPresent; + // ErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + // ConstantVelocity := FALSE; + // Accelerating := _AxisReference^.Telegram111_In.ZSW1.axisAccelerates; + // Decelerating := _AxisReference^.Telegram111_In.ZSW1.axisDecelerates; + // DirectionPositive := _AxisReference^.Telegram111_In.POS_ZSW2.%X4; + // DirectionNegative := _AxisReference^.Telegram111_In.POS_ZSW2.%X5; + // END_IF; + END_METHOD + + /// + /// This method reads information concerning an axis, like modes, inputs directly related to the axis, + /// and certain status information. + /// + METHOD PUBLIC OVERRIDE MC_ReadAxisInfo + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + HomeAbsSwitch : BOOL; // Digital home switch input is active + LimitSwitchPos : BOOL; // Positive hardware end switch is active + LimitSwitchNeg : BOOL; // Negative hardware end switch is active + Simulation : BOOL; // Axis is in simulation mode (e.g. motor is simulated) + CommunicationReady : BOOL; // “Network” is initialized and ready for communication + ReadyForPowerOn : BOOL; // Drive is ready to be enabled (power on) + PowerOn : BOOL; // If TRUE shows that the power stage is switched ON + IsHomed : BOOL; // The absolute reference position is known for the axis (axis is homed) + AxisWarning : BOOL; // Warning(s) on the axis is present + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1720, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1720; + RETURN; + END_IF; + + // IF Enable THEN + // THIS.UpdateInputs(_AxisReference^); + // Valid := TRUE; + // Error := _AxisReference^.Telegram111_In.ZSW1.faultPresent; + // ErrorID := TO_WORD(_AxisReference^.Telegram111_In.Fault_Code); + // HomeAbsSwitch := FALSE; + // LimitSwitchPos := _AxisReference^.Telegram111_In.POS_ZSW1.%X9; + // LimitSwitchNeg := _AxisReference^.Telegram111_In.POS_ZSW1.%X8; + // Simulation := FALSE; + // CommunicationReady := FALSE; + // ReadyForPowerOn := _AxisReference^.Telegram111_In.ZSW1.readyForSwitchOn; + // PowerOn := _AxisReference^.Telegram111_In.ZSW1.operationEnabled; + // IsHomed := _AxisReference^.Telegram111_In.ZSW1.homePosSet; + // AxisWarning := _AxisReference^.Telegram111_In.ZSW1.warningActive; + // END_IF; + END_METHOD + + /// + /// This method presents general axis errors not relating to the methods. + /// (for instance axis errors, drive errors, communication errors) + /// + VAR INTERNAL + MC_ReadAxisErrorEnable_PV : BOOL := FALSE; //Enable - previous value + MC_ReadAxisErrorErrorID : WORD; + MC_ReadAxisErrorCycle : ULINT; + MC_ReadAxisErrorValue : LINT; + MC_ReadAxisErrorValid : BOOL; + LastMessageCode : ULINT; + END_VAR + METHOD PUBLIC OVERRIDE MC_ReadAxisError + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Enable : BOOL; // Get the value of the parameter continuously while enabled + END_VAR + VAR_OUTPUT + Valid : BOOL; // A valid output is available at the method + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + AxisErrorID : DWORD; // The value of the axis error. These values are vendor specific + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + _category : AXOpen.Messaging.eAxoMessageCategory; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1730, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1730; + RETURN; + END_IF; + + IF Enable AND NOT MC_ReadAxisErrorEnable_PV AND _State = UINT#0 THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_ReadAxisError; + _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; + MC_ReadAxisErrorCycle := _AxisReference^.Data.Cycle ; + END_IF; + + // IF Enable THEN + // THIS.UpdateInputs(_AxisReference^); + // IF _State = UINT#0 THEN + // Busy := TRUE; + // MC_ReadAxisErrorErrorID := WORD#16#0000; + // Parametrization.Inputs.Enable := FALSE; + // _State := UINT#310; + // END_IF; + // IF _State = UINT#310 THEN + // Busy := TRUE; + // Parametrization.Inputs.Enable := TRUE; + // Parametrization.Inputs.ReadWrite := FALSE; + // Parametrization.Inputs.ParameterNo := 12306; + // Parametrization.Inputs.Subindex := 0; + // Parametrization.Inputs.AxisNo := BYTE#1; + // Parametrization.Inputs.HardwareId := _AxisReference^.Data.hwIdModuleAccessPoint; + // IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + // MC_ReadAxisErrorValid := TRUE; + // MC_ReadAxisErrorValue := Parametrization.Outputs.ValueReadLINT; + // _State := UINT#311; + // END_IF; + // IF Parametrization.Outputs.Error THEN + // Messenger.Activate( UINT#1731, eAxoMessageCategory#ProgrammingError); + // MC_ReadAxisErrorErrorID := WORD#1731; + // _State := UINT#319; + // END_IF; + // END_IF; + // IF _State = UINT#311 THEN + // Busy := TRUE; + // Parametrization.Inputs.Enable := FALSE; + // Parametrization.Inputs.ReadWrite := FALSE; + // IF NOT Parametrization.Outputs.Done THEN + // _State := UINT#310; + // END_IF; + // END_IF; + // IF _State = UINT#319 THEN + // Error := TRUE; + // END_IF; + + // IF _State>=UINT#310 AND _State MC_ReadAxisErrorCycle THEN + // _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle - ULINT#1; + // _State := UINT#319; + // END_IF; + // END_IF; + // THIS.UpdateOutputs(_AxisReference^); + // END_IF; + + IF NOT Enable AND MC_ReadAxisErrorEnable_PV THEN + _AxisReference^.Status.CurrentMotionTaskId := AXOpen.Components.Drives.eAxoMotionTaskId#Axo_None; + MC_ReadAxisErrorErrorID := WORD#0; + MC_ReadAxisErrorCycle := ULINT#0; + MC_ReadAxisErrorValid := FALSE; + MC_ReadAxisErrorValue := LINT#0; + _State := UINT#0; + END_IF; + + ErrorID := TO_DINT(MC_ReadAxisErrorErrorID); + Valid := MC_ReadAxisErrorValid; + MC_ReadAxisErrorEnable_PV := Enable; + + Messenger.ActivateOnCondition(LastMessageCode,Enable AND Valid AND LastMessageCode = TO_ULINT(MC_ReadAxisErrorValue), eAxoMessageCategory#Error); + // IF NOT Messenger.IsActive THEN + IF Messenger.MessengerState = eAxoMessengerState#Idle THEN + LastMessageCode := TO_ULINT(MC_ReadAxisErrorValue); + END_IF; + END_METHOD + + /// + /// This method makes the transition from the_State ‘ErrorStop’ to ‘Standstill’ or ‘Disabled’ by resetting all + /// internal axis-related errors – it does not affect the output of the other methods. + /// + VAR INTERNAL + MC_ResetExecute_PV : BOOL := FALSE; //Execute - previous value + MC_ResetPower_PV : BOOL := FALSE; //Execute - previous value + MC_ResetDone_PV : BOOL := FALSE; //Execute - previous value + END_VAR + METHOD PUBLIC OVERRIDE MC_Reset + VAR_INPUT + AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; + Execute : BOOL; // Resets all internal axis-related error + END_VAR + VAR_OUTPUT + Done : BOOL; // ‘Standstill’ or ‘Disabled’_State is reached + Busy : BOOL; // The method is not finished and new output values are to be expected + Error : BOOL; // Signals that an error has occurred within the method + ErrorID : DINT; // Error identification + END_VAR + VAR + _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisReference; + END_VAR + + _AxisReference ?= AxisRef; + + IF(_AxisReference = NULL) THEN + Messenger.Activate( UINT#1740, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1740; + RETURN; + END_IF; + + IF Execute THEN + IF Execute AND NOT MC_ResetExecute_PV THEN + Busy := TRUE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.IPOSYNC := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := FALSE; + // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.HomingControl := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogPositive := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1; + END_IF; + IF Busy THEN + Busy := TRUE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 ; + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := FALSE; + Done := TRUE; + Busy := FALSE; + END_IF; + END_IF; + ELSIF NOT Execute AND MC_ResetExecute_PV THEN + Done := FALSE; + Error:=FALSE; + ErrorID := DINT#0; + Busy := FALSE; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := FALSE; + END_IF; + IF Execute AND MC_ResetDone_PV THEN + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := FALSE; + Done := TRUE; + END_IF; + MC_ResetDone_PV := Done; + MC_ResetExecute_PV := Execute; + END_METHOD + + METHOD PUBLIC OVERRIDE Restore + MC_HomeExecute_PV := FALSE; + MC_HomeErrorID := DINT#0; + MC_HomeCycle := ULINT#0; + MC_StopExecute_PV := FALSE; + MC_StopErrorID := DINT#0; + MC_StopCycle := ULINT#0; + MC_HaltExecute_PV := FALSE; + MC_HaltErrorID := DINT#0; + MC_HaltCycle := ULINT#0; + MC_MoveAbsoluteExecute_PV := FALSE; + MC_MoveAbsoluteErrorID := DINT#0; + MC_MoveAbsoluteCycle := ULINT#0; + MC_MoveAbsoluteContinuousUpdate_SV := FALSE; + MC_MoveAbsolutePosition_PV := LREAL#0.0; + MC_MoveAbsoluteVelocity_PV := LREAL#0.0; + MC_MoveAbsoluteAcceleration_PV := LREAL#0.0; + MC_MoveAbsoluteDeceleration_PV := LREAL#0.0; + MC_MoveAbsoluteJerk_PV := LREAL#0.0; + MC_MoveAbsoluteDirection_PV := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; + MC_MoveRelativeExecute_PV := FALSE; + MC_MoveRelativeErrorID := DINT#0; + MC_MoveRelativeCycle := ULINT#0; + MC_MoveRelativeContinuousUpdate_SV := FALSE; + MC_MoveRelativeDistance_PV := LREAL#0.0; + MC_MoveRelativeVelocity_PV := LREAL#0.0; + MC_MoveRelativeAcceleration_PV := LREAL#0.0; + MC_MoveRelativeDeceleration_PV := LREAL#0.0; + MC_MoveRelativeJerk_PV := LREAL#0.0; + MC_MoveAdditiveExecute_PV := FALSE; + MC_MoveAdditiveErrorID := DINT#0; + MC_MoveAdditiveCycle := ULINT#0; + MC_MoveAdditiveContinuousUpdate_SV := FALSE; + MC_MoveAdditiveDistance_PV := LREAL#0.0; + MC_MoveAdditiveVelocity_PV := LREAL#0.0; + MC_MoveAdditiveAcceleration_PV := LREAL#0.0; + MC_MoveAdditiveDeceleration_PV := LREAL#0.0; + MC_MoveAdditiveJerk_PV := LREAL#0.0; + MC_MoveVelocityExecute_PV := FALSE; + MC_MoveVelocityErrorID := WORD#0; + MC_MoveVelocityCycle := ULINT#0; + MC_MoveVelocityContinuousUpdate_SV := FALSE; + MC_MoveVelocityVelocity_PV := LREAL#0.0; + MC_MoveVelocityAcceleration_PV := LREAL#0.0; + MC_MoveVelocityDeceleration_PV := LREAL#0.0; + MC_MoveVelocityJerk_PV := LREAL#0.0; + MC_MoveVelocityDirection_PV := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; + MC_TorqueControlExecute_PV := FALSE; + MC_TorqueControlErrorID := DINT#0; + MC_TorqueControlCycle := ULINT#0; + MC_TorqueControlContinuousUpdate_SV := FALSE; + MC_TorqueControlTorque_PV := LREAL#0.0; + MC_TorqueControlTorqueRamp_PV := LREAL#0.0; + MC_TorqueControlPositionLimit_PV := LREAL#0.0; + MC_TorqueControlVelocity_PV := LREAL#0.0; + MC_TorqueControlAcceleration_PV := LREAL#0.0; + MC_TorqueControlDeceleration_PV := LREAL#0.0; + MC_TorqueControlJerk_PV := LREAL#0.0; + MC_TorqueControlDirection_PV := AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#CurrentDirection; + MC_SetPositionExecute_PV := FALSE; + MC_SetPositionErrorID := DINT#0; + MC_SetPositionCycle := ULINT#0; + MC_SetPositionActualPosition := LINT#0; + MC_ReadParameterEnable_PV := FALSE; + MC_ReadParameterErrorID := DINT#0; + MC_ReadParameterCycle := ULINT#0; + MC_ReadParameterValue := LINT#0; + MC_ReadParameterValid := FALSE; + MC_ReadRealParameterEnable_PV := FALSE; + MC_ReadRealParameterErrorID := DINT#0; + MC_ReadRealParameterCycle := ULINT#0; + MC_ReadRealParameterValue := REAL#0.0; + MC_ReadRealParameterValid := FALSE; + MC_ReadBoolParameterEnable_PV := FALSE; + MC_ReadBoolParameterErrorID := WORD#0; + MC_ReadBoolParameterCycle := ULINT#0; + MC_ReadBoolParameterValue := FALSE; + MC_ReadBoolParameterValid := FALSE; + MC_WriteParameterExecute_PV := FALSE; + MC_WriteParameterErrorID := WORD#0; + MC_WriteParameterCycle := ULINT#0; + MC_WriteRealParameterExecute_PV := FALSE; + MC_WriteRealParameterErrorID := WORD#0; + MC_WriteRealParameterCycle := ULINT#0; + MC_WriteBoolParameterExecute_PV := FALSE; + MC_WriteBoolParameterErrorID := WORD#0; + MC_WriteBoolParameterCycle := ULINT#0; + MC_ReadDigitalInputEnable_PV := FALSE; + MC_ReadDigitalInputErrorID := WORD#0; + MC_ReadDigitalInputCycle := ULINT#0; + MC_ReadDigitalInputValue := FALSE; + MC_ReadDigitalInputValid := FALSE; + MC_ReadDigitalOutputEnable_PV := FALSE; + MC_ReadDigitalOutputErrorID := WORD#0; + MC_ReadDigitalOutputCycle := ULINT#0; + MC_ReadDigitalOutputValue := FALSE; + MC_ReadDigitalOutputValid := FALSE; + MC_WriteDigitalOutputExecute_PV := FALSE; + MC_WriteDigitalOutputErrorID := WORD#0; + MC_WriteDigitalOutputCycle := ULINT#0; + MC_ReadStatusEnable_PV := FALSE; + MC_ReadStatusDone_PV := FALSE; + MC_ReadStatusStateNumber := INT#0; + MC_ReadMotionStateEnable_PV := FALSE; + MC_ReadMotionStateErrorID := WORD#0; + MC_ReadMotionStateCycle := ULINT#0; + MC_ReadMotionStateValue := LINT#0; + MC_ReadMotionStateValid := FALSE; + MC_ReadAxisErrorEnable_PV := FALSE; + MC_ReadAxisErrorErrorID := WORD#0; + MC_ReadAxisErrorCycle := ULINT#0; + MC_ReadAxisErrorValue := LINT#0; + MC_ReadAxisErrorValid := FALSE; + LastMessageCode := ULINT#0; + MC_ResetExecute_PV := FALSE; + MC_ResetPower_PV := FALSE; + + AxisRefExt.Data.Cycle := ULINT#0; + _State := UINT#0; + DriveStatus.Action.Id := UINT#0; + DriveStatus.Error.Id := UINT#0; + Messenger.Restore(); + TaskMessenger.Restore(); + + //AxoPower_Task.Restore(); + AxoStop_Task.Restore(); + AxoHalt_Task.Restore(); + AxoHome_Task.Restore(); + AxoMoveAbsolute_Task.Restore(); + AxoMoveRelative_Task.Restore(); + AxoMoveAdditive_Task.Restore(); + AxoMoveVelocity_Task.Restore(); + AxoTorqueControl_Task.Restore(); + AxoSetPosition_Task.Restore(); + AxoSetOverride_Task.SwitchOff(); + AxoReadParameter_Task.SwitchOff(); + AxoReadRealParameter_Task.SwitchOff(); + AxoReadBoolParameter_Task.SwitchOff(); + AxoWriteParameter_Task.Restore(); + AxoWriteRealParameter_Task.Restore(); + AxoWriteBoolParameter_Task.Restore(); + AxoReadDigitalInput_Task.SwitchOff(); + AxoReadDigitalOutput_Task.SwitchOff(); + AxoWriteDigitalOutput_Task.Restore(); + AxoReadActualPosition_Task.SwitchOff(); + AxoReadActualVelocity_Task.SwitchOff(); + AxoReadActualTorque_Task.SwitchOff(); + AxoReadStatus_Task.SwitchOff(); + AxoReadMotionState_Task.SwitchOff(); + AxoReadAxisInfo_Task.SwitchOff(); + AxoReadAxisError_Task.SwitchOff(); + AxoReset_Task.Restore(); + AxoJogPositive.RemoteSwitchOn := FALSE; + AxoJogPositive.StartMotion := FALSE; + AxoJogPositive.StopMotion := FALSE; + AxoJogNegative.RemoteSwitchOn := FALSE; + AxoJogNegative.StartMotion := FALSE; + AxoJogNegative.StopMotion := FALSE; + + // AxisRefExt.Outputs.CommandPosition_S_0_0282_0_0 := DINT#0; + // AxisRefExt.Outputs.CommandVelocity_S_0_0259_0_0 := DINT#0; + // AxisRefExt.Outputs.CommandAcceleration_S_0_0260_0_0 := DINT#0; + // AxisRefExt.Outputs.CommandDecceleration_S_0_0359_0_0 := DINT#0; + // AxisRefExt.Outputs.CommandTorque_S_0_0080_0_0 := INT#0; + + SUPER.Restore(); + + RestoreTask.DoneWhen(TRUE); + END_METHOD + METHOD PRIVATE CallTimers + VAR_INPUT + signal : BOOL; + END_VAR + + _infoTimer.OnDelay(THIS, signal , _infoTime); + _errorTimer.OnDelay(THIS, signal , _errorTime ); + END_METHOD + METHOD PRIVATE CallTimers + VAR_INPUT + signal_1 : BOOL; + signal_2 : BOOL; + END_VAR + + _infoTimer.OnDelay(THIS, signal_1 , _infoTime); + _errorTimer.OnDelay(THIS, signal_2 , _errorTime ); + END_METHOD + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscAxisData.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscAxisData.st new file mode 100644 index 000000000..7e1aa4006 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscAxisData.st @@ -0,0 +1,12 @@ + +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + CLASS AxoCtrlxDriveXscAxisData + VAR PUBLIC + Cycle : ULINT; + OverrideVelocityFactor : LREAL := 1.0; //LREAL value to be written + OverrideAccelerationFactor : LREAL := 1.0; //LREAL value to be written + OverrideJerkFactor : LREAL := 1.0; //LREAL value to be written + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscAxisReference.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscAxisReference.st new file mode 100644 index 000000000..b0c509b08 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscAxisReference.st @@ -0,0 +1,35 @@ +// USING AXOpen.Components.Drives; + +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + CLASS AxoCtrlxDriveXscAxisReference IMPLEMENTS AXOpen.Components.Abstractions.Drives.IAxoAxisReference + VAR PUBLIC // HWin + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("HW inputs")]} + {#ix-attr:[ReadOnly()]} + Inputs : AxoCtrlxDriveXsc_Status; + END_VAR + VAR PUBLIC // HWout + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("HW outputs")]} + // {#ix-attr:[ReadOnly()]} + Outputs : AxoCtrlxDriveXsc_Control; + END_VAR + VAR PUBLIC // HWIDs + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("HWids")]} + {#ix-attr:[ReadOnly()]} + HWIDs : AxoCtrlxDriveXscHWIDs; + END_VAR + VAR PUBLIC // Data + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Data")]} + {#ix-attr:[ReadOnly()]} + Data : AXOpen.Components.Rexroth.Drives.AxoCtrlxDriveXscAxisData; + END_VAR + VAR PUBLIC + Config : AXOpen.Components.Drives.AxoDrive_Config; + Status : AXOpen.Components.Drives.AxoDrive_Status; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscDriveControlWord_S_0_0134_0_0.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscDriveControlWord_S_0_0134_0_0.st new file mode 100644 index 000000000..61d0f855f --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscDriveControlWord_S_0_0134_0_0.st @@ -0,0 +1,48 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-set:AttributeName = "<#DriveControlWord#>"} + CLASS AxoCtrlxDriveXscDriveControlWord_S_0_0134_0_0 + VAR PUBLIC + {#ix-set:AttributeName = "<#_bit00_Reserve#>"} + _bit00_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit01_Reserve#>"} + _bit01_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit02_Reserve#>"} + _bit02_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit03_Reserve#>"} + _bit03_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit04_Reserve#>"} + _bit04_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit05_Reserve#>"} + _bit05_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit06_Reserve#>"} + _bit06_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit07_Reserve#>"} + _bit07_Reserve : BOOL; + + {#ix-set:AttributeName = "<#Command operation mode Bit 0#>"} + CommandOperationModeBit0 : BOOL; // Command operation mode bit 0 | 000: Primary operation mode + // | 001: Secondary operation mode 1 + {#ix-set:AttributeName = "<#Command operation mode Bit 1#>"} + CommandOperationModeBit1 : BOOL; // Command operation mode bit 1 | 010: Secondary operation mode 2 + // | 011: Secondary operation mode 3 + // | 100: Secondary operation mode 4 + {#ix-set:AttributeName = "<#Command operation mode Bit 2#>"} + CommandOperationModeBit2 : BOOL; // Command operation mode bit 2 | 101: Secondary operation mode 5 + // | 110: Secondary operation mode 6 + // | 111: Secondary operation mode 7 + {#ix-set:AttributeName = "<#_bit11_Reserve#>"} + _bit11_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit12_Reserve#>"} + _bit12_Reserve : BOOL; + {#ix-set:AttributeName = "<#Drive Halt#>"} + DriveHalt : BOOL; // 1-0 change: Deceleration of drive while maintaining maximum acceleration (S‑0‑0138 - only possible if bits 14 and 15 = 1) + {#ix-set:AttributeName = "<#Drive enable#>"} + DriveEnable : BOOL; // Negative edge: Torque disable without delay (independent of bit 15 or 13) + {#ix-set:AttributeName = "<#Drive On#>"} + DriveOn : BOOL; // Negative edge: Best possible deceleration (only possible if bit 14 = 1) + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscDriveStatusWord_S_0_0135_0_0.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscDriveStatusWord_S_0_0135_0_0.st new file mode 100644 index 000000000..f7c76c353 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscDriveStatusWord_S_0_0135_0_0.st @@ -0,0 +1,49 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-set:AttributeName = "<#DriveStatusWord#>"} + CLASS AxoCtrlxDriveXscDriveStatusWord_S_0_0135_0_0 + VAR PUBLIC + {#ix-set:AttributeName = "<#_bit00_Reserve#>"} + _bit00_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit01_Reserve#>"} + _bit01_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit02_Reserve#>"} + _bit02_Reserve : BOOL; + {#ix-set:AttributeName = "<#CommandProcessingStatus#>"} + CommandProcessingStatus : BOOL; // 0 - Drive ignores command value input | 1 -Drive follows command value input + {#ix-set:AttributeName = "<#InStandstill#>"} + InStandstill : BOOL; // Drive "Halt" status | 1- Act vel < standstill window + {#ix-set:AttributeName = "<#InReference#>"} + InReference : BOOL; // Drive hommed + {#ix-set:AttributeName = "<#_bit06_Reserve#>"} + _bit06_Reserve : BOOL; + {#ix-set:AttributeName = "<#HardwareLock#>"} + HardwareLock : BOOL; // Hardware lock (E-stop) + {#ix-set:AttributeName = "<#ActualOperatingModeBit0#>"} + ActualOperatingModeBit0 : BOOL; // Actual_operating mode bit 0 | 000: Primary operation mode + // | 001: Secondary operation mode 1 + {#ix-set:AttributeName = "<#ActualOperatingModeBit1#>"} + ActualOperatingModeBit1 : BOOL; // Actual_operating mode bit 1 | 010: Secondary operation mode 2 + // | 011: Secondary operation mode 3 + // | 100: Secondary operation mode 4 + {#ix-set:AttributeName = "<#ActualOperatingModeBit2#>"} + ActualOperatingModeBit2 : BOOL; // Actual_operating mode bit 2 | 101: Secondary operation mode 5 + // | 110: Secondary operation mode 6 + // | 111: Secondary operation mode 7 + {#ix-set:AttributeName = "<#_bit11_Reserve#>"} + _bit11_Reserve : BOOL; + {#ix-set:AttributeName = "<#WarningZKL2#>"} + WarningZKL2 : BOOL; // Warning ZKL2 + {#ix-set:AttributeName = "<#DriveErrorZKL1#>"} + DriveErrorZKL1 : BOOL; // Drive Error ZKL1 + {#ix-set:AttributeName = "<#ReadyForOperation Bit 0#>"} + ReadyForOperationBit0 : BOOL; // Ready to operate bit 0 lower significant bit | 10: Control section and power section ready for op. (Ab) + // | 11: In operation, with torque (e.g. AF) + {#ix-set:AttributeName = "<#ReadyForOperation Bit 1#>"} + ReadyForOperationBit1 : BOOL; // Ready to operate bit 1 higher significant bit | 00: Not ready for power on (e.g., P2) + // | 01: Ready for power on (bb) + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscHWIDs.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscHWIDs.st new file mode 100644 index 000000000..32d8aa17c --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscHWIDs.st @@ -0,0 +1,49 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + CLASS AxoCtrlxDriveXscHWIDs + VAR PUBLIC + {#ix-set:AttributeName = "<#Hardware ID Device#>"} + HW_Device : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Outputs' module#>"} + HW_Outputs : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'Inputs' module#>"} + HW_Inputs : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0134_0_0__Servodrive_profile__Control_word' submodule#>"} + HW_S_0_0134_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0145_0_0__Signal_control_word__Value' submodule#>"} + HW_S_0_0145_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0282_0_0__Drive_controlled_positioning__Command_value' submodule#>"} + HW_S_0_0282_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0259_0_0__Positioning_profile__Profile_velocity' submodule#>"} + HW_S_0_0259_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0260_0_0__Positioning_profile__Acceleration' submodule#>"} + HW_S_0_0260_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0359_0_0__Positioning_profile__Deceleration' submodule#>"} + HW_S_0_0359_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_1720_0_1__Power_supply_control__Control_word' submodule#>"} + HW_S_0_1720_0_1 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar' submodule#>"} + HW_S_0_0092_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0080_0_0__Torque_force_command_value' submodule#>"} + HW_S_0_0080_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0193_0_0__Positioning_jerk' submodule#>"} + HW_S_0_0193_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0135_0_0__Servodrive_profile__Status_word' submodule#>"} + HW_S_0_0135_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0144_0_0__Signal_status_word__Value' submodule#>"} + HW_S_0_0144_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0386_0_0__Position_controller__Position_actual_value' submodule#>"} + HW_S_0_0386_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0535_0_0__Velocity_controller__Velocity_actual_value' submodule#>"} + HW_S_0_0535_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register' submodule#>"} + HW_S_0_0390_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_1720_0_2__Power_supply_control__Status_word' submodule#>"} + HW_S_0_1720_0_2 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'S_0_0084_0_0__Torque_force_feedback_value' submodule#>"} + HW_S_0_0084_0_0 : UINT; + {#ix-set:AttributeName = "<#Hardware ID 'P_0_0106_0_0__STO_function__Operating_status' submodule#>"} + HW_P_0_0106_0_0 : UINT; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSignalControlWord_S_0_0145_0_0.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSignalControlWord_S_0_0145_0_0.st new file mode 100644 index 000000000..896701acb --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSignalControlWord_S_0_0145_0_0.st @@ -0,0 +1,42 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-set:AttributeName = "<#SignalControlWord#>"} + CLASS AxoCtrlxDriveXscSignalControlWord_S_0_0145_0_0 + VAR PUBLIC + {#ix-set:AttributeName = "<#Acceptance of positioning command value#>"} + AcceptanceOfPositioningCommandValue: BOOL; // Bit 0 of the Drive-controlled positioning: Control word (S-0-0346) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#_bit01_Reserve#>"} + _bit01_Reserve : BOOL; + {#ix-set:AttributeName = "<#Homing control#>"} + HomingControl : BOOL; // Bit 0 of the Homing control: C0600 Command drive-controlled procedure (S-0-0148) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Absolute/Relative type of positioning command value#>"} + AbsoluteRelative : BOOL; // Bit 3 of the Drive-controlled positioning: Control word (S-0-0346) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Immediate block change#>"} + ImmediateChange : BOOL; // Bit 5 of the Drive-controlled positioning: Control word (S-0-0346) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Clear error#>"} + ClearError : BOOL; // Bit 0 of the Class 1 diagnostics: C0500 Reset command (S-0-0099) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Infinite travel in positive direction (jog+)#>"} + JogPositive : BOOL; // Bit 1 of the Drive-controlled positioning: Control word (S-0-0346) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Infinite travel in negative direction (jog-)#>"} + JogNegative : BOOL; // Bit 2 of the Drive-controlled positioning: Control word (S-0-0346) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Activate configuration mode#>"} + SwitchToCM : BOOL; // Bit 0 of the Subdevice STM: C0400 Activate configuration mode (S-0-0420) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Activate operation mode#>"} + SwitchTo0M : BOOL; // Bit 0 of the Subdevice STM: C0200 Activate operation mode (S-0-0422) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#CancelReferencePoint#>"} + CancelReferencePoint : BOOL; // Homing function: C1500 Command cancel reference point (0x2500:01 / S-0-0191 / --) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#_bit11_Reserve#>"} + _bit11_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit12_Reserve#>"} + _bit12_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit13_Reserve#>"} + _bit13_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit14_Reserve#>"} + _bit14_Reserve : BOOL; + {#ix-set:AttributeName = "<#Set absolute position function#>"} + SetAbsPositionFunction : BOOL; // Bit 0 of the Set absolute position function: C0300 Command procedure (S-0-0447) !!! must be set in drive !!! + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSignalStatusWord_S_0_0144_0_0.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSignalStatusWord_S_0_0144_0_0.st new file mode 100644 index 000000000..6162b6c11 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSignalStatusWord_S_0_0144_0_0.st @@ -0,0 +1,42 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-set:AttributeName = "<#SignalStatusWord#>"} + CLASS AxoCtrlxDriveXscSignalStatusWord_S_0_0144_0_0 + VAR PUBLIC + {#ix-set:AttributeName = "<#Configuration/Parametrization/Operation bit 0#>"} + CmPmOmBit0 : BOOL; // Bit 0 of the Subdevice STM: Status, parameterization mode (S-0-0424) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Configuration/Parametrization/Operation bit 1#>"} + CmPmOmBit1 : BOOL; // Bit 1 of the Subdevice STM: Status, parameterization mode (S-0-0424) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#In target position#>"} + InTargetPosition : BOOL; // Bit 2 of the Positioning status: Word (S-0-0437) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Position command acknowledgment#>"} + PositionCommandAck : BOOL; // Bit 0 of the Drive-controlled positioning: Command acknowledgment (S-0-0419) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Drive standstill#>"} + DriveStandstill : BOOL; // Bit 0 of the Velocity status: Actual value = 0 (S-0-0331) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#Command change bit#>"} + CommandChangeBit : BOOL; // Bit 5 of the Axis state machine: Status word, axis (P-0-0115 ) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#_bit6_Reserve#>"} + _bit6_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit7_Reserve#>"} + _bit7_Reserve : BOOL; + {#ix-set:AttributeName = "<#Locked by hardware#>"} + LockedByHardware : BOOL; // Bit 7 of the Axis state machine: Status word 2, axis (P-0-0110 ) !!! must be set in drive !!! + {#ix-set:AttributeName = "<#_bit9_Reserve#>"} + _bit9_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit10_Reserve#>"} + _bit10_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit11_Reserve#>"} + _bit11_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit12_Reserve#>"} + _bit12_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit13_Reserve#>"} + _bit13_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit14_Reserve#>"} + _bit14_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit15_Reserve#>"} + _bit15_Reserve : BOOL; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSupplyUnitControlWord_S_0_1720_0_1.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSupplyUnitControlWord_S_0_1720_0_1.st new file mode 100644 index 000000000..6176ecd0c --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSupplyUnitControlWord_S_0_1720_0_1.st @@ -0,0 +1,48 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-set:AttributeName = "<#SupplyUnitControlWord#>"} + CLASS AxoCtrlxDriveXscSupplyUnitControlWord_S_0_1720_0_1 + VAR PUBLIC + {#ix-set:AttributeName = "<#_bit0_Reserve#>"} + _bit0_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit1_Reserve#>"} + _bit1_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit2_Reserve#>"} + _bit2_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit3_Reserve#>"} + _bit3_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit4_Reserve#>"} + _bit4_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit4_Reserve#>"} + _bit5_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit6_Reserve#>"} + _bit6_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit7_Reserve#>"} + _bit7_Reserve : BOOL; + {#ix-set:AttributeName = "<#Mode selection bit 0#>"} + ModeSelectionBit0 : BOOL; // Mode selection bit 0 | 00: Primary operation mode + // | 01: 1 secondary operation mode + {#ix-set:AttributeName = "<#Mode selection bit 1#>"} + ModeSelectionBit1 : BOOL; // Command operation mode bit 1 | 10: 2 secondary operation mode + // | 11: 3 secondary operation mode + {#ix-set:AttributeName = "<#DC bus discharge#>"} + DCbusDischarge : BOOL; // 0: DC bus discharge not active + // 1: Start DC bus discharge function + {#ix-set:AttributeName = "<#_bit11_Reserve#>"} + _bit11_Reserve : BOOL; + {#ix-set:AttributeName = "<#Controlling the ready for operation relay#>"} + ControllingTheReadyForOperationRelay : BOOL; // 0: Open contact + // 1: Close contact, release + {#ix-set:AttributeName = "<#_bit13_Reserve#>"} + _bit13_Reserve : BOOL; + {#ix-set:AttributeName = "<#Controlling DC bus charging and mains contactor#>"} + ControllingDCbusChargingAndMainsContactor : BOOL; // 0: Mains disconnection e.g. by opening the mains contactor or by locking the mains thyristors + // 1: Charge DC bus by closing the mains contactor or by activating the mains thyristors - device goes into rectifier mode + {#ix-set:AttributeName = "<#Enabling#>"} + Enabling: BOOL; // 0: Disabled, command operation mode not active + // 1: Enabled, command operation mode active + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSupplyUnitStatusWord_S_0_1720_0_2.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSupplyUnitStatusWord_S_0_1720_0_2.st new file mode 100644 index 000000000..521939208 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXscSupplyUnitStatusWord_S_0_1720_0_2.st @@ -0,0 +1,42 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + {#ix-attr:[Group(GroupLayout.GroupBox)]} + {#ix-set:AttributeName = "<#SupplyUnitStatusWord#>"} + CLASS AxoCtrlxDriveXscSupplyUnitStatusWord_S_0_1720_0_2 + VAR PUBLIC + {#ix-set:AttributeName = "<#_bit0_Reserve#>"} + _bit0_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit1_Reserve#>"} + _bit1_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit2_Reserve#>"} + _bit2_Reserve : BOOL; + {#ix-set:AttributeName = "<#_bit3_Reserve#>"} + _bit3_Reserve : BOOL; + {#ix-set:AttributeName = "<#Mains status#>"} + MainsStatus : BOOL; + {#ix-set:AttributeName = "<#Hardware enable#>"} + HardwareEnable : BOOL; + {#ix-set:AttributeName = "<#Controlling the mains connection#>"} + ControllingTheMainsConnection : BOOL; + {#ix-set:AttributeName = "<#Bb contact#>"} + BbContact : BOOL; + {#ix-set:AttributeName = "<#Feedback of the preselected operation modes bit 0#>"} // 00: Primary operation mode + PreselectedOPmodesFB_bit0 : BOOL; // 10: Secondary operation mode 2 + {#ix-set:AttributeName = "<#Feedback of the preselected operation modes bit 1#>"} // 11: Secondary operation mode 3 + PreselectedOPmodesFB_bit01 : BOOL; + {#ix-set:AttributeName = "<#DC bus discharge#>"} + DCbusDischarge : BOOL; + {#ix-set:AttributeName = "<#Braking resistor#>"} + BrakingResistor : BOOL; + {#ix-set:AttributeName = "<#Warning#>"} + Warning : BOOL; + {#ix-set:AttributeName = "<#Error#>"} + Error : BOOL; + {#ix-set:AttributeName = "<#Ready for enabling#>"} + ReadyForEnabling: BOOL; + {#ix-set:AttributeName = "<#Enabling#>"} + Enabling: BOOL; + END_VAR + END_CLASS +END_NAMESPACE diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Component_Status.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Component_Status.st new file mode 100644 index 000000000..be09d5b68 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Component_Status.st @@ -0,0 +1,9 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Stack)]} + CLASS PUBLIC AxoCtrlxDriveXsc_Component_Status EXTENDS AXOpen.Components.Drives.AxoDrive_Status + VAR PUBLIC + + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Config.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Config.st new file mode 100644 index 000000000..9c2f45e07 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Config.st @@ -0,0 +1,12 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Stack)]} + CLASS PUBLIC AxoCtrlxDriveXsc_Config + VAR PUBLIC + {#ix-set:AttributeName = "<#Info time#>"} + InfoTime : LTIME := LT#5S; + {#ix-set:AttributeName = "<#Error time#>"} + ErrorTime : LTIME := LT#10S; + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Control.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Control.st new file mode 100644 index 000000000..469fe1804 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Control.st @@ -0,0 +1,28 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Tabs)]} + CLASS PUBLIC AxoCtrlxDriveXsc_Control + VAR PUBLIC + {#ix-set:AttributeName = "<#DriveControlWord_S_0_0134_0_0#>"} + DriveControlWord_S_0_0134_0_0 : AxoCtrlxDriveXscDriveControlWord_S_0_0134_0_0; + {#ix-set:AttributeName = "<#SignalControlWord_S_0_0145_0_0#>"} + SignalControlWord_S_0_0145_0_0 : AxoCtrlxDriveXscSignalControlWord_S_0_0145_0_0; + {#ix-set:AttributeName = "<#CommandPosition_S_0_0282_0_0#>"} + CommandPosition_S_0_0282_0_0 : DINT; + {#ix-set:AttributeName = "<#CommandVelocity_S_0_0259_0_0#>"} + CommandVelocity_S_0_0259_0_0 : DINT; + {#ix-set:AttributeName = "<#CommandAcceleration_S_0_0260_0_0#>"} + CommandAcceleration_S_0_0260_0_0 : DINT; + {#ix-set:AttributeName = "<#CommandDecceleration_S_0_0359_0_0#>"} + CommandDecceleration_S_0_0359_0_0 : DINT; + {#ix-set:AttributeName = "<#SupplyUnitControlWord_S_0_1720_0_1#>"} + SupplyUnitControlWord_S_0_1720_0_1 : AxoCtrlxDriveXscSupplyUnitControlWord_S_0_1720_0_1; + {#ix-set:AttributeName = "<#BipolarTorqueLimitation_S_0_0092_0_0#>"} + BipolarTorqueLimitation_S_0_0092_0_0: INT; + {#ix-set:AttributeName = "<#CommandTorque_S_0_0080_0_0#>"} + CommandTorque_S_0_0080_0_0 : INT; + {#ix-set:AttributeName = "<#CommandJerk_S_0_0193_0_0#>"} + CommandJerk_S_0_0193_0_0 : DINT; + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Status.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Status.st new file mode 100644 index 000000000..c55f4e20a --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/TypesStructuresAndEnums/AxoCtrlxDriveXsc_Status.st @@ -0,0 +1,25 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Tabs)]} + CLASS PUBLIC AxoCtrlxDriveXsc_Status + VAR PUBLIC + {#ix-set:AttributeName = "<#DriveStatusWord_S_0_0135_0_0#>"} + DriveStatusWord_S_0_0135_0_0 : AxoCtrlxDriveXscDriveStatusWord_S_0_0135_0_0; + {#ix-set:AttributeName = "<#SignalStatusWord_S_0_0144_0_0#>"} + SignalStatusWord_S_0_0144_0_0 : AxoCtrlxDriveXscSignalStatusWord_S_0_0144_0_0; + {#ix-set:AttributeName = "<#ActualPosition_S_0_0386_0_0#>"} + ActualPosition_S_0_0386_0_0 : DINT; + {#ix-set:AttributeName = "<#ActualVelocity_S_0_0535_0_0#>"} + ActualVelocity_S_0_0535_0_0 : DINT; + {#ix-set:AttributeName = "<#DiagnosticMessage_S_0_0390_0_0#>"} + DiagnosticMessage_S_0_0390_0_0 : DWORD; + {#ix-set:AttributeName = "<#SupplyUnitStatusWord_S_0_1720_0_2#>"} + SupplyUnitStatusWord_S_0_1720_0_2 : AxoCtrlxDriveXscSupplyUnitStatusWord_S_0_1720_0_2; + {#ix-set:AttributeName = "<#ActualTorque_S_0_0084_0_0#>"} + ActualTorque_S_0_0084_0_0 : INT; + END_VAR + END_CLASS +END_NAMESPACE + + + diff --git a/src/components.rexroth.drives/ctrl/src/AxoIndraDrive.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/AxoIndraDrive.st similarity index 91% rename from src/components.rexroth.drives/ctrl/src/AxoIndraDrive.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/AxoIndraDrive.st index 28c932f05..a22ccfbf7 100644 --- a/src/components.rexroth.drives/ctrl/src/AxoIndraDrive.st +++ b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/AxoIndraDrive.st @@ -6,19 +6,27 @@ USING AXOpen.Components.Abstractions; USING AXOpen.Components.Abstractions.Drives; USING AXOpen.Components.Drives; USING System.Math; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Rexroth.Drives {#ix-attr:[Container(Layout.Wrap)]} {S7.extern=ReadWrite} CLASS PUBLIC AxoIndraDrive EXTENDS AXOpen.Components.Drives.AxoDrive IMPLEMENTS AXOpen.Components.Abstractions.Drives.IAxoDrive - VAR PUBLIC + VAR PUBLIC //STATUS + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Status")]} + {#ix-attr:[ReadOnly()]} + DriveStatus : AxoIndraDrive_Component_Status; + Messenger : AXOpen.Messaging.Static.AxoMessenger; + TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; + END_VAR + VAR PUBLIC // HwDiag {#ix-attr:[Container(Layout.Stack)]} {#ix-attr:[ComponentDetails("Hardware diagnostics")]} {#ix-set:AttributeName = "<#Update diagnostics#>"} HardwareDiagnosticsTask : AXOpen.Io.AxoHardwareDiagnostics; END_VAR - VAR CONSTANT PositionExponent : INT := 4; VelocityExponent : INT := 3; @@ -36,10 +44,19 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisRefExt : AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; _Parameter : ARRAY[0..9] OF BYTE; _Fieldbus : ARRAY[0..25] OF BYTE; - _returnValue : WORD; + _hwID_F_ModulNotUsed : WORD; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _blink : AXOpen.Timers.AxoBlinker; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR - /// /// Runs tasks and logic of this component. /// >[!IMPORTANT] This method or one of its overloads must be called cyclically. @@ -48,9 +65,6 @@ NAMESPACE AXOpen.Components.Rexroth.Drives VAR_INPUT parent : IAxoObject; hwID : WORD; - hwIdParamCh_IDN : WORD; - hwIdInput_9_Words : WORD; - hwIdOutput_13_Words : WORD; Enable : BOOL; // As long as ‘Enable’ is true, power is being enabled. EnablePositive : BOOL; // As long as ‘Enable’ is true, this permits motion in positive direction EnableNegative : BOOL; // As long as ‘Enable’ is true, this permits motion in negative direction @@ -58,46 +72,236 @@ NAMESPACE AXOpen.Components.Rexroth.Drives SUPER.Run(parent); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#703,hwID = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#704,hwIdParamCh_IDN = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#705,hwIdInput_9_Words = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#706,hwIdOutput_13_Words = WORD#0, eAxoMessageCategory#ProgrammingError); + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate( UINT#700, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate( UINT#701, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#701; + RETURN; + END_IF; - IF parent = NULL THEN - DriveStatus.Error.Id := UINT#700; - RETURN; - ELSIF hwID = WORD#0 THEN - DriveStatus.Error.Id := UINT#703; - RETURN; - ELSIF hwIdParamCh_IDN = WORD#0 THEN - DriveStatus.Error.Id := UINT#704; - RETURN; - ELSIF hwIdInput_9_Words = WORD#0 THEN - DriveStatus.Error.Id := UINT#705; - RETURN; - ELSIF hwIdOutput_13_Words = WORD#0 THEN - DriveStatus.Error.Id := UINT#706; - RETURN; - END_IF; - - _AxisRefExt.Data.hwID := hwID; - _AxisRefExt.Data.hwIdParamCh_IDN := hwIdParamCh_IDN; - _AxisRefExt.Data.hwIdInput_9_Words := hwIdInput_9_Words; - _AxisRefExt.Data.hwIdOutput_13_Words := hwIdOutput_13_Words; + _AxisRefExt.Data.hwID := hwID; - Messenger.ActivateOnCondition(ULINT#300, Enable AND NOT EnablePositive, eAxoMessageCategory#Warning); - Messenger.ActivateOnCondition(ULINT#301, Enable AND NOT EnableNegative, eAxoMessageCategory#Warning); + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_AxisRefExt.Data.hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate( UINT#702,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#702; + RETURN; + END_IF; + + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _AxisRefExt.Data.hwIdParamCh_IDN := TO_WORD(_outHwid); + IF _AxisRefExt.Data.hwIdParamCh_IDN = WORD#0 THEN + Messenger.Activate( UINT#710,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#711,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#712,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#713,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#714,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#715,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _AxisRefExt.Data.hwIdParamCh_IDN , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#10 OR _outputsCount <> UINT#10 THEN + Messenger.Activate( UINT#716,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwID_F_ModulNotUsed := TO_WORD(_outHwid); + IF _hwID_F_ModulNotUsed = WORD#0 THEN + Messenger.Activate( UINT#720,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#721,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#722,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#723,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#724,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#725,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwID_F_ModulNotUsed , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#726,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 3*****************// + _geoAddr.Slot := UINT#3; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _AxisRefExt.Data.hwIdInput_9_Words := TO_WORD(_outHwid); + IF _AxisRefExt.Data.hwIdInput_9_Words = WORD#0 THEN + Messenger.Activate( UINT#730,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#731,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#732,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#733,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#734,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#735,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _AxisRefExt.Data.hwIdInput_9_Words , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#18 OR _outputsCount <> UINT#0 THEN + Messenger.Activate( UINT#736,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 4*****************// + _geoAddr.Slot := UINT#4; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _AxisRefExt.Data.hwIdOutput_13_Words := TO_WORD(_outHwid); + IF _AxisRefExt.Data.hwIdOutput_13_Words = WORD#0 THEN + Messenger.Activate( UINT#740,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate( UINT#741,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate( UINT#742,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate( UINT#743,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate( UINT#744,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate( UINT#745,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _AxisRefExt.Data.hwIdOutput_13_Words , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#26 THEN + Messenger.Activate( UINT#746,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#746; + RETURN; + END_IF; + + IF parent = NULL THEN + Messenger.Activate( UINT#1130,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1130; + RETURN; + END_IF; + IF _AxisRefExt.Data.hwID = WORD#0 THEN + Messenger.Activate( UINT#1131,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1131; + RETURN; + END_IF; + IF _AxisRefExt.Data.hwIdParamCh_IDN = WORD#0 THEN + Messenger.Activate( UINT#1132,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1132; + RETURN; + END_IF; + IF _hwID_F_ModulNotUsed = WORD#0 THEN + Messenger.Activate( UINT#1133,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1133; + RETURN; + END_IF; + IF _AxisRefExt.Data.hwIdInput_9_Words = WORD#0 THEN + Messenger.Activate( UINT#1134,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1134; + RETURN; + END_IF; + IF _AxisRefExt.Data.hwIdOutput_13_Words = WORD#0 THEN + Messenger.Activate( UINT#1135,eAxoMessageCategory#Error); + DriveStatus.Error.Id := UINT#1135; + RETURN; + END_IF; + _initHwCheckDone := TRUE; + END_IF; - //*****************PreExecute inline************************** + Messenger.ActivateOnCondition(ULINT#300, Enable AND NOT EnablePositive, eAxoMessageCategory#Warning); + Messenger.ActivateOnCondition(ULINT#301, Enable AND NOT EnableNegative, eAxoMessageCategory#Warning); HardwareDiagnosticsTask.Run(THIS,_AxisRefExt.Data.hwID); - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_AxisRefExt.Data.hwIdParamCh_IDN ,_Parameter); - Messenger.ActivateOnCondition(ULINT#827,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - DriveStatus.Error.Id := UINT#827; + //***********Update inputs ************** + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_AxisRefExt.Data.hwIdParamCh_IDN ,_Parameter); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1201; RETURN; END_IF; @@ -120,10 +324,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisRefExt.Parameter_In.DataWord_3.%B1 := _Parameter[8]; - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_AxisRefExt.Data.hwIdInput_9_Words ,_Fieldbus); - Messenger.ActivateOnCondition(ULINT#828,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - DriveStatus.Error.Id := UINT#828; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_AxisRefExt.Data.hwIdInput_9_Words ,_Fieldbus); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1202, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1202; RETURN; END_IF; @@ -203,12 +407,12 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _Parameter[9] := _AxisRefExt.Parameter_Out.DataWord_1.%B0; _Parameter[8] := _AxisRefExt.Parameter_Out.DataWord_1.%B1; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_AxisRefExt.Data.hwIdParamCh_IDN,_Parameter); - Messenger.ActivateOnCondition(ULINT#829,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - DriveStatus.Error.Id := UINT#829; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_AxisRefExt.Data.hwIdParamCh_IDN,_Parameter); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1231; RETURN; - END_IF; + END_IF; _Fieldbus[1].%X0 := _AxisRefExt.FieldBus_Out.SetpointAcceptance; _Fieldbus[1].%X1 := _AxisRefExt.FieldBus_Out.OperatingModeSet; @@ -252,12 +456,12 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _Fieldbus[25] := _AxisRefExt.FieldBus_Out.S_0_0193_CommandJerk.%B0; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_AxisRefExt.Data.hwIdOutput_13_Words,_Fieldbus); - Messenger.ActivateOnCondition(ULINT#830,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - DriveStatus.Error.Id := UINT#830; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_AxisRefExt.Data.hwIdOutput_13_Words,_Fieldbus); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1232, eAxoMessageCategory#ProgrammingError); + DriveStatus.Error.Id := UINT#1232; RETURN; - END_IF; + END_IF; //************************************************************ END_METHOD @@ -265,9 +469,8 @@ NAMESPACE AXOpen.Components.Rexroth.Drives /// /// Ensures swapping the hardware input data structure into the AxisRef data structure /// - METHOD PROTECTED OVERRIDE UpdateInputs : BOOL + METHOD PROTECTED OVERRIDE UpdateInputs : BOOL VAR_INPUT - refAxisIn : REF_TO ARRAY[*] OF BYTE; // Reference to the input data of the axis AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; END_VAR ; @@ -281,7 +484,6 @@ NAMESPACE AXOpen.Components.Rexroth.Drives METHOD PROTECTED OVERRIDE UpdateOutputs : BOOL VAR_INPUT AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; - refAxisOut : REF_TO ARRAY[*] OF BYTE; // Reference to the output data of the axis END_VAR ; END_METHOD @@ -1144,7 +1346,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Status : BOOL; // Effective state of the power stage Valid : BOOL; // If true, a valid set of outputs is available at the method Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -1153,7 +1355,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#709,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1401,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -1161,7 +1363,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Status := FALSE; Error := FALSE; - ErrorID := WORD#0; + ErrorID := DINT#0; Valid := FALSE; IF Enable OR MC_PowerEnable_PV THEN IF _AxisReference^.Data.CheckAccessOK THEN @@ -1182,16 +1384,16 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _AxisReference^.Data.PowerError = TRUE THEN Error := TRUE; (* Set the ERROR-Output *) Valid := TRUE; - ErrorID := _AxisReference^.Data.ErrorID; + ErrorID := TO_DINT(_AxisReference^.Data.ErrorID); ELSIF _AxisReference^.Data.CallAxis THEN Error := TRUE; Valid := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; ELSE Error := TRUE; Valid := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID :=TO_DINT( AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; END_IF; MC_PowerEnable_PV := Enable; @@ -1210,7 +1412,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_HomeActive_ : BOOL; MC_HomeCommandAborted_ : BOOL; MC_HomeError_ : BOOL; - MC_HomeErrorID_ : AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode; + MC_HomeErrorID_ : DINT; MC_HomeState_ : UINT; END_VAR METHOD PUBLIC OVERRIDE MC_Home @@ -1229,12 +1431,12 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; - _ErrorID : WORD; + _ErrorID : DINT; _HommingMode: DINT; Dummy : BOOL; _result : IAxoTaskState; @@ -1242,7 +1444,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#710,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1402,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -1361,19 +1563,19 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Data.Deceleration := Deceleration; ELSE MC_HomeError_ := TRUE; - MC_HomeErrorID_ := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#STATE_MACHINE_Error; (*State machine MC_HomeError_*) + MC_HomeErrorID_ := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#STATE_MACHINE_Error); (*State machine MC_HomeError_*) END_IF; END_IF; ELSE MC_HomeCallNumber := MC_HomeCallNumber - INT#1; MC_HomeError_ := TRUE; - MC_HomeErrorID_ := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_Error; + MC_HomeErrorID_ := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_Error); END_IF; IF NOT Execute AND MC_HomeExecute_PV THEN _AxisReference^.Data.HomingReq:= FALSE; MC_HomeCommandAborted_ := FALSE; MC_HomeError_ := FALSE; - MC_HomeErrorID_ := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_Error; + MC_HomeErrorID_ := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_Error); END_IF; // ELSE // MC_HomeDone_ := FALSE; @@ -1401,10 +1603,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_HomeDone_ := FALSE; MC_HomeActive_ := FALSE; MC_HomeError_ := TRUE; - MC_HomeErrorID_ := _AxisReference^.Data.ErrorID; + MC_HomeErrorID_ := TO_DINT(_AxisReference^.Data.ErrorID); ELSIF _AxisReference^.Data.CallAxis THEN MC_HomeError_ := TRUE; - MC_HomeErrorID_ := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + MC_HomeErrorID_ := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; END_IF; END_IF; @@ -1416,7 +1618,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_HomeActive_ := FALSE; MC_HomeCommandAborted_ := FALSE; MC_HomeError_ := FALSE; - MC_HomeErrorID_ := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + MC_HomeErrorID_ := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); MC_HomeState_ := UINT#0; IF MC_HomeCallNumber = _AxisReference^.Data.CallNumberCyclic THEN _AxisReference^.Data.CallAxis := TRUE; @@ -1463,7 +1665,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -1472,7 +1674,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#711,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1403,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -1498,16 +1700,16 @@ NAMESPACE AXOpen.Components.Rexroth.Drives CommandWriteActive=> Dummy); IF _AxisReference^.Data.StopError AND MC_StopCallNumber = _AxisReference^.Data.CallNumberCyclic THEN Error := TRUE; (* Set the ERROR-Output *) - ErrorID := _AxisReference^.Data.ErrorID; + ErrorID := TO_DINT(_AxisReference^.Data.ErrorID); ELSIF _AxisReference^.Data.CallAxis THEN Active := FALSE; Error := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; ELSE MC_StopCallNumber := MC_StopCallNumber - INT#1; Error := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; END_IF; IF _AxisReference^.Data.Stopped THEN @@ -1519,7 +1721,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives END_IF; ELSE Error := FALSE; - ErrorID := WORD#0; + ErrorID := DINT#0; END_IF; IF NOT Execute AND MC_StopFirstCall AND Active THEN IF MC_StopCallNumber = _AxisReference^.Data.CallNumberCyclic THEN @@ -1573,7 +1775,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by switching off power (only possibility to abort) Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -1582,7 +1784,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#712,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1404,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -1664,7 +1866,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := MC_HaltActive_; CommandAborted := MC_HaltCommandAborted_; Error := MC_HaltError_; - ErrorID := MC_HaltErrorID_; + ErrorID := TO_DINT(MC_HaltErrorID_); END_METHOD @@ -1701,7 +1903,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -1710,7 +1912,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#713,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1405,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -1817,7 +2019,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := MC_MoveAbsoluteActive_; CommandAborted := MC_MoveAbsoluteCommandAborted_; Error := MC_MoveAbsoluteError_; - ErrorID := MC_MoveAbsoluteErrorID_; + ErrorID := TO_DINT(MC_MoveAbsoluteErrorID_); END_METHOD @@ -1854,7 +2056,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -1863,7 +2065,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#714,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1406,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -1973,7 +2175,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := MC_MoveRelativeActive_; CommandAborted := MC_MoveRelativeCommandAborted_; Error := MC_MoveRelativeError_; - ErrorID := MC_MoveRelativeErrorID_; + ErrorID := TO_DINT(MC_MoveRelativeErrorID_); END_METHOD /// @@ -2012,7 +2214,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -2021,7 +2223,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#715,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1407,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -2131,7 +2333,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := MC_MoveAdditiveActive_; CommandAborted := MC_MoveAdditiveCommandAborted_; Error := MC_MoveAdditiveError_; - ErrorID := MC_MoveAdditiveErrorID_; + ErrorID := TO_DINT(MC_MoveAdditiveErrorID_); END_METHOD /// @@ -2164,7 +2366,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -2174,13 +2376,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#716,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1408,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#737,Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1429,Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection, eAxoMessageCategory#ProgrammingError); IF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN Velocity_ := Velocity; @@ -2277,7 +2479,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Busy := Active AND NOT InVelocity; CommandAborted := MC_MoveVelocityCommandAborted_; Error := MC_MoveVelocityError_; - ErrorID := MC_MoveVelocityErrorID_; + ErrorID := TO_DINT(MC_MoveVelocityErrorID_); END_METHOD /// @@ -2316,7 +2518,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active : BOOL; // Indicates that the method has control on the axis CommandAborted : BOOL; // ‘Command’ is aborted by another command Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -2327,13 +2529,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#717,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1409,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; END_IF; - Messenger.ActivateOnCondition(ULINT#739,Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1430,Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection AND Direction <> AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#NegativeDirection, eAxoMessageCategory#ProgrammingError); IF Direction = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN Torque_ := Torque; @@ -2448,7 +2650,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Busy := Active AND NOT InTorque; CommandAborted := MC_TorqueControlCommandAborted_; Error := MC_TorqueControlError_; - ErrorID := MC_TorqueControlErrorID_; + ErrorID := TO_DINT(MC_TorqueControlErrorID_); END_METHOD @@ -2478,7 +2680,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done : BOOL; // ‘Position’ has new value Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -2488,11 +2690,12 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _Valid : BOOL; _Error : BOOL; _Position : LREAL; + _dint : DINT; END_VAR _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#718,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1410 ,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -2520,7 +2723,8 @@ NAMESPACE AXOpen.Components.Rexroth.Drives END_IF; END_IF; IF MC_SetPositionState_ = UINT#20 THEN - THIS.AxoReadActualPosition(Enable := TRUE,Valid => _Valid, Error => _Error,ErrorID => _ErrorID, Position => _Position); + THIS.AxoReadActualPosition(Enable := TRUE,Valid => _Valid, Error => _Error, ErrorID => _dint, Position => _Position); + _ErrorID := TO_WORD(_dint); IF _Error THEN MC_SetPositionError_ := TRUE; MC_SetPositionErrorID_ := _ErrorID; @@ -2531,14 +2735,16 @@ NAMESPACE AXOpen.Components.Rexroth.Drives END_IF; END_IF; IF MC_SetPositionState_ = UINT#30 THEN - THIS.AxoReadActualPosition(Enable := FALSE,Valid => _Valid, Error => _Error,ErrorID => _ErrorID, Position => _Position); + THIS.AxoReadActualPosition(Enable := FALSE,Valid => _Valid, Error => _Error,ErrorID => _dint, Position => _Position); + _ErrorID := TO_WORD(_dint); IF NOT _Valid THEN MC_SetPositionState_ := MC_SetPositionState_ + UINT#10; END_IF; END_IF; IF MC_SetPositionState_ = UINT#40 THEN //S-0-0275, Coordinate offset value - _result := THIS.AxoWriteParameter(ParameterNumber := 275, Value := MC_SetPositionValue_ ,ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately, ErrorID =>_ErrorID); + _result := THIS.AxoWriteParameter(ParameterNumber := 275, Value := MC_SetPositionValue_ ,ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately, ErrorID =>_dint); + _ErrorID := TO_WORD(_dint); IF _result.IsDone() THEN MC_SetPositionState_ := MC_SetPositionState_ + UINT#10; END_IF; @@ -2556,7 +2762,8 @@ NAMESPACE AXOpen.Components.Rexroth.Drives END_IF; IF MC_SetPositionState_ = UINT#60 THEN //S-0-0199, C3400 Shift coordinate system procedure command - _result := THIS.AxoWriteParameter(ParameterNumber := 199, Value := 3 ,ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately, ErrorID =>_ErrorID); + _result := THIS.AxoWriteParameter(ParameterNumber := 199, Value := 3 ,ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately, ErrorID =>_dint); + _ErrorID := TO_WORD(_dint); IF _result.IsDone() THEN MC_SetPositionState_ := MC_SetPositionState_ + UINT#10; END_IF; @@ -2574,7 +2781,8 @@ NAMESPACE AXOpen.Components.Rexroth.Drives END_IF; IF MC_SetPositionState_ = UINT#80 THEN //S-0-0199, C3400 Shift coordinate system procedure command - _result := THIS.AxoWriteParameter(ParameterNumber := 199, Value := 0 ,ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately, ErrorID =>_ErrorID); + _result := THIS.AxoWriteParameter(ParameterNumber := 199, Value := 0 ,ExecutionMode := AXOpen.Components.Abstractions.Drives.eAxoExecutionMode#Immediately, ErrorID =>_dint); + _ErrorID := TO_WORD(_dint); IF _result.IsDone() THEN MC_SetPositionState_ := MC_SetPositionState_ + UINT#10; END_IF; @@ -2599,7 +2807,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done := MC_SetPositionDone_; Busy := MC_SetPositionBusy_; Error := MC_SetPositionError_; - ErrorID := MC_SetPositionErrorID_; + ErrorID := TO_DINT(MC_SetPositionErrorID_); IF NOT Execute THEN @@ -2627,7 +2835,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Enabled : BOOL; // Signals that the override factor(s) is (are) set successfully Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -2636,7 +2844,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#719,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1411,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -2649,7 +2857,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Enabled := FALSE; Busy := FALSE; Error := TRUE; - ErrorID:= AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#INPUT_RANGE_ERROR; + ErrorID:= TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#INPUT_RANGE_ERROR); ELSE _AxisReference^.Data.CallAxis := TRUE; IF _AxisReference^.Data.OverrideVelocityFactor <> VelocityFactor OR _AxisReference^.Data.OverrideAccelerationFactor <> AccelerationFactor OR _AxisReference^.Data.OverrideJerkFactor <> JerkFactor THEN @@ -2663,19 +2871,19 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Enabled := TRUE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); END_IF; ELSE Enabled := FALSE; Busy := FALSE; Error := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; ELSE Enabled := FALSE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); END_IF; @@ -2707,7 +2915,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : LINT; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR VAR @@ -2717,7 +2925,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#720,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1412,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -2799,7 +3007,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid := MC_ReadParameterDone_; Busy := MC_ReadParameterActive_; Error := MC_ReadParameterError_; - ErrorID := MC_ReadParameterErrorID_; + ErrorID := TO_DINT(MC_ReadParameterErrorID_); IF Valid THEN Value := MC_ReadParameterValue_; ELSE @@ -2832,7 +3040,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : REAL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR VAR @@ -2842,7 +3050,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#721,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1413,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -2924,7 +3132,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid := MC_ReadRealParameterDone_; Busy := MC_ReadRealParameterActive_; Error := MC_ReadRealParameterError_; - ErrorID := MC_ReadRealParameterErrorID_; + ErrorID := TO_DINT(MC_ReadRealParameterErrorID_); IF Valid THEN Value := MC_ReadRealParameterValue_; ELSE @@ -2945,7 +3153,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // Value of the specified parameter in the datatype, as specified by the vendor END_VAR VAR @@ -2956,7 +3164,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#722,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1414,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -2989,7 +3197,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -2998,7 +3206,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#723,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1415,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3076,7 +3284,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done := MC_WriteParameterDone_; Busy := MC_WriteParameterActive_; Error := MC_WriteParameterError_; - ErrorID := MC_WriteParameterErrorID_; + ErrorID := TO_DINT(MC_WriteParameterErrorID_); END_METHOD /// @@ -3104,7 +3312,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -3113,7 +3321,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#724,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1416,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3191,7 +3399,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done := MC_WriteRealParameterDone_; Busy := MC_WriteRealParameterActive_; Error := MC_WriteRealParameterError_; - ErrorID := MC_WriteRealParameterErrorID_; + ErrorID := TO_DINT(MC_WriteRealParameterErrorID_); END_METHOD /// @@ -3209,7 +3417,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done : BOOL; // Parameter successfully written Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -3218,7 +3426,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#725,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1417,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3252,7 +3460,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected input signal END_VAR VAR @@ -3262,7 +3470,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#726,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1418,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3344,7 +3552,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid := MC_ReadDigitalInputDone_; Busy := MC_ReadDigitalInputActive_; Error := MC_ReadDigitalInputError_; - ErrorID := MC_ReadDigitalInputErrorID_; + ErrorID := TO_DINT(MC_ReadDigitalInputErrorID_); IF Valid THEN IF InputNumber >=0 AND InputNumber <=15 THEN @@ -3381,7 +3589,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Value : BOOL; // The value of the selected output signal END_VAR VAR @@ -3391,7 +3599,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#727,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1419,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3473,7 +3681,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid := MC_ReadDigitalOutputDone_; Busy := MC_ReadDigitalOutputActive_; Error := MC_ReadDigitalOutputError_; - ErrorID := MC_ReadDigitalOutputErrorID_; + ErrorID := TO_DINT(MC_ReadDigitalOutputErrorID_); IF Valid THEN IF OutputNumber >=0 AND OutputNumber <=15 THEN Value := System.BitAccess.GetBit(TO_WORD(MC_ReadDigitalOutputValue_),TO_USINT(OutputNumber)); @@ -3511,19 +3719,19 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done : BOOL; // Writing of the output signal value is done Busy : BOOL; // The method is not finished and new output values are to be expected. Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; Dummy : BOOL; Valid_ : BOOL; Error_ : BOOL; - ErrorID_ : WORD; + ErrorID_ : DINT; END_VAR _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#728,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1420,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3639,7 +3847,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done := MC_WriteDigitalOutputDone_; Busy := MC_WriteDigitalOutputActive_; Error := MC_WriteDigitalOutputError_; - ErrorID := MC_WriteDigitalOutputErrorID_; + ErrorID := TO_DINT(MC_WriteDigitalOutputErrorID_); END_METHOD /// @@ -3654,7 +3862,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Position : LREAL; // New absolute position (in axis’ unit [u]) END_VAR VAR @@ -3664,7 +3872,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#729,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1421,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3679,17 +3887,17 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid := TRUE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); ELSE Position := 0; Error := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; ELSE Valid := FALSE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); Position := 0; END_IF; END_METHOD @@ -3708,7 +3916,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Velocity : LREAL; // The value of the actual velocity (in axis’ unit [u/s]) END_VAR VAR @@ -3718,7 +3926,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#730,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1422,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3733,17 +3941,17 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid := TRUE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); ELSE Velocity := 0; Error := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; ELSE Valid := FALSE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); Velocity := 0; END_IF; END_METHOD @@ -3762,7 +3970,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification Torque : LREAL; // The value of the actual torque or force (in technical units) END_VAR VAR @@ -3772,7 +3980,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#731,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1423,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3787,17 +3995,17 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid := TRUE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); ELSE Torque := 0; Error := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; ELSE Valid := FALSE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); Torque := 0; END_IF; @@ -3820,7 +4028,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ErrorStop : BOOL; // See state diagram Disabled : BOOL; // See state diagram Stopping : BOOL; // See state diagram @@ -3837,7 +4045,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#732,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1424,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3859,10 +4067,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Homing := _AxisReference^.Data.HomingRunning; // InPosition := _AxisReference^.Data.InPosition; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); ELSE Error := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; ELSIF MC_ReadStatusEnable_PV THEN Errorstop := FALSE; @@ -3875,7 +4083,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives // InPosition := FALSE; Valid := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); END_IF; MC_ReadStatusEnable_PV := Enable; END_METHOD @@ -3893,7 +4101,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification ConstantVelocity: BOOL; // Velocity is constant. Velocity may be 0. For the actual value a window is applicable (window is vendor specific) Accelerating : BOOL; // Increasing the absolute value of the velocity Decelerating : BOOL; // Decreasing the absolute value of the velocity @@ -3907,7 +4115,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#733,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1425,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3928,7 +4136,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification HomeAbsSwitch : BOOL; // Digital home switch input is active LimitSwitchPos : BOOL; // Positive hardware end switch is active LimitSwitchNeg : BOOL; // Negative hardware end switch is active @@ -3946,7 +4154,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#734,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1426,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3970,7 +4178,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid : BOOL; // A valid output is available at the method Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification AxisErrorID : DWORD; // The value of the axis error. These values are vendor specific END_VAR VAR @@ -3981,7 +4189,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#735,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1427,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -3996,7 +4204,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Valid := TRUE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); IF(AxisErrorID >= DWORD#16#000A0000 AND AxisErrorID <= DWORD#16#000AFFFF) THEN _category := eAxoMessageCategory#Info; ELSIF(AxisErrorID >= DWORD#16#000C0000 AND AxisErrorID <= DWORD#16#000CFFFF) THEN @@ -4009,13 +4217,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives ELSE AxisErrorID := DWORD#0; Error := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; ELSE Valid := FALSE; Busy := FALSE; Error := FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); AxisErrorID := DWORD#0; END_IF; @@ -4044,7 +4252,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Done : BOOL; // ‘Standstill’ or ‘Disabled’ state is reached Busy : BOOL; // The method is not finished and new output values are to be expected Error : BOOL; // Signals that an error has occurred within the method - ErrorID : WORD; // Error identification + ErrorID : DINT; // Error identification END_VAR VAR _AxisReference : REF_TO AXOpen.Components.Rexroth.Drives.AxoIndraDriveAxisReference; @@ -4053,7 +4261,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference ?= AxisRef; - Messenger.ActivateOnCondition(ULINT#736,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); + Messenger.ActivateOnCondition(ULINT#1428,_AxisReference = NULL, eAxoMessageCategory#ProgrammingError); IF(_AxisReference = NULL) THEN RETURN; @@ -4067,7 +4275,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Data.ResetReq := TRUE; ELSE Error := TRUE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#RESOURCE_ERROR); END_IF; END_IF; IF Busy THEN @@ -4084,7 +4292,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives ELSIF NOT Execute AND MC_ResetExecute_PV THEN Done := FALSE; Error:=FALSE; - ErrorID := AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR; + ErrorID := TO_DINT(AXOpen.Components.Rexroth.Drives.eAxoIndraDriveErrorCode#NONE_ERROR); Busy := FALSE; IF _AxisReference^.Data.CheckAccessOK THEN _AxisReference^.Data.ResetReq := FALSE; @@ -4163,7 +4371,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_HomeActive_ := FALSE; MC_HomeCommandAborted_ := FALSE; MC_HomeError_ := FALSE; - MC_HomeErrorID_ := eAxoIndraDriveErrorCode#NONE_ERROR; + MC_HomeErrorID_ := TO_DINT(eAxoIndraDriveErrorCode#NONE_ERROR); MC_HomeState_ := UINT#0; MC_StopExecute_PV := FALSE; diff --git a/src/components.rexroth.drives/ctrl/src/AxoIndraDriveAxisData.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveAxisData.st similarity index 100% rename from src/components.rexroth.drives/ctrl/src/AxoIndraDriveAxisData.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveAxisData.st diff --git a/src/components.rexroth.drives/ctrl/src/AxoIndraDriveAxisReference.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveAxisReference.st similarity index 100% rename from src/components.rexroth.drives/ctrl/src/AxoIndraDriveAxisReference.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveAxisReference.st diff --git a/src/components.rexroth.drives/ctrl/src/AxoIndraDriveErrorStruct.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveErrorStruct.st similarity index 100% rename from src/components.rexroth.drives/ctrl/src/AxoIndraDriveErrorStruct.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveErrorStruct.st diff --git a/src/components.rexroth.drives/ctrl/src/AxoIndraDriveFieldBusIn.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveFieldBusIn.st similarity index 100% rename from src/components.rexroth.drives/ctrl/src/AxoIndraDriveFieldBusIn.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveFieldBusIn.st diff --git a/src/components.rexroth.drives/ctrl/src/AxoIndraDriveFieldBusOut.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveFieldBusOut.st similarity index 100% rename from src/components.rexroth.drives/ctrl/src/AxoIndraDriveFieldBusOut.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveFieldBusOut.st diff --git a/src/components.rexroth.drives/ctrl/src/AxoIndraDriveParameterIn.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveParameterIn.st similarity index 100% rename from src/components.rexroth.drives/ctrl/src/AxoIndraDriveParameterIn.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveParameterIn.st diff --git a/src/components.rexroth.drives/ctrl/src/AxoIndraDriveParameterOut.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveParameterOut.st similarity index 100% rename from src/components.rexroth.drives/ctrl/src/AxoIndraDriveParameterOut.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDriveParameterOut.st diff --git a/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDrive_Component_Status.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDrive_Component_Status.st new file mode 100644 index 000000000..d09bf91e3 --- /dev/null +++ b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/AxoIndraDrive_Component_Status.st @@ -0,0 +1,14 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Stack)]} + // CLASS PUBLIC AxoIndraDrive_Component_Status EXTENDS AXOpen.Components.Abstractions.AxoComponent_Status + // VAR PUBLIC + + // END_VAR + // END_CLASS + CLASS PUBLIC AxoIndraDrive_Component_Status EXTENDS AXOpen.Components.Drives.AxoDrive_Status + VAR PUBLIC + + END_VAR + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/components.rexroth.drives/ctrl/src/eAxoIndraDriveErrorCode.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/eAxoIndraDriveErrorCode.st similarity index 100% rename from src/components.rexroth.drives/ctrl/src/eAxoIndraDriveErrorCode.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/eAxoIndraDriveErrorCode.st diff --git a/src/components.rexroth.drives/ctrl/src/eAxoIndraDriveErrorTable.st b/src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/eAxoIndraDriveErrorTable.st similarity index 100% rename from src/components.rexroth.drives/ctrl/src/eAxoIndraDriveErrorTable.st rename to src/components.rexroth.drives/ctrl/src/AxoIndraDrive/TypesStructuresAndEnums/eAxoIndraDriveErrorTable.st diff --git a/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.cs b/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.cs new file mode 100644 index 000000000..329860e15 --- /dev/null +++ b/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.cs @@ -0,0 +1,2616 @@ +using AXOpen.Messaging.Static; +using AXSharp.Connector; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AXOpen.Components.Rexroth.Drives +{ + public partial class AxoCtrlxDriveXsc + { + partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) + { + try + { + InitializeMessenger(); + InitializeTaskMessenger(); + } + catch (Exception) + { + + throw; + } + } + private void InitializeMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(50, new AxoMessengerTextItem("Restore has been executed.","")), + // TemplateTask_10steps_1 + new KeyValuePair(100, new AxoMessengerTextItem("TemplateTask_10steps_1 started.","")), + new KeyValuePair(101, new AxoMessengerTextItem("TemplateTask_10steps_1 finished succesfully.","")), + new KeyValuePair(102, new AxoMessengerTextItem("TemplateTask_10steps_1 restored.","")), + // TemplateTask_10steps_2 + new KeyValuePair(110, new AxoMessengerTextItem("TemplateTask_10steps_2 started.","")), + new KeyValuePair(111, new AxoMessengerTextItem("TemplateTask_10steps_2 finished succesfully.","")), + new KeyValuePair(112, new AxoMessengerTextItem("TemplateTask_10steps_2 restored.","")), + // TemplateTask_10steps_3 + new KeyValuePair(120, new AxoMessengerTextItem("TemplateTask_10steps_3 started.","")), + new KeyValuePair(121, new AxoMessengerTextItem("TemplateTask_10steps_3 finished succesfully.","")), + new KeyValuePair(122, new AxoMessengerTextItem("TemplateTask_10steps_3 restored.","")), + // TemplateTask_10steps_4 + new KeyValuePair(130, new AxoMessengerTextItem("TemplateTask_10steps_4 started.","")), + new KeyValuePair(131, new AxoMessengerTextItem("TemplateTask_10steps_4 finished succesfully.","")), + new KeyValuePair(132, new AxoMessengerTextItem("TemplateTask_10steps_4 restored.","")), + // TemplateTask_10steps_5 + new KeyValuePair(140, new AxoMessengerTextItem("TemplateTask_10steps_5 started.","")), + new KeyValuePair(141, new AxoMessengerTextItem("TemplateTask_10steps_5 finished succesfully.","")), + new KeyValuePair(142, new AxoMessengerTextItem("TemplateTask_10steps_5 restored.","")), + // TemplateTask_10steps_6 + new KeyValuePair(150, new AxoMessengerTextItem("TemplateTask_10steps_6 started.","")), + new KeyValuePair(151, new AxoMessengerTextItem("TemplateTask_10steps_6 finished succesfully.","")), + new KeyValuePair(152, new AxoMessengerTextItem("TemplateTask_10steps_6 restored.","")), + // TemplateTask_20steps_1 + new KeyValuePair(160, new AxoMessengerTextItem("TemplateTask_20steps_1 started.","")), + new KeyValuePair(161, new AxoMessengerTextItem("TemplateTask_20steps_1 finished succesfully.","")), + new KeyValuePair(162, new AxoMessengerTextItem("TemplateTask_20steps_1 restored.","")), + // TemplateTask_20steps_2 + new KeyValuePair(180, new AxoMessengerTextItem("TemplateTask_20steps_2 started.","")), + new KeyValuePair(181, new AxoMessengerTextItem("TemplateTask_20steps_2 finished succesfully.","")), + new KeyValuePair(182, new AxoMessengerTextItem("TemplateTask_20steps_2 restored.","")), + // TemplateTask_20steps_3 + new KeyValuePair(200, new AxoMessengerTextItem("TemplateTask_20steps_3 started.","")), + new KeyValuePair(201, new AxoMessengerTextItem("TemplateTask_20steps_3 finished succesfully.","")), + new KeyValuePair(202, new AxoMessengerTextItem("TemplateTask_20steps_3 restored.","")), + // TemplateTask_20steps_4 + new KeyValuePair(220, new AxoMessengerTextItem("TemplateTask_20steps_4 started.","")), + new KeyValuePair(221, new AxoMessengerTextItem("TemplateTask_20steps_4 finished succesfully.","")), + new KeyValuePair(222, new AxoMessengerTextItem("TemplateTask_20steps_4 restored.","")), + // TemplateTask_20steps_5 + new KeyValuePair(240, new AxoMessengerTextItem("TemplateTask_20steps_5 started.","")), + new KeyValuePair(241, new AxoMessengerTextItem("TemplateTask_20steps_5 finished succesfully.","")), + new KeyValuePair(242, new AxoMessengerTextItem("TemplateTask_20steps_5 restored.","")), + // TemplateTask_20steps_6 + new KeyValuePair(260, new AxoMessengerTextItem("TemplateTask_20steps_6 started.","")), + new KeyValuePair(261, new AxoMessengerTextItem("TemplateTask_20steps_6 finished succesfully.","")), + new KeyValuePair(262, new AxoMessengerTextItem("TemplateTask_20steps_6 restored.","")), + + new KeyValuePair(300, new AxoMessengerTextItem("Movement to the positive direction disabled!" ,"Check the safety conditions.")), + new KeyValuePair(301, new AxoMessengerTextItem("Movement to the negative direction disabled!" ,"Check the safety conditions.")), + // General alarms + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of _HW_Outputs is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Outputs' (GsdId=ID_M_XCS_INI_0_cons)." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of _HW_Inputs is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'Inputs' (GsdId=ID_M_XCS_INI_0_prod)." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0134_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 1. Expected GsdId of the submodule: 'ID_SM_Master_control_word_S_0_0134_0_0_cons'." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0145_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 2. Expected GsdId of the submodule: 'ID_SM_Signal_control_word_S_0_0145_0_0_cons'." ,"Check the hardware configuration.")), + + new KeyValuePair(750, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0282_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(751, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(752, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(753, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(754, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(755, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(756, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 3. Expected GsdId of the submodule: 'ID_SM_Positioning_command_value_S_0_0282_0_0_cons'." ,"Check the hardware configuration.")), + + new KeyValuePair(760, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0259_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(761, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(762, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(763, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(764, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(765, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(766, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 4. Expected GsdId of the submodule: 'ID_SM_Positioning_velocity_S_0_0259_0_0_cons'." ,"Check the hardware configuration.")), + + new KeyValuePair(770, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0260_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(771, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(772, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(773, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(774, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(775, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(776, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 5. Expected GsdId of the submodule: 'ID_SM_Positioning_acceleration_S_0_0260_0_0_cons'." ,"Check the hardware configuration.")), + + new KeyValuePair(780, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0359_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(781, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(782, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(783, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(784, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(785, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(786, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 6. Expected GsdId of the submodule: 'ID_SM_Positioning_deceleration_S_0_0359_0_0_cons'." ,"Check the hardware configuration.")), + + new KeyValuePair(790, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_1720_0_1 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(791, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(792, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(793, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(794, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(795, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(796, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 7. Expected GsdId of the submodule: 'ID_SM_Power_supply_control_word_S_0_1720_0_1_cons'." ,"Check the hardware configuration.")), + + new KeyValuePair(800, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0092_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(801, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(802, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(803, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(804, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(805, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(806, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 8. Expected GsdId of the submodule:'ID_SM_Bipolar_torque_force_limit_value_S_0_0092_0_0_cons'.","Check the hardware configuration.")), + + new KeyValuePair(810, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0080_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(811, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 9." ,"Check the hardware configuration.")), + new KeyValuePair(812, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 9." ,"Check the hardware configuration.")), + new KeyValuePair(813, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 9." ,"Check the hardware configuration.")), + new KeyValuePair(814, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 9." ,"Check the hardware configuration.")), + new KeyValuePair(815, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 9." ,"Check the hardware configuration.")), + new KeyValuePair(816, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 9. Expected GsdId of the submodule: 'ID_SM_Torque_force_command_value_S_0_0080_0_0_cons'." ,"Check the hardware configuration.")), + + new KeyValuePair(820, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0193_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(821, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 10." ,"Check the hardware configuration.")), + new KeyValuePair(822, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 10." ,"Check the hardware configuration.")), + new KeyValuePair(823, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 10." ,"Check the hardware configuration.")), + new KeyValuePair(824, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 10." ,"Check the hardware configuration.")), + new KeyValuePair(825, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 10." ,"Check the hardware configuration.")), + new KeyValuePair(826, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 10. Expected GsdId of the submodule: 'ID_SM_Positioning_jerk_S_0_0193_0_0_cons'." ,"Check the hardware configuration.")), + + new KeyValuePair(830, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0135_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(831, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(832, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(833, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(834, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(835, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 1." ,"Check the hardware configuration.")), + new KeyValuePair(836, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 1. Expected GsdId of the submodule: 'ID_SM_Drive_status_word_S_0_0135_0_0_prod'." ,"Check the hardware configuration.")), + + new KeyValuePair(840, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0144_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(841, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(842, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(843, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(844, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(845, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 2." ,"Check the hardware configuration.")), + new KeyValuePair(846, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 2. Expected GsdId of the submodule: 'ID_SM_Signal_status_word_S_0_0144_0_0_prod'." ,"Check the hardware configuration.")), + + new KeyValuePair(850, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0386_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(851, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(852, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(853, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(854, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(855, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 3." ,"Check the hardware configuration.")), + new KeyValuePair(856, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 3. Expected GsdId of the submodule: 'ID_SM_Active_position_feedback_value_S_0_0386_0_0_prod'." ,"Check the hardware configuration.")), + + new KeyValuePair(860, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0535_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(861, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(862, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(863, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(864, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(865, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 4." ,"Check the hardware configuration.")), + new KeyValuePair(866, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 4. Expected GsdId of the submodule: 'ID_SM_Active_velocity_feedback_value_S_0_0535_0_0_prod'." ,"Check the hardware configuration.")), + + new KeyValuePair(870, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0390_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(871, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(872, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(873, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(874, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(875, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 5." ,"Check the hardware configuration.")), + new KeyValuePair(876, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 5. Expected GsdId of the submodule: 'ID_SM_Diagnostic_message_number_S_0_0390_0_0_prod'." ,"Check the hardware configuration.")), + + new KeyValuePair(880, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_1720_0_2 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(881, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(882, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(883, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(884, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(885, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 6." ,"Check the hardware configuration.")), + new KeyValuePair(886, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 6. Expected GsdId of the submodule: 'ID_SM_Power_supply_status_word_S_0_1720_0_2_prod'." ,"Check the hardware configuration.")), + + new KeyValuePair(890, new AxoMessengerTextItem("Hw configuration error. Value of _HW_S_0_0084_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(891, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(892, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(893, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(894, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(895, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 7." ,"Check the hardware configuration.")), + new KeyValuePair(896, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 7. Expected GsdId of the submodule: 'ID_SM_Torque_force_feedback_value_S_0_0084_0_0_prod'." ,"Check the hardware configuration.")), + + new KeyValuePair(900, new AxoMessengerTextItem("Hw configuration error. Value of _HW_P_0_0106_0_0 is zero." ,"Check the hardware configuration.")), + new KeyValuePair(901, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(902, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(903, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(904, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(905, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 8." ,"Check the hardware configuration.")), + new KeyValuePair(906, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 8. Expected GsdId of the submodule: 'ID_SM_Operating_status_STO_P_0_0106_0_0_prod'." ,"Check the hardware configuration.")), + + new KeyValuePair(1130, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(1131, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(1132, new AxoMessengerTextItem("Input variable `_HW_Outputs` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_Outputs` parameter is assigned.")), + new KeyValuePair(1133, new AxoMessengerTextItem("Input variable `_HW_Inputs` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_Inputs` parameter is assigned.")), + new KeyValuePair(1134, new AxoMessengerTextItem("Input variable `_HW_S_0_0134_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0134_0_0` parameter is assigned.")), + new KeyValuePair(1135, new AxoMessengerTextItem("Input variable `_HW_S_0_0145_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0145_0_0` parameter is assigned.")), + new KeyValuePair(1136, new AxoMessengerTextItem("Input variable `_HW_S_0_0282_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0282_0_0` parameter is assigned.")), + new KeyValuePair(1137, new AxoMessengerTextItem("Input variable `_HW_S_0_0259_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0259_0_0` parameter is assigned.")), + new KeyValuePair(1138, new AxoMessengerTextItem("Input variable `_HW_S_0_0260_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0260_0_0` parameter is assigned.")), + new KeyValuePair(1139, new AxoMessengerTextItem("Input variable `_HW_S_0_0359_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0359_0_0` parameter is assigned.")), + new KeyValuePair(1140, new AxoMessengerTextItem("Input variable `_HW_S_0_1720_0_1' has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_1720_0_1' parameter is assigned.")), + new KeyValuePair(1141, new AxoMessengerTextItem("Input variable `_HW_S_0_0092_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0092_0_0` parameter is assigned.")), + new KeyValuePair(1142, new AxoMessengerTextItem("Input variable `_HW_S_0_0080_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0080_0_0` parameter is assigned.")), + new KeyValuePair(1143, new AxoMessengerTextItem("Input variable `_HW_S_0_0193_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0193_0_0` parameter is assigned.")), + new KeyValuePair(1144, new AxoMessengerTextItem("Input variable `_HW_S_0_0135_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0135_0_0` parameter is assigned.")), + new KeyValuePair(1145, new AxoMessengerTextItem("Input variable `_HW_S_0_0144_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0144_0_0` parameter is assigned.")), + new KeyValuePair(1146, new AxoMessengerTextItem("Input variable `_HW_S_0_0386_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0386_0_0` parameter is assigned.")), + new KeyValuePair(1147, new AxoMessengerTextItem("Input variable `_HW_S_0_0535_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0535_0_0` parameter is assigned.")), + new KeyValuePair(1148, new AxoMessengerTextItem("Input variable `_HW_S_0_0390_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0390_0_0` parameter is assigned.")), + new KeyValuePair(1149, new AxoMessengerTextItem("Input variable `_HW_S_0_1720_0_2` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_1720_0_2` parameter is assigned.")), + new KeyValuePair(1150, new AxoMessengerTextItem("Input variable `_HW_S_0_0084_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_S_0_0084_0_0` parameter is assigned.")), + new KeyValuePair(1151, new AxoMessengerTextItem("Input variable `_HW_P_0_0106_0_0` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `_HW_P_0_0106_0_0` parameter is assigned.")), + + new KeyValuePair(1201, new AxoMessengerTextItem("Error reading the DriveStatusWord_S_0_0135_0_0!" ,"Check the value of the _HW_S_0_0135_0_0 and reacheability of the device!")), + new KeyValuePair(1202, new AxoMessengerTextItem("Error reading the SignalStatusWord_S_0_0144_0_0!" ,"Check the value of the _HW_S_0_0144_0_0 and reacheability of the device!")), + new KeyValuePair(1203, new AxoMessengerTextItem("Error reading the ActualPosition_S_0_0386_0_0!" ,"Check the value of the _HW_S_0_0386_0_0 and reacheability of the device!")), + new KeyValuePair(1204, new AxoMessengerTextItem("Error reading the ActualVelocity_S_0_0535_0_0!" ,"Check the value of the _HW_S_0_0535_0_0 and reacheability of the device!")), + new KeyValuePair(1205, new AxoMessengerTextItem("Error reading the DiagnosticMessage_S_0_0390_0_0!" ,"Check the value of the _HW_S_0_0390_0_0 and reacheability of the device!")), + new KeyValuePair(1206, new AxoMessengerTextItem("Error reading the SupplyUnitStatusWord_S_0_1720_0_2!" ,"Check the value of the _HW_S_0_1720_0_2 and reacheability of the device!")), + new KeyValuePair(1207, new AxoMessengerTextItem("Error reading the ActualTorque_S_0_0084_0_0!" ,"Check the value of the _HW_S_0_0084_0_0 and reacheability of the device!")), + + new KeyValuePair(1231, new AxoMessengerTextItem("Error writing the DriveControlWord_S_0_0134_0_0!" ,"Check the value of the _HW_S_0_0134_0_0 and reacheability of the device!")), + new KeyValuePair(1232, new AxoMessengerTextItem("Error writing the SignalControlWord_S_0_0145_0_0!" ,"Check the value of the _HW_S_0_0145_0_0 and reacheability of the device!")), + new KeyValuePair(1233, new AxoMessengerTextItem("Error writing the CommandPosition_S_0_0282_0_0!" ,"Check the value of the _HW_S_0_0282_0_0 and reacheability of the device!")), + new KeyValuePair(1234, new AxoMessengerTextItem("Error writing the CommandVelocity_S_0_0259_0_0!" ,"Check the value of the _HW_S_0_0259_0_0 and reacheability of the device!")), + new KeyValuePair(1235, new AxoMessengerTextItem("Error writing the CommandAcceleration_S_0_0260_0_0!" ,"Check the value of the _HW_S_0_0260_0_0 and reacheability of the device!")), + new KeyValuePair(1236, new AxoMessengerTextItem("Error writing the CommandDecceleration_S_0_0359_0_0!" ,"Check the value of the _HW_S_0_0359_0_0 and reacheability of the device!")), + new KeyValuePair(1237, new AxoMessengerTextItem("Error writing the SupplyUnitControlWord_S_0_1720_0_1!" ,"Check the value of the _HW_S_0_1720_0_1 and reacheability of the device!")), + new KeyValuePair(1238, new AxoMessengerTextItem("Error writing the BipolarTorqueLimitation_S_0_0092_0_0!" ,"Check the value of the _HW_S_0_0092_0_0 and reacheability of the device!")), + new KeyValuePair(1239, new AxoMessengerTextItem("Error writing the CommandTorque_S_0_0080_0_0!" ,"Check the value of the _HW_S_0_0080_0_0 and reacheability of the device!")), + new KeyValuePair(1240, new AxoMessengerTextItem("Error writing the CommandJerk_S_0_0193_0_0!" ,"Check the value of the _HW_S_0_0193_0_0 and reacheability of the device!")), + + new KeyValuePair(1430, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_Power method!" ,"Check the value of the AxisRef at the input of the MC_Power method!")), + new KeyValuePair(1440, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_Home method!" ,"Check the value of the AxisRef at the input of the MC_Home method!")), + new KeyValuePair(1441, new AxoMessengerTextItem("Negative or zero value of the Acceleration in the MC_Home method!" ,"Check the value of the required Acceleration at the input of the MC_Home method!")), + new KeyValuePair(1442, new AxoMessengerTextItem("Negative or zero value of the Deceleration in the MC_Home method!" ,"Check the value of the required Deceleration at the input of the MC_Home method!")), + new KeyValuePair(1470, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_Stop method!" ,"Check the value of the AxisRef at the input of the MC_Stop method!")), + new KeyValuePair(1471, new AxoMessengerTextItem("Negative or zero value of the Deceleration in the MC_Stop method!" ,"Check the value of the required Deceleration at the input of the MC_Stop method!")), + new KeyValuePair(1472, new AxoMessengerTextItem("Negative or zero value of the Jerk in the MC_Stop method!" ,"Check the value of the required Jerk at the input of the MC_Stop method!")), + new KeyValuePair(1490, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_MoveAbsolute method!" ,"Check the value of the AxisRef at the input of the MC_MoveAbsolute method!")), + new KeyValuePair(1491, new AxoMessengerTextItem("Negative or zero value of the Velocity in the MC_MoveAbsolute method!" ,"Check the value of the required Velocity at the input of the MC_MoveAbsolute method!")), + new KeyValuePair(1492, new AxoMessengerTextItem("Negative or zero value of the Acceleration in the MC_MoveAbsolute method!" ,"Check the value of the required Acceleration at the input of the MC_MoveAbsolute method!")), + new KeyValuePair(1493, new AxoMessengerTextItem("Negative or zero value of the Deceleration in the MC_MoveAbsolute method!" ,"Check the value of the required Deceleration at the input of the MC_MoveAbsolute method!")), + new KeyValuePair(1494, new AxoMessengerTextItem("Negative or zero value of the Jerk in the MC_MoveAbsolute method!" ,"Check the value of the required Jerk at the input of the MC_MoveAbsolute method!")), + new KeyValuePair(1500, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_MoveRelative method!" ,"Check the value of the AxisRef at the input of the MC_MoveRelative method!")), + new KeyValuePair(1501, new AxoMessengerTextItem("Negative or zero value of the Velocity in the MC_MoveRelative method!" ,"Check the value of the required Velocity at the input of the MC_MoveRelative method!")), + new KeyValuePair(1502, new AxoMessengerTextItem("Negative or zero value of the Acceleration in the MC_MoveRelative method!" ,"Check the value of the required Acceleration at the input of the MC_MoveRelative method!")), + new KeyValuePair(1503, new AxoMessengerTextItem("Negative or zero value of the Deceleration in the MC_MoveRelative method!" ,"Check the value of the required Deceleration at the input of the MC_MoveRelative method!")), + new KeyValuePair(1504, new AxoMessengerTextItem("Negative or zero value of the Jerk in the MC_MoveRelative method!" ,"Check the value of the required Jerk at the input of the MC_MoveRelative method!")), + new KeyValuePair(1510, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_MoveAdditive method!" ,"Check the value of the AxisRef at the input of the MC_MoveAdditive method!")), + new KeyValuePair(1511, new AxoMessengerTextItem("Negative or zero value of the Velocity in the MC_MoveAdditive method!" ,"Check the value of the required Velocity at the input of the MC_MoveAdditive method!")), + new KeyValuePair(1512, new AxoMessengerTextItem("Negative or zero value of the Acceleration in the MC_MoveAdditive method!" ,"Check the value of the required Acceleration at the input of the MC_MoveAdditive method!")), + new KeyValuePair(1513, new AxoMessengerTextItem("Negative or zero value of the Deceleration in the MC_MoveAdditive method!" ,"Check the value of the required Deceleration at the input of the MC_MoveAdditive method!")), + new KeyValuePair(1514, new AxoMessengerTextItem("Negative or zero value of the Jerk in the MC_MoveAdditive method!" ,"Check the value of the required Jerk at the input of the MC_MoveAdditive method!")), + new KeyValuePair(1520, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_MoveVelocity method!" ,"Check the value of the AxisRef at the input of the MC_MoveVelocity method!")), + new KeyValuePair(1521, new AxoMessengerTextItem("Invalid value of the Direction in the MC_MoveVelocity method!" ,"Check the value of the required Direction at the input of the MC_MoveVelocity method!")), + new KeyValuePair(1522, new AxoMessengerTextItem("Zero value of the Velocity in the MC_MoveVelocity method!" ,"Check the value of the required Velocity at the input of the MC_MoveVelocity method!")), + new KeyValuePair(1523, new AxoMessengerTextItem("Negative or zero value of the Acceleration in the MC_MoveVelocity method!" ,"Check the value of the required Acceleration at the input of the MC_MoveVelocity method!")), + new KeyValuePair(1524, new AxoMessengerTextItem("Negative or zero value of the Deceleration in the MC_MoveVelocity method!" ,"Check the value of the required Deceleration at the input of the MC_MoveVelocity method!")), + new KeyValuePair(1525, new AxoMessengerTextItem("Negative or zero value of the Jerk in the MC_MoveVelocity method!" ,"Check the value of the required Jerk at the input of the MC_MoveVelocity method!")), + new KeyValuePair(1530, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_TorqueControl method!" ,"Check the value of the AxisRef at the input of the MC_TorqueControl method!")), + new KeyValuePair(1531, new AxoMessengerTextItem("Invalid value of the Direction in the MC_TorqueControl method!" ,"Check the value of the required Direction at the input of the MC_TorqueControl method!")), + new KeyValuePair(1532, new AxoMessengerTextItem("Negative or zero value of the Velocity in the MC_TorqueControl method!" ,"Check the value of the required Velocity at the input of the MC_TorqueControl method!")), + new KeyValuePair(1533, new AxoMessengerTextItem("Negative or zero value of the Acceleration in the MC_TorqueControl method!" ,"Check the value of the required Acceleration at the input of the MC_TorqueControl method!")), + new KeyValuePair(1534, new AxoMessengerTextItem("Negative or zero value of the Deceleration in the MC_TorqueControl method!" ,"Check the value of the required Deceleration at the input of the MC_TorqueControl method!")), + new KeyValuePair(1535, new AxoMessengerTextItem("Negative or zero value of the Jerk in the MC_TorqueControl method!" ,"Check the value of the required Jerk at the input of the MC_TorqueControl method!")), + new KeyValuePair(1536, new AxoMessengerTextItem("Zero value of the Torque in the MC_TorqueControl method!" ,"Check the value of the required Torque at the input of the MC_TorqueControl method!")), + new KeyValuePair(1537, new AxoMessengerTextItem("Negative or zero value of the TorqueRamp in the MC_TorqueControl method!" ,"Check the value of the required TorqueRamp at the input of the MC_TorqueControl method!")), + new KeyValuePair(1540, new AxoMessengerTextItem("Error writing Torque/force control: Ramp value (0x2838:01 / S-0-0822 / --) in the MC_TorqueControl method!" ,"Check the device manual!")), + new KeyValuePair(1541, new AxoMessengerTextItem("Error writing Torque/force control: Ramp time (0x2838:02 / S-0-0823 / --) in the MC_TorqueControl method!" ,"Check the device manual!")), + new KeyValuePair(1542, new AxoMessengerTextItem("Error writing Torque/force control: High velocity limit value (P-0-0421.0.3 / P-0-2249) in the MC_TorqueControl method!" ,"Check the device manual!")), + new KeyValuePair(1543, new AxoMessengerTextItem("Error writing Torque/force control: Low velocity limit value (P-0-0421.0.4 / P-0-2250) in the MC_TorqueControl method!" ,"Check the device manual!")), + new KeyValuePair(1550, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_SetPosition method!" ,"Check the value of the AxisRef at the input of the MC_SetPosition method!")), + new KeyValuePair(1551, new AxoMessengerTextItem("Error writing Homing configuration ENC_1: Home offset (0x607C:00 / S-0-0052 / --) in the MC_SetPosition method!" ,"Check the device manual!")), + new KeyValuePair(1570, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_SetOverride method!" ,"Check the value of the AxisRef at the input of the MC_SetOverride method!")), + new KeyValuePair(1571, new AxoMessengerTextItem("Invalid value of the VelocityFactor in the MC_SetOverride method!" ,"Check the value of the required VelocityFactor at the input of the MC_SetOverride method!")), + new KeyValuePair(1572, new AxoMessengerTextItem("Invalid value of the AccelerationFactor in the MC_SetOverride method!" ,"Check the value of the required AccelerationFactor at the input of the MC_SetOverride method!")), + new KeyValuePair(1573, new AxoMessengerTextItem("Invalid value of the JerkFactor in the MC_MoveRelative method!" ,"Check the value of the required JerkFactor at the input of the MC_SetOverride method!")), + new KeyValuePair(1580, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_ReadParameter method!" ,"Check the value of the AxisRef at the input of the MC_ReadParameter method!")), + new KeyValuePair(1581, new AxoMessengerTextItem("Error reading parameter in the MC_ReadParameter method!" ,"Check the device manual!")), + new KeyValuePair(1590, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_ReadRealParameter method!" ,"Check the value of the AxisRef at the input of the MC_ReadParameter method!")), + new KeyValuePair(1591, new AxoMessengerTextItem("Error reading parameter in the MC_ReadRealParameter method!" ,"Check the device manual!")), + new KeyValuePair(1600, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_ReadBoolParameter method!" ,"Check the value of the AxisRef at the input of the MC_ReadParameter method!")), + new KeyValuePair(1601, new AxoMessengerTextItem("Error reading parameter in the MC_ReadBoolParameter method!" ,"Check the device manual!")), + new KeyValuePair(1610, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_WriteParameter method!" ,"Check the value of the AxisRef at the input of the MC_ReadParameter method!")), + new KeyValuePair(1611, new AxoMessengerTextItem("Error writing parameter in the MC_WriteParameter method!" ,"Check the device manual!")), + new KeyValuePair(1620, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_WriteRealParameter method!" ,"Check the value of the AxisRef at the input of the MC_ReadParameter method!")), + new KeyValuePair(1621, new AxoMessengerTextItem("Error writing parameter in the MC_WriteRealParameter method!" ,"Check the device manual!")), + new KeyValuePair(1630, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_WriteBoolParameter method!" ,"Check the value of the AxisRef at the input of the MC_ReadParameter method!")), + new KeyValuePair(1631, new AxoMessengerTextItem("Error writing parameter in the MC_WriteBoolParameter method!" ,"Check the device manual!")), + new KeyValuePair(1640, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_ReadDigitalInput method!" ,"Check the value of the AxisRef at the input of the MC_ReadParameter method!")), + new KeyValuePair(1641, new AxoMessengerTextItem("Invalid InputNumber in the MC_ReadDigitalInput method!" ,"Check the device manual!")), + new KeyValuePair(1642, new AxoMessengerTextItem("Error reading parameter in the MC_ReadDigitalInput method!" ,"Check the device manual!")), + new KeyValuePair(1650, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_ReadDigitalOutput method!" ,"Check the value of the AxisRef at the input of the MC_ReadParameter method!")), + new KeyValuePair(1651, new AxoMessengerTextItem("Invalid OutputNumber in the MC_ReadDigitalOutput method!" ,"Check the device manual!")), + new KeyValuePair(1652, new AxoMessengerTextItem("Error reading parameter in the MC_ReadDigitalOutput method!" ,"Check the device manual!")), + new KeyValuePair(1660, new AxoMessengerTextItem("Null reference of the AxisRef inside the MC_WriteDigitalOutput method!" ,"Check the value of the AxisRef at the input of the MC_ReadParameter method!")), + new KeyValuePair(1661, new AxoMessengerTextItem("Invalid OutputNumber in the MC_WriteDigitalOutput method!" ,"Check the device manual!")), + new KeyValuePair(1662, new AxoMessengerTextItem("Error writing parameter in the MC_WriteDigitalOutput method!" ,"Check the device manual!")), + + + new KeyValuePair(1800, new AxoMessengerTextItem("Scaling parameters not yet read out of the drive" ,"Check proper value of the device Hardware ID")), + + // TemplateTask_10steps_1 + new KeyValuePair(10000, new AxoMessengerTextItem("TemplateTask_10steps_1 finished with error!","Check the details.")), + new KeyValuePair(10001, new AxoMessengerTextItem("TemplateTask_10steps_1 was aborted, while not yet completed!","Check the details.")), + // TemplateTask_10steps_2 + new KeyValuePair(10010, new AxoMessengerTextItem("TemplateTask_10steps_2 finished with error!","Check the details.")), + new KeyValuePair(10011, new AxoMessengerTextItem("TemplateTask_10steps_2 was aborted, while not yet completed!","Check the details.")), + // TemplateTask_10steps_3 + new KeyValuePair(10020, new AxoMessengerTextItem("TemplateTask_10steps_3 finished with error!","Check the details.")), + new KeyValuePair(10021, new AxoMessengerTextItem("TemplateTask_10steps_3 was aborted, while not yet completed!","Check the details.")), + // TemplateTask_10steps_4 + new KeyValuePair(10030, new AxoMessengerTextItem("TemplateTask_10steps_4 task finished with error!","Check the details.")), + new KeyValuePair(10031, new AxoMessengerTextItem("TemplateTask_10steps_4 task was aborted, while not yet completed!","Check the details.")), + // TemplateTask_10steps_5 + new KeyValuePair(10040, new AxoMessengerTextItem("TemplateTask_10steps_5 task finished with error!","Check the details.")), + new KeyValuePair(10041, new AxoMessengerTextItem("TemplateTask_10steps_5 task was aborted, while not yet completed!","Check the details.")), + // TemplateTask_10steps_6 + new KeyValuePair(10050, new AxoMessengerTextItem("TemplateTask_10steps_6 task finished with error!","Check the details.")), + new KeyValuePair(10051, new AxoMessengerTextItem("TemplateTask_10steps_6 task was aborted, while not yet completed!","Check the details.")), + + // TemplateTask_20steps_1 + new KeyValuePair(10060, new AxoMessengerTextItem("TemplateTask_20steps_1 task finished with error!","Check the details.")), + new KeyValuePair(10061, new AxoMessengerTextItem("TemplateTask_20steps_1 task was aborted, while not yet completed!","Check the details.")), + // TemplateTask_20steps_2 + new KeyValuePair(10080, new AxoMessengerTextItem("TemplateTask_20steps_2 task finished with error!","Check the details.")), + new KeyValuePair(10081, new AxoMessengerTextItem("TemplateTask_20steps_2 task was aborted, while not yet completed!","Check the details.")), + // TemplateTask_20steps_3 + new KeyValuePair(10100, new AxoMessengerTextItem("TemplateTask_20steps_3 task finished with error!","Check the details.")), + new KeyValuePair(10101, new AxoMessengerTextItem("TemplateTask_20steps_3 task was aborted, while not yet completed!","Check the details.")), + // TemplateTask_20steps_4 + new KeyValuePair(10120, new AxoMessengerTextItem("TemplateTask_20steps_4 task finished with error!","Check the details.")), + new KeyValuePair(10121, new AxoMessengerTextItem("TemplateTask_20steps_4 task was aborted, while not yet completed!","Check the details.")), + // TemplateTask_20steps_5 + new KeyValuePair(10140, new AxoMessengerTextItem("TemplateTask_20steps_5 task finished with error!","Check the details.")), + new KeyValuePair(10141, new AxoMessengerTextItem("TemplateTask_20steps_5 task was aborted, while not yet completed!","Check the details.")), + // TemplateTask_20steps_6 + new KeyValuePair(10160, new AxoMessengerTextItem("TemplateTask_20steps_6 task finished with error!","Check the details.")), + new KeyValuePair(10161, new AxoMessengerTextItem("TemplateTask_20steps_6 task was aborted, while not yet completed!","Check the details.")), + new KeyValuePair(655360, new AxoMessengerTextItem("A0000 Sercos: Communication phase 0","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655361, new AxoMessengerTextItem("A0001 Sercos: Communication phase 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655362, new AxoMessengerTextItem("A0002 Sercos: Communication phase 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655363, new AxoMessengerTextItem("A0003 Sercos: Communication phase 3","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655364, new AxoMessengerTextItem("A0004 Initialization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655365, new AxoMessengerTextItem("A0005 Pre-Operational","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655366, new AxoMessengerTextItem("A0006 Safe-Operational","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655367, new AxoMessengerTextItem("A0007 Operational","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655368, new AxoMessengerTextItem("A0008 Sercos: NRT-Mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655376, new AxoMessengerTextItem("A0010 Drive HALT","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655377, new AxoMessengerTextItem("A0011 STO active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655378, new AxoMessengerTextItem("A0012 Control and power sections ready for operation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655379, new AxoMessengerTextItem("A0013 Ready for power on","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655380, new AxoMessengerTextItem("A0014 Axis parked","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655401, new AxoMessengerTextItem("A0029 EtherCAT: Bootstrap","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655408, new AxoMessengerTextItem("A0030 Sercos: Hot-plug phase 0","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655409, new AxoMessengerTextItem("A0031 Sercos: Hot-plug phase 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655410, new AxoMessengerTextItem("A0032 Sercos: Hot-plug phase 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655413, new AxoMessengerTextItem("A0035 Standby","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655424, new AxoMessengerTextItem("A0040 Sercos: Communication phase 4","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655433, new AxoMessengerTextItem("A0049 Parameterization mode active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655440, new AxoMessengerTextItem("A0050 Configuration mode active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655441, new AxoMessengerTextItem("A0051 Operating mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655442, new AxoMessengerTextItem("A0052 STO not active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655456, new AxoMessengerTextItem("A0060 Firmware update active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655616, new AxoMessengerTextItem("A0100 Torque/force control","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655617, new AxoMessengerTextItem("A0101 Velocity (open-loop/closed-loop control)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655618, new AxoMessengerTextItem("A0102 Position mode, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655619, new AxoMessengerTextItem("A0103 Position mode, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655620, new AxoMessengerTextItem("A0104 Position mode lagless, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655621, new AxoMessengerTextItem("A0105 Position mode lagless, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655622, new AxoMessengerTextItem("A0106 Drive-internal interpolation, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655623, new AxoMessengerTextItem("A0107 Drive-internal interpolation, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655624, new AxoMessengerTextItem("A0108 Drive-internal interpolation lagless, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655625, new AxoMessengerTextItem("A0109 Drive-internal interpolation lagless, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655696, new AxoMessengerTextItem("A0150 Drive-controlled positioning, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655697, new AxoMessengerTextItem("A0151 Drive-controlled positioning lagless, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655698, new AxoMessengerTextItem("A0152 Drive-controlled positioning, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655699, new AxoMessengerTextItem("A0153 Drive-controlled positioning lagless, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655700, new AxoMessengerTextItem("A0154 Position mode drive-controlled, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655701, new AxoMessengerTextItem("A0155 Position mode drive-controlled, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655702, new AxoMessengerTextItem("A0156 Position mode lagless, encoder 1 drive-controlled","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655703, new AxoMessengerTextItem("A0157 Position mode lagless, encoder 2 drive-controlled","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655712, new AxoMessengerTextItem("A0160 Position control drive-controlled with axis control word","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655713, new AxoMessengerTextItem("A0161 Drive-controlled positioning with axis control word","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655714, new AxoMessengerTextItem("A0162 Positioning block mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655717, new AxoMessengerTextItem("A0165 Position control with axis control word","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655718, new AxoMessengerTextItem("A0166 Drive-internal interpolation with axis control word","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655744, new AxoMessengerTextItem("A0180 DC bus voltage control","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655878, new AxoMessengerTextItem("A0206 Positioning block mode, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655879, new AxoMessengerTextItem("A0207 Positioning block mode lagless, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655888, new AxoMessengerTextItem("A0210 Positioning block mode, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655889, new AxoMessengerTextItem("A0211 Positioning block mode lagless, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655957, new AxoMessengerTextItem("A0255 PROFINET: Device name defined","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655958, new AxoMessengerTextItem("A0256 PROFINET: IP configuration specified","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655959, new AxoMessengerTextItem("A0257 PROFINET: No AR to Controller","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655960, new AxoMessengerTextItem("A0258 PROFINET: AR to Controller established","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655961, new AxoMessengerTextItem("A0259 PROFINET: AR to Controller terminated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655968, new AxoMessengerTextItem("A0260 IP address not configured (NO IP)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655969, new AxoMessengerTextItem("A0261 IP configuration is set (SET IP)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655970, new AxoMessengerTextItem("A0262 No cyclic connection (NO CYCLIC CONNECTION)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655971, new AxoMessengerTextItem("A0263 Data exchange active (RUN)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(655972, new AxoMessengerTextItem("A0264 Scanner in stop mode (IDLE)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656128, new AxoMessengerTextItem("A0300 SMO not active: Output stage locked","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656129, new AxoMessengerTextItem("A0301 SMM1: Special mode Safe motion 1 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656130, new AxoMessengerTextItem("A0302 SMM2: Special mode Safe motion 2 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656131, new AxoMessengerTextItem("A0303 SMM3: Special mode Safe motion 3 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656132, new AxoMessengerTextItem("A0304 SMM4: Special mode Safe motion 4 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656133, new AxoMessengerTextItem("A0305 SMM5: Special mode Safe motion 5 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656134, new AxoMessengerTextItem("A0306 SMM6: Special mode Safe motion 6 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656135, new AxoMessengerTextItem("A0307 SMM7: Special mode Safe motion 7 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656136, new AxoMessengerTextItem("A0308 SMM8: Special mode Safe motion 8 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656137, new AxoMessengerTextItem("A0309 SMM9: Special mode Safe motion 9 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656144, new AxoMessengerTextItem("A0310 SMM10: Special mode Safe motion 10 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656145, new AxoMessengerTextItem("A0311 SMM11: Special mode Safe motion 11 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656146, new AxoMessengerTextItem("A0312 SMM12: Special mode Safe motion 12 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656147, new AxoMessengerTextItem("A0313 SMM13: Special mode Safe motion 13 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656148, new AxoMessengerTextItem("A0314 SMM14: Special mode Safe motion 14 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656149, new AxoMessengerTextItem("A0315 SMM15: Special mode Safe motion 15 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656150, new AxoMessengerTextItem("A0316 SMM16: Special mode Safe motion 16 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656160, new AxoMessengerTextItem("A0320 SMES: EMERGENCY STOP active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656161, new AxoMessengerTextItem("A0321 SMST1: Special mode Safe standstill active with STO","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656162, new AxoMessengerTextItem("A0322 SMST2: Special mode Safe standstill active with SOS","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656163, new AxoMessengerTextItem("A0323 SMO: Configuration mode active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656164, new AxoMessengerTextItem("A0324 SMO: Normal operation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656165, new AxoMessengerTextItem("A0325 SMO: Parameter mode active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656167, new AxoMessengerTextItem("A0327 SMO not active: Output stage functionally enabled","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656168, new AxoMessengerTextItem("A0328 Special mode 1 active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656169, new AxoMessengerTextItem("A0329 STO active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656640, new AxoMessengerTextItem("A0500 Supply module in voltage control","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656641, new AxoMessengerTextItem("A0501 Supply module in current control","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656642, new AxoMessengerTextItem("A0502 Supply module in operation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656643, new AxoMessengerTextItem("A0503 DC bus charging active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656644, new AxoMessengerTextItem("A0504 Power supply control section ready for operation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656645, new AxoMessengerTextItem("A0505 Power supply module ready for operation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656646, new AxoMessengerTextItem("A0506 Supply module in rectifier mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656672, new AxoMessengerTextItem("A0520 DC bus quick discharge active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656688, new AxoMessengerTextItem("A0530 Island grid mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656690, new AxoMessengerTextItem("A0532 Island grid, ready for power output","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656691, new AxoMessengerTextItem("A0533 Island grid, voltage build-up","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656692, new AxoMessengerTextItem("A0534 Control section ready for operation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656704, new AxoMessengerTextItem("A0540 DC mode active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656706, new AxoMessengerTextItem("A0542 DC supply, ready for power output","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(656707, new AxoMessengerTextItem("A0543 DC voltage build-up","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664081, new AxoMessengerTextItem("A2211 PLC message no. 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664082, new AxoMessengerTextItem("A2212 PLC message no. 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664083, new AxoMessengerTextItem("A2213 PLC message no. 3","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664084, new AxoMessengerTextItem("A2214 PLC message no. 4","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664085, new AxoMessengerTextItem("A2215 PLC message no. 5","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664086, new AxoMessengerTextItem("A2216 PLC message no. 6","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664087, new AxoMessengerTextItem("A2217 PLC message no. 7","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664088, new AxoMessengerTextItem("A2218 PLC message no. 8","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664089, new AxoMessengerTextItem("A2219 PLC message no. 9","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664096, new AxoMessengerTextItem("A2220 PLC message no. 10","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664097, new AxoMessengerTextItem("A2221 PLC message no. 11","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664098, new AxoMessengerTextItem("A2222 PLC message no. 12","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664099, new AxoMessengerTextItem("A2223 PLC message no. 13","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664100, new AxoMessengerTextItem("A2224 PLC message no. 14","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664101, new AxoMessengerTextItem("A2225 PLC message no. 15","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(664102, new AxoMessengerTextItem("A2226 PLC message no. 16","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671744, new AxoMessengerTextItem("A4000 Automatic drive check and adjustment","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671745, new AxoMessengerTextItem("A4001 Drive deceleration to standstill","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671746, new AxoMessengerTextItem("A4002 Drive in automatic mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671747, new AxoMessengerTextItem("A4003 Setting-up mode is active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671748, new AxoMessengerTextItem("A4004 Drive without drive enable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671749, new AxoMessengerTextItem("A4005 Drive decelerated by motor phase short circuit","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671750, new AxoMessengerTextItem("A4006 Drive decelerated in a controlled way","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671751, new AxoMessengerTextItem("A4007 Drive On delay time","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671752, new AxoMessengerTextItem("A4008 Drive Off delay time","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671753, new AxoMessengerTextItem("A4009 Motor phase short circuit with drive enable switched off","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(671760, new AxoMessengerTextItem("A4010 Drive control command active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786688, new AxoMessengerTextItem("C0100 Safe-Operational transition check","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786944, new AxoMessengerTextItem("C0200 Activate operating mode procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787200, new AxoMessengerTextItem("C0300 Set absolute position procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787456, new AxoMessengerTextItem("C0400 Activate configuration mode procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787712, new AxoMessengerTextItem("C0500 Reset class 1 diagnostics, error reset","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787968, new AxoMessengerTextItem("C0600 Drive-controlled homing procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788224, new AxoMessengerTextItem("C0700 Load defaults proced. command (motor-spec. controller val.)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788240, new AxoMessengerTextItem("C0710 Command Load power-supply specific controller values","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788256, new AxoMessengerTextItem("C0720 SMO: Load defaults procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788304, new AxoMessengerTextItem("C0750 Load defaults procedure command (factory settings)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788320, new AxoMessengerTextItem("C0760 Load defaults procedure command (application data)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788336, new AxoMessengerTextItem("C0770 Load defaults procedure command (all motor parameters)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788736, new AxoMessengerTextItem("C0900 Position spindle command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790784, new AxoMessengerTextItem("C1100 Activate parameterization mode procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791040, new AxoMessengerTextItem("C1200 Commutation offset setting command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791296, new AxoMessengerTextItem("C1300 Fixed stop drive procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791552, new AxoMessengerTextItem("C1400 Command Get marker position","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791808, new AxoMessengerTextItem("C1500 Cancel reference point procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792064, new AxoMessengerTextItem("C1600 Parking axis procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792320, new AxoMessengerTextItem("C1700 Disable Parking axis procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792576, new AxoMessengerTextItem("C1800 Drive optimization command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794624, new AxoMessengerTextItem("C2000 Command Release brake","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794880, new AxoMessengerTextItem("C2100 Brake test command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(795136, new AxoMessengerTextItem("C2200 Backup working memory procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(795392, new AxoMessengerTextItem("C2300 Load working memory procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(795648, new AxoMessengerTextItem("C2400 Selectively backup working memory procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(796672, new AxoMessengerTextItem("C2800 Analog input adjustment command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799232, new AxoMessengerTextItem("C3200 Command Calculate motor data","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799488, new AxoMessengerTextItem("C3300 Set coordinate system procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799744, new AxoMessengerTextItem("C3400 Shift coordinate system procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800256, new AxoMessengerTextItem("C3600 Command Motor data identification","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800512, new AxoMessengerTextItem("C3700 Command Check direction of motion","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800768, new AxoMessengerTextItem("C3800 Command Apply brake","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(802816, new AxoMessengerTextItem("C4000 SMO: Safe homing procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803072, new AxoMessengerTextItem("C4100 Switch parameter set command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803328, new AxoMessengerTextItem("C4200 Drive-controlled oscillation command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803584, new AxoMessengerTextItem("C4300 NC-controlled homing procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803840, new AxoMessengerTextItem("C4400 Calculate displacement procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804096, new AxoMessengerTextItem("C4500 Displacement to referenced system procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804352, new AxoMessengerTextItem("C4600 Command Calculate motor control parameters","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804608, new AxoMessengerTextItem("C4700 Command Easy startup mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804864, new AxoMessengerTextItem("C4800 Command Determine cogging torque/force compensation table","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(807168, new AxoMessengerTextItem("C5100 Clear extended error memory command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(807424, new AxoMessengerTextItem("C5200 Operational transition check","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(807680, new AxoMessengerTextItem("C5300 Sercos: SYNC delay measurement procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811264, new AxoMessengerTextItem("C6100 Command Activate IP settings","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811776, new AxoMessengerTextItem("C6300 Generate type plate command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(812032, new AxoMessengerTextItem("C6400 Reboot command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(813312, new AxoMessengerTextItem("C6900 Shutdown request","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(816128, new AxoMessengerTextItem("C7400 DRIVElink: Activate configuration mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(817152, new AxoMessengerTextItem("C7800 SMO: Apply motor configuration command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819200, new AxoMessengerTextItem("C8000 SMO: Command Apply scaling","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819456, new AxoMessengerTextItem("C8100 SMO: Activate configuration mode procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819488, new AxoMessengerTextItem("C8120 SMO: Parking axis, procedure command 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819504, new AxoMessengerTextItem("C8130 SMO: Parking axis, procedure command 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819712, new AxoMessengerTextItem("C8200 SMO: Command Exit configuration mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819744, new AxoMessengerTextItem("C8220 SMO: Disable Parking axis, procedure command 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819760, new AxoMessengerTextItem("C8230 SMO: Disable Parking axis, procedure command 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819968, new AxoMessengerTextItem("C8300 SMO: Command Activate parameter image","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820224, new AxoMessengerTextItem("C8400 SMO: Apply encoder configuration command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820480, new AxoMessengerTextItem("C8500 SMO: Command Apply identification data","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820736, new AxoMessengerTextItem("C8600 SMO: Command Measure position difference","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820992, new AxoMessengerTextItem("C8700 SMO: Activate parameterization level procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821040, new AxoMessengerTextItem("C8730 SMO: Parking axis, procedure command 3","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821248, new AxoMessengerTextItem("C8800 SMO: Exit parameterization level procedure command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821296, new AxoMessengerTextItem("C8830 SMO: Disable Parking axis, procedure command 3","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821504, new AxoMessengerTextItem("C8900 SMO: Apply communication configuration command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(825088, new AxoMessengerTextItem("C9700 Servicing function command","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786689, new AxoMessengerTextItem("C0101 Invalid parameters ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786692, new AxoMessengerTextItem("C0104 Config. IDNs for MDT not configurable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786693, new AxoMessengerTextItem("C0105 Maximum length for MDT exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786694, new AxoMessengerTextItem("C0106 Config. IDNs for AT not configurable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786695, new AxoMessengerTextItem("C0107 Maximum length for AT exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786696, new AxoMessengerTextItem("C0108 Incorrect timing parameterization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786697, new AxoMessengerTextItem("C0109 Incorrect telegram parameterization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786706, new AxoMessengerTextItem("C0112 Timing setting not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786707, new AxoMessengerTextItem("C0113 Relation TNcyc (S-0-0001) to TScyc (S-0-0002) error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786712, new AxoMessengerTextItem("C0118 Order of cyclic command value configuration incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786720, new AxoMessengerTextItem("C0120 Coupled command C11 error ->S-0-0021","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786721, new AxoMessengerTextItem("C0121 DRIVElink: Communication start not successful","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786722, new AxoMessengerTextItem("C0122 Coupled command C11 could not be started","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786738, new AxoMessengerTextItem("C0132 Invalid settings for controller cycle times","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786739, new AxoMessengerTextItem("C0133 Master communication: Address conflict","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786754, new AxoMessengerTextItem("C0142 Multiple configuration of a parameter ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786769, new AxoMessengerTextItem("C0151 IDN for command value data container not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786770, new AxoMessengerTextItem("C0152 IDN for actual value data container not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786800, new AxoMessengerTextItem("C0170 Config. IDNs for connection not configurable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786801, new AxoMessengerTextItem("C0171 Maximum length for connections exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786802, new AxoMessengerTextItem("C0172 Required function was not executed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786803, new AxoMessengerTextItem("C0173 Configured connections exceed available resources","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786804, new AxoMessengerTextItem("C0174 Basic configuration of a connection not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786805, new AxoMessengerTextItem("C0175 Producer cycle time of a connection not correct","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786816, new AxoMessengerTextItem("C0180 Error in configuration of internal cycl. communication","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786817, new AxoMessengerTextItem("C0181 Error when activating internal cycl. communication","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786832, new AxoMessengerTextItem("C0190 EtherCAT: Invalid Watchdog Configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786833, new AxoMessengerTextItem("C0191 EtherCAT: Freerun needs 3buffer mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786834, new AxoMessengerTextItem("C0192 EtherCAT: Sync0 Cycle Time does not fit","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786835, new AxoMessengerTextItem("C0193 EtherCAT: Device Identification Value Updated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786945, new AxoMessengerTextItem("C0201 Invalid parameters ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786946, new AxoMessengerTextItem("C0202 Parameter limit error ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786947, new AxoMessengerTextItem("C0203 Parameter conversion error ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786961, new AxoMessengerTextItem("C0211 Error when activating the parameterization mode (C1100)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786967, new AxoMessengerTextItem("C0217 SMO: Error in transition command (PM -> OM)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786978, new AxoMessengerTextItem("C0222 PWM timer synchronization failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(786979, new AxoMessengerTextItem("C0223 Invalid settings for controller cycle times","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787010, new AxoMessengerTextItem("C0242 Multiple configuration of a parameter ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787015, new AxoMessengerTextItem("C0247 Brake cannot be configured","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787024, new AxoMessengerTextItem("C0250 Probe: Error in configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787029, new AxoMessengerTextItem("C0255 Error during Init of sensorless control SVC ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787032, new AxoMessengerTextItem("C0258 Invalid fine interpolation mode or TNcyc selected","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787040, new AxoMessengerTextItem("C0260 Incremental enc. emulator resol. cannot be displayed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787044, new AxoMessengerTextItem("C0264 Configuration of therm. motor model incorrect (->S-0-0423)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787049, new AxoMessengerTextItem("C0269 Firmware function not enabled","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787075, new AxoMessengerTextItem("C0283 Error during initialization of motor control->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787081, new AxoMessengerTextItem("C0289 Error at init. of synchr. motor with reluctance torque","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787096, new AxoMessengerTextItem("C0298 Impossible to activate operating mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787201, new AxoMessengerTextItem("C0301 Measuring system unavailable, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787202, new AxoMessengerTextItem("C0302 Absolute evaluation of measuring system impossible, encod. 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787203, new AxoMessengerTextItem("C0303 Absolute encoder offset cannot be saved, encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787204, new AxoMessengerTextItem("C0304 Command cannot be executed under drive enable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787205, new AxoMessengerTextItem("C0305 Unable to establish reference","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787206, new AxoMessengerTextItem("C0306 Unable to clear encoder 1 absolute offset status","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787207, new AxoMessengerTextItem("C0307 Command not executable in current state of drive","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787217, new AxoMessengerTextItem("C0311 Measuring system unavailable, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787218, new AxoMessengerTextItem("C0312 Absolute evaluation of measuring system impossible, encod. 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787219, new AxoMessengerTextItem("C0313 Absolute encoder offset cannot be saved, encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787222, new AxoMessengerTextItem("C0316 Unable to clear encoder 2 absolute offset status","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787233, new AxoMessengerTextItem("C0321 Measuring system unavailable, measuring encoder","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787234, new AxoMessengerTextItem("C0322 Abs. evaluation of measuring system impossible, meas. enc.","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787235, new AxoMessengerTextItem("C0323 Absolute encoder offset cannot be saved, measuring encoder","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787237, new AxoMessengerTextItem("C0325 Measuring encoder: Unable to establish reference","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787238, new AxoMessengerTextItem("C0326 Unable to clear meas. enc. absolute position offset status","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787457, new AxoMessengerTextItem("C0401 Switching not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787461, new AxoMessengerTextItem("C0405 SMO: Error in transition command (PM -> CM)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787473, new AxoMessengerTextItem("C0411 Error when activating the parameterization mode (C1100)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787969, new AxoMessengerTextItem("C0601 Homing only possible with drive enable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787970, new AxoMessengerTextItem("C0602 Distance home switch - reference mark erroneous","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787971, new AxoMessengerTextItem("C0603 Homing impossible with encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787972, new AxoMessengerTextItem("C0604 Homing impossible with absolute encoder","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787973, new AxoMessengerTextItem("C0605 Command not executable in current state of drive","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787974, new AxoMessengerTextItem("C0606 Reference mark not detected","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787975, new AxoMessengerTextItem("C0607 Home switch input not assigned","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787976, new AxoMessengerTextItem("C0608 Fixed stop and HW limit switch not allowed for modulo axes","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787977, new AxoMessengerTextItem("C0609 Different travel directions parameterized","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787984, new AxoMessengerTextItem("C0610 Absolute encoder offset could not be saved","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787985, new AxoMessengerTextItem("C0611 Subcommand C4000 not executable (parameter write error)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787986, new AxoMessengerTextItem("C0612 Subcommand C4000 not executable (parameter not available)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787987, new AxoMessengerTextItem("C0613 Subcommand C4000 signals error (s. diagnostic trace)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787988, new AxoMessengerTextItem("C0614 Home switch transmission failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(787989, new AxoMessengerTextItem("C0615 Travel range limit switch transmission failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788225, new AxoMessengerTextItem("C0701 Impossible to change the motor control config. in OM","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788226, new AxoMessengerTextItem("C0702 Default parameters not available","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788228, new AxoMessengerTextItem("C0704 Parameters not copyable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788241, new AxoMessengerTextItem("C0711 Loading requires determination of system parameters","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788242, new AxoMessengerTextItem("C0712 Error while saving the system parameters","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788257, new AxoMessengerTextItem("C0721 SMO: Load defaults procedure not possible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788258, new AxoMessengerTextItem("C0722 SMO: Error in load defaults procedure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788305, new AxoMessengerTextItem("C0751 Parameter default value incorrect ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788306, new AxoMessengerTextItem("C0752 Locked with password","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788307, new AxoMessengerTextItem("C0753 Loading default: Not possible with these groups","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788308, new AxoMessengerTextItem("C0754 Saving of the loaded values failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788321, new AxoMessengerTextItem("C0761 Factory default values incorrect ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788322, new AxoMessengerTextItem("C0762 Locked with password","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788323, new AxoMessengerTextItem("C0763 Load defaults procedure (application data), invalid param.","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788337, new AxoMessengerTextItem("C0771 Error when loading default settings","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788377, new AxoMessengerTextItem("C0799 An invalid index was set","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788738, new AxoMessengerTextItem("C0902 Spindle positioning requires drive enable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788739, new AxoMessengerTextItem("C0903 Error during initialization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788740, new AxoMessengerTextItem("C0904 Inadmissible drive control configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(788742, new AxoMessengerTextItem("C0906 Error during search for zero pulse","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790785, new AxoMessengerTextItem("C1101 Invalid parameters ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790786, new AxoMessengerTextItem("C1102 Parameter limit error ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790787, new AxoMessengerTextItem("C1103 Parameter conversion error ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790788, new AxoMessengerTextItem("C1104 Inadmissible motor-amplifier combination","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790789, new AxoMessengerTextItem("C1105 Invalid settings for controller cycle times","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790790, new AxoMessengerTextItem("C1106 Encoder Basic: Error during encoder initialization XG20.x.y","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790792, new AxoMessengerTextItem("C1108 Encoder Basic: Error during encoder initialization XG21.x.y","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790793, new AxoMessengerTextItem("C1109 Encoder Basic: Error during encoder initialization XG22.x.y","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790800, new AxoMessengerTextItem("C1110 Incorrect encoder 1 parameterization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790801, new AxoMessengerTextItem("C1111 Incorrect encoder 1 parameterization (mechanics)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790802, new AxoMessengerTextItem("C1112 Basic encoder evaluation not ready => encoder 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790806, new AxoMessengerTextItem("C1116 SMO: Inconsistent communication parameters","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790807, new AxoMessengerTextItem("C1117 SMO: Inconsistent motor parameters","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790808, new AxoMessengerTextItem("C1118 SMO: Error in transition command (CM -> PM)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790809, new AxoMessengerTextItem("C1119 SMO: Error in transition command (OM -> PM)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790816, new AxoMessengerTextItem("C1120 Inconsistent encoder configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790817, new AxoMessengerTextItem("C1121 Incorrect encoder 2 parameterization (mechanics)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790818, new AxoMessengerTextItem("C1122 Error when reading encoder data => encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790821, new AxoMessengerTextItem("C1125 Incorrect encoder 2 parameterization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790833, new AxoMessengerTextItem("C1131 Incorr. parameterization of measuring enc. (mechanics)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790834, new AxoMessengerTextItem("C1132 Basic encoder evaluation not ready => measuring encoder","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790836, new AxoMessengerTextItem("C1134 Travel range cannot be displayed internally => meas.enc","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790837, new AxoMessengerTextItem("C1135 Incorr. parameterization of measuring enc.","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790849, new AxoMessengerTextItem("C1141 Config. travel range cannot be displayed internally => enc.1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790850, new AxoMessengerTextItem("C1142 Scaling with motor reference not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790851, new AxoMessengerTextItem("C1143 Scaling type at load not consistent","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790853, new AxoMessengerTextItem("C1145 Mixed scaling units not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790854, new AxoMessengerTextItem("C1146 Incr. scaling with natural overflow and modulo not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790865, new AxoMessengerTextItem("C1151 Config. travel range cannot be displayed internally => enc.2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790880, new AxoMessengerTextItem("C1160 Firmware update active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790881, new AxoMessengerTextItem("C1161 Firmware update carried out. Restart required","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790888, new AxoMessengerTextItem("C1168 Enabled firmware functions not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790889, new AxoMessengerTextItem("C1169 Firmware function not enabled","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790896, new AxoMessengerTextItem("C1170 Maximum length of connection exceeded -> S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790897, new AxoMessengerTextItem("C1171 Invalid connection configuration -> S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790898, new AxoMessengerTextItem("C1172 DRIVElink: Communication status not in Operational","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790899, new AxoMessengerTextItem("C1173 DRIVElink: Connection configuration changed -> C7400","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790901, new AxoMessengerTextItem("C1175 Error when writing to the non-volatile memory","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790902, new AxoMessengerTextItem("C1176 Faulty communication with subsystem","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790913, new AxoMessengerTextItem("C1181 Commutation resolution too small","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790915, new AxoMessengerTextItem("C1183 Error during initialization of motor control->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790916, new AxoMessengerTextItem("C1184 Invalid motor data in encoder memory ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790917, new AxoMessengerTextItem("C1185 No motor data in encoder memory ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790919, new AxoMessengerTextItem("C1187 Error during initialization of motor data ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790920, new AxoMessengerTextItem("C1188 Combination of motor and encoder is incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790935, new AxoMessengerTextItem("C1197 Impossible to activate parameterization mode => encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790936, new AxoMessengerTextItem("C1198 Impossible to activate parameterization mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(790937, new AxoMessengerTextItem("C1199 Configuration changed. Restart","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791048, new AxoMessengerTextItem("C1208 Setting not possible for asynchronous motor","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791057, new AxoMessengerTextItem("C1211 Commutation offset could not be determined","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791058, new AxoMessengerTextItem("C1212 Motion range exceeded during commutation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791060, new AxoMessengerTextItem("C1214 Command only possible with linear synchronous motor","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791061, new AxoMessengerTextItem("C1215 Command only possible in 'bb'","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791062, new AxoMessengerTextItem("C1216 Commutation determination not selected","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791063, new AxoMessengerTextItem("C1217 Setting only possible in 'Ab'","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791064, new AxoMessengerTextItem("C1218 Automatic commutation: Current too low","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791065, new AxoMessengerTextItem("C1219 Automatic commutation: Overcurrent","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791072, new AxoMessengerTextItem("C1220 Automatic commutation: Timeout","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791073, new AxoMessengerTextItem("C1221 Automatic commutation: Iteration without result","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791074, new AxoMessengerTextItem("C1222 Error when writing offset parameters","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791075, new AxoMessengerTextItem("C1223 Command execution impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791076, new AxoMessengerTextItem("C1224 Zero point shifting only possible in parameter mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791077, new AxoMessengerTextItem("C1225 Zero point shifting only possible with master password","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791297, new AxoMessengerTextItem("C1301 Class 1 diagnostics error at command start","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791298, new AxoMessengerTextItem("C1302 Command execution impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791553, new AxoMessengerTextItem("C1401 Command not executable in current state of drive","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791554, new AxoMessengerTextItem("C1402 Faulty reference mark signal","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(791555, new AxoMessengerTextItem("C1403 Get marker position encoder 2 impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792065, new AxoMessengerTextItem("C1601 Parking axis not possible with drive enable set","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792066, new AxoMessengerTextItem("C1602 Error when activating parking axis ->S-0-139.0.151","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792068, new AxoMessengerTextItem("C1604 Parking axis on eLION device not available","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792069, new AxoMessengerTextItem("C1605 Error on SafeMotion when activating 'Parking axis'","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792321, new AxoMessengerTextItem("C1701 Initialization error of axis (CM->PM) ->S-0-0139.0.151","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792322, new AxoMessengerTextItem("C1702 Initialization error of axis (PM->OM) ->S-0-0139.0.151","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792323, new AxoMessengerTextItem("C1703 Safety technology cannot disable parking axis","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792577, new AxoMessengerTextItem("C1801 Start requires drive enable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792578, new AxoMessengerTextItem("C1802 No useful motor data","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792579, new AxoMessengerTextItem("C1803 Inertia detection failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792580, new AxoMessengerTextItem("C1804 Automatic controller setting failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792581, new AxoMessengerTextItem("C1805 Travel range invalid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792582, new AxoMessengerTextItem("C1806 Travel range exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792583, new AxoMessengerTextItem("C1807 Determining travel range only via travel distance","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792584, new AxoMessengerTextItem("C1808 Drive has not been homed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792585, new AxoMessengerTextItem("C1809 Command start only possible with active position limits","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792592, new AxoMessengerTextItem("C1810 Drive optimization incorrectly configured","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(792593, new AxoMessengerTextItem("C1811 Unexpected interruption of command execution","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794625, new AxoMessengerTextItem("C2001 Command not enabled","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794626, new AxoMessengerTextItem("C2002 Command not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794881, new AxoMessengerTextItem("C2101 Brake test requires drive enable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794883, new AxoMessengerTextItem("C2103 Torque/force of brake too low","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794884, new AxoMessengerTextItem("C2104 Command execution impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794885, new AxoMessengerTextItem("C2105 Load of holding system greater than test torque/force","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794886, new AxoMessengerTextItem("C2106 Test torque of brake not reached","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(794888, new AxoMessengerTextItem("C2108 Error when releasing the brake","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(795138, new AxoMessengerTextItem("C2202 Error when writing data to non-volatile memory","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(795393, new AxoMessengerTextItem("C2301 Error when reading non-volatile memory","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(795394, new AxoMessengerTextItem("C2302 Error when converting parameters","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(795650, new AxoMessengerTextItem("C2402 Error when saving parameters","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(796673, new AxoMessengerTextItem("C2801 Analog input not configured","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(796674, new AxoMessengerTextItem("C2802 Oscillations of input signal outside tolerance range","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(796675, new AxoMessengerTextItem("C2803 Measured values at zero point and max. value identical","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799234, new AxoMessengerTextItem("C3202 Incorrect input for voltage","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799235, new AxoMessengerTextItem("C3203 Incorrect input for frequency","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799236, new AxoMessengerTextItem("C3204 Incorrect input for speed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799237, new AxoMessengerTextItem("C3205 Incorrect input for power factor","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799238, new AxoMessengerTextItem("C3206 Incorrect input for power","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799239, new AxoMessengerTextItem("C3207 Type plate list incomplete","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799240, new AxoMessengerTextItem("C3208 Error when writing parameters -> P-0-0567","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(799241, new AxoMessengerTextItem("C3209 Command execution impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800257, new AxoMessengerTextItem("C3601 Motor not or not correctly connected","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800259, new AxoMessengerTextItem("C3603 Device current limit too low","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800260, new AxoMessengerTextItem("C3604 Error when calculating the motor parameters -> P-0-0567","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800261, new AxoMessengerTextItem("C3605 Motor turning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800263, new AxoMessengerTextItem("C3607 Motor revolution/motion impeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800273, new AxoMessengerTextItem("C3611 Test velocity not reached","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800274, new AxoMessengerTextItem("C3612 Command execution impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800275, new AxoMessengerTextItem("C3613 Error during command execution","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800277, new AxoMessengerTextItem("C3615 Error during initialization of motor control","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800278, new AxoMessengerTextItem("C3616 Overcurrent in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800279, new AxoMessengerTextItem("C3617 Overvoltage in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800513, new AxoMessengerTextItem("C3701 Motor revolution/motion impeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800514, new AxoMessengerTextItem("C3702 Incorrect motor phases or rotational direction of encoder","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800515, new AxoMessengerTextItem("C3703 Incorrect number of pole pairs or number of encoder lines","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800516, new AxoMessengerTextItem("C3704 No encoder: Validation check impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800517, new AxoMessengerTextItem("C3705 Command execution only possible in 'Ab'","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800518, new AxoMessengerTextItem("C3706 Motor turning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(800769, new AxoMessengerTextItem("C3801 Command Apply brake not possible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(802817, new AxoMessengerTextItem("C4001 Encoder evaluation error during Safe homing procedure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(802818, new AxoMessengerTextItem("C4002 Incorrect SMO position feedback value","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(802819, new AxoMessengerTextItem("C4003 Home switch distance below minimum value","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(802820, new AxoMessengerTextItem("C4004 Faulty SMO reference signal","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(802822, new AxoMessengerTextItem("C4006 SMO: Error when executing the command C4000","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(802832, new AxoMessengerTextItem("C4010 Command not executable, parameter not available","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(802833, new AxoMessengerTextItem("C4011 Command not executable, parameter cannot be written","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803076, new AxoMessengerTextItem("C4104 Error during parameter set switching","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803329, new AxoMessengerTextItem("C4201 Oscillation requires drive enable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803330, new AxoMessengerTextItem("C4202 Oscillation command speed cannot be reached","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803585, new AxoMessengerTextItem("C4301 Command not executable in current state of drive","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803586, new AxoMessengerTextItem("C4302 Distance home switch - reference mark erroneous","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803587, new AxoMessengerTextItem("C4303 Homing impossible with encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803588, new AxoMessengerTextItem("C4304 Homing impossible with absolute encoder","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803590, new AxoMessengerTextItem("C4306 Reference mark not detected","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803591, new AxoMessengerTextItem("C4307 Home switch input not assigned","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803592, new AxoMessengerTextItem("C4308 Fixed stop and HW limit switch not allowed for modulo axes","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803841, new AxoMessengerTextItem("C4401 Command not executable in current state of drive","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803843, new AxoMessengerTextItem("C4403 Homing impossible with encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(803856, new AxoMessengerTextItem("C4410 Overflow in displacement calculation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804097, new AxoMessengerTextItem("C4501 Command not executable in current state of drive","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804099, new AxoMessengerTextItem("C4503 Homing impossible with encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804353, new AxoMessengerTextItem("C4601 Error when writing parameters ->P-0-0567","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804354, new AxoMessengerTextItem("C4602 Procedure command at this time not executable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804609, new AxoMessengerTextItem("C4701 Command Easy startup mode not possible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804865, new AxoMessengerTextItem("C4801 Cogging torque/force comp.: Measuring velocity too high","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804866, new AxoMessengerTextItem("C4802 Cogging torque/force comp.: Measuring velocity too low","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804867, new AxoMessengerTextItem("C4803 Cogging torque/force comp.: Inadmissible acceleration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804868, new AxoMessengerTextItem("C4804 Cogging torque/force comp.: Error when storing table","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804869, new AxoMessengerTextItem("C4805 Cogging torque/force comp.: Motor measuring system not homed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804870, new AxoMessengerTextItem("C4806 Cogging torque/force comp.: Invalid measuring range","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804871, new AxoMessengerTextItem("C4807 Cogging torque/force comp.: No modulo axis w abs. posit. ref","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(804872, new AxoMessengerTextItem("C4808 Cogging torque/force comp.: Command requires drive enable","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(807456, new AxoMessengerTextItem("C5220 Coupled command C02 error ->S-0-0022","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(807458, new AxoMessengerTextItem("C5222 Coupled command C02 could not be started","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(807505, new AxoMessengerTextItem("C5251 Error during synchronization to master communication","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(807681, new AxoMessengerTextItem("C5301 Sercos: Delay measurement - parameterization error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(807682, new AxoMessengerTextItem("C5302 Sercos: Delay measurement - too many MST failures","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(807683, new AxoMessengerTextItem("C5303 Sercos: Delay measurement - too many measuring errors","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811265, new AxoMessengerTextItem("C6101 Incorrect IP settings","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811777, new AxoMessengerTextItem("C6301 Command is password-protected","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811778, new AxoMessengerTextItem("C6302 IDN not permissible ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811779, new AxoMessengerTextItem("C6303 Insufficient memory","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811780, new AxoMessengerTextItem("C6304 Type plate unknown","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811781, new AxoMessengerTextItem("C6305 General type plate generation error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811792, new AxoMessengerTextItem("C6310 Command not possible with this encoder type","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(811793, new AxoMessengerTextItem("C6311 Error when accessing encoder memory","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(812033, new AxoMessengerTextItem("C6401 Reboot command impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(812034, new AxoMessengerTextItem("C6402 Reboot command: Othe components not ready","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(813313, new AxoMessengerTextItem("C6901 Shutdown currently not possible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(813314, new AxoMessengerTextItem("C6902 Shutdown failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(816129, new AxoMessengerTextItem("C7401 DRIVElink: Configuration mode not possible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(817153, new AxoMessengerTextItem("C7801 SMO: Parameter application invalid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(817154, new AxoMessengerTextItem("C7802 SMO: Impossible to apply motor configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819201, new AxoMessengerTextItem("C8001 SMO: Invalid scaling parameters ->S-0-0423","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819202, new AxoMessengerTextItem("C8002 SMO: Not allowed to apply scaling","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819457, new AxoMessengerTextItem("C8101 SMO: Command execution impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819489, new AxoMessengerTextItem("C8121 SMO: Parking axis, command 1 cannot be executed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819505, new AxoMessengerTextItem("C8131 SMO: Parking axis, command 2 cannot","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819731, new AxoMessengerTextItem("C8213 SMO: Incorrect parameterization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819732, new AxoMessengerTextItem("C8214 SMO: Incorrect configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819745, new AxoMessengerTextItem("C8221 SMO: Disable Parking axis, command 1 cannot be executed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819761, new AxoMessengerTextItem("C8231 SMO: Disable Parking axis, command 2 cannot be executed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819969, new AxoMessengerTextItem("C8301 SMO: Incorrect parameter image","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(819970, new AxoMessengerTextItem("C8302 SMO: Impossible to apply parameter image at this time","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820225, new AxoMessengerTextItem("C8401 SMO: Impossible to apply encoder type","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820226, new AxoMessengerTextItem("C8402 SMO: Impossible to apply encoder configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820227, new AxoMessengerTextItem("C8403 SMO: Parameter for applying encoder configuration invalid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820481, new AxoMessengerTextItem("C8501 SMO: Impossible to apply axis identification","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820737, new AxoMessengerTextItem("C8601 SMO: Encoder evaluation is inactive","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(820996, new AxoMessengerTextItem("C8704 SMO: Incorrect change of system state","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821041, new AxoMessengerTextItem("C8731 SMO: Parking axis, command 3 cannot be executed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821267, new AxoMessengerTextItem("C8813 SMO: Incorrect parameterization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821268, new AxoMessengerTextItem("C8814 SMO: Incorrect configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821270, new AxoMessengerTextItem("C8816 SMO: Switching not allowed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821297, new AxoMessengerTextItem("C8831 SMO: Disable Parking axis, command 3 cannot be executed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821505, new AxoMessengerTextItem("C8901 SMO: Parameters cannot be applied","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(821506, new AxoMessengerTextItem("C8902 SMO: Communication configuration cannot be applied","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(825089, new AxoMessengerTextItem("C9701 Command execution failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(825093, new AxoMessengerTextItem("C9705 Disabling ctrlX SENSE battery monitoring failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(825094, new AxoMessengerTextItem("C9706 Enabling ctrlX SENSE battery monitoring failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925697, new AxoMessengerTextItem("E2001 Diagnostic trace S-0-1303.0.10 overflow warning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925698, new AxoMessengerTextItem("E2002 Parameters outside of valid value range","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925700, new AxoMessengerTextItem("E2004 Performance load prewarning threshold exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925712, new AxoMessengerTextItem("E2010 Position control with encoder 2 not possible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925714, new AxoMessengerTextItem("E2012 Position control with encoder 1 not possible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925729, new AxoMessengerTextItem("E2021 Motor temperature outside of measuring range","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925733, new AxoMessengerTextItem("E2025 Device carrier undervoltage","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925734, new AxoMessengerTextItem("E2026 Undervoltage in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925746, new AxoMessengerTextItem("E2032 Impossible to switch off","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925747, new AxoMessengerTextItem("E2033 Error in power supply from high voltage source","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925749, new AxoMessengerTextItem("E2035 Incr. encoder emulator: Pulse frequency too high","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925750, new AxoMessengerTextItem("E2036 Incremental enc. emulator resol. cannot be displayed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925765, new AxoMessengerTextItem("E2045 Encoder emulator: Hardware warning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925767, new AxoMessengerTextItem("E2047 Low battery voltage (encoder 2)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925769, new AxoMessengerTextItem("E2049 Positioning velocity >= limit value","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925776, new AxoMessengerTextItem("E2050 Device overtemp. prewarning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925777, new AxoMessengerTextItem("E2051 Motor overtemp. prewarning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925778, new AxoMessengerTextItem("E2052 Coolant temperature outside of range","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925779, new AxoMessengerTextItem("E2053 Target position out of travel range","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925780, new AxoMessengerTextItem("E2054 Not homed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925781, new AxoMessengerTextItem("E2055 Feedrate override S-0-0108 = 0","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925782, new AxoMessengerTextItem("E2056 Torque limit = 0","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925784, new AxoMessengerTextItem("E2058 Selected positioning block has not been programmed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925785, new AxoMessengerTextItem("E2059 Velocity command value limit active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925793, new AxoMessengerTextItem("E2061 Device overload prewarning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925795, new AxoMessengerTextItem("E2063 Velocity command value > limit value","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925808, new AxoMessengerTextItem("E2070 Acceleration limit active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925812, new AxoMessengerTextItem("E2074 Encoder 1: Encoder signals disturbed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925813, new AxoMessengerTextItem("E2075 Encoder 2: Encoder signals disturbed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925814, new AxoMessengerTextItem("E2076 Measuring encoder: Encoder signals warning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925824, new AxoMessengerTextItem("E2080 Low battery voltage, encoder at XG20","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925825, new AxoMessengerTextItem("E2081 Low battery voltage, encoder at XG21","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925826, new AxoMessengerTextItem("E2082 Low battery voltage, encoder at XG22","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925828, new AxoMessengerTextItem("E2084 Reference mark not detected (cogging reference)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925842, new AxoMessengerTextItem("E2092 Incorrect internal synchronization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925968, new AxoMessengerTextItem("E2110 DC bus voltage command value has exceeded limit value","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(925969, new AxoMessengerTextItem("E2111 DC bus voltage command value has fallen below limit value","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926002, new AxoMessengerTextItem("E2132 Touch probe input I_1: Bouncing detected","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926003, new AxoMessengerTextItem("E2133 Touch probe input I_2: Bouncing detected","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926048, new AxoMessengerTextItem("E2160 Max. number of activatable firmware functions exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926049, new AxoMessengerTextItem("E2161 Increased scope of functions to be activated -> restart requ","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926053, new AxoMessengerTextItem("E2165 B sample function activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926084, new AxoMessengerTextItem("E2184 Reference mark not detected (commutation)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926225, new AxoMessengerTextItem("E2211 PLC warning no. 1 without drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926226, new AxoMessengerTextItem("E2212 PLC warning no. 2 without drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926227, new AxoMessengerTextItem("E2213 PLC warning no. 3 without drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926228, new AxoMessengerTextItem("E2214 PLC warning no. 4 without drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926229, new AxoMessengerTextItem("E2215 PLC warning no. 5 without drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926230, new AxoMessengerTextItem("E2216 PLC warning no. 6 without drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926231, new AxoMessengerTextItem("E2217 PLC warning no. 7 without drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926232, new AxoMessengerTextItem("E2218 PLC warning no. 8 without drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926320, new AxoMessengerTextItem("E2270 Analog input, wire break","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(926340, new AxoMessengerTextItem("E2284 Reference mark not detected (encoder emulation)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927333, new AxoMessengerTextItem("E2665 ABG filter 2: Bypass function active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927334, new AxoMessengerTextItem("E2666 ABG filter 1: Bypass function active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927748, new AxoMessengerTextItem("E2804 Warning, power section heat sink fan","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927749, new AxoMessengerTextItem("E2805 Warning, power section capacitors fan","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927750, new AxoMessengerTextItem("E2806 Warning, braking resistor fan","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927753, new AxoMessengerTextItem("E2809 Warning, mains connection fan","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927761, new AxoMessengerTextItem("E2811 Overload in mains connection module/soft start module","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927765, new AxoMessengerTextItem("E2815 Overvoltage in mains","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927768, new AxoMessengerTextItem("E2818 Phase failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927769, new AxoMessengerTextItem("E2819 Mains failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927776, new AxoMessengerTextItem("E2820 Braking resistor overload prewarning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927779, new AxoMessengerTextItem("E2823 Unbalanced phase current","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927781, new AxoMessengerTextItem("E2825 Braking resistor switch-on voltage > configured value","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927782, new AxoMessengerTextItem("E2826 Command current limitation active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927783, new AxoMessengerTextItem("E2827 Current controller output limitation active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927796, new AxoMessengerTextItem("E2834 Switching off via OFF input","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927841, new AxoMessengerTextItem("E2861 Device overload prewarning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(927888, new AxoMessengerTextItem("E2890 Unknown power section diagnostics","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(928001, new AxoMessengerTextItem("E2901 Flash memory full: Clear memory with Win PC","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(928002, new AxoMessengerTextItem("E2902 File system error: Restart panel","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(928003, new AxoMessengerTextItem("E2903 Panel communication interrupted","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(928004, new AxoMessengerTextItem("E2904 Incompatible language version: Language files update","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(930066, new AxoMessengerTextItem("E3112 Safe reference missing","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(930067, new AxoMessengerTextItem("E3113 Prewarning: End of reference position check time interval","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(930069, new AxoMessengerTextItem("E3115 Prewarning: End of brake check time interval","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(930096, new AxoMessengerTextItem("E3130 SMO: Warning safe torque/force evaluation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(930099, new AxoMessengerTextItem("E3133 SMO: Safe calibration indadmissible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(930100, new AxoMessengerTextItem("E3134 SMO: Using non-licensed safety functions","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(930129, new AxoMessengerTextItem("E3151 Safely-monitored deceleration exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933889, new AxoMessengerTextItem("E4001 Bus synchronization failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933890, new AxoMessengerTextItem("E4002 Failure of a consumer connection","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933895, new AxoMessengerTextItem("E4007 Communication bus cable break","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933896, new AxoMessengerTextItem("E4008 Invalid addressing command value data container A","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933897, new AxoMessengerTextItem("E4009 Invalid addressing actual value data container A","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933904, new AxoMessengerTextItem("E4010 Slave not scanned","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933907, new AxoMessengerTextItem("E4013 DRIVElink: Incorrect addressing","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933920, new AxoMessengerTextItem("E4020 Communication bus ring break","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933943, new AxoMessengerTextItem("E4037 Excessive position command difference","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933952, new AxoMessengerTextItem("E4040 Sercos: Hot plug error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933953, new AxoMessengerTextItem("E4041 Sercos: HP0 Cycle Time invalid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933954, new AxoMessengerTextItem("E4042 Sercos: HP0 MDT length invalid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933955, new AxoMessengerTextItem("E4043 Sercos: HP0 AT length invalid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933956, new AxoMessengerTextItem("E4044 Sercos: HP0 MTU size invalid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933957, new AxoMessengerTextItem("E4045 Sercos: HP0 UC window invalid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933958, new AxoMessengerTextItem("E4046 Sercos: HP supported removed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(933959, new AxoMessengerTextItem("E4047 Sercos: HP enabled removed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(934000, new AxoMessengerTextItem("E4070 EtherCAT mailbox error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(934001, new AxoMessengerTextItem("E4071 EtherCAT SoE mailbox error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(934002, new AxoMessengerTextItem("E4072 EtherCAT EoE mailbox error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(934003, new AxoMessengerTextItem("E4073 EtherCAT CoE mailbox error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(934004, new AxoMessengerTextItem("E4074 EtherCAT: FoE mailbox error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(934528, new AxoMessengerTextItem("E4280 PROFINET: Reset to Factory","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(934529, new AxoMessengerTextItem("E4281 PROFINET: Configuration error at slot / subslot","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950306, new AxoMessengerTextItem("E8022 Encoder 1: Encoder signals incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950307, new AxoMessengerTextItem("E8023 Encoder 2: Encoder signals incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950309, new AxoMessengerTextItem("E8025 Overvoltage in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950310, new AxoMessengerTextItem("E8026 Undervoltage in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950311, new AxoMessengerTextItem("E8027 STO while drive enabled","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950312, new AxoMessengerTextItem("E8028 Overcurrent in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950313, new AxoMessengerTextItem("E8029 Positive position limit exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950320, new AxoMessengerTextItem("E8030 Negative position limit exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950324, new AxoMessengerTextItem("E8034 Emergency-Stop activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950336, new AxoMessengerTextItem("E8040 Torque/force actual value limit active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950337, new AxoMessengerTextItem("E8041 Current limitation active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950338, new AxoMessengerTextItem("E8042 Both travel range limit switches activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950339, new AxoMessengerTextItem("E8043 Positive travel range limit switch activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950340, new AxoMessengerTextItem("E8044 Negative travel range limit switch activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950357, new AxoMessengerTextItem("E8055 Motor overload, current limit active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950359, new AxoMessengerTextItem("E8057 Device overload, current limit active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950801, new AxoMessengerTextItem("E8211 PLC warning no. 1 with drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950802, new AxoMessengerTextItem("E8212 PLC warning no. 2 with drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950803, new AxoMessengerTextItem("E8213 PLC warning no. 3 with drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950804, new AxoMessengerTextItem("E8214 PLC warning no. 4 with drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950805, new AxoMessengerTextItem("E8215 PLC warning no. 5 with drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950806, new AxoMessengerTextItem("E8216 PLC warning no. 6 with drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950807, new AxoMessengerTextItem("E8217 PLC warning no. 7 with drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950808, new AxoMessengerTextItem("E8218 PLC warning no. 8 with drive reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(950880, new AxoMessengerTextItem("E8260 Torque/force command value limit active","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(951040, new AxoMessengerTextItem("E8300 SMO: Error within the safety zone","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(952357, new AxoMessengerTextItem("E8825 Overvoltage in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(952358, new AxoMessengerTextItem("E8826 HV discharge pin priority","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(952360, new AxoMessengerTextItem("E8828 Overcurrent in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991239, new AxoMessengerTextItem("F2007 Switching to forbidden Operation Mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991240, new AxoMessengerTextItem("F2008 RL The motor type has changed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991248, new AxoMessengerTextItem("F2010 Error when initializing I/O module","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991256, new AxoMessengerTextItem("F2018 Device overtemperature shutdown","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991257, new AxoMessengerTextItem("F2019 Motor overtemperature shutdown","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991265, new AxoMessengerTextItem("F2021 Motor temperature monitor defective","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991266, new AxoMessengerTextItem("F2022 Device temperature monitor defective","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991267, new AxoMessengerTextItem("F2023 Device temperature model error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991269, new AxoMessengerTextItem("F2025 Drive not ready for control","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991270, new AxoMessengerTextItem("F2026 Undervoltage in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991272, new AxoMessengerTextItem("F2028 Excessive deviation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991282, new AxoMessengerTextItem("F2032 Validation error during commutation fine adjustment","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991286, new AxoMessengerTextItem("F2036 Excessive position feedback difference","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991298, new AxoMessengerTextItem("F2042 Encoder 2: Encoder signals incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991299, new AxoMessengerTextItem("F2043 Measuring encoder: Encoder signals incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991303, new AxoMessengerTextItem("F2047 Low encoder battery voltage encoder 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991312, new AxoMessengerTextItem("F2050 Overflow of target position preset memory","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991313, new AxoMessengerTextItem("F2051 No sequential block in target position preset memory","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991315, new AxoMessengerTextItem("F2053 Incr. encoder emulator: Pulse frequency too high","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991316, new AxoMessengerTextItem("F2054 Encoder emulator: Hardware error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991318, new AxoMessengerTextItem("F2056 Overload at I/O module","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991319, new AxoMessengerTextItem("F2057 Target position out of travel range","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991335, new AxoMessengerTextItem("F2067 Synchronization to master communication incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991336, new AxoMessengerTextItem("F2068 Brake error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991348, new AxoMessengerTextItem("F2074 Actual pos. value 1 outside absolute encoder window","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991349, new AxoMessengerTextItem("F2075 Actual pos. value 2 outside absolute encoder window","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991350, new AxoMessengerTextItem("F2076 Act. pos. value measuring enc. outside abs. encoder window","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991351, new AxoMessengerTextItem("F2077 Current measurement trim wrong","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991360, new AxoMessengerTextItem("F2080 Low battery voltage, encoder at XG20","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991361, new AxoMessengerTextItem("F2081 Low battery voltage, encoder at XG21","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991362, new AxoMessengerTextItem("F2082 Low battery voltage, encoder at XG22","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991368, new AxoMessengerTextItem("F2088 24 V error at I/O module","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991385, new AxoMessengerTextItem("F2099 F2 test error, axis reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991488, new AxoMessengerTextItem("F2100 Incorrect access to command value memory","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991492, new AxoMessengerTextItem("F2104 Commutation offset invalid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991495, new AxoMessengerTextItem("F2107 Incorrect commutation angle","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991504, new AxoMessengerTextItem("F2110 Internal access to forbidden memory range","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991537, new AxoMessengerTextItem("F2131 Incorrect switching state of probe 1 input signal","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991604, new AxoMessengerTextItem("F2174 Loss of encoder 1 reference","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991605, new AxoMessengerTextItem("F2175 Loss of encoder 2 reference","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991606, new AxoMessengerTextItem("F2176 Loss of measuring encoder reference","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991607, new AxoMessengerTextItem("F2177 Encoder 1 modulo limitation error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991608, new AxoMessengerTextItem("F2178 Encoder 2 modulo limitation error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991609, new AxoMessengerTextItem("F2179 Modulo limitation error of measuring encoder","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991632, new AxoMessengerTextItem("F2190 Incorrect Ethernet configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991761, new AxoMessengerTextItem("F2211 Non-fatal PLC error no. 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991762, new AxoMessengerTextItem("F2212 Non-fatal PLC error no. 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991763, new AxoMessengerTextItem("F2213 Non-fatal PLC error no. 3","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991764, new AxoMessengerTextItem("F2214 Non-fatal PLC error no. 4","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991765, new AxoMessengerTextItem("F2215 Non-fatal PLC error no. 5","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991766, new AxoMessengerTextItem("F2216 Non-fatal PLC error no. 6","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991767, new AxoMessengerTextItem("F2217 Non-fatal PLC error no. 7","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991768, new AxoMessengerTextItem("F2218 Non-fatal PLC error no. 8","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(991856, new AxoMessengerTextItem("F2270 Analog input, wire break","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993282, new AxoMessengerTextItem("F2802 Error in mains synchronization","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993283, new AxoMessengerTextItem("F2803 Black start impossible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993284, new AxoMessengerTextItem("F2804 Error, power section heat sink fan","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993285, new AxoMessengerTextItem("F2805 Error, power section capacitors fan","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993286, new AxoMessengerTextItem("F2806 Error, braking resistor fan","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993287, new AxoMessengerTextItem("F2807 Switching to non-initialized power supply operation mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993288, new AxoMessengerTextItem("F2808 Error in fan monitoring","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993289, new AxoMessengerTextItem("F2809 Error, mains connection fan","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993297, new AxoMessengerTextItem("F2811 Mains connection overtemperature","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993298, new AxoMessengerTextItem("F2812 Mains frequency outside of the extended monitoring window","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993300, new AxoMessengerTextItem("F2814 Mains voltage outside of the extended monitoring window","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993301, new AxoMessengerTextItem("F2815 Overvoltage in mains","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993302, new AxoMessengerTextItem("F2816 Softstart fault power supply unit","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993304, new AxoMessengerTextItem("F2818 Phase failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993305, new AxoMessengerTextItem("F2819 Mains failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993312, new AxoMessengerTextItem("F2820 Braking resistor overload","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993313, new AxoMessengerTextItem("F2821 Error in control of braking resistor","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993314, new AxoMessengerTextItem("F2822 Device temperature monitor defective","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993315, new AxoMessengerTextItem("F2823 Device temperature model error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993317, new AxoMessengerTextItem("F2825 HV discharge timeout","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993318, new AxoMessengerTextItem("F2826 Undervoltage in DC bus","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993319, new AxoMessengerTextItem("F2827 Excessive oscillation in DC bus","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993332, new AxoMessengerTextItem("F2834 Contactor control error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993376, new AxoMessengerTextItem("F2860 Overcurrent in mains-side power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993399, new AxoMessengerTextItem("F2877 Current measurement trim wrong","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993432, new AxoMessengerTextItem("F2898 F2 test error, axis and supply unit reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993433, new AxoMessengerTextItem("F2899 F2 test error, supply unit reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993537, new AxoMessengerTextItem("F2901 Communication error: Check connection or network config.","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993538, new AxoMessengerTextItem("F2902 File system corrupt: Contact the service team","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(993539, new AxoMessengerTextItem("F2903 Panel base parameters invalid: Contact the service team","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995344, new AxoMessengerTextItem("F3010 SMO: IO mapper inputs error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995345, new AxoMessengerTextItem("F3011 Incorrect supply voltage","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995584, new AxoMessengerTextItem("F3100 F3 test error during machine acceptance test","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995585, new AxoMessengerTextItem("F3101 Axis validation missing","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995602, new AxoMessengerTextItem("F3112 Safe reference missing","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995605, new AxoMessengerTextItem("F3115 Brake check time interval exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995609, new AxoMessengerTextItem("F3119 Error in initialization of P-0-3212","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995634, new AxoMessengerTextItem("F3132 SDL validation error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995636, new AxoMessengerTextItem("F3134 Dynamization time interval incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995648, new AxoMessengerTextItem("F3140 SVM: Error in DC bus voltage monitoring","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995649, new AxoMessengerTextItem("F3141 Operating status selection validation error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995650, new AxoMessengerTextItem("F3142 Activation time of enabling control exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995652, new AxoMessengerTextItem("F3144 AKS validation during drive-controlled transition to SM1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995685, new AxoMessengerTextItem("F3165 Faulty SMO reference signal","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995686, new AxoMessengerTextItem("F3166 Reference position check failed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(995687, new AxoMessengerTextItem("F3167 Encoder evaluation warning","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996192, new AxoMessengerTextItem("F3360 SMO: Error in control of safe local outputs","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996195, new AxoMessengerTextItem("F3363 SMO: Error in control of safe local inputs","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996196, new AxoMessengerTextItem("F3364 SMO: Local inputs system error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996197, new AxoMessengerTextItem("F3365 SMO: Local inputs overvoltage error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996198, new AxoMessengerTextItem("F3366 SMO: Local inputs system error after overvoltage","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996199, new AxoMessengerTextItem("F3367 SMO: Error in control of SAFETYlink inputs","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996208, new AxoMessengerTextItem("F3370 SMO: B sample error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996448, new AxoMessengerTextItem("F3460 PROFIsafe error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996449, new AxoMessengerTextItem("F3461 PROFIsafe connection error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996450, new AxoMessengerTextItem("F3462 PROFIsafe: F-destination address mismatch","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996451, new AxoMessengerTextItem("F3463 PROFIsafe: F-source address mismatch or not valid","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996452, new AxoMessengerTextItem("F3464 PROFIsafe: F-parameter block inconsistent (CRC1 error)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996453, new AxoMessengerTextItem("F3465 PROFIsafe: iParameters inconsistent (iParCRC error)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996454, new AxoMessengerTextItem("F3466 PROFIsafe: Transmission data inconsistent (CRC2 error)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996455, new AxoMessengerTextItem("F3467 PROFIsafe: Transmission timeout (watchdog elapsed)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996464, new AxoMessengerTextItem("F3470 Safe CAN communication: General error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996465, new AxoMessengerTextItem("F3471 Safe CAN communication: Error connection #1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(996466, new AxoMessengerTextItem("F3472 Safe CAN communication: Error connection #2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999425, new AxoMessengerTextItem("F4001 Bus synchronization failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999426, new AxoMessengerTextItem("F4002 Failure of a consumer connection","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999427, new AxoMessengerTextItem("F4003 Invalid communication phase shutdown","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999428, new AxoMessengerTextItem("F4004 Error during phase progression","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999429, new AxoMessengerTextItem("F4005 Error during phase regression","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999430, new AxoMessengerTextItem("F4006 Phase switching without ready signal","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999433, new AxoMessengerTextItem("F4009 Bus failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999447, new AxoMessengerTextItem("F4017 Incorrect sequence during phase switching","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999449, new AxoMessengerTextItem("F4019 Incorrect sequence upon phase start","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999456, new AxoMessengerTextItem("F4020 Communication bus cable break","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999476, new AxoMessengerTextItem("F4034 Emergency-Stop activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999478, new AxoMessengerTextItem("F4036 Disturbed internal communication with communication module","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999479, new AxoMessengerTextItem("F4037 Excessive position command difference","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999481, new AxoMessengerTextItem("F4039 Communication return with enable signal set","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999488, new AxoMessengerTextItem("F4040 DRIVElink: Consumer connection failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999489, new AxoMessengerTextItem("F4041 DRIVElink: Communication failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999538, new AxoMessengerTextItem("F4072 EtherCAT: EoE Invalid Mac Address","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999568, new AxoMessengerTextItem("F4090 EtherCAT: Invalid mailbox configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999569, new AxoMessengerTextItem("F4091 EtherCAT: Invalid output configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999570, new AxoMessengerTextItem("F4092 EtherCAT: Invalid input configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999571, new AxoMessengerTextItem("F4093 EtherCAT: Invalid watchdog configuration","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999577, new AxoMessengerTextItem("F4099 F4 test error; axis and supply unit reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(999936, new AxoMessengerTextItem("F4200 VPI: Consumer connection failure","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007617, new AxoMessengerTextItem("F6001 Non-fatal system error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007623, new AxoMessengerTextItem("F6007 Switching to non-initialized operation mode","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007632, new AxoMessengerTextItem("F6010 PLC runtime error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007656, new AxoMessengerTextItem("F6028 Position limit value exceeded (overflow)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007657, new AxoMessengerTextItem("F6029 Positive position limit exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007664, new AxoMessengerTextItem("F6030 Negative position limit exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007668, new AxoMessengerTextItem("F6034 Emergency-Stop activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007682, new AxoMessengerTextItem("F6042 Both travel range limit switches activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007683, new AxoMessengerTextItem("F6043 Positive travel range limit switch activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007684, new AxoMessengerTextItem("F6044 Negative travel range limit switch activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007703, new AxoMessengerTextItem("F6057 Synchronization not possible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007704, new AxoMessengerTextItem("F6058 Internal overflow by positioning input","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007705, new AxoMessengerTextItem("F6059 Incorrect direction when jogging","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1007769, new AxoMessengerTextItem("F6099 F6 test error, axis reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1008128, new AxoMessengerTextItem("F6200 Velocity command value > standstill window in SOS","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1009220, new AxoMessengerTextItem("F6644 Device-internal communication to I/O module disturbed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1009665, new AxoMessengerTextItem("F6801 Non-fatal system error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1009817, new AxoMessengerTextItem("F6899 F6 test error, axis and supply unit reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011721, new AxoMessengerTextItem("F7009 Homing velocity exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011728, new AxoMessengerTextItem("F7010 Safely-limited increment exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011729, new AxoMessengerTextItem("F7011 SMP, SLP: Safe position limit value, positive exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011730, new AxoMessengerTextItem("F7012 SMP, SLP: Safe position limit value, negative exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011731, new AxoMessengerTextItem("F7013 Velocity threshold exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011732, new AxoMessengerTextItem("F7014 Timeout in safely-monitored transient oscillation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011744, new AxoMessengerTextItem("F7020 Safe maximum speed exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011747, new AxoMessengerTextItem("F7023 SLE: Safe position limit value, positive exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011748, new AxoMessengerTextItem("F7024 SLE: Safe position limit value, negative exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011760, new AxoMessengerTextItem("F7030 Position window for safe operating stop exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011761, new AxoMessengerTextItem("F7031 Incorrect direction of motion","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011762, new AxoMessengerTextItem("F7032 Forced zone safety","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011765, new AxoMessengerTextItem("F7035 SAFETYlink error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011792, new AxoMessengerTextItem("F7050 Maximum transition time exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011793, new AxoMessengerTextItem("F7051 Safely-monitored deceleration exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011794, new AxoMessengerTextItem("F7052 Selected target velocity exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011801, new AxoMessengerTextItem("F7059 Scaling-dependent maximum velocity exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1011968, new AxoMessengerTextItem("F7100 F7 test error during machine acceptance test","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015816, new AxoMessengerTextItem("F8008 Autom. commutation: Axis blocked","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015817, new AxoMessengerTextItem("F8009 Autom. commutation timeout: Axis in motion","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015824, new AxoMessengerTextItem("F8010 Autom. commutation: Max. motion range when moving back","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015825, new AxoMessengerTextItem("F8011 Commutation offset could not be determined","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015826, new AxoMessengerTextItem("F8012 Autom. commutation: Max. motion range","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015827, new AxoMessengerTextItem("F8013 Automatic commutation: Current too low","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015828, new AxoMessengerTextItem("F8014 Automatic commutation: Overcurrent","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015829, new AxoMessengerTextItem("F8015 Automatic commutation: Timeout","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015830, new AxoMessengerTextItem("F8016 Automatic commutation: Iteration without result","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015832, new AxoMessengerTextItem("F8018 Device overtemperature shutdown","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015833, new AxoMessengerTextItem("F8019 Impossible to determine commutation offset","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015842, new AxoMessengerTextItem("F8022 Encoder 1: Encoder signals incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015844, new AxoMessengerTextItem("F8024 Maximum braking time exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015845, new AxoMessengerTextItem("F8025 Overvoltage in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015846, new AxoMessengerTextItem("F8026 HV discharge while drive enabled","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015847, new AxoMessengerTextItem("F8027 STO while drive enabled","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015861, new AxoMessengerTextItem("F8035 Communication error, encoder interface modules","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015862, new AxoMessengerTextItem("F8036 Communication error, onboard encoder modules","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015874, new AxoMessengerTextItem("F8042 Encoder 2: Encoder signals incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015893, new AxoMessengerTextItem("F8055 Incorrect processing of diagnostic message","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015904, new AxoMessengerTextItem("F8060 Overcurrent in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015908, new AxoMessengerTextItem("F8064 Interruption of motor phase","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015922, new AxoMessengerTextItem("F8072 Device carrier internal voltage error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015927, new AxoMessengerTextItem("F8077 Velocity controller overload","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015928, new AxoMessengerTextItem("F8078 Speed loop error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015929, new AxoMessengerTextItem("F8079 Velocity limit value exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015936, new AxoMessengerTextItem("F8080 Frequency > 599Hz","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015937, new AxoMessengerTextItem("F8081 Speed at drive shaft too low","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015953, new AxoMessengerTextItem("F8091 Power section defective","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015960, new AxoMessengerTextItem("F8098 F8 test error, F8022 error reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1015961, new AxoMessengerTextItem("F8099 F8 test error, axis reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016064, new AxoMessengerTextItem("F8100 Error when initializing the parameter handling","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016065, new AxoMessengerTextItem("F8101 Error during parameter set switching","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016066, new AxoMessengerTextItem("F8102 Error when initializing power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016069, new AxoMessengerTextItem("F8105 Firmware runtime error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016070, new AxoMessengerTextItem("F8106 SMO: Internal communication error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016080, new AxoMessengerTextItem("F8110 Firmware update incompatible","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016085, new AxoMessengerTextItem("F8115 Firmware inconsistent","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016088, new AxoMessengerTextItem("F8118 Invalid power section/firmware combination","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016098, new AxoMessengerTextItem("F8122 Control section defective","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016112, new AxoMessengerTextItem("F8130 Mains connection module (XLI) not ready for operation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016113, new AxoMessengerTextItem("F8131 Exception on optional module","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016114, new AxoMessengerTextItem("F8132 Subsystem of encoder not ready for operation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016337, new AxoMessengerTextItem("F8211 Fatal PLC error no. 1","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016338, new AxoMessengerTextItem("F8212 Fatal PLC error no. 2","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016339, new AxoMessengerTextItem("F8213 Fatal PLC error no. 3","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016340, new AxoMessengerTextItem("F8214 Fatal PLC error no. 4","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016341, new AxoMessengerTextItem("F8215 Fatal PLC error no. 5","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016342, new AxoMessengerTextItem("F8216 Fatal PLC error no. 6","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016343, new AxoMessengerTextItem("F8217 Fatal PLC error no. 7","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016344, new AxoMessengerTextItem("F8218 Fatal PLC error no. 8","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016576, new AxoMessengerTextItem("F8300 Dynamization pulse width incorrect","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016577, new AxoMessengerTextItem("F8301 Error when checking selection signals","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016579, new AxoMessengerTextItem("F8303 STO system error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016594, new AxoMessengerTextItem("F8312 SMO: Invalid scaling setting","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016598, new AxoMessengerTextItem("F8316 SMO: Incorrect change of system state","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016600, new AxoMessengerTextItem("F8318 SMO: Different states of state machines","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016601, new AxoMessengerTextItem("F8319 SMO: INIT system error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016608, new AxoMessengerTextItem("F8320 SMO: Invalid module/firmware combination","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016609, new AxoMessengerTextItem("F8321 SMO: Invalid circuit board/firmware combination","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016610, new AxoMessengerTextItem("F8322 SMO: Invalid combination HW/FW properties","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016611, new AxoMessengerTextItem("F8323 SMO: Error in deactivation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016612, new AxoMessengerTextItem("F8324 SMO: Error in activation","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016613, new AxoMessengerTextItem("F8325 SMO: Error output 3","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016614, new AxoMessengerTextItem("F8326 SMO: Error during booting process","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016624, new AxoMessengerTextItem("F8330 SMO: Configuration data record has not been activated","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016656, new AxoMessengerTextItem("F8350 Maximum transition time exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016657, new AxoMessengerTextItem("F8351 Safely-monitored deceleration exceeded","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016658, new AxoMessengerTextItem("F8352 Drive enable set in STO","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016659, new AxoMessengerTextItem("F8353 SBC system error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016660, new AxoMessengerTextItem("F8354 Error when checking interrupting circuits","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016662, new AxoMessengerTextItem("F8356 SMO: Incorrect parameter processing","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016665, new AxoMessengerTextItem("F8359 SMO: Encoder evaluation error","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016672, new AxoMessengerTextItem("F8360 Torque reset timeout","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016673, new AxoMessengerTextItem("F8361 Validation error, current measurement","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016674, new AxoMessengerTextItem("F8362 AKS validation by SMTR","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1016729, new AxoMessengerTextItem("F8399 SMO: Test error for enabling test","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017873, new AxoMessengerTextItem("F8811 Device overtemperature shutdown","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017874, new AxoMessengerTextItem("F8812 Mains frequency outside of the monitoring window","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017875, new AxoMessengerTextItem("F8813 Connection error mains choke","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017876, new AxoMessengerTextItem("F8814 Mains voltage outside of the extended monitoring window","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017877, new AxoMessengerTextItem("F8815 Overvoltage in mains","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017878, new AxoMessengerTextItem("F8816 Overvoltage in power section, mains","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017879, new AxoMessengerTextItem("F8817 Overvoltage in power section","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017888, new AxoMessengerTextItem("F8820 Braking resistor overload","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017889, new AxoMessengerTextItem("F8821 Transistor short circuit of braking resistor control","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017890, new AxoMessengerTextItem("F8822 Error in control of braking resistor","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017904, new AxoMessengerTextItem("F8830 12V/24V voltage not available. Motor operation prohibited","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017907, new AxoMessengerTextItem("F8833 Ground fault current mains supply","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017908, new AxoMessengerTextItem("F8834 Ground fault inverter","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017910, new AxoMessengerTextItem("F8836 DC bus balancing monitor","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017924, new AxoMessengerTextItem("F8844 Device-internal module communication disturbed","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017941, new AxoMessengerTextItem("F8855 Incorrect processing of diagnostic message","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017952, new AxoMessengerTextItem("F8860 Overcurrent in power section (does not decay)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1017953, new AxoMessengerTextItem("F8861 Overcurrent in power section (does not decay, mains)","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1018001, new AxoMessengerTextItem("F8891 Power section defective","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1018002, new AxoMessengerTextItem("F8892 Defective power section device carrier","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1018003, new AxoMessengerTextItem("F8893 I/O module defective","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1018009, new AxoMessengerTextItem("F8899 F8 test error, axis and supply unit reaction","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + new KeyValuePair(1018113, new AxoMessengerTextItem("F8901 Panel fatal error: Contact the service team","Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/")), + + + }; + + Messenger.DotNetMessengerTextList = messengerTextList; + } + + private void InitializeTaskMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + // TemplateTask_10steps_1 + new KeyValuePair(500, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(501, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(502, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(503, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(504, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(505, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(506, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(507, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(508, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(509, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + // MC_Home + new KeyValuePair(510, new AxoMessengerTextItem("Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference` signal/variable.")), + new KeyValuePair(511, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be set !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(512, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be reseted !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(513, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be set !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(514, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be reseted !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(515, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be set !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(516, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be reseted !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(517, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be set !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(518, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be reseted !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(519, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` signals.")), + new KeyValuePair(520, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` signals.")), + new KeyValuePair(521, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(522, new AxoMessengerTextItem("Waiting for the signals '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill` to be set !","Check the status of the '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill` signals.")), + new KeyValuePair(523, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(524, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(525, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(526, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(527, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(528, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(529, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + // MC_Stop + new KeyValuePair(530, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(531, new AxoMessengerTextItem("Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill` to be set !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill` signal/variable.")), + new KeyValuePair(532, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(533, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(534, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(535, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(536, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(537, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(538, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(539, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_Halt + new KeyValuePair(540, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(541, new AxoMessengerTextItem("Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill` to be set !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill` signal/variable.")), + new KeyValuePair(542, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(543, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(544, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(545, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(546, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(547, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(548, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(549, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_MoveAbsolute + new KeyValuePair(550, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(551, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` signals.")), + new KeyValuePair(552, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` signals.")), + new KeyValuePair(553, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(554, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(555, new AxoMessengerTextItem("Waiting for the signal '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck` to match the value of the '_AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue' signal !","Check the values of the '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck' and `_AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue` signals.")), + new KeyValuePair(556, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition` to be set !","Check the status of the `_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition` signals.")), + new KeyValuePair(557, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(558, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(559, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_MoveRelative + new KeyValuePair(560, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(561, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` signals.")), + new KeyValuePair(562, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` signals.")), + new KeyValuePair(563, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(564, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(565, new AxoMessengerTextItem("Waiting for the signal '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck` to match the value of the '_AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue' signal !","Check the values of the '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck' and `_AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue` signals.")), + new KeyValuePair(566, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition` to be set !","Check the status of the `_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition` signals.")), + new KeyValuePair(567, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(568, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(569, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_MoveAdditive + new KeyValuePair(570, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(571, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` signals.")), + new KeyValuePair(572, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` signals.")), + new KeyValuePair(573, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(574, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(575, new AxoMessengerTextItem("Waiting for the signal '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck` to match the value of the '_AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue' signal !","Check the values of the '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck' and `_AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue` signals.")), + new KeyValuePair(576, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition` to be set !","Check the status of the `_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition` signals.")), + new KeyValuePair(577, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(578, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(579, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_MoveVelocity + new KeyValuePair(580, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(581, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` signals.")), + new KeyValuePair(582, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` signals.")), + new KeyValuePair(583, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(584, new AxoMessengerTextItem("Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill` signal/variable.")), + new KeyValuePair(585, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(586, new AxoMessengerTextItem("Waiting for the drive to reach the target velocity !","Check the values of the required and actual velocity.")), + new KeyValuePair(587, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(588, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(589, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_TorqueControl + new KeyValuePair(590, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(591, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be set !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(592, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be set !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(593, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be set !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(594, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be set !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(595, new AxoMessengerTextItem("Waiting for the signal `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0' to be set, and signals '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` signals.")), + new KeyValuePair(596, new AxoMessengerTextItem("Waiting for the drive to reach the target torque !","Check the values of the required and actual torque.")), + new KeyValuePair(597, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(598, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(599, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_SetPosition + new KeyValuePair(600, new AxoMessengerTextItem("Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0` signal/variable.")), + new KeyValuePair(601, new AxoMessengerTextItem("Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference` to be reseted !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference` signal/variable.")), + new KeyValuePair(602, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be set !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(603, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done` to be reseted !","Check the status of the `_WriteRecord.done` signal/variable.")), + new KeyValuePair(604, new AxoMessengerTextItem("Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference` to be set !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference` signal/variable.")), + new KeyValuePair(605, new AxoMessengerTextItem("Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !","Check the status of the `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` signals.")), + new KeyValuePair(606, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(607, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(608, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(609, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_ReadParameter + new KeyValuePair(610, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be set !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(611, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be reseted !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(612, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(613, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(614, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(615, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(616, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(617, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(618, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(619, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_ReadRealParameter + new KeyValuePair(620, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be set !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(621, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be reseted !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(622, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(623, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(624, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(625, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(626, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(627, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(628, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(629, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_ReadBoolParameter + new KeyValuePair(630, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be set !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(631, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be reseted !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(632, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(633, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(634, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(635, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(636, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(637, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(638, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(639, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_WriteParameter + new KeyValuePair(640, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done ` to be set !","Check the status of the `_WriteRecord.done ` signal/variable.")), + new KeyValuePair(641, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done ` to be reseted !","Check the status of the `_WriteRecord.done ` signal/variable.")), + new KeyValuePair(642, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(643, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(644, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(645, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(646, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(647, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(648, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(649, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_WriteRealParameter + new KeyValuePair(650, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done ` to be set !","Check the status of the `_WriteRecord.done ` signal/variable.")), + new KeyValuePair(651, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done ` to be reseted !","Check the status of the `_WriteRecord.done ` signal/variable.")), + new KeyValuePair(652, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(653, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(654, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(655, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(656, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(657, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(658, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(659, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_WriteBoolParameter + new KeyValuePair(660, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done ` to be set !","Check the status of the `_WriteRecord.done ` signal/variable.")), + new KeyValuePair(661, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done ` to be reseted !","Check the status of the `_WriteRecord.done ` signal/variable.")), + new KeyValuePair(662, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(663, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(664, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(665, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(666, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(667, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(668, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(669, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_ReadDigitalInput + new KeyValuePair(670, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be set !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(671, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be reseted !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(672, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(673, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(674, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(675, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(676, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(677, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(678, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(679, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_ReadDigitalOutput + new KeyValuePair(680, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be set !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(681, new AxoMessengerTextItem("Waiting for the signal/variable `_ReadRecord.valid` to be reseted !","Check the status of the `_ReadRecord.valid` signal/variable.")), + new KeyValuePair(682, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(683, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(684, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(685, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(686, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(687, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(688, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(689, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + //MC_WriteDigitalOutput + new KeyValuePair(690, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done ` to be set !","Check the status of the `_WriteRecord.done ` signal/variable.")), + new KeyValuePair(691, new AxoMessengerTextItem("Waiting for the signal/variable `_WriteRecord.done ` to be reseted !","Check the status of the `_WriteRecord.done ` signal/variable.")), + new KeyValuePair(692, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(693, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(694, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(695, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(696, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(697, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(698, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + new KeyValuePair(699, new AxoMessengerTextItem("Waiting for the signal/variable `` to be set/reseted !","Check the status of the `` signal/variable.")), + + }; + + TaskMessenger.DotNetMessengerTextList = messengerTextList; + } + } + + public partial class AxoCtrlxDriveXsc_Component_Status : AXOpen.Components.Drives.AxoDrive_Status + { + Dictionary errorDescriptionDict = new Dictionary(); + Dictionary actionDescriptionDict = new Dictionary(); + + public string ErrorDescription + { + get + { + if (errorDescriptionDict == null) { errorDescriptionDict = new Dictionary(); } + if (errorDescriptionDict.Count == 0) + { + errorDescriptionDict.Add(0, " "); + errorDescriptionDict.Add(500, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(501, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(502, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(503, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(504, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(505, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(506, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(507, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(508, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(509, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(510, "Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference` to be reseted !"); + errorDescriptionDict.Add(511, "Waiting for the signal/variable `_WriteRecord.done` to be set !"); + errorDescriptionDict.Add(512, "Waiting for the signal/variable `_WriteRecord.done` to be reseted !" ); + errorDescriptionDict.Add(513, "Waiting for the signal/variable `_WriteRecord.done` to be set !" ); + errorDescriptionDict.Add(514, "Waiting for the signal/variable `_WriteRecord.done` to be reseted !" ); + errorDescriptionDict.Add(515, "Waiting for the signal/variable `_WriteRecord.done` to be set !" ); + errorDescriptionDict.Add(516, "Waiting for the signal/variable `_WriteRecord.done` to be reseted !" ); + errorDescriptionDict.Add(517, "Waiting for the signal/variable `_WriteRecord.done` to be set !" ); + errorDescriptionDict.Add(518, "Waiting for the signal/variable `_WriteRecord.done` to be reseted !" ); + errorDescriptionDict.Add(519, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !"); + errorDescriptionDict.Add(520, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !"); + errorDescriptionDict.Add(521, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(522, "Waiting for the signals '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill` to be set !"); + errorDescriptionDict.Add(523, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(524, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(525, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(526, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(527, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(528, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(529, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(530, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(531, "Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill` to be set !"); + errorDescriptionDict.Add(532, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(533, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(534, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(535, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(536, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(537, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(538, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(539, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(540, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(541, "Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill` to be set !"); + errorDescriptionDict.Add(542, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(543, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(544, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(545, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(546, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(547, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(548, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(549, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(550, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(551, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !"); + errorDescriptionDict.Add(552, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !"); + errorDescriptionDict.Add(553, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(554, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(555, "Waiting for the signal '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck` to match the value of the '_AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue' signal !"); + errorDescriptionDict.Add(556, "Waiting for the signals `_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition` to be set !"); + errorDescriptionDict.Add(557, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(558, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(559, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(560, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(561, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !"); + errorDescriptionDict.Add(562, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !"); + errorDescriptionDict.Add(563, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(564, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(565, "Waiting for the signal '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck` to match the value of the '_AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue' signal !"); + errorDescriptionDict.Add(566, "Waiting for the signals `_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition` to be set !"); + errorDescriptionDict.Add(567, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(568, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(569, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(570, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(571, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !"); + errorDescriptionDict.Add(572, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !"); + errorDescriptionDict.Add(573, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(574, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(575, "Waiting for the signal '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck` to match the value of the '_AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue' signal !"); + errorDescriptionDict.Add(576, "Waiting for the signals `_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill' and '_AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.InTargetPosition` to be set !"); + errorDescriptionDict.Add(577, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(578, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(579, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(580, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(581, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0', '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !"); + errorDescriptionDict.Add(582, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !"); + errorDescriptionDict.Add(583, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(584, "Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill` to be reseted !"); + errorDescriptionDict.Add(585, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(586, "Waiting for the drive to reach the target velocity !"); + errorDescriptionDict.Add(587, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(588, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(589, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(590, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(591, "Waiting for the signal/variable `_WriteRecord.done` to be set !"); + errorDescriptionDict.Add(592, "Waiting for the signal/variable `_WriteRecord.done` to be set !"); + errorDescriptionDict.Add(593, "Waiting for the signal/variable `_WriteRecord.done` to be set !"); + errorDescriptionDict.Add(594, "Waiting for the signal/variable `_WriteRecord.done` to be set !"); + errorDescriptionDict.Add(595, "Waiting for the signal `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit0' to be set, and signals '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit1' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ActualOperatingModeBit2` to be reseted !"); + errorDescriptionDict.Add(596, "Waiting for the drive to reach the target torque !"); + errorDescriptionDict.Add(597, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(598, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(599, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(600, "Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0` to be reseted !"); + errorDescriptionDict.Add(601, "Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference` to be reseted !"); + errorDescriptionDict.Add(602, "Waiting for the signal/variable `_WriteRecord.done` to be set !"); + errorDescriptionDict.Add(603, "Waiting for the signal/variable `_WriteRecord.done` to be reseted !"); + errorDescriptionDict.Add(604, "Waiting for the signal/variable `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference` to be set !"); + errorDescriptionDict.Add(605, "Waiting for the signals `_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0' and '_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1` to be set !"); + errorDescriptionDict.Add(606, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(607, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(608, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(609, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(610, "Waiting for the signal/variable `_ReadRecord.valid` to be set !"); + errorDescriptionDict.Add(611, "Waiting for the signal/variable `_ReadRecord.valid` to be reseted !"); + errorDescriptionDict.Add(612, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(613, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(614, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(615, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(616, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(617, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(618, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(619, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(620, "Waiting for the signal/variable `_ReadRecord.valid` to be set !"); + errorDescriptionDict.Add(621, "Waiting for the signal/variable `_ReadRecord.valid` to be reseted !"); + errorDescriptionDict.Add(622, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(623, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(624, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(625, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(626, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(627, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(628, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(629, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(630, "Waiting for the signal/variable `_ReadRecord.valid` to be set !"); + errorDescriptionDict.Add(631, "Waiting for the signal/variable `_ReadRecord.valid` to be reseted !"); + errorDescriptionDict.Add(632, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(633, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(634, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(635, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(636, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(637, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(638, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(639, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(640, "Waiting for the signal/variable `_WriteRecord.done ` to be set !"); + errorDescriptionDict.Add(641, "Waiting for the signal/variable `_WriteRecord.done ` to be reseted !"); + errorDescriptionDict.Add(642, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(643, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(644, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(645, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(646, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(647, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(648, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(649, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(650, "Waiting for the signal/variable `_WriteRecord.done ` to be set !"); + errorDescriptionDict.Add(651, "Waiting for the signal/variable `_WriteRecord.done ` to be reseted !"); + errorDescriptionDict.Add(652, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(653, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(654, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(655, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(656, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(657, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(658, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(659, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(660, "Waiting for the signal/variable `_WriteRecord.done ` to be set !"); + errorDescriptionDict.Add(661, "Waiting for the signal/variable `_WriteRecord.done ` to be reseted !"); + errorDescriptionDict.Add(662, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(663, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(664, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(665, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(666, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(667, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(668, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(669, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(670, "Waiting for the signal/variable `_ReadRecord.valid` to be set !"); + errorDescriptionDict.Add(671, "Waiting for the signal/variable `_ReadRecord.valid` to be reseted !"); + errorDescriptionDict.Add(672, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(673, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(674, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(675, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(676, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(677, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(678, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(679, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(680, "Waiting for the signal/variable `_ReadRecord.valid` to be set !"); + errorDescriptionDict.Add(681, "Waiting for the signal/variable `_ReadRecord.valid` to be reseted !"); + errorDescriptionDict.Add(682, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(683, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(684, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(685, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(686, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(687, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(688, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(689, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(690, "Waiting for the signal/variable `_WriteRecord.done ` to be set !"); + errorDescriptionDict.Add(691, "Waiting for the signal/variable `_WriteRecord.done ` to be reseted !"); + errorDescriptionDict.Add(692, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(693, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(694, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(695, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(696, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(697, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(698, "Waiting for the signal/variable `` to be set/reseted !"); + errorDescriptionDict.Add(699, "Waiting for the signal/variable `` to be set/reseted !"); + // General alarms + errorDescriptionDict.Add(300, "Movement to the positive direction disabled!" ); + errorDescriptionDict.Add(301, "Movement to the negative direction disabled!" ); + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ); + errorDescriptionDict.Add(710, "Hw configuration error. Value of _HW_Outputs is zero." ); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Outputs' (GsdId=ID_M_XCS_INI_0_cons)." ); + errorDescriptionDict.Add(720, "Hw configuration error. Value of _HW_Inputs is zero." ); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'Inputs' (GsdId=ID_M_XCS_INI_0_prod)." ); + errorDescriptionDict.Add(730, "Hw configuration error. Value of _HW_S_0_0134_0_0 is zero." ); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 1." ); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 1." ); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 1." ); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 1." ); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 1." ); + errorDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 1. Expected GsdId of the submodule: 'ID_SM_Master_control_word_S_0_0134_0_0_cons'." ); + errorDescriptionDict.Add(740, "Hw configuration error. Value of _HW_S_0_0145_0_0 is zero." ); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 2." ); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 2." ); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 2." ); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 2." ); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 2." ); + errorDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 2. Expected GsdId of the submodule: 'ID_SM_Signal_control_word_S_0_0145_0_0_cons'." ); + errorDescriptionDict.Add(750, "Hw configuration error. Value of _HW_S_0_0282_0_0 is zero." ); + errorDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 3." ); + errorDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 3." ); + errorDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 3." ); + errorDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 3." ); + errorDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 3." ); + errorDescriptionDict.Add(756, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 3. Expected GsdId of the submodule: 'ID_SM_Positioning_command_value_S_0_0282_0_0_cons'." ); + errorDescriptionDict.Add(760, "Hw configuration error. Value of _HW_S_0_0259_0_0 is zero." ); + errorDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 4." ); + errorDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 4." ); + errorDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 4." ); + errorDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 4." ); + errorDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 4." ); + errorDescriptionDict.Add(766, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 4. Expected GsdId of the submodule: 'ID_SM_Positioning_velocity_S_0_0259_0_0_cons'." ); + errorDescriptionDict.Add(770, "Hw configuration error. Value of _HW_S_0_0260_0_0 is zero." ); + errorDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 5." ); + errorDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 5." ); + errorDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 5." ); + errorDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 5." ); + errorDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 5." ); + errorDescriptionDict.Add(776, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 5. Expected GsdId of the submodule: 'ID_SM_Positioning_acceleration_S_0_0260_0_0_cons'." ); + errorDescriptionDict.Add(780, "Hw configuration error. Value of _HW_S_0_0359_0_0 is zero." ); + errorDescriptionDict.Add(781, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 6." ); + errorDescriptionDict.Add(782, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 6." ); + errorDescriptionDict.Add(783, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 6." ); + errorDescriptionDict.Add(784, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 6." ); + errorDescriptionDict.Add(785, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 6." ); + errorDescriptionDict.Add(786, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 6. Expected GsdId of the submodule: 'ID_SM_Positioning_deceleration_S_0_0359_0_0_cons'." ); + errorDescriptionDict.Add(790, "Hw configuration error. Value of _HW_S_0_1720_0_1 is zero." ); + errorDescriptionDict.Add(791, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 7." ); + errorDescriptionDict.Add(792, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 7." ); + errorDescriptionDict.Add(793, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 7." ); + errorDescriptionDict.Add(794, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 7." ); + errorDescriptionDict.Add(795, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 7." ); + errorDescriptionDict.Add(796, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 7. Expected GsdId of the submodule: 'ID_SM_Power_supply_control_word_S_0_1720_0_1_cons'." ); + errorDescriptionDict.Add(800, "Hw configuration error. Value of _HW_S_0_0092_0_0 is zero." ); + errorDescriptionDict.Add(801, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 8." ); + errorDescriptionDict.Add(802, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 8." ); + errorDescriptionDict.Add(803, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 8." ); + errorDescriptionDict.Add(804, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 8." ); + errorDescriptionDict.Add(805, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 8." ); + errorDescriptionDict.Add(806, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 8. Expected GsdId of the submodule:'ID_SM_Bipolar_torque_force_limit_value_S_0_0092_0_0_cons'."); + errorDescriptionDict.Add(810, "Hw configuration error. Value of _HW_S_0_0080_0_0 is zero." ); + errorDescriptionDict.Add(811, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 9." ); + errorDescriptionDict.Add(812, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 9." ); + errorDescriptionDict.Add(813, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 9." ); + errorDescriptionDict.Add(814, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 9." ); + errorDescriptionDict.Add(815, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 9." ); + errorDescriptionDict.Add(816, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 9. Expected GsdId of the submodule: 'ID_SM_Torque_force_command_value_S_0_0080_0_0_cons'." ); + errorDescriptionDict.Add(820, "Hw configuration error. Value of _HW_S_0_0193_0_0 is zero." ); + errorDescriptionDict.Add(821, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 10." ); + errorDescriptionDict.Add(822, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 10." ); + errorDescriptionDict.Add(823, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 10." ); + errorDescriptionDict.Add(824, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 10." ); + errorDescriptionDict.Add(825, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 10." ); + errorDescriptionDict.Add(826, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 10. Expected GsdId of the submodule: 'ID_SM_Positioning_jerk_S_0_0193_0_0_cons'." ); + errorDescriptionDict.Add(830, "Hw configuration error. Value of _HW_S_0_0135_0_0 is zero." ); + errorDescriptionDict.Add(831, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 1." ); + errorDescriptionDict.Add(832, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 1." ); + errorDescriptionDict.Add(833, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 1." ); + errorDescriptionDict.Add(834, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 1." ); + errorDescriptionDict.Add(835, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 1." ); + errorDescriptionDict.Add(836, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 1. Expected GsdId of the submodule: 'ID_SM_Drive_status_word_S_0_0135_0_0_prod'." ); + errorDescriptionDict.Add(840, "Hw configuration error. Value of _HW_S_0_0144_0_0 is zero." ); + errorDescriptionDict.Add(841, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 2." ); + errorDescriptionDict.Add(842, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 2." ); + errorDescriptionDict.Add(843, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 2." ); + errorDescriptionDict.Add(844, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 2." ); + errorDescriptionDict.Add(845, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 2." ); + errorDescriptionDict.Add(846, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 2. Expected GsdId of the submodule: 'ID_SM_Signal_status_word_S_0_0144_0_0_prod'." ); + errorDescriptionDict.Add(850, "Hw configuration error. Value of _HW_S_0_0386_0_0 is zero." ); + errorDescriptionDict.Add(851, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 3." ); + errorDescriptionDict.Add(852, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 3." ); + errorDescriptionDict.Add(853, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 3." ); + errorDescriptionDict.Add(854, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 3." ); + errorDescriptionDict.Add(855, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 3." ); + errorDescriptionDict.Add(856, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 3. Expected GsdId of the submodule: 'ID_SM_Active_position_feedback_value_S_0_0386_0_0_prod'." ); + errorDescriptionDict.Add(860, "Hw configuration error. Value of _HW_S_0_0535_0_0 is zero." ); + errorDescriptionDict.Add(861, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 4." ); + errorDescriptionDict.Add(862, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 4." ); + errorDescriptionDict.Add(863, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 4." ); + errorDescriptionDict.Add(864, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 4." ); + errorDescriptionDict.Add(865, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 4." ); + errorDescriptionDict.Add(866, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 4. Expected GsdId of the submodule: 'ID_SM_Active_velocity_feedback_value_S_0_0535_0_0_prod'." ); + errorDescriptionDict.Add(870, "Hw configuration error. Value of _HW_S_0_0390_0_0 is zero." ); + errorDescriptionDict.Add(871, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 5." ); + errorDescriptionDict.Add(872, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 5." ); + errorDescriptionDict.Add(873, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 5." ); + errorDescriptionDict.Add(874, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 5." ); + errorDescriptionDict.Add(875, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 5." ); + errorDescriptionDict.Add(876, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 5. Expected GsdId of the submodule: 'ID_SM_Diagnostic_message_number_S_0_0390_0_0_prod'." ); + errorDescriptionDict.Add(880, "Hw configuration error. Value of _HW_S_0_1720_0_2 is zero." ); + errorDescriptionDict.Add(881, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 6." ); + errorDescriptionDict.Add(882, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 6." ); + errorDescriptionDict.Add(883, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 6." ); + errorDescriptionDict.Add(884, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 6." ); + errorDescriptionDict.Add(885, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 6." ); + errorDescriptionDict.Add(886, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 6. Expected GsdId of the submodule: 'ID_SM_Power_supply_status_word_S_0_1720_0_2_prod'." ); + errorDescriptionDict.Add(890, "Hw configuration error. Value of _HW_S_0_0084_0_0 is zero." ); + errorDescriptionDict.Add(891, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 7." ); + errorDescriptionDict.Add(892, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 7." ); + errorDescriptionDict.Add(893, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 7." ); + errorDescriptionDict.Add(894, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 7." ); + errorDescriptionDict.Add(895, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 7." ); + errorDescriptionDict.Add(896, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 7. Expected GsdId of the submodule: 'ID_SM_Torque_force_feedback_value_S_0_0084_0_0_prod'." ); + errorDescriptionDict.Add(900, "Hw configuration error. Value of _HW_P_0_0106_0_0 is zero." ); + errorDescriptionDict.Add(901, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 8." ); + errorDescriptionDict.Add(902, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 8." ); + errorDescriptionDict.Add(903, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 8." ); + errorDescriptionDict.Add(904, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 8." ); + errorDescriptionDict.Add(905, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 8." ); + errorDescriptionDict.Add(906, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 8. Expected GsdId of the submodule: 'ID_SM_Operating_status_STO_P_0_0106_0_0_prod'."); + errorDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1132, "Input variable `_HW_Outputs` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1133, "Input variable `_HW_Inputs` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1134, "Input variable `_HW_S_0_0134_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1135, "Input variable `_HW_S_0_0145_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1136, "Input variable `_HW_S_0_0282_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1137, "Input variable `_HW_S_0_0259_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1138, "Input variable `_HW_S_0_0260_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1139, "Input variable `_HW_S_0_0359_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1140, "Input variable `_HW_S_0_1720_0_1' has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1141, "Input variable `_HW_S_0_0092_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1142, "Input variable `_HW_S_0_0080_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1143, "Input variable `_HW_S_0_0193_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1144, "Input variable `_HW_S_0_0135_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1145, "Input variable `_HW_S_0_0144_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1146, "Input variable `_HW_S_0_0386_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1147, "Input variable `_HW_S_0_0535_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1148, "Input variable `_HW_S_0_0390_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1149, "Input variable `_HW_S_0_1720_0_2` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1150, "Input variable `_HW_S_0_0084_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1151, "Input variable `_HW_P_0_0106_0_0` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(1201, "Error reading the DriveStatusWord_S_0_0135_0_0!" ); + errorDescriptionDict.Add(1202, "Error reading the SignalStatusWord_S_0_0144_0_0!" ); + errorDescriptionDict.Add(1203, "Error reading the ActualPosition_S_0_0386_0_0!" ); + errorDescriptionDict.Add(1204, "Error reading the ActualVelocity_S_0_0535_0_0!" ); + errorDescriptionDict.Add(1205, "Error reading the DiagnosticMessage_S_0_0390_0_0!" ); + errorDescriptionDict.Add(1206, "Error reading the SupplyUnitStatusWord_S_0_1720_0_2!" ); + errorDescriptionDict.Add(1207, "Error reading the ActualTorque_S_0_0084_0_0!" ); + errorDescriptionDict.Add(1231, "Error writing the DriveControlWord_S_0_0134_0_0!" ); + errorDescriptionDict.Add(1232, "Error writing the SignalControlWord_S_0_0145_0_0!" ); + errorDescriptionDict.Add(1233, "Error writing the CommandPosition_S_0_0282_0_0!" ); + errorDescriptionDict.Add(1234, "Error writing the CommandVelocity_S_0_0259_0_0!" ); + errorDescriptionDict.Add(1235, "Error writing the CommandAcceleration_S_0_0260_0_0!" ); + errorDescriptionDict.Add(1236, "Error writing the CommandDecceleration_S_0_0359_0_0!" ); + errorDescriptionDict.Add(1237, "Error writing the SupplyUnitControlWord_S_0_1720_0_1!" ); + errorDescriptionDict.Add(1238, "Error writing the BipolarTorqueLimitation_S_0_0092_0_0!" ); + errorDescriptionDict.Add(1239, "Error writing the CommandTorque_S_0_0080_0_0!" ); + errorDescriptionDict.Add(1240, "Error writing the CommandJerk_S_0_0193_0_0!" ); + errorDescriptionDict.Add(1430, "Null reference of the AxisRef inside the MC_Power method!" ); + errorDescriptionDict.Add(1440, "Null reference of the AxisRef inside the MC_Home method!" ); + errorDescriptionDict.Add(1441, "Negative or zero value of the Acceleration in the MC_Home method!" ); + errorDescriptionDict.Add(1442, "Negative or zero value of the Deceleration in the MC_Home method!" ); + errorDescriptionDict.Add(1470, "Null reference of the AxisRef inside the MC_Stop method!" ); + errorDescriptionDict.Add(1471, "Negative or zero value of the Deceleration in the MC_Stop method!" ); + errorDescriptionDict.Add(1472, "Negative or zero value of the Jerk in the MC_Stop method!" ); + errorDescriptionDict.Add(1490, "Null reference of the AxisRef inside the MC_MoveAbsolute method!" ); + errorDescriptionDict.Add(1491, "Negative or zero value of the Velocity in the MC_MoveAbsolute method!" ); + errorDescriptionDict.Add(1492, "Negative or zero value of the Acceleration in the MC_MoveAbsolute method!" ); + errorDescriptionDict.Add(1493, "Negative or zero value of the Deceleration in the MC_MoveAbsolute method!" ); + errorDescriptionDict.Add(1494, "Negative or zero value of the Jerk in the MC_MoveAbsolute method!" ); + errorDescriptionDict.Add(1500, "Null reference of the AxisRef inside the MC_MoveRelative method!" ); + errorDescriptionDict.Add(1501, "Negative or zero value of the Velocity in the MC_MoveRelative method!" ); + errorDescriptionDict.Add(1502, "Negative or zero value of the Acceleration in the MC_MoveRelative method!" ); + errorDescriptionDict.Add(1503, "Negative or zero value of the Deceleration in the MC_MoveRelative method!" ); + errorDescriptionDict.Add(1504, "Negative or zero value of the Jerk in the MC_MoveRelative method!" ); + errorDescriptionDict.Add(1510, "Null reference of the AxisRef inside the MC_MoveAdditive method!" ); + errorDescriptionDict.Add(1511, "Negative or zero value of the Velocity in the MC_MoveAdditive method!" ); + errorDescriptionDict.Add(1512, "Negative or zero value of the Acceleration in the MC_MoveAdditive method!" ); + errorDescriptionDict.Add(1513, "Negative or zero value of the Deceleration in the MC_MoveAdditive method!" ); + errorDescriptionDict.Add(1514, "Negative or zero value of the Jerk in the MC_MoveAdditive method!" ); + errorDescriptionDict.Add(1520, "Null reference of the AxisRef inside the MC_MoveVelocity method!" ); + errorDescriptionDict.Add(1521, "Invalid value of the Direction in the MC_MoveVelocity method!" ); + errorDescriptionDict.Add(1522, "Zero value of the Velocity in the MC_MoveVelocity method!" ); + errorDescriptionDict.Add(1523, "Negative or zero value of the Acceleration in the MC_MoveVelocity method!" ); + errorDescriptionDict.Add(1524, "Negative or zero value of the Deceleration in the MC_MoveVelocity method!" ); + errorDescriptionDict.Add(1525, "Negative or zero value of the Jerk in the MC_MoveVelocity method!" ); + errorDescriptionDict.Add(1530, "Null reference of the AxisRef inside the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1531, "Invalid value of the Direction in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1532, "Negative or zero value of the Velocity in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1533, "Negative or zero value of the Acceleration in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1534, "Negative or zero value of the Deceleration in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1535, "Negative or zero value of the Jerk in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1536, "Zero value of the Torque in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1537, "Negative or zero value of the TorqueRamp in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1540, "Error writing Torque/force control: Ramp value (0x2838:01 / S-0-0822 / --) in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1541, "Error writing Torque/force control: Ramp time (0x2838:02 / S-0-0823 / --) in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1542, "Error writing Torque/force control: High velocity limit value (P-0-0421.0.3 / P-0-2249) in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1543, "Error writing Torque/force control: Low velocity limit value (P-0-0421.0.4 / P-0-2250) in the MC_TorqueControl method!" ); + errorDescriptionDict.Add(1550, "Null reference of the AxisRef inside the MC_SetPosition method!" ); + errorDescriptionDict.Add(1551, "Error writing Homing configuration ENC_1: Home offset (0x607C:00 / S-0-0052 / --) in the MC_SetPosition method!" ); + errorDescriptionDict.Add(1570, "Null reference of the AxisRef inside the MC_SetOverride method!" ); + errorDescriptionDict.Add(1571, "Invalid value of the VelocityFactor in the MC_SetOverride method!" ); + errorDescriptionDict.Add(1572, "Invalid value of the AccelerationFactor in the MC_SetOverride method!" ); + errorDescriptionDict.Add(1573, "Invalid value of the JerkFactor in the MC_MoveRelative method!" ); + errorDescriptionDict.Add(1580, "Null reference of the AxisRef inside the MC_ReadParameter method!" ); + errorDescriptionDict.Add(1581, "Error reading parameter in the MC_ReadParameter method!" ); + errorDescriptionDict.Add(1590, "Null reference of the AxisRef inside the MC_ReadRealParameter method!" ); + errorDescriptionDict.Add(1591, "Error reading parameter in the MC_ReadRealParameter method!" ); + errorDescriptionDict.Add(1600, "Null reference of the AxisRef inside the MC_ReadBoolParameter method!" ); + errorDescriptionDict.Add(1601, "Error reading parameter in the MC_ReadBoolParameter method!" ); + errorDescriptionDict.Add(1610, "Null reference of the AxisRef inside the MC_WriteParameter method!" ); + errorDescriptionDict.Add(1611, "Error writing parameter in the MC_WriteParameter method!" ); + errorDescriptionDict.Add(1620, "Null reference of the AxisRef inside the MC_WriteRealParameter method!" ); + errorDescriptionDict.Add(1621, "Error writing parameter in the MC_WriteRealParameter method!" ); + errorDescriptionDict.Add(1630, "Null reference of the AxisRef inside the MC_WriteBoolParameter method!" ); + errorDescriptionDict.Add(1631, "Error writing parameter in the MC_WriteBoolParameter method!" ); + errorDescriptionDict.Add(1640, "Null reference of the AxisRef inside the MC_ReadDigitalInput method!" ); + errorDescriptionDict.Add(1641, "Invalid InputNumber in the MC_ReadDigitalInput method!" ); + errorDescriptionDict.Add(1642, "Error reading parameter in the MC_ReadDigitalInput method!" ); + errorDescriptionDict.Add(1650, "Null reference of the AxisRef inside the MC_ReadDigitalOutput method!" ); + errorDescriptionDict.Add(1651, "Invalid OutputNumber in the MC_ReadDigitalOutput method!" ); + errorDescriptionDict.Add(1652, "Error reading parameter in the MC_ReadDigitalOutput method!" ); + errorDescriptionDict.Add(1660, "Null reference of the AxisRef inside the MC_WriteDigitalOutput method!" ); + errorDescriptionDict.Add(1661, "Invalid OutputNumber in the MC_WriteDigitalOutput method!" ); + errorDescriptionDict.Add(1662, "Error writing parameter in the MC_WriteDigitalOutput method!" ); + errorDescriptionDict.Add(1800, "Scaling parameters not yet read out of the drive" ); + + // TemplateTask_10steps_1 + errorDescriptionDict.Add(10000, "TemplateTask_10steps_1 finished with error!"); + errorDescriptionDict.Add(10001, "TemplateTask_10steps_1 was aborted, while not yet completed!"); + // TemplateTask_10steps_2 + errorDescriptionDict.Add(10010, "TemplateTask_10steps_2 finished with error!"); + errorDescriptionDict.Add(10011, "TemplateTask_10steps_2 was aborted, while not yet completed!"); + // TemplateTask_10steps_3 + errorDescriptionDict.Add(10020, "TemplateTask_10steps_3 finished with error!"); + errorDescriptionDict.Add(10021, "TemplateTask_10steps_3 was aborted, while not yet completed!"); + // TemplateTask_10steps_4 + errorDescriptionDict.Add(10030, "TemplateTask_10steps_4 task finished with error!"); + errorDescriptionDict.Add(10031, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); + // TemplateTask_10steps_5 + errorDescriptionDict.Add(10040, "TemplateTask_10steps_5 task finished with error!"); + errorDescriptionDict.Add(10041, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); + // TemplateTask_10steps_6 + errorDescriptionDict.Add(10050, "TemplateTask_10steps_6 task finished with error!"); + errorDescriptionDict.Add(10051, "TemplateTask_10steps_6 task was aborted, while not yet completed!"); + // TemplateTask_20steps_1 + errorDescriptionDict.Add(10060, "TemplateTask_20steps_1 task finished with error!"); + errorDescriptionDict.Add(10061, "TemplateTask_20steps_1 task was aborted, while not yet completed!"); + // TemplateTask_20steps_2 + errorDescriptionDict.Add(10080, "TemplateTask_20steps_2 task finished with error!"); + errorDescriptionDict.Add(10081, "TemplateTask_20steps_2 task was aborted, while not yet completed!"); + // TemplateTask_20steps_3 + errorDescriptionDict.Add(10100, "TemplateTask_20steps_3 task finished with error!"); + errorDescriptionDict.Add(10101, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); + // TemplateTask_20steps_4 + errorDescriptionDict.Add(10120, "TemplateTask_20steps_4 task finished with error!"); + errorDescriptionDict.Add(10121, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); + // TemplateTask_20steps_5 + errorDescriptionDict.Add(10140, "TemplateTask_20steps_5 task finished with error!"); + errorDescriptionDict.Add(10141, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + // TemplateTask_20steps_6 + errorDescriptionDict.Add(10160, "TemplateTask_20steps_6 task finished with error!"); + errorDescriptionDict.Add(10161, "TemplateTask_20steps_6 task was aborted, while not yet completed!"); + + } + string errorDescription = " "; + + if (Error == null || Error.Id == null) + return errorDescription; + + if (errorDescriptionDict.TryGetValue(Error.Id.Cyclic, out errorDescription)) + { + return errorDescription; + } + else + + { + return " "; + } + } + } + + public string ActionDescription + { + get + { + if (actionDescriptionDict == null) { actionDescriptionDict = new Dictionary(); } + if (actionDescriptionDict.Count == 0) + { + actionDescriptionDict.Add(0, " "); + actionDescriptionDict.Add(50, "Restore has been executed."); + // TemplateTask_10steps_1 + actionDescriptionDict.Add(100, "TemplateTask_10steps_1 started."); + actionDescriptionDict.Add(300, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(301, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(302, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(303, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(304, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(305, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(306, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(307, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(308, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(309, "TemplateTask_10steps_1 running, "); + actionDescriptionDict.Add(101, "TemplateTask_10steps_1 finished succesfully."); + actionDescriptionDict.Add(102, "TemplateTask_10steps_1 restored."); + // MC_Home + actionDescriptionDict.Add(310, "MC_Home running, Reseting InReference flag"); + actionDescriptionDict.Add(311, "MC_Home running, Writing Homing configuration ENC_1: Home offset (0x607C:00 / S-0-0052 / --)"); + actionDescriptionDict.Add(312, "MC_Home running, Canceling write record proces."); + actionDescriptionDict.Add(313, "MC_Home running, Writing Homing function: Configuration (0x2500:02 / S-0-0147 / --)"); + actionDescriptionDict.Add(314, "MC_Home running, Canceling write record proces."); + actionDescriptionDict.Add(315, "MC_Home running, Writing Homing speeds: Speed during search for switch (0x6099:01 / S-0-0041 / --)"); + actionDescriptionDict.Add(316, "MC_Home running, Canceling write record proces."); + actionDescriptionDict.Add(317, "MC_Home running, Writing Homing acceleration (0x609A:00 / S-0-0042 / --)"); + actionDescriptionDict.Add(318, "MC_Home running, Canceling write record proces."); + actionDescriptionDict.Add(319, "MC_Home running, Setting the primary operation mode. (Drive-controlled positioning)."); + actionDescriptionDict.Add(320, "MC_Home running, Waiting for the drive to be enabled."); + actionDescriptionDict.Add(321, "MC_Home running, Triggering motion."); + actionDescriptionDict.Add(322, "MC_Home running, Waiting for drive to finish the motion."); + actionDescriptionDict.Add(323, "MC_Home finished"); + actionDescriptionDict.Add(327, "MC_Home finished succesfully"); + actionDescriptionDict.Add(328, "MC_Home has been interupted"); + actionDescriptionDict.Add(329, "MC_Home finished with an error."); + // MC_Stop + actionDescriptionDict.Add(330, "MC_Stop started"); + actionDescriptionDict.Add(331, "MC_Stop running, Breaking"); + actionDescriptionDict.Add(332, "MC_Stop running, "); + actionDescriptionDict.Add(333, "MC_Stop running, "); + actionDescriptionDict.Add(334, "MC_Stop running, "); + actionDescriptionDict.Add(335, "MC_Stop running, "); + actionDescriptionDict.Add(336, "MC_Stop finished"); + actionDescriptionDict.Add(337, "MC_Stop finished succesfully"); + actionDescriptionDict.Add(338, "MC_Stop has been interupted"); + actionDescriptionDict.Add(339, "MC_Stop finished with an error."); + // MC_Halt + actionDescriptionDict.Add(340, "MC_Halt started"); + actionDescriptionDict.Add(341, "MC_Halt running, Breaking"); + actionDescriptionDict.Add(342, "MC_Halt running, "); + actionDescriptionDict.Add(343, "MC_Halt running, "); + actionDescriptionDict.Add(344, "MC_Halt running, "); + actionDescriptionDict.Add(345, "MC_Halt running, "); + actionDescriptionDict.Add(346, "MC_Halt finished"); + actionDescriptionDict.Add(347, "MC_Halt finished succesfully"); + actionDescriptionDict.Add(348, "MC_Halt has been interupted"); + actionDescriptionDict.Add(349, "MC_Halt finished with an error."); + // MC_MoveAbsolute + actionDescriptionDict.Add(350, "MC_MoveAbsolute started, Checking input parameters."); + actionDescriptionDict.Add(351, "MC_MoveAbsolute running, Setting the primary operation mode. (Drive - controlled positioning)."); + actionDescriptionDict.Add(352, "MC_MoveAbsolute running, Waiting for the drive to be enabled."); + actionDescriptionDict.Add(353, "MC_MoveAbsolute running, Enabling motion."); + actionDescriptionDict.Add(354, "MC_MoveAbsolute running, Triggering motion."); + actionDescriptionDict.Add(355, "MC_MoveAbsolute running, Waiting for drive to acknowledge the motion parameters."); + actionDescriptionDict.Add(356, "MC_MoveAbsolute running, Waiting for drive to finish the motion."); + actionDescriptionDict.Add(357, "MC_MoveAbsolute finished succesfully"); + actionDescriptionDict.Add(358, "MC_MoveAbsolute has been interupted"); + actionDescriptionDict.Add(359, "MC_MoveAbsolute finished with an error."); + // MC_MoveRelative + actionDescriptionDict.Add(360, "MC_MoveRelative started, Checking input parameters."); + actionDescriptionDict.Add(361, "MC_MoveRelative running, Setting the primary operation mode. (Drive - controlled positioning)."); + actionDescriptionDict.Add(362, "MC_MoveRelative running, Waiting for the drive to be enabled."); + actionDescriptionDict.Add(363, "MC_MoveRelative running, Enabling motion."); + actionDescriptionDict.Add(364, "MC_MoveRelative running, Triggering motion."); + actionDescriptionDict.Add(365, "MC_MoveRelative running, Waiting for drive to acknowledge the motion parameters."); + actionDescriptionDict.Add(366, "MC_MoveRelative running, Waiting for drive to finish the motion."); + actionDescriptionDict.Add(367, "MC_MoveRelative finished succesfully"); + actionDescriptionDict.Add(368, "MC_MoveRelative has been interupted"); + actionDescriptionDict.Add(369, "MC_MoveRelative finished with an error."); + // MC_MoveAdditive + actionDescriptionDict.Add(370, "MC_MoveAdditive started, Checking input parameters."); + actionDescriptionDict.Add(371, "MC_MoveAdditive running, Setting the primary operation mode. (Drive - controlled positioning)."); + actionDescriptionDict.Add(372, "MC_MoveAdditive running, Waiting for the drive to be enabled."); + actionDescriptionDict.Add(373, "MC_MoveAdditive running, Enabling motion."); + actionDescriptionDict.Add(374, "MC_MoveAdditive running, Triggering motion."); + actionDescriptionDict.Add(375, "MC_MoveAdditive running, Waiting for drive to acknowledge the motion parameters."); + actionDescriptionDict.Add(376, "MC_MoveAdditive running, Waiting for drive to finish the motion."); + actionDescriptionDict.Add(377, "MC_MoveAdditive finished succesfully"); + actionDescriptionDict.Add(378, "MC_MoveAdditive has been interupted"); + actionDescriptionDict.Add(379, "MC_MoveAdditive finished with an error."); + // MC_MoveVelocity + actionDescriptionDict.Add(380, "MC_MoveVelocity started, Checking input parameters."); + actionDescriptionDict.Add(381, "MC_MoveVelocity running, Setting the primary operation mode. (Drive - controlled positioning)."); + actionDescriptionDict.Add(382, "MC_MoveVelocity running, Waiting for the drive to be enabled."); + actionDescriptionDict.Add(383, "MC_MoveVelocity running, Enabling motion."); + actionDescriptionDict.Add(384, "MC_MoveVelocity running, Triggering motion."); + actionDescriptionDict.Add(385, "MC_MoveVelocity running, Waiting for drive to reach the required velocity."); + actionDescriptionDict.Add(386, "MC_MoveVelocity finished"); + actionDescriptionDict.Add(387, "MC_MoveVelocity finished succesfully"); + actionDescriptionDict.Add(388, "MC_MoveVelocity has been interupted"); + actionDescriptionDict.Add(389, "MC_MoveVelocity finished with an error."); + // MC_TorqueControl + actionDescriptionDict.Add(390, "MC_TorqueControl started, Checking input parameters."); + actionDescriptionDict.Add(391, "MC_TorqueControl running, Setting the secondary operation mode. (Torque/force control)."); + actionDescriptionDict.Add(392, "MC_TorqueControl running, Waiting for the drive to be enabled."); + actionDescriptionDict.Add(393, "MC_TorqueControl running, Enabling motion."); + actionDescriptionDict.Add(394, "MC_TorqueControl running, Triggering motion."); + actionDescriptionDict.Add(395, "MC_TorqueControl running, Waiting for drive to reach the required torque."); + actionDescriptionDict.Add(396, "MC_TorqueControl finished"); + actionDescriptionDict.Add(397, "MC_TorqueControl finished succesfully"); + actionDescriptionDict.Add(398, "MC_TorqueControl has been interupted"); + actionDescriptionDict.Add(399, "MC_TorqueControl finished with an error."); + // MC_SetPosition + actionDescriptionDict.Add(400, "MC_SetPosition started, Powering off."); + actionDescriptionDict.Add(401, "MC_SetPosition running, Reseting InReference flag"); + actionDescriptionDict.Add(402, "MC_SetPosition running, Writing Homing configuration ENC_1: Home offset (0x607C:00 / S-0-0052 / --)"); + actionDescriptionDict.Add(403, "MC_SetPosition running, Canceling write record proces."); + actionDescriptionDict.Add(404, "MC_SetPosition running, Triggering set position function."); + actionDescriptionDict.Add(405, "MC_SetPosition running, Waiting for drive to be in reference."); + actionDescriptionDict.Add(406, "MC_SetPosition finished"); + actionDescriptionDict.Add(407, "MC_SetPosition finished succesfully"); + actionDescriptionDict.Add(408, "MC_SetPosition has been interupted"); + actionDescriptionDict.Add(409, "MC_SetPosition finished with an error."); + // MC_ReadParameter + actionDescriptionDict.Add(410, "MC_ReadParameter running, Reading record."); + actionDescriptionDict.Add(411, "MC_ReadParameter running, Canceling read record proces."); + actionDescriptionDict.Add(412, "MC_ReadParameter running, "); + actionDescriptionDict.Add(413, "MC_ReadParameter running, "); + actionDescriptionDict.Add(414, "MC_ReadParameter running, "); + actionDescriptionDict.Add(415, "MC_ReadParameter running, "); + actionDescriptionDict.Add(416, "MC_ReadParameter finished"); + actionDescriptionDict.Add(417, "MC_ReadParameter finished succesfully"); + actionDescriptionDict.Add(418, "MC_ReadParameter has been interupted"); + actionDescriptionDict.Add(419, "MC_ReadParameter finished with an error."); + // MC_ReadRealParameter + actionDescriptionDict.Add(420, "MC_ReadRealParameter running, Reading record."); + actionDescriptionDict.Add(421, "MC_ReadRealParameter running, Canceling read record proces."); + actionDescriptionDict.Add(422, "MC_ReadRealParameter running, "); + actionDescriptionDict.Add(423, "MC_ReadRealParameter running, "); + actionDescriptionDict.Add(424, "MC_ReadRealParameter running, "); + actionDescriptionDict.Add(425, "MC_ReadRealParameter running, "); + actionDescriptionDict.Add(426, "MC_ReadRealParameter finished"); + actionDescriptionDict.Add(427, "MC_ReadRealParameter finished succesfully"); + actionDescriptionDict.Add(428, "MC_ReadRealParameter has been interupted"); + actionDescriptionDict.Add(429, "MC_ReadRealParameter finished with an error."); + // MC_ReadBoolParameter + actionDescriptionDict.Add(430, "MC_ReadBoolParameter running, Reading record."); + actionDescriptionDict.Add(431, "MC_ReadBoolParameter running, Canceling read record proces."); + actionDescriptionDict.Add(432, "MC_ReadBoolParameter running, "); + actionDescriptionDict.Add(433, "MC_ReadBoolParameter running, "); + actionDescriptionDict.Add(434, "MC_ReadBoolParameter running, "); + actionDescriptionDict.Add(435, "MC_ReadBoolParameter running, "); + actionDescriptionDict.Add(436, "MC_ReadBoolParameter finished"); + actionDescriptionDict.Add(437, "MC_ReadBoolParameter finished succesfully"); + actionDescriptionDict.Add(438, "MC_ReadBoolParameter has been interupted"); + actionDescriptionDict.Add(439, "MC_ReadBoolParameter finished with an error."); + // MC_WriteParameter + actionDescriptionDict.Add(440, "MC_WriteParameter running, Writing record."); + actionDescriptionDict.Add(441, "MC_WriteParameter running, Canceling write record proces."); + actionDescriptionDict.Add(442, "MC_WriteParameter running, "); + actionDescriptionDict.Add(443, "MC_WriteParameter running, "); + actionDescriptionDict.Add(444, "MC_WriteParameter running, "); + actionDescriptionDict.Add(445, "MC_WriteParameter running, "); + actionDescriptionDict.Add(446, "MC_WriteParameter finished"); + actionDescriptionDict.Add(447, "MC_WriteParameter finished succesfully"); + actionDescriptionDict.Add(448, "MC_WriteParameter has been interupted"); + actionDescriptionDict.Add(449, "MC_WriteParameter finished with an error."); + // MC_WriteRealParameter + actionDescriptionDict.Add(450, "MC_WriteRealParameter running, Writing record."); + actionDescriptionDict.Add(451, "MC_WriteRealParameter running, Canceling write record proces."); + actionDescriptionDict.Add(452, "MC_WriteRealParameter running, "); + actionDescriptionDict.Add(453, "MC_WriteRealParameter running, "); + actionDescriptionDict.Add(454, "MC_WriteRealParameter running, "); + actionDescriptionDict.Add(455, "MC_WriteRealParameter running, "); + actionDescriptionDict.Add(456, "MC_WriteRealParameter finished"); + actionDescriptionDict.Add(457, "MC_WriteRealParameter finished succesfully"); + actionDescriptionDict.Add(458, "MC_WriteRealParameter has been interupted"); + actionDescriptionDict.Add(459, "MC_WriteRealParameter finished with an error."); + // MC_WriteBoolParameter + actionDescriptionDict.Add(460, "MC_WriteBoolParameter running, Writing record."); + actionDescriptionDict.Add(461, "MC_WriteBoolParameter running, Canceling write record proces."); + actionDescriptionDict.Add(462, "MC_WriteBoolParameter running, "); + actionDescriptionDict.Add(463, "MC_WriteBoolParameter running, "); + actionDescriptionDict.Add(464, "MC_WriteBoolParameter running, "); + actionDescriptionDict.Add(465, "MC_WriteBoolParameter running, "); + actionDescriptionDict.Add(466, "MC_WriteBoolParameter finished"); + actionDescriptionDict.Add(467, "MC_WriteBoolParameter finished succesfully"); + actionDescriptionDict.Add(468, "MC_WriteBoolParameter has been interupted"); + actionDescriptionDict.Add(469, "MC_WriteBoolParameter finished with an error."); + // MC_ReadDigitalInput + actionDescriptionDict.Add(470, "MC_ReadDigitalInput running, Reading record."); + actionDescriptionDict.Add(471, "MC_ReadDigitalInput running, Canceling read record proces."); + actionDescriptionDict.Add(472, "MC_ReadDigitalInput running, "); + actionDescriptionDict.Add(473, "MC_ReadDigitalInput running, "); + actionDescriptionDict.Add(474, "MC_ReadDigitalInput running, "); + actionDescriptionDict.Add(475, "MC_ReadDigitalInput running, "); + actionDescriptionDict.Add(476, "MC_ReadDigitalInput finished"); + actionDescriptionDict.Add(477, "MC_ReadDigitalInput finished succesfully"); + actionDescriptionDict.Add(478, "MC_ReadDigitalInput has been interupted"); + actionDescriptionDict.Add(479, "MC_ReadDigitalInput finished with an error."); + // MC_ReadDigitalOutput + actionDescriptionDict.Add(480, "MC_ReadDigitalOutput running, Reading record."); + actionDescriptionDict.Add(481, "MC_ReadDigitalOutput running, Canceling read record proces."); + actionDescriptionDict.Add(482, "MC_ReadDigitalOutput running, "); + actionDescriptionDict.Add(483, "MC_ReadDigitalOutput running, "); + actionDescriptionDict.Add(484, "MC_ReadDigitalOutput running, "); + actionDescriptionDict.Add(485, "MC_ReadDigitalOutput running, "); + actionDescriptionDict.Add(486, "MC_ReadDigitalOutput finished"); + actionDescriptionDict.Add(487, "MC_ReadDigitalOutput finished succesfully"); + actionDescriptionDict.Add(488, "MC_ReadDigitalOutput has been interupted"); + actionDescriptionDict.Add(489, "MC_ReadDigitalOutput finished with an error."); + // MC_WriteDigitalOutput + actionDescriptionDict.Add(490, "MC_WriteDigitalOutput running, Writing record."); + actionDescriptionDict.Add(491, "MC_WriteDigitalOutput running, Canceling write record proces."); + actionDescriptionDict.Add(492, "MC_WriteDigitalOutput running, "); + actionDescriptionDict.Add(493, "MC_WriteDigitalOutput running, "); + actionDescriptionDict.Add(494, "MC_WriteDigitalOutput running, "); + actionDescriptionDict.Add(495, "MC_WriteDigitalOutput running, "); + actionDescriptionDict.Add(496, "MC_WriteDigitalOutput finished"); + actionDescriptionDict.Add(497, "MC_WriteDigitalOutput finished succesfully"); + actionDescriptionDict.Add(498, "MC_WriteDigitalOutput has been interupted"); + actionDescriptionDict.Add(499, "MC_WriteDigitalOutput finished with an error."); + + + // General alarms + actionDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); + actionDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!"); + actionDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)."); + actionDescriptionDict.Add(710, "Hw configuration error. Value of _HW_Outputs is zero."); + actionDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1."); + actionDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1."); + actionDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1."); + actionDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1."); + actionDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1."); + actionDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'Outputs' (GsdId=ID_M_XCS_INI_0_cons)."); + actionDescriptionDict.Add(720, "Hw configuration error. Value of _HW_Inputs is zero."); + actionDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2."); + actionDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2."); + actionDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2."); + actionDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2."); + actionDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2."); + actionDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'Inputs' (GsdId=ID_M_XCS_INI_0_prod)."); + actionDescriptionDict.Add(730, "Hw configuration error. Value of _HW_S_0_0134_0_0 is zero."); + actionDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 1."); + actionDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 1."); + actionDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 1."); + actionDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 1."); + actionDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 1."); + actionDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 1. Expected GsdId of the submodule: 'ID_SM_Master_control_word_S_0_0134_0_0_cons'."); + actionDescriptionDict.Add(740, "Hw configuration error. Value of _HW_S_0_0145_0_0 is zero."); + actionDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 2."); + actionDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 2."); + actionDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 2."); + actionDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 2."); + actionDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 2."); + actionDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 2. Expected GsdId of the submodule: 'ID_SM_Signal_control_word_S_0_0145_0_0_cons'."); + actionDescriptionDict.Add(750, "Hw configuration error. Value of _HW_S_0_0282_0_0 is zero."); + actionDescriptionDict.Add(751, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 3."); + actionDescriptionDict.Add(752, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 3."); + actionDescriptionDict.Add(753, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 3."); + actionDescriptionDict.Add(754, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 3."); + actionDescriptionDict.Add(755, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 3."); + actionDescriptionDict.Add(756, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 3. Expected GsdId of the submodule: 'ID_SM_Positioning_command_value_S_0_0282_0_0_cons'."); + actionDescriptionDict.Add(760, "Hw configuration error. Value of _HW_S_0_0259_0_0 is zero."); + actionDescriptionDict.Add(761, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 4."); + actionDescriptionDict.Add(762, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 4."); + actionDescriptionDict.Add(763, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 4."); + actionDescriptionDict.Add(764, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 4."); + actionDescriptionDict.Add(765, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 4."); + actionDescriptionDict.Add(766, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 4. Expected GsdId of the submodule: 'ID_SM_Positioning_velocity_S_0_0259_0_0_cons'."); + actionDescriptionDict.Add(770, "Hw configuration error. Value of _HW_S_0_0260_0_0 is zero."); + actionDescriptionDict.Add(771, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 5."); + actionDescriptionDict.Add(772, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 5."); + actionDescriptionDict.Add(773, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 5."); + actionDescriptionDict.Add(774, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 5."); + actionDescriptionDict.Add(775, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 5."); + actionDescriptionDict.Add(776, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 5. Expected GsdId of the submodule: 'ID_SM_Positioning_acceleration_S_0_0260_0_0_cons'."); + actionDescriptionDict.Add(780, "Hw configuration error. Value of _HW_S_0_0359_0_0 is zero."); + actionDescriptionDict.Add(781, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 6."); + actionDescriptionDict.Add(782, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 6."); + actionDescriptionDict.Add(783, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 6."); + actionDescriptionDict.Add(784, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 6."); + actionDescriptionDict.Add(785, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 6."); + actionDescriptionDict.Add(786, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 6. Expected GsdId of the submodule: 'ID_SM_Positioning_deceleration_S_0_0359_0_0_cons'."); + actionDescriptionDict.Add(790, "Hw configuration error. Value of _HW_S_0_1720_0_1 is zero."); + actionDescriptionDict.Add(791, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 7."); + actionDescriptionDict.Add(792, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 7."); + actionDescriptionDict.Add(793, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 7."); + actionDescriptionDict.Add(794, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 7."); + actionDescriptionDict.Add(795, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 7."); + actionDescriptionDict.Add(796, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 7. Expected GsdId of the submodule: 'ID_SM_Power_supply_control_word_S_0_1720_0_1_cons'."); + actionDescriptionDict.Add(800, "Hw configuration error. Value of _HW_S_0_0092_0_0 is zero."); + actionDescriptionDict.Add(801, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 8."); + actionDescriptionDict.Add(802, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 8."); + actionDescriptionDict.Add(803, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 8."); + actionDescriptionDict.Add(804, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 8."); + actionDescriptionDict.Add(805, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 8."); + actionDescriptionDict.Add(806, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 8. Expected GsdId of the submodule:'ID_SM_Bipolar_torque_force_limit_value_S_0_0092_0_0_cons'."); + actionDescriptionDict.Add(810, "Hw configuration error. Value of _HW_S_0_0080_0_0 is zero."); + actionDescriptionDict.Add(811, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 9."); + actionDescriptionDict.Add(812, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 9."); + actionDescriptionDict.Add(813, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 9."); + actionDescriptionDict.Add(814, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 9."); + actionDescriptionDict.Add(815, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 9."); + actionDescriptionDict.Add(816, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 9. Expected GsdId of the submodule: 'ID_SM_Torque_force_command_value_S_0_0080_0_0_cons'."); + actionDescriptionDict.Add(820, "Hw configuration error. Value of _HW_S_0_0193_0_0 is zero."); + actionDescriptionDict.Add(821, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1, subslot 10."); + actionDescriptionDict.Add(822, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1, subslot 10."); + actionDescriptionDict.Add(823, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1, subslot 10."); + actionDescriptionDict.Add(824, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1, subslot 10."); + actionDescriptionDict.Add(825, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1, subslot 10."); + actionDescriptionDict.Add(826, "Hw configuration error: Module with unexpected size or type detected in Slot 1, Subslot 10. Expected GsdId of the submodule: 'ID_SM_Positioning_jerk_S_0_0193_0_0_cons'."); + actionDescriptionDict.Add(830, "Hw configuration error. Value of _HW_S_0_0135_0_0 is zero."); + actionDescriptionDict.Add(831, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 1."); + actionDescriptionDict.Add(832, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 1."); + actionDescriptionDict.Add(833, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 1."); + actionDescriptionDict.Add(834, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 1."); + actionDescriptionDict.Add(835, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 1."); + actionDescriptionDict.Add(836, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 1. Expected GsdId of the submodule: 'ID_SM_Drive_status_word_S_0_0135_0_0_prod'."); + actionDescriptionDict.Add(840, "Hw configuration error. Value of _HW_S_0_0144_0_0 is zero."); + actionDescriptionDict.Add(841, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 2."); + actionDescriptionDict.Add(842, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 2."); + actionDescriptionDict.Add(843, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 2."); + actionDescriptionDict.Add(844, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 2."); + actionDescriptionDict.Add(845, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 2."); + actionDescriptionDict.Add(846, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 2. Expected GsdId of the submodule: 'ID_SM_Signal_status_word_S_0_0144_0_0_prod'."); + actionDescriptionDict.Add(850, "Hw configuration error. Value of _HW_S_0_0386_0_0 is zero."); + actionDescriptionDict.Add(851, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 3."); + actionDescriptionDict.Add(852, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 3."); + actionDescriptionDict.Add(853, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 3."); + actionDescriptionDict.Add(854, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 3."); + actionDescriptionDict.Add(855, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 3."); + actionDescriptionDict.Add(856, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 3. Expected GsdId of the submodule: 'ID_SM_Active_position_feedback_value_S_0_0386_0_0_prod'."); + actionDescriptionDict.Add(860, "Hw configuration error. Value of _HW_S_0_0535_0_0 is zero."); + actionDescriptionDict.Add(861, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 4."); + actionDescriptionDict.Add(862, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 4."); + actionDescriptionDict.Add(863, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 4."); + actionDescriptionDict.Add(864, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 4."); + actionDescriptionDict.Add(865, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 4."); + actionDescriptionDict.Add(866, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 4. Expected GsdId of the submodule: 'ID_SM_Active_velocity_feedback_value_S_0_0535_0_0_prod'."); + actionDescriptionDict.Add(870, "Hw configuration error. Value of _HW_S_0_0390_0_0 is zero."); + actionDescriptionDict.Add(871, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 5."); + actionDescriptionDict.Add(872, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 5."); + actionDescriptionDict.Add(873, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 5."); + actionDescriptionDict.Add(874, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 5."); + actionDescriptionDict.Add(875, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 5."); + actionDescriptionDict.Add(876, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 5. Expected GsdId of the submodule: 'ID_SM_Diagnostic_message_number_S_0_0390_0_0_prod'."); + actionDescriptionDict.Add(880, "Hw configuration error. Value of _HW_S_0_1720_0_2 is zero."); + actionDescriptionDict.Add(881, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 6."); + actionDescriptionDict.Add(882, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 6."); + actionDescriptionDict.Add(883, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 6."); + actionDescriptionDict.Add(884, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 6."); + actionDescriptionDict.Add(885, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 6."); + actionDescriptionDict.Add(886, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 6. Expected GsdId of the submodule: 'ID_SM_Power_supply_status_word_S_0_1720_0_2_prod'."); + actionDescriptionDict.Add(890, "Hw configuration error. Value of _HW_S_0_0084_0_0 is zero."); + actionDescriptionDict.Add(891, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 7."); + actionDescriptionDict.Add(892, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 7."); + actionDescriptionDict.Add(893, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 7."); + actionDescriptionDict.Add(894, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 7."); + actionDescriptionDict.Add(895, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 7."); + actionDescriptionDict.Add(896, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 7. Expected GsdId of the submodule: 'ID_SM_Torque_force_feedback_value_S_0_0084_0_0_prod'."); + actionDescriptionDict.Add(900, "Hw configuration error. Value of _HW_P_0_0106_0_0 is zero."); + actionDescriptionDict.Add(901, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2, subslot 8."); + actionDescriptionDict.Add(902, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2, subslot 8."); + actionDescriptionDict.Add(903, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2, subslot 8."); + actionDescriptionDict.Add(904, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2, subslot 8."); + actionDescriptionDict.Add(905, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2, subslot 8."); + actionDescriptionDict.Add(906, "Hw configuration error: Module with unexpected size or type detected in Slot 2, Subslot 8. Expected GsdId of the submodule: 'ID_SM_Operating_status_STO_P_0_0106_0_0_prod'."); + actionDescriptionDict.Add(1130, "Input variable `parent` has NULL reference in `Run` method!"); + actionDescriptionDict.Add(1131, "Input variable `hwId` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1132, "Input variable `_HW_Outputs` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1133, "Input variable `_HW_Inputs` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1134, "Input variable `_HW_S_0_0134_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1135, "Input variable `_HW_S_0_0145_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1136, "Input variable `_HW_S_0_0282_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1137, "Input variable `_HW_S_0_0259_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1138, "Input variable `_HW_S_0_0260_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1139, "Input variable `_HW_S_0_0359_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1140, "Input variable `_HW_S_0_1720_0_1' has invalid value in `Run` method!"); + actionDescriptionDict.Add(1141, "Input variable `_HW_S_0_0092_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1142, "Input variable `_HW_S_0_0080_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1143, "Input variable `_HW_S_0_0193_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1144, "Input variable `_HW_S_0_0135_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1145, "Input variable `_HW_S_0_0144_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1146, "Input variable `_HW_S_0_0386_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1147, "Input variable `_HW_S_0_0535_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1148, "Input variable `_HW_S_0_0390_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1149, "Input variable `_HW_S_0_1720_0_2` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1150, "Input variable `_HW_S_0_0084_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1151, "Input variable `_HW_P_0_0106_0_0` has invalid value in `Run` method!"); + actionDescriptionDict.Add(1201, "Error reading the DriveStatusWord_S_0_0135_0_0!"); + actionDescriptionDict.Add(1202, "Error reading the SignalStatusWord_S_0_0144_0_0!"); + actionDescriptionDict.Add(1203, "Error reading the ActualPosition_S_0_0386_0_0!"); + actionDescriptionDict.Add(1204, "Error reading the ActualVelocity_S_0_0535_0_0!"); + actionDescriptionDict.Add(1205, "Error reading the DiagnosticMessage_S_0_0390_0_0!"); + actionDescriptionDict.Add(1206, "Error reading the SupplyUnitStatusWord_S_0_1720_0_2!"); + actionDescriptionDict.Add(1207, "Error reading the ActualTorque_S_0_0084_0_0!"); + actionDescriptionDict.Add(1231, "Error writing the DriveControlWord_S_0_0134_0_0!"); + actionDescriptionDict.Add(1232, "Error writing the SignalControlWord_S_0_0145_0_0!"); + actionDescriptionDict.Add(1233, "Error writing the CommandPosition_S_0_0282_0_0!"); + actionDescriptionDict.Add(1234, "Error writing the CommandVelocity_S_0_0259_0_0!"); + actionDescriptionDict.Add(1235, "Error writing the CommandAcceleration_S_0_0260_0_0!"); + actionDescriptionDict.Add(1236, "Error writing the CommandDecceleration_S_0_0359_0_0!"); + actionDescriptionDict.Add(1237, "Error writing the SupplyUnitControlWord_S_0_1720_0_1!"); + actionDescriptionDict.Add(1238, "Error writing the BipolarTorqueLimitation_S_0_0092_0_0!"); + actionDescriptionDict.Add(1239, "Error writing the CommandTorque_S_0_0080_0_0!"); + actionDescriptionDict.Add(1240, "Error writing the CommandJerk_S_0_0193_0_0!"); + actionDescriptionDict.Add(1430, "Null reference of the AxisRef inside the MC_Power method!"); + actionDescriptionDict.Add(1440, "Null reference of the AxisRef inside the MC_Home method!"); + actionDescriptionDict.Add(1441, "Negative or zero value of the Acceleration in the MC_Home method!"); + actionDescriptionDict.Add(1442, "Negative or zero value of the Deceleration in the MC_Home method!"); + actionDescriptionDict.Add(1470, "Null reference of the AxisRef inside the MC_Stop method!"); + actionDescriptionDict.Add(1471, "Negative or zero value of the Deceleration in the MC_Stop method!"); + actionDescriptionDict.Add(1472, "Negative or zero value of the Jerk in the MC_Stop method!"); + actionDescriptionDict.Add(1490, "Null reference of the AxisRef inside the MC_MoveAbsolute method!"); + actionDescriptionDict.Add(1491, "Negative or zero value of the Velocity in the MC_MoveAbsolute method!"); + actionDescriptionDict.Add(1492, "Negative or zero value of the Acceleration in the MC_MoveAbsolute method!"); + actionDescriptionDict.Add(1493, "Negative or zero value of the Deceleration in the MC_MoveAbsolute method!"); + actionDescriptionDict.Add(1494, "Negative or zero value of the Jerk in the MC_MoveAbsolute method!"); + actionDescriptionDict.Add(1500, "Null reference of the AxisRef inside the MC_MoveRelative method!"); + actionDescriptionDict.Add(1501, "Negative or zero value of the Velocity in the MC_MoveRelative method!"); + actionDescriptionDict.Add(1502, "Negative or zero value of the Acceleration in the MC_MoveRelative method!"); + actionDescriptionDict.Add(1503, "Negative or zero value of the Deceleration in the MC_MoveRelative method!"); + actionDescriptionDict.Add(1504, "Negative or zero value of the Jerk in the MC_MoveRelative method!"); + actionDescriptionDict.Add(1510, "Null reference of the AxisRef inside the MC_MoveAdditive method!"); + actionDescriptionDict.Add(1511, "Negative or zero value of the Velocity in the MC_MoveAdditive method!"); + actionDescriptionDict.Add(1512, "Negative or zero value of the Acceleration in the MC_MoveAdditive method!"); + actionDescriptionDict.Add(1513, "Negative or zero value of the Deceleration in the MC_MoveAdditive method!"); + actionDescriptionDict.Add(1514, "Negative or zero value of the Jerk in the MC_MoveAdditive method!"); + actionDescriptionDict.Add(1520, "Null reference of the AxisRef inside the MC_MoveVelocity method!"); + actionDescriptionDict.Add(1521, "Invalid value of the Direction in the MC_MoveVelocity method!"); + actionDescriptionDict.Add(1522, "Zero value of the Velocity in the MC_MoveVelocity method!"); + actionDescriptionDict.Add(1523, "Negative or zero value of the Acceleration in the MC_MoveVelocity method!"); + actionDescriptionDict.Add(1524, "Negative or zero value of the Deceleration in the MC_MoveVelocity method!"); + actionDescriptionDict.Add(1525, "Negative or zero value of the Jerk in the MC_MoveVelocity method!"); + actionDescriptionDict.Add(1530, "Null reference of the AxisRef inside the MC_TorqueControl method!"); + actionDescriptionDict.Add(1531, "Invalid value of the Direction in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1532, "Negative or zero value of the Velocity in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1533, "Negative or zero value of the Acceleration in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1534, "Negative or zero value of the Deceleration in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1535, "Negative or zero value of the Jerk in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1536, "Zero value of the Torque in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1537, "Negative or zero value of the TorqueRamp in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1540, "Error writing Torque/force control: Ramp value (0x2838:01 / S-0-0822 / --) in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1541, "Error writing Torque/force control: Ramp time (0x2838:02 / S-0-0823 / --) in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1542, "Error writing Torque/force control: High velocity limit value (P-0-0421.0.3 / P-0-2249) in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1543, "Error writing Torque/force control: Low velocity limit value (P-0-0421.0.4 / P-0-2250) in the MC_TorqueControl method!"); + actionDescriptionDict.Add(1550, "Null reference of the AxisRef inside the MC_SetPosition method!"); + actionDescriptionDict.Add(1551, "Error writing Homing configuration ENC_1: Home offset (0x607C:00 / S-0-0052 / --) in the MC_SetPosition method!"); + actionDescriptionDict.Add(1570, "Null reference of the AxisRef inside the MC_SetOverride method!"); + actionDescriptionDict.Add(1571, "Invalid value of the VelocityFactor in the MC_SetOverride method!"); + actionDescriptionDict.Add(1572, "Invalid value of the AccelerationFactor in the MC_SetOverride method!"); + actionDescriptionDict.Add(1573, "Invalid value of the JerkFactor in the MC_MoveRelative method!"); + actionDescriptionDict.Add(1580, "Null reference of the AxisRef inside the MC_ReadParameter method!"); + actionDescriptionDict.Add(1581, "Error reading parameter in the MC_ReadParameter method!"); + actionDescriptionDict.Add(1590, "Null reference of the AxisRef inside the MC_ReadRealParameter method!"); + actionDescriptionDict.Add(1591, "Error reading parameter in the MC_ReadRealParameter method!"); + actionDescriptionDict.Add(1600, "Null reference of the AxisRef inside the MC_ReadBoolParameter method!"); + actionDescriptionDict.Add(1601, "Error reading parameter in the MC_ReadBoolParameter method!"); + actionDescriptionDict.Add(1610, "Null reference of the AxisRef inside the MC_WriteParameter method!"); + actionDescriptionDict.Add(1611, "Error writing parameter in the MC_WriteParameter method!"); + actionDescriptionDict.Add(1620, "Null reference of the AxisRef inside the MC_WriteRealParameter method!"); + actionDescriptionDict.Add(1621, "Error writing parameter in the MC_WriteRealParameter method!"); + actionDescriptionDict.Add(1630, "Null reference of the AxisRef inside the MC_WriteBoolParameter method!"); + actionDescriptionDict.Add(1631, "Error writing parameter in the MC_WriteBoolParameter method!"); + actionDescriptionDict.Add(1640, "Null reference of the AxisRef inside the MC_ReadDigitalInput method!"); + actionDescriptionDict.Add(1641, "Invalid InputNumber in the MC_ReadDigitalInput method!"); + actionDescriptionDict.Add(1642, "Error reading parameter in the MC_ReadDigitalInput method!"); + actionDescriptionDict.Add(1650, "Null reference of the AxisRef inside the MC_ReadDigitalOutput method!"); + actionDescriptionDict.Add(1651, "Invalid OutputNumber in the MC_ReadDigitalOutput method!"); + actionDescriptionDict.Add(1652, "Error reading parameter in the MC_ReadDigitalOutput method!"); + actionDescriptionDict.Add(1660, "Null reference of the AxisRef inside the MC_WriteDigitalOutput method!"); + actionDescriptionDict.Add(1661, "Invalid OutputNumber in the MC_WriteDigitalOutput method!"); + actionDescriptionDict.Add(1662, "Error writing parameter in the MC_WriteDigitalOutput method!"); + actionDescriptionDict.Add(1800, "Scaling parameters not yet read out of the drive"); + // TemplateTask_10steps_1 + actionDescriptionDict.Add(10000, "TemplateTask_10steps_1 finished with error!"); + actionDescriptionDict.Add(10001, "TemplateTask_10steps_1 was aborted, while not yet completed!"); + // TemplateTask_10steps_2 + actionDescriptionDict.Add(10010, "TemplateTask_10steps_2 finished with error!"); + actionDescriptionDict.Add(10011, "TemplateTask_10steps_2 was aborted, while not yet completed!"); + // TemplateTask_10steps_3 + actionDescriptionDict.Add(10020, "TemplateTask_10steps_3 finished with error!"); + actionDescriptionDict.Add(10021, "TemplateTask_10steps_3 was aborted, while not yet completed!"); + // TemplateTask_10steps_4 + actionDescriptionDict.Add(10030, "TemplateTask_10steps_4 task finished with error!"); + actionDescriptionDict.Add(10031, "TemplateTask_10steps_4 task was aborted, while not yet completed!"); + // TemplateTask_10steps_5 + actionDescriptionDict.Add(10040, "TemplateTask_10steps_5 task finished with error!"); + actionDescriptionDict.Add(10041, "TemplateTask_10steps_5 task was aborted, while not yet completed!"); + // TemplateTask_10steps_6 + actionDescriptionDict.Add(10050, "TemplateTask_10steps_6 task finished with error!"); + actionDescriptionDict.Add(10051, "TemplateTask_10steps_6 task was aborted, while not yet completed!"); + // TemplateTask_20steps_1 + actionDescriptionDict.Add(10060, "TemplateTask_20steps_1 task finished with error!"); + actionDescriptionDict.Add(10061, "TemplateTask_20steps_1 task was aborted, while not yet completed!"); + // TemplateTask_20steps_2 + actionDescriptionDict.Add(10080, "TemplateTask_20steps_2 task finished with error!"); + actionDescriptionDict.Add(10081, "TemplateTask_20steps_2 task was aborted, while not yet completed!"); + // TemplateTask_20steps_3 + actionDescriptionDict.Add(10100, "TemplateTask_20steps_3 task finished with error!"); + actionDescriptionDict.Add(10101, "TemplateTask_20steps_3 task was aborted, while not yet completed!"); + // TemplateTask_20steps_4 + actionDescriptionDict.Add(10120, "TemplateTask_20steps_4 task finished with error!"); + actionDescriptionDict.Add(10121, "TemplateTask_20steps_4 task was aborted, while not yet completed!"); + // TemplateTask_20steps_5 + actionDescriptionDict.Add(10140, "TemplateTask_20steps_5 task finished with error!"); + actionDescriptionDict.Add(10141, "TemplateTask_20steps_5 task was aborted, while not yet completed!"); + // TemplateTask_20steps_6 + actionDescriptionDict.Add(10160, "TemplateTask_20steps_6 task finished with error!"); + actionDescriptionDict.Add(10161, "TemplateTask_20steps_6 task was aborted, while not yet completed!"); + + } + + string actionDescription = " "; + + if (Action == null || Action.Id == null) + return actionDescription; + + if (actionDescriptionDict.TryGetValue(Action.Id.Cyclic, out actionDescription)) + { + return actionDescription; + } + else + { + return " "; + } + + } + } + } +} diff --git a/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoIndraDrive.cs b/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoIndraDrive.cs deleted file mode 100644 index a99414cc5..000000000 --- a/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoIndraDrive.cs +++ /dev/null @@ -1,960 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -using AXOpen.Components.Abstractions; -using AXOpen.Messaging.Static; -using AXSharp.Connector; - -namespace AXOpen.Components.Rexroth.Drives -{ - public partial class AxoIndraDrive : AXOpen.Components.Drives.AxoDrive, AXOpen.Components.Abstractions.Drives.IAxoDrive - { - partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) - { - try - { - InitializeMessenger(); - InitializeTaskMessenger(); - } - catch (Exception) - { - - throw; - } - } - - private void InitializeMessenger() - { - List> messengerTextList = new List> - { - new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - - new KeyValuePair(1, new AxoMessengerTextItem("Invalid input", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(2, new AxoMessengerTextItem("Communication error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(3, new AxoMessengerTextItem("Resource error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(4, new AxoMessengerTextItem("Access error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(5, new AxoMessengerTextItem("Error in the state machine", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(6, new AxoMessengerTextItem("Range exceeded by input", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(7, new AxoMessengerTextItem("Calculation error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(8, new AxoMessengerTextItem("Device error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(254, new AxoMessengerTextItem("General error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(255, new AxoMessengerTextItem("System error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), - new KeyValuePair(300, new AxoMessengerTextItem("Movement in positive direction is disabled", "Check the safety condition")), - new KeyValuePair(301, new AxoMessengerTextItem("Movement in negative direction is disabled", "Check the safety condition")), - - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - - new KeyValuePair(703, new AxoMessengerTextItem("Input variable `hwID` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwID` parameter is assigned.")), - new KeyValuePair(704, new AxoMessengerTextItem("Input variable `hwIdParamCh_IDN` invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdParamCh_IDN` parameter is assigned.")), - new KeyValuePair(705, new AxoMessengerTextItem("Input variable `hwIdInput_9_Words` invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdInput_9_Words` parameter is assigned.")), - new KeyValuePair(706, new AxoMessengerTextItem("Input variable `hwIdOutput_13_Words` invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdOutput_13_Words` parameter is assigned.")), - new KeyValuePair(707, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateInputs` method!", "Check the call of the `UpdateInputs` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(708, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateOutputs` method!", "Check the call of the `UpdateOutputs` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(709, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Power` method!", "Check the call of the `MC_Power` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(710, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Home` method!", "Check the call of the `MC_Home` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(711, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Stop` method!", "Check the call of the `MC_Stop` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(712, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Halt` method!", "Check the call of the `MC_Halt` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(713, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveAbsolute` method!", "Check the call of the `MC_MoveAbsolute` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(714, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveRelative` method!", "Check the call of the `MC_MoveRelative` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(715, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveAdditive` method!", "Check the call of the `MC_MoveAdditive` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(716, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveVelocity` method!", "Check the call of the `MC_MoveVelocity` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(717, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_TorqueControl` method!", "Check the call of the `MC_TorqueControl` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(718, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_SetPosition` method!", "Check the call of the `MC_SetPosition` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(719, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_SetOverride` method!", "Check the call of the `MC_SetOverride` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(720, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadParameter` method!", "Check the call of the `MC_ReadParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(721, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadRealParameter` method!", "Check the call of the `MC_ReadRealParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(722, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadBoolParameter` method!", "Check the call of the `MC_ReadBoolParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(723, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteParameter` method!", "Check the call of the `MC_WriteParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(724, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteRealParameter` method!", "Check the call of the `MC_WriteRealParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(725, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteBoolParameter` method!", "Check the call of the `MC_WriteBoolParameter` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(726, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadDigitalInput` method!", "Check the call of the `MC_ReadDigitalInput` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(727, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadDigitalOutput` method!", "Check the call of the `MC_ReadDigitalOutput` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(728, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteDigitalOutput` method!", "Check the call of the `MC_WriteDigitalOutput` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(729, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualPosition` method!", "Check the call of the `MC_ReadActualPosition` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(730, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualVelocity` method!", "Check the call of the `MC_ReadActualVelocity` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(731, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualTorque` method!", "Check the call of the `MC_ReadActualTorque` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(732, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadStatus` method!", "Check the call of the `MC_ReadStatus` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(733, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadMotionState` method!", "Check the call of the `MC_ReadMotionState` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(734, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadAxisInfo` method!", "Check the call of the `MC_ReadAxisInfo` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(735, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadAxisError` method!", "Check the call of the `MC_ReadAxisError` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(736, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Reset` method!", "Check the call of the `MC_Reset` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(737, new AxoMessengerTextItem("Input variable `Direction` has invalid value in `MC_MoveVelocity` method!", "Check the value of the `Direction` at the input of the `MC_MoveVelocity` method.")), - new KeyValuePair(738, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateStatus` method!", "Check the call of the `UpdateStatus` method, if the `AxisRef` parameter is assigned.")), - new KeyValuePair(739, new AxoMessengerTextItem("Input variable `Direction` has invalid value in `MC_TorqueControl` method!", "Check the value of the `Direction` at the input of the `MC_TorqueControl` method.")), - - - - new KeyValuePair(740, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(741, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(742, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(743, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(744, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(745, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(746, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(747, new AxoMessengerTextItem(" ", " ")), - - new KeyValuePair(827, new AxoMessengerTextItem("Error reading the parameter channel data!", "Check the hardware configuration and hardware identifier.")), - new KeyValuePair(828, new AxoMessengerTextItem("Error reading the fieldbus input data!", "Check the hardware configuration and hardware identifier.")), - new KeyValuePair(829, new AxoMessengerTextItem("Error writing the parameter channel data!", "Check the hardware configuration and hardware identifier.")), - new KeyValuePair(830, new AxoMessengerTextItem("Error writing the fieldbus input data!", "Check the hardware configuration and hardware identifier.")), - - - new KeyValuePair(655360, new AxoMessengerTextItem("A0000:Communication phase 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655361, new AxoMessengerTextItem("A0001:Communication phase 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655362, new AxoMessengerTextItem("A0002:Communication phase 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655363, new AxoMessengerTextItem("A0003:Communication phase 3","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655364, new AxoMessengerTextItem("A0004:Initialization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655365, new AxoMessengerTextItem("A0005:Pre-Operational","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655366, new AxoMessengerTextItem("A0006:Safe-Operational","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655367, new AxoMessengerTextItem("A0007:Operational","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655368, new AxoMessengerTextItem("A0008:sercos: NRT-Mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655369, new AxoMessengerTextItem("A0009:Automatic baud rate detection for sercos","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655376, new AxoMessengerTextItem("A0010:Drive HALT","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655377, new AxoMessengerTextItem("A0011:STO/SBC active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655378, new AxoMessengerTextItem("A0012:Control and power sections ready for operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655379, new AxoMessengerTextItem("A0013:Ready for power on","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655394, new AxoMessengerTextItem("A0022:WAIT_PRM","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655395, new AxoMessengerTextItem("A0023:WAIT_CFG","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655396, new AxoMessengerTextItem("A0024:Connection established","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655397, new AxoMessengerTextItem("A0025:Basic ethernet mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655398, new AxoMessengerTextItem("A0026:Ready to operate","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655408, new AxoMessengerTextItem("A0030:Hot-plug phase 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655409, new AxoMessengerTextItem("A0031:Hot-plug phase 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655410, new AxoMessengerTextItem("A0032:Hot-plug phase 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655424, new AxoMessengerTextItem("A0040:Communication phase 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655440, new AxoMessengerTextItem("A0050:Parameterization level 1 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655441, new AxoMessengerTextItem("A0051:Operating mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655442, new AxoMessengerTextItem("A0052:STO / SBC not active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655616, new AxoMessengerTextItem("A0100:Torque control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655617, new AxoMessengerTextItem("A0101:Velocity control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655618, new AxoMessengerTextItem("A0102:Position mode, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655619, new AxoMessengerTextItem("A0103:Position mode, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655620, new AxoMessengerTextItem("A0104:Position mode lagless, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655621, new AxoMessengerTextItem("A0105:Position mode lagless, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655622, new AxoMessengerTextItem("A0106:Drive-internal interpolation, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655623, new AxoMessengerTextItem("A0107:Drive-internal interpolation, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655624, new AxoMessengerTextItem("A0108:Drive controlled interpolation, lagless, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655625, new AxoMessengerTextItem("A0109:Drive controlled interpolation, lagless, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655632, new AxoMessengerTextItem("A0110:Velocity synchronization, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655633, new AxoMessengerTextItem("A0111:Velocity synchronization, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655634, new AxoMessengerTextItem("A0112:Phase synchronization, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655635, new AxoMessengerTextItem("A0113:Phase synchronization, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655636, new AxoMessengerTextItem("A0114:Phase synchronization, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655637, new AxoMessengerTextItem("A0115:Phase synchronization, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655638, new AxoMessengerTextItem("A0116:Phase synchr. lagless, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655639, new AxoMessengerTextItem("A0117:Phase synchr. lagless, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655640, new AxoMessengerTextItem("A0118:Phase synchr. lagless, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655641, new AxoMessengerTextItem("A0119:Phase synchr. lagless, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655656, new AxoMessengerTextItem("A0128:Cam, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655657, new AxoMessengerTextItem("A0129:Cam, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655664, new AxoMessengerTextItem("A0130:Cam, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655665, new AxoMessengerTextItem("A0131:Cam, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655666, new AxoMessengerTextItem("A0132:Cam, lagless, encoder 1, virt. master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655667, new AxoMessengerTextItem("A0133:Cam, lagless, encoder 2, virt. master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655668, new AxoMessengerTextItem("A0134:Cam, lagless, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655669, new AxoMessengerTextItem("A0135:Cam, lagless, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655670, new AxoMessengerTextItem("A0136:MotionProfile, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655671, new AxoMessengerTextItem("A0137:MotionProfile, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655672, new AxoMessengerTextItem("A0138:MotionProfile, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655673, new AxoMessengerTextItem("A0139:MotionProfile, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655680, new AxoMessengerTextItem("A0140:MotionProfile lagless, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655681, new AxoMessengerTextItem("A0141:MotionProfile lagless, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655682, new AxoMessengerTextItem("A0142:MotionProfile lagless, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655683, new AxoMessengerTextItem("A0143:MotionProfile lagless, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655696, new AxoMessengerTextItem("A0150:Drive-controlled positioning, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655697, new AxoMessengerTextItem("A0151:Drive-controlled positioning, encoder 1, lagless","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655698, new AxoMessengerTextItem("A0152:Drive-controlled positioning, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655699, new AxoMessengerTextItem("A0153:Drive-controlled positioning, encoder 2, lagless","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655700, new AxoMessengerTextItem("A0154:Position mode drive controlled, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655701, new AxoMessengerTextItem("A0155:Position mode drive controlled, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655702, new AxoMessengerTextItem("A0156:Position mode lagless, encoder 1 drive controlled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655703, new AxoMessengerTextItem("A0157:Position mode lagless, encoder 2 drive controlled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655712, new AxoMessengerTextItem("A0160:Pos. ctrl drive-controlled with ctrl word of axis controller","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655713, new AxoMessengerTextItem("A0161:Drive-controlled posit. with ctrl word of axis controller","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655714, new AxoMessengerTextItem("A0162:Positioning block mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655715, new AxoMessengerTextItem("A0163:Position synchronization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655716, new AxoMessengerTextItem("A0164:Velocity synchronization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655717, new AxoMessengerTextItem("A0165:Position control with control word of axis controller","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655718, new AxoMessengerTextItem("A0166:Drive-internal interpolat. with ctrl word of axis controller","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655878, new AxoMessengerTextItem("A0206:Positioning block mode, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655879, new AxoMessengerTextItem("A0207:Positioning block mode lagless, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655888, new AxoMessengerTextItem("A0210:Positioning block mode, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(655889, new AxoMessengerTextItem("A0211:Positioning block mode lagless, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656128, new AxoMessengerTextItem("A0300:Condition as supplied SMO: Output stage locked","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656129, new AxoMessengerTextItem("A0301:Special mode Safe motion 1 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656130, new AxoMessengerTextItem("A0302:Special mode Safe motion 2 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656131, new AxoMessengerTextItem("A0303:Special mode Safe motion 3 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656132, new AxoMessengerTextItem("A0304:Special mode Safe motion 4 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656133, new AxoMessengerTextItem("A0305:Special mode Safe motion 5 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656134, new AxoMessengerTextItem("A0306:Special mode Safe motion 6 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656135, new AxoMessengerTextItem("A0307:Special mode Safe motion 7 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656136, new AxoMessengerTextItem("A0308:Special mode Safe motion 8 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656137, new AxoMessengerTextItem("A0309:Special mode Safe motion 9 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656144, new AxoMessengerTextItem("A0310:Special mode Safe motion 10 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656145, new AxoMessengerTextItem("A0311:Special mode Safe motion 11 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656146, new AxoMessengerTextItem("A0312:Special mode Safe motion 12 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656147, new AxoMessengerTextItem("A0313:Special mode Safe motion 13 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656148, new AxoMessengerTextItem("A0314:Special mode Safe motion 14 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656149, new AxoMessengerTextItem("A0315:Special mode Safe motion 15 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656150, new AxoMessengerTextItem("A0316:Special mode Safe motion 16 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656160, new AxoMessengerTextItem("A0320:EMERGENCY STOP active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656161, new AxoMessengerTextItem("A0321:Special mode Safe standstill active with STO","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656162, new AxoMessengerTextItem("A0322:Special mode Safe standstill active with SOS","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656163, new AxoMessengerTextItem("A0323:SMO configuration mode active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656164, new AxoMessengerTextItem("A0324:SMO: Normal operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656165, new AxoMessengerTextItem("A0325:SMO parameter mode active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656166, new AxoMessengerTextItem("A0326:SMO parking axis active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656167, new AxoMessengerTextItem("A0327:SMO not active: Output stage not locked","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656387, new AxoMessengerTextItem("A0403:Quick stop with probe detection is active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656640, new AxoMessengerTextItem("A0500:Supply module in voltage control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656641, new AxoMessengerTextItem("A0501:Supply module in current control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656642, new AxoMessengerTextItem("A0502:Supply module in operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656643, new AxoMessengerTextItem("A0503:DC bus charging active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656644, new AxoMessengerTextItem("A0504:Control section ready for oper., mains voltage not available","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656645, new AxoMessengerTextItem("A0505:Power supply module ready for operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656646, new AxoMessengerTextItem("A0506:Supply module in rectifier mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(656672, new AxoMessengerTextItem("A0520:DC bus quick discharge active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671744, new AxoMessengerTextItem("A4000:Automatic drive check and adjustment","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671745, new AxoMessengerTextItem("A4001:Drive deceleration to standstill","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671746, new AxoMessengerTextItem("A4002:Drive in automatic mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671747, new AxoMessengerTextItem("A4003:Setting-up mode is active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671748, new AxoMessengerTextItem("A4004:Drive without controller enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671749, new AxoMessengerTextItem("A4005:Drive decelerated by motor phase short circuit","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671750, new AxoMessengerTextItem("A4006:Drive decelerated in a controlled way","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671751, new AxoMessengerTextItem("A4007:Drive on delay time","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671752, new AxoMessengerTextItem("A4008:Drive off delay time","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(671753, new AxoMessengerTextItem("A4009:Motor phase short circuit with drive enable switched off","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786688, new AxoMessengerTextItem("C0100:Communication phase 3 transition check","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786689, new AxoMessengerTextItem("C0101:Invalid parameters (-> S-0-0021)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786690, new AxoMessengerTextItem("C0102:Limit error in parameter (-> S-0-0021)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786691, new AxoMessengerTextItem("C0103:Parameter conversion error (->S-0-0021)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786692, new AxoMessengerTextItem("C0104:Config. IDN for MDT not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786693, new AxoMessengerTextItem("C0105:Maximum length for MDT exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786694, new AxoMessengerTextItem("C0106:Config. IDNs for AT not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786695, new AxoMessengerTextItem("C0107:Maximum length for AT exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786696, new AxoMessengerTextItem("C0108:Time slot parameter > sercos cycle time","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786697, new AxoMessengerTextItem("C0109:Telegram offset unsuitable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786704, new AxoMessengerTextItem("C0110:Length of MDT (S-0-0010) odd","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786705, new AxoMessengerTextItem("C0111:ID9 + Record length - 1 > length MDT (S-0-0010)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786706, new AxoMessengerTextItem("C0112:Set timing not permissible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786707, new AxoMessengerTextItem("C0113:Relation TNcyc (S-0-0001) to TScyc (S-0-0002) error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786708, new AxoMessengerTextItem("C0114:T4 > TScyc (S-0-0002) - T4min (S-0-0005)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786709, new AxoMessengerTextItem("C0115:T2 too small","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786710, new AxoMessengerTextItem("C0116:T3 (S-0-0008) within MDT (S-0-0089 + S-0-0010)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786712, new AxoMessengerTextItem("C0118:Order of cyclic command value configuration incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786738, new AxoMessengerTextItem("C0132:Invalid settings for controller cycle times","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786739, new AxoMessengerTextItem("C0133:FKM: Address conflict","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786745, new AxoMessengerTextItem("C0139:T2 (S-0-0089)+length MDT (S-0-0010)>TScyc (S-0-0002)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786769, new AxoMessengerTextItem("C0151:IDN for command value data container not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786770, new AxoMessengerTextItem("C0152:IDN for actual value data container not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786800, new AxoMessengerTextItem("C0170:Config. IDNs for connection not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786801, new AxoMessengerTextItem("C0171:Maximum length for connections exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786802, new AxoMessengerTextItem("C0172:Delay measurement (S-0-1024) not carried out","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786803, new AxoMessengerTextItem("C0173:Connections (number) not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786804, new AxoMessengerTextItem("C0174:Connection configuration not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786805, new AxoMessengerTextItem("C0175:Producer cycle time of a connection not correct","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786944, new AxoMessengerTextItem("C0200:Exit parameterization level procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786945, new AxoMessengerTextItem("C0201:Invalid parameters (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786946, new AxoMessengerTextItem("C0202:Parameter limit error (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786947, new AxoMessengerTextItem("C0203:Parameter conversion error (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786948, new AxoMessengerTextItem("C0204:Inadmissible motor-amplifier combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786949, new AxoMessengerTextItem("C0205:Invalid power parameters (-> logbook)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786953, new AxoMessengerTextItem("C0209:Incorrect encoder configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786960, new AxoMessengerTextItem("C0210:Feedback 2 required (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786961, new AxoMessengerTextItem("C0211:Invalid encoder configuration (3 active encoders)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786962, new AxoMessengerTextItem("C0212:Invalid control section data (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786963, new AxoMessengerTextItem("C0213:SMO: Incorrect parameterization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786964, new AxoMessengerTextItem("C0214:SMO: Incorrect configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786965, new AxoMessengerTextItem("C0215:SMO: Error in encoder initialization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786966, new AxoMessengerTextItem("C0216:SMO: SCM-OM switching not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786969, new AxoMessengerTextItem("C0219:Max. travel range too large","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786976, new AxoMessengerTextItem("C0220:Error when initializing position of encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786977, new AxoMessengerTextItem("C0221:Initialization velocity encoder 1 too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786979, new AxoMessengerTextItem("C0223:Invalid settings for controller cycle times","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786980, new AxoMessengerTextItem("C0224:Error when initializing position of encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786981, new AxoMessengerTextItem("C0225:Initialization velocity encoder 2 too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786983, new AxoMessengerTextItem("C0227:Error when initializing position of measuring encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786984, new AxoMessengerTextItem("C0228:Initialization velocity measuring encoder too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786985, new AxoMessengerTextItem("C0229:Field bus: IDN for cycl. command val. not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786992, new AxoMessengerTextItem("C0230:Field bus: Max. length for cycl. command val. exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786993, new AxoMessengerTextItem("C0231:Field bus: IDN for cycl. actual val. not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786994, new AxoMessengerTextItem("C0232:Field bus: Length for cycl. actual values exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786995, new AxoMessengerTextItem("C0233:Field bus: Tcyc (P-0-4076) incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(786996, new AxoMessengerTextItem("C0234:Field bus: P-0-4077 missing for cycl. command values","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787000, new AxoMessengerTextItem("C0238:Order of cyclic command value configuration incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787001, new AxoMessengerTextItem("C0239:IDN for command value data container not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787008, new AxoMessengerTextItem("C0240:IDN for actual value data container not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787009, new AxoMessengerTextItem("C0241:Incorrect parameterization of motion task","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787010, new AxoMessengerTextItem("C0242:Multiple configuration of a parameter (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787011, new AxoMessengerTextItem("C0243:Brake check function not possible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787012, new AxoMessengerTextItem("C0244:Act. modulo value cycle greater than max. travel range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787013, new AxoMessengerTextItem("C0245:Operation mode configuration (->S-0-0423) not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787024, new AxoMessengerTextItem("C0250:Probe inputs incorrectly configured","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787025, new AxoMessengerTextItem("C0251:Error during synchronization to master communication","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787026, new AxoMessengerTextItem("C0252:Incorrect MLD initialization (write access->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787027, new AxoMessengerTextItem("C0253:Error in combination operation mode - encoder (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787030, new AxoMessengerTextItem("C0256:Safety technology configuration error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787032, new AxoMessengerTextItem("C0258:Error in relation TNcyc (S-0-0001) to fine interpol","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787033, new AxoMessengerTextItem("C0259:MLD configuration error (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787040, new AxoMessengerTextItem("C0260:Incremental enc. emulator resol. cannot be displayed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787045, new AxoMessengerTextItem("C0265:Incorrect CCD address configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787046, new AxoMessengerTextItem("C0266:Incorrect CCD phase switch","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787047, new AxoMessengerTextItem("C0267:CCD timeout phase switch","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787056, new AxoMessengerTextItem("C0270:Error when reading encoder data => motor encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787057, new AxoMessengerTextItem("C0271:Incorrect parameterization of motor encoder (hardware)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787058, new AxoMessengerTextItem("C0272:Incorr. parameteriz. of motor enc. (mechanical system)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787059, new AxoMessengerTextItem("C0273:Modulo value for motor encoder cannot be displayed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787060, new AxoMessengerTextItem("C0274:Motor encoder unknown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787061, new AxoMessengerTextItem("C0275:Error when reading encoder data => optional encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787062, new AxoMessengerTextItem("C0276:Incorrect parameterization of optional enc. (hardware)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787063, new AxoMessengerTextItem("C0277:Incorr. parameteriz. of opt. enc. (mechanical system)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787064, new AxoMessengerTextItem("C0278:Modulo value for optional encoder cannot be displayed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787065, new AxoMessengerTextItem("C0279:Optional encoder unknown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787072, new AxoMessengerTextItem("C0280:Maximum travel range cannot be displayed internally","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787073, new AxoMessengerTextItem("C0281:Commutation via encoder-2 impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787074, new AxoMessengerTextItem("C0282:Sensorless posit. of synchr. motors, invalid ctrl parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787075, new AxoMessengerTextItem("C0283:Error during initialization of motor control (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787076, new AxoMessengerTextItem("C0284:Invalid motor data in encoder memory (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787077, new AxoMessengerTextItem("C0285:Type of construction of motor P-0-4014 incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787078, new AxoMessengerTextItem("C0286:Several motor encoders connected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787079, new AxoMessengerTextItem("C0287:Error during initialization of motor data (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787080, new AxoMessengerTextItem("C0288:Rotary scaling not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787081, new AxoMessengerTextItem("C0289:Error at init. of synchr. motor with reluctance torque","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787088, new AxoMessengerTextItem("C0290:Error when reading encoder data => measuring encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787089, new AxoMessengerTextItem("C0291:Incorr. parameterization of measuring enc. (hardware)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787090, new AxoMessengerTextItem("C0292:Measuring encoder unknown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787091, new AxoMessengerTextItem("C0293:Modulo value for measuring encoder cannot be displayed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787092, new AxoMessengerTextItem("C0294:Incorrect measuring encoder configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787093, new AxoMessengerTextItem("C0295:Internal display error during scaling conversion (NM)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787094, new AxoMessengerTextItem("C0296:Error in initialization of absolute encoder monitoring","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787095, new AxoMessengerTextItem("C0297:Encoder type not possible for selected constr. type of motor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787096, new AxoMessengerTextItem("C0298:Impossible to exit parameterization level","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787097, new AxoMessengerTextItem("C0299:Configuration changed. Restart","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787200, new AxoMessengerTextItem("C0300:Set absolute position procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787201, new AxoMessengerTextItem("C0301:Measuring system unavailable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787202, new AxoMessengerTextItem("C0302:Absolute evaluation of measuring system impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787203, new AxoMessengerTextItem("C0303:Absolute encoder offset cannot be saved","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787204, new AxoMessengerTextItem("C0304:Command cannot be executed under drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787456, new AxoMessengerTextItem("C0400:Activate parameterization level 1 procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787457, new AxoMessengerTextItem("C0401:Switching not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787459, new AxoMessengerTextItem("C0403:Switching to CCD phase 2 impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787460, new AxoMessengerTextItem("C0404:SMO: Incorrect change of system state","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787712, new AxoMessengerTextItem("C0500:Reset class 1 diagnostics, error reset","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787713, new AxoMessengerTextItem("C0501:Error clearing only in parameter mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787968, new AxoMessengerTextItem("C0600:Drive-controlled homing procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787969, new AxoMessengerTextItem("C0601:Homing only possible with drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787970, new AxoMessengerTextItem("C0602:Distance home switch - reference mark erroneous","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787971, new AxoMessengerTextItem("C0603:Homing impossible with optional encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787972, new AxoMessengerTextItem("C0604:Homing impossible with absolute encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787974, new AxoMessengerTextItem("C0606:Reference mark not detected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787975, new AxoMessengerTextItem("C0607:Reference cam input not assigned","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787976, new AxoMessengerTextItem("C0608:Pos. stop a. HW lim. switch not allowed f. modulo axes","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787977, new AxoMessengerTextItem("C0609:Different travel directions parameterized","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(787984, new AxoMessengerTextItem("C0610:Absolute encoder offset could not be saved","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788224, new AxoMessengerTextItem("C0700:Load defaults proced. command (motor-spec. controller val.)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788226, new AxoMessengerTextItem("C0702:Default parameters not available","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788227, new AxoMessengerTextItem("C0703:Default parameters invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788228, new AxoMessengerTextItem("C0704:Parameters not copyable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788230, new AxoMessengerTextItem("C0706:Error when reading the controller parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788240, new AxoMessengerTextItem("C0710:Command Load power-supply specific controller values","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788241, new AxoMessengerTextItem("C0711:Loading requires determination of system parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788256, new AxoMessengerTextItem("C0720:SMO: Load defaults procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788257, new AxoMessengerTextItem("C0721:SMO: Load defaults procedure not possible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788258, new AxoMessengerTextItem("C0722:SMO: Error in load defaults procedure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788259, new AxoMessengerTextItem("C0723:SMO: Error in deactivation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788272, new AxoMessengerTextItem("C0730:Load defaults procedure command (MLD)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788288, new AxoMessengerTextItem("C0740:Command Activate field bus profile settings","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788291, new AxoMessengerTextItem("C0743:Error in activation of field bus profile settings","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788304, new AxoMessengerTextItem("C0750:Load defaults procedure command (factory settings)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788305, new AxoMessengerTextItem("C0751:Parameter default value incorrect (-> S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788306, new AxoMessengerTextItem("C0752:Locked with password","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788321, new AxoMessengerTextItem("C0761:Factory default values incorrect (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788322, new AxoMessengerTextItem("C0762:Locked with password","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788323, new AxoMessengerTextItem("C0763:Load defaults procedure (application data), invalid param","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788377, new AxoMessengerTextItem("C0799:An invalid index was set","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788736, new AxoMessengerTextItem("C0900:Position spindle command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788738, new AxoMessengerTextItem("C0902:Spindle positioning requires drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788739, new AxoMessengerTextItem("C0903:Error during initialization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(788742, new AxoMessengerTextItem("C0906:Error during search for zero pulse","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791040, new AxoMessengerTextItem("C1200:Commutation offset setting command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791044, new AxoMessengerTextItem("C1204:Error in offset calculation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791048, new AxoMessengerTextItem("C1208:No adjustment with asynchronous motor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791049, new AxoMessengerTextItem("C1209:Proceed to phase 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791057, new AxoMessengerTextItem("C1211:Commutation offset could not be determined","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791058, new AxoMessengerTextItem("C1212:Motion range exceeded during commutation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791060, new AxoMessengerTextItem("C1214:Command only possible with linear synchronous motor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791061, new AxoMessengerTextItem("C1215:Command only possible in 'bb'","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791062, new AxoMessengerTextItem("C1216:Commutation determination not selected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791063, new AxoMessengerTextItem("C1217:Setting only possible in 'Ab'","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791064, new AxoMessengerTextItem("C1218:Automatic commutation: Current too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791065, new AxoMessengerTextItem("C1219:Automatic commutation: Overcurrent","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791072, new AxoMessengerTextItem("C1220:Automatic commutation: Timeout","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791073, new AxoMessengerTextItem("C1221:Automatic commutation: Iteration without result","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791074, new AxoMessengerTextItem("C1222:Error when writing offset parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791075, new AxoMessengerTextItem("C1223:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791296, new AxoMessengerTextItem("C1300:Positive stop drive procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791297, new AxoMessengerTextItem("C1301:Class 1 diagnostics error at command start","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791552, new AxoMessengerTextItem("C1400:Command Get marker position","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791554, new AxoMessengerTextItem("C1402:Faulty reference mark signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(791808, new AxoMessengerTextItem("C1500:Cancel reference point procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792064, new AxoMessengerTextItem("C1600:Parking axis command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792576, new AxoMessengerTextItem("C1800:Command Drive optimization / command value box","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792577, new AxoMessengerTextItem("C1801:Start requires drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792578, new AxoMessengerTextItem("C1802:No useful motor data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792579, new AxoMessengerTextItem("C1803:Inertia detection failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792580, new AxoMessengerTextItem("C1804:Automatic controller setting failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792581, new AxoMessengerTextItem("C1805:Travel range invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792582, new AxoMessengerTextItem("C1806:Travel range exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792583, new AxoMessengerTextItem("C1807:Determining travel range only via travel distance","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792584, new AxoMessengerTextItem("C1808:Drive not homed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792585, new AxoMessengerTextItem("C1809:Command start only possible with active position limits","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(792592, new AxoMessengerTextItem("C1810:Drive optimization incorrectly configured","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(794624, new AxoMessengerTextItem("C2000:Command Release motor holding brake","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(794625, new AxoMessengerTextItem("C2001:Command not enabled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(794880, new AxoMessengerTextItem("C2100:Command Holding system check","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(794881, new AxoMessengerTextItem("C2101:Holding system check only possible with drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(794883, new AxoMessengerTextItem("C2103:Holding brake: Torque too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(794884, new AxoMessengerTextItem("C2104:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(794885, new AxoMessengerTextItem("C2105:Load of holding system greater than test torque","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(794886, new AxoMessengerTextItem("C2106:Test torque of holding system not reached","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(794888, new AxoMessengerTextItem("C2108:Error when releasing the holding system","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(795136, new AxoMessengerTextItem("C2200:Backup working memory procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(795138, new AxoMessengerTextItem("C2202:Error when writing data to non-volatile memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(795392, new AxoMessengerTextItem("C2300:Load working memory procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(795393, new AxoMessengerTextItem("C2301:Error when reading non-volatile memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(795394, new AxoMessengerTextItem("C2302:Error when converting parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(795648, new AxoMessengerTextItem("C2400:Selectively backup working memory procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(795650, new AxoMessengerTextItem("C2402:Error when saving parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(796672, new AxoMessengerTextItem("C2800:Analog input adjustment command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(796673, new AxoMessengerTextItem("C2801:Analog input not configured","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(796674, new AxoMessengerTextItem("C2802:Oscillations of input signal outside tolerance range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(796675, new AxoMessengerTextItem("C2803:Measured values at zero point and max. value identical","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(796676, new AxoMessengerTextItem("C2804:Automatic adjustment failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(798976, new AxoMessengerTextItem("C3100:Recalculate actual value cycle","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(798977, new AxoMessengerTextItem("C3101:Act. modulo value cycle greater than max. travel range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(798978, new AxoMessengerTextItem("C3102:Drive is still in drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799232, new AxoMessengerTextItem("C3200:Command Calculate motor data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799233, new AxoMessengerTextItem("C3201:Incorrect input for current","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799234, new AxoMessengerTextItem("C3202:Incorrect input for voltage","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799235, new AxoMessengerTextItem("C3203:Incorrect input for frequency","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799236, new AxoMessengerTextItem("C3204:Incorrect input for speed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799237, new AxoMessengerTextItem("C3205:Incorrect input for power factor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799238, new AxoMessengerTextItem("C3206:Incorrect input for power","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799239, new AxoMessengerTextItem("C3207:Type plate list incomplete","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799240, new AxoMessengerTextItem("C3208:Error when writing parameters (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799241, new AxoMessengerTextItem("C3209:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799488, new AxoMessengerTextItem("C3300:Set coordinate system procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(799744, new AxoMessengerTextItem("C3400:Shift coordinate system procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800256, new AxoMessengerTextItem("C3600:Command Motor data identification","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800257, new AxoMessengerTextItem("C3601:Motor not or not correctly connected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800258, new AxoMessengerTextItem("C3602:Determined values invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800259, new AxoMessengerTextItem("C3603:Device current limit too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800260, new AxoMessengerTextItem("C3604:Error when writing parameters (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800261, new AxoMessengerTextItem("C3605:Motor turning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800262, new AxoMessengerTextItem("C3606:Type of construction of motor not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800263, new AxoMessengerTextItem("C3607:Motor revolution/motion impeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800264, new AxoMessengerTextItem("C3608:Incorrect motor phases or rotational direction of encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800265, new AxoMessengerTextItem("C3609:Incorrect number of pole pairs or number of encoder lines","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800272, new AxoMessengerTextItem("C3610:No encoder: Validation check impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800273, new AxoMessengerTextItem("C3611:Test velocity not reached","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800274, new AxoMessengerTextItem("C3612:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(800768, new AxoMessengerTextItem("C3800:Command Apply motor holding brake","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(801024, new AxoMessengerTextItem("C3900:Command Holding brake resurfacing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(801025, new AxoMessengerTextItem("C3901:Resurfacing of holding brake only possible with drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(801026, new AxoMessengerTextItem("C3902:Error during resurfacing of holding brake","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(801027, new AxoMessengerTextItem("C3903:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(802816, new AxoMessengerTextItem("C4000:SMO: Safe homing procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(802817, new AxoMessengerTextItem("C4001:Encoder evaluation error during Safe homing procedure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(802818, new AxoMessengerTextItem("C4002:Incorrect SMO position feedback value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(802819, new AxoMessengerTextItem("C4003:Home switch distance below minimum value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(802820, new AxoMessengerTextItem("C4004:Faulty SMO reference signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803072, new AxoMessengerTextItem("C4100:Switch parameter set command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803073, new AxoMessengerTextItem("C4101:Switching only possible without AF","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803075, new AxoMessengerTextItem("C4103:Preselect parameter set forbidden value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803076, new AxoMessengerTextItem("C4104:Error during parameter set switching (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803328, new AxoMessengerTextItem("C4200:Drive-controlled oscillation command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803329, new AxoMessengerTextItem("C4201:Oscillation requires drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803330, new AxoMessengerTextItem("C4202:Oscillation command speed cannot be reached","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803584, new AxoMessengerTextItem("C4300:NC-controlled homing procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803586, new AxoMessengerTextItem("C4302:Distance home switch - reference mark erroneous","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803588, new AxoMessengerTextItem("C4304:Homing impossible with absolute encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803590, new AxoMessengerTextItem("C4306:Reference mark not detected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803591, new AxoMessengerTextItem("C4307:Reference cam input not assigned","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803592, new AxoMessengerTextItem("C4308:Pos. stop a. HW lim. switch not allowed f. modulo axes","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(803840, new AxoMessengerTextItem("C4400:Calculate displacement procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804096, new AxoMessengerTextItem("C4500:Displacement to referenced system procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804352, new AxoMessengerTextItem("C4600:Command Calculate motor control parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804353, new AxoMessengerTextItem("C4601:Error when writing parameters (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804864, new AxoMessengerTextItem("C4800:Command Determine cogging torque compensation table","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804865, new AxoMessengerTextItem("C4801:Cogging torque compensation: Measuring vel. too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804866, new AxoMessengerTextItem("C4802:Cogging torque compensation: Measuring vel. too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804867, new AxoMessengerTextItem("C4803:Cogging torque compensation: Inadmissible acceleration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804868, new AxoMessengerTextItem("C4804:Cogging torque comp.: Err. when storing corr. val table","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804869, new AxoMessengerTextItem("C4805:Cogging torque comp.: Motor measuring system not homed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(804870, new AxoMessengerTextItem("C4806:Cogging torque compensation: Measuring range invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(805120, new AxoMessengerTextItem("C4900:PLC command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(805121, new AxoMessengerTextItem("C4901:PLC command error no. 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(805122, new AxoMessengerTextItem("C4902:PLC command error no. 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(805123, new AxoMessengerTextItem("C4903:PLC command error no. 3","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(805124, new AxoMessengerTextItem("C4904:PLC command error no. 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(805136, new AxoMessengerTextItem("C4910:PLC command timeout","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(807424, new AxoMessengerTextItem("C5200:Communication phase 4 transition check","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(807680, new AxoMessengerTextItem("C5300:sercos: Command SYNC delay measurement","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(807681, new AxoMessengerTextItem("C5301:sercos: Delay measurement failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(808448, new AxoMessengerTextItem("C5600:Command Subsequent optimization of commutation offset","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(808449, new AxoMessengerTextItem("C5601:Command requires drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(808450, new AxoMessengerTextItem("C5602:Axis blocked","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(808451, new AxoMessengerTextItem("C5603:Timeout: Axis in motion","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811264, new AxoMessengerTextItem("C6100:Command Activate IP settings","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811265, new AxoMessengerTextItem("C6101:Incorrect IP settings","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811776, new AxoMessengerTextItem("C6300:Generate type plate command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811777, new AxoMessengerTextItem("C6301:Command is password-protected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811778, new AxoMessengerTextItem("C6302:IDN not permissible (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811779, new AxoMessengerTextItem("C6303:Insufficient memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811780, new AxoMessengerTextItem("C6304:Type plate unknown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811781, new AxoMessengerTextItem("C6305:General type plate generation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811792, new AxoMessengerTextItem("C6310:Command not possible with this encoder type","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(811793, new AxoMessengerTextItem("C6311:Error when accessing encoder memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812032, new AxoMessengerTextItem("C6400:Reboot command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812033, new AxoMessengerTextItem("C6401:reboot command impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812288, new AxoMessengerTextItem("C6500:Archive device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812289, new AxoMessengerTextItem("C6501:Error when creating machine archive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812290, new AxoMessengerTextItem("C6502:Error when reading device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812291, new AxoMessengerTextItem("C6503:Inconsistent backup of machine archive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812544, new AxoMessengerTextItem("C6600:Restore device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812545, new AxoMessengerTextItem("C6601:Error when accessing machine archive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812546, new AxoMessengerTextItem("C6602:Error when writing device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812548, new AxoMessengerTextItem("C6604:Error when reading device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812549, new AxoMessengerTextItem("C6605:Device data incompletely restored","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812550, new AxoMessengerTextItem("C6606:PLC user program is active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812800, new AxoMessengerTextItem("C6700:Update of device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812801, new AxoMessengerTextItem("C6701:Error when accessing update archive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812802, new AxoMessengerTextItem("C6702:Error when writing device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812803, new AxoMessengerTextItem("C6703:Warning - Incomplete update of device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812804, new AxoMessengerTextItem("C6704:Machine archive is not up-to-date","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(812806, new AxoMessengerTextItem("C6706:PLC user program is active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(813056, new AxoMessengerTextItem("C6800:Control command device data archiving","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(815104, new AxoMessengerTextItem("C7000:CCD: Command adjust slave addresses","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(815105, new AxoMessengerTextItem("C7001:CCD: Impossible to adjust slave addresses","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(815360, new AxoMessengerTextItem("C7100:CCD: Command Close ring","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(815361, new AxoMessengerTextItem("C7101:CCD: Impossible to close ring","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(815616, new AxoMessengerTextItem("C7200:CCD: Command Apply I/O configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(815617, new AxoMessengerTextItem("C7201:CCD: Impossible to apply I/O configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(816128, new AxoMessengerTextItem("C7400:CCD: Switching to phase 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(816129, new AxoMessengerTextItem("C7401:CCD: Impossible to switch to phase 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(816384, new AxoMessengerTextItem("C7500:CCD: Switching to phase 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(816385, new AxoMessengerTextItem("C7501:CCD: Impossible to switch to phase 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(816640, new AxoMessengerTextItem("C7600:Command Create parameter image","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(816641, new AxoMessengerTextItem("C7601:Memory access impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(816642, new AxoMessengerTextItem("C7602:Slave access impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819200, new AxoMessengerTextItem("C8000:SMO: Command Apply scaling","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819201, new AxoMessengerTextItem("C8001:SMO: Invalid scaling parameters ->S-0-0423","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819202, new AxoMessengerTextItem("C8002:SMO: Not allowed to apply scaling","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819456, new AxoMessengerTextItem("C8100:SMO: Command Activate configuration mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819457, new AxoMessengerTextItem("C8101:SMO: Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819712, new AxoMessengerTextItem("C8200:SMO: Command Exit configuration mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819731, new AxoMessengerTextItem("C8213:SMO: Incorrect parameterization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819732, new AxoMessengerTextItem("C8214:SMO: Incorrect configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819733, new AxoMessengerTextItem("C8215:SMO: Incorrect encoder/scaling configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819968, new AxoMessengerTextItem("C8300:SMO: Command Activate parameter image","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819969, new AxoMessengerTextItem("C8301:SMO: Incorrect parameter image","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(819970, new AxoMessengerTextItem("C8302:SMO: Parameter image presently cannot be applied","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(820224, new AxoMessengerTextItem("C8400:SMO: Command Apply encoder configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(820225, new AxoMessengerTextItem("C8401:SMO: Impossible to apply encoder type","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(820226, new AxoMessengerTextItem("C8402:SMO: Impossible to apply encoder configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(820227, new AxoMessengerTextItem("C8403:SMO: Parameter for applying encoder configuration invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(820480, new AxoMessengerTextItem("C8500:SMO: Command Apply identification data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(820481, new AxoMessengerTextItem("C8501:SMO: Impossible to apply axis identification","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(820482, new AxoMessengerTextItem("C8502:SMO: Impossible to apply TUNID","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(820736, new AxoMessengerTextItem("C8600:SMO: Command Measure position difference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(820737, new AxoMessengerTextItem("C8601:SMO: Encoder evaluation is inactive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(823552, new AxoMessengerTextItem("C9100:Confirm power section configuration command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(823553, new AxoMessengerTextItem("C9101:Confirm power section configuration command error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(825600, new AxoMessengerTextItem("C9900:Service function command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(825601, new AxoMessengerTextItem("C9901:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925700, new AxoMessengerTextItem("E2004:Performance load prewarning threshold exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925701, new AxoMessengerTextItem("E2005:One-time telegram failure, power section parallel bus","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925705, new AxoMessengerTextItem("E2009:Synchronous velocity command value > limit value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925712, new AxoMessengerTextItem("E2010:Position control with encoder 2 not possible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925713, new AxoMessengerTextItem("E2011:PLC - Warning no. 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925714, new AxoMessengerTextItem("E2012:PLC - Warning no. 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925715, new AxoMessengerTextItem("E2013:PLC - Warning no. 3","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925716, new AxoMessengerTextItem("E2014:PLC - Warning no. 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925717, new AxoMessengerTextItem("E2015:PLC - Warning no. 5","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925718, new AxoMessengerTextItem("E2016:PLC - Warning no. 6","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925719, new AxoMessengerTextItem("E2017:PLC - Warning no. 7","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925728, new AxoMessengerTextItem("E2020:Differing DC bus voltages with parallel connection","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925729, new AxoMessengerTextItem("E2021:Motor temperature outside of measuring range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925730, new AxoMessengerTextItem("E2022:Collective warning of power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925731, new AxoMessengerTextItem("E2023:Current unbalance in parallel connection","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925732, new AxoMessengerTextItem("E2024:Device blower defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925734, new AxoMessengerTextItem("E2026:Undervoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925745, new AxoMessengerTextItem("E2031:Encoder 1 warning: Signal amplitude incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925751, new AxoMessengerTextItem("E2037:Excessive position command difference warning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925760, new AxoMessengerTextItem("E2040:Device overtemperature 2 prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925762, new AxoMessengerTextItem("E2042:Encoder 2 warning: Encoder signals incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925763, new AxoMessengerTextItem("E2043:Measuring encoder warning: Encoder signals incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925769, new AxoMessengerTextItem("E2049:Positioning velocity >= limit value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925776, new AxoMessengerTextItem("E2050:Device overtemp. prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925777, new AxoMessengerTextItem("E2051:Motor overtemp. prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925779, new AxoMessengerTextItem("E2053:Target position out of travel range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925780, new AxoMessengerTextItem("E2054:Not homed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925781, new AxoMessengerTextItem("E2055:Feedrate override S-0-0108 = 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925782, new AxoMessengerTextItem("E2056:Torque limit = 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925784, new AxoMessengerTextItem("E2058:Selected positioning block has not been programmed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925785, new AxoMessengerTextItem("E2059:Velocity command value limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925793, new AxoMessengerTextItem("E2061:Device overload prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925795, new AxoMessengerTextItem("E2063:Velocity command value > limit value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925808, new AxoMessengerTextItem("E2070:Acceleration limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925812, new AxoMessengerTextItem("E2074:Encoder 1: Encoder signals disturbed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925813, new AxoMessengerTextItem("E2075:Encoder 2: Encoder signals disturbed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925814, new AxoMessengerTextItem("E2076:Measuring encoder: Encoder signals disturbed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925815, new AxoMessengerTextItem("E2077:Absolute encoder monitoring, encoder 1 (encoder alarm)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925816, new AxoMessengerTextItem("E2078:Absolute encoder monitoring, opt. encoder (encoder alarm)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925817, new AxoMessengerTextItem("E2079:Absolute enc. monitoring, measuring encoder (encoder alarm)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925830, new AxoMessengerTextItem("E2086:Prewarning supply module overload","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925842, new AxoMessengerTextItem("E2092:Internal synchronization defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925849, new AxoMessengerTextItem("E2099:Power section warning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(925952, new AxoMessengerTextItem("E2100:Positioning velocity of master axis generator too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(926016, new AxoMessengerTextItem("E2140:CCD error at node","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927335, new AxoMessengerTextItem("E2667:Machine archive is not up-to-date","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927760, new AxoMessengerTextItem("E2810:Drive system not ready for operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927761, new AxoMessengerTextItem("E2811:Overtemp. in mains connection module / soft start module","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927764, new AxoMessengerTextItem("E2814:Undervoltage in mains","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927766, new AxoMessengerTextItem("E2816:Undervoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927769, new AxoMessengerTextItem("E2819:Mains failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927776, new AxoMessengerTextItem("E2820:Braking resistor overload prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927778, new AxoMessengerTextItem("E2822:Mains connection temperature monitoring defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927785, new AxoMessengerTextItem("E2829:Not ready for power on","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927796, new AxoMessengerTextItem("E2834:Switching off via OFF input","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(927809, new AxoMessengerTextItem("E2841:Prewarning: Mains connection overtemperature","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(930066, new AxoMessengerTextItem("E3112:Safe reference missing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(930067, new AxoMessengerTextItem("E3113:Prewarning: End of reference position check time interval","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(930069, new AxoMessengerTextItem("E3115:Prewarning, end of brake check time interval","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(930912, new AxoMessengerTextItem("E3460:PROFIsafe: Wrong F-module selected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933889, new AxoMessengerTextItem("E4001:Sync telegram failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933890, new AxoMessengerTextItem("E4002:RTD telegram failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933893, new AxoMessengerTextItem("E4005:No command value input via master communication","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933894, new AxoMessengerTextItem("E4006:Communication module overload","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933895, new AxoMessengerTextItem("E4007:sercos: Consumer connection failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933896, new AxoMessengerTextItem("E4008:Invalid addressing command value data container A","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933897, new AxoMessengerTextItem("E4009:Invalid addressing actual value data container A","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933904, new AxoMessengerTextItem("E4010:Slave not scanned or address 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933905, new AxoMessengerTextItem("E4011:Communication watchdog: Overload of cyclic communication","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933906, new AxoMessengerTextItem("E4012:Maximum number of CCD slaves exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933907, new AxoMessengerTextItem("E4013:Incorrect CCD addressing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933908, new AxoMessengerTextItem("E4014:Incorrect phase switch of CCD slaves","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933910, new AxoMessengerTextItem("E4016:CCD: Topology error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933911, new AxoMessengerTextItem("E4017:CCD: Unknown I/O configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933920, new AxoMessengerTextItem("E4020:sercos: Ring interruption (FF to LF)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933952, new AxoMessengerTextItem("E4040:sercos: Hot-plug error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933953, new AxoMessengerTextItem("E4041:sercos: HP0 Cycle Time invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933954, new AxoMessengerTextItem("E4042:sercos: HP0 MDT length invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933955, new AxoMessengerTextItem("E4043:sercos: HP0 AT length invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933956, new AxoMessengerTextItem("E4044:sercos: HP0 MTU size invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933957, new AxoMessengerTextItem("E4045:sercos: HP0 NRT window invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933958, new AxoMessengerTextItem("E4046:sercos: HP supported removed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(933959, new AxoMessengerTextItem("E4047:sercos: HP enabled removed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950309, new AxoMessengerTextItem("E8025:Overvoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950310, new AxoMessengerTextItem("E8026:Undervoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950311, new AxoMessengerTextItem("E8027:STO/SBC while drive enabled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950312, new AxoMessengerTextItem("E8028:Overcurrent in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950313, new AxoMessengerTextItem("E8029:Positive position limit exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950320, new AxoMessengerTextItem("E8030:Negative position limit exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950324, new AxoMessengerTextItem("E8034:Emergency-Stop activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950336, new AxoMessengerTextItem("E8040:Torque/force actual value limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950337, new AxoMessengerTextItem("E8041:Current limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950338, new AxoMessengerTextItem("E8042:Both travel range limit switches activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950339, new AxoMessengerTextItem("E8043:Positive travel range limit switch activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950340, new AxoMessengerTextItem("E8044:Negative travel range limit switch activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950357, new AxoMessengerTextItem("E8055:Motor overload, current limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950359, new AxoMessengerTextItem("E8057:Device overload, current limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950360, new AxoMessengerTextItem("E8058:Drive system not ready for operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(950880, new AxoMessengerTextItem("E8260:Torque/force command value limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(951040, new AxoMessengerTextItem("E8300:SMO: Error within the safety zone","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(951193, new AxoMessengerTextItem("E8399:Error in processing of diagnostic message","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(952345, new AxoMessengerTextItem("E8819:Mains failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991233, new AxoMessengerTextItem("F2001:Communication error, power section parallel bus","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991234, new AxoMessengerTextItem("F2002:Assignment of encoder for synchronization is not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991235, new AxoMessengerTextItem("F2003:Motion step skipped","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991236, new AxoMessengerTextItem("F2004:Error in MotionProfile","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991237, new AxoMessengerTextItem("F2005:Cam table invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991239, new AxoMessengerTextItem("F2007:Switching to non-initialized operation mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991240, new AxoMessengerTextItem("F2008:RL The motor type has changed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991241, new AxoMessengerTextItem("F2009:PL Load parameter default values","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991248, new AxoMessengerTextItem("F2010:Error when initializing digital I/O (-> S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991249, new AxoMessengerTextItem("F2011:PLC - Error no. 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991250, new AxoMessengerTextItem("F2012:PLC - Error no. 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991251, new AxoMessengerTextItem("F2013:PLC - Error no. 3","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991252, new AxoMessengerTextItem("F2014:PLC - Error no. 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991253, new AxoMessengerTextItem("F2015:PLC - Error no. 5","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991254, new AxoMessengerTextItem("F2016:PLC - Error no. 6","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991255, new AxoMessengerTextItem("F2017:PLC - Error no. 7","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991256, new AxoMessengerTextItem("F2018:Device overtemperature shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991257, new AxoMessengerTextItem("F2019:Motor overtemperature shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991264, new AxoMessengerTextItem("F2020:Low device temperature error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991265, new AxoMessengerTextItem("F2021:Motor temperature monitor defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991266, new AxoMessengerTextItem("F2022:Device temperature monitor defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991269, new AxoMessengerTextItem("F2025:Drive not ready for control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991270, new AxoMessengerTextItem("F2026:Undervoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991271, new AxoMessengerTextItem("F2027:Excessive oscillation in DC bus","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991272, new AxoMessengerTextItem("F2028:Excessive deviation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991281, new AxoMessengerTextItem("F2031:Encoder 1 error: Signal amplitude incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991282, new AxoMessengerTextItem("F2032:Validation error during commutation fine adjustment","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991286, new AxoMessengerTextItem("F2036:Excessive position feedback difference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991287, new AxoMessengerTextItem("F2037:Excessive position command difference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991296, new AxoMessengerTextItem("F2040:Device overtemperature 2 shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991298, new AxoMessengerTextItem("F2042:Encoder 2: Encoder signals incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991299, new AxoMessengerTextItem("F2043:Measuring encoder: Encoder signals incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991304, new AxoMessengerTextItem("F2048:Low battery voltage","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991312, new AxoMessengerTextItem("F2050:Overflow of target position preset memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991313, new AxoMessengerTextItem("F2051:No sequential block in target position preset memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991315, new AxoMessengerTextItem("F2053:Incr. encoder emulator: Pulse frequency too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991316, new AxoMessengerTextItem("F2054:Incr. encoder emulator: Hardware error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991317, new AxoMessengerTextItem("F2055:External power supply dig. I/O error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991318, new AxoMessengerTextItem("F2056:Overload at dig. I/Os","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991319, new AxoMessengerTextItem("F2057:Target position out of travel range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991320, new AxoMessengerTextItem("F2058:Internal overflow by positioning input","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991321, new AxoMessengerTextItem("F2059:Incorrect command value direction when positioning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991331, new AxoMessengerTextItem("F2063:Internal overflow master axis generator","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991332, new AxoMessengerTextItem("F2064:Incorrect cmd value direction master axis generator","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991335, new AxoMessengerTextItem("F2067:Synchronization to master communication incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991336, new AxoMessengerTextItem("F2068:Brake error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991346, new AxoMessengerTextItem("F2072:Error in power supply of brake","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991348, new AxoMessengerTextItem("F2074:Actual pos. value 1 outside absolute encoder window","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991349, new AxoMessengerTextItem("F2075:Actual pos. value 2 outside absolute encoder window","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991350, new AxoMessengerTextItem("F2076:Actual pos. value 3 outside absolute encoder window","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991351, new AxoMessengerTextItem("F2077:Current measurement trim wrong","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991366, new AxoMessengerTextItem("F2086:Error supply module","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991367, new AxoMessengerTextItem("F2087:Module group communication error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991488, new AxoMessengerTextItem("F2100:Incorrect access to command value memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991489, new AxoMessengerTextItem("F2101:File system structure error on the memory card","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991490, new AxoMessengerTextItem("F2102:It was impossible to address I2C memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991491, new AxoMessengerTextItem("F2103:It was impossible to address EnDat memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991492, new AxoMessengerTextItem("F2104:Commutation offset invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991493, new AxoMessengerTextItem("F2105:Cannot address OEM encoder memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991494, new AxoMessengerTextItem("F2106:Power section error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991495, new AxoMessengerTextItem("F2107:Incorrect commutation angle","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991504, new AxoMessengerTextItem("F2110:Error in non-cyclical data communic. of power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991520, new AxoMessengerTextItem("F2120:Memory card could not be initialized","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991537, new AxoMessengerTextItem("F2131:Incorrect switching state of probe 1 input signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991552, new AxoMessengerTextItem("F2140:CCD slave error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991568, new AxoMessengerTextItem("F2150:MLD motion function block error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991604, new AxoMessengerTextItem("F2174:Loss of encoder 1 reference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991605, new AxoMessengerTextItem("F2175:Loss of encoder 2 reference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991606, new AxoMessengerTextItem("F2176:Loss of measuring encoder reference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991607, new AxoMessengerTextItem("F2177:Encoder 1 modulo limitation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991608, new AxoMessengerTextItem("F2178:Encoder 2 modulo limitation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991609, new AxoMessengerTextItem("F2179:Modulo limitation error of measuring encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991632, new AxoMessengerTextItem("F2190:Incorrect Ethernet configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991633, new AxoMessengerTextItem("F2191:No automatic CCD slaves IP configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(991856, new AxoMessengerTextItem("F2270:Analog input, wire break","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993282, new AxoMessengerTextItem("F2802:Error in mains synchronization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993299, new AxoMessengerTextItem("F2813:Mains connection function error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993300, new AxoMessengerTextItem("F2814:Undervoltage in mains","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993301, new AxoMessengerTextItem("F2815:Overvoltage in mains","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993302, new AxoMessengerTextItem("F2816:Softstart fault power supply unit","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993304, new AxoMessengerTextItem("F2818:Phase failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993305, new AxoMessengerTextItem("F2819:Mains failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993312, new AxoMessengerTextItem("F2820:Braking resistor overload","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993313, new AxoMessengerTextItem("F2821:Error in control of braking resistor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993314, new AxoMessengerTextItem("F2822:Mains connection temperature monitoring defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993317, new AxoMessengerTextItem("F2825:Switch-on threshold braking resistor too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993332, new AxoMessengerTextItem("F2834:Contactor control error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993334, new AxoMessengerTextItem("F2836:DC bus balancing monitor error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993345, new AxoMessengerTextItem("F2841:Shutdown: Mains connection overtemperature","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(993376, new AxoMessengerTextItem("F2860:Overcurrent in mains-side power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995344, new AxoMessengerTextItem("F3010:SMO: IO mapper inputs error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995584, new AxoMessengerTextItem("F3100:F3 test error during machine acceptance test","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995585, new AxoMessengerTextItem("F3101:Axis validation missing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995602, new AxoMessengerTextItem("F3112:Safe reference missing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995605, new AxoMessengerTextItem("F3115:Brake check time interval exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995609, new AxoMessengerTextItem("F3119:Error in initialization of P-0-3212","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995633, new AxoMessengerTextItem("F3131:Control error, safe inputs of HSZ","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995634, new AxoMessengerTextItem("F3132:SDL validation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995636, new AxoMessengerTextItem("F3134:Dynamization time interval incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995637, new AxoMessengerTextItem("F3135:Zone bus error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995649, new AxoMessengerTextItem("F3141:Operating status selection validation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995650, new AxoMessengerTextItem("F3142:Activation time of enabling control exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995664, new AxoMessengerTextItem("F3150:Safety zone module: Temperature monitoring error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995665, new AxoMessengerTextItem("F3151:Safety zone module: 24 volt error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995666, new AxoMessengerTextItem("F3152:Safety zone module: DYN error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995667, new AxoMessengerTextItem("F3153:Safety zone module: SZE/SZA error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995685, new AxoMessengerTextItem("F3165:Faulty SMO reference signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995686, new AxoMessengerTextItem("F3166:Reference position check failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(995687, new AxoMessengerTextItem("F3167:Encoder evaluation warning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(996100, new AxoMessengerTextItem("F3304:SMO: System error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(996192, new AxoMessengerTextItem("F3360:SMO: Local I/O system error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(996432, new AxoMessengerTextItem("F3450:CSS stack error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(996433, new AxoMessengerTextItem("F3451:FSoE stack error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(996434, new AxoMessengerTextItem("F3452:FSoE stack connection error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(996448, new AxoMessengerTextItem("F3460:PROFIsafe error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(996449, new AxoMessengerTextItem("F3461:PROFIsafe connection error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999425, new AxoMessengerTextItem("F4001:Sync telegram failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999426, new AxoMessengerTextItem("F4002:RTD telegram failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999427, new AxoMessengerTextItem("F4003:Invalid communication phase shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999428, new AxoMessengerTextItem("F4004:Error during phase progression","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999429, new AxoMessengerTextItem("F4005:Error during phase regression","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999430, new AxoMessengerTextItem("F4006:Phase switching without ready signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999433, new AxoMessengerTextItem("F4009:Bus failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999441, new AxoMessengerTextItem("F4011:Communication watchdog: Overload of cyclic communication","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999442, new AxoMessengerTextItem("F4012:Incorrect I/O length","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999446, new AxoMessengerTextItem("F4016:PLC double real-time channel failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999447, new AxoMessengerTextItem("F4017:sercos: Incorrect sequence during phase switch","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999449, new AxoMessengerTextItem("F4019:sercos: Incorrect sequence upon phase start","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999456, new AxoMessengerTextItem("F4020:sercos: Cable break (L+F to NRT)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999476, new AxoMessengerTextItem("F4034:Emergency-Stop activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999744, new AxoMessengerTextItem("F4140:CCD communication error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999745, new AxoMessengerTextItem("F4141:CCD: IO configuration changed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999746, new AxoMessengerTextItem("F4142:CCD: Ring buffer overflow","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(999760, new AxoMessengerTextItem("F4150:CSAL error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007618, new AxoMessengerTextItem("F6002:Assignment of encoder for synchronization is not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007619, new AxoMessengerTextItem("F6003:Motion step skipped","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007620, new AxoMessengerTextItem("F6004:Error in MotionProfile","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007621, new AxoMessengerTextItem("F6005:Cam table invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007622, new AxoMessengerTextItem("F6006:Incorrect initialization of effective master axis position","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007623, new AxoMessengerTextItem("F6007:Switching to non-initialized operation mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007624, new AxoMessengerTextItem("F6008:Internal overflow when calculating positioning profile","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007632, new AxoMessengerTextItem("F6010:PLC runtime error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007652, new AxoMessengerTextItem("F6024:Maximum braking time exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007656, new AxoMessengerTextItem("F6028:Position limit value exceeded (overflow)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007657, new AxoMessengerTextItem("F6029:Positive position limit exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007664, new AxoMessengerTextItem("F6030:Negative position limit exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007668, new AxoMessengerTextItem("F6034:Emergency-Stop activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007682, new AxoMessengerTextItem("F6042:Both travel range limit switches activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007683, new AxoMessengerTextItem("F6043:Positive travel range limit switch activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007684, new AxoMessengerTextItem("F6044:Negative travel range limit switch activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007704, new AxoMessengerTextItem("F6058:Internal overflow by positioning input","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007705, new AxoMessengerTextItem("F6059:Incorrect command value direction when positioning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1007936, new AxoMessengerTextItem("F6140:CCD slave error (emergency halt)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1008128, new AxoMessengerTextItem("F6200:Velocity command value > standstill window in SOS","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011721, new AxoMessengerTextItem("F7009:Homing velocity exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011728, new AxoMessengerTextItem("F7010:Safely-limited increment exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011729, new AxoMessengerTextItem("F7011:SMP, SLP: Safe position limit value, positive exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011730, new AxoMessengerTextItem("F7012:SMP, SLP: Safe position limit value, negative exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011731, new AxoMessengerTextItem("F7013:Velocity threshold exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011732, new AxoMessengerTextItem("F7014:Timeout in safely-monitored transient oscillation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011733, new AxoMessengerTextItem("F7015:SMO: Cross data comparison error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011744, new AxoMessengerTextItem("F7020:Safe maximum speed exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011747, new AxoMessengerTextItem("F7023:SLE: Safe position limit value, positive exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011748, new AxoMessengerTextItem("F7024:SLE: Safe position limit value, negative exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011760, new AxoMessengerTextItem("F7030:Position window for safe operating stop exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011761, new AxoMessengerTextItem("F7031:Incorrect direction of motion","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011762, new AxoMessengerTextItem("F7032:Forced zone safety","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011763, new AxoMessengerTextItem("F7033:Safety zone module: Hardware error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011764, new AxoMessengerTextItem("F7034:Safety zone module: SDL error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011765, new AxoMessengerTextItem("F7035:Zone bus error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011792, new AxoMessengerTextItem("F7050:Maximum transition time exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011793, new AxoMessengerTextItem("F7051:Safely-monitored deceleration exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011794, new AxoMessengerTextItem("F7052:Selected target velocity exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1011968, new AxoMessengerTextItem("F7100:F7 test error during machine acceptance test","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015808, new AxoMessengerTextItem("F8000:Fatal hardware error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015809, new AxoMessengerTextItem("F8001:Telegram failure, power section parallel bus","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015811, new AxoMessengerTextItem("F8003:Communication error with mains connection module","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015824, new AxoMessengerTextItem("F8010:Autom. commutation: Max. motion range when moving back","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015825, new AxoMessengerTextItem("F8011:Commutation offset could not be determined","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015826, new AxoMessengerTextItem("F8012:Autom. commutation: Max. motion range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015827, new AxoMessengerTextItem("F8013:Automatic commutation: Current too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015828, new AxoMessengerTextItem("F8014:Automatic commutation: Overcurrent","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015829, new AxoMessengerTextItem("F8015:Automatic commutation: Timeout","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015830, new AxoMessengerTextItem("F8016:Automatic commutation: Iteration without result","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015831, new AxoMessengerTextItem("F8017:Automatic commutation: Incorrect commutation adjustment","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015832, new AxoMessengerTextItem("F8018:Device overtemperature shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015842, new AxoMessengerTextItem("F8022:Enc. 1: Enc. signals incorr. (can be cleared in ph. 2)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015845, new AxoMessengerTextItem("F8025:Overvoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015847, new AxoMessengerTextItem("F8027:STO/SBC while drive enabled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015848, new AxoMessengerTextItem("F8028:Overcurrent in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015859, new AxoMessengerTextItem("F8033:Ground fault in motor line","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015860, new AxoMessengerTextItem("F8034:Communication error, power section modules","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015874, new AxoMessengerTextItem("F8042:Encoder 2 error: Signal amplitude incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015876, new AxoMessengerTextItem("F8044:Device-internal module communication disturbed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015893, new AxoMessengerTextItem("F8055:Incorrect processing of diagnostic message","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015904, new AxoMessengerTextItem("F8060:Overcurrent in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015908, new AxoMessengerTextItem("F8064:Interruption of motor phase","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015913, new AxoMessengerTextItem("F8069:Error in device-internal power supply","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015920, new AxoMessengerTextItem("F8070:Control voltage failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015921, new AxoMessengerTextItem("F8071:Overvoltage of control voltage","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015926, new AxoMessengerTextItem("F8076:Error in error angle loop","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015928, new AxoMessengerTextItem("F8078:Speed loop error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015929, new AxoMessengerTextItem("F8079:Velocity limit value exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015953, new AxoMessengerTextItem("F8091:Power section defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1015961, new AxoMessengerTextItem("F8099:Fatal error in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016064, new AxoMessengerTextItem("F8100:Error when initializing the parameter handling","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016066, new AxoMessengerTextItem("F8102:Error when initializing power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016088, new AxoMessengerTextItem("F8118:Invalid power section/firmware combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016096, new AxoMessengerTextItem("F8120:Invalid control section/firmware combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016098, new AxoMessengerTextItem("F8122:Control section defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016104, new AxoMessengerTextItem("F8128:Error when initializing an optional interface","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016105, new AxoMessengerTextItem("F8129:Incorrect optional module firmware","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016128, new AxoMessengerTextItem("F8140:Fatal CCD error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016576, new AxoMessengerTextItem("F8300:Dynamization pulse width incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016577, new AxoMessengerTextItem("F8301:Error when checking selection signals","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016578, new AxoMessengerTextItem("F8302:Error when checking switch-off channels STO/SBC","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016579, new AxoMessengerTextItem("F8303:System error STO/SBC","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016580, new AxoMessengerTextItem("F8304:SMO: System error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016595, new AxoMessengerTextItem("F8313:SMO: Incorrect parameterization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016596, new AxoMessengerTextItem("F8314:SMO: Incorrect configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016597, new AxoMessengerTextItem("F8315:SMO: Error in encoder initialization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016598, new AxoMessengerTextItem("F8316:SMO: Incorrect change of system state","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016601, new AxoMessengerTextItem("F8319:SMO: INIT system error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016608, new AxoMessengerTextItem("F8320:SMO: Invalid module/firmware combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016609, new AxoMessengerTextItem("F8321:SMO: Invalid circuit board/firmware combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016611, new AxoMessengerTextItem("F8323:SMO: Error in deactivation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016612, new AxoMessengerTextItem("F8324:SMO: Error in activation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016624, new AxoMessengerTextItem("F8330:SMO: Configuration data record has not been activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016656, new AxoMessengerTextItem("F8350:Maximum transition time exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016657, new AxoMessengerTextItem("F8351:Safely-monitored deceleration exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016658, new AxoMessengerTextItem("F8352:Drive enable set in STO","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016659, new AxoMessengerTextItem("F8353:SBC system error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016660, new AxoMessengerTextItem("F8354:Error when checking interrupting circuits","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016661, new AxoMessengerTextItem("F8355:Incorrect processing of diagnostic message","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016662, new AxoMessengerTextItem("F8356:SMO: Incorrect parameter processing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016665, new AxoMessengerTextItem("F8359:SMO: Encoder evaluation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1016725, new AxoMessengerTextItem("F8395:SMO: Drive system configuration error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017875, new AxoMessengerTextItem("F8813:Connection error mains choke","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017877, new AxoMessengerTextItem("F8815:Overvoltage in mains","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017879, new AxoMessengerTextItem("F8817:Overvoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017888, new AxoMessengerTextItem("F8820:Braking resistor overload","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017889, new AxoMessengerTextItem("F8821:Transistor short circuit of braking resistor control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017904, new AxoMessengerTextItem("F8830:Power section error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017907, new AxoMessengerTextItem("F8833:Ground fault current (does not decay)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017909, new AxoMessengerTextItem("F8835:Inconsistency in power section configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017910, new AxoMessengerTextItem("F8836:DC bus balancing monitor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017912, new AxoMessengerTextItem("F8838:Overcurrent external braking resistor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1017952, new AxoMessengerTextItem("F8860:Overcurrent in power section (does not decay)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1018009, new AxoMessengerTextItem("F8899:Fatal error in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1019907, new AxoMessengerTextItem("F9003:Watchdog","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1019909, new AxoMessengerTextItem("F9005:Processor exception","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1020160, new AxoMessengerTextItem("F9100:Hardware watchdog","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1020416, new AxoMessengerTextItem("F9200:Booting error programming module","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1020417, new AxoMessengerTextItem("F9201:Booting error device","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - new KeyValuePair(1020418, new AxoMessengerTextItem("F9202:Processor watchdog","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), - - - }; - - Messenger.DotNetMessengerTextList = messengerTextList; - } - - private void InitializeTaskMessenger() - { - List> messengerTextList = new List> - { - new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(600, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(601, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(602, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(603, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(604, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(605, new AxoMessengerTextItem(" ", " ")), - new KeyValuePair(606, new AxoMessengerTextItem(" ", " ")), - - }; - - TaskMessenger.DotNetMessengerTextList = messengerTextList; - } - } -} diff --git a/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoIndraDrive/AxoIndraDrive.cs b/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoIndraDrive/AxoIndraDrive.cs index 7588e68e3..259c7a6b7 100644 --- a/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoIndraDrive/AxoIndraDrive.cs +++ b/src/components.rexroth.drives/src/AXOpen.Components.Rexroth.Drives/AxoIndraDrive/AxoIndraDrive.cs @@ -4,16 +4,998 @@ using System.Text; using System.Threading.Tasks; +using AXOpen.Components.Abstractions; +using AXOpen.Messaging.Static; +using AXSharp.Connector; + namespace AXOpen.Components.Rexroth.Drives { - public partial class AxoIndraDrive + public partial class AxoIndraDrive : AXOpen.Components.Drives.AxoDrive, AXOpen.Components.Abstractions.Drives.IAxoDrive { - public async Task WriteTaskDurationToConsole() + partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) { - foreach (var task in this.GetChildren().OfType()) + try { - Console.WriteLine($"{task.Symbol} : {await task.Duration.GetAsync()}"); + InitializeMessenger(); + InitializeTaskMessenger(); } + catch (Exception) + { + + throw; + } + } + + private void InitializeMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + + new KeyValuePair(1, new AxoMessengerTextItem("Invalid input", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(2, new AxoMessengerTextItem("Communication error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(3, new AxoMessengerTextItem("Resource error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(4, new AxoMessengerTextItem("Access error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(5, new AxoMessengerTextItem("Error in the state machine", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(6, new AxoMessengerTextItem("Range exceeded by input", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(7, new AxoMessengerTextItem("Calculation error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(8, new AxoMessengerTextItem("Device error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(254, new AxoMessengerTextItem("General error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(255, new AxoMessengerTextItem("System error", "Check the troubleshooting manual `Rexroth PLCopen Function Blocks For Field Bus Drives`, Reference Book R911315058")), + new KeyValuePair(300, new AxoMessengerTextItem("Movement in positive direction is disabled", "Check the safety condition")), + new KeyValuePair(301, new AxoMessengerTextItem("Movement in negative direction is disabled", "Check the safety condition")), + + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), + + new KeyValuePair(703, new AxoMessengerTextItem("Input variable `hwID` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwID` parameter is assigned.")), + new KeyValuePair(704, new AxoMessengerTextItem("Input variable `hwIdParamCh_IDN` invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdParamCh_IDN` parameter is assigned.")), + new KeyValuePair(705, new AxoMessengerTextItem("Input variable `hwIdInput_9_Words` invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdInput_9_Words` parameter is assigned.")), + new KeyValuePair(706, new AxoMessengerTextItem("Input variable `hwIdOutput_13_Words` invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwIdOutput_13_Words` parameter is assigned.")), + new KeyValuePair(707, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateInputs` method!", "Check the call of the `UpdateInputs` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(708, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `UpdateOutputs` method!", "Check the call of the `UpdateOutputs` method, if the `AxisRef` parameter is assigned.")), + + + + + // General alarm + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwIdParamCh_IDN is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'ParamCh_5Words' (GsdId=ID_PaCh_5Words)." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of hwIdF-Modul_not_used is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'F-Modul_not_used' (Gsd = ID_FMod_NotUsed)." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of hwIdInput_9_Words zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'Input_9_Words' (Gsd = ID_InMod_9Words)." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of hwIdOutput_13_Words is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'Output_13_Words' ( GsdId = ID_OutMod_13Words)." ,"Check the hardware configuration.")), + + + new KeyValuePair(1401, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Power` method!", "Check the call of the `MC_Power` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1402, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Home` method!", "Check the call of the `MC_Home` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1403, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Stop` method!", "Check the call of the `MC_Stop` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1404, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Halt` method!", "Check the call of the `MC_Halt` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1405, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveAbsolute` method!", "Check the call of the `MC_MoveAbsolute` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1406, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveRelative` method!", "Check the call of the `MC_MoveRelative` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1407, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveAdditive` method!", "Check the call of the `MC_MoveAdditive` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1408, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_MoveVelocity` method!", "Check the call of the `MC_MoveVelocity` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1409, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_TorqueControl` method!", "Check the call of the `MC_TorqueControl` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1410, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_SetPosition` method!", "Check the call of the `MC_SetPosition` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1411, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_SetOverride` method!", "Check the call of the `MC_SetOverride` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1412, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadParameter` method!", "Check the call of the `MC_ReadParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1413, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadRealParameter` method!", "Check the call of the `MC_ReadRealParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1414, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadBoolParameter` method!", "Check the call of the `MC_ReadBoolParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1415, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteParameter` method!", "Check the call of the `MC_WriteParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1416, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteRealParameter` method!", "Check the call of the `MC_WriteRealParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1417, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteBoolParameter` method!", "Check the call of the `MC_WriteBoolParameter` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1418, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadDigitalInput` method!", "Check the call of the `MC_ReadDigitalInput` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1419, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadDigitalOutput` method!", "Check the call of the `MC_ReadDigitalOutput` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1420, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_WriteDigitalOutput` method!", "Check the call of the `MC_WriteDigitalOutput` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1421, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualPosition` method!", "Check the call of the `MC_ReadActualPosition` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1422, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualVelocity` method!", "Check the call of the `MC_ReadActualVelocity` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1423, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadActualTorque` method!", "Check the call of the `MC_ReadActualTorque` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1424, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadStatus` method!", "Check the call of the `MC_ReadStatus` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1425, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadMotionState` method!", "Check the call of the `MC_ReadMotionState` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1426, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadAxisInfo` method!", "Check the call of the `MC_ReadAxisInfo` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1427, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_ReadAxisError` method!", "Check the call of the `MC_ReadAxisError` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1428, new AxoMessengerTextItem("Input variable `AxisRef` has NULL reference in `MC_Reset` method!", "Check the call of the `MC_Reset` method, if the `AxisRef` parameter is assigned.")), + new KeyValuePair(1429, new AxoMessengerTextItem("Input variable `Direction` has invalid value in `MC_MoveVelocity` method!", "Check the value of the `Direction` at the input of the `MC_MoveVelocity` method.")), + new KeyValuePair(1430, new AxoMessengerTextItem("Input variable `Direction` has invalid value in `MC_TorqueControl` method!", "Check the value of the `Direction` at the input of the `MC_TorqueControl` method.")), + + + + new KeyValuePair(740, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(741, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(742, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(743, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(744, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(745, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(746, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(747, new AxoMessengerTextItem(" ", " ")), + + new KeyValuePair(827, new AxoMessengerTextItem("Error reading the parameter channel data!", "Check the hardware configuration and hardware identifier.")), + new KeyValuePair(828, new AxoMessengerTextItem("Error reading the fieldbus input data!", "Check the hardware configuration and hardware identifier.")), + new KeyValuePair(829, new AxoMessengerTextItem("Error writing the parameter channel data!", "Check the hardware configuration and hardware identifier.")), + new KeyValuePair(830, new AxoMessengerTextItem("Error writing the fieldbus input data!", "Check the hardware configuration and hardware identifier.")), + + + new KeyValuePair(655360, new AxoMessengerTextItem("A0000:Communication phase 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655361, new AxoMessengerTextItem("A0001:Communication phase 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655362, new AxoMessengerTextItem("A0002:Communication phase 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655363, new AxoMessengerTextItem("A0003:Communication phase 3","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655364, new AxoMessengerTextItem("A0004:Initialization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655365, new AxoMessengerTextItem("A0005:Pre-Operational","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655366, new AxoMessengerTextItem("A0006:Safe-Operational","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655367, new AxoMessengerTextItem("A0007:Operational","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655368, new AxoMessengerTextItem("A0008:sercos: NRT-Mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655369, new AxoMessengerTextItem("A0009:Automatic baud rate detection for sercos","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655376, new AxoMessengerTextItem("A0010:Drive HALT","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655377, new AxoMessengerTextItem("A0011:STO/SBC active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655378, new AxoMessengerTextItem("A0012:Control and power sections ready for operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655379, new AxoMessengerTextItem("A0013:Ready for power on","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655394, new AxoMessengerTextItem("A0022:WAIT_PRM","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655395, new AxoMessengerTextItem("A0023:WAIT_CFG","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655396, new AxoMessengerTextItem("A0024:Connection established","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655397, new AxoMessengerTextItem("A0025:Basic ethernet mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655398, new AxoMessengerTextItem("A0026:Ready to operate","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655408, new AxoMessengerTextItem("A0030:Hot-plug phase 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655409, new AxoMessengerTextItem("A0031:Hot-plug phase 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655410, new AxoMessengerTextItem("A0032:Hot-plug phase 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655424, new AxoMessengerTextItem("A0040:Communication phase 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655440, new AxoMessengerTextItem("A0050:Parameterization level 1 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655441, new AxoMessengerTextItem("A0051:Operating mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655442, new AxoMessengerTextItem("A0052:STO / SBC not active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655616, new AxoMessengerTextItem("A0100:Torque control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655617, new AxoMessengerTextItem("A0101:Velocity control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655618, new AxoMessengerTextItem("A0102:Position mode, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655619, new AxoMessengerTextItem("A0103:Position mode, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655620, new AxoMessengerTextItem("A0104:Position mode lagless, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655621, new AxoMessengerTextItem("A0105:Position mode lagless, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655622, new AxoMessengerTextItem("A0106:Drive-internal interpolation, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655623, new AxoMessengerTextItem("A0107:Drive-internal interpolation, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655624, new AxoMessengerTextItem("A0108:Drive controlled interpolation, lagless, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655625, new AxoMessengerTextItem("A0109:Drive controlled interpolation, lagless, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655632, new AxoMessengerTextItem("A0110:Velocity synchronization, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655633, new AxoMessengerTextItem("A0111:Velocity synchronization, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655634, new AxoMessengerTextItem("A0112:Phase synchronization, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655635, new AxoMessengerTextItem("A0113:Phase synchronization, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655636, new AxoMessengerTextItem("A0114:Phase synchronization, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655637, new AxoMessengerTextItem("A0115:Phase synchronization, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655638, new AxoMessengerTextItem("A0116:Phase synchr. lagless, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655639, new AxoMessengerTextItem("A0117:Phase synchr. lagless, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655640, new AxoMessengerTextItem("A0118:Phase synchr. lagless, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655641, new AxoMessengerTextItem("A0119:Phase synchr. lagless, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655656, new AxoMessengerTextItem("A0128:Cam, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655657, new AxoMessengerTextItem("A0129:Cam, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655664, new AxoMessengerTextItem("A0130:Cam, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655665, new AxoMessengerTextItem("A0131:Cam, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655666, new AxoMessengerTextItem("A0132:Cam, lagless, encoder 1, virt. master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655667, new AxoMessengerTextItem("A0133:Cam, lagless, encoder 2, virt. master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655668, new AxoMessengerTextItem("A0134:Cam, lagless, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655669, new AxoMessengerTextItem("A0135:Cam, lagless, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655670, new AxoMessengerTextItem("A0136:MotionProfile, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655671, new AxoMessengerTextItem("A0137:MotionProfile, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655672, new AxoMessengerTextItem("A0138:MotionProfile, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655673, new AxoMessengerTextItem("A0139:MotionProfile, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655680, new AxoMessengerTextItem("A0140:MotionProfile lagless, encoder 1, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655681, new AxoMessengerTextItem("A0141:MotionProfile lagless, encoder 2, virtual master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655682, new AxoMessengerTextItem("A0142:MotionProfile lagless, encoder 1, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655683, new AxoMessengerTextItem("A0143:MotionProfile lagless, encoder 2, real master axis","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655696, new AxoMessengerTextItem("A0150:Drive-controlled positioning, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655697, new AxoMessengerTextItem("A0151:Drive-controlled positioning, encoder 1, lagless","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655698, new AxoMessengerTextItem("A0152:Drive-controlled positioning, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655699, new AxoMessengerTextItem("A0153:Drive-controlled positioning, encoder 2, lagless","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655700, new AxoMessengerTextItem("A0154:Position mode drive controlled, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655701, new AxoMessengerTextItem("A0155:Position mode drive controlled, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655702, new AxoMessengerTextItem("A0156:Position mode lagless, encoder 1 drive controlled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655703, new AxoMessengerTextItem("A0157:Position mode lagless, encoder 2 drive controlled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655712, new AxoMessengerTextItem("A0160:Pos. ctrl drive-controlled with ctrl word of axis controller","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655713, new AxoMessengerTextItem("A0161:Drive-controlled posit. with ctrl word of axis controller","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655714, new AxoMessengerTextItem("A0162:Positioning block mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655715, new AxoMessengerTextItem("A0163:Position synchronization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655716, new AxoMessengerTextItem("A0164:Velocity synchronization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655717, new AxoMessengerTextItem("A0165:Position control with control word of axis controller","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655718, new AxoMessengerTextItem("A0166:Drive-internal interpolat. with ctrl word of axis controller","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655878, new AxoMessengerTextItem("A0206:Positioning block mode, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655879, new AxoMessengerTextItem("A0207:Positioning block mode lagless, encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655888, new AxoMessengerTextItem("A0210:Positioning block mode, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(655889, new AxoMessengerTextItem("A0211:Positioning block mode lagless, encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656128, new AxoMessengerTextItem("A0300:Condition as supplied SMO: Output stage locked","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656129, new AxoMessengerTextItem("A0301:Special mode Safe motion 1 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656130, new AxoMessengerTextItem("A0302:Special mode Safe motion 2 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656131, new AxoMessengerTextItem("A0303:Special mode Safe motion 3 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656132, new AxoMessengerTextItem("A0304:Special mode Safe motion 4 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656133, new AxoMessengerTextItem("A0305:Special mode Safe motion 5 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656134, new AxoMessengerTextItem("A0306:Special mode Safe motion 6 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656135, new AxoMessengerTextItem("A0307:Special mode Safe motion 7 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656136, new AxoMessengerTextItem("A0308:Special mode Safe motion 8 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656137, new AxoMessengerTextItem("A0309:Special mode Safe motion 9 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656144, new AxoMessengerTextItem("A0310:Special mode Safe motion 10 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656145, new AxoMessengerTextItem("A0311:Special mode Safe motion 11 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656146, new AxoMessengerTextItem("A0312:Special mode Safe motion 12 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656147, new AxoMessengerTextItem("A0313:Special mode Safe motion 13 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656148, new AxoMessengerTextItem("A0314:Special mode Safe motion 14 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656149, new AxoMessengerTextItem("A0315:Special mode Safe motion 15 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656150, new AxoMessengerTextItem("A0316:Special mode Safe motion 16 active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656160, new AxoMessengerTextItem("A0320:EMERGENCY STOP active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656161, new AxoMessengerTextItem("A0321:Special mode Safe standstill active with STO","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656162, new AxoMessengerTextItem("A0322:Special mode Safe standstill active with SOS","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656163, new AxoMessengerTextItem("A0323:SMO configuration mode active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656164, new AxoMessengerTextItem("A0324:SMO: Normal operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656165, new AxoMessengerTextItem("A0325:SMO parameter mode active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656166, new AxoMessengerTextItem("A0326:SMO parking axis active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656167, new AxoMessengerTextItem("A0327:SMO not active: Output stage not locked","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656387, new AxoMessengerTextItem("A0403:Quick stop with probe detection is active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656640, new AxoMessengerTextItem("A0500:Supply module in voltage control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656641, new AxoMessengerTextItem("A0501:Supply module in current control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656642, new AxoMessengerTextItem("A0502:Supply module in operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656643, new AxoMessengerTextItem("A0503:DC bus charging active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656644, new AxoMessengerTextItem("A0504:Control section ready for oper., mains voltage not available","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656645, new AxoMessengerTextItem("A0505:Power supply module ready for operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656646, new AxoMessengerTextItem("A0506:Supply module in rectifier mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(656672, new AxoMessengerTextItem("A0520:DC bus quick discharge active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671744, new AxoMessengerTextItem("A4000:Automatic drive check and adjustment","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671745, new AxoMessengerTextItem("A4001:Drive deceleration to standstill","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671746, new AxoMessengerTextItem("A4002:Drive in automatic mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671747, new AxoMessengerTextItem("A4003:Setting-up mode is active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671748, new AxoMessengerTextItem("A4004:Drive without controller enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671749, new AxoMessengerTextItem("A4005:Drive decelerated by motor phase short circuit","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671750, new AxoMessengerTextItem("A4006:Drive decelerated in a controlled way","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671751, new AxoMessengerTextItem("A4007:Drive on delay time","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671752, new AxoMessengerTextItem("A4008:Drive off delay time","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(671753, new AxoMessengerTextItem("A4009:Motor phase short circuit with drive enable switched off","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786688, new AxoMessengerTextItem("C0100:Communication phase 3 transition check","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786689, new AxoMessengerTextItem("C0101:Invalid parameters (-> S-0-0021)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786690, new AxoMessengerTextItem("C0102:Limit error in parameter (-> S-0-0021)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786691, new AxoMessengerTextItem("C0103:Parameter conversion error (->S-0-0021)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786692, new AxoMessengerTextItem("C0104:Config. IDN for MDT not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786693, new AxoMessengerTextItem("C0105:Maximum length for MDT exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786694, new AxoMessengerTextItem("C0106:Config. IDNs for AT not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786695, new AxoMessengerTextItem("C0107:Maximum length for AT exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786696, new AxoMessengerTextItem("C0108:Time slot parameter > sercos cycle time","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786697, new AxoMessengerTextItem("C0109:Telegram offset unsuitable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786704, new AxoMessengerTextItem("C0110:Length of MDT (S-0-0010) odd","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786705, new AxoMessengerTextItem("C0111:ID9 + Record length - 1 > length MDT (S-0-0010)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786706, new AxoMessengerTextItem("C0112:Set timing not permissible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786707, new AxoMessengerTextItem("C0113:Relation TNcyc (S-0-0001) to TScyc (S-0-0002) error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786708, new AxoMessengerTextItem("C0114:T4 > TScyc (S-0-0002) - T4min (S-0-0005)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786709, new AxoMessengerTextItem("C0115:T2 too small","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786710, new AxoMessengerTextItem("C0116:T3 (S-0-0008) within MDT (S-0-0089 + S-0-0010)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786712, new AxoMessengerTextItem("C0118:Order of cyclic command value configuration incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786738, new AxoMessengerTextItem("C0132:Invalid settings for controller cycle times","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786739, new AxoMessengerTextItem("C0133:FKM: Address conflict","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786745, new AxoMessengerTextItem("C0139:T2 (S-0-0089)+length MDT (S-0-0010)>TScyc (S-0-0002)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786769, new AxoMessengerTextItem("C0151:IDN for command value data container not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786770, new AxoMessengerTextItem("C0152:IDN for actual value data container not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786800, new AxoMessengerTextItem("C0170:Config. IDNs for connection not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786801, new AxoMessengerTextItem("C0171:Maximum length for connections exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786802, new AxoMessengerTextItem("C0172:Delay measurement (S-0-1024) not carried out","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786803, new AxoMessengerTextItem("C0173:Connections (number) not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786804, new AxoMessengerTextItem("C0174:Connection configuration not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786805, new AxoMessengerTextItem("C0175:Producer cycle time of a connection not correct","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786944, new AxoMessengerTextItem("C0200:Exit parameterization level procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786945, new AxoMessengerTextItem("C0201:Invalid parameters (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786946, new AxoMessengerTextItem("C0202:Parameter limit error (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786947, new AxoMessengerTextItem("C0203:Parameter conversion error (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786948, new AxoMessengerTextItem("C0204:Inadmissible motor-amplifier combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786949, new AxoMessengerTextItem("C0205:Invalid power parameters (-> logbook)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786953, new AxoMessengerTextItem("C0209:Incorrect encoder configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786960, new AxoMessengerTextItem("C0210:Feedback 2 required (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786961, new AxoMessengerTextItem("C0211:Invalid encoder configuration (3 active encoders)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786962, new AxoMessengerTextItem("C0212:Invalid control section data (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786963, new AxoMessengerTextItem("C0213:SMO: Incorrect parameterization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786964, new AxoMessengerTextItem("C0214:SMO: Incorrect configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786965, new AxoMessengerTextItem("C0215:SMO: Error in encoder initialization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786966, new AxoMessengerTextItem("C0216:SMO: SCM-OM switching not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786969, new AxoMessengerTextItem("C0219:Max. travel range too large","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786976, new AxoMessengerTextItem("C0220:Error when initializing position of encoder 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786977, new AxoMessengerTextItem("C0221:Initialization velocity encoder 1 too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786979, new AxoMessengerTextItem("C0223:Invalid settings for controller cycle times","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786980, new AxoMessengerTextItem("C0224:Error when initializing position of encoder 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786981, new AxoMessengerTextItem("C0225:Initialization velocity encoder 2 too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786983, new AxoMessengerTextItem("C0227:Error when initializing position of measuring encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786984, new AxoMessengerTextItem("C0228:Initialization velocity measuring encoder too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786985, new AxoMessengerTextItem("C0229:Field bus: IDN for cycl. command val. not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786992, new AxoMessengerTextItem("C0230:Field bus: Max. length for cycl. command val. exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786993, new AxoMessengerTextItem("C0231:Field bus: IDN for cycl. actual val. not configurable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786994, new AxoMessengerTextItem("C0232:Field bus: Length for cycl. actual values exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786995, new AxoMessengerTextItem("C0233:Field bus: Tcyc (P-0-4076) incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(786996, new AxoMessengerTextItem("C0234:Field bus: P-0-4077 missing for cycl. command values","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787000, new AxoMessengerTextItem("C0238:Order of cyclic command value configuration incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787001, new AxoMessengerTextItem("C0239:IDN for command value data container not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787008, new AxoMessengerTextItem("C0240:IDN for actual value data container not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787009, new AxoMessengerTextItem("C0241:Incorrect parameterization of motion task","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787010, new AxoMessengerTextItem("C0242:Multiple configuration of a parameter (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787011, new AxoMessengerTextItem("C0243:Brake check function not possible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787012, new AxoMessengerTextItem("C0244:Act. modulo value cycle greater than max. travel range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787013, new AxoMessengerTextItem("C0245:Operation mode configuration (->S-0-0423) not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787024, new AxoMessengerTextItem("C0250:Probe inputs incorrectly configured","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787025, new AxoMessengerTextItem("C0251:Error during synchronization to master communication","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787026, new AxoMessengerTextItem("C0252:Incorrect MLD initialization (write access->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787027, new AxoMessengerTextItem("C0253:Error in combination operation mode - encoder (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787030, new AxoMessengerTextItem("C0256:Safety technology configuration error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787032, new AxoMessengerTextItem("C0258:Error in relation TNcyc (S-0-0001) to fine interpol","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787033, new AxoMessengerTextItem("C0259:MLD configuration error (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787040, new AxoMessengerTextItem("C0260:Incremental enc. emulator resol. cannot be displayed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787045, new AxoMessengerTextItem("C0265:Incorrect CCD address configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787046, new AxoMessengerTextItem("C0266:Incorrect CCD phase switch","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787047, new AxoMessengerTextItem("C0267:CCD timeout phase switch","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787056, new AxoMessengerTextItem("C0270:Error when reading encoder data => motor encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787057, new AxoMessengerTextItem("C0271:Incorrect parameterization of motor encoder (hardware)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787058, new AxoMessengerTextItem("C0272:Incorr. parameteriz. of motor enc. (mechanical system)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787059, new AxoMessengerTextItem("C0273:Modulo value for motor encoder cannot be displayed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787060, new AxoMessengerTextItem("C0274:Motor encoder unknown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787061, new AxoMessengerTextItem("C0275:Error when reading encoder data => optional encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787062, new AxoMessengerTextItem("C0276:Incorrect parameterization of optional enc. (hardware)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787063, new AxoMessengerTextItem("C0277:Incorr. parameteriz. of opt. enc. (mechanical system)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787064, new AxoMessengerTextItem("C0278:Modulo value for optional encoder cannot be displayed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787065, new AxoMessengerTextItem("C0279:Optional encoder unknown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787072, new AxoMessengerTextItem("C0280:Maximum travel range cannot be displayed internally","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787073, new AxoMessengerTextItem("C0281:Commutation via encoder-2 impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787074, new AxoMessengerTextItem("C0282:Sensorless posit. of synchr. motors, invalid ctrl parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787075, new AxoMessengerTextItem("C0283:Error during initialization of motor control (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787076, new AxoMessengerTextItem("C0284:Invalid motor data in encoder memory (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787077, new AxoMessengerTextItem("C0285:Type of construction of motor P-0-4014 incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787078, new AxoMessengerTextItem("C0286:Several motor encoders connected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787079, new AxoMessengerTextItem("C0287:Error during initialization of motor data (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787080, new AxoMessengerTextItem("C0288:Rotary scaling not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787081, new AxoMessengerTextItem("C0289:Error at init. of synchr. motor with reluctance torque","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787088, new AxoMessengerTextItem("C0290:Error when reading encoder data => measuring encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787089, new AxoMessengerTextItem("C0291:Incorr. parameterization of measuring enc. (hardware)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787090, new AxoMessengerTextItem("C0292:Measuring encoder unknown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787091, new AxoMessengerTextItem("C0293:Modulo value for measuring encoder cannot be displayed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787092, new AxoMessengerTextItem("C0294:Incorrect measuring encoder configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787093, new AxoMessengerTextItem("C0295:Internal display error during scaling conversion (NM)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787094, new AxoMessengerTextItem("C0296:Error in initialization of absolute encoder monitoring","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787095, new AxoMessengerTextItem("C0297:Encoder type not possible for selected constr. type of motor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787096, new AxoMessengerTextItem("C0298:Impossible to exit parameterization level","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787097, new AxoMessengerTextItem("C0299:Configuration changed. Restart","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787200, new AxoMessengerTextItem("C0300:Set absolute position procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787201, new AxoMessengerTextItem("C0301:Measuring system unavailable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787202, new AxoMessengerTextItem("C0302:Absolute evaluation of measuring system impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787203, new AxoMessengerTextItem("C0303:Absolute encoder offset cannot be saved","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787204, new AxoMessengerTextItem("C0304:Command cannot be executed under drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787456, new AxoMessengerTextItem("C0400:Activate parameterization level 1 procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787457, new AxoMessengerTextItem("C0401:Switching not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787459, new AxoMessengerTextItem("C0403:Switching to CCD phase 2 impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787460, new AxoMessengerTextItem("C0404:SMO: Incorrect change of system state","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787712, new AxoMessengerTextItem("C0500:Reset class 1 diagnostics, error reset","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787713, new AxoMessengerTextItem("C0501:Error clearing only in parameter mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787968, new AxoMessengerTextItem("C0600:Drive-controlled homing procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787969, new AxoMessengerTextItem("C0601:Homing only possible with drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787970, new AxoMessengerTextItem("C0602:Distance home switch - reference mark erroneous","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787971, new AxoMessengerTextItem("C0603:Homing impossible with optional encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787972, new AxoMessengerTextItem("C0604:Homing impossible with absolute encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787974, new AxoMessengerTextItem("C0606:Reference mark not detected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787975, new AxoMessengerTextItem("C0607:Reference cam input not assigned","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787976, new AxoMessengerTextItem("C0608:Pos. stop a. HW lim. switch not allowed f. modulo axes","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787977, new AxoMessengerTextItem("C0609:Different travel directions parameterized","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(787984, new AxoMessengerTextItem("C0610:Absolute encoder offset could not be saved","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788224, new AxoMessengerTextItem("C0700:Load defaults proced. command (motor-spec. controller val.)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788226, new AxoMessengerTextItem("C0702:Default parameters not available","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788227, new AxoMessengerTextItem("C0703:Default parameters invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788228, new AxoMessengerTextItem("C0704:Parameters not copyable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788230, new AxoMessengerTextItem("C0706:Error when reading the controller parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788240, new AxoMessengerTextItem("C0710:Command Load power-supply specific controller values","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788241, new AxoMessengerTextItem("C0711:Loading requires determination of system parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788256, new AxoMessengerTextItem("C0720:SMO: Load defaults procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788257, new AxoMessengerTextItem("C0721:SMO: Load defaults procedure not possible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788258, new AxoMessengerTextItem("C0722:SMO: Error in load defaults procedure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788259, new AxoMessengerTextItem("C0723:SMO: Error in deactivation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788272, new AxoMessengerTextItem("C0730:Load defaults procedure command (MLD)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788288, new AxoMessengerTextItem("C0740:Command Activate field bus profile settings","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788291, new AxoMessengerTextItem("C0743:Error in activation of field bus profile settings","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788304, new AxoMessengerTextItem("C0750:Load defaults procedure command (factory settings)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788305, new AxoMessengerTextItem("C0751:Parameter default value incorrect (-> S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788306, new AxoMessengerTextItem("C0752:Locked with password","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788321, new AxoMessengerTextItem("C0761:Factory default values incorrect (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788322, new AxoMessengerTextItem("C0762:Locked with password","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788323, new AxoMessengerTextItem("C0763:Load defaults procedure (application data), invalid param","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788377, new AxoMessengerTextItem("C0799:An invalid index was set","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788736, new AxoMessengerTextItem("C0900:Position spindle command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788738, new AxoMessengerTextItem("C0902:Spindle positioning requires drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788739, new AxoMessengerTextItem("C0903:Error during initialization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(788742, new AxoMessengerTextItem("C0906:Error during search for zero pulse","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791040, new AxoMessengerTextItem("C1200:Commutation offset setting command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791044, new AxoMessengerTextItem("C1204:Error in offset calculation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791048, new AxoMessengerTextItem("C1208:No adjustment with asynchronous motor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791049, new AxoMessengerTextItem("C1209:Proceed to phase 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791057, new AxoMessengerTextItem("C1211:Commutation offset could not be determined","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791058, new AxoMessengerTextItem("C1212:Motion range exceeded during commutation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791060, new AxoMessengerTextItem("C1214:Command only possible with linear synchronous motor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791061, new AxoMessengerTextItem("C1215:Command only possible in 'bb'","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791062, new AxoMessengerTextItem("C1216:Commutation determination not selected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791063, new AxoMessengerTextItem("C1217:Setting only possible in 'Ab'","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791064, new AxoMessengerTextItem("C1218:Automatic commutation: Current too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791065, new AxoMessengerTextItem("C1219:Automatic commutation: Overcurrent","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791072, new AxoMessengerTextItem("C1220:Automatic commutation: Timeout","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791073, new AxoMessengerTextItem("C1221:Automatic commutation: Iteration without result","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791074, new AxoMessengerTextItem("C1222:Error when writing offset parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791075, new AxoMessengerTextItem("C1223:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791296, new AxoMessengerTextItem("C1300:Positive stop drive procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791297, new AxoMessengerTextItem("C1301:Class 1 diagnostics error at command start","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791552, new AxoMessengerTextItem("C1400:Command Get marker position","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791554, new AxoMessengerTextItem("C1402:Faulty reference mark signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(791808, new AxoMessengerTextItem("C1500:Cancel reference point procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792064, new AxoMessengerTextItem("C1600:Parking axis command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792576, new AxoMessengerTextItem("C1800:Command Drive optimization / command value box","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792577, new AxoMessengerTextItem("C1801:Start requires drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792578, new AxoMessengerTextItem("C1802:No useful motor data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792579, new AxoMessengerTextItem("C1803:Inertia detection failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792580, new AxoMessengerTextItem("C1804:Automatic controller setting failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792581, new AxoMessengerTextItem("C1805:Travel range invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792582, new AxoMessengerTextItem("C1806:Travel range exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792583, new AxoMessengerTextItem("C1807:Determining travel range only via travel distance","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792584, new AxoMessengerTextItem("C1808:Drive not homed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792585, new AxoMessengerTextItem("C1809:Command start only possible with active position limits","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(792592, new AxoMessengerTextItem("C1810:Drive optimization incorrectly configured","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(794624, new AxoMessengerTextItem("C2000:Command Release motor holding brake","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(794625, new AxoMessengerTextItem("C2001:Command not enabled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(794880, new AxoMessengerTextItem("C2100:Command Holding system check","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(794881, new AxoMessengerTextItem("C2101:Holding system check only possible with drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(794883, new AxoMessengerTextItem("C2103:Holding brake: Torque too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(794884, new AxoMessengerTextItem("C2104:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(794885, new AxoMessengerTextItem("C2105:Load of holding system greater than test torque","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(794886, new AxoMessengerTextItem("C2106:Test torque of holding system not reached","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(794888, new AxoMessengerTextItem("C2108:Error when releasing the holding system","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(795136, new AxoMessengerTextItem("C2200:Backup working memory procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(795138, new AxoMessengerTextItem("C2202:Error when writing data to non-volatile memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(795392, new AxoMessengerTextItem("C2300:Load working memory procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(795393, new AxoMessengerTextItem("C2301:Error when reading non-volatile memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(795394, new AxoMessengerTextItem("C2302:Error when converting parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(795648, new AxoMessengerTextItem("C2400:Selectively backup working memory procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(795650, new AxoMessengerTextItem("C2402:Error when saving parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(796672, new AxoMessengerTextItem("C2800:Analog input adjustment command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(796673, new AxoMessengerTextItem("C2801:Analog input not configured","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(796674, new AxoMessengerTextItem("C2802:Oscillations of input signal outside tolerance range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(796675, new AxoMessengerTextItem("C2803:Measured values at zero point and max. value identical","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(796676, new AxoMessengerTextItem("C2804:Automatic adjustment failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(798976, new AxoMessengerTextItem("C3100:Recalculate actual value cycle","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(798977, new AxoMessengerTextItem("C3101:Act. modulo value cycle greater than max. travel range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(798978, new AxoMessengerTextItem("C3102:Drive is still in drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799232, new AxoMessengerTextItem("C3200:Command Calculate motor data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799233, new AxoMessengerTextItem("C3201:Incorrect input for current","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799234, new AxoMessengerTextItem("C3202:Incorrect input for voltage","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799235, new AxoMessengerTextItem("C3203:Incorrect input for frequency","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799236, new AxoMessengerTextItem("C3204:Incorrect input for speed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799237, new AxoMessengerTextItem("C3205:Incorrect input for power factor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799238, new AxoMessengerTextItem("C3206:Incorrect input for power","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799239, new AxoMessengerTextItem("C3207:Type plate list incomplete","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799240, new AxoMessengerTextItem("C3208:Error when writing parameters (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799241, new AxoMessengerTextItem("C3209:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799488, new AxoMessengerTextItem("C3300:Set coordinate system procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(799744, new AxoMessengerTextItem("C3400:Shift coordinate system procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800256, new AxoMessengerTextItem("C3600:Command Motor data identification","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800257, new AxoMessengerTextItem("C3601:Motor not or not correctly connected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800258, new AxoMessengerTextItem("C3602:Determined values invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800259, new AxoMessengerTextItem("C3603:Device current limit too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800260, new AxoMessengerTextItem("C3604:Error when writing parameters (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800261, new AxoMessengerTextItem("C3605:Motor turning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800262, new AxoMessengerTextItem("C3606:Type of construction of motor not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800263, new AxoMessengerTextItem("C3607:Motor revolution/motion impeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800264, new AxoMessengerTextItem("C3608:Incorrect motor phases or rotational direction of encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800265, new AxoMessengerTextItem("C3609:Incorrect number of pole pairs or number of encoder lines","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800272, new AxoMessengerTextItem("C3610:No encoder: Validation check impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800273, new AxoMessengerTextItem("C3611:Test velocity not reached","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800274, new AxoMessengerTextItem("C3612:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(800768, new AxoMessengerTextItem("C3800:Command Apply motor holding brake","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(801024, new AxoMessengerTextItem("C3900:Command Holding brake resurfacing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(801025, new AxoMessengerTextItem("C3901:Resurfacing of holding brake only possible with drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(801026, new AxoMessengerTextItem("C3902:Error during resurfacing of holding brake","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(801027, new AxoMessengerTextItem("C3903:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(802816, new AxoMessengerTextItem("C4000:SMO: Safe homing procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(802817, new AxoMessengerTextItem("C4001:Encoder evaluation error during Safe homing procedure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(802818, new AxoMessengerTextItem("C4002:Incorrect SMO position feedback value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(802819, new AxoMessengerTextItem("C4003:Home switch distance below minimum value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(802820, new AxoMessengerTextItem("C4004:Faulty SMO reference signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803072, new AxoMessengerTextItem("C4100:Switch parameter set command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803073, new AxoMessengerTextItem("C4101:Switching only possible without AF","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803075, new AxoMessengerTextItem("C4103:Preselect parameter set forbidden value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803076, new AxoMessengerTextItem("C4104:Error during parameter set switching (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803328, new AxoMessengerTextItem("C4200:Drive-controlled oscillation command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803329, new AxoMessengerTextItem("C4201:Oscillation requires drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803330, new AxoMessengerTextItem("C4202:Oscillation command speed cannot be reached","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803584, new AxoMessengerTextItem("C4300:NC-controlled homing procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803586, new AxoMessengerTextItem("C4302:Distance home switch - reference mark erroneous","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803588, new AxoMessengerTextItem("C4304:Homing impossible with absolute encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803590, new AxoMessengerTextItem("C4306:Reference mark not detected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803591, new AxoMessengerTextItem("C4307:Reference cam input not assigned","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803592, new AxoMessengerTextItem("C4308:Pos. stop a. HW lim. switch not allowed f. modulo axes","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(803840, new AxoMessengerTextItem("C4400:Calculate displacement procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804096, new AxoMessengerTextItem("C4500:Displacement to referenced system procedure command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804352, new AxoMessengerTextItem("C4600:Command Calculate motor control parameters","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804353, new AxoMessengerTextItem("C4601:Error when writing parameters (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804864, new AxoMessengerTextItem("C4800:Command Determine cogging torque compensation table","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804865, new AxoMessengerTextItem("C4801:Cogging torque compensation: Measuring vel. too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804866, new AxoMessengerTextItem("C4802:Cogging torque compensation: Measuring vel. too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804867, new AxoMessengerTextItem("C4803:Cogging torque compensation: Inadmissible acceleration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804868, new AxoMessengerTextItem("C4804:Cogging torque comp.: Err. when storing corr. val table","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804869, new AxoMessengerTextItem("C4805:Cogging torque comp.: Motor measuring system not homed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(804870, new AxoMessengerTextItem("C4806:Cogging torque compensation: Measuring range invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(805120, new AxoMessengerTextItem("C4900:PLC command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(805121, new AxoMessengerTextItem("C4901:PLC command error no. 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(805122, new AxoMessengerTextItem("C4902:PLC command error no. 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(805123, new AxoMessengerTextItem("C4903:PLC command error no. 3","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(805124, new AxoMessengerTextItem("C4904:PLC command error no. 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(805136, new AxoMessengerTextItem("C4910:PLC command timeout","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(807424, new AxoMessengerTextItem("C5200:Communication phase 4 transition check","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(807680, new AxoMessengerTextItem("C5300:sercos: Command SYNC delay measurement","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(807681, new AxoMessengerTextItem("C5301:sercos: Delay measurement failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(808448, new AxoMessengerTextItem("C5600:Command Subsequent optimization of commutation offset","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(808449, new AxoMessengerTextItem("C5601:Command requires drive enable","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(808450, new AxoMessengerTextItem("C5602:Axis blocked","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(808451, new AxoMessengerTextItem("C5603:Timeout: Axis in motion","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811264, new AxoMessengerTextItem("C6100:Command Activate IP settings","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811265, new AxoMessengerTextItem("C6101:Incorrect IP settings","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811776, new AxoMessengerTextItem("C6300:Generate type plate command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811777, new AxoMessengerTextItem("C6301:Command is password-protected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811778, new AxoMessengerTextItem("C6302:IDN not permissible (->S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811779, new AxoMessengerTextItem("C6303:Insufficient memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811780, new AxoMessengerTextItem("C6304:Type plate unknown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811781, new AxoMessengerTextItem("C6305:General type plate generation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811792, new AxoMessengerTextItem("C6310:Command not possible with this encoder type","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(811793, new AxoMessengerTextItem("C6311:Error when accessing encoder memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812032, new AxoMessengerTextItem("C6400:Reboot command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812033, new AxoMessengerTextItem("C6401:reboot command impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812288, new AxoMessengerTextItem("C6500:Archive device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812289, new AxoMessengerTextItem("C6501:Error when creating machine archive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812290, new AxoMessengerTextItem("C6502:Error when reading device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812291, new AxoMessengerTextItem("C6503:Inconsistent backup of machine archive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812544, new AxoMessengerTextItem("C6600:Restore device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812545, new AxoMessengerTextItem("C6601:Error when accessing machine archive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812546, new AxoMessengerTextItem("C6602:Error when writing device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812548, new AxoMessengerTextItem("C6604:Error when reading device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812549, new AxoMessengerTextItem("C6605:Device data incompletely restored","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812550, new AxoMessengerTextItem("C6606:PLC user program is active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812800, new AxoMessengerTextItem("C6700:Update of device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812801, new AxoMessengerTextItem("C6701:Error when accessing update archive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812802, new AxoMessengerTextItem("C6702:Error when writing device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812803, new AxoMessengerTextItem("C6703:Warning - Incomplete update of device data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812804, new AxoMessengerTextItem("C6704:Machine archive is not up-to-date","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(812806, new AxoMessengerTextItem("C6706:PLC user program is active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(813056, new AxoMessengerTextItem("C6800:Control command device data archiving","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(815104, new AxoMessengerTextItem("C7000:CCD: Command adjust slave addresses","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(815105, new AxoMessengerTextItem("C7001:CCD: Impossible to adjust slave addresses","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(815360, new AxoMessengerTextItem("C7100:CCD: Command Close ring","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(815361, new AxoMessengerTextItem("C7101:CCD: Impossible to close ring","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(815616, new AxoMessengerTextItem("C7200:CCD: Command Apply I/O configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(815617, new AxoMessengerTextItem("C7201:CCD: Impossible to apply I/O configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(816128, new AxoMessengerTextItem("C7400:CCD: Switching to phase 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(816129, new AxoMessengerTextItem("C7401:CCD: Impossible to switch to phase 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(816384, new AxoMessengerTextItem("C7500:CCD: Switching to phase 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(816385, new AxoMessengerTextItem("C7501:CCD: Impossible to switch to phase 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(816640, new AxoMessengerTextItem("C7600:Command Create parameter image","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(816641, new AxoMessengerTextItem("C7601:Memory access impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(816642, new AxoMessengerTextItem("C7602:Slave access impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819200, new AxoMessengerTextItem("C8000:SMO: Command Apply scaling","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819201, new AxoMessengerTextItem("C8001:SMO: Invalid scaling parameters ->S-0-0423","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819202, new AxoMessengerTextItem("C8002:SMO: Not allowed to apply scaling","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819456, new AxoMessengerTextItem("C8100:SMO: Command Activate configuration mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819457, new AxoMessengerTextItem("C8101:SMO: Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819712, new AxoMessengerTextItem("C8200:SMO: Command Exit configuration mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819731, new AxoMessengerTextItem("C8213:SMO: Incorrect parameterization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819732, new AxoMessengerTextItem("C8214:SMO: Incorrect configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819733, new AxoMessengerTextItem("C8215:SMO: Incorrect encoder/scaling configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819968, new AxoMessengerTextItem("C8300:SMO: Command Activate parameter image","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819969, new AxoMessengerTextItem("C8301:SMO: Incorrect parameter image","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(819970, new AxoMessengerTextItem("C8302:SMO: Parameter image presently cannot be applied","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(820224, new AxoMessengerTextItem("C8400:SMO: Command Apply encoder configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(820225, new AxoMessengerTextItem("C8401:SMO: Impossible to apply encoder type","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(820226, new AxoMessengerTextItem("C8402:SMO: Impossible to apply encoder configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(820227, new AxoMessengerTextItem("C8403:SMO: Parameter for applying encoder configuration invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(820480, new AxoMessengerTextItem("C8500:SMO: Command Apply identification data","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(820481, new AxoMessengerTextItem("C8501:SMO: Impossible to apply axis identification","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(820482, new AxoMessengerTextItem("C8502:SMO: Impossible to apply TUNID","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(820736, new AxoMessengerTextItem("C8600:SMO: Command Measure position difference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(820737, new AxoMessengerTextItem("C8601:SMO: Encoder evaluation is inactive","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(823552, new AxoMessengerTextItem("C9100:Confirm power section configuration command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(823553, new AxoMessengerTextItem("C9101:Confirm power section configuration command error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(825600, new AxoMessengerTextItem("C9900:Service function command","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(825601, new AxoMessengerTextItem("C9901:Command execution impossible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925700, new AxoMessengerTextItem("E2004:Performance load prewarning threshold exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925701, new AxoMessengerTextItem("E2005:One-time telegram failure, power section parallel bus","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925705, new AxoMessengerTextItem("E2009:Synchronous velocity command value > limit value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925712, new AxoMessengerTextItem("E2010:Position control with encoder 2 not possible","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925713, new AxoMessengerTextItem("E2011:PLC - Warning no. 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925714, new AxoMessengerTextItem("E2012:PLC - Warning no. 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925715, new AxoMessengerTextItem("E2013:PLC - Warning no. 3","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925716, new AxoMessengerTextItem("E2014:PLC - Warning no. 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925717, new AxoMessengerTextItem("E2015:PLC - Warning no. 5","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925718, new AxoMessengerTextItem("E2016:PLC - Warning no. 6","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925719, new AxoMessengerTextItem("E2017:PLC - Warning no. 7","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925728, new AxoMessengerTextItem("E2020:Differing DC bus voltages with parallel connection","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925729, new AxoMessengerTextItem("E2021:Motor temperature outside of measuring range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925730, new AxoMessengerTextItem("E2022:Collective warning of power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925731, new AxoMessengerTextItem("E2023:Current unbalance in parallel connection","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925732, new AxoMessengerTextItem("E2024:Device blower defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925734, new AxoMessengerTextItem("E2026:Undervoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925745, new AxoMessengerTextItem("E2031:Encoder 1 warning: Signal amplitude incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925751, new AxoMessengerTextItem("E2037:Excessive position command difference warning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925760, new AxoMessengerTextItem("E2040:Device overtemperature 2 prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925762, new AxoMessengerTextItem("E2042:Encoder 2 warning: Encoder signals incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925763, new AxoMessengerTextItem("E2043:Measuring encoder warning: Encoder signals incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925769, new AxoMessengerTextItem("E2049:Positioning velocity >= limit value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925776, new AxoMessengerTextItem("E2050:Device overtemp. prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925777, new AxoMessengerTextItem("E2051:Motor overtemp. prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925779, new AxoMessengerTextItem("E2053:Target position out of travel range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925780, new AxoMessengerTextItem("E2054:Not homed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925781, new AxoMessengerTextItem("E2055:Feedrate override S-0-0108 = 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925782, new AxoMessengerTextItem("E2056:Torque limit = 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925784, new AxoMessengerTextItem("E2058:Selected positioning block has not been programmed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925785, new AxoMessengerTextItem("E2059:Velocity command value limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925793, new AxoMessengerTextItem("E2061:Device overload prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925795, new AxoMessengerTextItem("E2063:Velocity command value > limit value","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925808, new AxoMessengerTextItem("E2070:Acceleration limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925812, new AxoMessengerTextItem("E2074:Encoder 1: Encoder signals disturbed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925813, new AxoMessengerTextItem("E2075:Encoder 2: Encoder signals disturbed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925814, new AxoMessengerTextItem("E2076:Measuring encoder: Encoder signals disturbed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925815, new AxoMessengerTextItem("E2077:Absolute encoder monitoring, encoder 1 (encoder alarm)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925816, new AxoMessengerTextItem("E2078:Absolute encoder monitoring, opt. encoder (encoder alarm)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925817, new AxoMessengerTextItem("E2079:Absolute enc. monitoring, measuring encoder (encoder alarm)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925830, new AxoMessengerTextItem("E2086:Prewarning supply module overload","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925842, new AxoMessengerTextItem("E2092:Internal synchronization defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925849, new AxoMessengerTextItem("E2099:Power section warning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(925952, new AxoMessengerTextItem("E2100:Positioning velocity of master axis generator too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(926016, new AxoMessengerTextItem("E2140:CCD error at node","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927335, new AxoMessengerTextItem("E2667:Machine archive is not up-to-date","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927760, new AxoMessengerTextItem("E2810:Drive system not ready for operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927761, new AxoMessengerTextItem("E2811:Overtemp. in mains connection module / soft start module","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927764, new AxoMessengerTextItem("E2814:Undervoltage in mains","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927766, new AxoMessengerTextItem("E2816:Undervoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927769, new AxoMessengerTextItem("E2819:Mains failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927776, new AxoMessengerTextItem("E2820:Braking resistor overload prewarning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927778, new AxoMessengerTextItem("E2822:Mains connection temperature monitoring defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927785, new AxoMessengerTextItem("E2829:Not ready for power on","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927796, new AxoMessengerTextItem("E2834:Switching off via OFF input","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(927809, new AxoMessengerTextItem("E2841:Prewarning: Mains connection overtemperature","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(930066, new AxoMessengerTextItem("E3112:Safe reference missing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(930067, new AxoMessengerTextItem("E3113:Prewarning: End of reference position check time interval","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(930069, new AxoMessengerTextItem("E3115:Prewarning, end of brake check time interval","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(930912, new AxoMessengerTextItem("E3460:PROFIsafe: Wrong F-module selected","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933889, new AxoMessengerTextItem("E4001:Sync telegram failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933890, new AxoMessengerTextItem("E4002:RTD telegram failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933893, new AxoMessengerTextItem("E4005:No command value input via master communication","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933894, new AxoMessengerTextItem("E4006:Communication module overload","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933895, new AxoMessengerTextItem("E4007:sercos: Consumer connection failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933896, new AxoMessengerTextItem("E4008:Invalid addressing command value data container A","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933897, new AxoMessengerTextItem("E4009:Invalid addressing actual value data container A","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933904, new AxoMessengerTextItem("E4010:Slave not scanned or address 0","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933905, new AxoMessengerTextItem("E4011:Communication watchdog: Overload of cyclic communication","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933906, new AxoMessengerTextItem("E4012:Maximum number of CCD slaves exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933907, new AxoMessengerTextItem("E4013:Incorrect CCD addressing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933908, new AxoMessengerTextItem("E4014:Incorrect phase switch of CCD slaves","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933910, new AxoMessengerTextItem("E4016:CCD: Topology error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933911, new AxoMessengerTextItem("E4017:CCD: Unknown I/O configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933920, new AxoMessengerTextItem("E4020:sercos: Ring interruption (FF to LF)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933952, new AxoMessengerTextItem("E4040:sercos: Hot-plug error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933953, new AxoMessengerTextItem("E4041:sercos: HP0 Cycle Time invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933954, new AxoMessengerTextItem("E4042:sercos: HP0 MDT length invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933955, new AxoMessengerTextItem("E4043:sercos: HP0 AT length invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933956, new AxoMessengerTextItem("E4044:sercos: HP0 MTU size invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933957, new AxoMessengerTextItem("E4045:sercos: HP0 NRT window invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933958, new AxoMessengerTextItem("E4046:sercos: HP supported removed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(933959, new AxoMessengerTextItem("E4047:sercos: HP enabled removed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950309, new AxoMessengerTextItem("E8025:Overvoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950310, new AxoMessengerTextItem("E8026:Undervoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950311, new AxoMessengerTextItem("E8027:STO/SBC while drive enabled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950312, new AxoMessengerTextItem("E8028:Overcurrent in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950313, new AxoMessengerTextItem("E8029:Positive position limit exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950320, new AxoMessengerTextItem("E8030:Negative position limit exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950324, new AxoMessengerTextItem("E8034:Emergency-Stop activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950336, new AxoMessengerTextItem("E8040:Torque/force actual value limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950337, new AxoMessengerTextItem("E8041:Current limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950338, new AxoMessengerTextItem("E8042:Both travel range limit switches activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950339, new AxoMessengerTextItem("E8043:Positive travel range limit switch activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950340, new AxoMessengerTextItem("E8044:Negative travel range limit switch activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950357, new AxoMessengerTextItem("E8055:Motor overload, current limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950359, new AxoMessengerTextItem("E8057:Device overload, current limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950360, new AxoMessengerTextItem("E8058:Drive system not ready for operation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(950880, new AxoMessengerTextItem("E8260:Torque/force command value limit active","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(951040, new AxoMessengerTextItem("E8300:SMO: Error within the safety zone","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(951193, new AxoMessengerTextItem("E8399:Error in processing of diagnostic message","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(952345, new AxoMessengerTextItem("E8819:Mains failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991233, new AxoMessengerTextItem("F2001:Communication error, power section parallel bus","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991234, new AxoMessengerTextItem("F2002:Assignment of encoder for synchronization is not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991235, new AxoMessengerTextItem("F2003:Motion step skipped","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991236, new AxoMessengerTextItem("F2004:Error in MotionProfile","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991237, new AxoMessengerTextItem("F2005:Cam table invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991239, new AxoMessengerTextItem("F2007:Switching to non-initialized operation mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991240, new AxoMessengerTextItem("F2008:RL The motor type has changed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991241, new AxoMessengerTextItem("F2009:PL Load parameter default values","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991248, new AxoMessengerTextItem("F2010:Error when initializing digital I/O (-> S-0-0423)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991249, new AxoMessengerTextItem("F2011:PLC - Error no. 1","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991250, new AxoMessengerTextItem("F2012:PLC - Error no. 2","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991251, new AxoMessengerTextItem("F2013:PLC - Error no. 3","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991252, new AxoMessengerTextItem("F2014:PLC - Error no. 4","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991253, new AxoMessengerTextItem("F2015:PLC - Error no. 5","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991254, new AxoMessengerTextItem("F2016:PLC - Error no. 6","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991255, new AxoMessengerTextItem("F2017:PLC - Error no. 7","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991256, new AxoMessengerTextItem("F2018:Device overtemperature shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991257, new AxoMessengerTextItem("F2019:Motor overtemperature shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991264, new AxoMessengerTextItem("F2020:Low device temperature error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991265, new AxoMessengerTextItem("F2021:Motor temperature monitor defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991266, new AxoMessengerTextItem("F2022:Device temperature monitor defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991269, new AxoMessengerTextItem("F2025:Drive not ready for control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991270, new AxoMessengerTextItem("F2026:Undervoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991271, new AxoMessengerTextItem("F2027:Excessive oscillation in DC bus","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991272, new AxoMessengerTextItem("F2028:Excessive deviation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991281, new AxoMessengerTextItem("F2031:Encoder 1 error: Signal amplitude incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991282, new AxoMessengerTextItem("F2032:Validation error during commutation fine adjustment","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991286, new AxoMessengerTextItem("F2036:Excessive position feedback difference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991287, new AxoMessengerTextItem("F2037:Excessive position command difference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991296, new AxoMessengerTextItem("F2040:Device overtemperature 2 shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991298, new AxoMessengerTextItem("F2042:Encoder 2: Encoder signals incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991299, new AxoMessengerTextItem("F2043:Measuring encoder: Encoder signals incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991304, new AxoMessengerTextItem("F2048:Low battery voltage","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991312, new AxoMessengerTextItem("F2050:Overflow of target position preset memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991313, new AxoMessengerTextItem("F2051:No sequential block in target position preset memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991315, new AxoMessengerTextItem("F2053:Incr. encoder emulator: Pulse frequency too high","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991316, new AxoMessengerTextItem("F2054:Incr. encoder emulator: Hardware error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991317, new AxoMessengerTextItem("F2055:External power supply dig. I/O error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991318, new AxoMessengerTextItem("F2056:Overload at dig. I/Os","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991319, new AxoMessengerTextItem("F2057:Target position out of travel range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991320, new AxoMessengerTextItem("F2058:Internal overflow by positioning input","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991321, new AxoMessengerTextItem("F2059:Incorrect command value direction when positioning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991331, new AxoMessengerTextItem("F2063:Internal overflow master axis generator","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991332, new AxoMessengerTextItem("F2064:Incorrect cmd value direction master axis generator","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991335, new AxoMessengerTextItem("F2067:Synchronization to master communication incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991336, new AxoMessengerTextItem("F2068:Brake error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991346, new AxoMessengerTextItem("F2072:Error in power supply of brake","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991348, new AxoMessengerTextItem("F2074:Actual pos. value 1 outside absolute encoder window","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991349, new AxoMessengerTextItem("F2075:Actual pos. value 2 outside absolute encoder window","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991350, new AxoMessengerTextItem("F2076:Actual pos. value 3 outside absolute encoder window","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991351, new AxoMessengerTextItem("F2077:Current measurement trim wrong","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991366, new AxoMessengerTextItem("F2086:Error supply module","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991367, new AxoMessengerTextItem("F2087:Module group communication error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991488, new AxoMessengerTextItem("F2100:Incorrect access to command value memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991489, new AxoMessengerTextItem("F2101:File system structure error on the memory card","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991490, new AxoMessengerTextItem("F2102:It was impossible to address I2C memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991491, new AxoMessengerTextItem("F2103:It was impossible to address EnDat memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991492, new AxoMessengerTextItem("F2104:Commutation offset invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991493, new AxoMessengerTextItem("F2105:Cannot address OEM encoder memory","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991494, new AxoMessengerTextItem("F2106:Power section error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991495, new AxoMessengerTextItem("F2107:Incorrect commutation angle","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991504, new AxoMessengerTextItem("F2110:Error in non-cyclical data communic. of power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991520, new AxoMessengerTextItem("F2120:Memory card could not be initialized","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991537, new AxoMessengerTextItem("F2131:Incorrect switching state of probe 1 input signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991552, new AxoMessengerTextItem("F2140:CCD slave error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991568, new AxoMessengerTextItem("F2150:MLD motion function block error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991604, new AxoMessengerTextItem("F2174:Loss of encoder 1 reference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991605, new AxoMessengerTextItem("F2175:Loss of encoder 2 reference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991606, new AxoMessengerTextItem("F2176:Loss of measuring encoder reference","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991607, new AxoMessengerTextItem("F2177:Encoder 1 modulo limitation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991608, new AxoMessengerTextItem("F2178:Encoder 2 modulo limitation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991609, new AxoMessengerTextItem("F2179:Modulo limitation error of measuring encoder","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991632, new AxoMessengerTextItem("F2190:Incorrect Ethernet configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991633, new AxoMessengerTextItem("F2191:No automatic CCD slaves IP configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(991856, new AxoMessengerTextItem("F2270:Analog input, wire break","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993282, new AxoMessengerTextItem("F2802:Error in mains synchronization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993299, new AxoMessengerTextItem("F2813:Mains connection function error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993300, new AxoMessengerTextItem("F2814:Undervoltage in mains","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993301, new AxoMessengerTextItem("F2815:Overvoltage in mains","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993302, new AxoMessengerTextItem("F2816:Softstart fault power supply unit","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993304, new AxoMessengerTextItem("F2818:Phase failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993305, new AxoMessengerTextItem("F2819:Mains failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993312, new AxoMessengerTextItem("F2820:Braking resistor overload","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993313, new AxoMessengerTextItem("F2821:Error in control of braking resistor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993314, new AxoMessengerTextItem("F2822:Mains connection temperature monitoring defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993317, new AxoMessengerTextItem("F2825:Switch-on threshold braking resistor too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993332, new AxoMessengerTextItem("F2834:Contactor control error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993334, new AxoMessengerTextItem("F2836:DC bus balancing monitor error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993345, new AxoMessengerTextItem("F2841:Shutdown: Mains connection overtemperature","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(993376, new AxoMessengerTextItem("F2860:Overcurrent in mains-side power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995344, new AxoMessengerTextItem("F3010:SMO: IO mapper inputs error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995584, new AxoMessengerTextItem("F3100:F3 test error during machine acceptance test","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995585, new AxoMessengerTextItem("F3101:Axis validation missing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995602, new AxoMessengerTextItem("F3112:Safe reference missing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995605, new AxoMessengerTextItem("F3115:Brake check time interval exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995609, new AxoMessengerTextItem("F3119:Error in initialization of P-0-3212","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995633, new AxoMessengerTextItem("F3131:Control error, safe inputs of HSZ","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995634, new AxoMessengerTextItem("F3132:SDL validation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995636, new AxoMessengerTextItem("F3134:Dynamization time interval incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995637, new AxoMessengerTextItem("F3135:Zone bus error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995649, new AxoMessengerTextItem("F3141:Operating status selection validation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995650, new AxoMessengerTextItem("F3142:Activation time of enabling control exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995664, new AxoMessengerTextItem("F3150:Safety zone module: Temperature monitoring error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995665, new AxoMessengerTextItem("F3151:Safety zone module: 24 volt error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995666, new AxoMessengerTextItem("F3152:Safety zone module: DYN error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995667, new AxoMessengerTextItem("F3153:Safety zone module: SZE/SZA error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995685, new AxoMessengerTextItem("F3165:Faulty SMO reference signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995686, new AxoMessengerTextItem("F3166:Reference position check failed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(995687, new AxoMessengerTextItem("F3167:Encoder evaluation warning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(996100, new AxoMessengerTextItem("F3304:SMO: System error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(996192, new AxoMessengerTextItem("F3360:SMO: Local I/O system error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(996432, new AxoMessengerTextItem("F3450:CSS stack error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(996433, new AxoMessengerTextItem("F3451:FSoE stack error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(996434, new AxoMessengerTextItem("F3452:FSoE stack connection error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(996448, new AxoMessengerTextItem("F3460:PROFIsafe error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(996449, new AxoMessengerTextItem("F3461:PROFIsafe connection error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999425, new AxoMessengerTextItem("F4001:Sync telegram failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999426, new AxoMessengerTextItem("F4002:RTD telegram failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999427, new AxoMessengerTextItem("F4003:Invalid communication phase shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999428, new AxoMessengerTextItem("F4004:Error during phase progression","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999429, new AxoMessengerTextItem("F4005:Error during phase regression","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999430, new AxoMessengerTextItem("F4006:Phase switching without ready signal","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999433, new AxoMessengerTextItem("F4009:Bus failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999441, new AxoMessengerTextItem("F4011:Communication watchdog: Overload of cyclic communication","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999442, new AxoMessengerTextItem("F4012:Incorrect I/O length","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999446, new AxoMessengerTextItem("F4016:PLC double real-time channel failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999447, new AxoMessengerTextItem("F4017:sercos: Incorrect sequence during phase switch","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999449, new AxoMessengerTextItem("F4019:sercos: Incorrect sequence upon phase start","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999456, new AxoMessengerTextItem("F4020:sercos: Cable break (L+F to NRT)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999476, new AxoMessengerTextItem("F4034:Emergency-Stop activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999744, new AxoMessengerTextItem("F4140:CCD communication error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999745, new AxoMessengerTextItem("F4141:CCD: IO configuration changed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999746, new AxoMessengerTextItem("F4142:CCD: Ring buffer overflow","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(999760, new AxoMessengerTextItem("F4150:CSAL error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007618, new AxoMessengerTextItem("F6002:Assignment of encoder for synchronization is not allowed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007619, new AxoMessengerTextItem("F6003:Motion step skipped","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007620, new AxoMessengerTextItem("F6004:Error in MotionProfile","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007621, new AxoMessengerTextItem("F6005:Cam table invalid","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007622, new AxoMessengerTextItem("F6006:Incorrect initialization of effective master axis position","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007623, new AxoMessengerTextItem("F6007:Switching to non-initialized operation mode","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007624, new AxoMessengerTextItem("F6008:Internal overflow when calculating positioning profile","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007632, new AxoMessengerTextItem("F6010:PLC runtime error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007652, new AxoMessengerTextItem("F6024:Maximum braking time exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007656, new AxoMessengerTextItem("F6028:Position limit value exceeded (overflow)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007657, new AxoMessengerTextItem("F6029:Positive position limit exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007664, new AxoMessengerTextItem("F6030:Negative position limit exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007668, new AxoMessengerTextItem("F6034:Emergency-Stop activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007682, new AxoMessengerTextItem("F6042:Both travel range limit switches activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007683, new AxoMessengerTextItem("F6043:Positive travel range limit switch activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007684, new AxoMessengerTextItem("F6044:Negative travel range limit switch activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007704, new AxoMessengerTextItem("F6058:Internal overflow by positioning input","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007705, new AxoMessengerTextItem("F6059:Incorrect command value direction when positioning","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1007936, new AxoMessengerTextItem("F6140:CCD slave error (emergency halt)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1008128, new AxoMessengerTextItem("F6200:Velocity command value > standstill window in SOS","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011721, new AxoMessengerTextItem("F7009:Homing velocity exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011728, new AxoMessengerTextItem("F7010:Safely-limited increment exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011729, new AxoMessengerTextItem("F7011:SMP, SLP: Safe position limit value, positive exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011730, new AxoMessengerTextItem("F7012:SMP, SLP: Safe position limit value, negative exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011731, new AxoMessengerTextItem("F7013:Velocity threshold exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011732, new AxoMessengerTextItem("F7014:Timeout in safely-monitored transient oscillation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011733, new AxoMessengerTextItem("F7015:SMO: Cross data comparison error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011744, new AxoMessengerTextItem("F7020:Safe maximum speed exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011747, new AxoMessengerTextItem("F7023:SLE: Safe position limit value, positive exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011748, new AxoMessengerTextItem("F7024:SLE: Safe position limit value, negative exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011760, new AxoMessengerTextItem("F7030:Position window for safe operating stop exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011761, new AxoMessengerTextItem("F7031:Incorrect direction of motion","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011762, new AxoMessengerTextItem("F7032:Forced zone safety","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011763, new AxoMessengerTextItem("F7033:Safety zone module: Hardware error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011764, new AxoMessengerTextItem("F7034:Safety zone module: SDL error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011765, new AxoMessengerTextItem("F7035:Zone bus error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011792, new AxoMessengerTextItem("F7050:Maximum transition time exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011793, new AxoMessengerTextItem("F7051:Safely-monitored deceleration exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011794, new AxoMessengerTextItem("F7052:Selected target velocity exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1011968, new AxoMessengerTextItem("F7100:F7 test error during machine acceptance test","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015808, new AxoMessengerTextItem("F8000:Fatal hardware error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015809, new AxoMessengerTextItem("F8001:Telegram failure, power section parallel bus","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015811, new AxoMessengerTextItem("F8003:Communication error with mains connection module","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015824, new AxoMessengerTextItem("F8010:Autom. commutation: Max. motion range when moving back","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015825, new AxoMessengerTextItem("F8011:Commutation offset could not be determined","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015826, new AxoMessengerTextItem("F8012:Autom. commutation: Max. motion range","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015827, new AxoMessengerTextItem("F8013:Automatic commutation: Current too low","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015828, new AxoMessengerTextItem("F8014:Automatic commutation: Overcurrent","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015829, new AxoMessengerTextItem("F8015:Automatic commutation: Timeout","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015830, new AxoMessengerTextItem("F8016:Automatic commutation: Iteration without result","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015831, new AxoMessengerTextItem("F8017:Automatic commutation: Incorrect commutation adjustment","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015832, new AxoMessengerTextItem("F8018:Device overtemperature shutdown","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015842, new AxoMessengerTextItem("F8022:Enc. 1: Enc. signals incorr. (can be cleared in ph. 2)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015845, new AxoMessengerTextItem("F8025:Overvoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015847, new AxoMessengerTextItem("F8027:STO/SBC while drive enabled","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015848, new AxoMessengerTextItem("F8028:Overcurrent in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015859, new AxoMessengerTextItem("F8033:Ground fault in motor line","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015860, new AxoMessengerTextItem("F8034:Communication error, power section modules","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015874, new AxoMessengerTextItem("F8042:Encoder 2 error: Signal amplitude incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015876, new AxoMessengerTextItem("F8044:Device-internal module communication disturbed","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015893, new AxoMessengerTextItem("F8055:Incorrect processing of diagnostic message","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015904, new AxoMessengerTextItem("F8060:Overcurrent in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015908, new AxoMessengerTextItem("F8064:Interruption of motor phase","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015913, new AxoMessengerTextItem("F8069:Error in device-internal power supply","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015920, new AxoMessengerTextItem("F8070:Control voltage failure","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015921, new AxoMessengerTextItem("F8071:Overvoltage of control voltage","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015926, new AxoMessengerTextItem("F8076:Error in error angle loop","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015928, new AxoMessengerTextItem("F8078:Speed loop error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015929, new AxoMessengerTextItem("F8079:Velocity limit value exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015953, new AxoMessengerTextItem("F8091:Power section defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1015961, new AxoMessengerTextItem("F8099:Fatal error in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016064, new AxoMessengerTextItem("F8100:Error when initializing the parameter handling","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016066, new AxoMessengerTextItem("F8102:Error when initializing power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016088, new AxoMessengerTextItem("F8118:Invalid power section/firmware combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016096, new AxoMessengerTextItem("F8120:Invalid control section/firmware combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016098, new AxoMessengerTextItem("F8122:Control section defective","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016104, new AxoMessengerTextItem("F8128:Error when initializing an optional interface","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016105, new AxoMessengerTextItem("F8129:Incorrect optional module firmware","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016128, new AxoMessengerTextItem("F8140:Fatal CCD error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016576, new AxoMessengerTextItem("F8300:Dynamization pulse width incorrect","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016577, new AxoMessengerTextItem("F8301:Error when checking selection signals","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016578, new AxoMessengerTextItem("F8302:Error when checking switch-off channels STO/SBC","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016579, new AxoMessengerTextItem("F8303:System error STO/SBC","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016580, new AxoMessengerTextItem("F8304:SMO: System error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016595, new AxoMessengerTextItem("F8313:SMO: Incorrect parameterization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016596, new AxoMessengerTextItem("F8314:SMO: Incorrect configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016597, new AxoMessengerTextItem("F8315:SMO: Error in encoder initialization","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016598, new AxoMessengerTextItem("F8316:SMO: Incorrect change of system state","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016601, new AxoMessengerTextItem("F8319:SMO: INIT system error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016608, new AxoMessengerTextItem("F8320:SMO: Invalid module/firmware combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016609, new AxoMessengerTextItem("F8321:SMO: Invalid circuit board/firmware combination","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016611, new AxoMessengerTextItem("F8323:SMO: Error in deactivation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016612, new AxoMessengerTextItem("F8324:SMO: Error in activation","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016624, new AxoMessengerTextItem("F8330:SMO: Configuration data record has not been activated","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016656, new AxoMessengerTextItem("F8350:Maximum transition time exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016657, new AxoMessengerTextItem("F8351:Safely-monitored deceleration exceeded","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016658, new AxoMessengerTextItem("F8352:Drive enable set in STO","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016659, new AxoMessengerTextItem("F8353:SBC system error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016660, new AxoMessengerTextItem("F8354:Error when checking interrupting circuits","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016661, new AxoMessengerTextItem("F8355:Incorrect processing of diagnostic message","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016662, new AxoMessengerTextItem("F8356:SMO: Incorrect parameter processing","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016665, new AxoMessengerTextItem("F8359:SMO: Encoder evaluation error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1016725, new AxoMessengerTextItem("F8395:SMO: Drive system configuration error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017875, new AxoMessengerTextItem("F8813:Connection error mains choke","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017877, new AxoMessengerTextItem("F8815:Overvoltage in mains","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017879, new AxoMessengerTextItem("F8817:Overvoltage in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017888, new AxoMessengerTextItem("F8820:Braking resistor overload","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017889, new AxoMessengerTextItem("F8821:Transistor short circuit of braking resistor control","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017904, new AxoMessengerTextItem("F8830:Power section error","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017907, new AxoMessengerTextItem("F8833:Ground fault current (does not decay)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017909, new AxoMessengerTextItem("F8835:Inconsistency in power section configuration","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017910, new AxoMessengerTextItem("F8836:DC bus balancing monitor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017912, new AxoMessengerTextItem("F8838:Overcurrent external braking resistor","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1017952, new AxoMessengerTextItem("F8860:Overcurrent in power section (does not decay)","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1018009, new AxoMessengerTextItem("F8899:Fatal error in power section","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1019907, new AxoMessengerTextItem("F9003:Watchdog","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1019909, new AxoMessengerTextItem("F9005:Processor exception","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1020160, new AxoMessengerTextItem("F9100:Hardware watchdog","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1020416, new AxoMessengerTextItem("F9200:Booting error programming module","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1020417, new AxoMessengerTextItem("F9201:Booting error device","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + new KeyValuePair(1020418, new AxoMessengerTextItem("F9202:Processor watchdog","Check the troubleshooting manual MPx-16 to MPx-20 and PSB Diagnostic Messages, Reference Book R911326738")), + + + }; + + Messenger.DotNetMessengerTextList = messengerTextList; + } + + private void InitializeTaskMessenger() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(600, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(601, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(602, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(603, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(604, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(605, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(606, new AxoMessengerTextItem(" ", " ")), + + }; + + TaskMessenger.DotNetMessengerTextList = messengerTextList; } } } diff --git a/src/components.rexroth.press/app/apax.yml b/src/components.rexroth.press/app/apax.yml index fbc65384f..d02dad44e 100644 --- a/src/components.rexroth.press/app/apax.yml +++ b/src/components.rexroth.press/app/apax.yml @@ -1,12 +1,12 @@ -name: "app_axopen.components.rexroth.press" +name: "app_axopen.components.rexroth.press" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Rexroth.Press" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,144 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/components.rexroth.press/app/src/Documentation/Component_1.st b/src/components.rexroth.press/app/src/Documentation/Component_1.st index 0a7d9e5a7..b402ee56c 100644 --- a/src/components.rexroth.press/app/src/Documentation/Component_1.st +++ b/src/components.rexroth.press/app/src/Documentation/Component_1.st @@ -30,10 +30,7 @@ NAMESPACE AXOpen.Components.Rexroth.Press // AxoSmartFunctionKit.Run(parent := THIS, - hwID := HwIdentifiers#SFK_HwID, - hwIdParamCh_IDN := HwIdentifiers#SFK_ParamCh_5Words_ID_PaCh_5Words_HwID, - hwIdInput_24_Words := HwIdentifiers#SFK_Input_24_Words_ID_InMod_24Words_HwID, - hwIdOutput_21_Words := HwIdentifiers#SFK_Output_21_Words_ID_OutMod_21Words_HwID); + hwID := HwIdentifiers#SFK_HwID); AxoSmartFunctionKit.Config.InfoTime := T#10s; AxoSmartFunctionKit.Config.ErrorTime := T#30s; diff --git a/src/components.rexroth.press/app/src/Sandbox/SandboxContext.st b/src/components.rexroth.press/app/src/Sandbox/SandboxContext.st index ce4230fc5..337ce36bc 100644 --- a/src/components.rexroth.press/app/src/Sandbox/SandboxContext.st +++ b/src/components.rexroth.press/app/src/Sandbox/SandboxContext.st @@ -11,10 +11,7 @@ NAMESPACE AXOpen.Components.Rexroth.Press METHOD PROTECTED OVERRIDE Main THIS.InitializeRootObject(_rootObject); AxoSmartFunctionKit.Run(parent := _rootObject, - hwID := HwIdentifiers#SFK_HwID, - hwIdParamCh_IDN := HwIdentifiers#SFK_ParamCh_5Words_ID_PaCh_5Words_HwID, - hwIdInput_24_Words := HwIdentifiers#SFK_Input_24_Words_ID_InMod_24Words_HwID, - hwIdOutput_21_Words := HwIdentifiers#SFK_Output_21_Words_ID_OutMod_21Words_HwID); + hwID := HwIdentifiers#SFK_HwID); IF(ActivateManualControl) THEN AxoSmartFunctionKit.ActivateManualControl(); diff --git a/src/components.rexroth.press/ctrl/apax.yml b/src/components.rexroth.press/ctrl/apax.yml index 1e2eb50ad..68dba40d7 100644 --- a/src/components.rexroth.press/ctrl/apax.yml +++ b/src/components.rexroth.press/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.io": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/components.rexroth.press/ctrl/src/AxoSmartFunctionKit_v_4_x_x.st b/src/components.rexroth.press/ctrl/src/AxoSmartFunctionKit_v_4_x_x.st index 5b1b3f4da..73f30947a 100644 --- a/src/components.rexroth.press/ctrl/src/AxoSmartFunctionKit_v_4_x_x.st +++ b/src/components.rexroth.press/ctrl/src/AxoSmartFunctionKit_v_4_x_x.st @@ -5,6 +5,7 @@ USING AXOpen.Messaging; USING AXOpen.Core; USING AXOpen.Components.Abstractions; USING System.Serialization; +USING Siemens.Simatic.S71500.Hardware.Utilities; NAMESPACE AXOpen.Components.Rexroth.Press @@ -16,17 +17,26 @@ NAMESPACE AXOpen.Components.Rexroth.Press _infoTime : LTIME := LT#2S; _errorTimer : AXOpen.Timers.OnDelayTimer; _errorTime : LTIME := LT#5S; - _blink : AXOpen.Timers.AxoBlinker; _context : IAxoContext; _hwID : WORD; _hwIdParamCh_IDN : WORD; + _hwID_F_ModulNotUsed : WORD; _hwIdInput_24_Words : WORD; _hwIdOutput_21_Words : WORD; _dword : DWORD; _data10 : ARRAY[0..9] OF BYTE; _data42 : ARRAY[0..41] OF BYTE; _data48 : ARRAY[0..47] OF BYTE; - _returnValue : WORD; + + _initHwCheckDone : BOOL; + _retval : WORD; + _geoAddr : GeoAddr; + _outHwid : UINT; + _blink : AXOpen.Timers.AxoBlinker; + _inputsAddress : UDINT; + _inputsCount : UINT; + _outputsAddress : UDINT; + _outputsCount : UINT; END_VAR VAR PUBLIC //HEADER @@ -70,7 +80,7 @@ NAMESPACE AXOpen.Components.Rexroth.Press {#ix-attr:[Container(Layout.Stack)]} {#ix-attr:[ComponentDetails("Status")]} {#ix-attr:[ReadOnly()]} - ComponentStatus : AxoSmartFunctionKit_ComponentStatus_v_4_x_x; + Status : AxoSmartFunctionKit_ComponentStatus_v_4_x_x; Messenger : AXOpen.Messaging.Static.AxoMessenger; TaskMessenger : AXOpen.Messaging.Static.AxoMessenger; _progress : INT := 0; @@ -98,7 +108,6 @@ NAMESPACE AXOpen.Components.Rexroth.Press HardwareDiagnosticsTask : AXOpen.Io.AxoHardwareDiagnostics; END_VAR - /// /// Runs tasks and logic of this component. /// >[!IMPORTANT] This method or one of its overloads must be called cyclically. @@ -107,42 +116,232 @@ NAMESPACE AXOpen.Components.Rexroth.Press VAR_INPUT parent : IAxoObject; hwID : WORD; - hwIdParamCh_IDN : WORD; - hwIdInput_24_Words : WORD; - hwIdOutput_21_Words : WORD; END_VAR SUPER.Run(parent); Messenger.Serve(THIS); - Messenger.ActivateOnCondition(ULINT#700,parent = NULL, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#701,hwID = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#702,hwIdParamCh_IDN = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#703,hwIdInput_24_Words = WORD#0, eAxoMessageCategory#ProgrammingError); - Messenger.ActivateOnCondition(ULINT#704,hwIdOutput_21_Words = WORD#0, eAxoMessageCategory#ProgrammingError); - IF parent = NULL THEN - ComponentStatus.Error.Id := UINT#700; - RETURN; - ELSIF hwID = WORD#0 THEN - ComponentStatus.Error.Id := UINT#701; - RETURN; - ELSIF hwIdParamCh_IDN = WORD#0 THEN - ComponentStatus.Error.Id := UINT#702; - RETURN; - ELSIF hwIdInput_24_Words = WORD#0 THEN - ComponentStatus.Error.Id := UINT#703; - RETURN; - ELSIF hwIdInput_24_Words = WORD#0 THEN - ComponentStatus.Error.Id := UINT#704; - RETURN; - END_IF; + IF NOT _initHwCheckDone THEN + IF parent = NULL THEN + Messenger.Activate(UINT#700, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#700; + RETURN; + END_IF; + IF hwID = WORD#0 THEN + Messenger.Activate(UINT#701, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#701; + RETURN; + END_IF; + + _hwID := hwID; + _retval := ReadSlotFromHardwareID(hardwareID := TO_UINT(_hwID), geoAddr :=_geoAddr); + IF _retval = WORD#8090 THEN + Messenger.Activate(UINT#702,eAxoMessageCategory#Error); + Status.Error.Id := UINT#702; + RETURN; + END_IF; + + //******************Slot 1*****************// + _geoAddr.Slot := UINT#1; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdParamCh_IDN := TO_WORD(_outHwid); + IF _hwIdParamCh_IDN = WORD#0 THEN + Messenger.Activate(UINT#710,eAxoMessageCategory#Error); + Status.Error.Id := UINT#710; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#711,eAxoMessageCategory#Error); + Status.Error.Id := UINT#711; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#712,eAxoMessageCategory#Error); + Status.Error.Id := UINT#712; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#713,eAxoMessageCategory#Error); + Status.Error.Id := UINT#713; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#714,eAxoMessageCategory#Error); + Status.Error.Id := UINT#714; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#715,eAxoMessageCategory#Error); + Status.Error.Id := UINT#715; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdParamCh_IDN , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#10 OR _outputsCount <> UINT#10 THEN + Messenger.Activate(UINT#716,eAxoMessageCategory#Error); + Status.Error.Id := UINT#716; + RETURN; + END_IF; + //******************Slot 2*****************// + _geoAddr.Slot := UINT#2; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwID_F_ModulNotUsed := TO_WORD(_outHwid); + IF _hwID_F_ModulNotUsed = WORD#0 THEN + Messenger.Activate(UINT#720,eAxoMessageCategory#Error); + Status.Error.Id := UINT#720; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#721,eAxoMessageCategory#Error); + Status.Error.Id := UINT#721; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#722,eAxoMessageCategory#Error); + Status.Error.Id := UINT#722; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#723,eAxoMessageCategory#Error); + Status.Error.Id := UINT#723; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#724,eAxoMessageCategory#Error); + Status.Error.Id := UINT#724; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#725,eAxoMessageCategory#Error); + Status.Error.Id := UINT#725; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwID_F_ModulNotUsed , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#726,eAxoMessageCategory#Error); + Status.Error.Id := UINT#726; + RETURN; + END_IF; + //******************Slot 3*****************// + _geoAddr.Slot := UINT#3; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdInput_24_Words := TO_WORD(_outHwid); + IF _hwIdInput_24_Words = WORD#0 THEN + Messenger.Activate(UINT#730,eAxoMessageCategory#Error); + Status.Error.Id := UINT#730; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#731,eAxoMessageCategory#Error); + Status.Error.Id := UINT#731; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#732,eAxoMessageCategory#Error); + Status.Error.Id := UINT#732; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#733,eAxoMessageCategory#Error); + Status.Error.Id := UINT#733; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#734,eAxoMessageCategory#Error); + Status.Error.Id := UINT#734; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#735,eAxoMessageCategory#Error); + Status.Error.Id := UINT#735; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdInput_24_Words , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#48 OR _outputsCount <> UINT#0 THEN + Messenger.Activate(UINT#736,eAxoMessageCategory#Error); + Status.Error.Id := UINT#736; + RETURN; + END_IF; + //******************Slot 4*****************// + _geoAddr.Slot := UINT#4; + _geoAddr.HardwareType := UINT#4; // (4-Module) + _retval := ReadHardwareIDFromSlot(geoAddr := _geoAddr, hardwareID => _outHwid); + _hwIdOutput_21_Words := TO_WORD(_outHwid); + IF _hwIdOutput_21_Words = WORD#0 THEN + Messenger.Activate(UINT#740,eAxoMessageCategory#Error); + Status.Error.Id := UINT#740; + RETURN; + END_IF; + IF _retval = WORD#8091 THEN + Messenger.Activate(UINT#741,eAxoMessageCategory#Error); + Status.Error.Id := UINT#741; + RETURN; + END_IF; + IF _retval = WORD#8094 THEN + Messenger.Activate(UINT#742,eAxoMessageCategory#Error); + Status.Error.Id := UINT#742; + RETURN; + END_IF; + IF _retval = WORD#8095 THEN + Messenger.Activate(UINT#743,eAxoMessageCategory#Error); + Status.Error.Id := UINT#743; + RETURN; + END_IF; + IF _retval = WORD#8096 THEN + Messenger.Activate(UINT#744,eAxoMessageCategory#Error); + Status.Error.Id := UINT#744; + RETURN; + END_IF; + IF _retval = WORD#8097 THEN + Messenger.Activate(UINT#745,eAxoMessageCategory#Error); + Status.Error.Id := UINT#745; + RETURN; + END_IF; + ReadHardwareIOAddress(hardwareIdentifier := _hwIdOutput_21_Words , inputStartAddress => _inputsAddress , inputCount => _inputsCount , outputStartAddress => _outputsAddress , outputCount => _outputsCount); + IF _inputsCount <> UINT#0 OR _outputsCount <> UINT#42 THEN + Messenger.Activate(UINT#746,eAxoMessageCategory#Error); + Status.Error.Id := UINT#746; + RETURN; + END_IF; + //*****************************************// + IF parent = NULL THEN + Messenger.Activate(UINT#1130,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1130; + RETURN; + END_IF; + IF _hwID = WORD#0 THEN + Messenger.Activate(UINT#1131,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1131; + RETURN; + END_IF; + IF _hwIdParamCh_IDN = WORD#0 THEN + Messenger.Activate(UINT#1132,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1132; + RETURN; + END_IF; + IF _hwID_F_ModulNotUsed = WORD#0 THEN + Messenger.Activate(UINT#1133,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1133; + RETURN; + END_IF; + IF _hwIdInput_24_Words = WORD#0 THEN + Messenger.Activate(UINT#1134,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1134; + RETURN; + END_IF; + IF _hwIdOutput_21_Words = WORD#0 THEN + Messenger.Activate(UINT#1135,eAxoMessageCategory#Error); + Status.Error.Id := UINT#1135; + RETURN; + END_IF; - _hwID := hwID; - _hwIdParamCh_IDN := hwIdParamCh_IDN; - _hwIdInput_24_Words := hwIdInput_24_Words; - _hwIdOutput_21_Words := hwIdOutput_21_Words; + _initHwCheckDone := TRUE; + END_IF; + //*********************************************** @@ -159,18 +358,18 @@ NAMESPACE AXOpen.Components.Rexroth.Press //***********UPDATE**INPUTS****************** //Parameter Channel - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdParamCh_IDN ,_data10); - Messenger.ActivateOnCondition(ULINT#705,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - ComponentStatus.Error.Id := UINT#705; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdParamCh_IDN ,_data10); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1201, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1201; RETURN; END_IF; //Input 24W - _returnValue := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdInput_24_Words ,_data48); - Messenger.ActivateOnCondition(ULINT#706,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - ComponentStatus.Error.Id := UINT#706; + _retVal := Siemens.Simatic.S71500.DistributedIO.ReadData(_hwIdInput_24_Words ,_data48); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1202, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1202; RETURN; END_IF; @@ -225,39 +424,39 @@ NAMESPACE AXOpen.Components.Rexroth.Press //******************************************* //***********UPDATE**STATUS****************** - ComponentStatus.Status.ResponseStatus.AxisInReference := Inputs.NotificationStatus.%X2; - ComponentStatus.Status.ResponseStatus.ProgramActive := Inputs.NotificationStatus.%X3; - ComponentStatus.Status.ResponseStatus.LastPressingOk := Inputs.NotificationStatus.%X4; - ComponentStatus.Status.ResponseStatus.LastPressingNok := Inputs.NotificationStatus.%X5; - ComponentStatus.Status.ResponseStatus.SensorTared := Inputs.NotificationStatus.%X6; - ComponentStatus.Status.ResponseStatus.PressReady := Inputs.NotificationStatus.%X7; - ComponentStatus.Status.ResponseStatus.Error := Inputs.NotificationStatus.%X8; - ComponentStatus.Status.ResponseStatus.Warning := Inputs.NotificationStatus.%X9; - ComponentStatus.Status.ResponseStatus.RequestPossible := Inputs.NotificationStatus.%X11; - ComponentStatus.Status.ResponseStatus.ResponsAvialable := Inputs.NotificationStatus.%X12; - ComponentStatus.Status.ResponseStatus.NotificationAvailable := Inputs.NotificationStatus.%X13; - ComponentStatus.Status.ResponseStatus.EmergencyOffActive := Inputs.NotificationStatus.%X14; - ComponentStatus.Status.ResponseStatus.SafeStandstillActive := Inputs.NotificationStatus.%X15; + Status.Status.ResponseStatus.AxisInReference := Inputs.NotificationStatus.%X2; + Status.Status.ResponseStatus.ProgramActive := Inputs.NotificationStatus.%X3; + Status.Status.ResponseStatus.LastPressingOk := Inputs.NotificationStatus.%X4; + Status.Status.ResponseStatus.LastPressingNok := Inputs.NotificationStatus.%X5; + Status.Status.ResponseStatus.SensorTared := Inputs.NotificationStatus.%X6; + Status.Status.ResponseStatus.PressReady := Inputs.NotificationStatus.%X7; + Status.Status.ResponseStatus.Error := Inputs.NotificationStatus.%X8; + Status.Status.ResponseStatus.Warning := Inputs.NotificationStatus.%X9; + Status.Status.ResponseStatus.RequestPossible := Inputs.NotificationStatus.%X11; + Status.Status.ResponseStatus.ResponsAvialable := Inputs.NotificationStatus.%X12; + Status.Status.ResponseStatus.NotificationAvailable := Inputs.NotificationStatus.%X13; + Status.Status.ResponseStatus.EmergencyOffActive := Inputs.NotificationStatus.%X14; + Status.Status.ResponseStatus.SafeStandstillActive := Inputs.NotificationStatus.%X15; - ComponentStatus.Status.NotificationPosition := TO_REAL(Inputs.NotificationPosition)/REAL#10000.0; - ComponentStatus.Status.NotificationVelocity := TO_REAL(Inputs.NotificationVelocity)/REAL#10000.0; - ComponentStatus.Status.NotificationForce := TO_REAL(Inputs.NotificationForce)/REAL#1000.0; - ComponentStatus.Status.NotificationId := TO_UINT(Inputs.NotificationId); + Status.Status.NotificationPosition := TO_REAL(Inputs.NotificationPosition)/REAL#10000.0; + Status.Status.NotificationVelocity := TO_REAL(Inputs.NotificationVelocity)/REAL#10000.0; + Status.Status.NotificationForce := TO_REAL(Inputs.NotificationForce)/REAL#1000.0; + Status.Status.NotificationId := TO_UINT(Inputs.NotificationId); - CASE ComponentStatus.Status.NotificationId of + CASE Status.Status.NotificationId of eAxoSmartFunctionKitStatusInformation_v_4_x_x#ActiveProgramNumber: - ComponentStatus.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#ActiveProgramNumber; + Status.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#ActiveProgramNumber; eAxoSmartFunctionKitStatusInformation_v_4_x_x#CurrentForce: - ComponentStatus.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#CurrentForce; + Status.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#CurrentForce; eAxoSmartFunctionKitStatusInformation_v_4_x_x#CurrentPosition: - ComponentStatus.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#CurrentPosition; + Status.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#CurrentPosition; eAxoSmartFunctionKitStatusInformation_v_4_x_x#CurrentTravelSpeed: - ComponentStatus.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#CurrentTravelSpeed; + Status.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#CurrentTravelSpeed; eAxoSmartFunctionKitStatusInformation_v_4_x_x#RemainingStorageSpaceOnIPC: - ComponentStatus.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#RemainingStorageSpaceOnIPC; + Status.Status.NotificationToDisplay:=eAxoSmartFunctionKitStatusInformation_v_4_x_x#RemainingStorageSpaceOnIPC; END_CASE; - ComponentStatus.Status.DigitalIoMapping:=Inputs.DigitalIoMapping; + Status.Status.DigitalIoMapping:=Inputs.DigitalIoMapping; //******************************************* @@ -270,23 +469,23 @@ NAMESPACE AXOpen.Components.Rexroth.Press //*************RunCommandTask*************** RunCommandTask.IsDisabled := FALSE; IF RunCommandTask.StartTriggered() THEN - ComponentStatus.Action.Id := UINT#100; + Status.Action.Id := UINT#100; END_IF; Messenger.ActivateOnCondition(ULINT#100,RunCommandTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#101,RunCommandTask.IsDone(), eAxoMessageCategory#Info); IF RunCommandTask.Execute(THIS) THEN _blink.Blink(Context := _context, inOnTime:=T#500MS,inOffTime:=T#500MS); IF _progress = 0 THEN - ComponentStatus.Error.Id := UINT#0; + Status.Error.Id := UINT#0; TaskMessenger.Restore(); THIS.CallTimers(FALSE); _progress := 300; END_IF; IF _progress = 300 THEN - TaskMessenger.ActivateOnCondition(ULINT#500, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ComponentStatus.Error.Id := UINT#500; + TaskMessenger.Activate( UINT#500, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#500; END_IF; Outputs.Value1 := DWORD#0; Outputs.Value2 := DWORD#0; @@ -295,9 +494,9 @@ NAMESPACE AXOpen.Components.Rexroth.Press Outputs.Value5 := DWORD#0; Outputs.Value6 := DWORD#0; Outputs.Value7 := DWORD#0; - CASE ComponentStatus.CurrentCommandParameters.Command OF + CASE Status.CurrentCommandParameters.Command OF eAxoSmartFunctionKitCommand_v_4_x_x#StartProgram: - Serialize(UINT#0, ComponentStatus.CurrentCommandParameters.SerialNumber, _data42); + Serialize(UINT#0, Status.CurrentCommandParameters.SerialNumber, _data42); //todo check if the rest of the array needs to be cleaned Outputs.Value1.%B0 := _data42[4]; @@ -336,28 +535,28 @@ NAMESPACE AXOpen.Components.Rexroth.Press Outputs.Value7.%B3 := _data42[25]; eAxoSmartFunctionKitCommand_v_4_x_x#SetProgramActive: - Outputs.Value1:= TO_DWORD(ComponentStatus.CurrentCommandParameters.ProgramId*1000); + Outputs.Value1:= TO_DWORD(Status.CurrentCommandParameters.ProgramId*1000); eAxoSmartFunctionKitCommand_v_4_x_x#Positioning: - Outputs.Value1:= TO_DWORD(ComponentStatus.CurrentCommandParameters.PositionDistanceTara*1000); - Outputs.Value2:= TO_DWORD(ComponentStatus.CurrentCommandParameters.TravelSpeed*1000); - Outputs.Value3:= TO_DWORD(ComponentStatus.CurrentCommandParameters.Acceleration*1000); + Outputs.Value1:= TO_DWORD(Status.CurrentCommandParameters.PositionDistanceTara*1000); + Outputs.Value2:= TO_DWORD(Status.CurrentCommandParameters.TravelSpeed*1000); + Outputs.Value3:= TO_DWORD(Status.CurrentCommandParameters.Acceleration*1000); eAxoSmartFunctionKitCommand_v_4_x_x#Jog: - Outputs.Value1:= TO_DWORD(ComponentStatus.CurrentCommandParameters.PositionDistanceTara*1000); - Outputs.Value2:= TO_DWORD(ComponentStatus.CurrentCommandParameters.TravelSpeed*1000); - Outputs.Value3:= TO_DWORD(ComponentStatus.CurrentCommandParameters.Acceleration*1000); + Outputs.Value1:= TO_DWORD(Status.CurrentCommandParameters.PositionDistanceTara*1000); + Outputs.Value2:= TO_DWORD(Status.CurrentCommandParameters.TravelSpeed*1000); + Outputs.Value3:= TO_DWORD(Status.CurrentCommandParameters.Acceleration*1000); eAxoSmartFunctionKitCommand_v_4_x_x#Tare: - Outputs.Value1:= TO_DWORD(ComponentStatus.CurrentCommandParameters.Offset*1000); + Outputs.Value1:= TO_DWORD(Status.CurrentCommandParameters.Offset*1000); END_CASE; - Outputs.Command := TO_WORD(ComponentStatus.CurrentCommandParameters.Command); - IF ComponentStatus.Status.ResponseStatus.RequestPossible THEN + Outputs.Command := TO_WORD(Status.CurrentCommandParameters.Command); + IF Status.Status.ResponseStatus.RequestPossible THEN _progress:=301; END_IF; END_IF; IF _progress = 301 THEN - TaskMessenger.ActivateOnCondition(ULINT#501, _infoTimer.output, eAxoMessageCategory#Warning); IF _infoTimer.output THEN - ComponentStatus.Error.Id := UINT#501; + TaskMessenger.Activate( UINT#501, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#501; END_IF; Outputs.Handle:=TO_WORD(TO_INT(Inputs.Handle)+INT#1); @@ -369,10 +568,9 @@ NAMESPACE AXOpen.Components.Rexroth.Press END_IF; IF _progress = 302 THEN - TaskMessenger.ActivateOnCondition(ULINT#502, _infoTimer.output, eAxoMessageCategory#Warning); - IF _infoTimer.output THEN - ComponentStatus.Error.Id := UINT#502; + TaskMessenger.Activate( UINT#502, eAxoMessageCategory#Warning); + Status.Error.Id := UINT#502; END_IF; IF Outputs.Handle=Inputs.Handle THEN @@ -380,7 +578,7 @@ NAMESPACE AXOpen.Components.Rexroth.Press THIS.CallTimers(FALSE); _progress := 303; ELSE - ComponentStatus.Error.Id := TO_UINT(Inputs.Status); + Status.Error.Id := TO_UINT(Inputs.Status); RunCommandTask.ThrowWhen(TRUE); END_IF; END_IF; @@ -392,23 +590,23 @@ NAMESPACE AXOpen.Components.Rexroth.Press END_IF; THIS.CallTimers(TRUE); RunCommandTask.ThrowWhen(_errorTimer.output ); - ComponentStatus.Action.Id := TO_UINT(_progress); + Status.Action.Id := TO_UINT(_progress); END_IF; IF RunCommandTask.DoneReached() THEN - ComponentStatus.Action.Id := UINT#101; - ComponentStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#101; + Status.Error.Id := UINT#0; ELSIF RunCommandTask.ErrorOccured() THEN - ComponentStatus.Action.Id := UINT#800; - ComponentStatus.Error.Id := UINT#800; + Status.Action.Id := UINT#2000; + Status.Error.Id := UINT#2000; ELSIF RunCommandTask.AbortTriggered()THEN - ComponentStatus.Action.Id := UINT#801; - ComponentStatus.Error.Id := UINT#801; + Status.Action.Id := UINT#2001; + Status.Error.Id := UINT#2001; END_IF; - Messenger.ActivateOnCondition(ULINT#800,RunCommandTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#801,RunCommandTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#2000,RunCommandTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#2001,RunCommandTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#102,RunCommandTask.RestoreTriggered() , eAxoMessageCategory#Error); IF RunCommandTask.RestoreTriggered() AND _progress >= 300 AND _progress <= 309 THEN - ComponentStatus.Action.Id := UINT#102; + Status.Action.Id := UINT#102; _progress := 0; END_IF; TaskMessenger.ActivateOnCondition(TO_ULINT(Inputs.Status), Inputs.Status>WORD#0, eAxoMessageCategory#Error); @@ -416,62 +614,62 @@ NAMESPACE AXOpen.Components.Rexroth.Press //*************GetResultsTask*************** GetResultsTask.IsDisabled := Config.IpAddress = ''; IF GetResultsTask.StartTriggered() THEN - ComponentStatus.Action.Id := UINT#110; + Status.Action.Id := UINT#110; END_IF; Messenger.ActivateOnCondition(ULINT#110,GetResultsTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#111,GetResultsTask.IsDone(), eAxoMessageCategory#Info); GetResultsTask.Execute(THIS); IF GetResultsTask.DoneReached() THEN - ComponentStatus.Action.Id := UINT#111; - ComponentStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#111; + Status.Error.Id := UINT#0; ELSIF GetResultsTask.ErrorOccured() THEN - ComponentStatus.Action.Id := UINT#810; - ComponentStatus.Error.Id := UINT#810; + Status.Action.Id := UINT#2010; + Status.Error.Id := UINT#2010; ELSIF GetResultsTask.AbortTriggered()THEN - ComponentStatus.Action.Id := UINT#811; - ComponentStatus.Error.Id := UINT#811; + Status.Action.Id := UINT#2011; + Status.Error.Id := UINT#2011; END_IF; - Messenger.ActivateOnCondition(ULINT#810,GetResultsTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#811,GetResultsTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#2010,GetResultsTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#2011,GetResultsTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#112,GetResultsTask.RestoreTriggered() , eAxoMessageCategory#Error); IF GetResultsTask.RestoreTriggered()THEN - ComponentStatus.Action.Id := UINT#112; + Status.Action.Id := UINT#112; END_IF; //******************************************* //*************ExportCurveTask*************** ExportCurveTask.IsDisabled := Config.IpAddress = '' OR Config.CurveExportLocation = ''; IF ExportCurveTask.StartTriggered() THEN - ComponentStatus.Action.Id := UINT#120; + Status.Action.Id := UINT#120; END_IF; Messenger.ActivateOnCondition(ULINT#120,ExportCurveTask.IsBusy(), eAxoMessageCategory#Info); Messenger.ActivateOnCondition(ULINT#121,ExportCurveTask.IsDone(), eAxoMessageCategory#Info); ExportCurveTask.Execute(THIS); IF ExportCurveTask.DoneReached() THEN - ComponentStatus.Action.Id := UINT#121; - ComponentStatus.Error.Id := UINT#0; + Status.Action.Id := UINT#121; + Status.Error.Id := UINT#0; ELSIF ExportCurveTask.ErrorOccured() THEN - ComponentStatus.Action.Id := UINT#820; - ComponentStatus.Error.Id := UINT#820; + Status.Action.Id := UINT#2020; + Status.Error.Id := UINT#2020; ELSIF ExportCurveTask.AbortTriggered()THEN - ComponentStatus.Action.Id := UINT#821; - ComponentStatus.Error.Id := UINT#821; + Status.Action.Id := UINT#2021; + Status.Error.Id := UINT#2021; END_IF; - Messenger.ActivateOnCondition(ULINT#820,ExportCurveTask.HasError(), eAxoMessageCategory#Error); - Messenger.ActivateOnCondition(ULINT#821,ExportCurveTask.IsAborted(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#2020,ExportCurveTask.HasError(), eAxoMessageCategory#Error); + Messenger.ActivateOnCondition(ULINT#2021,ExportCurveTask.IsAborted(), eAxoMessageCategory#Error); Messenger.ActivateOnCondition(ULINT#122,ExportCurveTask.RestoreTriggered() , eAxoMessageCategory#Error); IF ExportCurveTask.RestoreTriggered()THEN - ComponentStatus.Action.Id := UINT#122; + Status.Action.Id := UINT#122; END_IF; //******************************************* //***********UPDATE**OUTPUTS***************** //Parameter Channel - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdParamCh_IDN,_data10); - Messenger.ActivateOnCondition(ULINT#707,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - ComponentStatus.Error.Id := UINT#707; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdParamCh_IDN,_data10); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1231, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1231; RETURN; - END_IF; + END_IF; //Output 21W _data42[0] := Outputs.Handle.%B1; @@ -517,12 +715,12 @@ NAMESPACE AXOpen.Components.Rexroth.Press _data42[40] := Outputs.FastVarData.%B1; _data42[41] := Outputs.FastVarData.%B0; - _returnValue := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdOutput_21_Words,_data42); - Messenger.ActivateOnCondition(ULINT#708,_returnValue > WORD#0, eAxoMessageCategory#ProgrammingError); - IF _returnValue > WORD#0 THEN - ComponentStatus.Error.Id := UINT#708; + _retVal := Siemens.Simatic.S71500.DistributedIO.WriteData(_hwIdOutput_21_Words,_data42); + IF _retVal > WORD#0 THEN + Messenger.Activate(UINT#1232, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1232; RETURN; - END_IF; + END_IF; //******************************************* @@ -537,13 +735,13 @@ NAMESPACE AXOpen.Components.Rexroth.Press Parameters : REF_TO AxoSmartFunctionKitRequest_v_4_x_x; END_VAR - Messenger.ActivateOnCondition(ULINT#709,Parameters = NULL, eAxoMessageCategory#ProgrammingError); IF Parameters = NULL THEN - ComponentStatus.Error.Id := UINT#709; + Messenger.Activate( UINT#1400, eAxoMessageCategory#ProgrammingError); + Status.Error.Id := UINT#1400; RETURN; END_IF; - ComponentStatus.CurrentCommandParameters := Parameters^; + Status.CurrentCommandParameters := Parameters^; RunCommand := RunCommandTask.Invoke(THIS); END_METHOD @@ -572,7 +770,7 @@ NAMESPACE AXOpen.Components.Rexroth.Press END_METHOD METHOD PROTECTED OVERRIDE ManualControl - ComponentStatus.CurrentCommandParameters := RunCommandParameters; + Status.CurrentCommandParameters := RunCommandParameters; END_METHOD METHOD PUBLIC OVERRIDE Restore @@ -581,7 +779,7 @@ NAMESPACE AXOpen.Components.Rexroth.Press GetResultsTask.Restore(); RestoreTask.DoneWhen(TRUE); _progress := 0; - ComponentStatus.Action.Id := UINT#50; + Status.Action.Id := UINT#50; END_METHOD END_CLASS diff --git a/src/components.rexroth.press/src/AXOpen.Components.Rexroth.Press/AxoSmartFunctionKit_v_4_x_x/AxoSmartFunctionKit_v_4_x_x.cs b/src/components.rexroth.press/src/AXOpen.Components.Rexroth.Press/AxoSmartFunctionKit_v_4_x_x/AxoSmartFunctionKit_v_4_x_x.cs index 6a5c25a11..edc629fc6 100644 --- a/src/components.rexroth.press/src/AXOpen.Components.Rexroth.Press/AxoSmartFunctionKit_v_4_x_x/AxoSmartFunctionKit_v_4_x_x.cs +++ b/src/components.rexroth.press/src/AXOpen.Components.Rexroth.Press/AxoSmartFunctionKit_v_4_x_x/AxoSmartFunctionKit_v_4_x_x.cs @@ -138,23 +138,52 @@ private void InitializeMessenger() new KeyValuePair(121, new AxoMessengerTextItem("Export curve finished succesfully.", "")), new KeyValuePair(122, new AxoMessengerTextItem("Export curve restored.", "")), - new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!", "Check the call of the `Run` method, if the `parent` parameter is assigned.")), - new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwID` has invalid value in `Run` method!", "Check the call of the `Run` method, if the `hwID` parameter is assigned.")), - new KeyValuePair(702, new AxoMessengerTextItem("Input variable `hwIdParamCh_IDN` has invalid valuein `Run` method!", "Check the call of the `Run` method, if the `hwIdParamCh_IDN` parameter is assigned.")), - new KeyValuePair(703, new AxoMessengerTextItem("Input variable `hwIdInput_24_Words` has invalid valuein `Run` method!", "Check the call of the `Run` method, if the `hwIdInput_24_Words` parameter is assigned.")), - new KeyValuePair(704, new AxoMessengerTextItem("Input variable `hwIdOutput_21_Words` has invalid valuein `Run` method!", "Check the call of the `Run` method, if the `hwIdOutput_21_Words` parameter is assigned.")), - new KeyValuePair(705, new AxoMessengerTextItem("Error reading the `hwIdParamCh_IDN` in the Run method!", "Check the value of the `hwIdParamCh_IDN` and reacheability of the device!")), - new KeyValuePair(706, new AxoMessengerTextItem("Error reading the `hwIdInput_24_Words` in the Run method!", "Check the value of the `hwIdInput_24_Words` and reacheability of the device!")), - new KeyValuePair(707, new AxoMessengerTextItem("Error writing the `hwIdParamCh_IDN` in the Run method!", "Check the value of the `hwIdParamCh_IDN` and reacheability of the device!")), - new KeyValuePair(708, new AxoMessengerTextItem("Error writing the `hwIdOutput_21_Words` in the Run method!", "Check the value of the `hwIdOutput_21_Words` and reacheability of the device!")), - new KeyValuePair(709, new AxoMessengerTextItem("Input variable `RunCommand` has NULL reference in `Run` method!", "Check the call of the `RunCommand` method, if the `Parameters` parameter is assigned.")), - - new KeyValuePair(800, new AxoMessengerTextItem("Run command finished with error!", "Check the details.")), - new KeyValuePair(801, new AxoMessengerTextItem("Run command was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(810, new AxoMessengerTextItem("Get results finished with error!", "Check the details.")), - new KeyValuePair(811, new AxoMessengerTextItem("Get results was aborted, while not yet completed!", "Check the details.")), - new KeyValuePair(820, new AxoMessengerTextItem("Export curve finished with error!", "Check the details.")), - new KeyValuePair(821, new AxoMessengerTextItem("Export curve was aborted, while not yet completed!", "Check the details.")), + // General alarm + new KeyValuePair(700, new AxoMessengerTextItem("Input variable `parent` has NULL reference in `Run` method!" ,"Check the call of the `Run` method, if the `parent` parameter is assigned.")), + new KeyValuePair(701, new AxoMessengerTextItem("Input variable `hwId` has invalid value in `Run` method!" ,"Check the call of the `Run` method, if the `hwId` parameter is assigned.")), + new KeyValuePair(702, new AxoMessengerTextItem("Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ,"Check the hardware configuration.")), + + new KeyValuePair(710, new AxoMessengerTextItem("Hw configuration error. Value of hwIdParamCh_IDN is zero." ,"Check the hardware configuration.")), + new KeyValuePair(711, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(712, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(713, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(714, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(715, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ,"Check the hardware configuration.")), + new KeyValuePair(716, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'ParamCh_5Words' (GsdId=ID_PaCh_5Words)." ,"Check the hardware configuration.")), + + new KeyValuePair(720, new AxoMessengerTextItem("Hw configuration error. Value of hwIdF-Modul_not_used is zero." ,"Check the hardware configuration.")), + new KeyValuePair(721, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(722, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(723, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(724, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(725, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ,"Check the hardware configuration.")), + new KeyValuePair(726, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'F-Modul_not_used' (Gsd = ID_FMod_NotUsed)." ,"Check the hardware configuration.")), + + new KeyValuePair(730, new AxoMessengerTextItem("Hw configuration error. Value of hwIdInput_24_Words zero." ,"Check the hardware configuration.")), + new KeyValuePair(731, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(732, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(733, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(734, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(735, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ,"Check the hardware configuration.")), + new KeyValuePair(736, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'Input_24_Words' (Gsd = ID_InMod_24Words)." ,"Check the hardware configuration.")), + + new KeyValuePair(740, new AxoMessengerTextItem("Hw configuration error. Value of hwIdOutput_21_Words is zero." ,"Check the hardware configuration.")), + new KeyValuePair(741, new AxoMessengerTextItem("Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(742, new AxoMessengerTextItem("Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(743, new AxoMessengerTextItem("Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(744, new AxoMessengerTextItem("Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(745, new AxoMessengerTextItem("Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ,"Check the hardware configuration.")), + new KeyValuePair(746, new AxoMessengerTextItem("Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'Output_21_Words' ( GsdId = ID_OutMod_21Words)." ,"Check the hardware configuration.")), + + + new KeyValuePair(1400, new AxoMessengerTextItem("Input variable `RunCommand` has NULL reference in `Run` method!" ,"Check the call of the `RunCommand` method, if the `Parameters` parameter is assigned.")), + + new KeyValuePair(2000, new AxoMessengerTextItem("Run command finished with error!" ,"Check the details.")), + new KeyValuePair(2001, new AxoMessengerTextItem("Run command was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(2010, new AxoMessengerTextItem("Get results finished with error!" ,"Check the details.")), + new KeyValuePair(2011, new AxoMessengerTextItem("Get results was aborted, while not yet completed!" ,"Check the details.")), + new KeyValuePair(2020, new AxoMessengerTextItem("Export curve finished with error!" ,"Check the details.")), + new KeyValuePair(2021, new AxoMessengerTextItem("Export curve was aborted, while not yet completed!" ,"Check the details.")), }; @@ -250,23 +279,47 @@ public string ErrorDescription if (errorDescriptionDict.Count == 0) { errorDescriptionDict.Add(0, " "); - errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!"); - errorDescriptionDict.Add(701, "Input variable `hwID` has invalid value in `Run` method!"); - errorDescriptionDict.Add(702, "Input variable `hwIdParamCh_IDN` has invalid valuein `Run` method!"); - errorDescriptionDict.Add(703, "Input variable `hwIdInput_24_Words` has invalid valuein `Run` method!"); - errorDescriptionDict.Add(704, "Input variable `hwIdOutput_21_Words` has invalid valuein `Run` method!"); - errorDescriptionDict.Add(705, "Error reading the `hwIdParamCh_IDN` in the Run method!"); - errorDescriptionDict.Add(706, "Error reading the `hwIdInput_24_Words` in the Run method!"); - errorDescriptionDict.Add(707, "Error writing the `hwIdParamCh_IDN` in the Run method!"); - errorDescriptionDict.Add(708, "Error writing the `hwIdOutput_21_Words` in the Run method!"); - errorDescriptionDict.Add(709, "Input variable `Parameters` has NULL reference in `RunCommand` method!"); - - errorDescriptionDict.Add(800, "Run command finished with error!"); - errorDescriptionDict.Add(801, "Run command was aborted, while not yet completed!"); - errorDescriptionDict.Add(810, "Get results finished with error!"); - errorDescriptionDict.Add(811, "Get results was aborted, while not yet completed!"); - errorDescriptionDict.Add(820, "Export curve finished with error!"); - errorDescriptionDict.Add(821, "Export curve was aborted, while not yet completed!"); + + // General alarm + errorDescriptionDict.Add(700, "Input variable `parent` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(701, "Input variable `hwId` has invalid value in `Run` method!" ); + errorDescriptionDict.Add(702, "Hw configuration error. The address specified at the hardwareID parameter is invalid in ReadSlotFromHardwareID (8090)." ); + errorDescriptionDict.Add(710, "Hw configuration error. Value of hwIdParamCh_IDN is zero." ); + errorDescriptionDict.Add(711, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 1." ); + errorDescriptionDict.Add(712, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 1." ); + errorDescriptionDict.Add(713, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 1." ); + errorDescriptionDict.Add(714, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 1." ); + errorDescriptionDict.Add(715, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 1." ); + errorDescriptionDict.Add(716, "Hw configuration error: Module with unexpected size or type detected in Slot 1. Expected module: 'ParamCh_5Words' (GsdId=ID_PaCh_5Words)." ); + errorDescriptionDict.Add(720, "Hw configuration error. Value of hwIdF-Modul_not_used is zero." ); + errorDescriptionDict.Add(721, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 2." ); + errorDescriptionDict.Add(722, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 2." ); + errorDescriptionDict.Add(723, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 2." ); + errorDescriptionDict.Add(724, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 2." ); + errorDescriptionDict.Add(725, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 2." ); + errorDescriptionDict.Add(726, "Hw configuration error: Module with unexpected size or type detected in Slot 2. Expected module: 'F-Modul_not_used' (Gsd = ID_FMod_NotUsed)." ); + errorDescriptionDict.Add(730, "Hw configuration error. Value of hwIdInput_24_Words zero." ); + errorDescriptionDict.Add(731, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 3." ); + errorDescriptionDict.Add(732, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 3." ); + errorDescriptionDict.Add(733, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 3." ); + errorDescriptionDict.Add(734, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 3." ); + errorDescriptionDict.Add(735, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 3." ); + errorDescriptionDict.Add(736, "Hw configuration error: Module with unexpected size or type detected in Slot 3. Expected module: 'Input_24_Words' (Gsd = ID_InMod_24Words)." ); + errorDescriptionDict.Add(740, "Hw configuration error. Value of hwIdOutput_21_Words is zero." ); + errorDescriptionDict.Add(741, "Hw configuration error. Invalid value for HardwareType in GeoAddr in ReadHardwareIDFromSlot (8091) for slot 4." ); + errorDescriptionDict.Add(742, "Hw configuration error. Invalid value for IOSystem in GeoAddr in ReadHardwareIDFromSlot (8094) for slot 4." ); + errorDescriptionDict.Add(743, "Hw configuration error. Invalid value for Station in GeoAddr in ReadHardwareIDFromSlot (8095) for slot 4." ); + errorDescriptionDict.Add(744, "Hw configuration error. Invalid value for Slot in GeoAddr in ReadHardwareIDFromSlot (8096) for slot 4." ); + errorDescriptionDict.Add(745, "Hw configuration error. Invalid value for Subslot in GeoAddr in ReadHardwareIDFromSlot (8097) for slot 4." ); + errorDescriptionDict.Add(746, "Hw configuration error: Module with unexpected size or type detected in Slot 4. Expected module: 'Output_21_Words' ( GsdId = ID_OutMod_21Words)." ); + errorDescriptionDict.Add(1400, "Input variable `RunCommand` has NULL reference in `Run` method!" ); + errorDescriptionDict.Add(2000, "Run command finished with error!" ); + errorDescriptionDict.Add(2001, "Run command was aborted, while not yet completed!" ); + errorDescriptionDict.Add(2010, "Get results finished with error!" ); + errorDescriptionDict.Add(2011, "Get results was aborted, while not yet completed!" ); + errorDescriptionDict.Add(2020, "Export curve finished with error!" ); + errorDescriptionDict.Add(2021, "Export curve was aborted, while not yet completed!"); + errorDescriptionDict.Add(10001, "No function or invalid input"); errorDescriptionDict.Add(10205,"Invalid character given within alphanumeric customID"); diff --git a/src/components.rexroth.tightening/.vscode/settings.json b/src/components.rexroth.tightening/.vscode/settings.json new file mode 100644 index 000000000..9ad20cb2c --- /dev/null +++ b/src/components.rexroth.tightening/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "dotnet.defaultSolution": "components.rexroth.tightening.sln" +} \ No newline at end of file diff --git a/src/components.rexroth.tightening/CHANGES_CHECKLIST.md b/src/components.rexroth.tightening/CHANGES_CHECKLIST.md new file mode 100644 index 000000000..98f49a6b1 --- /dev/null +++ b/src/components.rexroth.tightening/CHANGES_CHECKLIST.md @@ -0,0 +1,34 @@ +## Code + +- [ ] Do the changes follow recomendations from [conventions](../../docfx/articles/guidelines/Conventions.md) and [component convetions](../../docfx/articles/guidelines/components.md.md)? +- [ ] Does your change introduces breaking changes? +- [ ] Did you consult with the maintainers the nature of the breaking changes (version bump)? + + +## Testing + +- [ ] Are all changes unit-tested? +- [ ] Did you change any existing test? Please describe? + +Changed tests +--- +--- + +- [ ] How did you test the changes? + +## Build + +- [ ] Did you change directory structure that may affect the pipeline? + +## Documentation + +- [ ] Did you update the documentation where relevant? + +### Changelog file updates +- [ ] Did you update the [CHANGELOG](docs/CHANGELOG.md)? +- [ ] Did you update the [CHANGELOG](docs/CHANGELOG.md) version according to value set in [GitVersion.yml](../../GitVersion.yml)? +- [ ] Did you describe breaking changes [CHANGELOG](docs/CHANGELOG.md)? +- [ ] Did you describe new features [CHANGELOG](docs/CHANGELOG.md)? +- [ ] Did you describe bug fixies [CHANGELOG](docs/CHANGELOG.md)? + +x` diff --git a/src/components.rexroth.tightening/CREATION_CHECKLIST.md b/src/components.rexroth.tightening/CREATION_CHECKLIST.md new file mode 100644 index 000000000..83a7cd16f --- /dev/null +++ b/src/components.rexroth.tightening/CREATION_CHECKLIST.md @@ -0,0 +1,53 @@ +## Code + +- [ ] Does code follow recomendations from [conventions](../../docfx/articles/guidelines/Conventions.md) and [component convetions](../../docfx/articles/guidelines/components.md.md)? + + +## Testing + +- [ ] Are all publicly exposed members unit-tested using axunit? +- [ ] Is the axunit-test coverage at min level of 60%? +- [ ] Are all extended twins tested and is the coverage at min level of 60% ? +- [ ] Are all extended twins tested and is the coverage at min level of 60% ? + +## Build + +- [ ] Did you add this library to [build list](../../cake/BuildContext.cs#Libraries)? +- [ ] Did you add place the library in the [list](../../cake/BuildContext.cs#Libraries) past its dependencies? +- [ ] Did you add this library `src` folder to [build list](../../src/AXOpen-packable-only.proj)? +- [ ] Did you remove all project from the `src` folder that should not be packed? +- [ ] Does the build with test level L2 passes locally? + +## Documentation + +- The documentation should be CONCISE delivering nessary information about the usage of the library. +- The documentation should not explain details about internals of the library limit yourself on explaing how to use, not how it is made. Should it be necessary to explain some aspects in detail write an article instead. +- Do not explain HOW the parts of the library operate but WHAT they do. +- Focus on creating usable examples +- Examples should not be hard-written into to documents, but referenced from the [documentation project](app), the [ComponentTemplate](docs/ComponentTemplate.md) scaffolds the document with example references to documenation project + +## General +- [ ] Does [README.md](./docs/README.md) contain general description of the library? +- [ ] Is the link to this documentation added to the [toc.yaml](../../docfx/components/toc.yml)? + +### CTRL README.md +- [ ] Does [README.md](./ctrl/README.md) for controller contain information about apax package installation instructions? +- [ ] Does [README.md](./ctrl/README.md) for controller contain link to API documentation? +- [ ] Are there any additional requirement regarding usage of this package listed in this [README.md](./ctrl/README.md)? + +### .NET TWIN README.md +- [ ] Does [README.md](./src/AXOpen.Components.Rexroth.Tightening/README.md) for .NET TWIN contain information with installation instructions? +- [ ] Does [README.md](./src/AXOpen.Components.Rexroth.Tightening/README.md) for .NET TWIN contain link to API documentation? +- [ ] Are there any additional requirement regarding usage of this nuget package listed in this [README.md](./src/AXOpen.Components.Rexroth.Tightening/README.md)? + +### BLAZOR README.md +- [ ] Does [README.md](./src/AXOpen.Components.Rexroth.Tightening.blazor/README.md) contain information with installation instructions? +- [ ] Does [README.md](./src/AXOpen.Components.Rexroth.Tightening.blazor/README.md) contain link to API documentation? +- [ ] Are there any additional requirement regarding usage of this nuget package listed in this [README.md](./src/AXOpen.Components.Rexroth.Tightening/README.md)? + + +### Components + +- [ ] Does [toc.yml](./docs/toc.yml) contain references to documenation to all components in this library? +- [ ] Does each component in this library has single md file with examples references from the code and structured according to [ComponentTemplate.md](./docs/ComponentTemplate.md)? + diff --git a/src/components.rexroth.tightening/app/.gitignore b/src/components.rexroth.tightening/app/.gitignore new file mode 100644 index 000000000..42d9b3c6a --- /dev/null +++ b/src/components.rexroth.tightening/app/.gitignore @@ -0,0 +1,6 @@ +.apax +.env +bin + +obj +testresult diff --git a/src/components.rexroth.tightening/app/AXSharp.config.json b/src/components.rexroth.tightening/app/AXSharp.config.json new file mode 100644 index 000000000..330c18f1a --- /dev/null +++ b/src/components.rexroth.tightening/app/AXSharp.config.json @@ -0,0 +1 @@ +{"OutputProjectFolder":"ix","UseBase":false,"NoDependencyUpdate":false,"IgnoreS7Pragmas":false,"SkipDependencyCompilation":false,"TargetPlatfromMoniker":"ax","ProjectFile":"app_axopen_components_rexroth_tightening.csproj"} \ No newline at end of file diff --git a/src/components.rexroth.tightening/app/SystemConstants/plc_line_HwIdentifiers.st b/src/components.rexroth.tightening/app/SystemConstants/plc_line_HwIdentifiers.st new file mode 100644 index 000000000..3b14f521d --- /dev/null +++ b/src/components.rexroth.tightening/app/SystemConstants/plc_line_HwIdentifiers.st @@ -0,0 +1,51 @@ +CONFIGURATION HardwareIDs + VAR_GLOBAL CONSTANT + Axo_CS351_HwID : UINT := UINT#258; + Axo_CS351_Axo_CS351_HwID : UINT := UINT#261; + Axo_CS351_Axo_CS351_DAP_V2_0_HwID : UINT := UINT#288; + Axo_CS351_Axo_CS351_profinet_HwID : UINT := UINT#257; + Axo_CS351_Axo_CS351_profinet_Port_1_HwID : UINT := UINT#259; + Axo_CS351_Input_2_word_1_Input_2_word_HwID : UINT := UINT#262; + Axo_CS351_Input_4_word_10_Input_4_word_HwID : UINT := UINT#269; + Axo_CS351_Input_4_word_11_Input_4_word_HwID : UINT := UINT#268; + Axo_CS351_Input_4_word_12_Input_4_word_HwID : UINT := UINT#267; + Axo_CS351_Input_4_word_13_Input_4_word_HwID : UINT := UINT#266; + Axo_CS351_Input_4_word_14_Input_4_word_HwID : UINT := UINT#265; + Axo_CS351_Input_4_word_15_Input_4_word_HwID : UINT := UINT#264; + Axo_CS351_Input_4_word_16_Input_4_word_HwID : UINT := UINT#263; + Axo_CS351_Input_4_word_1_Input_4_word_HwID : UINT := UINT#278; + Axo_CS351_Input_4_word_2_Input_4_word_HwID : UINT := UINT#277; + Axo_CS351_Input_4_word_3_Input_4_word_HwID : UINT := UINT#276; + Axo_CS351_Input_4_word_4_Input_4_word_HwID : UINT := UINT#275; + Axo_CS351_Input_4_word_5_Input_4_word_HwID : UINT := UINT#274; + Axo_CS351_Input_4_word_6_Input_4_word_HwID : UINT := UINT#273; + Axo_CS351_Input_4_word_7_Input_4_word_HwID : UINT := UINT#272; + Axo_CS351_Input_4_word_8_Input_4_word_HwID : UINT := UINT#271; + Axo_CS351_Input_4_word_9_Input_4_word_HwID : UINT := UINT#270; + Axo_CS351_Output_2_word_1_Output_2_word_HwID : UINT := UINT#279; + Axo_CS351_Output_4_word_1_Output_4_word_HwID : UINT := UINT#287; + Axo_CS351_Output_4_word_2_Output_4_word_HwID : UINT := UINT#286; + Axo_CS351_Output_4_word_3_Output_4_word_HwID : UINT := UINT#285; + Axo_CS351_Output_4_word_4_Output_4_word_HwID : UINT := UINT#284; + Axo_CS351_Output_4_word_5_Output_4_word_HwID : UINT := UINT#283; + Axo_CS351_Output_4_word_6_Output_4_word_HwID : UINT := UINT#282; + Axo_CS351_Output_4_word_7_Output_4_word_HwID : UINT := UINT#281; + Axo_CS351_Output_4_word_8_Output_4_word_HwID : UINT := UINT#280; + Axo_CS351_Rack_HwID : UINT := UINT#260; + plc_line_HwID : UINT := UINT#32; + plc_line_Rail_0_HwID : UINT := UINT#289; + plc_line_plc_line_HwID : UINT := UINT#48; + plc_line_plc_line_CPU_display_1_HwID : UINT := UINT#54; + plc_line_plc_line_Card_reader_writer_1_HwID : UINT := UINT#51; + plc_line_plc_line_DP_interface_1_HwID : UINT := UINT#60; + plc_line_plc_line_OPC_UA_1_HwID : UINT := UINT#117; + plc_line_plc_line_Virtual_communication_interface_HwID : UINT := UINT#135; + plc_line_plc_line_profinet_x1_HwID : UINT := UINT#64; + plc_line_plc_line_profinet_x1_Port_1_HwID : UINT := UINT#65; + plc_line_plc_line_profinet_x1_Port_2_HwID : UINT := UINT#66; + plc_line_plc_line_profinet_x2_HwID : UINT := UINT#72; + plc_line_plc_line_profinet_x2_Port_3_HwID : UINT := UINT#73; + profinet_plc_line_HwID : UINT := UINT#256; + + END_VAR +END_CONFIGURATION diff --git a/src/components.rexroth.tightening/app/SystemConstants/plc_line_IoAddresses.st b/src/components.rexroth.tightening/app/SystemConstants/plc_line_IoAddresses.st new file mode 100644 index 000000000..e4cb68f46 --- /dev/null +++ b/src/components.rexroth.tightening/app/SystemConstants/plc_line_IoAddresses.st @@ -0,0 +1,31 @@ +CONFIGURATION IoAddresses + VAR_GLOBAL + Axo_CS351_Input_2_word_1_InputAddress AT %ID0: DWORD; + Axo_CS351_Input_4_word_1_InputAddress AT %IL124: LWORD; + Axo_CS351_Input_4_word_10_InputAddress AT %IL52: LWORD; + Axo_CS351_Input_4_word_11_InputAddress AT %IL44: LWORD; + Axo_CS351_Input_4_word_12_InputAddress AT %IL36: LWORD; + Axo_CS351_Input_4_word_13_InputAddress AT %IL28: LWORD; + Axo_CS351_Input_4_word_14_InputAddress AT %IL20: LWORD; + Axo_CS351_Input_4_word_15_InputAddress AT %IL12: LWORD; + Axo_CS351_Input_4_word_16_InputAddress AT %IL4: LWORD; + Axo_CS351_Input_4_word_2_InputAddress AT %IL116: LWORD; + Axo_CS351_Input_4_word_3_InputAddress AT %IL108: LWORD; + Axo_CS351_Input_4_word_4_InputAddress AT %IL100: LWORD; + Axo_CS351_Input_4_word_5_InputAddress AT %IL92: LWORD; + Axo_CS351_Input_4_word_6_InputAddress AT %IL84: LWORD; + Axo_CS351_Input_4_word_7_InputAddress AT %IL76: LWORD; + Axo_CS351_Input_4_word_8_InputAddress AT %IL68: LWORD; + Axo_CS351_Input_4_word_9_InputAddress AT %IL60: LWORD; + Axo_CS351_Output_2_word_1_OutputAddress AT %QD0: DWORD; + Axo_CS351_Output_4_word_1_OutputAddress AT %QL60: LWORD; + Axo_CS351_Output_4_word_2_OutputAddress AT %QL52: LWORD; + Axo_CS351_Output_4_word_3_OutputAddress AT %QL44: LWORD; + Axo_CS351_Output_4_word_4_OutputAddress AT %QL36: LWORD; + Axo_CS351_Output_4_word_5_OutputAddress AT %QL28: LWORD; + Axo_CS351_Output_4_word_6_OutputAddress AT %QL20: LWORD; + Axo_CS351_Output_4_word_7_OutputAddress AT %QL12: LWORD; + Axo_CS351_Output_4_word_8_OutputAddress AT %QL4: LWORD; + + END_VAR +END_CONFIGURATION diff --git a/src/components.rexroth.tightening/app/apax.yml b/src/components.rexroth.tightening/app/apax.yml new file mode 100644 index 000000000..d9c2d7ad0 --- /dev/null +++ b/src/components.rexroth.tightening/app/apax.yml @@ -0,0 +1,185 @@ +name: "app_axopen.components.rexroth.tightening" +version: '0.0.0-dev.0' +type: app +targets: + # - llvm + - "1500" +variables: + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => + PLC_NAME: "plc_line" + DEFAULT_NAMESPACE: "AXOpen.Components.Rexroth.Tightening" + AXTARGET: 192.168.100.120 + AXTARGETPLATFORMINPUT: .\bin\1500\ + AX_USERNAME: "adm" + AX_TARGET_PWD: "123ABCDabcd$#!" + USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. +registries: + "@inxton": "https://npm.pkg.github.com/" +catalogs: + "@inxton/ax.catalog": 0.0.28 +devDependencies: + "@inxton/ax-sdk": '0.0.0-dev.0' +dependencies: + "@inxton/axopen.components.rexroth.tightening": '0.0.0-dev.0' + "@inxton/ax.axopen.app": '0.0.0-dev.0' + "@inxton/axopen.simatic1500": '0.0.0-dev.0' +installStrategy: strict +apaxVersion: 3.5.0 +scripts: + # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. + # Local variables can override environment variables. + # It is highly recommended NOT to store secrets such as 'AX_USERNAME' and 'AX_TARGET_PWD' in local variables. + # PLC_NAME: Name of the PLC (also equal to the PLC Profinet name) + # DEFAULT_NAMESPACE: Namespace used for HwId and IO addresses + # AX_USERNAME: Name of the PLC user used for WebAPI and HMI + # AXTARGET: IP address of the PLC + # AXTARGETPLATFORMINPUT: Folder of the compiled software to be downloaded to the PLC. Use the value ".\bin\1500\" for the S7-1500 controller, even if running inside PLCSIM + # AXTARGETPLCSIMINSTANCE: Name of the PLCSIM instance to start. The instance must already exist. + # AX_TARGET_PWD: Password for 'AX_USERNAME' + # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all + # PNIO_MAC: MAC address of the network adapter connected to the Profinet network + plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) + ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" + r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) + ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" + ixc: | # run ix builder + START=$(date +%s) + dotnet tool restore + dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" + postbuild: apax run ixc # run after build + dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) + ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" + dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" + hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" + ci: | #clean and install dependencies + START=$(date +%s) + apax clean + apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" + reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) + ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" + clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) + ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" + ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" + gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) + ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" + hwl: | # copy all templates from libraries + START=$(date +%s) + ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" + hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) + ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" + hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" + hwadr: | # copy the generated IoAddresses + START=$(date +%s) + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" + # the following command must be triggered only once + hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" + hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" + hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" + swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" + swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" + swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" + swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" + alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) + START=$(date +%s) + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" + all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) + START=$(date +%s) + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" + ib: | + START=$(date +%s) + apax install + apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" + icb: | + START=$(date +%s) + apax install --catalog + apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" + cib: | + START=$(date +%s) + apax clean + apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" + cicb: | + START=$(date +%s) + apax clean + apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" + ibt: | + START=$(date +%s) + apax install + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" + mm: | + apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/components.rexroth.tightening/app/axsharp.companion.json b/src/components.rexroth.tightening/app/axsharp.companion.json new file mode 100644 index 000000000..493a4cd7b --- /dev/null +++ b/src/components.rexroth.tightening/app/axsharp.companion.json @@ -0,0 +1 @@ +{"Id":"app_axopen_components_rexroth_tightening","Version":"0.0.0-dev.0"} \ No newline at end of file diff --git a/src/components.rexroth.tightening/app/gsd/source/GSDML-V2.0-Rexroth-Schraubsystem350-20090127.xml b/src/components.rexroth.tightening/app/gsd/source/GSDML-V2.0-Rexroth-Schraubsystem350-20090127.xml new file mode 100644 index 000000000..545df9a94 --- /dev/null +++ b/src/components.rexroth.tightening/app/gsd/source/GSDML-V2.0-Rexroth-Schraubsystem350-20090127.xml @@ -0,0 +1,442 @@ + + + + + PROFINET Device Profile + 1.00 + Device Profile for PROFINET Devices + PROFIBUS Nutzerorganisation e. V. (PNO) + Device + + 4 + 1 + GSDML + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components.rexroth.tightening/app/hwc/plc_line.hwl.yml b/src/components.rexroth.tightening/app/hwc/plc_line.hwl.yml new file mode 100644 index 000000000..f579807eb --- /dev/null +++ b/src/components.rexroth.tightening/app/hwc/plc_line.hwl.yml @@ -0,0 +1,15 @@ +Devices: +- Name: plc_line + Modules: + - Apply: + TemplateName: 6ES7516-3AP03-0AB0_v3_1 + Arguments: + PLCName: plc_line + IpAddress_X1: 192.168.100.120/24 + ProfinetDeviceName_X1: plc_line_x1 +IoSystems: +- Name: profinet_plc_line + ControllerInterfaces: + - Ref: plc_line/plc_line/profinet_x1 + DeviceInterfaces: + - Ref: Axo_CS351/Axo_CS351/profinet diff --git a/src/components.rexroth.tightening/app/ix-blazor/AXOpen.Components.Rexroth.Tightening.blazorapp.csproj b/src/components.rexroth.tightening/app/ix-blazor/AXOpen.Components.Rexroth.Tightening.blazorapp.csproj new file mode 100644 index 000000000..55600aa58 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/AXOpen.Components.Rexroth.Tightening.blazorapp.csproj @@ -0,0 +1,19 @@ + + + + + enable + enable + false + + + + + + + + + + + + diff --git a/src/components.rexroth.tightening/app/ix-blazor/App.razor b/src/components.rexroth.tightening/app/ix-blazor/App.razor new file mode 100644 index 000000000..21b1c2e18 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/App.razor @@ -0,0 +1,15 @@ +@using AxOpen.Security.Service; + + + + + + + + Not found + +

Sorry, there's nothing at this address.

+
+
+
+
\ No newline at end of file diff --git a/src/components.rexroth.tightening/app/ix-blazor/Pages/Component_1.razor b/src/components.rexroth.tightening/app/ix-blazor/Pages/Component_1.razor new file mode 100644 index 000000000..74a6867eb --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Pages/Component_1.razor @@ -0,0 +1,24 @@ +@page "/Component_1" +@using AXOpen.Core; + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components.rexroth.tightening/app/ix-blazor/Pages/Component_2.razor b/src/components.rexroth.tightening/app/ix-blazor/Pages/Component_2.razor new file mode 100644 index 000000000..059441f3b --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Pages/Component_2.razor @@ -0,0 +1,25 @@ +@page "/Component_2" +@using AXOpen.Core; +@using AXOpen.Components.Rexroth.Tightening; + +Documentation + + + + + + + + + + + + + + + + + + + + diff --git a/src/components.rexroth.tightening/app/ix-blazor/Pages/Documentation.razor b/src/components.rexroth.tightening/app/ix-blazor/Pages/Documentation.razor new file mode 100644 index 000000000..ada66c2f5 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Pages/Documentation.razor @@ -0,0 +1,13 @@ +@page "/Documentation" +@using AXOpen.Core; +@using AXSharp.Presentation.Blazor.Controls.Layouts.TabControlComponents; + + + + + + + + + + \ No newline at end of file diff --git a/src/components.rexroth.tightening/app/ix-blazor/Pages/Error.cshtml b/src/components.rexroth.tightening/app/ix-blazor/Pages/Error.cshtml new file mode 100644 index 000000000..15563198a --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Pages/Error.cshtml @@ -0,0 +1,42 @@ +@page +@model AXOpen.Components.Rexroth.Tightening.blazor.Pages.ErrorModel + + + + + + + + Error + + + + + +
+
+

Error.

+

An error occurred while processing your request.

+ + @if (Model.ShowRequestId) + { +

+ Request ID: @Model.RequestId +

+ } + +

Development Mode

+

+ Swapping to the Development environment displays detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

+
+
+ + + diff --git a/src/components.rexroth.tightening/app/ix-blazor/Pages/Error.cshtml.cs b/src/components.rexroth.tightening/app/ix-blazor/Pages/Error.cshtml.cs new file mode 100644 index 000000000..555694fb7 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Pages/Error.cshtml.cs @@ -0,0 +1,27 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using System.Diagnostics; + +namespace AXOpen.Components.Rexroth.Tightening.blazor.Pages +{ + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + [IgnoreAntiforgeryToken] + public class ErrorModel : PageModel + { + public string? RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + private readonly ILogger _logger; + + public ErrorModel(ILogger logger) + { + _logger = logger; + } + + public void OnGet() + { + RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; + } + } +} \ No newline at end of file diff --git a/src/components.rexroth.tightening/app/ix-blazor/Pages/Index.razor b/src/components.rexroth.tightening/app/ix-blazor/Pages/Index.razor new file mode 100644 index 000000000..6085c4aa9 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Pages/Index.razor @@ -0,0 +1,9 @@ +@page "/" + +Index + +

Hello, world!

+ +Welcome to your new app. + + diff --git a/src/components.rexroth.tightening/app/ix-blazor/Pages/Security.razor b/src/components.rexroth.tightening/app/ix-blazor/Pages/Security.razor new file mode 100644 index 000000000..67f755793 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Pages/Security.razor @@ -0,0 +1,5 @@ +@page "/Security" + +

Security

+ + \ No newline at end of file diff --git a/src/components.rexroth.tightening/app/ix-blazor/Pages/Testing.razor b/src/components.rexroth.tightening/app/ix-blazor/Pages/Testing.razor new file mode 100644 index 000000000..c973cfe1e --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Pages/Testing.razor @@ -0,0 +1,6 @@ +@page "/testing" +@using AXOpen.Components.Rexroth.Tightening + +Testing + + diff --git a/src/components.rexroth.tightening/app/ix-blazor/Pages/_Host.cshtml b/src/components.rexroth.tightening/app/ix-blazor/Pages/_Host.cshtml new file mode 100644 index 000000000..1c31362cb --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Pages/_Host.cshtml @@ -0,0 +1,34 @@ +@page "/" +@using Microsoft.AspNetCore.Components.Web +@namespace AXOpen.Components.Rexroth.Tightening.blazorapp.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers + + + + + + + + + + + + + + + + +
+ + An error has occurred. This application may no longer respond until reloaded. + + + An unhandled exception has occurred. See browser dev tools for details. + + Reload + 🗙 +
+ + + + diff --git a/src/components.rexroth.tightening/app/ix-blazor/Program.cs b/src/components.rexroth.tightening/app/ix-blazor/Program.cs new file mode 100644 index 000000000..db0d4bb98 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Program.cs @@ -0,0 +1,109 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Web; +using System.Data; +using AXOpen.Core; +using AxOpen.Security.Services; +using AXSharp.Presentation.Blazor.Services; +using AXSharp.Connector; +using AXOpen.Base.Data; +using AxOpen.Security.Entities; +using System.Reflection; +using AXOpen.Data.Json; +using AxOpen.Security; +using Serilog; +using AXOpen; +using AXOpen.Logging; +using AXOpen.Components.Rexroth.Tightening; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +builder.Services.ConfigureAxBlazorSecurity(SetUpJSon(), Roles.CreateRoles()); +builder.Services.AddLocalization(); +builder.Services.AddRazorPages(); +builder.Services.AddServerSideBlazor(); +builder.Services.AddIxBlazorServices(); +builder.Services.AddAxoCoreServices(); + +Entry.Plc.Connector.SubscriptionMode = ReadSubscriptionMode.Polling; +Entry.Plc.Connector.BuildAndStart().ReadWriteCycleDelay = 250; +Entry.Plc.Connector.ConcurrentRequestMaxCount = 4; +Entry.Plc.Connector.ConcurrentRequestDelay = 100; +Entry.Plc.Connector.ExceptionBehaviour = CommExceptionBehaviour.ReThrow; + +Entry.Plc.Connector.SetLoggerConfiguration(new LoggerConfiguration() + .WriteTo + .Console() + .WriteTo + .File($"connector.log", + outputTemplate: "{Timestamp:yyyy-MMM-dd HH:mm:ss} [{Level}] {Message}{NewLine}{Exception}", + fileSizeLimitBytes: 100000) + .MinimumLevel.Information() + .CreateLogger()); + +await Entry.Plc.Connector.IdentityProvider.ConstructIdentitiesAsync(); + +AxoApplication.CreateBuilder().ConfigureLogger(new SerilogLogger(new LoggerConfiguration() + .WriteTo.Console().MinimumLevel.Verbose() + .CreateLogger())); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (!app.Environment.IsDevelopment()) +{ + app.UseExceptionHandler("/Error"); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); +} + +app.UseHttpsRedirection(); + +app.UseStaticFiles(); + +app.UseRouting(); + +app.MapBlazorHub(); +app.MapFallbackToPage("/_Host"); + +app.Run(); + +static (IRepository, IRepository) SetUpJSon(string path = "..\\..\\..\\..\\..\\JSONREPOS\\") +{ + var executingAssemblyFile = new FileInfo(Assembly.GetExecutingAssembly().Location); + var repositoryDirectory = Path.GetFullPath($"{executingAssemblyFile.Directory}{path}"); + if (!Directory.Exists(repositoryDirectory)) + { + Directory.CreateDirectory(repositoryDirectory); + } + + IRepository userRepo = new JsonRepository(new JsonRepositorySettings(Path.Combine(repositoryDirectory, "Users"))); + IRepository groupRepo = new JsonRepository(new JsonRepositorySettings(Path.Combine(repositoryDirectory, "Groups"))); + + return (userRepo, groupRepo); +} + +public static class Roles +{ + public static List CreateRoles() + { + var roles = new List + { + new Role(process_settings_access), + new Role(process_traceability_access), + new Role(can_run_ground_mode), + new Role(can_run_automat_mode), + new Role(can_run_service_mode), + new Role(can_skip_steps_in_sequence), + }; + + return roles; + } + + public const string can_run_ground_mode = nameof(can_run_ground_mode); + public const string can_run_automat_mode = nameof(can_run_automat_mode); + public const string can_run_service_mode = nameof(can_run_service_mode); + public const string process_settings_access = nameof(process_settings_access); + public const string process_traceability_access = nameof(process_traceability_access); + public const string can_skip_steps_in_sequence = nameof(can_skip_steps_in_sequence); +} diff --git a/src/components.rexroth.tightening/app/ix-blazor/Properties/launchSettings.json b/src/components.rexroth.tightening/app/ix-blazor/Properties/launchSettings.json new file mode 100644 index 000000000..ff08147fd --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Properties/launchSettings.json @@ -0,0 +1,37 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:8555", + "sslPort": 44324 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5073", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7225;http://localhost:5073", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/src/components.rexroth.tightening/app/ix-blazor/Shared/MainLayout.razor b/src/components.rexroth.tightening/app/ix-blazor/Shared/MainLayout.razor new file mode 100644 index 000000000..8c25640fd --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Shared/MainLayout.razor @@ -0,0 +1,19 @@ +@inherits LayoutComponentBase + +AXOpen.Components.Rexroth.Tightening.blazor + +
+ + +
+
+ +
+ +
+ @Body +
+
+
diff --git a/src/components.rexroth.tightening/app/ix-blazor/Shared/MainLayout.razor.css b/src/components.rexroth.tightening/app/ix-blazor/Shared/MainLayout.razor.css new file mode 100644 index 000000000..551e4b276 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Shared/MainLayout.razor.css @@ -0,0 +1,70 @@ +.page { + position: relative; + display: flex; + flex-direction: column; +} + +main { + flex: 1; +} + +.sidebar { + background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); +} + +.top-row { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-end; + height: 3.5rem; + display: flex; + align-items: center; +} + + .top-row ::deep a, .top-row .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + } + + .top-row a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row:not(.auth) { + display: none; + } + + .top-row.auth { + justify-content: space-between; + } + + .top-row a, .top-row .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page { + flex-direction: row; + } + + .sidebar { + width: 250px; + height: 100vh; + position: sticky; + top: 0; + } + + .top-row { + position: sticky; + top: 0; + z-index: 1; + } + + .top-row, article { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} diff --git a/src/components.rexroth.tightening/app/ix-blazor/Shared/NavMenu.razor b/src/components.rexroth.tightening/app/ix-blazor/Shared/NavMenu.razor new file mode 100644 index 000000000..f8d91d2f2 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Shared/NavMenu.razor @@ -0,0 +1,44 @@ + + + + +@code { + private bool collapseNavMenu = true; + + private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null; + + private void ToggleNavMenu() + { + collapseNavMenu = !collapseNavMenu; + } +} diff --git a/src/components.rexroth.tightening/app/ix-blazor/Shared/NavMenu.razor.css b/src/components.rexroth.tightening/app/ix-blazor/Shared/NavMenu.razor.css new file mode 100644 index 000000000..604b7a1a1 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Shared/NavMenu.razor.css @@ -0,0 +1,68 @@ +.navbar-toggler { + background-color: rgba(255, 255, 255, 0.1); +} + +.top-row { + height: 3.5rem; + background-color: rgba(0,0,0,0.4); +} + +.navbar-brand { + font-size: 1.1rem; +} + +.oi { + width: 2rem; + font-size: 1.1rem; + vertical-align: text-top; + top: -2px; +} + +.nav-item { + font-size: 0.9rem; + padding-bottom: 0.5rem; +} + + .nav-item:first-of-type { + padding-top: 1rem; + } + + .nav-item:last-of-type { + padding-bottom: 1rem; + } + + .nav-item ::deep a { + color: #d7d7d7; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + } + +.nav-item ::deep a.active { + background-color: rgba(255,255,255,0.25); + color: white; +} + +.nav-item ::deep a:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +@media (min-width: 641px) { + .navbar-toggler { + display: none; + } + + .collapse { + /* Never collapse the sidebar for wide screens */ + display: block; + } + + .nav-scrollable { + /* Allow sidebar to scroll for tall menus */ + height: calc(100vh - 3.5rem); + overflow-y: auto; + } +} diff --git a/src/components.rexroth.tightening/app/ix-blazor/Usings.cs b/src/components.rexroth.tightening/app/ix-blazor/Usings.cs new file mode 100644 index 000000000..1d22e48b4 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/Usings.cs @@ -0,0 +1,2 @@ +global using AXOpen.Core; +using AXOpen.Components.Rexroth.Tightening.blazor.Pages; diff --git a/src/components.rexroth.tightening/app/ix-blazor/_Imports.razor b/src/components.rexroth.tightening/app/ix-blazor/_Imports.razor new file mode 100644 index 000000000..1bdb166a3 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/_Imports.razor @@ -0,0 +1,16 @@ +@using System.Net.Http +@using AXOpen.Core.Resources +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Authorization +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop +@using AXOpen.Components.Rexroth.Tightening.blazorapp +@using AXOpen.Components.Rexroth.Tightening.blazorapp.Shared + +@using AXSharp.Presentation.Blazor.Controls.RenderableContent +@using Microsoft.Extensions.Localization + +@inject IStringLocalizer PlcLocalizer diff --git a/src/components.rexroth.tightening/app/ix-blazor/appsettings.Development.json b/src/components.rexroth.tightening/app/ix-blazor/appsettings.Development.json new file mode 100644 index 000000000..770d3e931 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "DetailedErrors": true, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/src/components.rexroth.tightening/app/ix-blazor/appsettings.json b/src/components.rexroth.tightening/app/ix-blazor/appsettings.json new file mode 100644 index 000000000..10f68b8c8 --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/src/components.rexroth.tightening/app/ix-blazor/wwwroot/css/bootstrap/bootstrap.min.css b/src/components.rexroth.tightening/app/ix-blazor/wwwroot/css/bootstrap/bootstrap.min.css new file mode 100644 index 000000000..02ae65b5f --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/wwwroot/css/bootstrap/bootstrap.min.css @@ -0,0 +1,7 @@ +@charset "UTF-8";/*! + * Bootstrap v5.1.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/src/components.rexroth.tightening/app/ix-blazor/wwwroot/css/bootstrap/bootstrap.min.css.map b/src/components.rexroth.tightening/app/ix-blazor/wwwroot/css/bootstrap/bootstrap.min.css.map new file mode 100644 index 000000000..afcd9e33e --- /dev/null +++ b/src/components.rexroth.tightening/app/ix-blazor/wwwroot/css/bootstrap/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","../../scss/mixins/_border-radius.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/_tables.scss","../../scss/mixins/_table-variants.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_form-select.scss","../../scss/forms/_form-check.scss","../../scss/forms/_form-range.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/mixins/_forms.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/_button-group.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_accordion.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/mixins/_backdrop.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/_offcanvas.scss","../../scss/_placeholders.scss","../../scss/helpers/_colored-links.scss","../../scss/helpers/_ratio.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"iBAAA;;;;;ACAA,MAQI,UAAA,QAAA,YAAA,QAAA,YAAA,QAAA,UAAA,QAAA,SAAA,QAAA,YAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAAA,UAAA,QAAA,WAAA,KAAA,UAAA,QAAA,eAAA,QAIA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAAA,cAAA,QAIA,aAAA,QAAA,eAAA,QAAA,aAAA,QAAA,UAAA,QAAA,aAAA,QAAA,YAAA,QAAA,WAAA,QAAA,UAAA,QAIA,iBAAA,EAAA,CAAA,GAAA,CAAA,IAAA,mBAAA,GAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,GAAA,CAAA,GAAA,cAAA,EAAA,CAAA,GAAA,CAAA,IAAA,iBAAA,GAAA,CAAA,GAAA,CAAA,EAAA,gBAAA,GAAA,CAAA,EAAA,CAAA,GAAA,eAAA,GAAA,CAAA,GAAA,CAAA,IAAA,cAAA,EAAA,CAAA,EAAA,CAAA,GAGF,eAAA,GAAA,CAAA,GAAA,CAAA,IACA,eAAA,CAAA,CAAA,CAAA,CAAA,EACA,cAAA,EAAA,CAAA,EAAA,CAAA,GAMA,qBAAA,SAAA,CAAA,aAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBACA,oBAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UACA,cAAA,2EAQA,sBAAA,0BACA,oBAAA,KACA,sBAAA,IACA,sBAAA,IACA,gBAAA,QAIA,aAAA,KClCF,EC+CA,QADA,SD3CE,WAAA,WAeE,8CANJ,MAOM,gBAAA,QAcN,KACE,OAAA,EACA,YAAA,2BEmPI,UAAA,yBFjPJ,YAAA,2BACA,YAAA,2BACA,MAAA,qBACA,WAAA,0BACA,iBAAA,kBACA,yBAAA,KACA,4BAAA,YAUF,GACE,OAAA,KAAA,EACA,MAAA,QACA,iBAAA,aACA,OAAA,EACA,QAAA,IAGF,eACE,OAAA,IAUF,IAAA,IAAA,IAAA,IAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAGA,YAAA,IACA,YAAA,IAIF,IAAA,GEwMQ,UAAA,uBAlKJ,0BFtCJ,IAAA,GE+MQ,UAAA,QF1MR,IAAA,GEmMQ,UAAA,sBAlKJ,0BFjCJ,IAAA,GE0MQ,UAAA,MFrMR,IAAA,GE8LQ,UAAA,oBAlKJ,0BF5BJ,IAAA,GEqMQ,UAAA,SFhMR,IAAA,GEyLQ,UAAA,sBAlKJ,0BFvBJ,IAAA,GEgMQ,UAAA,QF3LR,IAAA,GEgLM,UAAA,QF3KN,IAAA,GE2KM,UAAA,KFhKN,EACE,WAAA,EACA,cAAA,KCmBF,6BDRA,YAEE,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,iCAAA,KAAA,yBAAA,KAMF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QAMF,GCIA,GDFE,aAAA,KCQF,GDLA,GCIA,GDDE,WAAA,EACA,cAAA,KAGF,MCKA,MACA,MAFA,MDAE,cAAA,EAGF,GACE,YAAA,IAKF,GACE,cAAA,MACA,YAAA,EAMF,WACE,OAAA,EAAA,EAAA,KAQF,ECNA,ODQE,YAAA,OAQF,OAAA,ME4EM,UAAA,OFrEN,MAAA,KACE,QAAA,KACA,iBAAA,QASF,ICpBA,IDsBE,SAAA,SEwDI,UAAA,MFtDJ,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAKN,EACE,MAAA,QACA,gBAAA,UAEA,QACE,MAAA,QAWF,2BAAA,iCAEE,MAAA,QACA,gBAAA,KCxBJ,KACA,ID8BA,IC7BA,KDiCE,YAAA,yBEcI,UAAA,IFZJ,UAAA,IACA,aAAA,cAOF,IACE,QAAA,MACA,WAAA,EACA,cAAA,KACA,SAAA,KEAI,UAAA,OFKJ,SELI,UAAA,QFOF,MAAA,QACA,WAAA,OAIJ,KEZM,UAAA,OFcJ,MAAA,QACA,UAAA,WAGA,OACE,MAAA,QAIJ,IACE,QAAA,MAAA,MExBI,UAAA,OF0BJ,MAAA,KACA,iBAAA,QG7SE,cAAA,MHgTF,QACE,QAAA,EE/BE,UAAA,IFiCF,YAAA,IASJ,OACE,OAAA,EAAA,EAAA,KAMF,ICjDA,IDmDE,eAAA,OAQF,MACE,aAAA,OACA,gBAAA,SAGF,QACE,YAAA,MACA,eAAA,MACA,MAAA,QACA,WAAA,KAOF,GAEE,WAAA,QACA,WAAA,qBCxDF,MAGA,GAFA,MAGA,GDuDA,MCzDA,GD+DE,aAAA,QACA,aAAA,MACA,aAAA,EAQF,MACE,QAAA,aAMF,OAEE,cAAA,EAQF,iCACE,QAAA,ECtEF,OD2EA,MCzEA,SADA,OAEA,SD6EE,OAAA,EACA,YAAA,QE9HI,UAAA,QFgIJ,YAAA,QAIF,OC5EA,OD8EE,eAAA,KAKF,cACE,OAAA,QAGF,OAGE,UAAA,OAGA,gBACE,QAAA,EAOJ,0CACE,QAAA,KClFF,cACA,aACA,cDwFA,OAIE,mBAAA,OCxFF,6BACA,4BACA,6BDyFI,sBACE,OAAA,QAON,mBACE,QAAA,EACA,aAAA,KAKF,SACE,OAAA,SAUF,SACE,UAAA,EACA,QAAA,EACA,OAAA,EACA,OAAA,EAQF,OACE,MAAA,KACA,MAAA,KACA,QAAA,EACA,cAAA,MEnNM,UAAA,sBFsNN,YAAA,QExXE,0BFiXJ,OExMQ,UAAA,QFiNN,SACE,MAAA,KChGJ,kCDuGA,uCCxGA,mCADA,+BAGA,oCAJA,6BAKA,mCD4GE,QAAA,EAGF,4BACE,OAAA,KASF,cACE,eAAA,KACA,mBAAA,UAmBF,4BACE,mBAAA,KAKF,+BACE,QAAA,EAMF,uBACE,KAAA,QAMF,6BACE,KAAA,QACA,mBAAA,OAKF,OACE,QAAA,aAKF,OACE,OAAA,EAOF,QACE,QAAA,UACA,OAAA,QAQF,SACE,eAAA,SAQF,SACE,QAAA,eInlBF,MFyQM,UAAA,QEvQJ,YAAA,IAKA,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,ME7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,QE7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,ME7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,QE7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,ME7QN,WFsQM,UAAA,uBEpQJ,YAAA,IACA,YAAA,IFiGA,0BEpGF,WF6QM,UAAA,QEvPR,eCrDE,aAAA,EACA,WAAA,KDyDF,aC1DE,aAAA,EACA,WAAA,KD4DF,kBACE,QAAA,aAEA,mCACE,aAAA,MAUJ,YFsNM,UAAA,OEpNJ,eAAA,UAIF,YACE,cAAA,KF+MI,UAAA,QE5MJ,wBACE,cAAA,EAIJ,mBACE,WAAA,MACA,cAAA,KFqMI,UAAA,OEnMJ,MAAA,QAEA,2BACE,QAAA,KE9FJ,WCIE,UAAA,KAGA,OAAA,KDDF,eACE,QAAA,OACA,iBAAA,KACA,OAAA,IAAA,MAAA,QHGE,cAAA,OIRF,UAAA,KAGA,OAAA,KDcF,QAEE,QAAA,aAGF,YACE,cAAA,MACA,YAAA,EAGF,gBJ+PM,UAAA,OI7PJ,MAAA,QElCA,WPqmBF,iBAGA,cACA,cACA,cAHA,cADA,eQzmBE,MAAA,KACA,cAAA,0BACA,aAAA,0BACA,aAAA,KACA,YAAA,KCwDE,yBF5CE,WAAA,cACE,UAAA,OE2CJ,yBF5CE,WAAA,cAAA,cACE,UAAA,OE2CJ,yBF5CE,WAAA,cAAA,cAAA,cACE,UAAA,OE2CJ,0BF5CE,WAAA,cAAA,cAAA,cAAA,cACE,UAAA,QE2CJ,0BF5CE,WAAA,cAAA,cAAA,cAAA,cAAA,eACE,UAAA,QGfN,KCAA,cAAA,OACA,cAAA,EACA,QAAA,KACA,UAAA,KACA,WAAA,8BACA,aAAA,+BACA,YAAA,+BDHE,OCYF,YAAA,EACA,MAAA,KACA,UAAA,KACA,cAAA,8BACA,aAAA,8BACA,WAAA,mBA+CI,KACE,KAAA,EAAA,EAAA,GAGF,iBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,cACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,cACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,UAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,OAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,QAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,UAxDV,YAAA,YAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,aAwDU,UAxDV,YAAA,IAwDU,WAxDV,YAAA,aAwDU,WAxDV,YAAA,aAmEM,KXusBR,MWrsBU,cAAA,EAGF,KXusBR,MWrsBU,cAAA,EAPF,KXitBR,MW/sBU,cAAA,QAGF,KXitBR,MW/sBU,cAAA,QAPF,KX2tBR,MWztBU,cAAA,OAGF,KX2tBR,MWztBU,cAAA,OAPF,KXquBR,MWnuBU,cAAA,KAGF,KXquBR,MWnuBU,cAAA,KAPF,KX+uBR,MW7uBU,cAAA,OAGF,KX+uBR,MW7uBU,cAAA,OAPF,KXyvBR,MWvvBU,cAAA,KAGF,KXyvBR,MWvvBU,cAAA,KFzDN,yBESE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QX45BR,SW15BU,cAAA,EAGF,QX45BR,SW15BU,cAAA,EAPF,QXs6BR,SWp6BU,cAAA,QAGF,QXs6BR,SWp6BU,cAAA,QAPF,QXg7BR,SW96BU,cAAA,OAGF,QXg7BR,SW96BU,cAAA,OAPF,QX07BR,SWx7BU,cAAA,KAGF,QX07BR,SWx7BU,cAAA,KAPF,QXo8BR,SWl8BU,cAAA,OAGF,QXo8BR,SWl8BU,cAAA,OAPF,QX88BR,SW58BU,cAAA,KAGF,QX88BR,SW58BU,cAAA,MFzDN,yBESE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QXinCR,SW/mCU,cAAA,EAGF,QXinCR,SW/mCU,cAAA,EAPF,QX2nCR,SWznCU,cAAA,QAGF,QX2nCR,SWznCU,cAAA,QAPF,QXqoCR,SWnoCU,cAAA,OAGF,QXqoCR,SWnoCU,cAAA,OAPF,QX+oCR,SW7oCU,cAAA,KAGF,QX+oCR,SW7oCU,cAAA,KAPF,QXypCR,SWvpCU,cAAA,OAGF,QXypCR,SWvpCU,cAAA,OAPF,QXmqCR,SWjqCU,cAAA,KAGF,QXmqCR,SWjqCU,cAAA,MFzDN,yBESE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QXs0CR,SWp0CU,cAAA,EAGF,QXs0CR,SWp0CU,cAAA,EAPF,QXg1CR,SW90CU,cAAA,QAGF,QXg1CR,SW90CU,cAAA,QAPF,QX01CR,SWx1CU,cAAA,OAGF,QX01CR,SWx1CU,cAAA,OAPF,QXo2CR,SWl2CU,cAAA,KAGF,QXo2CR,SWl2CU,cAAA,KAPF,QX82CR,SW52CU,cAAA,OAGF,QX82CR,SW52CU,cAAA,OAPF,QXw3CR,SWt3CU,cAAA,KAGF,QXw3CR,SWt3CU,cAAA,MFzDN,0BESE,QACE,KAAA,EAAA,EAAA,GAGF,oBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,iBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,aAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,UAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,aAxDV,YAAA,EAwDU,aAxDV,YAAA,YAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,aAwDU,aAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAmEM,QX2hDR,SWzhDU,cAAA,EAGF,QX2hDR,SWzhDU,cAAA,EAPF,QXqiDR,SWniDU,cAAA,QAGF,QXqiDR,SWniDU,cAAA,QAPF,QX+iDR,SW7iDU,cAAA,OAGF,QX+iDR,SW7iDU,cAAA,OAPF,QXyjDR,SWvjDU,cAAA,KAGF,QXyjDR,SWvjDU,cAAA,KAPF,QXmkDR,SWjkDU,cAAA,OAGF,QXmkDR,SWjkDU,cAAA,OAPF,QX6kDR,SW3kDU,cAAA,KAGF,QX6kDR,SW3kDU,cAAA,MFzDN,0BESE,SACE,KAAA,EAAA,EAAA,GAGF,qBApCJ,KAAA,EAAA,EAAA,KACA,MAAA,KAcA,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,KAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,IAFF,kBACE,KAAA,EAAA,EAAA,KACA,MAAA,eA+BE,cAhDJ,KAAA,EAAA,EAAA,KACA,MAAA,KAqDQ,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,YA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,WAhEN,KAAA,EAAA,EAAA,KACA,MAAA,IA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,aA+DM,YAhEN,KAAA,EAAA,EAAA,KACA,MAAA,KAuEQ,cAxDV,YAAA,EAwDU,cAxDV,YAAA,YAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,aAwDU,cAxDV,YAAA,IAwDU,eAxDV,YAAA,aAwDU,eAxDV,YAAA,aAmEM,SXgvDR,UW9uDU,cAAA,EAGF,SXgvDR,UW9uDU,cAAA,EAPF,SX0vDR,UWxvDU,cAAA,QAGF,SX0vDR,UWxvDU,cAAA,QAPF,SXowDR,UWlwDU,cAAA,OAGF,SXowDR,UWlwDU,cAAA,OAPF,SX8wDR,UW5wDU,cAAA,KAGF,SX8wDR,UW5wDU,cAAA,KAPF,SXwxDR,UWtxDU,cAAA,OAGF,SXwxDR,UWtxDU,cAAA,OAPF,SXkyDR,UWhyDU,cAAA,KAGF,SXkyDR,UWhyDU,cAAA,MCpHV,OACE,cAAA,YACA,qBAAA,YACA,yBAAA,QACA,sBAAA,oBACA,wBAAA,QACA,qBAAA,mBACA,uBAAA,QACA,oBAAA,qBAEA,MAAA,KACA,cAAA,KACA,MAAA,QACA,eAAA,IACA,aAAA,QAOA,yBACE,QAAA,MAAA,MACA,iBAAA,mBACA,oBAAA,IACA,WAAA,MAAA,EAAA,EAAA,EAAA,OAAA,0BAGF,aACE,eAAA,QAGF,aACE,eAAA,OAIF,uCACE,oBAAA,aASJ,aACE,aAAA,IAUA,4BACE,QAAA,OAAA,OAeF,gCACE,aAAA,IAAA,EAGA,kCACE,aAAA,EAAA,IAOJ,oCACE,oBAAA,EASF,yCACE,qBAAA,2BACA,MAAA,8BAQJ,cACE,qBAAA,0BACA,MAAA,6BAQA,4BACE,qBAAA,yBACA,MAAA,4BCxHF,eAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,iBAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,eAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,YAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,eAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,cAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,aAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QAfF,YAME,cAAA,QACA,sBAAA,QACA,yBAAA,KACA,qBAAA,QACA,wBAAA,KACA,oBAAA,QACA,uBAAA,KAEA,MAAA,KACA,aAAA,QDgIA,kBACE,WAAA,KACA,2BAAA,MHvEF,4BGqEA,qBACE,WAAA,KACA,2BAAA,OHvEF,4BGqEA,qBACE,WAAA,KACA,2BAAA,OHvEF,4BGqEA,qBACE,WAAA,KACA,2BAAA,OHvEF,6BGqEA,qBACE,WAAA,KACA,2BAAA,OHvEF,6BGqEA,sBACE,WAAA,KACA,2BAAA,OE/IN,YACE,cAAA,MASF,gBACE,YAAA,oBACA,eAAA,oBACA,cAAA,EboRI,UAAA,QahRJ,YAAA,IAIF,mBACE,YAAA,kBACA,eAAA,kBb0QI,UAAA,QatQN,mBACE,YAAA,mBACA,eAAA,mBboQI,UAAA,QcjSN,WACE,WAAA,OdgSI,UAAA,Oc5RJ,MAAA,QCLF,cACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,Of8RI,UAAA,Ke3RJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,QACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KdGE,cAAA,OeHE,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCDhBN,cCiBQ,WAAA,MDGN,yBACE,SAAA,OAEA,wDACE,OAAA,QAKJ,oBACE,MAAA,QACA,iBAAA,KACA,aAAA,QACA,QAAA,EAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAOJ,2CAEE,OAAA,MAIF,gCACE,MAAA,QAEA,QAAA,EAHF,2BACE,MAAA,QAEA,QAAA,EAQF,uBAAA,wBAEE,iBAAA,QAGA,QAAA,EAIF,oCACE,QAAA,QAAA,OACA,OAAA,SAAA,QACA,mBAAA,OAAA,kBAAA,OACA,MAAA,QE3EF,iBAAA,QF6EE,eAAA,KACA,aAAA,QACA,aAAA,MACA,aAAA,EACA,wBAAA,IACA,cAAA,ECtEE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCDuDJ,oCCtDM,WAAA,MDqEN,yEACE,iBAAA,QAGF,0CACE,QAAA,QAAA,OACA,OAAA,SAAA,QACA,mBAAA,OAAA,kBAAA,OACA,MAAA,QE9FF,iBAAA,QFgGE,eAAA,KACA,aAAA,QACA,aAAA,MACA,aAAA,EACA,wBAAA,IACA,cAAA,ECzFE,mBAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCD0EJ,0CCzEM,mBAAA,KAAA,WAAA,MDwFN,+EACE,iBAAA,QASJ,wBACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,EACA,cAAA,EACA,YAAA,IACA,MAAA,QACA,iBAAA,YACA,OAAA,MAAA,YACA,aAAA,IAAA,EAEA,wCAAA,wCAEE,cAAA,EACA,aAAA,EAWJ,iBACE,WAAA,0BACA,QAAA,OAAA,MfmJI,UAAA,QClRF,cAAA,McmIF,uCACE,QAAA,OAAA,MACA,OAAA,QAAA,OACA,mBAAA,MAAA,kBAAA,MAGF,6CACE,QAAA,OAAA,MACA,OAAA,QAAA,OACA,mBAAA,MAAA,kBAAA,MAIJ,iBACE,WAAA,yBACA,QAAA,MAAA,KfgII,UAAA,QClRF,cAAA,McsJF,uCACE,QAAA,MAAA,KACA,OAAA,OAAA,MACA,mBAAA,KAAA,kBAAA,KAGF,6CACE,QAAA,MAAA,KACA,OAAA,OAAA,MACA,mBAAA,KAAA,kBAAA,KAQF,sBACE,WAAA,2BAGF,yBACE,WAAA,0BAGF,yBACE,WAAA,yBAKJ,oBACE,MAAA,KACA,OAAA,KACA,QAAA,QAEA,mDACE,OAAA,QAGF,uCACE,OAAA,Md/LA,cAAA,OcmMF,0CACE,OAAA,MdpMA,cAAA,OiBdJ,aACE,QAAA,MACA,MAAA,KACA,QAAA,QAAA,QAAA,QAAA,OAEA,mBAAA,oBlB2RI,UAAA,KkBxRJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,iBAAA,gOACA,kBAAA,UACA,oBAAA,MAAA,OAAA,OACA,gBAAA,KAAA,KACA,OAAA,IAAA,MAAA,QjBFE,cAAA,OeHE,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YESJ,mBAAA,KAAA,gBAAA,KAAA,WAAA,KFLI,uCEfN,aFgBQ,WAAA,MEMN,mBACE,aAAA,QACA,QAAA,EAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,uBAAA,mCAEE,cAAA,OACA,iBAAA,KAGF,sBAEE,iBAAA,QAKF,4BACE,MAAA,YACA,YAAA,EAAA,EAAA,EAAA,QAIJ,gBACE,YAAA,OACA,eAAA,OACA,aAAA,MlByOI,UAAA,QkBrON,gBACE,YAAA,MACA,eAAA,MACA,aAAA,KlBkOI,UAAA,QmBjSN,YACE,QAAA,MACA,WAAA,OACA,aAAA,MACA,cAAA,QAEA,8BACE,MAAA,KACA,YAAA,OAIJ,kBACE,MAAA,IACA,OAAA,IACA,WAAA,MACA,eAAA,IACA,iBAAA,KACA,kBAAA,UACA,oBAAA,OACA,gBAAA,QACA,OAAA,IAAA,MAAA,gBACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KACA,2BAAA,MAAA,aAAA,MAGA,iClBXE,cAAA,MkBeF,8BAEE,cAAA,IAGF,yBACE,OAAA,gBAGF,wBACE,aAAA,QACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAGF,0BACE,iBAAA,QACA,aAAA,QAEA,yCAII,iBAAA,8NAIJ,sCAII,iBAAA,sIAKN,+CACE,iBAAA,QACA,aAAA,QAKE,iBAAA,wNAIJ,2BACE,eAAA,KACA,OAAA,KACA,QAAA,GAOA,6CAAA,8CACE,QAAA,GAcN,aACE,aAAA,MAEA,+BACE,MAAA,IACA,YAAA,OACA,iBAAA,uJACA,oBAAA,KAAA,OlB9FA,cAAA,IeHE,WAAA,oBAAA,KAAA,YAIA,uCGyFJ,+BHxFM,WAAA,MGgGJ,qCACE,iBAAA,yIAGF,uCACE,oBAAA,MAAA,OAKE,iBAAA,sIAMR,mBACE,QAAA,aACA,aAAA,KAGF,WACE,SAAA,SACA,KAAA,cACA,eAAA,KAIE,yBAAA,0BACE,eAAA,KACA,OAAA,KACA,QAAA,IC9IN,YACE,MAAA,KACA,OAAA,OACA,QAAA,EACA,iBAAA,YACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KAEA,kBACE,QAAA,EAIA,wCAA0B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,OAAA,qBAC1B,oCAA0B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,OAAA,qBAG5B,8BACE,OAAA,EAGF,kCACE,MAAA,KACA,OAAA,KACA,WAAA,QHzBF,iBAAA,QG2BE,OAAA,EnBZA,cAAA,KeHE,mBAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YImBF,mBAAA,KAAA,WAAA,KJfE,uCIMJ,kCJLM,mBAAA,KAAA,WAAA,MIgBJ,yCHjCF,iBAAA,QGsCA,2CACE,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YnB7BA,cAAA,KmBkCF,8BACE,MAAA,KACA,OAAA,KHnDF,iBAAA,QGqDE,OAAA,EnBtCA,cAAA,KeHE,gBAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YI6CF,gBAAA,KAAA,WAAA,KJzCE,uCIiCJ,8BJhCM,gBAAA,KAAA,WAAA,MI0CJ,qCH3DF,iBAAA,QGgEA,8BACE,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YnBvDA,cAAA,KmB4DF,qBACE,eAAA,KAEA,2CACE,iBAAA,QAGF,uCACE,iBAAA,QCvFN,eACE,SAAA,SAEA,6BtB+iFF,4BsB7iFI,OAAA,mBACA,YAAA,KAGF,qBACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,OAAA,KACA,QAAA,KAAA,OACA,eAAA,KACA,OAAA,IAAA,MAAA,YACA,iBAAA,EAAA,ELDE,WAAA,QAAA,IAAA,WAAA,CAAA,UAAA,IAAA,YAIA,uCKXJ,qBLYM,WAAA,MKCN,6BACE,QAAA,KAAA,OAEA,+CACE,MAAA,YADF,0CACE,MAAA,YAGF,0DAEE,YAAA,SACA,eAAA,QAHF,mCAAA,qDAEE,YAAA,SACA,eAAA,QAGF,8CACE,YAAA,SACA,eAAA,QAIJ,4BACE,YAAA,SACA,eAAA,QAMA,gEACE,QAAA,IACA,UAAA,WAAA,mBAAA,mBAFF,yCtBmjFJ,2DACA,kCsBnjFM,QAAA,IACA,UAAA,WAAA,mBAAA,mBAKF,oDACE,QAAA,IACA,UAAA,WAAA,mBAAA,mBCtDN,aACE,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,QACA,MAAA,KAEA,2BvB2mFF,0BuBzmFI,SAAA,SACA,KAAA,EAAA,EAAA,KACA,MAAA,GACA,UAAA,EAIF,iCvBymFF,gCuBvmFI,QAAA,EAMF,kBACE,SAAA,SACA,QAAA,EAEA,wBACE,QAAA,EAWN,kBACE,QAAA,KACA,YAAA,OACA,QAAA,QAAA,OtBsPI,UAAA,KsBpPJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,OACA,YAAA,OACA,iBAAA,QACA,OAAA,IAAA,MAAA,QrBpCE,cAAA,OFuoFJ,qBuBzlFA,8BvBulFA,6BACA,kCuBplFE,QAAA,MAAA,KtBgOI,UAAA,QClRF,cAAA,MFgpFJ,qBuBzlFA,8BvBulFA,6BACA,kCuBplFE,QAAA,OAAA,MtBuNI,UAAA,QClRF,cAAA,MqBgEJ,6BvBulFA,6BuBrlFE,cAAA,KvB0lFF,uEuB7kFI,8FrB/DA,wBAAA,EACA,2BAAA,EFgpFJ,iEuB3kFI,2FrBtEA,wBAAA,EACA,2BAAA,EqBgFF,0IACE,YAAA,KrBpEA,uBAAA,EACA,0BAAA,EsBzBF,gBACE,QAAA,KACA,MAAA,KACA,WAAA,OvByQE,UAAA,OuBtQF,MAAA,QAGF,eACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MvB4PE,UAAA,QuBzPF,MAAA,KACA,iBAAA,mBtB1BA,cAAA,OFmsFJ,0BACA,yBwBrqFI,sCxBmqFJ,qCwBjqFM,QAAA,MA9CF,uBAAA,mCAoDE,aAAA,QAGE,cAAA,qBACA,iBAAA,2OACA,kBAAA,UACA,oBAAA,MAAA,wBAAA,OACA,gBAAA,sBAAA,sBAGF,6BAAA,yCACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBAhEJ,2CAAA,+BAyEI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBA1EJ,sBAAA,kCAiFE,aAAA,QAGE,kDAAA,gDAAA,8DAAA,4DAEE,cAAA,SACA,iBAAA,+NAAA,CAAA,2OACA,oBAAA,MAAA,OAAA,MAAA,CAAA,OAAA,MAAA,QACA,gBAAA,KAAA,IAAA,CAAA,sBAAA,sBAIJ,4BAAA,wCACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBA/FJ,2BAAA,uCAsGE,aAAA,QAEA,mCAAA,+CACE,iBAAA,QAGF,iCAAA,6CACE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,6CAAA,yDACE,MAAA,QAKJ,qDACE,YAAA,KAvHF,oCxBwwFJ,mCwBxwFI,gDxBuwFJ,+CwBxoFQ,QAAA,EAIF,0CxB0oFN,yCwB1oFM,sDxByoFN,qDwBxoFQ,QAAA,EAjHN,kBACE,QAAA,KACA,MAAA,KACA,WAAA,OvByQE,UAAA,OuBtQF,MAAA,QAGF,iBACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MvB4PE,UAAA,QuBzPF,MAAA,KACA,iBAAA,mBtB1BA,cAAA,OF4xFJ,8BACA,6BwB9vFI,0CxB4vFJ,yCwB1vFM,QAAA,MA9CF,yBAAA,qCAoDE,aAAA,QAGE,cAAA,qBACA,iBAAA,2TACA,kBAAA,UACA,oBAAA,MAAA,wBAAA,OACA,gBAAA,sBAAA,sBAGF,+BAAA,2CACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBAhEJ,6CAAA,iCAyEI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBA1EJ,wBAAA,oCAiFE,aAAA,QAGE,oDAAA,kDAAA,gEAAA,8DAEE,cAAA,SACA,iBAAA,+NAAA,CAAA,2TACA,oBAAA,MAAA,OAAA,MAAA,CAAA,OAAA,MAAA,QACA,gBAAA,KAAA,IAAA,CAAA,sBAAA,sBAIJ,8BAAA,0CACE,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,OAAA,oBA/FJ,6BAAA,yCAsGE,aAAA,QAEA,qCAAA,iDACE,iBAAA,QAGF,mCAAA,+CACE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,+CAAA,2DACE,MAAA,QAKJ,uDACE,YAAA,KAvHF,sCxBi2FJ,qCwBj2FI,kDxBg2FJ,iDwB/tFQ,QAAA,EAEF,4CxBmuFN,2CwBnuFM,wDxBkuFN,uDwBjuFQ,QAAA,ECtIR,KACE,QAAA,aAEA,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,OACA,gBAAA,KAEA,eAAA,OACA,OAAA,QACA,oBAAA,KAAA,iBAAA,KAAA,YAAA,KACA,iBAAA,YACA,OAAA,IAAA,MAAA,YC8GA,QAAA,QAAA,OzBsKI,UAAA,KClRF,cAAA,OeHE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCQhBN,KRiBQ,WAAA,MQAN,WACE,MAAA,QAIF,sBAAA,WAEE,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAcF,cAAA,cAAA,uBAGE,eAAA,KACA,QAAA,IAYF,aCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,mBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,8BAAA,mBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAIJ,+BAAA,gCAAA,oBAAA,oBAAA,mCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,qCAAA,sCAAA,0BAAA,0BAAA,yCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,sBAAA,sBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,eCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,qBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,gCAAA,qBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,iCAAA,kCAAA,sBAAA,sBAAA,qCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,uCAAA,wCAAA,4BAAA,4BAAA,2CAKI,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKN,wBAAA,wBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,aCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,mBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,8BAAA,mBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAIJ,+BAAA,gCAAA,oBAAA,oBAAA,mCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,qCAAA,sCAAA,0BAAA,0BAAA,yCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,sBAAA,sBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,UCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,gBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,2BAAA,gBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAIJ,4BAAA,6BAAA,iBAAA,iBAAA,gCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,kCAAA,mCAAA,uBAAA,uBAAA,sCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,mBAAA,mBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,aCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,mBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,8BAAA,mBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAIJ,+BAAA,gCAAA,oBAAA,oBAAA,mCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,qCAAA,sCAAA,0BAAA,0BAAA,yCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,sBAAA,sBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,YCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,kBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,6BAAA,kBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAIJ,8BAAA,+BAAA,mBAAA,mBAAA,kCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,oCAAA,qCAAA,yBAAA,yBAAA,wCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,qBAAA,qBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,WCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,iBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,4BAAA,iBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,6BAAA,8BAAA,kBAAA,kBAAA,iCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,mCAAA,oCAAA,wBAAA,wBAAA,uCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKN,oBAAA,oBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDZF,UCvCA,MAAA,KRhBA,iBAAA,QQkBA,aAAA,QAGA,gBACE,MAAA,KRtBF,iBAAA,QQwBE,aAAA,QAGF,2BAAA,gBAEE,MAAA,KR7BF,iBAAA,QQ+BE,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,OAAA,kBAIJ,4BAAA,6BAAA,iBAAA,iBAAA,gCAKE,MAAA,KACA,iBAAA,QAGA,aAAA,QAEA,kCAAA,mCAAA,uBAAA,uBAAA,sCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,kBAKN,mBAAA,mBAEE,MAAA,KACA,iBAAA,QAGA,aAAA,QDNF,qBCmBA,MAAA,QACA,aAAA,QAEA,2BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,sCAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,uCAAA,wCAAA,4BAAA,0CAAA,4BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6CAAA,8CAAA,kCAAA,gDAAA,kCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,8BAAA,8BAEE,MAAA,QACA,iBAAA,YDvDF,uBCmBA,MAAA,QACA,aAAA,QAEA,6BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,wCAAA,6BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAGF,yCAAA,0CAAA,8BAAA,4CAAA,8BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,+CAAA,gDAAA,oCAAA,kDAAA,oCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKN,gCAAA,gCAEE,MAAA,QACA,iBAAA,YDvDF,qBCmBA,MAAA,QACA,aAAA,QAEA,2BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,sCAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAGF,uCAAA,wCAAA,4BAAA,0CAAA,4BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6CAAA,8CAAA,kCAAA,gDAAA,kCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,8BAAA,8BAEE,MAAA,QACA,iBAAA,YDvDF,kBCmBA,MAAA,QACA,aAAA,QAEA,wBACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,mCAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,OAAA,oBAGF,oCAAA,qCAAA,yBAAA,uCAAA,yBAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,0CAAA,2CAAA,+BAAA,6CAAA,+BAKI,WAAA,EAAA,EAAA,EAAA,OAAA,oBAKN,2BAAA,2BAEE,MAAA,QACA,iBAAA,YDvDF,qBCmBA,MAAA,QACA,aAAA,QAEA,2BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,sCAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAGF,uCAAA,wCAAA,4BAAA,0CAAA,4BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6CAAA,8CAAA,kCAAA,gDAAA,kCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,8BAAA,8BAEE,MAAA,QACA,iBAAA,YDvDF,oBCmBA,MAAA,QACA,aAAA,QAEA,0BACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,qCAAA,0BAEE,WAAA,EAAA,EAAA,EAAA,OAAA,mBAGF,sCAAA,uCAAA,2BAAA,yCAAA,2BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,4CAAA,6CAAA,iCAAA,+CAAA,iCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,mBAKN,6BAAA,6BAEE,MAAA,QACA,iBAAA,YDvDF,mBCmBA,MAAA,QACA,aAAA,QAEA,yBACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,oCAAA,yBAEE,WAAA,EAAA,EAAA,EAAA,OAAA,qBAGF,qCAAA,sCAAA,0BAAA,wCAAA,0BAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,2CAAA,4CAAA,gCAAA,8CAAA,gCAKI,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKN,4BAAA,4BAEE,MAAA,QACA,iBAAA,YDvDF,kBCmBA,MAAA,QACA,aAAA,QAEA,wBACE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,mCAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,OAAA,kBAGF,oCAAA,qCAAA,yBAAA,uCAAA,yBAKE,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,0CAAA,2CAAA,+BAAA,6CAAA,+BAKI,WAAA,EAAA,EAAA,EAAA,OAAA,kBAKN,2BAAA,2BAEE,MAAA,QACA,iBAAA,YD3CJ,UACE,YAAA,IACA,MAAA,QACA,gBAAA,UAEA,gBACE,MAAA,QAQF,mBAAA,mBAEE,MAAA,QAWJ,mBAAA,QCuBE,QAAA,MAAA,KzBsKI,UAAA,QClRF,cAAA,MuByFJ,mBAAA,QCmBE,QAAA,OAAA,MzBsKI,UAAA,QClRF,cAAA,MyBnBJ,MVgBM,WAAA,QAAA,KAAA,OAIA,uCUpBN,MVqBQ,WAAA,MUlBN,iBACE,QAAA,EAMF,qBACE,QAAA,KAIJ,YACE,OAAA,EACA,SAAA,OVDI,WAAA,OAAA,KAAA,KAIA,uCULN,YVMQ,WAAA,MUDN,gCACE,MAAA,EACA,OAAA,KVNE,WAAA,MAAA,KAAA,KAIA,uCUAJ,gCVCM,WAAA,MjBs3GR,UADA,SAEA,W4B34GA,QAIE,SAAA,SAGF,iBACE,YAAA,OCqBE,wBACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAhCJ,WAAA,KAAA,MACA,aAAA,KAAA,MAAA,YACA,cAAA,EACA,YAAA,KAAA,MAAA,YAqDE,8BACE,YAAA,ED3CN,eACE,SAAA,SACA,QAAA,KACA,QAAA,KACA,UAAA,MACA,QAAA,MAAA,EACA,OAAA,E3B+QI,UAAA,K2B7QJ,MAAA,QACA,WAAA,KACA,WAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,gB1BVE,cAAA,O0BcF,+BACE,IAAA,KACA,KAAA,EACA,WAAA,QAYA,qBACE,cAAA,MAEA,qCACE,MAAA,KACA,KAAA,EAIJ,mBACE,cAAA,IAEA,mCACE,MAAA,EACA,KAAA,KnBCJ,yBmBfA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnBCJ,yBmBfA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnBCJ,yBmBfA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnBCJ,0BmBfA,wBACE,cAAA,MAEA,wCACE,MAAA,KACA,KAAA,EAIJ,sBACE,cAAA,IAEA,sCACE,MAAA,EACA,KAAA,MnBCJ,0BmBfA,yBACE,cAAA,MAEA,yCACE,MAAA,KACA,KAAA,EAIJ,uBACE,cAAA,IAEA,uCACE,MAAA,EACA,KAAA,MAUN,uCACE,IAAA,KACA,OAAA,KACA,WAAA,EACA,cAAA,QC9CA,gCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAzBJ,WAAA,EACA,aAAA,KAAA,MAAA,YACA,cAAA,KAAA,MACA,YAAA,KAAA,MAAA,YA8CE,sCACE,YAAA,ED0BJ,wCACE,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,YAAA,QC5DA,iCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAlBJ,WAAA,KAAA,MAAA,YACA,aAAA,EACA,cAAA,KAAA,MAAA,YACA,YAAA,KAAA,MAuCE,uCACE,YAAA,EDoCF,iCACE,eAAA,EAMJ,0CACE,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,aAAA,QC7EA,mCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAWA,mCACE,QAAA,KAGF,oCACE,QAAA,aACA,aAAA,OACA,eAAA,OACA,QAAA,GA9BN,WAAA,KAAA,MAAA,YACA,aAAA,KAAA,MACA,cAAA,KAAA,MAAA,YAiCE,yCACE,YAAA,EDqDF,oCACE,eAAA,EAON,kBACE,OAAA,EACA,OAAA,MAAA,EACA,SAAA,OACA,WAAA,IAAA,MAAA,gBAMF,eACE,QAAA,MACA,MAAA,KACA,QAAA,OAAA,KACA,MAAA,KACA,YAAA,IACA,MAAA,QACA,WAAA,QACA,gBAAA,KACA,YAAA,OACA,iBAAA,YACA,OAAA,EAcA,qBAAA,qBAEE,MAAA,QVzJF,iBAAA,QU8JA,sBAAA,sBAEE,MAAA,KACA,gBAAA,KVjKF,iBAAA,QUqKA,wBAAA,wBAEE,MAAA,QACA,eAAA,KACA,iBAAA,YAMJ,oBACE,QAAA,MAIF,iBACE,QAAA,MACA,QAAA,MAAA,KACA,cAAA,E3B0GI,UAAA,Q2BxGJ,MAAA,QACA,YAAA,OAIF,oBACE,QAAA,MACA,QAAA,OAAA,KACA,MAAA,QAIF,oBACE,MAAA,QACA,iBAAA,QACA,aAAA,gBAGA,mCACE,MAAA,QAEA,yCAAA,yCAEE,MAAA,KVhNJ,iBAAA,sBUoNE,0CAAA,0CAEE,MAAA,KVtNJ,iBAAA,QU0NE,4CAAA,4CAEE,MAAA,QAIJ,sCACE,aAAA,gBAGF,wCACE,MAAA,QAGF,qCACE,MAAA,QE5OJ,W9B2rHA,oB8BzrHE,SAAA,SACA,QAAA,YACA,eAAA,O9B6rHF,yB8B3rHE,gBACE,SAAA,SACA,KAAA,EAAA,EAAA,K9BmsHJ,4CACA,0CAIA,gCADA,gCADA,+BADA,+B8BhsHE,mC9ByrHF,iCAIA,uBADA,uBADA,sBADA,sB8BprHI,QAAA,EAKJ,aACE,QAAA,KACA,UAAA,KACA,gBAAA,WAEA,0BACE,MAAA,K9BgsHJ,wC8B1rHE,kCAEE,YAAA,K9B4rHJ,4C8BxrHE,uD5BRE,wBAAA,EACA,2BAAA,EFqsHJ,6C8BrrHE,+B9BorHF,iCEvrHI,uBAAA,EACA,0BAAA,E4BqBJ,uBACE,cAAA,SACA,aAAA,SAEA,8BAAA,uCAAA,sCAGE,YAAA,EAGF,0CACE,aAAA,EAIJ,0CAAA,+BACE,cAAA,QACA,aAAA,QAGF,0CAAA,+BACE,cAAA,OACA,aAAA,OAoBF,oBACE,eAAA,OACA,YAAA,WACA,gBAAA,OAEA,yB9BmpHF,+B8BjpHI,MAAA,K9BqpHJ,iD8BlpHE,2CAEE,WAAA,K9BopHJ,qD8BhpHE,gE5BvFE,2BAAA,EACA,0BAAA,EF2uHJ,sD8BhpHE,8B5B1GE,uBAAA,EACA,wBAAA,E6BxBJ,KACE,QAAA,KACA,UAAA,KACA,aAAA,EACA,cAAA,EACA,WAAA,KAGF,UACE,QAAA,MACA,QAAA,MAAA,KAGA,MAAA,QACA,gBAAA,KdHI,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,YAIA,uCcPN,UdQQ,WAAA,McCN,gBAAA,gBAEE,MAAA,QAKF,mBACE,MAAA,QACA,eAAA,KACA,OAAA,QAQJ,UACE,cAAA,IAAA,MAAA,QAEA,oBACE,cAAA,KACA,WAAA,IACA,OAAA,IAAA,MAAA,Y7BlBA,uBAAA,OACA,wBAAA,O6BoBA,0BAAA,0BAEE,aAAA,QAAA,QAAA,QAEA,UAAA,QAGF,6BACE,MAAA,QACA,iBAAA,YACA,aAAA,Y/BixHN,mC+B7wHE,2BAEE,MAAA,QACA,iBAAA,KACA,aAAA,QAAA,QAAA,KAGF,yBAEE,WAAA,K7B5CA,uBAAA,EACA,wBAAA,E6BuDF,qBACE,WAAA,IACA,OAAA,E7BnEA,cAAA,O6BuEF,4B/BmwHF,2B+BjwHI,MAAA,KbxFF,iBAAA,QlB+1HF,oB+B5vHE,oBAEE,KAAA,EAAA,EAAA,KACA,WAAA,O/B+vHJ,yB+B1vHE,yBAEE,WAAA,EACA,UAAA,EACA,WAAA,OAMF,8B/BuvHF,mC+BtvHI,MAAA,KAUF,uBACE,QAAA,KAEF,qBACE,QAAA,MCxHJ,QACE,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,OACA,gBAAA,cACA,YAAA,MAEA,eAAA,MAOA,mBhCs2HF,yBAGA,sBADA,sBADA,sBAGA,sBACA,uBgC12HI,QAAA,KACA,UAAA,QACA,YAAA,OACA,gBAAA,cAoBJ,cACE,YAAA,SACA,eAAA,SACA,aAAA,K/B2OI,UAAA,Q+BzOJ,gBAAA,KACA,YAAA,OAaF,YACE,QAAA,KACA,eAAA,OACA,aAAA,EACA,cAAA,EACA,WAAA,KAEA,sBACE,cAAA,EACA,aAAA,EAGF,2BACE,SAAA,OASJ,aACE,YAAA,MACA,eAAA,MAYF,iBACE,WAAA,KACA,UAAA,EAGA,YAAA,OAIF,gBACE,QAAA,OAAA,O/B6KI,UAAA,Q+B3KJ,YAAA,EACA,iBAAA,YACA,OAAA,IAAA,MAAA,Y9BzGE,cAAA,OeHE,WAAA,WAAA,KAAA,YAIA,uCemGN,gBflGQ,WAAA,Me2GN,sBACE,gBAAA,KAGF,sBACE,gBAAA,KACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAMJ,qBACE,QAAA,aACA,MAAA,MACA,OAAA,MACA,eAAA,OACA,kBAAA,UACA,oBAAA,OACA,gBAAA,KAGF,mBACE,WAAA,6BACA,WAAA,KvB1FE,yBuBsGA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,MACA,aAAA,MAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,oCACE,QAAA,KAGF,6BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhC+yHV,oCgC7yHQ,iCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,kCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBhKN,yBuBsGA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,MACA,aAAA,MAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,oCACE,QAAA,KAGF,6BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhCo2HV,oCgCl2HQ,iCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,kCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBhKN,yBuBsGA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,MACA,aAAA,MAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,oCACE,QAAA,KAGF,6BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhCy5HV,oCgCv5HQ,iCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,kCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBhKN,0BuBsGA,kBAEI,UAAA,OACA,gBAAA,WAEA,8BACE,eAAA,IAEA,6CACE,SAAA,SAGF,wCACE,cAAA,MACA,aAAA,MAIJ,qCACE,SAAA,QAGF,mCACE,QAAA,eACA,WAAA,KAGF,kCACE,QAAA,KAGF,oCACE,QAAA,KAGF,6BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhC88HV,oCgC58HQ,iCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,kCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SvBhKN,0BuBsGA,mBAEI,UAAA,OACA,gBAAA,WAEA,+BACE,eAAA,IAEA,8CACE,SAAA,SAGF,yCACE,cAAA,MACA,aAAA,MAIJ,sCACE,SAAA,QAGF,oCACE,QAAA,eACA,WAAA,KAGF,mCACE,QAAA,KAGF,qCACE,QAAA,KAGF,8BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhCmgIV,qCgCjgIQ,kCAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,mCACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,SA1DN,eAEI,UAAA,OACA,gBAAA,WAEA,2BACE,eAAA,IAEA,0CACE,SAAA,SAGF,qCACE,cAAA,MACA,aAAA,MAIJ,kCACE,SAAA,QAGF,gCACE,QAAA,eACA,WAAA,KAGF,+BACE,QAAA,KAGF,iCACE,QAAA,KAGF,0BACE,SAAA,QACA,OAAA,EACA,QAAA,KACA,UAAA,EACA,WAAA,kBACA,iBAAA,YACA,aAAA,EACA,YAAA,EfhMJ,WAAA,KekMI,UAAA,KhCujIV,iCgCrjIQ,8BAEE,OAAA,KACA,WAAA,EACA,cAAA,EAGF,+BACE,QAAA,KACA,UAAA,EACA,QAAA,EACA,WAAA,QAcR,4BACE,MAAA,eAEA,kCAAA,kCAEE,MAAA,eAKF,oCACE,MAAA,gBAEA,0CAAA,0CAEE,MAAA,eAGF,6CACE,MAAA,ehCqiIR,2CgCjiII,0CAEE,MAAA,eAIJ,8BACE,MAAA,gBACA,aAAA,eAGF,mCACE,iBAAA,4OAGF,2BACE,MAAA,gBAEA,6BhC8hIJ,mCADA,mCgC1hIM,MAAA,eAOJ,2BACE,MAAA,KAEA,iCAAA,iCAEE,MAAA,KAKF,mCACE,MAAA,sBAEA,yCAAA,yCAEE,MAAA,sBAGF,4CACE,MAAA,sBhCqhIR,0CgCjhII,yCAEE,MAAA,KAIJ,6BACE,MAAA,sBACA,aAAA,qBAGF,kCACE,iBAAA,kPAGF,0BACE,MAAA,sBACA,4BhC+gIJ,kCADA,kCgC3gIM,MAAA,KCvUN,MACE,SAAA,SACA,QAAA,KACA,eAAA,OACA,UAAA,EAEA,UAAA,WACA,iBAAA,KACA,gBAAA,WACA,OAAA,IAAA,MAAA,iB/BME,cAAA,O+BFF,SACE,aAAA,EACA,YAAA,EAGF,kBACE,WAAA,QACA,cAAA,QAEA,8BACE,iBAAA,E/BCF,uBAAA,mBACA,wBAAA,mB+BEA,6BACE,oBAAA,E/BUF,2BAAA,mBACA,0BAAA,mB+BJF,+BjCk1IF,+BiCh1II,WAAA,EAIJ,WAGE,KAAA,EAAA,EAAA,KACA,QAAA,KAAA,KAIF,YACE,cAAA,MAGF,eACE,WAAA,QACA,cAAA,EAGF,sBACE,cAAA,EAQA,sBACE,YAAA,KAQJ,aACE,QAAA,MAAA,KACA,cAAA,EAEA,iBAAA,gBACA,cAAA,IAAA,MAAA,iBAEA,yB/BpEE,cAAA,mBAAA,mBAAA,EAAA,E+ByEJ,aACE,QAAA,MAAA,KAEA,iBAAA,gBACA,WAAA,IAAA,MAAA,iBAEA,wB/B/EE,cAAA,EAAA,EAAA,mBAAA,mB+ByFJ,kBACE,aAAA,OACA,cAAA,OACA,YAAA,OACA,cAAA,EAUF,mBACE,aAAA,OACA,YAAA,OAIF,kBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,K/BnHE,cAAA,mB+BuHJ,UjCozIA,iBADA,ciChzIE,MAAA,KAGF,UjCmzIA,cEv6II,uBAAA,mBACA,wBAAA,mB+BwHJ,UjCozIA,iBE/5II,2BAAA,mBACA,0BAAA,mB+BuHF,kBACE,cAAA,OxBpGA,yBwBgGJ,YAQI,QAAA,KACA,UAAA,IAAA,KAGA,kBAEE,KAAA,EAAA,EAAA,GACA,cAAA,EAEA,wBACE,YAAA,EACA,YAAA,EAKA,mC/BpJJ,wBAAA,EACA,2BAAA,EF+7IJ,gDiCzyIU,iDAGE,wBAAA,EjC0yIZ,gDiCxyIU,oDAGE,2BAAA,EAIJ,oC/BrJJ,uBAAA,EACA,0BAAA,EF67IJ,iDiCtyIU,kDAGE,uBAAA,EjCuyIZ,iDiCryIU,qDAGE,0BAAA,GC7MZ,kBACE,SAAA,SACA,QAAA,KACA,YAAA,OACA,MAAA,KACA,QAAA,KAAA,QjC4RI,UAAA,KiC1RJ,MAAA,QACA,WAAA,KACA,iBAAA,KACA,OAAA,EhCKE,cAAA,EgCHF,gBAAA,KjBAI,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,WAAA,CAAA,cAAA,KAAA,KAIA,uCiBhBN,kBjBiBQ,WAAA,MiBFN,kCACE,MAAA,QACA,iBAAA,QACA,WAAA,MAAA,EAAA,KAAA,EAAA,iBAEA,yCACE,iBAAA,gRACA,UAAA,gBAKJ,yBACE,YAAA,EACA,MAAA,QACA,OAAA,QACA,YAAA,KACA,QAAA,GACA,iBAAA,gRACA,kBAAA,UACA,gBAAA,QjBvBE,WAAA,UAAA,IAAA,YAIA,uCiBWJ,yBjBVM,WAAA,MiBsBN,wBACE,QAAA,EAGF,wBACE,QAAA,EACA,aAAA,QACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAIJ,kBACE,cAAA,EAGF,gBACE,iBAAA,KACA,OAAA,IAAA,MAAA,iBAEA,8BhCnCE,uBAAA,OACA,wBAAA,OgCqCA,gDhCtCA,uBAAA,mBACA,wBAAA,mBgC0CF,oCACE,WAAA,EAIF,6BhClCE,2BAAA,OACA,0BAAA,OgCqCE,yDhCtCF,2BAAA,mBACA,0BAAA,mBgC0CA,iDhC3CA,2BAAA,OACA,0BAAA,OgCgDJ,gBACE,QAAA,KAAA,QASA,qCACE,aAAA,EAGF,iCACE,aAAA,EACA,YAAA,EhCxFA,cAAA,EgC2FA,6CAAgB,WAAA,EAChB,4CAAe,cAAA,EAEf,mDhC9FA,cAAA,EiCnBJ,YACE,QAAA,KACA,UAAA,KACA,QAAA,EAAA,EACA,cAAA,KAEA,WAAA,KAOA,kCACE,aAAA,MAEA,0CACE,MAAA,KACA,cAAA,MACA,MAAA,QACA,QAAA,kCAIJ,wBACE,MAAA,QCzBJ,YACE,QAAA,KhCGA,aAAA,EACA,WAAA,KgCAF,WACE,SAAA,SACA,QAAA,MACA,MAAA,QACA,gBAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,QnBKI,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAIA,uCmBfN,WnBgBQ,WAAA,MmBPN,iBACE,QAAA,EACA,MAAA,QAEA,iBAAA,QACA,aAAA,QAGF,iBACE,QAAA,EACA,MAAA,QACA,iBAAA,QACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBAKF,wCACE,YAAA,KAGF,6BACE,QAAA,EACA,MAAA,KlBlCF,iBAAA,QkBoCE,aAAA,QAGF,+BACE,MAAA,QACA,eAAA,KACA,iBAAA,KACA,aAAA,QC3CF,WACE,QAAA,QAAA,OAOI,kCnCqCJ,uBAAA,OACA,0BAAA,OmChCI,iCnCiBJ,wBAAA,OACA,2BAAA,OmChCF,0BACE,QAAA,OAAA,OpCgSE,UAAA,QoCzRE,iDnCqCJ,uBAAA,MACA,0BAAA,MmChCI,gDnCiBJ,wBAAA,MACA,2BAAA,MmChCF,0BACE,QAAA,OAAA,MpCgSE,UAAA,QoCzRE,iDnCqCJ,uBAAA,MACA,0BAAA,MmChCI,gDnCiBJ,wBAAA,MACA,2BAAA,MoC/BJ,OACE,QAAA,aACA,QAAA,MAAA,MrC8RI,UAAA,MqC5RJ,YAAA,IACA,YAAA,EACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,eAAA,SpCKE,cAAA,OoCAF,aACE,QAAA,KAKJ,YACE,SAAA,SACA,IAAA,KCvBF,OACE,SAAA,SACA,QAAA,KAAA,KACA,cAAA,KACA,OAAA,IAAA,MAAA,YrCWE,cAAA,OqCNJ,eAEE,MAAA,QAIF,YACE,YAAA,IAQF,mBACE,cAAA,KAGA,8BACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,QAAA,KAeF,eClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,2BACE,MAAA,QD6CF,iBClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,6BACE,MAAA,QD6CF,eClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,2BACE,MAAA,QD6CF,YClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,wBACE,MAAA,QD6CF,eClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,2BACE,MAAA,QD6CF,cClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,0BACE,MAAA,QD6CF,aClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,yBACE,MAAA,QD6CF,YClDA,MAAA,QtBEA,iBAAA,QsBAA,aAAA,QAEA,wBACE,MAAA,QCHF,wCACE,GAAK,sBAAA,MADP,gCACE,GAAK,sBAAA,MAKT,UACE,QAAA,KACA,OAAA,KACA,SAAA,OxCwRI,UAAA,OwCtRJ,iBAAA,QvCIE,cAAA,OuCCJ,cACE,QAAA,KACA,eAAA,OACA,gBAAA,OACA,SAAA,OACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,iBAAA,QxBZI,WAAA,MAAA,IAAA,KAIA,uCwBAN,cxBCQ,WAAA,MwBWR,sBvBYE,iBAAA,iKuBVA,gBAAA,KAAA,KAIA,uBACE,kBAAA,GAAA,OAAA,SAAA,qBAAA,UAAA,GAAA,OAAA,SAAA,qBAGE,uCAJJ,uBAKM,kBAAA,KAAA,UAAA,MCvCR,YACE,QAAA,KACA,eAAA,OAGA,aAAA,EACA,cAAA,ExCSE,cAAA,OwCLJ,qBACE,gBAAA,KACA,cAAA,QAEA,gCAEE,QAAA,uBAAA,KACA,kBAAA,QAUJ,wBACE,MAAA,KACA,MAAA,QACA,WAAA,QAGA,8BAAA,8BAEE,QAAA,EACA,MAAA,QACA,gBAAA,KACA,iBAAA,QAGF,+BACE,MAAA,QACA,iBAAA,QASJ,iBACE,SAAA,SACA,QAAA,MACA,QAAA,MAAA,KACA,MAAA,QACA,gBAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,iBAEA,6BxCrCE,uBAAA,QACA,wBAAA,QwCwCF,4BxC3BE,2BAAA,QACA,0BAAA,QwC8BF,0BAAA,0BAEE,MAAA,QACA,eAAA,KACA,iBAAA,KAIF,wBACE,QAAA,EACA,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,kCACE,iBAAA,EAEA,yCACE,WAAA,KACA,iBAAA,IAcF,uBACE,eAAA,IAGE,oDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,mDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,+CACE,WAAA,EAGF,yDACE,iBAAA,IACA,kBAAA,EAEA,gEACE,YAAA,KACA,kBAAA,IjCpER,yBiC4CA,0BACE,eAAA,IAGE,uDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,sDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,kDACE,WAAA,EAGF,4DACE,iBAAA,IACA,kBAAA,EAEA,mEACE,YAAA,KACA,kBAAA,KjCpER,yBiC4CA,0BACE,eAAA,IAGE,uDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,sDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,kDACE,WAAA,EAGF,4DACE,iBAAA,IACA,kBAAA,EAEA,mEACE,YAAA,KACA,kBAAA,KjCpER,yBiC4CA,0BACE,eAAA,IAGE,uDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,sDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,kDACE,WAAA,EAGF,4DACE,iBAAA,IACA,kBAAA,EAEA,mEACE,YAAA,KACA,kBAAA,KjCpER,0BiC4CA,0BACE,eAAA,IAGE,uDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,sDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,kDACE,WAAA,EAGF,4DACE,iBAAA,IACA,kBAAA,EAEA,mEACE,YAAA,KACA,kBAAA,KjCpER,0BiC4CA,2BACE,eAAA,IAGE,wDxCrCJ,0BAAA,OAZA,wBAAA,EwCsDI,uDxCtDJ,wBAAA,OAYA,0BAAA,EwC+CI,mDACE,WAAA,EAGF,6DACE,iBAAA,IACA,kBAAA,EAEA,oEACE,YAAA,KACA,kBAAA,KAcZ,kBxC9HI,cAAA,EwCiIF,mCACE,aAAA,EAAA,EAAA,IAEA,8CACE,oBAAA,ECpJJ,yBACE,MAAA,QACA,iBAAA,QAGE,sDAAA,sDAEE,MAAA,QACA,iBAAA,QAGF,uDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,2BACE,MAAA,QACA,iBAAA,QAGE,wDAAA,wDAEE,MAAA,QACA,iBAAA,QAGF,yDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,yBACE,MAAA,QACA,iBAAA,QAGE,sDAAA,sDAEE,MAAA,QACA,iBAAA,QAGF,uDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,sBACE,MAAA,QACA,iBAAA,QAGE,mDAAA,mDAEE,MAAA,QACA,iBAAA,QAGF,oDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,yBACE,MAAA,QACA,iBAAA,QAGE,sDAAA,sDAEE,MAAA,QACA,iBAAA,QAGF,uDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,wBACE,MAAA,QACA,iBAAA,QAGE,qDAAA,qDAEE,MAAA,QACA,iBAAA,QAGF,sDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,uBACE,MAAA,QACA,iBAAA,QAGE,oDAAA,oDAEE,MAAA,QACA,iBAAA,QAGF,qDACE,MAAA,KACA,iBAAA,QACA,aAAA,QAdN,sBACE,MAAA,QACA,iBAAA,QAGE,mDAAA,mDAEE,MAAA,QACA,iBAAA,QAGF,oDACE,MAAA,KACA,iBAAA,QACA,aAAA,QCbR,WACE,WAAA,YACA,MAAA,IACA,OAAA,IACA,QAAA,MAAA,MACA,MAAA,KACA,WAAA,YAAA,0TAAA,MAAA,CAAA,IAAA,KAAA,UACA,OAAA,E1COE,cAAA,O0CLF,QAAA,GAGA,iBACE,MAAA,KACA,gBAAA,KACA,QAAA,IAGF,iBACE,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,OAAA,qBACA,QAAA,EAGF,oBAAA,oBAEE,eAAA,KACA,oBAAA,KAAA,iBAAA,KAAA,YAAA,KACA,QAAA,IAIJ,iBACE,OAAA,UAAA,gBAAA,iBCtCF,OACE,MAAA,MACA,UAAA,K5CmSI,UAAA,Q4ChSJ,eAAA,KACA,iBAAA,sBACA,gBAAA,YACA,OAAA,IAAA,MAAA,eACA,WAAA,EAAA,MAAA,KAAA,gB3CUE,cAAA,O2CPF,eACE,QAAA,EAGF,kBACE,QAAA,KAIJ,iBACE,MAAA,oBAAA,MAAA,iBAAA,MAAA,YACA,UAAA,KACA,eAAA,KAEA,mCACE,cAAA,OAIJ,cACE,QAAA,KACA,YAAA,OACA,QAAA,MAAA,OACA,MAAA,QACA,iBAAA,sBACA,gBAAA,YACA,cAAA,IAAA,MAAA,gB3CVE,uBAAA,mBACA,wBAAA,mB2CYF,yBACE,aAAA,SACA,YAAA,OAIJ,YACE,QAAA,OACA,UAAA,WC1CF,OACE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,OAAA,KACA,WAAA,OACA,WAAA,KAGA,QAAA,EAOF,cACE,SAAA,SACA,MAAA,KACA,OAAA,MAEA,eAAA,KAGA,0B7BlBI,WAAA,UAAA,IAAA,S6BoBF,UAAA,mB7BhBE,uC6BcJ,0B7BbM,WAAA,M6BiBN,0BACE,UAAA,KAIF,kCACE,UAAA,YAIJ,yBACE,OAAA,kBAEA,wCACE,WAAA,KACA,SAAA,OAGF,qCACE,WAAA,KAIJ,uBACE,QAAA,KACA,YAAA,OACA,WAAA,kBAIF,eACE,SAAA,SACA,QAAA,KACA,eAAA,OACA,MAAA,KAGA,eAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,e5C3DE,cAAA,M4C+DF,QAAA,EAIF,gBCpFE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,MAAA,MACA,OAAA,MACA,iBAAA,KAGA,qBAAS,QAAA,EACT,qBAAS,QAAA,GDgFX,cACE,QAAA,KACA,YAAA,EACA,YAAA,OACA,gBAAA,cACA,QAAA,KAAA,KACA,cAAA,IAAA,MAAA,Q5CtEE,uBAAA,kBACA,wBAAA,kB4CwEF,yBACE,QAAA,MAAA,MACA,OAAA,OAAA,OAAA,OAAA,KAKJ,aACE,cAAA,EACA,YAAA,IAKF,YACE,SAAA,SAGA,KAAA,EAAA,EAAA,KACA,QAAA,KAIF,cACE,QAAA,KACA,UAAA,KACA,YAAA,EACA,YAAA,OACA,gBAAA,SACA,QAAA,OACA,WAAA,IAAA,MAAA,Q5CzFE,2BAAA,kBACA,0BAAA,kB4C8FF,gBACE,OAAA,OrC3EA,yBqCkFF,cACE,UAAA,MACA,OAAA,QAAA,KAGF,yBACE,OAAA,oBAGF,uBACE,WAAA,oBAOF,UAAY,UAAA,OrCnGV,yBqCuGF,U9CywKF,U8CvwKI,UAAA,OrCzGA,0BqC8GF,UAAY,UAAA,QASV,kBACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,iCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,gC5C/KF,cAAA,E4CmLE,8BACE,WAAA,KAGF,gC5CvLF,cAAA,EOyDA,4BqC0GA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,wC5C/KF,cAAA,E4CmLE,sCACE,WAAA,KAGF,wC5CvLF,cAAA,GOyDA,4BqC0GA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,wC5C/KF,cAAA,E4CmLE,sCACE,WAAA,KAGF,wC5CvLF,cAAA,GOyDA,4BqC0GA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,wC5C/KF,cAAA,E4CmLE,sCACE,WAAA,KAGF,wC5CvLF,cAAA,GOyDA,6BqC0GA,0BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,yCACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,wC5C/KF,cAAA,E4CmLE,sCACE,WAAA,KAGF,wC5CvLF,cAAA,GOyDA,6BqC0GA,2BACE,MAAA,MACA,UAAA,KACA,OAAA,KACA,OAAA,EAEA,0CACE,OAAA,KACA,OAAA,E5C3KJ,cAAA,E4C+KE,yC5C/KF,cAAA,E4CmLE,uCACE,WAAA,KAGF,yC5CvLF,cAAA,G8ClBJ,SACE,SAAA,SACA,QAAA,KACA,QAAA,MACA,OAAA,ECJA,YAAA,0BAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,KhDsRI,UAAA,Q+C1RJ,UAAA,WACA,QAAA,EAEA,cAAS,QAAA,GAET,wBACE,SAAA,SACA,QAAA,MACA,MAAA,MACA,OAAA,MAEA,gCACE,SAAA,SACA,QAAA,GACA,aAAA,YACA,aAAA,MAKN,6CAAA,gBACE,QAAA,MAAA,EAEA,4DAAA,+BACE,OAAA,EAEA,oEAAA,uCACE,IAAA,KACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAKN,+CAAA,gBACE,QAAA,EAAA,MAEA,8DAAA,+BACE,KAAA,EACA,MAAA,MACA,OAAA,MAEA,sEAAA,uCACE,MAAA,KACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAKN,gDAAA,mBACE,QAAA,MAAA,EAEA,+DAAA,kCACE,IAAA,EAEA,uEAAA,0CACE,OAAA,KACA,aAAA,EAAA,MAAA,MACA,oBAAA,KAKN,8CAAA,kBACE,QAAA,EAAA,MAEA,6DAAA,iCACE,MAAA,EACA,MAAA,MACA,OAAA,MAEA,qEAAA,yCACE,KAAA,KACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAqBN,eACE,UAAA,MACA,QAAA,OAAA,MACA,MAAA,KACA,WAAA,OACA,iBAAA,K9C7FE,cAAA,OgDnBJ,SACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,MACA,UAAA,MDLA,YAAA,0BAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,KhDsRI,UAAA,QiDzRJ,UAAA,WACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,ehDIE,cAAA,MgDAF,wBACE,SAAA,SACA,QAAA,MACA,MAAA,KACA,OAAA,MAEA,+BAAA,gCAEE,SAAA,SACA,QAAA,MACA,QAAA,GACA,aAAA,YACA,aAAA,MAMJ,4DAAA,+BACE,OAAA,mBAEA,oEAAA,uCACE,OAAA,EACA,aAAA,MAAA,MAAA,EACA,iBAAA,gBAGF,mEAAA,sCACE,OAAA,IACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAMJ,8DAAA,+BACE,KAAA,mBACA,MAAA,MACA,OAAA,KAEA,sEAAA,uCACE,KAAA,EACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,gBAGF,qEAAA,sCACE,KAAA,IACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAMJ,+DAAA,kCACE,IAAA,mBAEA,uEAAA,0CACE,IAAA,EACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,gBAGF,sEAAA,yCACE,IAAA,IACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,KAKJ,wEAAA,2CACE,SAAA,SACA,IAAA,EACA,KAAA,IACA,QAAA,MACA,MAAA,KACA,YAAA,OACA,QAAA,GACA,cAAA,IAAA,MAAA,QAKF,6DAAA,iCACE,MAAA,mBACA,MAAA,MACA,OAAA,KAEA,qEAAA,yCACE,MAAA,EACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,gBAGF,oEAAA,wCACE,MAAA,IACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAqBN,gBACE,QAAA,MAAA,KACA,cAAA,EjDuJI,UAAA,KiDpJJ,iBAAA,QACA,cAAA,IAAA,MAAA,ehDtHE,uBAAA,kBACA,wBAAA,kBgDwHF,sBACE,QAAA,KAIJ,cACE,QAAA,KAAA,KACA,MAAA,QC/IF,UACE,SAAA,SAGF,wBACE,aAAA,MAGF,gBACE,SAAA,SACA,MAAA,KACA,SAAA,OCtBA,uBACE,QAAA,MACA,MAAA,KACA,QAAA,GDuBJ,eACE,SAAA,SACA,QAAA,KACA,MAAA,KACA,MAAA,KACA,aAAA,MACA,4BAAA,OAAA,oBAAA,OlClBI,WAAA,UAAA,IAAA,YAIA,uCkCQN,elCPQ,WAAA,MjBgzLR,oBACA,oBmDhyLA,sBAGE,QAAA,MnDmyLF,0BmD/xLA,8CAEE,UAAA,iBnDkyLF,4BmD/xLA,4CAEE,UAAA,kBAWA,8BACE,QAAA,EACA,oBAAA,QACA,UAAA,KnD0xLJ,uDACA,qDmDxxLE,qCAGE,QAAA,EACA,QAAA,EnDyxLJ,yCmDtxLE,2CAEE,QAAA,EACA,QAAA,ElC/DE,WAAA,QAAA,GAAA,IAIA,uCjBq1LN,yCmD7xLE,2ClCvDM,WAAA,MjB01LR,uBmDtxLA,uBAEE,SAAA,SACA,IAAA,EACA,OAAA,EACA,QAAA,EAEA,QAAA,KACA,YAAA,OACA,gBAAA,OACA,MAAA,IACA,QAAA,EACA,MAAA,KACA,WAAA,OACA,WAAA,IACA,OAAA,EACA,QAAA,GlCzFI,WAAA,QAAA,KAAA,KAIA,uCjB82LN,uBmDzyLA,uBlCpEQ,WAAA,MjBm3LR,6BADA,6BmD1xLE,6BAAA,6BAEE,MAAA,KACA,gBAAA,KACA,QAAA,EACA,QAAA,GAGJ,uBACE,KAAA,EAGF,uBACE,MAAA,EnD8xLF,4BmDzxLA,4BAEE,QAAA,aACA,MAAA,KACA,OAAA,KACA,kBAAA,UACA,oBAAA,IACA,gBAAA,KAAA,KAWF,4BACE,iBAAA,wPAEF,4BACE,iBAAA,yPAQF,qBACE,SAAA,SACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EACA,QAAA,KACA,gBAAA,OACA,QAAA,EAEA,aAAA,IACA,cAAA,KACA,YAAA,IACA,WAAA,KAEA,sCACE,WAAA,YACA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,OAAA,IACA,QAAA,EACA,aAAA,IACA,YAAA,IACA,YAAA,OACA,OAAA,QACA,iBAAA,KACA,gBAAA,YACA,OAAA,EAEA,WAAA,KAAA,MAAA,YACA,cAAA,KAAA,MAAA,YACA,QAAA,GlC5KE,WAAA,QAAA,IAAA,KAIA,uCkCwJJ,sClCvJM,WAAA,MkC2KN,6BACE,QAAA,EASJ,kBACE,SAAA,SACA,MAAA,IACA,OAAA,QACA,KAAA,IACA,YAAA,QACA,eAAA,QACA,MAAA,KACA,WAAA,OnDoxLF,2CmD9wLE,2CAEE,OAAA,UAAA,eAGF,qDACE,iBAAA,KAGF,iCACE,MAAA,KE7NJ,kCACE,GAAK,UAAA,gBADP,0BACE,GAAK,UAAA,gBAIP,gBACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,QACA,OAAA,MAAA,MAAA,aACA,mBAAA,YAEA,cAAA,IACA,kBAAA,KAAA,OAAA,SAAA,eAAA,UAAA,KAAA,OAAA,SAAA,eAGF,mBACE,MAAA,KACA,OAAA,KACA,aAAA,KAQF,gCACE,GACE,UAAA,SAEF,IACE,QAAA,EACA,UAAA,MANJ,wBACE,GACE,UAAA,SAEF,IACE,QAAA,EACA,UAAA,MAKJ,cACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,QACA,iBAAA,aAEA,cAAA,IACA,QAAA,EACA,kBAAA,KAAA,OAAA,SAAA,aAAA,UAAA,KAAA,OAAA,SAAA,aAGF,iBACE,MAAA,KACA,OAAA,KAIA,uCACE,gBrDo/LJ,cqDl/LM,2BAAA,KAAA,mBAAA,MCjEN,WACE,SAAA,MACA,OAAA,EACA,QAAA,KACA,QAAA,KACA,eAAA,OACA,UAAA,KAEA,WAAA,OACA,iBAAA,KACA,gBAAA,YACA,QAAA,ErCKI,WAAA,UAAA,IAAA,YAIA,uCqCpBN,WrCqBQ,WAAA,MqCLR,oBPdE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,MAAA,MACA,OAAA,MACA,iBAAA,KAGA,yBAAS,QAAA,EACT,yBAAS,QAAA,GOQX,kBACE,QAAA,KACA,YAAA,OACA,gBAAA,cACA,QAAA,KAAA,KAEA,6BACE,QAAA,MAAA,MACA,WAAA,OACA,aAAA,OACA,cAAA,OAIJ,iBACE,cAAA,EACA,YAAA,IAGF,gBACE,UAAA,EACA,QAAA,KAAA,KACA,WAAA,KAGF,iBACE,IAAA,EACA,KAAA,EACA,MAAA,MACA,aAAA,IAAA,MAAA,eACA,UAAA,kBAGF,eACE,IAAA,EACA,MAAA,EACA,MAAA,MACA,YAAA,IAAA,MAAA,eACA,UAAA,iBAGF,eACE,IAAA,EACA,MAAA,EACA,KAAA,EACA,OAAA,KACA,WAAA,KACA,cAAA,IAAA,MAAA,eACA,UAAA,kBAGF,kBACE,MAAA,EACA,KAAA,EACA,OAAA,KACA,WAAA,KACA,WAAA,IAAA,MAAA,eACA,UAAA,iBAGF,gBACE,UAAA,KCjFF,aACE,QAAA,aACA,WAAA,IACA,eAAA,OACA,OAAA,KACA,iBAAA,aACA,QAAA,GAEA,yBACE,QAAA,aACA,QAAA,GAKJ,gBACE,WAAA,KAGF,gBACE,WAAA,KAGF,gBACE,WAAA,MAKA,+BACE,kBAAA,iBAAA,GAAA,YAAA,SAAA,UAAA,iBAAA,GAAA,YAAA,SAIJ,oCACE,IACE,QAAA,IAFJ,4BACE,IACE,QAAA,IAIJ,kBACE,mBAAA,8DAAA,WAAA,8DACA,kBAAA,KAAA,KAAA,UAAA,KAAA,KACA,kBAAA,iBAAA,GAAA,OAAA,SAAA,UAAA,iBAAA,GAAA,OAAA,SAGF,oCACE,KACE,sBAAA,MAAA,GAAA,cAAA,MAAA,IAFJ,4BACE,KACE,sBAAA,MAAA,GAAA,cAAA,MAAA,IH9CF,iBACE,QAAA,MACA,MAAA,KACA,QAAA,GIJF,cACE,MAAA,QAGE,oBAAA,oBAEE,MAAA,QANN,gBACE,MAAA,QAGE,sBAAA,sBAEE,MAAA,QANN,cACE,MAAA,QAGE,oBAAA,oBAEE,MAAA,QANN,WACE,MAAA,QAGE,iBAAA,iBAEE,MAAA,QANN,cACE,MAAA,QAGE,oBAAA,oBAEE,MAAA,QANN,aACE,MAAA,QAGE,mBAAA,mBAEE,MAAA,QANN,YACE,MAAA,QAGE,kBAAA,kBAEE,MAAA,QANN,WACE,MAAA,QAGE,iBAAA,iBAEE,MAAA,QCLR,OACE,SAAA,SACA,MAAA,KAEA,eACE,QAAA,MACA,YAAA,uBACA,QAAA,GAGF,SACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,MAAA,KACA,OAAA,KAKF,WACE,kBAAA,KADF,WACE,kBAAA,mBADF,YACE,kBAAA,oBADF,YACE,kBAAA,oBCrBJ,WACE,SAAA,MACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,KAGF,cACE,SAAA,MACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,KAQE,YACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,KjDqCF,yBiDxCA,eACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MjDqCF,yBiDxCA,eACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MjDqCF,yBiDxCA,eACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MjDqCF,0BiDxCA,eACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MjDqCF,0BiDxCA,gBACE,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MCzBN,QACE,QAAA,KACA,eAAA,IACA,YAAA,OACA,WAAA,QAGF,QACE,QAAA,KACA,KAAA,EAAA,EAAA,KACA,eAAA,OACA,WAAA,QCRF,iB5Dk4MA,0D6D93ME,SAAA,mBACA,MAAA,cACA,OAAA,cACA,QAAA,YACA,OAAA,eACA,SAAA,iBACA,KAAA,wBACA,YAAA,iBACA,OAAA,YCXA,uBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EACA,QAAA,GCRJ,eCAE,SAAA,OACA,cAAA,SACA,YAAA,OCNF,IACE,QAAA,aACA,WAAA,QACA,MAAA,IACA,WAAA,IACA,iBAAA,aACA,QAAA,ICyDM,gBAOI,eAAA,mBAPJ,WAOI,eAAA,cAPJ,cAOI,eAAA,iBAPJ,cAOI,eAAA,iBAPJ,mBAOI,eAAA,sBAPJ,gBAOI,eAAA,mBAPJ,aAOI,MAAA,eAPJ,WAOI,MAAA,gBAPJ,YAOI,MAAA,eAPJ,WAOI,QAAA,YAPJ,YAOI,QAAA,cAPJ,YAOI,QAAA,aAPJ,YAOI,QAAA,cAPJ,aAOI,QAAA,YAPJ,eAOI,SAAA,eAPJ,iBAOI,SAAA,iBAPJ,kBAOI,SAAA,kBAPJ,iBAOI,SAAA,iBAPJ,UAOI,QAAA,iBAPJ,gBAOI,QAAA,uBAPJ,SAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,SAOI,QAAA,gBAPJ,aAOI,QAAA,oBAPJ,cAOI,QAAA,qBAPJ,QAOI,QAAA,eAPJ,eAOI,QAAA,sBAPJ,QAOI,QAAA,eAPJ,QAOI,WAAA,EAAA,MAAA,KAAA,0BAPJ,WAOI,WAAA,EAAA,QAAA,OAAA,2BAPJ,WAOI,WAAA,EAAA,KAAA,KAAA,2BAPJ,aAOI,WAAA,eAPJ,iBAOI,SAAA,iBAPJ,mBAOI,SAAA,mBAPJ,mBAOI,SAAA,mBAPJ,gBAOI,SAAA,gBAPJ,iBAOI,SAAA,yBAAA,SAAA,iBAPJ,OAOI,IAAA,YAPJ,QAOI,IAAA,cAPJ,SAOI,IAAA,eAPJ,UAOI,OAAA,YAPJ,WAOI,OAAA,cAPJ,YAOI,OAAA,eAPJ,SAOI,KAAA,YAPJ,UAOI,KAAA,cAPJ,WAOI,KAAA,eAPJ,OAOI,MAAA,YAPJ,QAOI,MAAA,cAPJ,SAOI,MAAA,eAPJ,kBAOI,UAAA,+BAPJ,oBAOI,UAAA,2BAPJ,oBAOI,UAAA,2BAPJ,QAOI,OAAA,IAAA,MAAA,kBAPJ,UAOI,OAAA,YAPJ,YAOI,WAAA,IAAA,MAAA,kBAPJ,cAOI,WAAA,YAPJ,YAOI,aAAA,IAAA,MAAA,kBAPJ,cAOI,aAAA,YAPJ,eAOI,cAAA,IAAA,MAAA,kBAPJ,iBAOI,cAAA,YAPJ,cAOI,YAAA,IAAA,MAAA,kBAPJ,gBAOI,YAAA,YAPJ,gBAOI,aAAA,kBAPJ,kBAOI,aAAA,kBAPJ,gBAOI,aAAA,kBAPJ,aAOI,aAAA,kBAPJ,gBAOI,aAAA,kBAPJ,eAOI,aAAA,kBAPJ,cAOI,aAAA,kBAPJ,aAOI,aAAA,kBAPJ,cAOI,aAAA,eAPJ,UAOI,aAAA,cAPJ,UAOI,aAAA,cAPJ,UAOI,aAAA,cAPJ,UAOI,aAAA,cAPJ,UAOI,aAAA,cAPJ,MAOI,MAAA,cAPJ,MAOI,MAAA,cAPJ,MAOI,MAAA,cAPJ,OAOI,MAAA,eAPJ,QAOI,MAAA,eAPJ,QAOI,UAAA,eAPJ,QAOI,MAAA,gBAPJ,YAOI,UAAA,gBAPJ,MAOI,OAAA,cAPJ,MAOI,OAAA,cAPJ,MAOI,OAAA,cAPJ,OAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,QAOI,WAAA,eAPJ,QAOI,OAAA,gBAPJ,YAOI,WAAA,gBAPJ,WAOI,KAAA,EAAA,EAAA,eAPJ,UAOI,eAAA,cAPJ,aAOI,eAAA,iBAPJ,kBAOI,eAAA,sBAPJ,qBAOI,eAAA,yBAPJ,aAOI,UAAA,YAPJ,aAOI,UAAA,YAPJ,eAOI,YAAA,YAPJ,eAOI,YAAA,YAPJ,WAOI,UAAA,eAPJ,aAOI,UAAA,iBAPJ,mBAOI,UAAA,uBAPJ,OAOI,IAAA,YAPJ,OAOI,IAAA,iBAPJ,OAOI,IAAA,gBAPJ,OAOI,IAAA,eAPJ,OAOI,IAAA,iBAPJ,OAOI,IAAA,eAPJ,uBAOI,gBAAA,qBAPJ,qBAOI,gBAAA,mBAPJ,wBAOI,gBAAA,iBAPJ,yBAOI,gBAAA,wBAPJ,wBAOI,gBAAA,uBAPJ,wBAOI,gBAAA,uBAPJ,mBAOI,YAAA,qBAPJ,iBAOI,YAAA,mBAPJ,oBAOI,YAAA,iBAPJ,sBAOI,YAAA,mBAPJ,qBAOI,YAAA,kBAPJ,qBAOI,cAAA,qBAPJ,mBAOI,cAAA,mBAPJ,sBAOI,cAAA,iBAPJ,uBAOI,cAAA,wBAPJ,sBAOI,cAAA,uBAPJ,uBAOI,cAAA,kBAPJ,iBAOI,WAAA,eAPJ,kBAOI,WAAA,qBAPJ,gBAOI,WAAA,mBAPJ,mBAOI,WAAA,iBAPJ,qBAOI,WAAA,mBAPJ,oBAOI,WAAA,kBAPJ,aAOI,MAAA,aAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,SAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,KAOI,OAAA,YAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,gBAPJ,KAOI,OAAA,eAPJ,KAOI,OAAA,iBAPJ,KAOI,OAAA,eAPJ,QAOI,OAAA,eAPJ,MAOI,aAAA,YAAA,YAAA,YAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,gBAAA,YAAA,gBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,aAAA,iBAAA,YAAA,iBAPJ,MAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,MAOI,WAAA,YAAA,cAAA,YAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,gBAAA,cAAA,gBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,iBAAA,cAAA,iBAPJ,MAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,MAOI,WAAA,YAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,gBAPJ,MAOI,WAAA,eAPJ,MAOI,WAAA,iBAPJ,MAOI,WAAA,eAPJ,SAOI,WAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,SAOI,aAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,SAOI,cAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,SAOI,YAAA,eAPJ,KAOI,QAAA,YAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,gBAPJ,KAOI,QAAA,eAPJ,KAOI,QAAA,iBAPJ,KAOI,QAAA,eAPJ,MAOI,cAAA,YAAA,aAAA,YAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,gBAAA,aAAA,gBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,cAAA,iBAAA,aAAA,iBAPJ,MAOI,cAAA,eAAA,aAAA,eAPJ,MAOI,YAAA,YAAA,eAAA,YAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,gBAAA,eAAA,gBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,iBAAA,eAAA,iBAPJ,MAOI,YAAA,eAAA,eAAA,eAPJ,MAOI,YAAA,YAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,gBAPJ,MAOI,YAAA,eAPJ,MAOI,YAAA,iBAPJ,MAOI,YAAA,eAPJ,MAOI,cAAA,YAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,gBAPJ,MAOI,cAAA,eAPJ,MAOI,cAAA,iBAPJ,MAOI,cAAA,eAPJ,MAOI,eAAA,YAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,gBAPJ,MAOI,eAAA,eAPJ,MAOI,eAAA,iBAPJ,MAOI,eAAA,eAPJ,MAOI,aAAA,YAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,gBAPJ,MAOI,aAAA,eAPJ,MAOI,aAAA,iBAPJ,MAOI,aAAA,eAPJ,gBAOI,YAAA,mCAPJ,MAOI,UAAA,iCAPJ,MAOI,UAAA,gCAPJ,MAOI,UAAA,8BAPJ,MAOI,UAAA,gCAPJ,MAOI,UAAA,kBAPJ,MAOI,UAAA,eAPJ,YAOI,WAAA,iBAPJ,YAOI,WAAA,iBAPJ,UAOI,YAAA,cAPJ,YAOI,YAAA,kBAPJ,WAOI,YAAA,cAPJ,SAOI,YAAA,cAPJ,WAOI,YAAA,iBAPJ,MAOI,YAAA,YAPJ,OAOI,YAAA,eAPJ,SAOI,YAAA,cAPJ,OAOI,YAAA,YAPJ,YAOI,WAAA,eAPJ,UAOI,WAAA,gBAPJ,aAOI,WAAA,iBAPJ,sBAOI,gBAAA,eAPJ,2BAOI,gBAAA,oBAPJ,8BAOI,gBAAA,uBAPJ,gBAOI,eAAA,oBAPJ,gBAOI,eAAA,oBAPJ,iBAOI,eAAA,qBAPJ,WAOI,YAAA,iBAPJ,aAOI,YAAA,iBAPJ,YAOI,UAAA,qBAAA,WAAA,qBAPJ,cAIQ,kBAAA,EAGJ,MAAA,6DAPJ,gBAIQ,kBAAA,EAGJ,MAAA,+DAPJ,cAIQ,kBAAA,EAGJ,MAAA,6DAPJ,WAIQ,kBAAA,EAGJ,MAAA,0DAPJ,cAIQ,kBAAA,EAGJ,MAAA,6DAPJ,aAIQ,kBAAA,EAGJ,MAAA,4DAPJ,YAIQ,kBAAA,EAGJ,MAAA,2DAPJ,WAIQ,kBAAA,EAGJ,MAAA,0DAPJ,YAIQ,kBAAA,EAGJ,MAAA,2DAPJ,YAIQ,kBAAA,EAGJ,MAAA,2DAPJ,WAIQ,kBAAA,EAGJ,MAAA,0DAPJ,YAIQ,kBAAA,EAGJ,MAAA,kBAPJ,eAIQ,kBAAA,EAGJ,MAAA,yBAPJ,eAIQ,kBAAA,EAGJ,MAAA,+BAPJ,YAIQ,kBAAA,EAGJ,MAAA,kBAjBJ,iBACE,kBAAA,KADF,iBACE,kBAAA,IADF,iBACE,kBAAA,KADF,kBACE,kBAAA,EASF,YAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,cAIQ,gBAAA,EAGJ,iBAAA,6DAPJ,YAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,SAIQ,gBAAA,EAGJ,iBAAA,wDAPJ,YAIQ,gBAAA,EAGJ,iBAAA,2DAPJ,WAIQ,gBAAA,EAGJ,iBAAA,0DAPJ,UAIQ,gBAAA,EAGJ,iBAAA,yDAPJ,SAIQ,gBAAA,EAGJ,iBAAA,wDAPJ,UAIQ,gBAAA,EAGJ,iBAAA,yDAPJ,UAIQ,gBAAA,EAGJ,iBAAA,yDAPJ,SAIQ,gBAAA,EAGJ,iBAAA,wDAPJ,gBAIQ,gBAAA,EAGJ,iBAAA,sBAjBJ,eACE,gBAAA,IADF,eACE,gBAAA,KADF,eACE,gBAAA,IADF,eACE,gBAAA,KADF,gBACE,gBAAA,EASF,aAOI,iBAAA,6BAPJ,iBAOI,oBAAA,cAAA,iBAAA,cAAA,YAAA,cAPJ,kBAOI,oBAAA,eAAA,iBAAA,eAAA,YAAA,eAPJ,kBAOI,oBAAA,eAAA,iBAAA,eAAA,YAAA,eAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,eAPJ,SAOI,cAAA,iBAPJ,WAOI,cAAA,YAPJ,WAOI,cAAA,gBAPJ,WAOI,cAAA,iBAPJ,WAOI,cAAA,gBAPJ,gBAOI,cAAA,cAPJ,cAOI,cAAA,gBAPJ,aAOI,uBAAA,iBAAA,wBAAA,iBAPJ,aAOI,wBAAA,iBAAA,2BAAA,iBAPJ,gBAOI,2BAAA,iBAAA,0BAAA,iBAPJ,eAOI,0BAAA,iBAAA,uBAAA,iBAPJ,SAOI,WAAA,kBAPJ,WAOI,WAAA,iBzDPR,yByDAI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kBzDPR,yByDAI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kBzDPR,yByDAI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kBzDPR,0ByDAI,gBAOI,MAAA,eAPJ,cAOI,MAAA,gBAPJ,eAOI,MAAA,eAPJ,aAOI,QAAA,iBAPJ,mBAOI,QAAA,uBAPJ,YAOI,QAAA,gBAPJ,WAOI,QAAA,eAPJ,YAOI,QAAA,gBAPJ,gBAOI,QAAA,oBAPJ,iBAOI,QAAA,qBAPJ,WAOI,QAAA,eAPJ,kBAOI,QAAA,sBAPJ,WAOI,QAAA,eAPJ,cAOI,KAAA,EAAA,EAAA,eAPJ,aAOI,eAAA,cAPJ,gBAOI,eAAA,iBAPJ,qBAOI,eAAA,sBAPJ,wBAOI,eAAA,yBAPJ,gBAOI,UAAA,YAPJ,gBAOI,UAAA,YAPJ,kBAOI,YAAA,YAPJ,kBAOI,YAAA,YAPJ,cAOI,UAAA,eAPJ,gBAOI,UAAA,iBAPJ,sBAOI,UAAA,uBAPJ,UAOI,IAAA,YAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,gBAPJ,UAOI,IAAA,eAPJ,UAOI,IAAA,iBAPJ,UAOI,IAAA,eAPJ,0BAOI,gBAAA,qBAPJ,wBAOI,gBAAA,mBAPJ,2BAOI,gBAAA,iBAPJ,4BAOI,gBAAA,wBAPJ,2BAOI,gBAAA,uBAPJ,2BAOI,gBAAA,uBAPJ,sBAOI,YAAA,qBAPJ,oBAOI,YAAA,mBAPJ,uBAOI,YAAA,iBAPJ,yBAOI,YAAA,mBAPJ,wBAOI,YAAA,kBAPJ,wBAOI,cAAA,qBAPJ,sBAOI,cAAA,mBAPJ,yBAOI,cAAA,iBAPJ,0BAOI,cAAA,wBAPJ,yBAOI,cAAA,uBAPJ,0BAOI,cAAA,kBAPJ,oBAOI,WAAA,eAPJ,qBAOI,WAAA,qBAPJ,mBAOI,WAAA,mBAPJ,sBAOI,WAAA,iBAPJ,wBAOI,WAAA,mBAPJ,uBAOI,WAAA,kBAPJ,gBAOI,MAAA,aAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,YAOI,MAAA,YAPJ,eAOI,MAAA,YAPJ,QAOI,OAAA,YAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,gBAPJ,QAOI,OAAA,eAPJ,QAOI,OAAA,iBAPJ,QAOI,OAAA,eAPJ,WAOI,OAAA,eAPJ,SAOI,aAAA,YAAA,YAAA,YAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,gBAAA,YAAA,gBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,aAAA,iBAAA,YAAA,iBAPJ,SAOI,aAAA,eAAA,YAAA,eAPJ,YAOI,aAAA,eAAA,YAAA,eAPJ,SAOI,WAAA,YAAA,cAAA,YAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,gBAAA,cAAA,gBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,iBAAA,cAAA,iBAPJ,SAOI,WAAA,eAAA,cAAA,eAPJ,YAOI,WAAA,eAAA,cAAA,eAPJ,SAOI,WAAA,YAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,gBAPJ,SAOI,WAAA,eAPJ,SAOI,WAAA,iBAPJ,SAOI,WAAA,eAPJ,YAOI,WAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,YAOI,aAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,YAOI,cAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,YAOI,YAAA,eAPJ,QAOI,QAAA,YAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,gBAPJ,QAOI,QAAA,eAPJ,QAOI,QAAA,iBAPJ,QAOI,QAAA,eAPJ,SAOI,cAAA,YAAA,aAAA,YAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,gBAAA,aAAA,gBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,cAAA,iBAAA,aAAA,iBAPJ,SAOI,cAAA,eAAA,aAAA,eAPJ,SAOI,YAAA,YAAA,eAAA,YAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,gBAAA,eAAA,gBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,iBAAA,eAAA,iBAPJ,SAOI,YAAA,eAAA,eAAA,eAPJ,SAOI,YAAA,YAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,gBAPJ,SAOI,YAAA,eAPJ,SAOI,YAAA,iBAPJ,SAOI,YAAA,eAPJ,SAOI,cAAA,YAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,gBAPJ,SAOI,cAAA,eAPJ,SAOI,cAAA,iBAPJ,SAOI,cAAA,eAPJ,SAOI,eAAA,YAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,gBAPJ,SAOI,eAAA,eAPJ,SAOI,eAAA,iBAPJ,SAOI,eAAA,eAPJ,SAOI,aAAA,YAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,gBAPJ,SAOI,aAAA,eAPJ,SAOI,aAAA,iBAPJ,SAOI,aAAA,eAPJ,eAOI,WAAA,eAPJ,aAOI,WAAA,gBAPJ,gBAOI,WAAA,kBzDPR,0ByDAI,iBAOI,MAAA,eAPJ,eAOI,MAAA,gBAPJ,gBAOI,MAAA,eAPJ,cAOI,QAAA,iBAPJ,oBAOI,QAAA,uBAPJ,aAOI,QAAA,gBAPJ,YAOI,QAAA,eAPJ,aAOI,QAAA,gBAPJ,iBAOI,QAAA,oBAPJ,kBAOI,QAAA,qBAPJ,YAOI,QAAA,eAPJ,mBAOI,QAAA,sBAPJ,YAOI,QAAA,eAPJ,eAOI,KAAA,EAAA,EAAA,eAPJ,cAOI,eAAA,cAPJ,iBAOI,eAAA,iBAPJ,sBAOI,eAAA,sBAPJ,yBAOI,eAAA,yBAPJ,iBAOI,UAAA,YAPJ,iBAOI,UAAA,YAPJ,mBAOI,YAAA,YAPJ,mBAOI,YAAA,YAPJ,eAOI,UAAA,eAPJ,iBAOI,UAAA,iBAPJ,uBAOI,UAAA,uBAPJ,WAOI,IAAA,YAPJ,WAOI,IAAA,iBAPJ,WAOI,IAAA,gBAPJ,WAOI,IAAA,eAPJ,WAOI,IAAA,iBAPJ,WAOI,IAAA,eAPJ,2BAOI,gBAAA,qBAPJ,yBAOI,gBAAA,mBAPJ,4BAOI,gBAAA,iBAPJ,6BAOI,gBAAA,wBAPJ,4BAOI,gBAAA,uBAPJ,4BAOI,gBAAA,uBAPJ,uBAOI,YAAA,qBAPJ,qBAOI,YAAA,mBAPJ,wBAOI,YAAA,iBAPJ,0BAOI,YAAA,mBAPJ,yBAOI,YAAA,kBAPJ,yBAOI,cAAA,qBAPJ,uBAOI,cAAA,mBAPJ,0BAOI,cAAA,iBAPJ,2BAOI,cAAA,wBAPJ,0BAOI,cAAA,uBAPJ,2BAOI,cAAA,kBAPJ,qBAOI,WAAA,eAPJ,sBAOI,WAAA,qBAPJ,oBAOI,WAAA,mBAPJ,uBAOI,WAAA,iBAPJ,yBAOI,WAAA,mBAPJ,wBAOI,WAAA,kBAPJ,iBAOI,MAAA,aAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,aAOI,MAAA,YAPJ,gBAOI,MAAA,YAPJ,SAOI,OAAA,YAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,gBAPJ,SAOI,OAAA,eAPJ,SAOI,OAAA,iBAPJ,SAOI,OAAA,eAPJ,YAOI,OAAA,eAPJ,UAOI,aAAA,YAAA,YAAA,YAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,gBAAA,YAAA,gBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,aAAA,iBAAA,YAAA,iBAPJ,UAOI,aAAA,eAAA,YAAA,eAPJ,aAOI,aAAA,eAAA,YAAA,eAPJ,UAOI,WAAA,YAAA,cAAA,YAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,gBAAA,cAAA,gBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,iBAAA,cAAA,iBAPJ,UAOI,WAAA,eAAA,cAAA,eAPJ,aAOI,WAAA,eAAA,cAAA,eAPJ,UAOI,WAAA,YAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,gBAPJ,UAOI,WAAA,eAPJ,UAOI,WAAA,iBAPJ,UAOI,WAAA,eAPJ,aAOI,WAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,aAOI,aAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,aAOI,cAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,aAOI,YAAA,eAPJ,SAOI,QAAA,YAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,gBAPJ,SAOI,QAAA,eAPJ,SAOI,QAAA,iBAPJ,SAOI,QAAA,eAPJ,UAOI,cAAA,YAAA,aAAA,YAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,gBAAA,aAAA,gBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,cAAA,iBAAA,aAAA,iBAPJ,UAOI,cAAA,eAAA,aAAA,eAPJ,UAOI,YAAA,YAAA,eAAA,YAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,gBAAA,eAAA,gBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,iBAAA,eAAA,iBAPJ,UAOI,YAAA,eAAA,eAAA,eAPJ,UAOI,YAAA,YAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,gBAPJ,UAOI,YAAA,eAPJ,UAOI,YAAA,iBAPJ,UAOI,YAAA,eAPJ,UAOI,cAAA,YAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,gBAPJ,UAOI,cAAA,eAPJ,UAOI,cAAA,iBAPJ,UAOI,cAAA,eAPJ,UAOI,eAAA,YAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,gBAPJ,UAOI,eAAA,eAPJ,UAOI,eAAA,iBAPJ,UAOI,eAAA,eAPJ,UAOI,aAAA,YAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,gBAPJ,UAOI,aAAA,eAPJ,UAOI,aAAA,iBAPJ,UAOI,aAAA,eAPJ,gBAOI,WAAA,eAPJ,cAOI,WAAA,gBAPJ,iBAOI,WAAA,kBCnDZ,0BD4CQ,MAOI,UAAA,iBAPJ,MAOI,UAAA,eAPJ,MAOI,UAAA,kBAPJ,MAOI,UAAA,kBChCZ,aDyBQ,gBAOI,QAAA,iBAPJ,sBAOI,QAAA,uBAPJ,eAOI,QAAA,gBAPJ,cAOI,QAAA,eAPJ,eAOI,QAAA,gBAPJ,mBAOI,QAAA,oBAPJ,oBAOI,QAAA,qBAPJ,cAOI,QAAA,eAPJ,qBAOI,QAAA,sBAPJ,cAOI,QAAA","sourcesContent":["/*!\n * Bootstrap v5.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n// scss-docs-start import-stack\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"containers\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"accordion\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"alert\";\n@import \"progress\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"offcanvas\";\n@import \"placeholders\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n// scss-docs-end import-stack\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-rgb: #{to-rgb($body-color)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n font-size: var(--#{$variable-prefix}-root-font-size);\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$variable-prefix}body-font-family);\n @include font-size(var(--#{$variable-prefix}body-font-size));\n font-weight: var(--#{$variable-prefix}body-font-weight);\n line-height: var(--#{$variable-prefix}body-line-height);\n color: var(--#{$variable-prefix}body-color);\n text-align: var(--#{$variable-prefix}body-text-align);\n background-color: var(--#{$variable-prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n// 2. Set correct height and prevent the `size` attribute to make the `hr` look like an input field\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n background-color: currentColor;\n border: 0;\n opacity: $hr-opacity;\n}\n\nhr:not([size]) {\n height: $hr-height; // 2\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-bs-original-title] { // 1\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n text-decoration-skip-ink: none; // 4\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n direction: ltr #{\"/* rtl:ignore */\"};\n unicode-bidi: bidi-override;\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-` +

@if (this.Data != null) diff --git a/src/core/src/AXOpen.Core.Blazor/AxoArrays/AxoByteArrayView.razor b/src/core/src/AXOpen.Core.Blazor/AxoArrays/AxoByteArrayView.razor index 95faa7920..ab29838d9 100644 --- a/src/core/src/AXOpen.Core.Blazor/AxoArrays/AxoByteArrayView.razor +++ b/src/core/src/AXOpen.Core.Blazor/AxoArrays/AxoByteArrayView.razor @@ -9,7 +9,7 @@

@Component.AttributeName

-
+
@if (IsControllable & !IsReadOnly) { @@ -27,6 +27,8 @@ }
+
+
diff --git a/src/core/src/AXOpen.Core/AxoMessenger/Static/AxoMessenger.cs b/src/core/src/AXOpen.Core/AxoMessenger/Static/AxoMessenger.cs index bd3b62cfd..fa3a979a8 100644 --- a/src/core/src/AXOpen.Core/AxoMessenger/Static/AxoMessenger.cs +++ b/src/core/src/AXOpen.Core/AxoMessenger/Static/AxoMessenger.cs @@ -248,14 +248,14 @@ public string GetHelpText() if (PlcMessengerTextList != null && PlcMessengerTextList.Count > 0) { string _helpText = (from item in PlcMessengerTextList where item.Key == messageCode select item.Value.HelpText.ToString()).FirstOrDefault(); - retVal = string.IsNullOrEmpty(_helpText) ? prefix + "Help text not defined for the message code: " + messageCode.ToString() + " !" : prefix + _helpText; + retVal = string.IsNullOrEmpty(_helpText) ? prefix + "Help text not defined for the message code: " + messageCode.ToString() + " !" : prefix + _helpText + " message code:(" + messageCode.ToString() + ")"; } //Message texts are written in .NET and passed into the component else if (DotNetMessengerTextList != null && DotNetMessengerTextList.Count > 0) { string _helpText = (from item in DotNetMessengerTextList where item.Key == messageCode select item.Value.HelpText.ToString()).FirstOrDefault(); - retVal = string.IsNullOrEmpty(_helpText) ? prefix + "Help text not defined for the message code: " + messageCode.ToString() + " !" : prefix + _helpText; - } + retVal = string.IsNullOrEmpty(_helpText) ? prefix + "Help text not defined for the message code: " + messageCode.ToString() + " !" : prefix + _helpText + " message code:(" + messageCode.ToString() + ")"; + } else { retVal = prefix + "Help text not defined for the message code: " + messageCode.ToString() + " !"; diff --git a/src/data/app/apax.yml b/src/data/app/apax.yml index 4adc51056..0068115fe 100644 --- a/src/data/app/apax.yml +++ b/src/data/app/apax.yml @@ -1,12 +1,12 @@ -name: "axopen.data-app" +name: "axopen.data-app" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Data" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,144 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/data/ctrl/apax.yml b/src/data/ctrl/apax.yml index 539f5237f..69088d1fe 100644 --- a/src/data/ctrl/apax.yml +++ b/src/data/ctrl/apax.yml @@ -14,26 +14,36 @@ devDependencies: dependencies: "@inxton/axopen.core": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/data/tests/AXOpen.Repository.Integration.Tests_L4/ax/apax.yml b/src/data/tests/AXOpen.Repository.Integration.Tests_L4/ax/apax.yml index f4683f579..90975f3fc 100644 --- a/src/data/tests/AXOpen.Repository.Integration.Tests_L4/ax/apax.yml +++ b/src/data/tests/AXOpen.Repository.Integration.Tests_L4/ax/apax.yml @@ -1,11 +1,11 @@ -name: "axopen.integration.tests_l4" +name: "axopen.integration.tests_l4" version: '0.0.0-dev.0' type: app targets: - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Data" @@ -18,7 +18,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -26,7 +26,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -78,6 +78,10 @@ scripts: ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) @@ -114,3 +118,13 @@ scripts: apax test mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/inspectors/app/apax.yml b/src/inspectors/app/apax.yml index 5f8b4b034..8c364157f 100644 --- a/src/inspectors/app/apax.yml +++ b/src/inspectors/app/apax.yml @@ -1,12 +1,12 @@ -name: "axopen.inspectors" +name: "axopen.inspectors" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Inspectors" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,7 +27,7 @@ dependencies: "@inxton/ax.axopen.app": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -42,76 +42,144 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + + + + + + diff --git a/src/inspectors/ctrl/apax.yml b/src/inspectors/ctrl/apax.yml index 2decb412f..b3bb5076e 100644 --- a/src/inspectors/ctrl/apax.yml +++ b/src/inspectors/ctrl/apax.yml @@ -13,26 +13,36 @@ devDependencies: dependencies: "@inxton/axopen.core": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: postbuild: - dotnet ixc ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install - apax build - apax test + apax build + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" publicKeys: "@inxton": 30c06ef7830b4dfd8f16e003508da1ac2d187714d0e1f38279a9332cbe4e4e17 ... diff --git a/src/integrations/app/SystemConstants/plc_line_HwIdentifiers.st b/src/integrations/app/SystemConstants/plc_line_HwIdentifiers.st index 5631dc14d..17b551470 100644 --- a/src/integrations/app/SystemConstants/plc_line_HwIdentifiers.st +++ b/src/integrations/app/SystemConstants/plc_line_HwIdentifiers.st @@ -7,12 +7,12 @@ CONFIGURATION HardwareIDs plc_line_plc_line_Card_reader_writer_1_HwID : UINT := UINT#51; plc_line_plc_line_DP_interface_1_HwID : UINT := UINT#60; plc_line_plc_line_OPC_UA_1_HwID : UINT := UINT#117; + plc_line_plc_line_Virtual_communication_interface_HwID : UINT := UINT#135; plc_line_plc_line_profinet_x1_HwID : UINT := UINT#64; plc_line_plc_line_profinet_x1_Port_1_HwID : UINT := UINT#65; plc_line_plc_line_profinet_x1_Port_2_HwID : UINT := UINT#66; plc_line_plc_line_profinet_x2_HwID : UINT := UINT#72; plc_line_plc_line_profinet_x2_Port_3_HwID : UINT := UINT#73; - plc_line_plc_line_virtual_communication_interface_HwID : UINT := UINT#135; profinet_plc_line_HwID : UINT := UINT#256; END_VAR diff --git a/src/integrations/app/apax.yml b/src/integrations/app/apax.yml index be30bceb4..e1df73d26 100644 --- a/src/integrations/app/apax.yml +++ b/src/integrations/app/apax.yml @@ -1,12 +1,12 @@ -name: "axopen.integrations" +name: "axopen.integrations" version: '0.0.0-dev.0' type: app targets: - - llvm + # - llvm - "1500" variables: - APAX_BUILD_ARGS: - - "--debug" # Generate debug information for target "1500" + # APAX_BUILD_ARGS: + # - "--debug" # Generate debug information for target "1500" # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Integrations" @@ -19,7 +19,7 @@ variables: registries: "@inxton": "https://npm.pkg.github.com/" catalogs: - "@inxton/ax.catalog": 0.0.9 + "@inxton/ax.catalog": 0.0.28 devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: @@ -27,10 +27,9 @@ dependencies: "@inxton/axopen.data": '0.0.0-dev.0' "@inxton/axopen.probers": '0.0.0-dev.0' "@inxton/axopen.simatic1500": '0.0.0-dev.0' - "@inxton/axopen.components.cognex.vision": '0.0.0-dev.0' "@inxton/ax.axopen.app": '0.0.0-dev.0' installStrategy: strict -apaxVersion: 3.4.2 +apaxVersion: 3.5.0 scripts: # For proper execution of these scripts, the following variables need to be defined as environment variables or local variables. # Local variables can override environment variables. @@ -45,76 +44,139 @@ scripts: # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network plcsim: | # start the PlcSimAdvanced if installed and if $USE_PLC_SIM_ADVANCED = true, register instance name according to name of the project, set its IpAddress to the value of $AXTARGET + START=$(date +%s) ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax plcsim' Finished in :" $(expr $(date +%s) - $START) "s" r: | # restart PLC using certificates (apax plc-info set-mode STOP [using cert file] & apax plc-info set-mode RUN [using cert file]) + START=$(date +%s) ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax r' Finished in :" $(expr $(date +%s) - $START) "s" ixc: | # run ix builder + START=$(date +%s) dotnet tool restore dotnet ixc --skip-deps + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ixc' Finished in :" $(expr $(date +%s) - $START) "s" postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC (apax dcp-utility list-interfaces ) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_list_interfaces.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpli' Finished in :" $(expr $(date +%s) - $START) "s" dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves (apax dcp-utility discover) + START=$(date +%s) ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax dcpd' Finished in :" $(expr $(date +%s) - $START) "s" hdl: | #List configured harware and its state (apax hw-diag list [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hdl' Finished in :" $(expr $(date +%s) - $START) "s" ci: | #clean and install dependencies + START=$(date +%s) apax clean apax install + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ci' Finished in :" $(expr $(date +%s) - $START) "s" reset_plc: | #total reset of the PLC including IP and name (apax hwld --reset-plc All) + START=$(date +%s) ..\\..\\scripts\\reset_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax reset_plc' Finished in :" $(expr $(date +%s) - $START) "s" clean_plc: | #total reset of the PLC excluding IP and name (apax hwld --reset-plc KeepOnlyIP) + START=$(date +%s) ..\\..\\scripts\\clean_plc.sh $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax clean_plc' Finished in :" $(expr $(date +%s) - $START) "s" ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME (create pkcs12ForCertificateImport.p12 & apax hwc setup-secure-communication & apax hwc import-certificate [TLS+Webserver] & apax hwc manage-users set-password) + START=$(date +%s) ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' Finished in :" $(expr $(date +%s) - $START) "s" gsd: | # copy and install all gsdml files from libraries (copy gsdml files from all assets dir & apax hwc install-gsd) + START=$(date +%s) ..\\..\\scripts\\copy_and_install_gsd.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gsd' Finished in :" $(expr $(date +%s) - $START) "s" hwl: | # copy all templates from libraries + START=$(date +%s) ..\\..\\scripts\\copy_hwl_templates.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwl' Finished in :" $(expr $(date +%s) - $START) "s" hwcc: | # compile hardware configuration (apax hwc compile) + START=$(date +%s) ..\\..\\scripts\\hw_compile.sh + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwcc' Finished in :" $(expr $(date +%s) - $START) "s" hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + START=$(date +%s) ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwid' Finished in :" $(expr $(date +%s) - $START) "s" hwadr: | # copy the generated IoAddresses + START=$(date +%s) ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwadr' Finished in :" $(expr $(date +%s) - $START) "s" # the following command must be triggered only once hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using password] & apax plc-cert) + START=$(date +%s) ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfd' Finished in :" $(expr $(date +%s) - $START) "s" hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate (apax gsd & apax hwl & apax hwcc & apax hwid & apax hwadr & apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwu' Finished in :" $(expr $(date +%s) - $START) "s" + hwfdo: | # first download HW using password and upload certificate (apax hwld [using password] & apax plc-cert) + START=$(date +%s) + ..\\..\\scripts\\hw_first_download_only.sh $PLC_NAME $AXTARGET $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwfdo' Finished in :" $(expr $(date +%s) - $START) "s" hwdo: | # download HW only using certificate (apax hwld [using cert file]) + START=$(date +%s) ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax hwdo' Finished in :" $(expr $(date +%s) - $START) "s" swfd: | # software build and full download (apax build & dotnet ixc & apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfd' Finished in :" $(expr $(date +%s) - $START) "s" swfdo: | # software full download only (apax sld load [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swfdo' Finished in :" $(expr $(date +%s) - $START) "s" swdd: | # software build and delta download (apax build & dotnet ixc & apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swdd' Finished in :" $(expr $(date +%s) - $START) "s" swddo: | # software delta download only (apax sld load --mode delta [using cert file]) + START=$(date +%s) ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax swddo' Finished in :" $(expr $(date +%s) - $START) "s" alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw (apax plcsim & apax clean & apax install & apax clean_plc & apax ssc & apax hwfd & apax swfd) START=$(date +%s) ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax alf' Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software using cert file. If cert file does not exists or its hash is different calls apax alf (apax plcsim & apax clean & apax install & apax hwu & apax swfd) START=$(date +%s) ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" ib: | + START=$(date +%s) apax install apax build + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ib' Finished in :" $(expr $(date +%s) - $START) "s" icb: | + START=$(date +%s) apax install --catalog apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax icb' Finished in :" $(expr $(date +%s) - $START) "s" cib: | + START=$(date +%s) apax clean apax ib + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cib' Finished in :" $(expr $(date +%s) - $START) "s" cicb: | + START=$(date +%s) apax clean apax icb + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cicb' Finished in :" $(expr $(date +%s) - $START) "s" ibt: | + START=$(date +%s) apax install apax build apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" mm: | apax mon --targetIP $AXTARGET --file monitor.mon --username $AX_USERNAME --password $AX_TARGET_PWD --certificate .\\certs\\plc_line\\plc_line.cer --continuously + + + + + diff --git a/src/integrations/app/gsd/source/gsdml-v2.31-cognex-dataman-20170215.xml b/src/integrations/app/gsd/source/gsdml-v2.31-cognex-dataman-20170215.xml deleted file mode 100644 index e905c4acf..000000000 --- a/src/integrations/app/gsd/source/gsdml-v2.31-cognex-dataman-20170215.xml +++ /dev/null @@ -1,1513 +0,0 @@ - - - - - PROFINET Device Profile - 1.00 - Device Profile for PROFINET Devices - PROFIBUS Nutzerorganisation e. V. (PNO) - Device - - 4 - 1 - GSDML - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/integrations/app/gsd/source/gsdml-v2.34-cognex-insightclassb-20200327.xml b/src/integrations/app/gsd/source/gsdml-v2.34-cognex-insightclassb-20200327.xml deleted file mode 100644 index 23c0bda78..000000000 --- a/src/integrations/app/gsd/source/gsdml-v2.34-cognex-insightclassb-20200327.xml +++ /dev/null @@ -1,1527 +0,0 @@ - - - - PROFINET Device Profile - 1.00 - Device Profile for PROFINET Devices - PROFIBUS Nutzerorganisation e. V. (PNO) - Device - - 4 - 1 - GSDML - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/integrations/app/gsd/source/gsdml-v2.42-cognex-datamanclassb-20220124.xml b/src/integrations/app/gsd/source/gsdml-v2.42-cognex-datamanclassb-20220124.xml deleted file mode 100644 index 78d324ae4..000000000 --- a/src/integrations/app/gsd/source/gsdml-v2.42-cognex-datamanclassb-20220124.xml +++ /dev/null @@ -1,1280 +0,0 @@ - - - - PROFINET Device Profile - 1.00 - Device Profile for PROFINET Devices - PROFIBUS Nutzerorganisation e. V. (PNO) - Device - - 4 - 1 - GSDML - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/integrations/app/src/Examples/AXOpen.AxoBoolArray/AxoBoolArrayExample.st b/src/integrations/app/src/Examples/AXOpen.AxoBoolArray/AxoBoolArrayExample.st index aff90c6ca..474d0c2c3 100644 --- a/src/integrations/app/src/Examples/AXOpen.AxoBoolArray/AxoBoolArrayExample.st +++ b/src/integrations/app/src/Examples/AXOpen.AxoBoolArray/AxoBoolArrayExample.st @@ -1,4 +1,3 @@ -USING AXOpen.Components.Cognex.Vision.v_6_0_0_0; USING AxoDataFramentsExchangeDocuExample; USING AXOpen.Core; diff --git a/src/integrations/app/src/Examples/AXOpen.AxoByteArray/AxoByteArrayExample.st b/src/integrations/app/src/Examples/AXOpen.AxoByteArray/AxoByteArrayExample.st index 9158e8f9c..5ed3da624 100644 --- a/src/integrations/app/src/Examples/AXOpen.AxoByteArray/AxoByteArrayExample.st +++ b/src/integrations/app/src/Examples/AXOpen.AxoByteArray/AxoByteArrayExample.st @@ -1,4 +1,3 @@ -USING AXOpen.Components.Cognex.Vision.v_6_0_0_0; USING AxoDataFramentsExchangeDocuExample; USING AXOpen.Core; diff --git a/src/integrations/app/src/Examples/AXOpen.Cognex.Vision/AxoCognexVisionDatamanExample.st b/src/integrations/app/src/Examples/AXOpen.Cognex.Vision/AxoCognexVisionDatamanExample.st deleted file mode 100644 index 55c50e41a..000000000 --- a/src/integrations/app/src/Examples/AXOpen.Cognex.Vision/AxoCognexVisionDatamanExample.st +++ /dev/null @@ -1,72 +0,0 @@ -USING AXOpen.Core; -USING AXOpen.Components.Cognex.Vision.v_6_0_0_0; - -NAMESPACE AxoCognexVisionDatamanExamples - - {S7.extern=ReadWrite} - CLASS AxoCognexVisionDatamanExampleContext EXTENDS AXOpen.Core.AxoContext - VAR PUBLIC - {#ix-set:AttributeName = "10A1"} - MyDataman1 : AXOpen.Components.Cognex.Vision.v_6_0_0_0.AxoDataman; - {#ix-set:AttributeName = "reader_st2"} - MyDataman2 : AXOpen.Components.Cognex.Vision.v_6_0_0_0.AxoDataman; - {#ix-set:AttributeName = "<#Activate manual control#>"} - ActivateManualControl : BOOL; - myString : STRING; - _rootObject : AxoObject; - END_VAR - - METHOD PROTECTED OVERRIDE Main - // Example of the activation of the manual control. - IF ActivateManualControl THEN - MyDataman1.ActivateManualControl(); - MyDataman2.ActivateManualControl(); - END_IF; - // Calling the main method `Run` with respective input and output variables. - THIS.InitializeRootObject(_rootObject); - // - MyDataman1.Run( parent := _rootObject, - ResultDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoDataman_ResultDataSize#RESULT_DATA_128B, - UserDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoDataman_UserDataSize#USER_DATA_128B, - hwID := HwIdentifiers#_10a1, - hwIdAcquisitionControl := HwIdentifiers#_10a1_Acquisition_Control_1, - hwIdAcquisitionStatus := HwIdentifiers#_10a1_Acquisition_Status_1, - hwIdResultsControl := HwIdentifiers#_10a1_Results_Control_1, - hwIdResultsStatus := HwIdentifiers#_10a1_Results_Status_1, - hwIdSoftEventControl := HwIdentifiers#_10a1_Soft_Event_Control_1, - hwIdResultData := HwIdentifiers#_10a1_Result_Data_128_bytes_1, - hwIdUserData := HwIdentifiers#_10a1_User_Data_128_bytes_1); - // - MyDataman2.Run( parent := _rootObject, - ResultDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoDataman_ResultDataSize#RESULT_DATA_64B, - UserDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoDataman_UserDataSize#USER_DATA_64B, - hwID := HwIdentifiers#reader_st2, - hwIdAcquisitionControl := HwIdentifiers#reader_st2_Acquisition_Control_1, - hwIdAcquisitionStatus := HwIdentifiers#reader_st2_Acquisition_Status_1, - hwIdResultsControl := HwIdentifiers#reader_st2_Results_Control_1, - hwIdResultsStatus := HwIdentifiers#reader_st2_Results_Status_1, - hwIdSoftEventControl := HwIdentifiers#reader_st2_Soft_Event_Control_1, - hwIdResultData := HwIdentifiers#reader_st2_Result_Data_64_bytes_1, - hwIdUserData := HwIdentifiers#reader_st2_User_Data_64_bytes_1); - - END_METHOD - - METHOD DocuExample - // - IF MyDataman1.Read().IsDone() THEN - //Process the result data - // myString := MyDataman1.ResultData.Data; - ; - END_IF; - // - - // - IF MyDataman1.ClearResultData().IsDone() THEN - //Data inside MyDataman1.Results.Data is cleared - ; - END_IF; - // - END_METHOD - - END_CLASS -END_NAMESPACE diff --git a/src/integrations/app/src/Examples/AXOpen.Cognex.Vision/AxoCognexVisionInsightExample.st b/src/integrations/app/src/Examples/AXOpen.Cognex.Vision/AxoCognexVisionInsightExample.st deleted file mode 100644 index af73fa7bb..000000000 --- a/src/integrations/app/src/Examples/AXOpen.Cognex.Vision/AxoCognexVisionInsightExample.st +++ /dev/null @@ -1,80 +0,0 @@ -USING AXOpen.Core; -USING AXOpen.Components.Cognex.Vision.v_6_0_0_0; - -NAMESPACE AxoCognexVisionInsightExamples - - {S7.extern=ReadWrite} - CLASS AxoCognexVisionInsightExampleContext EXTENDS AXOpen.Core.AxoContext - VAR PUBLIC - {#ix-set:AttributeName = "someInsight"} - MyInsight : AXOpen.Components.Cognex.Vision.v_6_0_0_0.AxoInsight; - {#ix-set:AttributeName = "<#Activate manual control#>"} - ActivateManualControl : BOOL; - _rootObject : AxoObject; - END_VAR - - METHOD PROTECTED OVERRIDE Main - // Example of the activation of the manual control. - IF ActivateManualControl THEN - MyInsight.ActivateManualControl(); - END_IF; - // Calling the main method `Run` with respective input and output variables. - THIS.InitializeRootObject(_rootObject); - // - MyInsight.Run( parent := _rootObject, - ResultDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoInsight_ResultDataSize#RESULT_DATA_64B, - UserDataSize := AXOpen.Components.Cognex.Vision.v_6_0_0_0.eAxoInsight_UserDataSize#USER_DATA_64B, - hwID := HwIdentifiers#_7600, - hwIdAcquisitionControl := HwIdentifiers#_7600_Acquisition_Control_1, - hwIdAcquisitionStatus := HwIdentifiers#_7600_Acquisition_Status_1, - hwIdInspectionControl := HwIdentifiers#_7600_Inspection_Control_1, - hwIdInspectionStatus := HwIdentifiers#_7600_Inspection_Status_1, - hwIdCommandControl := HwIdentifiers#_7600_Command_Control_1, - hwIdSoftEventControl := HwIdentifiers#_7600_SoftEvent_Control_1, - hwIdResultData := HwIdentifiers#_7600_Results_64_bytes_1, - hwIdUserData := HwIdentifiers#_7600_User_Data_64_bytes_1); - // - END_METHOD - - - METHOD DocuExample - VAR - myData : ARRAY[0..249] OF BYTE; - END_VAR - - // - IF MyInsight.ClearInspectionResults().IsDone() THEN - //Data inside MyInsight.InspectionResults.Data is cleared - ; - END_IF; - // - - // - IF MyInsight.Trigger().IsDone() THEN - //Process the result data - myData := MyInsight.InspectionResults.Data; - END_IF; - // - - // - IF MyInsight.ChangeJob(UINT#5).IsDone() THEN - ; - END_IF; - // - - // - IF MyInsight.ChangeJob('MyJobName.job').IsDone() THEN - ; - END_IF; - // - - // - IF MyInsight.SoftEvent(UINT#5).IsDone() THEN - ; - END_IF; - // - - END_METHOD - - END_CLASS -END_NAMESPACE diff --git a/src/integrations/app/src/Examples/AXOpen.Cognex.Vision/IO/HwIdentifiers.st b/src/integrations/app/src/Examples/AXOpen.Cognex.Vision/IO/HwIdentifiers.st deleted file mode 100644 index f5d74298d..000000000 --- a/src/integrations/app/src/Examples/AXOpen.Cognex.Vision/IO/HwIdentifiers.st +++ /dev/null @@ -1,56 +0,0 @@ -TYPE - HwIdentifiers : WORD - ( - PLC_LINE_Rail_0 := WORD#256, - PLC_LINE := WORD#48, - PLC_LINE_Card_reader_writer_1 := WORD#51, - PLC_LINE_CPU_display_1 := WORD#54, - PLC_LINE_OPC_UA_1 := WORD#117, - PLC_LINE_PROFINET_interface_1 := WORD#64, - PLC_LINE_PROFINET_interface_1_Port_1 := WORD#65, - PLC_LINE_PROFINET_interface_1_Port_2 := WORD#66, - PLC_LINE_PROFINET_interface_2 := WORD#72, - PLC_LINE_PROFINET_interface_2_Port_1 := WORD#73, - PLC_LINE_DP_interface_1 := WORD#60, - PLC_LINE_PROFINET_interface_GBIT_3 := WORD#120, - PLC_LINE_PROFINET_interface_GBIT_3_Port_1 := WORD#121, - _10a1_Rack := WORD#286, - _10a1 := WORD#287, - _10a1_Interface := WORD#288, - _10a1_Interface_Port_1 := WORD#289, - _10a1_DataMan_280_CC_B := WORD#290, - _10a1_Acquisition_Status_1 := WORD#291, - _10a1_Results_Control_1 := WORD#292, - _10a1_Acquisition_Control_1 := WORD#293, - _10a1_Soft_Event_Control_1 := WORD#294, - _10a1_Results_Status_1 := WORD#295, - _10a1_User_Data_128_bytes_1 := WORD#298, - _10a1_Result_Data_128_bytes_1 := WORD#299, - reader_st2_Rack := WORD#264, - reader_st2 := WORD#258, - reader_st2_Interface := WORD#259, - reader_st2_Interface_Port_1 := WORD#260, - reader_st2_DataMan_300 := WORD#261, - reader_st2_Acquisition_Status_1 := WORD#263, - reader_st2_Results_Control_1 := WORD#265, - reader_st2_Acquisition_Control_1 := WORD#267, - reader_st2_Soft_Event_Control_1 := WORD#269, - reader_st2_Results_Status_1 := WORD#271, - reader_st2_User_Data_64_bytes_1 := WORD#273, - reader_st2_Result_Data_64_bytes_1 := WORD#275, - _7600_Rack := WORD#268, - _7600 := WORD#270, - _7600_Interface := WORD#272, - _7600_Interface_Port_1 := WORD#274, - _7600_In_Sight_IS79XX_IS75XX_CC_B := WORD#276, - _7600_Inspection_Control_1 := WORD#278, - _7600_Acquisition_Control_1 := WORD#279, - _7600_Command_Control_1 := WORD#280, - _7600_SoftEvent_Control_1 := WORD#281, - _7600_Acquisition_Status_1 := WORD#282, - _7600_Inspection_Status_1 := WORD#283, - _7600_User_Data_64_bytes_1 := WORD#284, - _7600_Results_64_bytes_1 := WORD#277, - NONE:= WORD#0 - ); -END_TYPE diff --git a/src/integrations/app/src/IO/HwIdentifiers.st b/src/integrations/app/src/IO/HwIdentifiers.st index fdc7757a1..6cfe99d43 100644 --- a/src/integrations/app/src/IO/HwIdentifiers.st +++ b/src/integrations/app/src/IO/HwIdentifiers.st @@ -9,12 +9,12 @@ NAMESPACE AXOpen.Integrations plc_line_plc_line_Card_reader_writer_1_HwID := WORD#51, plc_line_plc_line_DP_interface_1_HwID := WORD#60, plc_line_plc_line_OPC_UA_1_HwID := WORD#117, + plc_line_plc_line_Virtual_communication_interface_HwID := WORD#135, plc_line_plc_line_profinet_x1_HwID := WORD#64, plc_line_plc_line_profinet_x1_Port_1_HwID := WORD#65, plc_line_plc_line_profinet_x1_Port_2_HwID := WORD#66, plc_line_plc_line_profinet_x2_HwID := WORD#72, plc_line_plc_line_profinet_x2_Port_3_HwID := WORD#73, - plc_line_plc_line_virtual_communication_interface_HwID := WORD#135, profinet_plc_line_HwID := WORD#256, NONE := WORD#0 diff --git a/src/integrations/app/src/configuration.st b/src/integrations/app/src/configuration.st index 1f29c4ea1..f91a79d2d 100644 --- a/src/integrations/app/src/configuration.st +++ b/src/integrations/app/src/configuration.st @@ -48,10 +48,6 @@ CONFIGURATION MyConfiguration {S7.extern=ReadWrite} AxoTextListExampleContext : AxoTextListExample.AxoTextListExampleContext; {S7.extern=ReadWrite} - AxoCognexVisionDatamanExampleContext : AxoCognexVisionDatamanExamples.AxoCognexVisionDatamanExampleContext; - {S7.extern=ReadWrite} - AxoCognexVisionInsightExampleContext : AxoCognexVisionInsightExamples.AxoCognexVisionInsightExampleContext; - {S7.extern=ReadWrite} AxoByteArrayExampleContext : AxoByteArrayExample.AxoByteArrayExampleContext; {S7.extern=ReadWrite} AxoBoolArrayExampleContext : AxoBoolArrayExample.AxoBoolArrayExampleContext; diff --git a/src/integrations/app/src/program.st b/src/integrations/app/src/program.st index e113f50f1..06b2e48d4 100644 --- a/src/integrations/app/src/program.st +++ b/src/integrations/app/src/program.st @@ -23,8 +23,8 @@ PROGRAM MyProgram AxoDataFragmentExchangeContext : AxoDataFramentsExchangeDocuExample.AxoDataFragmentExchangeContext; AxoTextListExampleContext : AxoTextListExample.AxoTextListExampleContext; - AxoCognexVisionDatamanExampleContext : AxoCognexVisionDatamanExamples.AxoCognexVisionDatamanExampleContext; - AxoCognexVisionInsightExampleContext : AxoCognexVisionInsightExamples.AxoCognexVisionInsightExampleContext; + + AxoByteArrayExampleContext : AxoByteArrayExample.AxoByteArrayExampleContext; AxoBoolArrayExampleContext : AxoBoolArrayExample.AxoBoolArrayExampleContext; @@ -60,11 +60,6 @@ PROGRAM MyProgram AxoTextListExampleContext.Run(); - AxoCognexVisionDatamanExampleContext.InjectRtc(AxoRtc); - AxoCognexVisionDatamanExampleContext.Run(); - - AxoCognexVisionInsightExampleContext.InjectRtc(AxoRtc); - AxoCognexVisionInsightExampleContext.Run(); AxoByteArrayExampleContext.Run(); AxoBoolArrayExampleContext.Run(); diff --git a/src/integrations/src/AXOpen.Integrations.Blazor/Pages/AxoCognexVision/AxoCognexVisionDatamanExample.razor b/src/integrations/src/AXOpen.Integrations.Blazor/Pages/AxoCognexVision/AxoCognexVisionDatamanExample.razor deleted file mode 100644 index aef3fa676..000000000 --- a/src/integrations/src/AXOpen.Integrations.Blazor/Pages/AxoCognexVision/AxoCognexVisionDatamanExample.razor +++ /dev/null @@ -1,33 +0,0 @@ -@page "/AxoCognexVisionDatamanExample" -@using axopen_integrations -@using AXOpen.Core; -@using AXOpen.Components.Cognex.Vision.v_6_0_0_0; - -

AxoCognexVisionDatamanExample

- -
-
- AxoCognexVisionDataman -
-
-
-
- -
-
- -
-
- -
-
- -
- -
-
- -
-
-
- diff --git a/src/integrations/src/AXOpen.Integrations.Blazor/Pages/AxoCognexVision/AxoCognexVisionInsightExample.razor b/src/integrations/src/AXOpen.Integrations.Blazor/Pages/AxoCognexVision/AxoCognexVisionInsightExample.razor deleted file mode 100644 index a61a17312..000000000 --- a/src/integrations/src/AXOpen.Integrations.Blazor/Pages/AxoCognexVision/AxoCognexVisionInsightExample.razor +++ /dev/null @@ -1,28 +0,0 @@ -@page "/AxoCognexVisionInsightExample" -@using axopen_integrations -@using AXOpen.Core; -@using AXOpen.Components.Cognex.Vision.v_6_0_0_0; - -

AxoCognexVisionInsightExample

- -
-
- AxoCognexVisionInsight -
-
-
-
- -
-
- -
- -
- -
- -
-
-
- diff --git a/src/integrations/src/AXOpen.Integrations.Blazor/Shared/NavMenu.razor b/src/integrations/src/AXOpen.Integrations.Blazor/Shared/NavMenu.razor index 54948acc8..008cd364c 100644 --- a/src/integrations/src/AXOpen.Integrations.Blazor/Shared/NavMenu.razor +++ b/src/integrations/src/AXOpen.Integrations.Blazor/Shared/NavMenu.razor @@ -94,16 +94,6 @@ AxoTextListExample
- -