Errors

Several types of error can arise in the Asycube used with Modbus TCP. The Holding Register HR_MODBUS_STATUS (Address 64) bits represent the status of these types of error.

Table 18 Status register

Value

(binary)

Name

Description

0b0001

Asycube Modbus errors status

If the value is 1, please refer to Main Modbus exception codes

0b0010

Internal Modbus communication error status

If the value is 1, please refer to Holding Register: error codes

0b0100

Asycube warnings status

If the value is 1, please refer to Asycube warnings and alarms

0b1000

Asycube alarms status

If the value is 1, please refer to Asycube warnings and alarms

The error status can be reset by writing the corresponding bit to 1 in the Holding Register HR_MODBUS_CONTROL. For example, writing the value 0b0110 (it corresponds to the value ‘6’ in decimal) will reset both the Asycube Modbus errors status and the Asycube warnings status.

Main Modbus exception codes

The Modbus exception codes are defined in the protocol specification (http://www.modbus.org). A subset of these exceptions is implemented in the Asycube (See Table 19). The Modbus protocol is responsible to carry the exceptions directly in the Modbus message and are not set in a Holding Register.

Table 19 Modbus protocol exception codes

Value

(decimal)

Name

Description

1

Illegal Function

Function code received in the query is not recognized or allowed by slave

2

Illegal Data Address

Data address of some or all the required entities are not allowed or do not exist in slave

3

Illegal Data Value

Value is not accepted by slave

Holding Register: error codes

The HR_MODBUS_ERROR_CODE gives the current Asycube Modbus error.

The first byte (mask 0x00FF) gives the error linked to the Asycube Modbus implementation (see Table 20).

Table 20 Asycube Modbus error codes

Value

(hexadecimal)

Name

Description

0x01

Write Access Not Allowed

The data cannot be written because it is forbidden or the index is out of range. An example would be selecting a sequence (HR_SELECT_VIBRATION_SET) with a value out range such as 27.

The second byte (mask 0xFF00) gives the internal Modbus communication error code (See the value Error Bit in Table 17 ). The internal Modbus communication error typically occurs when a vibration is triggered with incorrect parameters values.

An example would be triggering a platform centering (HR_PLATFORM_CENTERING_TRIG) while the value of the X position (HR_PLATFORM_CENTERING_X ) is out of range, such as 120%.

Asycube warnings and alarms

The Asycube has its own warnings and alarms. They can be read respectively in the Holding Registers HR_WARNINGS and HR_ALARMS.