Changes

no edit summary
Line 1: Line 1: −
=Summary=
+
==Summary==
   −
Modbus TCP Master section is used for configuring your router as a master device and other routers configured in this section as slave devices. A Modbus TCP master device can then request data from these Modbus TCP slaves. Firstly, let's configure our second router which will be acting as a slave device.
+
Modbus TCP Master section is used for configuring your router as a master device and other routers configured in this section as slave devices. A Modbus TCP master device can then request data from these Modbus TCP slaves. Here is the scheme to make things easier to understand:
 +
 
 +
[[File:ModbusTcpMasterScheme.png|center]]
 +
 
 +
 
 +
Firstly, let's configure our second router which will be acting as a slave device.
    
==Configuring Modbus TCP slave device==
 
==Configuring Modbus TCP slave device==
Line 13: Line 18:  
[[File:ModbusTCPMasterSlaveEnableTCP.png]]
 
[[File:ModbusTCPMasterSlaveEnableTCP.png]]
   −
==Adding new slave device==
+
==Configuring Modbus TCP master device==
 +
 
 +
===Adding new slave device===
    
On '''master device''' (in this example master device has 192.168.1.1 internal IP address) open '''Services->Modbus->Modbus TCP Master'''.
 
On '''master device''' (in this example master device has 192.168.1.1 internal IP address) open '''Services->Modbus->Modbus TCP Master'''.
Line 75: Line 82:  
Now the slave device is added to the Modbus TCP Master section but we need to test if it is working.
 
Now the slave device is added to the Modbus TCP Master section but we need to test if it is working.
   −
==Testing==
+
===Testing===
    
[[File:AddedSlaveDevice.png]]
 
[[File:AddedSlaveDevice.png]]
Line 152: Line 159:  
     </tr>
 
     </tr>
 
</table>
 
</table>
 +
    
'''Note''': During the time this article is written, we need to 'Save' the configuration first before clicking the 'Test' button. This will redirect you to the Modbus TCP Master page and you will need to click 'Edit' button again to try and test the functionality of this request.
 
'''Note''': During the time this article is written, we need to 'Save' the configuration first before clicking the 'Test' button. This will redirect you to the Modbus TCP Master page and you will need to click 'Edit' button again to try and test the functionality of this request.
Line 161: Line 169:     
We can see that the slave device returns the registers master device has asked for. More information about how to understand the information we are getting from registers: '''[[Monitoring via Modbus]]'''
 
We can see that the slave device returns the registers master device has asked for. More information about how to understand the information we are getting from registers: '''[[Monitoring via Modbus]]'''
 +
 +
===Alarms===
 +
 +
Alarms are a way of setting up automated actions when some Modbus values meet user specified conditions. To configure these alarms we click on ''''Alarms'''' button:
 +
 +
[[File:AddedSlaveDevice.png]]
 +
 +
Select appropriate function and click ''''Add''''.
 +
 +
[[File:AddAlarm.png]]
 +
 +
Say in this simple example we want to trigger output (specifically relay output) when our system uptime value will be higher than 0 (this is always true since the second register where the information is hold stores router's system uptime in seconds). After saving configuration every minute (because period for sending requests to the slave device is set to 60 seconds) the relay output would invert and if you are close to the device you should hear it. The following alarm configuration will be looking like this:
 +
 +
[[File:RelayOutputAlarm.png]]
 +
 +
The table below provides information on fields that this page contains:
 +
 +
<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 code</td>
 +
        <td>Read Coil Status (1) | Read Input Status (2) | Read Holding Registers (3) | Read Input Registers (4); default: <b>Read Coil Status (1)</b></td>
 +
        <td>Modbus function used in Modbus request.</td>
 +
    </tr>
 +
    <tr>
 +
        <td>Register</td>
 +
        <td>integer [0..65535]; default: <b>none</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>Equal to</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>various; default: <b>none</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>
 +
    <tr>
 +
        <td><span style="color: #0054a6;">SMS: Message</span></td>
 +
        <td>string; default: <b>none</b></td>
 +
        <td>SMS message text.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: #0054a6;">SMS: Phone number</span></td>
 +
        <td>phone number; default: <b>none</b></td>
 +
        <td>Recipient's phone number.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: red;">Trigger output: Output</span></td>
 +
        <td>Open collector output | Relay output | Both; default: <b>Open collector output</b></td>
 +
        <td>Which output(s) will be triggered.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: red;">Trigger output: I/O Action</span></td>
 +
        <td>Turn On | Turn Off | Invert; default: <b>Turn On</b></td>
 +
        <td>Action that will taken on the specified output.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: purple;">Modbus Request: IP address</span></td>
 +
        <td>ip | host; default: <b>none</b></td>
 +
        <td>Modbus slave's IP address.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: purple;">Modbus Request: Port</span></td>
 +
        <td>integer [0..65535]; default: <b>none</b></td>
 +
        <td>Modbus slave's port.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: purple;">Modbus Request: Timeout</span></td>
 +
        <td>integer [1..30]; default: <b>5</b></td>
 +
        <td>Maximum time to wait for a response.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: purple;">Modbus Request: ID</span></td>
 +
        <td>integer [1..255]; default: <b>none</b></td>
 +
        <td>Modbus slave ID.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: purple;">Modbus Request: Modbus function</span></td>
 +
        <td>Read Coil Status (1) | Read Input Status (2) | Read Holding Registers (3) | Read Input Registers (4) | Force Single Coil (5) | Preset Single Register (6) | Force Multiple Coils (15) | Force Multiple Registers (16); default: <b>Force Single Coil (5)</b></td>
 +
        <td>A function code specifies the type of register being addressed by a Modbus request.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: purple;">Modbus Request: First register</span></td>
 +
        <td>integer [0..65535]; default: <b>none</b></td>
 +
        <td>Begins reading from the register specified in this field.</td>
 +
    </tr>
 +
    <tr>
 +
        <td><span style="color: purple;">Modbus Request: Number of registers</span></td>
 +
        <td>integer [0..65535]; default: <b>none</b></td>
 +
        <td>The number of registers that will be read from the first register.</td>
 +
    </tr>
 +
</table>
 +
 +
===Clone Slave Configuration===
 +
 +
[[File:AddedSlaveDevice.png]]
 +
 +
By clicking ''''Clone'''' button you will create the same exact slave configuration with all the alarms. This way you can just edit the cloned configuration and enter the correct IP address, ID and port for that slave device to act exactly as the router configured before.
 +
 +
[[File:ClonedSlaveConfig.png]]
0

edits

Navigation menu