modbus_write_and_read_registers.txt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. modbus_write_and_read_registers(3)
  2. ==================================
  3. NAME
  4. ----
  5. modbus_write_and_read_registers - write and read many registers in a single transaction
  6. SYNOPSIS
  7. --------
  8. *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');*
  9. DESCRIPTION
  10. -----------
  11. The *modbus_write_and_read_registers()* function shall write the content of the
  12. _write_nb_ holding registers from the array 'src' to the address _write_addr_ of
  13. the remote device then shall read the content of the _read_nb_ holding registers
  14. to the address _read_addr_ of the remote device. The result of reading is stored
  15. in _dest_ array as word values (16 bits).
  16. You must take care to allocate enough memory to store the results in _dest_
  17. (at least _nb_ * sizeof(uint16_t)).
  18. The function uses the Modbus function code 0x17 (write/read registers).
  19. RETURN VALUE
  20. ------------
  21. The function shall return the number of read registers if successful. Otherwise
  22. it shall return -1 and set errno.
  23. ERRORS
  24. ------
  25. *EMBMDATA*::
  26. Too many registers requested, Too many registers to write
  27. SEE ALSO
  28. --------
  29. linkmb:modbus_read_registers[3]
  30. linkmb:modbus_write_register[3]
  31. linkmb:modbus_write_registers[3]
  32. AUTHORS
  33. -------
  34. The libmodbus documentation was written by Stéphane Raimbault
  35. <stephane.raimbault@gmail.com>