Skip to content

TyKonKet/ModbusLab

Repository files navigation

ModbusLab

A desktop Modbus TCP lab for simulation, diagnostics, debugging, and repeatable integration tests.

ModbusLab gives you a controllable Modbus TCP server workspace when the real device is unavailable, inconvenient, unsafe to modify, or too limited for the scenario you need to reproduce.

ModbusLab memory view

Why ModbusLab

  • Spin up one or more local Modbus TCP server instances.
  • Inspect and edit coils, discrete inputs, holding registers, and input registers.
  • Watch and write typed values such as booleans, integers, floats, doubles, and strings.
  • Simulate raw addresses or typed watches with counters, toggles, sine waves, random signals, ramps, pulses, square waves, sawtooth signals, and noise.
  • Inject delays, exception responses, and connection drops.
  • React to writes with automation rules.
  • Analyze connected clients, request blocks, logs, raw bytes, rates, and latency.
  • Import and export complete server profiles as dedicated JSON files.
  • Expose the running workspace to local LLM agents through the optional loopback MCP server.
  • Persist server configuration, memory, UI layout, grid layout, and app settings with versioned, atomic project saves and guided recovery.
  • Validate server settings, Watches, simulations, faults, and reactions through the same domain rules in the UI and MCP.

Get Started

Official builds may be published through TyKonLab release channels. You can also build ModbusLab from source:

dotnet restore .\ModbusLab.slnx
dotnet build .\ModbusLab.slnx -c Release /warnaserror
dotnet test .\ModbusLab.slnx -c Release --no-build --no-restore

Run the app, start the default server on a test port such as 1502, and point your Modbus TCP client to 127.0.0.1:1502.

Documentation

The user manual is published with GitHub Pages:

https://tykonket.github.io/ModbusLab/

The documentation source lives under docs/.

Start here:

The GitHub Pages site is built with MkDocs and the built-in mkdocs theme.

.\scripts\build-docs.ps1 -Serve

Build From Source

Requirements:

  • Windows 10 or Windows 11.
  • The .NET SDK selected by global.json, currently 11.0.100-preview.5.26302.115 with prerelease and latest-patch roll-forward enabled.
  • An editor is optional when building from the command line.

The app targets net11.0-windows.

dotnet restore .\ModbusLab.slnx
dotnet build .\ModbusLab.slnx -c Release /warnaserror
dotnet test .\ModbusLab.slnx -c Release --no-build --no-restore

Build outputs are written under artifacts/bin and artifacts/obj.

Publish

Publish profiles create compressed, self-contained, single-file executables for Windows x64 and x86:

.\scripts\publish-windows.ps1

To publish one architecture directly:

dotnet publish .\ModbusLab\ModbusLab.csproj /p:PublishProfile=win-x64
dotnet publish .\ModbusLab\ModbusLab.csproj /p:PublishProfile=win-x86

Outputs:

artifacts/publish/ModbusLab/win-x64/ModbusLab_x64.exe
artifacts/publish/ModbusLab/win-x86/ModbusLab_x86.exe

Release Preparation

Use the release preparation script to update version metadata, build with warnings as errors, run all tests, refresh documentation screenshots, validate the MkDocs site, and publish Windows artifacts:

.\scripts\prepare-release.ps1 -Version 1.1.0

Equivalent manual checks:

dotnet build .\ModbusLab.slnx -c Release /warnaserror
dotnet test .\ModbusLab.slnx -c Release --no-build --no-restore
.\scripts\update-screenshots.ps1
.\scripts\build-docs.ps1
.\scripts\publish-windows.ps1 -Configuration Release -NoRestore

Commit source files, documentation, and refreshed screenshots. Do not commit generated build outputs such as artifacts/, site/, or .venv-docs/ unless a release process explicitly requires them.

License

ModbusLab is source-available under the ModbusLab Source Available License 1.0. This is not an OSI-approved Open Source license.

You may build ModbusLab from source and use it for free, including in production. TyKonLab controls the official ModbusLab distribution: only TyKonLab may distribute official builds, installers, store listings, update feeds, and release artifacts.

Third parties may distribute modified versions, but they must be clearly marked as unofficial, use distinguishable branding/package identities, preserve license notices, and describe their material changes. Redistributing the official ModbusLab distribution, or builds that are unmodified or substantially identical to it, is not permitted without written permission from TyKonLab.

TyKonLab may provide official prebuilt binaries for free, for a fee, or not at all. The source code remains buildable under the terms in LICENSE.

About

Modbus TCP server laboratory for simulation, diagnostics, and testing.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages