Implementation of the basic functionallity
This commit is contained in:
76
AMWD.Protocols.Modbus.Common/Enums/ModbusErrorCode.cs
Normal file
76
AMWD.Protocols.Modbus.Common/Enums/ModbusErrorCode.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace AMWD.Protocols.Modbus.Common
|
||||
{
|
||||
/// <summary>
|
||||
/// List of Modbus exception codes.
|
||||
/// </summary>
|
||||
public enum ModbusErrorCode : byte
|
||||
{
|
||||
/// <summary>
|
||||
/// No error.
|
||||
/// </summary>
|
||||
[Description("No error")]
|
||||
NoError = 0x00,
|
||||
|
||||
/// <summary>
|
||||
/// Function code not valid/supported.
|
||||
/// </summary>
|
||||
[Description("Illegal function")]
|
||||
IllegalFunction = 0x01,
|
||||
|
||||
/// <summary>
|
||||
/// Data address not in range.
|
||||
/// </summary>
|
||||
[Description("Illegal data address")]
|
||||
IllegalDataAddress = 0x02,
|
||||
|
||||
/// <summary>
|
||||
/// The data value to set is not valid.
|
||||
/// </summary>
|
||||
[Description("Illegal data value")]
|
||||
IllegalDataValue = 0x03,
|
||||
|
||||
/// <summary>
|
||||
/// Slave device produced a failure.
|
||||
/// </summary>
|
||||
[Description("Slave device failure")]
|
||||
SlaveDeviceFailure = 0x04,
|
||||
|
||||
/// <summary>
|
||||
/// Ack
|
||||
/// </summary>
|
||||
[Description("Acknowledge")]
|
||||
Acknowledge = 0x05,
|
||||
|
||||
/// <summary>
|
||||
/// Slave device is working on another task.
|
||||
/// </summary>
|
||||
[Description("Slave device busy")]
|
||||
SlaveDeviceBusy = 0x06,
|
||||
|
||||
/// <summary>
|
||||
/// nAck
|
||||
/// </summary>
|
||||
[Description("Negative acknowledge")]
|
||||
NegativeAcknowledge = 0x07,
|
||||
|
||||
/// <summary>
|
||||
/// Momory Parity Error.
|
||||
/// </summary>
|
||||
[Description("Memory parity error")]
|
||||
MemoryParityError = 0x08,
|
||||
|
||||
/// <summary>
|
||||
/// Gateway of the device could not be reached.
|
||||
/// </summary>
|
||||
[Description("Gateway path unavailable")]
|
||||
GatewayPath = 0x0A,
|
||||
|
||||
/// <summary>
|
||||
/// Gateway device did no respond.
|
||||
/// </summary>
|
||||
[Description("Gateway target device failed to respond")]
|
||||
GatewayTargetDevice = 0x0B
|
||||
}
|
||||
}
|
||||
67
AMWD.Protocols.Modbus.Common/Enums/ModbusFunctionCode.cs
Normal file
67
AMWD.Protocols.Modbus.Common/Enums/ModbusFunctionCode.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace AMWD.Protocols.Modbus.Common
|
||||
{
|
||||
/// <summary>
|
||||
/// List of the Modbus function codes.
|
||||
/// </summary>
|
||||
public enum ModbusFunctionCode : byte
|
||||
{
|
||||
/// <summary>
|
||||
/// Read coils (Fn 1).
|
||||
/// </summary>
|
||||
[Description("Read Coils")]
|
||||
ReadCoils = 0x01,
|
||||
|
||||
/// <summary>
|
||||
/// Read discrete inputs (Fn 2).
|
||||
/// </summary>
|
||||
[Description("Read Discrete Inputs")]
|
||||
ReadDiscreteInputs = 0x02,
|
||||
|
||||
/// <summary>
|
||||
/// Reads holding registers (Fn 3).
|
||||
/// </summary>
|
||||
[Description("Read Holding Registers")]
|
||||
ReadHoldingRegisters = 0x03,
|
||||
|
||||
/// <summary>
|
||||
/// Reads input registers (Fn 4).
|
||||
/// </summary>
|
||||
[Description("Read Input Registers")]
|
||||
ReadInputRegisters = 0x04,
|
||||
|
||||
/// <summary>
|
||||
/// Writes a single coil (Fn 5).
|
||||
/// </summary>
|
||||
[Description("Write Single Coil")]
|
||||
WriteSingleCoil = 0x05,
|
||||
|
||||
/// <summary>
|
||||
/// Writes a single register (Fn 6).
|
||||
/// </summary>
|
||||
[Description("Write Single Register")]
|
||||
WriteSingleRegister = 0x06,
|
||||
|
||||
/// <summary>
|
||||
/// Writes multiple coils (Fn 15).
|
||||
/// </summary>
|
||||
[Description("Write Multiple Coils")]
|
||||
WriteMultipleCoils = 0x0F,
|
||||
|
||||
/// <summary>
|
||||
/// Writes multiple registers (Fn 16).
|
||||
/// </summary>
|
||||
[Description("Write Multiple Registers")]
|
||||
WriteMultipleRegisters = 0x10,
|
||||
|
||||
/// <summary>
|
||||
/// Tunnels service requests and method invocations (Fn 43).
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This function code needs additional information about its type of request.
|
||||
/// </remarks>
|
||||
[Description("MODBUS Encapsulated Interface (MEI)")]
|
||||
EncapsulatedInterface = 0x2B
|
||||
}
|
||||
}
|
||||
28
AMWD.Protocols.Modbus.Common/Enums/ModbusObjectType.cs
Normal file
28
AMWD.Protocols.Modbus.Common/Enums/ModbusObjectType.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
namespace AMWD.Protocols.Modbus.Common
|
||||
{
|
||||
/// <summary>
|
||||
/// List of specific types.
|
||||
/// </summary>
|
||||
public enum ModbusObjectType
|
||||
{
|
||||
/// <summary>
|
||||
/// The discrete value is a coil (read/write).
|
||||
/// </summary>
|
||||
Coil = 1,
|
||||
|
||||
/// <summary>
|
||||
/// The discrete value is an input (read only).
|
||||
/// </summary>
|
||||
DiscreteInput = 2,
|
||||
|
||||
/// <summary>
|
||||
/// The value is a holding register (read/write).
|
||||
/// </summary>
|
||||
HoldingRegister = 3,
|
||||
|
||||
/// <summary>
|
||||
/// The value is an input register (read only).
|
||||
/// </summary>
|
||||
InputRegister = 4
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user