FieldTalk Modbus® Master Protocol Library
C++ Editions
FOCUS Software Engineering

Main Page | Modules | Class Hierarchy | Compound List | Compound Members | Related Pages

Protocol Errors and Exceptions


I/O error class

#define FTALK_IO_ERROR_CLASS   0x40
 I/O error class.

#define FTALK_IO_ERROR   (FTALK_IO_ERROR_CLASS | 1)
 I/O error.

#define FTALK_OPEN_ERR   (FTALK_IO_ERROR_CLASS | 2)
 Port or socket open error.

#define FTALK_PORT_ALREADY_OPEN   (FTALK_IO_ERROR_CLASS | 3)
 Serial port already open.

#define FTALK_TCPIP_CONNECT_ERR   (FTALK_IO_ERROR_CLASS | 4)
 TCP/IP connection error.

#define FTALK_CONNECTION_WAS_CLOSED   (FTALK_IO_ERROR_CLASS | 5)
 Remote peer closed TCP/IP connection.

#define FTALK_SOCKET_LIB_ERROR   (FTALK_IO_ERROR_CLASS | 6)
 Socket library error.

#define FTALK_PORT_ALREADY_BOUND   (FTALK_IO_ERROR_CLASS | 7)
 TCP port already bound.

#define FTALK_LISTEN_FAILED   (FTALK_IO_ERROR_CLASS | 8)
 Listen failed.

#define FTALK_FILEDES_EXCEEDED   (FTALK_IO_ERROR_CLASS | 9)
 File descriptors exceeded.

#define FTALK_PORT_NO_ACCESS   (FTALK_IO_ERROR_CLASS | 10)
 No permission to access serial port or TCP port.

#define FTALK_PORT_NOT_AVAIL   (FTALK_IO_ERROR_CLASS | 11)
 TCP port not available.


Fieldbus protocol error class

#define FTALK_BUS_PROTOCOL_ERROR_CLASS   0x80
 Fieldbus protocol error class.

#define FTALK_CHECKSUM_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 1)
 Checksum error.

#define FTALK_INVALID_FRAME_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 2)
 Invalid frame error.

#define FTALK_INVALID_REPLY_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 3)
 Invalid reply error.

#define FTALK_REPLY_TIMEOUT_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 4)
 Reply time-out.

#define FTALK_SEND_TIMEOUT_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 5)
 Send time-out.

#define FTALK_MBUS_EXCEPTION_RESPONSE   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 0x20)
 Modbus® exception response.

#define FTALK_MBUS_ILLEGAL_FUNCTION_RESPONSE   (FTALK_MBUS_EXCEPTION_RESPONSE | 1)
 Illegal Function exception response.

#define FTALK_MBUS_ILLEGAL_ADDRESS_RESPONSE   (FTALK_MBUS_EXCEPTION_RESPONSE | 2)
 Illegal Data Address exception response.

#define FTALK_MBUS_ILLEGAL_VALUE_RESPONSE   (FTALK_MBUS_EXCEPTION_RESPONSE | 3)
 Illegal Data Value exception response.

#define FTALK_MBUS_SLAVE_FAILURE_RESPONSE   (FTALK_MBUS_EXCEPTION_RESPONSE | 4)
 Slave Device Failure exception response.


Defines

#define FTALK_SUCCESS   0
 Operation was successful.

#define FTALK_ILLEGAL_ARGUMENT_ERROR   1
 Illegal argument error.

#define FTALK_ILLEGAL_STATE_ERROR   2
 Illegal state error.

#define FTALK_EVALUATION_EXPIRED   3
 Evaluation expired.


Functions

char * getBusProtocolErrorText (int errCode)
 Returns an error text string for a given error code.


Define Documentation

#define FTALK_SUCCESS   0
 

Operation was successful.

This return codes indicates no error.

#define FTALK_ILLEGAL_ARGUMENT_ERROR   1
 

Illegal argument error.

A parameter passed to the function returning this error code is invalid or out of range.

#define FTALK_ILLEGAL_STATE_ERROR   2
 

Illegal state error.

The function is called in a wrong state. This return code is returned by all functions if the protocol has not been opened succesfully yet.

#define FTALK_EVALUATION_EXPIRED   3
 

Evaluation expired.

This version of the library is a function limited evaluation version and has now expired.

#define FTALK_IO_ERROR_CLASS   0x40
 

I/O error class.

Errors of this class signal a problem in conjunction with the I/O system.

#define FTALK_IO_ERROR   (FTALK_IO_ERROR_CLASS | 1)
 

I/O error.

The underlaying I/O system reported an error.

#define FTALK_OPEN_ERR   (FTALK_IO_ERROR_CLASS | 2)
 

Port or socket open error.

The TCP/IP socket or the serial port could not be opened. In case of a serial port it indicates that the serial port does not exist on the system.

#define FTALK_PORT_ALREADY_OPEN   (FTALK_IO_ERROR_CLASS | 3)
 

Serial port already open.

The serial port defined for the open operation is already opened by another application.

#define FTALK_TCPIP_CONNECT_ERR   (FTALK_IO_ERROR_CLASS | 4)
 

TCP/IP connection error.

