EonaCat.Modbus.System
1.0.0
Prefix Reserved
dotnet add package EonaCat.Modbus.System --version 1.0.0
NuGet\Install-Package EonaCat.Modbus.System -Version 1.0.0
<PackageReference Include="EonaCat.Modbus.System" Version="1.0.0" />
<PackageVersion Include="EonaCat.Modbus.System" Version="1.0.0" />
<PackageReference Include="EonaCat.Modbus.System" />
paket add EonaCat.Modbus.System --version 1.0.0
#r "nuget: EonaCat.Modbus.System, 1.0.0"
#:package EonaCat.Modbus.System@1.0.0
#addin nuget:?package=EonaCat.Modbus.System&version=1.0.0
#tool nuget:?package=EonaCat.Modbus.System&version=1.0.0
EonaCat Modbus System
All Modbus Functions:
- 0x01: Read Coils
- 0x02: Read Discrete Inputs
- 0x03: Read Holding Registers
- 0x04: Read Input Registers
- 0x05: Write Single Coil
- 0x06: Write Single Register
- 0x0F: Write Multiple Coils
- 0x10: Write Multiple Registers
Async/Await Pattern: Modern asynchronous operations
Thread-Safe: Semaphore-based request handling
CRC Validation: Automatic CRC16 calculation for RTU
Exception Handling: Proper Modbus exception responses
Event-Driven: Request/Response events for logging
Multi-Connection Support: Manage multiple master connections in tabs
Three Protocol Modes:
- TCP/IP with configurable IP and port
- UDP with configurable IP and port
- RTU with full serial port configuration
User-Friendly Interface:
- Tabbed interface for multiple connections
- Visual function selector with all 8 Modbus functions
- Real-time results display with decimal, binary, and hex formats
- Comprehensive communication log with timestamps
Advanced Features:
- Response time tracking
- Multiple value input for batch writes
- Connection status indicators
- Error handling with detailed messages
Multi-Device Simulation: Run multiple slave devices simultaneously
Data Visualization:
- Separate tabs for Coils, Discrete Inputs, Holding Registers, Input Registers
- Grid-based data editing with live updates
- Binary, hex, and decimal representations
Data Manipulation:
- Manual value editing
- Randomize values for testing
- Clear all values
- Up to 10,000 addresses per data type
Real-Time Monitoring:
- Communication log with request/response tracking
- Visual status indicators
- Event-driven updates
Testing Locally (TCP/UDP)
Slave Tab:
- Click on the tab named "Slave"
- Select "TCP" or "UDP" mode
- Keep default port (502)
- Set Slave Address (e.g., 1)
- Click "Start Slave"
Configure Data in Slave:
- Go to "Coils" tab and set some values
- Go to "Holding Registers" tab and enter test values
- Or click "Randomize Values" for quick testing
Master Tab:
- Click on the tab named "Master"
- Select "TCP" or "UDP" mode
- Enter IP: 127.0.0.1 (localhost)
- Enter Port: 502
- Click "Connect"
Execute Modbus Functions:
- Set Slave Address: 1
- Select function (e.g., "Read Holding Registers")
- Set Start Address: 0
- Set Quantity: 10
- Click "Execute"
- View results in the grid
Write Operations:
- Select "Write Single Register"
- Set address and value
- Click "Execute"
- Switch to the slave tab to see the updated value
Testing with RTU (Serial)
Requirements: Two COM ports connected (physical or virtual like com0com)
Slave Setup:
- Select "RTU" mode
- Choose COM port (e.g., COM1)
- Set baud rate: 9600
- Set Slave Address: 1
- Click "Start Slave"
Master Setup:
- Select "RTU" mode
- Choose COM port (e.g., COM2, connected to slave's COM1)
- Match baud rate and serial settings
- Click "Connect"
Test Communication:
- Execute read/write operations
- Monitor communication logs in both tabs for successful transactions and CRC validation
Example Application
The example application demonstrates how to use the EonaCat Modbus System library to create a simple Modbus master and slave. It includes a user-friendly interface for testing all Modbus functions, simulating multiple devices, and visualizing data in real-time.
https://github.com/EonaCat/EonaCat.Modbus.System
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.IO.Ports (>= 10.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 106 | 2/8/2026 |