Skip to content

Latest commit

 

History

History
76 lines (47 loc) · 2.62 KB

File metadata and controls

76 lines (47 loc) · 2.62 KB

Modbus Protocol for .NET | Common

This package contains all basic tools to build your own clients.

Contracts

IModbusConnection
This is the interface used on the base client to communicate with the remote device. If you want to use a custom connection type, you should implement this interface yourself.
The IModbusConnection is responsible to open and close the data channel in the background.

IModbusProtocol
If you want to speak a custom type of protocol with the clients, you can implement this interface.

ModbusBaseClient
This abstract base client contains all the basic methods and handlings required to communicate via Modbus Protocol. The packages AMWD.Protocols.Modbus.Serial and AMWD.Protocols.Modbus.Tcp have specific derived implementations to match the communication types.

Enums

Here you have all typed enumerables defined by the Modbus Protocol.

  • Error code
  • Function code
  • Device Identification Category (Basic, Regular, Extended, Individual)
  • Device Identification Object
  • ModbusObjectType (only needed when using the abstract base type ModbusObject instead of Coil, etc.)

Extensions

To convert the Modbus specific types to usable values and vice-versa, there are some extensions.

  • Decimal extensions for float (single) and double
  • Signed extensions for signed integer values as sbyte, short (int16), int (int32) and long (int64)
  • Unsigned extensions for unsigned integer values as byte, ushort (uint16), uint (uint32) and ulong (uint64)
  • Some other extensions for string and bool

Models

The different types handled by the Modbus Protocol.

  • Coil
  • Discrete Input
  • Holding Register
  • Input Register

In addition, you'll find the DeviceIdentification there.
It is used for a "special" function called Read Device Identification (0x2B / 43), not supported on all devices.

The ModbusDevice is used for the server implementations in the derived packages.

Protocols

Here you have the specific default implementations for the Modbus Protocol.

NOTE:
The implementations over serial line (RTU and ASCII) have a minimum unit ID of one (1) and maximum unit ID of 247 referring to the specification. This validation is not implemented here due to real world experience, that some manufactures don't care about it.


Published under MIT License (see tl;drLegal)