This function is called from YOUR application code to write to multiple 32-bit floating?point holding registers on a Modbus slave.
Prototype
CPU_INT16U MBM_FC16_HoldingRegWrNFP (MODBUS_CH *pch, CPU_INT08U slave_node, CPU_INT16U slave_addr, CPU_FP32 *p_reg_tbl, CPU_INT16U nbr_reg);
Arguments
pch
is a pointer to the channel (returned by MB_CfgCh()
). This pointer specifies onto which channel the Modbus master will be communicating on. Of course, ‘pch
’ must have been configured as a Master when you configured the channel.
slave_node
specifies the slave ‘node address’ of the floating-point holding registers you want to change. This can be a number between 1 and 255 but needs to match the number assigned to the slave node.
slave_addr
specifies the start address of the floating-point holding registers that you want to change. This can be from 0 to 65535.
p_reg_tbl
is an array of IEEE-754 floating-point values corresponding to the desired values of the holding registers in the slave.
nbr_reg
specifies the number of registers you want to change. Of course the array pointed to by p_reg_tbl
must contain the corresponding number of values.
Returned Value
MODBUS_ERR_NONE
If the call was successful.
MODBUS_ERR_RX
If a response was not received from the slave within the timeout specified for this channel (see MB_CfgCh()
).
MODBUS_ERR_SLAVE_ADDR
If the transmitted slave address doesn't correspond to the received slave address
MODBUS_ERR_FC
If the transmitted function code doesn't correspond to the received function code
MODBUS_ERR_BYTE_COUNT
If the expected number of bytes to receive doesn't correspond to the number of bytes received.
Notes / Warnings
None
Called By
Your Modbus master application.