31,703
edits
No edit summary |
No edit summary |
||
Line 19: | Line 19: | ||
[[File:Networking_rut_manual_modbus_modbus_tcp.png|border|class=tlt-border]] | [[File:Networking_rut_manual_modbus_modbus_tcp.png|border|class=tlt-border]] | ||
<table class="nd-mantable"> | |||
<tr> | |||
<th>Field</th> | |||
<th>Value</th> | |||
<th>Description</th> | |||
</tr> | |||
<tr> | |||
<td>Enable</td> | |||
<td>yes | no; default: <b>none</b></td> | |||
<td>Turns Modbus TCP on or off.</td> | |||
</tr> | |||
<tr> | |||
<td>Port</td> | |||
<td>integer [0..65535]; default: '''502'''</td> | |||
<td>TCP port used for Modbus communications.</td> | |||
</tr> | |||
<tr> | |||
<td>Device ID</td> | |||
<td>integer [0..255]; default: <b>1</b></td> | |||
<td>The device's Modbus slave ID. When set to 0, it will respond to requests addressed to any ID.</td> | |||
</tr> | |||
<tr> | |||
<td>Allow Remote Access</td> | |||
<td>yes | no; default: <b>no</b></td> | |||
<td>Allows remote Modbus connections by adding an exception to the device's firewall on the port specified in the field above.</td> | |||
</tr> | |||
<tr> | |||
<td>Keep persistent connection</td> | |||
<td>yes | no; default: <b>no</b></td> | |||
<td>If enabled, the connection will not be closed after each completed Modbus request.</td> | |||
</tr> | |||
<tr> | |||
<td>Connection timeout</td> | |||
<td>integer [1..60]; default: <b>0</b></td> | |||
<td>Timeout in seconds after which the connection will be closed. Use <b>0</b> to use default value provided by Operating System.</td> | |||
</tr> | |||
<tr> | |||
<td>Enable custom register block</td> | |||
<td>yes | no; default: <b>no</b></td> | |||
<td>Allow custom register block</td> | |||
</tr> | |||
</table> | |||
===Get Parameters=== | ===Get Parameters=== | ||
Line 280: | Line 321: | ||
{{#ifeq: {{{name}}} | RUT955 | | {{#ifeq: {{{name}}} | RUT955 | | ||
| | ==Modbus Serial Master== | ||
| | |||
| | The <b>Modbus Serial Master</b> page is used to configure the router as a Modbus RTU master. Modbus RTU (remote terminal unit) is a serial communication protocol mainly used in communication via RS232 or RS485 serial interfaces. | ||
| | |||
===RS232=== | |||
---- | |||
This section is used to configure the Modbus RTU master's RS232 serial interface settings. Refer to the figure and table below for information on RS232 configuration. | |||
[[File:Networking_rut_manual_modbus_modbus_serial_master_rs232.png|borer|class=tlt-border]] | |||
<table class="nd-mantable"> | |||
<tr> | |||
<th>Field</th> | |||
<th>Value</th> | |||
<th>Description</th> | |||
</tr> | |||
<tr> | |||
<td>Enabled</td> | |||
<td>yes {{!}} no; default: <b>no</b></td> | |||
<td>Turns Modbus RTU via RS232 on or off.</td> | |||
</tr> | |||
<tr> | |||
<td>Baud rate</td> | |||
<td>300 {{!}} 1200 {{!}} 2400 {{!}} 4800 {{!}} 9600 {{!}} 19200 {{!}} 38400 {{!}} 57600 {{!}} 115200; default: <b>115200</b></td> | |||
<td>Serial data transmission rate (in bits per second).</td> | |||
</tr> | |||
<tr> | |||
<td>Data bits</td> | |||
<td>5 {{!}} 6 {{!}} 7 {{!}} 8; default: <b>8</b></td> | |||
<td>Number of data bits for each character.</td> | |||
</tr> | |||
<tr> | |||
<td>Parity</td> | |||
<td>None {{!}} Even {{!}} Odd; default: <b>Even</b></td> | |||
<td>In serial transmission, parity is a method of detecting errors. An extra data bit is sent with each data character, arranged so that the number of 1 bits in each character, including the parity bit, is always odd or always even. If a byte is received with the wrong number of 1s, then it must have been corrupted. However, an even number of errors can pass the parity check. | |||
<ul> | |||
<li><b>None</b> (<b>N</b>) - no parity method is used.</li> | |||
<li><b>Odd</b> (<b>O</b>) - the parity bit is set so that the number of "logical ones (1s)" has to be odd.</li> | |||
<li><b>Even</b> (<b>E</b>) - the parity bit is set so that the number of "logical ones (1s)" has to be even.</li> | |||
</ul> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td>Stop bits</td> | |||
<td>1 {{!}} 2; default: <b>1</b></td> | |||
<td>Stop bits sent at the end of every character allow the receiving signal hardware to detect the end of a character and to resynchronise with the character stream. Electronic devices usually use one stop bit. Two stop bits are required if slow electromechanical devices are used.</td> | |||
</tr> | |||
<tr> | |||
<td>Flow control</td> | |||
<td>None {{!}} RTS/CTS {{!}} Xon/Xoff; default: <b>None</b></td> | |||
<td>In many circumstances a transmitter might be able to send data faster than the receiver is able to process it. To cope with this, serial lines often incorporate a "handshaking" method, usually distinguished between hardware and software handshaking. | |||
<ul> | |||
<li><b>RTS/CTS</b> - hardware handshaking. RTS and CTS are turned OFF and ON from alternate ends to control data flow, for instance when a buffer is almost full.</li> | |||
<li><b>Xon/Xoff</b> - software handshaking. The Xon and Xoff characters are sent by the receiver to the sender to control when the sender will send data, i.e., these characters go in the opposite direction to the data being sent. The circuit starts in the "sending allowed" state. When the receiver's buffers approach capacity, the receiver sends the Xoff character to tell the sender to stop sending data. Later, after the receiver has emptied its buffers, it sends an Xon character to tell the sender to resume transmission.</li> | |||
</ul> | |||
</td> | |||
</tr> | |||
</table> | |||
===RS485=== | |||
---- | |||
This section is used to configure the Modbus RTU master's RS485 serial interface settings. Refer to the figure and table below for information on RS485 configuration. | |||
[[File:Networking_rut_manual_modbus_modbus_serial_master_rs485.png|border|class=tlt-border]] | |||
<table class="nd-mantable"> | |||
<tr> | |||
<th>Field</th> | |||
<th>Value</th> | |||
<th>Description</th> | |||
</tr> | |||
<tr> | |||
<td>Enabled</td> | |||
<td>yes {{!}} no; default: <b>no</b></td> | |||
<td>Turns Modbus RTU via RS485 on or off.</td> | |||
</tr> | |||
<tr> | |||
<td>Baud rate</td> | |||
<td>300 {{!}} 1200 {{!}} 2400 {{!}} 4800 {{!}} 9600 {{!}} 19200 {{!}} 38400 {{!}} 57600 {{!}} 115200; default: <b>115200</b></td> | |||
<td>Serial data transmission rate (in bits per second).</td> | |||
</tr> | |||
<tr> | |||
<td>Data bits</td> | |||
<td>5 {{!}} 6 {{!}} 7 {{!}} 8; default: <b>8</b></td> | |||
<td>Number of data bits for each character.</td> | |||
</tr> | |||
<tr> | |||
<td>Parity</td> | |||
<td>None {{!}} Even {{!}} Odd; default: <b>Even</b></td> | |||
<td>In serial transmission, parity is a method of detecting errors. An extra data bit is sent with each data character, arranged so that the number of 1 bits in each character, including the parity bit, is always odd or always even. If a byte is received with the wrong number of 1s, then it must have been corrupted. However, an even number of errors can pass the parity check. | |||
<ul> | |||
<li><b>None</b> (<b>N</b>) - no parity method is used.</li> | |||
<li><b>Odd</b> (<b>O</b>) - the parity bit is set so that the number of "logical ones (1s)" has to be odd.</li> | |||
<li><b>Even</b> (<b>E</b>) - the parity bit is set so that the number of "logical ones (1s)" has to be even.</li> | |||
</ul> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td>Stop bits</td> | |||
<td>1 {{!}} 2; default: <b>1</b></td> | |||
<td>Stop bits sent at the end of every character allow the receiving signal hardware to detect the end of a character and to resynchronise with the character stream. Electronic devices usually use one stop bit. Two stop bits are required if slow electromechanical devices are used.</td> | |||
</tr> | |||
<tr> | |||
<td>Flow control</td> | |||
<td>None {{!}} RTS/CTS {{!}} Xon/Xoff; default: <b>None</b></td> | |||
<td>In many circumstances a transmitter might be able to send data faster than the receiver is able to process it. To cope with this, serial lines often incorporate a "handshaking" method, usually distinguished between hardware and software handshaking. | |||
<ul> | |||
<li><b>RTS/CTS</b> - hardware handshaking. RTS and CTS are turned OFF and ON from alternate ends to control data flow, for instance when a buffer is almost full.</li> | |||
<li><b>Xon/Xoff</b> - software handshaking. The Xon and Xoff characters are sent by the receiver to the sender to control when the sender will send data, i.e., these characters go in the opposite direction to the data being sent. The circuit starts in the "sending allowed" state. When the receiver's buffers approach capacity, the receiver sends the Xoff character to tell the sender to stop sending data. Later, after the receiver has emptied its buffers, it sends an Xon character to tell the sender to resume transmission.</li> | |||
</ul> | |||
</td> | |||
</tr> | |||
</table> | |||
===Slaves=== | |||
---- | |||
The <b>Slaves</b> section is used to configure new Modbus slave devices. A Modbus slave is an entity that can be called upon by a Modbus master in order to obtain some type of information from it. | |||
To create a new Modbus slave, enter a custom name for it and click the 'Add' button. Then click the 'Edit' button next to the slave in order to enter its configuration window. | |||
====Slave settings==== | |||
---- | |||
The <b>Settings</b> section is used to configure the main parameters of the Modbus slave. Refer to the figure and table below for additional information. | |||
[[File:Networking_rut_manual_modbus_modbus_serial_master_slave_device_configuration.png|border|class=tlt-border]] | |||
<table class="nd-mantable"> | |||
<tr> | |||
<th>Field</th> | |||
<th>Value</th> | |||
<th>Description</th> | |||
</tr> | |||
<tr> | |||
<td>Enabled</td> | |||
<td>yes {{!}} no; default: <b>no</b></td> | |||
<td>Turns the slave on or off.</td> | |||
</tr> | |||
<tr> | |||
<td>Slave ID</td> | |||
<td>integer [1..255]; default: <b>1</b></td> | |||
<td>Slave ID. Each slave in a network is assigned a unique identifier ranging from 1 to 255. When the master requests data from a slave, the first byte it sends is the Slave ID.</td> | |||
</tr> | |||
<tr> | |||
<td>Period</td> | |||
<td>integer [1..9999]; default: <b>10</b></td> | |||
<td>Interval (in minutes) at which requests are sent to the slave device.</td> | |||
</tr> | |||
</table> | |||
====Slave requests==== | |||
---- | |||
A Modbus <b>request</b> is a way of obtaining data from Modbus slaves. The master sends a request to a slave specifying the function code to be performed. The slave then sends the requested data back to the Modbus master. | |||
The figure below is an example of the Requests configuration section and the table below provides information contained in the fields of that section: | |||
[[File:Networking_rut_manual_modbus_modbus_serial_master_request_configuration.png|border|class=tlt-border]] | |||
<table class="nd-mantable"> | |||
<tr> | |||
<th>Field</th> | |||
<th>Value</th> | |||
<th>Description</th> | |||
</tr> | |||
<tr> | |||
<td>Enabled</td> | |||
<td>yes {{!}} no; default: <b>no</b></td> | |||
<td>Turns the request on or off.</td> | |||
</tr> | |||
<tr> | |||
<td>Function</td> | |||
<td>Read Coil {{!}} Read Discrete Input {{!}} Read Holding Registers {{!}} Read Input Registers; default: <b>Read Holding Registers</b></td> | |||
<td>Modbus function used in Modbus request.</td> | |||
</tr> | |||
<tr> | |||
<td>First Register</td> | |||
<td>integer [1..65536]; default: <b>1</b></td> | |||
<td>First Modbus register from which data will be read.</td> | |||
</tr> | |||
<tr> | |||
<td>Number of Registers</td> | |||
<td>integer [1..2000]; default: <b>none</b></td> | |||
<td>Number of Modbus registers that will be read during the request/</td> | |||
</tr> | |||
</table> | |||
====Slave alarms==== | |||
---- | |||
<b>Alarms</b> are a way of setting up automated actions when some Modbus values meet user specified conditions. The figure below is an example of the Alarm configuration page and the table below provides information on fields that it contains: | |||
[[File:Networking_rut_manual_modbus_modbus_serial_master_alarm_configuration.png|border|class=tlt-border]] | |||
<table class="nd-mantable"> | |||
<tr> | |||
<th>Field</th> | |||
<th>Value</th> | |||
<th>Description</th> | |||
</tr> | |||
<tr> | |||
<td>Enabled</td> | |||
<td>yes {{!}} no; default: <b>no</b></td> | |||
<td>Turns the alarm on or off.</td> | |||
</tr> | |||
<tr> | |||
<td>Function</td> | |||
<td>Read Coil {{!}} Read Discrete Input {{!}} Read Holding Registers {{!}} Read Input Registers; default: <b>Read Holding Registers</b></td> | |||
<td>Modbus function used in Modbus request.</td> | |||
</tr> | |||
<tr> | |||
<td>Register</td> | |||
<td>integer [1..65536]; default: <b>1</b></td> | |||
<td>Number of the Modbus coil/input/holding register/input register that will be read.</td> | |||
</tr> | |||
<tr> | |||
<td>Condition</td> | |||
<td>More than {{!}} Less than {{!}} Equal to {{!}} Not equal to; default: <b>More than</b></td> | |||
<td>When a value is obtained it will be compared against the value specified in the following field. The comparison will be made in accordance with the condition specified in this field.</td> | |||
</tr> | |||
<tr> | |||
<td>Value</td> | |||
<td>integer [0..65535]; default: <b>0</b></td> | |||
<td>The value against which the read data will be compared.</td> | |||
</tr> | |||
<tr> | |||
<td>Action</td> | |||
<td>SMS {{!}} Trigger output {{!}} Modbus request; default: <b>SMS</b></td> | |||
<td>Action that will be taken if the condition is met. Possible actions: | |||
<ul> | |||
<li><b>SMS</b> - sends and SMS message to a specified recipient(s).</li> | |||
<li><b>Trigger output</b> - changes the state of a specified output(s).</li> | |||
<li><b>Modbus Request</b> - sends a Modbus request to a specified slave.</li> | |||
</ul> | |||
</td> | |||
</tr> | |||
</table> | |||
|}} | |}} | ||
==Modbus Data to Server== | ==Modbus Data to Server== | ||
Line 518: | Line 786: | ||
==See also== | ==See also== | ||
{{ | <ul> | ||
<li><b>[[{{{name}}} Monitoring via Modbus|Monitoring via Modbus]]</b> - detailed examples on how to use Modbus TCP</li> | |||
</ul> | |||
[[Category:{{{name}}} Services section]] | [[Category:{{{name}}} Services section]] |