Help - Search - Members - Calendar
Full Version: OPC
Forums.MrPLC.com > PLCs and Supporting Devices > General Topics - The Lounge > Computer Help and Networking
allstar
Hello everyone,

As the topic description implies, I'm new to OPC and wanted to ask you a couple of questions on how to use it.

I have a profibus DP network in which I have a 315-2dp operating as the one and only master and several other devices operating as slaves (irrelevant in this subject). Now I added a PC Station that is operating as a DP slave (although I could change it to a master if the need arises) and is running a custom app that needs to somehow communicate with the PLC. The easiest solution is (I think) to make use of the OPC Server installed but I have no knowledge on how to do this. How does the OPC Server actually work? An OPC client connects to the OPC server and then what? How does the info get passed to the PLC? Does the OPC build a database with what exists at a given time in a certain network? What if the computer you used to program the PLC's and configure the network isn't the same you're running the app or have set up the OPC server? And how does one start to build a OPC client anyway?

Thanks for your time,
Nuno
withstupid.gif
paulengr
QUOTE(allstar @ Feb 27 2007, 05:38 PM) [snapback]50584[/snapback]
Hello everyone,

As the topic description implies, I'm new to OPC and wanted to ask you a couple of questions on how to use it.

I have a profibus DP network in which I have a 315-2dp operating as the one and only master and several other devices operating as slaves (irrelevant in this subject). Now I added a PC Station that is operating as a DP slave (although I could change it to a master if the need arises) and is running a custom app that needs to somehow communicate with the PLC. The easiest solution is (I think) to make use of the OPC Server installed but I have no knowledge on how to do this. How does the OPC Server actually work? An OPC client connects to the OPC server and then what? How does the info get passed to the PLC? Does the OPC build a database with what exists at a given time in a certain network? What if the computer you used to program the PLC's and configure the network isn't the same you're running the app or have set up the OPC server? And how does one start to build a OPC client anyway?

Thanks for your time,
Nuno
withstupid.gif


An OPC server contains a map of names to PLC addresses (and back). The "back end" talks to the PLC and streams messages to read and write the defined locations. For PLC's that already have "names" stored in them (Controllogix comes to mind), OPC servers can automatically acquire the map from the PLC. It is different for every PLC...hence the reason for OPC (standardize all this). The map also contains details such as how often to scan.

On the PC side, OPC runs as a "COM" server...basically, an ActiveX program. A program can either directly query the OPC server (read or write, using the names this time), or it can request the map (for browsing), or it can use "update" mode...it sends a list of locations that it's interested in and the OPC server automatically sends over the list of only the locations that have changed value.

Get the free Kepware or Matrikon client first so you can see what's going on in your server. Then get a copy of the DLL that you can use to write your code on the PC side.

OPC is not trivial to work with, by the way.

GerryM
QUOTE
OPC is not trivial to work with, by the way.


You got that right!

What is your custom app. being built with?

There are some purchased components that can make it easier to develop the client. Such as:

http://industrialdotnet.com/
http://www.opcdatahub.com/Home.html
http://www.opcconnect.com/
http://opcsystems.com/
www.metadynamics.com
allstar
I've written it in C++ using VS 2005.
Going for a commercial solution at this point isn't a option :\
I've been looking at sourceforge (libnodave, jeasyopc and so on..) for insight but at this point most of it is looking a bit fuzzy.
I still don't know if I need to build a "full" OPC client around my app as it seems overkill when you just want to send a couple of bytes to the PLC and nothing more (at least for now).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.