Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
d06c0e7
showcase app consolidation
PTKu Apr 1, 2026
650b00f
update AXSharp package versions to 0.47.0-alpha.472
PTKu Apr 1, 2026
775c2f2
Add UiHostProject field to AXSharp configuration files
PTKu Apr 1, 2026
a6711f9
Update package-lock.json dependencies and add new optional packages f…
PTKu Apr 1, 2026
b41a2ff
asp
PTKu Apr 1, 2026
be87b3d
Merge branch 'dev' into 3-unify-showcase
PTKu Apr 2, 2026
f36ff28
Update plc_line.hwl.yml
TomKovac Apr 2, 2026
ce2b784
Update AXSharp package versions to 0.47.0-alpha.476
PTKu Apr 7, 2026
2ddace9
Merge branch '3-unify-showcase' of https://github.com/Inxton/AXOpen i…
PTKu Apr 7, 2026
9dd3b45
Update pr-dev.yml
PTKu Apr 7, 2026
f88edaf
NTP added for 1518_v40 till the V41 gonna be functional on PLCSIM
TomKovac Apr 7, 2026
a129922
changed to 1518_v40 to be able to load the showcase app to the PLCSIM
TomKovac Apr 7, 2026
400cb36
add showcase twin project to git
PTKu Apr 7, 2026
4b16a49
Merge branch '3-unify-showcase' of https://github.com/Inxton/AXOpen i…
PTKu Apr 7, 2026
425d3c3
Add initial apax traversal configuration file with dependencies and s…
TomKovac Apr 7, 2026
85434bc
Add initial apax traversal configuration file
TomKovac Apr 7, 2026
4c06eae
Merge branch '3-unify-showcase' of https://github.com/Inxton/AXOpen i…
TomKovac Apr 7, 2026
c5ff95e
cognex example sequencers fixed
TomKovac Apr 7, 2026
1f00c11
kuka
TomKovac Apr 7, 2026
04cb749
Add Utils Documentation Page and Showcase Examples
PTKu Apr 7, 2026
9ac7f38
mege with remote
PTKu Apr 7, 2026
c0ce8a7
keyence
TomKovac Apr 7, 2026
96f2a97
keyence
TomKovac Apr 7, 2026
b1f925c
add full search to showcase
PTKu Apr 8, 2026
30062c5
Merge branch '3-unify-showcase' of https://github.com/Inxton/AXOpen i…
PTKu Apr 8, 2026
cd50fe6
remove integration folder
PTKu Apr 8, 2026
420ae2a
removes inexisting sandbox reference
PTKu Apr 8, 2026
c246d56
asp
PTKu Apr 8, 2026
83a8a6f
add dynamic documentation badge
PTKu Apr 8, 2026
22fe852
Merge branch '3-unify-showcase' of https://github.com/Inxton/AXOpen i…
PTKu Apr 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"AXSharp.ixc": {
"version": "0.47.0-alpha.459",
"version": "0.47.0-alpha.476",
"commands": [
"ixc"
],
Expand All @@ -17,14 +17,14 @@
"rollForward": false
},
"AXSharp.ixd": {
"version": "0.47.0-alpha.459",
"version": "0.47.0-alpha.476",
"commands": [
"ixd"
],
"rollForward": false
},
"AXSharp.ixr": {
"version": "0.47.0-alpha.459",
"version": "0.47.0-alpha.476",
"commands": [
"ixr"
],
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
shell: pwsh

- name: "Run build script"
continue-on-error: true
continue-on-error: false
env:
GH_TOKEN : ${{ secrets.GH_TOKEN }}
GH_USER : ${{ secrets.GH_USER }}
Expand Down
5 changes: 4 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
{
"files.eol": "\n"
"http.proxyCertificates": true,
"http.proxyStrictSSL": false,
"http.systemCertificates": true,
"files.eol": "\n",
}
10 changes: 10 additions & 0 deletions COMPONENTS_MATURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ This document tracks the maturity state of all AXOpen components across differen
| [AxoTask](src/core/) | Framework | 🟢 | 🟢 | 🟡 | Latest | Task execution framework, uses IAxoTaskState |
| [AxoContext](src/core/) | Framework | 🟢 | 🟢 | 🟡 | Latest | Application context |
| [AxoObject](src/core/) | Framework | 🟢 | 🟢 | 🟡 | Latest | Base object class |
| [AxoSequencer](src/core/) | Framework | 🟢 | 🟢 | 🟡 | Latest | Sequencer state machine |
| [AxoMessaging](src/core/) | Framework | 🟢 | 🟢 | 🟡 | Latest | Messaging & notification framework |
| [AxoDialogs](src/core/) | Framework | 🟢 | 🟢 | 🟡 | Latest | Dialog UI framework |
| [Abstractions](src/abstractions/) | Framework | 🟢 | 🟢 | 🟢 | Latest | Core abstraction interfaces |
| [ComponentsAbstractions](src/components.abstractions/) | Framework | 🟢 | 🟢 | 🟢 | Latest | Component abstraction layer |
| **I/O Components** | | | | | | |
| [Pneumatics](src/components.pneumatics/) | I/O | 🟢 | 🟢 | 🟡 | Latest | Cylinders, valves |
| [Elements](src/components.elements/) | I/O | 🟢 | 🟢 | 🟡 | Latest | Basic I/O elements |
Expand All @@ -36,6 +41,7 @@ This document tracks the maturity state of all AXOpen components across differen
| [Mitsubishi CR800 v_1_x_x](src/components.mitsubishi.robotics/) | Robotics | 🟢 | 🟡 | 🔴 | v_1_x_x | CR800 controller integration |
| [Generic Robotics](src/components.robotics/) | Robotics | 🟢 | 🟡 | 🔴 | Latest | Abstract robotics interfaces |
| **Drive Systems** | | | | | | |
| [Generic Drives](src/components.drives/) | Motion | 🟢 | 🟡 | 🔴 | Latest | Abstract drive interfaces |
| [Rexroth Drives](src/components.rexroth.drives/) | Motion | 🟢 | 🟡 | 🔴 | Latest | Rexroth servo drives |
| [Festo Drives](src/components.festo.drives/) | Motion | 🟢 | 🟡 | 🔴 | TBD | Festo drive integration |
| **Manufacturing** | | | | | | |
Expand All @@ -54,6 +60,10 @@ This document tracks the maturity state of all AXOpen components across differen
| [Timers](src/timers/) | Utilities | 🟢 | 🟢 | 🔴 | Latest | Timer utilities including AxoBlinker |
| [IO](src/io/) | I/O | 🟢 | 🟢 | 🔴 | Latest | Basic I/O abstractions |
| [Simatic1500](src/simatic1500/) | Platform | 🟢 | 🟢 | 🔴 | Latest | S7-1500 hardware integration |
| [Utils](src/utils/) | Utilities | 🟢 | 🟢 | 🔴 | Latest | General utility functions |
| [Probers](src/probers/) | Utilities | 🟢 | 🟡 | 🔴 | Latest | Diagnostic & probe tools |
| **Communication** | | | | | | |
| [SiemCommunication](src/components.siem.communication/) | Communication | 🟢 | 🟡 | 🔴 | Latest | Siemens communication framework |


## Component Maturity Guidelines
Expand Down
11 changes: 6 additions & 5 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
<!-- Framework-Agnostic Packages -->
<ItemGroup>
<!-- AX# Libraries -->
<PackageVersion Include="AXSharp.Abstractions" Version="0.47.0-alpha.459" />
<PackageVersion Include="AXSharp.Connector" Version="0.47.0-alpha.459" />
<PackageVersion Include="AXSharp.Connector.S71500.WebAPI" Version="0.47.0-alpha.459" />
<PackageVersion Include="AXSharp.Presentation.Blazor" Version="0.47.0-alpha.459" />
<PackageVersion Include="AXSharp.Presentation.Blazor.Controls" Version="0.47.0-alpha.459" />
<PackageVersion Include="AXSharp.Abstractions" Version="0.47.0-alpha.476" />
<PackageVersion Include="AXSharp.Connector" Version="0.47.0-alpha.476" />
<PackageVersion Include="AXSharp.Connector.S71500.WebAPI" Version="0.47.0-alpha.476" />
<PackageVersion Include="AXSharp.Presentation.Blazor" Version="0.47.0-alpha.476" />
<PackageVersion Include="AXSharp.Presentation.Blazor.Controls" Version="0.47.0-alpha.476" />
<PackageVersion Include="Inxton.Operon" Version="0.3.0-alpha.138" />
<!-- Data & Serialization -->
<PackageVersion Include="ClosedXML" Version="0.105.0" />
Expand All @@ -30,6 +30,7 @@
<!-- UI & Presentation -->
<PackageVersion Include="AXOpen.KristofferStrube.Blazor.SVGEditor" Version="0.4.4-alpha.298" />
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.0" />
<PackageVersion Include="Markdig" Version="0.40.0" />
<!-- Utilities -->
<PackageVersion Include="CommandLineParser" Version="2.9.1" />
<PackageVersion Include="Cocona" Version="2.2.0" />
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ END_IF;
~~~

~~~CSharp
Entry.Plc.AxoRemoteTasks._remoteTask.Initialize(() => Console.WriteLine($"Remote task executed PLC sent this string: '{Entry.Plc.AxoRemoteTasks._remoteTask.Message.GetAsync().Result}'"));
Entry.Plc.Ctx.AxoRemoteTasks._remoteTask.Initialize(() => Console.WriteLine($"Remote task executed PLC sent this string: '{Entry.Plc.Ctx.AxoRemoteTasks._remoteTask.Message.GetAsync().Result}'"));
~~~

![Remote Task](assets/readme_pics/image-remote-task.png)
Expand Down
66 changes: 31 additions & 35 deletions cake/BuildContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -168,38 +168,37 @@ public BuildContext(ICakeContext context, BuildParameters buildParameters)
("ax.axopen.hwlibrary", "ax.axopen.hwlibrary", true, false, false),
("ax.axopen.app", "ax.axopen.app", true, false, false),
("sdk-ax", "ax-sdk", true, false, false),
("abstractions", "axopen.abstractions", true, true, true),
("abstractions", "axopen.abstractions", true, false, true),
("timers", "axopen.timers", true, false, true),
("simatic1500", "axopen.simatic1500", true, false, true),
("utils", "axopen.utils", true, false, true),
("core", "axopen.core", true, true, true),
("data", "axopen.data", true, true, true),
("probers", "axopen.probers", true, true, false),
("inspectors", "axopen.inspectors", true, true, true),
("components.abstractions", "axopen.components.abstractions", true, true, true),
("components.elements", "axopen.components.elements", true, true, true),
("io", "axopen.io", true, true, false),
("components.cognex.vision", "axopen.components.cognex.vision", true, true, true),
("components.pneumatics", "axopen.components.pneumatics", true, true, true),
("components.drives", "axopen.components.drives", true, true, true),
("components.rexroth.drives", "axopen.components.rexroth.drives", true, true, true),
("components.rexroth.press", "axopen.components.rexroth.press", true, true, true),
("components.festo.drives", "axopen.components.festo.drives", true, true, true),
("components.desoutter.tightening", "axopen.components.desoutter.tightening", true, true, true),
("components.robotics", "axopen.components.robotics", true, true, true),
("components.abb.robotics", "axopen.components.abb.robotics", true, true, true),
("components.mitsubishi.robotics", "axopen.components.mitsubishi.robotics", true, true, true),
("components.ur.robotics", "axopen.components.ur.robotics", true, true, true),
("components.kuka.robotics", "axopen.components.kuka.robotics", true, true, true),
("components.siem.identification", "axopen.components.siem.identification", true, true, true),
("components.siem.communication", "axopen.components.siem.communication", true, true, true),
("components.balluff.identification", "axopen.components.balluff.identification", true, true, true),
("components.keyence.vision", "axopen.components.keyence.vision", true, true, true),
("components.rexroth.tightening", "axopen.components.rexroth.tightening", true, true, true),
("components.dukane.welders", "axopen.components.dukane.welders", true, true, true),
("components.zebra.vision", "axopen.components.zebra.vision", true, true, true),
("integrations", "ix.integrations", false,false, false),
("template.axolibrary", "template.axolibrary", false, true, false)
("core", "axopen.core", true, false, true),
("data", "axopen.data", true, false, true),
("probers", "axopen.probers", true, false, false),
("inspectors", "axopen.inspectors", true, false, true),
("components.abstractions", "axopen.components.abstractions", true, false, true),
("components.elements", "axopen.components.elements", true, false, true),
("io", "axopen.io", true, false, false),
("components.cognex.vision", "axopen.components.cognex.vision", true, false, true),
("components.pneumatics", "axopen.components.pneumatics", true, false, true),
("components.drives", "axopen.components.drives", true, false, true),
("components.rexroth.drives", "axopen.components.rexroth.drives", true, false, true),
("components.rexroth.press", "axopen.components.rexroth.press", true, false, true),
("components.festo.drives", "axopen.components.festo.drives", true, false, true),
("components.desoutter.tightening", "axopen.components.desoutter.tightening", true, false, true),
("components.robotics", "axopen.components.robotics", true, false, true),
("components.abb.robotics", "axopen.components.abb.robotics", true, false, true),
("components.mitsubishi.robotics", "axopen.components.mitsubishi.robotics", true, false, true),
("components.ur.robotics", "axopen.components.ur.robotics", true, false, true),
("components.kuka.robotics", "axopen.components.kuka.robotics", true, false, true),
("components.siem.identification", "axopen.components.siem.identification", true, false, true),
("components.siem.communication", "axopen.components.siem.communication", true, false, true),
("components.balluff.identification", "axopen.components.balluff.identification", true, false, true),
("components.keyence.vision", "axopen.components.keyence.vision", true, false, true),
("components.rexroth.tightening", "axopen.components.rexroth.tightening", true, false, true),
("components.dukane.welders", "axopen.components.dukane.welders", true, false, true),
("components.zebra.vision", "axopen.components.zebra.vision", true, false, true),
("template.axolibrary", "template.axolibrary", false, false, false)
};
#endregion

