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

FreeBSD Manual Pages

  
 
  

home | help
MODBUS_NEW_RTU(3)	       libmodbus Manual		     MODBUS_NEW_RTU(3)

NAME
       modbus_new_rtu -	create a libmodbus context for RTU

SYNOPSIS
       modbus_t	*modbus_new_rtu(const char *device, int	baud, char parity, int
       data_bit, int stop_bit);

DESCRIPTION
       The modbus_new_rtu() function shall allocate and	initialize a modbus_t
       structure to communicate	in RTU mode on a serial	line.

       The device argument specifies the name of the serial port handled by
       the OS, eg. "/dev/ttyS0"	or "/dev/ttyUSB0". On Windows, it's necessary
       to prepend COM name with	"\\.\" for COM number greater than 9, eg.
       "\\\\.\\COM10". See
       http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx for
       details

       The baud	argument specifies the baud rate of the	communication, eg.
       9600, 19200, 57600, 115200, etc.

       The parity argument can have one	of the following values

	   o   N for none

	   o   E for even

	   o   O for odd

       The data_bits argument specifies	the number of bits of data, the
       allowed values are 5, 6,	7 and 8.

       The stop_bits argument specifies	the bits of stop, the allowed values
       are 1 and 2.

       Once the	modbus_t structure is initialized, you must set	the slave of
       your device with	modbus_set_slave(3) and	connect	to the serial bus with
       modbus_connect(3).

RETURN VALUE
       The function shall return a pointer to a	modbus_t structure if
       successful. Otherwise it	shall return NULL and set errno	to one of the
       values defined below.

ERRORS
       EINVAL
	   An invalid argument was given.

       ENOMEM
	   Out of memory. Possibly, the	application hits its memory limit
	   and/or whole	system is running out of memory.

EXAMPLE
	   modbus_t *ctx;

	   ctx = modbus_new_rtu("/dev/ttyUSB0",	115200,	'N', 8,	1);
	   if (ctx == NULL) {
	       fprintf(stderr, "Unable to create the libmodbus context\n");
	       return -1;
	   }

	   modbus_set_slave(ctx, YOUR_DEVICE_ID);

	   if (modbus_connect(ctx) == -1) {
	       fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno));
	       modbus_free(ctx);
	       return -1;
	   }

SEE ALSO
       modbus_new_tcp(3) modbus_free(3)

AUTHORS
       The libmodbus documentation was written by StA(C)phane Raimbault
       <stephane.raimbault@gmail.com>

libmodbus v3.1.6		  03/01/2021		     MODBUS_NEW_RTU(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLE | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=modbus_new_rtu&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help