ModelingEvolution.GenericAxis 0.1.1

dotnet add package ModelingEvolution.GenericAxis --version 0.1.1
                    
NuGet\Install-Package ModelingEvolution.GenericAxis -Version 0.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ModelingEvolution.GenericAxis" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ModelingEvolution.GenericAxis" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="ModelingEvolution.GenericAxis" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ModelingEvolution.GenericAxis --version 0.1.1
                    
#r "nuget: ModelingEvolution.GenericAxis, 0.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ModelingEvolution.GenericAxis@0.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ModelingEvolution.GenericAxis&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=ModelingEvolution.GenericAxis&version=0.1.1
                    
Install as a Cake Tool

generic-axis

A generic external axis for RocketWelder over Modbus TCP: a linear track that carries the robot or a rotary positioner that carries the part, fronted by any PLC that can serve the register map in docs/protocol.md.

Project What
src/ModelingEvolution.GenericAxis NuGet. The driver: IModbusChannel with a priority gate, FR-11 heartbeat + advisory lease, ModbusLinearAxis : ILinearAxis, ModbusRotaryAxis : IRotaryAxis, ModbusAxisDevice : ILinearTrack / IPositioner. Depends on RocketWelder.SDK.Devices.Motion and FluentModbus only.
src/ModelingEvolution.GenericAxis.Plugin rw2 device plugin ([RocketWelderPlugin("RocketWelder.Motion.Generic")]): declares the axis and builds the device from the devices hub's values.
src/ModelingEvolution.GenericAxis.TestApp One app for testing, three roles: (1) the PLC simulator (the register map with physics, watchdog, lease, fault injection); (2) a driver panel that connects to the simulator or to a real PLC; (3) the PLC conformance check — --check <host>[:port] [--allow-motion] runs docs/protocol.md as a checklist against a real PLC (transport, word order, command/ack, watchdog trip and re-arm, lease; motion and kill-test only with an operator present) and writes a pass/fail report the PLC developer can act on. The simulator must pass the same check.
python/generic_axis_check/ The PLC conformance check in Python (pymodbus): the same checklist as the C# --check, same ids and report, for a PLC developer's laptop without .NET. python -m generic_axis_check <host>[:port] [--allow-motion] [--report out.md]. Both checkers must pass against the simulator in CI.
src/ModelingEvolution.GenericAxis.Plugin.Tests Plugin unit tests (declaration, property table, factory, prefix handler, connector).
src/ModelingEvolution.GenericAxis.Tests Unit tests (lease vectors, heartbeat, packing) and live tests against the in-process simulator (home, move, stop, kill-test).

Requirements: docs/epics/epic-065-external-axis-motion/features/feature-007-pamet-track-direct-plc/ in the docs repo. Reference implementation this generalises: delta-positioner + delta-positioner-sim.

dotnet build src/GenericAxis.sln
dotnet test  src/GenericAxis.sln
dotnet run --project src/ModelingEvolution.GenericAxis.TestApp   # http://localhost:5070

Cross-test: the simulator against both checkers

# 1. the PLC simulator, headless, on port 5023
dotnet src/ModelingEvolution.GenericAxis.TestApp/bin/Debug/net10.0/ModelingEvolution.GenericAxis.TestApp.dll --headless --port 5023 &

# 2. the C# checker (same binary)
dotnet src/ModelingEvolution.GenericAxis.TestApp/bin/Debug/net10.0/ModelingEvolution.GenericAxis.TestApp.dll --check 127.0.0.1:5023 --allow-motion --report cs.md

# 3. the Python checker (no .NET needed on the machine that runs it)
python3 -m venv .venv && . .venv/bin/activate && pip install ./python
python -m generic_axis_check 127.0.0.1:5023 --allow-motion --report py.md

Both must end with RESULT: PASS, exit code 0, CHK-01…CHK-16. Point either checker at a real PLC by replacing 127.0.0.1:5023 with its address; leave out --allow-motion unless an operator is at the machine and the travel is clear. Details and exit codes: python/README.md and docs/protocol.md § Conformance checks.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on ModelingEvolution.GenericAxis:

Package Downloads
ModelingEvolution.GenericAxis.Plugin

RocketWelder device plugin for a generic external axis over Modbus TCP (epic-065 feature-007): a linear track (ILinearTrack, axis 'carriage') or a rotary positioner (IPositioner, axis 'turntable') fronted by any PLC serving the generic-axis register map v1.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.1 88 10/8/2026
0.1.0 89 10/6/2026