the diffrence between the OPC and MODBUS


Thread Starter

Salman Obaidi

i would like to difference between your system MODBUS and OPC standard, and how they are used.
OPC is somekind of framework, it's OLE for Process Control. It facilitates you to be able to access PLC variables using DCOM. It'll captured PLC variable as an OPC object so you could present it visually using HMI/SCADA software or any other programming language since OPC is open standard. In order to capture data from PLC, OPC as a computer application will have to use communication protocols and Modbus is one of them.

Modbus, on the other hand, is a communication protocol between PLC and fieldbus or with PLC or even with PC using OPC, for example.

Hope that helps!!!
Salman Obaidi...

This is kind of like asking... "what's the difference between eating and apples?"

In short, Modbus is a communications protocol, and OPC is an open standard for implementing different protocols (such as Modbus). Not a very good explanation, but I'm sure others will chime in.



Modbus is a communication protocol used from device to device

OPC is used from software to software

For example, you may use Modbus between a PLC (slave) and a computer (master), or between a PLC and remote-I/O subsystem, between a PLC and an operator panel, or between a PLC and a variable speed drive. If you go Modbus you should consider Modbus/TCP (over Ethernet media) rather than Modbus/RTU over RS232/RS485 for speed reasons etc.

You use OPC between a hardware driver software (OPC server) and a process visualization software (OPC client) on a Windows computer, or another client such advanced control, statistics etc. If the server and client applications are in different computers they communicate across Ethernet.

For Modbus you find data in registers. Every device use different registers, and if the device is programmable the registers will also be different for each application. Some devices use integers while other use floating point.
Some devices use percentage while others use engineering unit. You need to refer to device documentation to find which information is in which register and what format is used. This is quite tedious. Making changes often create
a lot of work.

For OPC you can browse the data, see what is available, without having to worry where it is located and in what data type. This makes it a whole lot easier to use. OPC runs on Windows operating system so OPC depends on the reliability of computers.

Suggestion: Use Modbus for closed loop control functions e.g. if an interlock signal from one package unit needs to take some effect in the control strategy of the main control system or another package unit. Mapping a few signals in Modbus is worth the effort. Use OPC for tie-in with software, for example with your PIMS software and graphics displays because PIMS and many other software may not support Modbus directly anyway, and mapping many parameters is lots of work. That is, you may wish to use BOTH Modbus AND OPC: Modbus for the signals used in control, and OPC for signals just displayed.

Be aware how different control systems charge for OPC tags. There is a vast price difference here. Some charge only for the total number of tags displayed at any one time (local or remote) while others charge for all OPC tags even if currently not displayed.

Regardless of Modbus or OPC some mapping will be done, although less with OPC.

To understand OPC take a look at the book "Software for Automation: Architecture, Integration, and Security". Preview, see contents, and buy online:

Even if you use Modbus between two pieces of hardware, you generally use OPC by the time it gets into software. You may need both technologies. They complement each other in many cases.

Jonas Berge
[email protected]
Learn fieldbus and Ethernet at your own pace:
Learn OPC and automation software at your own pace: