This is the second part of my blathering on OPC. Here I’ll describe what OPC really is and how it fits into Industrial Automation.
OPC is a standard way to pull information into PCs and other devices that run MS Windows. So that includes XP Embedded, CE and other Microsoft products. So, really we are talking about a standardized way to move data from some place out in the world into a Microsoft Windows application.
Those Microsoft Windows applications are not just apps delivered as part of Windows but there are also apps created by end users. They can be really sophisticated like Wonderware a package with very humble beginnings that is now a juggernaut in the Industrial automation beginning. These apps could also be real, quick and dirty Visual C++ apps that you wrote this morning before getting that first cup of coffee (probably in that dirty cup you’ve been using since Jimmy Carter was President).
In its simplest form, OPC uses a Microsoft standard called COM (Component Object Model) technology. COM is part of the communication infrastructure within Windows that lets different software programs talk to each other in a structured way. Using COM eliminates all the hassles of creating connections between two programs that want to pass data. It allows, for example, a MS Word document to easily get data from an Excel spreadsheet.
So, what does this do for Industrial Automation developers and end users? Well, you can think of OPC as kind of like a front end for COM. OPC is a software program that connects the real world to MS applications. Now, instead of a spreadsheet feeding data to Microsoft Word you could feed weigh scale data, a barcode, a valve position or a flow rate to that Word document, not in real time but close enough to suit a human operator.
An OPC software program that collects real world data and makes it available to COM and any application that wants to connect to it is called an OPC Server. An OPC Server knows how to talk to some real world device. It might talk to that device over a serial port, over USB, Ethernet/IP, DeviceNet, Modbus TCP or CAN. It doesn’t really matter how the data gets there to the MS Application program. The Server hides all the ugly, back door shenanigans of polling data, swapping bytes around and decoding complex messages to provide your application program with an easy-to-use, straight forward way to access that devices data.
The application programs that receive the data are called OPC Clients. Those guys are either standard Microsoft programs like Word, Excel or Access or they are programs you buy or something you create yourself. It’s not hard to create yourself, MS Visual C++ has a pretty easy to use IDE but you’ll need a foundation and understanding of C++ objects and all that junk.
Next I’ll tackle OPC UA or Unified Architecture. It’s kind of like the United Federation of the Planets but I’ll get into that later.