The CRC calculation shall be started by pre-loading a 16-bit register with a
seed value of 0xFFFF.
During the generation of the CRC, each 8-bit character shall be exclusive
ORed with the register contents. The result shall be shifted in the direction of
the Least Signicant Bit (LSB), with a zero lled into the Most Signicant Bit
(MSB) position. If the LSB was 1, the register shall be exclusive ORed with
the polynomial value 0xA001, otherwise no exclusive OR shall take place.
This process shall be repeated until eight shifts have been performed. After
the last (eighth) shift, the next 8-bit byte shall be exclusive ORed with the
register’s current value, and the process shall repeat for eight more shifts.
The nal content of the register, after all the bytes of the message (excluding
the 2 CRC bytes) have been applied, is the CRC value.
When the CRC is appended to the message, the low-order byte shall be
appended rst, followed by the high-order byte.
6.11.3 Application protocol layer
The pumps must support a subset of the MODBUS function codes as listed.
Code Description
03 (0x03) Read holding registers (Module conguration data)
16 (0x10) Write holding registers (Module conguration data)
Supported MODBUS Functions
The pump must support a subset of the MODBUS exception codes as
listed.
Exception code Name
01 Invalid function code
02 Invalid data address
03 Invalid data value
04 Slave device failure
300902516_002 - 10/2020 - © Leybold
34
Operation