ProSoft Technology MVI56E-MCM/MCMXT User Manual

Page 171

Advertising
background image

MVI56E-MCM ♦ ControlLogix Platform

Reference

Modbus Communication Module

User Manual

ProSoft Technology, Inc.

Page 171 of 199

June 18, 2014

Function Code Field: In a normal response, the server echoes the function
code of the original request in the function code field of the response. All function
codes have a most-significant bit (MSB) of 0 (their values are all below 80
hexadecimal). In an exception response, the server sets the MSB of the function
code to 1. This makes the function code value in an exception response exactly
80 hexadecimal higher than the value would be for a normal response.

With the function code's MSB set, the Master's application program can
recognize the exception response and can examine the data field for the
exception code.

Data Field: In a normal response, the server may return data or statistics in the
data field (any information that was requested in the request). In an exception
response, the server returns an exception code in the data field. This defines the
server condition that caused the exception.

The following table shows an example of a Master request and server exception
response.

Request

Response

Field Name

(Hex)

Field Name

(Hex)

Function

01

Function

81

Starting Address Hi

04

Exception Code

02

Starting Address Lo

A1

Quantity of Outputs Hi

00

Quantity of Outputs Lo 01

In this example, the Master addresses a request to server device. The function
code (01) is for a Read Output Status operation. It requests the status of the
output at address 1245 (04A1 hex). Note that only that one output is to be read,
as specified by the number of outputs field (0001).

If the output address is non-existent in the server device, the server will return
the exception response with the exception code shown (02). This specifies an
illegal data address for the Slave.

Modbus Exception Codes

Code

Name

Meaning

01

Illegal Function

The function code received in the query is not an allowable
action for the Slave. 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 Slave 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.

Advertising