Expand All @@ -214,8 +213,7 @@ public IEnumerable<string> GetAxFolders((string folder, string name, bool pack,
var paths = new string[]
{
Path.Combine(Path.Combine(RootDir, library.folder), "ctrl"),
Path.Combine(Path.Combine(RootDir, library.folder), "app"),
Path.Combine(Path.Combine(RootDir, library.folder), "ax")
Path.Combine(Path.Combine(RootDir, library.folder), "ax")
};

return paths.Where(p => File.Exists(Path.Combine(p, "apax.yml")));
Expand All @@ -224,9 +222,8 @@ public IEnumerable<string> GetAxFolders((string folder, string name, bool pack,
public IEnumerable<string> GetApplicationAxFolders((string folder, string name, bool pack) library)
{
var paths = new string[]
{
Path.Combine(Path.Combine(RootDir, library.folder), "app"),
Path.Combine(Path.Combine(RootDir, library.folder), "ax")
{
Path.Combine(Path.Combine(RootDir, library.folder), "ax")
};

return paths.Where(p => File.Exists(Path.Combine(p, "apax.yml")));
Expand Down Expand Up @@ -283,7 +280,6 @@ public IEnumerable<string> GetApaxFiles((string folder, string name, bool pack,
var paths = new string[]
{
Path.Combine(Path.Combine(RootDir, library.folder), "ctrl", "apax.yml"),
Path.Combine(Path.Combine(RootDir, library.folder), "app", "apax.yml"),
Path.Combine(Path.Combine(RootDir, library.folder), "ax", "apax.yml")
};

Expand Down
14 changes: 4 additions & 10 deletions cake/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -371,22 +371,16 @@ public override void Run(BuildContext context)
{
foreach (var package in context.Libraries)
{
var app = Path.Combine(context.RootDir, package.folder, "app");
var ax = Path.Combine(context.RootDir, package.folder, "ax");

if (Directory.Exists(app))
{
context.ApaxDownload(app);
}
else if (Directory.Exists(ax))
if (Directory.Exists(ax))
{
context.ApaxDownload(ax);
}
else
{
//throw new Exception($"No app or ax folder found for {package.folder}");
context.Log.Information($"No app or ax folder found for {package.folder}");
break;
context.Log.Information($"No ax folder found for {package.folder}");
continue;
}

context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings);
Expand Down Expand Up @@ -482,7 +476,7 @@ public override void Run(BuildContext context)
string logFilePath = createResult.FilePath;
AppsRunTaskHelpers.WriteResult(context, "AppName,ApaxInstall,ApaxPlcSim,ApaxGsd,ApaxHwl,ApaxHwcc,ApaxHwid,ApaxHwadr,ApaxHwdo,ApaxBuild,DotnetIxc,ApaxSlfdo,Slngen,DotnetClean,DotnetBuild,DotnetRun", logFilePath);

string appFolder = Path.Combine(Path.Combine(context.RootDir, context.BuildParameters.AppRunOnlyFolderName), "app");
string appFolder = Path.Combine(context.RootDir, context.BuildParameters.AppRunOnlyFolderName);
string appFile = context.GetApaxFile(appFolder);
string appName = context.GetApplicationName(appFile);

Expand Down
Loading
Loading