ARServer is a free, open-source Windows desktop gateway that helps automation engineers route IEC 61850 MMS values into Modbus TCP registers and MQTT topics for HMI, SCADA, FAT/SAT, relay testing, commissioning, and substation automation labs.
It is built for practical field workflows: add an IED, inspect IEC object references, select SCADA-ready signals, validate the Modbus map, publish MQTT topics, and run a local gateway without a cloud subscription or license key.
Free and open source: ARServer core is licensed under Apache-2.0. The application can run in mock/demo mode out of the box. Real IED communication requires IEC 61850 MMS runtime components supplied by the user under their own valid license terms.
ARServer is a local Windows gateway for engineers who need a readable bridge between IEC 61850 devices and common supervision layers.
It focuses on three jobs:
- Explore IEC 61850 MMS data from relay or bay-controller models.
- Map selected values to Modbus TCP so HMI/SCADA tools can read familiar coils, discrete inputs, input registers, and holding registers.
- Publish selected values to MQTT so dashboards, web HMI, historians, or integration tools can subscribe to clean topic payloads.
ARServer is not a cloud service and does not require an online account. It runs locally on Windows.
IEC 61850 is powerful, but many FAT benches, HMI tools, and integration labs still need quick visibility through Modbus TCP or MQTT. ARServer gives engineers a transparent workflow instead of a black-box converter.
Use it when you need to:
- validate relay signals during FAT/SAT;
- prototype a FUXA, HMI, SCADA, or dashboard integration;
- expose selected IEC 61850 values to Modbus TCP clients;
- publish the same values to MQTT topics;
- keep IEC object references, value quality, and mapping decisions visible;
- test breaker/status refresh using fast acquisition settings;
- prepare repeatable evidence for engineering review and troubleshooting.
- IEC 61850 IED workspace — add IED endpoints, inspect discovered signals, and keep the IEC Reference visible during selection.
- SCL/CID/SCD import — load engineering files and select SCADA/HMI-friendly signals.
- Modbus TCP server — publish selected signals as coils, discrete inputs, input registers, or holding registers.
- MQTT publisher — send value, quality, status, and optional JSON state payloads to an external MQTT broker.
- Fast CB acquisition — prioritize breaker position, switch status, Boolean points, trip/start flags, and protection status over slower analog values.
- Adjustable MMS polling — set acquisition target down to 10 ms for expert bench evaluation of one/few critical tags.
- Runtime cache architecture — Modbus and MQTT outputs publish from ARServer's cache, so HMI polling does not directly trigger relay reads.
- Read-only safety posture — Modbus write functions are rejected by design.
- Mock mode — explore UI, mapping, Modbus, and MQTT behavior without a real relay.
- Portable Windows release — GitHub Actions can publish a ready-to-run Windows x64 ZIP package.
| Start workspace | Live IEC values |
|---|---|
![]() |
![]() |
| Modbus TCP map | MQTT topics |
|---|---|
![]() |
![]() |
The fastest way to try ARServer is to download the Windows portable package from GitHub Releases.
- Open the latest release.
- Download
ARServer-vX.Y.Z-win-x64-portable.zip. - Extract the ZIP to a writable folder, for example
C:\Tools\ARServer. - Run
ArServer.exe. The Windows app binary is packaged as a single executable. - Use mock mode to explore the workflow, or add your IEC 61850 MMS runtime components for real IED testing.
- Add an IED, select signals, review the Modbus map, enable Modbus TCP and/or MQTT, then start runtime.
Detailed steps are available in docs/QUICK_START.md.
Use the portable ZIP when you want to try ARServer without installing Visual Studio.
ARServer-vX.Y.Z-win-x64-portable.zip
The package includes:
ArServer.exesingle-file Windows application executable;- quick-start notes;
LICENSE,NOTICE, and third-party notices.
Requirements:
- Windows 10/11;
- .NET 8 SDK;
- Visual Studio 2022 or newer with .NET desktop workload, or
dotnetCLI.
git clone https://github.com/masarray/arserver.git
cd arserver
dotnet restore ARServer.sln
dotnet build ARServer.sln -c ReleaseRun from Visual Studio, or start the built executable from:
bin\Release\net8.0-windows\
IEC 61850 IED / relay
│
│ MMS polling / selected points
▼
ARServer acquisition engine
│
├── Fast CB lane for breaker/status/Boolean points
├── Runtime cache with value, quality, timestamp, and stale state
├── Modbus TCP server for HMI/SCADA polling
└── MQTT publisher for broker-based dashboards
Important behavior:
- Modbus and MQTT outputs read from the internal runtime cache.
- FUXA/SCADA Modbus polling does not directly trigger IEC 61850 reads.
- Fast polling values are scheduler targets, not guaranteed device response times.
- For event-grade protection workflows, use the right event/report architecture in the IED design. Fast polling is useful for bench monitoring and HMI refresh evaluation, not a substitute for protection event engineering.
- Add IED — connect by IP address and MMS port.
- Discover or import — use live discovery or SCL/CID/SCD files.
- Select signals — choose SCADA-ready status, position, analog, and quality points.
- Review IEC Reference — confirm the exact object path before publishing.
- Bind Modbus map — assign discrete inputs/registers with clear address ranges.
- Configure MQTT — select which values publish to broker topics.
- Set acquisition — choose MMS polling target and Fast CB mode where needed.
- Start runtime — validate live quality, stale state, and output behavior.
dotnet restore ARServer.sln
dotnet build ARServer.sln -c ReleaseTo create a local Windows portable package:
powershell -ExecutionPolicy Bypass -File ./scripts/publish-windows-portable.ps1 -Version 1.0.1-public-beta
powershell -ExecutionPolicy Bypass -File ./scripts/verify-release-package.ps1 -PackagePath ./artifacts/release/ARServer-v1.0.1-public-beta-win-x64-portable.zip -RequireSingleFileAppSee docs/RELEASE_PACKAGING.md for release automation details.
- Quick start
- Troubleshooting
- Release packaging
- Validation matrix
- Deployment and GitHub Pages
- Roadmap
- Release notes
- Security policy
- Contributing guide
Recommended public repository metadata:
- Description:
Open-source IEC 61850 MMS to Modbus TCP and MQTT gateway for Windows HMI, SCADA, relay testing, FAT/SAT, and substation automation labs. - Website:
https://masarray.github.io/arserver/ - Topics:
iec61850,iec-61850,mms,modbus-tcp,mqtt,scada,hmi,fuxa,substation-automation,relay-testing,fat-sat,wpf,dotnet,windows-desktop,industrial-automation,gateway
Apply the metadata with GitHub CLI:
pwsh ./scripts/Apply-GitHubRepoSeo.ps1 -WhatIf
pwsh ./scripts/Apply-GitHubRepoSeo.ps1Planned improvements are tracked in docs/ROADMAP.md. Current priorities include:
- stronger acquisition diagnostics;
- clearer mapping validation;
- richer evidence export;
- improved multi-IED scheduling;
- optional event/report-oriented acquisition where available;
- more sample configurations and screenshots.
Contributions are welcome. Useful contributions include:
- relay model compatibility reports;
- SCL import edge cases;
- Modbus mapping validation improvements;
- MQTT payload examples;
- UI/UX improvements for engineering workflows;
- documentation and screenshot updates;
- test benches or mock datasets that can be shared publicly.
Please read CONTRIBUTING.md before opening a pull request. Do not upload private substation files, customer names, network addresses, relay passwords, or confidential SCL files to public issues.
ARServer core is licensed under the Apache License 2.0.
Third-party notices are available in THIRD_PARTY_NOTICES.md. Optional runtime components supplied by users remain governed by their own license terms and are not redistributed in ARServer source or release packages.


