Template:Networking rut955 manual modbus serial
Introduction
Modbus is a serial communications protocol originally published by Modicon (now Schneider Electric) in 1979 for use with its programmable logic controllers (PLCs). Modbus has become a de facto standard communication protocol and is now a commonly available means of connecting industrial electronic devices. The main reasons for the use of Modbus in the industrial environment are:
- developed with industrial applications in mind,
- openly published and royalty-free,
- easy to deploy and maintain,
- moves raw bits or words without placing many restrictions on vendors.
Modbus enables communication among many devices connected to the same network, for example, a system that measures temperature and humidity and communicates the results to a computer. Modbus is often used to connect a supervisory computer with a remote terminal unit (RTU) in supervisory control and data acquisition (SCADA) systems. Many of the data types are named from its use in driving relays: a single-bit physical output is called a coil, and a single-bit physical input is called a discrete input or a contact.
This article provides an example on how to use Modbus serial to monitor a slave device and send data to server.
Prerequisites
- One RUT955 router
- Windows 10 computer
- Hercules and modRSsim applications
- RS232 to USB cable
Configuring Modbus serial slave device
In this example we are going to be using our Windows 10 computer as a slave. To do so you will need to install modRSsim application, which you can download here.
When you are done with that, open the app and apply the following configuration.
[[File:|border|class=tlt-border]]
- Select Protocol (MODBUS RS-232).
- Click Setup the communication Serial or TCP/IP port.
[[File:|border|class=tlt-border]]
- Select the Port which you connected RS232 cable to (to find which port you are using go to Windows search bar and write Device Manager then select Ports and see which one you are using).
- Select Parity (Even).
- Click OK.
Configuring Modbus serial master
Open router’s WebUI, navigate to Services > Modbus > Modbus Serial Master and apply the following configuration.
[[File:|border|class=tlt-border]]
- Press Enable.
- Select Baud rate (9600, it must match slave‘s baud rate).
- Select Parity (Even).
- Press Save.
Now create RS232 slave by writing a name, pressing Add button. It should appear like in the example and then press Edit.
[[File:|border|class=tlt-border]]
Then apply the following configuration.
[[File:|border|class=tlt-border]]
- Check Enable.
- Type in Slave ID (any number from 1 to 255).
- Add Period (Query period).
- Press Save.
Go back to the Slave configuration window and create Slave request by writing a name, pressing Add button. It should appear like in the example and then press Edit.
[[File:|border|class=tlt-border]]
Then apply the following configuration.
[[File:|border|class=tlt-border]]
- Check Enable.
- Select Function (Read Holding Registers).
- Write First register (1).
- Write Register count (10).
- Press Save.
Creating server
In order to test the functionality you will need to setup Server (you can setup server on the same computer you used as a slave simulator).
In the topology below you can find information on how the device and server are connected.
[[File:|border|class=tlt-border]]
There are many ways how you can create a server to which Modbus will send data to. In this example we are going to be using Windows 10 computer and Hercules app, which you can download here, to create a test server. Download, install the app and apply the configuration below:
[[File:|border|class=tlt-border]]
- Select TCP Server tab.
- Enter Port (In this example default 1883 is used).
- Click Listen
And that is it, now you will be able to see the data coming from Modbus in the Received data section.