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
|