Signals that the TCP/IP connection could not be established. Typically this error occurs when a host does not exist on the network or the IP address or host name is wrong. The remote host must also listen on the appropriate port.

#define FTALK_CONNECTION_WAS_CLOSED   (FTALK_IO_ERROR_CLASS | 5)
 

Remote peer closed TCP/IP connection.

Signals that the TCP/IP connection was closed by the remote peer or is broken.

#define FTALK_SOCKET_LIB_ERROR   (FTALK_IO_ERROR_CLASS | 6)
 

Socket library error.

The TCP/IP socket library (e.g. WINSOCK) could not be loaded or the DLL is missing or not installed.

#define FTALK_PORT_ALREADY_BOUND   (FTALK_IO_ERROR_CLASS | 7)
 

TCP port already bound.

Indicates that the specified TCP port cannot be bound. The port might already be taken by another application or hasn't been released yet by the TCP/IP stack for re-use.

#define FTALK_LISTEN_FAILED   (FTALK_IO_ERROR_CLASS | 8)
 

Listen failed.

The listen operation on the specified TCP port failed..

#define FTALK_FILEDES_EXCEEDED   (FTALK_IO_ERROR_CLASS | 9)
 

File descriptors exceeded.

Maximum number of usable file descriptors exceeded.

#define FTALK_PORT_NO_ACCESS   (FTALK_IO_ERROR_CLASS | 10)
 

No permission to access serial port or TCP port.

You don't have permission to access the serial port or TCP port. Run the program as root. If the error is related to a serial port, change the access privilege. If it is related to TCP/IP use TCP port number which is outside the IPPORT_RESERVED range.

#define FTALK_PORT_NOT_AVAIL   (FTALK_IO_ERROR_CLASS | 11)
 

TCP port not available.

The specified TCP port is not available on this machine.

#define FTALK_BUS_PROTOCOL_ERROR_CLASS   0x80
 

Fieldbus protocol error class.

Signals that a fieldbus protocol related error has occured. This class is the general class of errors produced by failed or interrupted data transfer functions. It is also produced when receiving invalid frames or exception responses.

#define FTALK_CHECKSUM_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 1)
 

Checksum error.

Signals that the checksum of a received frame is invalid. A poor data link typically causes this error.

#define FTALK_INVALID_FRAME_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 2)
 

Invalid frame error.

Signals that a received frame does not correspond either by structure or content to the specification or does not match a previously sent query frame. A poor data link typically causes this error.

#define FTALK_INVALID_REPLY_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 3)
 

Invalid reply error.

Signals that a received reply does not correspond to the specification.

#define FTALK_REPLY_TIMEOUT_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 4)
 

Reply time-out.

Signals that a fieldbus data transfer timed out. This can occur if the slave device does not reply in time or does not reply at all. A wrong unit adress will also cause this error. In some occasions this exception is also produced if the characters received don't constitute a complete frame.

#define FTALK_SEND_TIMEOUT_ERROR   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 5)
 

Send time-out.

Signals that a fieldbus data send timed out. This can only occur if the handshake lines are not properly set.

#define FTALK_MBUS_EXCEPTION_RESPONSE   (FTALK_BUS_PROTOCOL_ERROR_CLASS | 0x20)
 

Modbus® exception response.

Signals that a Modbus exception response was received. Exception responses are sent by a slave device instead of a normal response message if it received the query message correctly but cannot handle the query. This error usually occurs if a master queried an invalid or non-existing data address or if the master used a Modbus function, which is not supported by the slave device.

#define FTALK_MBUS_ILLEGAL_FUNCTION_RESPONSE   (FTALK_MBUS_EXCEPTION_RESPONSE | 1)
 

Illegal Function exception response.

Signals that an Illegal Function exception response (code 01) was received. This exception response is sent by a slave device instead of a normal response message if a master sent a Modbus function, which is not supported by the slave device.

#define FTALK_MBUS_ILLEGAL_ADDRESS_RESPONSE   (FTALK_MBUS_EXCEPTION_RESPONSE | 2)
 

Illegal Data Address exception response.

Signals that an Illegal Data Address exception response (code 02) was received. This exception response is sent by a slave device instead of a normal response message if a master queried an invalid or non-existing data address.

#define FTALK_MBUS_ILLEGAL_VALUE_RESPONSE   (FTALK_MBUS_EXCEPTION_RESPONSE | 3)
 

Illegal Data Value exception response.

Signals that a Illegal Value exception response was (code 03) received. This exception response is sent by a slave device instead of a normal response message if a master sent a data value, which is not an allowable value for the slave device.

#define FTALK_MBUS_SLAVE_FAILURE_RESPONSE   (FTALK_MBUS_EXCEPTION_RESPONSE | 4)
 

Slave Device Failure exception response.

Signals that a Slave Device Failure exception response (code 04) was received. This exception response is sent by a slave device instead of a normal response message if an unrecoverable error occured while processing the requested action. This response is also sent if the request would generate a response whose size exceeds the allowable data size.


Function Documentation

char* getBusProtocolErrorText int  errCode  ) 
 

Returns an error text string for a given error code.

Parameters:
errCode FieldTalk error code
Returns:
Error text string