Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

modbus_send_raw_request(3) [debian man page]

MODBUS_SEND_RAW_REQU(3) 					 Libmodbus Manual					   MODBUS_SEND_RAW_REQU(3)

NAME
modbus_send_raw_request - send a raw request SYNOPSIS
int modbus_send_raw_request(modbus_t *ctx, uint8_t *raw_req, int 'raw_req_length); DESCRIPTION
The modbus_send_raw_request() function shall send a request via the socket of the context ctx. This function must be used for debugging purposes because you have to take care to make a valid request by hand. The function only adds to the message, the header or CRC of the selected backend, so raw_req must start and contain at least a slave/unit identifier and a function code. This function can be used to send request not handled by the library. RETURN VALUE
The modbus_send_raw_request() function shall return the full message length, counting the extra data relating to the backend, if successful. Otherwise it shall return -1 and set errno. EXAMPLE
modbus_t *ctx; /* Read 5 holding registers from address 1 */ uint8_t raw_req[] = { 0xFF, 0x03, 0x00, 0x01, 0x0, 0x05 }; int req_length; uint8_t rsp[MODBUS_TCP_MAX_ADU_LENGTH]; ctx = modbus_new_tcp("127.0.0.1", 1502); if (modbus_connect(ctx) == -1) { fprintf(stderr, "Connection failed: %s ", modbus_strerror(errno)); modbus_free(ctx); return -1; } req_length = modbus_send_raw_request(ctx, raw_req, 6 * sizeof(uint8_t)); modbus_receive_confirmation(ctx, rsp); modbus_close(ctx); modbus_free(ctx); SEE ALSO
modbus_receive_confirmation(3) AUTHORS
The libmodbus documentation was written by Stephane Raimbault <stephane.raimbault@gmail.com[1]> NOTES
1. stephane.raimbault@gmail.com mailto:stephane.raimbault@gmail.com libmodbus 3.0.3 05/26/2012 MODBUS_SEND_RAW_REQU(3)

Check Out this Related Man Page

MODBUS_READ_REGISTER(3) 					 Libmodbus Manual					   MODBUS_READ_REGISTER(3)

NAME
modbus_read_registers - read many registers SYNOPSIS
int modbus_read_registers(modbus_t *ctx, int addr, int nb, uint16_t *dest); DESCRIPTION
The modbus_read_registers() function shall read the content of the nb holding registers to the address addr of the remote device. 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 0x03 (read holding registers). RETURN VALUE
The modbus_read_registers() function shall return the number of read registers if successful. Otherwise it shall return -1 and set errno. ERRORS
EMBMDATA Too many registers requested EXAMPLE
modbus_t *ctx; uint16_t tab_reg[64]; int rc; int i; ctx = modbus_new_tcp("127.0.0.1", 1502); if (modbus_connect(ctx) == -1) { fprintf(stderr, "Connection failed: %s ", modbus_strerror(errno)); modbus_free(ctx); return -1; } rc = modbus_read_registers(ctx, 0, 10, tab_reg); if (rc == -1) { fprintf(stderr, "%s ", modbus_strerror(errno)); return -1; } for (i=0; i < rc; i++) { printf("reg[%d]=%d (0x%X) ", i, tab_reg[i], tab_reg[i]); } modbus_close(ctx); modbus_free(ctx); SEE ALSO
modbus_write_register(3) modbus_write_registers(3) AUTHORS
The libmodbus documentation was written by Stephane Raimbault <stephane.raimbault@gmail.com[1]> NOTES
1. stephane.raimbault@gmail.com mailto:stephane.raimbault@gmail.com libmodbus 3.0.3 05/26/2012 MODBUS_READ_REGISTER(3)
Man Page