Getting Started Modbus

Open Automation Software Tags can be defined to connect directly to Modbus slave devices or host data to Modbus masters with the built in Modbus Driver Interface which supports communications over Ethernet and Serial interfaces for Modbus TCP, Modbus RTU, and Modbus ASCII protocols.

You can view the Getting Started with Modbus Video to familiarize yourself with the following steps to setup Modbus communications.

  • 00:00 – Introduction
  • 00:30 – Configure OAS Application
  • 02:26 – How to Configure Tags
  • 03:00 – Data Type
  • 04:33 – Address for memory location
  • 04:49 – Modbus Data Type
  • 05:26 – Simulator Communication
  • 06:30 – Data Route Functionality
  • 07:43 – Tag Management
  • 07:46 – CSV Export
  • 08:35 – Set Up Tags Programmatically
  • 08:56 – Data Destinations
  • 09:22 – Save Tag Configuration
  • 09:54 – Further Questions

The following steps can be used to setup direct communications with Modbus devices.

Step 1

OAS

Start Configure OAS application from the program group Open Automation Software.

Select Configure-License and verify that Modbus is one of the available Drivers in the lower left of the form.  If you do not see Modbus available contact support@oasiot.com to update your license.

Drivers

Note: You will need to be running Open Automation Software Version 8 or greater to support direct Modbus communications.  You can download the latest version at www.openautomationsoftware.com/downloads/open-automation-software/

Step 2

Select Configure-Drivers.

Configure Drivers

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

Modbus Driver Interface Name

Set the Driver type to Modbus.

Modbus Driver

Set the Type as Master to communicate with a Modbus device.  Set to Slave if OAS is to interface with one or more Modbus masters.

Modbus Type

Set the Connection type as Ethernet or Serial.

Modbus Connection Type

Set the Ethernet Type or Serial Type to the Modbus protocol to use.  For Ethernet connections TCP is the most common, OAS supports all protocols on both connection types.

Modbus Protocol

Ethernet Connection:

Specify the IP Address and Port Number.

Modbus Ethernet

NOTE: 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 as OAS.

Serial Connection:

Specify the Serial Port Number for Windows or Linux Port Name for Linux.

Modbus Serial

Specify Timeout and Number of Retries when a communication failure occurs.

Modbus Timeout

For Master connections Enable Single Write controls how individual writes are performed.

When enabled Function Code 05 to be used when there is only one Output Coil to write, Function Code 06 to be used when there is only one Holding Register to write.
When disabled Function Code 15 will always be used for Output Coils and Function Code 16 for Holding Registers.

Enable Single Write

For Master connections Enable Multiple Write allows multiple holding registers with contiguous addresses to be sent in one packet.

Enable Multiple Write

Set Bad Msgs to Offline to the number of successive communication failures to stop communications to the device and retry at the rate specified in Return to Online.

Messages to Offline

NOTE: Set Bad Msgs to Offline to 0 to leave the device online at all times.

For redundancy support optionally define a secondary failover device if the primary device fails with the property Enable Failover.


If both the primary and secondary device are offline the Return to Online settings determines the retry frequency.

View Driver Interface Failover for more information and and video demonstrating communications failover.

The Comm Bad and Comm Good properties can be used to assign an Integer Tag to be updated with the communication summary of the driver interface.

