OZONE ANALYZER BMT 965 Manual, Rev. 01/2024
___________________________________________________________________________
70
The instrument will then check query data, and, if invalid data is detected, will respond with a
MODBUS Exception.
Caution: Care has to be taken that the MODBUS client does not reconfigure the BMT 965 in an
endless loop. The internal non-volatile memory will only tolerate a limited (1,000,000) number of
write cycles. Reading commands can be used infinitely.
Function Code: The function code specifies the purpose of the data message and defines the
command to be executed by the BMT 965. The following function codes are supported:
Function Code Definition
01 (0x01) Read Single Coil
03 (0x03) Read Holding Registers
04 (0x04) * Read Input Registers
05 (0x05) Write Single Coil
06 (0x06) * Write Single Register
08 (0x08) Diagnostics
15 (0x0F) Write Multiple Coils
16 (0x10) Write Multiple Registers
* This function codes require firmware version 1.05 or higher.
Attention: Please note the differences between the firmware versions. Some functions are only
available at Firmware V1.05 and higher.
Exception Code: If the BMT 965 detects an error in the requested message from the client, it
returns an exception message. The following exception codes are used:
Exception Code Definition Description
01 Illegal Function The function code received is not supported.
02 Illegal Data Address The register address received is not a legal address.
03 Illegal Data Value
The value in the data field is not permissible such as that the
implied length is incorrect or attempting to write to a read
only register.
04 Server Device Failure
An error occurred when processing the request, e.g. illegal
parameter.
Note: The MODBUS standard defines: “An unrecoverable er-
ror occurred while the server was attempting to perform the
requested action.” In this implementation this exception code
is also used to convey the client the use of an out-of-range
parameter. There is no “unrecoverable error”, it merely
means that the request was rejected and nothing was
changed.
Register Data Types:
Data Type Description Range
UINT16 16-bit unsigned integer stored in 1 register, big endian coded 0 … 65535