Modbus OPC Server Suite – MatrikonOPC OPC Servers

How to connect to Modbus devices using OPC

Of all the industrial protocols out there, Modbus is one of the most popular. Its open protocol, easy implementation, and basic featureset all combine to make it a well used protocol. This article will explain how to connect Modbus to OPC and the differences between basic communications and more advanced telemetry communication between Modbus and OPC

Basic media options:
  • Serial (either RS232 or RS485)
  • Ethernet

  • More advanced connection options:
  • Radio
  • GPRS
  • Satellite
  • dial up modem

  • Protocols
  • Modbus
  • Modbus RTU
  • Modbus on TCP
  • Enron Modbus
  • Modbus Plus
  • Daniel Modbus
  • Bently Nevada Modbus

  • Registers
    Data in Modbus is grouped in registers
  • 0x: read/write tags that can be on or off. Sometimes called "coils",     "digitals", "relays", or "booleans" Address range from 00001-09999
  • 1x: read-only tags that can be on or off. Sometimes called "coils", "digitals",     "relays", or "booleans" Address range from 10001-19999
  • 3x: Read only tags. 16 bit sizes by default. Also called input registers
  • 4x: Read/write tags. 16 bit sizes by default. Also called holding registers.
  • Interpreting different registers
    What if I’m using floats, 32 bit "wide" registers, unsigned integer, swapped word order, ASCII strings, etc? With these registers, most OPC Servers offer letter suffixes or some other way of denoting that the OPC Server should treat that tag differently. With the Matrikon OPC Server for Modbus, as an example, a paired register for a 32 bit floating-point real OPC Tag might look like this: TestChannel.TestDevice.4:34P

    Master/Slave Control
    Many people out there know that OPC Clients are typically embedded in applications that need to have control over communications. OPC Servers are typically built for applications that do not need to control the communications. Many protocols out there, such as Modbus, also follow this philosophy. Modbus is Master/Slave, just like OPC is Client/Server. Usually, you want your OPC Server to act as the Modbus Master, and relay the control down the line. But sometimes, you’ll want your device to have more control over the communications such as if your device was to "phone home" in an alarm condition. In these instances, you’ll need your OPC Server to act as a Modbus slave. Most OPC Servers do not support slave mode, so if you need it, be sure to ask your vendor.

    Telemetry
    The problem we’re going to run into with advanced connections is that OPC Servers are just passive translators. With a complex telemetry environment, where we communicate with many RTU’s or PLC’s over high latency, low bandwidth, shared communication links; we’re going to need an OPC Server with more brains. These "brains" are more advanced timing and polling options. A good Telemetry SCADA OPC Server should support round robin polling, interrupt/demand polling, and have many advanced timing parameters to account for different delays or polling times.

    Multiple Masters
    One of the differences between the two is that you can have more than 1 OPC Client connected to each OPC Server, whereas you don’t usually want 2 Modbus Masters talking to the same Modbus slave. This can be a problem if you’re using redundant OPC Servers or multiple Master applications. Be sure to talk to your vendor on alleviating these issues in your application if these are an issue.


    For more information on Modbus, see Modbus-IDA at modbus.org

    Modbus (Modicon) OPC Server