Comm Bad CountWill set a tag with the driver interface Comm Bad Count.
The number of times the communications of the driver interface has transitioned from good to bad. Can be reset to 0 when tag defined to Comm Count Reset transition from false to true.
Comm Bad Read CountWill set a tag with the driver interface Comm Bad Read Count.
The number of communication reads from the device has failed for the driver interface. Can be reset to 0 when tag defined to Comm Count Reset transition from false to true.
Comm Bad TimeWill set a tag with the driver interface Comm Bad Time.
The time in seconds the communications to the device has been bad. Can be reset to 0 when tag defined to Comm Count Reset transition from false to true.
Comm Bad Write CountWill set a tag with the driver interface Comm Bad Write Count.
The number of write failures to the device. Can be reset to 0 when tag defined to Comm Count Reset transition from false to true.
Comm Good CountWill set a tag with the driver interface Comm Good Count.
The number of times the communications of the driver interface has transitioned from bad to good. Can be reset to 0 when tag defined to Comm Count Reset transition from false to true.
Comm Good Read CountWill set a tag with the driver interface Comm Good Read Count.
The number of communication reads from the device has succeeded for the driver interface. Can be reset to 0 when tag defined to Comm Count Reset transition from false to true.
Comm Good TimeWill set a tag with the driver interface Comm Good Time.
The time in seconds the communications to the device has been Good. Can be reset to 0 when tag defined to Comm Count Reset transition from false to true.
Comm Good Write CountWill set a tag with the driver interface Comm Good Write Count.
The number of successful writes to the device. Can be reset to 0 when tag defined to Comm Count Reset transition from false to true.
Comm Count ResetDefine a Boolean tag that can reset the Comm Counts and Times.
A transition from false to true will reset the counts.

Select the Add Driver button in the upper left to add the Driver Interface as an available selection when defining Tags in the next step.

Add Driver

Note: If you need to define several Driver Interfaces you can use the CSV Export and CSV Import on the toolbar in the upper right together with Microsoft Excel.

Step 7

Select Configure-Tags.

Configure Tags

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

Getting Started Modbus 3

Note: Optionally select the Live Data Cloud node if you are hosting Modbus data over the Internet with a standard Internet connection.

Step 8

Select to Add a Tag.

Note: You can also add organizational Groups as many levels deep as you prefer and add tags to groups.  To do this first add a Group to the root level, then right click on the Group in the right window to add additional Groups or Tags.

Add Group

Step 9

Change the Data Source Tag property to Modbus.

Data Source Modbus

Step 10

Specify the desired Polling Rate for the Tag.

Specify the Device Address (set as -1 if it is not to be used on Ethernet)

Step 11

Select the correct Driver Interface from the Driver Interface pull down list.

Select Modbus Driver

Step 12

Select the correct Memory Type from the Memory Type pull down.

Modbus Holding Register

Step 13

For Input Register and Holding Register Memory Type select the correct Modbus Data Type.

Modbus Data Type

Note: Use the “As Boolean” types to access bits of a 16, 32, or 64 bit Integer.

Step 14

Specify the Address for the memory location.

Modbus Memory Location

Note: Zero Based Addressing will subtract 1 from the address when communicating to the device.

The base of the memory type will be added to the Address.

Example: Communicating to Holding Register 40000 the Memory Type will be Holding Register and the Address would be 1.

Extended addressing is also supported.

To communicate to 410001 set the Memory Type to Holding Register and the address to 10001.

To communicate to 465535 set the address to 65535.

Following are some examples.

  • To access 40,001 use address of 1
    To access 49,999 use address of 9,999
    To access 50,000 use address of 10,000
    To access 410,001 use address of 10,001
    To access 420,000 use address of 20,000
    To access 430,000 use address of 30,000
    To access 440,000 use address of 40,000
    To access 450,000 use address of 50,000
    To access 460,000 use address of 60,000
    To access 465,535 use address of 65,535

Step 15

To define multiple tags use the CSV Export and CSV Import on the toolbar in the upper right together with Microsoft Excel.

Note: You can also programmatically define Tags and Drivers using the OPCSystems .NET component with the TagCSVImport and DriverInterfaceCSVImport methods or the REST API.

Step 16

Select the Save button on the toolbar at the top.

Save Button

Step 17

Create a directory on the local C: drive with the name OASDemo.

Save the file DemoTags.tags in the directory C:\OASDemo.

Save Tags

Step 18

Under Configure – Options set the Default Tag Configuration File so when the computer restarts the tag file will automatically be loaded.