From 9a02138ec99d514af85f3ac2d7a6833a9e2b4332 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Thu, 23 Apr 2026 10:20:14 +0200 Subject: [PATCH 1/4] Create draft PR for #1118 From 553d0772c74c1a30e1ea3c63027477f6a8f9b73f Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Thu, 23 Apr 2026 10:22:00 +0200 Subject: [PATCH 2/4] Add eAxoDriveMotionType for linear and rotary motion types --- .../ctrl/src/AxoDrives/eAxoDriveMotionType | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveMotionType diff --git a/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveMotionType b/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveMotionType new file mode 100644 index 000000000..d8ceed7fb --- /dev/null +++ b/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveMotionType @@ -0,0 +1,9 @@ +NAMESPACE AXOpen.Components.Abstractions.Drives + TYPE PUBLIC + eAxoDriveMotionType : + ( + Linear, + Rotary + ); + END_TYPE +END_NAMESPACE From 8f324c88c56b8e019813ca87109d77455eaa59c4 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Thu, 23 Apr 2026 13:55:42 +0200 Subject: [PATCH 3/4] fstrtr --- ...xoDriveMotionType => eAxoDriveAxisType.st} | 6 +- .../ctrl/src/AxoDrives/AxoDrive_Status.st | 1 + .../components.festo.drives.sln | 107 ++------- .../ctrl/src/AxoCmmtAs/AxoCmmtAs.st | 214 +++++++++++++++--- .../AxoCmmtAs/AxoCmmtAs.cs | 3 +- src/components.festo.drives/this.sln | 107 ++------- 6 files changed, 224 insertions(+), 214 deletions(-) rename src/components.abstractions/ctrl/src/AxoDrives/{eAxoDriveMotionType => eAxoDriveAxisType.st} (60%) diff --git a/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveMotionType b/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveAxisType.st similarity index 60% rename from src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveMotionType rename to src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveAxisType.st index d8ceed7fb..8b6303b06 100644 --- a/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveMotionType +++ b/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveAxisType.st @@ -1,9 +1,11 @@ NAMESPACE AXOpen.Components.Abstractions.Drives TYPE PUBLIC - eAxoDriveMotionType : + eAxoDriveAxisType : ( + Error, + Undefined, Linear, Rotary - ); + ) := Undefined; END_TYPE END_NAMESPACE diff --git a/src/components.drives/ctrl/src/AxoDrives/AxoDrive_Status.st b/src/components.drives/ctrl/src/AxoDrives/AxoDrive_Status.st index 3c164c610..a0dd0651f 100644 --- a/src/components.drives/ctrl/src/AxoDrives/AxoDrive_Status.st +++ b/src/components.drives/ctrl/src/AxoDrives/AxoDrive_Status.st @@ -1,4 +1,5 @@ USING AXOpen.Core; +USING AXOpen.Components.Drives.Abstractions; NAMESPACE AXOpen.Components.Drives {#ix-attr:[Container(Layout.Stack)]} {S7.extern=ReadWrite} diff --git a/src/components.festo.drives/components.festo.drives.sln b/src/components.festo.drives/components.festo.drives.sln index 0810dc643..e189f6841 100644 --- a/src/components.festo.drives/components.festo.drives.sln +++ b/src/components.festo.drives/components.festo.drives.sln @@ -5,17 +5,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{C6BBE176-E1DC-4F3B-A0B0-756A935571E4}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{3F2AD802-248D-47E4-880C-1653DE83926A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{1AEABE44-234E-47E0-9389-2C6CF046AAC3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_drives", "..\components.drives\src\AXOpen.Components.Drives\inxton_axopen_components_drives.csproj", "{AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazorapp", "app\ix-blazor\AXOpen.Components.Festo.Drives.blazorapp.csproj", "{70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Drives.blazor", "..\components.drives\src\AXOpen.Components.Drives.blazor\AXOpen.Components.Drives.blazor.csproj", "{5369B88A-0ABF-4CD0-9986-7598B9C56600}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_axopen_components_festo_drives", "app\ix\app_axopen_components_festo_drives.csproj", "{FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_drives", "..\components.drives\src\AXOpen.Components.Drives\inxton_axopen_components_drives.csproj", "{AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor\AXOpen.Components.Festo.Drives.blazor.csproj", "{08965A8B-6912-41F7-A1B9-82AC0B8D3A43}" EndProject @@ -27,19 +23,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\co EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{7AE56C18-2193-4D11-8CFB-94ABD70CBF02}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{8E45E5D7-C553-498C-ACF3-5FE833B39813}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{42CCCA07-4072-406E-8FD9-8C21D81DE8DB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{E21608C2-0913-4F35-8CB3-BE58A46CE344}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{0DDD6B05-155B-4939-A244-F097F7435EC9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{52E629AE-AC63-407B-B5C5-B4032C907F3D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Operon.Blazor", "..\styling\src\AXOpen.Operon.Blazor.csproj", "{98D97709-B002-408A-81E1-1C846D1E942B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}" EndProject @@ -53,8 +43,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstract EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{205CDFCE-B57C-4C27-9892-4D00CF169510}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{CAA833FA-DA2D-421F-A927-806CACADBA22}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{1CB57C6C-551D-4EC3-B2FD-CF02F23AB858}" @@ -67,18 +55,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstra EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{024D3BBF-7F13-4C01-A93A-35BCAA4D8033}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives.blazor", "..\components.drives\src\AXOpen.Components.Drives.blazor", "{01E1E720-4C3A-4598-9B81-82F36034D6CD}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives", "..\components.drives\src\AXOpen.Components.Drives", "{3DE29700-9588-4FA8-9E55-AFAAB6079B3B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.drives\src", "{935E3F7E-9859-4C42-85CC-2C41255E561A}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.drives", "..\components.drives", "{A95B3B75-BA4B-4A24-8423-0F7F567B63FE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{DC7412A2-F252-4408-98C6-28AAAF8915CC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{1ABBAB40-C0F6-47CC-9955-E45A4954D7E3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{C9A50598-A8C5-45B3-9878-1B107014525A}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor", "{AF8234A0-6224-4B8A-9BD1-1673447D1551}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives", "src\AXOpen.Components.Festo.Drives", "{283A01B7-7AFE-46A3-8093-EE737BF16464}" @@ -99,14 +83,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{C54D EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{3C5E1378-F872-4E82-B52D-A847344930CF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{2FC2CF37-9B1B-43B9-A765-33597E3C0CCC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{F827C714-4DA2-47B7-95FE-3D986752B6AE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{FF2A1720-45FA-42FE-A31B-A78101EF0D09}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{D336FE23-7549-4A44-AF76-C54E4C2BED42}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{F5D5C86A-96F3-47ED-A3DE-D12924334C32}" @@ -121,19 +97,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{D8D56C6E-4020-4F2C-8E17-218ACF02CC59}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{A80CA72E-6877-4B3D-8174-B47FD5F42C92}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{A27D7180-3E4A-431F-8644-E5C1D5F32B95}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{136622EA-40EC-4CA5-873B-D35335D94EC4}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{1BFA9944-2C75-481E-B94A-C9F8247459F7}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{A50B4464-9329-414D-9DCD-14B7379EE93D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\styling\src", "{DB9DD4C9-57EE-438F-B203-1550D53C1698}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{6A3692FD-80C0-420E-ACA0-3BFF3C7EEEA2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "styling", "..\styling", "{FF493901-2012-436E-B895-CB82A31A54D4}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{C9A31423-5400-4518-AB6A-C73252B316DC}" EndProject @@ -165,10 +131,6 @@ Global {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Debug|Any CPU.Build.0 = Debug|Any CPU {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Release|Any CPU.ActiveCfg = Release|Any CPU {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Release|Any CPU.Build.0 = Release|Any CPU - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Release|Any CPU.Build.0 = Release|Any CPU {3F2AD802-248D-47E4-880C-1653DE83926A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3F2AD802-248D-47E4-880C-1653DE83926A}.Debug|Any CPU.Build.0 = Debug|Any CPU {3F2AD802-248D-47E4-880C-1653DE83926A}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -177,18 +139,14 @@ Global {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Release|Any CPU.Build.0 = Release|Any CPU + {5369B88A-0ABF-4CD0-9986-7598B9C56600}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5369B88A-0ABF-4CD0-9986-7598B9C56600}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5369B88A-0ABF-4CD0-9986-7598B9C56600}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5369B88A-0ABF-4CD0-9986-7598B9C56600}.Release|Any CPU.Build.0 = Release|Any CPU {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Debug|Any CPU.Build.0 = Debug|Any CPU {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Release|Any CPU.ActiveCfg = Release|Any CPU {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Release|Any CPU.Build.0 = Release|Any CPU - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Release|Any CPU.Build.0 = Release|Any CPU - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Release|Any CPU.Build.0 = Release|Any CPU {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Debug|Any CPU.Build.0 = Debug|Any CPU {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -209,10 +167,6 @@ Global {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Debug|Any CPU.Build.0 = Debug|Any CPU {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Release|Any CPU.ActiveCfg = Release|Any CPU {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Release|Any CPU.Build.0 = Release|Any CPU - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Release|Any CPU.Build.0 = Release|Any CPU {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Debug|Any CPU.Build.0 = Debug|Any CPU {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -225,18 +179,10 @@ Global {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Debug|Any CPU.Build.0 = Debug|Any CPU {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Release|Any CPU.ActiveCfg = Release|Any CPU {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Release|Any CPU.Build.0 = Release|Any CPU - {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Release|Any CPU.Build.0 = Release|Any CPU - {0DDD6B05-155B-4939-A244-F097F7435EC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0DDD6B05-155B-4939-A244-F097F7435EC9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0DDD6B05-155B-4939-A244-F097F7435EC9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0DDD6B05-155B-4939-A244-F097F7435EC9}.Release|Any CPU.Build.0 = Release|Any CPU - {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Release|Any CPU.Build.0 = Release|Any CPU + {98D97709-B002-408A-81E1-1C846D1E942B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {98D97709-B002-408A-81E1-1C846D1E942B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {98D97709-B002-408A-81E1-1C846D1E942B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98D97709-B002-408A-81E1-1C846D1E942B}.Release|Any CPU.Build.0 = Release|Any CPU {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Debug|Any CPU.Build.0 = Debug|Any CPU {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -255,22 +201,17 @@ Global {88D1E3A0-11D6-4D0C-838A-45C9B89C7977} = {1FEBCE20-0A5D-47B2-A182-B0EC70F34A6B} {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694} = {F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8} {F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4} = {205CDFCE-B57C-4C27-9892-4D00CF169510} - {205CDFCE-B57C-4C27-9892-4D00CF169510} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} {3F2AD802-248D-47E4-880C-1653DE83926A} = {CAA833FA-DA2D-421F-A927-806CACADBA22} {CAA833FA-DA2D-421F-A927-806CACADBA22} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} = {FFAA7124-46A7-42B3-806D-A6191A24301A} {1AEABE44-234E-47E0-9389-2C6CF046AAC3} = {B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A} {B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A} = {D4B589C8-8451-49F5-899E-7C6EE551013D} {D4B589C8-8451-49F5-899E-7C6EE551013D} = {024D3BBF-7F13-4C01-A93A-35BCAA4D8033} + {5369B88A-0ABF-4CD0-9986-7598B9C56600} = {01E1E720-4C3A-4598-9B81-82F36034D6CD} + {01E1E720-4C3A-4598-9B81-82F36034D6CD} = {935E3F7E-9859-4C42-85CC-2C41255E561A} {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5} = {3DE29700-9588-4FA8-9E55-AFAAB6079B3B} {3DE29700-9588-4FA8-9E55-AFAAB6079B3B} = {935E3F7E-9859-4C42-85CC-2C41255E561A} {935E3F7E-9859-4C42-85CC-2C41255E561A} = {A95B3B75-BA4B-4A24-8423-0F7F567B63FE} - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA} = {DC7412A2-F252-4408-98C6-28AAAF8915CC} - {DC7412A2-F252-4408-98C6-28AAAF8915CC} = {C9A50598-A8C5-45B3-9878-1B107014525A} - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70} = {1ABBAB40-C0F6-47CC-9955-E45A4954D7E3} - {1ABBAB40-C0F6-47CC-9955-E45A4954D7E3} = {C9A50598-A8C5-45B3-9878-1B107014525A} - {C9A50598-A8C5-45B3-9878-1B107014525A} = {B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF} {08965A8B-6912-41F7-A1B9-82AC0B8D3A43} = {AF8234A0-6224-4B8A-9BD1-1673447D1551} {AF8234A0-6224-4B8A-9BD1-1673447D1551} = {BC80146C-7A5D-45E4-8C65-EC1E76C8E548} {CF596C38-A60B-4642-9FFD-739BDCEDA455} = {283A01B7-7AFE-46A3-8093-EE737BF16464} @@ -284,10 +225,6 @@ Global {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC} = {85B06B85-89A3-4836-A4FC-0A36917D013E} {85B06B85-89A3-4836-A4FC-0A36917D013E} = {C54DB5FB-93D2-4999-88E9-F586174B797C} {C54DB5FB-93D2-4999-88E9-F586174B797C} = {3C5E1378-F872-4E82-B52D-A847344930CF} - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02} = {7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F} - {7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F} = {2FC2CF37-9B1B-43B9-A765-33597E3C0CCC} - {2FC2CF37-9B1B-43B9-A765-33597E3C0CCC} = {F827C714-4DA2-47B7-95FE-3D986752B6AE} - {F827C714-4DA2-47B7-95FE-3D986752B6AE} = {FF2A1720-45FA-42FE-A31B-A78101EF0D09} {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897} = {D336FE23-7549-4A44-AF76-C54E4C2BED42} {D336FE23-7549-4A44-AF76-C54E4C2BED42} = {B6A1803A-46A6-4264-8AE4-DE15FA9E690B} {8E45E5D7-C553-498C-ACF3-5FE833B39813} = {F5D5C86A-96F3-47ED-A3DE-D12924334C32} @@ -296,14 +233,8 @@ Global {42CCCA07-4072-406E-8FD9-8C21D81DE8DB} = {3210DEAA-DEE3-4543-8100-8A177FAE2466} {3210DEAA-DEE3-4543-8100-8A177FAE2466} = {CB156B7E-0FC1-484C-895E-DB56609A8434} {CB156B7E-0FC1-484C-895E-DB56609A8434} = {D8D56C6E-4020-4F2C-8E17-218ACF02CC59} - {E21608C2-0913-4F35-8CB3-BE58A46CE344} = {A80CA72E-6877-4B3D-8174-B47FD5F42C92} - {A80CA72E-6877-4B3D-8174-B47FD5F42C92} = {136622EA-40EC-4CA5-873B-D35335D94EC4} - {0DDD6B05-155B-4939-A244-F097F7435EC9} = {A27D7180-3E4A-431F-8644-E5C1D5F32B95} - {A27D7180-3E4A-431F-8644-E5C1D5F32B95} = {136622EA-40EC-4CA5-873B-D35335D94EC4} - {136622EA-40EC-4CA5-873B-D35335D94EC4} = {1BFA9944-2C75-481E-B94A-C9F8247459F7} - {52E629AE-AC63-407B-B5C5-B4032C907F3D} = {EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64} - {EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64} = {A50B4464-9329-414D-9DCD-14B7379EE93D} - {A50B4464-9329-414D-9DCD-14B7379EE93D} = {6A3692FD-80C0-420E-ACA0-3BFF3C7EEEA2} + {98D97709-B002-408A-81E1-1C846D1E942B} = {DB9DD4C9-57EE-438F-B203-1550D53C1698} + {DB9DD4C9-57EE-438F-B203-1550D53C1698} = {FF493901-2012-436E-B895-CB82A31A54D4} {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E} = {C9A31423-5400-4518-AB6A-C73252B316DC} {C9A31423-5400-4518-AB6A-C73252B316DC} = {101213E4-86F8-4ED4-9CF9-FE63BC0A57FF} {101213E4-86F8-4ED4-9CF9-FE63BC0A57FF} = {A0B006F1-1A99-4229-94FF-120DEFCDDEF6} diff --git a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st b/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st index 30e6ad8d8..e5d20639a 100644 --- a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st +++ b/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st @@ -1,3 +1,4 @@ +USING AXOpen.Components.Drives; USING AXOpen.Core; USING AXOpen.Messaging.Static; USING AXOpen.Messaging; @@ -96,6 +97,11 @@ NAMESPACE AXOpen.Components.Festo.Drives {#ix-set:AttributeName = "<#Scaling constant actual jerk#>"} {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} ScalingConstantActualJerk : LREAL := LREAL#1000.0; + {#ix-attr:[ComponentDetails("Scaling")]} + {#ix-attr:[ReadOnly()]} + {#ix-set:AttributeName = "<#Axis type#>"} + {#ix-set:AttributeToolTip = "<#Depends on the actual settings in the Festo Automation Suite#>"} + AxisType : eAxoDriveAxisType := eAxoDriveAxisType#Undefined; END_VAR VAR PUBLIC // Debug @@ -104,11 +110,14 @@ NAMESPACE AXOpen.Components.Festo.Drives State : UINT; {#ix-attr:[Container(Layout.Stack)]} {#ix-attr:[ComponentHeader()]} + ScalingReadState : UINT; + {#ix-attr:[Container(Layout.Stack)]} + {#ix-attr:[ComponentHeader()]} Debug : LINT; END_VAR VAR PRIVATE - _ScalingRead : BOOL := FALSE; + _ScalingRead : BOOL := FALSE; PNU_11724 : LINT; // Resolution position (P1.7841.0.0) PNU_11725 : LINT; // Resolution velocity (P1.7842.0.0) PNU_11726 : LINT; // Resolution acceleration (P1.7843.0.0) @@ -120,6 +129,11 @@ NAMESPACE AXOpen.Components.Festo.Drives PNU_11203 : BOOL; // Move to axis zero point after homing (P1.841.0.0) PNU_11734 : LINT; // Axis zero point offset (P1.8416.0.0) PNU_11735 : LINT; // Referencing method (P1.8417.0.0) + PNU_12694 : LINT; // User unit position (P1.7851.0.0) + PNU_12695 : LINT; // User unit velocity (P1.7852.0.0) + PNU_12696 : LINT; // User unit acceleration (P1.7853.0.0) + PNU_12697 : LINT; // User unit jerk (P1.7854.0.0) + Parametrization : AxoReadWritePROFIdriveParameter; _initHwCheckDone : BOOL; @@ -133,6 +147,8 @@ NAMESPACE AXOpen.Components.Festo.Drives _outputsCount : UINT; _infoTimer : AXOpen.Timers.OnDelayTimer; _errorTimer : AXOpen.Timers.OnDelayTimer; + _scalingReadState : UINT; + END_VAR /// @@ -156,6 +172,8 @@ NAMESPACE AXOpen.Components.Festo.Drives SUPER.Run(inParent); Messenger.Serve(THIS); + ScalingReadState := _scalingReadState; + IF NOT _initHwCheckDone THEN IF inParent = NULL THEN Messenger.Activate( UINT#700, eAxoMessageCategory#ProgrammingError); @@ -524,11 +542,12 @@ NAMESPACE AXOpen.Components.Festo.Drives //*******************SCALING***********************// IF NOT _ScalingRead THEN Messenger.Activate(ULINT#1800 , eAxoMessageCategory#Potential); - IF State = UINT#0 THEN + IF _scalingReadState = UINT#0 THEN + _scalingReadState := UINT#1; State := UINT#1; END_IF; //Reading PNU 11724 Factor group Position - IF State = UINT#1 THEN + IF _scalingReadState = UINT#1 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 11724; @@ -537,17 +556,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11724 := Parametrization.Outputs.ValueReadLINT; - State := UINT#2; + _scalingReadState := UINT#2; END_IF; END_IF; - IF State = UINT#2 THEN + IF _scalingReadState = UINT#2 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - State := UINT#3; + _scalingReadState := UINT#3; END_IF; END_IF; //Reading PNU 11725 Factor group Velocity - IF State = UINT#3 THEN + IF _scalingReadState = UINT#3 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 11725; @@ -556,17 +575,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11725 := Parametrization.Outputs.ValueReadLINT; - State := UINT#4; + _scalingReadState := UINT#4; END_IF; END_IF; - IF State = UINT#4 THEN + IF _scalingReadState = UINT#4 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - State := UINT#5; + _scalingReadState := UINT#5; END_IF; END_IF; //Reading PNU 12345 Base value velocity - IF State = UINT#5 THEN + IF _scalingReadState = UINT#5 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 12345; @@ -575,17 +594,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_12345 := Parametrization.Outputs.ValueReadREAL; - State := UINT#6; + _scalingReadState := UINT#6; END_IF; END_IF; - IF State = UINT#6 THEN + IF _scalingReadState = UINT#6 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - State := UINT#7; + _scalingReadState := UINT#7; END_IF; END_IF; //Reading PNU 11122 Maximum motor torque/servo drive - IF State = UINT#7 THEN + IF _scalingReadState = UINT#7 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 11122; @@ -594,17 +613,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11122 := Parametrization.Outputs.ValueReadREAL; - State := UINT#8; + _scalingReadState := UINT#8; END_IF; END_IF; - IF State = UINT#8 THEN + IF _scalingReadState = UINT#8 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - State := UINT#9; + _scalingReadState := UINT#9; END_IF; END_IF; //Reading PNU 810 Base value acceleration - IF State = UINT#9 THEN + IF _scalingReadState = UINT#9 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 810; @@ -613,17 +632,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_810 := Parametrization.Outputs.ValueReadREAL; - State := UINT#10; + _scalingReadState := UINT#10; END_IF; END_IF; - IF State = UINT#10 THEN + IF _scalingReadState = UINT#10 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - State := UINT#11; + _scalingReadState := UINT#11; END_IF; END_IF; //Reading PNU 811 Base value deceleration - IF State = UINT#11 THEN + IF _scalingReadState = UINT#11 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 811; @@ -632,17 +651,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_811 := Parametrization.Outputs.ValueReadREAL; - State := UINT#12; + _scalingReadState := UINT#12; END_IF; END_IF; - IF State = UINT#12 THEN + IF _scalingReadState = UINT#12 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - State := UINT#13; + _scalingReadState := UINT#13; END_IF; END_IF; //Reading PNU 11726 Resolution acceleration (P1.7843.0.0) - IF State = UINT#13 THEN + IF _scalingReadState = UINT#13 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 11726; @@ -651,17 +670,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11726 := Parametrization.Outputs.ValueReadLINT; - State := UINT#14; + _scalingReadState := UINT#14; END_IF; END_IF; - IF State = UINT#14 THEN + IF _scalingReadState = UINT#14 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - State := UINT#15; + _scalingReadState := UINT#15; END_IF; END_IF; //Reading PNU 11727 Resolution jerk (P1.7844.0.0) - IF State = UINT#15 THEN + IF _scalingReadState = UINT#15 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 11727; @@ -670,16 +689,135 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_11727 := Parametrization.Outputs.ValueReadLINT; - State := UINT#16; + _scalingReadState := UINT#16; END_IF; END_IF; - IF State = UINT#16 THEN + IF _scalingReadState = UINT#16 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - State := UINT#17; + _scalingReadState := UINT#17; END_IF; END_IF; - IF State = UINT#17 THEN + //Reading PNU PNU 12694 User unit position (P1.7851.0.0) + IF _scalingReadState = UINT#17 THEN + Parametrization.Inputs.Enable := TRUE; + Parametrization.Inputs.ReadWrite := FALSE; + Parametrization.Inputs.ParameterNo := 12694; + Parametrization.Inputs.Subindex := 0; + Parametrization.Inputs.AxisNo := BYTE#1; + Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; + IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + PNU_12694 := Parametrization.Outputs.ValueReadLINT; + _scalingReadState := UINT#18; + END_IF; + END_IF; + IF _scalingReadState = UINT#18 THEN + Parametrization.Inputs.Enable := FALSE; + IF NOT Parametrization.Outputs.Done THEN + _scalingReadState := UINT#19; + END_IF; + END_IF; + //Reading PNU PNU 12695 User unit velocity (P1.7852.0.0) + IF _scalingReadState = UINT#18 THEN + Parametrization.Inputs.Enable := TRUE; + Parametrization.Inputs.ReadWrite := FALSE; + Parametrization.Inputs.ParameterNo := 12695; + Parametrization.Inputs.Subindex := 0; + Parametrization.Inputs.AxisNo := BYTE#1; + Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; + IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + PNU_12695 := Parametrization.Outputs.ValueReadLINT; + _scalingReadState := UINT#19; + END_IF; + END_IF; + IF _scalingReadState = UINT#19 THEN + Parametrization.Inputs.Enable := FALSE; + IF NOT Parametrization.Outputs.Done THEN + _scalingReadState := UINT#20; + END_IF; + END_IF; + //Reading PNU PNU 12696 User unit acceleration (P1.7853.0.0) + IF _scalingReadState = UINT#20 THEN + Parametrization.Inputs.Enable := TRUE; + Parametrization.Inputs.ReadWrite := FALSE; + Parametrization.Inputs.ParameterNo := 12696; + Parametrization.Inputs.Subindex := 0; + Parametrization.Inputs.AxisNo := BYTE#1; + Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; + IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + PNU_12696 := Parametrization.Outputs.ValueReadLINT; + _scalingReadState := UINT#21; + END_IF; + END_IF; + IF _scalingReadState = UINT#21 THEN + Parametrization.Inputs.Enable := FALSE; + IF NOT Parametrization.Outputs.Done THEN + _scalingReadState := UINT#22; + END_IF; + END_IF; + //Reading PNU PNU 12697 User unit jerk (P1.7854.0.0) + IF _scalingReadState = UINT#22 THEN + Parametrization.Inputs.Enable := TRUE; + Parametrization.Inputs.ReadWrite := FALSE; + Parametrization.Inputs.ParameterNo := 12697; + Parametrization.Inputs.Subindex := 0; + Parametrization.Inputs.AxisNo := BYTE#1; + Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; + IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN + PNU_12697 := Parametrization.Outputs.ValueReadLINT; + _scalingReadState := UINT#23; + END_IF; + END_IF; + IF _scalingReadState = UINT#23 THEN + Parametrization.Inputs.Enable := FALSE; + IF NOT Parametrization.Outputs.Done THEN + _scalingReadState := UINT#24; + END_IF; + END_IF; + //Check setting PNU 12694-12697 User unit position, velocity, acceleration and jerk are read correctly or not. If not, scaling will be wrong, so set the flag to FALSE to indicate the error. + IF _scalingReadState = UINT#24 THEN + IF PNU_12694 = 16640 AND PNU_12695 = 16643 AND PNU_12696 = 16727 AND PNU_12697 = 16800 THEN + AxisType := eAxoDriveAxisType#Rotary; + _scalingReadState := UINT#25; + ELSIF PNU_12694 = 256 AND PNU_12695 = 259 AND PNU_12696 = 343 AND PNU_12697 = 416 THEN + AxisType := eAxoDriveAxisType#Linear; + _scalingReadState := UINT#25; + ELSE + AxisType := eAxoDriveAxisType#Error; + Messenger.Activate(ULINT#1801 , eAxoMessageCategory#Error); + END_IF; + END_IF; + IF _scalingReadState = UINT#25 THEN + IF AxisType = eAxoDriveAxisType#Rotary THEN + _scalingReadState := UINT#26; + ELSIF AxisType = eAxoDriveAxisType#Linear THEN + _scalingReadState := UINT#27; + END_IF; + END_IF; + + IF _scalingReadState = UINT#26 THEN + ScalingConstantRequiredPosition := _exp[-1*(TO_INT(PNU_11724) )]; // TODO verify scaling with Automation Suite + ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; // TODO verify scaling with Automation Suite + + ScalingConstantRequiredVelocity := _exp[-1*(TO_INT(PNU_11725) )]; // TODO verify scaling with Automation Suite + ScalingConstantActualVelocity := PNU_12345 * _exp[(TO_INT(PNU_11725) + 3)] / LREAL#1073741824.0; // 16#4000 0000 ~~ 1073741824 // TODO verify scaling with Automation Suite + + ScalingConstantRequiredAcceleration := LREAL#16384.0 * _exp[TO_INT(PNU_11726)] / PNU_810; // 16#4000 ~~ 16384 + ScalingConstantActualAcceleration := LREAL#1.0 / ScalingConstantRequiredAcceleration; + + ScalingConstantRequiredDeceleration := LREAL#16384.0 * _exp[TO_INT(PNU_11726)] / PNU_811; // 16#4000 ~~ 16384 + ScalingConstantActualDeceleration := LREAL#1.0 / ScalingConstantRequiredDeceleration; + + ScalingConstantRequiredTorque := 1; + ScalingConstantActualTorque := PNU_11122 / 16384; // 16#4000 ~~ 16384 + + ScalingConstantRequiredJerk := _exp[TO_INT(PNU_11727)]; + ScalingConstantActualJerk := LREAL#1.0 / ScalingConstantRequiredJerk; + + _scalingReadState := UINT#28; + END_IF; + + IF _scalingReadState = UINT#27 THEN ScalingConstantRequiredPosition := _exp[-1*(TO_INT(PNU_11724) + 3)]; ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; @@ -698,8 +836,14 @@ NAMESPACE AXOpen.Components.Festo.Drives ScalingConstantRequiredJerk := _exp[TO_INT(PNU_11727)]; ScalingConstantActualJerk := LREAL#1.0 / ScalingConstantRequiredJerk; + _scalingReadState := UINT#28; + END_IF; + + + IF _scalingReadState = UINT#28 THEN _ScalingRead := TRUE; + _scalingReadState := UINT#0; State := UINT#0; AxoStop_Deceleration := 1000.0; // mm/s2 diff --git a/src/components.festo.drives/src/AXOpen.Components.Festo.Drives/AxoCmmtAs/AxoCmmtAs.cs b/src/components.festo.drives/src/AXOpen.Components.Festo.Drives/AxoCmmtAs/AxoCmmtAs.cs index 195ae2088..268f7d41a 100644 --- a/src/components.festo.drives/src/AXOpen.Components.Festo.Drives/AxoCmmtAs/AxoCmmtAs.cs +++ b/src/components.festo.drives/src/AXOpen.Components.Festo.Drives/AxoCmmtAs/AxoCmmtAs.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Net.NetworkInformation; @@ -557,6 +557,7 @@ private void InitializeMessenger() new KeyValuePair(1800, new AxoMessengerTextItem("Scaling parameters not yet read out of the drive" ,"Check proper value of the Module access point Hardware ID")), + new KeyValuePair(1801, new AxoMessengerTextItem("Invalid user units specified." ,"Possible configurations: \nUser unit position (P1.7851.0.0)\t\t:\t SI Unit METER \t\t\t(256) AND\nUser unit velocity (P1.7852.0.0)\t\t:\t SI Unit METER 1/s \t\t(259) AND\nUser unit acceleration (P1.7853.0.0)\t:\t SI Unit METER 1/s2\t\t(343) AND\nUser unit jerk (P1.7854.0.0)\t\t\t:\t SI Unit METER 1/s3\t\t(416) OR\nUser unit position (P1.7851.0.0)\t\t:\t SI Unit DEGREE \t\t(16640) AND\nUser unit velocity (P1.7852.0.0)\t\t:\t SI Unit DEGREE 1/s \t(16643) AND\nUser unit acceleration (P1.7853.0.0)\t:\t SI Unit DEGREE 1/s2\t(16727) AND\nUser unit jerk (P1.7854.0.0)\t\t\t:\t SI Unit DEGREE 1/s3\t(16800) \n")), new KeyValuePair(2000, new AxoMessengerTextItem("Movement in positive direction is disabled" ,"Check the safety condition")), new KeyValuePair(2001, new AxoMessengerTextItem("Movement in negative direction is disabled" ,"Check the safety condition")), diff --git a/src/components.festo.drives/this.sln b/src/components.festo.drives/this.sln index 0810dc643..e189f6841 100644 --- a/src/components.festo.drives/this.sln +++ b/src/components.festo.drives/this.sln @@ -5,17 +5,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{C6BBE176-E1DC-4F3B-A0B0-756A935571E4}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{3F2AD802-248D-47E4-880C-1653DE83926A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{1AEABE44-234E-47E0-9389-2C6CF046AAC3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_drives", "..\components.drives\src\AXOpen.Components.Drives\inxton_axopen_components_drives.csproj", "{AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazorapp", "app\ix-blazor\AXOpen.Components.Festo.Drives.blazorapp.csproj", "{70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Drives.blazor", "..\components.drives\src\AXOpen.Components.Drives.blazor\AXOpen.Components.Drives.blazor.csproj", "{5369B88A-0ABF-4CD0-9986-7598B9C56600}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_axopen_components_festo_drives", "app\ix\app_axopen_components_festo_drives.csproj", "{FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_drives", "..\components.drives\src\AXOpen.Components.Drives\inxton_axopen_components_drives.csproj", "{AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor\AXOpen.Components.Festo.Drives.blazor.csproj", "{08965A8B-6912-41F7-A1B9-82AC0B8D3A43}" EndProject @@ -27,19 +23,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\co EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{7AE56C18-2193-4D11-8CFB-94ABD70CBF02}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{8E45E5D7-C553-498C-ACF3-5FE833B39813}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{42CCCA07-4072-406E-8FD9-8C21D81DE8DB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{E21608C2-0913-4F35-8CB3-BE58A46CE344}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{0DDD6B05-155B-4939-A244-F097F7435EC9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{52E629AE-AC63-407B-B5C5-B4032C907F3D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Operon.Blazor", "..\styling\src\AXOpen.Operon.Blazor.csproj", "{98D97709-B002-408A-81E1-1C846D1E942B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}" EndProject @@ -53,8 +43,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstract EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{205CDFCE-B57C-4C27-9892-4D00CF169510}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{CAA833FA-DA2D-421F-A927-806CACADBA22}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{1CB57C6C-551D-4EC3-B2FD-CF02F23AB858}" @@ -67,18 +55,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstra EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{024D3BBF-7F13-4C01-A93A-35BCAA4D8033}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives.blazor", "..\components.drives\src\AXOpen.Components.Drives.blazor", "{01E1E720-4C3A-4598-9B81-82F36034D6CD}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Drives", "..\components.drives\src\AXOpen.Components.Drives", "{3DE29700-9588-4FA8-9E55-AFAAB6079B3B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.drives\src", "{935E3F7E-9859-4C42-85CC-2C41255E561A}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.drives", "..\components.drives", "{A95B3B75-BA4B-4A24-8423-0F7F567B63FE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{DC7412A2-F252-4408-98C6-28AAAF8915CC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{1ABBAB40-C0F6-47CC-9955-E45A4954D7E3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{C9A50598-A8C5-45B3-9878-1B107014525A}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives.blazor", "src\AXOpen.Components.Festo.Drives.blazor", "{AF8234A0-6224-4B8A-9BD1-1673447D1551}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Festo.Drives", "src\AXOpen.Components.Festo.Drives", "{283A01B7-7AFE-46A3-8093-EE737BF16464}" @@ -99,14 +83,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{C54D EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{3C5E1378-F872-4E82-B52D-A847344930CF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{2FC2CF37-9B1B-43B9-A765-33597E3C0CCC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{F827C714-4DA2-47B7-95FE-3D986752B6AE}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{FF2A1720-45FA-42FE-A31B-A78101EF0D09}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{D336FE23-7549-4A44-AF76-C54E4C2BED42}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{F5D5C86A-96F3-47ED-A3DE-D12924334C32}" @@ -121,19 +97,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{D8D56C6E-4020-4F2C-8E17-218ACF02CC59}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{A80CA72E-6877-4B3D-8174-B47FD5F42C92}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{A27D7180-3E4A-431F-8644-E5C1D5F32B95}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{136622EA-40EC-4CA5-873B-D35335D94EC4}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{1BFA9944-2C75-481E-B94A-C9F8247459F7}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{A50B4464-9329-414D-9DCD-14B7379EE93D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\styling\src", "{DB9DD4C9-57EE-438F-B203-1550D53C1698}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{6A3692FD-80C0-420E-ACA0-3BFF3C7EEEA2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "styling", "..\styling", "{FF493901-2012-436E-B895-CB82A31A54D4}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{C9A31423-5400-4518-AB6A-C73252B316DC}" EndProject @@ -165,10 +131,6 @@ Global {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Debug|Any CPU.Build.0 = Debug|Any CPU {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Release|Any CPU.ActiveCfg = Release|Any CPU {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694}.Release|Any CPU.Build.0 = Release|Any CPU - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4}.Release|Any CPU.Build.0 = Release|Any CPU {3F2AD802-248D-47E4-880C-1653DE83926A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3F2AD802-248D-47E4-880C-1653DE83926A}.Debug|Any CPU.Build.0 = Debug|Any CPU {3F2AD802-248D-47E4-880C-1653DE83926A}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -177,18 +139,14 @@ Global {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Debug|Any CPU.Build.0 = Debug|Any CPU {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Release|Any CPU.ActiveCfg = Release|Any CPU {1AEABE44-234E-47E0-9389-2C6CF046AAC3}.Release|Any CPU.Build.0 = Release|Any CPU + {5369B88A-0ABF-4CD0-9986-7598B9C56600}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5369B88A-0ABF-4CD0-9986-7598B9C56600}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5369B88A-0ABF-4CD0-9986-7598B9C56600}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5369B88A-0ABF-4CD0-9986-7598B9C56600}.Release|Any CPU.Build.0 = Release|Any CPU {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Debug|Any CPU.Build.0 = Debug|Any CPU {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Release|Any CPU.ActiveCfg = Release|Any CPU {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5}.Release|Any CPU.Build.0 = Release|Any CPU - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA}.Release|Any CPU.Build.0 = Release|Any CPU - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70}.Release|Any CPU.Build.0 = Release|Any CPU {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Debug|Any CPU.Build.0 = Debug|Any CPU {08965A8B-6912-41F7-A1B9-82AC0B8D3A43}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -209,10 +167,6 @@ Global {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Debug|Any CPU.Build.0 = Debug|Any CPU {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Release|Any CPU.ActiveCfg = Release|Any CPU {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC}.Release|Any CPU.Build.0 = Release|Any CPU - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02}.Release|Any CPU.Build.0 = Release|Any CPU {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Debug|Any CPU.Build.0 = Debug|Any CPU {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -225,18 +179,10 @@ Global {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Debug|Any CPU.Build.0 = Debug|Any CPU {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Release|Any CPU.ActiveCfg = Release|Any CPU {42CCCA07-4072-406E-8FD9-8C21D81DE8DB}.Release|Any CPU.Build.0 = Release|Any CPU - {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E21608C2-0913-4F35-8CB3-BE58A46CE344}.Release|Any CPU.Build.0 = Release|Any CPU - {0DDD6B05-155B-4939-A244-F097F7435EC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0DDD6B05-155B-4939-A244-F097F7435EC9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0DDD6B05-155B-4939-A244-F097F7435EC9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0DDD6B05-155B-4939-A244-F097F7435EC9}.Release|Any CPU.Build.0 = Release|Any CPU - {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52E629AE-AC63-407B-B5C5-B4032C907F3D}.Release|Any CPU.Build.0 = Release|Any CPU + {98D97709-B002-408A-81E1-1C846D1E942B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {98D97709-B002-408A-81E1-1C846D1E942B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {98D97709-B002-408A-81E1-1C846D1E942B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98D97709-B002-408A-81E1-1C846D1E942B}.Release|Any CPU.Build.0 = Release|Any CPU {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Debug|Any CPU.Build.0 = Debug|Any CPU {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -255,22 +201,17 @@ Global {88D1E3A0-11D6-4D0C-838A-45C9B89C7977} = {1FEBCE20-0A5D-47B2-A182-B0EC70F34A6B} {8BC98F06-BD80-40CB-AB02-EAE6FC0C5694} = {F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8} {F2F37F7D-A0C5-4C83-ACB1-DFD3981CA2C8} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} - {C6BBE176-E1DC-4F3B-A0B0-756A935571E4} = {205CDFCE-B57C-4C27-9892-4D00CF169510} - {205CDFCE-B57C-4C27-9892-4D00CF169510} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} {3F2AD802-248D-47E4-880C-1653DE83926A} = {CAA833FA-DA2D-421F-A927-806CACADBA22} {CAA833FA-DA2D-421F-A927-806CACADBA22} = {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} {1CB57C6C-551D-4EC3-B2FD-CF02F23AB858} = {FFAA7124-46A7-42B3-806D-A6191A24301A} {1AEABE44-234E-47E0-9389-2C6CF046AAC3} = {B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A} {B3D09997-3C35-4B5B-A3F5-8E18AAEB2C1A} = {D4B589C8-8451-49F5-899E-7C6EE551013D} {D4B589C8-8451-49F5-899E-7C6EE551013D} = {024D3BBF-7F13-4C01-A93A-35BCAA4D8033} + {5369B88A-0ABF-4CD0-9986-7598B9C56600} = {01E1E720-4C3A-4598-9B81-82F36034D6CD} + {01E1E720-4C3A-4598-9B81-82F36034D6CD} = {935E3F7E-9859-4C42-85CC-2C41255E561A} {AB0AB2A9-A325-4C96-B63A-6B1FAB1F7BA5} = {3DE29700-9588-4FA8-9E55-AFAAB6079B3B} {3DE29700-9588-4FA8-9E55-AFAAB6079B3B} = {935E3F7E-9859-4C42-85CC-2C41255E561A} {935E3F7E-9859-4C42-85CC-2C41255E561A} = {A95B3B75-BA4B-4A24-8423-0F7F567B63FE} - {70CF7CD0-FDCB-40E1-B805-0A1479D4E3AA} = {DC7412A2-F252-4408-98C6-28AAAF8915CC} - {DC7412A2-F252-4408-98C6-28AAAF8915CC} = {C9A50598-A8C5-45B3-9878-1B107014525A} - {FAC844DA-CDA8-4D82-ABD6-74C286BDDA70} = {1ABBAB40-C0F6-47CC-9955-E45A4954D7E3} - {1ABBAB40-C0F6-47CC-9955-E45A4954D7E3} = {C9A50598-A8C5-45B3-9878-1B107014525A} - {C9A50598-A8C5-45B3-9878-1B107014525A} = {B3AD7A4C-C4DA-4E04-AF48-965993AD1BBF} {08965A8B-6912-41F7-A1B9-82AC0B8D3A43} = {AF8234A0-6224-4B8A-9BD1-1673447D1551} {AF8234A0-6224-4B8A-9BD1-1673447D1551} = {BC80146C-7A5D-45E4-8C65-EC1E76C8E548} {CF596C38-A60B-4642-9FFD-739BDCEDA455} = {283A01B7-7AFE-46A3-8093-EE737BF16464} @@ -284,10 +225,6 @@ Global {A46EFA30-6D86-4942-BF67-ADE7FA04BCCC} = {85B06B85-89A3-4836-A4FC-0A36917D013E} {85B06B85-89A3-4836-A4FC-0A36917D013E} = {C54DB5FB-93D2-4999-88E9-F586174B797C} {C54DB5FB-93D2-4999-88E9-F586174B797C} = {3C5E1378-F872-4E82-B52D-A847344930CF} - {7AE56C18-2193-4D11-8CFB-94ABD70CBF02} = {7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F} - {7E7118AA-FE6C-47A3-9DD3-ADCF89A8D15F} = {2FC2CF37-9B1B-43B9-A765-33597E3C0CCC} - {2FC2CF37-9B1B-43B9-A765-33597E3C0CCC} = {F827C714-4DA2-47B7-95FE-3D986752B6AE} - {F827C714-4DA2-47B7-95FE-3D986752B6AE} = {FF2A1720-45FA-42FE-A31B-A78101EF0D09} {FEC0A7EF-A433-4A7A-9FFE-447F3BD83897} = {D336FE23-7549-4A44-AF76-C54E4C2BED42} {D336FE23-7549-4A44-AF76-C54E4C2BED42} = {B6A1803A-46A6-4264-8AE4-DE15FA9E690B} {8E45E5D7-C553-498C-ACF3-5FE833B39813} = {F5D5C86A-96F3-47ED-A3DE-D12924334C32} @@ -296,14 +233,8 @@ Global {42CCCA07-4072-406E-8FD9-8C21D81DE8DB} = {3210DEAA-DEE3-4543-8100-8A177FAE2466} {3210DEAA-DEE3-4543-8100-8A177FAE2466} = {CB156B7E-0FC1-484C-895E-DB56609A8434} {CB156B7E-0FC1-484C-895E-DB56609A8434} = {D8D56C6E-4020-4F2C-8E17-218ACF02CC59} - {E21608C2-0913-4F35-8CB3-BE58A46CE344} = {A80CA72E-6877-4B3D-8174-B47FD5F42C92} - {A80CA72E-6877-4B3D-8174-B47FD5F42C92} = {136622EA-40EC-4CA5-873B-D35335D94EC4} - {0DDD6B05-155B-4939-A244-F097F7435EC9} = {A27D7180-3E4A-431F-8644-E5C1D5F32B95} - {A27D7180-3E4A-431F-8644-E5C1D5F32B95} = {136622EA-40EC-4CA5-873B-D35335D94EC4} - {136622EA-40EC-4CA5-873B-D35335D94EC4} = {1BFA9944-2C75-481E-B94A-C9F8247459F7} - {52E629AE-AC63-407B-B5C5-B4032C907F3D} = {EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64} - {EF5F3079-94B0-4F17-ABCA-9EE40A2A9B64} = {A50B4464-9329-414D-9DCD-14B7379EE93D} - {A50B4464-9329-414D-9DCD-14B7379EE93D} = {6A3692FD-80C0-420E-ACA0-3BFF3C7EEEA2} + {98D97709-B002-408A-81E1-1C846D1E942B} = {DB9DD4C9-57EE-438F-B203-1550D53C1698} + {DB9DD4C9-57EE-438F-B203-1550D53C1698} = {FF493901-2012-436E-B895-CB82A31A54D4} {3D84EE7E-3B41-44AA-8607-7804EAE7AA5E} = {C9A31423-5400-4518-AB6A-C73252B316DC} {C9A31423-5400-4518-AB6A-C73252B316DC} = {101213E4-86F8-4ED4-9CF9-FE63BC0A57FF} {101213E4-86F8-4ED4-9CF9-FE63BC0A57FF} = {A0B006F1-1A99-4229-94FF-120DEFCDDEF6} From 72a9b0882791de2610d671133e90d5b04d2a36db Mon Sep 17 00:00:00 2001 From: "MTS\\Tomas_K" Date: Fri, 24 Apr 2026 20:49:23 +0200 Subject: [PATCH 4/4] all tasks done, ready for wild weekend --- .../ctrl/src/AxoDrives/eAxoDriveAxisType.st | 10 ++-- .../ctrl/src/AxoCmmtAs/AxoCmmtAs.st | 47 ++++++++++--------- .../AxoCmmtAs/AxoCmmtAsView.razor.cs | 29 ++++++++++-- 3 files changed, 53 insertions(+), 33 deletions(-) diff --git a/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveAxisType.st b/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveAxisType.st index 8b6303b06..6f09452e1 100644 --- a/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveAxisType.st +++ b/src/components.abstractions/ctrl/src/AxoDrives/eAxoDriveAxisType.st @@ -1,11 +1,11 @@ NAMESPACE AXOpen.Components.Abstractions.Drives TYPE PUBLIC - eAxoDriveAxisType : + eAxoDriveAxisType : INT ( - Error, - Undefined, - Linear, - Rotary + Error := -1, + Undefined := 0, + Linear := 1, + Rotary := 2 ) := Undefined; END_TYPE END_NAMESPACE diff --git a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st b/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st index e5d20639a..24a8b0db6 100644 --- a/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st +++ b/src/components.festo.drives/ctrl/src/AxoCmmtAs/AxoCmmtAs.st @@ -543,6 +543,7 @@ NAMESPACE AXOpen.Components.Festo.Drives IF NOT _ScalingRead THEN Messenger.Activate(ULINT#1800 , eAxoMessageCategory#Potential); IF _scalingReadState = UINT#0 THEN + AxisType := eAxoDriveAxisType#Undefined; _scalingReadState := UINT#1; State := UINT#1; END_IF; @@ -718,7 +719,7 @@ NAMESPACE AXOpen.Components.Festo.Drives END_IF; END_IF; //Reading PNU PNU 12695 User unit velocity (P1.7852.0.0) - IF _scalingReadState = UINT#18 THEN + IF _scalingReadState = UINT#19 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 12695; @@ -727,17 +728,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_12695 := Parametrization.Outputs.ValueReadLINT; - _scalingReadState := UINT#19; + _scalingReadState := UINT#20; END_IF; END_IF; - IF _scalingReadState = UINT#19 THEN + IF _scalingReadState = UINT#20 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - _scalingReadState := UINT#20; + _scalingReadState := UINT#21; END_IF; END_IF; //Reading PNU PNU 12696 User unit acceleration (P1.7853.0.0) - IF _scalingReadState = UINT#20 THEN + IF _scalingReadState = UINT#21 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 12696; @@ -746,17 +747,17 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_12696 := Parametrization.Outputs.ValueReadLINT; - _scalingReadState := UINT#21; + _scalingReadState := UINT#22; END_IF; END_IF; - IF _scalingReadState = UINT#21 THEN + IF _scalingReadState = UINT#22 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - _scalingReadState := UINT#22; + _scalingReadState := UINT#23; END_IF; END_IF; //Reading PNU PNU 12697 User unit jerk (P1.7854.0.0) - IF _scalingReadState = UINT#22 THEN + IF _scalingReadState = UINT#23 THEN Parametrization.Inputs.Enable := TRUE; Parametrization.Inputs.ReadWrite := FALSE; Parametrization.Inputs.ParameterNo := 12697; @@ -765,37 +766,37 @@ NAMESPACE AXOpen.Components.Festo.Drives Parametrization.Inputs.HardwareId := AxisRefExt.HWIDs.HW_ModuleAccessPoint; IF Parametrization.Outputs.Done AND NOT Parametrization.Outputs.Error THEN PNU_12697 := Parametrization.Outputs.ValueReadLINT; - _scalingReadState := UINT#23; + _scalingReadState := UINT#24; END_IF; END_IF; - IF _scalingReadState = UINT#23 THEN + IF _scalingReadState = UINT#24 THEN Parametrization.Inputs.Enable := FALSE; IF NOT Parametrization.Outputs.Done THEN - _scalingReadState := UINT#24; + _scalingReadState := UINT#25; END_IF; END_IF; //Check setting PNU 12694-12697 User unit position, velocity, acceleration and jerk are read correctly or not. If not, scaling will be wrong, so set the flag to FALSE to indicate the error. - IF _scalingReadState = UINT#24 THEN + IF _scalingReadState = UINT#25 THEN IF PNU_12694 = 16640 AND PNU_12695 = 16643 AND PNU_12696 = 16727 AND PNU_12697 = 16800 THEN AxisType := eAxoDriveAxisType#Rotary; - _scalingReadState := UINT#25; + _scalingReadState := UINT#26; ELSIF PNU_12694 = 256 AND PNU_12695 = 259 AND PNU_12696 = 343 AND PNU_12697 = 416 THEN AxisType := eAxoDriveAxisType#Linear; - _scalingReadState := UINT#25; + _scalingReadState := UINT#26; ELSE AxisType := eAxoDriveAxisType#Error; Messenger.Activate(ULINT#1801 , eAxoMessageCategory#Error); END_IF; END_IF; - IF _scalingReadState = UINT#25 THEN + IF _scalingReadState = UINT#26 THEN IF AxisType = eAxoDriveAxisType#Rotary THEN - _scalingReadState := UINT#26; - ELSIF AxisType = eAxoDriveAxisType#Linear THEN _scalingReadState := UINT#27; + ELSIF AxisType = eAxoDriveAxisType#Linear THEN + _scalingReadState := UINT#28; END_IF; END_IF; - IF _scalingReadState = UINT#26 THEN + IF _scalingReadState = UINT#27 THEN ScalingConstantRequiredPosition := _exp[-1*(TO_INT(PNU_11724) )]; // TODO verify scaling with Automation Suite ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; // TODO verify scaling with Automation Suite @@ -814,10 +815,10 @@ NAMESPACE AXOpen.Components.Festo.Drives ScalingConstantRequiredJerk := _exp[TO_INT(PNU_11727)]; ScalingConstantActualJerk := LREAL#1.0 / ScalingConstantRequiredJerk; - _scalingReadState := UINT#28; + _scalingReadState := UINT#29; END_IF; - IF _scalingReadState = UINT#27 THEN + IF _scalingReadState = UINT#28 THEN ScalingConstantRequiredPosition := _exp[-1*(TO_INT(PNU_11724) + 3)]; ScalingConstantActualPosition := LREAL#1.0/ScalingConstantRequiredPosition; @@ -836,11 +837,11 @@ NAMESPACE AXOpen.Components.Festo.Drives ScalingConstantRequiredJerk := _exp[TO_INT(PNU_11727)]; ScalingConstantActualJerk := LREAL#1.0 / ScalingConstantRequiredJerk; - _scalingReadState := UINT#28; + _scalingReadState := UINT#29; END_IF; - IF _scalingReadState = UINT#28 THEN + IF _scalingReadState = UINT#29 THEN _ScalingRead := TRUE; _scalingReadState := UINT#0; diff --git a/src/components.festo.drives/src/AXOpen.Components.Festo.Drives.blazor/AxoCmmtAs/AxoCmmtAsView.razor.cs b/src/components.festo.drives/src/AXOpen.Components.Festo.Drives.blazor/AxoCmmtAs/AxoCmmtAsView.razor.cs index 421a40146..ab77a5dd0 100644 --- a/src/components.festo.drives/src/AXOpen.Components.Festo.Drives.blazor/AxoCmmtAs/AxoCmmtAsView.razor.cs +++ b/src/components.festo.drives/src/AXOpen.Components.Festo.Drives.blazor/AxoCmmtAs/AxoCmmtAsView.razor.cs @@ -1,8 +1,9 @@ -using System; -using System.Globalization; -using AXOpen.Core.Blazor; +using AXOpen.Components.Abstractions.Drives; using AXOpen.Components.Drives; +using AXOpen.Core.Blazor; using AXSharp.Connector.ValueTypes; +using System; +using System.Globalization; namespace AXOpen.Components.Festo.Drives { @@ -34,9 +35,27 @@ public partial class AxoCmmtAsView : AxoComponentViewBase _ => "badge-secondary" }; - public string FormattedPosition => FormatValue(Component?.ActualPosition, "mm"); + public string PositionUnit => (eAxoDriveAxisType)Component.AxisType.Cyclic switch + { + eAxoDriveAxisType.Linear => "mm", + eAxoDriveAxisType.Rotary => "deg", + eAxoDriveAxisType.Error => "!!!", + eAxoDriveAxisType.Undefined => "???", + _ => "???" + }; + + public string VelocityUnit => (eAxoDriveAxisType)Component.AxisType.Cyclic switch + { + eAxoDriveAxisType.Linear => "mm/s", + eAxoDriveAxisType.Rotary => "deg/s", + eAxoDriveAxisType.Error => "!!!", + eAxoDriveAxisType.Undefined => "???", + _ => "???" + }; + + public string FormattedPosition => FormatValue(Component?.ActualPosition, PositionUnit); - public string FormattedVelocity => FormatValue(Component?.ActualVelocity, "mm/s"); + public string FormattedVelocity => FormatValue(Component?.ActualVelocity, VelocityUnit); public string FormattedTorque => FormatValue(Component?.ActualTorque, "Nm");