MBM_FC16_HoldingRegWrNFP() - Modbus-M

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.