How To Articles > How to Transfer Data from MQTT to Modbus

How to Transfer Data from MQTT to Modbus

How to Transfer Data from MQTT to Modbus


Open Automation Software can be used to transfer data from MQTT devices to Modbus TCP, Modbus RTU, and Modbus ASCII devices, locally or over a network.  This tutorial walks you through downloading and installing OAS, configuring an MQTT and a Modbus driver, configuring MQTT and Modbus tags and implementing Data Route.

Step 1. Download and Install the Open Automation Software and Start the OAS Service

If you have not already done so, you will need to download and install the OAS platform.  Fully functional trial versions of the software are available for Windows, Windows IoT Core, Linux, Raspberry Pi and Docker on our downloads page.

On Windows run the downloaded Setup.exe file to install one or more of the Open Automation Software features. Select the default Typical installation if you are not sure what features to use or the Custom installation if you want to save disk space on the target system.  When prompted agree to the End User License Agreement to continue the installation.

For more detailed instructions and video tutorials, visit the installation guide for your system:
Windows Installation | Linux Installation | Raspberry Pi Installation | Dockers Installation

When the installation is finished the OAS Service Control application will appear.  Use this application to start the 4 Services. If this is the first time installing the software it will automatically enter Runtime with an example Tag Configuration.


Step 2. Configure Your MQTT Data Source

  1. First, you will need to open the Configure OAS application from the program group Open Automation Software.

  2. Select Configure >> License from the top menu and verify that MQTT is one of the available Drivers in the lower left of the form. The demo license will have this by default. If you do not see MQTT available, contact support@openautomationsoftware.com to update your license.

  3. Select Configure >> Drivers from the top menu.


  4. Select localhost or the remote service you wish to modify with the Select button to the right of the Network Node list.


  5. The Configure Drivers Screen will appear. Select MQTT from the Driver dropdown box.


  6. Enter a meaningful Driver Interface Name that you will refer to this physical connection when defining Tags with a MQTT Data Source.

  7. Enter the IP Address of the broker. The default port is 1883.

  8. Enter the User Name and Password if required.

  9. Set the Keep Alive Time. The default is 60 Seconds.

  10. Set the Reconnect Time. The default 10 Seconds. If the connection to the broker is lost the Reconnect Time determines how long to wait before attempting to reconnect.

For more detailed instructions on configuring your MQTT data source, click here to see our Getting Started MQTT tutorial or watch the video tutorial below:


Step 3. Configure Your Modbus Data Source

  1. First, you will need to open the Configure OAS application from the program group Open Automation Software.

  2. Select Configure >> License from the top menu and verify that Modbus is one of the available Drivers in the lower left of the form. The demo license will have this by default. If you do not see Modbus available, contact support@openautomationsoftware.com to update your license.

  3. Select Configure >> Drivers from the top menu.


  4. Select localhost or the remote service you wish to modify with the Select button to the right of the Network Node list.


  5. The Configure Drivers Screen will appear. Select Modbus from the Driver dropdown box.


  6. Enter a meaningful Driver Interface Name that you will refer to this physical connection when defining Tags with a Modbus Data Source.

  7. Specify the Connection as Ethernet or Serial.

  8. Specify the Modbus Type as Master or Slave. Master will be used when communicating to a Modbus device. Slave will be used when other Modbus masters will be communicating to OAS.

  9. When setting up a Slave interface over Ethernet set the IP Address to the computer IPv4 IP address or network node name if the master is on a remote PC. You can also use 127.0.0.1 or localhost if the Modbus master will be on the same computer.

For more detailed instructions on configuring your Modbus data source, click here to see our Getting Started Modbus tutorial or watch the video tutorial below:


Step 4. Configure Your MQTT Tags

OAS provides multiple ways to add and define tags:

To add a Tag manually:

  1. In the OAS Configure Application, select Configure >> Tags from the top menu.


  2. Select localhost or the remote service you wish to modify with the Select button to the right of the Network Node list.


  3. Click on the Add Tag button located at the top of the Tag browser on the left portion of the screen.


  4. A dialog box will appear. Enter a name for your new tag and click ok.

  5. A configuration screen will appear for your new tag. Select your data source type in in the Data Source dropdown box.


  6. Specify the correct data type in the Data Type dropdown box.

  7. Click Apply Changes at the bottom right of the window.

For more detailed instructions on configuring your tags, click here to see our Getting Started Tags tutorial.


Step 5. Repeat Step 4 with Your Modbus Tags

Step 6. Configure the Target Tab of the Source Tags

  1. Select one of your source tags.

  2. Select it’s Target tab.


  3. Enable Write to Target

  4. Select the Target Type (Tag, OPC, Azure IoT, Azure IoT Edge, or MQTT) from the dropdown.

  5. Select the destination for the value to be sent. If Tag is selected then select Browse and select the desired tag from the localhost system or optionally a remote system for transfer over a network.



    Local: TagName.Value

    Remote: \\192.168.0.1\TagName.Value

    If OPC Item is selected select browse and select the OPC Server and Item



    If Azure IoT is selected then select the Driver Interface.



    If MQTT is selected then select the Driver Interface and Topic.




  6. Enter the desired float value Deadband field. Enter 0 for no deadband.

  7. If you want to specify a desired update frequency for the target check Write Continuously and enter the desired frequency. If Write Contentiously is unchecked the the target will be updated every time the source tag changes.

  8. Click the Apply Changes button to save your changes.

  9. Repeat this step for each tag that you want to transfer data from. This can also be done in bulk with CSV Import/Export or programatically.

For more detailed instructions on Configuring Data Route functionality, visit our Getting Started – Data Route tutorial or watch the videos below:

Multiple Tag Transfer

Tag to Tag Transfer

IoT Publish