AMWD.Protocols.Modbus.Common
0.3.2
Prefix Reserved
dotnet add package AMWD.Protocols.Modbus.Common --version 0.3.2
NuGet\Install-Package AMWD.Protocols.Modbus.Common -Version 0.3.2
<PackageReference Include="AMWD.Protocols.Modbus.Common" Version="0.3.2" />
paket add AMWD.Protocols.Modbus.Common --version 0.3.2
#r "nuget: AMWD.Protocols.Modbus.Common, 0.3.2"
// Install AMWD.Protocols.Modbus.Common as a Cake Addin #addin nuget:?package=AMWD.Protocols.Modbus.Common&version=0.3.2 // Install AMWD.Protocols.Modbus.Common as a Cake Tool #tool nuget:?package=AMWD.Protocols.Modbus.Common&version=0.3.2
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 ofCoil
, etc.)
Extensions
To convert the Modbus specific types to usable values and vice-versa, there are some extensions.
- Decimal extensions for
float
(single) anddouble
- Signed extensions for signed integer values as
sbyte
,short
(int16),int
(int32) andlong
(int64) - Unsigned extensions for unsigned integer values as
byte
,ushort
(uint16),uint
(uint32) andulong
(uint64) - Some other extensions for
string
andbool
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.
- ASCII
- RTU
- TCP
- RTU over TCP
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)
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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. |
.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
- No dependencies.
-
net6.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on AMWD.Protocols.Modbus.Common:
Package | Downloads |
---|---|
AMWD.Protocols.Modbus.Serial
Implementation of the Modbus protocol communicating via serial line using RTU or ASCII encoding. |
|
AMWD.Protocols.Modbus.Tcp
Implementation of the Modbus protocol communicating via TCP. |
|
AMWD.Protocols.Modbus.Proxy
Plugging Modbus Servers and Clients together to create Modbus Proxies. |
GitHub repositories
This package is not used by any popular GitHub repositories.