Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
modbus_write_and_read_registers()	     modbus_write_and_read_registers()

Name
       modbus_write_and_read_registers	-  write  and read many	registers in a
       single transaction

Synopsis
       int modbus_write_and_read_registers(
	   modbus_t *ctx,
	   int write_addr, int write_nb, const uint16_t	*src,
	   int read_addr, int read_nb, const uint16_t *dest
       );

Description
       The modbus_write_and_read_registers() function shall write the  content
       of  the	write_nb holding registers from	the array 'src'	to the address
       write_addr of the remote	device then shall  read	 the  content  of  the
       read_nb	holding	 registers  to the address read_addr of	the remote de-
       vice. The result	of reading is stored in	dest array as word values  (16
       bits).

       You  must  take	care to	allocate enough	memory to store	the results in
       dest (at	least nb * sizeof(uint16_t)).

       The function uses the Modbus function code 0x17 (write/read registers).

Return value
       The function shall return the number of read registers  if  successful.
       Otherwise it shall return -1 and	set errno.

Errors
        EMBMDATA, too many registers requested, Too many registers to write

See also
        modbus_read_registers <modbus_read_registers.md>

        modbus_write_register <modbus_write_register.md>

        modbus_write_registers	<modbus_write_registers.md>

					     modbus_write_and_read_registers()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=modbus_write_and_read_registers&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help