Modbus TCP 0.1.0

Variables
Modbus Function Codes, Exception Codes

## Variables
static const uint8_t | ModbusTCP::MBIllegalFunction = 0x01
static const uint8_t | ModbusTCP::MBIllegalDataAddress = 0x02
static const uint8_t | ModbusTCP::MBIllegalDataValue = 0x03
static const uint8_t | ModbusTCP::MBServerConnectionTimeOut = 0x05
static const uint8_t | ModbusTCP::MBSuccess = 0x00
static const uint8_t | ModbusTCP::MBInvalidTransactionID = 0xE0
static const uint8_t | ModbusTCP::MBInvalidFunction = 0xE1
static const uint8_t | ModbusTCP::MBResponseTimedOut = 0xE2
static const uint8_t | ModbusTCP::MBInvalidUnitID = 0xE3

## Detailed Description

## Variable Documentation

## ◆ MBIllegalDataAddress

const uint8_t ModbusTCP::MBIllegalDataAddress = 0x02
| static

Modbus protocol illegal data address exception.

The data address received in the query is not an allowable address for the server. More specifically, the combination of reference number and transfer length is invalid. For a controller with 100 registers, the ADU addresses the first register as 0, and the last one as 99. If a request is submitted with a starting register address of 96 and a quantity of registers of 4, then this request will successfully operate (address-wise at least) on registers 96, 97, 98, 99. If a request is submitted with a starting register address of 96 and a quantity of registers of 5, then this request will fail with Exception Code 0x02 "Illegal Data Address" since it attempts to operate on registers 96, 97, 98, 99 and 100, and there is no register with address

## ◆ MBIllegalDataValue

const uint8_t ModbusTCP::MBIllegalDataValue = 0x03
| static

Modbus protocol illegal data value exception.

A value contained in the query data field is not an allowable value for server. This indicates a fault in the structure of the remainder of a complex request, such as that the implied length is incorrect. It specifically does NOT mean that a data item submitted for storage in a register has a value outside the expectation of the application program, since the MODBUS protocol is unaware of the significance of any particular value of any particular register.

## ◆ MBIllegalFunction

const uint8_t ModbusTCP::MBIllegalFunction = 0x01
| static

Modbus protocol illegal function exception.

The function code received in the query is not an allowable action for the server. This may be because the function code is only applicable to newer devices, and was not implemented in the unit selected. It could also indicate that the server is in the wrong state to process a request of this type, for example because it is unconfigured and is being asked to return register values.

## ◆ MBInvalidFunction

const uint8_t ModbusTCP::MBInvalidFunction = 0xE1
| static

ModbusTCP invalid response function exception.

The function code in the response does not match that of the request.

## ◆ MBInvalidTransactionID

const uint8_t ModbusTCP::MBInvalidTransactionID = 0xE0
| static

ModbusTCP invalid response slave ID exception.

The slave ID in the response does not match that of the request.

## ◆ MBInvalidUnitID

const uint8_t ModbusTCP::MBInvalidUnitID = 0xE3
| static

ModbusTCP invalid response CRC exception.

The CRC in the response does not match the one calculated.

## ◆ MBResponseTimedOut

const uint8_t ModbusTCP::MBResponseTimedOut = 0xE2
| static

ModbusTCP response timed out exception.

The entire response was not received within the timeout period, ModbusTCP::MBResponseTimeout.

## ◆ MBServerConnectionTimeOut

const uint8_t ModbusTCP::MBServerConnectionTimeOut = 0x05
| static

Modbus TCP server connection failure exception.

An unrecoverable error occurred while the client is attempting to connect to the server but fails, Usually a case with ENC82J60.

## ◆ MBSuccess

const uint8_t ModbusTCP::MBSuccess = 0x00
| static

ModbusTCP success.

Modbus transaction was successful; the following checks were valid:

- slave ID
- function code
- response code
- data