From 38f3508f5ba66e0dc9ab58456ceb89a3580c7385 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 18 May 2026 14:37:40 +0200 Subject: [PATCH 01/32] wip --- src/_test/_test.code-workspace | 8 + src/_test/_test.sln | 856 +++++++++++++ src/_test/_test.solution.proj | 5 + src/_test/app/.gitignore | 6 + src/_test/app/AXSharp.config.json | 1 + .../SystemConstants/plc_line_HwIdentifiers.st | 46 + .../SystemConstants/plc_line_IoAddresses.st | 149 +++ src/_test/app/apax.yml | 257 ++++ src/_test/app/axsharp.companion.json | 1 + .../app/docs-snippets/core-blazor/Program.cs | 155 +++ .../data-blazor/Pages/DistributedData.razor | 40 + .../data-blazor/Pages/Rendering.razor | 122 ++ .../app/docs-snippets/data-blazor/Program.cs | 292 +++++ .../Templates/CustomBoolTemplate.razor | 21 + .../Templates/CustomIntTemplate.razor | 27 + .../Documentation/ComponentWithDiagnostics.st | 29 + .../io-src/Documentation/Component_1.st | 78 ++ .../io-src/Documentation/Component_2.st | 35 + .../io-src/Documentation/Component_3.st | 33 + .../io-src/Documentation/Component_4.st | 59 + .../io-src/Documentation/Component_5.st | 40 + .../Documentation/DocumentationContext.st | 66 + .../hwc.gen/plc_line.HardwareIdentifiers.json | 169 +++ .../app/hwc/hwc.gen/plc_line.IoAddresses.json | 449 +++++++ .../plc_line.SecurityConfiguration.json | 9 + src/_test/app/hwc/plc_line.hwl.yml | 26 + .../app/ix-blazor/showcase.blazor/App.razor | 15 + .../showcase.blazor/Pages/Error.razor | 37 + .../showcase.blazor/Pages/Index.razor | 54 + .../showcase.blazor/Pages/Security.razor | 5 + .../Pages/VisualComposer.razor | 29 + .../showcase.blazor/Pages/_Host.cshtml | 107 ++ .../Documentation/AbstractionsShowcase.razor | 208 ++++ .../Documentation/AbbRobotics.razor | 523 ++++++++ .../ComponentsAbstractionsShowcase.razor | 214 ++++ .../Documentation/BalluffIdentification.razor | 401 ++++++ .../Documentation/CognexVision.razor | 1070 +++++++++++++++++ .../Documentation/DesoutterTightening.razor | 342 ++++++ .../Documentation/DrivesShowcase.razor | 236 ++++ .../Documentation/DukaneWelders.razor | 521 ++++++++ .../Documentation/ElementsShowcase.razor | 525 ++++++++ .../Documentation/FestoDrives.razor | 357 ++++++ .../Documentation/KeyenceVision.razor | 713 +++++++++++ .../Documentation/KukaRobotics.razor | 555 +++++++++ .../Documentation/MitsubishiRobotics.razor | 319 +++++ .../Documentation/PneumaticsShowcase.razor | 277 +++++ .../Documentation/RexrothDrives.razor | 547 +++++++++ .../Documentation/RexrothPress.razor | 315 +++++ .../Documentation/RexrothTightening.razor | 522 ++++++++ .../Documentation/RoboticsShowcase.razor | 141 +++ .../Documentation/SiemCommunication.razor | 286 +++++ .../Documentation/SiemIdentification.razor | 833 +++++++++++++ .../Documentation/UrRobotics.razor | 319 +++++ .../Documentation/ZebraVision.razor | 455 +++++++ .../Pages/core/AxoComponent.razor | 221 ++++ .../core/AxoCore/AxoComponentExample.razor | 29 + .../AxoComponentHeaderOnlyExample.razor | 27 + .../Pages/core/AxoDialogs.razor | 249 ++++ .../Pages/core/AxoLogger.razor | 260 ++++ .../Pages/core/AxoMessaging.razor | 246 ++++ .../Pages/core/AxoSequencer.razor | 363 ++++++ .../showcase.blazor/Pages/core/AxoTask.razor | 470 ++++++++ .../core/AxoTextList/AxoTextListExample.razor | 32 + .../DocuExamples/AxoMessagingStaticDocu.razor | 28 + .../DocuExamples/AxoMomentaryTaskDocu.razor | 44 + .../Pages/core/DocuExamples/AxoTaskDocu.razor | 44 + .../core/DocuExamples/AxoToggleTaskDocu.razor | 44 + .../Pages/data/DataExchange.razor | 372 ++++++ .../Pages/data/DistributedData.razor | 39 + .../Pages/data/Rendering.razor | 122 ++ .../Documentation/InspectorsShowcase.razor | 206 ++++ .../Pages/io/Documentation/IoShowcase.razor | 328 +++++ .../Documentation/ProbersShowcase.razor | 194 +++ .../Documentation/Simatic1500Showcase.razor | 177 +++ .../timers/Documentation/TimersShowcase.razor | 200 +++ .../utils/Documentation/UtilsShowcase.razor | 222 ++++ .../app/ix-blazor/showcase.blazor/Program.cs | 243 ++++ .../Properties/launchSettings.json | 37 + .../Services/CodeSnippetProvider.cs | 420 +++++++ .../Services/ComponentMaturityService.cs | 83 ++ .../Services/DocFxMarkdownProcessor.cs | 342 ++++++ .../Services/Search/ContentIndexEntry.cs | 11 + .../Services/Search/ContentIndexService.cs | 148 +++ .../Services/Search/SearchResult.cs | 14 + .../Services/Search/SearchablePageEntry.cs | 14 + .../Services/Search/ShowcasePageRegistry.cs | 798 ++++++++++++ .../Services/Search/ShowcaseSearchService.cs | 189 +++ .../showcase.blazor/Shared/MainLayout.razor | 48 + .../Shared/Menu/ExpandableMenuItem.razor | 79 ++ .../Shared/Menu/MenuItem.razor | 51 + .../showcase.blazor/Shared/NavMenu.razor | 126 ++ .../showcase.blazor/Shared/SearchDialog.razor | 195 +++ .../Shared/Showcase/AxoStepCard.razor | 51 + .../Shared/Showcase/CodeBlock.razor | 42 + .../Shared/Showcase/ExternalLinks.razor | 18 + .../Shared/Showcase/LibraryResources.razor | 49 + .../Shared/Showcase/MaturityBadge.razor | 41 + .../Shared/Showcase/SourceFileLink.razor | 19 + .../Shared/Showcase/SourceViewerModal.razor | 98 ++ .../showcase.blazor/Shared/TopRow.razor | 46 + .../Templates/CustomBoolTemplate.razor | 21 + .../Templates/CustomIntTemplate.razor | 27 + .../ix-blazor/showcase.blazor/_Imports.razor | 19 + .../appsettings.Development.json | 9 + .../showcase.blazor/appsettings.json | 9 + .../showcase.blazor/package-lock.json | 1045 ++++++++++++++++ .../ix-blazor/showcase.blazor/package.json | 6 + .../showcase.blazor/showcase.blazor.csproj | 62 + .../ix-blazor/showcase.blazor/tailwind.ps1 | 1 + .../showcase.blazor/wwwroot/css/momentum.css | 1047 ++++++++++++++++ .../showcase.blazor/wwwroot/css/tailwind.css | 6 + .../showcase.blazor/wwwroot/logo-header.svg | 110 ++ .../wwwroot/logo-no-background.svg | 1 + .../AxoStaticMessengerDocuExample.cs | 75 ++ .../ix/AXOpen.TextList/AxoTextListExample.cs | 69 ++ src/_test/app/ix/Directory.Build.props | 5 + src/_test/app/ix/Entry.cs | 44 + src/_test/app/ix/Usings.cs | 1 + src/_test/app/ix/showcase.csproj | 54 + src/_test/app/showcase.blazor.sln | 31 + src/_test/app/src/IO/HwIdentifierList.st | 48 + src/_test/app/src/IO/HwIdentifiers.st | 49 + src/_test/app/src/IO/Inputs.st | 26 + src/_test/app/src/IO/IoStructures.st | 161 +++ src/_test/app/src/IO/Outputs.st | 30 + src/_test/app/src/TestContext.st | 25 + .../AxoCtrlxDriveXsc_Showcase.st | 441 +++++++ .../Documentation/RexrothDrives.st | 14 + src/_test/app/src/configuration.st | 37 + src/_test/app/src/program.st | 20 + src/_test/slngen.ps1 | 1 + src/styling/src/wwwroot/css/momentum.css | 2 +- 132 files changed, 23479 insertions(+), 1 deletion(-) create mode 100644 src/_test/_test.code-workspace create mode 100644 src/_test/_test.sln create mode 100644 src/_test/_test.solution.proj create mode 100644 src/_test/app/.gitignore create mode 100644 src/_test/app/AXSharp.config.json create mode 100644 src/_test/app/SystemConstants/plc_line_HwIdentifiers.st create mode 100644 src/_test/app/SystemConstants/plc_line_IoAddresses.st create mode 100644 src/_test/app/apax.yml create mode 100644 src/_test/app/axsharp.companion.json create mode 100644 src/_test/app/docs-snippets/core-blazor/Program.cs create mode 100644 src/_test/app/docs-snippets/data-blazor/Pages/DistributedData.razor create mode 100644 src/_test/app/docs-snippets/data-blazor/Pages/Rendering.razor create mode 100644 src/_test/app/docs-snippets/data-blazor/Program.cs create mode 100644 src/_test/app/docs-snippets/data-blazor/Templates/CustomBoolTemplate.razor create mode 100644 src/_test/app/docs-snippets/data-blazor/Templates/CustomIntTemplate.razor create mode 100644 src/_test/app/docs-snippets/io-src/Documentation/ComponentWithDiagnostics.st create mode 100644 src/_test/app/docs-snippets/io-src/Documentation/Component_1.st create mode 100644 src/_test/app/docs-snippets/io-src/Documentation/Component_2.st create mode 100644 src/_test/app/docs-snippets/io-src/Documentation/Component_3.st create mode 100644 src/_test/app/docs-snippets/io-src/Documentation/Component_4.st create mode 100644 src/_test/app/docs-snippets/io-src/Documentation/Component_5.st create mode 100644 src/_test/app/docs-snippets/io-src/Documentation/DocumentationContext.st create mode 100644 src/_test/app/hwc/hwc.gen/plc_line.HardwareIdentifiers.json create mode 100644 src/_test/app/hwc/hwc.gen/plc_line.IoAddresses.json create mode 100644 src/_test/app/hwc/hwc.gen/plc_line.SecurityConfiguration.json create mode 100644 src/_test/app/hwc/plc_line.hwl.yml create mode 100644 src/_test/app/ix-blazor/showcase.blazor/App.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/Error.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/Index.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/Security.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/VisualComposer.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/_Host.cshtml create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/abstractions/Documentation/AbstractionsShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-abb-robotics/Documentation/AbbRobotics.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-abstractions/Documentation/ComponentsAbstractionsShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-balluff-identification/Documentation/BalluffIdentification.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-cognex-vision/Documentation/CognexVision.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-desoutter-tightening/Documentation/DesoutterTightening.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-drives/Documentation/DrivesShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-dukane-welders/Documentation/DukaneWelders.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-elements/Documentation/ElementsShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-festo-drives/Documentation/FestoDrives.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-keyence-vision/Documentation/KeyenceVision.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-kuka-robotics/Documentation/KukaRobotics.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-mitsubishi-robotics/Documentation/MitsubishiRobotics.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-pneumatics/Documentation/PneumaticsShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-drives/Documentation/RexrothDrives.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-press/Documentation/RexrothPress.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-tightening/Documentation/RexrothTightening.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-robotics/Documentation/RoboticsShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-siem-communication/Documentation/SiemCommunication.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-siem-identification/Documentation/SiemIdentification.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-ur-robotics/Documentation/UrRobotics.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/components-zebra-vision/Documentation/ZebraVision.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoComponent.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoCore/AxoComponentExample.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoCore/AxoComponentHeaderOnlyExample.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoDialogs.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoLogger.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoMessaging.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoSequencer.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoTask.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoTextList/AxoTextListExample.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoMessagingStaticDocu.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoMomentaryTaskDocu.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoTaskDocu.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoToggleTaskDocu.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/data/DataExchange.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/data/DistributedData.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/data/Rendering.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/inspectors/Documentation/InspectorsShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/io/Documentation/IoShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/probers/Documentation/ProbersShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/simatic1500/Documentation/Simatic1500Showcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/timers/Documentation/TimersShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Pages/utils/Documentation/UtilsShowcase.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Program.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Properties/launchSettings.json create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Services/CodeSnippetProvider.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Services/ComponentMaturityService.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Services/DocFxMarkdownProcessor.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Services/Search/ContentIndexEntry.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Services/Search/ContentIndexService.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Services/Search/SearchResult.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Services/Search/SearchablePageEntry.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Services/Search/ShowcasePageRegistry.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Services/Search/ShowcaseSearchService.cs create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/MainLayout.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/Menu/ExpandableMenuItem.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/Menu/MenuItem.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/NavMenu.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/SearchDialog.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/AxoStepCard.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/CodeBlock.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/ExternalLinks.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/LibraryResources.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/MaturityBadge.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/SourceFileLink.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/SourceViewerModal.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Shared/TopRow.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Templates/CustomBoolTemplate.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/Templates/CustomIntTemplate.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/_Imports.razor create mode 100644 src/_test/app/ix-blazor/showcase.blazor/appsettings.Development.json create mode 100644 src/_test/app/ix-blazor/showcase.blazor/appsettings.json create mode 100644 src/_test/app/ix-blazor/showcase.blazor/package-lock.json create mode 100644 src/_test/app/ix-blazor/showcase.blazor/package.json create mode 100644 src/_test/app/ix-blazor/showcase.blazor/showcase.blazor.csproj create mode 100644 src/_test/app/ix-blazor/showcase.blazor/tailwind.ps1 create mode 100644 src/_test/app/ix-blazor/showcase.blazor/wwwroot/css/momentum.css create mode 100644 src/_test/app/ix-blazor/showcase.blazor/wwwroot/css/tailwind.css create mode 100644 src/_test/app/ix-blazor/showcase.blazor/wwwroot/logo-header.svg create mode 100644 src/_test/app/ix-blazor/showcase.blazor/wwwroot/logo-no-background.svg create mode 100644 src/_test/app/ix/AXOpen.Messaging/AxoStaticMessengerDocuExample.cs create mode 100644 src/_test/app/ix/AXOpen.TextList/AxoTextListExample.cs create mode 100644 src/_test/app/ix/Directory.Build.props create mode 100644 src/_test/app/ix/Entry.cs create mode 100644 src/_test/app/ix/Usings.cs create mode 100644 src/_test/app/ix/showcase.csproj create mode 100644 src/_test/app/showcase.blazor.sln create mode 100644 src/_test/app/src/IO/HwIdentifierList.st create mode 100644 src/_test/app/src/IO/HwIdentifiers.st create mode 100644 src/_test/app/src/IO/Inputs.st create mode 100644 src/_test/app/src/IO/IoStructures.st create mode 100644 src/_test/app/src/IO/Outputs.st create mode 100644 src/_test/app/src/TestContext.st create mode 100644 src/_test/app/src/components.rexroth.drives/Documentation/AxoCtrlxDriveXsc_Showcase.st create mode 100644 src/_test/app/src/components.rexroth.drives/Documentation/RexrothDrives.st create mode 100644 src/_test/app/src/configuration.st create mode 100644 src/_test/app/src/program.st create mode 100644 src/_test/slngen.ps1 diff --git a/src/_test/_test.code-workspace b/src/_test/_test.code-workspace new file mode 100644 index 000000000..0a83d1d15 --- /dev/null +++ b/src/_test/_test.code-workspace @@ -0,0 +1,8 @@ +{ + "folders": [ + { + "path": "app" + } + ], + "settings": {} +} \ No newline at end of file diff --git a/src/_test/_test.sln b/src/_test/_test.sln new file mode 100644 index 000000000..ba3c307d2 --- /dev/null +++ b/src/_test/_test.sln @@ -0,0 +1,856 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "_test.solution", "_test.solution.proj", "{48D2A50D-3848-4376-AE97-1D5B47B68A12}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "showcase.blazor", "app\ix-blazor\showcase.blazor\showcase.blazor.csproj", "{DCDF6355-A46D-4AE5-B1A0-78900CF54761}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "showcase", "app\ix\showcase.csproj", "{8885B218-9C39-418D-9CDD-D90AE81FF460}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{7FE122C0-B464-4764-B7BE-45F4CF4FEE8F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{72C77735-0A2F-4A04-AA89-AB9BA284F4F6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{76D1F323-BF07-48C0-968F-287AA52526D6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{C202A924-EFF1-4A5A-8BEA-83B27A9BDC8A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Abb.Robotics.blazor", "..\components.abb.robotics\src\AXOpen.Components.Abb.Robotics.blazor\AXOpen.Components.Abb.Robotics.blazor.csproj", "{943621B9-C075-4336-A217-063D839EBDC9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abb_robotics", "..\components.abb.robotics\src\AXOpen.Components.Abb.Robotics\inxton_axopen_components_abb_robotics.csproj", "{ABA073F6-BE5D-499D-9EED-9C69C93A651C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{C739A286-CB51-4643-8461-1D81BC5A3F22}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Balluff.Identification.blazor", "..\components.balluff.identification\src\AXOpen.Components.Balluff.Identification.blazor\AXOpen.Components.Balluff.Identification.blazor.csproj", "{B3727202-2FD4-44BD-9F63-4A96675C5408}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_balluff_identification", "..\components.balluff.identification\src\AXOpen.Components.Balluff.Identification\inxton_axopen_components_balluff_identification.csproj", "{A74C2440-21AB-419D-9BE4-ECB3A5B679ED}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Cognex.Vision.blazor", "..\components.cognex.vision\src\AXOpen.Components.Cognex.Vision.blazor\AXOpen.Components.Cognex.Vision.blazor.csproj", "{A8306167-2A97-4EA1-9A07-33F372CC11BC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_cognex_vision", "..\components.cognex.vision\src\AXOpen.Components.Cognex.Vision\inxton_axopen_components_cognex_vision.csproj", "{F8EE6B5F-3AD4-4FD6-814A-A0C1658589A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Desoutter.Tightening.blazor", "..\components.desoutter.tightening\src\AXOpen.Components.Desoutter.Tightening.blazor\AXOpen.Components.Desoutter.Tightening.blazor.csproj", "{602160D0-14F0-41F9-8526-23F1652D6661}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_desoutter_tightening", "..\components.desoutter.tightening\src\AXOpen.Components.Desoutter.Tightening\inxton_axopen_components_desoutter_tightening.csproj", "{DF72BCD4-3819-4642-895A-F0EA31ADD60D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Drives.blazor", "..\components.drives\src\AXOpen.Components.Drives.blazor\AXOpen.Components.Drives.blazor.csproj", "{E7BFD865-47B3-4513-98AE-31EB9E90E1A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_drives", "..\components.drives\src\AXOpen.Components.Drives\inxton_axopen_components_drives.csproj", "{AF51F9C0-3B15-446D-B422-6E3A0A26EB82}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Dukane.Welders.blazor", "..\components.dukane.welders\src\AXOpen.Components.Dukane.Welders.blazor\AXOpen.Components.Dukane.Welders.blazor.csproj", "{09C35DBB-5FBF-447E-9F51-5F95E609BB72}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_dukane_welders", "..\components.dukane.welders\src\AXOpen.Components.Dukane.Welders\inxton_axopen_components_dukane_welders.csproj", "{3AE3FAAD-3940-40A3-9FA7-85717C696180}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Elements.blazor", "..\components.elements\src\AXOpen.Components.Elements.blazor\AXOpen.Components.Elements.blazor.csproj", "{B3B397E8-9208-4B98-80D3-AF69C3E20FDF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_elements", "..\components.elements\src\AXOpen.Components.Elements\inxton_axopen_components_elements.csproj", "{AF5726EB-43A4-4E7C-A6F0-4AD7279AAA03}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazor", "..\components.festo.drives\src\AXOpen.Components.Festo.Drives.blazor\AXOpen.Components.Festo.Drives.blazor.csproj", "{244BB61E-0838-4958-B60F-E5CEEC77D2BB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_festo_drives", "..\components.festo.drives\src\AXOpen.Components.Festo.Drives\inxton_axopen_components_festo_drives.csproj", "{70D1213B-B483-4572-8E82-569E91CEA6B4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Keyence.Vision.blazor", "..\components.keyence.vision\src\AXOpen.Components.Keyence.Vision.blazor\AXOpen.Components.Keyence.Vision.blazor.csproj", "{9E352594-7D0F-4D63-AF8F-6690E73289AE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_keyence_vision", "..\components.keyence.vision\src\AXOpen.Components.Keyence.Vision\inxton_axopen_components_keyence_vision.csproj", "{7B6798CB-C5F0-4CB7-ACBF-5CC258ABFCD1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Kuka.Robotics.blazor", "..\components.kuka.robotics\src\AXOpen.Components.Kuka.Robotics.blazor\AXOpen.Components.Kuka.Robotics.blazor.csproj", "{B37A61AB-6323-49D8-9995-8C0629853A73}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_kuka_robotics", "..\components.kuka.robotics\src\AXOpen.Components.Kuka.Robotics\inxton_axopen_components_kuka_robotics.csproj", "{CE025B16-E3CA-4B08-8500-9246998B1CAA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Mitsubishi.Robotics.blazor", "..\components.mitsubishi.robotics\src\AXOpen.Components.Mitsubishi.Robotics.blazor\AXOpen.Components.Mitsubishi.Robotics.blazor.csproj", "{CEAABB1B-12B9-4228-AA31-5EB0B70CCB4D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_mitsubishi_robotics", "..\components.mitsubishi.robotics\src\AXOpen.Components.Mitsubishi.Robotics\inxton_axopen_components_mitsubishi_robotics.csproj", "{B331D93F-8AD9-4EF2-AFC7-C65AF8865A5B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Pneumatics.blazor", "..\components.pneumatics\src\AXOpen.Components.Pneumatics.blazor\AXOpen.Components.Pneumatics.blazor.csproj", "{FF6FF586-B730-4EA8-8508-DAEE975ADC0D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_pneumatics", "..\components.pneumatics\src\AXOpen.Components.Pneumatics\inxton_axopen_components_pneumatics.csproj", "{AAE427FC-00B1-44B6-B129-C11633E30A1B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Rexroth.Drives.blazor", "..\components.rexroth.drives\src\AXOpen.Components.Rexroth.Drives.blazor\AXOpen.Components.Rexroth.Drives.blazor.csproj", "{BB07B262-0A29-41C3-A6CB-1C6BBC31B399}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_rexroth_drives", "..\components.rexroth.drives\src\AXOpen.Components.Rexroth.Drives\inxton_axopen_components_rexroth_drives.csproj", "{0CD96B01-84F7-4770-B0B8-9A37F3CE1B39}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Rexroth.Press.blazor", "..\components.rexroth.press\src\AXOpen.Components.Rexroth.Press.blazor\AXOpen.Components.Rexroth.Press.blazor.csproj", "{D4626CA3-5B6F-4876-A6B4-B26CAE66313B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_rexroth_press", "..\components.rexroth.press\src\AXOpen.Components.Rexroth.Press\inxton_axopen_components_rexroth_press.csproj", "{B349D13C-CCC6-4241-B09A-51B84B51F2A9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Rexroth.Tightening.blazor", "..\components.rexroth.tightening\src\AXOpen.Components.Rexroth.Tightening.blazor\AXOpen.Components.Rexroth.Tightening.blazor.csproj", "{02A366E5-74AE-4237-A762-2C5143CA58BB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_rexroth_tightening", "..\components.rexroth.tightening\src\AXOpen.Components.Rexroth.Tightening\inxton_axopen_components_rexroth_tightening.csproj", "{4FF8E872-D680-4572-89CD-4B612018CE3C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Robotics.blazor", "..\components.robotics\src\AXOpen.Components.Robotics.blazor\AXOpen.Components.Robotics.blazor.csproj", "{C503732B-B14D-41D7-ACBA-9FC69B5B0639}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_robotics", "..\components.robotics\src\AXOpen.Components.Robotics\inxton_axopen_components_robotics.csproj", "{19B0D293-EEAB-45E0-BADB-08CD9594F61E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Siem.Communication.blazor", "..\components.siem.communication\src\AXOpen.Components.Siem.Communication.blazor\AXOpen.Components.Siem.Communication.blazor.csproj", "{B3F219DE-BE65-4956-9774-7AF892292E91}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_siem_communication", "..\components.siem.communication\src\AXOpen.Components.Siem.Communication\inxton_axopen_components_siem_communication.csproj", "{CB3E672F-13AA-458D-9AC3-8BBBFCDC7159}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Siem.Identification.blazor", "..\components.siem.identification\src\AXOpen.Components.Siem.Identification.blazor\AXOpen.Components.Siem.Identification.blazor.csproj", "{3E3B0347-5B31-4C88-8512-F7EB5831B857}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_siem_identification", "..\components.siem.identification\src\AXOpen.Components.Siem.Identification\inxton_axopen_components_siem_identification.csproj", "{E83942FB-6932-4398-8DF1-213F569B3DB2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Ur.Robotics.blazor", "..\components.ur.robotics\src\AXOpen.Components.Ur.Robotics.blazor\AXOpen.Components.Ur.Robotics.blazor.csproj", "{EA832345-AF08-4571-AB17-E2263DE31CBE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_ur_robotics", "..\components.ur.robotics\src\AXOpen.Components.Ur.Robotics\inxton_axopen_components_ur_robotics.csproj", "{6596775C-D4A7-4623-8056-82A3FB010766}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Zebra.Vision.blazor", "..\components.zebra.vision\src\AXOpen.Components.Zebra.Vision.blazor\AXOpen.Components.Zebra.Vision.blazor.csproj", "{9BC56796-AF20-467F-A0B6-5C9FD3F0BAB8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_zebra_vision", "..\components.zebra.vision\src\AXOpen.Components.Zebra.Vision\inxton_axopen_components_zebra_vision.csproj", "{E87FF531-498D-48CD-9553-05D5A654D4FF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\core\src\AXOpen.Core.Blazor\axopen_core_blazor.csproj", "{307FC400-26AE-43C7-A148-3C85182A77BE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{861E1D3A-51B6-4648-A74C-CA3A873FBAE3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_data_blazor", "..\data\src\AXOpen.Data.Blazor\axopen_data_blazor.csproj", "{7A8E03C1-5E80-4C27-9D75-5EE110E05122}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_data", "..\data\src\AXOpen.Data\inxton_axopen_data.csproj", "{1187FEE5-01F9-402A-ADD4-1B368E9E9EB9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{5B993528-F4A4-4E9E-A458-14636CDA134E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AxOpen.Inspectors.Blazor", "..\inspectors\src\AXOpen.Inspectors.blazor\AxOpen.Inspectors.Blazor.csproj", "{C1D2F1A4-D078-40B2-9248-B1499C27360C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_inspectors", "..\inspectors\src\AXOpen.Inspectors\inxton_axopen_inspectors.csproj", "{7839BA93-CD63-42B5-B701-5699313F0DEF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{36F7201B-B5B7-4430-9815-85BA83DAFAAA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{663602F0-B299-420E-94E4-5062D9FF6249}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_probers", "..\probers\src\AXOpen.Probers\inxton_axopen_probers.csproj", "{5F2F41FE-4B99-4B23-8BCD-CBFAF54DFF0F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{476C1760-2152-40BB-A9FE-1A253B480BB4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{585925CB-221E-4271-985D-1F382C49B9B7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{096D0AC0-D78B-4149-92DB-7BF9CAA92377}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{A9A2642A-DFCE-49C0-A4FC-5CD9A56F8F74}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Operon.Blazor", "..\styling\src\AXOpen.Operon.Blazor.csproj", "{54144A8F-77A4-491A-BC88-6151038B3D80}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{976C93F8-2718-4A92-8129-82C75608DA22}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox\AXOpen.ToolBox.csproj", "{4F2F1D1D-DCAF-4445-A5EB-AA0DC1B9E831}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_utils", "..\utils\src\AXOpen.Utils\inxton_axopen_utils.csproj", "{41E1F6BD-EC00-48E6-9DCA-5C84ACB812A3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "showcase.blazor", "app\ix-blazor\showcase.blazor", "{5534B558-C591-44DF-BDB0-5005F7FFC712}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{ABF2800E-3FDB-448C-A4D4-6E464C127E4C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{01E50A38-2EFB-4EBD-B85C-4E8AB6B64B41}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{60EB297A-F72E-4D3E-BEC9-DE78815E9818}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_test", "..\_test", "{E107A913-E042-446D-8169-F17DC4ED8CE4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "..\abstractions\src\AXOpen.Abstractions", "{3992D634-CD9C-4566-9716-6AC9506E89E3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\abstractions\src", "{8820EEE0-AC61-4E97-9DE2-1ACA1A9CA136}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstractions", "{DA6D0894-9B51-4C68-8D23-EC8CFC5ACEBC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{08048178-F775-4EB4-99CE-5AD0509A59FB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{3B5D9ABA-C415-44C7-A034-083A686CB5BA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{D7AEE6D5-1738-4039-BBFA-D17FCEDE1B28}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{042B3CB3-415F-463E-9748-282E7FC02CC8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "..\base", "{11867AD1-E37C-4BC2-9418-AF3543C4D871}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abb.Robotics.blazor", "..\components.abb.robotics\src\AXOpen.Components.Abb.Robotics.blazor", "{A4522FEC-F789-446A-AB30-23D2C1BDFE85}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abb.Robotics", "..\components.abb.robotics\src\AXOpen.Components.Abb.Robotics", "{47071B9F-D2BF-48C4-895D-C54BB2DD5FCE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abb.robotics\src", "{50A37E0A-F5DE-4A11-8ED8-4D9E340A2F98}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abb.robotics", "..\components.abb.robotics", "{0EE3F7BE-0DBF-4040-8E40-9C8E6F2E90A9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions", "{C04C3F0D-2DC4-438F-AA40-14F0AAE13B32}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstractions\src", "{080F49A4-2211-410B-949E-545F0443C879}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{A4F29D52-C4E1-4710-9007-5FA2734DE43E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Balluff.Identification.blazor", "..\components.balluff.identification\src\AXOpen.Components.Balluff.Identification.blazor", "{C09BBB25-3AA9-4B91-BA04-8035EB642841}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Balluff.Identification", "..\components.balluff.identification\src\AXOpen.Components.Balluff.Identification", "{496A8A72-5DBE-4BA2-A9F4-2E7743FAC95C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.balluff.identification\src", "{331F7FBC-939F-4D46-9CCE-8CFCBAE76733}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.balluff.identification", "..\components.balluff.identification", "{01AF8B08-7900-4D6F-A08D-A9A404F1B69E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Cognex.Vision.blazor", "..\components.cognex.vision\src\AXOpen.Components.Cognex.Vision.blazor", "{A3199C80-1510-4D7D-A420-4BA79B8502AC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Cognex.Vision", "..\components.cognex.vision\src\AXOpen.Components.Cognex.Vision", "{E7E912C6-8F90-4330-B226-3F9F44BE26A8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.cognex.vision\src", "{37C1DE83-EC1E-4068-8E15-9271E842327C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.cognex.vision", "..\components.cognex.vision", "{24561368-F2A7-45B4-AA82-397F2771B548}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Desoutter.Tightening.blazor", "..\components.desoutter.tightening\src\AXOpen.Components.Desoutter.Tightening.blazor", "{B85F0B53-C4B7-4713-8CCD-9EC9DC341049}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Desoutter.Tightening", "..\components.desoutter.tightening\src\AXOpen.Components.Desoutter.Tightening", "{F5CC098C-81F7-42FF-BA05-1C7AE6C3B005}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.desoutter.tightening\src", "{A8611366-A219-470F-AEED-1BB86876AB6C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.desoutter.tightening", "..\components.desoutter.tightening", "{3B2394E1-DA2B-4BB0-B101-DE3A860DA8F4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives.blazor", "..\components.drives\src\AXOpen.Components.Drives.blazor", "{4C9A9C19-0BC6-4FCD-AD02-A71CB312229E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives", "..\components.drives\src\AXOpen.Components.Drives", "{372F0976-B7CE-4FAE-912C-E1AA640F5D1A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.drives\src", "{60D61EA6-8D0E-4377-8486-924C3BC6F3D1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.drives", "..\components.drives", "{DBB12B87-C164-4068-B782-2A2B000C8A39}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Dukane.Welders.blazor", "..\components.dukane.welders\src\AXOpen.Components.Dukane.Welders.blazor", "{4663340C-BB81-403C-9A95-13C4A99B6017}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Dukane.Welders", "..\components.dukane.welders\src\AXOpen.Components.Dukane.Welders", "{5B4CD7FA-910C-4E5F-8EAD-3DEC34BDF13E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.dukane.welders\src", "{713100B1-19C3-46D0-B876-4A06FA140E83}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.dukane.welders", "..\components.dukane.welders", "{93A2AA2B-E025-4511-848B-7C709B8D33EE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Elements.blazor", "..\components.elements\src\AXOpen.Components.Elements.blazor", "{216F06D7-4051-410A-BDE3-88E6AE9A8BD4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Elements", "..\components.elements\src\AXOpen.Components.Elements", "{816943EB-6AD6-4F51-A5CE-C816B5BF21F0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.elements\src", "{784101A5-0E30-4D57-97B6-C67A31BA4E49}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.elements", "..\components.elements", "{0998EEB6-95A3-4757-B7AF-1F3C7E8217DD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.blazor", "..\components.festo.drives\src\AXOpen.Components.Festo.Drives.blazor", "{4B148AF2-7AD0-4816-B93E-5230E33B342D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives", "..\components.festo.drives\src\AXOpen.Components.Festo.Drives", "{C79A030A-06E2-457E-97A7-3B74FA8CA72E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.festo.drives\src", "{00F7168D-0414-4C61-8170-19DE18A7FAEE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.festo.drives", "..\components.festo.drives", "{5ADC9D6C-AA98-406A-A04E-5CF2B3A032AD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Keyence.Vision.blazor", "..\components.keyence.vision\src\AXOpen.Components.Keyence.Vision.blazor", "{B1930417-11D8-4EE6-8221-DEB7176750FC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Keyence.Vision", "..\components.keyence.vision\src\AXOpen.Components.Keyence.Vision", "{A5CD57B6-8C9D-408B-919A-8C40F72FA075}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.keyence.vision\src", "{DA032B5C-63A8-4883-B4A3-DBB178F5A380}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.keyence.vision", "..\components.keyence.vision", "{52B9F96D-F6A8-4184-8BF5-5B8B22F0698A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Kuka.Robotics.blazor", "..\components.kuka.robotics\src\AXOpen.Components.Kuka.Robotics.blazor", "{1581D1EE-15DE-4294-8D95-B80FCE07B4B2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Kuka.Robotics", "..\components.kuka.robotics\src\AXOpen.Components.Kuka.Robotics", "{3EC449D5-CF43-411B-9D52-CBF89AFF1EF5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.kuka.robotics\src", "{2223D9FE-E009-4FE7-BF15-83589BA014E4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.kuka.robotics", "..\components.kuka.robotics", "{9DB9FCFC-6CC5-4ECE-BFB0-377E0CE20A8E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Mitsubishi.Robotics.blazor", "..\components.mitsubishi.robotics\src\AXOpen.Components.Mitsubishi.Robotics.blazor", "{BFDC898B-E71A-41DE-A9B5-C5C482A25837}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Mitsubishi.Robotics", "..\components.mitsubishi.robotics\src\AXOpen.Components.Mitsubishi.Robotics", "{BE7BBE99-5B96-404E-B583-0196E5C12F6D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.mitsubishi.robotics\src", "{FA08857B-3087-4D0A-A838-FF530FF88262}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.mitsubishi.robotics", "..\components.mitsubishi.robotics", "{130B1F94-3DEF-4B80-9B6F-0FA09BDB2314}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Pneumatics.blazor", "..\components.pneumatics\src\AXOpen.Components.Pneumatics.blazor", "{B3BD127D-AE69-4C13-A367-1E81D5B89F40}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Pneumatics", "..\components.pneumatics\src\AXOpen.Components.Pneumatics", "{CC10A858-460A-4B79-B32F-7C2D42358744}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.pneumatics\src", "{1D1B2378-80EB-4707-89DC-B41B9A78E67A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.pneumatics", "..\components.pneumatics", "{0E651277-DADB-4DDF-8A7E-C638F4A0BE78}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Drives.blazor", "..\components.rexroth.drives\src\AXOpen.Components.Rexroth.Drives.blazor", "{5E524BAC-1524-454C-B5B2-DA628E7385ED}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Drives", "..\components.rexroth.drives\src\AXOpen.Components.Rexroth.Drives", "{61DA5507-A0A1-4F25-8BC3-7D72B0469FC2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.rexroth.drives\src", "{ABB4D635-D2E4-4FDA-8DC7-424865672C12}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.rexroth.drives", "..\components.rexroth.drives", "{63A47701-D985-43A0-ADED-9DEFEC0246D1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Press.blazor", "..\components.rexroth.press\src\AXOpen.Components.Rexroth.Press.blazor", "{9D7409FE-CE5F-47FB-AC36-AE29BEA1F461}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Press", "..\components.rexroth.press\src\AXOpen.Components.Rexroth.Press", "{8C7E3904-34E1-4A28-A00C-01F07DE00AAC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.rexroth.press\src", "{507C2059-FC12-46DE-9215-6FAB0C415DC9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.rexroth.press", "..\components.rexroth.press", "{5B9A4B0D-C708-468E-95BC-88BC40C1B42A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Tightening.blazor", "..\components.rexroth.tightening\src\AXOpen.Components.Rexroth.Tightening.blazor", "{F0DD5E6F-D9DC-4764-8638-A889A79CED6B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Rexroth.Tightening", "..\components.rexroth.tightening\src\AXOpen.Components.Rexroth.Tightening", "{58BA599D-9F06-4E71-A518-DC722AF134D1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.rexroth.tightening\src", "{BFA8F060-2BE8-4D2A-8B7A-71F61ED0BE1F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.rexroth.tightening", "..\components.rexroth.tightening", "{366F8177-78A3-4CA0-A79F-AF99E4BAA97D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Robotics.blazor", "..\components.robotics\src\AXOpen.Components.Robotics.blazor", "{1989D813-BBED-4BE6-8049-B6AE26CCF792}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Robotics", "..\components.robotics\src\AXOpen.Components.Robotics", "{AE541666-E139-461F-A993-0C365CB9CDEA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.robotics\src", "{003AFE1D-1DAC-4D64-B746-D14F6D25BB26}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.robotics", "..\components.robotics", "{3C691020-03E5-4DBB-9C30-95449A5C24C2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Communication.blazor", "..\components.siem.communication\src\AXOpen.Components.Siem.Communication.blazor", "{DB5BB6CD-F2ED-42CC-96A5-0B159008E90A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Communication", "..\components.siem.communication\src\AXOpen.Components.Siem.Communication", "{A2E24159-0E10-41A8-AC48-CA7C81F484A6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.siem.communication\src", "{68F81A0B-FD56-4765-A3C3-FD6B0A3D937E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.siem.communication", "..\components.siem.communication", "{1C3AC492-A36E-4E51-84F1-6D7F7B91B691}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Identification.blazor", "..\components.siem.identification\src\AXOpen.Components.Siem.Identification.blazor", "{96635123-F8A5-44C0-86CD-1D1CB859A06A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Siem.Identification", "..\components.siem.identification\src\AXOpen.Components.Siem.Identification", "{6D8F713B-31AA-4B2F-AB89-B50B27A5C117}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.siem.identification\src", "{6DE085DC-615B-4A88-AB03-4E92CF3C328A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.siem.identification", "..\components.siem.identification", "{BDE58372-203D-40F5-A819-9E043C53428F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Ur.Robotics.blazor", "..\components.ur.robotics\src\AXOpen.Components.Ur.Robotics.blazor", "{32244DD9-4966-427B-B0CF-B45D6D43F59E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Ur.Robotics", "..\components.ur.robotics\src\AXOpen.Components.Ur.Robotics", "{1D8D0D98-6CF8-4C7F-A35E-0FFB2C5B68A5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.ur.robotics\src", "{24565C01-370D-463C-9A46-C180E246166C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.ur.robotics", "..\components.ur.robotics", "{01DCA932-DD0D-4874-AC65-88D0EFD587DA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Zebra.Vision.blazor", "..\components.zebra.vision\src\AXOpen.Components.Zebra.Vision.blazor", "{E93E5DFD-3DE0-4001-A107-9AB5819D014E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Zebra.Vision", "..\components.zebra.vision\src\AXOpen.Components.Zebra.Vision", "{58FDC42B-06A6-49E1-ADC5-0C3C5614AA32}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.zebra.vision\src", "{D74628C2-5D97-4E7B-B4D0-7EE771CB0EB0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.zebra.vision", "..\components.zebra.vision", "{3688727A-7569-4936-828F-5E452154FD9F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "..\core\src\AXOpen.Core.Blazor", "{A53CF7BB-CAD7-480B-B354-D9405A6D0081}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "..\core\src\AXOpen.Core", "{5BC58232-4211-4CD5-A2D5-3FEAD2462E27}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{2F36CC42-152A-44BA-BC94-49169D6485F0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{C64D1F10-EDF6-421E-8E9C-98FCA774E454}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data.Blazor", "..\data\src\AXOpen.Data.Blazor", "{4C1985B1-0A71-4E16-B4EC-2AB292C60F73}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Data", "..\data\src\AXOpen.Data", "{849DA795-318E-44EB-942A-2C3974E91E33}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{E5E34D25-B71E-4DD2-9E1A-7C873509B491}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{44048ADF-FB13-4900-917E-0E8EFA5C5BF7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{F65FCD3C-307C-403B-A79C-1B053CC01F8F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{10E4B90F-2F9C-43B3-A793-241ABC1A3D17}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors.blazor", "..\inspectors\src\AXOpen.Inspectors.blazor", "{84B4145F-BF32-48CD-9F09-3D7F86F37497}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Inspectors", "..\inspectors\src\AXOpen.Inspectors", "{0DFBC964-7556-4DF4-A1C0-0C538F06FE33}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\inspectors\src", "{3E5D4554-3111-41EC-B955-51F1683AA1AE}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "inspectors", "..\inspectors", "{6C101508-350C-4C64-A869-134AF44544C2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{3BE82215-DD25-4DD7-B8D5-ECEC3E5134B0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{AD1DCFD8-0D5B-4577-A70E-51ED15DD192F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\io\src", "{75A142FE-F6C7-4B68-AF3E-E8B3099CCC8A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "..\io", "{16AB10C5-52B6-4789-B262-071E51DF0BFC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Probers", "..\probers\src\AXOpen.Probers", "{F38F1013-D142-47A7-A2DB-0E39B64D5E8D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\probers\src", "{A3C1C3FC-93CD-4D0F-A072-F27BFE0E82A3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "probers", "..\probers", "{4EBE6F57-5EE2-4973-8AFF-983525F7500A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\sdk-ax\ctrl\ix", "{CE1E2167-5EDE-4045-A844-37762AFF7198}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{8DB94CD1-49B6-4B2F-A4EC-EBCBF66D6243}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{7C5F7B9A-440A-4F16-ADBC-FBF216EEF605}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{43681FA2-56ED-414F-A9FD-E9DA332F838F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{6A0E8CC8-93FB-45AC-924C-082BAC4933D0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{88427CAF-C402-4D70-A710-09E5AC84058F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{CC0A097C-977D-42AE-8ADF-8AC81D8C9EC6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{509DA04B-F95C-4536-89E7-7A6686C90253}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{4B73AE6B-A923-4AF4-808F-D2AF63B7A41D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{C19D4FEE-94A9-481F-98A4-F7D211FE0E70}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\styling\src", "{BDE97366-2BF1-4CDC-97BA-2628FF4B408D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "styling", "..\styling", "{F8A7097A-F58D-48A8-BFDD-E02472CE4CB9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{6D8C6032-0298-4BD2-8B50-4C8DE37E39E0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\timers\src", "{3FB92B0D-D8A2-40A8-97C5-47BCE0340442}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "..\timers", "{2631C4CA-FCE5-4940-B2AA-9233D8D6BE3E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox", "{71BAF4C2-D938-46C8-BD56-C7F5FD4546BD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\toolbox\src", "{57021BAD-3CF1-438F-9AE3-E5FB74284B38}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "..\toolbox", "{4E341F0B-6B55-4B36-95EF-16F396D12A7A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Utils", "..\utils\src\AXOpen.Utils", "{0AE84341-F99D-448F-82D6-38AFA46E637F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\utils\src", "{24EE0C59-3000-4C53-895E-9D130C1A64E4}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "utils", "..\utils", "{06D6B89E-A6F2-4773-B4B6-2889C119ED12}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {48D2A50D-3848-4376-AE97-1D5B47B68A12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48D2A50D-3848-4376-AE97-1D5B47B68A12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48D2A50D-3848-4376-AE97-1D5B47B68A12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48D2A50D-3848-4376-AE97-1D5B47B68A12}.Release|Any CPU.Build.0 = Release|Any CPU + {DCDF6355-A46D-4AE5-B1A0-78900CF54761}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DCDF6355-A46D-4AE5-B1A0-78900CF54761}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DCDF6355-A46D-4AE5-B1A0-78900CF54761}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DCDF6355-A46D-4AE5-B1A0-78900CF54761}.Release|Any CPU.Build.0 = Release|Any CPU + {8885B218-9C39-418D-9CDD-D90AE81FF460}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8885B218-9C39-418D-9CDD-D90AE81FF460}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8885B218-9C39-418D-9CDD-D90AE81FF460}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8885B218-9C39-418D-9CDD-D90AE81FF460}.Release|Any CPU.Build.0 = Release|Any CPU + {7FE122C0-B464-4764-B7BE-45F4CF4FEE8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7FE122C0-B464-4764-B7BE-45F4CF4FEE8F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7FE122C0-B464-4764-B7BE-45F4CF4FEE8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7FE122C0-B464-4764-B7BE-45F4CF4FEE8F}.Release|Any CPU.Build.0 = Release|Any CPU + {72C77735-0A2F-4A04-AA89-AB9BA284F4F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72C77735-0A2F-4A04-AA89-AB9BA284F4F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72C77735-0A2F-4A04-AA89-AB9BA284F4F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72C77735-0A2F-4A04-AA89-AB9BA284F4F6}.Release|Any CPU.Build.0 = Release|Any CPU + {76D1F323-BF07-48C0-968F-287AA52526D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76D1F323-BF07-48C0-968F-287AA52526D6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76D1F323-BF07-48C0-968F-287AA52526D6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76D1F323-BF07-48C0-968F-287AA52526D6}.Release|Any CPU.Build.0 = Release|Any CPU + {C202A924-EFF1-4A5A-8BEA-83B27A9BDC8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C202A924-EFF1-4A5A-8BEA-83B27A9BDC8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C202A924-EFF1-4A5A-8BEA-83B27A9BDC8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C202A924-EFF1-4A5A-8BEA-83B27A9BDC8A}.Release|Any CPU.Build.0 = Release|Any CPU + {943621B9-C075-4336-A217-063D839EBDC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {943621B9-C075-4336-A217-063D839EBDC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {943621B9-C075-4336-A217-063D839EBDC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {943621B9-C075-4336-A217-063D839EBDC9}.Release|Any CPU.Build.0 = Release|Any CPU + {ABA073F6-BE5D-499D-9EED-9C69C93A651C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABA073F6-BE5D-499D-9EED-9C69C93A651C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABA073F6-BE5D-499D-9EED-9C69C93A651C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABA073F6-BE5D-499D-9EED-9C69C93A651C}.Release|Any CPU.Build.0 = Release|Any CPU + {C739A286-CB51-4643-8461-1D81BC5A3F22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C739A286-CB51-4643-8461-1D81BC5A3F22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C739A286-CB51-4643-8461-1D81BC5A3F22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C739A286-CB51-4643-8461-1D81BC5A3F22}.Release|Any CPU.Build.0 = Release|Any CPU + {B3727202-2FD4-44BD-9F63-4A96675C5408}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3727202-2FD4-44BD-9F63-4A96675C5408}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3727202-2FD4-44BD-9F63-4A96675C5408}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3727202-2FD4-44BD-9F63-4A96675C5408}.Release|Any CPU.Build.0 = Release|Any CPU + {A74C2440-21AB-419D-9BE4-ECB3A5B679ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A74C2440-21AB-419D-9BE4-ECB3A5B679ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A74C2440-21AB-419D-9BE4-ECB3A5B679ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A74C2440-21AB-419D-9BE4-ECB3A5B679ED}.Release|Any CPU.Build.0 = Release|Any CPU + {A8306167-2A97-4EA1-9A07-33F372CC11BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A8306167-2A97-4EA1-9A07-33F372CC11BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A8306167-2A97-4EA1-9A07-33F372CC11BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A8306167-2A97-4EA1-9A07-33F372CC11BC}.Release|Any CPU.Build.0 = Release|Any CPU + {F8EE6B5F-3AD4-4FD6-814A-A0C1658589A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8EE6B5F-3AD4-4FD6-814A-A0C1658589A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8EE6B5F-3AD4-4FD6-814A-A0C1658589A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8EE6B5F-3AD4-4FD6-814A-A0C1658589A1}.Release|Any CPU.Build.0 = Release|Any CPU + {602160D0-14F0-41F9-8526-23F1652D6661}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {602160D0-14F0-41F9-8526-23F1652D6661}.Debug|Any CPU.Build.0 = Debug|Any CPU + {602160D0-14F0-41F9-8526-23F1652D6661}.Release|Any CPU.ActiveCfg = Release|Any CPU + {602160D0-14F0-41F9-8526-23F1652D6661}.Release|Any CPU.Build.0 = Release|Any CPU + {DF72BCD4-3819-4642-895A-F0EA31ADD60D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF72BCD4-3819-4642-895A-F0EA31ADD60D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF72BCD4-3819-4642-895A-F0EA31ADD60D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF72BCD4-3819-4642-895A-F0EA31ADD60D}.Release|Any CPU.Build.0 = Release|Any CPU + {E7BFD865-47B3-4513-98AE-31EB9E90E1A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7BFD865-47B3-4513-98AE-31EB9E90E1A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7BFD865-47B3-4513-98AE-31EB9E90E1A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7BFD865-47B3-4513-98AE-31EB9E90E1A1}.Release|Any CPU.Build.0 = Release|Any CPU + {AF51F9C0-3B15-446D-B422-6E3A0A26EB82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF51F9C0-3B15-446D-B422-6E3A0A26EB82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF51F9C0-3B15-446D-B422-6E3A0A26EB82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF51F9C0-3B15-446D-B422-6E3A0A26EB82}.Release|Any CPU.Build.0 = Release|Any CPU + {09C35DBB-5FBF-447E-9F51-5F95E609BB72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {09C35DBB-5FBF-447E-9F51-5F95E609BB72}.Debug|Any CPU.Build.0 = Debug|Any CPU + {09C35DBB-5FBF-447E-9F51-5F95E609BB72}.Release|Any CPU.ActiveCfg = Release|Any CPU + {09C35DBB-5FBF-447E-9F51-5F95E609BB72}.Release|Any CPU.Build.0 = Release|Any CPU + {3AE3FAAD-3940-40A3-9FA7-85717C696180}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AE3FAAD-3940-40A3-9FA7-85717C696180}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AE3FAAD-3940-40A3-9FA7-85717C696180}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AE3FAAD-3940-40A3-9FA7-85717C696180}.Release|Any CPU.Build.0 = Release|Any CPU + {B3B397E8-9208-4B98-80D3-AF69C3E20FDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3B397E8-9208-4B98-80D3-AF69C3E20FDF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3B397E8-9208-4B98-80D3-AF69C3E20FDF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3B397E8-9208-4B98-80D3-AF69C3E20FDF}.Release|Any CPU.Build.0 = Release|Any CPU + {AF5726EB-43A4-4E7C-A6F0-4AD7279AAA03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AF5726EB-43A4-4E7C-A6F0-4AD7279AAA03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AF5726EB-43A4-4E7C-A6F0-4AD7279AAA03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AF5726EB-43A4-4E7C-A6F0-4AD7279AAA03}.Release|Any CPU.Build.0 = Release|Any CPU + {244BB61E-0838-4958-B60F-E5CEEC77D2BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {244BB61E-0838-4958-B60F-E5CEEC77D2BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {244BB61E-0838-4958-B60F-E5CEEC77D2BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {244BB61E-0838-4958-B60F-E5CEEC77D2BB}.Release|Any CPU.Build.0 = Release|Any CPU + {70D1213B-B483-4572-8E82-569E91CEA6B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70D1213B-B483-4572-8E82-569E91CEA6B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70D1213B-B483-4572-8E82-569E91CEA6B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70D1213B-B483-4572-8E82-569E91CEA6B4}.Release|Any CPU.Build.0 = Release|Any CPU + {9E352594-7D0F-4D63-AF8F-6690E73289AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E352594-7D0F-4D63-AF8F-6690E73289AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E352594-7D0F-4D63-AF8F-6690E73289AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E352594-7D0F-4D63-AF8F-6690E73289AE}.Release|Any CPU.Build.0 = Release|Any CPU + {7B6798CB-C5F0-4CB7-ACBF-5CC258ABFCD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B6798CB-C5F0-4CB7-ACBF-5CC258ABFCD1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B6798CB-C5F0-4CB7-ACBF-5CC258ABFCD1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B6798CB-C5F0-4CB7-ACBF-5CC258ABFCD1}.Release|Any CPU.Build.0 = Release|Any CPU + {B37A61AB-6323-49D8-9995-8C0629853A73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B37A61AB-6323-49D8-9995-8C0629853A73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B37A61AB-6323-49D8-9995-8C0629853A73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B37A61AB-6323-49D8-9995-8C0629853A73}.Release|Any CPU.Build.0 = Release|Any CPU + {CE025B16-E3CA-4B08-8500-9246998B1CAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE025B16-E3CA-4B08-8500-9246998B1CAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE025B16-E3CA-4B08-8500-9246998B1CAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE025B16-E3CA-4B08-8500-9246998B1CAA}.Release|Any CPU.Build.0 = Release|Any CPU + {CEAABB1B-12B9-4228-AA31-5EB0B70CCB4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CEAABB1B-12B9-4228-AA31-5EB0B70CCB4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CEAABB1B-12B9-4228-AA31-5EB0B70CCB4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CEAABB1B-12B9-4228-AA31-5EB0B70CCB4D}.Release|Any CPU.Build.0 = Release|Any CPU + {B331D93F-8AD9-4EF2-AFC7-C65AF8865A5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B331D93F-8AD9-4EF2-AFC7-C65AF8865A5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B331D93F-8AD9-4EF2-AFC7-C65AF8865A5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B331D93F-8AD9-4EF2-AFC7-C65AF8865A5B}.Release|Any CPU.Build.0 = Release|Any CPU + {FF6FF586-B730-4EA8-8508-DAEE975ADC0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF6FF586-B730-4EA8-8508-DAEE975ADC0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF6FF586-B730-4EA8-8508-DAEE975ADC0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF6FF586-B730-4EA8-8508-DAEE975ADC0D}.Release|Any CPU.Build.0 = Release|Any CPU + {AAE427FC-00B1-44B6-B129-C11633E30A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAE427FC-00B1-44B6-B129-C11633E30A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAE427FC-00B1-44B6-B129-C11633E30A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAE427FC-00B1-44B6-B129-C11633E30A1B}.Release|Any CPU.Build.0 = Release|Any CPU + {BB07B262-0A29-41C3-A6CB-1C6BBC31B399}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB07B262-0A29-41C3-A6CB-1C6BBC31B399}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB07B262-0A29-41C3-A6CB-1C6BBC31B399}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB07B262-0A29-41C3-A6CB-1C6BBC31B399}.Release|Any CPU.Build.0 = Release|Any CPU + {0CD96B01-84F7-4770-B0B8-9A37F3CE1B39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0CD96B01-84F7-4770-B0B8-9A37F3CE1B39}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0CD96B01-84F7-4770-B0B8-9A37F3CE1B39}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0CD96B01-84F7-4770-B0B8-9A37F3CE1B39}.Release|Any CPU.Build.0 = Release|Any CPU + {D4626CA3-5B6F-4876-A6B4-B26CAE66313B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4626CA3-5B6F-4876-A6B4-B26CAE66313B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4626CA3-5B6F-4876-A6B4-B26CAE66313B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4626CA3-5B6F-4876-A6B4-B26CAE66313B}.Release|Any CPU.Build.0 = Release|Any CPU + {B349D13C-CCC6-4241-B09A-51B84B51F2A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B349D13C-CCC6-4241-B09A-51B84B51F2A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B349D13C-CCC6-4241-B09A-51B84B51F2A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B349D13C-CCC6-4241-B09A-51B84B51F2A9}.Release|Any CPU.Build.0 = Release|Any CPU + {02A366E5-74AE-4237-A762-2C5143CA58BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02A366E5-74AE-4237-A762-2C5143CA58BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02A366E5-74AE-4237-A762-2C5143CA58BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02A366E5-74AE-4237-A762-2C5143CA58BB}.Release|Any CPU.Build.0 = Release|Any CPU + {4FF8E872-D680-4572-89CD-4B612018CE3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FF8E872-D680-4572-89CD-4B612018CE3C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FF8E872-D680-4572-89CD-4B612018CE3C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FF8E872-D680-4572-89CD-4B612018CE3C}.Release|Any CPU.Build.0 = Release|Any CPU + {C503732B-B14D-41D7-ACBA-9FC69B5B0639}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C503732B-B14D-41D7-ACBA-9FC69B5B0639}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C503732B-B14D-41D7-ACBA-9FC69B5B0639}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C503732B-B14D-41D7-ACBA-9FC69B5B0639}.Release|Any CPU.Build.0 = Release|Any CPU + {19B0D293-EEAB-45E0-BADB-08CD9594F61E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19B0D293-EEAB-45E0-BADB-08CD9594F61E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19B0D293-EEAB-45E0-BADB-08CD9594F61E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19B0D293-EEAB-45E0-BADB-08CD9594F61E}.Release|Any CPU.Build.0 = Release|Any CPU + {B3F219DE-BE65-4956-9774-7AF892292E91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3F219DE-BE65-4956-9774-7AF892292E91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3F219DE-BE65-4956-9774-7AF892292E91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3F219DE-BE65-4956-9774-7AF892292E91}.Release|Any CPU.Build.0 = Release|Any CPU + {CB3E672F-13AA-458D-9AC3-8BBBFCDC7159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB3E672F-13AA-458D-9AC3-8BBBFCDC7159}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB3E672F-13AA-458D-9AC3-8BBBFCDC7159}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB3E672F-13AA-458D-9AC3-8BBBFCDC7159}.Release|Any CPU.Build.0 = Release|Any CPU + {3E3B0347-5B31-4C88-8512-F7EB5831B857}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E3B0347-5B31-4C88-8512-F7EB5831B857}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E3B0347-5B31-4C88-8512-F7EB5831B857}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E3B0347-5B31-4C88-8512-F7EB5831B857}.Release|Any CPU.Build.0 = Release|Any CPU + {E83942FB-6932-4398-8DF1-213F569B3DB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E83942FB-6932-4398-8DF1-213F569B3DB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E83942FB-6932-4398-8DF1-213F569B3DB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E83942FB-6932-4398-8DF1-213F569B3DB2}.Release|Any CPU.Build.0 = Release|Any CPU + {EA832345-AF08-4571-AB17-E2263DE31CBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA832345-AF08-4571-AB17-E2263DE31CBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA832345-AF08-4571-AB17-E2263DE31CBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA832345-AF08-4571-AB17-E2263DE31CBE}.Release|Any CPU.Build.0 = Release|Any CPU + {6596775C-D4A7-4623-8056-82A3FB010766}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6596775C-D4A7-4623-8056-82A3FB010766}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6596775C-D4A7-4623-8056-82A3FB010766}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6596775C-D4A7-4623-8056-82A3FB010766}.Release|Any CPU.Build.0 = Release|Any CPU + {9BC56796-AF20-467F-A0B6-5C9FD3F0BAB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9BC56796-AF20-467F-A0B6-5C9FD3F0BAB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9BC56796-AF20-467F-A0B6-5C9FD3F0BAB8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9BC56796-AF20-467F-A0B6-5C9FD3F0BAB8}.Release|Any CPU.Build.0 = Release|Any CPU + {E87FF531-498D-48CD-9553-05D5A654D4FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E87FF531-498D-48CD-9553-05D5A654D4FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E87FF531-498D-48CD-9553-05D5A654D4FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E87FF531-498D-48CD-9553-05D5A654D4FF}.Release|Any CPU.Build.0 = Release|Any CPU + {307FC400-26AE-43C7-A148-3C85182A77BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {307FC400-26AE-43C7-A148-3C85182A77BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {307FC400-26AE-43C7-A148-3C85182A77BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {307FC400-26AE-43C7-A148-3C85182A77BE}.Release|Any CPU.Build.0 = Release|Any CPU + {861E1D3A-51B6-4648-A74C-CA3A873FBAE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {861E1D3A-51B6-4648-A74C-CA3A873FBAE3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {861E1D3A-51B6-4648-A74C-CA3A873FBAE3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {861E1D3A-51B6-4648-A74C-CA3A873FBAE3}.Release|Any CPU.Build.0 = Release|Any CPU + {7A8E03C1-5E80-4C27-9D75-5EE110E05122}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A8E03C1-5E80-4C27-9D75-5EE110E05122}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A8E03C1-5E80-4C27-9D75-5EE110E05122}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A8E03C1-5E80-4C27-9D75-5EE110E05122}.Release|Any CPU.Build.0 = Release|Any CPU + {1187FEE5-01F9-402A-ADD4-1B368E9E9EB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1187FEE5-01F9-402A-ADD4-1B368E9E9EB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1187FEE5-01F9-402A-ADD4-1B368E9E9EB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1187FEE5-01F9-402A-ADD4-1B368E9E9EB9}.Release|Any CPU.Build.0 = Release|Any CPU + {5B993528-F4A4-4E9E-A458-14636CDA134E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B993528-F4A4-4E9E-A458-14636CDA134E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B993528-F4A4-4E9E-A458-14636CDA134E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B993528-F4A4-4E9E-A458-14636CDA134E}.Release|Any CPU.Build.0 = Release|Any CPU + {C1D2F1A4-D078-40B2-9248-B1499C27360C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1D2F1A4-D078-40B2-9248-B1499C27360C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1D2F1A4-D078-40B2-9248-B1499C27360C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1D2F1A4-D078-40B2-9248-B1499C27360C}.Release|Any CPU.Build.0 = Release|Any CPU + {7839BA93-CD63-42B5-B701-5699313F0DEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7839BA93-CD63-42B5-B701-5699313F0DEF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7839BA93-CD63-42B5-B701-5699313F0DEF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7839BA93-CD63-42B5-B701-5699313F0DEF}.Release|Any CPU.Build.0 = Release|Any CPU + {36F7201B-B5B7-4430-9815-85BA83DAFAAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36F7201B-B5B7-4430-9815-85BA83DAFAAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36F7201B-B5B7-4430-9815-85BA83DAFAAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36F7201B-B5B7-4430-9815-85BA83DAFAAA}.Release|Any CPU.Build.0 = Release|Any CPU + {663602F0-B299-420E-94E4-5062D9FF6249}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {663602F0-B299-420E-94E4-5062D9FF6249}.Debug|Any CPU.Build.0 = Debug|Any CPU + {663602F0-B299-420E-94E4-5062D9FF6249}.Release|Any CPU.ActiveCfg = Release|Any CPU + {663602F0-B299-420E-94E4-5062D9FF6249}.Release|Any CPU.Build.0 = Release|Any CPU + {5F2F41FE-4B99-4B23-8BCD-CBFAF54DFF0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F2F41FE-4B99-4B23-8BCD-CBFAF54DFF0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F2F41FE-4B99-4B23-8BCD-CBFAF54DFF0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F2F41FE-4B99-4B23-8BCD-CBFAF54DFF0F}.Release|Any CPU.Build.0 = Release|Any CPU + {476C1760-2152-40BB-A9FE-1A253B480BB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {476C1760-2152-40BB-A9FE-1A253B480BB4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {476C1760-2152-40BB-A9FE-1A253B480BB4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {476C1760-2152-40BB-A9FE-1A253B480BB4}.Release|Any CPU.Build.0 = Release|Any CPU + {585925CB-221E-4271-985D-1F382C49B9B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {585925CB-221E-4271-985D-1F382C49B9B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {585925CB-221E-4271-985D-1F382C49B9B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {585925CB-221E-4271-985D-1F382C49B9B7}.Release|Any CPU.Build.0 = Release|Any CPU + {096D0AC0-D78B-4149-92DB-7BF9CAA92377}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {096D0AC0-D78B-4149-92DB-7BF9CAA92377}.Debug|Any CPU.Build.0 = Debug|Any CPU + {096D0AC0-D78B-4149-92DB-7BF9CAA92377}.Release|Any CPU.ActiveCfg = Release|Any CPU + {096D0AC0-D78B-4149-92DB-7BF9CAA92377}.Release|Any CPU.Build.0 = Release|Any CPU + {A9A2642A-DFCE-49C0-A4FC-5CD9A56F8F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9A2642A-DFCE-49C0-A4FC-5CD9A56F8F74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9A2642A-DFCE-49C0-A4FC-5CD9A56F8F74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9A2642A-DFCE-49C0-A4FC-5CD9A56F8F74}.Release|Any CPU.Build.0 = Release|Any CPU + {54144A8F-77A4-491A-BC88-6151038B3D80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {54144A8F-77A4-491A-BC88-6151038B3D80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54144A8F-77A4-491A-BC88-6151038B3D80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {54144A8F-77A4-491A-BC88-6151038B3D80}.Release|Any CPU.Build.0 = Release|Any CPU + {976C93F8-2718-4A92-8129-82C75608DA22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {976C93F8-2718-4A92-8129-82C75608DA22}.Debug|Any CPU.Build.0 = Debug|Any CPU + {976C93F8-2718-4A92-8129-82C75608DA22}.Release|Any CPU.ActiveCfg = Release|Any CPU + {976C93F8-2718-4A92-8129-82C75608DA22}.Release|Any CPU.Build.0 = Release|Any CPU + {4F2F1D1D-DCAF-4445-A5EB-AA0DC1B9E831}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F2F1D1D-DCAF-4445-A5EB-AA0DC1B9E831}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F2F1D1D-DCAF-4445-A5EB-AA0DC1B9E831}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F2F1D1D-DCAF-4445-A5EB-AA0DC1B9E831}.Release|Any CPU.Build.0 = Release|Any CPU + {41E1F6BD-EC00-48E6-9DCA-5C84ACB812A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41E1F6BD-EC00-48E6-9DCA-5C84ACB812A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41E1F6BD-EC00-48E6-9DCA-5C84ACB812A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41E1F6BD-EC00-48E6-9DCA-5C84ACB812A3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {DCDF6355-A46D-4AE5-B1A0-78900CF54761} = {5534B558-C591-44DF-BDB0-5005F7FFC712} + {5534B558-C591-44DF-BDB0-5005F7FFC712} = {ABF2800E-3FDB-448C-A4D4-6E464C127E4C} + {ABF2800E-3FDB-448C-A4D4-6E464C127E4C} = {60EB297A-F72E-4D3E-BEC9-DE78815E9818} + {8885B218-9C39-418D-9CDD-D90AE81FF460} = {01E50A38-2EFB-4EBD-B85C-4E8AB6B64B41} + {01E50A38-2EFB-4EBD-B85C-4E8AB6B64B41} = {60EB297A-F72E-4D3E-BEC9-DE78815E9818} + {60EB297A-F72E-4D3E-BEC9-DE78815E9818} = {E107A913-E042-446D-8169-F17DC4ED8CE4} + {7FE122C0-B464-4764-B7BE-45F4CF4FEE8F} = {3992D634-CD9C-4566-9716-6AC9506E89E3} + {3992D634-CD9C-4566-9716-6AC9506E89E3} = {8820EEE0-AC61-4E97-9DE2-1ACA1A9CA136} + {8820EEE0-AC61-4E97-9DE2-1ACA1A9CA136} = {DA6D0894-9B51-4C68-8D23-EC8CFC5ACEBC} + {72C77735-0A2F-4A04-AA89-AB9BA284F4F6} = {08048178-F775-4EB4-99CE-5AD0509A59FB} + {08048178-F775-4EB4-99CE-5AD0509A59FB} = {042B3CB3-415F-463E-9748-282E7FC02CC8} + {76D1F323-BF07-48C0-968F-287AA52526D6} = {3B5D9ABA-C415-44C7-A034-083A686CB5BA} + {3B5D9ABA-C415-44C7-A034-083A686CB5BA} = {042B3CB3-415F-463E-9748-282E7FC02CC8} + {C202A924-EFF1-4A5A-8BEA-83B27A9BDC8A} = {D7AEE6D5-1738-4039-BBFA-D17FCEDE1B28} + {D7AEE6D5-1738-4039-BBFA-D17FCEDE1B28} = {042B3CB3-415F-463E-9748-282E7FC02CC8} + {042B3CB3-415F-463E-9748-282E7FC02CC8} = {11867AD1-E37C-4BC2-9418-AF3543C4D871} + {943621B9-C075-4336-A217-063D839EBDC9} = {A4522FEC-F789-446A-AB30-23D2C1BDFE85} + {A4522FEC-F789-446A-AB30-23D2C1BDFE85} = {50A37E0A-F5DE-4A11-8ED8-4D9E340A2F98} + {ABA073F6-BE5D-499D-9EED-9C69C93A651C} = {47071B9F-D2BF-48C4-895D-C54BB2DD5FCE} + {47071B9F-D2BF-48C4-895D-C54BB2DD5FCE} = {50A37E0A-F5DE-4A11-8ED8-4D9E340A2F98} + {50A37E0A-F5DE-4A11-8ED8-4D9E340A2F98} = {0EE3F7BE-0DBF-4040-8E40-9C8E6F2E90A9} + {C739A286-CB51-4643-8461-1D81BC5A3F22} = {C04C3F0D-2DC4-438F-AA40-14F0AAE13B32} + {C04C3F0D-2DC4-438F-AA40-14F0AAE13B32} = {080F49A4-2211-410B-949E-545F0443C879} + {080F49A4-2211-410B-949E-545F0443C879} = {A4F29D52-C4E1-4710-9007-5FA2734DE43E} + {B3727202-2FD4-44BD-9F63-4A96675C5408} = {C09BBB25-3AA9-4B91-BA04-8035EB642841} + {C09BBB25-3AA9-4B91-BA04-8035EB642841} = {331F7FBC-939F-4D46-9CCE-8CFCBAE76733} + {A74C2440-21AB-419D-9BE4-ECB3A5B679ED} = {496A8A72-5DBE-4BA2-A9F4-2E7743FAC95C} + {496A8A72-5DBE-4BA2-A9F4-2E7743FAC95C} = {331F7FBC-939F-4D46-9CCE-8CFCBAE76733} + {331F7FBC-939F-4D46-9CCE-8CFCBAE76733} = {01AF8B08-7900-4D6F-A08D-A9A404F1B69E} + {A8306167-2A97-4EA1-9A07-33F372CC11BC} = {A3199C80-1510-4D7D-A420-4BA79B8502AC} + {A3199C80-1510-4D7D-A420-4BA79B8502AC} = {37C1DE83-EC1E-4068-8E15-9271E842327C} + {F8EE6B5F-3AD4-4FD6-814A-A0C1658589A1} = {E7E912C6-8F90-4330-B226-3F9F44BE26A8} + {E7E912C6-8F90-4330-B226-3F9F44BE26A8} = {37C1DE83-EC1E-4068-8E15-9271E842327C} + {37C1DE83-EC1E-4068-8E15-9271E842327C} = {24561368-F2A7-45B4-AA82-397F2771B548} + {602160D0-14F0-41F9-8526-23F1652D6661} = {B85F0B53-C4B7-4713-8CCD-9EC9DC341049} + {B85F0B53-C4B7-4713-8CCD-9EC9DC341049} = {A8611366-A219-470F-AEED-1BB86876AB6C} + {DF72BCD4-3819-4642-895A-F0EA31ADD60D} = {F5CC098C-81F7-42FF-BA05-1C7AE6C3B005} + {F5CC098C-81F7-42FF-BA05-1C7AE6C3B005} = {A8611366-A219-470F-AEED-1BB86876AB6C} + {A8611366-A219-470F-AEED-1BB86876AB6C} = {3B2394E1-DA2B-4BB0-B101-DE3A860DA8F4} + {E7BFD865-47B3-4513-98AE-31EB9E90E1A1} = {4C9A9C19-0BC6-4FCD-AD02-A71CB312229E} + {4C9A9C19-0BC6-4FCD-AD02-A71CB312229E} = {60D61EA6-8D0E-4377-8486-924C3BC6F3D1} + {AF51F9C0-3B15-446D-B422-6E3A0A26EB82} = {372F0976-B7CE-4FAE-912C-E1AA640F5D1A} + {372F0976-B7CE-4FAE-912C-E1AA640F5D1A} = {60D61EA6-8D0E-4377-8486-924C3BC6F3D1} + {60D61EA6-8D0E-4377-8486-924C3BC6F3D1} = {DBB12B87-C164-4068-B782-2A2B000C8A39} + {09C35DBB-5FBF-447E-9F51-5F95E609BB72} = {4663340C-BB81-403C-9A95-13C4A99B6017} + {4663340C-BB81-403C-9A95-13C4A99B6017} = {713100B1-19C3-46D0-B876-4A06FA140E83} + {3AE3FAAD-3940-40A3-9FA7-85717C696180} = {5B4CD7FA-910C-4E5F-8EAD-3DEC34BDF13E} + {5B4CD7FA-910C-4E5F-8EAD-3DEC34BDF13E} = {713100B1-19C3-46D0-B876-4A06FA140E83} + {713100B1-19C3-46D0-B876-4A06FA140E83} = {93A2AA2B-E025-4511-848B-7C709B8D33EE} + {B3B397E8-9208-4B98-80D3-AF69C3E20FDF} = {216F06D7-4051-410A-BDE3-88E6AE9A8BD4} + {216F06D7-4051-410A-BDE3-88E6AE9A8BD4} = {784101A5-0E30-4D57-97B6-C67A31BA4E49} + {AF5726EB-43A4-4E7C-A6F0-4AD7279AAA03} = {816943EB-6AD6-4F51-A5CE-C816B5BF21F0} + {816943EB-6AD6-4F51-A5CE-C816B5BF21F0} = {784101A5-0E30-4D57-97B6-C67A31BA4E49} + {784101A5-0E30-4D57-97B6-C67A31BA4E49} = {0998EEB6-95A3-4757-B7AF-1F3C7E8217DD} + {244BB61E-0838-4958-B60F-E5CEEC77D2BB} = {4B148AF2-7AD0-4816-B93E-5230E33B342D} + {4B148AF2-7AD0-4816-B93E-5230E33B342D} = {00F7168D-0414-4C61-8170-19DE18A7FAEE} + {70D1213B-B483-4572-8E82-569E91CEA6B4} = {C79A030A-06E2-457E-97A7-3B74FA8CA72E} + {C79A030A-06E2-457E-97A7-3B74FA8CA72E} = {00F7168D-0414-4C61-8170-19DE18A7FAEE} + {00F7168D-0414-4C61-8170-19DE18A7FAEE} = {5ADC9D6C-AA98-406A-A04E-5CF2B3A032AD} + {9E352594-7D0F-4D63-AF8F-6690E73289AE} = {B1930417-11D8-4EE6-8221-DEB7176750FC} + {B1930417-11D8-4EE6-8221-DEB7176750FC} = {DA032B5C-63A8-4883-B4A3-DBB178F5A380} + {7B6798CB-C5F0-4CB7-ACBF-5CC258ABFCD1} = {A5CD57B6-8C9D-408B-919A-8C40F72FA075} + {A5CD57B6-8C9D-408B-919A-8C40F72FA075} = {DA032B5C-63A8-4883-B4A3-DBB178F5A380} + {DA032B5C-63A8-4883-B4A3-DBB178F5A380} = {52B9F96D-F6A8-4184-8BF5-5B8B22F0698A} + {B37A61AB-6323-49D8-9995-8C0629853A73} = {1581D1EE-15DE-4294-8D95-B80FCE07B4B2} + {1581D1EE-15DE-4294-8D95-B80FCE07B4B2} = {2223D9FE-E009-4FE7-BF15-83589BA014E4} + {CE025B16-E3CA-4B08-8500-9246998B1CAA} = {3EC449D5-CF43-411B-9D52-CBF89AFF1EF5} + {3EC449D5-CF43-411B-9D52-CBF89AFF1EF5} = {2223D9FE-E009-4FE7-BF15-83589BA014E4} + {2223D9FE-E009-4FE7-BF15-83589BA014E4} = {9DB9FCFC-6CC5-4ECE-BFB0-377E0CE20A8E} + {CEAABB1B-12B9-4228-AA31-5EB0B70CCB4D} = {BFDC898B-E71A-41DE-A9B5-C5C482A25837} + {BFDC898B-E71A-41DE-A9B5-C5C482A25837} = {FA08857B-3087-4D0A-A838-FF530FF88262} + {B331D93F-8AD9-4EF2-AFC7-C65AF8865A5B} = {BE7BBE99-5B96-404E-B583-0196E5C12F6D} + {BE7BBE99-5B96-404E-B583-0196E5C12F6D} = {FA08857B-3087-4D0A-A838-FF530FF88262} + {FA08857B-3087-4D0A-A838-FF530FF88262} = {130B1F94-3DEF-4B80-9B6F-0FA09BDB2314} + {FF6FF586-B730-4EA8-8508-DAEE975ADC0D} = {B3BD127D-AE69-4C13-A367-1E81D5B89F40} + {B3BD127D-AE69-4C13-A367-1E81D5B89F40} = {1D1B2378-80EB-4707-89DC-B41B9A78E67A} + {AAE427FC-00B1-44B6-B129-C11633E30A1B} = {CC10A858-460A-4B79-B32F-7C2D42358744} + {CC10A858-460A-4B79-B32F-7C2D42358744} = {1D1B2378-80EB-4707-89DC-B41B9A78E67A} + {1D1B2378-80EB-4707-89DC-B41B9A78E67A} = {0E651277-DADB-4DDF-8A7E-C638F4A0BE78} + {BB07B262-0A29-41C3-A6CB-1C6BBC31B399} = {5E524BAC-1524-454C-B5B2-DA628E7385ED} + {5E524BAC-1524-454C-B5B2-DA628E7385ED} = {ABB4D635-D2E4-4FDA-8DC7-424865672C12} + {0CD96B01-84F7-4770-B0B8-9A37F3CE1B39} = {61DA5507-A0A1-4F25-8BC3-7D72B0469FC2} + {61DA5507-A0A1-4F25-8BC3-7D72B0469FC2} = {ABB4D635-D2E4-4FDA-8DC7-424865672C12} + {ABB4D635-D2E4-4FDA-8DC7-424865672C12} = {63A47701-D985-43A0-ADED-9DEFEC0246D1} + {D4626CA3-5B6F-4876-A6B4-B26CAE66313B} = {9D7409FE-CE5F-47FB-AC36-AE29BEA1F461} + {9D7409FE-CE5F-47FB-AC36-AE29BEA1F461} = {507C2059-FC12-46DE-9215-6FAB0C415DC9} + {B349D13C-CCC6-4241-B09A-51B84B51F2A9} = {8C7E3904-34E1-4A28-A00C-01F07DE00AAC} + {8C7E3904-34E1-4A28-A00C-01F07DE00AAC} = {507C2059-FC12-46DE-9215-6FAB0C415DC9} + {507C2059-FC12-46DE-9215-6FAB0C415DC9} = {5B9A4B0D-C708-468E-95BC-88BC40C1B42A} + {02A366E5-74AE-4237-A762-2C5143CA58BB} = {F0DD5E6F-D9DC-4764-8638-A889A79CED6B} + {F0DD5E6F-D9DC-4764-8638-A889A79CED6B} = {BFA8F060-2BE8-4D2A-8B7A-71F61ED0BE1F} + {4FF8E872-D680-4572-89CD-4B612018CE3C} = {58BA599D-9F06-4E71-A518-DC722AF134D1} + {58BA599D-9F06-4E71-A518-DC722AF134D1} = {BFA8F060-2BE8-4D2A-8B7A-71F61ED0BE1F} + {BFA8F060-2BE8-4D2A-8B7A-71F61ED0BE1F} = {366F8177-78A3-4CA0-A79F-AF99E4BAA97D} + {C503732B-B14D-41D7-ACBA-9FC69B5B0639} = {1989D813-BBED-4BE6-8049-B6AE26CCF792} + {1989D813-BBED-4BE6-8049-B6AE26CCF792} = {003AFE1D-1DAC-4D64-B746-D14F6D25BB26} + {19B0D293-EEAB-45E0-BADB-08CD9594F61E} = {AE541666-E139-461F-A993-0C365CB9CDEA} + {AE541666-E139-461F-A993-0C365CB9CDEA} = {003AFE1D-1DAC-4D64-B746-D14F6D25BB26} + {003AFE1D-1DAC-4D64-B746-D14F6D25BB26} = {3C691020-03E5-4DBB-9C30-95449A5C24C2} + {B3F219DE-BE65-4956-9774-7AF892292E91} = {DB5BB6CD-F2ED-42CC-96A5-0B159008E90A} + {DB5BB6CD-F2ED-42CC-96A5-0B159008E90A} = {68F81A0B-FD56-4765-A3C3-FD6B0A3D937E} + {CB3E672F-13AA-458D-9AC3-8BBBFCDC7159} = {A2E24159-0E10-41A8-AC48-CA7C81F484A6} + {A2E24159-0E10-41A8-AC48-CA7C81F484A6} = {68F81A0B-FD56-4765-A3C3-FD6B0A3D937E} + {68F81A0B-FD56-4765-A3C3-FD6B0A3D937E} = {1C3AC492-A36E-4E51-84F1-6D7F7B91B691} + {3E3B0347-5B31-4C88-8512-F7EB5831B857} = {96635123-F8A5-44C0-86CD-1D1CB859A06A} + {96635123-F8A5-44C0-86CD-1D1CB859A06A} = {6DE085DC-615B-4A88-AB03-4E92CF3C328A} + {E83942FB-6932-4398-8DF1-213F569B3DB2} = {6D8F713B-31AA-4B2F-AB89-B50B27A5C117} + {6D8F713B-31AA-4B2F-AB89-B50B27A5C117} = {6DE085DC-615B-4A88-AB03-4E92CF3C328A} + {6DE085DC-615B-4A88-AB03-4E92CF3C328A} = {BDE58372-203D-40F5-A819-9E043C53428F} + {EA832345-AF08-4571-AB17-E2263DE31CBE} = {32244DD9-4966-427B-B0CF-B45D6D43F59E} + {32244DD9-4966-427B-B0CF-B45D6D43F59E} = {24565C01-370D-463C-9A46-C180E246166C} + {6596775C-D4A7-4623-8056-82A3FB010766} = {1D8D0D98-6CF8-4C7F-A35E-0FFB2C5B68A5} + {1D8D0D98-6CF8-4C7F-A35E-0FFB2C5B68A5} = {24565C01-370D-463C-9A46-C180E246166C} + {24565C01-370D-463C-9A46-C180E246166C} = {01DCA932-DD0D-4874-AC65-88D0EFD587DA} + {9BC56796-AF20-467F-A0B6-5C9FD3F0BAB8} = {E93E5DFD-3DE0-4001-A107-9AB5819D014E} + {E93E5DFD-3DE0-4001-A107-9AB5819D014E} = {D74628C2-5D97-4E7B-B4D0-7EE771CB0EB0} + {E87FF531-498D-48CD-9553-05D5A654D4FF} = {58FDC42B-06A6-49E1-ADC5-0C3C5614AA32} + {58FDC42B-06A6-49E1-ADC5-0C3C5614AA32} = {D74628C2-5D97-4E7B-B4D0-7EE771CB0EB0} + {D74628C2-5D97-4E7B-B4D0-7EE771CB0EB0} = {3688727A-7569-4936-828F-5E452154FD9F} + {307FC400-26AE-43C7-A148-3C85182A77BE} = {A53CF7BB-CAD7-480B-B354-D9405A6D0081} + {A53CF7BB-CAD7-480B-B354-D9405A6D0081} = {2F36CC42-152A-44BA-BC94-49169D6485F0} + {861E1D3A-51B6-4648-A74C-CA3A873FBAE3} = {5BC58232-4211-4CD5-A2D5-3FEAD2462E27} + {5BC58232-4211-4CD5-A2D5-3FEAD2462E27} = {2F36CC42-152A-44BA-BC94-49169D6485F0} + {2F36CC42-152A-44BA-BC94-49169D6485F0} = {C64D1F10-EDF6-421E-8E9C-98FCA774E454} + {7A8E03C1-5E80-4C27-9D75-5EE110E05122} = {4C1985B1-0A71-4E16-B4EC-2AB292C60F73} + {4C1985B1-0A71-4E16-B4EC-2AB292C60F73} = {F65FCD3C-307C-403B-A79C-1B053CC01F8F} + {1187FEE5-01F9-402A-ADD4-1B368E9E9EB9} = {849DA795-318E-44EB-942A-2C3974E91E33} + {849DA795-318E-44EB-942A-2C3974E91E33} = {F65FCD3C-307C-403B-A79C-1B053CC01F8F} + {5B993528-F4A4-4E9E-A458-14636CDA134E} = {E5E34D25-B71E-4DD2-9E1A-7C873509B491} + {E5E34D25-B71E-4DD2-9E1A-7C873509B491} = {44048ADF-FB13-4900-917E-0E8EFA5C5BF7} + {44048ADF-FB13-4900-917E-0E8EFA5C5BF7} = {F65FCD3C-307C-403B-A79C-1B053CC01F8F} + {F65FCD3C-307C-403B-A79C-1B053CC01F8F} = {10E4B90F-2F9C-43B3-A793-241ABC1A3D17} + {C1D2F1A4-D078-40B2-9248-B1499C27360C} = {84B4145F-BF32-48CD-9F09-3D7F86F37497} + {84B4145F-BF32-48CD-9F09-3D7F86F37497} = {3E5D4554-3111-41EC-B955-51F1683AA1AE} + {7839BA93-CD63-42B5-B701-5699313F0DEF} = {0DFBC964-7556-4DF4-A1C0-0C538F06FE33} + {0DFBC964-7556-4DF4-A1C0-0C538F06FE33} = {3E5D4554-3111-41EC-B955-51F1683AA1AE} + {3E5D4554-3111-41EC-B955-51F1683AA1AE} = {6C101508-350C-4C64-A869-134AF44544C2} + {36F7201B-B5B7-4430-9815-85BA83DAFAAA} = {3BE82215-DD25-4DD7-B8D5-ECEC3E5134B0} + {3BE82215-DD25-4DD7-B8D5-ECEC3E5134B0} = {75A142FE-F6C7-4B68-AF3E-E8B3099CCC8A} + {663602F0-B299-420E-94E4-5062D9FF6249} = {AD1DCFD8-0D5B-4577-A70E-51ED15DD192F} + {AD1DCFD8-0D5B-4577-A70E-51ED15DD192F} = {75A142FE-F6C7-4B68-AF3E-E8B3099CCC8A} + {75A142FE-F6C7-4B68-AF3E-E8B3099CCC8A} = {16AB10C5-52B6-4789-B262-071E51DF0BFC} + {5F2F41FE-4B99-4B23-8BCD-CBFAF54DFF0F} = {F38F1013-D142-47A7-A2DB-0E39B64D5E8D} + {F38F1013-D142-47A7-A2DB-0E39B64D5E8D} = {A3C1C3FC-93CD-4D0F-A072-F27BFE0E82A3} + {A3C1C3FC-93CD-4D0F-A072-F27BFE0E82A3} = {4EBE6F57-5EE2-4973-8AFF-983525F7500A} + {476C1760-2152-40BB-A9FE-1A253B480BB4} = {CE1E2167-5EDE-4045-A844-37762AFF7198} + {CE1E2167-5EDE-4045-A844-37762AFF7198} = {8DB94CD1-49B6-4B2F-A4EC-EBCBF66D6243} + {8DB94CD1-49B6-4B2F-A4EC-EBCBF66D6243} = {7C5F7B9A-440A-4F16-ADBC-FBF216EEF605} + {585925CB-221E-4271-985D-1F382C49B9B7} = {43681FA2-56ED-414F-A9FD-E9DA332F838F} + {43681FA2-56ED-414F-A9FD-E9DA332F838F} = {88427CAF-C402-4D70-A710-09E5AC84058F} + {096D0AC0-D78B-4149-92DB-7BF9CAA92377} = {6A0E8CC8-93FB-45AC-924C-082BAC4933D0} + {6A0E8CC8-93FB-45AC-924C-082BAC4933D0} = {88427CAF-C402-4D70-A710-09E5AC84058F} + {88427CAF-C402-4D70-A710-09E5AC84058F} = {CC0A097C-977D-42AE-8ADF-8AC81D8C9EC6} + {A9A2642A-DFCE-49C0-A4FC-5CD9A56F8F74} = {509DA04B-F95C-4536-89E7-7A6686C90253} + {509DA04B-F95C-4536-89E7-7A6686C90253} = {4B73AE6B-A923-4AF4-808F-D2AF63B7A41D} + {4B73AE6B-A923-4AF4-808F-D2AF63B7A41D} = {C19D4FEE-94A9-481F-98A4-F7D211FE0E70} + {54144A8F-77A4-491A-BC88-6151038B3D80} = {BDE97366-2BF1-4CDC-97BA-2628FF4B408D} + {BDE97366-2BF1-4CDC-97BA-2628FF4B408D} = {F8A7097A-F58D-48A8-BFDD-E02472CE4CB9} + {976C93F8-2718-4A92-8129-82C75608DA22} = {6D8C6032-0298-4BD2-8B50-4C8DE37E39E0} + {6D8C6032-0298-4BD2-8B50-4C8DE37E39E0} = {3FB92B0D-D8A2-40A8-97C5-47BCE0340442} + {3FB92B0D-D8A2-40A8-97C5-47BCE0340442} = {2631C4CA-FCE5-4940-B2AA-9233D8D6BE3E} + {4F2F1D1D-DCAF-4445-A5EB-AA0DC1B9E831} = {71BAF4C2-D938-46C8-BD56-C7F5FD4546BD} + {71BAF4C2-D938-46C8-BD56-C7F5FD4546BD} = {57021BAD-3CF1-438F-9AE3-E5FB74284B38} + {57021BAD-3CF1-438F-9AE3-E5FB74284B38} = {4E341F0B-6B55-4B36-95EF-16F396D12A7A} + {41E1F6BD-EC00-48E6-9DCA-5C84ACB812A3} = {0AE84341-F99D-448F-82D6-38AFA46E637F} + {0AE84341-F99D-448F-82D6-38AFA46E637F} = {24EE0C59-3000-4C53-895E-9D130C1A64E4} + {24EE0C59-3000-4C53-895E-9D130C1A64E4} = {06D6B89E-A6F2-4773-B4B6-2889C119ED12} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5712B11A-645F-4828-9B46-083072CA0030} + EndGlobalSection +EndGlobal diff --git a/src/_test/_test.solution.proj b/src/_test/_test.solution.proj new file mode 100644 index 000000000..0373483f7 --- /dev/null +++ b/src/_test/_test.solution.proj @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/_test/app/.gitignore b/src/_test/app/.gitignore new file mode 100644 index 000000000..9b7028426 --- /dev/null +++ b/src/_test/app/.gitignore @@ -0,0 +1,6 @@ +.apax/ +bin/ +.g/ +.meta/ +obj/ +*.user diff --git a/src/_test/app/AXSharp.config.json b/src/_test/app/AXSharp.config.json new file mode 100644 index 000000000..e6888ce9e --- /dev/null +++ b/src/_test/app/AXSharp.config.json @@ -0,0 +1 @@ +{"OutputProjectFolder":"ix","UseBase":false,"NoDependencyUpdate":false,"IgnoreS7Pragmas":false,"SkipDependencyCompilation":false,"TargetPlatfromMoniker":"ax","ProjectFile":"showcase.csproj","UiHostProject":null} \ No newline at end of file diff --git a/src/_test/app/SystemConstants/plc_line_HwIdentifiers.st b/src/_test/app/SystemConstants/plc_line_HwIdentifiers.st new file mode 100644 index 000000000..3cd82a137 --- /dev/null +++ b/src/_test/app/SystemConstants/plc_line_HwIdentifiers.st @@ -0,0 +1,46 @@ +CONFIGURATION HardwareIDs + VAR_GLOBAL CONSTANT + plc_line_HwID : UINT := UINT#32; + plc_line_Rail_0_HwID : UINT := UINT#284; + 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_PROFINET_interface_1_HwID : UINT := UINT#64; + plc_line_plc_line_PROFINET_interface_1_Port_1_HwID : UINT := UINT#65; + plc_line_plc_line_PROFINET_interface_1_Port_2_HwID : UINT := UINT#66; + plc_line_plc_line_PROFINET_interface_2_HwID : UINT := UINT#72; + plc_line_plc_line_PROFINET_interface_2_Port_3_HwID : UINT := UINT#73; + plc_line_plc_line_Virtual_communication_interface_HwID : UINT := UINT#135; + profinet_plc_line_HwID : UINT := UINT#256; + rexroth_ctrlx_drive_HwID : UINT := UINT#258; + rexroth_ctrlx_drive_Inputs_HwID : UINT := UINT#264; + rexroth_ctrlx_drive_Outputs_HwID : UINT := UINT#263; + rexroth_ctrlx_drive_P_0_0106_0_0__STO_function__Operating_status_HwID : UINT := UINT#272; + rexroth_ctrlx_drive_Rack_HwID : UINT := UINT#261; + rexroth_ctrlx_drive_S_0_0080_0_0__Torque_force_command_value_HwID : UINT := UINT#281; + rexroth_ctrlx_drive_S_0_0084_0_0__Torque_force_feedback_value_HwID : UINT := UINT#271; + rexroth_ctrlx_drive_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_HwID : UINT := UINT#280; + rexroth_ctrlx_drive_S_0_0134_0_0__Master_control_word__Value_HwID : UINT := UINT#273; + rexroth_ctrlx_drive_S_0_0135_0_0__Drive_status_word__Value_HwID : UINT := UINT#268; + rexroth_ctrlx_drive_S_0_0144_0_0__Signal_status_word__Value_HwID : UINT := UINT#269; + rexroth_ctrlx_drive_S_0_0145_0_0__Signal_control_word__Value_HwID : UINT := UINT#278; + rexroth_ctrlx_drive_S_0_0193_0_0__Positioning_jerk_HwID : UINT := UINT#282; + rexroth_ctrlx_drive_S_0_0259_0_0__Positioning_profile__Profile_velocity_HwID : UINT := UINT#277; + rexroth_ctrlx_drive_S_0_0260_0_0__Positioning_profile__Acceleration_HwID : UINT := UINT#274; + rexroth_ctrlx_drive_S_0_0282_0_0__Drive_controlled_positioning__Command_value_HwID : UINT := UINT#275; + rexroth_ctrlx_drive_S_0_0359_0_0__Positioning_profile__Deceleration_HwID : UINT := UINT#276; + rexroth_ctrlx_drive_S_0_0386_0_0__Position_controller__Position_actual_value_HwID : UINT := UINT#265; + rexroth_ctrlx_drive_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_HwID : UINT := UINT#267; + rexroth_ctrlx_drive_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_HwID : UINT := UINT#266; + rexroth_ctrlx_drive_S_0_1720_0_1__Power_supply_control__Control_word_HwID : UINT := UINT#279; + rexroth_ctrlx_drive_S_0_1720_0_2__Power_supply_control__Status_word_HwID : UINT := UINT#270; + rexroth_ctrlx_drive_rexroth_ctrlx_drive_HwID : UINT := UINT#262; + rexroth_ctrlx_drive_rexroth_ctrlx_drive_XCS_interface_PF30_HwID : UINT := UINT#257; + rexroth_ctrlx_drive_rexroth_ctrlx_drive_XCS_interface_PF30_Port_1_HwID : UINT := UINT#259; + rexroth_ctrlx_drive_rexroth_ctrlx_drive_XCS_interface_PF30_Port_2_HwID : UINT := UINT#260; + rexroth_ctrlx_drive_rexroth_ctrlx_drive_ctrlX_DRIVE_XCS_HwID : UINT := UINT#283; + + END_VAR +END_CONFIGURATION diff --git a/src/_test/app/SystemConstants/plc_line_IoAddresses.st b/src/_test/app/SystemConstants/plc_line_IoAddresses.st new file mode 100644 index 000000000..36a051d97 --- /dev/null +++ b/src/_test/app/SystemConstants/plc_line_IoAddresses.st @@ -0,0 +1,149 @@ +CONFIGURATION IoAddresses + VAR_GLOBAL + + // Module rexroth_ctrlx_drive/Inputs + rexroth_ctrlx_drive_Inputs_P_0_0106_0_0__STO_function__Operating_status_Input AT %IB20 : rexroth_ctrlx_drive_Inputs_P_0_0106_0_0__STO_function__Operating_status_Input_Layout; + rexroth_ctrlx_drive_Inputs_S_0_0084_0_0__Torque_force_feedback_value_Input AT %IB18 : rexroth_ctrlx_drive_Inputs_S_0_0084_0_0__Torque_force_feedback_value_Input_Layout; + rexroth_ctrlx_drive_Inputs_S_0_0135_0_0__Drive_status_word__Value_Input AT %IB12 : rexroth_ctrlx_drive_Inputs_S_0_0135_0_0__Drive_status_word__Value_Input_Layout; + rexroth_ctrlx_drive_Inputs_S_0_0144_0_0__Signal_status_word__Value_Input AT %IB14 : rexroth_ctrlx_drive_Inputs_S_0_0144_0_0__Signal_status_word__Value_Input_Layout; + rexroth_ctrlx_drive_Inputs_S_0_0386_0_0__Position_controller__Position_actual_value_Input AT %IB0 : rexroth_ctrlx_drive_Inputs_S_0_0386_0_0__Position_controller__Position_actual_value_Input_Layout; + rexroth_ctrlx_drive_Inputs_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_Input AT %IB8 : rexroth_ctrlx_drive_Inputs_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_Input_Layout; + rexroth_ctrlx_drive_Inputs_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_Input AT %IB4 : rexroth_ctrlx_drive_Inputs_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_Input_Layout; + rexroth_ctrlx_drive_Inputs_S_0_1720_0_2__Power_supply_control__Status_word_Input AT %IB16 : rexroth_ctrlx_drive_Inputs_S_0_1720_0_2__Power_supply_control__Status_word_Input_Layout; + + // Module rexroth_ctrlx_drive/Outputs + rexroth_ctrlx_drive_Outputs_S_0_0080_0_0__Torque_force_command_value_Output AT %QB24 : rexroth_ctrlx_drive_Outputs_S_0_0080_0_0__Torque_force_command_value_Output_Layout; + rexroth_ctrlx_drive_Outputs_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_Output AT %QB22 : rexroth_ctrlx_drive_Outputs_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_Output_Layout; + rexroth_ctrlx_drive_Outputs_S_0_0134_0_0__Master_control_word__Value_Output AT %QB0 : rexroth_ctrlx_drive_Outputs_S_0_0134_0_0__Master_control_word__Value_Output_Layout; + rexroth_ctrlx_drive_Outputs_S_0_0145_0_0__Signal_control_word__Value_Output AT %QB18 : rexroth_ctrlx_drive_Outputs_S_0_0145_0_0__Signal_control_word__Value_Output_Layout; + rexroth_ctrlx_drive_Outputs_S_0_0193_0_0__Positioning_jerk_Output AT %QB26 : rexroth_ctrlx_drive_Outputs_S_0_0193_0_0__Positioning_jerk_Output_Layout; + rexroth_ctrlx_drive_Outputs_S_0_0259_0_0__Positioning_profile__Profile_velocity_Output AT %QB14 : rexroth_ctrlx_drive_Outputs_S_0_0259_0_0__Positioning_profile__Profile_velocity_Output_Layout; + rexroth_ctrlx_drive_Outputs_S_0_0260_0_0__Positioning_profile__Acceleration_Output AT %QB2 : rexroth_ctrlx_drive_Outputs_S_0_0260_0_0__Positioning_profile__Acceleration_Output_Layout; + rexroth_ctrlx_drive_Outputs_S_0_0282_0_0__Drive_controlled_positioning__Command_value_Output AT %QB6 : rexroth_ctrlx_drive_Outputs_S_0_0282_0_0__Drive_controlled_positioning__Command_value_Output_Layout; + rexroth_ctrlx_drive_Outputs_S_0_0359_0_0__Positioning_profile__Deceleration_Output AT %QB10 : rexroth_ctrlx_drive_Outputs_S_0_0359_0_0__Positioning_profile__Deceleration_Output_Layout; + rexroth_ctrlx_drive_Outputs_S_0_1720_0_1__Power_supply_control__Control_word_Output AT %QB20 : rexroth_ctrlx_drive_Outputs_S_0_1720_0_1__Power_supply_control__Control_word_Output_Layout; + END_VAR +END_CONFIGURATION + +TYPE + rexroth_ctrlx_drive_Inputs_P_0_0106_0_0__STO_function__Operating_status_Input_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Inputs_S_0_0084_0_0__Torque_force_feedback_value_Input_Layout : STRUCT + Signals_0 AT %B0 : INT; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Inputs_S_0_0135_0_0__Drive_status_word__Value_Input_Layout : STRUCT + Signals_0 AT %X0.3 : BOOL; + Signals_1 AT %X0.4 : BOOL; + Signals_2 AT %X0.5 : BOOL; + Signals_3 AT %X0.7 : BOOL; + Signals_4 AT %X1.0 : BOOL; + Signals_5 AT %X1.1 : BOOL; + Signals_6 AT %X1.2 : BOOL; + Signals_7 AT %X1.4 : BOOL; + Signals_8 AT %X1.5 : BOOL; + Signals_9 AT %X1.6 : BOOL; + Signals_10 AT %X1.7 : BOOL; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Inputs_S_0_0144_0_0__Signal_status_word__Value_Input_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Inputs_S_0_0386_0_0__Position_controller__Position_actual_value_Input_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Inputs_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_Input_Layout : STRUCT + Signals_0 AT %B0 : DWORD; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Inputs_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_Input_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Inputs_S_0_1720_0_2__Power_supply_control__Status_word_Input_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_0080_0_0__Torque_force_command_value_Output_Layout : STRUCT + Signals_0 AT %B0 : INT; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_Output_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_0134_0_0__Master_control_word__Value_Output_Layout : STRUCT + Signals_0 AT %X1.0 : BOOL; + Signals_1 AT %X1.1 : BOOL; + Signals_2 AT %X1.2 : BOOL; + Signals_3 AT %X1.5 : BOOL; + Signals_4 AT %X1.6 : BOOL; + Signals_5 AT %X1.7 : BOOL; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_0145_0_0__Signal_control_word__Value_Output_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_0193_0_0__Positioning_jerk_Output_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_0259_0_0__Positioning_profile__Profile_velocity_Output_Layout : STRUCT + Signals_0 AT %B0 : DWORD; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_0260_0_0__Positioning_profile__Acceleration_Output_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_0282_0_0__Drive_controlled_positioning__Command_value_Output_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_0359_0_0__Positioning_profile__Deceleration_Output_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; +END_TYPE + +TYPE + rexroth_ctrlx_drive_Outputs_S_0_1720_0_1__Power_supply_control__Control_word_Output_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; +END_TYPE diff --git a/src/_test/app/apax.yml b/src/_test/app/apax.yml new file mode 100644 index 000000000..6e12f3420 --- /dev/null +++ b/src/_test/app/apax.yml @@ -0,0 +1,257 @@ +name: "test" +version: '0.0.0-dev.0' +type: app +targets: + # - llvm + - "1500" +variables: + # APAX_BUILD_ARGS: + # - "--debug" + # Do not commit any changes to the following variables. You may modify them locally => + PLC_NAME: "plc_line" + DEFAULT_NAMESPACE: "AXOpen.Test" + AXTARGET: 192.168.100.2 + AXTARGETPLATFORMINPUT: .\bin\1500\ + AX_USERNAME: "admin" + AX_TARGET_PWD: "Qwerty123456+" + USE_PLC_SIM_ADVANCED: "false" + # <= Do not commit any changes to the following variables. +registries: + "@inxton": "https://npm.pkg.github.com/" +devDependencies: + "@inxton/ax-sdk": '0.0.0-dev.0' +dependencies: + # Foundation + "@inxton/axopen.core": '0.0.0-dev.0' + "@inxton/axopen.abstractions": '0.0.0-dev.0' + # "@inxton/axopen.data": '0.0.0-dev.0' + # "@inxton/axopen.inspectors": '0.0.0-dev.0' + # "@inxton/axopen.io": '0.0.0-dev.0' + # "@inxton/axopen.probers": '0.0.0-dev.0' + # "@inxton/axopen.utils": '0.0.0-dev.0' + "@inxton/axopen.timers": '0.0.0-dev.0' + "@inxton/axopen.simatic1500": '0.0.0-dev.0' + # Components + # "@inxton/axopen.components.abstractions": '0.0.0-dev.0' + # "@inxton/axopen.components.drives": '0.0.0-dev.0' + # "@inxton/axopen.components.elements": '0.0.0-dev.0' + # "@inxton/axopen.components.pneumatics": '0.0.0-dev.0' + # "@inxton/axopen.components.robotics": '0.0.0-dev.0' + # "@inxton/axopen.components.abb.robotics": '0.0.0-dev.0' + # "@inxton/axopen.components.balluff.identification": '0.0.0-dev.0' + # "@inxton/axopen.components.cognex.vision": '0.0.0-dev.0' + # "@inxton/axopen.components.desoutter.tightening": '0.0.0-dev.0' + # "@inxton/axopen.components.dukane.welders": '0.0.0-dev.0' + # "@inxton/axopen.components.festo.drives": '0.0.0-dev.0' + # "@inxton/axopen.components.keyence.vision": '0.0.0-dev.0' + # "@inxton/axopen.components.kuka.robotics": '0.0.0-dev.0' + # "@inxton/axopen.components.mitsubishi.robotics": '0.0.0-dev.0' + "@inxton/axopen.components.rexroth.drives": '0.0.0-dev.0' + # "@inxton/axopen.components.rexroth.press": '0.0.0-dev.0' + # "@inxton/axopen.components.rexroth.tightening": '0.0.0-dev.0' + # "@inxton/axopen.components.siem.communication": '0.0.0-dev.0' + # "@inxton/axopen.components.siem.identification": '0.0.0-dev.0' + # "@inxton/axopen.components.ur.robotics": '0.0.0-dev.0' + # "@inxton/axopen.components.zebra.vision": '0.0.0-dev.0' + # Shared app infrastructure + "@inxton/ax.axopen.app": '0.0.0-dev.0' +installStrategy: strict +apaxVersion: 3.5.0 +scripts: + 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" + 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" + 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" + 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 $AXTARGET + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ssc' 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) + if [ "$1" = "--force" ] || [ "$1" = "-f" ]; then + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED true + else + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED false + fi + 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) + if [ "$1" = "--force" ] || [ "$1" = "-f" ]; then + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED true + else + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED false + fi + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax all' Finished in :" $(expr $(date +%s) - $START) "s" + cla: | #compile all + START=$(date +%s) + ..\\..\\scripts\\compile_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 cla' Finished in :" $(expr $(date +%s) - $START) "s" + cpa: | #compare all + START=$(date +%s) + ..\\..\\scripts\\compare_all.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax cpa' Finished in :" $(expr $(date +%s) - $START) "s" + cca: | #compile all compare all + START=$(date +%s) + ..\\..\\scripts\\compile_all_compare_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 cca' Finished in :" $(expr $(date +%s) - $START) "s" + ib: | + START=$(date +%s) + apax install + apax build + dotnet ixc + 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 --strict + 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 + dotnet ixc + apax test + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ibt' Finished in :" $(expr $(date +%s) - $START) "s" + gc: | + START=$(date +%s) + if [[ ! -d ".\\certs\\$PLC_NAME" ]]; then + mkdir -p ".\\certs\\$PLC_NAME" + echo "Created directory: .\\certs\\$PLC_NAME" + fi + apax plc-cert --target $AXTARGET --output .\\certs\\$PLC_NAME\\$PLC_NAME.cer + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax gc' 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_NAME\\$PLC_NAME.cer --continuously + x: | + apax swfd + apax mm + t: | + apax install + apax hwl + apax ssc + apax gsd + apax hwcc + apax hwid + apax hwadr + apax build + dotnet ixc + + tt: | + START=$(date +%s) + apax install + apax hwl + apax gc + apax gsd + apax hwcc + apax hwid + apax hwadr + apax hwdo + apax build + dotnet ixc + apax swfdo + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax tx' Finished in :" $(expr $(date +%s) - $START) "s" + ttx: | + START=$(date +%s) + apax install + apax build + dotnet ixc + apax gc + apax swfdo + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - 'apax ttx' Finished in :" $(expr $(date +%s) - $START) "s" diff --git a/src/_test/app/axsharp.companion.json b/src/_test/app/axsharp.companion.json new file mode 100644 index 000000000..4ed1fb379 --- /dev/null +++ b/src/_test/app/axsharp.companion.json @@ -0,0 +1 @@ +{"Id":"showcase","Version":"0.0.0-dev.0"} \ No newline at end of file diff --git a/src/_test/app/docs-snippets/core-blazor/Program.cs b/src/_test/app/docs-snippets/core-blazor/Program.cs new file mode 100644 index 000000000..f85dda6d7 --- /dev/null +++ b/src/_test/app/docs-snippets/core-blazor/Program.cs @@ -0,0 +1,155 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Web; +using System.Reflection; +using AXSharp.Connector; +using AXSharp.Presentation.Blazor.Services; +using AXOpen; +using AXOpen.Data.Json; +using axopen_integrations_blazor.Data; +using AXOpen.Logging; +using Serilog; +using AXOpen.Core; +using axopencore; +using AXOpen.Base.Data; +using AXOpen.Core.Blazor.AxoDialogs.Hubs; +using AxOpen.Security; +using AxOpen.Security.Services; +using AxOpen.Security.Entities; + +namespace axopen_integrations_blazor +{ + public class Program + { + public static async Task Main(string[] args) + { + var builder = WebApplication.CreateBuilder(args); + + // Add services to the container. + builder.Services.ConfigureAxBlazorSecurity(PrepareUserRepository(), axopen_integrations_blazor.Roles.CreateRoles()); + builder.Services.AddRazorPages(); + builder.Services.AddServerSideBlazor(); + builder.Services.AddSingleton(); + builder.Services.AddAxoCoreServices(); + builder.Services.AddIxBlazorServices(); + builder.Services.AddLocalization(); + + //builder.Services.AddScoped(); + + //builder.Services.AddTcoCoreExtensions(); + + AxoApplication.CreateBuilder().ConfigureLogger(new SerilogLogger(new LoggerConfiguration() + .WriteTo.Console().MinimumLevel.Information() + .CreateLogger())); + + 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()); + + Entry.Plc.Connector.ReadWriteCycleDelay = 250; + Entry.Plc.Connector.BuildAndStart(); + + Entry.Plc.Connector.ExceptionBehaviour = CommExceptionBehaviour.ReThrow; + + Entry.Plc.Connector.SubscriptionMode = AXSharp.Connector.ReadSubscriptionMode.Polling; + + //_ = Entry.Plc.Connector.IdentityProvider.ConstructIdentitiesAsync(); + + // + var axoAppBuilder = AxoApplication.CreateBuilder(); + // + + // + + // Creates serilog logger with single sink to Console window. + + axoAppBuilder.ConfigureLogger(new SerilogLogger(new LoggerConfiguration() + .WriteTo.Console().MinimumLevel.Verbose() + .CreateLogger())); + // + + // + Entry.Plc.Ctx.AxoLoggers.LoggerOne.StartDequeuing(AxoApplication.Current.Logger, 250); + // + + 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(); + + var supportedCultures = new[] { "en-US", "sk-SK", "es-ES" }; + var localizationOptions = new RequestLocalizationOptions() + .AddSupportedCultures(supportedCultures) + .AddSupportedUICultures(supportedCultures); + + app.UseRequestLocalization(localizationOptions); + + app.MapBlazorHub(); + app.MapHub(AXOpen.Core.Blazor.AxoDialogs.Hubs.SignalRDialogHub.HUB_URL_SUFFIX); + app.MapFallbackToPage("/_Host"); + + #region InitializeRemoteTask + + Entry.Plc.Ctx.AxoRemoteTasks._remoteTask.Initialize(() => Console.WriteLine($"Remote task executed PLC sent this string: '{Entry.Plc.Ctx.AxoRemoteTasks._remoteTask.Message.GetAsync().Result}'")); + + #endregion InitializeRemoteTask + + app.Run(); + } + private static (IRepository, IRepository) PrepareUserRepository() + { + var repoPath = Environment.GetEnvironmentVariable("AX_JSON_REPOSITORY"); + + if (!Directory.Exists(repoPath)) + { + Directory.CreateDirectory(repoPath); + } + + IRepository userRepo = new JsonRepository(new JsonRepositorySettings(Path.Combine(repoPath, "Users"))); + IRepository groupRepo = new JsonRepository(new JsonRepositorySettings(Path.Combine(repoPath, "Groups"))); + + return (userRepo, groupRepo); + } + } + + internal 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); + } +} \ No newline at end of file diff --git a/src/_test/app/docs-snippets/data-blazor/Pages/DistributedData.razor b/src/_test/app/docs-snippets/data-blazor/Pages/DistributedData.razor new file mode 100644 index 000000000..558c25cd0 --- /dev/null +++ b/src/_test/app/docs-snippets/data-blazor/Pages/DistributedData.razor @@ -0,0 +1,40 @@ +@page "/DistributedData" +@using AXOpen.Base.Dialogs; +@using AXOpen.Data; +@using librarytemplate +@inject AuthenticationStateProvider _authenticationProvider +@inject Operon.Components.Toast.IToastService _alertDialogService + +
+
+

Distributed Data selector

+
+
+ // + + // +
+
+ +
+
+

Distributed Data View

+
+
+ // + + // +
+
diff --git a/src/_test/app/docs-snippets/data-blazor/Pages/Rendering.razor b/src/_test/app/docs-snippets/data-blazor/Pages/Rendering.razor new file mode 100644 index 000000000..aa2677b92 --- /dev/null +++ b/src/_test/app/docs-snippets/data-blazor/Pages/Rendering.razor @@ -0,0 +1,122 @@ +@page "/Rendering" +@using AXOpen.Base.Dialogs; +@using AXOpen.Data; +@using librarytemplate +@inject AuthenticationStateProvider _authenticationProvider +@inject Operon.Components.Toast.IToastService _alertDialogService + +
+
+

DataExchange PresentationType="Command"

+
+
+ +
+
+ +
+
+

DataFragmentExchange PresentationType="Command"

+
+
+ // + + // +
+
+ +
+
+

DataFragmentExchange PresentationType="Status"

+
+
+ // + + // +
+
+ +
+
+

Custom columns

+
+
+ // + + + + + + // +
+
+ +
+
+

Enable Export

+
+
+ // + + // +
+
+ +
+
+

Disable Modal view

+
+
+ // + + // +
+
+ +
+
+

Sorting

+
+
+ // + + + + + + // +
+
+ + +// +@code { + private DataExchangeViewModel _vm_columndata; + private DataExchangeViewModel _vm_modal; + private DataExchangeViewModel _vm_export; + + protected override void OnInitialized() + { + _vm_columndata = new DataExchangeViewModel + { + Model = Entry.Plc.Ctx.AxoDataFragmentsExchangeContext.DataManager, + ToastService = _alertDialogService, + AuthenticationProvider = _authenticationProvider + }; + + _vm_modal = new DataExchangeViewModel + { + Model = Entry.Plc.Ctx.AxoDataFragmentsExchangeContext.DataManager, + ToastService = _alertDialogService, + AuthenticationProvider = _authenticationProvider + }; + + _vm_export = new DataExchangeViewModel + { + Model = Entry.Plc.Ctx.AxoDataFragmentsExchangeContext.DataManager, + ToastService = _alertDialogService, + AuthenticationProvider = _authenticationProvider + }; + } +} +// diff --git a/src/_test/app/docs-snippets/data-blazor/Program.cs b/src/_test/app/docs-snippets/data-blazor/Program.cs new file mode 100644 index 000000000..a59089c04 --- /dev/null +++ b/src/_test/app/docs-snippets/data-blazor/Program.cs @@ -0,0 +1,292 @@ +using AxOpen.Security; +using AxOpen.Security.Entities; +using AxOpen.Security.Services; +using AXOpen; +using AXOpen.Base.Data; +using AXOpen.Data; +using AXOpen.Data.Json; +using AXOpen.Data.MongoDb; +using AXOpen.Logging; +using AXSharp.Connector; +using AXSharp.Presentation.Blazor.Services; +using librarytemplate; +using Serilog; +using System.Data; +using System.Reflection; + +var builder = WebApplication.CreateBuilder(args); + + +// Add services to the container. +//var jsonRepositoryLocation = CreateJsonRepositoryDirectory(); +//builder.Services.ConfigureAxBlazorSecurity(SetUpJsonSecurityRepository(jsonRepositoryLocation), Roles.CreateRoles(), true); +builder.Services.ConfigureAxBlazorSecurity(SetUpMongoSecurityRepository(), Roles.CreateRoles(), true); +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.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.Debug() + .CreateLogger()); + +_ = Entry.Plc.Connector.IdentityProvider.ConstructIdentitiesAsync(); + +AxoApplication.CreateBuilder().ConfigureLogger(new SerilogLogger(new LoggerConfiguration() + .WriteTo.Console().MinimumLevel.Verbose() + .CreateLogger())); + +// +IRepository persistentRepository; + +// *** IN MEMORY REPOSITORY *** +//persistentRepository = new InMemoryRepositorySettings().Factory(); + +//***JSON REPOSITORY*** +//var persistentLocation = Path.Combine(jsonRepositoryLocation, "PersistentData"); +//persistentRepository = new JsonRepositorySettings(persistentLocation).Factory(); + +// *** MONGO REPOSITORY *** + +persistentRepository = AXOpen.Data.MongoDb.Repository.Factory(new MongoDbRepositorySettings("mongodb://localhost:27017", "AxOpenData", "PersistentData")); + +Entry.Plc.Ctx.AxoDataPersistentContext.DataManager.InitializeRemoteDataExchange( + Entry.Plc.Ctx.AxoDataPersistentContext.PersistentRootObject, + persistentRepository + ); + +// + +// + +IRepository SharedDataHeaderDataRepository; +IRepository Station_1_DataRepository; + +// *** IN MEMORY REPOSITORY *** +//SharedDataHeaderDataRepository = new InMemoryRepositorySettings().Factory(); +//Station_1_DataRepository = new InMemoryRepositorySettings().Factory(); + +// *** JSON REPOSITORY *** +//var SharedHeaderLocation = Path.Combine(jsonRepositoryLocation, "SharedDataHeader"); +//var Station_1_Location = Path.Combine(jsonRepositoryLocation, "Station_1"); +//SharedDataHeaderDataRepository = new JsonRepositorySettings(SharedHeaderLocation).Factory(); +//Station_1_DataRepository = new JsonRepositorySettings(Station_1_Location).Factory(); + +// *** MONGO REPOSITORY *** + +SharedDataHeaderDataRepository = AXOpen.Data.MongoDb.Repository.Factory(new MongoDbRepositorySettings("mongodb://localhost:27017", "AxOpenData", "SharedDataHeader")); +Station_1_DataRepository = AXOpen.Data.MongoDb.Repository.Factory(new MongoDbRepositorySettings("mongodb://localhost:27017", "AxOpenData", "Station_1")); + +var AxoProcessDataManager = Entry.Plc.Ctx.AxoDataFragmentsExchangeContext.DataManager.CreateDataFragments(); + +AxoProcessDataManager.SharedHeader.SetRepository(SharedDataHeaderDataRepository); +AxoProcessDataManager.Station_1.SetRepository(Station_1_DataRepository); +AxoProcessDataManager.InitializeRemoteDataExchange(); + +// + +// +IRepository AxoProcessDataRepository; + +// *** IN MEMORY REPOSITORY *** +//AxoProcessDataRepository = new InMemoryRepositorySettings().Factory(); +//Entry.Plc.Ctx.AxoDataExchangeContext.DataManager.InitializeRemoteDataExchange(AxoProcessDataRepository); + +// *** JSON REPOSITORY *** +//var ProcessDataLocation = Path.Combine(jsonRepositoryLocation, "ProcessData"); +//AxoProcessDataRepository = new JsonRepositorySettings(ProcessDataLocation).Factory(); + +// *** MONGO REPOSITORY *** +AxoProcessDataRepository = AXOpen.Data.MongoDb.Repository.Factory(new MongoDbRepositorySettings("mongodb://localhost:27017", "AxOpenData", "AxoDataExchangeExample")); + +Entry.Plc.Ctx.AxoDataExchangeContext.DataManager.InitializeRemoteDataExchange(AxoProcessDataRepository); +// + +// +// Clean Temp directory +AXOpen.Data.IAxoDataExchange.CleanUp(); +// + + +IRepository distributedHeaderRepository; +IRepository distributedStationRepository; + + +distributedHeaderRepository = AXOpen.Data.MongoDb.Repository.Factory(new MongoDbRepositorySettings("mongodb://localhost:27017", "AxOpenData", "DistributedHeader")); + +distributedStationRepository = AXOpen.Data.MongoDb.Repository.Factory(new MongoDbRepositorySettings("mongodb://localhost:27017", "AxOpenData", "DistributedStation")); + +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.EntityHeader.SetRepository(distributedHeaderRepository); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2.EntityHeader.SetRepository(distributedHeaderRepository); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.ProcessData.SetRepository(distributedStationRepository); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2.ProcessData.SetRepository(distributedStationRepository); + +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.EntityHeader.InitializeRemoteDataExchange(); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2.EntityHeader.InitializeRemoteDataExchange(); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.ProcessData. InitializeRemoteDataExchange(); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2.ProcessData.InitializeRemoteDataExchange(); + + +// +// DistributedDataExchangeService - will handle all instances of IAxoDataExchanges +var distributedDataService = new DistributedDataExchangeService(); +builder.Services.AddSingleton(distributedDataService); + +// AxoDataExchangeConfigurationService - handle configuraion for any IAxoDataExchange +var exchangeConfigurationService = new AxoDataExchangeConfigurationService(); +builder.Services.AddSingleton(exchangeConfigurationService); +// + +// + +// You can manually add AxoDataExchanges to the service: +// distributedDataService.Add(Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.ProcessData, new() { "default" }); +// distributedDataService.Add(Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.EntityHeader, new() { "default" }); +// ... + +// Or collect them automatically using reflection: + +distributedDataService.CollectAxoDataExchanges(Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1); +distributedDataService.CollectAxoDataExchanges(Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2); +// + +// +//Set up prioritized exchange type +distributedDataService.SetPrioritizedType(typeof(Pocos.AxoDataDistributedExample.SharedHeader_Data)); + +// sort all collected groups +distributedDataService.SortGroupsByPriorizedTypes(); +// + + +// +exchangeConfigurationService.AddConfiguration( + suffix: "", + configAction: a => + { + a.AddColumn("Global Result", x => x.HeaderGlogalPass, true, typeof(CustomBoolTemplate)) + .AddColumn("Index", x => x.HeaderIndex, false, typeof(CustomIntTemplate)) + .EnableSorting() + .AddSorting(x => x.HeaderPartialName); + }); + + +exchangeConfigurationService.AddConfiguration( + suffix: "", + configAction: a => + { + a.AddColumn("Station Result", x => x.StationPass, true, typeof(CustomBoolTemplate)) + .AddColumn("Name", x => x.StationName, true, null) + .AddColumn("Operation", x => x.StaionOperation, true, null) + .EnableSorting(); + }); + +// + + +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(); + +var supportedCultures = new[] { "en-US", "sk-SK", "es-ES" }; +var localizationOptions = new RequestLocalizationOptions() + .AddSupportedCultures(supportedCultures) + .AddSupportedUICultures(supportedCultures); + +app.UseRequestLocalization(localizationOptions); + + +app.UseAuthorization(); + +app.MapControllers(); +app.MapBlazorHub(); +app.MapFallbackToPage("/_Host"); + +app.Run(); + +static string CreateJsonRepositoryDirectory(string path = "JSONREPOS") +{ + var executingAssemblyFile = new FileInfo(Assembly.GetExecutingAssembly().Location); + var repositoryDirectory = Path.GetFullPath(Path.Combine(executingAssemblyFile.Directory!.FullName, "..", "..", "..", "..", "..", path)); + if (!Directory.Exists(repositoryDirectory)) + { + Directory.CreateDirectory(repositoryDirectory); + } + return repositoryDirectory; +} + +static (IRepository, IRepository) SetUpJsonSecurityRepository(string repositoryDirectory) +{ + IRepository userRepo = new JsonRepository(new JsonRepositorySettings(Path.Combine(repositoryDirectory, "Users"))); + IRepository groupRepo = new JsonRepository(new JsonRepositorySettings(Path.Combine(repositoryDirectory, "Groups"))); + + return (userRepo, groupRepo); +} + +static (IRepository, IRepository) SetUpMongoSecurityRepository(string databaseName = "AxOpenData") +{ + var MongoDatabaseName = databaseName; + var MongoConnectionString = "mongodb://localhost:27017"; + + IRepository userRepo = AXOpen.Data.MongoDb.Repository.Factory(new MongoDbRepositorySettings(MongoConnectionString, MongoDatabaseName, "Users", idExpression: t => t.Id)); + IRepository groupRepo = AXOpen.Data.MongoDb.Repository.Factory(new MongoDbRepositorySettings(MongoConnectionString, MongoDatabaseName, "Groups")); + return (userRepo, groupRepo); +} + +public static class Roles +{ + // + public static List CreateRoles() + { + var roles = new List // your custom application roles + { + 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), + }; + + //add all roles from AXOpen.Data + foreach (var item in typeof(AXOpen.Data.DataExchangeRoleNames). + GetFields(BindingFlags.Public | BindingFlags.Static). + Where(f => f.FieldType == typeof(string))) + { + roles.Add(new Role(item.Name)); + } + + 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); +} \ No newline at end of file diff --git a/src/_test/app/docs-snippets/data-blazor/Templates/CustomBoolTemplate.razor b/src/_test/app/docs-snippets/data-blazor/Templates/CustomBoolTemplate.razor new file mode 100644 index 000000000..84a58077a --- /dev/null +++ b/src/_test/app/docs-snippets/data-blazor/Templates/CustomBoolTemplate.razor @@ -0,0 +1,21 @@ +@namespace librarytemplate +@inherits AXOpen.Data.ColumnDataCellBase + +@if (CastedValue == true) +{ + Pass +} +else +{ + Failed +} + +@code { + public bool CastedValue { set; get; } + + protected override void OnParametersSet() + { + base.OnParametersSet(); + CastedValue = (bool)PropertyValue; + } +} diff --git a/src/_test/app/docs-snippets/data-blazor/Templates/CustomIntTemplate.razor b/src/_test/app/docs-snippets/data-blazor/Templates/CustomIntTemplate.razor new file mode 100644 index 000000000..6f91bbd99 --- /dev/null +++ b/src/_test/app/docs-snippets/data-blazor/Templates/CustomIntTemplate.razor @@ -0,0 +1,27 @@ +@namespace librarytemplate +@inherits AXOpen.Data.ColumnDataCellBase + +@PropertyValue.ToString() - + +@if (CastedValue <= 100) +{ + + over +} +else +{ + + below +} + +@code { + + public short CastedValue { set; get; } + + protected override void OnParametersSet() + { + base.OnParametersSet(); + + CastedValue = (short)PropertyValue; + } +} diff --git a/src/_test/app/docs-snippets/io-src/Documentation/ComponentWithDiagnostics.st b/src/_test/app/docs-snippets/io-src/Documentation/ComponentWithDiagnostics.st new file mode 100644 index 000000000..ab9c149e8 --- /dev/null +++ b/src/_test/app/docs-snippets/io-src/Documentation/ComponentWithDiagnostics.st @@ -0,0 +1,29 @@ +USING AXOpen.Core; +{S7.extern=ReadWrite} +CLASS ComponentWithDiagnostics EXTENDS AXOpen.Core.AxoComponent + VAR PUBLIC + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentDetails("Hardware diagnostics")]} + {#ix-set:AttributeName = "<#Update diagnostics#>"} + HardwareDiagnosticsTask : AXOpen.Io.AxoHardwareDiagnostics; + END_VAR + + METHOD PUBLIC Run + VAR_INPUT + inParent : IAxoObject; + _hwID : UINT; + END_VAR + SUPER.Run(inParent); + + HardwareDiagnosticsTask.Run(THIS,_hwID); + END_METHOD + + + METHOD PUBLIC OVERRIDE Restore + HardwareDiagnosticsTask.Restore(); + END_METHOD + + METHOD PROTECTED OVERRIDE ManualControl + ; + END_METHOD +END_CLASS diff --git a/src/_test/app/docs-snippets/io-src/Documentation/Component_1.st b/src/_test/app/docs-snippets/io-src/Documentation/Component_1.st new file mode 100644 index 000000000..8ec4e91a5 --- /dev/null +++ b/src/_test/app/docs-snippets/io-src/Documentation/Component_1.st @@ -0,0 +1,78 @@ +USING AXOpen.Core; +{S7.extern=ReadWrite} +CLASS Component_1 EXTENDS AXOpen.Core.AxoObject + // + VAR PUBLIC + {#ix-set:AttributeName = "<#Activate manual control#>"} + ActivateManualControl : BOOL; + {#ix-set:AttributeName = "<#Hardware ID#>"} + _hwID : UINT; + _geoAddr_HardwareType : UINT; + _geoAddr_AreaID : UINT; + _geoAddr_IOSystem : UINT; + _geoAddr_Station : UINT; + _geoAddr_Slot : UINT; + _geoAddr_Subslot : UINT; + END_VAR + // + + // + VAR PUBLIC + ExampleComponent : AXOpen.Io.AxoIoComponent; + END_VAR + // + + VAR PRIVATE + _retval : WORD; + _geoAddr : Siemens.Simatic.Hardware.Utilities.GeoAddr; + END_VAR + + METHOD PUBLIC OVERRIDE Run + VAR_INPUT + inParent : IAxoObject; + END_VAR + + SUPER.Run(inParent); + + IF ActivateManualControl THEN + ExampleComponent.ActivateManualControl(); + END_IF; + + // + ExampleComponent.Run(THIS, _hwID); + // + + _retval := Siemens.Simatic.Hardware.Utilities.ReadSlotFromHardwareID(hardwareID := _hwID, geoAddr :=_geoAddr); + + _geoAddr_HardwareType := _geoAddr.HardwareType; + _geoAddr_AreaID := _geoAddr.AreaID; + _geoAddr_IOSystem := _geoAddr.IOSystem; + _geoAddr_Station := _geoAddr.Station; + _geoAddr_Slot := _geoAddr.Slot; + _geoAddr_Subslot := _geoAddr.Subslot; + + RETURN; + THIS.UseInSequencer(); + END_METHOD + + // + VAR PUBLIC + Sequencer : AxoSequencer; + Steps : ARRAY[0..3] OF AXOpen.Core.AxoStep; + END_VAR + + METHOD PRIVATE UseInSequencer + + Sequencer.Run(THIS); + Sequencer.Open(); + + IF(Steps[0].Execute(Sequencer, 'Update diagnostic task')) THEN + IF(ExampleComponent.HardwareDiagnosticsTask.Invoke().IsDone()) THEN + Sequencer.MoveNext(); + END_IF; + END_IF; + + END_METHOD + + // +END_CLASS diff --git a/src/_test/app/docs-snippets/io-src/Documentation/Component_2.st b/src/_test/app/docs-snippets/io-src/Documentation/Component_2.st new file mode 100644 index 000000000..b549c8c8a --- /dev/null +++ b/src/_test/app/docs-snippets/io-src/Documentation/Component_2.st @@ -0,0 +1,35 @@ +USING AXOpen.Core; +{S7.extern=ReadWrite} +CLASS Component_2 EXTENDS AXOpen.Core.AxoObject + // + VAR PUBLIC + ExampleComponent : ComponentWithDiagnostics; + END_VAR + // + + // + VAR PUBLIC + {#ix-set:AttributeName = "<#Activate manual control#>"} + ActivateManualControl : BOOL; + {#ix-set:AttributeName = "<#Hardware ID#>"} + _hwID : UINT; + END_VAR + // + + METHOD PUBLIC OVERRIDE Run + VAR_INPUT + inParent : IAxoObject; + END_VAR + + SUPER.Run(inParent); + + IF ActivateManualControl THEN + ExampleComponent.ActivateManualControl(); + END_IF; + + // + ExampleComponent.Run(THIS, _hwID); + // + + END_METHOD +END_CLASS diff --git a/src/_test/app/docs-snippets/io-src/Documentation/Component_3.st b/src/_test/app/docs-snippets/io-src/Documentation/Component_3.st new file mode 100644 index 000000000..fd2c6f34f --- /dev/null +++ b/src/_test/app/docs-snippets/io-src/Documentation/Component_3.st @@ -0,0 +1,33 @@ +USING AXOpen.Core; +{S7.extern=ReadWrite} +CLASS Component_3 EXTENDS AXOpen.Core.AxoObject + // + VAR PUBLIC + ExampleComponent : AXOpen.Io.AxoRecordAccessTool; + END_VAR + // + + // + VAR PUBLIC + {#ix-set:AttributeName = "<#Activate manual control#>"} + ActivateManualControl : BOOL; + END_VAR + // + + METHOD PUBLIC OVERRIDE Run + VAR_INPUT + inParent : IAxoObject; + END_VAR + + SUPER.Run(inParent); + + IF ActivateManualControl THEN + ExampleComponent.ActivateManualControl(); + END_IF; + + // + ExampleComponent.Run(THIS); + // + + END_METHOD +END_CLASS diff --git a/src/_test/app/docs-snippets/io-src/Documentation/Component_4.st b/src/_test/app/docs-snippets/io-src/Documentation/Component_4.st new file mode 100644 index 000000000..0e62dd825 --- /dev/null +++ b/src/_test/app/docs-snippets/io-src/Documentation/Component_4.st @@ -0,0 +1,59 @@ +USING AXOpen.Core; +USING AXOpen.Io; + +{S7.extern=ReadWrite} +CLASS Component_4 EXTENDS AXOpen.Core.AxoObject + // Preconditions: 32 input bytes/32 output bytes must be configured in the harwdware configuration. + // All hardware used "MUST" be reseted into the factory default state. + // Covers Balluff IOLink IO boxes: BNI0099 and BNI00AY + // Tested with Siemens IOLink master 6ES7 137-6BD00-0BA0 Firmware version V2.2 + + // + VAR PUBLIC + ExampleComponent : AXOpen.Io.AxoIOLinkET200SP_Balluff_IO; + END_VAR + // + + // + VAR PUBLIC + {#ix-set:AttributeName = "<#Activate manual control#>"} + ActivateManualControl : BOOL; + END_VAR + // + + METHOD PUBLIC OVERRIDE Run + VAR_INPUT + inParent : IAxoObject; + END_VAR + + SUPER.Run(inParent); + + IF ActivateManualControl THEN + ExampleComponent.ActivateManualControl(); + END_IF; + + // + ExampleComponent.Run(inParent := THIS, + hwID := HwIdentifiers#et200sp_A30_CM_4xIO_Link_V2_2_32I_32O_HwID, // Enter the hardware ID of your correctly wired IO-Link master module based on your error-free, already-compiled hardware configuration + Port_1 := AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI0099_BNI0099, // Enter the configuration of the correctly wired boxes connected to Port 1 + Port_2 := AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#NONE, // Enter the configuration of the correctly wired boxes connected to Port 2 + Port_3 := AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#NONE, // Enter the configuration of the correctly wired boxes connected to Port 3 + Port_4 := AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI00AY_BNI00AY);// Enter the configuration of the correctly wired boxes connected to Port 4 + + // A30.Inputs.C1.Box1.In[5] + // ExampleComponent.Run(inParent := THIS, + // hwID := HwIdentifiers#et200sp_A30_CM_4xIO_Link_V2_2_32I_32O_HwID, // Enter the hardware ID of your correctly wired IO-Link master module based on your error-free, already-compiled hardware configuration + // Port_1 := AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI0099, // Enter the configuration of the correctly wired boxes connected to Port 1 + // Port_2 := AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI0099_BNI0099, // Enter the configuration of the correctly wired boxes connected to Port 2 + // Port_3 := AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI00AY, // Enter the configuration of the correctly wired boxes connected to Port 3 + // Port_4 := AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI00AY_BNI00AY);// Enter the configuration of the correctly wired boxes connected to Port 4 + // Possible values for port configuration are: + // AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#NONE - Port not used; nothing must be connected + // AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI0099 - One BNI0099 box is connected to the port of the IOLink master + // AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI0099_BNI0099 - First BNI0099 box is connected directly to the port of the IOLink master, second BNI0099 box is connected to the last port of the previous box + // AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI00AY - One BNI00AY box is connected to the port of the IOLink master + // AXOpen.Io.eAxoIOLinkET200SP_Balluff_PortConfig#BNI00AY_BNI00AY - First BNI00AY box is connected directly to the port of the IOLink master, second BNI00AY box is connected to the last port of the previous box + + // + END_METHOD +END_CLASS diff --git a/src/_test/app/docs-snippets/io-src/Documentation/Component_5.st b/src/_test/app/docs-snippets/io-src/Documentation/Component_5.st new file mode 100644 index 000000000..57286eea2 --- /dev/null +++ b/src/_test/app/docs-snippets/io-src/Documentation/Component_5.st @@ -0,0 +1,40 @@ +USING AXOpen.Core; +USING AXOpen.Io; + +{S7.extern=ReadWrite} +CLASS Component_5 EXTENDS AXOpen.Core.AxoObject + + // + VAR PUBLIC + ExampleComponent : AXOpen.Io.AxoHwDiag; + END_VAR + // + + // + VAR PUBLIC + {#ix-set:AttributeName = "<#Activate manual control#>"} + ActivateManualControl : BOOL; + END_VAR + // + + METHOD PUBLIC OVERRIDE Run + VAR_EXTERNAL + HwIdentifierList : HwIdentifierList; + END_VAR + VAR_INPUT + inParent : IAxoObject; + END_VAR + + SUPER.Run(inParent); + + IF ActivateManualControl THEN + ExampleComponent.ActivateManualControl(); + END_IF; + + // + ExampleComponent.Run(inParent := THIS, + hwIDsList := HwIdentifierList); + + // + END_METHOD +END_CLASS diff --git a/src/_test/app/docs-snippets/io-src/Documentation/DocumentationContext.st b/src/_test/app/docs-snippets/io-src/Documentation/DocumentationContext.st new file mode 100644 index 000000000..22b1667a4 --- /dev/null +++ b/src/_test/app/docs-snippets/io-src/Documentation/DocumentationContext.st @@ -0,0 +1,66 @@ +USING AXOpen.Core; +{S7.extern=ReadWrite} +CLASS DocumentationContext EXTENDS AXOpen.Core.AxoContext + VAR PUBLIC + _rootObject : AxoObject; + componentOne : Component_1; + componentTwo : Component_2; + componentThree : Component_3; + componentFour : Component_4; + componentFive : Component_5; + END_VAR + + METHOD PROTECTED OVERRIDE Main + VAR_EXTERNAL + Inputs : AXOpen.Io.Inputs; + Outputs : AXOpen.Io.Outputs; + END_VAR + VAR + _tmpBool : BOOL; + END_VAR + + THIS.InitializeRootObject(_rootObject); + componentOne.Run(_rootObject); + componentTwo.Run(_rootObject); + componentThree.Run(_rootObject); + componentFour.Run(_rootObject); + componentFive.Run(_rootObject); + + // Example of BNI0099 connected to port X04, + // accessing digital input connected to the port 7 of the BNI0099 + _tmpBool := Inputs.bni00l3_BALLUFF_Link_module_X04_Input.Signals_0[0].%X7; + + // Example of an extended BNI0099 with an additional one connected to port X02, + // accessing digital input connected to the port 5 of the first BNI0099 in the chain + _tmpBool := Inputs.bni00l3_BALLUFF_Link_module_X02_Input.Signals_0[0].%X5; + + // Example of an extended BNI0099 with an additional one connected to port X02, + // accessing digital input connected to the port 3 of the second BNI0099 in the chain + _tmpBool := Inputs.bni00l3_BALLUFF_Link_module_X02_Input.Signals_0[1].%X3; + + // Example of BNI00AY connected to port X03, + // accessing digital input connected to the port 6 of the BNI00AY + _tmpBool := Inputs.bni00l3_BALLUFF_Link_module_X03_Input.Signals_0[0].%X6; + + // Example of BNI00AY connected to port X03, + // accessing digital input connected to the port 15 of the BNI00AY + _tmpBool := Inputs.bni00l3_BALLUFF_Link_module_X03_Input.Signals_0[1].%X7; + + // Example of an extended BNI00AY with an additional one connected to port X01, + // accessing digital input connected to the port 0 of the first BNI00AY in the chain + _tmpBool := Inputs.bni00l3_BALLUFF_Link_module_X01_Input.Signals_0[0].%X0; + + // Example of an extended BNI00AY with an additional one connected to port X01, + // accessing digital input connected to the port 14 of the first BNI00AY in the chain + _tmpBool := Inputs.bni00l3_BALLUFF_Link_module_X01_Input.Signals_0[1].%X6; + + // Example of an extended BNI00AY with an additional one connected to port X01, + // accessing digital input connected to the port 2 of the second BNI00AY in the chain + _tmpBool := Inputs.bni00l3_BALLUFF_Link_module_X01_Input.Signals_0[2].%X2; + + // Example of an extended BNI00AY with an additional one connected to port X01, + // accessing digital input connected to the port 11 of the second BNI00AY in the chain + _tmpBool := Inputs.bni00l3_BALLUFF_Link_module_X01_Input.Signals_0[3].%X3; + + END_METHOD +END_CLASS diff --git a/src/_test/app/hwc/hwc.gen/plc_line.HardwareIdentifiers.json b/src/_test/app/hwc/hwc.gen/plc_line.HardwareIdentifiers.json new file mode 100644 index 000000000..baa964f52 --- /dev/null +++ b/src/_test/app/hwc/hwc.gen/plc_line.HardwareIdentifiers.json @@ -0,0 +1,169 @@ +{ + "Version": 1, + "HardwareIdentifiers": [ + { + "Name": "plc_line", + "Value": 32 + }, + { + "Name": "plc_line~Rail_0", + "Value": 284 + }, + { + "Name": "plc_line~plc_line", + "Value": 48 + }, + { + "Name": "plc_line~plc_line~CPU display_1", + "Value": 54 + }, + { + "Name": "plc_line~plc_line~Card reader/writer_1", + "Value": 51 + }, + { + "Name": "plc_line~plc_line~DP interface_1", + "Value": 60 + }, + { + "Name": "plc_line~plc_line~OPC UA_1", + "Value": 117 + }, + { + "Name": "plc_line~plc_line~PROFINET_interface_1", + "Value": 64 + }, + { + "Name": "plc_line~plc_line~PROFINET_interface_1~Port_1", + "Value": 65 + }, + { + "Name": "plc_line~plc_line~PROFINET_interface_1~Port_2", + "Value": 66 + }, + { + "Name": "plc_line~plc_line~PROFINET_interface_2", + "Value": 72 + }, + { + "Name": "plc_line~plc_line~PROFINET_interface_2~Port_3", + "Value": 73 + }, + { + "Name": "plc_line~plc_line~Virtual communication interface", + "Value": 135 + }, + { + "Name": "profinet_plc_line", + "Value": 256 + }, + { + "Name": "rexroth_ctrlx_drive", + "Value": 258 + }, + { + "Name": "rexroth_ctrlx_drive~Inputs", + "Value": 264 + }, + { + "Name": "rexroth_ctrlx_drive~Outputs", + "Value": 263 + }, + { + "Name": "rexroth_ctrlx_drive~P-0-0106_0_0__STO_function__Operating_status", + "Value": 272 + }, + { + "Name": "rexroth_ctrlx_drive~Rack", + "Value": 261 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0080_0_0__Torque_force_command_value", + "Value": 281 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0084_0_0__Torque_force_feedback_value", + "Value": 271 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0092_0_0__Torque_force_limitation__Limit_value_bipolar", + "Value": 280 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0134_0_0__Master_control_word__Value", + "Value": 273 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0135_0_0__Drive_status_word__Value", + "Value": 268 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0144_0_0__Signal_status_word__Value", + "Value": 269 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0145_0_0__Signal_control_word__Value", + "Value": 278 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0193_0_0__Positioning_jerk", + "Value": 282 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0259_0_0__Positioning_profile__Profile_velocity", + "Value": 277 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0260_0_0__Positioning_profile__Acceleration", + "Value": 274 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0282_0_0__Drive-controlled_positioning__Command_value", + "Value": 275 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0359_0_0__Positioning_profile__Deceleration", + "Value": 276 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0386_0_0__Position_controller__Position_actual_value", + "Value": 265 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0390_0_0__Diagnostic_message__Manufacturer_status_register", + "Value": 267 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-0535_0_0__Velocity_controller__Velocity_actual_value", + "Value": 266 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-1720_0_1__Power_supply_control__Control_word", + "Value": 279 + }, + { + "Name": "rexroth_ctrlx_drive~S-0-1720_0_2__Power_supply_control__Status_word", + "Value": 270 + }, + { + "Name": "rexroth_ctrlx_drive~rexroth_ctrlx_drive", + "Value": 262 + }, + { + "Name": "rexroth_ctrlx_drive~rexroth_ctrlx_drive~XCS_interface_PF30", + "Value": 257 + }, + { + "Name": "rexroth_ctrlx_drive~rexroth_ctrlx_drive~XCS_interface_PF30~Port_1", + "Value": 259 + }, + { + "Name": "rexroth_ctrlx_drive~rexroth_ctrlx_drive~XCS_interface_PF30~Port_2", + "Value": 260 + }, + { + "Name": "rexroth_ctrlx_drive~rexroth_ctrlx_drive~ctrlX DRIVE XCS", + "Value": 283 + } + ] +} \ No newline at end of file diff --git a/src/_test/app/hwc/hwc.gen/plc_line.IoAddresses.json b/src/_test/app/hwc/hwc.gen/plc_line.IoAddresses.json new file mode 100644 index 000000000..f98c5fc42 --- /dev/null +++ b/src/_test/app/hwc/hwc.gen/plc_line.IoAddresses.json @@ -0,0 +1,449 @@ +{ + "Version": 2, + "IoAddresses": [ + { + "Ref": "rexroth_ctrlx_drive/Inputs", + "HardwareIdentifier": 264, + "Submodules": [ + { + "Name": "P-0-0106_0_0__STO_function__Operating_status", + "Ref": "rexroth_ctrlx_drive/Inputs/P-0-0106_0_0__STO_function__Operating_status", + "HardwareIdentifier": 272, + "Inputs": { + "StartAddress": "20.0", + "EndAddress": "21.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 16, + "DataType": "Unsigned16" + } + ] + } + }, + { + "Name": "S-0-0084_0_0__Torque_force_feedback_value", + "Ref": "rexroth_ctrlx_drive/Inputs/S-0-0084_0_0__Torque_force_feedback_value", + "HardwareIdentifier": 271, + "Inputs": { + "StartAddress": "18.0", + "EndAddress": "19.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 16, + "DataType": "Integer16" + } + ] + } + }, + { + "Name": "S-0-0135_0_0__Drive_status_word__Value", + "Ref": "rexroth_ctrlx_drive/Inputs/S-0-0135_0_0__Drive_status_word__Value", + "HardwareIdentifier": 268, + "Inputs": { + "StartAddress": "12.0", + "EndAddress": "13.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 3, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_1", + "Offset": 4, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_2", + "Offset": 5, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_3", + "Offset": 7, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_4", + "Offset": 8, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_5", + "Offset": 9, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_6", + "Offset": 10, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_7", + "Offset": 12, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_8", + "Offset": 13, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_9", + "Offset": 14, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_10", + "Offset": 15, + "Length": 1, + "DataType": "Boolean" + } + ] + } + }, + { + "Name": "S-0-0144_0_0__Signal_status_word__Value", + "Ref": "rexroth_ctrlx_drive/Inputs/S-0-0144_0_0__Signal_status_word__Value", + "HardwareIdentifier": 269, + "Inputs": { + "StartAddress": "14.0", + "EndAddress": "15.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 16, + "DataType": "Unsigned16" + } + ] + } + }, + { + "Name": "S-0-0386_0_0__Position_controller__Position_actual_value", + "Ref": "rexroth_ctrlx_drive/Inputs/S-0-0386_0_0__Position_controller__Position_actual_value", + "HardwareIdentifier": 265, + "Inputs": { + "StartAddress": "0.0", + "EndAddress": "3.7", + "Length": 32, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 32, + "DataType": "Integer32" + } + ] + } + }, + { + "Name": "S-0-0390_0_0__Diagnostic_message__Manufacturer_status_register", + "Ref": "rexroth_ctrlx_drive/Inputs/S-0-0390_0_0__Diagnostic_message__Manufacturer_status_register", + "HardwareIdentifier": 267, + "Inputs": { + "StartAddress": "8.0", + "EndAddress": "11.7", + "Length": 32, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 32, + "DataType": "Unsigned32" + } + ] + } + }, + { + "Name": "S-0-0535_0_0__Velocity_controller__Velocity_actual_value", + "Ref": "rexroth_ctrlx_drive/Inputs/S-0-0535_0_0__Velocity_controller__Velocity_actual_value", + "HardwareIdentifier": 266, + "Inputs": { + "StartAddress": "4.0", + "EndAddress": "7.7", + "Length": 32, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 32, + "DataType": "Integer32" + } + ] + } + }, + { + "Name": "S-0-1720_0_2__Power_supply_control__Status_word", + "Ref": "rexroth_ctrlx_drive/Inputs/S-0-1720_0_2__Power_supply_control__Status_word", + "HardwareIdentifier": 270, + "Inputs": { + "StartAddress": "16.0", + "EndAddress": "17.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 16, + "DataType": "Unsigned16" + } + ] + } + } + ] + }, + { + "Ref": "rexroth_ctrlx_drive/Outputs", + "HardwareIdentifier": 263, + "Submodules": [ + { + "Name": "S-0-0080_0_0__Torque_force_command_value", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-0080_0_0__Torque_force_command_value", + "HardwareIdentifier": 281, + "Outputs": { + "StartAddress": "24.0", + "EndAddress": "25.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 16, + "DataType": "Integer16" + } + ] + } + }, + { + "Name": "S-0-0092_0_0__Torque_force_limitation__Limit_value_bipolar", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-0092_0_0__Torque_force_limitation__Limit_value_bipolar", + "HardwareIdentifier": 280, + "Outputs": { + "StartAddress": "22.0", + "EndAddress": "23.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 16, + "DataType": "Unsigned16" + } + ] + } + }, + { + "Name": "S-0-0134_0_0__Master_control_word__Value", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-0134_0_0__Master_control_word__Value", + "HardwareIdentifier": 273, + "Outputs": { + "StartAddress": "0.0", + "EndAddress": "1.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 8, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_1", + "Offset": 9, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_2", + "Offset": 10, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_3", + "Offset": 13, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_4", + "Offset": 14, + "Length": 1, + "DataType": "Boolean" + }, + { + "Name": "Signals_5", + "Offset": 15, + "Length": 1, + "DataType": "Boolean" + } + ] + } + }, + { + "Name": "S-0-0145_0_0__Signal_control_word__Value", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-0145_0_0__Signal_control_word__Value", + "HardwareIdentifier": 278, + "Outputs": { + "StartAddress": "18.0", + "EndAddress": "19.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 16, + "DataType": "Unsigned16" + } + ] + } + }, + { + "Name": "S-0-0193_0_0__Positioning_jerk", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-0193_0_0__Positioning_jerk", + "HardwareIdentifier": 282, + "Outputs": { + "StartAddress": "26.0", + "EndAddress": "29.7", + "Length": 32, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 32, + "DataType": "Integer32" + } + ] + } + }, + { + "Name": "S-0-0259_0_0__Positioning_profile__Profile_velocity", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-0259_0_0__Positioning_profile__Profile_velocity", + "HardwareIdentifier": 277, + "Outputs": { + "StartAddress": "14.0", + "EndAddress": "17.7", + "Length": 32, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 32, + "DataType": "Unsigned32" + } + ] + } + }, + { + "Name": "S-0-0260_0_0__Positioning_profile__Acceleration", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-0260_0_0__Positioning_profile__Acceleration", + "HardwareIdentifier": 274, + "Outputs": { + "StartAddress": "2.0", + "EndAddress": "5.7", + "Length": 32, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 32, + "DataType": "Integer32" + } + ] + } + }, + { + "Name": "S-0-0282_0_0__Drive-controlled_positioning__Command_value", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-0282_0_0__Drive-controlled_positioning__Command_value", + "HardwareIdentifier": 275, + "Outputs": { + "StartAddress": "6.0", + "EndAddress": "9.7", + "Length": 32, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 32, + "DataType": "Integer32" + } + ] + } + }, + { + "Name": "S-0-0359_0_0__Positioning_profile__Deceleration", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-0359_0_0__Positioning_profile__Deceleration", + "HardwareIdentifier": 276, + "Outputs": { + "StartAddress": "10.0", + "EndAddress": "13.7", + "Length": 32, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 32, + "DataType": "Integer32" + } + ] + } + }, + { + "Name": "S-0-1720_0_1__Power_supply_control__Control_word", + "Ref": "rexroth_ctrlx_drive/Outputs/S-0-1720_0_1__Power_supply_control__Control_word", + "HardwareIdentifier": 279, + "Outputs": { + "StartAddress": "20.0", + "EndAddress": "21.7", + "Length": 16, + "Source": "AutoAssigned", + "SignalLayout": [ + { + "Name": "Signals_0", + "Offset": 0, + "Length": 16, + "DataType": "Unsigned16" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/_test/app/hwc/hwc.gen/plc_line.SecurityConfiguration.json b/src/_test/app/hwc/hwc.gen/plc_line.SecurityConfiguration.json new file mode 100644 index 000000000..eb829fdeb --- /dev/null +++ b/src/_test/app/hwc/hwc.gen/plc_line.SecurityConfiguration.json @@ -0,0 +1,9 @@ +{ + "PKIData": "AQAAAAAAAAAAAAAAAAAAAAEBAb4gAAACAAAAAAAAAAAAAwAAAN8ALS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUhvd0ZBWUhLb1pJemowQ0FRWUpLeVFEQXdJSUFRRUxBMklBQkM0WWxZbUVMRVB3YmY5OFdjMldPWmNGMlEwMApvMHpYSGpmUjZrK1lTbndvcjJXTHFLbjMyOUtLRHRUM3RYbzRIM285YzNFK2lDU25iTlV3djRPRXZ2c1BlN3lrCitoaVhsK0RrY0ZvRGlhUFlhYmN0RGx2djNYY3NqelZkMFFVK013PT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCnsBAQACAAAnEAAgY98p9q0BV7DctC9h8ZhN/oQ8IHHwNL0x6/nbZ3ZHC9oBACAADAAQUCIYUhbayLQw5F6MctZzIwEAAAE2tHSJ/dpS6htcYSgAl0BYlRT7JRgK125Y8YZAS9UTXqNeFeJc6KeaUgZRgYX0GP6YUInzSi58ty1awQlRSK+/J07y/ZM19s7G85X7mA+wDNvQqF3q4wn8SqfH16jOQEwAKuAEvKJkbv4KX+Bs4OdItovKjqLD9X6XZejveUsyW5YKMaaqfDTlpllS2ozgn0kYMl+IPGiJPBzquwSeYCYaq0DnX335pqUTlJwHIcVqzr+tS2EBZJc+3meDWm3E9SM2S8r+GYKgvKt7BDbgMa+rniNh/Wm3xOqUgpAOXpL+Xi+mgb+kvCAsosLG4b4mtPe6x5TnpfT7yCOe8ispKmJSG2uCvMEX+W4WO/dkz7+W0crc7zLi0c2E83xDxgUlBgS07+4+gQswhy8tbQubUctjVZ1udxi58gIACWxvY2FsaG9zdAEAAAAAAAAAAQAAAAIAAAAAAAAAFACe6UtvbA0Dx05ZEVGqRGxsJGsTdLQGAQAGsC0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQ0KTUlJRXN6Q0NBNXVnQXdJQkFnSVVSYVdYWlo3R3htZVRheEJaRG5KQ1ZVVE9TVGd3RFFZSktvWklodmNOQVFFTEJRQXdlekVMTUFrRw0KQTFVRUJoTUNXRmd4RWpBUUJnTlZCQWdNQ1ZOMFlYUmxUbUZ0WlRFUk1BOEdBMVVFQnd3SVEybDBlVTVoYldVeEZEQVNCZ05WQkFvTQ0KQzBOdmJYQmhibmxPWVcxbE1Sc3dHUVlEVlFRTERCSkRiMjF3WVc1NVUyVmpkR2x2Yms1aGJXVXhFakFRQmdOVkJBTU1DV3h2WTJGcw0KYUc5emREQWVGdzB5TmpBMU1UZ3hNVE0yTXpsYUZ3MHpOakExTVRVeE1UTTJNemxhTUhzeEN6QUpCZ05WQkFZVEFsaFlNUkl3RUFZRA0KVlFRSURBbFRkR0YwWlU1aGJXVXhFVEFQQmdOVkJBY01DRU5wZEhsT1lXMWxNUlF3RWdZRFZRUUtEQXREYjIxd1lXNTVUbUZ0WlRFYg0KTUJrR0ExVUVDd3dTUTI5dGNHRnVlVk5sWTNScGIyNU9ZVzFsTVJJd0VBWURWUVFEREFsc2IyTmhiR2h2YzNRd2dnRWlNQTBHQ1NxRw0KU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ3N6K2JHejJOTGV6aTVDQ2o4VWw3Skw0cW1ZMmtWRjBpVUM2c2dxTXJ1OHdObA0KdSs2bXUrUXFjZ1VSdnpCOEVJQlRaTlF6bnNCaUtwSXZ5eU1kaFNNTndDaUU3RmdZVldHQkNKVE0xeVdhTlpRVzJFVzczZ2VmTEZHZQ0KTG5ZalhZRXYzY3RkR0YyTDRRRTR5amRSZzIzM2JMNXlrMGZ6UTRPRlk3UCtEc2Znd09JdkxEem9NNlJGVVRESlQvZVArWEFEaDM3Vg0KemM5UUhkYllaUlJXTXV6RXJnSCs1TXNVdDlMOFVkd1ZBQXhuc2Jqb1Y5ejBqUHJjT1pCZ014OGlVSERFa1VJbUp0R3dFc2RxOGJFYw0KZjZjM0JjRkp0NlcyajV4K2R5UDVPZmUvSy9Yb3cwZGJ1K3ZsNXIwWkJwdHdKTE5QSktob2NkN1lrYlBobThyclFSVnJBZ01CQUFHag0KZ2dFdE1JSUJLVEFKQmdOVkhSTUVBakFBTUE0R0ExVWREd0VCL3dRRUF3SUM5REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSQ0KS3dZQkJRVUhBd0l3RXdZRFZSMFJCQXd3Q29JQWh3VEFxR1FDaGdBd0hRWURWUjBPQkJZRUZMOEwvK0ZqNnd5Y0s5Z1M1clc0dHUzMw0KRWxyS01JRzRCZ05WSFNNRWdiQXdnYTJBRkw4TC8rRmo2d3ljSzlnUzVyVzR0dTMzRWxyS29YK2tmVEI3TVFzd0NRWURWUVFHRXdKWQ0KV0RFU01CQUdBMVVFQ0F3SlUzUmhkR1ZPWVcxbE1SRXdEd1lEVlFRSERBaERhWFI1VG1GdFpURVVNQklHQTFVRUNnd0xRMjl0Y0dGdQ0KZVU1aGJXVXhHekFaQmdOVkJBc01Fa052YlhCaGJubFRaV04wYVc5dVRtRnRaVEVTTUJBR0ExVUVBd3dKYkc5allXeG9iM04wZ2hSRg0KcFpkbG5zYkdaNU5yRUZrT2NrSlZSTTVKT0RBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQVI5MzdNcWRTemRyZitVSHEzZ3dZdlFMZA0KcnlYemc0WkJGT0RzUjBzWXYvSFFlcWNGbWRwL0JoVU5YaHJlTEFLbU1GcDYwcS9DRTlkdjRYTWR4dUtGNzhzaUNUM0lnWGpYdEJDag0Kb21PaUtJTmdhSnpaMkR4eXRWQnZVK3dhZ3RJTXo1MVZIV3JOcU9WNklrZUdYcW1FeW9YdzVZaGZVc3pjbm01eXhFZ3NMV2JCTndJaQ0KT0V5OUowbjN1SUlQRHlkSm41cW5vNnNQL1lXbE0zc3VTT1dxeW9xNW5LWFNIbkRuMVBaWkRFRVMrazU5eFlObkJXQ3EyN2JHWXZlRQ0KKzFKcnhRU3E5bnpXTW5NWVNjSStJdE9KTXArMXVNY1pQQlAwOThNdHNJSFgzUEVBK1BhYnRNWGJVQXRxV2RPOEFFQXN3SWFJVzE5TQ0Kb3FtbldHd0RIQVJLN1E9PQ0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ0KFwgBAACzAQACAHwwejAUBgcqhkjOPQIBBgkrJAMDAggBAQsDYgAESvAS/s+YkP1EiszP+2BMPy/lhaToCXrEq3+ToIhj8j2Fr+JvXIRQIZedgYvaH3ygOJQJZwimr7I63JsM3Ii8ysUwn9ejTWcLyrJ5Sll+lKhd9E701zDjgR9TSIIPskcdIr8aojZvejv4fNTP+vbazAAg8QmJHjLpjD1oVOPww09lMcn34fbXk5lw3M6zaBer3BgHXi0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KTUlJRk5UQmZCZ2txaGtpRzl3MEJCUTB3VWpBeEJna3Foa2lHOXcwQkJRd3dKQVFRZ3FNRjNXZUswY1hXMmdzQwpKNE85ZUFJQ0NBQXdEQVlJS29aSWh2Y05BZ2tGQURBZEJnbGdoa2dCWlFNRUFTb0VFUEpMcCtCYlErRWlaUGhVCnNEUUFmN1FFZ2dUUVkwZzFabVloUlhaSnFOUU10STVnZmFSSXJMQUxHc1huNDFZUnJsS3lPcXBsV3pKQnhWaFIKVFBrTXNqWjB4aXMwTmFCaStVYjRaZmRsbi9ad0pWWDUxYUNJS3RSdUJ1bCtYQmRqRU0rTVpMZ29VMEZwK1o1cwpuMWpJR2JnaU5ZSUhLd3ZxU0toc3FQMTA0TndDcnBNbFgwckxFaEhaT1dWb3EvTk52TUFDRDlWblY0NGZzU1E2CldqNCtwQitpbHdadjhFS0Z2cXBTaDh1Zmw2RGpLbUx2ZzVCVW1xOURiNHFLS3dhOThpT0pnZDJ1b0VaOXd1NjAKR25qNndrVzhWUWJ2cnR6SVkvVElGUnhsV3pydkdwQ05HQ2pEWUk2d3lsUHRUb05OWkVqbWh1MWpHZFZpM3NBcAp4N1pVSWgyUnZBd3AranA4dnphM1Jhb29WRzE5MFJ4cUZ1K1o3N2JwZFc0ZWxYNUdLcnAvZExpc0VMSW1Wc3VvClBGd0pzdHN6UVlTbk1LNGZaOHZ3L0tTYTRjTGpDMy82TWxUaWRzRzVqdTdOajU3bjREdm1UeVJPYWZReDhTU1oKaUJVdGNiTnU1WGF2NnlyRThEWitQb3hucVJxK3l1Z0JNbThiWjM3Yk0vYnAzb2JEVm1uaExtVTBjNUJhYmhaWQpBT1ZmOW03T3ZEYmszRjJ0WW14R2h2QUdZKzA2R1c1VUticVdUWUhKeHhTVlJUZDQ3c3NaMFNTaXo5NldoVFUxCmJXbFc3a2Z1elBJdXpEUE5hNno2YmNWVDdkbVB1TDZmVHpkUWZuN0dLeUZhemplaWwvQTdWV1FTSm1kb3JoRmQKbXZUNitPMENnTG5ONFMwK2FnNXdHRW9XQTlKM3BnRUpTV25YcDVuMERXWXR4NXRZR1hJeVFOd0lmbXN5cU1mdgo5QU4waFQ4eDRvYUI0SW45a21DakxlWHgxbThkb2RyVjJBUUhtNGwwWE5ybTFONWYrOCtCZDdFUzRPUnc4RDgxCjJvbXhYVE4rbzRaTkdBVlZHcTQ0L1VKMkp5bktSeXEwbytCN1RmVU1rNU5INnhKdkh2TnhhUkhINnh3YVdmRFgKNDV5bllWaDBoZTZlQnVNTURHNVZHZnJGbFU1MytVaDY5SjZNM2dEdFhFcjFacHBIRG5PcW9LbStZUE42VUdMVwpEU0dxQ3lpN2JqTGlKNXZ3VmR2aWtlWG9DT3FKUmtndnZIODhObjNOSkcvTXJTWHRwSHdBMGc4anpCbWFiYXVXCi9Pcy9pOE05a3lHU1A1bjBUYUNlRm1GVE9yd3FQbnA5VUJQbFJnSEhzcHZSQTN4RVl1ajBCa280MzR5dG5LeU8KWlk2eUdkY3F4aE04RTJTaHJDVkVRWnRPNjJsTFZsZUJZVFNoTHFBY3hwQ0xzVzFGaUZyQ0MwZHo2Rmlic0hDMwpOWUphVkV0NVBaSk5haWl6YVJlN3FHM0RndzRQWGNTVFNhekFCQ0FTR2Z5VkJ0SzdKbk9sWENnUkFYZDlGOTVFCnFYSHI5cUtjdm44TWdRUzA2YzJ0SUxVSkwxay9GQmxEbW1LWmRCWlMvckFnYkd5TWZOaE0zQ0NncitIOWdpczAKUnFDL05XMmtycVoyMVFJMmV2NjM0OWtFeTBrR3Z5OUNPaE81emFINWJ6ZmNlbjRubXhRWjdpd3p0bzhMcGtWUApUT2ZRc3NJbzJjb0U3bDRGaDE4RCtlTDRkUTVJMUlrU3hrWFBMVU5xbEpnRldWLzRCVXhXckliQlhlL0phd2xhCjk3cHF3V0xZY0dwejdYT25LVkQwVDlRbVZmMFpuQmJ0U3gvTjJoc25YWEFMQURtaXhiT05md3dPeTNUang1NzYKN0VwRjhhL2dKemMvUlFwa2dZMURzUXhBVFAwaGtRTmdmdTdsZnVhVHkzMnBHU3hpWUhENzhZU0VLc04vMy9ZTQpkejRSTExjVHp1Ny9Xc0JweG15WXE2TWxjRmRCWXdxcXJJSkFLaGZvRWc3bjhHcnZDSUdGNlVNUER2SGZMUmhmCjkrTFRKcFpDVjViZ3lEcnBscW10K0d3clY0NE9IZTZPa1NyUWIzNlY1SEhjaEtaZ1FLd2NpdXhHSlRnOFgwM0EKaC9kS1V2Si9GSEhuRVZGNkw1Q3VNcWQyZVhDRTBXaUVpZnc2a3ZFTmp1YkZkMzNFSEhpbmlqYz0KLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KJEROUzosIElQIEFkZHJlc3M6MTkyLjE2OC4xMDAuMiwgVVJJOglsb2NhbGhvc3QCAAAAAAAAAAEAAAACAAAAAAAAABQAnulLb2wNA8dOWRFRqkRsbCRrE3S0BgEABrAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0NCk1JSUVzekNDQTV1Z0F3SUJBZ0lVUmFXWFpaN0d4bWVUYXhCWkRuSkNWVVRPU1Rnd0RRWUpLb1pJaHZjTkFRRUxCUUF3ZXpFTE1Ba0cNCkExVUVCaE1DV0ZneEVqQVFCZ05WQkFnTUNWTjBZWFJsVG1GdFpURVJNQThHQTFVRUJ3d0lRMmwwZVU1aGJXVXhGREFTQmdOVkJBb00NCkMwTnZiWEJoYm5sT1lXMWxNUnN3R1FZRFZRUUxEQkpEYjIxd1lXNTVVMlZqZEdsdmJrNWhiV1V4RWpBUUJnTlZCQU1NQ1d4dlkyRnMNCmFHOXpkREFlRncweU5qQTFNVGd4TVRNMk16bGFGdzB6TmpBMU1UVXhNVE0yTXpsYU1Ic3hDekFKQmdOVkJBWVRBbGhZTVJJd0VBWUQNClZRUUlEQWxUZEdGMFpVNWhiV1V4RVRBUEJnTlZCQWNNQ0VOcGRIbE9ZVzFsTVJRd0VnWURWUVFLREF0RGIyMXdZVzU1VG1GdFpURWINCk1Ca0dBMVVFQ3d3U1EyOXRjR0Z1ZVZObFkzUnBiMjVPWVcxbE1SSXdFQVlEVlFRRERBbHNiMk5oYkdodmMzUXdnZ0VpTUEwR0NTcUcNClNJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUNzeitiR3oyTkxlemk1Q0NqOFVsN0pMNHFtWTJrVkYwaVVDNnNncU1ydTh3TmwNCnUrNm11K1FxY2dVUnZ6QjhFSUJUWk5Rem5zQmlLcEl2eXlNZGhTTU53Q2lFN0ZnWVZXR0JDSlRNMXlXYU5aUVcyRVc3M2dlZkxGR2UNCkxuWWpYWUV2M2N0ZEdGMkw0UUU0eWpkUmcyMzNiTDV5azBmelE0T0ZZN1ArRHNmZ3dPSXZMRHpvTTZSRlVUREpUL2VQK1hBRGgzN1YNCnpjOVFIZGJZWlJSV011ekVyZ0grNU1zVXQ5TDhVZHdWQUF4bnNiam9WOXowalByY09aQmdNeDhpVUhERWtVSW1KdEd3RXNkcThiRWMNCmY2YzNCY0ZKdDZXMmo1eCtkeVA1T2ZlL0svWG93MGRidSt2bDVyMFpCcHR3SkxOUEpLaG9jZDdZa2JQaG04cnJRUlZyQWdNQkFBR2oNCmdnRXRNSUlCS1RBSkJnTlZIUk1FQWpBQU1BNEdBMVVkRHdFQi93UUVBd0lDOURBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkNCkt3WUJCUVVIQXdJd0V3WURWUjBSQkF3d0NvSUFod1RBcUdRQ2hnQXdIUVlEVlIwT0JCWUVGTDhMLytGajZ3eWNLOWdTNXJXNHR1MzMNCkVscktNSUc0QmdOVkhTTUVnYkF3Z2EyQUZMOEwvK0ZqNnd5Y0s5Z1M1clc0dHUzM0VscktvWCtrZlRCN01Rc3dDUVlEVlFRR0V3SlkNCldERVNNQkFHQTFVRUNBd0pVM1JoZEdWT1lXMWxNUkV3RHdZRFZRUUhEQWhEYVhSNVRtRnRaVEVVTUJJR0ExVUVDZ3dMUTI5dGNHRnUNCmVVNWhiV1V4R3pBWkJnTlZCQXNNRWtOdmJYQmhibmxUWldOMGFXOXVUbUZ0WlRFU01CQUdBMVVFQXd3SmJHOWpZV3hvYjNOMGdoUkYNCnBaZGxuc2JHWjVOckVGa09ja0pWUk01Sk9EQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFSOTM3TXFkU3pkcmYrVUhxM2d3WXZRTGQNCnJ5WHpnNFpCRk9Ec1Iwc1l2L0hRZXFjRm1kcC9CaFVOWGhyZUxBS21NRnA2MHEvQ0U5ZHY0WE1keHVLRjc4c2lDVDNJZ1hqWHRCQ2oNCm9tT2lLSU5nYUp6WjJEeHl0VkJ2VSt3YWd0SU16NTFWSFdyTnFPVjZJa2VHWHFtRXlvWHc1WWhmVXN6Y25tNXl4RWdzTFdiQk53SWkNCk9FeTlKMG4zdUlJUER5ZEpuNXFubzZzUC9ZV2xNM3N1U09XcXlvcTVuS1hTSG5EbjFQWlpERUVTK2s1OXhZTm5CV0NxMjdiR1l2ZUUNCisxSnJ4UVNxOW56V01uTVlTY0krSXRPSk1wKzF1TWNaUEJQMDk4TXRzSUhYM1BFQStQYWJ0TVhiVUF0cVdkTzhBRUFzd0lhSVcxOU0NCm9xbW5XR3dESEFSSzdRPT0NCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0NChcIAQAAswEAAgB8MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABDL7BcPo/X4UG8xEQYY3k9/JcFWsVfuEopeUpMzrtwRVWuXubyvak32KwkabO7+WhTgW8ZBW1h8Pgfp8mfSETAusCAEKIDgDUJTCnsL4NgNKB2NK7I7hlYsfVisx0eXV/XUAvHfMKInPGKox8gEyenQAIPQAj2A/K7BYoIyEA/4p1dpL18B2wy5+aLvm8CWFEWSyB14tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCk1JSUZOVEJmQmdrcWhraUc5dzBCQlEwd1VqQXhCZ2txaGtpRzl3MEJCUXd3SkFRUXdpWTVNMEZWYWYzbU1nbUwKUVhNalhnSUNDQUF3REFZSUtvWklodmNOQWdrRkFEQWRCZ2xnaGtnQlpRTUVBU29FRUVPUmZSTkVqSkN4QWhRQQpwQ2RJclY4RWdnVFFRbk03dTdaNjVqWXdZRVVYMjdUdGI2YzdNdHFmemJCcFdRTkdWTGtYOWE1andXL3VBT2hMCmlWSmVjMlJzY0UvcEV1eDBqelBkeWtFVGMvaENjeVBjOC9aM2VjNitTSHZ2S1c1ZzlXMFhWa1piL1RTdWJCSU0KdG8zcHRnSndoRTBZdHUwL2lLMEtLOEpmc3UzSDNMYXBWdTBQZ2tEcmhQc2w5WkdEd0ZJeW8ydG04Q1ZXOS9QMwpwMWlxU000QWtzWHdPVGhteWFsNkUyT0pmK0tTNFdwMmxFYlRKNXczQUZoc3I0dEh4TVFXWENOelhtUTlLaEM2CkU4RktkTExWM3FzSXNjSXVEMTF6YXhZbDBNdnRka015THZXblBPOWdjV1lkM1RsOUN6UFZaSyswODM3SFllRGcKMmdXZlRmbU5aY0dKNGJLNkdpVHZLa2dCbXpjdWx5UElaai9jYURFU2lwdk0xamdncWxhTzlIVzZQajF6a0M1MQpxc2NyUDdOak9vMm1KZysyV0JRY0FnWm5ML3o4NEt4Ni9vVzE0b2FTZVVRVU5PMEowcTk4L0EvaVF5dmVGZVZ6Cko5T3NQWTJITVkvTjN4WVRQV1RtNGVlSVZqaDJPaXNZeWc5cnJUY1R6WWJXVEZhNFdGWThjQVhjYUZoU056VksKQS9FRWE5L2xoTzBhMGcxdXpZQXcxeEVYWWNPdnhCLzMwbzZCZlBRQnEwaTZrendDaTBsOUxjM0hQeGVISnhEeAp1QkJNbzFBa0JoeGRVSGsweGJwWFp2QTlQazlzRG02QUFFOElYM3daUHhxSlRIOXM2TWNtQUhHd0lObngvczJGClc4WC96aEVneTdhb21Nd0hVWVV2T3R6V3VKMTJ6NlkyRjcxcjE2S0NUZFFwY2Z1VnQ4TTlQM053VXkxakppckgKVlRBUFVCbkpJK2RSNlk5c0NUTzY0N1FSOFN0d3oxSm1kVXo3QzNRQ3BFYkZFTS9MZXFmZERnOU1KVnFFQjlQeQozT2U1MGVJMHI4aXo3TWFZQit4M0k5NU5OMDd0Zk1MeWplU3ZJc01panEzblZaZm1QaEh1ekFFRlNXSCtVNzRICmM0dmJUSmFBSzdSM2x2UnppR3ZCVWVhdFhROEowRWFXZnJmbWZqcXZqQ1JmVWN1Qlc4SGh6KzZxWHZESEY2UE8KV01DaE9pdkxOWHJLZUpSbFJiSGdZZ1NEQ2FCWUVPNXZicFV2TFp3VjMyTFRyRzFsSU8xazhPN3pocmVRMkgwSApYOThKL3ltUldLV1IrRkd1Rm1TUHVqeURxN3c2QlJtYTFJTmJrQWZWa1NaTHlWSERYZGpwTHlJQVZ6OHg1VkYrCk5Vc3hZczdaRGZBbUpDNldpY1pHMkJjMUx0S1VabDc5T2h6czZscnBZMTVSZk1kUGppcEVmUWdXdm5YeUtMTEYKY3gvSlIvSE5nOW1QNXAxR0lUNFlaQkNKSlJrTC9UL2hiSUZRMVVCRW5TY08xSHkvVEtWdE5JTURWOUNZenNKVwpSZE03NXpycHhZRUIwWjZoR0s5REMyVzgwM2svMnA4a00zQnVaMldLSXpNblZqSXBNZ2d4aEluU2c0RU8zeDJRCjFkOWVuRjVwZ29VSzRzZEFtUkZCN0taZXptVUpSdHNDbFdxQzdsUUVMZ2F2SWpqcnU3QTcvdkphZ0s0Y1dVUkYKNm5ZN1QrTUtTdUlmazZEQ3BzeGVQLzUwVHBZNVhkdEdoRTdFSVZWMkowS2dROTcrVzk4MGxTMmhNSDhqOCtFbAp1bHFRdGVJME1ISVNNRDE3K0lkU1p0RTNVMmltcnM2ZkdhcDhwWkpob0dMZHRFNUpHR2xVRitoNzhENTVkV2tzCjIyRVBMQ3JkQ1g3cFo1VjdSdGR6bDRJR0gycWJwWWpYZHFMQ3ZWYnZ1b0FJQkZycFVTR25wTFlZTlpuVFpqYTUKN3FQWmVPek02REdhdm42S3ZXcjFQanJZWmk0K3Bta2V6UHZNVTR6WFRpSWxteGJVV1FwYjJZa3NSL1VMVkEwSgpvN0VMODhYL0hPeitFTmhMMFMxV2tXdUY1NTRzS3drVlFybE1yVjJSRkt3TXpwcWtWWC9rRG11bStUYm1yTGxvCitrVWdqZldiMThFN0NIQjF5K3VFUWJGUWdYUHFHNFBlREpTK2s0UU9rUEZQem1PNXVrWmJIZDA9Ci0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCiRETlM6LCBJUCBBZGRyZXNzOjE5Mi4xNjguMTAwLjIsIFVSSTo=", + "UserData": "AgAAAAAAAAAAAAAAAAAAAAEAAAAFAGFkbWludAAAAAEAAAEBAAEFAAAnEAAAACC1ldkfa/dz+ewW1rrzvHZzqvM4BpTYPQLXCD7q2exulgAAAEAHqXs8/d3Dsvay0aaN2CrKuh9eiCaMWwzii4jzp9D/9Ln+JkRKj6sfSE7DmKps+/uYlKGuq4K/uIJBpXrCr8ZhAA==", + "CertificateAssignments": { + "TLS": 1, + "WebServer": 2 + }, + "AccessProtectionData": "AQAAAAAAAAAAAAAAAAAAAAABAABQAAAAAAEBAAAAAgDQBwAAIABF2BdlI5lkmcM+yZaYLMLuJV/KfJKOYr48rFV/DimkgCAAs+81T5w5nJdXVb6e/rCC/9hxRqsreOpMfw3HtTGSQl5QAAAAAAEBAAAAAgDQBwAAIABF2BdlI5lkmcM+yZaYLMLuJV/KfJKOYr48rFV/DimkgCAA8qA2OG4wFGn5+PGY9h595MzCU0Zwyouz7RR2o3PPcL9QAAAAAAEBAAAAAgDQBwAAIABF2BdlI5lkmcM+yZaYLMLuJV/KfJKOYr48rFV/DimkgCAAs+81T5w5nJdXVb6e/rCC/9hxRqsreOpMfw3HtTGSQl5QAAAAAAEBAAAAAgDQBwAAIABF2BdlI5lkmcM+yZaYLMLuJV/KfJKOYr48rFV/DimkgCAAs+81T5w5nJdXVb6e/rCC/9hxRqsreOpMfw3HtTGSQl4gAAAARdgXZSOZZJnDPsmWmCzC7iVfynySjmK+PKxVfw4ppIA=" +} \ No newline at end of file diff --git a/src/_test/app/hwc/plc_line.hwl.yml b/src/_test/app/hwc/plc_line.hwl.yml new file mode 100644 index 000000000..6cc9111e8 --- /dev/null +++ b/src/_test/app/hwc/plc_line.hwl.yml @@ -0,0 +1,26 @@ +Devices: + - Name: plc_line + Modules: + - Apply: '6ES7516-3AP03-0AB0_v4_1' + Arguments: + NAME: plc_line + IP_ADDRESS_X1: '192.168.100.2/24' + PROFINET_DEVICE_NAME_X1: 'plc_line_x1' + IP_ADDRESS_X2: '192.168.101.1/24' + PROFINET_DEVICE_NAME_X2: 'plc_line_x2' + ADMIN_NAME: 'admin' + CYCLE_COMMUNICATION_LOAD: 50 + TimeSynchronizationNtpV2: 'SetServersInProject' + TimeSynchronizationServer1: '192.168.100.249' + TimeSynchronizationUpdateInterval: 60 + - Apply: rexroth_ctrlx_drive_xcs + Arguments: + NAME: rexroth_ctrlx_drive + IP_ADDRESS_X1: '192.168.100.22/24' + PROFINET_DEVICE_NAME_X1: rexroth_ctrlx_drive +IoSystems: +- Name: profinet_plc_line + ControllerInterfaces: + - Ref: plc_line/plc_line/PROFINET_interface_1 + DeviceInterfaces: + - Ref: rexroth_ctrlx_drive/rexroth_ctrlx_drive/XCS_interface_PF30 diff --git a/src/_test/app/ix-blazor/showcase.blazor/App.razor b/src/_test/app/ix-blazor/showcase.blazor/App.razor new file mode 100644 index 000000000..dd2d3fa59 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/App.razor @@ -0,0 +1,15 @@ +@using AxOpen.Security.Service; + + + + + + + + Not found + +

Sorry, there's nothing at this address.

+
+
+
+
diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/Error.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/Error.razor new file mode 100644 index 000000000..57ca694a4 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/Error.razor @@ -0,0 +1,37 @@ +@page "/Error" +@using System.Diagnostics +@using Microsoft.AspNetCore.WebUtilities + +

Error.

+

An error occurred while processing your request.

+ +@if (ShowRequestId) +{ +

+ Request ID: @RequestId +

+} + +

Development Mode

+

+ Swapping to Development environment will display more 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. +

+ +@code { + [CascadingParameter] + private HttpContext? HttpContext { get; set; } + + private string? RequestId { get; set; } + private bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + protected override void OnInitialized() + { + RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier; + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/Index.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/Index.razor new file mode 100644 index 000000000..19c172f68 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/Index.razor @@ -0,0 +1,54 @@ +@page "/" + +AXOpen Showcase + +

AXOpen Unified Showcase

+ +

+ This application demonstrates all AXOpen libraries running together in a single PLC program and a single Blazor host. + Use the navigation menu to explore each library section. +

+ + diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/Security.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/Security.razor new file mode 100644 index 000000000..62f0b53a7 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/Security.razor @@ -0,0 +1,5 @@ +@page "/Security" + +

Security

+ + diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/VisualComposer.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/VisualComposer.razor new file mode 100644 index 000000000..92169aaff --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/VisualComposer.razor @@ -0,0 +1,29 @@ +@page "/VisualComposer" +@using AXOpen.VisualComposer.Components +@using Microsoft.AspNetCore.Components.Authorization + +Visual Composer + +
+ +
+

AXOpen.VisualComposer

+

Visual Composer

+

+ The Visual Composer provides a drag-and-drop canvas for building custom HMI views + from controller objects. Create, save, and manage multiple views with background images and watch tables. +

+
+ +
+ +
+ +
+ +
+
diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/_Host.cshtml b/src/_test/app/ix-blazor/showcase.blazor/Pages/_Host.cshtml new file mode 100644 index 000000000..85abcb8aa --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/_Host.cshtml @@ -0,0 +1,107 @@ +@page "/" +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Mvc.TagHelpers +@namespace showcase.blazor.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + An error has occurred. This application may no longer respond until reloaded. + + + + +
+ + + + + + + + + + diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/abstractions/Documentation/AbstractionsShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/abstractions/Documentation/AbstractionsShowcase.razor new file mode 100644 index 000000000..c6f39c4f0 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/abstractions/Documentation/AbstractionsShowcase.razor @@ -0,0 +1,208 @@ +@page "/abstractions/Documentation/AbstractionsShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Abstractions - Documentation + +
+ +
+

AXOpen.Abstractions

+

Abstractions Showcase

+

+ Core interfaces and enums that define the AXOpen contract layer: IAxoContext, IAxoObject, + IAxoMessenger, IAxoLogger, IAxoRtc, IAxoRtm, eAxoMessageCategory, and eLogLevel. + All AXOpen libraries build upon these abstractions. +

+
+
+ +
+
+

Interface Reference

+

Code examples showing how abstraction types are used in practice.

+
+ + +
+ + +
+ +
+ +
+
+

Abstraction declarations (ST)

+

+ + — <AbstractionsDeclarations> region +

+ @if (_declarationSnippet != null && !_declarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

IAxoObject usage (ST)

+

+ + — <IAxoObjectUsage> region +

+ @if (_objectUsageSnippet != null && !_objectUsageSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Message category enum (ST)

+

+ + — <MessageCategoryUsage> region +

+ @if (_messageCategorySnippet != null && !_messageCategorySnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Log level enum (ST)

+

+ + — <LogLevelUsage> region +

+ @if (_logLevelSnippet != null && !_logLevelSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _declarationSnippet; + private CodeSnippet? _objectUsageSnippet; + private CodeSnippet? _messageCategorySnippet; + private CodeSnippet? _logLevelSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/abstractions/AbstractionsShowcase.st"; + private readonly string _libApaxYmlPath = "src/abstractions/ctrl/apax.yml"; + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AbstractionsDeclarations"); + var objectUsageTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "IAxoObjectUsage"); + var messageCategoryTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "MessageCategoryUsage"); + var logLevelTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "LogLevelUsage"); + await Task.WhenAll(declarationTask, objectUsageTask, messageCategoryTask, logLevelTask); + _declarationSnippet = await declarationTask; + _objectUsageSnippet = await objectUsageTask; + _messageCategorySnippet = await messageCategoryTask; + _logLevelSnippet = await logLevelTask; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.abstractions_documentation, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-abb-robotics/Documentation/AbbRobotics.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-abb-robotics/Documentation/AbbRobotics.razor new file mode 100644 index 000000000..9640a3d3b --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-abb-robotics/Documentation/AbbRobotics.razor @@ -0,0 +1,523 @@ +@page "/components-abb-robotics/Documentation/AbbRobotics" +@using AXOpen.Components.Abb.Robotics +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +ABB Robotics - Documentation + +
+ +
+

AXOpen.Components.Abb.Robotics

+

ABB Robotics Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating ABB robots in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_c1DeclarationSnippet != null && !_c1DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_c1InitSnippet != null && !_c1InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <AbbIrc5Device> region +

+ @if (_hwcIrc5DeviceSnippet != null && !_hwcIrc5DeviceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ + — <AbbIrc5Template> region +

+ @if (_hwcIrc5TemplateSnippet != null && !_hwcIrc5TemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <AbbIrc5IoSystem> region +

+ @if (_hwcIrc5IoSystemSnippet != null && !_hwcIrc5IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_c1StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c1StepLogicBlocks) + { + _c1StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_c2DeclarationSnippet != null && !_c2DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_c2InitSnippet != null && !_c2InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <AbbOmnicoreDevice> region +

+ @if (_hwcOmnicoreDeviceSnippet != null && !_hwcOmnicoreDeviceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ + — <AbbOmnicoreTemplate> region +

+ @if (_hwcOmnicoreTemplateSnippet != null && !_hwcOmnicoreTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <AbbOmnicoreIoSystem> region +

+ @if (_hwcOmnicoreIoSystemSnippet != null && !_hwcOmnicoreIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_c2StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c2StepLogicBlocks) + { + _c2StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // Component 1 snippets + private CodeSnippet? _c1DeclarationSnippet; + private CodeSnippet? _c1InitSnippet; + private List _c1StepLogicBlocks = new(); + // Component 2 snippets + private CodeSnippet? _c2DeclarationSnippet; + private CodeSnippet? _c2InitSnippet; + private List _c2StepLogicBlocks = new(); + // IRC5 HWC snippets + private CodeSnippet? _hwcIrc5DeviceSnippet; + private CodeSnippet? _hwcIrc5TemplateSnippet; + private CodeSnippet? _hwcIrc5IoSystemSnippet; + // OmniCore HWC snippets + private CodeSnippet? _hwcOmnicoreDeviceSnippet; + private CodeSnippet? _hwcOmnicoreTemplateSnippet; + private CodeSnippet? _hwcOmnicoreIoSystemSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.abb.robotics/Documentation/AbbRobotics.st"; + private readonly string _plcComponent1Path = "src/showcase/app/src/components.abb.robotics/Documentation/AxoIrc5_v_1_x_x_Showcase.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.abb.robotics/Documentation/AxoOmnicore_v_1_x_x_Showcase.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcIrc5TemplatePath = "src/showcase/app/hwc/library_templates/abb_robotics_irc5/abb_irc5_robot_in64b_out64b.hwl.yml"; + private readonly string _hwcOmnicoreTemplatePath = "src/showcase/app/hwc/library_templates/abb_robotics_omnicore/abb_omnicore_robot_in64b_out64b.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.abb.robotics/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.abb.robotics/docs/AxoIrc5_v_1_x_x.md"; + private readonly string _libComponent2DocPath = "src/components.abb.robotics/docs/AxoOmnicore_v_1_x_x.md"; + private readonly string _libTroublesPath = "src/components.abb.robotics/docs/TROUBLES.md"; + private readonly string _libAxoIrc5StPath = "src/components.abb.robotics/ctrl/src/AxoIrc5_v_1_x_x.st"; + private readonly string _libApaxYmlPath = "src/components.abb.robotics/ctrl/apax.yml"; + private readonly string _libHwlYmlPath = "src/components.abb.robotics/ctrl/assets/abb_robotics_irc5/abb_irc5_robot_in64b_out64b.hwl.yml"; + private readonly string _libGsdmlPath = "src/components.abb.robotics/ctrl/assets/abb_robotics_irc5/gsdml-v2.33-abb-robotics-robot-device-20180814.xml"; + private Dictionary _c1StepsBySymbol = new(); + private Dictionary _c2StepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + // Component 1 tasks + var c1DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "ComponentDeclaration"); + var c1InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "Initialization"); + var c1StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent1Path); + // Component 2 tasks + var c2DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "ComponentDeclaration"); + var c2InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "Initialization"); + var c2StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent2Path); + // IRC5 HWC tasks + var hwcIrc5DeviceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "AbbIrc5Device"); + var hwcIrc5TemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcIrc5TemplatePath, "AbbIrc5Template"); + var hwcIrc5IoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "AbbIrc5IoSystem"); + // OmniCore HWC tasks + var hwcOmnicoreDeviceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "AbbOmnicoreDevice"); + var hwcOmnicoreTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcOmnicoreTemplatePath, "AbbOmnicoreTemplate"); + var hwcOmnicoreIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "AbbOmnicoreIoSystem"); + await Task.WhenAll(c1DeclTask, c1InitTask, c1StepsTask, + c2DeclTask, c2InitTask, c2StepsTask, + hwcIrc5DeviceTask, hwcIrc5TemplateTask, hwcIrc5IoSystemTask, + hwcOmnicoreDeviceTask, hwcOmnicoreTemplateTask, hwcOmnicoreIoSystemTask); + _c1DeclarationSnippet = await c1DeclTask; + _c1InitSnippet = await c1InitTask; + _c1StepLogicBlocks = await c1StepsTask; + _c2DeclarationSnippet = await c2DeclTask; + _c2InitSnippet = await c2InitTask; + _c2StepLogicBlocks = await c2StepsTask; + _hwcIrc5DeviceSnippet = await hwcIrc5DeviceTask; + _hwcIrc5TemplateSnippet = await hwcIrc5TemplateTask; + _hwcIrc5IoSystemSnippet = await hwcIrc5IoSystemTask; + _hwcOmnicoreDeviceSnippet = await hwcOmnicoreDeviceTask; + _hwcOmnicoreTemplateSnippet = await hwcOmnicoreTemplateTask; + _hwcOmnicoreIoSystemSnippet = await hwcOmnicoreIoSystemTask; + _c1StepsBySymbol = Entry.Plc.Ctx.abb_robotics_documentation.axoIrc5_v_1_x_x.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c2StepsBySymbol = Entry.Plc.Ctx.abb_robotics_documentation.axoOmnicore_v_1_x_x.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq1 = Entry.Plc.Ctx.abb_robotics_documentation.axoIrc5_v_1_x_x.Sequencer; + var steps1 = Entry.Plc.Ctx.abb_robotics_documentation.axoIrc5_v_1_x_x.Steps; + var seq2 = Entry.Plc.Ctx.abb_robotics_documentation.axoOmnicore_v_1_x_x.Sequencer; + var steps2 = Entry.Plc.Ctx.abb_robotics_documentation.axoOmnicore_v_1_x_x.Steps; + this.StartPolling(seq1, 250); + foreach (var step in steps1) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + this.StartPolling(seq2, 250); + foreach (var step in steps2) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-abstractions/Documentation/ComponentsAbstractionsShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-abstractions/Documentation/ComponentsAbstractionsShowcase.razor new file mode 100644 index 000000000..4cfe70032 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-abstractions/Documentation/ComponentsAbstractionsShowcase.razor @@ -0,0 +1,214 @@ +@page "/components-abstractions/Documentation/ComponentsAbstractionsShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Components Abstractions - Documentation + +
+ +
+

AXOpen.Components.Abstractions

+

Components Abstractions Showcase

+

+ Standard interface contracts for all AXOpen components: IAxoDrive, IAxoRobotics, IAxoCodeReader, + IAxoVisionSensor, IAxo_Power, and shared data types (coordinates, movement params, status). + Vendor implementations must conform to these interfaces. +

+
+
+ +
+
+

Data Types Reference

+

Shared data structures and enumerations used across all component implementations.

+
+ + +
+ + +
+ +
+ +
+
+

Component abstractions declarations (ST)

+

+ + — <ComponentAbstractionsDeclarations> region +

+ @if (_declarationSnippet != null && !_declarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Robotics data types (ST)

+

+ + — <RoboticsDataTypes> region +

+ @if (_roboticsSnippet != null && !_roboticsSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Drive enumerations (ST)

+

+ + — <DriveEnums> region +

+ @if (_driveEnumsSnippet != null && !_driveEnumsSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _declarationSnippet; + private CodeSnippet? _roboticsSnippet; + private CodeSnippet? _driveEnumsSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.abstractions/ComponentsAbstractionsShowcase.st"; + private readonly string _libApaxYmlPath = "src/components.abstractions/ctrl/apax.yml"; + private readonly string _libReadmePath = "src/components.abstractions/docs/README.md"; + private readonly string _libTroublesPath = "src/components.abstractions/docs/TROUBLES.md"; + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "ComponentAbstractionsDeclarations"); + var roboticsTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "RoboticsDataTypes"); + var driveEnumsTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "DriveEnums"); + await Task.WhenAll(declarationTask, roboticsTask, driveEnumsTask); + _declarationSnippet = await declarationTask; + _roboticsSnippet = await roboticsTask; + _driveEnumsSnippet = await driveEnumsTask; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.components_abstractions_documentation, 250); + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-balluff-identification/Documentation/BalluffIdentification.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-balluff-identification/Documentation/BalluffIdentification.razor new file mode 100644 index 000000000..d3e67dcd2 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-balluff-identification/Documentation/BalluffIdentification.razor @@ -0,0 +1,401 @@ +@page "/components-balluff-identification/Documentation/BalluffIdentification" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Balluff Identification - Documentation + +
+ +
+

AXOpen.Components.Balluff.Identification

+

Balluff Identification Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Balluff identification readers in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp1DeclarationSnippet != null && !_comp1DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp1InitSnippet != null && !_comp1InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device template (hwl)

+

+ + — <BalluffBisTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <BalluffBisIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp2DeclarationSnippet != null && !_comp2DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp2InitSnippet != null && !_comp2InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device template (hwl)

+

+ + — <BalluffBisTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <BalluffBisIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // Component 1 snippets + private CodeSnippet? _comp1DeclarationSnippet; + private CodeSnippet? _comp1InitSnippet; + // Component 2 snippets + private CodeSnippet? _comp2DeclarationSnippet; + private CodeSnippet? _comp2InitSnippet; + // Hardware snippets + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + // Step logic + private List _stepLogicBlocks = new(); + private Dictionary _stepsBySymbol = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + // PLC source paths + private readonly string _plcContextPath = "src/showcase/app/src/components.balluff.identification/Documentation/BalluffIdentification.st"; + private readonly string _plcComponent1Path = "src/showcase/app/src/components.balluff.identification/Documentation/Axo_BIS_M_4XX_045.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.balluff.identification/Documentation/Axo_BIS_M_4XX_045_ManualControl.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/balluff_identification_BIS_M_4XX_045/BNIPNT507005Z040.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.balluff.identification/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.balluff.identification/docs/Axo_BIS_M_4XX_045.md"; + private readonly string _libComponent2DocPath = "src/components.balluff.identification/docs/Axo_BIS_M_4XX_045.md"; + private readonly string _libTroublesPath = "src/components.balluff.identification/docs/TROUBLES.md"; + protected override async Task OnInitializedAsync() + { + try + { + var comp1DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "ComponentDeclaration"); + var comp1InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "Initialization"); + var comp2DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "ComponentDeclaration"); + var comp2InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "Initialization"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent1Path); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "BalluffBisTemplate"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "BalluffBisIoSystem"); + await Task.WhenAll(comp1DeclTask, comp1InitTask, comp2DeclTask, comp2InitTask, + stepLogicTask, hwcTemplateTask, hwcIoSystemTask); + _comp1DeclarationSnippet = await comp1DeclTask; + _comp1InitSnippet = await comp1InitTask; + _comp2DeclarationSnippet = await comp2DeclTask; + _comp2InitSnippet = await comp2InitTask; + _stepLogicBlocks = await stepLogicTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _stepsBySymbol = Entry.Plc.Ctx.balluff_identification_documentation.axo_BIS_M_4XX_045.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.balluff_identification_documentation.axo_BIS_M_4XX_045.Sequencer; + var steps = Entry.Plc.Ctx.balluff_identification_documentation.axo_BIS_M_4XX_045.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-cognex-vision/Documentation/CognexVision.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-cognex-vision/Documentation/CognexVision.razor new file mode 100644 index 000000000..41a73fdf8 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-cognex-vision/Documentation/CognexVision.razor @@ -0,0 +1,1070 @@ +@page "/components-cognex-vision/Documentation/CognexVision" +@using AXOpen.Components.Cognex.Vision +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Cognex Vision - Documentation + +
+ +
+

AXOpen.Components.Cognex.Vision

+

Cognex Vision Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Cognex vision systems in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp1DeclarationSnippet != null && !_comp1DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp1InitSnippet != null && !_comp1InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

+ + — <CognexInsight7600Device> region +

+ @if (_hwc1DeviceInstanceSnippet != null && !_hwc1DeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexInsight7600Template> region +

+ @if (_hwc1DeviceTemplateSnippet != null && !_hwc1DeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexInsight7600IoSystem> region +

+ @if (_hwc1IoSystemSnippet != null && !_hwc1IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_c1StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c1StepLogicBlocks) + { + _c1StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp2DeclarationSnippet != null && !_comp2DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp2InitSnippet != null && !_comp2InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

+ + — <CognexDataman280Device> region +

+ @if (_hwc2DeviceInstanceSnippet != null && !_hwc2DeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexDataman280Template> region +

+ @if (_hwc2DeviceTemplateSnippet != null && !_hwc2DeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexDataman280IoSystem> region +

+ @if (_hwc2IoSystemSnippet != null && !_hwc2IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_c2StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c2StepLogicBlocks) + { + _c2StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp3DeclarationSnippet != null && !_comp3DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp3InitSnippet != null && !_comp3InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

+ + — <CognexDataman380Device> region +

+ @if (_hwc3DeviceInstanceSnippet != null && !_hwc3DeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexDataman380Template> region +

+ @if (_hwc3DeviceTemplateSnippet != null && !_hwc3DeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexDataman380IoSystem> region +

+ @if (_hwc3IoSystemSnippet != null && !_hwc3IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_c3StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c3StepLogicBlocks) + { + _c3StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp4DeclarationSnippet != null && !_comp4DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp4InitSnippet != null && !_comp4InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

+ + — <CognexInsight2800Device> region +

+ @if (_hwc4DeviceInstanceSnippet != null && !_hwc4DeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexInsight2800Template> region +

+ @if (_hwc4DeviceTemplateSnippet != null && !_hwc4DeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexInsight2800IoSystem> region +

+ @if (_hwc4IoSystemSnippet != null && !_hwc4IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_c4StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c4StepLogicBlocks) + { + _c4StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp5DeclarationSnippet != null && !_comp5DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp5InitSnippet != null && !_comp5InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

+ + — <CognexVisionProDevice> region +

+ @if (_hwc5DeviceInstanceSnippet != null && !_hwc5DeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexVisionProTemplate> region +

+ @if (_hwc5DeviceTemplateSnippet != null && !_hwc5DeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <CognexVisionProIoSystem> region +

+ @if (_hwc5IoSystemSnippet != null && !_hwc5IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_c5StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c5StepLogicBlocks) + { + _c5StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // Component 1 snippets + private CodeSnippet? _comp1DeclarationSnippet; + private CodeSnippet? _comp1InitSnippet; + private List _c1StepLogicBlocks = new(); + // Component 2 snippets + private CodeSnippet? _comp2DeclarationSnippet; + private CodeSnippet? _comp2InitSnippet; + private List _c2StepLogicBlocks = new(); + // Component 3 snippets + private CodeSnippet? _comp3DeclarationSnippet; + private CodeSnippet? _comp3InitSnippet; + private List _c3StepLogicBlocks = new(); + // Component 4 snippets + private CodeSnippet? _comp4DeclarationSnippet; + private CodeSnippet? _comp4InitSnippet; + private List _c4StepLogicBlocks = new(); + // Component 5 snippets + private CodeSnippet? _comp5DeclarationSnippet; + private CodeSnippet? _comp5InitSnippet; + private List _c5StepLogicBlocks = new(); + // Hardware snippets — per component + private CodeSnippet? _hwc1DeviceInstanceSnippet; + private CodeSnippet? _hwc1DeviceTemplateSnippet; + private CodeSnippet? _hwc1IoSystemSnippet; + private CodeSnippet? _hwc2DeviceInstanceSnippet; + private CodeSnippet? _hwc2DeviceTemplateSnippet; + private CodeSnippet? _hwc2IoSystemSnippet; + private CodeSnippet? _hwc3DeviceInstanceSnippet; + private CodeSnippet? _hwc3DeviceTemplateSnippet; + private CodeSnippet? _hwc3IoSystemSnippet; + private CodeSnippet? _hwc4DeviceInstanceSnippet; + private CodeSnippet? _hwc4DeviceTemplateSnippet; + private CodeSnippet? _hwc4IoSystemSnippet; + private CodeSnippet? _hwc5DeviceInstanceSnippet; + private CodeSnippet? _hwc5DeviceTemplateSnippet; + private CodeSnippet? _hwc5IoSystemSnippet; + // Step logic + // private List _stepLogicBlocks = new(); + // private Dictionary _stepsBySymbol = new(); + private Dictionary _c1StepsBySymbol = new(); + private Dictionary _c2StepsBySymbol = new(); + private Dictionary _c3StepsBySymbol = new(); + private Dictionary _c4StepsBySymbol = new(); + private Dictionary _c5StepsBySymbol = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + // PLC source paths + private readonly string _plcContextPath = "src/showcase/app/src/components.cognex.vision/Documentation/CognexVision.st"; + private readonly string _plcComponent1Path = "src/showcase/app/src/components.cognex.vision/Documentation/AxoInsight_v_6_0_0.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.cognex.vision/Documentation/AxoDataman.st"; + private readonly string _plcComponent3Path = "src/showcase/app/src/components.cognex.vision/Documentation/AxoDataman_Secondary.st"; + private readonly string _plcComponent4Path = "src/showcase/app/src/components.cognex.vision/Documentation/AxoInsight_v_24_0_0.st"; + private readonly string _plcComponent5Path = "src/showcase/app/src/components.cognex.vision/Documentation/AxoVisionPro.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDevice1TemplatePath = "src/showcase/app/hwc/library_templates/Cognex_Vision_Insight_V_6_0_0/Cognex_Vision_Insight_V_6_0_0.hwl.yml"; + private readonly string _hwcDevice2TemplatePath = "src/showcase/app/hwc/library_templates/cognex_vision_dataman280/Cognex_Dataman280.hwl.yml"; + private readonly string _hwcDevice3TemplatePath = "src/showcase/app/hwc/library_templates/cognex_vision_dataman380/Cognex_Dataman380.hwl.yml"; + private readonly string _hwcDevice4TemplatePath = "src/showcase/app/hwc/library_templates/cognex_vision_insight_2800/Cognex_Insight2800.hwl.yml"; + private readonly string _hwcDevice5TemplatePath = "src/showcase/app/hwc/library_templates/cognex_vision_pro/cognex_vision_pro.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.cognex.vision/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.cognex.vision/docs/AxoInsight_v_6_0_0_0.md"; + private readonly string _libComponent2DocPath = "src/components.cognex.vision/docs/AxoDataman.md"; + private readonly string _libComponent3DocPath = "src/components.cognex.vision/docs/AxoInsight_v_24_0_0.md"; + private readonly string _libComponent4DocPath = "src/components.cognex.vision/docs/AxoVisionPro.md"; + private readonly string _libTroublesPath = "src/components.cognex.vision/docs/TROUBLES.md"; + // PLC library source paths + private readonly string _libAxoInsightV6StPath = "src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/AxoInsight.st"; + private readonly string _libAxoInsightV24StPath = "src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/AxoInsight.st"; + private readonly string _libAxoDatamanStPath = "src/components.cognex.vision/ctrl/src/AxoDataman/v_6_0_0/AxoDataman.st"; + private readonly string _libAxoVisionProStPath = "src/components.cognex.vision/ctrl/src/AxoVisionPro/AxoVisionPro.st"; + private readonly string _libApaxYmlPath = "src/components.cognex.vision/ctrl/apax.yml"; + protected override async Task OnInitializedAsync() + { + try + { + var comp1DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "ComponentDeclaration"); + var comp1InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "Initialization"); + var comp2DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "ComponentDeclaration"); + var comp2InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "Initialization"); + var comp3DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent3Path, "ComponentDeclaration"); + var comp3InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent3Path, "Initialization"); + var comp4DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent4Path, "ComponentDeclaration"); + var comp4InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent4Path, "Initialization"); + var comp5DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent5Path, "ComponentDeclaration"); + var comp5InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent5Path, "Initialization"); + var c1StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent1Path); + var c2StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent2Path); + var c3StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent3Path); + var c4StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent4Path); + var c5StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent5Path); + // var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent1Path); + // Hardware snippets — per component + var hwc1InstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexInsight7600Device"); + var hwc1TemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDevice1TemplatePath, "CognexInsight7600Template"); + var hwc1IoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexInsight7600IoSystem"); + var hwc2InstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexDataman280Device"); + var hwc2TemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDevice2TemplatePath, "CognexDataman280Template"); + var hwc2IoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexDataman280IoSystem"); + var hwc3InstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexDataman380Device"); + var hwc3TemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDevice3TemplatePath, "CognexDataman380Template"); + var hwc3IoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexDataman380IoSystem"); + var hwc4InstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexInsight2800Device"); + var hwc4TemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDevice4TemplatePath, "CognexInsight2800Template"); + var hwc4IoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexInsight2800IoSystem"); + var hwc5InstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexVisionProDevice"); + var hwc5TemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDevice5TemplatePath, "CognexVisionProTemplate"); + var hwc5IoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "CognexVisionProIoSystem"); + await Task.WhenAll(comp1DeclTask, comp1InitTask, comp2DeclTask, comp2InitTask, + comp3DeclTask, comp3InitTask, comp4DeclTask, comp4InitTask, + comp5DeclTask, comp5InitTask, c1StepsTask, c2StepsTask, c3StepsTask, c4StepsTask, c5StepsTask, //stepLogicTask, + hwc1InstanceTask, hwc1TemplateTask, hwc1IoSystemTask, + hwc2InstanceTask, hwc2TemplateTask, hwc2IoSystemTask, + hwc3InstanceTask, hwc3TemplateTask, hwc3IoSystemTask, + hwc4InstanceTask, hwc4TemplateTask, hwc4IoSystemTask, + hwc5InstanceTask, hwc5TemplateTask, hwc5IoSystemTask); + _comp1DeclarationSnippet = await comp1DeclTask; + _comp1InitSnippet = await comp1InitTask; + _comp2DeclarationSnippet = await comp2DeclTask; + _comp2InitSnippet = await comp2InitTask; + _comp3DeclarationSnippet = await comp3DeclTask; + _comp3InitSnippet = await comp3InitTask; + _comp4DeclarationSnippet = await comp4DeclTask; + _comp4InitSnippet = await comp4InitTask; + _comp5DeclarationSnippet = await comp5DeclTask; + _comp5InitSnippet = await comp5InitTask; + // _stepLogicBlocks = await stepLogicTask; + _c1StepLogicBlocks = await c1StepsTask; + _c2StepLogicBlocks = await c2StepsTask; + _c3StepLogicBlocks = await c3StepsTask; + _c4StepLogicBlocks = await c4StepsTask; + _c5StepLogicBlocks = await c5StepsTask; + _hwc1DeviceInstanceSnippet = await hwc1InstanceTask; + _hwc1DeviceTemplateSnippet = await hwc1TemplateTask; + _hwc1IoSystemSnippet = await hwc1IoSystemTask; + _hwc2DeviceInstanceSnippet = await hwc2InstanceTask; + _hwc2DeviceTemplateSnippet = await hwc2TemplateTask; + _hwc2IoSystemSnippet = await hwc2IoSystemTask; + _hwc3DeviceInstanceSnippet = await hwc3InstanceTask; + _hwc3DeviceTemplateSnippet = await hwc3TemplateTask; + _hwc3IoSystemSnippet = await hwc3IoSystemTask; + _hwc4DeviceInstanceSnippet = await hwc4InstanceTask; + _hwc4DeviceTemplateSnippet = await hwc4TemplateTask; + _hwc4IoSystemSnippet = await hwc4IoSystemTask; + _hwc5DeviceInstanceSnippet = await hwc5InstanceTask; + _hwc5DeviceTemplateSnippet = await hwc5TemplateTask; + _hwc5IoSystemSnippet = await hwc5IoSystemTask; + // _stepsBySymbol = Entry.Plc.Ctx.cognex_vision_documentation.axoInsight_v_6_0_0_0.Steps + // .ToDictionary( + // s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + // s => s + // ); + _c1StepsBySymbol = Entry.Plc.Ctx.cognex_vision_documentation.axoInsight_v_6_0_0_0.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c2StepsBySymbol = Entry.Plc.Ctx.cognex_vision_documentation.axoDataman_v_6_0_0_0.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c3StepsBySymbol = Entry.Plc.Ctx.cognex_vision_documentation.axoDataman_v_6_0_0_0_2.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c4StepsBySymbol = Entry.Plc.Ctx.cognex_vision_documentation.axoInsight_v_24_0_0.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c5StepsBySymbol = Entry.Plc.Ctx.cognex_vision_documentation.axoVisionPro.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq1 = Entry.Plc.Ctx.cognex_vision_documentation.axoInsight_v_6_0_0_0.Sequencer; + var steps1 = Entry.Plc.Ctx.cognex_vision_documentation.axoInsight_v_6_0_0_0.Steps; + this.StartPolling(seq1, 250); + foreach (var step in steps1) + { + // this.StartPolling(seq, 250); + // foreach (var step in steps) + // { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + //} + } + var seq2 = Entry.Plc.Ctx.cognex_vision_documentation.axoDataman_v_6_0_0_0.Sequencer; + var steps2 = Entry.Plc.Ctx.cognex_vision_documentation.axoDataman_v_6_0_0_0.Steps; + this.StartPolling(seq2, 250); + foreach (var step in steps2) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + var seq3 = Entry.Plc.Ctx.cognex_vision_documentation.axoDataman_v_6_0_0_0_2.Sequencer; + var steps3 = Entry.Plc.Ctx.cognex_vision_documentation.axoDataman_v_6_0_0_0_2.Steps; + this.StartPolling(seq3, 250); + foreach (var step in steps3) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + var seq4 = Entry.Plc.Ctx.cognex_vision_documentation.axoInsight_v_24_0_0.Sequencer; + var steps4 = Entry.Plc.Ctx.cognex_vision_documentation.axoInsight_v_24_0_0.Steps; + this.StartPolling(seq4, 250); + foreach (var step in steps4) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + var seq5 = Entry.Plc.Ctx.cognex_vision_documentation.axoVisionPro.Sequencer; + var steps5 = Entry.Plc.Ctx.cognex_vision_documentation.axoVisionPro.Steps; + this.StartPolling(seq5, 250); + foreach (var step in steps5) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-desoutter-tightening/Documentation/DesoutterTightening.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-desoutter-tightening/Documentation/DesoutterTightening.razor new file mode 100644 index 000000000..48e575cb6 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-desoutter-tightening/Documentation/DesoutterTightening.razor @@ -0,0 +1,342 @@ +@page "/components-desoutter-tightening/Documentation/DesoutterTightening" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Desoutter Tightening - Documentation + +
+ +
+

AXOpen.Components.Desoutter.Tightening

+

Desoutter Tightening Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Desoutter tightening controllers in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_componentDeclarationSnippet != null && !_componentDeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Explicit component usage (Razor)

+

+ + — <ComponentExplicitUsageRazor> region +

+ @if (_razorUsageSnippet != null && !_razorUsageSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_componentRunSnippet != null && !_componentRunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ +
+

Device instantiation (hwl)

+

+ + — <DesoutterCvicIiDevice> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Device template (hwl)

+

+ + — <DesoutterCvicIiTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

PROFINET IO system wiring (hwl)

+

+ + — <DesoutterCvicIiIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _componentDeclarationSnippet; + private CodeSnippet? _componentRunSnippet; + private CodeSnippet? _razorUsageSnippet; + private CodeSnippet? _hwcDeviceInstanceSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private List _stepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.desoutter.tightening/Documentation/DesoutterTightening.st"; + private readonly string _plcComponentPath = "src/showcase/app/src/components.desoutter.tightening/Documentation/AxoCVIC_II.st"; + private readonly string _razorPagePath = "src/showcase/app/ix-blazor/showcase.blazor/Pages/components-desoutter-tightening/Documentation/DesoutterTightening.razor"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/desoutter_tightenning_CVIC_II/Desoutter_CVIC_II.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.desoutter.tightening/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.desoutter.tightening/docs/AxoCVIC_II.md"; + private readonly string _libTroublesPath = "src/components.desoutter.tightening/docs/TROUBLES.md"; + private readonly string _libAxoCvicIiStPath = "src/components.desoutter.tightening/ctrl/src/CVIC_II/AxoCVIC_II.st"; + private readonly string _libApaxYmlPath = "src/components.desoutter.tightening/ctrl/apax.yml"; + private readonly string _libHwlYmlPath = "src/components.desoutter.tightening/ctrl/assets/desoutter_tightenning_CVIC_II/Desoutter_CVIC_II.hwl.yml"; + private readonly string _libGsdmlPath = "src/components.desoutter.tightening/ctrl/assets/desoutter_tightenning_CVIC_II/GSDML-V2.2-DESOUTTER-PRT-20100408.xml"; + private Dictionary _stepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "ComponentDeclaration"); + var componentRunTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "Initialization"); + var razorUsageTask = CodeProvider.GetTaggedRegionAsync(_razorPagePath, "ComponentExplicitUsageRazor"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponentPath); + var hwcInstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "DesoutterCvicIiDevice"); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "DesoutterCvicIiTemplate"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "DesoutterCvicIiIoSystem"); + await Task.WhenAll(declarationTask, componentRunTask, razorUsageTask, stepLogicTask, + hwcInstanceTask, hwcTemplateTask, hwcIoSystemTask); + _componentDeclarationSnippet = await declarationTask; + _componentRunSnippet = await componentRunTask; + _razorUsageSnippet = await razorUsageTask; + _stepLogicBlocks = await stepLogicTask; + _hwcDeviceInstanceSnippet = await hwcInstanceTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _stepsBySymbol = Entry.Plc.Ctx.desoutter_tightening_documentation.axoCVIC_II.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.desoutter_tightening_documentation.axoCVIC_II.Sequencer; + var steps = Entry.Plc.Ctx.desoutter_tightening_documentation.axoCVIC_II.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-drives/Documentation/DrivesShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-drives/Documentation/DrivesShowcase.razor new file mode 100644 index 000000000..e770b62cf --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-drives/Documentation/DrivesShowcase.razor @@ -0,0 +1,236 @@ +@page "/components-drives/Documentation/DrivesShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Drives - Documentation + +
+ +
+

AXOpen.Components.Drives

+

Drives Showcase

+

+ Abstract drive component providing a vendor-neutral foundation for motion control in SIMATIC AX. + Use this page as a practical reference for integrating the generic AxoDrive base in your applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_componentDeclarationSnippet != null && !_componentDeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_componentRunSnippet != null && !_componentRunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _componentDeclarationSnippet; + private CodeSnippet? _componentRunSnippet; + private List _stepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.drives/Documentation/Drives.st"; + private readonly string _plcComponentPath = "src/showcase/app/src/components.drives/Documentation/AxoDriveExample_Showcase.st"; + // Library resource paths + private readonly string _libReadmePath = "src/components.drives/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.drives/docs/AxoDriveExample_Showcase.md"; + private readonly string _libComponent2DocPath = "src/components.drives/docs/AxoDriveExample_Showcase2.md"; + private readonly string _libTroublesPath = "src/components.drives/docs/TROUBLES.md"; + private readonly string _libAxoDriveStPath = "src/components.drives/ctrl/src/AxoDrives/AxoDrive.st"; + private readonly string _libApaxYmlPath = "src/components.drives/ctrl/apax.yml"; + private Dictionary _stepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "ComponentDeclaration"); + var componentRunTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "Initialization"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponentPath); + await Task.WhenAll(declarationTask, componentRunTask, stepLogicTask); + _componentDeclarationSnippet = await declarationTask; + _componentRunSnippet = await componentRunTask; + _stepLogicBlocks = await stepLogicTask; + _stepsBySymbol = Entry.Plc.Ctx.drives_documentation.axoDriveExample.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.drives_documentation.axoDriveExample.Sequencer; + var steps = Entry.Plc.Ctx.drives_documentation.axoDriveExample.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-dukane-welders/Documentation/DukaneWelders.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-dukane-welders/Documentation/DukaneWelders.razor new file mode 100644 index 000000000..5221e9e5b --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-dukane-welders/Documentation/DukaneWelders.razor @@ -0,0 +1,521 @@ +@page "/components-dukane-welders/Documentation/DukaneWelders" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Dukane Welders - Documentation + +
+ +
+

AXOpen.Components.Dukane.Welders

+

Dukane Welders Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Dukane welders in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp1DeclarationSnippet != null && !_comp1DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp1RunSnippet != null && !_comp1RunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <DukaneIqWelderDevice> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ + — <DukaneIqWelderTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <DukaneIqWelderIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_comp1StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _comp1StepLogicBlocks) + { + _comp1StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp2DeclarationSnippet != null && !_comp2DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp2RunSnippet != null && !_comp2RunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <DukaneIqWelderDevice> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ + — <DukaneIqWelderTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <DukaneIqWelderIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_comp2StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _comp2StepLogicBlocks) + { + _comp2StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _comp1DeclarationSnippet; + private CodeSnippet? _comp1RunSnippet; + private CodeSnippet? _comp2DeclarationSnippet; + private CodeSnippet? _comp2RunSnippet; + private CodeSnippet? _hwcDeviceInstanceSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private List _comp1StepLogicBlocks = new(); + private List _comp2StepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.dukane.welders/Documentation/DukaneWelders.st"; + private readonly string _plcComponent1Path = "src/showcase/app/src/components.dukane.welders/Documentation/Axo_IQ_SeriesWelder_Showcase.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.dukane.welders/Documentation/Axo_IQ_SeriesWelder_Showcase2.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/dukane_welders_iq_series/DukaneIqSeriesWelder.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.dukane.welders/docs/README.md"; + private readonly string _libComponentDocPath = "src/components.dukane.welders/docs/Axo_IQ_SeriesWelder.md"; + private readonly string _libTroublesPath = "src/components.dukane.welders/docs/TROUBLES.md"; + private readonly string _libAxoIqWelderStPath = "src/components.dukane.welders/ctrl/src/AxoIQSeriesWelder/Axo_IQ_SeriesWelder.st"; + private readonly string _libApaxYmlPath = "src/components.dukane.welders/ctrl/apax.yml"; + private readonly string _libHwlYmlPath = "src/components.dukane.welders/ctrl/assets/dukane_welders_iq_series/DukaneIqSeriesWelder.hwl.yml"; + private readonly string _libGsdmlPath = "src/components.dukane.welders/ctrl/assets/dukane_welders_iq_series/GSDML-V2.31-DUKANE-IQ-20190110.xml"; + private Dictionary _comp1StepsBySymbol = new(); + private Dictionary _comp2StepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var comp1DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "ComponentDeclaration"); + var comp1RunTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "Initialization"); + var comp1StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent1Path); + var comp2DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "ComponentDeclaration"); + var comp2RunTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "Initialization"); + var comp2StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent2Path); + var hwcInstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "DukaneIqWelderDevice"); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "DukaneIqWelderTemplate"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "DukaneIqWelderIoSystem"); + await Task.WhenAll(comp1DeclTask, comp1RunTask, comp1StepsTask, + comp2DeclTask, comp2RunTask, comp2StepsTask, + hwcInstanceTask, hwcTemplateTask, hwcIoSystemTask); + _comp1DeclarationSnippet = await comp1DeclTask; + _comp1RunSnippet = await comp1RunTask; + _comp1StepLogicBlocks = await comp1StepsTask; + _comp2DeclarationSnippet = await comp2DeclTask; + _comp2RunSnippet = await comp2RunTask; + _comp2StepLogicBlocks = await comp2StepsTask; + _hwcDeviceInstanceSnippet = await hwcInstanceTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _comp1StepsBySymbol = Entry.Plc.Ctx.dukane_welders_documentation.axo_IQ_SeriesWelder.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _comp2StepsBySymbol = Entry.Plc.Ctx.dukane_welders_documentation.axo_IQ_SeriesWelder_2.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq1 = Entry.Plc.Ctx.dukane_welders_documentation.axo_IQ_SeriesWelder.Sequencer; + var steps1 = Entry.Plc.Ctx.dukane_welders_documentation.axo_IQ_SeriesWelder.Steps; + var seq2 = Entry.Plc.Ctx.dukane_welders_documentation.axo_IQ_SeriesWelder_2.Sequencer; + var steps2 = Entry.Plc.Ctx.dukane_welders_documentation.axo_IQ_SeriesWelder_2.Steps; + this.StartPolling(seq1, 250); + foreach (var step in steps1) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + this.StartPolling(seq2, 250); + foreach (var step in steps2) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-elements/Documentation/ElementsShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-elements/Documentation/ElementsShowcase.razor new file mode 100644 index 000000000..f7349a638 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-elements/Documentation/ElementsShowcase.razor @@ -0,0 +1,525 @@ +@page "/components-elements/Documentation/ElementsShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Elements — Documentation + +
+ +
+

AXOpen.Components.Elements

+

Elements Showcase

+

+ Basic I/O building blocks — digital inputs/outputs, analog inputs/outputs, signal tower, and rotary indexing table. + Use this page as a practical reference for integrating these components in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Declaration (ST)

+

+ + — <AxoDiDeclaration> region +

+ @if (_axoDiDeclarationSnippet != null && !_axoDiDeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Initialization & Usage (ST)

+

+ + — <AxoDiInitialization> and <AxoDiUsage> regions +

+ @if (_axoDiInitSnippet != null && !_axoDiInitSnippet.IsError) + { + + } + @if (_axoDiUsageSnippet != null && !_axoDiUsageSnippet.IsError) + { + + } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Declaration (ST)

+

+ + — <AxoDoDeclaration> region +

+ @if (_axoDoDeclarationSnippet != null && !_axoDoDeclarationSnippet.IsError) + { + + } +
+
+

Initialization & Usage (ST)

+

+ + — <AxoDoInitialization> and <AxoDoUsage> regions +

+ @if (_axoDoInitSnippet != null && !_axoDoInitSnippet.IsError) + { + + } + @if (_axoDoUsageSnippet != null && !_axoDoUsageSnippet.IsError) + { + + } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Declaration & Initialization (ST)

+

+ + — <AxoAiDeclaration> and <AxoAiInitialization> regions +

+ @if (_axoAiDeclarationSnippet != null && !_axoAiDeclarationSnippet.IsError) + { + + } + @if (_axoAiInitSnippet != null && !_axoAiInitSnippet.IsError) + { + + } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Declaration & Initialization (ST)

+

+ + — <AxoAoDeclaration> and <AxoAoInitialization> regions +

+ @if (_axoAoDeclarationSnippet != null && !_axoAoDeclarationSnippet.IsError) + { + + } + @if (_axoAoInitSnippet != null && !_axoAoInitSnippet.IsError) + { + + } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Declaration & Initialization (ST)

+

+ + — <AxoCarouselDeclaration> and <AxoCarouselInitialization> regions +

+ @if (_axoCarouselDeclarationSnippet != null && !_axoCarouselDeclarationSnippet.IsError) + { + + } + @if (_axoCarouselInitSnippet != null && !_axoCarouselInitSnippet.IsError) + { + + } +
+
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _axoDiDeclarationSnippet; + private CodeSnippet? _axoDiInitSnippet; + private CodeSnippet? _axoDiUsageSnippet; + private CodeSnippet? _axoDoDeclarationSnippet; + private CodeSnippet? _axoDoInitSnippet; + private CodeSnippet? _axoDoUsageSnippet; + private CodeSnippet? _axoAiDeclarationSnippet; + private CodeSnippet? _axoAiInitSnippet; + private CodeSnippet? _axoAoDeclarationSnippet; + private CodeSnippet? _axoAoInitSnippet; + private CodeSnippet? _axoCarouselDeclarationSnippet; + private CodeSnippet? _axoCarouselInitSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.elements/Documentation/Elements.st"; + // Library resource paths + private readonly string _libReadmePath = "src/components.elements/docs/README.md"; + private readonly string _libAxoDiDocPath = "src/components.elements/docs/AxoDi.md"; + private readonly string _libAxoDoDocPath = "src/components.elements/docs/AxoDo.md"; + private readonly string _libAxoAiDocPath = "src/components.elements/docs/AxoAi.md"; + private readonly string _libAxoAoDocPath = "src/components.elements/docs/AxoAo.md"; + private readonly string _libAxoBacklitButtonDocPath = "src/components.elements/docs/AxoBacklitButton.md"; + private readonly string _libAxoSignalTowerDocPath = "src/components.elements/docs/AxoSignalTower.md"; + private readonly string _libAxoRotaryIndexingTableDocPath = "src/components.elements/docs/AxoRotaryIndexingTable.md"; + private readonly string _libHowtoPath = "src/components.elements/docs/HOWTO.md"; + private readonly string _libTroublesPath = "src/components.elements/docs/TROUBLES.md"; + private readonly string _libChangelogPath = "src/components.elements/docs/CHANGELOG.md"; + public override void ConfigurePolling() + { + var cu = Entry.Plc.Ctx.elements_documentation.Cu; + this.StartPolling(cu._testDi, 250); + this.StartPolling(cu._testDo, 250); + this.StartPolling(cu._testAi, 250); + this.StartPolling(cu._testAo, 250); + this.StartPolling(cu._testBacklitButton, 250); + this.StartPolling(cu._testSignalTower, 250); + this.StartPolling(cu._testCarousel, 250); + } + protected override async Task OnInitializedAsync() + { + try + { + var tasks = new[] + { + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoDiDeclaration"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoDiInitialization"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoDiUsage"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoDoDeclaration"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoDoInitialization"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoDoUsage"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoAiDeclaration"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoAiInitialization"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoAoDeclaration"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoAoInitialization"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoCarouselDeclaration"), + CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoCarouselInitialization"), + }; + await Task.WhenAll(tasks); + _axoDiDeclarationSnippet = await tasks[0]; + _axoDiInitSnippet = await tasks[1]; + _axoDiUsageSnippet = await tasks[2]; + _axoDoDeclarationSnippet = await tasks[3]; + _axoDoInitSnippet = await tasks[4]; + _axoDoUsageSnippet = await tasks[5]; + _axoAiDeclarationSnippet = await tasks[6]; + _axoAiInitSnippet = await tasks[7]; + _axoAoDeclarationSnippet = await tasks[8]; + _axoAoInitSnippet = await tasks[9]; + _axoCarouselDeclarationSnippet = await tasks[10]; + _axoCarouselInitSnippet = await tasks[11]; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-festo-drives/Documentation/FestoDrives.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-festo-drives/Documentation/FestoDrives.razor new file mode 100644 index 000000000..0ec97a166 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-festo-drives/Documentation/FestoDrives.razor @@ -0,0 +1,357 @@ +@page "/components-festo-drives/Documentation/FestoDrives" +@using AXOpen.Components.Festo.Drives +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Festo Drives - Documentation + +
+ +
+

AXOpen.Components.Festo.Drives

+

Festo Drives Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Festo drives in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+ + +
+ + +
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_componentDeclarationSnippet != null && !_componentDeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Explicit component usage (Razor)

+

+ + — <ComponentExplicitUsageRazor> region +

+ @if (_razorUsageSnippet != null && !_razorUsageSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_componentRunSnippet != null && !_componentRunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ +
+

Device instantiation (hwl)

+

+ + — <FestoCmmtAsDevice> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Device template (hwl)

+

+ + — <FestoCmmtAsTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

PROFINET IO system wiring (hwl)

+

+ + — <FestoCmmtAsIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _componentDeclarationSnippet; + private CodeSnippet? _componentRunSnippet; + private CodeSnippet? _razorUsageSnippet; + private CodeSnippet? _hwcDeviceInstanceSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private List _stepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.festo.drives/Documentation/FestoDrives.st"; + private readonly string _plcComponentPath = "src/showcase/app/src/components.festo.drives/Documentation/AxoCmmtAs_Showcase.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.festo.drives/Documentation/AxoCmmtAs_Showcase2.st"; + private readonly string _razorPagePath = "src/showcase/app/ix-blazor/showcase.blazor/Pages/components-festo-drives/Documentation/FestoDrives.razor"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/festo_drives_cmmt_as/FestoCmmtAs.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.festo.drives/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.festo.drives/docs/AxoCmmtAs_Showcase.md"; + private readonly string _libComponent2DocPath = "src/components.festo.drives/docs/AxoCmmtAs_Showcase2.md"; + private readonly string _libTroublesPath = "src/components.festo.drives/docs/TROUBLES.md"; + private readonly string _libAxoCmmtAsStPath = "src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st"; + private readonly string _libApaxYmlPath = "src/components.festo.drives/ctrl/apax.yml"; + private readonly string _libHwlYmlPath = "src/components.festo.drives/ctrl/assets/festo_drives_cmmt_as/FestoCmmtAs.hwl.yml"; + private readonly string _libGsdmlPath = "src/components.festo.drives/ctrl/assets/festo_drives_cmmt_as/gsdml-v2.41-festo-cmmt-as-20230601.xml"; + private Dictionary _stepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "ComponentDeclaration"); + var componentRunTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "Initialization"); + var razorUsageTask = CodeProvider.GetTaggedRegionAsync(_razorPagePath, "ComponentExplicitUsageRazor"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponentPath); + var hwcInstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "FestoCmmtAsDevice"); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "FestoCmmtAsTemplate"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "FestoCmmtAsIoSystem"); + await Task.WhenAll(declarationTask, componentRunTask, razorUsageTask, stepLogicTask, + hwcInstanceTask, hwcTemplateTask, hwcIoSystemTask); + _componentDeclarationSnippet = await declarationTask; + _componentRunSnippet = await componentRunTask; + _razorUsageSnippet = await razorUsageTask; + _stepLogicBlocks = await stepLogicTask; + _hwcDeviceInstanceSnippet = await hwcInstanceTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _stepsBySymbol = Entry.Plc.Ctx.festo_drives_documentation.axoCmmtAs.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.festo_drives_documentation.axoCmmtAs.Sequencer; + var steps = Entry.Plc.Ctx.festo_drives_documentation.axoCmmtAs.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-keyence-vision/Documentation/KeyenceVision.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-keyence-vision/Documentation/KeyenceVision.razor new file mode 100644 index 000000000..ca835f001 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-keyence-vision/Documentation/KeyenceVision.razor @@ -0,0 +1,713 @@ +@page "/components-keyence-vision/Documentation/KeyenceVision" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Keyence Vision - Documentation + +
+ +
+

AXOpen.Components.Keyence.Vision

+

Keyence Vision Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Keyence vision systems in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp1DeclarationSnippet != null && !_comp1DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp1InitSnippet != null && !_comp1InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

+ + — <KeyenceSr750Device> region +

+ @if (_hwc1DeviceInstanceSnippet != null && !_hwc1DeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <KeyenceSr750Template> region +

+ @if (_hwc1DeviceTemplateSnippet != null && !_hwc1DeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <KeyenceSr750IoSystem> region +

+ @if (_hwc1IoSystemSnippet != null && !_hwc1IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_c1StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c1StepLogicBlocks) + { + _c1StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp2DeclarationSnippet != null && !_comp2DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp2InitSnippet != null && !_comp2InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

+ + — <KeyenceSr1000Device> region +

+ @if (_hwc2DeviceInstanceSnippet != null && !_hwc2DeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <KeyenceSr1000Template> region +

+ @if (_hwc2DeviceTemplateSnippet != null && !_hwc2DeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <KeyenceSr1000IoSystem> region +

+ @if (_hwc2IoSystemSnippet != null && !_hwc2IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_c2StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c2StepLogicBlocks) + { + _c2StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp3DeclarationSnippet != null && !_comp3DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp3InitSnippet != null && !_comp3InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

+ + — <KeyenceIv3Device> region +

+ @if (_hwc3DeviceInstanceSnippet != null && !_hwc3DeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <KeyenceIv3Template> region +

+ @if (_hwc3DeviceTemplateSnippet != null && !_hwc3DeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

+ + — <KeyenceIv3IoSystem> region +

+ @if (_hwc3IoSystemSnippet != null && !_hwc3IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_c3StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c3StepLogicBlocks) + { + _c3StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // Component 1 snippets + private CodeSnippet? _comp1DeclarationSnippet; + private CodeSnippet? _comp1InitSnippet; + // Component 2 snippets + private CodeSnippet? _comp2DeclarationSnippet; + private CodeSnippet? _comp2InitSnippet; + // Component 3 snippets + private CodeSnippet? _comp3DeclarationSnippet; + private CodeSnippet? _comp3InitSnippet; + // Hardware snippets — per component + private CodeSnippet? _hwc1DeviceInstanceSnippet; + private CodeSnippet? _hwc1DeviceTemplateSnippet; + private CodeSnippet? _hwc1IoSystemSnippet; + private CodeSnippet? _hwc2DeviceInstanceSnippet; + private CodeSnippet? _hwc2DeviceTemplateSnippet; + private CodeSnippet? _hwc2IoSystemSnippet; + private CodeSnippet? _hwc3DeviceInstanceSnippet; + private CodeSnippet? _hwc3DeviceTemplateSnippet; + private CodeSnippet? _hwc3IoSystemSnippet; + // Step logic + private List _c1StepLogicBlocks = new(); + private List _c2StepLogicBlocks = new(); + private List _c3StepLogicBlocks = new(); + private Dictionary _c1StepsBySymbol = new(); + private Dictionary _c2StepsBySymbol = new(); + private Dictionary _c3StepsBySymbol = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + // PLC source paths + private readonly string _plcContextPath = "src/showcase/app/src/components.keyence.vision/Documentation/KeyenceVision.st"; + private readonly string _plcComponent1Path = "src/showcase/app/src/components.keyence.vision/Documentation/Axo_SR_750_Showcase.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.keyence.vision/Documentation/Axo_SR_1000_Showcase.st"; + private readonly string _plcComponent3Path = "src/showcase/app/src/components.keyence.vision/Documentation/Axo_IV3_Showcase.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDevice1TemplatePath = "src/showcase/app/hwc/library_templates/Keyence_SR_750/Keyence_SR_750.hwl.yml"; + private readonly string _hwcDevice2TemplatePath = "src/showcase/app/hwc/library_templates/Keyence_SR_1000/Keyence_SR_1000.hwl.yml"; + private readonly string _hwcDevice3TemplatePath = "src/showcase/app/hwc/library_templates/Keyence_IV3/Keyence_IV3.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.keyence.vision/docs/README.md"; + private readonly string _libTroublesPath = "src/components.keyence.vision/docs/TROUBLES.md"; + protected override async Task OnInitializedAsync() + { + try + { + var comp1DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "ComponentDeclaration"); + var comp1InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "Initialization"); + var comp2DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "ComponentDeclaration"); + var comp2InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "Initialization"); + var comp3DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent3Path, "ComponentDeclaration"); + var comp3InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent3Path, "Initialization"); + var step1LogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent1Path); + var step2LogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent2Path); + var step3LogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent3Path); + // Hardware snippets — per component + var hwc1InstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KeyenceSr750Device"); + var hwc1TemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDevice1TemplatePath, "KeyenceSr750Template"); + var hwc1IoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KeyenceSr750IoSystem"); + var hwc2InstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KeyenceSr1000Device"); + var hwc2TemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDevice2TemplatePath, "KeyenceSr1000Template"); + var hwc2IoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KeyenceSr1000IoSystem"); + var hwc3InstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KeyenceIv3Device"); + var hwc3TemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDevice3TemplatePath, "KeyenceIv3Template"); + var hwc3IoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KeyenceIv3IoSystem"); + await Task.WhenAll(comp1DeclTask, comp1InitTask, comp2DeclTask, comp2InitTask, + comp3DeclTask, comp3InitTask, step1LogicTask, step2LogicTask, step2LogicTask, + hwc1InstanceTask, hwc1TemplateTask, hwc1IoSystemTask, + hwc2InstanceTask, hwc2TemplateTask, hwc2IoSystemTask, + hwc3InstanceTask, hwc3TemplateTask, hwc3IoSystemTask); + _comp1DeclarationSnippet = await comp1DeclTask; + _comp1InitSnippet = await comp1InitTask; + _comp2DeclarationSnippet = await comp2DeclTask; + _comp2InitSnippet = await comp2InitTask; + _comp3DeclarationSnippet = await comp3DeclTask; + _comp3InitSnippet = await comp3InitTask; + _c1StepLogicBlocks = await step1LogicTask; + _c2StepLogicBlocks = await step2LogicTask; + _c3StepLogicBlocks = await step3LogicTask; + _hwc1DeviceInstanceSnippet = await hwc1InstanceTask; + _hwc1DeviceTemplateSnippet = await hwc1TemplateTask; + _hwc1IoSystemSnippet = await hwc1IoSystemTask; + _hwc2DeviceInstanceSnippet = await hwc2InstanceTask; + _hwc2DeviceTemplateSnippet = await hwc2TemplateTask; + _hwc2IoSystemSnippet = await hwc2IoSystemTask; + _hwc3DeviceInstanceSnippet = await hwc3InstanceTask; + _hwc3DeviceTemplateSnippet = await hwc3TemplateTask; + _hwc3IoSystemSnippet = await hwc3IoSystemTask; + _c1StepsBySymbol = Entry.Plc.Ctx.keyence_vision_documentation.axo_SR_750.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c2StepsBySymbol = Entry.Plc.Ctx.keyence_vision_documentation.axo_SR_1000.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c3StepsBySymbol = Entry.Plc.Ctx.keyence_vision_documentation.axo_IV3.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq1 = Entry.Plc.Ctx.keyence_vision_documentation.axo_SR_750.Sequencer; + var steps1 = Entry.Plc.Ctx.keyence_vision_documentation.axo_SR_750.Steps; + this.StartPolling(seq1, 250); + foreach (var step in steps1) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + var seq2 = Entry.Plc.Ctx.keyence_vision_documentation.axo_SR_1000.Sequencer; + var steps2 = Entry.Plc.Ctx.keyence_vision_documentation.axo_SR_1000.Steps; + this.StartPolling(seq2, 250); + foreach (var step in steps2) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + var seq3 = Entry.Plc.Ctx.keyence_vision_documentation.axo_IV3.Sequencer; + var steps3 = Entry.Plc.Ctx.keyence_vision_documentation.axo_IV3.Steps; + this.StartPolling(seq3, 250); + foreach (var step in steps3) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-kuka-robotics/Documentation/KukaRobotics.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-kuka-robotics/Documentation/KukaRobotics.razor new file mode 100644 index 000000000..ac8469e32 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-kuka-robotics/Documentation/KukaRobotics.razor @@ -0,0 +1,555 @@ +@page "/components-kuka-robotics/Documentation/KukaRobotics" +@using AXOpen.Components.Kuka.Robotics +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +KUKA Robotics - Documentation + +
+ +
+

AXOpen.Components.Kuka.Robotics

+

KUKA Robotics Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating KUKA KRC4 and KRC5 robots in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ + + +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_krc4SeqDeclSnippet != null && !_krc4SeqDeclSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_krc4SeqInitSnippet != null && !_krc4SeqInitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <KukaKrc4Device> region +

+ @if (_hwcKrc4InstanceSnippet != null && !_hwcKrc4InstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ +

+ @if (_hwcKrc4TemplateSnippet != null && !_hwcKrc4TemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <KukaKrc4IoSystem> region +

+ @if (_hwcKrc4IoSystemSnippet != null && !_hwcKrc4IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_krc4SeqStepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _krc4SeqStepLogicBlocks) + { + _krc4StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ + + +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_krc5SeqDeclSnippet != null && !_krc5SeqDeclSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_krc5SeqInitSnippet != null && !_krc5SeqInitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <KukaKrc5Device> region +

+ @if (_hwcKrc5InstanceSnippet != null && !_hwcKrc5InstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ +

+ @if (_hwcKrc5TemplateSnippet != null && !_hwcKrc5TemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <KukaKrc5IoSystem> region +

+ @if (_hwcKrc5IoSystemSnippet != null && !_hwcKrc5IoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_krc5SeqStepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _krc5SeqStepLogicBlocks) + { + _krc5StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + + // KRC4 sequenced + private CodeSnippet? _krc4SeqDeclSnippet; + private CodeSnippet? _krc4SeqInitSnippet; + private List _krc4SeqStepLogicBlocks = new(); + // KRC5 sequenced + private CodeSnippet? _krc5SeqDeclSnippet; + private CodeSnippet? _krc5SeqInitSnippet; + private List _krc5SeqStepLogicBlocks = new(); + // HWC snippets + private CodeSnippet? _hwcKrc4InstanceSnippet; + private CodeSnippet? _hwcKrc4TemplateSnippet; + private CodeSnippet? _hwcKrc4IoSystemSnippet; + private CodeSnippet? _hwcKrc5InstanceSnippet; + private CodeSnippet? _hwcKrc5TemplateSnippet; + private CodeSnippet? _hwcKrc5IoSystemSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + + private readonly string _plcContextPath = "src/showcase/app/src/components.kuka.robotics/Documentation/KukaRobotics.st"; + private readonly string _plcKrc4SequencedPath = "src/showcase/app/src/components.kuka.robotics/Documentation/AxoKrc4_v_5_x_x_Showcase.st"; + private readonly string _plcKrc5SequencedPath = "src/showcase/app/src/components.kuka.robotics/Documentation/AxoKrc5_v_5_x_x_Showcase.st"; + // Hardware configuration paths. + // Note: the showcase's hwc/library_templates/* folder is regenerated by `apax alf` + // and cannot hold doc markers. Point at the library asset source (ctrl/assets/*) + // where the markers are authoritative. + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcKrc4TemplatePath = "src/components.kuka.robotics/ctrl/assets/kuka_krc4/kuka_krc4_dio512.hwl.yml"; + private readonly string _hwcKrc5TemplatePath = "src/components.kuka.robotics/ctrl/assets/kuka_krc5/kuka_krc5_dio512.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.kuka.robotics/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.kuka.robotics/docs/AxoKrc4_v_5_x_x.md"; + private readonly string _libTroublesPath = "src/components.kuka.robotics/docs/TROUBLES.md"; + private readonly string _libAxoKrc4StPath = "src/components.kuka.robotics/ctrl/src/AxoKrc4/v_5_x_x/AxoKrc4.st"; + private readonly string _libAxoKrc5StPath = "src/components.kuka.robotics/ctrl/src/AxoKrc5/v_5_x_x/AxoKrc5.st"; + private readonly string _libApaxYmlPath = "src/components.kuka.robotics/ctrl/apax.yml"; + private readonly string _libHwlKrc4YmlPath = "src/components.kuka.robotics/ctrl/assets/kuka_krc4/kuka_krc4_dio512.hwl.yml"; + private readonly string _libHwlKrc5YmlPath = "src/components.kuka.robotics/ctrl/assets/kuka_krc5/kuka_krc5_dio512.hwl.yml"; + private readonly string _libGsdmlKrc4Path = "src/components.kuka.robotics/ctrl/assets/kuka_krc4/GSDML-V2.33-KUKA-KRC4-ProfiNet_5.0-20181102.xml"; + private readonly string _libGsdmlKrc5Path = "src/components.kuka.robotics/ctrl/assets/kuka_krc5/GSDML-V2.4-KUKA-KR C5-20220704.xml"; + + private Dictionary _krc4StepsBySymbol = new(); + private Dictionary _krc5StepsBySymbol = new(); + + protected override async Task OnInitializedAsync() + { + try + { + // KRC4 sequenced + var k4SeqDecl = CodeProvider.GetTaggedRegionAsync(_plcKrc4SequencedPath, "ComponentDeclaration"); + var k4SeqInit = CodeProvider.GetTaggedRegionAsync(_plcKrc4SequencedPath, "Initialization"); + var k4SeqSteps = CodeProvider.GetStepLogicBlocksAsync(_plcKrc4SequencedPath); + // KRC5 sequenced + var k5SeqDecl = CodeProvider.GetTaggedRegionAsync(_plcKrc5SequencedPath, "ComponentDeclaration"); + var k5SeqInit = CodeProvider.GetTaggedRegionAsync(_plcKrc5SequencedPath, "Initialization"); + var k5SeqSteps = CodeProvider.GetStepLogicBlocksAsync(_plcKrc5SequencedPath); + // HWC + var hwcKrc4Inst = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KukaKrc4Device"); + var hwcKrc4Tmpl = CodeProvider.GetTaggedRegionAsync(_hwcKrc4TemplatePath, "KukaKrc4Template"); + var hwcKrc4Io = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KukaKrc4IoSystem"); + var hwcKrc5Inst = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KukaKrc5Device"); + var hwcKrc5Tmpl = CodeProvider.GetTaggedRegionAsync(_hwcKrc5TemplatePath, "KukaKrc5Template"); + var hwcKrc5Io = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "KukaKrc5IoSystem"); + + await Task.WhenAll(k4SeqDecl, k4SeqInit, k4SeqSteps, + k5SeqDecl, k5SeqInit, k5SeqSteps, + hwcKrc4Inst, hwcKrc4Tmpl, hwcKrc4Io, + hwcKrc5Inst, hwcKrc5Tmpl, hwcKrc5Io); + + _krc4SeqDeclSnippet = await k4SeqDecl; + _krc4SeqInitSnippet = await k4SeqInit; + _krc4SeqStepLogicBlocks = await k4SeqSteps; + _krc5SeqDeclSnippet = await k5SeqDecl; + _krc5SeqInitSnippet = await k5SeqInit; + _krc5SeqStepLogicBlocks = await k5SeqSteps; + _hwcKrc4InstanceSnippet = await hwcKrc4Inst; + _hwcKrc4TemplateSnippet = await hwcKrc4Tmpl; + _hwcKrc4IoSystemSnippet = await hwcKrc4Io; + _hwcKrc5InstanceSnippet = await hwcKrc5Inst; + _hwcKrc5TemplateSnippet = await hwcKrc5Tmpl; + _hwcKrc5IoSystemSnippet = await hwcKrc5Io; + + _krc4StepsBySymbol = Entry.Plc.Ctx.kuka_robotics_documentation.axoKrc4_v_5_x_x.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _krc5StepsBySymbol = Entry.Plc.Ctx.kuka_robotics_documentation.axoKrc5_v_5_x_x.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + + public override void ConfigurePolling() + { + var seq4 = Entry.Plc.Ctx.kuka_robotics_documentation.axoKrc4_v_5_x_x.Sequencer; + var steps4 = Entry.Plc.Ctx.kuka_robotics_documentation.axoKrc4_v_5_x_x.Steps; + var seq5 = Entry.Plc.Ctx.kuka_robotics_documentation.axoKrc5_v_5_x_x.Sequencer; + var steps5 = Entry.Plc.Ctx.kuka_robotics_documentation.axoKrc5_v_5_x_x.Steps; + this.StartPolling(seq4, 250); + foreach (var step in steps4) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + this.StartPolling(seq5, 250); + foreach (var step in steps5) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-mitsubishi-robotics/Documentation/MitsubishiRobotics.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-mitsubishi-robotics/Documentation/MitsubishiRobotics.razor new file mode 100644 index 000000000..de3c65eeb --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-mitsubishi-robotics/Documentation/MitsubishiRobotics.razor @@ -0,0 +1,319 @@ +@page "/components-mitsubishi-robotics/Documentation/MitsubishiRobotics" +@using AXOpen.Components.Mitsubishi.Robotics +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Mitsubishi Robotics - Documentation + +
+ +
+

AXOpen.Components.Mitsubishi.Robotics

+

Mitsubishi Robotics Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Mitsubishi robots in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_componentDeclarationSnippet != null && !_componentDeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_componentRunSnippet != null && !_componentRunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ +
+

Device instantiation (hwl)

+

+ + — <MitsubishiTz535Device> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Device template (hwl)

+

+ + — <MitsubishiTz535Template> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

PROFINET IO system wiring (hwl)

+

+ + — <MitsubishiTz535IoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _componentDeclarationSnippet; + private CodeSnippet? _componentRunSnippet; + private CodeSnippet? _hwcDeviceInstanceSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private List _stepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.mitsubishi.robotics/Documentation/MitsubishiRobotics.st"; + private readonly string _plcComponentPath = "src/showcase/app/src/components.mitsubishi.robotics/Documentation/AxoCr800_v_1_x_x_Showcase.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/mitsubishi_tz535/mitsubishi_tz535_64b_inout.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.mitsubishi.robotics/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.mitsubishi.robotics/docs/AxoCr800_v_1_x_x.md"; + private readonly string _libTroublesPath = "src/components.mitsubishi.robotics/docs/TROUBLES.md"; + private readonly string _libAxoCr800StPath = "src/components.mitsubishi.robotics/ctrl/src/AxoCr800_v_1_x_x.st"; + private readonly string _libApaxYmlPath = "src/components.mitsubishi.robotics/ctrl/apax.yml"; + private readonly string _libHwlYmlPath = "src/components.mitsubishi.robotics/ctrl/assets/mitsubishi_tz535/mitsubishi_tz535_64b_inout.hwl.yml"; + private readonly string _libGsdmlPath = "src/components.mitsubishi.robotics/ctrl/assets/mitsubishi_tz535/gsdml-v2.3-mitsubishi-tz535_pn-20140619.xml"; + private Dictionary _stepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "ComponentDeclaration"); + var componentRunTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "Initialization"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponentPath); + var hwcInstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "MitsubishiTz535Device"); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "MitsubishiTz535Template"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "MitsubishiTz535IoSystem"); + await Task.WhenAll(declarationTask, componentRunTask, stepLogicTask, + hwcInstanceTask, hwcTemplateTask, hwcIoSystemTask); + _componentDeclarationSnippet = await declarationTask; + _componentRunSnippet = await componentRunTask; + _stepLogicBlocks = await stepLogicTask; + _hwcDeviceInstanceSnippet = await hwcInstanceTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _stepsBySymbol = Entry.Plc.Ctx.mitsubishi_robotics_documentation.axoCr800_v_1_x_x.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.mitsubishi_robotics_documentation.axoCr800_v_1_x_x.Sequencer; + var steps = Entry.Plc.Ctx.mitsubishi_robotics_documentation.axoCr800_v_1_x_x.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-pneumatics/Documentation/PneumaticsShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-pneumatics/Documentation/PneumaticsShowcase.razor new file mode 100644 index 000000000..92d8ae2e2 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-pneumatics/Documentation/PneumaticsShowcase.razor @@ -0,0 +1,277 @@ +@page "/components-pneumatics/Documentation/PneumaticsShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Pneumatics - Documentation + +
+ +
+

AXOpen.Components.Pneumatics

+

Pneumatics Showcase

+

+ AxoCylinder component for controlling pneumatic cylinders with move-in / move-out / stop actions, + sensor feedback, and configurable suspend/abort conditions. + Use this page as a practical reference for integrating pneumatic components in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run component commands directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+ +
+

Declaration and HW I/O assignment (ST)

+

+ + — <DeclarationAndHWIO_Assignement> region +

+ @if (_declarationSnippet != null && !_declarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Run method (ST)

+

+ + — <Pneumatic_Run> region +

+ @if (_runSnippet != null && !_runSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ +
+

Device instantiation (hwl)

+

+ + — <AventicsPneumaticsDevice> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Device template (hwl)

+

+ + — <AventicsPneumaticsTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

PROFINET IO system wiring (hwl)

+

+ + — <AventicsPneumaticsIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _declarationSnippet; + private CodeSnippet? _runSnippet; + private CodeSnippet? _hwcDeviceInstanceSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.pneumatics/Documentation/AxoCylinder.st"; + private readonly string _plcShowcasePath = "src/showcase/app/src/components.pneumatics/Documentation/PneumaticsShowcase.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/AventicsPneumatics/AventicsPneumaticsAES.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.pneumatics/docs/README.md"; + private readonly string _libAxoCylinderPath = "src/components.pneumatics/docs/AxoCylinder.md"; + private readonly string _libTroublesPath = "src/components.pneumatics/docs/TROUBLES.md"; + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "DeclarationAndHWIO_Assignement"); + var runTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "Pneumatic_Run"); + var hwcInstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "AventicsPneumaticsDevice"); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "AventicsPneumaticsTemplate"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "AventicsPneumaticsIoSystem"); + await Task.WhenAll(declarationTask, runTask, hwcInstanceTask, hwcTemplateTask, hwcIoSystemTask); + _declarationSnippet = await declarationTask; + _runSnippet = await runTask; + _hwcDeviceInstanceSnippet = await hwcInstanceTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.pneumatics_documentation.axoCylinder.AxoCylinder_, 250); + } +} + +@* ================================================================== *@ +@* DocFX snippet markers — do not render. *@ +@* These regions exist solely for documentation extraction by *@ +@* /axopen-docs via [!code-html[]] directives in docs/{ComponentName}.md. *@ +@* Do not remove or rename. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-drives/Documentation/RexrothDrives.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-drives/Documentation/RexrothDrives.razor new file mode 100644 index 000000000..1e05171b3 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-drives/Documentation/RexrothDrives.razor @@ -0,0 +1,547 @@ +@page "/components-rexroth-drives/Documentation/RexrothDrives" +@using AXOpen.Components.Rexroth.Drives +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Rexroth Drives - Documentation + +
+ +
+

AXOpen.Components.Rexroth.Drives

+

Rexroth Drives Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Bosch Rexroth drives (IndraDrive, ctrlX DRIVE) in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+
+ + +
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp1DeclarationSnippet != null && !_comp1DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp1RunSnippet != null && !_comp1RunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ +
+

Device instantiation (hwl)

+

+ + — <RexrothIndraDriveDevice> region +

+ @if (_hwcIndraDriveDeviceSnippet != null && !_hwcIndraDriveDeviceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Device template (hwl)

+

+ + — <RexrothIndraDriveTemplate> region +

+ @if (_hwcIndraDriveTemplateSnippet != null && !_hwcIndraDriveTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

PROFINET IO system wiring (hwl)

+

+ + — <RexrothIndraDriveIoSystem> region +

+ @if (_hwcIndraDriveIoSystemSnippet != null && !_hwcIndraDriveIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_comp1StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _comp1StepLogicBlocks) + { + _comp1StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp2DeclarationSnippet != null && !_comp2DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp2RunSnippet != null && !_comp2RunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ +
+

Device instantiation (hwl)

+

+ + — <RexrothCtrlxDriveDevice> region +

+ @if (_hwcCtrlxDriveDeviceSnippet != null && !_hwcCtrlxDriveDeviceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Device template (hwl)

+

+ + — <RexrothCtrlxDriveTemplate> region +

+ @if (_hwcCtrlxDriveTemplateSnippet != null && !_hwcCtrlxDriveTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

PROFINET IO system wiring (hwl)

+

+ + — <RexrothCtrlxDriveIoSystem> region +

+ @if (_hwcCtrlxDriveIoSystemSnippet != null && !_hwcCtrlxDriveIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_comp2StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _comp2StepLogicBlocks) + { + _comp2StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // Component 1 (IndraDrive) snippets + private CodeSnippet? _comp1DeclarationSnippet; + private CodeSnippet? _comp1RunSnippet; + private List _comp1StepLogicBlocks = new(); + // Component 2 (ctrlX DRIVE XSC) snippets + private CodeSnippet? _comp2DeclarationSnippet; + private CodeSnippet? _comp2RunSnippet; + private List _comp2StepLogicBlocks = new(); + // IndraDrive HWC snippets + private CodeSnippet? _hwcIndraDriveDeviceSnippet; + private CodeSnippet? _hwcIndraDriveTemplateSnippet; + private CodeSnippet? _hwcIndraDriveIoSystemSnippet; + // ctrlX Drive HWC snippets + private CodeSnippet? _hwcCtrlxDriveDeviceSnippet; + private CodeSnippet? _hwcCtrlxDriveTemplateSnippet; + private CodeSnippet? _hwcCtrlxDriveIoSystemSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.rexroth.drives/Documentation/RexrothDrives.st"; + private readonly string _plcComponentPath = "src/showcase/app/src/components.rexroth.drives/Documentation/AxoIndraDrive_Showcase.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.rexroth.drives/Documentation/AxoCtrlxDriveXsc_Showcase.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcIndraDriveTemplatePath = "src/showcase/app/hwc/library_templates/rexroth_indradrive/rexroth_indradrive.hwl.yml"; + private readonly string _hwcCtrlxDriveTemplatePath = "src/showcase/app/hwc/library_templates/rexroth_ctrlx_drive/rexroth_ctrlx_drive_xcs.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.rexroth.drives/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.rexroth.drives/docs/AxoIndraDrive.md"; + private readonly string _libComponent2DocPath = "src/components.rexroth.drives/docs/AxoCtrlxDriveXsc.md"; + private readonly string _libTroublesPath = "src/components.rexroth.drives/docs/TROUBLES.md"; + private readonly string _libAxoIndraDriveStPath = "src/components.rexroth.drives/ctrl/src/AxoIndraDrive/AxoIndraDrive.st"; + private readonly string _libAxoCtrlxDriveXscStPath = "src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st"; + private readonly string _libApaxYmlPath = "src/components.rexroth.drives/ctrl/apax.yml"; + private Dictionary _comp1StepsBySymbol = new(); + private Dictionary _comp2StepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + // Component 1 snippets + var comp1DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "ComponentDeclaration"); + var comp1RunTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "Initialization"); + var comp1StepTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponentPath); + // Component 2 snippets + var comp2DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "ComponentDeclaration"); + var comp2RunTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "Initialization"); + var comp2StepTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent2Path); + // IndraDrive HWC snippets + var hwcIndraDriveDeviceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "RexrothIndraDriveDevice"); + var hwcIndraDriveTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcIndraDriveTemplatePath, "RexrothIndraDriveTemplate"); + var hwcIndraDriveIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "RexrothIndraDriveIoSystem"); + // ctrlX Drive HWC snippets + var hwcCtrlxDriveDeviceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "RexrothCtrlxDriveDevice"); + var hwcCtrlxDriveTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcCtrlxDriveTemplatePath, "RexrothCtrlxDriveTemplate"); + var hwcCtrlxDriveIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "RexrothCtrlxDriveIoSystem"); + await Task.WhenAll(comp1DeclTask, comp1RunTask, comp1StepTask, + comp2DeclTask, comp2RunTask, comp2StepTask, + hwcIndraDriveDeviceTask, hwcIndraDriveTemplateTask, hwcIndraDriveIoSystemTask, + hwcCtrlxDriveDeviceTask, hwcCtrlxDriveTemplateTask, hwcCtrlxDriveIoSystemTask); + _comp1DeclarationSnippet = await comp1DeclTask; + _comp1RunSnippet = await comp1RunTask; + _comp1StepLogicBlocks = await comp1StepTask; + _comp2DeclarationSnippet = await comp2DeclTask; + _comp2RunSnippet = await comp2RunTask; + _comp2StepLogicBlocks = await comp2StepTask; + _hwcIndraDriveDeviceSnippet = await hwcIndraDriveDeviceTask; + _hwcIndraDriveTemplateSnippet = await hwcIndraDriveTemplateTask; + _hwcIndraDriveIoSystemSnippet = await hwcIndraDriveIoSystemTask; + _hwcCtrlxDriveDeviceSnippet = await hwcCtrlxDriveDeviceTask; + _hwcCtrlxDriveTemplateSnippet = await hwcCtrlxDriveTemplateTask; + _hwcCtrlxDriveIoSystemSnippet = await hwcCtrlxDriveIoSystemTask; + _comp1StepsBySymbol = Entry.Plc.Ctx.rexroth_drives_documentation.axoIndraDrive.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _comp2StepsBySymbol = Entry.Plc.Ctx.rexroth_drives_documentation.axoCtrlxDriveXsc.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var comp1Seq = Entry.Plc.Ctx.rexroth_drives_documentation.axoIndraDrive.Sequencer; + var comp1Steps = Entry.Plc.Ctx.rexroth_drives_documentation.axoIndraDrive.Steps; + var comp2Seq = Entry.Plc.Ctx.rexroth_drives_documentation.axoCtrlxDriveXsc.Sequencer; + var comp2Steps = Entry.Plc.Ctx.rexroth_drives_documentation.axoCtrlxDriveXsc.Steps; + this.StartPolling(comp1Seq, 250); + foreach (var step in comp1Steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + this.StartPolling(comp2Seq, 250); + foreach (var step in comp2Steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-press/Documentation/RexrothPress.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-press/Documentation/RexrothPress.razor new file mode 100644 index 000000000..c4793a9c1 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-press/Documentation/RexrothPress.razor @@ -0,0 +1,315 @@ +@page "/components-rexroth-press/Documentation/RexrothPress" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Rexroth Press - Documentation + +
+ +
+

AXOpen.Components.Rexroth.Press

+

Rexroth Press Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Bosch Rexroth Smart Function Kit press systems in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_componentDeclarationSnippet != null && !_componentDeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_componentRunSnippet != null && !_componentRunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ +
+

Device instantiation (hwl)

+

+ + — <RexrothSfkPressDevice> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Device template (hwl)

+

+ + — <RexrothSfkPressTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

PROFINET IO system wiring (hwl)

+

+ + — <RexrothSfkPressIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _componentDeclarationSnippet; + private CodeSnippet? _componentRunSnippet; + private CodeSnippet? _hwcDeviceInstanceSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private List _stepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.rexroth.press/Documentation/RexrothPress.st"; + private readonly string _plcComponentPath = "src/showcase/app/src/components.rexroth.press/Documentation/AxoSmartFunctionKit_v_4_x_x_Showcase.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/rexroth_sfk_press/rexroth_sfk_press.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.rexroth.press/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.rexroth.press/docs/AxoSmartFunctionKit_v_4_x_x.md"; + private readonly string _libTroublesPath = "src/components.rexroth.press/docs/TROUBLES.md"; + private readonly string _libAxoSmartFunctionKitStPath = "src/components.rexroth.press/ctrl/src/AxoSmartFunctionKit_v_4_x_x.st"; + private readonly string _libApaxYmlPath = "src/components.rexroth.press/ctrl/apax.yml"; + private Dictionary _stepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "ComponentDeclaration"); + var componentRunTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "Initialization"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponentPath); + var hwcInstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "RexrothSfkPressDevice"); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "RexrothSfkPressTemplate"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "RexrothSfkPressIoSystem"); + await Task.WhenAll(declarationTask, componentRunTask, stepLogicTask, + hwcInstanceTask, hwcTemplateTask, hwcIoSystemTask); + _componentDeclarationSnippet = await declarationTask; + _componentRunSnippet = await componentRunTask; + _stepLogicBlocks = await stepLogicTask; + _hwcDeviceInstanceSnippet = await hwcInstanceTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _stepsBySymbol = Entry.Plc.Ctx.rexroth_press_documentation.axoSmartFunctionKit_v_4_x_x.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.rexroth_press_documentation.axoSmartFunctionKit_v_4_x_x.Sequencer; + var steps = Entry.Plc.Ctx.rexroth_press_documentation.axoSmartFunctionKit_v_4_x_x.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-tightening/Documentation/RexrothTightening.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-tightening/Documentation/RexrothTightening.razor new file mode 100644 index 000000000..eb1db89c7 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-rexroth-tightening/Documentation/RexrothTightening.razor @@ -0,0 +1,522 @@ +@page "/components-rexroth-tightening/Documentation/RexrothTightening" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Rexroth Tightening - Documentation + +
+ +
+

AXOpen.Components.Rexroth.Tightening

+

Rexroth Tightening Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Bosch Rexroth tightening controllers in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp1DeclarationSnippet != null && !_comp1DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp1RunSnippet != null && !_comp1RunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <RexrothCs351Device> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ + — <RexrothCs351Template> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <RexrothCs351IoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_comp1StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _comp1StepLogicBlocks) + { + _comp1StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp2DeclarationSnippet != null && !_comp2DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp2RunSnippet != null && !_comp2RunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <RexrothCs351Device> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ + — <RexrothCs351Template> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <RexrothCs351IoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_comp2StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _comp2StepLogicBlocks) + { + _comp2StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _comp1DeclarationSnippet; + private CodeSnippet? _comp1RunSnippet; + private CodeSnippet? _comp2DeclarationSnippet; + private CodeSnippet? _comp2RunSnippet; + private CodeSnippet? _hwcDeviceInstanceSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private List _comp1StepLogicBlocks = new(); + private List _comp2StepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.rexroth.tightening/Documentation/RexrothTightening.st"; + private readonly string _plcComponent1Path = "src/showcase/app/src/components.rexroth.tightening/Documentation/Axo_CS351_compact_Showcase.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.rexroth.tightening/Documentation/Axo_CS351_compact_Showcase2.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/rexroth_tightening_cs351/rexroth_tightening_cs351.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.rexroth.tightening/docs/README.md"; + private readonly string _libComponentDocPath = "src/components.rexroth.tightening/docs/Axo_CS351_compact.md"; + private readonly string _libTroublesPath = "src/components.rexroth.tightening/docs/TROUBLES.md"; + private readonly string _libAxoCs351StPath = "src/components.rexroth.tightening/ctrl/src/Axo_CS351_compact/Axo_CS351_compact.st"; + private readonly string _libApaxYmlPath = "src/components.rexroth.tightening/ctrl/apax.yml"; + private readonly string _libHwlYmlPath = "src/components.rexroth.tightening/ctrl/assets/rexroth_tightening_cs351/rexroth_tightening_cs351.hwl.yml"; + private readonly string _libGsdmlPath = "src/components.rexroth.tightening/ctrl/assets/rexroth_tightening_cs351/GSDML-V2.0-Rexroth-Schraubsystem350-20090127.xml"; + private Dictionary _comp1StepsBySymbol = new(); + private Dictionary _comp2StepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var comp1DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "ComponentDeclaration"); + var comp1RunTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "Initialization"); + var comp1StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent1Path); + var comp2DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "ComponentDeclaration"); + var comp2RunTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "Initialization"); + var comp2StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent2Path); + var hwcInstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "RexrothCs351Device"); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "RexrothCs351Template"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "RexrothCs351IoSystem"); + await Task.WhenAll(comp1DeclTask, comp1RunTask, comp1StepsTask, + comp2DeclTask, comp2RunTask, comp2StepsTask, + hwcInstanceTask, hwcTemplateTask, hwcIoSystemTask); + _comp1DeclarationSnippet = await comp1DeclTask; + _comp1RunSnippet = await comp1RunTask; + _comp1StepLogicBlocks = await comp1StepsTask; + _comp2DeclarationSnippet = await comp2DeclTask; + _comp2RunSnippet = await comp2RunTask; + _comp2StepLogicBlocks = await comp2StepsTask; + _hwcDeviceInstanceSnippet = await hwcInstanceTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _comp1StepsBySymbol = Entry.Plc.Ctx.rexroth_tightening_documentation.axo_CS351_compact.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _comp2StepsBySymbol = Entry.Plc.Ctx.rexroth_tightening_documentation.axo_CS351_compact_2.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq1 = Entry.Plc.Ctx.rexroth_tightening_documentation.axo_CS351_compact.Sequencer; + var steps1 = Entry.Plc.Ctx.rexroth_tightening_documentation.axo_CS351_compact.Steps; + var seq2 = Entry.Plc.Ctx.rexroth_tightening_documentation.axo_CS351_compact_2.Sequencer; + var steps2 = Entry.Plc.Ctx.rexroth_tightening_documentation.axo_CS351_compact_2.Steps; + this.StartPolling(seq1, 250); + foreach (var step in steps1) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + this.StartPolling(seq2, 250); + foreach (var step in steps2) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-robotics/Documentation/RoboticsShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-robotics/Documentation/RoboticsShowcase.razor new file mode 100644 index 000000000..c93d5b6ec --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-robotics/Documentation/RoboticsShowcase.razor @@ -0,0 +1,141 @@ +@page "/components-robotics/Documentation/RoboticsShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Robotics - Documentation + +
+ +
+

AXOpen.Components.Robotics

+

Robotics (Base) Showcase

+

+ Generic robotics base library providing abstract interfaces and common types for vendor-specific robot integrations. + See the vendor-specific pages (ABB, KUKA, UR, Mitsubishi) for concrete component demos. +

+
+
+ +
+
+

Live Demo Controls

+

Automatic rendering of the robotics base documentation context.

+
+ + +
+ + +
+ +
+ The base robotics context has no components declared. Visit the vendor-specific pages for live demos: + +
+
+
+
+
+
+
+
+@code { + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.robotics/Documentation/Robotics.st"; + // Library resource paths + private readonly string _libReadmePath = "src/components.robotics/docs/README.md"; + private readonly string _libUtilitiesDocPath = "src/components.robotics/docs/RoboticsUtilities.md"; + private readonly string _libVendorDocPath = "src/components.robotics/docs/VendorImplementations.md"; + private readonly string _libTroublesPath = "src/components.robotics/docs/TROUBLES.md"; + // Library source paths + private readonly string _libAxoRobotStatusPath = "src/components.robotics/ctrl/src/AxoRobotics/AxoRobot_Status.st"; + private readonly string _libCalculateDistancePath = "src/components.robotics/ctrl/src/AxoRobotics/CalculateDistance.st"; + private readonly string _libCoordsNearlyEqualPath = "src/components.robotics/ctrl/src/AxoRobotics/CoordinatesAreNearlyEqual.st"; + private readonly string _libIsNearlyEqualPath = "src/components.robotics/ctrl/src/AxoRobotics/IsNearlyEqual.st"; + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.robotics_documentation, 250); + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@* components.robotics is a utility library — no renderable component *@ +@* instances exist. The context holds shared types (coordinates, *@ +@* movement params) and utility functions (CalculateDistance, etc.). *@ +@* See vendor-specific robotics pages (ABB, KUKA, Mitsubishi, UR) for *@ +@* concrete renderable components. *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-siem-communication/Documentation/SiemCommunication.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-siem-communication/Documentation/SiemCommunication.razor new file mode 100644 index 000000000..aa3ffb4fd --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-siem-communication/Documentation/SiemCommunication.razor @@ -0,0 +1,286 @@ +@page "/components-siem-communication/Documentation/SiemCommunication" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Siemens Communication - Documentation + +
+ +
+

AXOpen.Components.Siem.Communication

+

Siemens Communication Showcase

+

+ Point-to-point serial communication via Siemens ET200SP CM PtP module. + Use this page as a practical reference for integrating Siemens communication components in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_componentDeclarationSnippet != null && !_componentDeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_componentRunSnippet != null && !_componentRunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ +
+

Device template (hwl)

+

+ + — <SiemCommunicationTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

PROFINET IO system wiring (hwl)

+

+ + — <SiemCommunicationIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _componentDeclarationSnippet; + private CodeSnippet? _componentRunSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private List _stepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.siem.communication/Documentation/SiemCommunication.st"; + private readonly string _plcComponentPath = "src/showcase/app/src/components.siem.communication/Documentation/AxoCmPtp_Showcase.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/siemens_communication/et200sp.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.siem.communication/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.siem.communication/docs/AxoCmPtp_Showcase.md"; + private readonly string _libTroublesPath = "src/components.siem.communication/docs/TROUBLES.md"; + private Dictionary _stepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "ComponentDeclaration"); + var componentRunTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "Initialization"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponentPath); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "SiemCommunicationTemplate"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "SiemCommunicationIoSystem"); + await Task.WhenAll(declarationTask, componentRunTask, stepLogicTask, + hwcTemplateTask, hwcIoSystemTask); + _componentDeclarationSnippet = await declarationTask; + _componentRunSnippet = await componentRunTask; + _stepLogicBlocks = await stepLogicTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _stepsBySymbol = Entry.Plc.Ctx.siem_communication_documentation.axoCmPtp.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.siem_communication_documentation.axoCmPtp.Sequencer; + var steps = Entry.Plc.Ctx.siem_communication_documentation.axoCmPtp.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-siem-identification/Documentation/SiemIdentification.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-siem-identification/Documentation/SiemIdentification.razor new file mode 100644 index 000000000..18ffa3040 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-siem-identification/Documentation/SiemIdentification.razor @@ -0,0 +1,833 @@ +@page "/components-siem-identification/Documentation/SiemIdentification" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Siemens Identification - Documentation + +
+ +
+

AXOpen.Components.Siem.Identification

+

Siemens Identification Showcase

+

+ RFID readers via Ident profile, IO-Link, and cyclic communication using Siemens RF186C / RF260R / RF340R hardware. + Use this page as a practical reference for integrating Siemens identification components in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_c1DeclarationSnippet != null && !_c1DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_c1InitSnippet != null && !_c1InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device template — RF186C (hwl)

+

+ + — <SiemIdentificationTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <SiemIdentificationIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_c1StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c1StepLogicBlocks) + { + _c1StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_c2DeclarationSnippet != null && !_c2DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_c2InitSnippet != null && !_c2InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device template — RF186C (hwl)

+

+ + — <SiemIdentificationTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <SiemIdentificationIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_c2StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c2StepLogicBlocks) + { + _c2StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_c3DeclarationSnippet != null && !_c3DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_c3InitSnippet != null && !_c3InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device template — RF186C (hwl)

+

+ + — <SiemIdentificationTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <SiemIdentificationIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_c3StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c3StepLogicBlocks) + { + _c3StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_c4DeclarationSnippet != null && !_c4DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_c4InitSnippet != null && !_c4InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device template — RF186C (hwl)

+

+ + — <SiemIdentificationTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <SiemIdentificationIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_c4StepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _c4StepLogicBlocks) + { + _c4StepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // Component 1 snippets + private CodeSnippet? _c1DeclarationSnippet; + private CodeSnippet? _c1InitSnippet; + private List _c1StepLogicBlocks = new(); + // Component 2 snippets + private CodeSnippet? _c2DeclarationSnippet; + private CodeSnippet? _c2InitSnippet; + private List _c2StepLogicBlocks = new(); + // Component 3 snippets + private CodeSnippet? _c3DeclarationSnippet; + private CodeSnippet? _c3InitSnippet; + private List _c3StepLogicBlocks = new(); + // Component 4 snippets + private CodeSnippet? _c4DeclarationSnippet; + private CodeSnippet? _c4InitSnippet; + private List _c4StepLogicBlocks = new(); + // HWC snippets + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.siem.identification/Documentation/SiemIdentification.st"; + private readonly string _plcComponent1Path = "src/showcase/app/src/components.siem.identification/Documentation/Axo_IdentDevice_Showcase.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.siem.identification/Documentation/AxoIOLink_RF200Device_Showcase.st"; + private readonly string _plcComponent3Path = "src/showcase/app/src/components.siem.identification/Documentation/AxoSimaticIdentCyclic_Showcase.st"; + private readonly string _plcComponent4Path = "src/showcase/app/src/components.siem.identification/Documentation/AxoSimaticIdentCyclic_Showcase2.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/siemens_identification/rf186c.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.siem.identification/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.siem.identification/docs/Axo_IdentDevice.md"; + private readonly string _libComponent2DocPath = "src/components.siem.identification/docs/AxoIOLink_RF200Device.md"; + private readonly string _libComponent3DocPath = "src/components.siem.identification/docs/AxoSimaticIdentCyclic.md"; + private readonly string _libTroublesPath = "src/components.siem.identification/docs/TROUBLES.md"; + private Dictionary _c1StepsBySymbol = new(); + private Dictionary _c2StepsBySymbol = new(); + private Dictionary _c3StepsBySymbol = new(); + private Dictionary _c4StepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + // Component 1 tasks + var c1DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "ComponentDeclaration"); + var c1InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "Initialization"); + var c1StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent1Path); + // Component 2 tasks + var c2DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "ComponentDeclaration"); + var c2InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "Initialization"); + var c2StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent2Path); + // Component 3 tasks + var c3DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent3Path, "ComponentDeclaration"); + var c3InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent3Path, "Initialization"); + var c3StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent3Path); + // Component 4 tasks + var c4DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent4Path, "ComponentDeclaration"); + var c4InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent4Path, "Initialization"); + var c4StepsTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent4Path); + // HWC tasks + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "SiemIdentificationTemplate"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "SiemIdentificationIoSystem"); + await Task.WhenAll(c1DeclTask, c1InitTask, c1StepsTask, + c2DeclTask, c2InitTask, c2StepsTask, + c3DeclTask, c3InitTask, c3StepsTask, + c4DeclTask, c4InitTask, c4StepsTask, + hwcTemplateTask, hwcIoSystemTask); + _c1DeclarationSnippet = await c1DeclTask; + _c1InitSnippet = await c1InitTask; + _c1StepLogicBlocks = await c1StepsTask; + _c2DeclarationSnippet = await c2DeclTask; + _c2InitSnippet = await c2InitTask; + _c2StepLogicBlocks = await c2StepsTask; + _c3DeclarationSnippet = await c3DeclTask; + _c3InitSnippet = await c3InitTask; + _c3StepLogicBlocks = await c3StepsTask; + _c4DeclarationSnippet = await c4DeclTask; + _c4InitSnippet = await c4InitTask; + _c4StepLogicBlocks = await c4StepsTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _c1StepsBySymbol = Entry.Plc.Ctx.siem_identification_documentation.axo_IdentDevice.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c2StepsBySymbol = Entry.Plc.Ctx.siem_identification_documentation.axoIOLink_RF200Device.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c3StepsBySymbol = Entry.Plc.Ctx.siem_identification_documentation.axoSimaticIdentCyclic.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + _c4StepsBySymbol = Entry.Plc.Ctx.siem_identification_documentation.axoSimaticIdentCyclic_2.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq1 = Entry.Plc.Ctx.siem_identification_documentation.axo_IdentDevice.Sequencer; + var steps1 = Entry.Plc.Ctx.siem_identification_documentation.axo_IdentDevice.Steps; + var seq2 = Entry.Plc.Ctx.siem_identification_documentation.axoIOLink_RF200Device.Sequencer; + var steps2 = Entry.Plc.Ctx.siem_identification_documentation.axoIOLink_RF200Device.Steps; + var seq3 = Entry.Plc.Ctx.siem_identification_documentation.axoSimaticIdentCyclic.Sequencer; + var steps3 = Entry.Plc.Ctx.siem_identification_documentation.axoSimaticIdentCyclic.Steps; + var seq4 = Entry.Plc.Ctx.siem_identification_documentation.axoSimaticIdentCyclic_2.Sequencer; + var steps4 = Entry.Plc.Ctx.siem_identification_documentation.axoSimaticIdentCyclic_2.Steps; + this.StartPolling(seq1, 250); + foreach (var step in steps1) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + this.StartPolling(seq2, 250); + foreach (var step in steps2) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + this.StartPolling(seq3, 250); + foreach (var step in steps3) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + this.StartPolling(seq4, 250); + foreach (var step in steps4) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-ur-robotics/Documentation/UrRobotics.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-ur-robotics/Documentation/UrRobotics.razor new file mode 100644 index 000000000..ba7238838 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-ur-robotics/Documentation/UrRobotics.razor @@ -0,0 +1,319 @@ +@page "/components-ur-robotics/Documentation/UrRobotics" +@using AXOpen.Components.Ur.Robotics +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +UR Robotics - Documentation + +
+ +
+

AXOpen.Components.Ur.Robotics

+

Universal Robots Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Universal Robots in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+ +
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_componentDeclarationSnippet != null && !_componentDeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_componentRunSnippet != null && !_componentRunSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ +
+

Device instantiation (hwl)

+

+ + — <UrRobotDevice> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Device template (hwl)

+

+ + — <UrRobotTemplate> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

PROFINET IO system wiring (hwl)

+

+ + — <UrRobotIoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _componentDeclarationSnippet; + private CodeSnippet? _componentRunSnippet; + private CodeSnippet? _hwcDeviceInstanceSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + private List _stepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/components.ur.robotics/Documentation/UrRobotics.st"; + private readonly string _plcComponentPath = "src/showcase/app/src/components.ur.robotics/Documentation/AxoUrCb3_v_3_x_x_Showcase.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/ur_robotics/ur_robot.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.ur.robotics/docs/README.md"; + private readonly string _libComponent1DocPath = "src/components.ur.robotics/docs/AxoUrCb3_v_3_x_x_Showcase.md"; + private readonly string _libTroublesPath = "src/components.ur.robotics/docs/TROUBLES.md"; + private readonly string _libAxoUrCb3StPath = "src/components.ur.robotics/ctrl/src/AxoUrCb3/AxoUrCb3_v_3_x_x.st"; + private readonly string _libApaxYmlPath = "src/components.ur.robotics/ctrl/apax.yml"; + private readonly string _libHwlYmlPath = "src/components.ur.robotics/ctrl/assets/ur_robotics/ur_robot.hwl.yml"; + private readonly string _libGsdmlPath = "src/components.ur.robotics/ctrl/assets/ur_robotics/GSDML-V2.31-ur-UR-20160505.xml"; + private Dictionary _stepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "ComponentDeclaration"); + var componentRunTask = CodeProvider.GetTaggedRegionAsync(_plcComponentPath, "Initialization"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponentPath); + var hwcInstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "UrRobotDevice"); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "UrRobotTemplate"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "UrRobotIoSystem"); + await Task.WhenAll(declarationTask, componentRunTask, stepLogicTask, + hwcInstanceTask, hwcTemplateTask, hwcIoSystemTask); + _componentDeclarationSnippet = await declarationTask; + _componentRunSnippet = await componentRunTask; + _stepLogicBlocks = await stepLogicTask; + _hwcDeviceInstanceSnippet = await hwcInstanceTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _stepsBySymbol = Entry.Plc.Ctx.ur_robotics_documentation.axoUrCb3_v_3_x_x.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.ur_robotics_documentation.axoUrCb3_v_3_x_x.Sequencer; + var steps = Entry.Plc.Ctx.ur_robotics_documentation.axoUrCb3_v_3_x_x.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/components-zebra-vision/Documentation/ZebraVision.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-zebra-vision/Documentation/ZebraVision.razor new file mode 100644 index 000000000..89e12e22d --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/components-zebra-vision/Documentation/ZebraVision.razor @@ -0,0 +1,455 @@ +@page "/components-zebra-vision/Documentation/ZebraVision" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Zebra Vision - Documentation + +
+ +
+

AXOpen.Components.Zebra.Vision

+

Zebra Vision Showcase

+

+ This page combines runnable command widgets, live component status, and direct links to PLC source files. + Use it as a practical reference for integrating Zebra vision systems in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp1DeclarationSnippet != null && !_comp1DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp1InitSnippet != null && !_comp1InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <ZebraEa3600Device> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ + — <ZebraEa3600Template> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <ZebraEa3600IoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+ + + @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+ +
+
+ Maturity: + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_comp2DeclarationSnippet != null && !_comp2DeclarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_comp2InitSnippet != null && !_comp2InitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ +
+
+

Device instantiation (hwl)

+

+ + — <ZebraEa3600Device> region +

+ @if (_hwcDeviceInstanceSnippet != null && !_hwcDeviceInstanceSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Device template (hwl)

+

+ + — <ZebraEa3600Template> region +

+ @if (_hwcDeviceTemplateSnippet != null && !_hwcDeviceTemplateSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

PROFINET IO system wiring (hwl)

+

+ + — <ZebraEa3600IoSystem> region +

+ @if (_hwcIoSystemSnippet != null && !_hwcIoSystemSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // Component 1 snippets + private CodeSnippet? _comp1DeclarationSnippet; + private CodeSnippet? _comp1InitSnippet; + // Component 2 snippets + private CodeSnippet? _comp2DeclarationSnippet; + private CodeSnippet? _comp2InitSnippet; + // Hardware snippets + private CodeSnippet? _hwcDeviceInstanceSnippet; + private CodeSnippet? _hwcDeviceTemplateSnippet; + private CodeSnippet? _hwcIoSystemSnippet; + // Step logic + private List _stepLogicBlocks = new(); + private Dictionary _stepsBySymbol = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + // PLC source paths + private readonly string _plcContextPath = "src/showcase/app/src/components.zebra.vision/Documentation/ZebraVision.st"; + private readonly string _plcComponent1Path = "src/showcase/app/src/components.zebra.vision/Documentation/AxoEA3600_Showcase.st"; + private readonly string _plcComponent2Path = "src/showcase/app/src/components.zebra.vision/Documentation/AxoEA3600_Showcase2.st"; + // Hardware configuration paths + private readonly string _hwcPlcLineYmlPath = "src/showcase/app/hwc/plc_line.hwl.yml"; + private readonly string _hwcDeviceTemplatePath = "src/showcase/app/hwc/library_templates/zebra_ea3600/zebra_ea3600_88in6out.hwl.yml"; + // Library resource paths + private readonly string _libReadmePath = "src/components.zebra.vision/docs/README.md"; + private readonly string _libTroublesPath = "src/components.zebra.vision/docs/TROUBLES.md"; + protected override async Task OnInitializedAsync() + { + try + { + var comp1DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "ComponentDeclaration"); + var comp1InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent1Path, "Initialization"); + var comp2DeclTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "ComponentDeclaration"); + var comp2InitTask = CodeProvider.GetTaggedRegionAsync(_plcComponent2Path, "Initialization"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcComponent1Path); + var hwcInstanceTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "ZebraEa3600Device"); + var hwcTemplateTask = CodeProvider.GetTaggedRegionAsync(_hwcDeviceTemplatePath, "ZebraEa3600Template"); + var hwcIoSystemTask = CodeProvider.GetTaggedRegionAsync(_hwcPlcLineYmlPath, "ZebraEa3600IoSystem"); + await Task.WhenAll(comp1DeclTask, comp1InitTask, comp2DeclTask, comp2InitTask, + stepLogicTask, hwcInstanceTask, hwcTemplateTask, hwcIoSystemTask); + _comp1DeclarationSnippet = await comp1DeclTask; + _comp1InitSnippet = await comp1InitTask; + _comp2DeclarationSnippet = await comp2DeclTask; + _comp2InitSnippet = await comp2InitTask; + _stepLogicBlocks = await stepLogicTask; + _hwcDeviceInstanceSnippet = await hwcInstanceTask; + _hwcDeviceTemplateSnippet = await hwcTemplateTask; + _hwcIoSystemSnippet = await hwcIoSystemTask; + _stepsBySymbol = Entry.Plc.Ctx.zebra_vision_documentation.axoEA3600.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.zebra_vision_documentation.axoEA3600.Sequencer; + var steps = Entry.Plc.Ctx.zebra_vision_documentation.axoEA3600.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} + +@* ================================================================== *@ +@* DocFX snippet markers -- do not render. *@ +@* ================================================================== *@ +@if (false) +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoComponent.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoComponent.razor new file mode 100644 index 000000000..722ce1821 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoComponent.razor @@ -0,0 +1,221 @@ +@page "/core/AxoComponent" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Core — AxoComponent + +
+ +
+

AXOpen.Core

+

Component Architecture

+

+ AxoComponent is the base class for all AXOpen components. It provides standardized lifecycle management, + automatic UI rendering with header/detail sections, and a consistent restore pattern. +

+
+
+ +
+
+

AxoComponent Documentation

+

Live component views, implementation patterns, and UI integration.

+
+ + +
+ + +
+
+
+

Full Component (Header + Details)

+

Component with tasks, status, settings, diagnostics, and help sections.

+ +
+
+

Header-Only Component

+

Component with only a header section defined.

+ +
+
+

Explicit Views

+

Status and Command views rendered explicitly.

+
+ + +
+
+
+
+ +
+
+

Implementation — extending AxoComponent

+

+ Implementation region +

+ @if (_snippetImpl is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Class Definitions — Header, Tasks, Status, Settings, etc.

+

+ ClassDefinitions region. + Use ComponentHeader and ComponentDetails attributes to control UI layout. +

+ @if (_snippetClasses is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Usage — Context instantiation and execution

+

+ Using region +

+ @if (_snippetUsing is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+
+ +
+
+

Layout Attributes

+

+ Use these IEC attributes on member classes to control how the component renders in the UI: +

+
+ + + + + + + + + + + +
AttributePurpose
ComponentHeaderRenders member in the always-visible header section
ComponentDetails | "TabName"Renders member in a named detail tab (e.g., Tasks, Status, Settings)
+
+
+
+

Rendering Options

+
+ + + + + + + + + + + + +
ApproachUsage
<RenderableContentControl>Auto-layout with header/tabs. Set Presentation to Command-Control, Status-Display, etc.
<AxoComponentStatusView>Explicit status-only rendering
<AxoComponentCommandView>Explicit command-only rendering
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _snippetImpl; + private CodeSnippet? _snippetClasses; + private CodeSnippet? _snippetUsing; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcExamplePath = "src/showcase/app/src/core/AXOpen.AxoComponent/AxoComponentExample.st"; + private readonly string _plcHeaderOnlyPath = "src/showcase/app/src/core/AXOpen.AxoComponent/AxoComponentHeaderOnlyExample.st"; + private readonly string _docPath = "src/core/docs/AxoComponent.md"; + private readonly string _libStPath = "src/core/ctrl/src/AxoComponent/AxoComponent.st"; + private readonly string _docTroublesPath = "src/core/docs/TROUBLES.md"; + private readonly string _docChangelogPath = "src/core/docs/CHANGELOG.md"; + protected override async Task OnInitializedAsync() + { + try + { + var t1 = CodeProvider.GetTaggedRegionAsync(_plcExamplePath, "Implementation"); + var t2 = CodeProvider.GetTaggedRegionAsync(_plcExamplePath, "ClassDefinitions"); + var t3 = CodeProvider.GetTaggedRegionAsync(_plcExamplePath, "Using"); + await Task.WhenAll(t1, t2, t3); + _snippetImpl = await t1; + _snippetClasses = await t2; + _snippetUsing = await t3; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.myComponentExample.MyComponent, 250); + this.StartPolling(Entry.Plc.Ctx.myComponentHeaderOnlyExample, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoCore/AxoComponentExample.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoCore/AxoComponentExample.razor new file mode 100644 index 000000000..790c5b28a --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoCore/AxoComponentExample.razor @@ -0,0 +1,29 @@ +@page "/core/doc-snippets/AxoComponentExample" +@using AXOpen.Core; +@using Operon; + +

AxoComponentExample

+ +
+
+ Simple AxoComponent example +
+
+
+
+ +
+
+ +
+
+
+ // + + // +
+
+ +
diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoCore/AxoComponentHeaderOnlyExample.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoCore/AxoComponentHeaderOnlyExample.razor new file mode 100644 index 000000000..012c2b496 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoCore/AxoComponentHeaderOnlyExample.razor @@ -0,0 +1,27 @@ +@page "/core/doc-snippets/AxoComponentHeaderOnlyExample" +@using AXOpen.Core; +

AxoComponentHeaderOnlyExample

+ +
+
+ Simple AxoComponent example +
+
+
+
+ +
+
+ +
+
+
+ // + + // +
+
+ +
diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoDialogs.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoDialogs.razor new file mode 100644 index 000000000..2cc806f96 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoDialogs.razor @@ -0,0 +1,249 @@ +@page "/core/AxoDialogs" +@using AXOpen.Core; +@using AXOpen.Core.Blazor.AxoDialogs; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Core — AxoDialogs + +
+ +
+

AXOpen.Core

+

Dialogs & Alerts

+

+ AxoDialog provides interactive user prompts triggered from PLC code with configurable buttons and types. + AxoAlert shows timed notification banners. Both integrate via SignalR for real-time browser delivery. +

+
+
+ +
+
+

Dialogs Documentation

+

Interactive dialog and alert demos, PLC usage patterns, and UI integration.

+
+ + +
+
+

Dialog Controls

+

+ Use "Call ALL" to trigger dialogs, "Restore All" to reset. Dialogs appear as overlays via the AxoDialogLocator below. +

+ +
+
+

Dialog Locator

+

+ The AxoDialogLocator observes PLC objects and renders dialog overlays in the browser when triggered. +

+ +
+
+
+ +
+
+

Dialog context declaration

+

+ DialogDeclaration region +

+ @if (_snippetDecl is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Dialog execution loop

+

+ DialogExecution region +

+ @if (_snippetExec is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

ShowWithExternalClose builder pattern

+

+ DialogShowPattern region +

+ @if (_snippetShow is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Alert dialog pattern

+

+ AlertDialogPattern region +

+ @if (_snippetAlert is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+
+ +
+
+

AxoDialogLocator

+

+ Place <AxoDialogLocator> on any Blazor page that should display PLC-triggered dialogs. + It uses SignalR to receive dialog requests in real-time. +

+ +
+
+

Dialog Types

+
+ + + + + + + + + + + + + +
TypePurpose
InfoInformational message
SuccessSuccess confirmation
WarningWarning prompt
DangerCritical / danger prompt
+
+
+
+

Button Configurations

+
+ + + + + + + + + + + + +
MethodButtons
WithOk()OK
WithYesNo()Yes / No
WithYesNoCancel()Yes / No / Cancel
+
+
+
+

Dialog Answer Values

+
+ + + + + + + + + + + + + + +
ValueDescription
NoAnswerDialog still open, no user response yet
OKUser clicked OK
YesUser clicked Yes
NoUser clicked No
CancelUser clicked Cancel
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _snippetDecl; + private CodeSnippet? _snippetExec; + private CodeSnippet? _snippetShow; + private CodeSnippet? _snippetAlert; + private bool _loadingCode = true; + private readonly string _plcDialogExamplesPath = "src/showcase/app/src/core/AXOpen.Dialogs/AxoDialogExamples.st"; + private readonly string _plcDialogTestPath = "src/showcase/app/src/core/AXOpen.Dialogs/AxoDialogTest.st"; + private readonly string _plcAlertDocuPath = "src/showcase/app/src/core/AXOpen.Dialogs/AxoAlertDocuExample.st"; + private readonly string _docDialogPath = "src/core/docs/AxoDialog.md"; + private readonly string _docAlertPath = "src/core/docs/AxoAlertDialog.md"; + private readonly string _docTroublesPath = "src/core/docs/TROUBLES.md"; + private readonly string _docChangelogPath = "src/core/docs/CHANGELOG.md"; + private readonly string _razorDialogLocatorSnippet = + """"""; + protected override async Task OnInitializedAsync() + { + try + { + var t1 = CodeProvider.GetTaggedRegionAsync(_plcDialogExamplesPath, "DialogDeclaration"); + var t2 = CodeProvider.GetTaggedRegionAsync(_plcDialogExamplesPath, "DialogExecution"); + var t3 = CodeProvider.GetTaggedRegionAsync(_plcDialogTestPath, "DialogShowPattern"); + var t4 = CodeProvider.GetTaggedRegionAsync(_plcDialogTestPath, "AlertDialogPattern"); + await Task.WhenAll(t1, t2, t3, t4); + _snippetDecl = await t1; + _snippetExec = await t2; + _snippetShow = await t3; + _snippetAlert = await t4; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.AxoDialogs, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoLogger.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoLogger.razor new file mode 100644 index 000000000..801a48ede --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoLogger.razor @@ -0,0 +1,260 @@ +@page "/core/AxoLogger" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Core — AxoLogger + +
+ +
+

AXOpen.Core

+

AxoLogger

+

+ AxoLogger bridges PLC logging to .NET. Log entries are queued on the PLC side and + dequeued asynchronously by a .NET Serilog logger. Supports severity levels, sender + identity tracking, and message codes for structured log lookup. +

+
+
+ +
+
+

AxoLogger Documentation

+

Live demo, PLC logging patterns, log levels, and .NET initialization.

+
+ + +
+
+

Logger State

+ + +
+
+

Latest Log Entry

+ +
+
+
+ +
+
+

Declare loggers

+

+ DeclareLoggers region +

+ @if (_snippetDeclareLoggers is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Inject & use loggers

+

+ InjectLoggers region +

+ @if (_snippetInjectLoggers is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Log from nested object

+

+ UseLoggerFromInnerObject region +

+ @if (_snippetUseLogger is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Log levels

+

+ LogLevels region +

+ @if (_snippetLogLevels is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Set minimum log level

+

+ SetMinimumLevel region +

+ @if (_snippetSetMinLevel is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Log with sender identity

+

+ LogWithSender region +

+ @if (_snippetLogWithSender is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Log with message code

+

+ LogWithMessageCode region +

+ @if (_snippetLogWithCode is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+
+ +
+
+

StartDequeuing — forward PLC logs to Serilog

+

+ AxoLoggerStartDequeuing region +

+ @if (_snippetStartDequeuing is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

AxoApplication builder

+

+ AxoApplicationBuilder region +

+ @if (_snippetAxoAppBuilder is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // PLC snippets + private CodeSnippet? _snippetDeclareLoggers; + private CodeSnippet? _snippetInjectLoggers; + private CodeSnippet? _snippetUseLogger; + private CodeSnippet? _snippetLogLevels; + private CodeSnippet? _snippetSetMinLevel; + private CodeSnippet? _snippetLogWithSender; + private CodeSnippet? _snippetLogWithCode; + // .NET snippets + private CodeSnippet? _snippetStartDequeuing; + private CodeSnippet? _snippetAxoAppBuilder; + private bool _loadingCode = true; + // ---- PLC source paths ---- + private readonly string _plcLoggerPath = "src/showcase/app/src/core/AXOpen.Logging/AxoLoggerDocuExample.st"; + private readonly string _libLoggerStPath = "src/core/ctrl/src/AxoLogger/AxoLogger.st"; + private readonly string _libLoggerCsPath = "src/core/src/AXOpen.Core/AxoLogger/AxoLogger.cs"; + private readonly string _programCsPath = "src/showcase/app/ix-blazor/showcase.blazor/Program.cs"; + // ---- Documentation paths ---- + private readonly string _docLoggerPath = "src/core/docs/AxoLogger.md"; + private readonly string _docTroublesPath = "src/core/docs/TROUBLES.md"; + private readonly string _docChangelogPath = "src/core/docs/CHANGELOG.md"; + protected override async Task OnInitializedAsync() + { + try + { + var t1 = CodeProvider.GetTaggedRegionAsync(_plcLoggerPath, "DeclareLoggers"); + var t2 = CodeProvider.GetTaggedRegionAsync(_plcLoggerPath, "InjectLoggers"); + var t3 = CodeProvider.GetTaggedRegionAsync(_plcLoggerPath, "UseLoggerFromInnerObject"); + var t4 = CodeProvider.GetTaggedRegionAsync(_plcLoggerPath, "LogLevels"); + var t5 = CodeProvider.GetTaggedRegionAsync(_plcLoggerPath, "SetMinimumLevel"); + var t6 = CodeProvider.GetTaggedRegionAsync(_plcLoggerPath, "LogWithSender"); + var t7 = CodeProvider.GetTaggedRegionAsync(_plcLoggerPath, "LogWithMessageCode"); + var t8 = CodeProvider.GetTaggedRegionAsync(_programCsPath, "AxoLoggerStartDequeuing"); + var t9 = CodeProvider.GetTaggedRegionAsync(_programCsPath, "AxoApplicationBuilder"); + await Task.WhenAll(t1, t2, t3, t4, t5, t6, t7, t8, t9); + _snippetDeclareLoggers = await t1; + _snippetInjectLoggers = await t2; + _snippetUseLogger = await t3; + _snippetLogLevels = await t4; + _snippetSetMinLevel = await t5; + _snippetLogWithSender = await t6; + _snippetLogWithCode = await t7; + _snippetStartDequeuing = await t8; + _snippetAxoAppBuilder = await t9; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.AxoLoggers, 500); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoMessaging.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoMessaging.razor new file mode 100644 index 000000000..ed447e763 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoMessaging.razor @@ -0,0 +1,246 @@ +@page "/core/AxoMessaging" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Core — AxoMessaging + +
+ +
+

AXOpen.Core

+

Messaging & TextLists

+

+ AxoMessenger provides categorized PLC messages with acknowledgement support. + AxoTextList maps message codes to human-readable text. +

+
+
+ +
+
+

Messaging Documentation

+

Live demos, PLC usage patterns for messengers, text lists, and logging.

+
+ + +
+
+

Messenger — Diagnostics View

+ +
+
+

Messenger — Command-Control View

+ +
+
+
+ +
+
+

Activate — single call

+

+ Activate region +

+ @if (_snippetActivate is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

ActivateOnCondition — cyclical call

+

+ ActivateOnCondition region +

+ @if (_snippetCondition is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

RequireAcknowledgement / DoNotRequireAcknowledgement

+

+ +

+ @if (_snippetReqAck is { IsError: false }) + { + + } + @if (_snippetNoAck is { IsError: false }) + { + + } +
+
+

PLC TextList declaration

+

+ PlcTextListDeclaration region +

+ @if (_snippetPlcTextList is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Anti-pattern: Invalid implementation

+

+ InvalidImplementation region +

+ @if (_snippetInvalid is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+
+ +
+
+

Live Demo

+ +
+
+

TextList with levels defined

+

+ AxoTextListWithLevelsDefined region +

+ @if (_snippetTextListLevels is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

TextList without prefix

+

+ AxoTextListWithoutPrefix region +

+ @if (_snippetTextListNoPrefix is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

TextList without levels defined

+

+ AxoTextListWithoutLevelsDefined region +

+ @if (_snippetTextListNoLevels is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // Messenger snippets + private CodeSnippet? _snippetActivate; + private CodeSnippet? _snippetCondition; + private CodeSnippet? _snippetReqAck; + private CodeSnippet? _snippetNoAck; + private CodeSnippet? _snippetPlcTextList; + private CodeSnippet? _snippetInvalid; + // TextList snippets + private CodeSnippet? _snippetTextListLevels; + private CodeSnippet? _snippetTextListNoPrefix; + private CodeSnippet? _snippetTextListNoLevels; + private bool _loadingCode = true; + private readonly string _plcMessengerDocuPath = "src/showcase/app/src/core/AXOpen.Messaging/AxoStaticMessengerDocuExample.st"; + private readonly string _plcTextListPath = "src/showcase/app/src/core/AXOpen.TextList/AxoTextListExample.st"; + private readonly string _docMessengerPath = "src/core/docs/AxoMessenger.md"; + private readonly string _docTextListPath = "src/core/docs/AxoTextList.md"; + private readonly string _docTroublesPath = "src/core/docs/TROUBLES.md"; + private readonly string _docChangelogPath = "src/core/docs/CHANGELOG.md"; + protected override async Task OnInitializedAsync() + { + try + { + var t1 = CodeProvider.GetTaggedRegionAsync(_plcMessengerDocuPath, "Activate"); + var t2 = CodeProvider.GetTaggedRegionAsync(_plcMessengerDocuPath, "ActivateOnCondition"); + var t3 = CodeProvider.GetTaggedRegionAsync(_plcMessengerDocuPath, "RequireAcknowledgement"); + var t4 = CodeProvider.GetTaggedRegionAsync(_plcMessengerDocuPath, "DoNotRequireAcknowledgement"); + var t5 = CodeProvider.GetTaggedRegionAsync(_plcMessengerDocuPath, "PlcTextListDeclaration"); + var t6 = CodeProvider.GetTaggedRegionAsync(_plcMessengerDocuPath, "InvalidImplementation"); + var t7 = CodeProvider.GetTaggedRegionAsync(_plcTextListPath, "AxoTextListWithLevelsDefined"); + var t8 = CodeProvider.GetTaggedRegionAsync(_plcTextListPath, "AxoTextListWithoutPrefix"); + var t9 = CodeProvider.GetTaggedRegionAsync(_plcTextListPath, "AxoTextListWithoutLevelsDefined"); + await Task.WhenAll(t1, t2, t3, t4, t5, t6, t7, t8, t9); + _snippetActivate = await t1; + _snippetCondition = await t2; + _snippetReqAck = await t3; + _snippetNoAck = await t4; + _snippetPlcTextList = await t5; + _snippetInvalid = await t6; + _snippetTextListLevels = await t7; + _snippetTextListNoPrefix = await t8; + _snippetTextListNoLevels = await t9; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.AxoMessengersDocu, 250); + this.StartPolling(Entry.Plc.Ctx.AxoTextListExampleContext, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoSequencer.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoSequencer.razor new file mode 100644 index 000000000..091952268 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoSequencer.razor @@ -0,0 +1,363 @@ +@page "/core/AxoSequencer" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Core — AxoSequencer + +
+ +
+

AXOpen.Core

+

Sequencer & Step Coordination

+

+ AxoSequencer triggers steps in order, supports step-by-step / continuous modes, + and provides analytics. AxoSequencerContainer wraps a sequencer with its context for reuse. +

+
+
+ +
+
+

AxoSequencer Documentation

+

Live sequencer demo, PLC usage patterns, step logic visualization, and API reference.

+
+ + +
+
+

Sequencer Controls

+ + +
+
+

Sequencer View

+ +
+
+

AxoSequencerContainer

+

Wraps a sequencer with its own context for modular reuse.

+ +
+
+
+ +
+
+

Initialize

+

+ Initialize region +

+ @if (_snippetInit is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Open (cyclical call before logic)

+

+ Open region +

+ @if (_snippetOpen is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Simple Step

+

+ SimpleStep region +

+ @if (_snippetSimple is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Step with Enable condition

+

+ EnableStep region +

+ @if (_snippetEnable is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

Full Step (all parameters)

+

+ FullStep region +

+ @if (_snippetFull is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

SequencerContainer — MAIN method

+

+ MAIN region +

+ @if (_snippetContainerMain is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+
+ +
+ +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+ +
+
+

Key Methods

+
+ + + + + + + + + + + + + + + +
MethodPurpose
Open()Must be called cyclically before step logic; returns TRUE when ready to execute steps
MoveNext()Terminates current step and advances to the next
RequestStep(step)Jumps to a specific step (forward = same cycle, backward = next cycle)
CompleteSequence()Terminates current step and finishes the sequence
GetCoordinatorState()Returns Idle / Configuring / Running
GetNumberOfConfiguredSteps()Returns the count of configured steps
+
+
+
+

Stepping Modes

+

Set via SetSteppingMode(), read via GetSteppingMode():

+
+ + + + + + + + + + + +
ModeBehavior
ContinuousSteps advance automatically (default)
StepByStepEach step must be manually started via StepIn command
+
+
+
+

Sequence Modes

+

Set via SetSequenceMode(), read via GetSequenceMode():

+
+ + + + + + + + + + + +
ModeBehavior
CyclicAfter CompleteSequence(), sequence restarts from the beginning (default)
RunOnceAfter CompleteSequence(), execution terminates
+
+
+
+

Coordinator States

+
+ + + + + + + + + + + + +
StateDescription
IdleNot running
ConfiguringAssigning step orders (first cycle after Open)
RunningExecuting steps in order
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _snippetInit; + private CodeSnippet? _snippetOpen; + private CodeSnippet? _snippetSimple; + private CodeSnippet? _snippetEnable; + private CodeSnippet? _snippetFull; + private CodeSnippet? _snippetContainerMain; + private List _stepLogicBlocks = new(); + private Dictionary _stepsBySymbol = new(); + private bool _loadingCode = true; + private readonly string _plcSeqDocuPath = "src/showcase/app/src/core/AXOpen.AxoSequencer/AxoSequencerDocuExample.st"; + private readonly string _plcSeqExamplePath = "src/showcase/app/src/core/AXOpen.AxoSequencer/AxoSequencerExample.st"; + private readonly string _plcContainerDocuPath = "src/showcase/app/src/core/AXOpen.AxoSequencerContainer/AxoSequencerContainerDocuExample.st"; + private readonly string _docSeqPath = "src/core/docs/AxoSequencer.md"; + private readonly string _docContainerPath = "src/core/docs/AxoSequencerContainer.md"; + private readonly string _docStepPath = "src/core/docs/AxoStep.md"; + private readonly string _docTroublesPath = "src/core/docs/TROUBLES.md"; + private readonly string _docChangelogPath = "src/core/docs/CHANGELOG.md"; + protected override async Task OnInitializedAsync() + { + try + { + var t1 = CodeProvider.GetTaggedRegionAsync(_plcSeqDocuPath, "Initialize"); + var t2 = CodeProvider.GetTaggedRegionAsync(_plcSeqDocuPath, "Open"); + var t3 = CodeProvider.GetTaggedRegionAsync(_plcSeqDocuPath, "SimpleStep"); + var t4 = CodeProvider.GetTaggedRegionAsync(_plcSeqDocuPath, "EnableStep"); + var t5 = CodeProvider.GetTaggedRegionAsync(_plcSeqDocuPath, "FullStep"); + var t6 = CodeProvider.GetTaggedRegionAsync(_plcContainerDocuPath, "MAIN"); + var t7 = CodeProvider.GetStepLogicBlocksAsync(_plcSeqExamplePath); + await Task.WhenAll(t1, t2, t3, t4, t5, t6, t7); + _snippetInit = await t1; + _snippetOpen = await t2; + _snippetSimple = await t3; + _snippetEnable = await t4; + _snippetFull = await t5; + _snippetContainerMain = await t6; + _stepLogicBlocks = await t7; + var steps = new AXOpen.Core.AxoStep[] + { + Entry.Plc.Ctx.AxoSequencers.step_1, + Entry.Plc.Ctx.AxoSequencers.step_2, + Entry.Plc.Ctx.AxoSequencers.step_3, + Entry.Plc.Ctx.AxoSequencers.step_4, + Entry.Plc.Ctx.AxoSequencers.step_5, + Entry.Plc.Ctx.AxoSequencers.step_6, + Entry.Plc.Ctx.AxoSequencers.step_7, + Entry.Plc.Ctx.AxoSequencers.step_8, + Entry.Plc.Ctx.AxoSequencers.step_9, + Entry.Plc.Ctx.AxoSequencers.step_10, + }; + _stepsBySymbol = steps.ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.AxoSequencers.coord; + this.StartPolling(seq, 250); + var steps = new AXOpen.Core.AxoStep[] + { + Entry.Plc.Ctx.AxoSequencers.step_1, + Entry.Plc.Ctx.AxoSequencers.step_2, + Entry.Plc.Ctx.AxoSequencers.step_3, + Entry.Plc.Ctx.AxoSequencers.step_4, + Entry.Plc.Ctx.AxoSequencers.step_5, + Entry.Plc.Ctx.AxoSequencers.step_6, + Entry.Plc.Ctx.AxoSequencers.step_7, + Entry.Plc.Ctx.AxoSequencers.step_8, + Entry.Plc.Ctx.AxoSequencers.step_9, + Entry.Plc.Ctx.AxoSequencers.step_10, + }; + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + this.StartPolling(Entry.Plc.Ctx.AxoSequencerContainer, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoTask.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoTask.razor new file mode 100644 index 000000000..b2c45ae9b --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoTask.razor @@ -0,0 +1,470 @@ +@page "/core/AxoTask" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Core — AxoTask + +
+ +
+

AXOpen.Core

+

Task Execution

+

+ AxoTask provides basic task execution for PLC programs. This page covers all task variants: + AxoTask, AxoMomentaryTask, AxoToggleTask, and AxoRemoteTask. + Use it as a practical reference for implementing task-based control flow in SIMATIC AX applications. +

+
+
+ +
+
+

AxoTask Documentation

+

Explore live task demos, PLC usage patterns, UI integration, and API reference.

+
+ + +
+ + +
+
+
+

AxoTask

+

Standard task — fire with Invoke(), run logic inside Execute(), finish with DoneWhen().

+ +
+
+

AxoMomentaryTask

+

Push-button task — active while the signal is held, deactivates on release.

+ +
+
+

AxoToggleTask

+

Latching task — switches on/off with SwitchOn(), SwitchOff(), or Toggle().

+ +
+
+

AxoRemoteTask

+

Executes C# code from PLC — Invoke() triggers a .NET handler.

+ +
+
+
+ +
+
+

AxoTask — Invoke (fire & forget)

+

+ AxoTaskInvoke region +

+ @if (_snippetTaskInvoke is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

AxoTask — Invoke + wait for Done

+

+ AxoTaskInvokeDone region +

+ @if (_snippetTaskInvokeDone is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

AxoTask — Fire & forget (separate invoke/done)

+

+ AxoTaskInvokeDoneSeparatelly region +

+ @if (_snippetTaskInvokeSeparate is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

AxoTask — Check running state

+

+ AxoTaskRunning region +

+ @if (_snippetTaskRunning is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

AxoTask — Check error state

+

+ AxoTaskError region +

+ @if (_snippetTaskError is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

AxoTask — Event-like method overrides

+

+ AxoTaskEventLikeMethods region +

+ @if (_snippetTaskEvents is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

AxoMomentaryTask — IsSwitchedOn / IsSwitchedOff

+

+ +

+ @if (_snippetMomentaryOn is { IsError: false }) + { + + } + @if (_snippetMomentaryOff is { IsError: false }) + { + + } +
+
+

AxoToggleTask — SwitchOn / SwitchOff / Toggle

+

+ +

+ @if (_snippetToggleOn is { IsError: false }) + { + + } + @if (_snippetToggleOff is { IsError: false }) + { + + } + @if (_snippetToggleToggle is { IsError: false }) + { + + } +
+
+

AxoRemoteTask — Class declaration

+

+ AxoRemoteTaskExample region +

+ @if (_snippetRemoteDecl is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+
+ +
+
+

AxoTaskView — Controllable

+

+ AxoTaskViewControlable region +

+ @if (_snippetUiControlable is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

AxoTaskView — Display only

+

+ AxoTaskViewDisplayOnly region +

+ @if (_snippetUiDisplayOnly is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

RenderableContentControl — Command (controllable)

+

+ RenderableContentControlCommand region +

+ @if (_snippetUiCommand is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+

RenderableContentControl — Status (display only)

+

+ RenderableContentControlStatus region +

+ @if (_snippetUiStatus is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} + else {

Unable to load snippet

} +
+
+
+ +
+
+

State Machine

+

+ AxoTask transitions through the following states. Call Invoke() to start, + Execute() cyclically to run, and use DoneWhen() / ThrowWhen() to terminate. +

+
+ + + + + + + + + + + + + + + +
StateDescription
ReadyInitial state; waiting for Invoke()
KickingInvoke called; waiting for first Execute() cycle
BusyExecuting; Execute() returns TRUE
DoneCompleted successfully via DoneWhen(TRUE)
ErrorFailed via ThrowWhen(TRUE); call Restore() to reset
AbortedAborted via Abort(); call Resume() to continue
+
+
+
+

Key Methods

+
+ + + + + + + + + + + + + + + + + +
MethodCall PatternPurpose
Invoke()Single / cyclicalFires task execution
Execute()CyclicalReturns TRUE while task should run
DoneWhen(cond)SingleCompletes task when condition is TRUE
ThrowWhen(cond)SingleTerminates with error when condition is TRUE
Abort()SingleAborts from Busy state
Resume()SingleResumes from Aborted state
Restore()SingleResets to Ready from any state
+
+
+
+

Event-Like Methods (override in subclass)

+
+ + + + + + + + + + + + + + + + + +
MethodTriggerCall Pattern
OnStart()Kicking → Busy transitionOnce
OnDone()Enters Done stateOnce
OnError()Enters Error stateOnce
WhileError()While in Error (Execute called)Cyclical
OnAbort()Task is abortedOnce
OnResume()Task is resumed from AbortedOnce
OnRestore()Task is restored to ReadyOnce
+
+
+
+

IAxoTaskState Members

+

Invoke() returns IAxoTaskState with:

+
    +
  • IsBusy — execution started and running
  • +
  • IsDone — execution completed successfully
  • +
  • HasError — execution terminated with failure
  • +
  • IsAborted — execution was aborted
  • +
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // ---- Snippet fields ---- + private CodeSnippet? _snippetTaskInvoke; + private CodeSnippet? _snippetTaskInvokeDone; + private CodeSnippet? _snippetTaskInvokeSeparate; + private CodeSnippet? _snippetTaskRunning; + private CodeSnippet? _snippetTaskError; + private CodeSnippet? _snippetTaskEvents; + private CodeSnippet? _snippetMomentaryOn; + private CodeSnippet? _snippetMomentaryOff; + private CodeSnippet? _snippetToggleOn; + private CodeSnippet? _snippetToggleOff; + private CodeSnippet? _snippetToggleToggle; + private CodeSnippet? _snippetRemoteDecl; + private CodeSnippet? _snippetUiControlable; + private CodeSnippet? _snippetUiDisplayOnly; + private CodeSnippet? _snippetUiCommand; + private CodeSnippet? _snippetUiStatus; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + // ---- PLC example paths ---- + private readonly string _plcTaskDocuPath = "src/showcase/app/src/core/AXOpen.AxoTask/AxoTaskDocuExample.st"; + private readonly string _plcTaskExamplePath = "src/showcase/app/src/core/AXOpen.AxoTask/AxoTaskExample.st"; + private readonly string _plcMomentaryDocuPath = "src/showcase/app/src/core/AXOpen.AxoMomentaryTask/AxoMomentaryTaskDocuExample.st"; + private readonly string _plcToggleDocuPath = "src/showcase/app/src/core/AXOpen.AxoToggleTask/AxoToggleTaskDocuExample.st"; + private readonly string _plcRemoteDocuPath = "src/showcase/app/src/core/AXOpen.AxoRemoteTask/AxoRemoteTaskDocuExample.st"; + private readonly string _razorTaskDocuPath = "src/showcase/app/ix-blazor/showcase.blazor/Pages/Core/DocuExamples/AxoTaskDocu.razor"; + // ---- Library source paths ---- + private readonly string _libTaskStPath = "src/core/ctrl/src/AxoTask/AxoTask.st"; + private readonly string _libMomentaryStPath = "src/core/ctrl/src/AxoMomentaryTask/AxoMomentaryTask.st"; + private readonly string _libToggleStPath = "src/core/ctrl/src/AxoToggleTask/AxoToggleTask.st"; + private readonly string _libRemoteStPath = "src/core/ctrl/src/AxoRemoteTask/AxoRemoteTask.st"; + // ---- Documentation paths ---- + private readonly string _docTaskPath = "src/core/docs/AxoTask.md"; + private readonly string _docMomentaryPath = "src/core/docs/AxoMomentaryTask.md"; + private readonly string _docTogglePath = "src/core/docs/AxoToggleTask.md"; + private readonly string _docRemotePath = "src/core/docs/AxoRemoteTask.md"; + private readonly string _docTroublesPath = "src/core/docs/TROUBLES.md"; + private readonly string _docChangelogPath = "src/core/docs/CHANGELOG.md"; + protected override async Task OnInitializedAsync() + { + try + { + var t1 = CodeProvider.GetTaggedRegionAsync(_plcTaskDocuPath, "AxoTaskInvoke"); + var t2 = CodeProvider.GetTaggedRegionAsync(_plcTaskDocuPath, "AxoTaskInvokeDone"); + var t3 = CodeProvider.GetTaggedRegionAsync(_plcTaskDocuPath, "AxoTaskInvokeDoneSeparatelly"); + var t4 = CodeProvider.GetTaggedRegionAsync(_plcTaskDocuPath, "AxoTaskRunning"); + var t5 = CodeProvider.GetTaggedRegionAsync(_plcTaskDocuPath, "AxoTaskError"); + var t6 = CodeProvider.GetTaggedRegionAsync(_plcTaskDocuPath, "AxoTaskEventLikeMethods"); + var t7 = CodeProvider.GetTaggedRegionAsync(_plcMomentaryDocuPath, "AxoMomentaryTaskIsSwitchedOn"); + var t8 = CodeProvider.GetTaggedRegionAsync(_plcMomentaryDocuPath, "AxoMomentaryTaskIsSwitchedOff"); + var t9 = CodeProvider.GetTaggedRegionAsync(_plcToggleDocuPath, "AxoToggleTaskSwitchOn"); + var t10 = CodeProvider.GetTaggedRegionAsync(_plcToggleDocuPath, "AxoToggleTaskSwitchOff"); + var t11 = CodeProvider.GetTaggedRegionAsync(_plcToggleDocuPath, "AxoToggleTaskToggle"); + var t12 = CodeProvider.GetTaggedRegionAsync(_plcRemoteDocuPath, "AxoRemoteTaskExample"); + var t13 = CodeProvider.GetTaggedRegionAsync(_razorTaskDocuPath, "AxoTaskViewControlable"); + var t14 = CodeProvider.GetTaggedRegionAsync(_razorTaskDocuPath, "AxoTaskViewDisplayOnly"); + var t15 = CodeProvider.GetTaggedRegionAsync(_razorTaskDocuPath, "RenderableContentControlCommand"); + var t16 = CodeProvider.GetTaggedRegionAsync(_razorTaskDocuPath, "RenderableContentControlStatus"); + await Task.WhenAll(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); + _snippetTaskInvoke = await t1; + _snippetTaskInvokeDone = await t2; + _snippetTaskInvokeSeparate = await t3; + _snippetTaskRunning = await t4; + _snippetTaskError = await t5; + _snippetTaskEvents = await t6; + _snippetMomentaryOn = await t7; + _snippetMomentaryOff = await t8; + _snippetToggleOn = await t9; + _snippetToggleOff = await t10; + _snippetToggleToggle = await t11; + _snippetRemoteDecl = await t12; + _snippetUiControlable = await t13; + _snippetUiDisplayOnly = await t14; + _snippetUiCommand = await t15; + _snippetUiStatus = await t16; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.AxoTaskDocu._myTask, 250); + this.StartPolling(Entry.Plc.Ctx.AxoMomentaryTasks.MomentaryTaskExample, 250); + this.StartPolling(Entry.Plc.Ctx.AxoToggleTasks._toggleTask1, 250); + this.StartPolling(Entry.Plc.Ctx.AxoRemoteTasks._remoteTask, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoTextList/AxoTextListExample.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoTextList/AxoTextListExample.razor new file mode 100644 index 000000000..01043a925 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/AxoTextList/AxoTextListExample.razor @@ -0,0 +1,32 @@ +@page "/core/doc-snippets/AxoTextListExample" +@using AXOpen.Core; + +

AxoTextListExample

+ +
+
+ AxoTextListExample +
+
+
+
+ +
+
+ +
+
+// +
+ +
+
+ +
+
+ +
+//
+
+
+ diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoMessagingStaticDocu.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoMessagingStaticDocu.razor new file mode 100644 index 000000000..ab1c08a31 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoMessagingStaticDocu.razor @@ -0,0 +1,28 @@ +@page "/core/doc-snippets/AxoMessagingStaticDocu" +@using AXOpen.Core; +

AxoMessagingStaticDocu

+ +
+
+
+
Simple static messages examples.
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+ diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoMomentaryTaskDocu.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoMomentaryTaskDocu.razor new file mode 100644 index 000000000..1dada10b7 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoMomentaryTaskDocu.razor @@ -0,0 +1,44 @@ +@page "/core/doc-snippets/AxoMomentaryTaskDocu" +@using AXOpen.Core; +

AxoMomentaryTaskDocu

+ +
+
+
+
MomentaryTask example.
+
+
+
+
+
+
+ + // + + // +
+
+ + // + + // +
+
+ + // + + // +
+
+ + // + + // +
+
+
+
+
+
+
+ diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoTaskDocu.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoTaskDocu.razor new file mode 100644 index 000000000..e10243429 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoTaskDocu.razor @@ -0,0 +1,44 @@ +@page "/core/doc-snippets/AxoTaskDocu" +@using AXOpen.Core; +

AxoTaskDocu

+ +
+
+
+
Task example.
+
+
+
+
+
+
+ + // + + // +
+
+ + // + + // +
+
+ + // + + // +
+
+ + // + + // +
+
+
+
+
+
+
+ diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoToggleTaskDocu.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoToggleTaskDocu.razor new file mode 100644 index 000000000..ed867afdc --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/core/DocuExamples/AxoToggleTaskDocu.razor @@ -0,0 +1,44 @@ +@page "/core/doc-snippets/AxoToggleTaskDocu" +@using AXOpen.Core; +

AxoToggleTaskDocu

+ +
+
+
+
ToggleTask example.
+
+
+
+
+
+
+ + // + + // +
+
+ + // + + // +
+
+ + // + + // +
+
+ + // + + // +
+
+
+
+
+
+
+ diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/data/DataExchange.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/data/DataExchange.razor new file mode 100644 index 000000000..607f61ba1 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/data/DataExchange.razor @@ -0,0 +1,372 @@ +@page "/data/DataExchange" +@using AXOpen.Data; +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Data — Exchange + +
+ +
+

AXOpen.Data

+

Data Exchange & Persistence

+

+ AXOpen.Data provides CRUD operations between PLC and .NET repositories. + Covers standard exchange, fragment-based exchange, persistent storage, and distributed data patterns. +

+
+
+ +
+
+

Data Exchange Documentation

+

Live demos and code references for all data exchange variants.

+
+ + +
+
+

Live Demo

+
+
+

Commands

+ +
+
+

Operations

+ +
+
+
+
+

Context declaration (PLC)

+

+ ContextDeclaration region +

+ @if (_snippetExCtx is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} +
+
+

Data manager declaration

+

+ AxoProcessDataManagerDeclaration region +

+ @if (_snippetExMgr is { IsError: false }) + { + + } +
+
+

Data entity declaration

+

+ AxoProcessDataDeclaration region +

+ @if (_snippetExData is { IsError: false }) + { + + } +
+
+

Usage in sequence

+

+ Run region +

+ @if (_snippetExRun is { IsError: false }) + { + + } +
+
+
+ +
+
+

Live Demo

+ +
+
+

Context declaration

+

+ ContextDeclaration region +

+ @if (_snippetFrCtx is { IsError: false }) + { + + } +
+
+

Usage in sequence

+

+ Run region +

+ @if (_snippetFrRun is { IsError: false }) + { + + } +
+
+
+ +
+
+

Live Demo

+ +
+
+

Context declaration

+

+ ContextDeclaration region +

+ @if (_snippetPeCtx is { IsError: false }) + { + + } +
+
+

Persistent attribute usage

+

+ PersistentAttribute region +

+ @if (_snippetPeAttr is { IsError: false }) + { + + } +
+
+
+ +
+
+

Distributed Data Selector

+ +
+
+

Distributed Data View

+ +
+
+

Context declaration

+

+ ContextDeclaration region +

+ @if (_snippetDiCtx is { IsError: false }) + { + + } +
+
+

DistributedData attribute

+

+ UseDistributedDataAttribute region +

+ @if (_snippetDiAttr is { IsError: false }) + { + + } +
+
+

Usage in sequence

+

+ Run region +

+ @if (_snippetDiRun is { IsError: false }) + { + + } +
+
+
+ +
+
+

AxoDataExchange repository setup

+

+ SetUpAxoDataExchange region +

+ @if (_snippetNetExchange is { IsError: false }) + { + + } + else if (_loadingCode) {
Loading...
} +
+
+

AxoDataFragmentExchange setup

+

+ SetUpAxoDataFragmentExchange region +

+ @if (_snippetNetFragment is { IsError: false }) + { + + } +
+
+

AxoDataPersistentExchange setup

+

+ SetUpAxoDataPersistentExchange region +

+ @if (_snippetNetPersistent is { IsError: false }) + { + + } +
+
+

Distributed data services

+

+ DistributedDataServices region +

+ @if (_snippetNetDistributed is { IsError: false }) + { + + } +
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + // PLC snippets + private CodeSnippet? _snippetExCtx; + private CodeSnippet? _snippetExMgr; + private CodeSnippet? _snippetExData; + private CodeSnippet? _snippetExRun; + private CodeSnippet? _snippetFrCtx; + private CodeSnippet? _snippetFrRun; + private CodeSnippet? _snippetPeCtx; + private CodeSnippet? _snippetPeAttr; + private CodeSnippet? _snippetDiCtx; + private CodeSnippet? _snippetDiAttr; + private CodeSnippet? _snippetDiRun; + // .NET snippets + private CodeSnippet? _snippetNetExchange; + private CodeSnippet? _snippetNetFragment; + private CodeSnippet? _snippetNetPersistent; + private CodeSnippet? _snippetNetDistributed; + private bool _loadingCode = true; + private readonly string _plcExchangePath = "src/showcase/app/src/data/AxoDataExchange/AxoDataExchangeExample.st"; + private readonly string _plcFragmentPath = "src/showcase/app/src/data/AxoDataFragmentExchange/AxoDataFragmentExchangeExample.st"; + private readonly string _plcPersistentPath = "src/showcase/app/src/data/AxoDataPersistentExchange/AxoDataPersistentExchangeExample.st"; + private readonly string _plcDistributedPath = "src/showcase/app/src/data/AxoDataDistributed/AxoDataDistributedExample.st"; + private readonly string _dotnetProgramPath = "src/showcase/app/docs-snippets/data-blazor/Program.cs"; + private readonly string _docExchangePath = "src/data/docs/AxoDataExchange.md"; + private readonly string _docFragmentPath = "src/data/docs/AxoDataFragmentExchange.md"; + private readonly string _docPersistentPath = "src/data/docs/AxoDataPersistentExchange.md"; + private readonly string _docDistributedPath = "src/data/docs/DistributedDataExchange.md"; + protected override async Task OnInitializedAsync() + { + try + { + var t1 = CodeProvider.GetTaggedRegionAsync(_plcExchangePath, "ContextDeclaration"); + var t2 = CodeProvider.GetTaggedRegionAsync(_plcExchangePath, "AxoProcessDataManagerDeclaration"); + var t3 = CodeProvider.GetTaggedRegionAsync(_plcExchangePath, "AxoProcessDataDeclaration"); + var t4 = CodeProvider.GetTaggedRegionAsync(_plcExchangePath, "Run"); + var t5 = CodeProvider.GetTaggedRegionAsync(_plcFragmentPath, "ContextDeclaration"); + var t6 = CodeProvider.GetTaggedRegionAsync(_plcFragmentPath, "Run"); + var t7 = CodeProvider.GetTaggedRegionAsync(_plcPersistentPath, "ContextDeclaration"); + var t8 = CodeProvider.GetTaggedRegionAsync(_plcPersistentPath, "PersistentAttribute"); + var t9 = CodeProvider.GetTaggedRegionAsync(_plcDistributedPath, "ContextDeclaration"); + var t10 = CodeProvider.GetTaggedRegionAsync(_plcDistributedPath, "UseDistributedDataAttribute"); + var t11 = CodeProvider.GetTaggedRegionAsync(_plcDistributedPath, "Run"); + var t12 = CodeProvider.GetTaggedRegionAsync(_dotnetProgramPath, "SetUpAxoDataExchange"); + var t13 = CodeProvider.GetTaggedRegionAsync(_dotnetProgramPath, "SetUpAxoDataFragmentExchange"); + var t14 = CodeProvider.GetTaggedRegionAsync(_dotnetProgramPath, "SetUpAxoDataPersistentExchange"); + var t15 = CodeProvider.GetTaggedRegionAsync(_dotnetProgramPath, "DistributedDataServices"); + await Task.WhenAll(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); + _snippetExCtx = await t1; + _snippetExMgr = await t2; + _snippetExData = await t3; + _snippetExRun = await t4; + _snippetFrCtx = await t5; + _snippetFrRun = await t6; + _snippetPeCtx = await t7; + _snippetPeAttr = await t8; + _snippetDiCtx = await t9; + _snippetDiAttr = await t10; + _snippetDiRun = await t11; + _snippetNetExchange = await t12; + _snippetNetFragment = await t13; + _snippetNetPersistent = await t14; + _snippetNetDistributed = await t15; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.AxoDataExchangeContext, 500); + this.StartPolling(Entry.Plc.Ctx.AxoDataFragmentsExchangeContext, 500); + this.StartPolling(Entry.Plc.Ctx.AxoDataPersistentContext, 500); + this.StartPolling(Entry.Plc.Ctx.AxoDataDistributedContext, 500); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/data/DistributedData.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/data/DistributedData.razor new file mode 100644 index 000000000..38ee243c7 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/data/DistributedData.razor @@ -0,0 +1,39 @@ +@page "/data/doc-snippets/DistributedData" +@using AXOpen.Base.Dialogs; +@using AXOpen.Data; +@inject AuthenticationStateProvider _authenticationProvider +@inject Operon.Components.Toast.IToastService _alertDialogService + +
+
+

Distributed Data selector

+
+
+ // + + // +
+
+ +
+
+

Distributed Data View

+
+
+ // + + // +
+
diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/data/Rendering.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/data/Rendering.razor new file mode 100644 index 000000000..f890ae48f --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/data/Rendering.razor @@ -0,0 +1,122 @@ +@page "/data/doc-snippets/Rendering" +@using AXOpen.Base.Dialogs; +@using AXOpen.Data; +@using showcase.blazor.Templates +@inject AuthenticationStateProvider _authenticationProvider +@inject Operon.Components.Toast.IToastService _alertDialogService + +
+
+

DataExchange PresentationType="Command"

+
+
+ +
+
+ +
+
+

DataFragmentExchange PresentationType="Command"

+
+
+ // + + // +
+
+ +
+
+

DataFragmentExchange PresentationType="Status"

+
+
+ // + + // +
+
+ +
+
+

Custom columns

+
+
+ // + + + + + + // +
+
+ +
+
+

Enable Export

+
+
+ // + + // +
+
+ +
+
+

Disable Modal view

+
+
+ // + + // +
+
+ +
+
+

Sorting

+
+
+ // + + + + + + // +
+
+ + +// +@code { + private DataExchangeViewModel _vm_columndata; + private DataExchangeViewModel _vm_modal; + private DataExchangeViewModel _vm_export; + + protected override void OnInitialized() + { + _vm_columndata = new DataExchangeViewModel + { + Model = Entry.Plc.Ctx.AxoDataFragmentsExchangeContext.DataManager, + ToastService = _alertDialogService, + AuthenticationProvider = _authenticationProvider + }; + + _vm_modal = new DataExchangeViewModel + { + Model = Entry.Plc.Ctx.AxoDataFragmentsExchangeContext.DataManager, + ToastService = _alertDialogService, + AuthenticationProvider = _authenticationProvider + }; + + _vm_export = new DataExchangeViewModel + { + Model = Entry.Plc.Ctx.AxoDataFragmentsExchangeContext.DataManager, + ToastService = _alertDialogService, + AuthenticationProvider = _authenticationProvider + }; + } +} +// diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/inspectors/Documentation/InspectorsShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/inspectors/Documentation/InspectorsShowcase.razor new file mode 100644 index 000000000..a9b78f718 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/inspectors/Documentation/InspectorsShowcase.razor @@ -0,0 +1,206 @@ +@page "/inspectors/Documentation/InspectorsShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Inspectors - Documentation + +
+ +
+

AXOpen.Inspectors

+

Inspectors Showcase

+

+ Digital, analogue, and data inspectors with configurable pass/fail times, comprehensive result aggregation, + and failure-handling strategies (carry on, retry, dialog). + Use this page as a practical reference for integrating inspection logic in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run inspector examples directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+ +
+

Inspector declaration (ST)

+

+ + — <AxoInspectorDeclaration> region +

+ @if (_declarationSnippet != null && !_declarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Inspector data configuration (ST)

+

+ + — <AxoInspectorDataSet> region +

+ @if (_dataSetSnippet != null && !_dataSetSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Simple inspection call (ST)

+

+ + — <AxoInspectorSimpleInspection> region +

+ @if (_simpleInspectionSnippet != null && !_simpleInspectionSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+ +
+

Preserving overall result (ST)

+

+ + — <PreservingOverallResultExample> region +

+ @if (_comprehensiveResultSnippet != null && !_comprehensiveResultSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _declarationSnippet; + private CodeSnippet? _dataSetSnippet; + private CodeSnippet? _simpleInspectionSnippet; + private CodeSnippet? _comprehensiveResultSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/inspectors/InspectorsShowcase.st"; + // Library resource paths + private readonly string _libReadmePath = "src/inspectors/docs/README.md"; + private readonly string _libDigitalInspectorPath = "src/inspectors/docs/AXODIGITALINSPECTOR.md"; + private readonly string _libAnalogueInspectorPath = "src/inspectors/docs/AXOANALOGUEINSPECTOR.md"; + private readonly string _libDataInspectorPath = "src/inspectors/docs/AXODATAINSPECTOR.md"; + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoInspectorDeclaration"); + var dataSetTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoInspectorDataSet"); + var simpleInspectionTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "AxoInspectorSimpleInspection"); + var comprehensiveResultTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "PreservingOverallResultExample"); + await Task.WhenAll(declarationTask, dataSetTask, simpleInspectionTask, comprehensiveResultTask); + _declarationSnippet = await declarationTask; + _dataSetSnippet = await dataSetTask; + _simpleInspectionSnippet = await simpleInspectionTask; + _comprehensiveResultSnippet = await comprehensiveResultTask; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.inspectors_documentation, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/io/Documentation/IoShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/io/Documentation/IoShowcase.razor new file mode 100644 index 000000000..087b4d2e8 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/io/Documentation/IoShowcase.razor @@ -0,0 +1,328 @@ +@page "/io/Documentation/IoShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +I/O - Documentation + +
+ +
+

AXOpen.Io

+

I/O Showcase

+

+ Hardware diagnostics, IO component monitoring, record access tools, and IO-Link module configuration. + Each tab demonstrates a different IO library component with live PLC bindings and code examples. +

+
+
+ +
+
+

Live Demo Controls

+

Run sequenced tasks and component commands directly against the connected PLC context.

+
+ + +
+
+ + + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_ioCompDeclSnippet != null && !_ioCompDeclSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_ioCompInitSnippet != null && !_ioCompInitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } +
+
+
+ +
+ + +
+
+
+
+
+ + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_hwDiagDeclSnippet != null && !_hwDiagDeclSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } +
+
+

Configuration & Run (ST)

+

+ + — <Initialization> region +

+ @if (_hwDiagInitSnippet != null && !_hwDiagInitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } +
+
+
+ +
+ + +
+
+
+
+
+ + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_recAccDeclSnippet != null && !_recAccDeclSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_recAccInitSnippet != null && !_recAccInitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } +
+
+
+ +
+ + +
+
+
+
+
+ + +
+ + +
+ +
+
+ +
+
+

Component declaration (ST)

+

+ + — <ComponentDeclaration> region +

+ @if (_ioLinkDeclSnippet != null && !_ioLinkDeclSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } +
+
+

Component Run call (ST)

+

+ + — <Initialization> region +

+ @if (_ioLinkInitSnippet != null && !_ioLinkInitSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } +
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider Snippets { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + // Showcase ST paths + private readonly string _plcContextPath = "src/showcase/app/src/IO/IoShowcase.st"; + private readonly string _plcIoComponentPath = "src/showcase/app/src/IO/AxoIoComponent_Showcase.st"; + private readonly string _plcHwDiagPath = "src/showcase/app/src/IO/AxoHwDiag_Showcase.st"; + private readonly string _plcRecordAccessPath = "src/showcase/app/src/IO/AxoRecordAccessTool_Showcase.st"; + private readonly string _plcIOLinkET200SPPath = "src/showcase/app/src/IO/AxoIOLinkET200SP_Balluff_IO_Showcase.st"; + // Library source paths + private readonly string _libIoComponentStPath = "src/io/ctrl/src/AxoIoComponent/AxoIoComponent.st"; + private readonly string _libHwDiagStPath = "src/io/ctrl/src/AxoHwDiag/AxoHwDiag.st"; + private readonly string _libRecordAccessStPath = "src/io/ctrl/src/AxoRecordAccessTool/AxoRecordAccessTool.st"; + private readonly string _libApaxYmlPath = "src/io/ctrl/apax.yml"; + // Code snippets + private CodeSnippet? _ioCompDeclSnippet, _ioCompInitSnippet; + private CodeSnippet? _hwDiagDeclSnippet, _hwDiagInitSnippet; + private CodeSnippet? _recAccDeclSnippet, _recAccInitSnippet; + private CodeSnippet? _ioLinkDeclSnippet, _ioLinkInitSnippet; + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + var tasks = new[] + { + Snippets.GetTaggedRegionAsync(_plcIoComponentPath, "ComponentDeclaration").ContinueWith(t => _ioCompDeclSnippet = t.Result), + Snippets.GetTaggedRegionAsync(_plcIoComponentPath, "Initialization").ContinueWith(t => _ioCompInitSnippet = t.Result), + Snippets.GetTaggedRegionAsync(_plcHwDiagPath, "ComponentDeclaration").ContinueWith(t => _hwDiagDeclSnippet = t.Result), + Snippets.GetTaggedRegionAsync(_plcHwDiagPath, "Initialization").ContinueWith(t => _hwDiagInitSnippet = t.Result), + Snippets.GetTaggedRegionAsync(_plcRecordAccessPath, "ComponentDeclaration").ContinueWith(t => _recAccDeclSnippet = t.Result), + Snippets.GetTaggedRegionAsync(_plcRecordAccessPath, "Initialization").ContinueWith(t => _recAccInitSnippet = t.Result), + Snippets.GetTaggedRegionAsync(_plcIOLinkET200SPPath, "ComponentDeclaration").ContinueWith(t => _ioLinkDeclSnippet = t.Result), + Snippets.GetTaggedRegionAsync(_plcIOLinkET200SPPath, "Initialization").ContinueWith(t => _ioLinkInitSnippet = t.Result), + }; + await Task.WhenAll(tasks); + _loadingCode = false; + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.io_documentation, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/probers/Documentation/ProbersShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/probers/Documentation/ProbersShowcase.razor new file mode 100644 index 000000000..61da93733 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/probers/Documentation/ProbersShowcase.razor @@ -0,0 +1,194 @@ +@page "/probers/Documentation/ProbersShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Probers - Documentation + +
+ +
+

AXOpen.Probers

+

Probers Showcase

+

+ Test probing utilities for cyclic and conditional test execution. + AxoProberWithCounterBase runs a test for N cycles; AxoProberWithCompletedCondition runs until a condition is met. +

+
+
+ +
+
+

Live Demo Controls

+

Run prober examples directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+
+

Prober declarations (ST)

+

+ + — <ProberDeclarations> region +

+ @if (_declarationSnippet != null && !_declarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Prober usage (ST)

+

+ + — <ProberUsage> region +

+ @if (_usageSnippet != null && !_usageSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Counter-based prober implementation (ST)

+

+ + — <CounterProberExample> region +

+ @if (_counterProberSnippet != null && !_counterProberSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Condition-based prober implementation (ST)

+

+ + — <ConditionProberExample> region +

+ @if (_conditionProberSnippet != null && !_conditionProberSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _declarationSnippet; + private CodeSnippet? _usageSnippet; + private CodeSnippet? _counterProberSnippet; + private CodeSnippet? _conditionProberSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/probers/ProbersShowcase.st"; + private readonly string _libApaxYmlPath = "src/probers/ctrl/apax.yml"; + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "ProberDeclarations"); + var usageTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "ProberUsage"); + var counterProberTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "CounterProberExample"); + var conditionProberTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "ConditionProberExample"); + await Task.WhenAll(declarationTask, usageTask, counterProberTask, conditionProberTask); + _declarationSnippet = await declarationTask; + _usageSnippet = await usageTask; + _counterProberSnippet = await counterProberTask; + _conditionProberSnippet = await conditionProberTask; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.probers_documentation, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/simatic1500/Documentation/Simatic1500Showcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/simatic1500/Documentation/Simatic1500Showcase.razor new file mode 100644 index 000000000..d04c737e9 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/simatic1500/Documentation/Simatic1500Showcase.razor @@ -0,0 +1,177 @@ +@page "/simatic1500/Documentation/Simatic1500Showcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +SIMATIC S7-1500 - Documentation + +
+ +
+

AXOpen.S71500

+

SIMATIC S7-1500 Showcase

+

+ Platform-specific implementations of IAxoRtc (real-time clock) and IAxoRtm (runtime measurement) + for the SIMATIC S7-1500 PLC family. These services are injected into AxoContext to provide + system clock and elapsed time capabilities. +

+
+
+ +
+
+

Platform Services Reference

+

View live Rtc/Rtm values and code examples for S7-1500 platform services.

+
+ + +
+ + +
+ +
+ +
+
+

Rtc/Rtm declarations (ST)

+

+ + — <Simatic1500Declarations> region +

+ @if (_declarationSnippet != null && !_declarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Real-time clock usage (ST)

+

+ + — <RtcUsage> region +

+ @if (_rtcUsageSnippet != null && !_rtcUsageSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Runtime measurement usage (ST)

+

+ + — <RtmUsage> region +

+ @if (_rtmUsageSnippet != null && !_rtmUsageSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _declarationSnippet; + private CodeSnippet? _rtcUsageSnippet; + private CodeSnippet? _rtmUsageSnippet; + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/simatic1500/Simatic1500Showcase.st"; + private readonly string _libRtcPath = "src/simatic1500/ctrl/src/Rtc.st"; + private readonly string _libRtmPath = "src/simatic1500/ctrl/src/Rtm.st"; + private readonly string _libApaxYmlPath = "src/simatic1500/ctrl/apax.yml"; + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "Simatic1500Declarations"); + var rtcUsageTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "RtcUsage"); + var rtmUsageTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "RtmUsage"); + await Task.WhenAll(declarationTask, rtcUsageTask, rtmUsageTask); + _declarationSnippet = await declarationTask; + _rtcUsageSnippet = await rtcUsageTask; + _rtmUsageSnippet = await rtmUsageTask; + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + this.StartPolling(Entry.Plc.Ctx.simatic1500_documentation, 250); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/timers/Documentation/TimersShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/timers/Documentation/TimersShowcase.razor new file mode 100644 index 000000000..1d1d8c0d1 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/timers/Documentation/TimersShowcase.razor @@ -0,0 +1,200 @@ +@page "/timers/Documentation/TimersShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Timers - Documentation + +
+ +
+

AXOpen.Timers

+

Timers Showcase

+

+ OnDelayTimer, OffDelayTimer, PulseTimer, and AxoBlinker for time-based control logic. + Use this page as a practical reference for integrating timer functionality in SIMATIC AX applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run timer examples directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+
+

Timer declarations (ST)

+

+ + — <TimerDeclarations> region +

+ @if (_declarationSnippet != null && !_declarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

Timer usage (ST)

+

+ + — <TimerUsage> region +

+ @if (_usageSnippet != null && !_usageSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _declarationSnippet; + private CodeSnippet? _usageSnippet; + private List _stepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/timers/TimersShowcase.st"; + private readonly string _libApaxYmlPath = "src/timers/ctrl/apax.yml"; + private Dictionary _stepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "TimerDeclarations"); + var usageTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "TimerUsage"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcContextPath); + await Task.WhenAll(declarationTask, usageTask, stepLogicTask); + _declarationSnippet = await declarationTask; + _usageSnippet = await usageTask; + _stepLogicBlocks = await stepLogicTask; + _stepsBySymbol = Entry.Plc.Ctx.timers_documentation._automat.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.timers_documentation._automat; + var steps = Entry.Plc.Ctx.timers_documentation._automat.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Pages/utils/Documentation/UtilsShowcase.razor b/src/_test/app/ix-blazor/showcase.blazor/Pages/utils/Documentation/UtilsShowcase.razor new file mode 100644 index 000000000..5436a0d7c --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Pages/utils/Documentation/UtilsShowcase.razor @@ -0,0 +1,222 @@ +@page "/utils/Documentation/UtilsShowcase" +@using AXOpen.Core; +@using Operon.Components.Tab +@using showcase.Services; +@inherits RenderableComponentBase +Utils - Documentation + +
+ +
+

AXOpen.Utils

+

Utils Showcase

+

+ String building with AxoStringBuilder and CRC checksum functions (CRC-8, CRC-16, CRC-32) + for data integrity verification and string composition in PLC applications. +

+
+
+ +
+
+

Live Demo Controls

+

Run utility examples directly against the connected PLC context.

+
+ + +
+ + +
+ +
+ +
+
+

Utility declarations (ST)

+

+ + — <UtilsDeclarations> region +

+ @if (_declarationSnippet != null && !_declarationSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

String builder usage (ST)

+

+ + — <StringBuilderUsage> region +

+ @if (_stringBuilderSnippet != null && !_stringBuilderSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+

CRC checksum usage (ST)

+

+ + — <CrcUsage> region +

+ @if (_crcSnippet != null && !_crcSnippet.IsError) + { + + } + else if (_loadingCode) + { +
Loading...
+ } + else + { +

Unable to load snippet

+ } +
+
+
+ + + +
+

Sequencer Step Logic

+

Each block below is parsed from + . +

+ @if (_stepLogicBlocks.Count > 0) + { +
+ @foreach (var step in _stepLogicBlocks) + { + _stepsBySymbol.TryGetValue(step.StepSymbol, out var liveStep); + + } +
+ } + else if (_loadingCode) + { +
Loading step logic...
+ } + else + { +
+ No sequencer step blocks were detected. +
+ } +
+
+
+
+
+
+
+
+@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + private SourceViewerModal _modal = default!; + private Task OpenModalAsync(string path) => _modal.OpenAsync(path); + private CodeSnippet? _declarationSnippet; + private CodeSnippet? _stringBuilderSnippet; + private CodeSnippet? _crcSnippet; + private List _stepLogicBlocks = new(); + private bool _loadingCode = true; + private string _selectedPresentation = "Command-Control"; + private readonly string _plcContextPath = "src/showcase/app/src/utils/UtilsShowcase.st"; + private readonly string _libApaxYmlPath = "src/utils/ctrl/apax.yml"; + private Dictionary _stepsBySymbol = new(); + protected override async Task OnInitializedAsync() + { + try + { + var declarationTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "UtilsDeclarations"); + var stringBuilderTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "StringBuilderUsage"); + var crcTask = CodeProvider.GetTaggedRegionAsync(_plcContextPath, "CrcUsage"); + var stepLogicTask = CodeProvider.GetStepLogicBlocksAsync(_plcContextPath); + await Task.WhenAll(declarationTask, stringBuilderTask, crcTask, stepLogicTask); + _declarationSnippet = await declarationTask; + _stringBuilderSnippet = await stringBuilderTask; + _crcSnippet = await crcTask; + _stepLogicBlocks = await stepLogicTask; + _stepsBySymbol = Entry.Plc.Ctx.utils_documentation._automat.Steps + .ToDictionary( + s => s.Symbol.Substring(s.Symbol.LastIndexOf('.') + 1), + s => s + ); + } + catch (Exception ex) + { + Console.Error.WriteLine($"Error loading code snippets: {ex.Message}"); + } + finally + { + _loadingCode = false; + StateHasChanged(); + } + await base.OnInitializedAsync(); + } + public override void ConfigurePolling() + { + var seq = Entry.Plc.Ctx.utils_documentation._automat; + var steps = Entry.Plc.Ctx.utils_documentation._automat.Steps; + this.StartPolling(seq, 250); + foreach (var step in steps) + { + this.StartPolling(step.IsActive, 250); + this.StartPolling(step.IsEnabled, 250); + this.StartPolling(step.Order, 250); + this.StartPolling(step.Descr, 500); + } + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Program.cs b/src/_test/app/ix-blazor/showcase.blazor/Program.cs new file mode 100644 index 000000000..5eba4845c --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Program.cs @@ -0,0 +1,243 @@ +using AXOpen; +using AXOpen.Core; +using AXOpen.Core.Blazor.AxoDialogs.Hubs; +using AXOpen.Base.Data; +using AXOpen.Data; +using AXOpen.Data.Json; +using AXOpen.Logging; +using AxOpen.Security; +using AxOpen.Security.Entities; +using AxOpen.Security.Services; +using AXSharp.Connector; +using AXOpen.VisualComposer; +using AXSharp.Presentation.Blazor.Services; +using Serilog; +using showcase; +using showcase.Services; +using showcase.blazor.Templates; +using System.Reflection; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.ConfigureAxBlazorSecurity(SetUpJsonSecurity(), Roles.CreateRoles()); +builder.Services.AddLocalization(); +builder.Services.AddRazorPages(); +builder.Services.AddServerSideBlazor(); +// +builder.Services.AddIxBlazorServices(); +builder.Services.AddAxoCoreServices(); +builder.Services.AddVisualComposerService(); +// +builder.Services.AddSingleton(); +builder.Services.AddSingleton(sp => + new DocFxMarkdownProcessor(sp.GetRequiredService().BasePath)); +builder.Services.AddSingleton(); +builder.Services.AddSingleton(); +builder.Services.AddSingleton(); +// +builder.Services.AddHttpClient(); +// + + + + + +// +Entry.Plc.Connector.SubscriptionMode = ReadSubscriptionMode.Polling; +Entry.Plc.Connector.BuildAndStart().ReadWriteCycleDelay = 250; +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()); + +_ = Entry.Plc.Connector.IdentityProvider.ConstructIdentitiesAsync(); +// + +// +AxoApplication.CreateBuilder().ConfigureLogger(new SerilogLogger(new LoggerConfiguration() + .WriteTo.Console().MinimumLevel.Verbose() + .CreateLogger())); +// + +// +// AxoLogger — forward PLC log entries to .NET Serilog logger +Entry.Plc.Ctx.AxoLoggers.LoggerOne.StartDequeuing( + new SerilogLogger(new LoggerConfiguration().WriteTo.Console().MinimumLevel.Verbose().CreateLogger()), 250); +// + +// +// AxoRemoteTask — wire .NET handler for PLC remote invocation. +// Without this, the PLC task enters error state ("REMOTE TASK IS NOT INITIALIZED"). +Entry.Plc.Ctx.AxoRemoteTasks._remoteTask.Initialize(() => +{ + Console.WriteLine($"Remote task executed: {Entry.Plc.Ctx.AxoRemoteTasks._remoteTask.Message.LastValue}"); +}); +// + +// ---- Data Exchange Initialization ---- +var jsonRepoDir = Path.GetFullPath( + Path.Combine(new FileInfo(Assembly.GetExecutingAssembly().Location).Directory!.FullName, "..", "JSONREPOS")); +if (!Directory.Exists(jsonRepoDir)) Directory.CreateDirectory(jsonRepoDir); + +// AxoDataExchange +IRepository axoProcessDataRepository = + new JsonRepositorySettings( + Path.Combine(jsonRepoDir, "ProcessData")).Factory(); +Entry.Plc.Ctx.AxoDataExchangeContext.DataManager.InitializeRemoteDataExchange(axoProcessDataRepository); + +// AxoDataFragmentExchange +IRepository sharedDataHeaderRepo = + new JsonRepositorySettings( + Path.Combine(jsonRepoDir, "SharedDataHeader")).Factory(); +IRepository station1DataRepo = + new JsonRepositorySettings( + Path.Combine(jsonRepoDir, "Station_1")).Factory(); + +var axoFragmentDataManager = Entry.Plc.Ctx.AxoDataFragmentsExchangeContext.DataManager + .CreateDataFragments(); +axoFragmentDataManager.SharedHeader.SetRepository(sharedDataHeaderRepo); +axoFragmentDataManager.Station_1.SetRepository(station1DataRepo); +axoFragmentDataManager.InitializeRemoteDataExchange(); + +// AxoDataPersistentExchange +IRepository persistentRepository = + new JsonRepositorySettings( + Path.Combine(jsonRepoDir, "PersistentData")).Factory(); +Entry.Plc.Ctx.AxoDataPersistentContext.DataManager.InitializeRemoteDataExchange( + Entry.Plc.Ctx.AxoDataPersistentContext.PersistentRootObject, + persistentRepository); + +// Clean temp directory +AXOpen.Data.IAxoDataExchange.CleanUp(); + +// AxoDataDistributed +IRepository distributedHeaderRepo = + new JsonRepositorySettings( + Path.Combine(jsonRepoDir, "DistributedHeader")).Factory(); +IRepository distributedStationRepo = + new JsonRepositorySettings( + Path.Combine(jsonRepoDir, "DistributedStation")).Factory(); + +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.EntityHeader.SetRepository(distributedHeaderRepo); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2.EntityHeader.SetRepository(distributedHeaderRepo); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.ProcessData.SetRepository(distributedStationRepo); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2.ProcessData.SetRepository(distributedStationRepo); + +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.EntityHeader.InitializeRemoteDataExchange(); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2.EntityHeader.InitializeRemoteDataExchange(); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1.ProcessData.InitializeRemoteDataExchange(); +Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2.ProcessData.InitializeRemoteDataExchange(); + +// Distributed data services +var distributedDataService = new DistributedDataExchangeService(); +builder.Services.AddSingleton(distributedDataService); + +var exchangeConfigurationService = new AxoDataExchangeConfigurationService(); +builder.Services.AddSingleton(exchangeConfigurationService); + +distributedDataService.CollectAxoDataExchanges(Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_1); +distributedDataService.CollectAxoDataExchanges(Entry.Plc.Ctx.AxoDataDistributedContext.ControlledUnit_2); + +distributedDataService.SetPrioritizedType(typeof(Pocos.AxoDataDistributedExample.SharedHeader_Data)); +distributedDataService.SortGroupsByPriorizedTypes(); + +exchangeConfigurationService.AddConfiguration( + suffix: "", + configAction: a => + { + a.AddColumn("Global Result", x => x.HeaderGlogalPass, true, typeof(CustomBoolTemplate)) + .AddColumn("Index", x => x.HeaderIndex, false, typeof(CustomIntTemplate)) + .EnableSorting() + .AddSorting(x => x.HeaderPartialName); + }); + +exchangeConfigurationService.AddConfiguration( + suffix: "", + configAction: a => + { + a.AddColumn("Station Result", x => x.StationPass, true, typeof(CustomBoolTemplate)) + .AddColumn("Name", x => x.StationName, true, null) + .AddColumn("Operation", x => x.StaionOperation, true, null) + .EnableSorting(); + }); + +var app = builder.Build(); + +// +app.Use(async (context, next) => +{ + var keyenceComponent = Entry.Plc.Ctx.keyence_vision_documentation.axo_IV3.Component; // Replace with your actual component instance. + await keyenceComponent.ConfigureProxy(context, next); +}); +// + +// Initialize content search index (fire-and-forget, non-blocking) +_ = app.Services.GetRequiredService().InitializeAsync(); + +if (!app.Environment.IsDevelopment()) +{ + app.UseExceptionHandler("/Error"); + app.UseHsts(); +} + +app.UseHttpsRedirection(); +app.UseStaticFiles(); +app.UseRouting(); +app.UseAuthentication(); +app.UseAuthorization(); +app.MapAdditionalIdentityEndpoints(); +app.MapBlazorHub(); +// +// SignalR hub for dialog/alert cross-client synchronization +app.MapHub(SignalRDialogHub.HUB_URL_SUFFIX); +// +app.MapFallbackToPage("/_Host"); +app.Run(); + +static (IRepository, IRepository) SetUpJsonSecurity(string path = "JSONREPOS") +{ + var dir = Path.GetFullPath( + Path.Combine(new FileInfo(Assembly.GetExecutingAssembly().Location).Directory!.FullName, "..", path)); + if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); + + return (new JsonRepository(new JsonRepositorySettings(Path.Combine(dir, "Users"))), + new JsonRepository(new JsonRepositorySettings(Path.Combine(dir, "Groups")))); +} + +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), + }; + + // Add all roles from AXOpen.Data + foreach (var item in typeof(AXOpen.Data.DataExchangeRoleNames) + .GetFields(BindingFlags.Public | BindingFlags.Static) + .Where(f => f.FieldType == typeof(string))) + { + roles.Add(new Role(item.Name)); + } + + 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/_test/app/ix-blazor/showcase.blazor/Properties/launchSettings.json b/src/_test/app/ix-blazor/showcase.blazor/Properties/launchSettings.json new file mode 100644 index 000000000..85660a9ff --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Properties/launchSettings.json @@ -0,0 +1,37 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:5090", + "sslPort": 44390 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5090", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7290;http://localhost:5090", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Services/CodeSnippetProvider.cs b/src/_test/app/ix-blazor/showcase.blazor/Services/CodeSnippetProvider.cs new file mode 100644 index 000000000..3055986f3 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Services/CodeSnippetProvider.cs @@ -0,0 +1,420 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; + +namespace showcase.Services +{ + /// + /// Provides code snippets from actual source files for display in documentation pages. + /// + public class CodeSnippetProvider + { + private readonly string _basePath; + + /// The resolved base path used for file lookups. + public string BasePath => _basePath; + + public CodeSnippetProvider(string basePath = null) + { + // Default to the project root if not specified + _basePath = basePath ?? GetProjectRoot(); + } + + /// + /// Retrieves code snippet from a file, optionally extracting a range of lines. + /// + public async Task GetSnippetAsync(string filePath, int? startLine = null, int? endLine = null) + { + try + { + var fullPath = Path.Combine(_basePath, filePath); + var normalizedPath = Path.GetFullPath(fullPath); + + System.Diagnostics.Debug.WriteLine($"CodeSnippetProvider: Looking for file at {normalizedPath}"); + Console.WriteLine($"CodeSnippetProvider: Looking for file at {normalizedPath}"); + Console.WriteLine($"CodeSnippetProvider: Base path is {_basePath}"); + + if (!File.Exists(normalizedPath)) + { + // Try alternative paths + var altPaths = new[] + { + Path.Combine(_basePath, "..", filePath), + Path.Combine(AppContext.BaseDirectory, "..", "..", "..", "..", "..", filePath) + }; + + foreach (var altPath in altPaths) + { + var normalized = Path.GetFullPath(altPath); + Console.WriteLine($"CodeSnippetProvider: Trying alternative path {normalized}"); + if (File.Exists(normalized)) + { + normalizedPath = normalized; + break; + } + } + + if (!File.Exists(normalizedPath)) + { + return new CodeSnippet + { + FilePath = filePath, + Content = $"// File not found at: {normalizedPath}", + Language = GetLanguageFromExtension(filePath), + IsError = true + }; + } + } + + var allLines = await File.ReadAllLinesAsync(normalizedPath); + var snippet = ExtractLines(allLines, startLine, endLine); + + return new CodeSnippet + { + FilePath = filePath, + Content = TrimCommonIndent(snippet), + Language = GetLanguageFromExtension(filePath), + StartLine = startLine ?? 1, + EndLine = endLine ?? allLines.Length + }; + } + catch (Exception ex) + { + Console.WriteLine($"CodeSnippetProvider Error: {ex}"); + return new CodeSnippet + { + FilePath = filePath, + Content = $"// Error reading file: {ex.Message}", + Language = GetLanguageFromExtension(filePath), + IsError = true + }; + } + } + + /// + /// Extracts the code region delimited by open/close tag markers. + /// Supports ST-style: // … // + /// Supports Razor/HTML: + /// Supports YAML/shell: # … # + /// Matching is case-insensitive and tolerates extra whitespace inside the markers. + /// + public async Task GetTaggedRegionAsync(string filePath, string tagName) + { + var full = await GetSnippetAsync(filePath); + if (full.IsError) + return full; + + var lines = full.Content.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None); + int start = -1; + int end = -1; + + for (int i = 0; i < lines.Length; i++) + { + var t = lines[i].Trim(); + + if (start < 0) + { + if (IsOpenTag(t, tagName)) + start = i + 1; // content starts on the next line + } + else + { + if (IsCloseTag(t, tagName)) + { + end = i; // content ends before this line + break; + } + } + } + + if (start < 0 || end < 0 || end <= start) + return new CodeSnippet + { + FilePath = filePath, + Content = $"// Region '<{tagName}>' not found in {filePath}", + Language = full.Language, + IsError = true + }; + + return new CodeSnippet + { + FilePath = filePath, + Content = TrimCommonIndent(lines[start..end]), + Language = full.Language, + StartLine = start + 1, + EndLine = end + }; + } + + private static bool IsOpenTag(string trimmedLine, string tagName) + { + // ST: // or //< TagName> + if (trimmedLine.StartsWith("//", StringComparison.Ordinal)) + { + var inner = trimmedLine[2..].Trim().Trim('<', '>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + // HTML: + if (trimmedLine.StartsWith("", StringComparison.Ordinal)) + { + var inner = trimmedLine[4..^3].Trim().Trim('<', '>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + // YAML/shell: # or # + if (trimmedLine.StartsWith("#", StringComparison.Ordinal) && + !trimmedLine.StartsWith("##", StringComparison.Ordinal)) + { + var inner = trimmedLine[1..].Trim().Trim('<', '>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + return false; + } + + private static bool IsCloseTag(string trimmedLine, string tagName) + { + // ST: // or //< /TagName> + if (trimmedLine.StartsWith("//", StringComparison.Ordinal)) + { + var inner = trimmedLine[2..].Trim().TrimStart('<').TrimStart('/').Trim().TrimEnd('>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + // HTML: + if (trimmedLine.StartsWith("", StringComparison.Ordinal)) + { + var inner = trimmedLine[4..^3].Trim().TrimStart('<').TrimStart('/').Trim().TrimEnd('>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + // YAML/shell: # or # + if (trimmedLine.StartsWith("#", StringComparison.Ordinal) && + !trimmedLine.StartsWith("##", StringComparison.Ordinal)) + { + var inner = trimmedLine[1..].Trim().TrimStart('<').TrimStart('/').Trim().TrimEnd('>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + return false; + } + + /// + /// Extracts full sequencer step blocks from ST code. + /// Looks for patterns: IF(Steps[x].Execute(...)) THEN ... END_IF; + /// + public async Task> GetStepLogicBlocksAsync(string filePath) + { + var result = new List(); + var snippet = await GetSnippetAsync(filePath); + + if (snippet.IsError || string.IsNullOrWhiteSpace(snippet.Content)) + { + return result; + } + + var lines = snippet.Content.Split(new[] { "\r\n", "\n" }, StringSplitOptions.None); + StepLogicBlock current = null; + var currentLines = new List(); + var nestingDepth = 0; + + for (var i = 0; i < lines.Length; i++) + { + var line = lines[i]; + var trimmed = line.Trim(); + + var isStepStart = current == null && trimmed.StartsWith("IF(") && trimmed.Contains(".Execute("); + + if (isStepStart) + { + var stepSymbol = ParseStepSymbol(trimmed); + var stepNo = ParseStepNumber(trimmed); + var title = ParseStepTitle(trimmed); + + current = new StepLogicBlock + { + StepNumber = stepNo, + StepSymbol = stepSymbol, + Title = title, + StartLine = i + 1 + }; + + currentLines.Clear(); + currentLines.Add(line); + nestingDepth = 1; + continue; + } + + if (current == null) + { + continue; + } + + currentLines.Add(line); + + if (trimmed.StartsWith("IF(") || trimmed.StartsWith("IF ")) + { + nestingDepth++; + } + + if (trimmed.StartsWith("END_IF;")) + { + nestingDepth--; + } + + if (nestingDepth == 0) + { + current.EndLine = i + 1; + current.Logic = TrimCommonIndent(currentLines.ToArray()); + result.Add(current); + + current = null; + currentLines.Clear(); + } + } + + return result; + } + + private static string ParseStepSymbol(string stepLine) + { + // Extracts the identifier between IF( and .Execute( e.g. "Steps[2]" from "IF(Steps[2].Execute(..." + var ifStart = stepLine.IndexOf("IF(", StringComparison.Ordinal); + if (ifStart < 0) return string.Empty; + + var symbolStart = ifStart + "IF(".Length; + var executeIdx = stepLine.IndexOf(".Execute(", symbolStart, StringComparison.Ordinal); + if (executeIdx < 0) return string.Empty; + + return stepLine.Substring(symbolStart, executeIdx - symbolStart); + } + + private static int ParseStepNumber(string stepLine) + { + var start = stepLine.IndexOf("Steps[", StringComparison.Ordinal); + if (start < 0) return -1; + + start += "Steps[".Length; + var end = stepLine.IndexOf(']', start); + if (end < 0) return -1; + + var token = stepLine.Substring(start, end - start); + return int.TryParse(token, out var number) ? number : -1; + } + + private static string ParseStepTitle(string stepLine) + { + var firstQuote = stepLine.IndexOf('\'', StringComparison.Ordinal); + if (firstQuote < 0) return "Unnamed step"; + + var secondQuote = stepLine.IndexOf('\'', firstQuote + 1); + if (secondQuote < 0) return "Unnamed step"; + + return stepLine.Substring(firstQuote + 1, secondQuote - firstQuote - 1); + } + + /// + /// Removes the common leading whitespace from all non-empty lines so snippets + /// render left-aligned regardless of their indentation in the source file. + /// + private static string TrimCommonIndent(string[] lines) + { + var nonEmpty = lines.Where(l => !string.IsNullOrWhiteSpace(l)).ToArray(); + if (nonEmpty.Length == 0) + return string.Join(Environment.NewLine, lines); + + int common = nonEmpty + .Select(l => l.Length - l.TrimStart().Length) + .Min(); + + return string.Join( + Environment.NewLine, + lines.Select(l => l.Length >= common ? l[common..] : l.TrimStart()) + ); + } + + private string[] ExtractLines(string[] allLines, int? startLine, int? endLine) + { + var start = (startLine.HasValue ? startLine.Value - 1 : 0); + var end = (endLine.HasValue ? Math.Min(endLine.Value, allLines.Length) : allLines.Length); + + if (start < 0 || start >= allLines.Length) + return allLines; + + return allLines[start..end]; + } + + private string GetLanguageFromExtension(string filePath) + { + var ext = Path.GetExtension(filePath).ToLowerInvariant(); + return ext switch + { + ".st" => "structured-text", + ".cs" => "csharp", + ".razor" => "html", + ".json" => "json", + ".xml" => "xml", + ".yml" => "yaml", + ".md" => "markdown", + _ => "plaintext" + }; + } + + private string GetProjectRoot() + { + // Start from the current directory and navigate up to find the solution root + var currentDir = AppContext.BaseDirectory; + var root = new DirectoryInfo(currentDir); + + // Look for repo root markers + int levels = 0; + while (root.Parent != null && levels < 15) + { + // Check for repo root markers + if (File.Exists(Path.Combine(root.FullName, "Directory.Build.props")) || + File.Exists(Path.Combine(root.FullName, "Directory.Packages.props")) || + (Directory.Exists(Path.Combine(root.FullName, "src", "showcase", "app", "src")) && + Directory.Exists(Path.Combine(root.FullName, "src", "showcase", "app", "ix-blazor")))) + { + return root.FullName; + } + root = root.Parent; + levels++; + } + + // Fallback: go up from bin/Debug/net10.0 structure + // From: c:\...\ix-blazor\showcase.blazor\bin\Debug\net10.0 + // To: c:\...\axopen (repo root) + root = new DirectoryInfo(currentDir); + for (int i = 0; i < 8; i++) + { + if (root.Parent != null) + root = root.Parent; + } + + return root.FullName; + } + } + + public class CodeSnippet + { + public string FilePath { get; set; } + public string Content { get; set; } + public string Language { get; set; } + public int StartLine { get; set; } = 1; + public int EndLine { get; set; } + public bool IsError { get; set; } + } + + public class StepLogicBlock + { + public int StepNumber { get; set; } + /// + /// The raw identifier of the step as written in ST source, e.g. "Steps[2]". + /// Used to correlate to the live AxoStep twin via its Symbol tail. + /// + public string StepSymbol { get; set; } = string.Empty; + public string Title { get; set; } + public string Logic { get; set; } + public int StartLine { get; set; } + public int EndLine { get; set; } + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Services/ComponentMaturityService.cs b/src/_test/app/ix-blazor/showcase.blazor/Services/ComponentMaturityService.cs new file mode 100644 index 000000000..6ae02853f --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Services/ComponentMaturityService.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; + +namespace showcase.Services +{ + public class ComponentMaturityService + { + private readonly Dictionary _maturityMap = new(StringComparer.OrdinalIgnoreCase); + + public ComponentMaturityService(string basePath = null) + { + var root = basePath ?? GetProjectRoot(); + var mdPath = Path.Combine(root, "COMPONENTS_MATURITY.md"); + if (File.Exists(mdPath)) + { + Parse(File.ReadAllText(mdPath)); + } + } + + public MaturityInfo GetMaturity(string componentName) + { + if (componentName != null && _maturityMap.TryGetValue(componentName, out var info)) + return info; + return new MaturityInfo("red", "red", "red"); + } + + private void Parse(string markdown) + { + // Match table rows: | [Name](path) | Domain | Impl | Tested | BattleTested | ... + var rowPattern = new Regex( + @"\|\s*\[([^\]]+)\]\([^)]*\)\s*\|[^|]*\|\s*([^|]*)\|\s*([^|]*)\|\s*([^|]*)\|", + RegexOptions.Compiled); + + foreach (Match m in rowPattern.Matches(markdown)) + { + var name = m.Groups[1].Value.Trim(); + var implemented = EmojiToColor(m.Groups[2].Value.Trim()); + var tested = EmojiToColor(m.Groups[3].Value.Trim()); + var battleTested = EmojiToColor(m.Groups[4].Value.Trim()); + + _maturityMap[name] = new MaturityInfo(implemented, tested, battleTested); + } + } + + private static string EmojiToColor(string emoji) => emoji switch + { + "🟢" => "green", + "🟡" => "yellow", + "🔴" => "red", + _ => "red" + }; + + private static string GetProjectRoot() + { + var currentDir = AppContext.BaseDirectory; + var root = new DirectoryInfo(currentDir); + int levels = 0; + while (root.Parent != null && levels < 15) + { + if (File.Exists(Path.Combine(root.FullName, "Directory.Build.props")) || + File.Exists(Path.Combine(root.FullName, "COMPONENTS_MATURITY.md"))) + { + return root.FullName; + } + root = root.Parent; + levels++; + } + + // Fallback + root = new DirectoryInfo(currentDir); + for (int i = 0; i < 8; i++) + { + if (root.Parent != null) + root = root.Parent; + } + return root.FullName; + } + } + + public record MaturityInfo(string Implemented, string Tested, string BattleTested); +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Services/DocFxMarkdownProcessor.cs b/src/_test/app/ix-blazor/showcase.blazor/Services/DocFxMarkdownProcessor.cs new file mode 100644 index 000000000..85ff16355 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Services/DocFxMarkdownProcessor.cs @@ -0,0 +1,342 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace showcase.Services +{ + /// + /// Pre-processes DocFX-flavored markdown into standard markdown that Markdig can render. + /// Resolves: + /// - [!code-LANG[](PATH?range=...)] — inline code from file with line ranges + /// - [!code-LANG[](PATH?name=...)] — inline code from file with tagged regions + /// - [!code-LANG[](PATH)] — inline entire file as code block + /// - [!INCLUDE [Label](PATH)] — inline file contents (recursive, depth-limited) + /// + public class DocFxMarkdownProcessor + { + private readonly string _basePath; + private const int MaxIncludeDepth = 5; + + // [!code-smalltalk[](../../path/file.st?range=4-16,60)] + // [!code-csharp[](path/file.cs?name=TagName)] + // [!code-html[](path/file.razor)] + private static readonly Regex CodeIncludeRegex = new( + @"\[!code-(\w+)\[\]\(([^)]+)\)\]", + RegexOptions.Compiled); + + // [!INCLUDE [Label](path/file.md)] + private static readonly Regex FileIncludeRegex = new( + @"\[!INCLUDE\s+\[[^\]]*\]\(([^)]+)\)\]", + RegexOptions.Compiled | RegexOptions.IgnoreCase); + + private static readonly Dictionary LangMap = new(StringComparer.OrdinalIgnoreCase) + { + ["smalltalk"] = "iecst", + ["pascal"] = "iecst", + ["csharp"] = "csharp", + ["html"] = "html", + ["xml"] = "xml", + ["yaml"] = "yaml", + ["json"] = "json", + ["bash"] = "bash", + ["powershell"] = "powershell", + }; + + public DocFxMarkdownProcessor(string basePath) + { + _basePath = basePath; + } + + /// + /// Process markdown content, resolving all DocFX directives. + /// is the path of the markdown file + /// (relative to basePath) used to resolve relative references. + /// + public async Task ProcessAsync(string content, string markdownFilePath) + { + var mdDir = Path.GetDirectoryName(Path.Combine(_basePath, markdownFilePath)) ?? _basePath; + return await ProcessContentAsync(content, mdDir, 0); + } + + private async Task ProcessContentAsync(string content, string contextDir, int depth) + { + if (depth > MaxIncludeDepth) + return content; + + // Process [!INCLUDE] directives first (they may contain code includes) + content = await ResolveIncludesAsync(content, contextDir, depth); + + // Process [!code-*] directives + content = await ResolveCodeIncludesAsync(content, contextDir); + + return content; + } + + private async Task ResolveIncludesAsync(string content, string contextDir, int depth) + { + var matches = FileIncludeRegex.Matches(content); + if (matches.Count == 0) + return content; + + var sb = new StringBuilder(content); + // Process in reverse order to preserve match positions + for (int i = matches.Count - 1; i >= 0; i--) + { + var match = matches[i]; + var relativePath = match.Groups[1].Value; + var fullPath = ResolvePath(contextDir, relativePath); + + string replacement; + if (File.Exists(fullPath)) + { + var included = await File.ReadAllTextAsync(fullPath); + var includedDir = Path.GetDirectoryName(fullPath) ?? contextDir; + replacement = await ProcessContentAsync(included, includedDir, depth + 1); + } + else + { + replacement = $"> *Include not found: `{relativePath}`*"; + } + + sb.Remove(match.Index, match.Length); + sb.Insert(match.Index, replacement); + } + + return sb.ToString(); + } + + private async Task ResolveCodeIncludesAsync(string content, string contextDir) + { + var matches = CodeIncludeRegex.Matches(content); + if (matches.Count == 0) + return content; + + var sb = new StringBuilder(content); + for (int i = matches.Count - 1; i >= 0; i--) + { + var match = matches[i]; + var lang = match.Groups[1].Value; + var pathWithQuery = match.Groups[2].Value; + + var replacement = await ResolveCodeSnippetAsync(lang, pathWithQuery, contextDir); + + sb.Remove(match.Index, match.Length); + sb.Insert(match.Index, replacement); + } + + return sb.ToString(); + } + + private async Task ResolveCodeSnippetAsync(string docfxLang, string pathWithQuery, string contextDir) + { + // Parse path and query string + var queryIdx = pathWithQuery.IndexOf('?'); + var relativePath = queryIdx >= 0 ? pathWithQuery[..queryIdx] : pathWithQuery; + var query = queryIdx >= 0 ? pathWithQuery[(queryIdx + 1)..] : string.Empty; + + var fullPath = ResolvePath(contextDir, relativePath); + + if (!File.Exists(fullPath)) + return $"```\n// File not found: {relativePath}\n```"; + + var allLines = await File.ReadAllLinesAsync(fullPath); + string[] selectedLines; + + if (TryParseQuery(query, out var tagName, out var ranges)) + { + if (tagName != null) + { + selectedLines = ExtractTaggedRegion(allLines, tagName); + } + else if (ranges != null) + { + selectedLines = ExtractRanges(allLines, ranges); + } + else + { + selectedLines = allLines; + } + } + else + { + selectedLines = allLines; + } + + var fenceLang = LangMap.TryGetValue(docfxLang, out var mapped) ? mapped : docfxLang; + var code = TrimCommonIndent(selectedLines); + return $"```{fenceLang}\n{code}\n```"; + } + + private static bool TryParseQuery(string query, out string? tagName, out List<(int start, int end)>? ranges) + { + tagName = null; + ranges = null; + + if (string.IsNullOrEmpty(query)) + return false; + + var parts = query.Split('&'); + foreach (var part in parts) + { + var kv = part.Split('=', 2); + if (kv.Length != 2) continue; + + var key = kv[0].Trim(); + var value = kv[1].Trim(); + + if (key.Equals("name", StringComparison.OrdinalIgnoreCase)) + { + tagName = value; + return true; + } + + if (key.Equals("range", StringComparison.OrdinalIgnoreCase)) + { + ranges = ParseRanges(value); + return true; + } + } + + return false; + } + + private static List<(int start, int end)> ParseRanges(string rangeSpec) + { + var result = new List<(int start, int end)>(); + foreach (var segment in rangeSpec.Split(',')) + { + var trimmed = segment.Trim(); + if (trimmed.Contains('-')) + { + var parts = trimmed.Split('-', 2); + if (int.TryParse(parts[0].Trim(), out var s) && int.TryParse(parts[1].Trim(), out var e)) + result.Add((s, e)); + } + else + { + if (int.TryParse(trimmed, out var line)) + result.Add((line, line)); + } + } + return result; + } + + private static string[] ExtractRanges(string[] allLines, List<(int start, int end)> ranges) + { + var result = new List(); + foreach (var (start, end) in ranges) + { + var s = Math.Max(0, start - 1); // Convert to 0-based + var e = Math.Min(allLines.Length, end); + for (int i = s; i < e; i++) + result.Add(allLines[i]); + } + return result.ToArray(); + } + + private static string[] ExtractTaggedRegion(string[] lines, string tagName) + { + int start = -1; + int end = -1; + + for (int i = 0; i < lines.Length; i++) + { + var t = lines[i].Trim(); + + if (start < 0) + { + if (IsOpenTag(t, tagName)) + start = i + 1; + } + else + { + if (IsCloseTag(t, tagName)) + { + end = i; + break; + } + } + } + + if (start < 0 || end < 0 || end <= start) + return [$"// Region '{tagName}' not found"]; + + return lines[start..end]; + } + + private static bool IsOpenTag(string trimmedLine, string tagName) + { + // ST: // + if (trimmedLine.StartsWith("//", StringComparison.Ordinal)) + { + var inner = trimmedLine[2..].Trim().Trim('<', '>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + // HTML: + if (trimmedLine.StartsWith("", StringComparison.Ordinal)) + { + var inner = trimmedLine[4..^3].Trim().Trim('<', '>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + // YAML: # + if (trimmedLine.StartsWith("#", StringComparison.Ordinal) && + !trimmedLine.StartsWith("##", StringComparison.Ordinal)) + { + var inner = trimmedLine[1..].Trim().Trim('<', '>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + return false; + } + + private static bool IsCloseTag(string trimmedLine, string tagName) + { + if (trimmedLine.StartsWith("//", StringComparison.Ordinal)) + { + var inner = trimmedLine[2..].Trim().TrimStart('<').TrimStart('/').Trim().TrimEnd('>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + if (trimmedLine.StartsWith("", StringComparison.Ordinal)) + { + var inner = trimmedLine[4..^3].Trim().TrimStart('<').TrimStart('/').Trim().TrimEnd('>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + if (trimmedLine.StartsWith("#", StringComparison.Ordinal) && + !trimmedLine.StartsWith("##", StringComparison.Ordinal)) + { + var inner = trimmedLine[1..].Trim().TrimStart('<').TrimStart('/').Trim().TrimEnd('>').Trim(); + return inner.Equals(tagName, StringComparison.OrdinalIgnoreCase); + } + return false; + } + + private static string ResolvePath(string contextDir, string relativePath) + { + // Normalize forward slashes + relativePath = relativePath.Replace('/', Path.DirectorySeparatorChar); + var combined = Path.Combine(contextDir, relativePath); + return Path.GetFullPath(combined); + } + + private static string TrimCommonIndent(string[] lines) + { + var nonEmpty = lines.Where(l => !string.IsNullOrWhiteSpace(l)).ToArray(); + if (nonEmpty.Length == 0) + return string.Join(Environment.NewLine, lines); + + int common = nonEmpty + .Select(l => l.Length - l.TrimStart().Length) + .Min(); + + return string.Join( + Environment.NewLine, + lines.Select(l => l.Length >= common ? l[common..] : l.TrimStart()) + ); + } + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ContentIndexEntry.cs b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ContentIndexEntry.cs new file mode 100644 index 000000000..cf637362a --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ContentIndexEntry.cs @@ -0,0 +1,11 @@ +namespace showcase.Services.Search; + +public class ContentIndexEntry +{ + public required SearchablePageEntry Page { get; init; } + public required string FilePath { get; init; } + public required string Content { get; init; } + public required string[] Lines { get; init; } + public required string Language { get; init; } + public required string FileName { get; init; } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ContentIndexService.cs b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ContentIndexService.cs new file mode 100644 index 000000000..8741212af --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ContentIndexService.cs @@ -0,0 +1,148 @@ +using showcase.Services; + +namespace showcase.Services.Search; + +/// +/// Loads and indexes content from source files referenced by showcase pages. +/// Uses FileSystemWatcher to automatically rebuild the index when files change. +/// +public class ContentIndexService : IDisposable +{ + private readonly CodeSnippetProvider _snippetProvider; + private volatile List _entries = []; + private readonly TaskCompletionSource _initialReady = new(); + private readonly List _watchers = []; + private CancellationTokenSource? _debounceCts; + private readonly object _debounceLock = new(); + + public bool IsReady => _initialReady.Task.IsCompleted; + public IReadOnlyList Entries => _entries; + + public ContentIndexService(CodeSnippetProvider snippetProvider) + { + _snippetProvider = snippetProvider; + } + + public async Task InitializeAsync() + { + await RebuildIndexAsync(); + _initialReady.TrySetResult(); + SetupFileWatchers(); + } + + private async Task RebuildIndexAsync() + { + var pages = ShowcasePageRegistry.GetAllPages(); + var entries = new List(); + + foreach (var page in pages) + { + foreach (var filePath in page.SourceFilePaths) + { + var snippet = await _snippetProvider.GetSnippetAsync(filePath); + if (snippet.IsError || string.IsNullOrWhiteSpace(snippet.Content)) + continue; + + var lines = snippet.Content.Split(["\r\n", "\n"], StringSplitOptions.None); + entries.Add(new ContentIndexEntry + { + Page = page, + FilePath = filePath, + Content = snippet.Content.ToLowerInvariant(), + Lines = lines, + Language = snippet.Language, + FileName = Path.GetFileName(filePath) + }); + } + } + + _entries = entries; + } + + private void SetupFileWatchers() + { + // CodeSnippetProvider resolves paths relative to a project root. + // We watch the src/ directory tree for relevant file types. + var basePath = GetWatchPath(); + if (basePath == null || !Directory.Exists(basePath)) + return; + + var filters = new[] { "*.st", "*.md", "*.yml" }; + foreach (var filter in filters) + { + var watcher = new FileSystemWatcher(basePath, filter) + { + IncludeSubdirectories = true, + NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.CreationTime, + EnableRaisingEvents = true + }; + + watcher.Changed += OnFileChanged; + watcher.Created += OnFileChanged; + watcher.Deleted += OnFileChanged; + watcher.Renamed += OnFileRenamed; + + _watchers.Add(watcher); + } + } + + private void OnFileChanged(object sender, FileSystemEventArgs e) => DebouncedRebuild(); + private void OnFileRenamed(object sender, RenamedEventArgs e) => DebouncedRebuild(); + + private void DebouncedRebuild() + { + lock (_debounceLock) + { + _debounceCts?.Cancel(); + _debounceCts?.Dispose(); + _debounceCts = new CancellationTokenSource(); + var token = _debounceCts.Token; + + _ = Task.Run(async () => + { + try + { + await Task.Delay(500, token); + await RebuildIndexAsync(); + } + catch (OperationCanceledException) + { + // Debounce reset — another change came in + } + catch (Exception ex) + { + Console.WriteLine($"ContentIndexService rebuild error: {ex.Message}"); + } + }, token); + } + } + + private string? GetWatchPath() + { + // Walk up from AppContext.BaseDirectory to find the repo root with src/ directory + var dir = new DirectoryInfo(AppContext.BaseDirectory); + for (var i = 0; i < 15 && dir?.Parent != null; i++) + { + var srcDir = Path.Combine(dir.FullName, "src"); + if (Directory.Exists(srcDir) && + Directory.Exists(Path.Combine(srcDir, "showcase", "app", "src"))) + { + return srcDir; + } + dir = dir.Parent; + } + return null; + } + + public void Dispose() + { + foreach (var watcher in _watchers) + { + watcher.EnableRaisingEvents = false; + watcher.Dispose(); + } + _watchers.Clear(); + _debounceCts?.Cancel(); + _debounceCts?.Dispose(); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Services/Search/SearchResult.cs b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/SearchResult.cs new file mode 100644 index 000000000..4b82c5236 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/SearchResult.cs @@ -0,0 +1,14 @@ +namespace showcase.Services.Search; + +public class SearchResult +{ + public required SearchablePageEntry Entry { get; init; } + public double Score { get; init; } + public string MatchedField { get; init; } = string.Empty; + public string HighlightSnippet { get; init; } = string.Empty; + public bool IsContentMatch { get; init; } + public string? MatchedFilePath { get; init; } + public string? MatchedFileName { get; init; } + public int MatchedLineNumber { get; init; } + public string? MatchedLanguage { get; init; } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Services/Search/SearchablePageEntry.cs b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/SearchablePageEntry.cs new file mode 100644 index 000000000..181a2c57f --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/SearchablePageEntry.cs @@ -0,0 +1,14 @@ +namespace showcase.Services.Search; + +public class SearchablePageEntry +{ + public required string Route { get; init; } + public required string PageTitle { get; init; } + public required string LibraryNamespace { get; init; } + public required string Category { get; init; } + public string? Vendor { get; init; } + public required string Description { get; init; } + public required string Icon { get; init; } + public string[] Tags { get; init; } = []; + public string[] SourceFilePaths { get; init; } = []; +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ShowcasePageRegistry.cs b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ShowcasePageRegistry.cs new file mode 100644 index 000000000..95c07c3f8 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ShowcasePageRegistry.cs @@ -0,0 +1,798 @@ +namespace showcase.Services.Search; + +/// +/// Static registry of all searchable showcase pages. +/// When adding a new showcase page, add a corresponding entry here +/// including SourceFilePaths for full-text content search. +/// +public static class ShowcasePageRegistry +{ + public static List GetAllPages() => + [ + // ── Core Framework ────────────────────────────────────────────── + new() + { + Route = "/core/AxoTask", + PageTitle = "AxoTask", + LibraryNamespace = "AXOpen.Core", + Category = "Core", + Description = "Task execution for PLC programs. Covers AxoTask, AxoMomentaryTask, AxoToggleTask, and AxoRemoteTask.", + Icon = "play", + Tags = ["task", "fire and forget", "momentary", "toggle", "remote task", "control flow"], + SourceFilePaths = [ + "src/showcase/app/src/core/AXOpen.AxoTask/AxoTaskDocuExample.st", + "src/showcase/app/src/core/AXOpen.AxoTask/AxoTaskExample.st", + "src/showcase/app/src/core/AXOpen.AxoMomentaryTask/AxoMomentaryTaskDocuExample.st", + "src/showcase/app/src/core/AXOpen.AxoToggleTask/AxoToggleTaskDocuExample.st", + "src/showcase/app/src/core/AXOpen.AxoRemoteTask/AxoRemoteTaskDocuExample.st", + "src/core/ctrl/src/AxoTask/AxoTask.st", + "src/core/ctrl/src/AxoMomentaryTask/AxoMomentaryTask.st", + "src/core/ctrl/src/AxoToggleTask/AxoToggleTask.st", + "src/core/ctrl/src/AxoRemoteTask/AxoRemoteTask.st", + "src/core/src/AXOpen.Core/AxoRemoteTask/AxoRemoteTask.cs", + "src/showcase/app/ix-blazor/showcase.blazor/Program.cs", + "src/core/docs/AxoTask.md", + "src/core/docs/AxoMomentaryTask.md", + "src/core/docs/AxoToggleTask.md", + "src/core/docs/AxoRemoteTask.md", + "src/core/docs/AxoBoolArray.md", + "src/core/docs/AxoByteArray.md", + "src/core/docs/AxoStep.md", + "src/core/docs/TROUBLES.md", + "src/core/docs/CHANGELOG.md", + ] + }, + new() + { + Route = "/core/AxoSequencer", + PageTitle = "AxoSequencer", + LibraryNamespace = "AXOpen.Core", + Category = "Core", + Description = "Sequencer and step coordination. Triggers steps in order with step-by-step and continuous modes, analytics, and AxoSequencerContainer.", + Icon = "queue-list", + Tags = ["sequencer", "step", "sequence", "coordination", "state machine"], + SourceFilePaths = [ + "src/showcase/app/src/core/AXOpen.AxoSequencer/AxoSequencerDocuExample.st", + "src/showcase/app/src/core/AXOpen.AxoSequencer/AxoSequencerExample.st", + "src/showcase/app/src/core/AXOpen.AxoSequencerContainer/AxoSequencerContainerDocuExample.st", + "src/core/docs/AxoSequencer.md", + "src/core/docs/AxoSequencerContainer.md", + "src/core/docs/AxoStep.md", + "src/core/docs/TROUBLES.md", + "src/core/docs/CHANGELOG.md", + ] + }, + new() + { + Route = "/core/AxoComponent", + PageTitle = "AxoComponent", + LibraryNamespace = "AXOpen.Core", + Category = "Core", + Description = "Base class for all AXOpen components. Provides standardized lifecycle management, automatic UI rendering with header/detail sections, and a consistent restore pattern.", + Icon = "puzzle-piece", + Tags = ["component", "base class", "lifecycle", "restore", "header", "detail"], + SourceFilePaths = [ + "src/showcase/app/src/core/AXOpen.AxoComponent/AxoComponentExample.st", + "src/showcase/app/src/core/AXOpen.AxoComponent/AxoComponentHeaderOnlyExample.st", + "src/core/docs/AxoComponent.md", + "src/core/ctrl/src/AxoComponent/AxoComponent.st", + "src/core/docs/TROUBLES.md", + "src/core/docs/CHANGELOG.md", + ] + }, + new() + { + Route = "/core/AxoMessaging", + PageTitle = "AxoMessaging", + LibraryNamespace = "AXOpen.Core", + Category = "Core", + Description = "AxoMessenger provides categorized PLC messages with acknowledgement. AxoTextList maps message codes to human-readable text.", + Icon = "chat-bubble-left-right", + Tags = ["messaging", "messenger", "text list", "diagnostics", "acknowledgement"], + SourceFilePaths = [ + "src/showcase/app/src/core/AXOpen.Messaging/AxoStaticMessengerDocuExample.st", + "src/showcase/app/src/core/AXOpen.TextList/AxoTextListExample.st", + "src/core/docs/AxoMessenger.md", + "src/core/docs/AxoTextList.md", + "src/core/docs/TROUBLES.md", + "src/core/docs/CHANGELOG.md", + ] + }, + new() + { + Route = "/core/AxoLogger", + PageTitle = "AxoLogger", + LibraryNamespace = "AXOpen.Core", + Category = "Core", + Description = "PLC-to-.NET logging bridge. Log entries are queued on the PLC with severity levels, sender identity, and message codes, then dequeued asynchronously to Serilog.", + Icon = "document-magnifying-glass", + Tags = ["logger", "logging", "serilog", "dequeue", "diagnostics", "log level"], + SourceFilePaths = [ + "src/showcase/app/src/core/AXOpen.Logging/AxoLoggerDocuExample.st", + "src/core/src/AXOpen.Core/AxoLogger/AxoLogger.cs", + "src/core/ctrl/src/AxoLogger/AxoLogger.st", + "src/showcase/app/ix-blazor/showcase.blazor/Program.cs", + "src/core/docs/AxoLogger.md", + "src/core/docs/TROUBLES.md", + "src/core/docs/CHANGELOG.md", + ] + }, + new() + { + Route = "/core/AxoDialogs", + PageTitle = "AxoDialogs", + LibraryNamespace = "AXOpen.Core", + Category = "Core", + Description = "Interactive user prompts triggered from PLC code with configurable buttons and types. AxoAlert shows timed notification banners. Both integrate via SignalR for real-time browser delivery.", + Icon = "chat-bubble-bottom-center-text", + Tags = ["dialog", "alert", "prompt", "notification", "SignalR", "user interaction"], + SourceFilePaths = [ + "src/showcase/app/src/core/AXOpen.Dialogs/AxoDialogExamples.st", + "src/showcase/app/src/core/AXOpen.Dialogs/AxoDialogTest.st", + "src/showcase/app/src/core/AXOpen.Dialogs/AxoAlertDocuExample.st", + "src/showcase/app/ix-blazor/showcase.blazor/Program.cs", + "src/core/docs/AxoDialog.md", + "src/core/docs/AxoAlertDialog.md", + "src/core/docs/TROUBLES.md", + "src/core/docs/CHANGELOG.md", + ] + }, + + // ── Data Management ───────────────────────────────────────────── + new() + { + Route = "/data/DataExchange", + PageTitle = "Data Exchange", + LibraryNamespace = "AXOpen.Data", + Category = "Data", + Description = "CRUD operations between PLC and .NET repositories. Covers standard exchange, fragment-based exchange, persistent storage, and distributed data patterns.", + Icon = "arrows-right-left", + Tags = ["data", "CRUD", "repository", "persistence", "fragment", "distributed", "exchange"], + SourceFilePaths = [ + "src/showcase/app/src/data/AxoDataExchange/AxoDataExchangeExample.st", + "src/showcase/app/src/data/AxoDataFragmentExchange/AxoDataFragmentExchangeExample.st", + "src/showcase/app/src/data/AxoDataPersistentExchange/AxoDataPersistentExchangeExample.st", + "src/showcase/app/src/data/AxoDataDistributed/AxoDataDistributedExample.st", + "src/data/docs/AxoDataExchange.md", + "src/data/docs/AxoDataFragmentExchange.md", + "src/data/docs/AxoDataPersistentExchange.md", + "src/data/docs/DistributedDataExchange.md", + ] + }, + + // ── Generic Components ────────────────────────────────────────── + new() + { + Route = "/components-abstractions/Documentation/ComponentsAbstractionsShowcase", + PageTitle = "Components Abstractions", + LibraryNamespace = "AXOpen.Components.Abstractions", + Category = "Components", + Description = "Standard interface contracts for all AXOpen components: IAxoDrive, IAxoRobotics, IAxoCodeReader, IAxoVisionSensor, IAxo_Power, and shared data types.", + Icon = "document-text", + Tags = ["abstractions", "interface", "contract", "IAxoDrive", "IAxoRobotics", "IAxoCodeReader", "IAxoVisionSensor"], + SourceFilePaths = [ + "src/showcase/app/src/components.abstractions/ComponentsAbstractionsShowcase.st", + "src/components.abstractions/docs/README.md", + "src/components.abstractions/docs/TROUBLES.md", + "src/components.abstractions/ctrl/apax.yml", + ] + }, + new() + { + Route = "/components-drives/Documentation/DrivesShowcase", + PageTitle = "Drives", + LibraryNamespace = "AXOpen.Components.Drives", + Category = "Components", + Description = "Abstract drive component providing a vendor-neutral foundation for motion control in SIMATIC AX.", + Icon = "document-text", + Tags = ["drive", "motion", "motor", "servo", "axis", "abstract"], + SourceFilePaths = [ + "src/showcase/app/src/components.drives/Documentation/Drives.st", + "src/showcase/app/src/components.drives/Documentation/AxoDriveExample_Showcase.st", + "src/components.drives/docs/README.md", + "src/components.drives/docs/AxoDriveExample_Showcase.md", + "src/components.drives/docs/AxoDriveExample_Showcase2.md", + "src/components.drives/docs/TROUBLES.md", + "src/components.drives/ctrl/src/AxoDrives/AxoDrive.st", + "src/components.drives/ctrl/apax.yml", + ] + }, + new() + { + Route = "/components-elements/Documentation/ElementsShowcase", + PageTitle = "Elements", + LibraryNamespace = "AXOpen.Components.Elements", + Category = "Components", + Description = "Basic I/O building blocks — digital inputs/outputs, analog inputs/outputs, signal tower, and rotary indexing table.", + Icon = "document-text", + Tags = ["elements", "digital", "analog", "signal tower", "rotary", "indexing table", "backlit button", "I/O"], + SourceFilePaths = [ + "src/showcase/app/src/components.elements/Documentation/Elements.st", + "src/components.elements/docs/README.md", + "src/components.elements/docs/AxoDi.md", + "src/components.elements/docs/AxoDo.md", + "src/components.elements/docs/AxoAi.md", + "src/components.elements/docs/AxoAo.md", + "src/components.elements/docs/AxoBacklitButton.md", + "src/components.elements/docs/AxoSignalTower.md", + "src/components.elements/docs/AxoRotaryIndexingTable.md", + "src/components.elements/docs/HOWTO.md", + "src/components.elements/docs/TROUBLES.md", + "src/components.elements/docs/CHANGELOG.md", + "src/components.elements/ctrl/src/AxoDi/AxoDi.st", + "src/components.elements/ctrl/src/AxoDo/AxoDo.st", + "src/components.elements/ctrl/src/AxoAi/AxoAi.st", + "src/components.elements/ctrl/src/AxoAo/AxoAo.st", + "src/components.elements/ctrl/src/AxoBacklitButton/AxoBacklitButton.st", + "src/components.elements/ctrl/src/AxoSignalTower/AxoSignalTower.st", + "src/components.elements/ctrl/src/AxoRotaryIndexingTable/AxoRotaryIndexingTable.st", + "src/components.elements/ctrl/apax.yml", + ] + }, + new() + { + Route = "/components-pneumatics/Documentation/PneumaticsShowcase", + PageTitle = "Pneumatics", + LibraryNamespace = "AXOpen.Components.Pneumatics", + Category = "Components", + Description = "AxoCylinder component for controlling pneumatic cylinders with move-in/move-out/stop actions, sensor feedback, and configurable suspend/abort conditions.", + Icon = "document-text", + Tags = ["pneumatics", "cylinder", "actuator", "valve", "move-in", "move-out"], + SourceFilePaths = [ + "src/showcase/app/src/components.pneumatics/Documentation/PneumaticsShowcase.st", + "src/showcase/app/src/components.pneumatics/Documentation/AxoCylinder.st", + "src/showcase/app/hwc/plc_line.hwl.yml", + "src/showcase/app/hwc/library_templates/AventicsPneumatics/AventicsPneumaticsAES.hwl.yml", + "src/components.pneumatics/docs/README.md", + "src/components.pneumatics/docs/AXOCYLINDER.md", + "src/components.pneumatics/docs/HOWTO.md", + "src/components.pneumatics/docs/TROUBLES.md", + "src/components.pneumatics/ctrl/src/AxoCylinder.st", + "src/components.pneumatics/ctrl/apax.yml", + ] + }, + new() + { + Route = "/components-robotics/Documentation/RoboticsShowcase", + PageTitle = "Robotics", + LibraryNamespace = "AXOpen.Components.Robotics", + Category = "Components", + Description = "Generic robotics base library providing abstract interfaces and common types for vendor-specific robot integrations.", + Icon = "document-text", + Tags = ["robotics", "robot", "base", "abstract", "motion"], + SourceFilePaths = [ + "src/showcase/app/src/components.robotics/Documentation/Robotics.st", + "src/components.robotics/docs/README.md", + "src/components.robotics/docs/RoboticsUtilities.md", + "src/components.robotics/docs/VendorImplementations.md", + "src/components.robotics/docs/TROUBLES.md", + "src/components.robotics/ctrl/src/AxoRobotics/AxoRobot_Status.st", + "src/components.robotics/ctrl/src/AxoRobotics/CalculateDistance.st", + "src/components.robotics/ctrl/src/AxoRobotics/CoordinatesAreNearlyEqual.st", + "src/components.robotics/ctrl/src/AxoRobotics/IsNearlyEqual.st", + "src/components.robotics/ctrl/apax.yml", + ] + }, + + // ── Vendor Components: Robotics ───────────────────────────────── + new() + { + Route = "/components-abb-robotics/Documentation/AbbRobotics", + PageTitle = "ABB Robotics", + LibraryNamespace = "AXOpen.Components.Abb.Robotics", + Category = "Vendor Components", + Vendor = "ABB", + Description = "Practical reference for integrating ABB robots in SIMATIC AX applications with runnable command widgets and live component status.", + Icon = "document-text", + Tags = ["ABB", "robot", "robotics", "IRB"], + SourceFilePaths = [ + "src/showcase/app/src/components.abb.robotics/Documentation/AbbRobotics.st", + "src/showcase/app/src/components.abb.robotics/Documentation/AxoIrc5_v_1_x_x_Showcase.st", + "src/showcase/app/src/components.abb.robotics/Documentation/AxoOmnicore_v_1_x_x_Showcase.st", + "src/showcase/app/hwc/library_templates/abb_robotics_irc5/abb_irc5_robot_in64b_out64b.hwl.yml", + "src/showcase/app/hwc/library_templates/abb_robotics_omnicore/abb_omnicore_robot_in64b_out64b.hwl.yml", + "src/components.abb.robotics/docs/README.md", + "src/components.abb.robotics/docs/AxoIrc5_v_1_x_x.md", + "src/components.abb.robotics/docs/AxoOmnicore_v_1_x_x.md", + "src/components.abb.robotics/docs/TROUBLES.md", + "src/components.abb.robotics/ctrl/src/AxoIrc5_v_1_x_x.st", + "src/components.abb.robotics/ctrl/apax.yml", + ] + }, + new() + { + Route = "/components-kuka-robotics/Documentation/KukaRobotics", + PageTitle = "KUKA Robotics", + LibraryNamespace = "AXOpen.Components.Kuka.Robotics", + Category = "Vendor Components", + Vendor = "KUKA", + Description = "Practical reference for integrating KUKA KRC4 and KRC5 robots in SIMATIC AX applications with runnable command widgets and live component status.", + Icon = "document-text", + Tags = ["KUKA", "robot", "robotics", "KRC4", "KRC5"], + SourceFilePaths = [ + "src/showcase/app/src/components.kuka.robotics/Documentation/KukaRobotics.st", + "src/showcase/app/src/components.kuka.robotics/Documentation/AxoKrc4_v_5_x_x_Showcase.st", + "src/showcase/app/src/components.kuka.robotics/Documentation/AxoKrc5_v_5_x_x_Showcase.st", + "src/components.kuka.robotics/docs/README.md", + "src/components.kuka.robotics/docs/AxoKrc4_v_5_x_x.md", + "src/components.kuka.robotics/docs/TROUBLES.md", + "src/components.kuka.robotics/ctrl/src/AxoKrc4/v_5_x_x/AxoKrc4.st", + "src/components.kuka.robotics/ctrl/src/AxoKrc5/v_5_x_x/AxoKrc5.st", + "src/components.kuka.robotics/ctrl/assets/kuka_krc4/kuka_krc4_dio512.hwl.yml", + "src/components.kuka.robotics/ctrl/assets/kuka_krc5/kuka_krc5_dio512.hwl.yml", + "src/components.kuka.robotics/ctrl/apax.yml", + ] + }, + new() + { + Route = "/components-mitsubishi-robotics/Documentation/MitsubishiRobotics", + PageTitle = "Mitsubishi Robotics", + LibraryNamespace = "AXOpen.Components.Mitsubishi.Robotics", + Category = "Vendor Components", + Vendor = "Mitsubishi Electric", + Description = "Practical reference for integrating Mitsubishi robots in SIMATIC AX applications with runnable command widgets and live component status.", + Icon = "document-text", + Tags = ["Mitsubishi", "robot", "robotics", "MELFA"], + SourceFilePaths = [ + "src/showcase/app/src/components.mitsubishi.robotics/Documentation/MitsubishiRobotics.st", + "src/showcase/app/src/components.mitsubishi.robotics/Documentation/AxoCr800_v_1_x_x_Showcase.st", + "src/showcase/app/hwc/library_templates/mitsubishi_tz535/mitsubishi_tz535_64b_inout.hwl.yml", + "src/components.mitsubishi.robotics/docs/README.md", + "src/components.mitsubishi.robotics/docs/AxoCr800_v_1_x_x.md", + "src/components.mitsubishi.robotics/docs/TROUBLES.md", + "src/components.mitsubishi.robotics/ctrl/src/AxoCr800_v_1_x_x.st", + "src/components.mitsubishi.robotics/ctrl/apax.yml", + ] + }, + new() + { + Route = "/components-ur-robotics/Documentation/UrRobotics", + PageTitle = "UR Robotics", + LibraryNamespace = "AXOpen.Components.Ur.Robotics", + Category = "Vendor Components", + Vendor = "Universal Robots", + Description = "Practical reference for integrating Universal Robots in SIMATIC AX applications with runnable command widgets and live component status.", + Icon = "document-text", + Tags = ["Universal Robots", "UR", "cobot", "collaborative robot", "robotics"], + SourceFilePaths = [ + "src/showcase/app/src/components.ur.robotics/Documentation/UrRobotics.st", + "src/showcase/app/src/components.ur.robotics/Documentation/AxoUrCb3_v_3_x_x_Showcase.st", + "src/showcase/app/hwc/library_templates/ur_robotics/ur_robot.hwl.yml", + "src/components.ur.robotics/docs/README.md", + "src/components.ur.robotics/docs/AxoUrCb3_v_3_x_x_Showcase.md", + "src/components.ur.robotics/docs/TROUBLES.md", + "src/components.ur.robotics/ctrl/src/AxoUrCb3/AxoUrCb3_v_3_x_x.st", + "src/components.ur.robotics/ctrl/apax.yml", + ] + }, + + // ── Vendor Components: Vision ─────────────────────────────────── + new() + { + Route = "/components-cognex-vision/Documentation/CognexVision", + PageTitle = "Cognex Vision", + LibraryNamespace = "AXOpen.Components.Cognex.Vision", + Category = "Vendor Components", + Vendor = "Cognex", + Description = "Practical reference for integrating Cognex vision systems in SIMATIC AX applications with runnable command widgets and live component status.", + Icon = "document-text", + Tags = ["Cognex", "vision", "camera", "inspection", "image"], + SourceFilePaths = [ + "src/showcase/app/src/components.cognex.vision/Documentation/CognexVision.st", + "src/showcase/app/src/components.cognex.vision/Documentation/AxoInsight_v_6_0_0.st", + "src/showcase/app/src/components.cognex.vision/Documentation/AxoInsight_v_24_0_0.st", + "src/showcase/app/src/components.cognex.vision/Documentation/AxoDataman.st", + "src/showcase/app/src/components.cognex.vision/Documentation/AxoDataman_Secondary.st", + "src/showcase/app/src/components.cognex.vision/Documentation/AxoVisionPro.st", + "src/components.cognex.vision/docs/README.md", + "src/components.cognex.vision/docs/AxoInsight_v_6_0_0_0.md", + "src/components.cognex.vision/docs/AxoInsight_v_24_0_0.md", + "src/components.cognex.vision/docs/AxoDataman.md", + "src/components.cognex.vision/docs/AxoVisionPro.md", + "src/components.cognex.vision/docs/TROUBLES.md", + "src/components.cognex.vision/ctrl/src/AxoInsight/v_6_0_0/AxoInsight.st", + "src/components.cognex.vision/ctrl/src/AxoInsight/v_24_0_0/AxoInsight.st", + "src/components.cognex.vision/ctrl/src/AxoDataman/v_6_0_0/AxoDataman.st", + "src/components.cognex.vision/ctrl/src/AxoVisionPro/AxoVisionPro.st", + "src/components.cognex.vision/ctrl/apax.yml", + "src/showcase/app/hwc/library_templates/Cognex_Vision_Insight_V_6_0_0/Cognex_Vision_Insight_V_6_0_0.hwl.yml", + "src/showcase/app/hwc/library_templates/cognex_vision_dataman280/Cognex_Dataman280.hwl.yml", + "src/showcase/app/hwc/library_templates/cognex_vision_dataman380/Cognex_Dataman380.hwl.yml", + "src/showcase/app/hwc/library_templates/cognex_vision_insight_2800/Cognex_Insight2800.hwl.yml", + "src/showcase/app/hwc/library_templates/cognex_vision_pro/cognex_vision_pro.hwl.yml", + ] + }, + new() + { + Route = "/components-keyence-vision/Documentation/KeyenceVision", + PageTitle = "Keyence Vision", + LibraryNamespace = "AXOpen.Components.Keyence.Vision", + Category = "Vendor Components", + Vendor = "Keyence", + Description = "Practical reference for integrating Keyence vision systems in SIMATIC AX applications with runnable command widgets and live component status.", + Icon = "document-text", + Tags = ["Keyence", "vision", "camera", "inspection", "image"], + SourceFilePaths = [ + "src/showcase/app/src/components.keyence.vision/Documentation/KeyenceVision.st", + "src/showcase/app/src/components.keyence.vision/Documentation/Axo_SR_750_Showcase.st", + "src/showcase/app/src/components.keyence.vision/Documentation/Axo_SR_1000_Showcase.st", + "src/showcase/app/src/components.keyence.vision/Documentation/Axo_IV3_Showcase.st", + "src/components.keyence.vision/docs/README.md", + "src/components.keyence.vision/docs/TROUBLES.md", + "src/components.keyence.vision/docs/CHANGELOG.md", + "src/components.keyence.vision/docs/Axo_IV3.md", + "src/components.keyence.vision/docs/Axo_SR_750.md", + "src/components.keyence.vision/docs/Axo_SR_1000.md", + "src/components.keyence.vision/ctrl/src/Axo_IV3/Axo_IV3.st", + "src/components.keyence.vision/ctrl/src/Axo_SR_750.st", + "src/components.keyence.vision/ctrl/src/Axo_SR_1000.st", + "src/components.keyence.vision/ctrl/apax.yml", + "src/showcase/app/hwc/library_templates/Keyence_IV3/Keyence_IV3.hwl.yml", + "src/showcase/app/hwc/library_templates/Keyence_SR_750/Keyence_SR_750.hwl.yml", + "src/showcase/app/hwc/library_templates/Keyence_SR_1000/Keyence_SR_1000.hwl.yml", + ] + }, + new() + { + Route = "/components-zebra-vision/Documentation/ZebraVision", + PageTitle = "Zebra Vision", + LibraryNamespace = "AXOpen.Components.Zebra.Vision", + Category = "Vendor Components", + Vendor = "Zebra", + Description = "Practical reference for integrating Zebra vision systems in SIMATIC AX applications with runnable command widgets and live component status.", + Icon = "document-text", + Tags = ["Zebra", "vision", "camera", "barcode", "scanner", "EA3600"], + SourceFilePaths = [ + "src/showcase/app/src/components.zebra.vision/Documentation/ZebraVision.st", + "src/showcase/app/src/components.zebra.vision/Documentation/AxoEA3600_Showcase.st", + "src/showcase/app/src/components.zebra.vision/Documentation/AxoEA3600_Showcase2.st", + "src/components.zebra.vision/docs/README.md", + "src/components.zebra.vision/docs/TROUBLES.md", + "src/components.zebra.vision/docs/CHANGELOG.md", + "src/components.zebra.vision/docs/AxoEA3600.md", + "src/components.zebra.vision/ctrl/src/AxoEA3600/AxoEA3600.st", + "src/components.zebra.vision/ctrl/apax.yml", + "src/showcase/app/hwc/plc_line.hwl.yml", + "src/showcase/app/hwc/library_templates/zebra_ea3600/zebra_ea3600_88in6out.hwl.yml", + ] + }, + + // ── Vendor Components: Identification ─────────────────────────── + new() + { + Route = "/components-balluff-identification/Documentation/BalluffIdentification", + PageTitle = "Balluff Identification", + LibraryNamespace = "AXOpen.Components.Balluff.Identification", + Category = "Vendor Components", + Vendor = "Balluff", + Description = "Practical reference for integrating Balluff identification readers in SIMATIC AX applications with runnable command widgets and live component status.", + Icon = "document-text", + Tags = ["Balluff", "identification", "RFID", "reader", "code reader"], + SourceFilePaths = [ + "src/showcase/app/src/components.balluff.identification/Documentation/BalluffIdentification.st", + "src/showcase/app/src/components.balluff.identification/Documentation/Axo_BIS_M_4XX_045.st", + "src/showcase/app/src/components.balluff.identification/Documentation/Axo_BIS_M_4XX_045_ManualControl.st", + "src/components.balluff.identification/docs/README.md", + "src/components.balluff.identification/docs/Axo_BIS_M_4XX_045.md", + "src/components.balluff.identification/docs/TROUBLES.md", + "src/showcase/app/hwc/library_templates/balluff_identification_BIS_M_4XX_045/BNIPNT507005Z040.hwl.yml", + ] + }, + new() + { + Route = "/components-siem-identification/Documentation/SiemIdentification", + PageTitle = "Siemens Identification", + LibraryNamespace = "AXOpen.Components.Siem.Identification", + Category = "Vendor Components", + Vendor = "Siemens", + Description = "RFID readers via Ident profile, IO-Link, and cyclic communication using Siemens RF186C / RF260R / RF340R hardware.", + Icon = "document-text", + Tags = ["Siemens", "identification", "RFID", "IO-Link", "RF186C", "RF260R", "RF340R"], + SourceFilePaths = [ + "src/showcase/app/src/components.siem.identification/Documentation/SiemIdentification.st", + "src/showcase/app/src/components.siem.identification/Documentation/Axo_IdentDevice_Showcase.st", + "src/showcase/app/src/components.siem.identification/Documentation/AxoIOLink_RF200Device_Showcase.st", + "src/showcase/app/src/components.siem.identification/Documentation/AxoSimaticIdentCyclic_Showcase.st", + "src/showcase/app/src/components.siem.identification/Documentation/AxoSimaticIdentCyclic_Showcase2.st", + "src/components.siem.identification/docs/README.md", + "src/components.siem.identification/docs/Axo_IdentDevice.md", + "src/components.siem.identification/docs/AxoIOLink_RF200Device.md", + "src/components.siem.identification/docs/AxoSimaticIdentCyclic.md", + "src/components.siem.identification/docs/TROUBLES.md", + "src/components.siem.identification/ctrl/src/IdentProfile/Axo_IdentDevice.st", + "src/components.siem.identification/ctrl/src/IOLink/AxoIOLink_RF200Device.st", + "src/components.siem.identification/ctrl/src/AxoSimaticIdentCyclic/AxoSimaticIdentCyclic.st", + "src/components.siem.identification/ctrl/apax.yml", + "src/showcase/app/hwc/library_templates/siemens_identification/rf186c.hwl.yml", + "src/showcase/app/hwc/library_templates/siemens_identification/rf186c_cyc.hwl.yml", + "src/showcase/app/hwc/library_templates/siemens_identification/et200sp_CM_4xIO_Link_RF200.hwl.yml", + ] + }, + + // ── Vendor Components: Drives ─────────────────────────────────── + new() + { + Route = "/components-festo-drives/Documentation/FestoDrives", + PageTitle = "Festo Drives", + LibraryNamespace = "AXOpen.Components.Festo.Drives", + Category = "Vendor Components", + Vendor = "Festo", + Description = "Practical reference for integrating Festo drives in SIMATIC AX applications with runnable command widgets and live component status.", + Icon = "document-text", + Tags = ["Festo", "drive", "servo", "motor", "motion"], + SourceFilePaths = [ + "src/showcase/app/src/components.festo.drives/Documentation/FestoDrives.st", + "src/showcase/app/src/components.festo.drives/Documentation/AxoCmmtAs_Showcase.st", + "src/showcase/app/src/components.festo.drives/Documentation/AxoCmmtAs_Showcase2.st", + "src/components.festo.drives/docs/README.md", + "src/components.festo.drives/docs/AxoCmmtAs_Showcase.md", + "src/components.festo.drives/docs/AxoCmmtAs_Showcase2.md", + "src/components.festo.drives/docs/TROUBLES.md", + "src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st", + "src/components.festo.drives/ctrl/apax.yml", + ] + }, + new() + { + Route = "/components-rexroth-drives/Documentation/RexrothDrives", + PageTitle = "Rexroth Drives", + LibraryNamespace = "AXOpen.Components.Rexroth.Drives", + Category = "Vendor Components", + Vendor = "Bosch Rexroth", + Description = "Practical reference for integrating Bosch Rexroth drives (IndraDrive, ctrlX DRIVE) in SIMATIC AX applications.", + Icon = "document-text", + Tags = ["Rexroth", "Bosch", "drive", "IndraDrive", "ctrlX", "servo", "motion"], + SourceFilePaths = [ + "src/showcase/app/src/components.rexroth.drives/Documentation/RexrothDrives.st", + "src/showcase/app/src/components.rexroth.drives/Documentation/AxoIndraDrive_Showcase.st", + "src/showcase/app/src/components.rexroth.drives/Documentation/AxoCtrlxDriveXsc_Showcase.st", + "src/components.rexroth.drives/docs/README.md", + "src/components.rexroth.drives/docs/AxoIndraDrive.md", + "src/components.rexroth.drives/docs/AxoCtrlxDriveXsc.md", + "src/components.rexroth.drives/docs/TROUBLES.md", + "src/components.rexroth.drives/ctrl/src/AxoIndraDrive/AxoIndraDrive.st", + "src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st", + "src/components.rexroth.drives/ctrl/apax.yml", + "src/showcase/app/hwc/plc_line.hwl.yml", + "src/showcase/app/hwc/library_templates/rexroth_indradrive/rexroth_indradrive.hwl.yml", + "src/showcase/app/hwc/library_templates/rexroth_ctrlx_drive/rexroth_ctrlx_drive_xcs.hwl.yml", + ] + }, + + // ── Vendor Components: Tightening ─────────────────────────────── + new() + { + Route = "/components-desoutter-tightening/Documentation/DesoutterTightening", + PageTitle = "Desoutter Tightening", + LibraryNamespace = "AXOpen.Components.Desoutter.Tightening", + Category = "Vendor Components", + Vendor = "Desoutter", + Description = "Practical reference for integrating Desoutter tightening controllers in SIMATIC AX applications.", + Icon = "document-text", + Tags = ["Desoutter", "tightening", "torque", "screw", "fastening"], + SourceFilePaths = [ + "src/showcase/app/src/components.desoutter.tightening/Documentation/DesoutterTightening.st", + "src/showcase/app/src/components.desoutter.tightening/Documentation/AxoCVIC_II.st", + "src/components.desoutter.tightening/docs/README.md", + "src/components.desoutter.tightening/docs/AxoCVIC_II.md", + "src/components.desoutter.tightening/docs/TROUBLES.md", + "src/components.desoutter.tightening/ctrl/src/CVIC_II/AxoCVIC_II.st", + "src/components.desoutter.tightening/ctrl/apax.yml", + "src/showcase/app/hwc/plc_line.hwl.yml", + "src/showcase/app/hwc/library_templates/desoutter_tightenning_CVIC_II/Desoutter_CVIC_II.hwl.yml", + ] + }, + new() + { + Route = "/components-rexroth-tightening/Documentation/RexrothTightening", + PageTitle = "Rexroth Tightening", + LibraryNamespace = "AXOpen.Components.Rexroth.Tightening", + Category = "Vendor Components", + Vendor = "Bosch Rexroth", + Description = "Practical reference for integrating Bosch Rexroth tightening controllers in SIMATIC AX applications.", + Icon = "document-text", + Tags = ["Rexroth", "Bosch", "tightening", "torque", "screw", "fastening"], + SourceFilePaths = [ + "src/showcase/app/src/components.rexroth.tightening/Documentation/RexrothTightening.st", + "src/showcase/app/src/components.rexroth.tightening/Documentation/Axo_CS351_compact_Showcase.st", + "src/showcase/app/src/components.rexroth.tightening/Documentation/Axo_CS351_compact_Showcase2.st", + "src/components.rexroth.tightening/docs/README.md", + "src/components.rexroth.tightening/docs/Axo_CS351_compact.md", + "src/components.rexroth.tightening/docs/TROUBLES.md", + "src/components.rexroth.tightening/ctrl/src/Axo_CS351_compact/Axo_CS351_compact.st", + "src/components.rexroth.tightening/ctrl/apax.yml", + "src/showcase/app/hwc/library_templates/rexroth_tightening_cs351/rexroth_tightening_cs351.hwl.yml", + ] + }, + + // ── Vendor Components: Other ──────────────────────────────────── + new() + { + Route = "/components-dukane-welders/Documentation/DukaneWelders", + PageTitle = "Dukane Welders", + LibraryNamespace = "AXOpen.Components.Dukane.Welders", + Category = "Vendor Components", + Vendor = "Dukane", + Description = "Practical reference for integrating Dukane welders in SIMATIC AX applications.", + Icon = "document-text", + Tags = ["Dukane", "welder", "welding", "ultrasonic"], + SourceFilePaths = [ + "src/showcase/app/src/components.dukane.welders/Documentation/DukaneWelders.st", + "src/showcase/app/src/components.dukane.welders/Documentation/Axo_IQ_SeriesWelder_Showcase.st", + "src/showcase/app/src/components.dukane.welders/Documentation/Axo_IQ_SeriesWelder_Showcase2.st", + "src/components.dukane.welders/docs/README.md", + "src/components.dukane.welders/docs/Axo_IQ_SeriesWelder.md", + "src/components.dukane.welders/docs/TROUBLES.md", + "src/components.dukane.welders/ctrl/src/AxoIQSeriesWelder/Axo_IQ_SeriesWelder.st", + "src/components.dukane.welders/ctrl/apax.yml", + "src/showcase/app/hwc/library_templates/dukane_welders_iq_series/DukaneIqSeriesWelder.hwl.yml", + ] + }, + new() + { + Route = "/components-rexroth-press/Documentation/RexrothPress", + PageTitle = "Rexroth Press", + LibraryNamespace = "AXOpen.Components.Rexroth.Press", + Category = "Vendor Components", + Vendor = "Bosch Rexroth", + Description = "Practical reference for integrating Bosch Rexroth Smart Function Kit press systems in SIMATIC AX applications.", + Icon = "document-text", + Tags = ["Rexroth", "Bosch", "press", "Smart Function Kit", "force"], + SourceFilePaths = [ + "src/showcase/app/src/components.rexroth.press/Documentation/RexrothPress.st", + "src/showcase/app/src/components.rexroth.press/Documentation/AxoSmartFunctionKit_v_4_x_x_Showcase.st", + "src/components.rexroth.press/docs/README.md", + "src/components.rexroth.press/docs/AxoSmartFunctionKit_v_4_x_x.md", + "src/components.rexroth.press/docs/TROUBLES.md", + "src/components.rexroth.press/ctrl/src/AxoSmartFunctionKit_v_4_x_x.st", + "src/components.rexroth.press/ctrl/apax.yml", + "src/showcase/app/hwc/library_templates/rexroth_sfk_press/rexroth_sfk_press.hwl.yml", + ] + }, + new() + { + Route = "/components-siem-communication/Documentation/SiemCommunication", + PageTitle = "Siemens Communication", + LibraryNamespace = "AXOpen.Components.Siem.Communication", + Category = "Vendor Components", + Vendor = "Siemens", + Description = "Point-to-point serial communication via Siemens ET200SP CM PtP module.", + Icon = "document-text", + Tags = ["Siemens", "communication", "serial", "PtP", "ET200SP", "point-to-point"], + SourceFilePaths = [ + "src/showcase/app/src/components.siem.communication/Documentation/SiemCommunication.st", + "src/showcase/app/src/components.siem.communication/Documentation/AxoCmPtp_Showcase.st", + "src/components.siem.communication/docs/README.md", + "src/components.siem.communication/docs/AxoCmPtp_Showcase.md", + "src/components.siem.communication/docs/TROUBLES.md", + "src/components.siem.communication/ctrl/src/AxoCmPtp/AxoCmPtp.st", + "src/components.siem.communication/ctrl/apax.yml", + "src/showcase/app/hwc/library_templates/siemens_communication/et200sp.hwl.yml", + ] + }, + + // ── Foundation / Tooling ──────────────────────────────────────── + new() + { + Route = "/abstractions/Documentation/AbstractionsShowcase", + PageTitle = "Abstractions", + LibraryNamespace = "AXOpen.Abstractions", + Category = "Foundation", + Description = "Core interfaces and enums: IAxoContext, IAxoObject, IAxoMessenger, IAxoLogger, IAxoRtc, IAxoRtm, eAxoMessageCategory, and eLogLevel.", + Icon = "document-text", + Tags = ["abstractions", "interface", "IAxoContext", "IAxoObject", "IAxoMessenger", "IAxoLogger"], + SourceFilePaths = [ + "src/showcase/app/src/abstractions/AbstractionsShowcase.st", + "src/abstractions/ctrl/apax.yml", + ] + }, + new() + { + Route = "/inspectors/Documentation/InspectorsShowcase", + PageTitle = "Inspectors", + LibraryNamespace = "AXOpen.Inspectors", + Category = "Foundation", + Description = "Digital, analogue, and data inspectors with configurable pass/fail times, result aggregation, and failure-handling strategies (carry on, retry, dialog).", + Icon = "document-text", + Tags = ["inspector", "inspection", "digital", "analogue", "pass", "fail", "quality"], + SourceFilePaths = [ + "src/showcase/app/src/inspectors/InspectorsShowcase.st", + "src/inspectors/docs/README.md", + "src/inspectors/docs/AXODIGITALINSPECTOR.md", + "src/inspectors/docs/AXOANALOGUEINSPECTOR.md", + "src/inspectors/docs/AXODATAINSPECTOR.md", + ] + }, + new() + { + Route = "/io/Documentation/IoShowcase", + PageTitle = "I/O", + LibraryNamespace = "AXOpen.Io", + Category = "Foundation", + Description = "Hardware diagnostics, IO component monitoring, PROFINET record access, and IO-Link module configuration for SIMATIC AX applications.", + Icon = "document-text", + Tags = ["I/O", "IO", "input", "output", "hardware", "diagnostics", "AxoIoComponent", "AxoHwDiag", "AxoRecordAccessTool", "AxoIOLinkET200SP", "PROFINET", "IO-Link", "Balluff"], + SourceFilePaths = [ + "src/showcase/app/src/IO/IoShowcase.st", + "src/showcase/app/src/IO/AxoIoComponent_Showcase.st", + "src/showcase/app/src/IO/AxoHwDiag_Showcase.st", + "src/showcase/app/src/IO/AxoRecordAccessTool_Showcase.st", + "src/showcase/app/src/IO/AxoIOLinkET200SP_Balluff_IO_Showcase.st", + "src/io/ctrl/src/AxoIoComponent/AxoIoComponent.st", + "src/io/ctrl/src/AxoHwDiag/AxoHwDiag.st", + "src/io/ctrl/src/AxoRecordAccessTool/AxoRecordAccessTool.st", + "src/io/ctrl/apax.yml", + ] + }, + new() + { + Route = "/probers/Documentation/ProbersShowcase", + PageTitle = "Probers", + LibraryNamespace = "AXOpen.Probers", + Category = "Foundation", + Description = "Test probing utilities for cyclic and conditional test execution. AxoProberWithCounterBase runs for N cycles; AxoProberWithCompletedCondition runs until a condition is met.", + Icon = "document-text", + Tags = ["prober", "test", "cyclic", "probe", "condition"], + SourceFilePaths = [ + "src/showcase/app/src/probers/ProbersShowcase.st", + "src/probers/ctrl/apax.yml", + ] + }, + new() + { + Route = "/simatic1500/Documentation/Simatic1500Showcase", + PageTitle = "SIMATIC S7-1500", + LibraryNamespace = "AXOpen.S71500", + Category = "Foundation", + Description = "Platform-specific implementations of IAxoRtc (real-time clock) and IAxoRtm (runtime measurement) for the SIMATIC S7-1500 PLC family.", + Icon = "document-text", + Tags = ["S7-1500", "SIMATIC", "RTC", "real-time clock", "runtime", "platform"], + SourceFilePaths = [ + "src/showcase/app/src/simatic1500/Simatic1500Showcase.st", + "src/simatic1500/ctrl/src/Rtc.st", + "src/simatic1500/ctrl/src/Rtm.st", + "src/simatic1500/ctrl/apax.yml", + ] + }, + new() + { + Route = "/timers/Documentation/TimersShowcase", + PageTitle = "Timers", + LibraryNamespace = "AXOpen.Timers", + Category = "Foundation", + Description = "OnDelayTimer, OffDelayTimer, PulseTimer, and AxoBlinker for time-based control logic.", + Icon = "document-text", + Tags = ["timer", "delay", "pulse", "blinker", "TON", "TOF", "TP"], + SourceFilePaths = [ + "src/showcase/app/src/timers/TimersShowcase.st", + "src/timers/ctrl/apax.yml", + ] + }, + new() + { + Route = "/utils/Documentation/UtilsShowcase", + PageTitle = "Utils", + LibraryNamespace = "AXOpen.Utils", + Category = "Foundation", + Description = "String building with AxoStringBuilder and CRC checksum functions (CRC-8, CRC-16, CRC-32) for data integrity verification.", + Icon = "document-text", + Tags = ["utils", "string", "CRC", "checksum", "builder"], + SourceFilePaths = [ + "src/showcase/app/src/utils/UtilsShowcase.st", + "src/utils/ctrl/apax.yml", + ] + }, + + // ── Security ──────────────────────────────────────────────────── + new() + { + Route = "/Security", + PageTitle = "Security", + LibraryNamespace = "AXOpen.Security", + Category = "Security", + Description = "User and role management with role-based access control for the showcase application.", + Icon = "lock-closed", + Tags = ["security", "authentication", "authorization", "user", "role", "RBAC"] + }, + ]; +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ShowcaseSearchService.cs b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ShowcaseSearchService.cs new file mode 100644 index 000000000..e46585a73 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Services/Search/ShowcaseSearchService.cs @@ -0,0 +1,189 @@ +namespace showcase.Services.Search; + +public class ShowcaseSearchService +{ + private readonly List _entries; + private readonly ContentIndexService _contentIndex; + + public ShowcaseSearchService(ContentIndexService contentIndex) + { + _entries = ShowcasePageRegistry.GetAllPages(); + _contentIndex = contentIndex; + } + + public List Search(string query, int maxResults = 10) + { + if (string.IsNullOrWhiteSpace(query)) + return []; + + var tokens = query.Split(' ', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (tokens.Length == 0) + return []; + + var results = new List(); + + // Pass 1: Metadata search + foreach (var entry in _entries) + { + var (score, matchedField) = ScoreEntry(entry, tokens, query); + if (score > 0) + { + results.Add(new SearchResult + { + Entry = entry, + Score = score, + MatchedField = matchedField, + HighlightSnippet = BuildSnippet(entry, matchedField) + }); + } + } + + // Pass 2: Content search + if (_contentIndex.IsReady) + { + var tokensLower = tokens.Select(t => t.ToLowerInvariant()).ToArray(); + var seenPages = new HashSet(results.Select(r => r.Entry.Route)); + + foreach (var content in _contentIndex.Entries) + { + // Skip if this page already matched metadata + if (seenPages.Contains(content.Page.Route)) + continue; + + // AND semantics: all tokens must appear in the content + if (!tokensLower.All(t => content.Content.Contains(t, StringComparison.Ordinal))) + continue; + + // Find first token match for snippet extraction + var idx = content.Content.IndexOf(tokensLower[0], StringComparison.Ordinal); + var (lineNumber, snippetText) = ExtractSnippet(content, idx); + + results.Add(new SearchResult + { + Entry = content.Page, + Score = 1.0, + MatchedField = "Content", + HighlightSnippet = snippetText, + IsContentMatch = true, + MatchedFilePath = content.FilePath, + MatchedFileName = content.FileName, + MatchedLineNumber = lineNumber, + MatchedLanguage = content.Language, + }); + + seenPages.Add(content.Page.Route); + } + } + + return results + .OrderByDescending(r => r.Score) + .Take(maxResults) + .ToList(); + } + + private static (double Score, string MatchedField) ScoreEntry( + SearchablePageEntry entry, string[] tokens, string fullQuery) + { + double totalScore = 0; + string bestField = string.Empty; + double bestFieldScore = 0; + + foreach (var token in tokens) + { + double tokenBestScore = 0; + + tokenBestScore = Math.Max(tokenBestScore, ScoreField(entry.PageTitle, token, 10)); + tokenBestScore = Math.Max(tokenBestScore, ScoreField(entry.LibraryNamespace, token, 8)); + tokenBestScore = Math.Max(tokenBestScore, ScoreField(entry.Category, token, 6)); + tokenBestScore = Math.Max(tokenBestScore, ScoreField(entry.Vendor, token, 6)); + tokenBestScore = Math.Max(tokenBestScore, ScoreField(entry.Description, token, 2)); + tokenBestScore = Math.Max(tokenBestScore, ScoreFieldArray(entry.Tags, token, 4)); + + if (tokenBestScore <= 0) + return (0, string.Empty); + + totalScore += tokenBestScore; + } + + if (entry.PageTitle.Contains(fullQuery, StringComparison.OrdinalIgnoreCase)) + totalScore += 20; + + foreach (var token in tokens) + { + CheckBestField(entry.PageTitle, token, 10, "Title", ref bestField, ref bestFieldScore); + CheckBestField(entry.LibraryNamespace, token, 8, "Namespace", ref bestField, ref bestFieldScore); + CheckBestField(entry.Category, token, 6, "Category", ref bestField, ref bestFieldScore); + CheckBestField(entry.Vendor, token, 6, "Vendor", ref bestField, ref bestFieldScore); + CheckBestField(entry.Description, token, 2, "Description", ref bestField, ref bestFieldScore); + } + + return (totalScore, bestField); + } + + private static double ScoreField(string? fieldValue, string token, double weight) + { + if (string.IsNullOrEmpty(fieldValue)) + return 0; + return fieldValue.Contains(token, StringComparison.OrdinalIgnoreCase) ? weight : 0; + } + + private static double ScoreFieldArray(string[] values, string token, double weight) + { + foreach (var value in values) + { + if (value.Contains(token, StringComparison.OrdinalIgnoreCase)) + return weight; + } + return 0; + } + + private static void CheckBestField(string? fieldValue, string token, double weight, + string fieldName, ref string bestField, ref double bestScore) + { + if (string.IsNullOrEmpty(fieldValue)) + return; + if (fieldValue.Contains(token, StringComparison.OrdinalIgnoreCase) && weight > bestScore) + { + bestScore = weight; + bestField = fieldName; + } + } + + private static string BuildSnippet(SearchablePageEntry entry, string matchedField) + { + return matchedField switch + { + "Namespace" => entry.LibraryNamespace, + "Vendor" => entry.Vendor ?? entry.Description, + _ => entry.Description + }; + } + + private static (int LineNumber, string Snippet) ExtractSnippet(ContentIndexEntry content, int charIndex) + { + // Map character index to line number + int charCount = 0; + int lineNumber = 0; + for (int i = 0; i < content.Lines.Length; i++) + { + if (charCount + content.Lines[i].Length >= charIndex) + { + lineNumber = i; + break; + } + charCount += content.Lines[i].Length + 1; // +1 for newline + } + + // Extract ±1 line of context + var start = Math.Max(0, lineNumber - 1); + var end = Math.Min(content.Lines.Length - 1, lineNumber + 1); + + var snippetLines = content.Lines[start..(end + 1)]; + var snippet = string.Join(" ", snippetLines.Select(l => l.Trim()).Where(l => l.Length > 0)); + + if (snippet.Length > 150) + snippet = snippet[..147] + "..."; + + return (lineNumber + 1, snippet); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/MainLayout.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/MainLayout.razor new file mode 100644 index 000000000..43f1389cf --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/MainLayout.razor @@ -0,0 +1,48 @@ +@inherits LayoutComponentBase +@implements IDisposable +@using Operon.Components.Toast + +AXOpen Showcase + +
+
+ +
+ @Body +
+
+ + + + + +
+ +@code { + public NavMenu? NavMenu { get; set; } + public TopRow? TopRow { get; set; } + public SearchDialog? SearchDialog { get; set; } + + [Inject] + private NavigationManager _navigationManager { get; set; } = default!; + + protected override void OnInitialized() + { + _navigationManager.LocationChanged += OnLocationChanged; + } + + private void OnLocationChanged(object? sender, LocationChangedEventArgs e) + { + StateHasChanged(); + } + + public void StateHasChangedExternal() + { + StateHasChanged(); + } + + public void Dispose() + { + _navigationManager.LocationChanged -= OnLocationChanged; + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/Menu/ExpandableMenuItem.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/Menu/ExpandableMenuItem.razor new file mode 100644 index 000000000..222c42e88 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/Menu/ExpandableMenuItem.razor @@ -0,0 +1,79 @@ +@inject NavigationManager NavigationManager + + + +@if (!_isCollapsed) +{ + +} + +@code { + [Parameter] + public RenderFragment? ChildContent { get; set; } + + [Parameter] + public string? Name { get; set; } + + [Parameter] + public string? Link { get; set; } + + [Parameter] + public string? Icon { get; set; } + + [Parameter] + public string? Description { get; set; } + + private bool _isCollapsed = true; + + private string? _dashedName; + + [CascadingParameter] + protected ExpandableMenuItem? parent { get; set; } + + protected override void OnInitialized() + { + _dashedName = Name?.Replace(' ', '-').ToLower(); + + var relativePath = NavigationManager.ToBaseRelativePath(NavigationManager.Uri); + if (relativePath.Contains(GetLink())) + { + _isCollapsed = false; + } + } + + public string GetLink() + { + if (Link != null) + return Link; + + if (parent != null) + return $"{parent.GetLink()}/{_dashedName}"; + + return $"{_dashedName}"; + } + + private void Toggle() + { + _isCollapsed = !_isCollapsed; + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/Menu/MenuItem.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/Menu/MenuItem.razor new file mode 100644 index 000000000..fadfb9ecf --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/Menu/MenuItem.razor @@ -0,0 +1,51 @@ + + @if (Icon != null) + { + + } + + + +@code { + [Parameter] + public string? Name { get; set; } + + [Parameter] + public string? Link { get; set; } + + [Parameter] + public string? Icon { get; set; } + + [Parameter] + public string? Description { get; set; } + + private string? _dashedName; + + [CascadingParameter] + protected ExpandableMenuItem? parent { get; set; } + + protected override void OnInitialized() + { + _dashedName = Name?.Replace(' ', '-').ToLower(); + base.OnInitialized(); + } + + public string GetLink() + { + if (Link != null) + return Link; + + if (parent != null) + return $"{parent.GetLink()}/{_dashedName}"; + + return $"{_dashedName}"; + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/NavMenu.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/NavMenu.razor new file mode 100644 index 000000000..fd84ec043 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/NavMenu.razor @@ -0,0 +1,126 @@ +@using Operon.Icons +@using showcase.blazor.Shared.Menu +@inject NavigationManager NavigationManager +@implements IDisposable + +
+ + + +
+ +
+ + +
+ + Logo + +
+
+ +@code { + [Parameter] + public MainLayout? Main { get; set; } + + public bool NavCollapsed = false; + + protected override void OnInitialized() + { + NavigationManager.LocationChanged += OnLocationChanged; + } + + private void OnLocationChanged(object? sender, LocationChangedEventArgs e) + { + NavCollapsed = false; + StateHasChanged(); + } + + public void NavToggle() + { + NavCollapsed = !NavCollapsed; + StateHasChanged(); + Main?.StateHasChangedExternal(); + Main?.TopRow?.StateHasChangedExternal(); + } + + public void Dispose() + { + NavigationManager.LocationChanged -= OnLocationChanged; + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/SearchDialog.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/SearchDialog.razor new file mode 100644 index 000000000..a5937f26c --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/SearchDialog.razor @@ -0,0 +1,195 @@ +@using Operon.Icons +@using showcase.Services.Search +@inject NavigationManager NavigationManager +@inject ShowcaseSearchService SearchService +@inject IJSRuntime JS +@implements IAsyncDisposable + +@if (_isOpen) +{ +
+
+ + +
+ + + ESC +
+ + +
+ @if (_results.Count > 0) + { + @for (var i = 0; i < _results.Count; i++) + { + var result = _results[i]; + var index = i; + + } + } + else if (!string.IsNullOrWhiteSpace(_query)) + { +
+ No results for "@_query" +
+ } + else + { +
+ Type to search pages, code, and documentation +
+ } +
+ + +
+ ↑↓ navigate + open + esc close +
+
+
+} + +@code { + private bool _isOpen; + private string _query = string.Empty; + private List _results = []; + private int _selectedIndex; + private ElementReference _inputRef; + private DotNetObjectReference? _dotNetRef; + private bool _jsRegistered; + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + _dotNetRef = DotNetObjectReference.Create(this); + await JS.InvokeVoidAsync("registerSearchShortcut", _dotNetRef); + _jsRegistered = true; + } + + if (_isOpen) + { + await JS.InvokeVoidAsync("focusElement", _inputRef); + } + } + + [JSInvokable] + public void OpenSearch() + { + Open(); + InvokeAsync(StateHasChanged); + } + + public void Open() + { + _isOpen = true; + _query = string.Empty; + _results = []; + _selectedIndex = 0; + } + + private void Close() + { + _isOpen = false; + _query = string.Empty; + _results = []; + _selectedIndex = 0; + } + + private void OnInput(ChangeEventArgs e) + { + _query = e.Value?.ToString() ?? string.Empty; + _results = SearchService.Search(_query); + _selectedIndex = 0; + } + + private void OnKeyDown(KeyboardEventArgs e) + { + switch (e.Key) + { + case "Escape": + Close(); + break; + case "ArrowDown": + if (_results.Count > 0) + _selectedIndex = (_selectedIndex + 1) % _results.Count; + break; + case "ArrowUp": + if (_results.Count > 0) + _selectedIndex = (_selectedIndex - 1 + _results.Count) % _results.Count; + break; + case "Enter": + if (_results.Count > 0 && _selectedIndex < _results.Count) + NavigateTo(_results[_selectedIndex]); + break; + } + } + + private void NavigateTo(SearchResult result) + { + Close(); + NavigationManager.NavigateTo(result.Entry.Route); + } + + private static string FormatLanguage(string? language) => language switch + { + "structured-text" => "ST", + "markdown" => "MD", + "yaml" => "YAML", + "csharp" => "C#", + _ => language?.ToUpperInvariant() ?? "" + }; + + public async ValueTask DisposeAsync() + { + _dotNetRef?.Dispose(); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/AxoStepCard.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/AxoStepCard.razor new file mode 100644 index 000000000..359425901 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/AxoStepCard.razor @@ -0,0 +1,51 @@ +@using AXOpen.Core +@using showcase.Services + +@{ + bool isActive = LiveStep?.IsActive.Cyclic ?? false; + bool isEnabled = LiveStep?.IsEnabled.Cyclic ?? false; + ulong order = LiveStep?.Order.Cyclic ?? 0; + string descr = LiveStep?.Descr.Cyclic ?? string.Empty; +} + +
+ + Step @Step.StepNumber — @Step.Title + @if (isActive) + { + ACTIVE + } + else if (!isEnabled && LiveStep != null) + { + DISABLED + } + @if (LiveStep != null && order > 0) + { + order: @order + } + (lines @Step.StartLine–@Step.EndLine) + + + @if (LiveStep != null) + { +
+ Order: @order + Active: @(isActive ? "yes" : "no") + Enabled: @(isEnabled ? "yes" : "no") + @if (!string.IsNullOrWhiteSpace(descr)) + { + Description: @descr + } +
+ } + +
+ +
+
+ +@code { + [Parameter] public StepLogicBlock Step { get; set; } = default!; + [Parameter] public AxoStep? LiveStep { get; set; } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/CodeBlock.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/CodeBlock.razor new file mode 100644 index 000000000..104011e5f --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/CodeBlock.razor @@ -0,0 +1,42 @@ +@inject IJSRuntime JS + +
+ +
@Content
+
+ +@code { + /// Source text to display and copy. + [Parameter] public string Content { get; set; } = string.Empty; + + /// Prism language class, e.g. "language-iecst". + [Parameter] public string Language { get; set; } = "language-none"; + + /// Optional CSS max-height value, e.g. "18rem" or "70vh". + [Parameter] public string? MaxHeight { get; set; } + + private bool _copied; + private string _renderedContent = string.Empty; + + private async Task CopyAsync() + { + await JS.InvokeAsync("copyToClipboard", Content); + _copied = true; + StateHasChanged(); + await Task.Delay(1500); + _copied = false; + StateHasChanged(); + } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + // Re-highlight only when content changes (avoids hammering Prism on every polling re-render) + if (Content != _renderedContent) + { + _renderedContent = Content; + try { await JS.InvokeVoidAsync("prismHighlightAll"); } catch { } + } + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/ExternalLinks.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/ExternalLinks.razor new file mode 100644 index 000000000..31e6dbab9 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/ExternalLinks.razor @@ -0,0 +1,18 @@ +
+

External Links

+ +
+ +@code { + [Parameter] public string? VendorName { get; set; } + [Parameter] public string? VendorUrl { get; set; } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/LibraryResources.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/LibraryResources.razor new file mode 100644 index 000000000..9b62391f6 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/LibraryResources.razor @@ -0,0 +1,49 @@ +
+

Library Resources

+ + @if (Documentation != null) + { +
+

Documentation

+
    + @Documentation +
+
+ } + + @if (PlcSource != null) + { +
+

PLC Library Source

+
    + @PlcSource +
+
+ } + + @if (HardwareAssets != null) + { +
+

Hardware Assets

+
    + @HardwareAssets +
+
+ } + + @if (Extra != null) + { + @Extra + } + + +
+ +@code { + [Parameter] public RenderFragment? Documentation { get; set; } + [Parameter] public RenderFragment? PlcSource { get; set; } + [Parameter] public RenderFragment? HardwareAssets { get; set; } + [Parameter] public RenderFragment? Extra { get; set; } + [Parameter] public string? VendorName { get; set; } + [Parameter] public string? VendorUrl { get; set; } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/MaturityBadge.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/MaturityBadge.razor new file mode 100644 index 000000000..d9ca0dd1e --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/MaturityBadge.razor @@ -0,0 +1,41 @@ +@* + MaturityBadge.razor — Displays component maturity status from COMPONENTS_MATURITY.md. + + Usage: + +*@ +@using showcase.Services +@inject ComponentMaturityService MaturityService + +
+ + + Implemented + + + + Tested + + + + Battle Tested + +
+ +@code { + [Parameter] public string ComponentName { get; set; } + + private MaturityInfo _maturity = new("red", "red", "red"); + + protected override void OnParametersSet() + { + _maturity = MaturityService.GetMaturity(ComponentName); + } + + private static string DotClass(string level) => level?.ToLowerInvariant() switch + { + "green" => "text-emerald-500", + "yellow" => "text-amber-400", + _ => "text-red-400" + }; +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/SourceFileLink.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/SourceFileLink.razor new file mode 100644 index 000000000..f2ce42c07 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/SourceFileLink.razor @@ -0,0 +1,19 @@ + + +@code { + /// Repo-relative file path, passed back via OnOpen. + [Parameter] public string Path { get; set; } = string.Empty; + + /// Optional display label. Defaults to the full path. + [Parameter] public string? Label { get; set; } + + /// Use monospace font for the label (default: true). + [Parameter] public bool Mono { get; set; } = true; + + /// Fired with the path when the user clicks. + [Parameter] public EventCallback OnOpen { get; set; } + + private Task HandleClickAsync() => OnOpen.InvokeAsync(Path); +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/SourceViewerModal.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/SourceViewerModal.razor new file mode 100644 index 000000000..af428065c --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/Showcase/SourceViewerModal.razor @@ -0,0 +1,98 @@ +@using Markdig +@using showcase.Services +@using Operon.Components +@inject IJSRuntime JS + + + + + + +@code { + [Inject] private CodeSnippetProvider CodeProvider { get; set; } = default!; + [Inject] private DocFxMarkdownProcessor DocFxProcessor { get; set; } = default!; + + private bool _open; + private bool _loading; + private bool _isMarkdown; + private bool _needsMermaid; + private string _title = string.Empty; + private string _content = string.Empty; + private string _html = string.Empty; + private ElementReference _markdownContainer; + + private static readonly MarkdownPipeline _pipeline = + new MarkdownPipelineBuilder().UseAdvancedExtensions().Build(); + + /// Open the modal and load the content for . + public async Task OpenAsync(string path) + { + _title = path; + _content = string.Empty; + _html = string.Empty; + _isMarkdown = path.EndsWith(".md", StringComparison.OrdinalIgnoreCase); + _loading = true; + _open = true; + StateHasChanged(); + + var snippet = await CodeProvider.GetSnippetAsync(path); + _content = snippet.Content ?? string.Empty; + if (_isMarkdown) + { + // Resolve DocFX directives ([!code-*], [!INCLUDE]) before Markdig rendering + _content = await DocFxProcessor.ProcessAsync(_content, path); + _html = Markdown.ToHtml(_content, _pipeline); + _needsMermaid = _html.Contains("class=\"mermaid\""); + } + + _loading = false; + StateHasChanged(); + // CodeBlock.OnAfterRenderAsync handles prismHighlightAll for code view; + // markdown is rendered as raw HTML so no Prism pass needed. + } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (_needsMermaid && _isMarkdown && !_loading) + { + _needsMermaid = false; + await JS.InvokeVoidAsync("renderMermaidDiagrams", _markdownContainer); + } + } + + /// Maps a file path extension to a Prism language class. + public static string LanguageFor(string path) => + System.IO.Path.GetExtension(path).ToLowerInvariant() switch + { + ".st" => "language-iecst", + ".yml" => "language-yaml", + ".yaml" => "language-yaml", + ".xml" => "language-xml", + ".cs" => "language-csharp", + ".razor"=> "language-markup", + ".html" => "language-markup", + ".htm" => "language-markup", + ".md" => "language-markdown", + _ => "language-none", + }; +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Shared/TopRow.razor b/src/_test/app/ix-blazor/showcase.blazor/Shared/TopRow.razor new file mode 100644 index 000000000..6d19eaab0 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Shared/TopRow.razor @@ -0,0 +1,46 @@ +@using Operon.Icons + +
+
+ + Logo + +
+ +
+ AXOpen Showcase +
+ +
+ + +
+ + @if (Main?.NavMenu?.NavCollapsed == true) + { + + } +
+ +@code { + [Parameter] + public MainLayout? Main { get; set; } + + private void OpenSearch() + { + Main?.SearchDialog?.Open(); + Main?.StateHasChangedExternal(); + } + + public void StateHasChangedExternal() + { + StateHasChanged(); + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Templates/CustomBoolTemplate.razor b/src/_test/app/ix-blazor/showcase.blazor/Templates/CustomBoolTemplate.razor new file mode 100644 index 000000000..206e0c456 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Templates/CustomBoolTemplate.razor @@ -0,0 +1,21 @@ +@namespace showcase.blazor.Templates +@inherits AXOpen.Data.ColumnDataCellBase + +@if (CastedValue == true) +{ + ✓ Pass +} +else +{ + ✗ Failed +} + +@code { + public bool CastedValue { set; get; } + + protected override void OnParametersSet() + { + base.OnParametersSet(); + CastedValue = (bool)PropertyValue; + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/Templates/CustomIntTemplate.razor b/src/_test/app/ix-blazor/showcase.blazor/Templates/CustomIntTemplate.razor new file mode 100644 index 000000000..bdf0a52de --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/Templates/CustomIntTemplate.razor @@ -0,0 +1,27 @@ +@namespace showcase.blazor.Templates +@inherits AXOpen.Data.ColumnDataCellBase + +@PropertyValue.ToString() - + +@if (CastedValue <= 100) +{ + + over +} +else +{ + + below +} + +@code { + + public short CastedValue { set; get; } + + protected override void OnParametersSet() + { + base.OnParametersSet(); + + CastedValue = (short)PropertyValue; + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/_Imports.razor b/src/_test/app/ix-blazor/showcase.blazor/_Imports.razor new file mode 100644 index 000000000..258299851 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/_Imports.razor @@ -0,0 +1,19 @@ +@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 Operon.Icons +@using showcase +@using showcase.blazor +@using showcase.blazor.Shared +@using showcase.blazor.Shared.Menu +@using showcase.blazor.Shared.Showcase +@using AXSharp.Presentation.Blazor.Controls.RenderableContent +@using Microsoft.Extensions.Localization + +@inject IStringLocalizer PlcLocalizer diff --git a/src/_test/app/ix-blazor/showcase.blazor/appsettings.Development.json b/src/_test/app/ix-blazor/showcase.blazor/appsettings.Development.json new file mode 100644 index 000000000..770d3e931 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "DetailedErrors": true, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/appsettings.json b/src/_test/app/ix-blazor/showcase.blazor/appsettings.json new file mode 100644 index 000000000..10f68b8c8 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/package-lock.json b/src/_test/app/ix-blazor/showcase.blazor/package-lock.json new file mode 100644 index 000000000..adc874bb2 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/package-lock.json @@ -0,0 +1,1045 @@ +{ + "name": "showcase.blazor", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@tailwindcss/cli": "^4.2.2", + "tailwindcss": "^4.2.2" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@tailwindcss/cli": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.2.2.tgz", + "integrity": "sha512-iJS+8kAFZ8HPqnh0O5DHCLjo4L6dD97DBQEkrhfSO4V96xeefUus2jqsBs1dUMt3OU9Ks4qIkiY0mpL5UW+4LQ==", + "license": "MIT", + "dependencies": { + "@parcel/watcher": "^2.5.1", + "@tailwindcss/node": "4.2.2", + "@tailwindcss/oxide": "4.2.2", + "enhanced-resolve": "^5.19.0", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "tailwindcss": "4.2.2" + }, + "bin": { + "tailwindcss": "dist/index.mjs" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", + "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.2" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz", + "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==", + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-x64": "4.2.2", + "@tailwindcss/oxide-freebsd-x64": "4.2.2", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-x64-musl": "4.2.2", + "@tailwindcss/oxide-wasm32-wasi": "4.2.2", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz", + "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz", + "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz", + "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz", + "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz", + "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz", + "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz", + "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz", + "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz", + "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz", + "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.7.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.7.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@tybys/wasm-util": "^0.10.1" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { + "version": "2.8.1", + "inBundle": true, + "license": "0BSD", + "optional": true + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz", + "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz", + "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tailwindcss": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", + "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", + "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + } + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/package.json b/src/_test/app/ix-blazor/showcase.blazor/package.json new file mode 100644 index 000000000..2c47ac4f6 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "@tailwindcss/cli": "^4.2.2", + "tailwindcss": "^4.2.2" + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/showcase.blazor.csproj b/src/_test/app/ix-blazor/showcase.blazor/showcase.blazor.csproj new file mode 100644 index 000000000..2e57d8eed --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/showcase.blazor.csproj @@ -0,0 +1,62 @@ + + + + enable + enable + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/_test/app/ix-blazor/showcase.blazor/tailwind.ps1 b/src/_test/app/ix-blazor/showcase.blazor/tailwind.ps1 new file mode 100644 index 000000000..1e03d963a --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/tailwind.ps1 @@ -0,0 +1 @@ +npx @tailwindcss/cli -i .\wwwroot\css\tailwind.css -o .\wwwroot\css\momentum.css --watch diff --git a/src/_test/app/ix-blazor/showcase.blazor/wwwroot/css/momentum.css b/src/_test/app/ix-blazor/showcase.blazor/wwwroot/css/momentum.css new file mode 100644 index 000000000..ea6ec7a7a --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/wwwroot/css/momentum.css @@ -0,0 +1,1047 @@ +/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */ +@layer properties; +@layer theme { + :root, :host { + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', + monospace; + --color-orange-50: oklch(98% 0.016 73.684); + --color-orange-200: oklch(90.1% 0.076 70.697); + --color-orange-600: oklch(64.6% 0.222 41.116); + --color-orange-700: oklch(55.3% 0.195 38.402); + --color-cyan-50: oklch(98.4% 0.019 200.873); + --color-cyan-100: oklch(95.6% 0.045 203.388); + --color-cyan-200: oklch(91.7% 0.08 205.041); + --color-cyan-400: oklch(78.9% 0.154 211.53); + --color-cyan-500: oklch(71.5% 0.143 215.221); + --color-cyan-600: oklch(60.9% 0.126 221.723); + --color-cyan-700: oklch(52% 0.105 223.128); + --color-cyan-900: oklch(39.8% 0.07 227.392); + --color-slate-50: oklch(98.4% 0.003 247.858); + --color-slate-200: oklch(92.9% 0.013 255.508); + --color-slate-300: oklch(86.9% 0.022 252.894); + --color-slate-400: oklch(70.4% 0.04 256.788); + --color-slate-500: oklch(55.4% 0.046 257.417); + --color-slate-600: oklch(44.6% 0.043 257.281); + --color-slate-700: oklch(37.2% 0.044 257.287); + --color-slate-800: oklch(27.9% 0.041 260.031); + --color-slate-900: oklch(20.8% 0.042 265.755); + --color-gray-900: oklch(21% 0.034 264.665); + --color-white: #FFFFFF; + --spacing: 0.25rem; + --container-xs: 20rem; + --container-xl: 36rem; + --container-3xl: 48rem; + --container-4xl: 56rem; + --container-7xl: 80rem; + --text-xs: 0.75rem; + --text-xs--line-height: calc(1 / 0.75); + --text-sm: 0.875rem; + --text-sm--line-height: calc(1.25 / 0.875); + --text-base: 1rem; + --text-base--line-height: calc(1.5 / 1); + --text-lg: 1.125rem; + --text-lg--line-height: calc(1.75 / 1.125); + --text-xl: 1.25rem; + --text-xl--line-height: calc(1.75 / 1.25); + --text-2xl: 1.5rem; + --text-2xl--line-height: calc(2 / 1.5); + --text-3xl: 1.875rem; + --text-3xl--line-height: calc(2 / 1.5); + --text-4xl: 2.25rem; + --text-4xl--line-height: calc(2 / 1.5); + --text-5xl: 3rem; + --text-5xl--line-height: calc(2 / 1.5); + --font-weight-normal: 400; + --font-weight-medium: 500; + --font-weight-semibold: 600; + --font-weight-bold: 700; + --tracking-wider: 0.05em; + --radius-xl: 0.75rem; + --default-transition-duration: 150ms; + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + --radius-full: calc(infinity * 1px); + --color-background: #FEFEFE; + --color-background-light: #FFFFFF; + --color-text: #0B0C0C; + --color-text-light: #626A6E; + --color-border: #BFC1C3; + --color-link: #0065B3; + --color-link-hover: #003078; + --color-primary: #0a319e; + --color-primary-light: #E0E8FF; + --color-success: #00703C; + --color-success-light: #D4F7D4; + --color-warning: #EC9811; + --color-warning-light: #FFEAC9; + --color-danger: #D0190F; + --color-danger-light: #FFDCDA; + --color-info: #2B8CC4; + --color-info-light: #D4ECF7; + } +} +@layer utilities { + .collapse { + visibility: collapse; + } + .static { + position: static; + } + .sticky { + position: sticky; + } + .start { + inset-inline-start: var(--spacing); + } + .end { + inset-inline-end: var(--spacing); + } + .bottom-0 { + bottom: calc(var(--spacing) * 0); + } + .mx-2 { + margin-inline: calc(var(--spacing) * 2); + } + .mx-auto { + margin-inline: auto; + } + .ms-auto { + margin-inline-start: auto; + } + .mt-1 { + margin-top: calc(var(--spacing) * 1); + } + .mt-2 { + margin-top: calc(var(--spacing) * 2); + } + .mt-3 { + margin-top: calc(var(--spacing) * 3); + } + .mt-4 { + margin-top: calc(var(--spacing) * 4); + } + .mt-6 { + margin-top: calc(var(--spacing) * 6); + } + .mt-auto { + margin-top: auto; + } + .mb-1 { + margin-bottom: calc(var(--spacing) * 1); + } + .mb-2 { + margin-bottom: calc(var(--spacing) * 2); + } + .mb-4 { + margin-bottom: calc(var(--spacing) * 4); + } + .mb-6 { + margin-bottom: calc(var(--spacing) * 6); + } + .ml-auto { + margin-left: auto; + } + .block { + display: block; + } + .flex { + display: flex; + } + .grid { + display: grid; + } + .hidden { + display: none; + } + .size-5 { + width: calc(var(--spacing) * 5); + height: calc(var(--spacing) * 5); + } + .size-6 { + width: calc(var(--spacing) * 6); + height: calc(var(--spacing) * 6); + } + .size-7 { + width: calc(var(--spacing) * 7); + height: calc(var(--spacing) * 7); + } + .h-15 { + height: calc(var(--spacing) * 15); + } + .max-h-64 { + max-height: calc(var(--spacing) * 64); + } + .max-h-72 { + max-height: calc(var(--spacing) * 72); + } + .max-h-\[70vh\] { + max-height: 70vh; + } + .w-16 { + width: calc(var(--spacing) * 16); + } + .w-full { + width: 100%; + } + .max-w-3xl { + max-width: var(--container-3xl); + } + .max-w-4xl { + max-width: var(--container-4xl); + } + .max-w-7xl { + max-width: var(--container-7xl); + } + .max-w-none { + max-width: none; + } + .max-w-xl { + max-width: var(--container-xl); + } + .max-w-xs { + max-width: var(--container-xs); + } + .min-w-0 { + min-width: calc(var(--spacing) * 0); + } + .flex-1 { + flex: 1; + } + .transform { + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } + .cursor-pointer { + cursor: pointer; + } + .list-decimal { + list-style-type: decimal; + } + .grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + .grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .flex-col { + flex-direction: column; + } + .flex-wrap { + flex-wrap: wrap; + } + .items-center { + align-items: center; + } + .justify-center { + justify-content: center; + } + .gap-1 { + gap: calc(var(--spacing) * 1); + } + .gap-2 { + gap: calc(var(--spacing) * 2); + } + .gap-4 { + gap: calc(var(--spacing) * 4); + } + .gap-6 { + gap: calc(var(--spacing) * 6); + } + .space-y-1 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-2 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-3 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-4 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-6 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse))); + } + } + .gap-x-6 { + column-gap: calc(var(--spacing) * 6); + } + .gap-y-1 { + row-gap: calc(var(--spacing) * 1); + } + .truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .overflow-x-auto { + overflow-x: auto; + } + .overflow-y-auto { + overflow-y: auto; + } + .rounded { + border-radius: 0.25rem; + } + .rounded-full { + border-radius: var(--radius-full); + } + .rounded-xl { + border-radius: var(--radius-xl); + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-b { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + .border-b-1 { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + .border-border { + border-color: var(--color-border); + } + .border-cyan-200 { + border-color: var(--color-cyan-200); + } + .border-cyan-400 { + border-color: var(--color-cyan-400); + } + .border-orange-200 { + border-color: var(--color-orange-200); + } + .border-primary { + border-color: var(--color-primary); + } + .border-slate-200 { + border-color: var(--color-slate-200); + } + .border-slate-300 { + border-color: var(--color-slate-300); + } + .bg-background { + background-color: var(--color-background); + } + .bg-background-light { + background-color: var(--color-background-light); + } + .bg-cyan-50 { + background-color: var(--color-cyan-50); + } + .bg-cyan-100\/40 { + background-color: color-mix(in srgb, oklch(95.6% 0.045 203.388) 40%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-cyan-100) 40%, transparent); + } + } + .bg-cyan-500 { + background-color: var(--color-cyan-500); + } + .bg-orange-50 { + background-color: var(--color-orange-50); + } + .bg-primary\/8 { + background-color: color-mix(in srgb, #0a319e 8%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-primary) 8%, transparent); + } + } + .bg-slate-50 { + background-color: var(--color-slate-50); + } + .bg-slate-200 { + background-color: var(--color-slate-200); + } + .bg-white { + background-color: var(--color-white); + } + .bg-white\/60 { + background-color: color-mix(in srgb, #FFFFFF 60%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-white) 60%, transparent); + } + } + .bg-linear-to-r { + --tw-gradient-position: to right; + @supports (background-image: linear-gradient(in lab, red, red)) { + --tw-gradient-position: to right in oklab; + } + background-image: linear-gradient(var(--tw-gradient-stops)); + } + .from-cyan-50 { + --tw-gradient-from: var(--color-cyan-50); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .to-white { + --tw-gradient-to: var(--color-white); + --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); + } + .p-0 { + padding: calc(var(--spacing) * 0); + } + .p-2 { + padding: calc(var(--spacing) * 2); + } + .p-3 { + padding: calc(var(--spacing) * 3); + } + .p-4 { + padding: calc(var(--spacing) * 4); + } + .p-6 { + padding: calc(var(--spacing) * 6); + } + .p-10 { + padding: calc(var(--spacing) * 10); + } + .px-2 { + padding-inline: calc(var(--spacing) * 2); + } + .px-3 { + padding-inline: calc(var(--spacing) * 3); + } + .px-4 { + padding-inline: calc(var(--spacing) * 4); + } + .py-0\.5 { + padding-block: calc(var(--spacing) * 0.5); + } + .py-2 { + padding-block: calc(var(--spacing) * 2); + } + .py-3 { + padding-block: calc(var(--spacing) * 3); + } + .py-6 { + padding-block: calc(var(--spacing) * 6); + } + .pt-2 { + padding-top: calc(var(--spacing) * 2); + } + .pb-2 { + padding-bottom: calc(var(--spacing) * 2); + } + .pb-3 { + padding-bottom: calc(var(--spacing) * 3); + } + .pl-2 { + padding-left: calc(var(--spacing) * 2); + } + .pl-5 { + padding-left: calc(var(--spacing) * 5); + } + .text-center { + text-align: center; + } + .text-left { + text-align: left; + } + .font-mono { + font-family: var(--font-mono); + } + .text-2xl { + font-size: var(--text-2xl); + line-height: var(--tw-leading, var(--text-2xl--line-height)); + } + .text-3xl { + font-size: var(--text-3xl); + line-height: var(--tw-leading, var(--text-3xl--line-height)); + } + .text-base { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + .text-lg { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + .text-sm { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + .text-xl { + font-size: var(--text-xl); + line-height: var(--tw-leading, var(--text-xl--line-height)); + } + .text-xs { + font-size: var(--text-xs); + line-height: var(--tw-leading, var(--text-xs--line-height)); + } + .font-bold { + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + } + .font-medium { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + .font-normal { + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + } + .font-semibold { + --tw-font-weight: var(--font-weight-semibold); + font-weight: var(--font-weight-semibold); + } + .tracking-wider { + --tw-tracking: var(--tracking-wider); + letter-spacing: var(--tracking-wider); + } + .text-cyan-600 { + color: var(--color-cyan-600); + } + .text-cyan-700 { + color: var(--color-cyan-700); + } + .text-cyan-900 { + color: var(--color-cyan-900); + } + .text-danger { + color: var(--color-danger); + } + .text-gray-900 { + color: var(--color-gray-900); + } + .text-orange-600 { + color: var(--color-orange-600); + } + .text-orange-700 { + color: var(--color-orange-700); + } + .text-primary { + color: var(--color-primary); + } + .text-primary\/90 { + color: color-mix(in srgb, #0a319e 90%, transparent); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-primary) 90%, transparent); + } + } + .text-slate-300 { + color: var(--color-slate-300); + } + .text-slate-400 { + color: var(--color-slate-400); + } + .text-slate-500 { + color: var(--color-slate-500); + } + .text-slate-600 { + color: var(--color-slate-600); + } + .text-slate-700 { + color: var(--color-slate-700); + } + .text-slate-800 { + color: var(--color-slate-800); + } + .text-slate-900 { + color: var(--color-slate-900); + } + .text-success { + color: var(--color-success); + } + .text-text { + color: var(--color-text); + } + .text-text\/60 { + color: color-mix(in srgb, #0B0C0C 60%, transparent); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-text) 60%, transparent); + } + } + .text-white { + color: var(--color-white); + } + .uppercase { + text-transform: uppercase; + } + .opacity-75 { + opacity: 75%; + } + .shadow-sm { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .hover\:text-slate-800 { + &:hover { + @media (hover: hover) { + color: var(--color-slate-800); + } + } + } + .hover\:underline { + &:hover { + @media (hover: hover) { + text-decoration-line: underline; + } + } + } + .hover\:opacity-100 { + &:hover { + @media (hover: hover) { + opacity: 100%; + } + } + } + .hover\:shadow-lg { + &:hover { + @media (hover: hover) { + --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + } + .focus\:border-cyan-500 { + &:focus { + border-color: var(--color-cyan-500); + } + } + .focus\:ring-2 { + &:focus { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + .focus\:ring-cyan-200 { + &:focus { + --tw-ring-color: var(--color-cyan-200); + } + } + .focus\:outline-none { + &:focus { + --tw-outline-style: none; + outline-style: none; + } + } + .sm\:px-6 { + @media (width >= 40rem) { + padding-inline: calc(var(--spacing) * 6); + } + } + .md\:grid-cols-2 { + @media (width >= 48rem) { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + } + .lg\:grid-cols-3 { + @media (width >= 64rem) { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + } + .lg\:px-8 { + @media (width >= 64rem) { + padding-inline: calc(var(--spacing) * 8); + } + } + .xl\:col-span-1 { + @media (width >= 80rem) { + grid-column: span 1 / span 1; + } + } + .xl\:col-span-2 { + @media (width >= 80rem) { + grid-column: span 2 / span 2; + } + } + .xl\:grid-cols-3 { + @media (width >= 80rem) { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + } +} +@layer theme { + :root, :host { + --font-sans: "Familjen Grotesk", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + } +} +@layer base { + h1 { + font-size: var(--text-5xl); + line-height: var(--tw-leading, var(--text-5xl--line-height)); + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + text-wrap: wrap; + overflow-wrap: break-word; + color: var(--color-text); + } + h2 { + font-size: var(--text-4xl); + line-height: var(--tw-leading, var(--text-4xl--line-height)); + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + text-wrap: wrap; + overflow-wrap: break-word; + color: var(--color-text); + } + h3 { + font-size: var(--text-3xl); + line-height: var(--tw-leading, var(--text-3xl--line-height)); + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + text-wrap: wrap; + overflow-wrap: break-word; + color: var(--color-text); + } + h4 { + font-size: var(--text-2xl); + line-height: var(--tw-leading, var(--text-2xl--line-height)); + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + text-wrap: wrap; + overflow-wrap: break-word; + color: var(--color-text); + } + h5 { + font-size: var(--text-xl); + line-height: var(--tw-leading, var(--text-xl--line-height)); + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + text-wrap: wrap; + overflow-wrap: break-word; + color: var(--color-text); + } + h6 { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + text-wrap: wrap; + overflow-wrap: break-word; + color: var(--color-text); + } + p { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + text-wrap: wrap; + overflow-wrap: break-word; + color: var(--color-text-light); + } + a { + cursor: pointer; + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + text-wrap: wrap; + overflow-wrap: break-word; + text-decoration-line: underline; + color: var(--color-link); + &:hover { + @media (hover: hover) { + color: var(--color-link-hover); + } + } + } + hr { + color: var(--color-text-light); + opacity: 30%; + } + span { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + text-wrap: wrap; + overflow-wrap: break-word; + color: var(--color-text); + } + div { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + text-wrap: wrap; + overflow-wrap: break-word; + color: var(--color-text); + } + input[type="date"], input[type="time"], input[type="datetime-local"] { + color-scheme: light; + } + [data-theme="dark"] input[type="date"], [data-theme="dark"] input[type="time"], [data-theme="dark"] input[type="datetime-local"] { + color-scheme: dark; + } +} +[data-theme="dark"] { + --color-black: #FFFFFF; + --color-white: #121212; + --color-gray-1: #1F1F1F; + --color-gray-2: #949494; + --color-gray-3: #F3F2F1; + --color-background: #121212; + --color-background-light: #1F1F1F; + --color-background-dark: #1F1F1F; + --color-background-modal: #1E1E1E; + --color-background-modal-light: #252525; + --color-text: #F2F2F2; + --color-text-light: #A3A3A3; + --color-border: #4B5563; + --color-border-input: #F2F2F2; + --color-link: #60A5FA; + --color-link-hover: #93C5FD; + --color-link-visited: #C4B5FD; + --color-primary: #89C4FF; + --color-primary-light: #1e3a8a; + --color-success: #4ADE80; + --color-success-light: #14532d; + --color-warning: #FBBF24; + --color-warning-light: #78350f; + --color-danger: #F87171; + --color-danger-light: #7f1d1d; + --color-info: #38BDF8; + --color-info-light: #0c4a6e; + --color-noactive: #A1A1AA; + --color-noactive-light: #27272a; + --color-result-failed: #F87171; + --color-result-passed: #4ADE80; + --color-result-inprogress: #60A5FA; + --color-result-exclude: #A78BFA; + --color-result-bypasse: #E879F9; + --color-result-inconcllusive: #FCD34D; + --color-result-runnig: #2DD4BF; + --color-result-noaction: #A1A1AA; + --color-diagnostic-debug: #60A5FA; + --color-diagnostic-verbose: #5EEAD4; + --color-diagnostic-information: #38BDF8; + --color-diagnostic-warning: #FBBF24; + --color-diagnostic-error: #F87171; + --color-diagnostic-fatal: #EF4444; + --color-automat: #4ADE80; + --color-ground: #38BDF8; + --color-grounded: #60A5FA; + --color-idle: #A1A1AA; + --color-manual: #FBBF24; + --color-oee: #89C4FF; + --color-availability: #B6D069; + --color-performance: #A08AE1; + --color-quality: #FBBF24; + --color-downtime-unassigned: #C7C7C7; + --color-downtime-material: #FBBF24; + --color-downtime-operator: #F08584; + --color-downtime-working: #B6D069; + --color-downtime-technical: #A08AE1; + --color-downtime-planned: #7DCDD2; + --color-btn-primary: var(--color-primary); + --color-btn-primary-hover: var(--color-primary-light); + --color-btn-danger: var(--color-danger); + --color-btn-danger-hover: var(--color-danger-light); + --color-btn-success: var(--color-success); + --color-btn-success-hover: var(--color-success-light); + --color-btn-warning: var(--color-warning); + --color-btn-warning-hover: var(--color-warning-light); + --color-btn-info: var(--color-info); + --color-btn-info-hover: var(--color-info-light); + --color-btn-noactive: var(--color-noactive); + --color-btn-noactive-hover: var(--color-noactive-light); + --color-btn-noactive-hover: #2A2A2A; + --color-btn-outline-bg: transparent; + --color-btn-no-bg-bg: transparent; +} +:root { + --btn-hover-translate: -0.1rem; +} +@property --tw-rotate-x { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; +} +@property --tw-space-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-border-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-gradient-position { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-via { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-to { + syntax: ""; + inherits: false; + initial-value: #0000; +} +@property --tw-gradient-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-via-stops { + syntax: "*"; + inherits: false; +} +@property --tw-gradient-from-position { + syntax: ""; + inherits: false; + initial-value: 0%; +} +@property --tw-gradient-via-position { + syntax: ""; + inherits: false; + initial-value: 50%; +} +@property --tw-gradient-to-position { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-font-weight { + syntax: "*"; + inherits: false; +} +@property --tw-tracking { + syntax: "*"; + inherits: false; +} +@property --tw-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-inset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-ring-inset { + syntax: "*"; + inherits: false; +} +@property --tw-ring-offset-width { + syntax: ""; + inherits: false; + initial-value: 0px; +} +@property --tw-ring-offset-color { + syntax: "*"; + inherits: false; + initial-value: #fff; +} +@property --tw-ring-offset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@layer properties { + @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { + *, ::before, ::after, ::backdrop { + --tw-rotate-x: initial; + --tw-rotate-y: initial; + --tw-rotate-z: initial; + --tw-skew-x: initial; + --tw-skew-y: initial; + --tw-space-y-reverse: 0; + --tw-border-style: solid; + --tw-gradient-position: initial; + --tw-gradient-from: #0000; + --tw-gradient-via: #0000; + --tw-gradient-to: #0000; + --tw-gradient-stops: initial; + --tw-gradient-via-stops: initial; + --tw-gradient-from-position: 0%; + --tw-gradient-via-position: 50%; + --tw-gradient-to-position: 100%; + --tw-font-weight: initial; + --tw-tracking: initial; + --tw-shadow: 0 0 #0000; + --tw-shadow-color: initial; + --tw-shadow-alpha: 100%; + --tw-inset-shadow: 0 0 #0000; + --tw-inset-shadow-color: initial; + --tw-inset-shadow-alpha: 100%; + --tw-ring-color: initial; + --tw-ring-shadow: 0 0 #0000; + --tw-inset-ring-color: initial; + --tw-inset-ring-shadow: 0 0 #0000; + --tw-ring-inset: initial; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-offset-shadow: 0 0 #0000; + } + } +} diff --git a/src/_test/app/ix-blazor/showcase.blazor/wwwroot/css/tailwind.css b/src/_test/app/ix-blazor/showcase.blazor/wwwroot/css/tailwind.css new file mode 100644 index 000000000..65275be33 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/wwwroot/css/tailwind.css @@ -0,0 +1,6 @@ +@import "tailwindcss/theme.css" layer(theme); +@import "tailwindcss/utilities.css" layer(utilities); + +@source "./"; +@import "./operon-variables.css"; +@custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *)); diff --git a/src/_test/app/ix-blazor/showcase.blazor/wwwroot/logo-header.svg b/src/_test/app/ix-blazor/showcase.blazor/wwwroot/logo-header.svg new file mode 100644 index 000000000..8767dd6d6 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/wwwroot/logo-header.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/_test/app/ix-blazor/showcase.blazor/wwwroot/logo-no-background.svg b/src/_test/app/ix-blazor/showcase.blazor/wwwroot/logo-no-background.svg new file mode 100644 index 000000000..c05b31905 --- /dev/null +++ b/src/_test/app/ix-blazor/showcase.blazor/wwwroot/logo-no-background.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/_test/app/ix/AXOpen.Messaging/AxoStaticMessengerDocuExample.cs b/src/_test/app/ix/AXOpen.Messaging/AxoStaticMessengerDocuExample.cs new file mode 100644 index 000000000..d48fef1d2 --- /dev/null +++ b/src/_test/app/ix/AXOpen.Messaging/AxoStaticMessengerDocuExample.cs @@ -0,0 +1,75 @@ +using AXSharp.Connector; +using AXOpen.Messaging.Static; + +namespace AxoStaticMessengerDocuExample +{ + // + public partial class Messengers : AXOpen.Core.AxoObject + { + partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) + { + try + { + InitializeMessenger4(); + } + catch (Exception) + { + + throw; + } + } + + private void InitializeMessenger4() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(10, new AxoMessengerTextItem("Messenger 4: static message text for message code 10 declared in .NET", "Messenger 4: static help text for message code 10 declared in .NET")), + new KeyValuePair(20, new AxoMessengerTextItem("Messenger 4: static message text for message code 20 declared in .NET", "Messenger 4: static help text for message code 20 declared in .NET")), + new KeyValuePair(30, new AxoMessengerTextItem("Messenger 4: static message text for message code 30 declared in .NET", "Messenger 4: static help text for message code 30 declared in .NET")), + new KeyValuePair(40, new AxoMessengerTextItem("Messenger 4: static message text for message code 40 declared in .NET", "Messenger 4: static help text for message code 40 declared in .NET")), + new KeyValuePair(50, new AxoMessengerTextItem("Messenger 4: static message text for message code 50 declared in .NET", "Messenger 4: static help text for message code 50 declared in .NET")) + }; + + _messenger4.DotNetMessengerTextList = messengerTextList; + } + } + // + + public partial class MessengersExamples : AXOpen.Core.AxoObject + { + partial void PostConstruct(ITwinObject parent, string readableTail, string symbolTail) + { + try + { + InitializeMessenger5(); + } + catch (Exception) + { + + throw; + } + } + + private void InitializeMessenger5() + { + List> messengerTextList = new List> + { + new KeyValuePair(0, new AxoMessengerTextItem(" ", " ")), + new KeyValuePair(1, new AxoMessengerTextItem("Messenger 5: message text 1", "Messenger 5: help text 1")), + new KeyValuePair(2, new AxoMessengerTextItem("Messenger 5: message text 2", "Messenger 5: help text 2")), + new KeyValuePair(3, new AxoMessengerTextItem("Messenger 5: message text 3", "Messenger 5: help text 3")), + new KeyValuePair(4, new AxoMessengerTextItem("Messenger 5: message text 4", "Messenger 5: help text 4")), + new KeyValuePair(5, new AxoMessengerTextItem("Messenger 5: message text 5", "Messenger 5: help text 5")), + new KeyValuePair(6, new AxoMessengerTextItem("Messenger 5: message text 6", "Messenger 5: help text 6")), + new KeyValuePair(7, new AxoMessengerTextItem("Messenger 5: message text 7", "Messenger 5: help text 7")), + new KeyValuePair(8, new AxoMessengerTextItem("Messenger 5: message text 8", "Messenger 5: help text 8")), + new KeyValuePair(9, new AxoMessengerTextItem("Messenger 5: message text 9", "Messenger 5: help text 9")), + new KeyValuePair(10, new AxoMessengerTextItem("Messenger 5: message text 10")) + }; + + _messenger5.DotNetMessengerTextList = messengerTextList; + } + } + +} \ No newline at end of file diff --git a/src/_test/app/ix/AXOpen.TextList/AxoTextListExample.cs b/src/_test/app/ix/AXOpen.TextList/AxoTextListExample.cs new file mode 100644 index 000000000..9fc5a4aae --- /dev/null +++ b/src/_test/app/ix/AXOpen.TextList/AxoTextListExample.cs @@ -0,0 +1,69 @@ + +using System.Collections.Generic; + +namespace AxoTextListExample +{ + public partial class AxoTextListExampleContext : AXOpen.Core.AxoObject + { + // + Dictionary textList = new Dictionary(); + // + public string TextList + { + get + { + // + if (textList == null) { textList = new Dictionary(); } + if (textList.Count == 0) + { + textList.Add(0, " "); + for (int i = 1; i < 1000; i++) + { + textList.Add((ulong)i, "Text list item : " + i.ToString()); + } + } + // + // + string _textItem = " "; + if (_myTextList1 != null && _myTextList1.Id != null && textList.TryGetValue(_myTextList1.Id.LastValue, out _textItem)) + { + return _textItem; + } + else + { + return " "; + } + // + } + } + + Dictionary differentTextList = new Dictionary(); + public string DifferentTextList + { + get + { + if (differentTextList == null) { differentTextList = new Dictionary(); } + if (differentTextList.Count == 0) + { + differentTextList.Add(0, " "); + for (int i = 1; i < 1000; i++) + { + differentTextList.Add((ulong)i, "Item from the totally different text list : " + i.ToString()); + } + + } + string differentTextItem = " "; + if (_myTextList3 != null && _myTextList3.Id != null && differentTextList.TryGetValue(_myTextList3.Id.LastValue, out differentTextItem)) + { + return differentTextItem; + } + else + + { + return " "; + } + } + } + } + +} diff --git a/src/_test/app/ix/Directory.Build.props b/src/_test/app/ix/Directory.Build.props new file mode 100644 index 000000000..5f9708a97 --- /dev/null +++ b/src/_test/app/ix/Directory.Build.props @@ -0,0 +1,5 @@ + + + false + + diff --git a/src/_test/app/ix/Entry.cs b/src/_test/app/ix/Entry.cs new file mode 100644 index 000000000..c4b6affa2 --- /dev/null +++ b/src/_test/app/ix/Entry.cs @@ -0,0 +1,44 @@ +using AXSharp.Connector; +using AXSharp.Connector.S71500.WebApi; +using System; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; + +namespace showcase +{ + public class ConnectionConfig + { + public string TargetIp { get; set; } = string.Empty; + public string UserName { get; set; } = string.Empty; + public string Password { get; set; } = string.Empty; + public Func? CertificateValidationCallback { get; set; } + public bool IgnoreSslErrors { get; set; } = true; + } + + public class TwinConnectorSelector + { + public static string TargetIp { get; } = "192.168.100.2"; + private static string Pass => @"Qwerty123456+"; + private static string UserName = "admin"; + private const bool IgnoreSslErrors = true; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + + static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); + + private static bool CertificateValidation(HttpRequestMessage requestMessage, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) + { + return certificate.Thumbprint == Certificate.Thumbprint; + } + + public static showcaseTwinController SecurePlc { get; } + = new(ConnectorAdapterBuilder.Build() + .CreateWebApi(TargetIp, UserName, Pass, CertificateValidation, IgnoreSslErrors)); + + // public static showcaseTwinController SecurePlc { get; } = new showcaseTwinController(ConnectorAdapterBuilder.Build().CreateDummy()); + } + + public static class Entry + { + public static showcaseTwinController Plc { get; } = TwinConnectorSelector.SecurePlc; + } +} diff --git a/src/_test/app/ix/Usings.cs b/src/_test/app/ix/Usings.cs new file mode 100644 index 000000000..7cd5f91b2 --- /dev/null +++ b/src/_test/app/ix/Usings.cs @@ -0,0 +1 @@ +global using AXOpen.Core; \ No newline at end of file diff --git a/src/_test/app/ix/showcase.csproj b/src/_test/app/ix/showcase.csproj new file mode 100644 index 000000000..8b6889fb6 --- /dev/null +++ b/src/_test/app/ix/showcase.csproj @@ -0,0 +1,54 @@ + + + net10.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/_test/app/showcase.blazor.sln b/src/_test/app/showcase.blazor.sln new file mode 100644 index 000000000..2207e9452 --- /dev/null +++ b/src/_test/app/showcase.blazor.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 18 +VisualStudioVersion = 18.4.11605.240 stable +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "showcase.blazor", "ix-blazor\showcase.blazor\showcase.blazor.csproj", "{A3F13F39-FED6-3F3E-4789-48B4FCE43C43}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "showcase", "ix\showcase.csproj", "{F09F0477-FBC9-82B1-7442-F44F47594B63}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A3F13F39-FED6-3F3E-4789-48B4FCE43C43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3F13F39-FED6-3F3E-4789-48B4FCE43C43}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3F13F39-FED6-3F3E-4789-48B4FCE43C43}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3F13F39-FED6-3F3E-4789-48B4FCE43C43}.Release|Any CPU.Build.0 = Release|Any CPU + {F09F0477-FBC9-82B1-7442-F44F47594B63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F09F0477-FBC9-82B1-7442-F44F47594B63}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F09F0477-FBC9-82B1-7442-F44F47594B63}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F09F0477-FBC9-82B1-7442-F44F47594B63}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {203DC661-A60C-44A8-95F2-5F39E98E806D} + EndGlobalSection +EndGlobal diff --git a/src/_test/app/src/IO/HwIdentifierList.st b/src/_test/app/src/IO/HwIdentifierList.st new file mode 100644 index 000000000..989c677b6 --- /dev/null +++ b/src/_test/app/src/IO/HwIdentifierList.st @@ -0,0 +1,48 @@ +NAMESPACE AXOpen.Test + TYPE HwIdentifierList : ARRAY[0..40] OF UINT := + [ + UINT#32, + UINT#48, + UINT#51, + UINT#54, + UINT#60, + UINT#64, + UINT#65, + UINT#66, + UINT#72, + UINT#73, + UINT#117, + UINT#135, + UINT#256, + UINT#257, + UINT#258, + UINT#259, + UINT#260, + UINT#261, + UINT#262, + UINT#263, + UINT#264, + UINT#265, + UINT#266, + UINT#267, + UINT#268, + UINT#269, + UINT#270, + UINT#271, + UINT#272, + UINT#273, + UINT#274, + UINT#275, + UINT#276, + UINT#277, + UINT#278, + UINT#279, + UINT#280, + UINT#281, + UINT#282, + UINT#283, + UINT#284 + ]; +END_TYPE +END_NAMESPACE + diff --git a/src/_test/app/src/IO/HwIdentifiers.st b/src/_test/app/src/IO/HwIdentifiers.st new file mode 100644 index 000000000..ee15e3f14 --- /dev/null +++ b/src/_test/app/src/IO/HwIdentifiers.st @@ -0,0 +1,49 @@ +NAMESPACE AXOpen.Test + TYPE + HwIdentifiers : UINT + ( + plc_line_HwID := UINT#32, + plc_line_plc_line_HwID := UINT#48, + plc_line_plc_line_Card_reader_writer_1_HwID := UINT#51, + plc_line_plc_line_CPU_display_1_HwID := UINT#54, + plc_line_plc_line_DP_interface_1_HwID := UINT#60, + plc_line_plc_line_PROFINET_interface_1_HwID := UINT#64, + plc_line_plc_line_PROFINET_interface_1_Port_1_HwID := UINT#65, + plc_line_plc_line_PROFINET_interface_1_Port_2_HwID := UINT#66, + plc_line_plc_line_PROFINET_interface_2_HwID := UINT#72, + plc_line_plc_line_PROFINET_interface_2_Port_3_HwID := UINT#73, + plc_line_plc_line_OPC_UA_1_HwID := UINT#117, + plc_line_plc_line_Virtual_communication_interface_HwID := UINT#135, + profinet_plc_line_HwID := UINT#256, + rexroth_ctrlx_drive_rexroth_ctrlx_drive_XCS_interface_PF30_HwID := UINT#257, + rexroth_ctrlx_drive_HwID := UINT#258, + rexroth_ctrlx_drive_rexroth_ctrlx_drive_XCS_interface_PF30_Port_1_HwID := UINT#259, + rexroth_ctrlx_drive_rexroth_ctrlx_drive_XCS_interface_PF30_Port_2_HwID := UINT#260, + rexroth_ctrlx_drive_Rack_HwID := UINT#261, + rexroth_ctrlx_drive_rexroth_ctrlx_drive_HwID := UINT#262, + rexroth_ctrlx_drive_Outputs_HwID := UINT#263, + rexroth_ctrlx_drive_Inputs_HwID := UINT#264, + rexroth_ctrlx_drive_S_0_0386_0_0__Position_controller__Position_actual_value_HwID := UINT#265, + rexroth_ctrlx_drive_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_HwID := UINT#266, + rexroth_ctrlx_drive_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_HwID := UINT#267, + rexroth_ctrlx_drive_S_0_0135_0_0__Drive_status_word__Value_HwID := UINT#268, + rexroth_ctrlx_drive_S_0_0144_0_0__Signal_status_word__Value_HwID := UINT#269, + rexroth_ctrlx_drive_S_0_1720_0_2__Power_supply_control__Status_word_HwID := UINT#270, + rexroth_ctrlx_drive_S_0_0084_0_0__Torque_force_feedback_value_HwID := UINT#271, + rexroth_ctrlx_drive_P_0_0106_0_0__STO_function__Operating_status_HwID := UINT#272, + rexroth_ctrlx_drive_S_0_0134_0_0__Master_control_word__Value_HwID := UINT#273, + rexroth_ctrlx_drive_S_0_0260_0_0__Positioning_profile__Acceleration_HwID := UINT#274, + rexroth_ctrlx_drive_S_0_0282_0_0__Drive_controlled_positioning__Command_value_HwID := UINT#275, + rexroth_ctrlx_drive_S_0_0359_0_0__Positioning_profile__Deceleration_HwID := UINT#276, + rexroth_ctrlx_drive_S_0_0259_0_0__Positioning_profile__Profile_velocity_HwID := UINT#277, + rexroth_ctrlx_drive_S_0_0145_0_0__Signal_control_word__Value_HwID := UINT#278, + rexroth_ctrlx_drive_S_0_1720_0_1__Power_supply_control__Control_word_HwID := UINT#279, + rexroth_ctrlx_drive_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_HwID := UINT#280, + rexroth_ctrlx_drive_S_0_0080_0_0__Torque_force_command_value_HwID := UINT#281, + rexroth_ctrlx_drive_S_0_0193_0_0__Positioning_jerk_HwID := UINT#282, + rexroth_ctrlx_drive_rexroth_ctrlx_drive_ctrlX_DRIVE_XCS_HwID := UINT#283, + plc_line_Rail_0_HwID := UINT#284 + ); + END_TYPE +END_NAMESPACE + diff --git a/src/_test/app/src/IO/Inputs.st b/src/_test/app/src/IO/Inputs.st new file mode 100644 index 000000000..f301b56bf --- /dev/null +++ b/src/_test/app/src/IO/Inputs.st @@ -0,0 +1,26 @@ +NAMESPACE AXOpen.Test + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + Inputs : STRUCT + // Module rexroth_ctrlx_drive/Inputs + rexroth_ctrlx_drive_Inputs_P_0_0106_0_0__STO_function__Operating_status_Input AT %B20 : rexroth_ctrlx_drive_Inputs_P_0_0106_0_0__STO_function__Operating_status_Input_Layout; + + rexroth_ctrlx_drive_Inputs_S_0_0084_0_0__Torque_force_feedback_value_Input AT %B18 : rexroth_ctrlx_drive_Inputs_S_0_0084_0_0__Torque_force_feedback_value_Input_Layout; + + rexroth_ctrlx_drive_Inputs_S_0_0135_0_0__Drive_status_word__Value_Input AT %B12 : rexroth_ctrlx_drive_Inputs_S_0_0135_0_0__Drive_status_word__Value_Input_Layout; + + rexroth_ctrlx_drive_Inputs_S_0_0144_0_0__Signal_status_word__Value_Input AT %B14 : rexroth_ctrlx_drive_Inputs_S_0_0144_0_0__Signal_status_word__Value_Input_Layout; + + rexroth_ctrlx_drive_Inputs_S_0_0386_0_0__Position_controller__Position_actual_value_Input AT %B0 : rexroth_ctrlx_drive_Inputs_S_0_0386_0_0__Position_controller__Position_actual_value_Input_Layout; + + rexroth_ctrlx_drive_Inputs_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_Input AT %B8 : rexroth_ctrlx_drive_Inputs_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_Input_Layout; + + rexroth_ctrlx_drive_Inputs_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_Input AT %B4 : rexroth_ctrlx_drive_Inputs_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_Input_Layout; + + rexroth_ctrlx_drive_Inputs_S_0_1720_0_2__Power_supply_control__Status_word_Input AT %B16 : rexroth_ctrlx_drive_Inputs_S_0_1720_0_2__Power_supply_control__Status_word_Input_Layout; + + END_STRUCT; + END_TYPE +END_NAMESPACE + diff --git a/src/_test/app/src/IO/IoStructures.st b/src/_test/app/src/IO/IoStructures.st new file mode 100644 index 000000000..b4a8d7147 --- /dev/null +++ b/src/_test/app/src/IO/IoStructures.st @@ -0,0 +1,161 @@ +NAMESPACE AXOpen.Test + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Inputs_P_0_0106_0_0__STO_function__Operating_status_Input_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Inputs_S_0_0084_0_0__Torque_force_feedback_value_Input_Layout : STRUCT + Signals_0 AT %B0 : INT; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Inputs_S_0_0135_0_0__Drive_status_word__Value_Input_Layout : STRUCT + Signals_0 AT %X0.3 : BOOL; + Signals_1 AT %X0.4 : BOOL; + Signals_2 AT %X0.5 : BOOL; + Signals_3 AT %X0.7 : BOOL; + Signals_4 AT %X1.0 : BOOL; + Signals_5 AT %X1.1 : BOOL; + Signals_6 AT %X1.2 : BOOL; + Signals_7 AT %X1.4 : BOOL; + Signals_8 AT %X1.5 : BOOL; + Signals_9 AT %X1.6 : BOOL; + Signals_10 AT %X1.7 : BOOL; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Inputs_S_0_0144_0_0__Signal_status_word__Value_Input_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Inputs_S_0_0386_0_0__Position_controller__Position_actual_value_Input_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Inputs_S_0_0390_0_0__Diagnostic_message__Manufacturer_status_register_Input_Layout : STRUCT + Signals_0 AT %B0 : DWORD; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Inputs_S_0_0535_0_0__Velocity_controller__Velocity_actual_value_Input_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Inputs_S_0_1720_0_2__Power_supply_control__Status_word_Input_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_0080_0_0__Torque_force_command_value_Output_Layout : STRUCT + Signals_0 AT %B0 : INT; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_Output_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_0134_0_0__Master_control_word__Value_Output_Layout : STRUCT + Signals_0 AT %X1.0 : BOOL; + Signals_1 AT %X1.1 : BOOL; + Signals_2 AT %X1.2 : BOOL; + Signals_3 AT %X1.5 : BOOL; + Signals_4 AT %X1.6 : BOOL; + Signals_5 AT %X1.7 : BOOL; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_0145_0_0__Signal_control_word__Value_Output_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_0193_0_0__Positioning_jerk_Output_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_0259_0_0__Positioning_profile__Profile_velocity_Output_Layout : STRUCT + Signals_0 AT %B0 : DWORD; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_0260_0_0__Positioning_profile__Acceleration_Output_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_0282_0_0__Drive_controlled_positioning__Command_value_Output_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_0359_0_0__Positioning_profile__Deceleration_Output_Layout : STRUCT + Signals_0 AT %B0 : DINT; + END_STRUCT; + END_TYPE + + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + rexroth_ctrlx_drive_Outputs_S_0_1720_0_1__Power_supply_control__Control_word_Output_Layout : STRUCT + Signals_0 AT %B0 : WORD; + END_STRUCT; + END_TYPE +END_NAMESPACE + diff --git a/src/_test/app/src/IO/Outputs.st b/src/_test/app/src/IO/Outputs.st new file mode 100644 index 000000000..2c47a0b43 --- /dev/null +++ b/src/_test/app/src/IO/Outputs.st @@ -0,0 +1,30 @@ +NAMESPACE AXOpen.Test + TYPE + {S7.extern=ReadWrite} + {#ix-attr:[Container(Layout.Wrap)]} + Outputs : STRUCT + // Module rexroth_ctrlx_drive/Outputs + rexroth_ctrlx_drive_Outputs_S_0_0080_0_0__Torque_force_command_value_Output AT %B24 : rexroth_ctrlx_drive_Outputs_S_0_0080_0_0__Torque_force_command_value_Output_Layout; + + rexroth_ctrlx_drive_Outputs_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_Output AT %B22 : rexroth_ctrlx_drive_Outputs_S_0_0092_0_0__Torque_force_limitation__Limit_value_bipolar_Output_Layout; + + rexroth_ctrlx_drive_Outputs_S_0_0134_0_0__Master_control_word__Value_Output AT %B0 : rexroth_ctrlx_drive_Outputs_S_0_0134_0_0__Master_control_word__Value_Output_Layout; + + rexroth_ctrlx_drive_Outputs_S_0_0145_0_0__Signal_control_word__Value_Output AT %B18 : rexroth_ctrlx_drive_Outputs_S_0_0145_0_0__Signal_control_word__Value_Output_Layout; + + rexroth_ctrlx_drive_Outputs_S_0_0193_0_0__Positioning_jerk_Output AT %B26 : rexroth_ctrlx_drive_Outputs_S_0_0193_0_0__Positioning_jerk_Output_Layout; + + rexroth_ctrlx_drive_Outputs_S_0_0259_0_0__Positioning_profile__Profile_velocity_Output AT %B14 : rexroth_ctrlx_drive_Outputs_S_0_0259_0_0__Positioning_profile__Profile_velocity_Output_Layout; + + rexroth_ctrlx_drive_Outputs_S_0_0260_0_0__Positioning_profile__Acceleration_Output AT %B2 : rexroth_ctrlx_drive_Outputs_S_0_0260_0_0__Positioning_profile__Acceleration_Output_Layout; + + rexroth_ctrlx_drive_Outputs_S_0_0282_0_0__Drive_controlled_positioning__Command_value_Output AT %B6 : rexroth_ctrlx_drive_Outputs_S_0_0282_0_0__Drive_controlled_positioning__Command_value_Output_Layout; + + rexroth_ctrlx_drive_Outputs_S_0_0359_0_0__Positioning_profile__Deceleration_Output AT %B10 : rexroth_ctrlx_drive_Outputs_S_0_0359_0_0__Positioning_profile__Deceleration_Output_Layout; + + rexroth_ctrlx_drive_Outputs_S_0_1720_0_1__Power_supply_control__Control_word_Output AT %B20 : rexroth_ctrlx_drive_Outputs_S_0_1720_0_1__Power_supply_control__Control_word_Output_Layout; + + END_STRUCT; + END_TYPE +END_NAMESPACE + diff --git a/src/_test/app/src/TestContext.st b/src/_test/app/src/TestContext.st new file mode 100644 index 000000000..46560d256 --- /dev/null +++ b/src/_test/app/src/TestContext.st @@ -0,0 +1,25 @@ +USING AXOpen.Core; +USING AXOpen.Logging; +USING AXOpen.Messaging; +USING AXOpen.Messaging.Static; + +// ============================================================ +// TestContext — Documentation AxoContext for the test app. +// Contains documentation examples and core objects. +// Sandbox/testing objects have been moved to src/sandbox/app. +// ============================================================ + +{S7.extern=ReadWrite} +CLASS TestContext EXTENDS AXOpen.Core.AxoContext + VAR PUBLIC + // ---- Components.Rexroth.Drives ---- + rexroth_drives_documentation : AXOpen.Components.Rexroth.Drives.RexrothDrives; + + END_VAR + + METHOD PROTECTED OVERRIDE Main + THIS.InitializeRootObject(rexroth_drives_documentation); + rexroth_drives_documentation.Execute(); + + END_METHOD +END_CLASS diff --git a/src/_test/app/src/components.rexroth.drives/Documentation/AxoCtrlxDriveXsc_Showcase.st b/src/_test/app/src/components.rexroth.drives/Documentation/AxoCtrlxDriveXsc_Showcase.st new file mode 100644 index 000000000..1c5208d8d --- /dev/null +++ b/src/_test/app/src/components.rexroth.drives/Documentation/AxoCtrlxDriveXsc_Showcase.st @@ -0,0 +1,441 @@ +USING AXOpen.Components.Abstractions.Drives; +USING AXOpen.Core; + +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + CLASS AxoCtrlxDriveXsc_Showcase 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 + inParent : IAxoObject; + END_VAR + + SUPER.Run(inParent); + + IF(manualControl) THEN + CtrlXdrive.ActivateManualControl(); + END_IF; + // + CtrlXdrive.Run(inParent := THIS, + hwID := AXOpen.Test.HwIdentifiers#rexroth_ctrlx_drive_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.DriveConfig.InfoTime := LTIME#2S; + CtrlXdrive.DriveConfig.ErrorTime := LTIME#5S; + CtrlXdrive.DriveConfig.TaskTimeout := LTIME#50S; + 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/_test/app/src/components.rexroth.drives/Documentation/RexrothDrives.st b/src/_test/app/src/components.rexroth.drives/Documentation/RexrothDrives.st new file mode 100644 index 000000000..4c77d0e8f --- /dev/null +++ b/src/_test/app/src/components.rexroth.drives/Documentation/RexrothDrives.st @@ -0,0 +1,14 @@ +NAMESPACE AXOpen.Components.Rexroth.Drives + {S7.extern=ReadWrite} + CLASS RexrothDrives EXTENDS AXOpen.Core.AxoObject + VAR PUBLIC + _rootObject : AxoObject; + axoCtrlxDriveXsc : AxoCtrlxDriveXsc_Showcase; + END_VAR + + METHOD PUBLIC Execute + _rootObject.Run(THIS); + axoCtrlxDriveXsc.Run(_rootObject); + END_METHOD + END_CLASS +END_NAMESPACE \ No newline at end of file diff --git a/src/_test/app/src/configuration.st b/src/_test/app/src/configuration.st new file mode 100644 index 000000000..10763734e --- /dev/null +++ b/src/_test/app/src/configuration.st @@ -0,0 +1,37 @@ +USING AXOpen.Core; + +// ============================================================ +// Showcase unified configuration +// Includes representative examples from every library. +// +// Variable naming convention: +// - Core / Data / Foundation-lib examples keep their +// original names where those names are globally unique. +// - Component-library sandbox/documentation contexts are +// prefixed with the short library name to avoid conflicts, +// because each library defines types of the same name in +// its own namespace. +// ============================================================ + +CONFIGURATION MyConfiguration + TASK Main(Interval := T#10ms, Priority := 1); + PROGRAM P1 WITH Main: TestProgram; + + VAR_GLOBAL + // ---- Shared RTC / RTM ---- + {S7.extern=ReadWrite} + _rtc : AXOpen.S71500.Rtc; + {S7.extern=ReadWrite} + _rtm : AXOpen.S71500.Rtm; + + // ---- PLC alive counter ---- + {#ix-set:AttributeName = "PLC alive counter"} + {S7.extern=ReadWrite} + I_am_alive : ULINT; + + // ---- Single unified context ---- + {S7.extern=ReadWrite} + Ctx : TestContext; + END_VAR +END_CONFIGURATION + diff --git a/src/_test/app/src/program.st b/src/_test/app/src/program.st new file mode 100644 index 000000000..111c6f257 --- /dev/null +++ b/src/_test/app/src/program.st @@ -0,0 +1,20 @@ +USING AXOpen.Core; + +PROGRAM TestProgram + VAR_EXTERNAL + _rtc : AXOpen.S71500.Rtc; + _rtm : AXOpen.S71500.Rtm; + {#ix-set:AttributeName = "PLC alive counter"} + I_am_alive : ULINT; + Ctx : TestContext; + END_VAR + + I_am_alive := I_am_alive + ULINT#1; + + // Inject shared services into the single unified context + Ctx.InjectRtc(_rtc); + Ctx.InjectRtm(_rtm); + + // Run the single context — orchestrates all examples + Ctx.Run(); +END_PROGRAM diff --git a/src/_test/slngen.ps1 b/src/_test/slngen.ps1 new file mode 100644 index 000000000..2b560d85b --- /dev/null +++ b/src/_test/slngen.ps1 @@ -0,0 +1 @@ +dotnet slngen _test.solution.proj -o _test.sln --folders true --launch false \ No newline at end of file diff --git a/src/styling/src/wwwroot/css/momentum.css b/src/styling/src/wwwroot/css/momentum.css index 112ce7a02..356237f5f 100644 --- a/src/styling/src/wwwroot/css/momentum.css +++ b/src/styling/src/wwwroot/css/momentum.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-orange-50:oklch(98% .016 73.684);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-lime-400:oklch(84.1% .238 128.85);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-900:oklch(39.8% .07 227.392);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-500:oklch(62.7% .265 303.9);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--container-3xl:48rem;--container-4xl:56rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:calc(var(--spacing) * 0)}.-z-1{z-index:calc(1 * -1)}.z-10{z-index:10}.z-\[600\]{z-index:600}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.\!m-0{margin:calc(var(--spacing) * 0)!important}.m-0{margin:calc(var(--spacing) * 0)}.m-0\!{margin:calc(var(--spacing) * 0)!important}.m-1{margin:calc(var(--spacing) * 1)}.m-2{margin:calc(var(--spacing) * 2)}.m-4{margin:calc(var(--spacing) * 4)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-auto{margin-block:auto}.ms-1{margin-inline-start:calc(var(--spacing) * 1)}.ms-2{margin-inline-start:calc(var(--spacing) * 2)}.ms-4{margin-inline-start:calc(var(--spacing) * 4)}.ms-auto{margin-inline-start:auto}.me-1{margin-inline-end:calc(var(--spacing) * 1)}.me-2{margin-inline-end:calc(var(--spacing) * 2)}.me-4{margin-inline-end:calc(var(--spacing) * 4)}.me-6{margin-inline-end:calc(var(--spacing) * 6)}.me-auto{margin-inline-end:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-\[15vh\]{margin-top:15vh}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flex\!{display:flex!important}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-15{height:calc(var(--spacing) * 15)}.h-auto{height:auto}.h-full{height:100%}.max-h-\[50vh\]{max-height:50vh}.max-h-\[70vh\]{max-height:70vh}.min-h-40{min-height:calc(var(--spacing) * 40)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-15{width:calc(var(--spacing) * 15)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-50{width:calc(var(--spacing) * 50)}.w-75{width:calc(var(--spacing) * 75)}.w-100{width:calc(var(--spacing) * 100)}.w-125{width:calc(var(--spacing) * 125)}.w-\[1px\]{width:1px}.w-auto{width:auto}.w-full{width:100%}.w-md{width:var(--container-md)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-200{max-width:calc(var(--spacing) * 200)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-\[10rem\]{min-width:10rem}.min-w-\[12rem\]{min-width:12rem}.flex-1{flex:1}.flex-\[2\]{flex:2}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow-1,.grow,.grow-1{flex-grow:1}.basis-1\/3{flex-basis:33.3333%}.basis-2\/3{flex-basis:66.6667%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-none{animation:none}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(160px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row\!{flex-direction:row!important}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-center\!{align-items:center!important}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing) * 1)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-slate-100>:not(:last-child)){border-color:var(--color-slate-100)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-visible{overflow-y:visible}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b,.border-b-1{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-blue-500\/50{border-color:#3080ff80}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/50{border-color:color-mix(in oklab, var(--color-blue-500) 50%, transparent)}}.border-current{border-color:currentColor}.border-cyan-200{border-color:var(--color-cyan-200)}.border-cyan-400{border-color:var(--color-cyan-400)}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab, red, red)){.border-green-500\/50{border-color:color-mix(in oklab, var(--color-green-500) 50%, transparent)}}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-400\/50{border-color:#ff8b1a80}@supports (color:color-mix(in lab, red, red)){.border-orange-400\/50{border-color:color-mix(in oklab, var(--color-orange-400) 50%, transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\/50{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-400\/35{border-color:#90a1b959}@supports (color:color-mix(in lab, red, red)){.border-slate-400\/35{border-color:color-mix(in oklab, var(--color-slate-400) 35%, transparent)}}.border-slate-500\/40{border-color:#62748e66}@supports (color:color-mix(in lab, red, red)){.border-slate-500\/40{border-color:color-mix(in oklab, var(--color-slate-500) 40%, transparent)}}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/50{border-color:color-mix(in oklab, var(--color-yellow-500) 50%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-cyan-50{background-color:var(--color-cyan-50)}.bg-cyan-100\/40{background-color:#cefafe66}@supports (color:color-mix(in lab, red, red)){.bg-cyan-100\/40{background-color:color-mix(in oklab, var(--color-cyan-100) 40%, transparent)}}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-green-500{background-color:var(--color-green-500)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-400\/20{background-color:#90a1b933}@supports (color:color-mix(in lab, red, red)){.bg-slate-400\/20{background-color:color-mix(in oklab, var(--color-slate-400) 20%, transparent)}}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-700{background-color:var(--color-slate-700)}.bg-slate-700\/40{background-color:#31415866}@supports (color:color-mix(in lab, red, red)){.bg-slate-700\/40{background-color:color-mix(in oklab, var(--color-slate-700) 40%, transparent)}}.bg-slate-800\/60{background-color:#1d293d99}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/60{background-color:color-mix(in oklab, var(--color-slate-800) 60%, transparent)}}.bg-slate-900\/35{background-color:#0f172b59}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/35{background-color:color-mix(in oklab, var(--color-slate-900) 35%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-cyan-50{--tw-gradient-from:var(--color-cyan-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-emerald-50{--tw-gradient-from:var(--color-emerald-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-green-500{--tw-gradient-from:var(--color-green-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-red-500{--tw-gradient-from:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-yellow-400{--tw-gradient-from:var(--color-yellow-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-0\%{--tw-gradient-from-position:0%}.via-amber-400{--tw-gradient-via:var(--color-amber-400);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-cyan-500{--tw-gradient-via:var(--color-cyan-500);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-lime-400{--tw-gradient-via:var(--color-lime-400);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-purple-500{--tw-gradient-via:var(--color-purple-500);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-400{--tw-gradient-via:var(--color-sky-400);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-yellow-400{--tw-gradient-via:var(--color-yellow-400);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-blue-500{--tw-gradient-to:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-green-500{--tw-gradient-to:var(--color-green-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-50\%{--tw-gradient-to-position:50%}.\!p-0{padding:calc(var(--spacing) * 0)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-0\!{padding:calc(var(--spacing) * 0)!important}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-10{padding:calc(var(--spacing) * 10)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\!{padding-inline:calc(var(--spacing) * 1)!important}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\!{padding-inline:calc(var(--spacing) * 2)!important}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\!{padding-block:calc(var(--spacing) * 2)!important}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.ps-3{padding-inline-start:calc(var(--spacing) * 3)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-2{padding-left:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[0\.95rem\]{font-size:.95rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.whitespace-nowrap{white-space:nowrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-600\/80{color:#dd7400cc}@supports (color:color-mix(in lab, red, red)){.text-amber-600\/80{color:color-mix(in oklab, var(--color-amber-600) 80%, transparent)}}.text-amber-700{color:var(--color-amber-700)}.text-blue-500{color:var(--color-blue-500)}.text-cyan-700{color:var(--color-cyan-700)}.text-cyan-900{color:var(--color-cyan-900)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-100{color:var(--color-gray-100)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-inherit{color:inherit}.text-inherit\!{color:inherit!important}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-slate-100\/95{color:#f1f5f9f2}@supports (color:color-mix(in lab, red, red)){.text-slate-100\/95{color:color-mix(in oklab, var(--color-slate-100) 95%, transparent)}}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-400\/90{color:#90a1b9e6}@supports (color:color-mix(in lab, red, red)){.text-slate-400\/90{color:color-mix(in oklab, var(--color-slate-400) 90%, transparent)}}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-slate-900\/70{color:#0f172bb3}@supports (color:color-mix(in lab, red, red)){.text-slate-900\/70{color:color-mix(in oklab, var(--color-slate-900) 70%, transparent)}}.text-slate-900\/85{color:#0f172bd9}@supports (color:color-mix(in lab, red, red)){.text-slate-900\/85{color:color-mix(in oklab, var(--color-slate-900) 85%, transparent)}}.text-slate-900\/90{color:#0f172be6}@supports (color:color-mix(in lab, red, red)){.text-slate-900\/90{color:color-mix(in oklab, var(--color-slate-900) 90%, transparent)}}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.uppercase{text-transform:uppercase}.placeholder-slate-400::placeholder{color:var(--color-slate-400)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(34\,197\,94\,0\.6\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#22c55e99);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-blue-500\/50{--tw-shadow-color:#3080ff80}@supports (color:color-mix(in lab, red, red)){.shadow-blue-500\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-blue-500) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-green-500\/50{--tw-shadow-color:#00c75880}@supports (color:color-mix(in lab, red, red)){.shadow-green-500\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-green-500) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-orange-400\/40{--tw-shadow-color:#ff8b1a66}@supports (color:color-mix(in lab, red, red)){.shadow-orange-400\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-orange-400) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/50{--tw-shadow-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.shadow-red-500\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-yellow-500\/50{--tw-shadow-color:#edb20080}@supports (color:color-mix(in lab, red, red)){.shadow-yellow-500\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-yellow-500) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.blur-\[1px\]{--tw-blur:blur(1px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[assembly\:InternalsVisibleTo\(\"axopen\.inspectors_tests\"\)\]{assembly:InternalsVisibleTo("axopen.inspectors tests")}.\[assembly\:InternalsVisibleTo\(\"axopen_core_tests\"\)\]{assembly:InternalsVisibleTo("axopen core tests")}.\[assembly\:InternalsVisibleTo\(\"axopen_core_tests_L1\"\)\]{assembly:InternalsVisibleTo("axopen core tests L1")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsabbrobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsabbrobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsballuffidentification_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsballuffidentification tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentscognexvision_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentscognexvision tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsdesouttertightening_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsdesouttertightening tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsdrives_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsdrives tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsfestodrives_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsfestodrives tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentskeyencevision_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentskeyencevision tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentskukarobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentskukarobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsmitsubishirobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsmitsubishirobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsrexrothdrives_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsrexrothdrives tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsrexrothpress_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsrexrothpress tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsrobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsrobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentssiemidentification_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentssiemidentification tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsurrobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsurrobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopenio_tests\"\)\]{assembly:InternalsVisibleTo("axopenio tests")}.\[assembly\:InternalsVisibleTo\(\"components\.dukane\.welders_tests\"\)\]{assembly:InternalsVisibleTo("components.dukane.welders tests")}.\[assembly\:InternalsVisibleTo\(\"components\.rexroth\.tightening_tests\"\)\]{assembly:InternalsVisibleTo("components.rexroth.tightening tests")}.\[assembly\:InternalsVisibleTo\(\"components\.siem\.communication_tests\"\)\]{assembly:InternalsVisibleTo("components.siem.communication tests")}.\[assembly\:InternalsVisibleTo\(\"components\.zebra\.vision_tests\"\)\]{assembly:InternalsVisibleTo("components.zebra.vision tests")}.\[assembly\:InternalsVisibleTo\(\"elementscomponents_tests\"\)\]{assembly:InternalsVisibleTo("elementscomponents tests")}.\[assembly\:InternalsVisibleTo\(\"librarytemplate_tests\"\)\]{assembly:InternalsVisibleTo("librarytemplate tests")}.\[assembly\:InternalsVisibleTo\(\"pneumaticcomponents_tests\"\)\]{assembly:InternalsVisibleTo("pneumaticcomponents tests")}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-slate-800:hover{color:var(--color-slate-800)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-cyan-500:focus{border-color:var(--color-cyan-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-cyan-200:focus{--tw-ring-color:var(--color-cyan-200)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:40rem){.sm\:inline{display:inline}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (min-width:48rem){.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (min-width:80rem){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} \ No newline at end of file +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-orange-50:oklch(98% .016 73.684);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-lime-400:oklch(84.1% .238 128.85);--color-green-500:oklch(72.3% .219 149.579);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-900:oklch(39.8% .07 227.392);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-500:oklch(62.7% .265 303.9);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--container-3xl:48rem;--container-4xl:56rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:calc(var(--spacing) * 0)}.-z-1{z-index:calc(1 * -1)}.z-10{z-index:10}.z-\[600\]{z-index:600}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.\!m-0{margin:calc(var(--spacing) * 0)!important}.m-0{margin:calc(var(--spacing) * 0)}.m-0\!{margin:calc(var(--spacing) * 0)!important}.m-1{margin:calc(var(--spacing) * 1)}.m-2{margin:calc(var(--spacing) * 2)}.m-4{margin:calc(var(--spacing) * 4)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-auto{margin-block:auto}.ms-1{margin-inline-start:calc(var(--spacing) * 1)}.ms-2{margin-inline-start:calc(var(--spacing) * 2)}.ms-4{margin-inline-start:calc(var(--spacing) * 4)}.ms-auto{margin-inline-start:auto}.me-1{margin-inline-end:calc(var(--spacing) * 1)}.me-2{margin-inline-end:calc(var(--spacing) * 2)}.me-4{margin-inline-end:calc(var(--spacing) * 4)}.me-6{margin-inline-end:calc(var(--spacing) * 6)}.me-auto{margin-inline-end:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-\[15vh\]{margin-top:15vh}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flex\!{display:flex!important}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-15{height:calc(var(--spacing) * 15)}.h-auto{height:auto}.h-full{height:100%}.max-h-\[50vh\]{max-height:50vh}.max-h-\[70vh\]{max-height:70vh}.min-h-40{min-height:calc(var(--spacing) * 40)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-15{width:calc(var(--spacing) * 15)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-50{width:calc(var(--spacing) * 50)}.w-75{width:calc(var(--spacing) * 75)}.w-100{width:calc(var(--spacing) * 100)}.w-125{width:calc(var(--spacing) * 125)}.w-\[1px\]{width:1px}.w-auto{width:auto}.w-full{width:100%}.w-md{width:var(--container-md)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-200{max-width:calc(var(--spacing) * 200)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-\[10rem\]{min-width:10rem}.min-w-\[12rem\]{min-width:12rem}.flex-1{flex:1}.flex-\[2\]{flex:2}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow-1,.grow,.grow-1{flex-grow:1}.basis-1\/3{flex-basis:33.3333%}.basis-2\/3{flex-basis:66.6667%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-none{animation:none}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row\!{flex-direction:row!important}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-center\!{align-items:center!important}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing) * 1)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-slate-100>:not(:last-child)){border-color:var(--color-slate-100)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-visible{overflow-y:visible}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b,.border-b-1{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-blue-500\/50{border-color:#3080ff80}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/50{border-color:color-mix(in oklab, var(--color-blue-500) 50%, transparent)}}.border-current{border-color:currentColor}.border-cyan-200{border-color:var(--color-cyan-200)}.border-cyan-400{border-color:var(--color-cyan-400)}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab, red, red)){.border-green-500\/50{border-color:color-mix(in oklab, var(--color-green-500) 50%, transparent)}}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-400\/50{border-color:#ff8b1a80}@supports (color:color-mix(in lab, red, red)){.border-orange-400\/50{border-color:color-mix(in oklab, var(--color-orange-400) 50%, transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\/50{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-400\/35{border-color:#90a1b959}@supports (color:color-mix(in lab, red, red)){.border-slate-400\/35{border-color:color-mix(in oklab, var(--color-slate-400) 35%, transparent)}}.border-slate-500\/40{border-color:#62748e66}@supports (color:color-mix(in lab, red, red)){.border-slate-500\/40{border-color:color-mix(in oklab, var(--color-slate-500) 40%, transparent)}}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/50{border-color:color-mix(in oklab, var(--color-yellow-500) 50%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-current{background-color:currentColor}.bg-cyan-50{background-color:var(--color-cyan-50)}.bg-cyan-100\/40{background-color:#cefafe66}@supports (color:color-mix(in lab, red, red)){.bg-cyan-100\/40{background-color:color-mix(in oklab, var(--color-cyan-100) 40%, transparent)}}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-green-500{background-color:var(--color-green-500)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-400\/20{background-color:#90a1b933}@supports (color:color-mix(in lab, red, red)){.bg-slate-400\/20{background-color:color-mix(in oklab, var(--color-slate-400) 20%, transparent)}}.bg-slate-500{background-color:var(--color-slate-500)}.bg-slate-700{background-color:var(--color-slate-700)}.bg-slate-700\/40{background-color:#31415866}@supports (color:color-mix(in lab, red, red)){.bg-slate-700\/40{background-color:color-mix(in oklab, var(--color-slate-700) 40%, transparent)}}.bg-slate-800\/60{background-color:#1d293d99}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/60{background-color:color-mix(in oklab, var(--color-slate-800) 60%, transparent)}}.bg-slate-900\/35{background-color:#0f172b59}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/35{background-color:color-mix(in oklab, var(--color-slate-900) 35%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-cyan-50{--tw-gradient-from:var(--color-cyan-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-emerald-50{--tw-gradient-from:var(--color-emerald-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-green-500{--tw-gradient-from:var(--color-green-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-red-500{--tw-gradient-from:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-yellow-400{--tw-gradient-from:var(--color-yellow-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-0\%{--tw-gradient-from-position:0%}.via-amber-400{--tw-gradient-via:var(--color-amber-400);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-cyan-500{--tw-gradient-via:var(--color-cyan-500);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-lime-400{--tw-gradient-via:var(--color-lime-400);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-purple-500{--tw-gradient-via:var(--color-purple-500);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-sky-400{--tw-gradient-via:var(--color-sky-400);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-yellow-400{--tw-gradient-via:var(--color-yellow-400);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-blue-500{--tw-gradient-to:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-green-500{--tw-gradient-to:var(--color-green-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-50\%{--tw-gradient-to-position:50%}.\!p-0{padding:calc(var(--spacing) * 0)!important}.p-0{padding:calc(var(--spacing) * 0)}.p-0\!{padding:calc(var(--spacing) * 0)!important}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-10{padding:calc(var(--spacing) * 10)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\!{padding-inline:calc(var(--spacing) * 1)!important}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\!{padding-inline:calc(var(--spacing) * 2)!important}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\!{padding-block:calc(var(--spacing) * 2)!important}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.ps-3{padding-inline-start:calc(var(--spacing) * 3)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-2{padding-left:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[0\.95rem\]{font-size:.95rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-nowrap{text-wrap:nowrap}.whitespace-nowrap{white-space:nowrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-600\/80{color:#dd7400cc}@supports (color:color-mix(in lab, red, red)){.text-amber-600\/80{color:color-mix(in oklab, var(--color-amber-600) 80%, transparent)}}.text-amber-700{color:var(--color-amber-700)}.text-blue-500{color:var(--color-blue-500)}.text-cyan-700{color:var(--color-cyan-700)}.text-cyan-900{color:var(--color-cyan-900)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-100{color:var(--color-gray-100)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-inherit{color:inherit}.text-inherit\!{color:inherit!important}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-slate-100\/95{color:#f1f5f9f2}@supports (color:color-mix(in lab, red, red)){.text-slate-100\/95{color:color-mix(in oklab, var(--color-slate-100) 95%, transparent)}}.text-slate-200{color:var(--color-slate-200)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-400\/90{color:#90a1b9e6}@supports (color:color-mix(in lab, red, red)){.text-slate-400\/90{color:color-mix(in oklab, var(--color-slate-400) 90%, transparent)}}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-slate-900\/70{color:#0f172bb3}@supports (color:color-mix(in lab, red, red)){.text-slate-900\/70{color:color-mix(in oklab, var(--color-slate-900) 70%, transparent)}}.text-slate-900\/85{color:#0f172bd9}@supports (color:color-mix(in lab, red, red)){.text-slate-900\/85{color:color-mix(in oklab, var(--color-slate-900) 85%, transparent)}}.text-slate-900\/90{color:#0f172be6}@supports (color:color-mix(in lab, red, red)){.text-slate-900\/90{color:color-mix(in oklab, var(--color-slate-900) 90%, transparent)}}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.uppercase{text-transform:uppercase}.placeholder-slate-400::placeholder{color:var(--color-slate-400)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(34\,197\,94\,0\.6\)\]{--tw-shadow:0 0 8px var(--tw-shadow-color,#22c55e99);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-blue-500\/50{--tw-shadow-color:#3080ff80}@supports (color:color-mix(in lab, red, red)){.shadow-blue-500\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-blue-500) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-green-500\/50{--tw-shadow-color:#00c75880}@supports (color:color-mix(in lab, red, red)){.shadow-green-500\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-green-500) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-orange-400\/40{--tw-shadow-color:#ff8b1a66}@supports (color:color-mix(in lab, red, red)){.shadow-orange-400\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-orange-400) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/50{--tw-shadow-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.shadow-red-500\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-yellow-500\/50{--tw-shadow-color:#edb20080}@supports (color:color-mix(in lab, red, red)){.shadow-yellow-500\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-yellow-500) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.blur-\[1px\]{--tw-blur:blur(1px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[assembly\:InternalsVisibleTo\(\"axopen\.inspectors_tests\"\)\]{assembly:InternalsVisibleTo("axopen.inspectors tests")}.\[assembly\:InternalsVisibleTo\(\"axopen_core_tests\"\)\]{assembly:InternalsVisibleTo("axopen core tests")}.\[assembly\:InternalsVisibleTo\(\"axopen_core_tests_L1\"\)\]{assembly:InternalsVisibleTo("axopen core tests L1")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsabbrobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsabbrobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsballuffidentification_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsballuffidentification tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentscognexvision_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentscognexvision tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsdesouttertightening_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsdesouttertightening tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsdrives_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsdrives tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsfestodrives_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsfestodrives tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentskeyencevision_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentskeyencevision tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentskukarobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentskukarobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsmitsubishirobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsmitsubishirobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsrexrothdrives_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsrexrothdrives tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsrexrothpress_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsrexrothpress tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsrobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsrobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentssiemidentification_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentssiemidentification tests")}.\[assembly\:InternalsVisibleTo\(\"axopencomponentsurrobotics_tests\"\)\]{assembly:InternalsVisibleTo("axopencomponentsurrobotics tests")}.\[assembly\:InternalsVisibleTo\(\"axopenio_tests\"\)\]{assembly:InternalsVisibleTo("axopenio tests")}.\[assembly\:InternalsVisibleTo\(\"components\.dukane\.welders_tests\"\)\]{assembly:InternalsVisibleTo("components.dukane.welders tests")}.\[assembly\:InternalsVisibleTo\(\"components\.rexroth\.tightening_tests\"\)\]{assembly:InternalsVisibleTo("components.rexroth.tightening tests")}.\[assembly\:InternalsVisibleTo\(\"components\.siem\.communication_tests\"\)\]{assembly:InternalsVisibleTo("components.siem.communication tests")}.\[assembly\:InternalsVisibleTo\(\"components\.zebra\.vision_tests\"\)\]{assembly:InternalsVisibleTo("components.zebra.vision tests")}.\[assembly\:InternalsVisibleTo\(\"elementscomponents_tests\"\)\]{assembly:InternalsVisibleTo("elementscomponents tests")}.\[assembly\:InternalsVisibleTo\(\"librarytemplate_tests\"\)\]{assembly:InternalsVisibleTo("librarytemplate tests")}.\[assembly\:InternalsVisibleTo\(\"pneumaticcomponents_tests\"\)\]{assembly:InternalsVisibleTo("pneumaticcomponents tests")}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-slate-800:hover{color:var(--color-slate-800)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-cyan-500:focus{border-color:var(--color-cyan-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-cyan-200:focus{--tw-ring-color:var(--color-cyan-200)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:40rem){.sm\:inline{display:inline}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (min-width:48rem){.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media (min-width:80rem){.xl\:col-span-1{grid-column:span 1/span 1}.xl\:col-span-2{grid-column:span 2/span 2}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} \ No newline at end of file From aa1d33e4516b4d2c4a0b660c6c9717c78905aaa2 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 18 May 2026 14:38:09 +0200 Subject: [PATCH 02/32] Create draft PR for #1146 From 9555156effe1956444a94705b743a4971d8230b7 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 18 May 2026 16:13:44 +0200 Subject: [PATCH 03/32] config --- .../001_FSP_DRIVE_PROFILE.png | Bin 0 -> 225784 bytes .../002_CONSUMER.png | Bin 0 -> 293061 bytes .../003_PRODUCER.png | Bin 0 -> 290515 bytes .../004_SignalControlWord.png | Bin 0 -> 296442 bytes .../005_SignalStatusWord.png | Bin 0 -> 290122 bytes .../006_OperationMode.png | Bin 0 -> 222621 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/001_FSP_DRIVE_PROFILE.png create mode 100644 src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/002_CONSUMER.png create mode 100644 src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/003_PRODUCER.png create mode 100644 src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/004_SignalControlWord.png create mode 100644 src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/005_SignalStatusWord.png create mode 100644 src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/006_OperationMode.png diff --git a/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/001_FSP_DRIVE_PROFILE.png b/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/001_FSP_DRIVE_PROFILE.png new file mode 100644 index 0000000000000000000000000000000000000000..9f603be9c548dd3d12fcace4e8cfaebe42124a28 GIT binary patch literal 225784 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 G^uGY1@VH+9 literal 0 HcmV?d00001 diff --git a/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/002_CONSUMER.png b/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/002_CONSUMER.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a164889df9b5b9ae4b5e64ef4f6ac162f2518d GIT binary patch literal 293061 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%0DNpXGhExb`!v`fygcaHV zLHvk&kcw4ZDcCh{=NaHVz{u3YdYG^lty3y&QiGD6C81!?^heZEEg*P?mo@484JyIb zG27J-vIf)X7B1ecbZ5S}h`@gG7;d(B(?&GbP18luxhjSdu@9(x1;jqgLmmcoTDvPs ze-YYP0O=lrF5kP*z#YNxkRDb6>3~64L|=|#UbF;J?Z#)3Xskbr{8W8Mk%v8sm~qKc zQYlyg%929<;El?%h6==H5YWuJkER1rn4>NHsiZ-@Pfy;g&%`jElM#I6GuE{tc^o5BwET-`HI8gRG4sizyN_QblZ*PkwS(Mt$5T7LU9a*T|ZAu)! z+))6O{Z|qM9D*oZTFLPe;d!bL(WXr6Z~({TUg7_h1KnPMnPWB#*;^hHG4tocahrBXchYvc}3WU}#%xpI^7A)8?Z4OQ? zM{N{zTg{NP=3{!VeUBsBwULA_Te=!Irq-bAlf@d)btA~OgfrP4rOM!TKoDdy5SMML zyDEh1d7+49B*d4D_R0X0C6Q+RLCYY=`1H!(7jn}6weUlmYO3t*Q4^_&uAJ0L3R{m{ zD|!e2c}1yQw!i(~09hbeTku?0Zs6cy%Ml1lw!N&cU|~TO1A0t&I(CO?%fNZ-#nH_U z&uL}{F^NBf0FKPS1eUlNCUKcDLLLBAkc2b{EKOo$MjwnOAtK@d`LvmoFo~my7P0EeRAHkTn#Dewl3CdkDY4vYo-RzbMmpk@npk zqRiVKHBErSz+@C2jAtd!=iGFjQI;3lYTL71ln*tSWWbDfrrd=l{c?ylgw6J|78Eag zkGcl$?Sm>|;HLC|O6CyziwMvWDLn<^iYaltf!%*%g^uq`d*U#eNJ}knb7s?FB?#9XkSQCM;f`7)w^oC-T;^N~&Bc=5xe+x;K zQR>%=#IQSm?}a8uq5otJ!fIxQU9jy}XqGyQgJr}8_j3@4f4D0JW5zkm{5k$6sX7_H zTd}P><$RBEURcu*RVIU+a_4yZnlX2Rte_V^6%4*t{^Y2IZXFO5+9IakiwOA%8Z8fZ zc7a7sOIcV{5H`K}n}VjMY`98z0Xurpy+E{qk{qbk%C7O7Lm+riWn9@C=TeOoZ-0NJ z>YF=g0fRn^{f4#i{V1lrAhmN2nmn8Lb2urgt&04w^0c3Mgl|>Y(yypQE|Ug>YMnv; zXC6!S%|F|Wk$DPZOBh*O%uDIk1h>xDPM3A~?cyQ2v?Dt`;oISyYf5MRh**E}9bv;Y zDal!>peA9;nrDDVPw*+Fd^0g&hPhYXv0^ZKsUp5VFE6Sh@s%YIPsoZfNKjav6|!rD z7ta@_Xr57Si~Nz^Hc_wTCs0W;YJ0nYkW19Oa3Y*57n8Pp(>UiumP5e?K>b3GeL}rh z-xc`ND<}cy1=ZxZZ+%wWF0pU6ezX25duKfBPXf(*v<3Md6HCj_ZwvhZmO%keDLA~W z?$@hx2eE~6!5$$ji!FsFpyJfv9zIfQwDrlf-6jnZOWV=siJjL3^Q0>OS)$b4{aZBq z7j;wGwSkilE%8Sq7uzYaWczL~yytrX{Fl+8jPA??ON&Cqjc5S7=7t05k+Y9ne@t#5iRCJB~5B%lnAdFJEM zqYCph*Vuqt#)(|fhb`G6nC1G90!*#A_vu{w)AL(q19G;swgfHJGPyatlnm)W+&-U6Nw%dKIbmZ)`pyHAd-u)~C29o)1*8v`YNF=m%=>5R zdCO`Fmsh@Rx~~!H@OpMsyO9%w^tLgTE1HlIb_f&Ey{8ogh7)Yg-_G+(Dzbnf-vld? zlIXIp_nw)|HL-ipcErP&^N;N+tN7v&`t~CX4^v2cmfsxD?_%dQhUj2&z32!$Eeoa7 z|JAVcr5!z9B8p>+?&x{*9SMI`R@{xmB0O?51vRR3DQxU(ABG-Z5JHvuPf2yN zMi@YFsr>ges-^m{wIC0wWfgIwPQ>J?2;p*pJ&W8zV*=s!ruzJs7Nj8j$l>s={NPGX z3sVakgNJaX;B4qD{)zd(G>Zz@-#8Iy9pmL{wwjGdj7h*Vxi8C4+SnTcXqgu%* zCxXG`0DU(5Lnep$fvnbGpj} zUDB~!7@f5J@N6xL85;vgWz9!_&MZq#RjE9E+cjGEIYZL(VYuMc~Y|}{;dh~797vdH$6uoOrTI`%W9zZ0q<+)J#IDqbBs&ZdVi5SgXMYa5zYFVq*}cNFXzde7#w@;@!RT4G}`kW&DM?V{LK@LjzXgkhwQIM zq!Hfr9v+oX&jkq3A`M&159IJV>c7jwdA2)$;5=HY0K$167|reBhC2!BZug3x4o0%C z=S=E}H>{VOA9LdAV32OA^z3;5eEH@ur86V3{n#i9hM zL%!a6qM6l`F&RWB^UC9sdcc1#LRC`W`#FP?W zQkd$pn!AP#hXTW-urmGCuJxGI)gFSP6G#cHvC7P)rBazO;R8o6lkHAl5~Q0*8>W_| zMp?j_&Nw#=iYXurdcX#Xyy`LA^F6s?(!6Gmpl!WH&_}wQ(Rc|1Dl%M0b9s4dk`-0z zl1&zncFJ&y85ucn0;{uE`L13(^V(V_xFB zWsQt4sQ4*U>z9-?ebMc6A(iwN(A-dXo?2I=pezeFSrv2 zJgQh93%RH;IvKB4Yu|?drP>&u7jR}OrLGW6QPccAtCm?5K+W4q^E)|UZOaE3+>((m za6ZBF62ZRi8UQLrhXhqimd`=1T0JiC_Vd_q;WvXDp%}jA%;nWx81=G!12;f$bHgsk zV|P1yg6g=RS6F{Dr{Gk#6pE0@JMAxiG}i*hDd%Q+LQes95)4%NhjyCg*=w-w4SsHg zSXtk@8^;{_vvcjO?w{$Qc3+q|H2XP^Sm`@@hvU zPd_~0`C-Wr;p|0=QORL)x0tnEjo5?k(3S!aP!Sw2bhlNPu^P%3^W?f`b{fvjtI@RjEX;3E2^70Z-&p&WYY4!g= z$j-2BE5ASXm{ho(h_82;u?S+Ixx+2hQG-2aUyUY9s&+ooj;_EhHXaaeJhi2q2`hQN zBUfcHrDDZXFdtM!KlUa5dHmo^Hw<#@OJ0<2U?tGKno-kq_z+mva;NCRuHOHxL7+&u zaJeOka~Rqchm)n%n!o1m_ z?3G8ljizwq2vcHlww#Z^GMlJBDb^<>61bidJ`j<>l?6x>&^&WW@Md?}|4g38ROGN1 zj-&cq&3jcpE7C;op0@H{7Zd4A;`k{3htO%V`bm}_oCf}HW|xz*iO!??_-&s|(3N0A z@oo=P$gBVU`jk7?$%vZB^>gI?6%682y4y`{wnI0RL+j~5^rbbOqbqWx!=!qBx(k7O z()g9nc2zRZLH(fjKxCNF>r)u;n*LV;?7{jlqRLwa%m+(ALH@7b-@WT-XXJFGTV#Yi z4IhN-aRURwRWFMzT6M1t$J=%nG(U>s3f!2n5|Tw+Ehv_i!zxOBjIP=jn1?-L?#)RA z-*53PeyRUyS1Bu5sf~~RMO{$n{_TS2`qO-v&prc#&o~bJ`F`+CoWO+$!)b$(&DL7T zMR%GLr;pdO!@TD+?t~_9;AS?#Zn#!ZN4+Zz%*yrmgAEJS`eVs?E|#o>I^rgu+5qEX z_#?hA;sG|hxy9$Z-5cY&E%SW(5|%v+UkKbu_Td)th*Ludr9@ zy%e#YE;a<8r7IJ>UubEt*L0b(_mdTNTwV)MmzN2;ka%jCLk!f2>F1M#)g8*wJgZ|W z`l*|c(^4m;98&f;!YLKse)*?P)k{7nYK+WdI8oDMh1d1`3F`F(Ilzwn>&+ig8mj8` z;bE(Gx09(ZhYK5@{%UUzWFHSu{%Q5}bB&G%=ueK|j*hxTE@h0a9tm4N6)IkRCsxF?LodG0c)Mz=vp{>Kgd zMCUErMPiY|y!1DR`$f$tiZ~$Az7*QP+K?Cg*UQ`biR)KEpS`T|Vh3e)74aII_sE4j z1)5N)$FzrJ+ReLab32oWgEk#$1F>FEUBi062LsnwzR&BIuC^y<@4JJb3e77h4|9!@ zhtx@PX`#S$Sa{~#xl~5X2-Q(wf+&73ZU~tP=|S`e5jUA%$}MSx{MS!SY@hDZmu3M` zhYev7SaIS~ju-%AI$&YoClYl*imXivuD8dXjz%rv<)s7LDdC+V;9q-M=!yRog?*g# z9;TtA+Q;e9{&nECJ%iCe6x1X4Xdv+r_fLdpc=9o#Vudu@IhdiIRW+q@HQ17^&q zNYoQ|7vyk@kbb82?U+@=Cd9E>Ntj@99mqf zOA7)jLhBvT)dXt4EhefAU;t8^Mr;?He8S=Aq7K}wg&tHglEhN^`{^9px$36$8e`?W z9ud_V@!}jWaP&YALWAD&62jQSVK#MYJSAuUg@eLhzo4@}Ad{#OWhnsC($>4qNEnX* z^WHG|1%)~%i0aPPco{NC0UMGL5Mm5+3_?K!T9NK|$8%iIhxs5wj*&YgVZ6^Czoq&3 zy+Pob@$q^BG>*Q%K8??|&*}dO|9eTy#DGMHlipx<5*1-whNw}8jYDmz@2s-BPzil9 zmGLlAb#yta`XC+!0a8v3ZMe5M z&oM%iMb~kT16=wRS6U8j_FtJWB~IT>K?sw>;%AXag0aJ^nH1m&nsw_Qmqy&9Wo-#xup%i;i$g{kVOfnsi4y3ThQoO@RaqpPvNcI=~q(0W}MzK@)giH|og@Y`q zs`7fLr1Dv#N^ZHXDWZ&T7sDd5+_Bi-H=d;Mk|b`gl<_7Hr-BD#@U8gD6?{cj8lm1c zEsI!F0=qFJ8>m>~!U^q$FpV{NLvFTNAdtOe_bL9AO_*C{#( zLF8pRW0@sILC2R?AIggd10nwin2dxCtuAn1Fb%{`*)ss>#rEq@iYY**FTK}iEGwE? z%yVA!9oFp9yC^t%-35xd(^!nDBsGhfkN*6xxi4?@;%F%|f3N_4W(OI)9Lz=b_lMxS zLgs)nut;zxSA;2fccouQz)z@R&!lKQPK4rz#CeSQd}oJ!$M=(@dnn&PG=JnOlmd=# zRiA0Ar^gO@JPw<}zDkLFDY?bmj>mGHr(}|{ejR6Q04Y6(8%w@uwBGG5eCu@@M+UDI z7%Vhm;2=7dl|cE~%N+SXB^j53z(OJyeF3gyEw1Dn6KRwCQM1u3j>sEh8H0JX_&)?} zzDJ4!_V2CCE%xg{ukTGd4m*eoadEGi6E6R~`7r*YIUMf=Zb^A&npFc`4htbgJ_ot% zH-@0T5M=&%Yut(V8_fCZj!nzn!8d^2w$OFlsL-t@>t$c*ZOI)p+M=YQ2WKWd!K2qE z5JT@p9*gO4!3WyGM9N4hFFwFRxyDL|iZv_7E0c+zv=B+UPiQ>Lo@XY6Jl|qtV&F^p zqBJeJ1F74NvHhP3pTSI**Ch*+Vhwz%?;!uVbD z!j77lx5B$waW_pS3ygdi1X51!_}JcQMzlXMYB!i!U!rq6Gu{#_XN9vT5*48Vr0mHJ zr-lQ&)TJ~Pg)?WIKukoOzR)eKT_LxU<%VSL^ph#1RH2UyglWME9VuR>{2t7+<-uoi zSfg_&O-2J26C-Fll`jgaN@9AAFguG=2-&QDQ&?&dzqZMPgJA6Dl5A_FBbl6_eZI4Y zr?k-8LmM*@az3YDJ3JeL+S9z8;Vp~&qb*0YaRHGHpm$!2!pO{yaYaOp0B6^@)7z(u zBM*uS>wX&9gO{(C)6-1ivJ-~8HKY-7fdbi5U4E&z6Hy}7AOMRAD=S-E-II&zZ6L;H zUGtjwq@;3DR*%j!&LM@#0y4Hp>iULRJe=KyZuY32gx#vRkHi14#1K^Nl<@_On1sZ` zi(c@l;%*jib+p)H*v#JJ3IZ+?J5xrqWkgag33mDpUL;aml~M6mxu)>($dwJzH_ z1cC$$5`q)l-95qG-QC@t;O_43?$QJZ?h@SHf_vk4X03gmeeS(H{Rg_Cdrm&9sxjW; zQ{=$-8O`BNaBIC5(|gptzAgasX$oh`^BIbpw-E#~83Sp_0Fs(5$4}(v1)ar^pfzMZ z^5}MnJFn(A1rUA`V>pDnA?Nw>hQmRY@Akw>^?pA51exzQvZMW}r;mO=2to?b0%QWX z8g<(L6_X<8E(DRwvL;Cgdw6gGAOMP_!ORdlt@nQK5D^he=l&FYDMR^3>I-wJO~z;bO`W@djtN zxP2sSrGl83JRY_T(4*-!WNjobXt~z&w(vmc6F$d~spVJBs$+_zCJ`V%9Ln%*uQIo_ zHO>3hgiMzaf9~;vQY(5RwP7fHv*Fr3YtAVWv2`i5?yyRyn-!n5^B%%rWpNoW=IFprb)Q91kW8 z*E5eYnW;WAqe=*3LtZ&x{^qZK;uE(krDexxm7lFw%!XY>RZ%s8(5IxED&1LNQH-0cU) z1M(A{FSNK;OpHezet}pB;5#oNZ%NXzi`aw_ga`QilF09Z5bp{7Vp7>z>VUV=-Oc1~ix*L**y zE^@lX##nzrnm;l%w6`K#T>nLRk#hp-m<-hnJfy z1wsEvDmftgCcsz=Mjc+IGD7rc4vu+vW&f!_lO~db6aH6xUy`u_Yf>>l=)j(7!r4PJN#IICdaoFcs+q z9kPI?_>8V9?UNX@Y(x~9QT7Ce^YNS!U>ngx=AD&i`Nm}W@~knohvWY6$SKtc)*$QB z7%{EFUmhm0oMIS=akFcL^W6_xmiOTEKv zd{1t(3Z-_95fvSMZiX^6la{5TNh~=pDFyPP;B@CrcH=#9`;yIK9Ahwh6Y-GZ`$2Zy z4y%DocE3ZH@7E|O-|cWRg^7kPvwC$-$jJdeW&Ku?1_yutSI*>i$I8ZD)MHu4KC$unO9=n#qcq#E;S_WQim$dLy%txvTkW^at*-*5{K#*E#<19*{jM-t6V z9gnuvpb>M1oSC7~vf>B(Tiyt=YIujVQ^vN_pK`XdpfP{ErxnEVboo@Yqki_&iA=F% zt%v!1PH|djfl~~tzsPl6RPCtiVS%4hd;|xJPi*i^m0tfU z5lgDml6MYJaxgk_h|0FM?ASk)Ri#R=e`Btj&U^Wfm?WDd2bwwv5CDvfj*3f3^%*e* zx#ZNQr(=smVGBDrFm=7XoVNim8G(?@#OC-SuZP!$x?&%S*>3VTtVq&uUj}M5r80KzsU|mkqTAEk+bnTWVl98mO zFdp?wnD`!yE6iRIOsTEob}XV9F`C%u$XA_>u!8c;Wo&Z15zNP!sJ@2tcemr%iCbHJ zq?V<$L1R*fhws$QiAW17IvLKOsVsQFiDU}D#|~E!(ND_@`_GDdH6-NseDLWq$4Xpf z4O{!AHKh^f0M`$M;<8*lDp45gJ>LS?KQ39oE9(7LKW;m?v?L)k&Z&Z*c zC^(-Bb@RKCCzQ~$)2Wj0?b)C*p)nk{W6<(CK3uk1u_P`OjE?o?&v+~9?7`}KU4E!g zt=ad3!T)hK%6ic4_r3>TIgG1Y^GQ zoT83~uy+Pb33@aqSx|?c{o!HZ&&tGf4P+PV_b;NRdVYM_@Hp0Uc#UjOp}0xwqa0X= zM&}um4ZYaWwtsH5QkK8TQwouapy64cw0$dVNg5F09%sW#gWPFJjY zDrR}Sl_X(Y4kbGzJgh7+GbOE}qmP#lSjP?CjVAK6d#_>2ddu3B$olXO&E6jR*@rjz zP%J)P+DscS5pPvi5QI}A8!&(=Y-K~1w#C&50b?CCr=+~#LcpF3Ze)q?{al)9jaw=g z%SwUYpc7SY4g&*d`230(SM4X;ZX_F>k_wJqlY)A;x((`b7mj1R8vmUt8x=D|yDp%$ zO3jvN0Br#Xtqj{I-s~uLZOqK{MiMDkoo1x9yl?07dZTkT5S1&`FP6EG<~>~qdTk4*>+#I+$*bQE1y#L zo^Z^aA1|O*ok|;LO|*uInH7hkx$1g020uHz4Jp@Xj|RkG{zL+ z&GqP8&+9@@EI$OyT9Rl#G{{K!e~O5EY6;#lY2UtnGc+W&Y2j`> z))beKDXy)JEy?x>r|$&6k2x?>@wnP?ZIP?H@@6BL)yKEzWM6d#TnoE=Wj%t`CJ{{#`&w{rTvd9~~r+PD)BkLj#=Y-WPv=_R_$Z z)+fiXdsE`jv?$|p`;nhdgp@d^D2m@8YCOY#35GmdziGNCyx4K0Bj$oC^|`!_H%5TMxon^b*{m5E4O1xA0ycfjK|L`W z=e@^C@)S*}1;mWypDB!y@k?MTSbtDz1dT#iL}3Jc_uF+eIBnd%8G#}}wD^hAuoMab zlV$Bgl7-}*imluo(ex{dYa~#GoDjsrvFvTOLu>Z=_t9lk2oN0D4RFnvIQTC3d}MCx zqRwM(OQBKki6@nG187bHAs_jfBEHb?@5Jz%0Qi^-;;i8pMKY7WtPoiL3qej=0h@}s z5#~vrUch`UWn*Jwb`Qsm?%?X=#9*_^(bL=ea99unu$PR0U(WQtTgqcU%4o>k*Cx2G zh`49E?axSaKKt~Dmj=DiG3gj{re_%7H;PZt{pg5+a-G7@=X$c z)MwxZ#Rb=LeK*Y%MLK_APOPS3z7&=mRNf|H;x$4=Q`KZr3AJ z3Q}$C_WH;`%>2dd&bZc#22~Ed3Zt75-xuvqelBmQ*=|M<1lF!{rq~1B>Z%Si(kTv% z1Q(mDvY9`#A!KzYQ;(>ua;&zqK%P4 zZ7~3LVsMaK&&@310w6@Y+O#4 zg}+N9{%UhHuUmN-)qQnvGa0gv3m6Ljx*n;NKjzURFsUX*6X$_uuftnUmhkGnLRm&% z)Ho0fstWtlgJ^}FD&E>Jxw4FRvPc&9aIEV77^Lccdv}RYt6Y2e62;PL)o8mEGS8G< z;d_gm4St%_%5Dgg29=we-|JP-ZRr_efkJktWUmO9GC9_)XEDxA`+Ed#zVHp?yj@e( zth;iilq`cEA8N{&OyWPy_>XJ|DXPOy;OSn<_kw8XEpqEy@hS?k;>F-G#Q(IxM*kaY znu|fLzTbBK=Ntd8H$*J;FW&)#TzPppu&V>4kH7FAfYCq=n5E0gj#91PBsDd0ZjFuQ zRAKzyX|~wx0iJDOWu&DDSPNPp;Aw|$UWk}H9}K{#B8+4F663e8l1?>JW^SHmWJ=yU zNg&-`mi0$l^Wphgy7IvS@_4~kuXn+63H;#DY_lk!UxM1j7D{c#_gT(q=QTED2gh4`Jsz2;c(?gAS+dva&uOsHyv2`GFVyy? zO9&ZIQyIe-J#m+pYs=)W{HIMkQcs6fVGxCbs4rU$l8MFk1qOy`Ri( zL2x*1v9L|ywz_cIe@FL!A6v8Bv=$D&y701WEG)P-id0E`{rz=zTLLCysndqfb)5E% zxSIu<=XsBrE10a-L}-dmX6Q^lHE1j8AD%r+f=5!#JM4Sk{q(#p|v@vad6zm>bT7b%*_QCpdrG zw`CbWmDM-q!q|9s243MnE&p;|BC18QS1!ite6=5dsP(w#otcCxleyc!b7$a4RV#!o zcj}&<(yV&%3kjaHs&4g0ifWXABCpOHKK$8;#rIfjy`g;aCqB7_WjDs ziOW4PLb4KK?#$5syrbcmanEYpJcxzM{Vwn=Oh9zLb z_}5t73gDwi#6#ZR5}Y*v<_}O15)EDr3k##s?acIfdCZ&66#HO-wKNz0H0o% zXpi*O{uEvB!RYJNC;a=6=4ysY-S=&WMW;1TSBK>XL@^Ot_4=>pn8@d&u!vzctAp#O zoUK#YDkz^<%t@V;9>0ULt+XcNS;TZ;De+-eRLbRjScv^QKX6k3Jd|z6rAT~ye5^5+ zdUDsC@I=hC>?LCkje0WNKj+jS7dX>Tptb0gQw-lP{6rz^gME(wWPW=tr!1PxSg-+u zO3gyf4Qrn{%3o&M{}qq`k``cV=DFyG1k}*@RVp}K&%W@Fxj!TKM%PVG7eEwc&A-c3 zcfyBqeb><^(wM@-1QWte*PBc?DgYG#J-CA??egszre*htq3oyAiFWUP62bLdIWLQc z6O^Gs7>*Z)VsHt=Tt`^OxnB+eQrq`Cm+kdi-Ph-o_vtVb#`Ct-JIgfmxF6dF_nGgl z(4uRSFGfr=N)MGb;UWfq+akE{>|glKpoY$>)ZGokfW4%NCvv*RUznYSEb+J2=VT=E zi|a4$XJGlY|IGhgNlY96-mum!XaIL2a{+I@RU%QPl5->xhb=tu*W>F|Rk3UzYww&YOWMk~)F7LVTAXm}J~PkcPq?1q1RTjH%{ zazo2Jpn4Runvffa#2e0KkP~OKaH%ZG9|)#DXCfmBC^m<$C^yoWEz{y6dJW~K`+F}o za&{2g076>-B>;=mne$w>l1o?nDh<*@z3`C zzZN(I7hs~gfU*Fqz9ImLTXt61-rfdpN6@FTm@Am2{NFo(za8}7BNBisBTdl~06vr1 zf;a#=5)u`S5U%*|AN}X!OxTqO58=T=m6n(H961HM{FhbrZ%iSOGcoj^Oc2LQ=zpEa zAv0U{2KVik9{?0xUl`pvIixmYzEI$NC?G8@k_$%a{Q|3Z-F|q%AxF`^zmPpv=U*SG zp@3S=tT%rs81n8DEOc2@6UtXNg&4SR$)IRsIrC8Vpb!^=`IE-&3wPKNrjPw$1jkbk zieev8rBO;fIbGk$O$z5LopLT5 z;4wm8uUW0D+@eBncCrKu)#q?DUOCr`6L>J3A`TWt%0z7HZozwJ+iux}-jNbxZhIJB ziqGK*Tq<8F&|sm&*@S@%C54Ey>ZV61&1ma0pNjHnQAYz@7w#dSFS$#l;DIb{S!xnv zB9tPBhVdjW%O?bd`RTsuVk)XiX|p+tL~^v!QKr`)Qe8t(!9pdmR?!G}4jLRg|D1Sd zWckPc{!9O!c>n)PEBg`~z{16)?vVTA_XIQv$I(|5BNFsLODQczJ)X8WxI9R3qZN5h zvi12#Q`tuj?eA5AeYL3wWaP*s%tXbaZ`s8b*=wDsNx^5`uPbBQy&!y;w{e5}iti39T3l<(E$B0FBw$@8W%$kO zrM?AUGle+X4Af4o&-A!rIpkolw%vO0rs#Maxi$mYu=3^~Q8oNy#tY90El7*zH-SiC zzD9Y_`MaPDHv8h%e@1(~gNliT|CUBkCb-SB6(q~GRT z{L!`9j<2xYy=-zRugW8i4%mP|%(+-qB)FVjAh$#MUz3D`*d5a6kM$|dQdb<6CNl)5 z*f*qYWM~-&_-#aRSzYt?6&_xA6~#txbFhNH*UAnQ?9g`}2m-pUFSgwaI~=U@Y7eANu(d!1#?o^)P82|V=7Bhh=fjz(T+rnf%kg1b5@*HkZfy$OW9ZkND4XF{CkX-b^^<4>qv+v4lt`pCJR z{K|$fjFwZorC7nHyqNV-b`S0W!Vnt*gr$JqgW{QEp`sJsWu8XaDv2od73Gx2R*AGg z1h|p!z(B9E!CBAcFFg0+l;Y=g}7PP3=Pc`ZmehHbpOru3P_~F<}%1`7J`);#AVBEmxEjFVu46Sv0 z+3WSb0@`d*=HYQ+SeG@a#fRCi0miJ1UTd&iHD|9NT;;A>+Hl~!X0IJ&!r1XdrkTwV zGWXl5his#t9*Om?_zV)GL!%$Ul;6kq&AssEwkqBeG2(nfLS7reQMWUBt6Q8FX7f1k zPyh2BA#z&4S2E~iFSD)Al$ydEamjN@7GVF(L9Vw_$G*&13gz)>UZf3iF>+(Lc_y8Fi3pHt=arQexnD6M;wJLQChvaK8EQUX54A;?z215@yXjXY%~O ze@s47e2i=!)1~!%%fATMtfoKrh}B$(kTP@%D~vI43khsyuTkf&eWTo@2~9L>ahdnyOrk&DBtp>pU{-xTfHJYISi5DHS`|0KA1q{MG+L7MLFa#YG)CmSQ<#pZ;CAZM#U3>ghk zRmq#h3Jq<{P0;4x{^=G#6*(=!;#SM<{;fn9r&wg~erjp+I~t(JfJ1d!s$0eliOFM6 zV?0tedoQEG{X&uCvQ6b;sw`)~Ut{FWM{b3?${?yKvwBL*b|c{Fi0a*&FwT5EK7XN&t~)WIo%h>|un8DKyikAn)> z7)weffh!`J-mhkOPz7GCV2^B2{!t&qF)b)Uh)O?ba%%p0C=sV3hRL8S@Lr0rZW zZh`0MI1u|KBUrwwpWu0)PfS6To50acyIw74ga2Q-k>Ee`-X^Bj+(4O2C<>3?-WoN|O zXBtY(bLgXig|AXF<8Y_1zr0fj?_>C`Er2cy`(tT;bMKsv`wTwMZazS24S&G}m{$f( zuQlmtqGojYN=5lxK1^sz0cq)-ejcLmb3qmAO<*{awYo&23>?*K3qCJ5zBlkV8V$YH z*mw)w{xR>Z()mNI>zg~}zi6}U4ZaK3<9qxaFg}cxd&ue03!D)`-dmjacm;T~>0#An zhxYk&*=rzXnEb7NrPXxF<8DSiVDZ1pLXTR{LJL@?=PtMbs zTS}GNMMGMPjb`_D%6wf88y8OJc31YPR)*>CsUY4Xm3qer-|LPkAM7Rg&TE;hzH-!{*X;AVc6L8q6Bu4f#@O|)K6sfsPs=xk zlDg^)_dh)B9>kFIzd`%lkLa*roEnWDM6|tB$56U>fF^WBC)tn@0l!RQjILXxvSs#W zxNg_*$WO#Yf%6(5xWMWr07$m(hmD*^U^rV95WxQuWB|{6eB|Zhmp)aY!cOnXsp?Fd zN5a9+p?D_!8(Q|nBtm^WDy71uAPJkTHH);MJ*DF&wZ1*EEYsJOL^M7{Yy_PIn&0k{ z8zo?41jyWuj~Nsdex3LfEpsdViF%aDB?hOZt0I|Y4ee{vM^cX@=%T{h-qYQ0nza4a z&gd<3^2_Vr8hXQ3%1oRD_#Z_{^{26s&e6UV$>pk)Pfj4JW(!Mr*Nq{1wEGJ%wI-)t)K@+- zvB=`^atma?QyewLTa=u{lY-JIznZpWZxnqBRu!uG6TLyC&+6>-yGtow>Mx@0Z(5QY zfNc3JxAos_IiCU1!rHUrtIrAo^gC^SK1!4OM;C0I5+~ku(E&ZW)rkpd(9*fRepA~e zUb!~<&DM2mt%f%Eh3-Tc3H{PB&1FGA$Nfzn%T|_l zH!VYidA21YM0YK!f%_+0{~%fki@|f_4{dw`m2k?Hg2G~oh}W0A7~ME8$tv`!*UYGl zat5tCTZ|4ccFUU=Q$Rx$l-<^0>1G1C>NYmmSL?neh{o##d6j==sMxe(D3#MsK1F+c ztZl*J+%Sc4q_jViGXbk*eUca+xZ0$*`inSu%n=vGc29a~{4XjMI9*HUY16dte4gg~8WKlZ5H`Cf6uqfO*h92P17>ix##J~9+& z;#Br__a7bdML|g{N4Zoe0!3^nvxXc6I(n1RwfwLNAKg;VAgQLBMtzX8nVFE2YB z0)o{Ma+sF7x@Jt!g0zVnPp<)Ubooq`3I$`uEpLylY`17a?{dMFvuc!m8bcL+lfW<# zStKW0nJoRP;%!d)3|g8|3ZlP|PD>ReX)|Rx{kvhxg^lmKo(+K;LvoY@>mQBRfE)vX0ir5837E!W41$M7&H0k8hYsM;C4UloZ#@Yyc~*_X5rx zVd77LOv_IcRd)#L*x6MS2t+hjQ2=98Jcz{mlc!?w-t+RD`@|d^#y4 zh^pVzr81oP4zhUt8bSsQSCm95i2Z8=zsjSqCZ>2&s&~b-o|qXG`IlS6z%{dOVX~&e zDl^}5w_Np`eyDtK;I&++Hho#JqyQUy&}6qMC{+~hPL;Tu0!lG_;f%eCp*&ZY9vS8q z^m(mySf)xyy#vVldMY$;*P^q~@L`a_j5d!n6Iq-A@FhlhRTgM&8ep&_PFNsQMd zikbungUpmIPIQpxvS^jmHQP-%G?DR2;*RX>5b?9wuYO;thR&jXe9X|afg1M8z#e?lq4 zZ$;q!Q5ataF?&r&myJ3>ODqPJ*9K$`-JWP4fw8cJH3N8ylA>DlB*{ zDr`^sj$ii0fvy0JKw=UB+T6;jZ|734Vad$a_PlN~;dWlr*8c6~zQJfXeyWgSZ&X@S8R_u{$$WB6D6$O%jqe zE9wMUhKQ6gYZn#|J0Yz!Q7V493jC963=W#eP&+YEwazEQe+!MA>Fc_{(-~2@<{w4` zyl;U$!Buq$;TkY_O~NM|szUP0@2W^ME5`sFCpITzNMEEI5s?6aFao8Z;xKl3Upwgd zl55-q0i{?6-!>EzUcL?*RVr7m3~q9a@E4BIo|FE9r97!{JXTqEF0{820wYRYU$cuI z;t2TN4JC_fXC9MxuRBo!z6gs=?{ z4df1nhQI+3{%dIRduQVW2zTJ741|rqiM71)K%rEX7?rYtGsl@f&5)mjiY+I#xntk? zGW?i3?)i+mT#imPhK*-(8fOm3!xe5|mu7kmhr>fftK{li+S02Ki)Oi(?O{5={yv#L zvZ}EgOOZfIyX5z$JZ3zk#(?@rkvyU~)H%a0KfQM$8{=`x5J?|Dh%{kjl^@%4zGPR6 z61$Ewr5M8wF}>>54*F+_uJf_dv=2&wf8Z7Z%?-GXw#JE_v+Am`c0Y>yt(+e_LyQw+ zDQPs0OB4Yqu5ynzGIBY;{=cT95=11C!Z=g2~k!aju&V$T=UwWH=Dr(3`NrU2u zMIG*zOhe8vfJ~#Q>4Cj9Q0`Dq28x7)tgK0?si{+I&X=B-su*(Un3JK$1P62X8wW4< z8+$MJy1VB)NkS{si`u_sOvOJVCQ~%tv7J~~DYZpEbNa{4PG7e^vcGM2E#!!Hb_CsH zboAipS{0MrsKURhSXAIVSO{`_kqRTHY>tVi^7{&5`!1&IX}s_F$OBEmQm$ea6Cg#~ z?_9#fK|*-pv*RbBipPshU;>^*o;eskW5XHD?GR)WGp*Qf(ww6fn&RSN1A0h;Rl`P8 zi^t&ONQBf2qRgwoFT(Yx-AD!G#@f*VoaGHV1BF z2)Lrbn8AhHhA=&bZ<|9oHsEKl_jjPD%t9DYZ=e<*lK3$4?bFiE;AslT=JF7Tk$DB>aHK!NoT0r31CEh$xL+sq2(_O0EvYh5d}^uP zY8FCPPLCX~-J)Nlg>m33Mi@BBE|$_xgy|jc1ldlDy#eQ(BE#2BO^3 zSTDm;hm$OO@F&ZlAYN7#ttx4yvqdp|2V9MS?AlqWNC{eT_%8~qT*!hqP{AT?(^L}f z){fY{A(UZ%*h5cnal}Vzmca77e6sJ-RWDyFBHV9|nr2;mJ8f)c@o}7~ho%bWUR?MH5fia2U9o5>w++|w z$=G?5vNAuHYSDRRBp^{aMJ_X4s6*j$oaV9=6G8CF-sg6$L(?KxO~&-wEPDueq91{b zyE3yj+11TglNaANcE9HoeL+dCEJh@UFSbmOuf#(VMcK1zvohcP-oWOkJ7dK?tHaGz zLD;8kq-lAmRXz)Ns>PL~d`h181roAa`mCB%0Zy%X1r1dP4?u?j-#RpHXQ^p_(TXKfE7fg&g}**!HuFicK$G6G{^~9Js<_+QR>-+`{gq1hl^R@c2~^ zyM+LycI2RLvZ!c|f*`emAPz$gLBkm=bO2CMQ8H&;Fg@+=7F;*0{iiSY_g(7c2{JT= zMS0%LY2X>dm#-S8A_YouX5o5X4s-`5(VMGdD499D@ez)L43x(2=(&Xuatf21- zBHcB>;t77nr*xrya!Hi02L)^u%rKTFdGm|QTXUS8H#~GYwpmTIX+8MkQQ9MPWpg7q z3ekOe-FG08_;S5XKyQ3jC41d{HofY&gL(CvR%`?|QeWPv&_irkY9N1N$KC7vV$9W4r6P&tX?@bCvyI&Ay)vVZ#0TMGSMVtRMmG%q z1?4NCd@orWdNTdoV70fxbJdp7`tlfKztN&&)cZ{o*Vq80xh=aJ)6nRZ!qOe{>*)Z&<$`OvnQYeI@P8WnaQviJ(|%dTHx=D@ z@k3Mo&>~H;zT-yKR;_xi27Ocv&c9}4SW~(s5n@(D=HZWNY~=MMapyO+g;uC7(%J*3 ziplmXiA9xI%n^So1>V;&WN0A$MuW>mI`XB3KytLmu~}m{41=q*FuftD%Arn2LAcet zT$@H)+AhO@FTEau;vg&@AOHEd-rodsIQ-(3K`Rbj$~8`;yF7Ks z)lH5BOFZ5#y=r%Hjk32qb;`+G4K@p5IUzy|X^mWbv$l}0_-HIVOezCSIQ}RK8lYM9 zdZZ#7V?xKry@u~^7yXqSAs5>6q_9XAG&M!paY)I^B5P}F6Gvxf>yW4$NGX2?q|h%6 z0a9dWKqFB=5;zcv6)?DyS6v+qd?g^&EJ(VzupQ4=6#($1m#LR{{zN$5gz_|IEXB+q z&mj#VG7#i&;&**>)`pZSqtjh4hpPrV3c4%DDkZ zrP-VwG*f|NQHY)VbV4^ao~LyESbd#f)_d!X@%bhq8QkZ#(j_sn7Q z=*{DrsywaJ3lY9V+Q=&}pppnCoH*vH-hxaft*_7=Fsqj(mKAAREyjIqs7=Lc7>HBl zNdB{=YJd7WEb<;~#<$#4%mq(fohjs_|G^jyqgHQAV1A79SDu=@7HK4ou7tRsKZce5 zal_NFhCA`~fmET#A-m1DT14F$8+<;EVd?9UvI$3oC36842Z|hdVR7}l&G&g#8NQMM zNMx)fu&I%(b3ZcBz@WDoPCc6UJkiTsc8ACIss8>7m2AvsCp`6%;3&t2KV9NDbDJCtvcnzsDXs? zQEkMCV%^TBJeTKFD0#GU0{Ve5b8+F1)ku_-D82(0?UDrogPH91#4pq;4Po)mRs%_& zx5X;>x>DUC36a4oay`INt=(2wFW>$WR zDTC7p;B#@oKRSQoeeRs;+T3leG$7kglv|k@A++W8b0hIy{<_9M;dr31KS9cDyftwx zN`oO;U1r2Y8j&=%KjVW)j&)>vkZBku@P5&qPla5%fBnr z0*I*bJr473#)$z(V5LS=xN?Pxyi#Jl#O_1QtvUYdsl0{PoY!4fP2PzXZ7JAB0-X0? z&-YYCVH|;R`HOpBp2Nv^Qe?jChHc}mA*ANzDj;&QmT_BhQIDE7ird}#NkzwFy8kw( zD@~Z0N->5t*BeGu=k0@|Z_ap$joP?0bqQlLjbk8#nsC&k*>YXl7yOrxP5muQN6YkA z)9Odpf5*X&`&Q9ypa5aDRvm}2r=TDt4x3eOad9xva4i82jZCir@lBd1etCc`d!rF( z;eZ(MWxXv8e_sZ_cbxhQ!f~%FmCx&q$tOOSpG>X}tf~_k1A$j4Z{?Ye_R2+_ zZ2{-6ubel8IVDcqR%1C#$xSKaBnP}7H#guzG`ZX#qpVM=ZKdem88uuytW+0OZr*q% z^1ckP>1?zS)bK-fUo9o5v3W8j2@k4+g#Qj*kx!M`@tsG!J6w(I-U)VLW*4pvWlhQK z8TUm{As;5Bk`rZ3?1zQYpVx4Yj{Cky>pV?ucocG5>zrO>CysyyCv{FW$L& z6#V*S=>aLn8g)D{VfcMo&Ea&g{#OXwOBCeK@m4Dpsd}k4@|fenaq`jq-K^*W9>p$e zHQVD|qEw`Hejf<5`UuYDg<*m_+in8n0xW1w3}i?6@;002lV2-V=Dd9sh^&o)F}GN3 z45_KwBUv-5dhF`p+cVXrHTOgzjSa^~>cNm^Cy4IYp~lu$*Y)LJLG(`sC>C59;FY`< zIP>0$r6XS+39Th9b<7n>rO7-3ob!J)0P3Tm9Up`sBhuzYF zbDw)|KH&7K>juI8!(edFJ|W3mwj#Ilhd5KJmXR^Yo}0EeC$s)@Mz6F^HQIHo>(`K@ z)!u4T-^qo}Yvc}i6=t#)z1<%fyZ&)x>UoW4$j^^0Z<|LgIBoqaj{r(bEp(^euc(rr!Utf5uf8DDpV=sFf|4eM-e3n;8p%}wozFVe`3>*kO8 z9IO8&CPsq)Z(q8G%2@p-LwTv2e&QRE0I;FH*Yu}OvrrRXWZt-UdU`5}y8_9A(P8?Z zRF%WC)G2`*KqNWj;Lr>~;)J+1RhKqqq=v^Km8^fiLX?r3s4Wpjoe_#%@@qp_mnPB% zINlsY;ui0gxVXzXN4aUJ*~BNl1~FF&&2qqL<9JEU4A%a@VW1u!6i$wA`ZkT2)moj8 zy)34!lH29KYQZGGEkh?j5Gop4O0F}>;NB%gZe{Mk*v8U15+T3NWCOl{dFbJlq-e)1 zZ-tPOq3DeB?0WwGYQC2E`hhQGD0L!pj$qewqca*#W)yaA{)H;pv7g+hr&u*-Ck{l$ zSai|KOlV5fzu=Rgy1qEn%>N3L)8@fMyx_BBzc;ZJ{N^3i)zKWavFc0CE+v-pPbZPd zo@vYsi$8Aq*EX-6`sBVFwF$mfOTFApQGxm7o!|a8(Sq9QNx|RDHiH#EiW$8Ow)6QD z5pom>R%jM~foSZt`W{b`Z-J|$bl3pb=*SC2Joaksk z@WRP(0|i2JZX=B2;r_ymgx{Gq=b93G&>+Q1A4B^okRm=<`g#iXGF%My0JjsPUn-0{ zB#e_3^F^2rT2Glq$ppRD<^(rx|E6 zE(srmC497pgGfYuDn;V;o0wT^&_PFPnn=A2a?Xh343Aw`TL=iimREF!>je2e>~PZ{ zcd$T=No9$pask}`=Qo&&UgYoCj~+E|<9Kf)_FArN)vD!k!Zve3USc(1)wFZD$dFYU zuUTi{Y!aK1Af4PB>E2ho|6+s|J}ziugYUj%qeYzcC7!@4j&_mRVR&Mkc=WW}Wjb*R zNXu$r=hs0!#WdG?zv(xhRhb^Id${0o^lT*~8C;_2e*NcwZ>KMYtSkKK=}gSGawgn ze+j$QSZ)Yf@>gce`@{9BMxwsN)3}WbmoXf#5R^H^vThD6`7vMbVOrYtKShdiZXW|{ zEcxWt*2u__7Ox3LganzL`lXwS^7v-Dz2k+N_3T}<+`@{)SC>lCJbg?(l1a`Rt@1qb zjn9}p<*9b5w3wKI+w!RC9+_(YhpDfCit3B{MNvXZy1S(tNoi?NDFNy3Zbn*i=ne@% z>F(|hk?!v9euw|}t@qwqBa4{1Gv0gdK70RSZ+FAMF-UVJe0(&LBFUE5>urcZyLCC4 zEJmg)mea?*_Nd+mB>i}!^+>B0&RP73)Gcj8FxlL7BTnr{m;O$J!gie6w-w>1GvSf` z>wdN7c8ijxc<(p=;S!6~$;E4ElE=4x=a*V5B7)m7DdjkBS?k&$n4jk#j*P>BK? z0|JLr^eC5S+1n^_^WHSAQuexSeJXS*j!y|8u~dk8Gu*YM)ZdM_E8&{@LQcpXxWu+} zZID2Qwf*Lf-qDDy#g$05pQa2HVjO1-C*XuR@|0B-rAtCwWXM=#-<0R%`0uZXhc%n} zE6qM|GthwBA~F6a3l2?jc=LrG`!bxoV$pPj#k;04UHfsnXlvOgw`_CYMN=4+slR7e zSb;C{jdgjF%202QN5_OS*5EAMQLdJu_HdMR)2R?Y^kj8^sN^EzJuc zJ_y=DxRcc4w4+MaTdtl?(*6=G@g7HLFHk`)6s@~j5@I`tzH4C8qZe__he#Enq5#|Z z?-h!d_WnMvXi-hvM~ZX|9ENCdCsiTlP$%0IACWKeIj{b~e)Vet&uGt`^xNMtCrkX1 z)%ym#C;DYs(*vsw_koFy%UNj`0aH0*X!L9YUlz@A4~73)&l_X-=Hg4GQ&)I*O#~_m zKPyEAU~R#kG@gn5)JLq0S^3&)8?OhY7zMU5ifnEct*qdT4kUq91OnkNsJ@_hIl3HV zk>O{1HLSdh|44-p)KR-|*aqbY>joIUqP#o`1c;Ylws&_aFoJb!=0N*)*$g2$DvV5! zMm2y*U$?jJ&F8;ZPU1>DslAe)IYljuZ?0y7nMywx)EE_J7Dq>015pUUET)xV{v*S7 zf5d4^T6IOeAOC;W)%E|ft{l&>^6VO@j^G(z_<^?g-CPXsfvRy>!TRklhu)D>?YQvtQd_2E&580jgxL`_HcJ-va3$Bdjk zJ99Xc@+Fb=&iW2dby-6*x*9m@Od%OT$aMHF_MR1?$A>rl9(^zV(~Jw)+jJ&39${_uzzsjv#$GKeod4q+ioEe;dATewnhLQ%KdUp%Z^4ip5BeALWDP1IxzAyZ7pZ4g zR%ppCD?_`?stIF?bnRNFhn6yDj$dz`J^6Iq_mFwl>P3Qr7>r?p$}o`2?(mW8p4%iYT*u%60qMvTp?6Xd+r6G@vDI=Lk;f5bSN}A(P%VN-IkZ9?C zidt8GJs+qSY2>85KPa;lAkDtQ{T}*y_91SXMnfT8EdKLL>)WFs3hFDA`3#?Vxp=C= zkk@(oU7S>Us#Hn(E;Kk@|49F#nc%^(akY&#E1;fNj;o6b?8Arasz<#^&Lm!LsbGx#MK>BN z;>-xedkIUUJBR40QSxbOgL9_NWAaTtJ4>2qxGcpwGXuj~Afa`uwW2n)Q)PWaL)}63 zoa@f7gzfF^<(sXHEpQuj?p?e*2F~PDou>;O`WmH&X z!sg_j+9y~Z+ws||LhXk5DhuJ(JDUf-B@NP?OqK_@1ehlw=aMG|oxAQ(qBmXdtE_kb zBlWe+k&(Y>Z`oSV-bGZWUT&YlDNT%d8LELW$6IzzcDjH-Iqo-gMd9D{<(Kf{(WXJh zqksobx&^K;=&BUsAQRmE#kXww2W4^ocA!u0p8pz~@5zdTZyBCKOd39b!szp5gi&r3 z(A2_{Lgv=V;_+^@R>V{NbM;`@rUIjBrT#IIH4i5tSzRD#uCzQnr+tAN}I!7M)q&jxL%g6T)Awo;R+wF z;l3vB*LKrV7K&p`!Q8;&`>M6gT<=T`qEdXkYUAP}=H+s=deQp&x{~VG5cVACs1odf zjQ4d1DZ9<0fNIINp<27O=@y9aGlx?LbkV>$-1vCA2VQUt#>Bli?xlp@AAi-{JZ1=b9wd+&dIq9M-4Z?Ll)eovEW=g)nkd7rwm< z4nb1LD(aC^)cGzB8D*M{1Hm?Iu>qU0nK1Lu@ge$1ibD?}%GmT&jFxHCdD!3w4&+7a zf;?J+Rs$!c)!s}2N?N0`o)`G4@Yv~EGV?PXIP7xU1dAVkJP7uYOza}KX<6AYI4wFC z8o$<#OVUsmX{NlmO?f2apE@-5bS6(y-70-!`~C3acgkjkuYQYq3#A^EBA_^v{%DtF z?rWDM5jMiCkP^2KwTc@G8+ey99T(8lBHyQk&ZQvxGXbkrBt>Z;tf5^PH9ECP&7~ zgqqItSa)4u&+vP}lZ{w+^_bRh7}Rjsl8%kU&=QXMKSOPA6o-c2pxmRkRGgC3+ujO2c3b;}2N z7t9Hb*IGQrBr*1(pT3$QJ7uMYW2V9{m%!JY$USgtaWlN0BobnEYeVz^Q+>6FwmdJI zi0}1|jO#I)#8=-&ZI!SV+9jf8_t7lw&||@MsrnFxy)X!Mki!Sl9hWWZn47^=x0LX$ve3hhVuj1mH?S)RS=X)v#(uwZ#53jy?2z#Oj9X?KR!TxivYXjZSn`u(b)9j zz76lIJ;m>bx%(HQnL>QC4LfEwIlun+1jcjEdcj^%f3KO6Rr4SuE&|8r9vfX0)7hVP z8{_(?3xBW(;}x~8DyA0fo^l+Jb#C)t=LO}+Xlg?G1g}1;JQsZGR4A1+!Nf;e>4zHm zCBRycA@e01ko}$0)Oxp)ZR@!+66A2w$eS>-bJo|2eLSj%2Zzp;-Y5W_mFkFKlR(9hf$VuUWtnHR}8l= zd)}1|e-ROR0a~F@%vD>hfeU2(aCsio%{ zqH~QjSH)^R5F_xoEPp><4`#cq@~JM~8F)LfifWF#Kc4PAt$oh8WxrauQpRDrKR(Vl(TwEM_D_+~Ub~VAf&oa- zSL$+aR4aCJ3{2x%sH79+`wl{Ou90q@Q(yC837A9@_4Lr?Pqnqbgk6R=&$cXumqtwN za&_SURO4x#A*}NQ)j9&$Zj%;%YZUcLbqTct5yX*YD5}MHu>pPH`WswUIu> z(LNrHuN%?`w|ju?Y0>jc-n!{xvdwJ=ZZ__Ig9ReJ6t_AiMY?fNv$WYwX!G0`g_4=w z?XNTSkwBZa%Y8tzC)%VOe{>gWz{H^X$;f=!Jgg?E-ngbFuaXxfgUlJip-1u*rh%QJ zMz>n-#p&7{Y4_QYj&YyA5MR1mtVfGWqy?#0JT%NJ1*Ju}H9bO0=)9Hj>(kvF5lKs8 zSQh&mYSOl5$@E#RA?>Nl<6)$R=~{V%m4&^;*w1Y_HwJY5PAjdUEl#v8%{y1GY&68} z?7~JPxEJTQ*D;rBPPaQSKI1a2P6GHi2kz(2GoFlKg!!{~XA5`faO3n&jg`8`_g`t0 z3!mRUeY1}g%hC|U>+o&!s{Q6SVV^e(ic=9wXFOL-TKo&5aWzRtg1IMMkiAVQ;mD*? zV{Dgsj_}k?t9!?VC(1KI9pe-1iX`sS8pY>@Fw!`6Ad_|S%1Qpb7b zyu=Q0+b)5Lg?bGU%h#}E^O|$ze8|Iv@es?0=CZG-QDM;7620D zIH4%k{7F(IZvM{;({blhJd2KyeyiZSazw4Tunab6Kqzj7=L~jX-KzOwO=I#KS%x5J z=X;E_u4t|!gNfuSts4DzM&`bU4_^KP8*+GRigZNlqleC-O+xv&;lG?cVB7qHf=%8> zb#F#aRQsttmc^+(l|}J<^9Zf^28lso0a#JRNcn>jF0ngJlF{eH7DxI5RmE(+DXwXF zO`cVM$|@pje$fp83u4v8vuz?c84Hb*p&5)VF!HV&!owtIB zakZ3w(b61smKy|<#m&A~OaeSPAqQcE6mbU>&K_F@vChh)xnHxqg zxRNN4ixo7%uHI_HmO?i)qNi`f=B7b1*rO4v1yVtMhiZnZ@dAsbP$i|eyiy}w6%S|Z z1OO@7{J?VOp8S4v&R(@g#D<}%35`BX=Es zfD-?^n|(js^7OOD>9_^$yjp3`YEAda3iZOtHm4*eUKfo`&}Tuvjf#O2uKv$e6)kjX zs%@ni75p7M^MKTfXkVVhVR;E2?#XMvB`Ct@ZVLTU?~~zRh_7_iPG}JCJS2ioXKwj{ zu=c2Gk=xwM3cO#;RYyXq+Lpzd($fRswR_B2%+r&u4Z}i|5Jr6<1;g(^N!ii_F)!l2 zxtr)Mfy=6J&lV|;-A1c(N!X8{%6%JINH#y}^pv^*aASIDu069EwQ=lNS2ISoO9J2C z0PlCcj7MHZwtSQ0RbUh~(vX!Gk=5?69zwaDu7eAA(3?U$Te-fze$5~ht=why}v7WcLmeyj}{=&Rv7IqyOM^f-T)DB0{V|J}o@DtqhNjW;=d7o1a5 z7?;z%zk54o#y@C>%DH%O6iHoGJSp*qd-IH&Y(}kc8t|Uk#X&Q(C}1VfhI=KUPC<_mHO8v~~CVKrPiFlK-ki=_^uz7u*XQV4Ih8i)Y zE3Ct~&8%XzQp0YVQC%)~ycp;0urNkn`rL`XOv1=WX1oGwmE+%kGk(HYB0>s^0N}6> zmTgSRBtyV$s=)u7cJNmD?eMRP2T#EiVcDMST>?9K3668Uz0lO1$h)3aBdCUIZ{_>4 zWH~Hej=t)KGCCT|kR;?3Kky)G2n88w9V*&;XCBoU{GgeTp4|`eMujv;_}uV7vH`xj zIirCBQ-d296f1SkJY9#Dr)f!sGul}7<#bo;(H2*cN4;b{E96rvlO+D|Cujx1LnlOXhkO8an?qMS$jxrq z=LSBATLiK_k+qgFp&KgN&9K}l5y@#PzTr%&;cTkm+=Ag(V!HCMIsKlj#AEe+EIy9A zg6;*wS*>;6dGG_hvr&x26#!sZ`}&-N^Z4OD!cGY$7VeNB`;#Plvn>Yp2yjzE>kkg%`v3x%Tj;!}9Y+W#yU@)00G$iB=*tAtazb4T8 z&=`>G^gYCHQG;e0Tv&8&`qe-hO*qOKo?_GN)_HOQg`_q&H=m285_I`WD3Dpa@Kwg{ zfMFt`&a^P4c^xz~d@f<31k1H=g)qKS8|F3;nzU|ZI1pt#8%0OoFTw6%tG;D-hTGhQ z=KVzbc)BHg+_UuLoAG$gFyHKoJkj%T9*AF1;9KY7nNk8d{d_+lhwD?5vDs!L(5@*G zrz9!`-RrDcHz>(RbZmNBppftR@kboLBmkYDR&YHWa?n(KFPo9Ts%7tUa_udz?=5S4L{1mw6HWXr_%(lufb=h z7})^}o@U@Mt2IhQLekzly~A(FP}=O5YcXD+PlsV91to3WWTR6kffDvR3B}+tM33y3sDE_D5q6tW=6PcHcdsBb zi;`a^wr3k+W=j(y+66)wxnpk4bm5-O@ACK!~w`-g!g^Mh(BvGtZI zc&gyfE{aM^x3mXm%(6jb`@qEj`tcOh${Mt~VTe=b9CjsHxG3axnApJ7iyMvmu`?C=!FNxQ=GCK#yIGTg``paA< zjqY|0YXXQpe~ng41ll9Tk1v(qAx+i-A%-s<-UkG*W5=P|BO%$U9}McKe{XU}l}Kl& zNhap4$hCdQ6P7BzqW8X;NKyCbfgDHme5G%)qu=;dM+DKHL$-{d*Rs<_MQOQ%d%930 z-IRqkwq^c$>W?!Dt-HBp^}1Nv8X&!g;aRwKBJt`|Y^Zr+a}H9fsIj|#vR++8E857l zvDP(ke1WzohzVWr|MFK-ap($Q7gObj@ld-Sjy3f<%NKh%Sb0M4>RDDexMb^} z=6w0Nv`BA{G<{u4T&yfz-Z{UyRbdS8BWJhV`4aRnG9((l&YS6voo5H?j_y&EmnR4`8r@lmeNMGe)TQ*sfCI(Skfgov zRes4Bf+(TdTVD6Of6zqE_yu=Yn6#==yv`<6koZXv6`jdv$S`v> zNkTSXy%2R?6<(s45on88+45qQDERO^rT*bnyvessX5?k6Hk4>s5OXpnH%d=^ z%(udq_WeyDHBseKBwX$9&)D~1gR1p)_(8F+VbHv4^~6v~O>Jbc$>VvGW0IF*HS;18 zaMiWd1QWyGzpv}fQ>uqFO3)Az5V-CY)kqS7E{)VtywVf3)bJ)d6o=Qx6uGfRdWuWX zxWW7YP`8Q{H>|#kXVz|yvzRQiKC#4!b%S|Lr*}C-y7s`M)m8qEp?pGmxIN{%H(br` zqLN*Jj&72upSdL}PEDsHUxh*4^M*bCTXonK6QP*fh9wS@c4vJ7O(fTTuwK{hJA>{Z zq1N5K68(vgxWdL&naSd&RJNo5In9QUDxRXXKn5K9o7MM&>aI*Ro~G{;M&7jAn!Ld+Pi_ue7m`4JIfympx;#qc!i!O;%)kkZ;iacD+_DCjemZXL< zjoY&|gvEIC+#f{DQMr^IY7rrH6fey{JXGe3feEi9Qv}K=enMe}yxWRdY}92a^%U0o z1Vd@jC_^l1nt@GS?EF+*>a5d0FMifxx zSExWq=#ojN^b?SRQ>b8?@tZXi*+ttu$TdvCq$*8f#QOkf<(K7_%(_J!SN@ zp70Js8Sg@hh5uzgp@NrqCC#_*SQ?LC$|f*xY^K;KBwbCEc*m7M9`@+x;9}$A%B<$N z59{}snH%=m0gl#uPLErX9$pC9v1-1e<tQQpSqa*tz22{(h-LcP34fF* zrMFuYQ^|Wyv|f~a(Rdq3IwTm5=6T3R149X!dfvXyCXiT)XtCbdZG?2u&w<51U8)Dm z#l;_uYQ!Hs>-m1G_(S#wlT$lfNFc75RYKGFZhT_h0*)lylTfS~-X{r3N zIb3dNfuMTzIz`Os89c_86*gJYyvOg+HU#_n(tKO4An0HtCYR5cSxJ_1F9$jTgDR$u zZpBuXRTK>UF)QC!h+CSuV>vIw$I6{31DX zoEQ-(E!tdTeE<&%G8CfYP4i_o*JED5D|`{gM0^4uRb(J0`PB6Ij7GtE|f*2gzsts`oS zO*qZt@HdUYG^_s*Xn?N(yldNW zxW2OCye?L;*EHh5tdOns-k*PzxsEEy9>M(|72MaNJ|0G*h*$}3#jcx&xb#3|XwXcB zahdTD0WgF204-cC=$l`Ae>$Mi;C!%L9mk*sFu|NPxOv$26;`m~04AIZKM#YCkN@S% zmoQ!#85yNm*~(4zYJG>=z7Yq#sEDFzr0-OIeG;nGgwO%^`}}=zgx&Pbm7|Ar2&b>b zq>&u@i~kzcrN$QTy=osrGWMrXcE9tr6t?vjZZ1zUS)6Z+n9X){fAG(?;}m@8_yfv; z1RUiuCWNg#4l4`$tc-)=9~t1vz$);<;XNEI{k_Vt+zu4cVH`{^hBL1xFhjju4i7Xv zb*X5!V=40aR$Vz+mi>SbXHBnF6fJDO2<8;iik2?Q2dg3~=w%?g)JJmZ9j zN^^5E*)4=X#l}LARb3PAUp$75I=X+92{5+IKR{EJxi~lMb7*|&$YtL-C2i3v>q7M* zttL%S8^tm37Kn&j$C^>=+r34D>FV{Cp;FTmZm~@Z;gzpFb`Wkpni7BzmEEiW^h*T}tc5fjGtN9W z!(nGa%R+O^^)iQ1`*StWmWKnId500fTCMC7>-wk1yPL_H<}N^VUY}(=2~7L(Yx5G( z5FP56vV}7a7#bVfF90^cJ#Icwh9aE|BgVG2knVK!=Nt@^B%MB4%AmScZq$+;8?sWz zd4RrYId;KN#5nt^+%tbEK>Mz4Wd6?=`>XTUZkt8Kefd#H%l0FrA)|k1WLK z6RcrQ+Z`syWU&90=P;v}Ooq4Th-cGJz%>@#F+@C>)Z&1Y8`^q>k|{87~Y zO8(zXflMxX$l>yi+{M9!WeIX$hm>1Wm2cLGY2HuqGnz_|o8GXNXx+r9)O40NS2bbP zj)w4O(-e74zS*@HI>BuHUzfDl0c%PY20ytgT@D^_1$dD%6Um zIHh$wKEs9}CB?yt=+INRWD-sRnnI&P%iPVlU*J3iN8VvMf#&rlBP8*R8om?e@=IP? zpeZjL5NLm|bTLtw0v+I=grFakzpJh)2* z!`xmk;|1^y-0vd;-vGOZD7JyjX_;nB0Q`|tFL6jW@BH6BVeTWDC8tl+ZZm_)N`0Ln ztLNGPbJo=hTmvmm4Y46&ageF+0SM{tkF@ zpu(;wT4SBz#s$6IKW1{kp4o*+OA)?-8bVwcp!;sb2@9f092qwf6LS5;-b0RA4q=rn z4|<5*1_JeWOt=4F?Bq=f^CBV1)uz)2ANdzQ_K?^%MmDrfb<7c8>>pWm7pvD<%-XYC z4OfuZGen1V7`9ne<^AvJ;^O2iH5;cXZh3UyzeHL~`42F`B}BK+sQZjq*W~k-#imGv zhdE5fxTGVin!1>B@6;R+M>Rvk`%Lt&A0pIOid{S3; zl{ruZN!P2DPc;8?GhPMc7XL|0s6Nzl(S~(S3FvPZFb*rxb$5C{({qzN+!Lu8O@*aF zkg3}HVIrbw8ni4U)0$P_nZ|ftP>l*#SM89e+k#gZdSFAJNEbE6`ht8I1C!Dx2Vfh3 zKRWxus7yHdp3qs5lPYtiYfTybNdFj_oGxkJRFp`C$rGXZeNLYcnTnc9OOGgVyKZd_?e)`gWgxiaZ2B(0bGHIAj_fGN+&2|GBq4`kw^{KG433mhmGc%!IJF zujLWK0RnmgLww?uww|yu*NwZu2YEHji)L>3tQUpR0l)#!#kGDysI)pvF}_Q5k@6as z@A=G*YrCGhrh6Q|Zw6%J*Qy^Ba|(BQNS2lW zDnCt({XEkB8QZ$^Y&7;Zj)VP+>=yuq_E02EF4n`NSjX{~9ovCZr%Op)=~gqG~{Z+tIX`%3U6=8sp))epJiYvdiRkA;UC_-Ebbi>%VzP8| zGsSI5?QjdS$S2+r>1L{D3W*4UoU5gK?vOS0Txzj4UNpGvWO~%D%sSm~tSNtzOOV7&VmD$OF6A6r$I`VbFDZP)i^S$u6l#J%u;wMO8(`9;-)v zGEfeW+jQr~^LcBY(Of)o*JpXT8o<^Fb7y@eA|}>|XQgK+=aN~9d{|VEyex%MJ}Pim z5*dm)Slya!qr$sxYzvvY6PO}9ju9UaI;VdpATOp>GQ^jN{;`92AADTuwxBFL$G3Yk zGn|0XolU~GqQ=G#?r@bEQ%r4b)#2)vm}C{ELEjb&s&O@8D^ z(v2&NBa*{EI^I1XWdSM-aCQ09R)jpubo=dA-Cx2IOGigi0Yz@dVGIk&x~Y!Tsdo*j zyl}WJMnb2GGcVER_E`3BGbH@9U{lV1pyKX!X}Qz>=5bJUzK|!0go##JnypGvVa|6J z&up|~G@hgrPj)aqEQ9zw}&1ybN-P6(G)zGVmi2f|8K zs1hs_qvQCr}-CSs2aE$kT;Hv zmU0seJ(8eaR*$~jr-=O#Jvy`IchXW{n45u+UMYd2&mA2Tmtw~Xfb~B zM-$}Ia>iXMk@E9LEQh}iHn+p5=dSe*qv!+msWbouXbNdCRb%Q}j;aOJ>3-thE>CTQ z2K+v&`h0Xi7K`_ZEPsy^-rWqv{iMscv$9hcYFYOr0J~M5Jg9y*VxlbPcL#I+=c7S}>ogZ#Q41(>F-I5ac0T--K_3)_C7{R)rh|Ho-R6EmU<5J?G<3!t=raEf< zZvHV1tU7|JS?Y|EE-pOv-j_JvKqufZQsMMxjxyuve#>&UlHRNTkFupwV_1RkJ)+PZ z2&@}V*H~BH=WpT@oy)vBtgA^ae-%{4d$9<17#qEd5k6)Ux+K-v9LTuA%4qUNL6SpU z_m?@JrcGe6JmGF!WJZP0v)juP9=Y4xiq3Z1*+-3blOs%gGyO&xcM zRtC7k!=UmO z7H2tGXXP%ioi39is6*w6C->^Y*2v8*NP^S3TIT*Pwy5ycSI{)jeSUE{?_E|mB8|A) z#-DnsZ_-#eIOU*bE}YEt3LXvv`TWi41}KP+*JBh>P?of>#<`xRn-}6I7)$G$P{%&|)^XP1J$F1S>7oz0JaQ>B2lwv>$ zm*=c>8poCWxyzQ738Sqovg-a+Qd?Zo&dR@& zi``?Q4CVz1wN4ag#ajJ$#p!bKnUn=D?gfh~xp+oL|A8D59_7GWGz!KW^8K5Re_Op5 zliVoj&l;W&jGKAc*$Ib-sI#;6rZz|9So^uzWl_0-a0CQjP0fye@euVatx;oKu3lV> z5j(H^R_~V*s*W|=(3rl!J5fSgutMSF<{llLm3CnjomU#u_vYhwKXGyyodKeCE|)RP zN$DSs&)Nq;1GXeOhF(2UH}sfyp-Epf2CvISL+shvQX~)8XtipoqLDtl3kl2WO~l#= z6LswP$V`ME(G4d>g+m+v@ge7D{*Ji*Nvs>J1IpU;fQf#b^mZnBubRslqxOzVe;ZQB4$yLN7qC)$aw8k4E7|~7%`v>TICtMc^I(wix1rO7 z++;+O*L+#IJ;CSGel`ZN;<-Dh0f*)%(d*jW@~R>d8_pm9NRLyn10<-|Gz2$0xA5@{ zDnjgX&UqA>SCj0$b=9OOQM?u&kf0gFpPrulKRev2-Qq?9^M&_iMFu)*(6~!lwGv&Y z4dhNUS0Sx`f2KmC#aj?q`8)P5auo%=XkLfN(wm==PaWv%xS(mu%O+}D(pWg|*}XW} z*LspYY}u0B{8sH>N7|gBGf9+NXTvk6{lTSi5^q5Ngh+#_XkxyHy5n}A7Hn? zj_7zl@PeTmYx^^2nm|`i-h3LTc#?_c<@1WIGXEvgm{MES!WDny>>{t^BFnT8L?T_ zt&J*PXxaFj;rW9UvO)5AA*RORau~;`{Xi;k{3(&L`5gXv?|kd;&}OOHYs*L1+y9e{ z!Ed#Zv3x$S#Z^&D#q8knbho;xv9c;Kp?ZJif*2qYIn+kq@}@=r!rEAAq}V^L^;wb8 z+Y+5thjlPrEc|%||06PQC*<{*0^|NtlRl$VqpyHqOPgs944D4KC`cjWX$np*!-YnE zEj7SfPd>^~sOS2g^-(A`!~#dQ3)o-3mWEtRD-L_<=sN^j}bp!nOslU(6y61) zc(~Q?+%mbAodJQ*bzcObO%~*n(@9RE%CP<2_ zIcsG(+~U8A9l!78*yo)cF1sM*`k59Exku!ZDw1oufw=8Q1-b3>ADPUjl$;Kavz$&1 zX}YcOD6VSXO9(v)x2)%pYPJq`GLzh1FpFlsUGWMsQ)QrUx)~6-EFe9Z-jcDKa*k0^ z?TYrWHo3g#zuxR{DRVX_N&o1t+pGAqBx1|^9FyR*cr}paDXho)Smp65KKM%)X5t!p z`wBv)?Y+7zx}YQ#5jj>!B*NX!Ts@k{r2gUkzn0^Pl1HQjrUxpW+pdzE8w2RcG`MU* z3AOKU^_eh*9APnW7l#jcmRhB3k|mufM1Qh~Y8~hw?Xi^FIZzI#wDc%KF6e|C7v(Fh zX`zCep^K1+>>1g*-Op&J(@)+JHVcMXD}T03E%zvRudn}``C?nVZd|LuY4GyNbBO)% zCfTSFG9v(#YVsM}=27atxe?Zju3IoR2YjuX4QS;~OXR!BbDuXa&R@}KRl);m++z9cfw8Q}43qZ4_%sGUb(9U4ys>CATzC5SXq+Jfnn_r(b>Od~;W(^nGd%^4K zQt@k2oWh2Lp|~M%!a}v;_O?pPV~u??JSy15sWj6L!y&$CEo8z%qsAVUMp$z7 zA=m{|W$rto@$$WtYEf*zJYQ2r4lV!DogWNf)L?_&a3J-Ly6>1;E*}(Wx*4n)SMSgE zWM0B(V0K5Vutp)S_O zuMJF?!S?d}q0mEdaWHMHsj-41>pT7aOGDXi3sgAer6wvLGqZQxZ@Fr1Ux1ELD6kMZ z-zicGqHqIMEPM9(b;DXa{{8KGkrHA5DN<3wzo%kTPNGqG%^wm!GWsl%ilhB9<6ALJ zWiH9E*7*(|-yo5?yjAwJ=}ISXqJ9o=fjp4{Tdh%;$&zG5#N0=Q*(`W81h{ILzQ^C* zFM!hJm0snu%WAKM1m9cUo;{Di8M6G4u}(;ObGh7t($Q)lugXa4hz$`C&18t7Fu_rf zWk-*u#?PAxlve%m=iQ1pi2X4nOl=>oEFT z$HX0inxqnwx8Rwe#B|F5Q@hWfk%^dnVK zCY58ve}9BmU$|JmH^MdoHXibnK||H>Jl0GDR4D}|1gWk0I6(5U~N=!r}qFPo&CB$e9{CPH|w%gCrB655K4i59)R_j6KR)J^#{b@tI*bWUQXsX&)XfT0of zG1r07old&ZTCU)~eZkhYTgha;hfam_JgR9K6V8Mm4$Kw(9IW&hhpYCdL#SGhWZp6O z*{%XH`ETflD}B1&Bx!^--+u!eH!rUK$t!rmxf#1-y17eIy}3uq#?KzH*;Wgk;-;=` z9ASpGjSbCF@?1_m#3^@DtVG0xydm9~|G28oE}O+Toi5)h?p1gR0BoAE<}4L8Zy|)S zm>lG_wCz?P3Nn3yP@hIJURS1?PYafQ{N>}*(844|hO_ZO5y^N)T*X)jh=I;oR<|q9 zgXX{b+EQ@462X?fGuGPt*O<$+oxM00RX#+;0KlwNV}|Hg3+TfC!4Jo!=wVWyMNMuy zoKy6rcXSqTLrZH4@KGp1ji`tBY8Cw%Jk-~tFej==Mb3jgL1-EyYgRY4h1}Nt-3b)2 zp~8>O81kNfmY!(zRT5dWP=pOrquZltyV_6Ws|-lwPb|07VmL#zpp?^w|V8pZof zo)*2!{h6Hx#k9=KAlO%zM|lOjghuU*G#i_&Q|H_%sP1MLe}20^HJT#We1`XG!z(*? z`hoE-*k4j>@5xnyN=^%|!?K&PkFM<1n7@zl_hJjvaz;juVQ(!^s(Ae`;?3j2a8Bph>uH z7Nyt$OS6gE_JAH%WPQ6h+?xGO#S%-QmFocu&7B=2RMkg+ z3O4Ske<$aJbJH%hNgo;0y|2+X3~Q6vihVWK7)EA5bE6J@3^m;6&=Y5?SxJTdYNaqT z`k^33mq6_C`iga1oOj7 zC@^mxuxlz)B>@7QlWKj^i8!xIG*^%-2ZdVyT;lT-Ht6wD%j8@bf{%!}z* zyTYpZDZd9gR)1~pc1f7v8$w$Vt}H_iy7(-Ak5BX0BLhqtIA7MP|4>l-n|ldPoMx|)PkoZGwR z9Y?~8Ay8)4aGz-QQjHyp?Tup}R8(ZfukWK9>BF2z$t$*?0(DK{iTUFy6@Ig&(BgKj zH!N|ajG$mZ3LAS0EY2jvs~6(slqc0n(tfKTp<*Y*Q<&H@q{hf=vR3|Q&6Z!`CPezJ zKZhgVa{WO|WQN-hS(f3~Oj8@L=@`5Q@qN*Al4g7^pEQF^-G} zY(HCUZfB5ccS@pp`ua7BP+PueVQ9?Psk_?$MuS{;c&-sHk@53;bh^Y#QltC(L609G zcdR@`8Xd`33q$ZN_v~{lckc>Rhu6#Pk&2`7IYOYmID9i7hO z5$;T>4lH9U)+Q6Pnucj|Pe$a!5C@iw>Ot1t=aGtHDURNtxz?BT9^ zrL6kF5n(bLE;?Y0R?S@aHrmfPTQ=XOqR<+{KR&Q+b9rW`y&phpM-I+KlYP2)>H>cf zMdiG+6EUpj963f!W;BYoP$Bi5M4ISex;^Q>#8!2-2KP!*$IA`;MGron)S<0!oxY1X zactxh+&n=)2mw`$$yTgpTd5gpdC$ z(ozm=bq!?k$>AeNku_OF=bcwfcxvIP6+I24{hYQ+J%K3+CAk&`F6z4`XHYQI4}~&e zv^R@*CB?8gUmvUY7BV9*dv+exM58M|jd5rz(W^+xeZwD`Kw{mk`ts51-`t#{s%pp~ zt=G!+Uw;UI+T`m8_5;!j&P}=kpblrm%o$NJ{cpkV|IV8@QmNaYHEdO54I!|AI%x9M6-5Ot@=pmZDPTG` zG}Rrdm!@FqAi`~(l~S!n>x-8Yb!ST~1er|#GnWB|TE&Sal%tMY%iD+^lE;6*eS|G7l zb%LtPyvD#Gh0*3a6&aKbEh>?wd=^<$ro5Pj26msQu}r#_--uE7$zV}kO_u$v=nm%B zybW@S&bSj|WE0P<)9~Vz8Ut>}ev|n0^R6@MpEVA&N~R#=tsN@hQ-)L@2Z)W^|NCyc-gT4g4fF(>|x>P+9h-P&d{wI|^YV@oV+NW_abiXEE@&(Z>M}-^kgdPerOAHX zGh(jJ$0}Oo=ET$+=qhl!yZe1(N`5Z%b{_r+*p{|JDI3B-rQAE;* zeR~+regRa~&?nlD3u9lEmmIUkPb%4M!Cw78Jq2LZx~Tgs$ccgL6{C!?tDun-I%`!} zJ}{6YEE~9ANjYrzwBV35L+5}MoI=m=99#D#f?SuE`;^@ZgQcW!X7{!TDL0ou_k;A? zCyD&jMxrR4Di63z!dFu7>oBd*JA=njivMH`S?F{^3=H^-fwZ~qx@RA2NVgTTWJVY$ z<~KhRm5{kP4HG^c#m?!ST z7)XhOfr=3}ZHo1ru7sL!0Hj(qD`Cqz*s*3};PKM5S-bk~B8XiKHe~cGx4s1?A7WNK z1~4z>_@t+PTGEb*|YlmTDXMc}81jGwZwTfe}^PS*iWbXrEE&D!nuTx819v;4?V1=12 z1rH>vqQYiqTT&s`6(Oa0{TybS9cT{O-I|CU2CMfn>*cCj`WQC&yH>M-{qS8#$Y*w| z1wnvPPZ@^U!8ptLSQgonMt{{PVaYU>7Xs3JoG21t1KED=Hn9;$rU3>|eVOuJ(e(C|v5kZcp+2gXrZveeWtUKSwzMW3FAUWf$-Ix1of!JT}Bl{Ga` zh0RTKM#o5mg$+;3(DSv0mz%Th!sPK8NdT&hM^VFOn-yMSi!9v}kMwr!0XXasW(0^* zgT06vb6QFQ*Av-KY+X&m%AyVi3(&qtJOe~&n!kBBlHN085roG5FA&3M}+_=3L@Wen@kuVmMX!4 zOJfsA<6J1_FIHMg7${+cG%z0rtGMkll;Bl~e?&EZh*=(7S|4fb4-=l8U#=QzeIjfLZirNaO(L>2z0TY zG~k;)8k9(VC)81(&stf0F6N5OJ`D!ud%EMb6Z`-rr!o zyl^)>({|M^=P(b+6I?*^@@`~++(b3O`YhL07k~Z==IXd!Sbv;lIp&&Pq6*L#YJz-M z00muV(+(|+|1=inUS*s_2pnoAGg4O)fF&R5kGo-C6z7@Q`|Dta+{(e5%zW==)P>;Z z+!tbHVUmjCKNPUxd>GJNF31@bz?k$~30cgun{)!;7)V2RlrnBFvBW#EA;XF-92HOs z`AFg6B)XfC$i6Ov zQ!(dxu|CKuGlLD>mk1g^Q3Ml0LJlPX`&i~sKu}PR)oy<{e6#1CikH`2Mw0#gXsNm) zdpd0<%kCXi1wy|Ord~pFm+*0je~G0T#h>9hglw72_ihrPWX8BbktLlzUn7Er6;%YZ zCPs(qNM?FprVak|FKQG0Gp{y~*8Hi2l`T#D8!@y8kI&<)3i>S9e}EvERBizAX+1cp zz;@aciIy#QRl_@)Bj0xv%<@@WRR4@i`$h2!y;DK?8piv%;=I11D)+PRy@vPokI$nC z2@a$3y#4yR6g9Mn7Xg%4IAU}f=D^?eE*tZY^=rV2Nl zv{2Q0s@0>;&TMYre{zfeZ~7vfVw~lIYg2?T_h!d)!fB<7@&yhPA#zA0WJJg(#nf)W zI;D0A9{8Cth=FO~=6AGN)F4#T#@AqCpt~}cB(*C~Eaq(s-I7;irRE$h=F4%r=EB|M zqx`C#TvKBCa)XRqy*WD&x?*57{i_+Wv`7!@GeAVLBL*1^<{#b=R??gl0it5Smo5Ix zZH{H{1c-~j;7*_Qeqdb{oKbY_XevaV-5MMy9|1K49!81+`?V0@>AH*K*j+gM1!kv* zqDP+l_KhQCiqI~%Jx-GYL27joFee_i1}QX=>P%%Hb|;2Zpdh<^L9RmuzTkoHE_z|) z|J`l7uBr^#D5^122Nf!%{v;-28SF%AX~1aSZ@~Ur4wK%2JTbssj}k7zD?e3uKNe_+ z;zP$?#E!K>iyO95?tKZ$6T`KcA+!T@m{|;4Em9)UMYjAT7=0ogBqYCQLx3iHotqSI z=@AZJJW(av*=BOc>OXf)r6)67LC?t%0A|PgGGL3?yn7kk4-(DcOtkoPRI@7;dle>ny*&QsI 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 hMFbT=)h?u{&gm4cQ)+0Oh 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�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Ξ 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

-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 Zom8Qcdf;kua1Z!Fq?KQnN*aFr-vE+Cv0?xK literal 0 HcmV?d00001 diff --git a/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/003_PRODUCER.png b/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/003_PRODUCER.png new file mode 100644 index 0000000000000000000000000000000000000000..0bd2062c29ff3e0c849fa4f1bf7d6b209533d964 GIT binary patch literal 290515 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%0AyQ*X2<1zJ+DIhBe`zC*N0~}H5GNx~F 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

2(oG7+p`rObCuZOD0q|6Y0 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

FDT+ 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 P{Aj7^KdMl%efd8CJllQI literal 0 HcmV?d00001 diff --git a/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/004_SignalControlWord.png b/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/004_SignalControlWord.png new file mode 100644 index 0000000000000000000000000000000000000000..12139284a005e6cec5ee697fe50b9069cccd77da GIT binary patch literal 296442 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�BZ9oLi3f~`~~o>L_#?Pnqp-sWn~nA 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

YF1Q20#V0#y_ViLARs^lGp8BY-w0uQ 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 rE#ClMn$Iy9 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

  • 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%0A-$wRWbtU2)E#E5 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%0DFJO@B`y3BKgb(IM0S`QgZ`J2#8JLF_^!93R|+ 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 RJP*JxF(K)Xg@QWY{ugvsl1=~s literal 0 HcmV?d00001 diff --git a/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/006_OperationMode.png b/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/006_OperationMode.png new file mode 100644 index 0000000000000000000000000000000000000000..6cb5a2d954bc1a12b12ec4b77d3a6ff1388300c3 GIT binary patch literal 222621 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 hOI6NN9iqeDvrS7C3FFDH!rT9LBu@}?B{X;~ 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%0D-WH!?%qECQU3;Pf1bJW$Q6gjY$D20 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

    75jr_#@RCnJ%*$zsU7Lc&A2FyCm=i1iQsoD^ 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

    7$P2BSBbtCl$;eH|M=?7;zkKZ;d{XMVf2$ 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 o_q0I!Lx2mpMGZ}~O__Yr+x8`?{ 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 Date: Tue, 19 May 2026 14:56:48 +0200 Subject: [PATCH 04/32] ctrXdrive scaling linear rdy2tst --- .../components.rexroth.drives.sln | 2 +- .../src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st | 618 +++++++++++++----- .../AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.cs | 38 +- src/components.rexroth.drives/this.sln | 2 +- 4 files changed, 481 insertions(+), 179 deletions(-) diff --git a/src/components.rexroth.drives/components.rexroth.drives.sln b/src/components.rexroth.drives/components.rexroth.drives.sln index 09ad8a235..251195ceb 100644 --- a/src/components.rexroth.drives/components.rexroth.drives.sln +++ b/src/components.rexroth.drives/components.rexroth.drives.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{C91BAA51-7B27-48BF-BE13-DED526D007B3}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{26B3BB63-88A9-4CDF-8F04-8E78F3284F6F}" diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st index c90717791..ad7b36067 100644 --- a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st @@ -92,6 +92,11 @@ NAMESPACE AXOpen.Components.Rexroth.Drives {#ix-set:AttributeName = "<#Scaling constant actual jerk#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} ScalingConstantActualJerk : LREAL := 0.001; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Axis type#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the ctrlX DRIVE Engineering#>"} + AxisType : eAxoDriveAxisType := eAxoDriveAxisType#Undefined; END_VAR VAR PUBLIC // Debug {#ix-attr:[Container(Layout.Stack)]} @@ -124,24 +129,25 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _ReadRecord : ReadRecord; _WriteRecord : WriteRecord; _ScalingRead : BOOL; - _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 + _S_0_0076 : WORD; // 2byte, binary - Position data scaling type + _S_0_0077 : INT; // 2byte, 0 decimal places - Linear position scaling factor + _S_0_0078 : INT; // 2byte, 0 decimal places - Linear position scaling exponent + _S_0_0079 : DINT; // 4byte, 0 decimal places - Rotational resolution + _S_0_0044 : WORD; // 2byte, binary - Velocity scaling type + _S_0_0045 : INT; // 2byte, 0 decimal places - Velocity scaling factor + _S_0_0046 : INT; // 2byte, 0 decimal places - Velocity scaling exponent + _S_0_0160 : WORD; // 2byte, binary - Acceleration scaling type + _S_0_0161 : INT; // 2byte, 0 decimal places - Acceleration scaling factor + _S_0_0162 : INT; // 2byte, 0 decimal places - Acceleration scaling exponent + _S_0_0086 : WORD; // 2byte, binary - Torque/force scaling type + _S_0_0093 : INT; // 2byte, 0 decimal places - Torque/force scaling factor + _S_0_0094 : INT; // 2byte, 0 decimal places - Torque/force scaling exponent + _S_0_0112 : REAL; // 4bytes, 3decimal places - Nominal current [A] + _P_0_0450 : REAL; // 2bytes, 2decimal places - Current constant [Nm/A] _infoTimer : AXOpen.Timers.OnDelayTimer; _errorTimer : AXOpen.Timers.OnDelayTimer; - _tmpTimer : AXOpen.Timers.OnDelayTimer; + _tmpTimer : AXOpen.Timers.OnDelayTimer; _lastMessageCodeFromMC : ULINT; END_VAR @@ -1122,352 +1128,612 @@ NAMESPACE AXOpen.Components.Rexroth.Drives //*******************SCALING***********************// IF NOT _ScalingRead THEN IF _State = UINT#0 THEN - _State := UINT#1; + AxisType := eAxoDriveAxisType#Undefined; + _State := _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, - hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), + IF _State = UINT#1 THEN // Scaling type + _ReadRecord( request := TRUE, // 001: linear scaling: + hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), // 010: rotary scaling: index := DINT#76, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1801, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _State := _State + UINT#1; 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; + IF _State = UINT#2 THEN // Scaling type + _ReadRecord(request := FALSE, record := _data2); // 001: linear scaling: + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN // 010: rotary scaling: + _State := _State + UINT#1; 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, - hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), - index := DINT#77, + //Checking the axis type in Position data scaling: Type (0x2900:01 / S-0-0076 / --) + IF _State = UINT#3 THEN // Scaling type + IF (_S_0_0076 AND WORD#16#0007) = WORD#16#0001 THEN // 001: linear scaling: + AxisType := eAxoDriveAxisType#Linear; // 010: rotary scaling: + _State := _State + UINT#1; + ELSIF (_S_0_0076 AND WORD#16#0007) = WORD#16#0002 THEN + AxisType := eAxoDriveAxisType#Rotary; + _State := _State + UINT#1; + ELSE + AxisType := eAxoDriveAxisType#Error; + Messenger.ActivateOnCondition(ULINT#1802, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Checking the axis unit system in Position data scaling: Type (0x2900:01 / S-0-0076 / --) + IF _State = UINT#4 THEN // Unit for linear scaling + IF NOT _S_0_0076.%X4 THEN // 0: Meter [m] + _State := _State + UINT#2; // 1: Inch [in] + ELSE // Unit for rotary Scaling + Messenger.ActivateOnCondition(ULINT#1803, TRUE, eAxoMessageCategory#Error); // 0: Angular degree + RETURN; // 1: Reserved + END_IF; + END_IF; + // Irelevant for position, skipping this control. + // //Checking the axis time base in Position data scaling: Type (0x2900:01 / S-0-0076 / --) + // IF _State = UINT#5 THEN + // IF _S_0_0076.%X5 THEN + // _State := _State + UINT#1; + // ELSE + // Messenger.ActivateOnCondition(ULINT#1804, TRUE, eAxoMessageCategory#Error); + // RETURN; + // END_IF; + // END_IF; + //Checking the axis Data reference in Position data scaling: Type (0x2900:01 / S-0-0076 / --) + IF _State = UINT#6 THEN // Data reference + IF _S_0_0076.%X6 THEN // 0: at the motor shaft + _State := _State + UINT#1; // 1: at the load + ELSE + Messenger.ActivateOnCondition(ULINT#1805, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Reading Velocity scaling type (0x2910:01 / S-0-0044 / --) 2byte, binary + IF _State = UINT#7 THEN // Scaling type + _ReadRecord( request := TRUE, // 001: linear scaling: + hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), // 010: rotary scaling: + index := DINT#44, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1806, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _S_0_0044 := _word; + _State := _State + UINT#1; 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; + IF _State = UINT#8 THEN // Scaling type + _ReadRecord(request := FALSE, record := _data2); // 001: linear scaling: + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN // 010: rotary scaling: + _State := _State + UINT#1; 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, - hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), - index := DINT#78, + //Checking the axis type in Velocity scaling type (0x2910:01 / S-0-0044 / --) + IF _State = UINT#9 THEN // Scaling type + IF (_S_0_0044 AND WORD#16#0007) = WORD#16#0001 AND AxisType = eAxoDriveAxisType#Linear THEN // 001: linear scaling: + _State := _State + UINT#1; // 010: rotary scaling: + ELSIF (_S_0_0044 AND WORD#16#0007) = WORD#16#0002 AND AxisType = eAxoDriveAxisType#Rotary THEN + _State := _State + UINT#1; + ELSE + AxisType := eAxoDriveAxisType#Error; + Messenger.ActivateOnCondition(ULINT#1807, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Checking the axis unit system in Velocity scaling type (0x2910:01 / S-0-0044 / --) + IF _State = UINT#10 THEN // Unit for linear scaling + IF AxisType = eAxoDriveAxisType#Linear AND NOT _S_0_0044.%X4 OR // 0: Millimeter [mm] + AxisType = eAxoDriveAxisType#Rotary AND _S_0_0044.%X4 THEN // 1: Inch [in] + _State := _State + UINT#1; // Unit for rotary scaling + ELSE // 0: Revolution + Messenger.ActivateOnCondition(ULINT#1808, TRUE, eAxoMessageCategory#Error); // 1: Degrees + RETURN; + END_IF; + END_IF; + //Checking the axis time base in Velocity scaling type (0x2910:01 / S-0-0044 / --) + IF _State = UINT#11 THEN // Unit of time + IF _S_0_0044.%X5 THEN // 0: Minute [min] + _State := _State + UINT#1; // 1: Second [s] + ELSE + Messenger.ActivateOnCondition(ULINT#1809, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Checking the axis Data reference in Velocity scaling type (0x2910:01 / S-0-0044 / --) + IF _State = UINT#12 THEN // Data reference + IF _S_0_0044.%X6 THEN // 0: at the motor shaft + _State := _State + UINT#1; // 1: at the load + ELSE + Messenger.ActivateOnCondition(ULINT#1810, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Reading Acceleration scaling type (0x2920:01 / S-0-0160 / --) 2byte, binary + IF _State = UINT#13 THEN // Scaling type + _ReadRecord( request := TRUE, // 001: linear scaling: + hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), // 010: rotary scaling: + index := DINT#160, // 011: Ramp time maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1811, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _S_0_0160 := _word; + _State := _State + UINT#1; 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; + IF _State = UINT#14 THEN // Scaling type + _ReadRecord(request := FALSE, record := _data2); // 001: linear scaling: + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN // 010: rotary scaling: + _State := _State + UINT#1; // 011: Ramp time END_IF; END_IF; - //Reading Velocity data scaling: Type (0x2902:01 / S-0-0044 / --) 2byte, binary - IF _State = UINT#7 THEN - _ReadRecord( request := TRUE, - hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), - index := DINT#44, + //Checking the axis type in Acceleration scaling type (0x2920:01 / S-0-0160 / --) + IF _State = UINT#15 THEN // Scaling type + IF (_S_0_0160 AND WORD#16#0007) = WORD#16#0001 AND AxisType = eAxoDriveAxisType#Linear THEN // 001: linear scaling: + _State := _State + UINT#1; // 010: rotary scaling: + ELSIF (_S_0_0160 AND WORD#16#0007) = WORD#16#0002 AND AxisType = eAxoDriveAxisType#Rotary THEN // 011: Ramp time + _State := _State + UINT#1; + ELSE + AxisType := eAxoDriveAxisType#Error; + Messenger.ActivateOnCondition(ULINT#1812, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Checking the axis unit system in Acceleration scaling type (0x2920:01 / S-0-0160 / --) + IF _State = UINT#16 THEN // Unit for linear scaling + IF NOT _S_0_0160.%X4 THEN // 0: Meter [m] + _State := _State + UINT#1; // 1: Inch [in] + ELSE // Unit for rotary scaling + Messenger.ActivateOnCondition(ULINT#1813, TRUE, eAxoMessageCategory#Error); // 0: Radiant [rad] + RETURN; // 1: Reserved + END_IF; + END_IF; + //Checking the axis time base in Acceleration scaling type (0x2920:01 / S-0-0160 / --) + IF _State = UINT#17 THEN // Unit of time + IF NOT _S_0_0160.%X5 THEN // 0: Second [s²] + _State := _State + UINT#1; // 1: Reserved + ELSE + Messenger.ActivateOnCondition(ULINT#1814, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Checking the axis Data reference in Acceleration scaling type (0x2920:01 / S-0-0160 / --) + IF _State = UINT#18 THEN // Data reference + IF _S_0_0160.%X6 THEN // 0: at the motor shaft + _State := _State + UINT#1; // 1: at the load + ELSE + Messenger.ActivateOnCondition(ULINT#1815, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Reading Torque/force scaling type (0x2930:01 / S-0-0086 / --) 2byte, binary + IF _State = UINT#19 THEN // Scaling type + _ReadRecord( request := TRUE, // 000: Percentage-based scaling (% of reference value) + hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), // 001: translational scaling (force in N, lbf) + index := DINT#86, // 010: Rotary scaling (torque in Nm, inlbf) maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1816, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _S_0_0086 := _word; + _State := _State + UINT#1; 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; + IF _State = UINT#20 THEN // Scaling type + _ReadRecord(request := FALSE, record := _data2); // 000: Percentage-based scaling (% of reference value) + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN // 001: translational scaling (force in N, lbf) + _State := _State + UINT#1; // 010: Rotary scaling (torque in Nm, inlbf) END_IF; END_IF; - //Reading Velocity data scaling: Factor (0x2902:02 / S-0-0045 / --) 2byte, 0 decimal places - IF _State = UINT#9 THEN + //Checking the axis type in Torque/force scaling type (0x2930:01 / S-0-0086 / --) + IF _State = UINT#21 THEN // Scaling type + IF (_S_0_0086 AND WORD#16#0007) = WORD#16#0001 AND AxisType = eAxoDriveAxisType#Linear THEN // 000: Percentage-based scaling (% of reference value) + _State := _State + UINT#1; // 001: translational scaling (force in N, lbf) + ELSIF (_S_0_0086 AND WORD#16#0007) = WORD#16#0002 AND AxisType = eAxoDriveAxisType#Rotary THEN // 010: Rotary scaling (torque in Nm, inlbf) + _State := _State + UINT#1; + ELSE + AxisType := eAxoDriveAxisType#Error; + Messenger.ActivateOnCondition(ULINT#1817, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Checking the axis unit system in Torque/force scaling type (0x2930:01 / S-0-0086 / --) + IF _State = UINT#22 THEN // Unit for force + IF NOT _S_0_0086.%X4 THEN // 0: newton [N] + _State := _State + UINT#2; // 1: pound-force [lbf] + ELSE // Unit for torque + Messenger.ActivateOnCondition(ULINT#1818, TRUE, eAxoMessageCategory#Error); // 0: Newton-meter [Nm] + RETURN; // 1: inch-pound-force [inlbf] + END_IF; + END_IF; + // Irelevant for torque, skipping this control. + // //Checking the axis time base in Torque/force scaling type (0x2930:01 / S-0-0086 / --) + // IF _State = UINT#23 THEN + // IF _S_0_0086.%X5 THEN + // _State := _State + UINT#1; + // ELSE + // Messenger.ActivateOnCondition(ULINT#1819, TRUE, eAxoMessageCategory#Error); + // RETURN; + // END_IF; + // END_IF; + //Checking the axis Data reference in Torque/force scaling type (0x2930:01 / S-0-0086 / --) + IF _State = UINT#24 THEN // Data reference + IF _S_0_0086.%X6 THEN // 0: at the motor shaft + _State := _State + UINT#1; // 1: at the load + ELSE + Messenger.ActivateOnCondition(ULINT#1820, TRUE, eAxoMessageCategory#Error); + RETURN; + END_IF; + END_IF; + //Reading Position data scaling: Factor (0x2900:02 / S-0-0077 / --) 2byte, 0 decimal places + IF _State = UINT#25 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), - index := DINT#45, + index := DINT#77, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1821, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _S_0_0077 := TO_INT(_word); + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#10 THEN + IF _State = UINT#26 THEN _ReadRecord(request := FALSE, record := _data2); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN - _State := UINT#11; + _State := _State + UINT#1; END_IF; END_IF; - //Reading Velocity data scaling: Exponent (0x2902:03 / S-0-0046 / --) 2byte, 0 decimal places - IF _State = UINT#11 THEN + //Reading Position data scaling: Exponent (0x2900:03 / S-0-0078 / --) 2byte, 0 decimal places + IF _State = UINT#27 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), - index := DINT#46, + index := DINT#78, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1822, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _S_0_0078 := TO_INT(_word); + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#12 THEN + 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#13; + _State := _State + UINT#1; END_IF; END_IF; - //Reading Acceleration data scaling: Type (0x2904:01 / S-0-0160 / --) 2byte, binary - IF _State = UINT#13 THEN + //Reading Rotary position resolution (0x2900:04 / S-0-0079 / --) 4byte, 0 decimal places + IF _State = UINT#29 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), - index := DINT#160, + index := DINT#79, + maxLength := UINT#4, + record := _data4); + Messenger.ActivateOnCondition(ULINT#1823, _ReadRecord.error, eAxoMessageCategory#Error); + 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_0079 := TO_DINT(_dword); + _State := _State + UINT#1; + END_IF; + END_IF; + IF _State = UINT#30 THEN + _ReadRecord(request := FALSE, record := _data4); + IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN + _State := _State + UINT#1; + END_IF; + END_IF; + //Reading Velocity data scaling: Factor (0x2902:02 / S-0-0045 / --) 2byte, 0 decimal places + IF _State = UINT#31 THEN + _ReadRecord( request := TRUE, + hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), + index := DINT#45, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1824, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _S_0_0045 := TO_INT(_word); + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#14 THEN + IF _State = UINT#32 THEN _ReadRecord(request := FALSE, record := _data2); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN - _State := UINT#15; + _State := _State + UINT#1; END_IF; END_IF; - //Reading Acceleration data scaling: Factor (0x2904:02 / S-0-0161 / --) 2byte, 0 decimal places - IF _State = UINT#15 THEN + //Reading Velocity data scaling: Exponent (0x2902:03 / S-0-0046 / --) 2byte, 0 decimal places + IF _State = UINT#33 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), - index := DINT#161, + index := DINT#46, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1825, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _S_0_0046 := TO_INT(_word); + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#16 THEN + IF _State = UINT#34 THEN _ReadRecord(request := FALSE, record := _data2); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN - _State := UINT#17; + _State := _State + UINT#1; END_IF; END_IF; - //Reading Acceleration data scaling: Exponent (0x2904:03 / S-0-0162 / --) 2byte, 0 decimal places - IF _State = UINT#17 THEN + //Reading Acceleration data scaling: Factor (0x2904:02 / S-0-0161 / --) 2byte, 0 decimal places + IF _State = UINT#35 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), - index := DINT#162, + index := DINT#161, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1826, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _S_0_0161 := TO_INT(_word); + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#18 THEN + IF _State = UINT#36 THEN _ReadRecord(request := FALSE, record := _data2); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN - _State := UINT#19; + _State := _State + UINT#1; END_IF; END_IF; - //Reading Torque/force data scaling: Type (0x2906:01 / S-0-0086 / --) 2byte, binary - IF _State = UINT#19 THEN + //Reading Acceleration data scaling: Exponent (0x2904:03 / S-0-0162 / --) 2byte, 0 decimal places + IF _State = UINT#37 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), - index := DINT#86, + index := DINT#162, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1827, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _S_0_0162 := TO_INT(_word); + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#20 THEN + IF _State = UINT#38 THEN _ReadRecord(request := FALSE, record := _data2); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN - _State := UINT#21; + _State := _State + UINT#1; END_IF; END_IF; //Reading Torque/force data scaling: Factor (0x2906:02 / S-0-0093 / --) 2byte, 0 decimal places - IF _State = UINT#21 THEN + IF _State = UINT#39 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), index := DINT#93, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1828, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#22 THEN + IF _State = UINT#40 THEN _ReadRecord(request := FALSE, record := _data2); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN - _State := UINT#23; + _State := _State + UINT#1; END_IF; END_IF; //Reading Torque/force data scaling: Exponent (0x2906:03 / S-0-0094 / --) 2byte, 0 decimal places - IF _State = UINT#23 THEN + IF _State = UINT#41 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), index := DINT#94, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1829, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#24 THEN + IF _State = UINT#42 THEN _ReadRecord(request := FALSE, record := _data2); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN - _State := UINT#25; + _State := _State + UINT#1; END_IF; END_IF; //Reading Inverter type data: Nominal current (0x2314:01 / S-0-0112 / --) 4bytes, 3decimal places - IF _State = UINT#25 THEN + IF _State = UINT#43 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), index := DINT#112, maxLength := UINT#4, record := _data4); + Messenger.ActivateOnCondition(ULINT#1830, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#26 THEN + IF _State = UINT#44 THEN _ReadRecord(request := FALSE, record := _data4); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN - _State := UINT#27; + _State := _State + UINT#1; END_IF; END_IF; //Reading Motor torque model: Current constant (0x2018:01 / P-0-0450 / --) 2bytes, 2decimal places - IF _State = UINT#27 THEN + IF _State = UINT#45 THEN _ReadRecord( request := TRUE, hardwareID := (AxisRefExt.HWIDs.HW_S_0_0134_0_0), index := DINT#4546, maxLength := UINT#2, record := _data2); + Messenger.ActivateOnCondition(ULINT#1831, _ReadRecord.error, eAxoMessageCategory#Error); 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; + _State := _State + UINT#1; END_IF; END_IF; - IF _State = UINT#28 THEN + IF _State = UINT#46 THEN _ReadRecord(request := FALSE, record := _data2); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN - _State := UINT#29; + _State := _State + UINT#1; 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% - + IF _State = UINT#47 THEN + IF AxisType = eAxoDriveAxisType#Linear THEN + // Position + ScalingConstantRequiredPosition := _exp[-_S_0_0078 - 3] / TO_LREAL(_S_0_0077); + ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; + // Velocity + ScalingConstantRequiredVelocity := _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 := ScalingConstantRequiredAcceleration; + ScalingConstantActualJerk := LREAL#1.0/ScalingConstantRequiredJerk; + + 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% + ELSIF AxisType = eAxoDriveAxisType#Rotary THEN + // Position + ScalingConstantRequiredPosition := TO_LREAL(_S_0_0079) / LREAL#360.0; + ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; + // Velocity + ScalingConstantRequiredVelocity := _exp[-_S_0_0046] / (TO_LREAL(_S_0_0045) * LREAL#360.0); + ScalingConstantActualVelocity := LREAL#1.0/ScalingConstantRequiredVelocity; + // Acceleration + ScalingConstantRequiredAcceleration := _exp[-_S_0_0162] / (TO_LREAL(_S_0_0161) *LREAL#180.0 /System.Math.Constants#PI); + 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% + END_IF; _ScalingRead := TRUE; _State := UINT#0; END_IF; 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 index 1bd3f08e1..3b2319015 100644 --- 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 @@ -1,4 +1,4 @@ -using AXOpen.Messaging.Static; +using AXOpen.Messaging.Static; using AXSharp.Connector; using System; using System.Collections.Generic; @@ -357,6 +357,42 @@ private void InitializeMessenger() new KeyValuePair(1800, new AxoMessengerTextItem("Scaling parameters not yet read out of the drive" ,"Check proper value of the device Hardware ID")), + new KeyValuePair(1801, new AxoMessengerTextItem("Error while Reading Position data scaling: Type (0x2900:01 / S-0-0076 / --)" ,"")), + new KeyValuePair(1802, new AxoMessengerTextItem("Error: Invalid axis type defined in Position data scaling: Type (0x2900:01 / S-0-0076 / --). The only permmited valueas are: 'Rotary' or 'Linear'","Bits 0-2: 001-linear, 010-rotary")), + new KeyValuePair(1803, new AxoMessengerTextItem("Error: Invalid unit system defined in Position data scaling: Type (0x2900:01 / S-0-0076 / --). The only permitted values are '0: Meter [m]' or '0: Angular degree'.","Bit 4: Unit for linear scaling: 0: Meter [m], 1: Inch [in], Unit for rotary Scaling: 0: Angular degree, 1: Reserved")), + new KeyValuePair(1804, new AxoMessengerTextItem("Error: Invalid time base defined in Position data scaling: Type (0x2900:01 / S-0-0076 / --). The only permitted value is 's'.","Bit 5:")), + new KeyValuePair(1805, new AxoMessengerTextItem("Error: Invalid Data reference defined in Position data scaling: Type (0x2900:01 / S-0-0076 / --). The only permitted value is 'at the load'.","Bit 6: Data reference: 0: at the motor shaft,1: at the load")), + new KeyValuePair(1806, new AxoMessengerTextItem("Error while Reading Velocity scaling type (0x2910:01 / S-0-0044 / --)" ,"")), + new KeyValuePair(1807, new AxoMessengerTextItem("Error: Invalid axis type defined in Velocity scaling type (0x2910:01 / S-0-0044 / --). The only permmited valueas are: 'Rotary' or 'Linear'","Bits 0-2: 001-linear, 010-rotary")), + new KeyValuePair(1808, new AxoMessengerTextItem("Error: Invalid unit system defined in Velocity scaling type (0x2910:01 / S-0-0044 / --). The only permitted values are '0: Millimeter [mm]' or '1: Degrees'.","Bit 4: Unit for linear scaling: 0: Millimeter [mm], 1: Inch [in], Unit for rotary Scaling: 0: Revolution, 1: Degrees")), + new KeyValuePair(1809, new AxoMessengerTextItem("Error: Invalid time base defined in Velocity scaling type (0x2910:01 / S-0-0044 / --). The only permitted value is 'Second [s]'.","Bit 5: Unit of time: 0: Minute [min], 1: Second [s]")), + new KeyValuePair(1810, new AxoMessengerTextItem("Error: Invalid Data reference defined in Velocity scaling type (0x2910:01 / S-0-0044 / --). The only permitted is 'load'.","Bit 6: Data reference: 0: at the motor shaft,1: at the load")), + new KeyValuePair(1811, new AxoMessengerTextItem("Error while Reading Acceleration scaling type (0x2920:01 / S-0-0160 / --)" ,"")), + new KeyValuePair(1812, new AxoMessengerTextItem("Error: Invalid axis type defined in Acceleration scaling type (0x2920:01 / S-0-0160 / --). The only permmited valueas are: 'Rotary' or 'Linear'","Bits 0-2: 001-linear, 010-rotary")), + new KeyValuePair(1813, new AxoMessengerTextItem("Error: Invalid unit system defined in Acceleration scaling type (0x2920:01 / S-0-0160 / --). The only permitted values are '0: Meter [m]' or Radiant [rad]'.","Bit 4: Unit for linear scaling: 0: Meter [m], 1: Inch [in], Unit for rotary Scaling: 0: Radiant [rad], 1: Reserved")), + new KeyValuePair(1814, new AxoMessengerTextItem("Error: Invalid time base defined in Acceleration scaling type (0x2920:01 / S-0-0160 / --). The only permitted value is 'Second [s²]'.","Bit 5: Unit of time: Second [s²], 1: Reserved")), + new KeyValuePair(1815, new AxoMessengerTextItem("Error: Invalid Data reference defined in Acceleration scaling type (0x2920:01 / S-0-0160 / --). The only permitted is 'load'.","Bit 6: Data reference: 0: at the motor shaft,1: at the load")), + new KeyValuePair(1816, new AxoMessengerTextItem("Error while Reading Torque/force scaling type (0x2930:01 / S-0-0086 / --)" ,"")), + new KeyValuePair(1817, new AxoMessengerTextItem("Error: Invalid axis type defined in Torque/force scaling type (0x2930:01 / S-0-0086 / --). The only permmited valueas are: 'translational scaling' or 'Rotary scaling'","Bits 0-2: 000: Percentage-based scaling (% of reference value), 001: translational scaling (force in N, lbf), 010: Rotary scaling (torque in Nm, inlbf)")), + new KeyValuePair(1818, new AxoMessengerTextItem("Error: Invalid unit system defined in Torque/force scaling type (0x2930:01 / S-0-0086 / --). The only permitted values are '0: newton [N]' or '0: newton meter [Nm]'.","Bit 4: Unit for force: 0: newton [N], 1: pound-force [lbf], Unit for torque: 0: newton meter [Nm], 1: inch pound-force [inlbf]")), + new KeyValuePair(1819, new AxoMessengerTextItem("Error: Invalid time base defined in Torque/force scaling type (0x2930:01 / S-0-0086 / --). The only permitted value is 's'." ,"")), + new KeyValuePair(1820, new AxoMessengerTextItem("Error: Invalid Data reference defined in Torque/force scaling type (0x2930:01 / S-0-0086 / --). The only permitted is 'load'.","Bit 6: Data reference: 0: at the motor shaft,1: at the load")), + new KeyValuePair(1821, new AxoMessengerTextItem("Error while Reading Position data scaling: Factor (0x2900:02 / S-0-0077 / --)" ,"")), + new KeyValuePair(1822, new AxoMessengerTextItem("Error while Reading Position data scaling: Exponent (0x2900:03 / S-0-0078 / --)" ,"")), + new KeyValuePair(1823, new AxoMessengerTextItem("Error while Reading Rotary position resolution (0x2900:04 / S-0-0079 / --)" ,"")), + + new KeyValuePair(1824, new AxoMessengerTextItem("Error while Reading Velocity data scaling: Factor (0x2902:02 / S-0-0045 / --)" ,"")), + new KeyValuePair(1825, new AxoMessengerTextItem("Error while Reading Velocity data scaling: Exponent (0x2902:03 / S-0-0046 / --)" ,"")), + new KeyValuePair(1826, new AxoMessengerTextItem("Error while Reading Acceleration data scaling: Factor (0x2904:02 / S-0-0161 / --)" ,"")), + new KeyValuePair(1827, new AxoMessengerTextItem("Error while Reading Acceleration data scaling: Exponent (0x2904:03 / S-0-0162 / --)" ,"")), + new KeyValuePair(1828, new AxoMessengerTextItem("Error while Reading Torque/force data scaling: Factor (0x2906:02 / S-0-0093 / --)" ,"")), + new KeyValuePair(1829, new AxoMessengerTextItem("Error while Reading Torque/force data scaling: Exponent (0x2906:03 / S-0-0094 / --)" ,"")), + new KeyValuePair(1830, new AxoMessengerTextItem("Error while Reading Inverter type data: Nominal current (0x2314:01 / S-0-0112 / --)" ,"")), + new KeyValuePair(1831, new AxoMessengerTextItem("Error while Reading Motor torque model: Current constant (0x2018:01 / P-0-0450 / --)" ,"")), + + + + // TemplateTask_10steps_1 new KeyValuePair(10000, new AxoMessengerTextItem("TemplateTask_10steps_1 finished with error!","Check the details.")), diff --git a/src/components.rexroth.drives/this.sln b/src/components.rexroth.drives/this.sln index 09ad8a235..251195ceb 100644 --- a/src/components.rexroth.drives/this.sln +++ b/src/components.rexroth.drives/this.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{C91BAA51-7B27-48BF-BE13-DED526D007B3}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{26B3BB63-88A9-4CDF-8F04-8E78F3284F6F}" From e12e4610b6a8838e44cfa338746cc566db3970d3 Mon Sep 17 00:00:00 2001 From: "MTS\\Tomas_K" Date: Tue, 19 May 2026 17:33:37 +0200 Subject: [PATCH 05/32] ctrlx linear act torque scaling fixed --- .../ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st index ad7b36067..15ac3b8c1 100644 --- a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st @@ -1627,7 +1627,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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) ; + ScalingConstantActualTorque := TO_LREAL(_S_0_0093) *_exp[_S_0_0094]; //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 := ScalingConstantRequiredAcceleration; From 34dad836eb1b115abc0589da22971a968ed85471 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Tue, 19 May 2026 17:59:18 +0200 Subject: [PATCH 06/32] Refine torque and velocity scaling calculations in AxoCtrlxDriveXsc --- .../ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st index 15ac3b8c1..f25cb413b 100644 --- a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st @@ -1627,7 +1627,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives ScalingConstantRequiredDeceleration := ScalingConstantRequiredAcceleration; ScalingConstantActualDeceleration := ScalingConstantActualAcceleration; // Torque - ScalingConstantActualTorque := TO_LREAL(_S_0_0093) *_exp[_S_0_0094]; //TO_LREAL(_S_0_0093) *_exp[_S_0_0094 - 2] * TO_LREAL(_P_0_0450) * TO_LREAL(_S_0_0112) ; + ScalingConstantActualTorque := TO_LREAL(_S_0_0093) *_exp[_S_0_0094]; ScalingConstantRequiredTorque := LREAL#1.0/ScalingConstantActualTorque; // Jerk ScalingConstantRequiredJerk := ScalingConstantRequiredAcceleration; @@ -1679,6 +1679,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; // Velocity ScalingConstantRequiredVelocity := _exp[-_S_0_0046] / (TO_LREAL(_S_0_0045) * LREAL#360.0); + ScalingConstantRequiredVelocity := _exp[-_S_0_0046] / (TO_LREAL(_S_0_0045)); ScalingConstantActualVelocity := LREAL#1.0/ScalingConstantRequiredVelocity; // Acceleration ScalingConstantRequiredAcceleration := _exp[-_S_0_0162] / (TO_LREAL(_S_0_0161) *LREAL#180.0 /System.Math.Constants#PI); From d8d65e50397d9ebc9025db990a7761172b5ba48c Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Tue, 19 May 2026 18:04:04 +0200 Subject: [PATCH 07/32] Add logic to retrigger scaling parameter reading when leaving operation mode --- .../ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st index f25cb413b..1143e571f 100644 --- a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st @@ -1740,6 +1740,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives END_IF; RETURN; END_IF; + // Retrigger the reading of the scaling parameters in case of leaving the operation mode. + IF (*_ScalingRead AND*) NOT AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 AND + (AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.CmPmOmBit0 OR AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.CmPmOmBit1 ) THEN + _ScalingRead := FALSE; + _State := UINT#0; + END_IF; + //*************************************************// Messenger.ActivateOnCondition(ULINT#300, Enable AND NOT EnablePositive, eAxoMessageCategory#Info); From a49c5ce87e4a35990d9b61e9116c65d9a770678f Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Tue, 19 May 2026 18:33:16 +0200 Subject: [PATCH 08/32] Update torque and velocity parameters to use degrees and adjust scaling values --- .../src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st index 1143e571f..f4d78e1ad 100644 --- a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st @@ -1662,8 +1662,8 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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_Torque := 0.0; // N + AxoTorqueControl_TorqueRamp := 1.0; // N/s AxoTorqueControl_Velocity := 5.0; // mm/s AxoTorqueControl_Acceleration := 1000.0;// mm/s2 AxoTorqueControl_Deceleration := 1000.0;// mm/s2 @@ -1682,7 +1682,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives ScalingConstantRequiredVelocity := _exp[-_S_0_0046] / (TO_LREAL(_S_0_0045)); ScalingConstantActualVelocity := LREAL#1.0/ScalingConstantRequiredVelocity; // Acceleration - ScalingConstantRequiredAcceleration := _exp[-_S_0_0162] / (TO_LREAL(_S_0_0161) *LREAL#180.0 /System.Math.Constants#PI); + ScalingConstantRequiredAcceleration := _exp[-_S_0_0162] / (TO_LREAL(_S_0_0161) * LREAL#180.0 /System.Math.Constants#PI); ScalingConstantActualAcceleration := LREAL#1.0/ScalingConstantRequiredAcceleration; // Deceleration ScalingConstantRequiredDeceleration := ScalingConstantRequiredAcceleration; @@ -1694,45 +1694,45 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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 + AxoStop_Deceleration := 36000.0; // deg/s2 + AxoStop_Jerk := 3600000.0; // deg/s3 + AxoHalt_Deceleration := 36000.0; // deg/s2 + AxoHalt_Jerk := 3600000.0; // deg/s3 + AxoHome_Position := 0.0; // deg + AxoHome_HommingMode := 551; // Negative direction, travel range limit switch, negative edge (NC contact) + AxoHome_Velocity := 45.0; // deg/s + AxoHome_Acceleration := 36000.0; // deg/s2 + AxoHome_Deceleration := 36000.0; // deg/s2 + AxoSetPosition_Position := 0.0; // deg + AxoMoveAbsolute_Position := 0.0; // deg + AxoMoveAbsolute_Velocity := 360.0; // deg/s + AxoMoveAbsolute_Acceleration := 36000.0; // deg/s2 + AxoMoveAbsolute_Deceleration := 36000.0; // deg/s2 + AxoMoveAbsolute_Jerk := 3600000.0; // deg/s3 + AxoMoveRelative_Distance := 360.0; // deg + AxoMoveRelative_Velocity := 45.0; // deg/s + AxoMoveRelative_Acceleration := 36000.0; // deg/s2 + AxoMoveRelative_Deceleration := 36000.0; // deg/s2 + AxoMoveRelative_Jerk := 3600000.0; // deg/s3 + AxoMoveAdditive_Distance := 360.0; // deg + AxoMoveAdditive_Velocity := 45.0; // deg/s + AxoMoveAdditive_Acceleration := 36000.0; // deg/s2 + AxoMoveAdditive_Deceleration := 36000.0; // deg/s2 + AxoMoveAdditive_Jerk := 3600000.0; // deg/s3 + AxoMoveVelocity_Velocity := 45.0; // deg/s + AxoMoveVelocity_Acceleration := 36000.0; // deg/s2 + AxoMoveVelocity_Deceleration := 36000.0; // deg/s2 + AxoMoveVelocity_Jerk := 3600000.0; // deg/s3 + AxoTorqueControl_Torque := 0.0; // Nm + AxoTorqueControl_TorqueRamp := 1.0; // Nm/s + AxoTorqueControl_Velocity := 90.0; // deg/s + AxoTorqueControl_Acceleration := 36000.0; // deg/s2 + AxoTorqueControl_Deceleration := 36000.0; // deg/s2 + AxoTorqueControl_Jerk := 3600000.0; // deg/s3 + AxoJog_Velocity := 45.0; // deg/s + AxoJog_Acceleration := 720.0; // deg/s2 + AxoJog_Deceleration := 720.0; // deg/s2 + AxoJog_Jerk := 1800000.0; // deg/s3 AxisRefExt.Outputs.BipolarTorqueLimitation_S_0_0092_0_0 := INT#1000; // 1000~~ 100% END_IF; _ScalingRead := TRUE; From a4b776139ba696518f32be815483f754e360c597 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Wed, 20 May 2026 11:01:02 +0200 Subject: [PATCH 09/32] ctrlXdrive message timers resets added --- .../src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st | 218 +++++++++++++----- 1 file changed, 157 insertions(+), 61 deletions(-) diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st index f4d78e1ad..9c564755b 100644 --- a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st @@ -1678,7 +1678,6 @@ NAMESPACE AXOpen.Components.Rexroth.Drives ScalingConstantRequiredPosition := TO_LREAL(_S_0_0079) / LREAL#360.0; ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; // Velocity - ScalingConstantRequiredVelocity := _exp[-_S_0_0046] / (TO_LREAL(_S_0_0045) * LREAL#360.0); ScalingConstantRequiredVelocity := _exp[-_S_0_0046] / (TO_LREAL(_S_0_0045)); ScalingConstantActualVelocity := LREAL#1.0/ScalingConstantRequiredVelocity; // Acceleration @@ -1688,11 +1687,14 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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) ; + ScalingConstantActualTorque := TO_LREAL(_S_0_0093) *_exp[_S_0_0094]; ScalingConstantRequiredTorque := LREAL#1.0/ScalingConstantActualTorque; // Jerk - ScalingConstantRequiredJerk := 1000.0; - ScalingConstantActualJerk := 0.001; + // ScalingConstantRequiredJerk := 1000.0; + // ScalingConstantActualJerk := 0.001; + + ScalingConstantRequiredJerk := ScalingConstantRequiredAcceleration; + ScalingConstantActualJerk := LREAL#1.0/ScalingConstantRequiredJerk; AxoStop_Deceleration := 36000.0; // deg/s2 AxoStop_Jerk := 3600000.0; // deg/s3 @@ -1736,7 +1738,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives AxisRefExt.Outputs.BipolarTorqueLimitation_S_0_0092_0_0 := INT#1000; // 1000~~ 100% END_IF; _ScalingRead := TRUE; - _State := UINT#0; + _State := UINT#50; END_IF; RETURN; END_IF; @@ -1798,7 +1800,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives ELSE THIS.MessageCodeFromMC := ULINT#0; END_IF; - END_IF; + END_IF; + + IF _ScalingRead AND _State = UINT#50 THEN + THIS.AxoReset_Task.RemoteInvoke := TRUE; + _State := UINT#0; + END_IF; + END_METHOD ///

    @@ -2230,7 +2238,6 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_HomeErrorID := DINT#0; DriveStatus.Error.Id := UINT#0; TaskMessenger.Restore(); - THIS.CallTimers(FALSE); _tmpTimer.OnDelay(THIS, FALSE , T#0s); // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.IPOSYNC := FALSE; // _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; @@ -2244,6 +2251,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := FALSE; _State := UINT#310; + THIS.CallTimers(FALSE); END_IF; // Reseting InReference flag IF _State = UINT#310 THEN @@ -2255,6 +2263,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); RETURN; END_IF; END_IF; @@ -2266,6 +2275,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives END_IF; IF Acceleration <= 0 OR Deceleration <= 0 THEN _State := UINT#329; + THIS.CallTimers(FALSE); RETURN; END_IF; @@ -2281,11 +2291,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives record := _data4); IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#312; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN Messenger.Activate( UINT#1444, eAxoMessageCategory#Error); MC_HomeErrorID := DINT#1444; _WriteRecord(request := FALSE, record := _data4); _State := UINT#329; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#312 THEN @@ -2296,6 +2308,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _WriteRecord(request := FALSE, record := _data4); IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#313; + THIS.CallTimers(FALSE); END_IF; END_IF; //Writing Homing function: Configuration (0x2500:02 / S-0-0147 / --) @@ -2314,11 +2327,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives record := _data2); IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#314; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN Messenger.Activate( UINT#1445, eAxoMessageCategory#Error); MC_HomeErrorID := DINT#1445; _WriteRecord(request := FALSE, record := _data2); _State := UINT#329; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#314 THEN @@ -2329,6 +2344,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _WriteRecord(request := FALSE, record := _data2); IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#315; + THIS.CallTimers(FALSE); END_IF; END_IF; //Writing Homing speeds: Speed during search for switch (0x6099:01 / S-0-0041 / --) @@ -2350,11 +2366,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data4); _State := UINT#316; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN Messenger.Activate( UINT#1446, eAxoMessageCategory#Error); MC_HomeErrorID := DINT#1446; _WriteRecord(request := FALSE, record := _data4); _State := UINT#329; + THIS.CallTimers(FALSE); END_IF; END_IF; //Writing Homing speeds: Speed during search for zero (0x6099:02 / S-0-0542 / --) @@ -2376,11 +2394,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data4); _State := UINT#317; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN Messenger.Activate( UINT#1446, eAxoMessageCategory#Error); MC_HomeErrorID := DINT#1446; _WriteRecord(request := FALSE, record := _data4); _State := UINT#329; + THIS.CallTimers(FALSE); END_IF; END_IF; //Writing Homing acceleration (0x609A:00 / S-0-0042 / --) @@ -2401,11 +2421,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives record := _data4); IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#318; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN Messenger.Activate( UINT#1447, eAxoMessageCategory#Error); MC_HomeErrorID := DINT#1447; _WriteRecord(request := FALSE, record := _data4); _State := UINT#329; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#318 THEN @@ -2416,6 +2438,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _WriteRecord(request := FALSE, record := _data4); IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#319; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#319 THEN @@ -2430,6 +2453,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#320 THEN @@ -2440,6 +2464,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN _State := UINT#321; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#321 THEN @@ -2451,6 +2476,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _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; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#322 THEN IF _infoTimer.output THEN @@ -2460,6 +2486,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#323 THEN @@ -2471,18 +2498,22 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := FALSE; _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ClearError := FALSE; _State := UINT#324; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#324 THEN _tmpTimer.OnDelay(THIS, _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InReference AND _AxisReference^.Inputs.SignalStatusWord_S_0_0144_0_0.DriveStandstill , T#100ms); IF _tmpTimer.output THEN _State := UINT#325; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#325 THEN _State := UINT#326; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#326 THEN _State := UINT#327; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#327 THEN Done := TRUE; @@ -2602,14 +2633,17 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _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; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#330 THEN Busy := TRUE; Active := TRUE; IF Deceleration <= 0 OR Jerk <= 0 THEN _State := UINT#339; + THIS.CallTimers(FALSE); ELSE _State := UINT#331; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#331 THEN @@ -2622,6 +2656,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill THEN _State := UINT#332; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#332 THEN @@ -2629,6 +2664,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := TRUE; IF TRUE THEN _State := UINT#333; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#333 THEN @@ -2636,6 +2672,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := TRUE; IF TRUE THEN _State := UINT#334; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#334 THEN @@ -2643,6 +2680,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := TRUE; IF TRUE THEN _State := UINT#335; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#335 THEN @@ -2650,6 +2688,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := TRUE; IF TRUE THEN _State := UINT#336; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#336 THEN @@ -2657,12 +2696,14 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := TRUE; IF TRUE THEN _State := UINT#337; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#337 THEN Done := TRUE; Active := TRUE; MC_StopCycle := ULINT#0; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#338 THEN MC_StopCycle := ULINT#0; @@ -2769,6 +2810,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _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; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#340 THEN IF _infoTimer.output THEN @@ -2779,8 +2821,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := TRUE; IF Deceleration <= 0 OR Jerk <= 0 THEN _State := UINT#349; + THIS.CallTimers(FALSE); ELSE _State := UINT#341; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#341 THEN @@ -2793,6 +2837,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := FALSE; IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill THEN _State := UINT#342; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#342 THEN @@ -2800,6 +2845,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := TRUE; IF TRUE THEN _State := UINT#343; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#343 THEN @@ -2807,21 +2853,25 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Active := TRUE; IF TRUE THEN _State := UINT#344; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#344 THEN IF TRUE THEN _State := UINT#345; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#345 THEN IF TRUE THEN _State := UINT#346; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#346 THEN IF TRUE THEN _State := UINT#347; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#347 THEN @@ -2951,6 +3001,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AbsoluteRelative := FALSE; MC_MoveAbsoluteContinuousUpdate_SV := ContinuousUpdate; _State := UINT#350; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#350 THEN IF _infoTimer.output THEN @@ -2972,6 +3023,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_MoveAbsoluteJerk_PV := Jerk; MC_MoveAbsoluteDirection_PV := Direction; _State := UINT#351; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#351 THEN @@ -2988,6 +3040,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#352 THEN @@ -3000,6 +3053,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN _State := UINT#353; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#353 THEN @@ -3012,6 +3066,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; IF TRUE THEN _State := UINT#354; + THIS.CallTimers(FALSE); END_IF; END_IF; //Executing movement @@ -3025,6 +3080,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#355 THEN @@ -3036,6 +3092,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#356 THEN @@ -3045,6 +3102,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#357 THEN @@ -3184,6 +3242,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.ImmediateChange := TRUE; MC_MoveRelativeContinuousUpdate_SV := ContinuousUpdate; _State := UINT#360; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#360 THEN IF _infoTimer.output THEN @@ -3204,6 +3263,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_MoveRelativeDeceleration_PV := Deceleration; MC_MoveRelativeJerk_PV := Jerk; _State := UINT#361; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#361 THEN @@ -3220,6 +3280,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#362 THEN @@ -3232,6 +3293,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN _State := UINT#363; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#363 THEN @@ -3244,6 +3306,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; IF TRUE THEN _State := UINT#364; + THIS.CallTimers(FALSE); END_IF; END_IF; //Executing movement @@ -3257,6 +3320,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#365 THEN @@ -3268,6 +3332,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#366 THEN @@ -3277,6 +3342,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#367 THEN @@ -3450,10 +3516,12 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Data.Cycle := _AxisReference^.Data.Cycle + ULINT#2; MC_MoveAdditiveCycle := _AxisReference^.Data.Cycle ; _State := UINT#371; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#370 THEN _State := UINT#371; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#371 THEN IF _infoTimer.output THEN @@ -3469,6 +3537,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#372 THEN @@ -3481,6 +3550,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN _State := UINT#373; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#373 THEN @@ -3493,6 +3563,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveHalt := TRUE; IF TRUE THEN _State := UINT#374; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#374 THEN @@ -3505,6 +3576,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#375 THEN @@ -3516,6 +3588,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#376 THEN @@ -3525,6 +3598,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#377 THEN @@ -3711,6 +3785,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_MoveVelocityContinuousUpdate_SV := ContinuousUpdate; _State := UINT#380; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#380 THEN Busy := TRUE; @@ -3728,6 +3803,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_MoveVelocityJerk_PV := Jerk; MC_MoveVelocityDirection_PV := Direction_; _State := UINT#381; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#381 THEN @@ -3744,6 +3820,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#382 THEN @@ -3756,6 +3833,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit0 AND _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.ReadyForOperationBit1 THEN _State := UINT#383; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#383 THEN @@ -3768,6 +3846,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#384 THEN @@ -3785,13 +3864,15 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.JogNegative := TRUE; END_IF; - IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill THEN + IF NOT _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.InStandstill THEN _State := UINT#385; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#385 THEN IF TRUE THEN _State := UINT#386; + THIS.CallTimers(FALSE); END_IF; END_IF; IF Direction_ = AXOpen.Components.Abstractions.Drives.eAxoDriveDirection#PositiveDirection THEN @@ -3809,6 +3890,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives END_IF; IF InVelocity AND NOT MC_MoveVelocityContinuousUpdate_SV THEN _State := UINT#387; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#387 THEN @@ -3988,6 +4070,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives // _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; MC_TorqueControlContinuousUpdate_SV := ContinuousUpdate; _State := UINT#390; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#390 THEN Busy := TRUE; @@ -4010,14 +4093,17 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_TorqueControlTorqueRamp_PV := TorqueRamp; IF PositiveDirection_ AND THIS.ActualPosition >= MC_TorqueControlPositionLimit_PV THEN _State := UINT#399; + THIS.CallTimers(FALSE); Messenger.Activate( UINT#1538, eAxoMessageCategory#ProgrammingError); MC_TorqueControlErrorID := DINT#1538; ELSIF NOT PositiveDirection_ AND THIS.ActualPosition <= MC_TorqueControlPositionLimit_PV THEN _State := UINT#399; + THIS.CallTimers(FALSE); Messenger.Activate( UINT#1539, eAxoMessageCategory#ProgrammingError); MC_TorqueControlErrorID := DINT#1539; ELSE _State := UINT#391; + THIS.CallTimers(FALSE); END_IF; END_IF; END_IF; @@ -4040,11 +4126,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data2); _State := UINT#392; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data2); Messenger.Activate( UINT#1540, eAxoMessageCategory#Error); MC_WriteRealParameterErrorID := WORD#1540; _State := UINT#399; + THIS.CallTimers(FALSE); END_IF; END_IF; //Writing Torque/force control: Ramp time (0x2838:02 / S-0-0823 / --) @@ -4066,11 +4154,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data2); _State := UINT#393; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data2); Messenger.Activate( UINT#1541, eAxoMessageCategory#Error); MC_WriteRealParameterErrorID := WORD#1541; _State := UINT#399; + THIS.CallTimers(FALSE); END_IF; END_IF; //Writing Torque/force control: High velocity limit value (0x60C9:00 / P-0-0421.0.3 / P-0-2249) @@ -4094,11 +4184,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data4); _State := UINT#394; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data4); Messenger.Activate( UINT#1542, eAxoMessageCategory#Error); MC_WriteRealParameterErrorID := WORD#1542; _State := UINT#399; + THIS.CallTimers(FALSE); END_IF; END_IF; //Writing Torque/force control: Low velocity limit value (0x60C8:00 / P-0-0421.0.4 / P-0-2250) @@ -4122,11 +4214,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data4); _State := UINT#395; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data4); Messenger.Activate( UINT#1543, eAxoMessageCategory#Error); MC_WriteRealParameterErrorID := WORD#1543; _State := UINT#399; + THIS.CallTimers(FALSE); END_IF; END_IF; //Executing movement @@ -4145,6 +4239,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF PositiveDirection_ THEN @@ -4158,6 +4253,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _State = UINT#396 THEN IF InTorque AND NOT MC_TorqueControlContinuousUpdate_SV THEN _State := UINT#397; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#397 THEN @@ -4299,6 +4395,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _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; + THIS.CallTimers(FALSE); END_IF; // Power off IF _State = UINT#400 THEN @@ -4312,6 +4409,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _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; + THIS.CallTimers(FALSE); RETURN; END_IF; END_IF; @@ -4326,6 +4424,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); RETURN; END_IF; END_IF; @@ -4348,11 +4447,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives record := _data4); IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#403; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN Messenger.Activate( UINT#1551, eAxoMessageCategory#Error); MC_HomeErrorID := DINT#1551; _WriteRecord(request := FALSE, record := _data4); - _State := UINT#609; + _State := UINT#409; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#403 THEN @@ -4364,6 +4465,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _WriteRecord(request := FALSE, record := _data4); IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#404; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#404 THEN @@ -4377,8 +4479,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.SetAbsPositionFunction := FALSE; IF MC_SetPositionPowerStatusPV THEN _State := UINT#405; + THIS.CallTimers(FALSE); ELSE _State := UINT#407; + THIS.CallTimers(FALSE); END_IF; END_IF; END_IF; @@ -4393,6 +4497,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#407 THEN @@ -4557,6 +4662,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Busy := TRUE; MC_ReadParameterErrorID := DINT#0; _State := UINT#410; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#410 THEN IF _infoTimer.output THEN @@ -4581,12 +4687,14 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_ReadParameterValid := TRUE; MC_ReadParameterValue :=TO_LINT(_lword); _State := UINT#411; + THIS.CallTimers(FALSE); END_IF; IF _ReadRecord.error THEN _ReadRecord(request := FALSE, record := _data8); Messenger.Activate( UINT#1581, eAxoMessageCategory#Error); MC_ReadParameterErrorID := DINT#1581; _State := UINT#419; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#411 THEN @@ -4598,6 +4706,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _ReadRecord(request := FALSE, record := _data8); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN _State := UINT#410; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#419 THEN @@ -4673,6 +4782,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Busy := TRUE; MC_ReadRealParameterErrorID := DINT#0; _State := UINT#420; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#420 THEN IF _infoTimer.output THEN @@ -4692,13 +4802,15 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _dword.%B3 := _data4[3]; MC_ReadRealParameterValid := TRUE; MC_ReadRealParameterValue :=TO_REAL(TO_DINT(_dword)); - _State := UINT#621; + _State := UINT#421; + THIS.CallTimers(FALSE); END_IF; IF _ReadRecord.error THEN _ReadRecord(request := FALSE, record := _data4); Messenger.Activate( UINT#1591, eAxoMessageCategory#Error); MC_ReadRealParameterErrorID := DINT#1591; - _State := UINT#629; + _State := UINT#429; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#421 THEN @@ -4710,6 +4822,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _ReadRecord(request := FALSE, record := _data4); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN _State := UINT#420; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#429 THEN @@ -4786,6 +4899,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Busy := TRUE; MC_ReadBoolParameterErrorID := WORD#16#0000; _State := UINT#430; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#430 THEN IF _infoTimer.output THEN @@ -4802,12 +4916,14 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_ReadBoolParameterValid := TRUE; MC_ReadBoolParameterValue := _data2[0].%X0; _State := UINT#431; + THIS.CallTimers(FALSE); END_IF; IF _ReadRecord.error THEN _ReadRecord(request := FALSE, record := _data2); Messenger.Activate( UINT#1601, eAxoMessageCategory#Error); MC_ReadBoolParameterErrorID := WORD#1601; _State := UINT#439; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#431 THEN @@ -4819,6 +4935,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _ReadRecord(request := FALSE, record := _data2); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN _State := UINT#430; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#439 THEN @@ -4899,6 +5016,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives DriveStatus.Error.Id := UINT#0; TaskMessenger.Restore(); _State := UINT#440; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#440 THEN IF _infoTimer.output THEN @@ -4922,17 +5040,20 @@ NAMESPACE AXOpen.Components.Rexroth.Drives record := _data8); IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#441; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data8); Messenger.Activate( UINT#1611, eAxoMessageCategory#Error); MC_WriteParameterErrorID := WORD#1611; _State := UINT#449; + THIS.CallTimers(FALSE); 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; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#447 THEN @@ -5017,6 +5138,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _State = UINT#0 THEN Busy := TRUE; _State := UINT#450; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#450 THEN IF _infoTimer.output THEN @@ -5036,11 +5158,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives record := _data4); IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#451; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data4); Messenger.Activate( UINT#1621, eAxoMessageCategory#Error); MC_WriteRealParameterErrorID := WORD#1621; _State := UINT#459; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#451 THEN @@ -5052,6 +5176,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _WriteRecord(request := FALSE, record := _data4); IF NOT _WriteRecord.busy AND NOT _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#457; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#457 THEN @@ -5136,6 +5261,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _State = UINT#0 THEN Busy := TRUE; _State := UINT#460; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#460 THEN IF _infoTimer.output THEN @@ -5152,11 +5278,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives record := _data2); IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#461; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data2); Messenger.Activate( UINT#1631, eAxoMessageCategory#Error); MC_WriteBoolParameterErrorID := WORD#1631; _State := UINT#469; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#461 THEN @@ -5168,6 +5296,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _WriteRecord(request := FALSE, record := _data2); IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#467; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#467 THEN @@ -5258,6 +5387,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Busy := TRUE; MC_ReadDigitalInputErrorID := WORD#16#0000; _State := UINT#470; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#470 THEN IF _infoTimer.output THEN @@ -5278,12 +5408,14 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_ReadDigitalInputValid := TRUE; MC_ReadDigitalInputValue := System.BitAccess.GetBit(_dword, TO_USINT(InputNumber)); _State := UINT#471; + THIS.CallTimers(FALSE); END_IF; IF _ReadRecord.error THEN _ReadRecord(request := FALSE, record := _data4); Messenger.Activate( UINT#1642, eAxoMessageCategory#Error); MC_ReadDigitalInputErrorID := WORD#1642; _State := UINT#479; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#471 THEN @@ -5295,6 +5427,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _ReadRecord(request := FALSE, record := _data4); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN _State := UINT#470; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#479 THEN @@ -5377,6 +5510,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Busy := TRUE; MC_ReadDigitalOutputErrorID := WORD#16#0000; _State := UINT#480; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#480 THEN IF _infoTimer.output THEN @@ -5397,12 +5531,14 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_ReadDigitalOutputValid := TRUE; MC_ReadDigitalOutputValue := System.BitAccess.GetBit(_dword, TO_USINT(OutputNumber)); _State := UINT#481; + THIS.CallTimers(FALSE); END_IF; IF _ReadRecord.error THEN _ReadRecord(request := FALSE, record := _data4); Messenger.Activate( UINT#1652, eAxoMessageCategory#Error); MC_ReadDigitalOutputErrorID := WORD#1652; _State := UINT#489; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#481 THEN @@ -5414,6 +5550,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _ReadRecord(request := FALSE, record := _data4); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN _State := UINT#480; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#489 THEN @@ -5500,6 +5637,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _State = UINT#0 THEN Busy := TRUE; _State := UINT#490; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#490 THEN IF _infoTimer.output THEN @@ -5518,11 +5656,13 @@ NAMESPACE AXOpen.Components.Rexroth.Drives MC_WriteDigitalOutputParameterPV.%B2 := _data4[2]; MC_WriteDigitalOutputParameterPV.%B3 := _data4[3]; _State := UINT#491; + THIS.CallTimers(FALSE); END_IF; IF _ReadRecord.error THEN Messenger.Activate( UINT#1662, eAxoMessageCategory#Error); MC_WriteDigitalOutputErrorID := WORD#1662; _State := UINT#499; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#491 THEN @@ -5534,6 +5674,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _ReadRecord(request := FALSE, record := _data8); IF NOT _ReadRecord.busy AND NOT _ReadRecord.valid AND NOT _ReadRecord.error THEN _State := UINT#492; + THIS.CallTimers(FALSE); END_IF; END_IF; IF _State = UINT#492 THEN @@ -5544,6 +5685,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Busy := TRUE; MC_WriteDigitalOutputParameterPV := System.BitAccess.SetBit(value := MC_WriteDigitalOutputParameterPV,bitValue := Value,index := TO_USINT(OutputNumber)); _State := UINT#493; + THIS.CallTimers(FALSE); END_IF; IF _State = UINT#493 THEN Busy := TRUE; @@ -5558,17 +5700,20 @@ NAMESPACE AXOpen.Components.Rexroth.Drives record := _data4); IF NOT _WriteRecord.busy AND _WriteRecord.done AND NOT _WriteRecord.error THEN _State := UINT#494; + THIS.CallTimers(FALSE); ElSIF _WriteRecord.error THEN _WriteRecord(request := FALSE, record := _data4); Messenger.Activate( UINT#1663, eAxoMessageCategory#Error); MC_WriteParameterErrorID := WORD#1663; _State := UINT#499; + THIS.CallTimers(FALSE); 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; + THIS.CallTimers(FALSE); END_IF; END_IF; @@ -5612,7 +5757,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives /// This method returns the actual position. /// METHOD PUBLIC OVERRIDE MC_ReadActualPosition - VAR_INPUT + VAR_INPUT AxisRef : AXOpen.Components.Abstractions.Drives.IAxoAxisReference; Enable : BOOL; // Get the value of the parameter continuously while enabled END_VAR @@ -5914,54 +6059,6 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; @@ -5976,7 +6073,6 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; From c85c5b5aaefe6687c5f616172c5e92ddab859470 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Wed, 20 May 2026 18:17:16 +0200 Subject: [PATCH 10/32] Add debug message for unknown error code F4035 in AxoCtrlxDriveXsc --- .../src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st | 79 +++++++++++-------- .../AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.cs | 1 + 2 files changed, 48 insertions(+), 32 deletions(-) diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st index 9c564755b..5dcb8abe8 100644 --- a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st @@ -150,6 +150,8 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _tmpTimer : AXOpen.Timers.OnDelayTimer; _lastMessageCodeFromMC : ULINT; + + _debugCounter : ULINT; END_VAR /// @@ -1707,27 +1709,27 @@ NAMESPACE AXOpen.Components.Rexroth.Drives AxoHome_Deceleration := 36000.0; // deg/s2 AxoSetPosition_Position := 0.0; // deg AxoMoveAbsolute_Position := 0.0; // deg - AxoMoveAbsolute_Velocity := 360.0; // deg/s + AxoMoveAbsolute_Velocity := 3600.0; // deg/s AxoMoveAbsolute_Acceleration := 36000.0; // deg/s2 AxoMoveAbsolute_Deceleration := 36000.0; // deg/s2 AxoMoveAbsolute_Jerk := 3600000.0; // deg/s3 AxoMoveRelative_Distance := 360.0; // deg - AxoMoveRelative_Velocity := 45.0; // deg/s + AxoMoveRelative_Velocity := 3600.0; // deg/s AxoMoveRelative_Acceleration := 36000.0; // deg/s2 AxoMoveRelative_Deceleration := 36000.0; // deg/s2 AxoMoveRelative_Jerk := 3600000.0; // deg/s3 AxoMoveAdditive_Distance := 360.0; // deg - AxoMoveAdditive_Velocity := 45.0; // deg/s + AxoMoveAdditive_Velocity := 3600.0; // deg/s AxoMoveAdditive_Acceleration := 36000.0; // deg/s2 AxoMoveAdditive_Deceleration := 36000.0; // deg/s2 AxoMoveAdditive_Jerk := 3600000.0; // deg/s3 - AxoMoveVelocity_Velocity := 45.0; // deg/s + AxoMoveVelocity_Velocity := 3600.0; // deg/s AxoMoveVelocity_Acceleration := 36000.0; // deg/s2 AxoMoveVelocity_Deceleration := 36000.0; // deg/s2 AxoMoveVelocity_Jerk := 3600000.0; // deg/s3 AxoTorqueControl_Torque := 0.0; // Nm AxoTorqueControl_TorqueRamp := 1.0; // Nm/s - AxoTorqueControl_Velocity := 90.0; // deg/s + AxoTorqueControl_Velocity := 3600.0; // deg/s AxoTorqueControl_Acceleration := 36000.0; // deg/s2 AxoTorqueControl_Deceleration := 36000.0; // deg/s2 AxoTorqueControl_Jerk := 3600000.0; // deg/s3 @@ -1803,10 +1805,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives END_IF; IF _ScalingRead AND _State = UINT#50 THEN - THIS.AxoReset_Task.RemoteInvoke := TRUE; + // AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck; + // THIS.AxoReset_Task.RemoteInvoke := TRUE; _State := UINT#0; END_IF; - END_METHOD /// @@ -2124,6 +2126,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives /// VAR INTERNAL MC_PowerEnable_PV : BOOL := FALSE; //Enable - previous value + MC_PowerErrorID : DINT; END_VAR METHOD PUBLIC OVERRIDE MC_Power VAR_INPUT @@ -2163,19 +2166,21 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Status := FALSE; Valid := TRUE; END_IF; - IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 = TRUE THEN + IF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 OR + (_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.WarningZKL2 AND _AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 >= DWORD#16#C00E0000) 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; + MC_PowerErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; END_IF; IF NOT Enable AND MC_PowerEnable_PV THEN + MC_PowerErrorID := DINT#0; _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveEnable := FALSE; _AxisReference^.Outputs.DriveControlWord_S_0_0134_0_0.DriveOn := FALSE; END_IF; + ErrorID := MC_PowerErrorID; MC_PowerEnable_PV := Enable; END_METHOD @@ -2535,9 +2540,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _State>=UINT#310 AND _State= DWORD#16#C00E0000) THEN IF MC_HomeErrorID = DINT#0 THEN - MC_HomeErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + MC_HomeErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; _State := UINT#329; ELSIF _AxisReference^.Data.Cycle <> MC_HomeCycle THEN @@ -2719,9 +2725,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _State>=UINT#330 AND _State= DWORD#16#C00E0000) THEN IF MC_StopErrorID = DINT#0 THEN - MC_StopErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + MC_StopErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; _State := UINT#339; ELSIF _AxisReference^.Data.Cycle <> MC_StopCycle THEN @@ -2893,9 +2900,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _State>=UINT#340 AND _State= DWORD#16#C00E0000) THEN IF MC_HaltErrorID = DINT#0 THEN - MC_HaltErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + MC_HaltErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; _State := UINT#349; ELSIF _AxisReference^.Data.Cycle <> MC_HaltCycle THEN @@ -3077,7 +3085,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := NOT _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue; // _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; THIS.CallTimers(FALSE); @@ -3133,9 +3141,11 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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 + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 OR + (_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.WarningZKL2 AND _AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 >= DWORD#16#C00E0000) THEN + // _debugCounter := _debugCounter + ULINT#1; IF MC_MoveAbsoluteErrorID = DINT#0 THEN - MC_MoveAbsoluteErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + MC_MoveAbsoluteErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; _State := UINT#359; ELSIF _AxisReference^.Data.Cycle <> MC_MoveAbsoluteCycle THEN @@ -3317,7 +3327,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := NOT _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue; //_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; THIS.CallTimers(FALSE); @@ -3382,9 +3392,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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 + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 OR + (_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.WarningZKL2 AND _AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 >= DWORD#16#C00E0000) THEN IF MC_MoveRelativeErrorID = DINT#0 THEN - MC_MoveRelativeErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + MC_MoveRelativeErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; _State := UINT#369; ELSIF _AxisReference^.Data.Cycle <> MC_MoveRelativeCycle THEN @@ -3573,7 +3584,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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; + _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := NOT _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue; //_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; THIS.CallTimers(FALSE); @@ -3642,9 +3653,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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 + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 OR + (_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.WarningZKL2 AND _AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 >= DWORD#16#C00E0000) THEN IF MC_MoveAdditiveErrorID = DINT#0 THEN - MC_MoveAdditiveErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + MC_MoveAdditiveErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; _State := UINT#379; ELSIF _AxisReference^.Data.Cycle <> MC_MoveAdditiveCycle THEN @@ -3924,9 +3936,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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 + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 OR + (_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.WarningZKL2 AND _AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 >= DWORD#16#C00E0000) THEN IF MC_MoveVelocityErrorID = WORD#0 THEN - MC_MoveVelocityErrorID := TO_WORD(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + MC_MoveVelocityErrorID := TO_WORD(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; _State := UINT#389; ELSIF _AxisReference^.Data.Cycle <> MC_MoveVelocityCycle THEN @@ -4295,9 +4308,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives 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 + ELSIF _AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 OR + (_AxisReference^.Inputs.DriveStatusWord_S_0_0135_0_0.WarningZKL2 AND _AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 >= DWORD#16#C00E0000) THEN IF MC_TorqueControlErrorID = DINT#0 THEN - MC_TorqueControlErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + MC_TorqueControlErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; _State := UINT#399; ELSIF _AxisReference^.Data.Cycle <> MC_TorqueControlCycle THEN @@ -4526,9 +4540,10 @@ NAMESPACE AXOpen.Components.Rexroth.Drives IF _State>=UINT#400 AND _State= DWORD#16#C00E0000) THEN IF MC_SetPositionErrorID = DINT#0 THEN - MC_SetPositionErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0); + MC_SetPositionErrorID := TO_DINT(_AxisReference^.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); END_IF; _State := UINT#409; ELSIF _AxisReference^.Data.Cycle <> MC_SetPositionCycle THEN @@ -6141,7 +6156,7 @@ NAMESPACE AXOpen.Components.Rexroth.Drives Busy := TRUE; Error := FALSE; ErrorID := UINT#0; - _AxisReference^.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := 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; 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 index 3b2319015..ef946c390 100644 --- 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 @@ -1204,6 +1204,7 @@ private void InitializeMessenger() 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(999477, new AxoMessengerTextItem("F4035 ???Message code not found in any technical documentation provided by the vendor at the time this component was created. Nor did Claude.ai find any meaningful results, even after 1.5 hours and 2 million tokens burned.???","!!! DO NOT Check the manufacturer documentation at: https://docs.automation.boschrexroth.com/doc/2447310533/ctrlx-drive-elion-diagnostic-messages-of-runtime-a-s-v-rs-reference-book/latest/en/. Instead, contact the local supplier and beat him until he reveals the meaning of this error code.")), 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/")), From 6f2be0debeb4ca76684b68b59c6747f30a554076 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Thu, 21 May 2026 09:05:30 +0200 Subject: [PATCH 11/32] switch_to_kuka --- .../src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st index 5dcb8abe8..21d75832e 100644 --- a/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st +++ b/src/components.rexroth.drives/ctrl/src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st @@ -150,8 +150,11 @@ NAMESPACE AXOpen.Components.Rexroth.Drives _tmpTimer : AXOpen.Timers.OnDelayTimer; _lastMessageCodeFromMC : ULINT; - _debugCounter : ULINT; + + MessageCodeOutOfMC : ULINT; + ErrorOutOfMC : BOOL; + _lastMessageCodeOutOfMC : ULINT; END_VAR /// @@ -1803,6 +1806,17 @@ NAMESPACE AXOpen.Components.Rexroth.Drives THIS.MessageCodeFromMC := ULINT#0; END_IF; END_IF; + + THIS.ErrorOutOfMC := NOT THIS.ErrorFromMC AND (AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.DriveErrorZKL1 OR (AxisRefExt.Inputs.DriveStatusWord_S_0_0135_0_0.WarningZKL2 AND AxisRefExt.Inputs.DiagnosticMessage_S_0_0390_0_0 >= DWORD#16#C00E0000)); + MessageCodeOutOfMC := TO_ULINT(AxisRefExt.Inputs.DiagnosticMessage_S_0_0390_0_0 AND DWORD#16#000FFFFF); + Messenger.ActivateOnCondition(THIS.MessageCodeOutOfMC, THIS.ErrorOutOfMC AND MessageCodeOutOfMC = _lastMessageCodeOutOfMC ,eAxoMessageCategory#Error); + IF Messenger.MessengerState = eAxoMessengerState#Idle THEN + IF THIS.ErrorOutOfMC THEN + _lastMessageCodeOutOfMC := THIS.MessageCodeOutOfMC; + ELSE + THIS.MessageCodeOutOfMC := ULINT#0; + END_IF; + END_IF; IF _ScalingRead AND _State = UINT#50 THEN // AxisRefExt.Outputs.SignalControlWord_S_0_0145_0_0.AcceptanceOfPositioningCommandValue := AxisRefExt.Inputs.SignalStatusWord_S_0_0144_0_0.PositionCommandAck; From dd4a9ad8e1825947c8429d57829cc86125acf97e Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Fri, 22 May 2026 09:51:56 +0200 Subject: [PATCH 12/32] ctrlxdrive_reboot --- .../004_SignalControlWord.png | Bin 296442 -> 300638 bytes .../src/AxoCtrlxDriveXsc/AxoCtrlxDriveXsc.st | 95 +++++++++++++++++- ...xDriveXscSignalControlWord_S_0_0145_0_0.st | 4 +- 3 files changed, 92 insertions(+), 7 deletions(-) diff --git a/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/004_SignalControlWord.png b/src/components.rexroth.drives/ctrl/assets/rexroth_ctrlx_drive/servodrive_communication_config/004_SignalControlWord.png index 12139284a005e6cec5ee697fe50b9069cccd77da..02a3aab4ac7f81f1a940b660331a27c77fa51a5f 100644 GIT binary patch literal 300638 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°LOnW*p60U|2cDPEw44W%_;Ab8#t%;Q1CoMxDOtKgiD^+qh z5WdNE9A+B)DTdk~CN#oG*_ceDG`8pyt0UskP}2>Qu~?}*!BaOGO2(M?LyjEZ-0APx zS)u}4HM-W$ihO2g8Us-Yl>6T`R`(wa2HZ-`5XqRV2xg2UK+LkyTY-M*NM#Mb^?4`` zw*UM^zWTtcXSTU6WxxOHjIL!glLNz;X)8eCiy>8^eLWgEsXifBEMARx#2~%k&TRlX z4+Uz=nS9=^U9VU_Dj;5YsiuT^3K1w0GO*~=Kg-?GrCxE_iHTQ=rtehGo*AW9R_8Ik8{1zkI^o-&V z);(>KVcOx}&g@#}N!j#2ECY1*B6Wk}5ziVM{qs%187H1>v%z%-Y2i48^AbX`d`71r z#~BL7xtegEDN81_PNJKdSrerdqg-Cy{@5o@V5g@}@?iXlKCy-7*0hG@*ONq@3zbYn zM4dUe0*J~V{vfK9ked*Ls%G^dVOrAO89|e5zdV1C^BK*Ct_piW1j%61#GTb?{rCEa z>`b2eDl_728>`|mT}slwg3)$I5`SN#b9k~1D~3d8)eqlXLiM@Sy8DQguPzs8UoFs zuoJ%J7sdWwglhf15AoO{+a-(AmuC>>YeR;{MW|KD+olJ`wp~F~%91Ms=Sp;;LbzGN z`UO!RQX^lXg$)Zn=PnFIzeXjO$#XtmXtb78lSQ4qzS%L zq|DCQ5GnWbhe!(SxM~uJNa(>|$RPI{L*sD*5!DE+pCe&Yxx$!OBFceKnWLiKh5k1= z6dH*3!UEt_P8Y~{A#>OF{Es)Gj0KS}V%v-Xq`?dPcq9x8LA{I8Qv;alMKWYcHu+V{ zQDfy4-sS|9qr_ILBmKxQ<80>7X%Tj8A0%x)?OiCk84r3@R!)Z<8YH2nNwwSdSCC*Wam)=I2t=!5R#?LNR?v|7Hw~@9(o&G$ zgl4LKMtdr}n~H*rJdR2MAG6XtFK=$}*@EhwDg7viHV?cd5fZb}&|+#;ACL7{!rKeQ zE}xRwL6qjw{!`(3WsYE02p3OiuQ(!CXyz-lp0Fuv>jJjIcLP#jd%{N8A}W3bM&$8X zIig3-n^V2H=k$4l7=a)=mJ#D#)Qtu`+mcBF_jdD|$UJk-Ljf6~B?lKNlv!|YXHwFFs3Pnu1~DHE5;4LHMJEfEV@OJd35kra%61t?!Hv)qSUg+im? zDcCfaXYpsxp$&+R)y@jr#)SUavqZ)SMp^wu<-`NgevSz1{q~17V8wx3kgx8{fHLAr zm7s>y_)=mAwV`w*ksF$aDHmrIE{Gp1Dwu*-HPM}QX8Nmz4C&sFS6QWg3ZKcp;DBSR zC&SSt?80rXpa7Dz*9(##6JX{6>m4AV5f%mpU~dAc1-8waj?T_;$;rXOARw93uezF{ zcdLpB?Dd>85nJi1S!vigFT5c~b&j7c&I3Wy99H?JW61Re`hC$8z~8I({Ur!vDh3&{7eArd8-$q&sMRapQO2NV|%b>=1dA%mLzLkeIl^J9^a6XyAP0#{WXX_tN|an!v0RSKY)G_k z6NB)-^oA2Ih0CGLtoX#I&L$pAJ*c5Ipbyv^CQ~|-nYMEU5V2V4|L67V?Ck*aV@s#)x!3)5-3TQ!9o>gY z6JNh5MLsX~U=0VVmXz3t2t+c=>ZsNGd4>5h3PVR0Jx1#z_~V)<=u!ap_k}62M8ZtR zDYB8>&en$p9uRB>IPJ96MNO-s zzv_6{aiLMr8xOyHj)1Y7T2m1j>Y#sc^!UjA#a)*FqrD-V0M?hQAPBr?b1Fw^kZ3W* z&fpL2j|B|d*w?8Hd|A~7_fWHeg|d2AA`6UPRsCnCg?IfjE&p~T)0cThw3&XqJjAZP zc}b6=2=U-V(OS!iZEP(;7B`g_P|^qUir3-_Mkzw!+u#q9ErmgscPFXI_o; zx{e`8h$txhSwqQdeO{fNVUM`zDGj=C+eO7_U?o9eJhS*Bf@UHG_b+qJw}Enaa(@=# zQ&^qo)V>lv&fVHNPs^_jcGz>`s;!RMyg3s4G`pjLdtY~~D*NCbGMHwmXHvc9Dp!5( ztyZtY$#%Xv;j}z=czdlX`uEhOcy0b(^*DYMzR`d|ARcS`g5|LGIre66UXMk&rm;HF z*aA+e3OHrX+ml<9`$()$a~yT32??D%8)~p$6ONnD*zYe|b-tPm)#LbIf@|1oebh+Z zeo|C?1Ou_VkYFb)_xnBh6fMD-1sXDx7n_hieKd4*TwugOmmD4djXb@)ED7Y~0$G+A zn3#HXOM}D1ATW5lsV*!l5~*1Q`Z7?}tT&JL_>P%*Kec_AzO;?u$ z7|0B00g{N08T{J_3e_CtV;JNa5O!!(`yqCyKp8oex|px3-B$XyMoe@5-MM1b+UC#o z+r{y$EE|Bp(UU$(a_8mly6t}bvoPVJ%;_5%p3fg%&7MDhLXacHSW&+Hh=*_1l4#=h zwN)VDiiP?N$1+8}_j1!xj(&m^pm$NN;pN{a>zpEnF0l31Te@wT-yf$s*hj!P>cI7HSut3xj-kPN~ z7A&F#Xy7!h**k*evq$Au^2E%)D&yROsAnfLYfc-=6UG{ceN9 zBKKne1hoKH6Ylm9wbU!_bz}AJ|0KX&B-IcN@0K~N@MWVNZtwfoBh}~$@5#8J6&2ig%zt_v=k?uTS zT~-+qdO*(zu}rRC#NjAz`ZvWCJQY(&#?tQvjZS)}w7H{6{@gndd(kigWPmCX28~q% zbn2zPA~jfUy&t|nv|ZZyw@(Y1uLs@6$e?a+#?U?wpEG!;DK-T8q;LwjTmnGTd2uQH z)Nke2_+_Tm#am&mzK?am;{xJPb?*;S)(^J?{oKITaGj$X>uOex&Db~(`L(eQd^xs? zw8tZTyyH~L)vo)|;U|$;>MX85wge}?Qgr9z6QRO#O#EnN7I!cmL4(>R5mZ3l} z@73Kj_*`D4pI?t(vonE*hW5`-3&tiC1UTu5eqi^%maAW1UB6scy$@(1^Ni=)oEE^! zIs_H!-YB3!7+kr%1E4jFl@Dp5N~xWOAfX9uIS?qMx`0G9=tBq$E@u*1P27ikKVVBi zdC`wMh5HZt0XlP4kG8KMMVK+XvB3zEuJLbk#tl`jiIl`o&@OA&C_Zl!#XByy$nBK3 zu_a0aOr&VDwL;Gng$!EkXe zgQ*1$SgGIc@`Q?KUKT;5{9&hW|8XF|2M}^*ZA>+~WWKnkq#rVso2lrGlW&7ylqF!L zrOElI;ttOET2MA62nHUe%pyYJKco_X3^pMTQA4E3X{l3DyAghRq7THP5DT=OO*(fH zKhc!bMRyT96FJNXeIo<0I1osHIF}o^(juYm!o0_4QO$aTOXSOc_XY;VpWWvll;`}a zi8|G>G~Dex-}=@1HmVg}0d9OC@d{|KC-Uk42s9@IL9r;<*aKI)BZt87ub?0hXf#Ml zO8!&b0vQ7Zg_#;+fptTh&dpcDU(75lxQn#P%F5K+TrcmZ>Haa)Zs*ehjy`UUu>TO< z?${~Z+f}W|ywwggT$M}Obzlqi4zAKP>;QF|mT(czmvU4j8 z#P!%oPw#C%-d6d@=;>|RB}d}3XT4R2*ZuUSMaR|}QHs`*4pOzVM5ZW(%A?iS?xE(HNQRgIF8Iik zBgTNKe!BrTG(3!>s5445|G8{DxR&h)vnSC|w;ib!N5GU{W{6iq^~*RX_8D z$L|=`$p5^|`NqK?TEBhUMNHv&18MBGThMqr?X)~I8XV6w9i^r?u)iWrHjx>n=mJN{ z3+pAxh3=o1@_j}2n6W#+y5*?u@qYIQs)^PJ*v3cjEeiSj?E_+jpTRY{H<*{&!Ka&8 zds+Bx-Dl{r!%~&!j>X64(Lpi@o7YIoao*^95K{+4=)fD@_6+;T&9|{VP-SwnaKs+6 zo;{N80yG8~V}E3OhQFN9FWwJjH&Jo=Zx{@F$CIHk`Skc)UoW}s@Lqh*uJnv4-zGgs zQI|jgUGA>FzCp1OP`8GAdFbp$abA*TUrc{ztS8>t_Ibfxlfh>8K2nc6EXrp~f2UoK zvV1}0c{0jGTK-=?a(Qo=Ic-QjZDOE$=dF~i^KS8K^mTe+eS#fTAJZCKZ z=9dZ1522Ym^jdp-^#;tZx3{-1KC)-8uc+jQ)!wx0l*Jdm^Z zvj^Gd4qYOaS{V|O3Yi>-*BC6GU|LV3EO{8Z9s@!hWPv;ifJK_jiOsGq07MJFcw`U0 z=9hi{IaW^2pzG?FjZ~v9ZE8z}&eUH=vIEf~*~g-?T%Arj}K7-n<2D9F6>uAW)K! zvwZu>#gp-^IqhIxwgosQ9ERIcI}LDXcv9|UP!2K@Ig7m1w`w94amdn0D+I0#bw-2V z4-AflF*x{RFZ_ICo$Kmjl*E-AmC0EB?CO&gJ$i;GmZ53(byL(zv2lzg44ixBkkhMN#3qwkRg0^p#sFFQ%^_&BSiA zoLzq2qeSVO4Yq2z(ZL5|zefcFa1DRymdzzgBBDjnnWJjb@C?1O>wdT0%Ln`G zljHGRhe@@er~&P*vG=na`P8lxRPMt{#;w{CSd|}k4JLpp`lO&` zB*H;`=H}ErXyC7VsE^H;qWeiM11(HwGV3(3e}~AH10!i^DI`>+$THf{39fzpvJ(HF zuI@R{o44)Nw{BT3q}!vKdR8T)v+Zx59H?Dtj6hg!6-+rbT%O`&UvJKxB(5c44i*la z9uX*BNEt!F3hF5h%8cMco3g38Xp9>Z-~`gcCw5Ck*m({+{w z+v3{rOT|WNx533cVpY32Uc@~O{TbLZ4XiI?JX&$ z%2~O`3hXcL1Ya3K559f5oR3!5nw97r8~Y}NDAO;y4DJbe>hMqx7e--Ab5!BX%NnyR zKj}HYpZcLH+`j&koGzeXQr`GUhrF>Zt%whQ{>)ipB)k+Y)HW!R0$dnPqJ#Mr69o@V zx}-CKo_}S`%_IHLvO*mm6|9C^K`I2vD;p4>>G;p(WZsEaCi zePa$3M$?l8;wr+Amd%kc_G*g{NIZU2qy&gEI%#5TYG6us!Uos)$^Eq?zs&oR!pj(o zQHW}=FQ2#5oGe4ZIvHBrnDz3ad39%8=Ox8hxaOTu3dZ4Q42WH>8n02WH)+z_K6oyHhyHY5}}6YS{#+Hb~=1o2T| zR8mBhJUAAOhJZ&kWW8fCgLyKB>hxi9VzuZorz0`GN4%v_FM5sBwP=`A10ZI48+y)_ z#=7>LG*urCu!*d}B?o)tj|L?rgFhR{BrJS5DngjQc@qh!R)rMaw2@}-YKr;O%IT)S z<}`(+O;KrltW(UjF@&q#-9evDhUs(5s*|)0prI{p45g((lEy_I6GYC5s!Cel1%ugB z1}j3P3DIRz^87OCv8KUsq>+4O<9kf@cPi79nxVfNeNWR}stXsxn7q*HOrl7Yz&%F_b)5Y4%v@~z&INdx^(Rk2#Zf!%_r=OfBbToQ4<%AZ4rbU$Z3M!lZ#bLTz zvkZ=(g!aX82nBrG6JAt^t7|m^%c>#(>c#A>8!EII>a2oMqj=Z#Z(;j zo0a5|bjD<4x>@q-im>W4IT%M8Sf=>vP6#-kl@`0&5J8v2l^n25&u0D+QIjV9I_Wnu z+xzyyV}HL_+g=|FKzp@@AI2 zo}OOuEM0N>;L@2b3Sa;<1f)LXG+d#{>&f~IVHb}xWrN>BC9N6jA!o5CA97@^ajUz8UV(bt?t>7R%aTUq&L(+E?{l~ykS3z^Me zYhaQy5)C5Dc#wb%cBj6Xj9HMZg1wzVWj?yumaynVYR@X_lYvgBaHMh>`K-!NcP*bgUdx3= zen`3tYO*wfkel+Bd*{N>f$0EhQzjtv6tcDTz?3RitX%A*o@sFb@bwXYaz@U3FpG$u zL2)&Wvh7@O8||=j$5s{M{!Gl4m!2qUtBfEJe3VgF1^+_~d%8d(B8@q?8P{CcQL(K7 zR!*3z8#fekq&|={_-J))GE@g!Xtgc8$x@#RPJ;b+Yx?0SHYy8w>}3A0X5mT^d<@aB zn$YQGRgLA=gZq*x3hCWD3#=GaEXk&M-?=5h?{3^sp8yIA8cv+Jh6dSCC>K;DA4I@1 z?Aw=*p$IWlhh~aQ$5+=li8vA3TfMusGt4-n38`RlnJ^*n{p5^t zZ@2p=FDydF>wQLpOGo40AT+O0&IABhp8diZMB;dvPXE#m`)nV~nivrsb8nh54Bu3rzK=LnR4@wyx1au5NTs@e0<6 z`byx9af1acj((RBsWBq%`Y_#+%rei&)8_Rg#9l=4#$(3L8Q4^M zyI!9c^T8nm_|J2;UmS2bjR{=wB`phK+`mN0AzZAdfM;NoHk zHw5+_B8xM$RoX57(j6!!%B(NUV(t$!kB56;UC^8xOV^67B8~U7C~X`WO`=E~Ax$*? zFm!3U`Uz(YP#EOn#uE82bBm`_r_5Gh0L^nWRJ@Q<>hvQlFyUWYP+gI2_g1JOVtwS>#b){>0;t@TpP={uP6cJ$t@!}+!#N55pS=blFN)R4itdW-GxN+x3?)>YRhb~ro&;|+8(n4_laaau%&q|Nv z;llu~Q^biym2r)MFzE9(Pm8>v8DOw};`znTkD6$5@Vn5c51p9zW~pD{cq{KyusoHkX*df>#rmInftxZ2PvT?kLGR zC85W%t2Q-175cqUG@B`jF&CV|=Rj5(YF9#r)RG=XZN@NJEN(Qq3f#3)1S?Q3QC|W> zg+c!e#fbP%X9C3Z-q`_vp-`uor$a-L_llQ8pKa4KBmt?)WN}4BM0dAkdX6Xf09 z-IuH6PBLoh!<5r~G{BC&W<8)^GYRlMfZjY*z(*kXL!(l(cqVt@7#0CRxKb4yD;|Y^ z@zJ(*4KP^8rlf>ucxjZ{L{FRsjmx&Ypqlz)9w1RN@y7n5i;zY1u8fL#SAnZzt{L~Q z1F$3$@IGdgyZ)il%_Q69IdUt2z{nmssY_wi`QA-utd;^WWt(sWbo&k&0-XT;haxZn z)F;WpxWU1}&Gc~%KwN`>fPg~e{Q{{CB)b51salf>BEZQXWJAHqnrKngnJM*-A>b8{ zk&T_;_chSSGN*2biwB7}By%)<&u|-FkteH)qLO1KLrEYzEDVnC`Gnc~zI8p51kT-^ z&1$*#^?rQ<;8MWCKR+2314h{kFI0cN;(kE&egAy<=qdJw87e$LTg*iF?1B9B!L|JX z1&kIRH5Bfk2}G52!U*S~%Z|MTTt5dN*-^}Ww@tzyZZyEZAx#{K879}+g~0IV1EjdL zpoyjhQ*N&<5Y$ zSfxpiQ1ZsD`@~|-1gF!FJ1ca~>=3~A+tQL&Ue%EX5Ct~V<+1@{LGArx=Wepy?pEJF z;z3_{vcut=&-P`e6APkeqWgqJ-Q@2>m8|Ev$kl3B#_(kN{b}g;{_Uk(7Gf2oD#RAH z%cHtu^}63_*%xFyl!j$r^p1VJ2X?W)ZdVawC`@v;0qzVG1Wtlkz~we*$OHf@?3)Qv zrGu1dc+JkUh%{W@Sui{w{gLb+k?JEX_O0lJ9a^nIMR*yIK%S) z;5(yCEf@Spd*G*w9tcpU<(uC2c*v8dk{|SZS+{4G!g_>}@V(N2ZRE`<8XyVES<~z= z^z~U~IUVfjWuD`7vM{b&G6ll)wl5LZZz?$nkbpjEH;^hZ1UTyeyaKN_KAjZzvxV?M zd_RNRIKiGYaZdsVdy>q=#o?X)UE`7+Zo28PcQhs2@0p@;600lVFYtOGE2I09`6)UJ zGTEMU4W8O{ZSu?VQumOqLrp9nhK};9nxpa}q5LUi$vI2HTV6ETEK7^t>x-*iu{>oN z_Ui1k=s2O5Ynl+$HSFDZ4BpEy_l*K_?AoS;BfNFI}h!;>(p@$bO*>w9=RNixU0E+yDd(9UUF#w|NqU zioiH*smTsp)qaNua7lW?Gl>4fBixvDZps0t^6ULe7Pk#=_R@3!#%_YV@|u8+7$WA6 zg*r8+u+ehs?FNst{Wt!XEPk!plu|`@{YL141&`{?RL#s3>2?-`sJ%4qx6wi+LD`!X5+XNnL2`O^oC}X1&sT2u zL) zr8t~q^Zbp&NXWNik)%Q>G?&^bb0YY9@2+g3-zaR>wAflnq2q_2Q{lX9N$^sUqt|}+ zQGghP1EgsMcO14j%rh6KqTMFL`p(2?Rr8Qw$i9JvoM)w(KDcTvRv6O;s1lsz(k;?> zec*~jOY9AvU>*F{iJLwWEk-MrJC%n#n{%OY$nJ6B!TaE44MmtG^lTn;vlG|O8I8?$ z)O3AmkrGoNa)!BmF98dqOmeHih^$_{yw>!hA2ak3GuIE)W_|Hc0C}JyG_&Pyg`m;i z#FI1iaCm-C65C|g+7}|M@2J5aAc{}dNldI*0EbDFh-`Lxy!sjuFlbiy-FppVnq_hw z`J;e2h9WZ2Gl}sv2^;%EAq~q%E(jJTGCKSqZ)E#W{N$C$wOuha&}y1LRZgY=zSo0p9YwJdkJEyZj3g*{V_(g%_p8`%?LzZ z7}gy=)HCQ@rhgy#=sO-h;*WHv*7{n!UwrZY%@SK3Hu2b#KNf*xRnXLuwq_(-zscNu zu|9G2yreN5EzJo+@nrtTZMh;$gRLkphfg1K9_Qgi{|`xXF$1ujCXa6e0bDc-edWwy zuPKW@3ts1fG6la%@iLu1>Av#hzk*yAm8skUc3x!>4o z1}Ce3BBGR1;W+){hA;c**VdmYIK`(G*Q@RPD3d{>g?Wf9&BBdyn~2S>HT(kv1PWVc z3{)A+w)cjh^6b_mx4O6xh%We>xaSj{A!}vb==8pNRIURnQWGs+zw4qHrr~I>HKm=R z*9>Yq#*!9zj!COs-J9Ju_PW5}^Wj1;St=~HjB&*>;x7I}0d>HGI5dqKcKJP|?RKUb zBY$NaJsX~BZLj@Gc3jE(ebo|vL&#unO#$>GkQ6g!{FwN%SBOa@ zI54(-CABSKw{xA|*o3L|Q%(e@+HxR5({bNMd1xlb4h<(dTNw*m#y$ceN zPD>DuD-ZA+7W`|Y-9_j!VWOdmv(9@%#i0fxkWHKnT(hPud8*~HLx$^8=kk94piYqf zGn=>W07dD+lMi4IdE*jIbaj2;%RbLI%sc^J0FZC5Z}AP`x`UjUHvpxosJ=d7sm{dV zVng7@o!8ILZ@q~Qh?uRfuip&jra1WYO%TGAMPA`!7eMg(-r{(uw$eES8^A}Gli*_g z;`>HLycYop$ChP0xqoJk!yGSVtu<)b4)1W*`8c)=*&nGGgKN4!7Z2%mw|0pJt&snn z;inlMD#FnzbH-@d^XxR<8jF?^6M#P2OU{bflu(JlZv{S+}&d0*w@r{3)1!;I99QB`%;y@7C?IWXrZSw?~p$ z`Xx^VgN)2?;?MVw!1UkExFwvIE7k!h;Mvko6Xw5H&Tj^Db?h0JlmH4yyUm~2Xt=nX zZM}`#_rAX~Wm}0lDY72q$@Si3pDMI7iqq6+ShAXc>__nLkV2*#i9_KQuR%*^sNiH? zK?q^ytrxO9P{mC`l7h08{{f0J4d+!)pC{3QP2LvjICh6A6WJ~gS*Gez<%^(6e;&WtX_Q>IKG7JeMrrKCg_&Z%LxiT z8o!jBnT&EFP(X=eUOWgE&VFWHLw1T1e`xGWVMSZmQ45xaN02c$x1O?NbpVkVmGc-` z{{S>7F=SF?0G&=LpA}g@Y4}2{n3;(>&a@qE2W}GD@4;~U5@^M{0A^}nNS_bza>~kR zfUlCu%0ghi=;!ybP5Ydh^6mQnLx=*PH(;!Axx>FAWN4Y_ABm9=&!38R=7U$xl#}Y# zmfqo_fwyyLt1n!E3WHX&DaLNQAC;JRf^|VN06=>kwkQ>&@oQ}tv z$My$HEZW4x8&PQR5YEKlBnpKD{9rlT)YN(RHn;M)Uf=BUSXU1E{>2TtHL`UhcCyPs zaKwOh4>?q)bdWTe=$7NQ?epbR_x|UE$?b0Rd{t&CC{Y~eN9c? z&nWOdil1_*pkdE`y?&ir_c?Slp@SOn>nB;w5c#L)e{`ufZ%@Fg-3Xs79i|LP`5w=U zR0A2S9F^uxK*uc`jr_uQ(G=VuMJDd)ZR=h`j5mLD>nazMoF5Rh_3C+}j!r6Ny{kjt z(LGSbJNk)zoOI97hYamAP;JyKMD%Tb5dXS(VNmy}vjJN=BM!oV767|( zZhfujr03Z@U#e5k(juhqd|_fsw|Xc#A8T{FUaZ#Zxd-%}#=WZT@xR~QuoTh63D`3u zF65a+S6puoe_M_o7tHY}Tj#jK%VppH`1?{30e4-!&Eh_rQ<8`4;O0h15!50O5rJ&zf41N`>5j(!}Mgh!JK(r&Um zANtZ@s3_w(^i|pAw8hl2F)vn3PQhu@2mVC2yatsY6;-3JY6BHoujLuBcY#nniA+!m zhdd3ADciLCoXlKqgvbD9l1SMv)b>q-c?_p5AQ0~BidWs(m+&w(xO7ACAk20QQ@Bnp8qMG(&fYHO-(u8+E|NEnye?UN| z7dzuUiE?MpjL!?M8lCp&mXyur@^fc_>C=17MVp;;baH+q?nug)v+bH8EyoULN*66g z<+J`yFM)lh5nOh zcKX9@cHhJrVw4U)2N`dq@qEG4>7&tZxit5_8=zcbexqPgLKEk6AW~<(MT>GN?lEBAU)!Lf==a1kHAo;|_1rmS(s=dEp?l<6c z#laD`w`ZcJrWP+yygOTy0wN)S%Zy)pW8fb|3L%qD)~wf7hj>r+%PVD=(mT$o^}$KO zIm;2xMdz=&{~j$6-K4Cntbsv+R|EVnmlh-B$(mtPriT0Dng1w{VPRo)Y!_g+gWO;u zypAi&IiN=*BZFvXXD42`?sXxfqJjxnc~J@A9{%wrr8BvlTx)=tWq|Nc4Qy#?NwiB? zSTeH0SSEWOB`kVYh13WF*0ibo8C+JT z&_M>o7G2(t-Fm`>CXAaejC3i+BBR1(Xwx4p`>5INhvUd_NXLD;Hm#e^O~9jQwny5Mxr^1 zlCh;dp)wJaU&+HRLa4|NU|^%kIA}hk4vWNkV5m(H_w>$^+-!a<0YY6UikQq-sYDHp z8QmS3N=xkm1A7^brD=1y2x$uAa;U!2L`GFVaKzR1GnoIuD3Tl2KS~h>C7R#pNdQ#r zct)000^OM~R?Efe)XG-pnlCQIt>y@ePI{)SH1)-oqE3iNll7+t zeA@4y(;KXda~i_w%m~c%;ClJHl1+i~LPkc$(a{kF80QHKL((L|0hP(hcK@Lx5$wss ztM@7$ww9I_P;mk$tNCxd=9lBgp8r8J9^AScGA-5Mj~VS)KSZef!(vSkHK?iR-4Eo= zm`)KEujDls1_j`&T@D9-CRqKQd4Z_2$EEOmSK1d-TUZ6PV+P+*d3ohsff3BN3Oci)|^ zL~9(GvW3EoM}RISi-CEFr|yio_Ur!;tNxmI)A37WvR7@qs(385J7Ht0$kclT;KZW1 zUg1-kAoo8360Bz={01wNJv-x?RR?w3*JO>m6Jsakhvjb zt;1<)ApkWhUOIIqK!VmdUFZxz21rxlh0|4ujB|#ixr;tz~WdXJNuPJajx1$+KTlwVsL z2NVWveDpvj)tHym4V<`QtwF0s6OyHSn(|I6L$zInHQR`} z*}F)P#njx(ZH?3*2f>Zqonnm#rNv)Oxh%>k7V~PUE%DUfDHcA>F^hUmXXW&IyZkza zRbSvLtFQ~zqd4^FI^8a~wtnj;P(C?Xm*()fV0OMdno#u%=flZ^u0v3U@?vG*5%0Co zCqk&mi*J)Io4fuFze(~7kP2NxINs9?X5a)bPl;;fe`+N2-HEX6nA7qd7|kgS&V$2Y z+Eyf52pE^haQly3Je%Dq5bQ+i$I%co|~YNqtF zyRo*nW#f+3h0(5ywU47#DL?LOMfrn|iQN6w*1bYIwV1fj>)#|kWT*)=+LBvtG>^7D9bKF%mN57096NqyfTB61`p8;TzrOm#tIqtjGB{GrLEdl%ZZ0^~hff)8f zlr@?K{OjqX=Ok-@&daHFmgX%>=j$%PG&g%~%~<%<=Zzk#vf?_&FUR*1j2cKkb)eD? zY(}?*_9474qp@AjPoW=P3%;$|R2EEbiZH&idEZ}H0A~E7!K*i&s=YlRiu9!bHG-oo z8Tpl*rM^+ALc70?7-8-)2p3N|(_`uFHy68s`N)3HuT-(4mvo&`vPuW=@eePYOtC~> zA`z5=_lVXk_ed92;HW&1ud~++r=F+Wml2BMN9o)kvIH0m>y82}uk1Sv7w%+uu3w0_ zJb|D`=*4!*>A*5`trqIM=Nk)Wqwv6V8 zKUV1v=kQC8kFNx2^BW$;bDz;M@WiaNz^cXQ#1!r=UuPF2Q`=(j>y;Thl9n_mbq?E^sYv81D;Jstk&U`# z0~pyzN?w?l&w?lRXI}SmFGoib1&HedhFv=iGdS2H_2PjUw*G=+RP|Q%PKYv&u7OS{ z!MW+R1sp7rpEYhw9YKO13sdv!ZCi*GQy%s42A6ON&7_}9JMzhU7mNk8ugsiPS|k3m z^7T(7jzdhKI1RJYi)|j+nPjX+bR2Z)`O#Sec7ieoB>)NJ3+zc~Y;dk}psKDWczTC} z1&$Ngg%b*zf|SzA<%EYK9^zFOisEn@PBo`2{{a};Kc(Dl<9xyP@r5PIEd;kC2H(0h zX#Gte4pj`gSvHs=wMk;(;>cowft5N1-KC!2!>s<}0gFI_cdE>F7m2F0y8Jdm%J3L` zPDgI~9o-iMjcU%Z1Wm5!SrS4@Z@#bprkU&j3Ca+vG#;QjngG1-=>5sro^_Qca!sFG z8`tBY>kxs62yxMfaS{$iF%P-(i)sEA0Gka^TYY@q*`b1EDgJK~kLA+Of$xo$57s7; z4m8Elilt=#nOCcAvP~bU0FE-yy1&W*XfhGvWP%{I9OY8^^0^Wf8f7?KrW%;dIGAxZ zesx*m>`$YZmXD)>T+E3#L!rVPr}E!NgI=|7B#2(_-1)psC|Nm)uSBd-e}0u6%_Cu| z%abR5-TqD{N*kLSClMPa5>h>>(jL7<$axd}#_15ZQu@S@?$x@CDkDX)v+{PqCkZSG zjO$W+d&z(dE1(4_UZ@C6zvYpL@8x}MKM)Z>2s30lKT}~s(4D zttmKr_)cIm0chx6NiQBUX6@nHwe0kH{YxAzy!`fn4g}dSwT_df|!9C z4g`_>*71&evw%RV#rwwknbrOFimK!0%-H^zfuS_OKq(&`CgH->9Qf9$9aaLT-P|t( zjqdVF&^Wyq@4i8tpSh1yYGznZ7Q;)sP*cE=5S1#oJ2=Utj9RDKnR-eVjIu*jVs)t5 z@$#qJ{qHmC?-6T*pKPf$h}eO~nr=te)=9sr_RgCh<8^gH)f5LzV|jb#>8kbS9|Ru$ zxE(7EIIfTsKw_i=s8dA9DM)}p0$>_}vqh*(iD1P7VZ7J<;OXtNnYA?uCnt8~pn#Xx z8~s|hvkZRi_cWyt1xo%P{G$S=c~K?oKV~8{CNh1W4~c&O6pDt11V4YT_?q!_Ha9Fh zJTf}E>%@cN=y76VVjv*Ls9w4qtDviQwZ-#%Jcv(BoXqBKkA34MQbbX4{t=xUh#?557lC_i?wGDX;GO9I^oR(}S(B7C;K-}hc+0|7 zT7X54%jDw|V;F_9FB}5*Hk5(Wy!9Cyvs~d}i)mHIx=ZI1NHho=4u6G< z9NfDm05lKMkaL-BN}W{e(OOe z6nxKrx^^IzgpDP*RDYv+otEs0>qtr0IW1{iIgG^Nx63d+w|55~f=x;wUo`Y+UMPj2 z^Wsml`n`J#NZDu-9-`f4Ez!_cnwb}Ns+@O(Pk_Mr@$g4tlhy(0^Y%6z24yy}JGt-8 zpiOX?!SMlSXw;IeraN_VkXa4Z*~+~YO5KUnkSrKU&z$(RAnT7>1_kA*2_jAJHAPS; z38T9fbuTh#rSs$;7AHL>=D5d?@g!Iaz|xmoMxg=XQRjXzkHx`>Z9Yav*j*ECVomu^ z5h;^^DtXTjf59nMQk(YnW&#^xa?+(@gDAPc509oYqhC%2_;o27PyT%yb`*sX=mt6M z8G-HvW+oWoFEY8mI&+xlx1#_t7WA?IH|IZ z6Z%sV_7j-KC8W&>Iu(%8TG0CXqf&VIf;G#0me!1o(IM3#dF*Xw<<`Ybwf@j7w%d35wLIHvLm74|M$z;TNQ-(Q=rxIJ>;Z zv;2Vs7(lFKs{L06*cZAusSY+>G)_-SEv*WxwgT4nhGQWSpp#b3NVR^37B;wNvU+mB z6q98$+3g*X=P^{rmAkOF9j7pIsz>Nx3J<-FN@+4gEGM3M{>KVjrUZzf{I+7nh&k$j zR^J~BW~^wm$vi*cAM$t@Tu_5t=m z=F#RbU;?g~ju1X0A+|wujK#l<2cvVbTBL<`X+~kDPislK%EKezO~qh9moXixn;q^x z;6YgSJhCb;X=+O^#$(NngQ9NtV7N}_DSvF1+sf(rYk7G9pWA_7HFOgS)&m~%9L5%&1iYtd~LaG8Z8`uJ+83kV7ao(bTD^7 z@lJ*?J1sZf2*GREtJ*!${S1D!Y5%o$K#W9Xu>4b;bw<#z5wn{%X7*6pc=K(RSc1uD zB3oo`8C)udA=Hv~f=~@CVcRXgekhS$9|Y4J%80o2xZHvt4NrRa4%{dvb^4rDijYLe zF`?%-XlP|@#JdWJLS1T|8Rh)YFo4=K1os+w)g(2FVw$tLDBAEy>grpq+JF>{es*@4I*o`?-Dlt7mu@RgB%A+1uY4-k zVXaL@&^_n=@9EQ`y2+=k0BK%S(+?^(xGm=R`mMu3=H=+|Ie*||e$L;r2D@7qk`Rcs zVBC-o&)o8eas6!fI|6Ml+t8KRGxr*J_QvD-WnKT^hLEgFZjs@}1|OX6F% z57)0}9KD`CU^?EWsWlv-$*HSK%38xZ9xo0yyVoZ-Y|jmB3;t`VpXk-8hUf-d?5m>p ztFLamJMFEn&&*y*f1=e0d-q-TIR9h~9p3KTw#7-lJ6$XbWUa(d5Wp&1a^i|Ws2Cy? ze`N%Hs2*yCm~M&Q;(lZL>|jZ30FAws@DH5o6&!YS)jy-!PfU>7HT*Mx!)j!+YvhjtGzi(!wpUYa4jRmu)Sd2MiHHqk z(ibOfdRCXD@mT43xC0C2n1PvXzG9u2?P=eMlVPkFDUT)7EkagG9OMiR8Q)W*!%psE zKqo>)UIv%X&_Gn4V`eH&7?HUbtFv;2yX#=e*-7~BoM)Aum(q;9d$^ZhmVY^omF_d8 z?C0Lry7!jg`g@M-=;ayjq|Q&QBn|E~N6VGg9p}yGh6EPvZ<0Q>en^C~qiYDLSk~l< zha*S$W;=SdxQ5M{L6Gc(yWv2`nCX{&&8)PoFChhhVo{yblkG>T^K-}i@g*n0W3 z+|T|?paLi+BL+K5wwyZMh6%~!$#|=g7qLfUlwS|QE@&W|i(LgU{>Wqpd|b7)wOa1` z$qmiTiV6w>=H?V6BqTtjMxEV`01&ejC(*t2LzO2b`J>nXdWox_EIEx@ttlwuSJdB< zgm{(zbBUv>YVm7oViy$^iLMp_>P&z*k(i$TlC@^+MtIn~<(@&K$x8G~?B{AxN26eG zXEk}tB?bE-VegseCUex8aqYSurmnETTY`@rf@s?cc!#B#MO};_0 zCHdNqB{!VmtYMLVRj1T{%-ml8F>@E#yZNKsrnVocd6FSm!3}Wl3sgNnyNacILg(k_ zhebsV7%?emYyS%mBa8=ltTBJDfHPW{uz^&u&%aT4MTH<~BGUKoPJf)vwqm3zf4Hn_ z(H=D-t(%H)c~GSACdgiNdEMl6_^+YGh!oB!%r80<114*y?IvtYdXsOA7o+-eByf~N88Tj(Nlz@gI@~5Wr%Uy3C!IIp6F3hN8iefK6tRo$* zBC01gAeV)Z)el@~d0xoDiz&huMTwIH>(0Ku^(2{#$NR63jqLH^cIdR@TFxfH+9~%t z*vzLQ13^eILe<}Uvh2UJw|(};-4m#)TzzDXxK6kfrr+mtq{3Tf|w9wh7a|K`o=*#Si13 z{d3A3UMcg3M}^&I+#eqMMOxR}&?*P6IIG*>Z6n_I)9bE>x~-R!-cI-)2V_7eWQ#Kv z#bd10LP7u50_sgeAr_^kS^xJ&zhm{cpWdVHT0eck;we`UUWADNOmIvLDGhhl!7ns; z95y~@XE<-~Z@>)XU#ORhivn;s^6}vTCY4|i5Ga5ZNlgvo>(`Q(-5$f^e8+d)r+2E$ zn+t!Bm#?w?GOprCo`FfQM~z_OsN~K+z#u{q^A+=SWqyH8~Mdr6K#14cfQ<+es(Sg;bARZE7{6v_(8o|z~IoLyRJ4`Nd ze=#LW_1@EMd8jL*hW(wdx3JZEwc>qtj581cE@+E=kBU1W6qFY?>i5-S748r26}`6z zGC#+@eRVV&`S(sOX(vlEZNEsKC~qvSMKObdf#HX{*&{h{(YVzakJ2en*mQ4>RmnGF5sUES>A9DD+#aSIb8{I2&Xc7a@OLcF3P!kBh zONs&$r?HBm1+md4t#k@<>jK*FsQ$m1x**Q?@rUin&xSnti5=w|D$3H!Mt^HW5020j zuroe-OMJJOX_t&^sg@+Fs_r1m{Biq-wOX7sy(xs2T1|ngZ^U^Kkz{;jy~^{Vk^TKk zc)Y>08(KR{y!aKG#e$io1dwFw5XKlZPJZ}nP z(Ik}Bhm%w0_8R2dMh-yu? zb7_iC3^7j>pX+CMDIceJ6N0+(a`@Jx-?QSmfM_hDqgDt&b&w{;@uJ5ptL3`W>t(t*NdK4TQy6 zP*G6+8w)qGmbcn!r24ZsRYc8~hB+Gz%CVJ}&XlV=yCj9$nW=!wv(TJQOMGSPMkQr* z#Tu#%ZB9z_1u5gZLb*Fah(mv~Jj2{`eABTw^9bs6O{q>%GhYrql%c+{5pg~@Bbu3VT0%xq! z>gp0em(|q7^6lFY_dsOruX}oo5)0`h$~EElk6&oVwkNlqhjmTuSB#2}y7eB<@QU%^5;h0_L75J@-`P!XGJj z8KnK!`q52wA@gK7+bcFS>h#GlIVcHJR&AOMrVNm@cB60C98eDQewdD`%o+G=kwhdo z#&%ymbU?j>*}Yo3)7t)7njb&UvYg$Nh95(>HYSHyE-s*|plo_iFD?Xt!H&L<#jy3A-iem zjl#_mN;O5zIQ%{HDfW{AOXxpB$o7>J?v$m*Rrg2hD>Ox=Z5|O}V7wt= z+|osXjV)#oO|}rcMDTkN6EiB%FHr%k(#54M35}Ebci1>m9j3q!++1IvCLvd?)}d_7 z^vl-td5Y_%`K%0& z&csS}P4z6(9!8qLS$^wpIZ$aFAD7xQ?pd+PET2IW5t@a z1!w7uBzD7;DMjSu-~)I|zzz0x+>$BrP?gQ?VZf3B1p~vW1klXFq9lx_v{;oapkz!B z^W_x+^z`V|YUKs&%gAc=d9*yTK{2PgxoqEc?IqHCSAuk^OKNJu7Moc9Slru73JQV( z&||WRqlLWnXz|9BnhVf)iHP28&(e{?BB6V{C?SjC(z3qXDz1E{^UthZYhF1yIlDef z9DxJ)_+zIOb9>e%IooeIEN0}nQwP!VXnwX!EM$>o*=@U8K02AQ^(#|3)PJ+EmpNz3 z8XL-Cml1v!WHYG1;li~7Buh#4M7;X`pfYVq!$iCaMA}$t^iLaN2RY(7S0}=FAC)^) zR6rIYH;X1P4HGiUTfp0CkT`;o8Ko=78iD}(`=Z3N4d^h-g$pip=*MUt$L zk%=a%pcq%jexT%mz%dsgJwRdXk;wo-hR9rxqw}pTOy{EaN%Uc_E__E!6RT`fF?0w` zY@!sZ5JLQ#{Yg?HaNRosM?Vl}eyDxV^qNp7&KXmGFwm11mIe(J zl}E(4f>(#*0Z1d7Xr;?C;XO!FlRs_@0mM%&Y38=_1vZQGX|a1h*WcuVihp`ILF@Zu z4~ISfm0a(+E=0fFtK_6qR$d66wnJmT#1=TCtv!Vi-^5~G3Q zpB84&;bj|Q;u3m7__9iV05%S(#Es zLeS>iiboqXNrFDTI`mn?9wmra>3ym6Kr6Lm=GM(+!vGRqig<6;^9W@-rn5C9f0Y!P z1BdD9l^{_Z0fmOkkC=fLUoh4UK}ZlTT7!Q%cxk4@m1B<~{|N1?bt5i@IPrUg&s~@^ zA(lj$g;g>4Z?b~W;#s01?6OgN*voT%O?8;_1G@xK*MdtuaGNpcv9S}g6yk)r3W&}& z5)`z#K>J6R7+p_kZjb4o28?9!NRZHJ;SVOv=?4$I48FMjIAM8@?uo5#yL{is@X&Ax z+j#qjwfgQ+MCd8+x1$DAo}$7F5iq3!1jT`Kr^KM1NMQ+MtuJzyJ_UeRMm#w6$FUVi zoEOh=qUb!UY*PPC#$2~VrM@EbU5rC9bXmo_p0@3JyDV{WMZTE ztcr@1Qhxm_n~ggY4jvMpv|o6)rD7wyyLkaH`qhhH5{{pd{zDR*u)UhI6?3YpkO2Q1`y*WRvZ(Y)V+A$Q)Ka}AmukEiSD ziQ+0*vPYkgeS3jD-UY+_vc}NSPvFOl#d(Y5xtg_#luFzf7ss%K&5%`{Yt#MX zz@)xN_56%}gMsr1{4)6VC57k(lm5j_!D3qN*MOzT{aq)z89T>CB@Q7TsO6gJsBiBuTg1kH-#R99D<0+5`4p}Ih&oRFI8CiLDKfCvK2_;sp90VTkK1;8!_ zlEaa3aH3*k5rBft*Vh*i_FmuK_Rr7Xwj@FWU;3Xx^iInbTuIO*z+530W{V&|@cNYM zRHc;H{0@n)8z4)gHlDU;b#~hgS+Wr#ycDu()_-6(H=90P<-O)!Zp6^d8#m>*%!@4t zyzg4^s!e)h*W< z!ze3@+9JwGOYgT~U+&kH?IPCD_|oWaq|CQGdYm16iAx{Fu`qt7W<7i0O;E|S zZV}2!MD@ zEg-gAO0SYcw1|hZM~uB{sP}-{!4Gt>CTK! zN>w)gk{!$Y5pNuHFA2QZ3y!4_Gq`|?} zVV<7$9y!-m+v&I4GFq>*$6G5)Sed8~>Jbiq+Dc=B7rP0FYE7NuOBpwq6OE&t=?^wp zyuDMYcXh-Co#q&s>2Wr3vr|*R?)I@3U)xzwa4uf(&Rv9*U|{858mRU?FjJ02iLXCS z2<3lCb70?^s4n@9O4~j$v}U_B!&;i&G52moU9*kC5)i5L85gR+TI((CZMs$>g1iye ze~8~P^2QAQoe6vgg$0)w>2`4*+Da`WxDhhxb)^lL7Ow2o zT@@BV>bo1NGl?q8+yAF`+xu>=Inwca%F*p1J^H-`ZiUp0vn_KHnDMeW$^2)Wx|-stiQY7;UsW3SHYyp>8}!*am_LUkr+ zVz~#;%PxdG-dFtE>;V2FAfKN-bjyr7GOS+#+RJQNqL-a`yP&RC~5Jxo!N=A1g*CDm7=pl7Q{XwDRaSC;AvrVwP4_6`M|Hhwjqjz*MS8T3gd} zdOq@0Wi`=aN80dyOYZkv2kUkdgj7MvSB0|SoEfS8`*-WiQCTlF}eJ``mtAmp*|p7H7x!6f1J)$nJF zeiJyom4fWs`)=4VYdSr;_E-@*yuKA3nI=m^;;N+dXlGYp3*=9acQ zu3{RWuNl(!yB`>;aK%BL@jKqCC(nf7monrVE=` zq-|dLRMglJf6fQIO9y8(;fmWgZ8x&V&7c0)6q`!kZP1bmtX{|pVY26JISgJ z#wG;tow}$EN z3~KTCuoWl>K;9-1I7TM|t5mCn4N8W!c-l9MH}aS$h^;|eiZ%sbnd2~ch6-NEg+dw& ziUv-><901SxW}Tl#>SGw(RagDX+?24Z1O?W zDC6wxY|8sUf&@sJ9WVno_xB$e*a^m6U9TQO3;9m%V_Ej*bxGkJ>B<#tb2^$eDJ z^Fx~lWu*d!w4bXQX7VX=e{zNJk*b9!-Qk34X(2!HQ5l^q-43ku7r`k#iP|dh9+4DX>2c#;^K977Rt3&JFBD z;a~+f=0O#dIaZ*d(G>rB|4j=`l! zoxu{{Xbr&$LuEz}CD7(dL{N(T?n#z_vA=|wId2Z`%(G(b!v-Q6$No%6DvL8tVyJNS z+gez;AYc0;P}Gd_JtUgY@y(4?TB<~~jt;jm8Y4@l&5F?JKbx2-luh;~*dxY382w%< zn>``QaFm`?4)Ja$2?U5)`+qmO4_bH+pPW)L`#H{`AsUoQF2~SlQQO9N_T`~FPpb|m z+b^y<7=oVzHHIG0S<-JMCAb2Rzg1u+D?Kc*{)nPB7K66GBee3B%5$ulzoRvCV22OT*^TUtp)M)#0?Y3gqJiWE=}wu3oo=|mw!NZU`00+ z6YpDl)H6YWQ4yp8@1`~#9@2V1OOn&j5f;vZ4(tz4lrwlGN#K|PHQcdrxJfsAd>CTv zdF3mP19f7WTm4P;}9y3xTMB(94WE?XnuEBKt^x;D0_shRoCO-1W2@S#?LCe4( z!%4`gQ^TqR&UaiC2#7D1UC0DTLr0j}$b=A4x1lcZw(;GJdT=x$RJ37=rs4;R22oIt zp)R01_BIYO``v(@D?m=lwQ9-5Yf--N!hA9T0d+1>IJB4lrnp7{5M`d3!%<{WHu z{hj7YVwd{MhR&vVTOVl1!Z10+jjrx?#&U|ke?lzs5Y{`({OeME#8=~Prw77)b{Pz> zt?W|XST3iA2=AA8BI#_mukY^eZp%g6>DA4R0f3mgJ6%H9vGbdJ2<_Z}M;p&UYhQ5~ z$ry1bSR5Ed5|gU?F04mYp=uG1y9^^7x8=`4gPXqL#pz8}JY&Cpdm`oYazS*!<;mXp z9nUR~fOJoys{7KIr{i2;Ze?(nee0_KL~9J**TfiaWFzs2`7dd)FJq27@B73wOxNBi z-PXYh1f8i9#;|U5QY%r)YTW9*lhZP1BXuZvfka@jax8Evm^G+PuU*c93?3>ut- z3s-V5!RJbYO;hw6^nd0f@EG=Qksyl}3i&gMYa5PMKN~f;3swSJ0=(c=!mA46q`S`y z#w{qkFTK()eKMy5V)6GDYdhH=Xy>LX;al8yD42H}Fn?-rKKidtiu_i98Ywh&!2#~L z{Sd%w1RyCBCX6BlNcAgclvTU``?!fkE0_(NG~u+_4G#oFlE8T5Ti{Nq;~RS9tl5A~ z^C!@>frSXh2ZXsBHoQtWF^X^8&vXa8xFha>0Y3_x^&*JE9UB{)f}EU9pWyJs8eflG zSIokK^7;9hIL8&wKTltegYxUSywjfr{rWXKSsDFNP1{;g#w7X_uAX3Yo#lnQFup0* z4m%3NgcEYLmJrr0M*GvnLrglBtJ8Ih2XpV1^N%lG(`vFKr;k6cZ@TX04ilS?sH)U3 zr!}j|cDiinNZN@DyI#T2gO%!bk7LbmQf9C=v+}8RbzV+9+MXNhET`6fPnY-FA6sR& zF+k&=Q+8>~4f_-&QqeZvyhYkwN~XlK6K4|<2D4eNysdCrEvrSgJQ?D36GG!#^H6QR zMxRll#LG$*zYl7fwZBP|N_Bs%D6D7q{XrK+(&Wt{+hRcC z^kQ4mMG9MP&g9hfYrhOkKsMtrVvQx+WI|!x6>Im@i4bUP__gcB`!d~?QIXG=@rblV zZ6#<9wYzG$Gl;(Pp-O8yvCRg;Ic83&Hib*q)2W!-f|1VI*ShzCxVYsFBQ3aTyjz6+ z^T%X_#k7gZ<_#!+wX8_Hd~B@*|MbeEy?4j=^9TfYiHG#$6Ecy8woB4i8k z%^WERXr9+|hk`4&eFaGn@MQaAp{*2~{Qc994wAj@T5(kbg2np@T6EuVi*Ih~mzr%8$M@qGb$f@E)%m-&gG9Y>4+F$aYQ60mXkQoblz zXNilhfB)(Ff;JJ zNH8la!{>*RA}=>(+ICf&H30jBg*w=Z>$Lbxvlqt5o#dD!k z8yn-`7LjGlHdnP9eYP(Q6Y%kLg!1gD`WwRv+yQyXjr1+G8hyHG5!uWgD51xUfz+?` zQ4doG{^&awhT%MFGibJ?hkR?KiDdAO1YgBLF&NyLRHdUr&lyvj^TM=IO_YAgaS^^c zj(W4&i}$$vqP56Bk_zXkjv{I^N5Mv?-O1o!kIxpryR<1OqDk$kiAzNBh7ISso6uXY z^U>Rkm^`amEMR=zCXFPtcw)0@vmxkuty_5>m++~!96W;B(UH?T5i#m#@wyY@>(o-N14^W^1f77Y3$MNp0 zL|k~f5j7HsNj{YviU`yLE4In;#karBE} zxOq4>V}^*M=lT}W6klJTdc(raLPrM@KxFpA|90q+K&2sfy*=ZsGr8f5KPat{SvR7= z`Tm(^bK==A8`w?@a&Dp`wTg%Mtoq~xv>FJ~#5uaGuVwr~sg!E1m@m;1B(&v{x?iL$ z(*J#pcWxzPP$|#*5oakGsK9t7mOosOa&||c5s(vuMVeCUU&kB4C&_gi(6qwU3O&M*G4*A%A-jrbFGuoO zf-8f!uV~8&Cr`ojh1gve>Hu6H^D2b|&zULhkaZD=P{L zN}xa<+szA%L!tn3)-zwb_ttSOtwvSoH-)XG#Q+d4=OLLF&rV1<648A!hj( za){P3+D!M#FO(}U7cz99D5$l&K`0ODNOj!B7)J8^s}}5WwDPA%f$Ptn-ls~Dp1E+! zl%N31w7HoTz)w9rJ>f{K`4C#MU;}tIz-zVV;s3wGu-4lK5MB=mC;?ZCb_IN%LfO^b z9WfzczU6}NFJQFi#Ia#7oTI2-bNcrFk&`66-A(<115>dO0YELbwmy^aK>V7@% zA%_+?k3ZqS_LwrHkyB9>02&XL{wVaOut|0?F{ElA0yWZN` z+Q`@#(4mD#L=ZACAoKF_1|ga?YMh*&np**59VZ5(5yZZ}zN?1^o+_9I$vgZ1>ojP+ zVcUiC3?CQ?W-@5o{%xQXSCg)UPE z8U&ONZrU2=6 z+1e!p4u7*T9RPD2Ouc6VuQCP(1`KWwrcRIhll8`1{6w)SidoSzB_PI=2gsWa4hyw%Xa~_!;QgZ0rtKZ5Y9yz z@p@hBVpg{HhFuYvZgzY{$X3hSIUJ?0gfk+8BXZazqV6vt>ZLHs+5R9Uu)M@VM#gj~4!z(3m{K(|A}z@W|T_z+w+48}7x6 ze`4@OcBQTUUOBtzj@UFWyW@EioI{W6E=Ou)N*bVoK!yUMmeV^sa^nKe!0o z`5q5#azm;>Q4gHYUsVselQz94HRwwKS1hjOC2#D;mzPdz9hlm1f_OgR=m03yyMA2| zGH%KciHOMLzd15%j#&OSwrDGBw@`K?tETXn=zEp_;_{F|9~WOu5o zZFbiP*Q!GJ($6~3EY>EA6T;KiqP?3>T;e7CRs~c5CwM7&6jGFk2L%c#D21 zdk?%y5NBI0Ij9EMCDK5jkAW2vcxFd7{<39d)h+-#ElUMz#bCgwQJ+EMt`pl&jOfw@ z3&2+Kj|+O&<;0Qo&vTE6Xt(?rjB8e8^o+b{y*xQ}L#l*ZSt`xUlmfAbjVz=VwL2me z`b&k<#kAh3*TaF6>zd)$oKkgf7=pdG!d0RxG(%R2t*EN%$Syl?;s!LDAyLS$ZzmcA z=3@9>e-+jXA|%J+ZY59F<*?wKI2v|hB@U!4^Nec0{1(-0kJUYR zn}|_?S`75INsi-cK!9#7te+n4QxY`n1w8oOsN`9s4d1v|(U`G}u{9ErOH9Fhc%a|7 z5IilU?vs8s&J@<|Vdp=&nzA}+^r%f%by`p(V{Ud0KV`7vvEVlR-g%$Kj&}!6`l}&8HqR)FK2J?r*~P?_F<8Y!^bYb{gqwJ6&6KDl>kK7%yUmZyi#Q3e?qJs( z?GfLA%;9G0vF*n)%dl3YlEwBdI*h8x-v(L1#yac@MTvO~jmP#TWBLnTtW0-Z> z!+>=$Ie9LIEy*aX*<9mr?DBxMeoc?2s8}$3j4S5U?Di&eYW#KyK)?Wxa7?Qk1VQ5H zKg7=F<|Z*QaScFB1zs{`)z!lknSeJ3n4oO;v;tu)08sVr&M8yIbZI_oAye@(AuJ4% zR66~x+3op@)8%GXZyvzs;T1 zSaT^cu{rwrwrOUrC4#P7ZE*Dri^CD!gn6cE*nmapl4l{44F$PC{P;=8Vp_3?CtFdih6QZR#pN6U03e? zYb4T|!@8$EE-55*`u&Pv>bC<%G#-~9KEj?9bQC3Jme|%`mEqvduDjyW9CZ&SgYg~a zA$2=4n(DhSGecv;^U$olS#FbwTFyVSw>N?rQyqrM=h9VbIyU`Rp|^XA%W^4vX~ygJ zOV<#_=uDzc-mPBmFgG*VbMS91*t{OwI?a$QE2zyFFAnS7b?dehH8ERQBVV|mlbqX@ z-~3r}%7?z)bkJ=F;_Dut-P+-Iq`TDcyF2AD-?L9B#{7*z&-uF%eChakP9&~erDxuG z%aui2VSw7BZzxzgYPL$#EW$Nl!y zjg*0xM3r_s3%z*oC;w98Q@4Nf>q+GslP?VW+EPNJ4LJVPrUawj{C<3+1x!WVnCz!x zJ-Io}R^M-RO>*1wp1H=4sO^FLs-m02!)Nj>lxN|2w~JHYR-Q1Tae1JCKK_-@(UlI) zv*bjlo%%9laq{qcI~d)!q^1>DamfSSlonYGfMWqWrr@yZZv>cG)H(QUMSU-p7LqS5RPZl z;@Zfa8J9gE>yxUCuQl0{gy;n%=MlG|q|3<)Cic9rzDY1OpLIFS*MvpC6*VYC5&(bX7TFQ13+Z@Q(R^9=v{`oE5 zA?+oTxYfpJk>DYdLQ2{M@^CQMK1kSwy}Z(byfVpcUqJ{HXP8%H!>jANp3pDfyO0Bj zB+IJMQ)#|vls}-=UA%4(Yb~QpZwFRrLcbM+I^JhizNO!zRs%?YyMCFC)pb8zC&&$t zA|%>J5oE@sTbl)<+ojs>x1WOWcPke8lq?BmJy|~k1e{ttm*lItWO5P>uCDEdL;1YC zez0{!m3#Q_PYdN#k@rC!vHDx;q)ONs!mPfKGKDUMO8+hPtlsP8{O0II=8FD_^4A~H zk!HHv0XM~%)N!Dyw`O$R;nP{F)p_RF*CyioE`;`QimnczGU(~P$a9c_bvnveX;bMl zW|ca)ff~(P!{6r-GYEAY4rp$9eV8@EF_bL)S5D&~03{PJM=nxuuH*m#?0_;Q{Wi_6 zl^onkG!4+$aI-r?M8Yy)KX$CeHZsgCjxFA%9qaah4FEXs`iegRrPcn1>n67nZO3+> zA>M1XgN*g%4RDeGT+cHzGuEz zO=i$*J;J|TW>XZxNf4|X1nhECubmSR%!c&KP4(Hb$kjRXblYwWPGP}#m=kb&3h#Oo z=)itK1_TK>vIwk33Q!3T3KDgZYR$qDIcvjlg{6AaOBo}Z%V9=l$i1P>+|s~#3^-H~ z6O(RV9>!|X4o^EG>|U1)*RDF@|e2TPV83_)z-K* zZ^5AN5KA&ag=ia$eUa_(*G9B`_jH^^Ua3R`lP$sW8`vIcvVrZYVDb=uycNNr>m$$i zis8a_S?O687dNTha{nEnm)5-*l>%$ZJ=ZmiAyQA2@=bnze(=*ZO`=w=sg^qOT$4u%~sGH#%N$0vV+9>ugy!;c{-vIKQ|`c z=kQ}>l@rn6y+wK;$164GvT0?a!3rPk(M7b<+={88A`&xDjPJ0ASIqZ^v(1=B*JW;1 z8e*g<2=1_AuXME{9bXvL&4r+m_nzrU%N#}l<&!w_u@^x0Xch3 zkSw5F8Bm*YH>BGbKFN!FG|rmkO&>yn{P$8Yw=!h0FX#E@eCn1)H)Xt7fm8azUdu(? z_6@=2l3`I!w+WH5=r>(cjs3H%)kZ_Yz32Ff*1728 z6$48(ovCh7^fHrdho+C|=GoGd*`n!$Mnn94m->uVz>utRz z)>}14EfI#KcLoZ~VQjtBWQ>HMDpafuCu`6848)bpkS4nseHSad*iIQu=rpF*t)Jg& zBxEJ3#RA@v&U9;ojq%Ti+-7&6QLEqJ=1gdd#1JPe!s%Y$ zn|9Z-sfN>w@zWh1@HR(=<++BTf1ft(g}}erT&quGbVcHQYe}@|-UJ(`B%jt9M%S$p z(0pR7?&J-f?$VkpR=^$#%f5q0ok<^D4aWa@8kjcm>_f5g9R0fzq4;v<;_keyv%-T$ z(>HYx`;#>=_VA-;y>)Hb5|SSeOEACBPcdz{Lw)+D_c!~*hXMO|UAb9=46(XO?*$j5 z%cb2MqrkQN0ln>Fij`S|UP2>L*~SRfWmQ4tHhR~~iKNMt&O}}GJvop_@*Q$Bg!^yx zYXbXa_f$r`kI_XFWmMjepl=NYlj@UHigj^tl6`bFX*WfhYCNWNQ@0+-Vo2(jm4-_X z0!s484ozYhp60gsg|8IH4qe{>)t`U>R7$x$OXc6;Sl#`8^&G~}X6h!i)6qpy`|G04 z@Z>Yo&o;W}yZ0q`$3=vRji%_<(-U)xvf=)w6xS_n(O&=8)NXTpa4eMa#+<8F&x(;n ziTKcvxNYNs*_HtJdX8#(&uf!Km9#k02ZB07&`4m(EZ9Pk6I;A?pVR$cZ?^p>!U~X7eQDF$kmw;Lj z1@OlUy&v0L&V8>m(TxNZTt=k5#D)~BS-8wC+{o~V<&l!&1P!PB00HRf0RbQm4h}J# zw2h68KrCl)ObqA0J*X$2d*4TT_6Gf2GYCCWF{W-AS*a!Q9t ziREs4UTI3flG9S<$X5E41tj6S`iid))ADX_DCI0=eCsx1S z>yj(o;j+Fu$U+#xp?WsoyvMei)h*ZJVjLPHJpt5X83+O-9UR=b4hH?TYj3@H%fLhC?4T>`>i)DCZ-C3*fVmo;#6$*2} zovHq|S=Rk|AKm?7g`JvCZqDdp^$Rc^W;=iK@O0oK>)qIZDVxA8cpmxY(hgTK7?sn9 z&8mL5RG*Q-d6CWIgfYpM_5X-^%cwY_t!p;~mjJ=to#5^S2=4Cg?yiC08r*|hu;3ot z9fCW-X=t?ZTRG>v_xr&Z44S>Gx@%Wg)mn2tlWYH?qFC(j=X*J+#3S1NJ*tk2B<{=` zbi`j9B9~V&wby4kTPx}gMWbZB>x0C@oh1<${;{NhF2Vyrr1*rKupU$Wl zErzT>S>rZTmq%xDbKqzYbA8L!DTay=S2FWt{`OG4tj2+#oGD|Og{h$Ok#B9R!(NGV zMzuTij2fAq{kC*C7$_VoQt0aqch?44WLL&H$l)YvRez>JF;(~Vder6q<=roQm!>|e zt2;8)5puy@NE6xYLe1D(_L?-nJR%>Jk3%pVj%=Z?{G4CSBJ zWbS}LPd5d?pc@d*w^~wnB9BVc*fCpAW`@GvB3hT@OcXhAe~$&@#ha#NL-V&W;;NC2 zOeMRccSGiu>@!_q25mk+M;X6t=}uKD**Yg&^ap<~fSgn=w>wi>4C#8F+x602Q_?Yi zyR4%MM~Nhtt}LzTOuIUfTvh*T|8$3WhyQ|j$`xxe+701y`rBnBXQQd9mfH}M+d)`< ztw71akvu^Keg1U+J-;Dc(u0YQuc>^oDdq6Y^f1qC`JACpMPusjLZsj~k+gQLiFqmQ z{90}3_gpUPIGi&&1V9hQCzMA9q2x~7h@D*j%&`OUZg)B3-Gxh`78rdEfE^SLI2Q88 z3Kes2Ots|j3gGKg7T?KoP;VLo$H@KYFcJ_DdB~LYgP9!-glMOnX{!Z~Dfe&opFbxw zj~nWJ)qU^TSJ>T z30EqvDO>&EGNCDCl2VdxuRRGGHO0W)@&3cEh?U}LhbSsyQ)}(dDcSy4N$65}Q)qj3*AE)AQ=qDZgWFMdYa13_!Husuja&tV%M*) zF9NPBnPtVZJ%pKNlF6CnQVq3{m06xxGW0Mo#WOu#pHzCw@ZZJ;dr&LXWu2W_UteGC zH#;*=PHg2%r!wmoZA%IYLI6tQ-ob&Sw>JdeO%c#^N`HgS?9}nSe^%4QL}9P($=W z^-43OQtUs9F72%w_JJJQey-_9P1#6V1CZV? z%x&LfQ4|SL8`8qznBZbIsNcVyvK2bn6?gyoK9)tma7(;={vK)>{Cl1@8VXY~84$^~ zs)%PglW8AfBOj(l5~D_SctBW2@qhlWdgK#C_^LaXAc> zvI*)mv5`9|2VpAW_(H`zMZ46TS_{gCR=p-3Qgq#AJ zA9((T%X6z_IQ8Fd7O%V{p`yV>q_sx(MC2FyKvw%9j0K z7JeN3Ul{1=D~cIbZN^t5K|?|*l^%5WpFl)UTj>qfx7^Jjw(q{ZlM2!qyv41f{Rjj;OkRSlsmEyYruJF1 zLkvu#xbd{y4(|atb8m40A_NIBLr5AV5OrEhIFX12+w|b7%91}Olps8qy!4^8#ZO>O zD}9!HAn8IO0v2V^oN48=VH>oSF++t*Qt=oeolbqYP}|yyq4H?6KVL<Fnr|70*fIHGIuYb9@P_j*D&od(PA1JpS!02y&D+$i ze=l*PQRM9IP-RVhs8((bLAod2?jk7q_+Ee5fD#kcUJC|+y7}!LyA!b_Mvn4tVI(=s zMGFn{i|gXG)C9M!A|>#C6aJ0!d~#Pa3N!{0j#uHlr0Wj0mh-sJ3t4U2wlHSfRk%v5 zBDm1ONeIw~GPmy{IcB<}bUgcVN;|_0V{9~t2tD2d?6a&CZ$^c|Z=75$CXM5XJ`x!0 zkNlv(Beqf{{OKc!&w86AoWxH$9rcKEN7hpvdx)jN?mSD1vJ}13d&~D{xRS=MPQK>m ziCI}z-!E9^VDabGSSZQV-kx5#m}N6kC0SclK-o7|Q!N{t+SC~FBrb-P+vW#@$GFnP zmhK>+(fCySJu64PQcUjpj_GVQaS#;kn)Y)6opWEZCjSac4b&NZ9U*~91;cKJ-Qjv# z!Bxg~1}u%&g=G02Th=1eXMq+*{u1e*hQ+AuVc9i38BsP#t&GGHO07wLPNbrp17F)4 zQ&zLy0~aR&i*s^_Wa)PTP+U)Gn8ViFP&b?qe-Y7iUEWRWrDmy;-}hrLG^)>dNr)^M z!-`}ymV!L`!eLM{y=5Y_Uf^0WfVl(E^n;(~^S9133Wq@~%#W*6XGASOsR=?e_PT~cT@?I*VXepXAs>Mi$@4ur!jb{5aghEw0qnXs0s-sU{sm~vjcoRM-ILUN#h ze(cD^#6MPg%cgG(K%Kv0f%8J`o3BPIQbV?})l#eS*gax3wy_zs+tuFf7eg#{b3Hz? zE@>;x$^t|Ll>h)}?gyI}9M~Oiu{^~?U1L#IZC<|WPq1dm;18_=JFWSJx%fePbW}>o zTnvih=Ob*|<@_SL%OPZ{ar7V+L{v$SWLRFnr)sh0Dv5oHp(Zg-gm|$tt$HLZG<6xQ45># z-PL*Fs|=O4r{#9D#?DAYsFc3d;W!q^S!r;URaF(0wm<5tL+{K!f%zOP<+I>yQCGQ6 zZFu-mH!gOT${l8ZH0aLSdEl*T9Ia|_a#mQ|X_&E=E88?S;$wRcC+vd!BxgCq;?E@l z_)Z9#)Vb&@Z0BZ8>diP#XIuWfu`x4H(!|I~@;4CSj677KJ$N2?7v4FR`g=iXloe>h zp?0Ts;2_Gh-?QiBlZ{-DjXsY;9+Es!xoOtJh}Ejt@kgk&===`@bkd z=$ze>0THVTLuzYB2hf-Z1(XCuSj5>s)O{6OQzHx^i9T*32gzD~YAp`9ZGH^pH7g2t z>o$TM0R;2iD+BQiLejv<3kusNLU4~I}* z1b}g&-*M1@*?P4u>&laoV9Qw0?$ky(ldU{k#qQQxA?THSFt#;P57_3nt)S7qCD3jk z0_Ml>p6l)M%q8qPR{3bx(H^|^2s@&n1J4mNL{W-Viqtlf`jw9nk7vJ4TFBEoa(OMD z!04KFOS8*Z(b)_6KU!HkJIXlff?$vaNl!NoU&(Jec7??VvSxU&>S|@=96ZqP4L9>y zRirFD_;gPHT+Oe|XK*_Z%x}KNF?Ap-6YA1e*%X_D=R2RqI7_>PLsw39%kMhA#!Mwp zk%^)Pvbpy>yE+Cvc`_%03exJs22l%xa!4HwH^b2IBwai3Z6ct$f_MWrI9km`VL~=t zFOlE9?b$cnD2uMLw%^ClE_B6NcENLPYB{^SNx$#<3mK&ONJu2p_^XNI-PMl6xuo@` zLf{vsQ=GToTD1yht8TSy=Pz;Ui|IdpGMXC|(f%7L^ETBDd4R__B$ZyThv8B3l8!0x zOA#p8+{VUGbazFYJIP|@#IBpp_$uTrXx0u(3H7z(o?7J~s&+M`mo_-hjA6O)S*}}8 zRX#b0XR5;jWL7DyMv(qHM-ST~wDK%_c4YKmdL;Qe7Dg>%(BkD!lh~tqU z#h1kvJKas@&H4G?JEp}X#QI$PE6x&edGF~XDWPNz>Gm=7M)*9XZ0|>dq<8RVrU`b3 zFeuhBn)RTF=}hp+sl4BvMqZ#7eMi=9E{Q(WM;K4ik-?XK@U?4b@QesIvllG|dpH))16!CV2l1l7a?_2TWe*s2J}+yiap|z0y$2_?BGofB+J3Ye zg&0mBgjrpq=jGmrNy@k7z)=Hpk+q1B}-t5`2^qPbxY5M&vLAGTyr2rN+hjEK<#XM z%rH(YM|al;J3O80ygaN;c)JkH8)i-Z^bx4jwkw}qo`Ek-Txh^8QWdyJpV<@KV}4Zw zq`rW&x)m@+THD$d{`j%2ywVdSl1!sO!Nr9Qh_c%8@^IKQQ9}01FWkZ~d0K)Z>Zp=O zBje)!jxp921DCYtXMZFlq~#VTQb3|0pC_0J1j_daG8;hi1wC!F{M2b6sE`j|-5**y z74m*mL(9wEnR4UU@UaXRxbIZ!1G3R({x}Ms3IzfpnL~Tz{fQ9wfu7e##wC5Xe=!YK zRILpWWrX74w91R-KPnXyDkpz;3*E-zVTn7>gk*+SVlB>D`B1sRm~pU=jI>6|fgl+P zZoTFae?DAX4?*K5Cb7k#E31BAI$U zx|72fBGV~^7u$0JTNav%_@!C-2_`KE8J-v2+zF&wShGVRSW6#b_!C}u6Ev#2w?q7l z_B*sd2V>V9qyOID#bekCA902)>T)%mn1!u)!#&StkTK_>m1q2MiC5R~nSnyanIheD zNPgMY?^OJt^@}1SC-W&DM(x)XKXZq?(GT};zuV)kA&;j%o%f@fS!cw&ggD^-DlO-J zSbX!?p4icOtA;<;l1snx@_X_IIT8S7)b!>+q)8~S{qQwI!%-IM2sC%v(p4hQKvzsN zNuoMGdy*b|H4jU38^}YXU2M>1f_?H}mLNj*f*pu8 zPJ9adv>Io>fJf&{I(BJ|*bRF3g6|4O_D@O{pDMUwH0tqz*SeE2gWQ}yH!?)zIOXlN z$@zH-J@sVB*JR$&U&puBlKSj{E%W|JE}L&8{OIxL{x7{Dm3#z{2$$4@o2En}_ ze1yQVxld4+ueCHZjAh6FMhTBaqN*;yyg1`_x+0AHLsI3;5D4mndnF%6Z@v~;4Nt2OXo0JB<2pLW0Pd`tWIp6at zMF$y*b@{+o1-f9QcoWtJUbAzM$dtM`qRt5)4=8r0UeoALk0-=Y$Q00c^>UvOi)UOu z`yT`eWIv!$8*eoycUFJnY^h)c*-?}~DRf>A39Sd|1Ytlqzmsid&KT?_V0kpUN4yS# ze1G7mrE-|(zk6+uHfpxIe&UIljSWn*;pqO`@D%agar!Wh<(id%pA|=g{2Kpv*jnCp zXvENOuO8#rj1ew0qw!p`7rIv;o)4v{oCaqDEitTL6!}-DjEC$!+?f}Up%jrNL-89{ zVw;*iC=`7E1>)hjt>&8uy7vX06%|1aH8?ZY&>9z&TY@Nif?iy^K9AuBg-IF^gMWR<@fN{1kU}Q!@#GHmh zGC9xFfqvZ5U*2FJR{tf)=<+tE#m#9!c=Oqx)`H7HyOPk_2K+mPFLk;nbNo3yoK0Kx zvyCR|q||^xWl?Eyd^KZ-+cd4w^~%q2yt6+NuU8)SOPb)d*e2~q`JI{;UbAzXkL@Cm8M*+4&_JH}6@pnBLP6+fGvD)NYcXoS!p7%jw+#2W(h5f4uyF@e^w zzyvbh6;7U3(od^?-z70}PH^7wrElYU94XbHJ#g;TjDHMR!?G5`aNms|Ke45yo zw(sbf6JAY==goaH2O4 zB1u7)w9FrLnhmKhc}3UP&Ny{}$8dp$nz5S-;rcGdXJ&p$LJrT}hNs&;lz-rM zU$j_g{G*18ExF&j-3OnlBoS2Y6^^#Tnb%6xK8b7ecK43*l#s>PdZ0W&dC`Q3N*!bW}KJ z%)qV{xI*U}Tq9Lw^+n~l3oYp{*DOI*4zo&Sx z@r1NhYhMaWi5ULyoU#@+WG$|xA?u+>`C<5R{T1VVorx`4FMeXMmOM%~$S^~0wVZpc zW1#fpt9}TTEBf)(-vte;h7QSy$r(knDH_>WV(X4ovwqvFeujj8O7f&1zsZO^dL+7;)q=rk?9w*n|ewj-;$$<>!vFIVWehB@tKR$~MO3WIbtx zrE#KoiT4Eo($@?Ub5{bV(QD{^GIpPtvHQgQoZp#rzqX>0C=ARQ9oMa~mc@}R(x&aq z>O5y1hE9&Br-VUY)IlGfrmf5VXvoM4Q2hEH8o_nH{v`dw^Dmtks!tgor<7KHIf-aE zNTN)BSin9nz(YKk5q7_47H#}#YT%-G$fuX}+Z#!>)Qk7Eel}KqO;kLDz%GLJGl}j^ zDxuFy98iMhuglrBn;i^_34K4jTyNF}T%>pb!a4wzg^cHY8WtlUl0b4M7Azi} zo(*rQ;lzJ3OoT-2{D)$S91#BuWO3Prt=NP9N#S~edPYV^KS~y<00AqqfMq2Arrr#^ z?lv6-y#>iF(PH^*|MQ)MzJ3nSf<9i|A82&ICOn+R!ZqTTJFC&9+4Mgm1|N6SMmpgJ zP&xLz2&g3A7kD3SX70W?xk?n3DB#)hME*4jVBYjUrUu^>@x&0;^vIxe?qViYZ7^7F z`G>Y%9QX~GZTU0fyxtT+j2~U=1756l<9I9qfV?41C6T0wRxQSbk&ui&-z$a7t+-N5 zS-!8lV8EM?>18nC0JM@Y<>t#awoC8!u_+kjJ8N6_I;#}%8DWtD{0e;^vt;F9!%07{0tKr)inT{iG~ z2jd`#MW*%ob3AX)G!~nkPf~gL7R8@8UNwE+WBH_X9<}xPK~U$W+Q1pM)Y?YCy*%6A zQ*NOQ0{KsVa)!f5DNr80#izHVa`MZH@Yfy?r9l+f*M;LhvdPd(_7KC z!hn|7zh3`r{W>*cPDn%F{jbAra|Li1NPDydov(c;*mgX@AgkKw;k;b>QsEvkbv>>= z6*fIV_d|Jb@4Ei%f+598^8{A%&@>hxs#oiL+~?R$(-U|y_2B(R_bTiEyiRC((#Rs= z`HE&b7RERrCD$A&7AF&VhoRD8QJTRUSPEhCip#iPRohLvuEFpMe67%KHLro}FH)N> zhRYT_?^QfZH~5}Q)^8tDi&ZU>r~nEJTH%L%Oz?InS~O6{CDM2+D{0cTzVD<25%C(z zPjt$zb9z)}JdX66o)GiIR5|5PS_TM9O+4&>a2d65iaDpwkG68^l3Wkma0eeO>6q4P zGIB=bR+X?zojw1xa9J}zi_s(XRhQ4?HxRtrb_cJUu|$0n(EHNln!ns`+@|ds+gzr{ zNe~BQOaYJUq5#KT+5c|E%5*A+Z+D!f2g~hn3VSQyJ~xBIDn5hFEZqC$c4-iJ;gc}H zhpe|>VNXg=rzIdDi03Z@%te4M`QI#n9tAm~pPUFaqRz7sX>kf|AZA*K4&-}d0-m`! z-W|13ihjy#m0Ev2zyP1t&=iOm`<1(^N3BzD#n>zflYs(G%)nDO!vi;Kq?k_KFUccI zykRfSdTKG&6Grr}7nL1@p$VN#hIy|)y&qm92KUhX$(re_#jGCs|17A|j0qDlIp)>t ze_F2=zRHTP-W`VDLa$waOkLi0M#u(s%R_JQKEIO&4l0o@lS;DJ!m=<`YLf(G>{p&m!{QydUhYCQ9O6%#r@8vi6YsD#C{ zb^9ZOKcGEB_?Dh6U~F&q*op-6xN#p{ZW|r0@UsOuXCOQ5I=4UmA7HBEm%C>(>oA zyGJVEGwodc;`WMEe|5VyAmp{qnCJbB$o8^BJ6PoPlArN9!DA|Amp$?dG6BCL^F+bt z`%4RgA(*?H0-%p-hmII}p3FEs0c_&>e&hP}Tb8(z5#qclb^-|-kfi0Ut1j=IKX!vc zEuEi)A5Zk^ZO>8IOb1ZFPu-FQE{!n<&x59edg)Pqd97N4uM3#FJMbhpXx-2C-cAlR zb?H-BUhBN#6PX<1{;v-xE*sTb(HMH!BQHBX;8#qqDEKl#s!|aS1NoqH8@9h2TZ7S^ zvMOy}Ns#l@@qv=1bw(1O8$@v54dZ}9%Ld)hmaq035$ev&e$4J)mY5xIdL%q)fP{Qd zU^{RI745zb=iw$WF=BF^SgN!g2!S`MmZG2Xb0~mz9CPV9#}~mX@U*E(V5T+GB*vDJ zdz<(EozwuO8YxbKd@fC%??FJl*)WRBBp1g(nVSf%$lGOStJUu9?&fif#Ghsz;1F6y zmThU%L}$BxxqHHmF3ax*zOfe6*>006OvlXLXi1C=X>5_ZF`NX2#06i52vpqaYPm!r zdGhke^MDGLc9(BB9{11dt+M=of4Ii;bYjN+64z!r?1vle=h$JeE?`j!bfAQGYy6zB z*!ry^{|+jM?O9`C3p7XlC9T06L>(sG+jT~$>i*Jb5k$G^bMOTW5t<)NMpMF_&(EMK z-MSBJeYzJR;U!0vk8ty!@GD9jHxb#iygJ zobnh*yuI7K55N(FRV_vg6vN#VhEJW>53S&M(l5uoPrM6vek!(3*lk-%AE!l}lUr|V zA_h6;%ObVP&~Tw?yUBzhOh$BQ8!ZOBL|mq86A1&^OTttjA7kKzamez109Ab%dQgfY z+%zPQCh&|ozu2HDRcMov4=}I%cSeB+Hk4xg9D|I0>I(yh;0Oi0E^sOl_l3otX>HK! zev663-?ACvJxWn;@fU^7bsyf;L8f7bpQx{3lk!Sy3Y}6afb36dT8vOn4|R9oUw)T2 zOf=xMLKU=Y2>KXa~|bAv&CaVsi4KZpGFVk5P%JTQIv4phBc@pOTsMw-h|Dk5Sa z2tE)n9h*2WbY3dkZKJh{eDm|_D)-vzPC4|Oogr~K92NejXkmRWzAIW%=~Ott1e zTX9c)(**pwfUO>(YSCBSUxtsd_sN{t&_LJy2uM9 zo7rRkZj@dgI){i3d9=Hf(czY|qJ=)7B>V#0si~N`)B)%da33;DB$~*xbV^!ERBiY3 zN#rm871!Bv&gf#W;^!=M@mieS%=>TNd&p(hs(gc~Xvn}HiyRw~Oa72?>Takk@#>BB z$n8F5Ka{=a6ZlVB3E&==B5u&F9v1Xe#ljIYAO_%+`p&(uWu)2C3=zSbH!+-KHlK>i zJF%sv)t@)ab1U?1r1Z1~YVyRz2n}b2q~*X+6@)NUtVg9W_(FowtT_v#Qu89@SV1g&hP?%0FyR=be+s>j?8#kV zBEF#)yfb%=l&55n_-wpn3{7k2MbQ}mj+LRNq{jmWc>9DV0O~(U>~px!UBlLJC8*L~=2%S^bxNw1vgXFuKjwd1+YWvbYkO3uM5_#Z8T^R9 z9o3OQ`k4(;!sg~bBo`ByVd@!?DN>#a82{(qYwbKoD41c|nYU+zVy=g?H9hfUg=nc@ z6dnyGi#T@9>Nw7&R29vl!WArOUrF9qBrhu3r^9_xNoReEm%V2JHT5TwqnIY>?Cw+y zwyf52-op3osDX4~XiS-7+F|9K;dmhhcR)1xNQ!`RvRg}@6iSiQU6dSo)iP_SBV*w~ znOdprYsee>iVuB+ojve_d=vufVFmfE+$U&nt#^~r;f>Y`Klo9=nBD8{TCBjXu;5oJ zs?Ph-JttHB?}Si!IQ*-P*737?UH8he~ zDCCBWUO0luQ)UC3?)xw+9rf3v;F>_#-hrD_$@?2`R0)A&l>PN8o}#Z*jf;&l2S>d= zS_x+ETi#;zW-XpGs+(dRE8&v@@sNc)bJUy9YRa--@-Y0QdA`Gy&W|gR^+vWEep9sT zJ0bZRp!~to0C_qp&o=AL`lSN}YK1NsN zP$VPq(Qm~p7DOzgZ%y|RksgHvE238Y>jY!?f+774h$Q?z#P3>xSmq)&N`B&KJi{>% zUNFf&ijX(zhK*9@%AvHdFo!)(#O1}8&05+D{YvDLhKfG)2Dz48NHtDZ=ZlUwe0-}q z+@?Deen^OUP7v4e#x5c&r|M#H5z{k84gO+wAU(arP#G&PB~E@QXr9C*cR0Lw7jrq3 zEmRyaRd1%8y7gNrD-FjtXCtL`U~(I><3ocfQ8et6a0Y^$da4_O(MihWBnVZqFx|I- z0W1s*RlJ;}-~_6~O-v`_?O>Sq*2O<{Wpt!Ig$~`9Nx2GwM~{n@+H(vQu^l`#8pkLi z&$%LF*mo~erQ_W%Jk!M*X#?-zZsIH!n*DZ?c$0>w9#zcGI9N|ttBnm1e%?a<<_-(w-CuPQBnENSa1*#G1`qxnZHg7a(f zzYi2g&e<3Pe`$00H!Dw$L({*FuyJzEVxq+IeRCFeY0)oQRPo7geJRZV&2h zH*^H67shgZp!)FERJ87+xH!Ir#%)SdTe9<_`5gQ$d65zvelm+maA#ceBLjgnS=$nV zBT-W90PVNfUV18thn<~+1Sf5zOtbHZ*SDgekCN)9NTKj$+k5j5PGz~I-8)iiA7qt2 zlgn5hX#^aTI1H~SOU9{wBQL}?izuCAD!6{YOWAyQ9zF7Z*V^d z(0If;V8QO=jpi%)NPI`k0A+fVw2}>lA4r#Ck)oyk<2J6u>CF*EHin#&H#OF-EHUpa zysInimoB#LG{PKdXWGqX0A6OESnYyx=LVK^C_C>(yYN7SuQ5;S9&uh@#)P>THYoR6 zzD*=>hdvfRS-zYiY=JyknlweRQ(VU93+$w@I6j9p*`9CsJCJm-%T3p%|4{syOag+F zp#O^uiBKjoZJdd+I}EvN&@&~fz}7ahG$~hxw-dF+-_#VFuhIm|F*hL<5@E%OF1H&u zcd5oIf99+`rIPq_2qnwVOAyFCM$8}YNu^U%WORIBAFAOPia~e*{ZWz9CKE@{_d6ef zW;;?S+|UovuL}b4Bmt^NNdyYk(hT@Z^5jA~;RafAIz{-QUhKGrxu4x7cpmR$3Z!gD zLaemjZ@Rc&B#TXN+DLpUbMCbcB4S|T?|N9)`J?|#nSTw(zePXcj2Bd&3EcJ7>cABy z-#1uBq&`BU7K#OnyVLOS=_N&mdikI_D?0<@-t-Ec3F9OIphI`JLEvRR&9umyU@c(P z_&5y2U$)(?+CA(iE5-8$s+Kp`+ng(I8f*joPXndjcUll17w+scN<8<&WI-J6gg3t} ziL*NN_6NXWJZAY_I5329xD?%P++yQ|X!D6Fn5Vn_t8_9kTIlzK6MN0)_OF>D5SOhE z`tof5dVJN4M*uXCjdT5c&L=$_yH_~OVo{zBLj<>=8!}NBvkqkZLK;X}0)2=#p1WS1 zkDFV>=UD`=eT90VBitV1ilnc;f9;R$Zi0?*Ar<1Is#TD%v0jn5r0#OUic>7@`c1aMKRFM?oA2aA4_ zr3@})-@7DCY)3Qjds?(WZ`^?XfXn3Ndc0V7Yp&KWDOV2qHm z1D_7_If;?Z?W3M)Vmjzva=cDyU1yay7K2Bw`y;Efhl^_UWbg&P+cDn`c6(8Kb-zOs zM1h6<@eBBe@k7#+@t;m7wYE*V}8jNqKmY z>CM;;%^A0Hf%`?Ig3>+raG)Gt;bW@4~Uz~7NHPXP_uW4pQ)By65 zw$s*YSnr(%JN$LZ&KPu0&%MUAI_ouM{OV;QMSk6@Wu4aKFU;u;Kwu8H)26(KhsTnws;X)$Xy~cc-WCsg(UF&U z8(UdQ``&`{U?X_)3{90IQ@r|9{@?J8SE;$^hB%H||K}J!LTElOi?I~?&g&@w1GIdc zf-bmS#%Z!*p|2*#+kpe7_3zDP&@tij@{Vjd)p2;#VqpdNCj5@xAp589E87jG6x2v} z>tk^`6(rr^IsSC`h~6l}-F%YZ{9ETFw-)klB*y3M*5|qPSyXx7Z0BHQ<&T?CR#(;N z>Kq&@2j@QPMa|*EezusbOHq#nYK$9$^+MLHX1a=smZFY7=MMWyR6|4#lA|L!vAB8> zjzMPpi^F!^nvHdNuf6cM!x52?OJn*M{)0Me7uYdNjw9RUo^ANeZfkxKEJ79CLNYQa zv9I;n4xDG@1=4oAtuE+YVwchKa*0 zbn|)oh5Jy@g(l?WALdtk)Vu5rPmn+o3u^klnj>Z#b8B2#!WBe;OCPw4XI#5zx`i}$Gf}B&iSYAvHl{K_( zE;ST@IvmzYQBl$IUxSudAT8UeI}@3?HF#n|9uAE}{vNaeDCYtA@@ebW>8-E&sBCOu zgRO3=I=lUS2$5j&O9+(1YoKD$bjaH&z?Xq?=hSGpy%lKl-?avYPb}+gZEr9M3wmC& z_I-V&?D5opW=dgsif#e5rvNkq4(}sp=D-f3`x&gE55hdS>iW-8mzSahmG!6_Ly$18WPqefGx!9e1Y-Asab-nwbB+*wI{r<{94z zAN6BSTu2VuVbhY~-ju+_z+tiFR!}^rKPRq`JCBlZ5F)-Ss{Q% zyY-r7YK;1sP-`+ry~K8$x?$~mM`a<(Zs5lB96~5_TtoijAXkth`6!7%UG70GC{HpM-!yxH#eF3`|Xs;pGVK~OZScNzJEwe05J zv0cq>w4LF>+TuAUDKRV3o|2^`-=Ot&ImQDSq0r#(K zIG4u_=^V$U$LrT-9HTt3lr>IXkB~F*{9Cq!b-r|_KyoVIpQdZLq~KLM#?gp9CnbSM zi4Z4euNv=t$xnW-^76dBy#eS_{Qvp4AA1moXaQNJY&=4kzkabQl`3LT zsM<+|3-{g1VE!JllKk7a_uI=j9v&`aDU|kY{1P?J^!Ek}+jWCe29FcTwa8QOG)YGu z;rD%*Tw7-s+(RrEGv>qibYb(&PM?VaxG0x*G7Wd?XHV9c6lp{XocFXERUp{POY-ztHw@ zkS!xCdt&Q(C0#5n^d2!Py2L91!Cx={5#<8~XCE31m2@#^B*08sL5_+|IOS5B6u|8x zDn-(^d5JulqgZ-NI)&dzQ?U==_H2{A7wd}x{mG6+JmmQ42g3%{4f9O`6K^A~`{G}xi8vm=J6$rI#17N-S!aUd>_FJV4hR&gM`Y*B6adF&;%=lW7JzVbL&HiHzP${( zA)d?CW+DCBpByElP~>-kRVcoDw8a8I_IWWd&19m{1Q&35E}Ts<(blEBu^d%{#3&09 zfJW3XcDr0 zCVFxZ?`6&Df*1v0nv$?c<@B}5UR@J&#YMdJbNE5sxo$nh#l=$?n2H&-w1&)+!-H?= z$)iByRCuSa=fA9+Fzz=lz$$QAZ?K0TVo+l3RUheO(OQ9fV#v~V)fS?mKYC{8%T9N<&r|uL&UGc)-~{=>z2{Neg5Vx13`#{iJ4T?|^XC6d`ahWHw;1T_q`N!MPdLcEv?Jet z%vu9aQ;?^pd`yxt?(8_=m7kiYh{JL^po z`drgVBWtESK=SD+sRi!wve5yWPXko)V*Ca@e+$K!(B;k5fC0nj6W3n=)9#HG01N^L zPPJmdn)8)b)8{{II)I32g$tmGf`i`yxf4pQY5-yUAJw!%9hkOe@r@5PUQSvXAuq3H zaYtkiP=4|A^IJPQ(vXwyIO#Mw*xB`)*5}k`{1<764nzS=o3^Y0OjK__zdaBLw7U8C zKLCIIR>-gme{RO4Wsc$@;vV;jJ3sIX-(If&uYagTfTRZq{jspHSbcA-1qB7$HQy}m zF1D2X`~*VbKAhQ&)GvyC3{QvI*dcy?5)Kn{OiVs*YqV{vp{drlLgATq0IG-t&KCiS*c}`Vi+Dk~l z07B$Py-xpk?OqpC+r6P3B*G5BL&D_bqygH0;CwO6z_SAY<*r;^Hd5)k+Yr!hvf;{S zc?$Os_(k`Lv9RKA0z{CO!{;Aj@4vi67f*`hQD6vgM-HU7#p|duEEbr{zgbLGoEuo_ zksU4>`o(?!j?w)D>ZsB9$Dbc|cDUeY!-@GeHYOW5sT-nON-0Pl+d5+XvrpC|K*)iM zNn%WV^o%3gaihIJ8Sq%R34q4pfwa;J_3w#^!2tDX$@c$Wqd_pKvfm_&$N>|l-6A=V z83J6DB_t%=s~@N5{`~RmQ@?X<%W1M(`ktEl1(2dH+43551U`EY#Su!Wt1kq3nke7x z0$8}^+wCB178Vu^3=D)1A71pAS}7H#S+Ckb$v^`(L2a3Hr^gd=Hm zGR`_WXs3yO`Wl>Wbp5wd!@gpULJNhA8)kj#x$ZfnAAzYV^V)*E>0GrhS)4Zzv9&X!RwXl*cj<9y&QVTh3TPDvg2&4Z!JmNlEHm}-#J zMZb0lusg{CrzbQ#svvFXiif+qvU*eg#ocol{cln01kuj#>(;k+g_8zRJw2qZPAux0 z#DA+b=qB>KeSCL!c0%N71WGUW-1(1>j>yQ!wkL{(o7M{2GMhco!qmf`^1I|$S7&Ts zEh7Z1b{B(m0bt{ttLN>?x0oPgT_(vU*xW(PbVp!G#`OH7(b;q7&)D>uv+o=nc-j+I zVb8A1+I7&X^3YqE>Rvnj{ts_VnGVaKYCE`W8o*)3mzCiz8M-m`hkp<$1P)9hK%)gp z&cM0`&OS^M5)ekflqawPfsEaOp`qP_gFj7=EdTsnvL*axD;?bS%fH7`87nF(K36S% zPf3xGmX_9PQ2P-#6d<6(V?~^5(j_e|N5M5k+}0er8|Pd2)bz_nT!0@lK&V2#atDdZcnJDxCg5I5?HAjMtU`M4XA&_hf6lGnglR6Y53-iO~eUY?qJ z^(`N_qOlFYRu?r6#>Bc*KsqGy-O_p#Zd@`%(}%CxVzk@csjC`(jR4tnKUJ}5@|FFu zHX(Tjr@yM5vHk82el<|0HL{`=52I_nG61xRU#m!I=C#HNTxd35F+Vzd*_)RY(x5w! z%P5gtE#cSw!f{L7RBp!^<_*8I_cs*ak+R+QGY$n^}DVgx)8>5 zk}Or@zLUw`_k4)&EW@AbHKih{Pu+pSFuo*zJZDwYey)#h5-<+^mcV%4nVHekozXhm zz0dSxEeqQ@z8GX{kL_*_>-;P7GJDwWIdSz4gCb%6aI5FABOmp~CkWf4S=5&bLaL^G zIv_g!dVZ$+K4HVEc5y$+O?3bb4%lo%8l`R-snSMVL`%>FNH8)CSMoM7erB9X26&n@Y3*$ng! zbr=|=?h}WPq@NLNf8l_~3qPf?tjW)U^zS^v648%CTMk9IMu6`c2+RNQk)F&i-=+^N z)aq1q;(#wS0Bwu( z?JMB?e#^PM_ImVqKIH{!1y7HU7$hW9fE5D*>bRg|W(L{1UTJ4rm(y8I;^569L&B;N!c|^K9tN8KDFs9_xr`^=n_$_Tq`*9rO z|0C)wgX)O3Z4C(o3-0btaCh0bOK^9W;O_435Zr=01b6qK!QI{EbYI27nzawvGXwYZR9o6bVU{$Vj!Cz%JuCFf*h=_PoNwPJZVBi^{wG~=y3@=K4 zPU!fh5#P7ogfM@s6ya)Ze9+V}kFym<9jqhYUYC|EU}tRh9WMG<)AHWNY;{yN=_or* zOL};@E_?69RY^frO7z{9oqk2O=Uvr_0)1svd;h&5{_JVslwoBk2flr&r6EkLq&p=1 z&usSYugCbO4ezn6W?wV;g8Rew+2w<_H%|@k(kXH@yA9A})2q=#Ygrh&fSsY432@Jh zN&b({^g0*+rxra509f&sWUJFJ|8!RR)fbCh%2X^-gT7 zN+b6Bt2-}2F}D=l*iv(KR7whSUEQeppUhh4MxO819^7*GUUG0wN%gcPQKMh}9&L#L|L)oz(#yf-B2xv(i!av31OhxvT-N#%Qfu{gG^;Cf zU#!h;wm7}sc%Iv9AqHIS>A}W&Lro;QEj*=MyUs^bNU;FnP4a8~zeNGz$D0(-w8O&0;1Qt`uf-tNFR1bxp019 zku~$HsbT!bIt9SS7r$>1^t`SHj-XuGHEUpD@JGV?X@9lALCJ}7c*u1onC-7kP6siq z**`&x6%B2l{GVL3vZ}DIDP?pJ!!n7R4gB^3JOF-jErb2E2HQC zG)iH9&$cOZg9bh6}ZBXt2t6+E1x!xR=3}5z*YF(JY!pD&=)c=9aAnBI74l} z1dr7q%ewGg2_S-*h|p?A!e{nHwTg%+&t1JJZ4?R_HDo_R1p?t@(0`bf48Aw;8{;0S zcD6D?bru|ZtL!z77YG=1OJY_#mYuJLY$rb~W4~d5WheOIi`-G%?=QsZInQ=Fmxww# zvLu(oYKkN^KrYU0ult3lMjh5lPY~6UIB*1}!i48yTckmHT0-5eaAzdRVtoy%D&ght zg=o^o@XZS4x+XdQ_yG>r`JMzBs}rWD$iHWjOx4~rgQ2iI-EDgTmv;3g{kwKk#1`i~ z(sjq>4~MHeCC>5mf*Fe*SAbToZX3l0dB!H~6A(a4- zl^PwWjdzTzq?e>*H1X$eiDlKLJ?6D|NUmAx@E+w&r-CbdF`H?Olj9*rJ3q(F<}z$v zJ4qrFdXs-&_DbFVvHHj;6)F*&RcT51c6j7WBxs(r*AC|TfY~Q zp*S$}J*~Aqcw6K*-1GddE><1M1nL%RIN{?zo-i7O7uf1qJl}EkZBKVER$E#%DSAV* zc1lbx-W=osgL3Jr)DqRhogG% zCA0K;5Q$}}K>Ed?<@9eeCP4k0F~_6Vt$t`(7ck=i_EdB8^ZfuYBxcBQrIR*Vf3?Zx zUw*m()0Y^Cv)zDw-anDy@bK_v?GV9^YuC%)Lrcm~`p7~E>O{WS%X6MgE_DkdPA2M8 z|MO<|%k$*lb>&~`o8dh7P0h>B3I4*Zqn2UbyBsg_59W4p zL@%=d+RK%NHMb$!-#T_7HMngXrh9+YuK&W7Fxgz0(0%m5@;kWKrgL2Vaine8OZD9j z7x0a3tvAD4x&Kb!<4I}v_W|tXfw$Z4!Y#*4PiJI^P@qrV=LeMQ`V%Sr?@RV`w?n4& zmq)ubkH;3Z4+dASmc-|oD}0L6kep`s&CrkS+5^{FKWwW9kN3u1e$@-hqD+_LKOJLT z^jbZpp_nh-6zqHtjy^tnti=<$-3_>Q2dyirZD&x+Z&xg@k3%B0KzWSK>)FGyXDvC0!Y!4i{T>9>2VljY^7tOU)CDl_DkLZ;fxNqU!9$eLSo7?eE~o4pk%( zjmwccUIOnW;la4#yrzHrrj^^0GT;tVdgsB~ijq*rb95Yz0!_xW$J2b%+^kl6oV?)} z43b$x4khqk2w>YRVj~S^6_i48fI%o6m1~n33g_a$Z3tphhfqSTV=(X6OZx4Fs zYmC7=AtqySeXxWY!=IT2!z^xa0jH)J<0#T{#RBnQm11I+<^-P#%meB*Tf_das|ldA z_CNj@a&+md*6gP)FPIpdA+@(Gf^p}pq!!TeaWVljQ3@;4b|1iKlLo5^Z8}1 z<#(EJW7@eG)7U{Mm1kuHxF~_Bnpdcvwj;k9#{JCfSJ=vstl6&(gN70NbURw9dOdq% z*CVsR%guA+yWuWP7cnTg@jWfbIs6#q0zTnqxCq-+Pv{>n^|&pjlE`iQ2p)*6Mq>*K z4~KeXvYmcMsjp$Um}m-UOB1Nh7Bb2Y(;WpdpC^RBZoCr+w4Ym6VH1*B!)@J$rMHr0 zAK!<2eVD1)AIXsCJ##nxUKQFR-`L6+ql`aVmp9Xa>UrwgQWI$LCwKV93J+1%9F|^I zf4NSP*5>wABb3h@!td)!vo&R0S`fQraMSiTThAw**PWDv0=TUUYg3zoq+qp@nb%nn zm6dG?&38B-hrJ*B;Z4_yYM<)j;B4ekaW_s14`)wW_OB(4TkdDSZ;0Bz+dX#Sc1>mF zLwDG62{~h64)S_WT1=*u$oE6V;QZ;d6XjwD;;3b;H{H^|Q{~d zeVhSY>RnV%jeQSnRmzYfW>IEF_sk2KzoM{-)%v@|BQ#2c3loW=pc6+yBS8kK^ZYI? z(45_w1Aw&H9jiv3&(L74VO7oy(-&9U@g{MFj6YQXW*oUhe||w{;Sz4M!m33N8b@jc z_`$pTKXCTlueL~>Y=NaZHm!i;K1AoCM*RhBiGC@s0QRo|c0{)|mt3=DHg zw&C~)QD|ZM!;Mi|`Aj6V*aBl0a0_M_*mSIT1;1`Z@r8SuKQ^c=TjFpdY7vUkg%W#0 z0WPQ}@{RHCJ9Nx*@Q30O9o3VA#DGd7c?kyM8T zG}4h!!=`)oS_;lw(I*=ffv(_eEl;G$QPQihu2w-hqQi&ThaOMp;wcJ#U`kS;{QM2d z?MHM*tJ=81ud3+#%BidV&#u=~;=0=dHs2cHwx<$hMX>h>r=>$Y3={dZSYe9k;x9jT{!vj>k|l~?YY*1F+D72oOE zcN8X@Ex|XRoJu7J9}ALC{(kq-9|oSwF89!8N*Rx3@(Cs0m@n(EP#hme$huw*xKP}9 zP78!T_s>e)92W`hGm^}sC5>r4YOLJ?RzDtW2|TYvb385hGEaUviT673y>RGm{LVbH z5n2Ps^bo>-SW_0CRVUTV{!~_yU3DzG<|B_EZWImDQmcJ#eR-P5p1PWq-fQqk42zsI zU|qs8UzuQ8>cWW}#L)blS6Iqao+p9r#-Ka#Z5?t9OcFs*$`F&Z96aEA@}*6YI65kb;&V zYjnn%@I^x1sbX){`JDwa0=EpP_g5lBfqPc@j)n|Gc9-c)_C!1bbSQ*27!WU(^BJ$3 z9{ym0v6Chjiac)i_so{J%R2LK&bXmfsqODK%nWDddCGXP6inf}%7?1a6o-c;)vxGH zVHo!7OL$TV$)FBZ;j_%8Zj|delo5H(`sLVvq0loB3jK33{q^f>v{;~KCBYUYRygSJ z^wjv|PbFYu#LU7X{_Ep+4*#EwMwPo@d&+EJCBOv(&#PiS#+Pa{-ci?lTxc5?CqV{$ zO{jrnwrxA$c2MJdqN+`giH(g-`X@K4WC~D@0QuNMXKn)DZ6=rVwVugro~0&lT&*Ts z>~~+l1P!4*yR(xYgF)A8@KnE(M(jbpYos4Uje`mg&c{qhjQMCL?}H@dOe^*FL#!FBjNOEu28s}E`l8#95lcw9{afd%2u?1*PuDEoRY zOwuXejE+RdS}(6f>9XPj))lAPR_GEUG3(8rp6K*=BZE{Ho{YTK?xcNmRRm~Ga* zFc>sOX91gwqe753lAd-De^nR^IoEEXdAyX01S(uQrz8DMNf{E%t-6SE+DB!iMw=5h z<~KTGJ~ZQ+He6af{A$5Z5ngrm<6$7v468FIwMNA{b2`(+Z2wV;UI-W&da?z@i5{_U zTP@3U>ORC{DRi6LkdVVGU$9PVHj_%@$uXD>_VF-el!-yHY@ESQV+^Jvvqf}i8oe!O ze0u$zJYrFa1^(WIUBjr&85h?ed>PUaNe?0{dy!H zTU$O0x?no>4*(Yc^_rty8^jCJd?!Mayo$L-1=2wfpZObTfI9!_9Syn^lH>||cdtHt zBwydp@K(8-O}@NC{*S!db@d~>B#>i@PxN-YAFK>1ja%v5sW3Fi<;rd=hy!@Sm5;X! zUYw?}iyS0#lz6bnUmvH-(83VBWu90~8MbP^7%5^b8zszmw=E+X;?sC@-$=b!9M(Gi6r%Oc$QUR5otGsLBe6ymSR~qvL)HsaT|u^WvA%m*0{PtejcO- z6is1e*Axint3w&yXDyYor*2z9G@h(vdsC(}r&m$2a0(CAn9I&TGj!M}WZ02mAR!N( zAZ2JK$T(!hS~?O#5btM@zzOkLlka9)rb6}m2Uf+^Y*^X_ek8W(gVz_+*sCond;g5p z7Xs(@22Yf#8b*fJAzl@YBN3I*!orJ>V(v{hU07ozVndkil>^q-k6aWuq^~5XU7H~%Fl++TG<*f2M zjnbw-!&Y$PDXlpE*}fqPMuY+;55*RmI&v#=(0({~v+$*TsqvgBMTE;=yg+2Lvbf$6 zO6w%_z4!jP^7QbuaF9}vGC{Qd`1`pU9?tZp~lSYW=2HqtkUVsEnML3NS<_5fWR%u z6}Q`^e~J?YX6LR&VWdz3Q5K5?EkdE(>G6|LfLZAWHmO)tH3x8-{P^ewcywqrS?5(& z!dJVRZ`u(d{cLZ~#OHA#!iWT{0Ee>lw{MW3ACXXmyg>riKCW3Rr`5C=y6`U)Fmi4-nKI5qw1 zOK+XccIxhp&g1%BS$PrUXobjUO8G8gOE}cOFy_ZV5NiO7I&^{*3Hehl&;CgmLzg|+ z@Y%uy0h?N*@OV$+JI?m3qeMLy%$I=2hVXt9Qx+!WP<1k}XpG&VbSvpRp#)t)Ia`1V z3HG_u?RPn~%=kPp3amnjX#&~ze211ALKaivpOh@}{(_bTZMC@>s-IIg?2*F>DBql& z(@1@sik`5vvv0pdDh|fxb(acL#s8e5C*r~q+P&IRwL~hxj7!9gC0U#DV=&;vs8#UO zEEu3t!}G-wi^3{_M?{cj_-kX+;OsKH{{tC8JY0-8=xZx?u%z^Uf(~PDu%l^>o7jB` z$tAJyB*C+$%Z-m3f@l%fu1VCShfJRRyUOH?DvU*m4;FzBZyxVX8T#T{!SpB7QM`35XHk5N;pvw^}Np{#{ zg!|J(A%J}#SmLnHvA>vj5$sKs&{i=m$O)?HooWjezLKw?klA#^ef+mR-jVp*L=n~e zRg_-bq@Xflu`Q~1u}|BvOyLBf`0v8pXB*F@rh3FolGwH1yw^!CUq+kjJ#Tz8c|$`o z+*eDNHY6kYA}uza;JaSl2p=Z~mZ_d!O4l@k%c^4@_^m-&&o)(UPtC7et^#`p8(PCE zd9mhHGDN>9msr4TDT{A8$Vf ziw|SALU#w|)#YFOvz<6Db|*MCjLjS|O`v#6E31kYRfgItaHnNk0xIm@@qHiv%0Di< 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