AMWD.Protocols.Modbus.Serial 0.4.3-5

Modbus Protocol for .NET | Serial

The Modbus Serial protocol implementation.

Example

A simple example which reads the voltage between L1 and N of a Janitza device.

string serialPort = "COM5";

using var client = new ModbusSerialClient(serialPort);
await client.ConnectAsync(CancellationToken.None);

byte unitId = 5;
ushort startAddress = 19000;
ushort count = 2;

var registers = await client.ReadHoldingRegistersAsync(unitId, startAddress, count);
float voltage = registers.GetSingle();

Console.WriteLine($"The voltage of device #{unitId} between L1 and N is: {voltage:N2}V");

If you want to use the ASCII protocol instead, you can do this on initialization:

// [...]

using var client = new ModbusSerialClient(serialPort)
{
	Protocol = new AsciiProtocol();
};

// [...]

Sources

  • Protocol Specification: v1.1b3
  • Modbus Serial line: v1.02

Published under MIT License (see choose a license)

No packages depend on AMWD.Protocols.Modbus.Serial.

.NET 6.0

.NET 8.0

.NET Standard 2.0

Version Downloads Last updated
0.4.3-5 17 08.08.2025