You are on page 1of 33

Understanding OPC: Basic Overview

Colin Winchester VP Operations


Nathan Pocock Chief Architect & Developer

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Understanding OPC:
Basic Overview
Agenda – 60 Minutes
‹ Original problem – How to share data
‹ Original solutions
‹ OPC Solution
‹ Open and Industrial
‹ Client/Server Architecture - COM
‹ PC to PC connections – DCOM
‹ What can you do with OPC Now
‹ Answers to some common questions
‹ Future Direction
‹ Questions & Answers
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Original Problem:
How to share data?
1) How to share data from 2) How to share data
equipment like PLC’s? between programs and
PC’s?

Software Software
Application Application

Software Software
Application Application

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Connectivity means….

Enterprise Application
Accessing plant-floor data

User Interface
displaying plant-floor data

Transport Layer
Ethernet, RS232, RS485, Radio etc.

PLC / Device
Allen-Bradley, Siemens, GE, Modbus, Automation Direct etc.

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Original Solution

1) How to share data from equipment like PLC’s?


Inconsistent
Inconsistent
implementations,
implementations,i.e.
i.e.
features supported
supportedand
Vendor A HMI / SCADA Vendor Bfeatures
HMI /reliability
SCADA and
reliability
Modbus DF1 Other Modbus DF1 Other
Driver Driver Driver Driver Driver Driver

Each
Eachvendor
vendorhas
has
implemented
implementedtheir
their
own
ownProtocol
Protocol
driver.
driver.

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Original Problem

2) How to share data between programs and PC’s?

‹ Data inaccessible to
Enterprise
other systems System

‹ Self-customization
limitations, or inability
‹ Expensive
customizations often HMI/SCADA
Application
Other
Application
required
‹ Data sharing via Modbus / DF1 etc. Unsupported

*.CSV import/export

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
First Solution, DDE
‹ Protocol drivers were no
longer within HMI
‹ DDE Server contains
HMI / SCADA protocol definition
Application
‹ HMI connected using DDE
Topics
‹ HMI tells DDE Server “read
DDE
DDEServer
Server this”, “write that”
(Protocol
(ProtocolConverter)
Converter)
‹ DDE Server responsible for
all I/O
‹ Different HMIs can connect
PLC to a DDE Server
‹ Some Data sharing
possible

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
DDE, Scalable Solution?

‹ Different systems can


connect to a DDE
Server
‹ Accessible over the
Network using NetDDE
‹ Add more DDE Servers
‹ More device support
‹ Load distribution

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
DDE, Good Solution?

‹ Performance issues
‹ Decoupled HMI from
‹ NetDDE reliability
Protocol drivers
‹ No Standards on tag
‹ DDE Server market
database
emerged
‹ No Browsing!
‹ More “driver” choice
‹ No quality information
‹ HMI vendors could
focus on their core ‹ No Client control of Poll
product rates
‹ Accessible to Any DDE ‹ No timestamp
Application ‹ No security
‹ Not easy for network
configuration and usage
‹ Limited number of
client/topic connections
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
A Standard Was Needed!

‹ Software to Software interface (Problem 2)


‹ Keep Client/Server model used with DDE
‹ Better performance needed
‹ Security needed
‹ Needed to support more sophisticated data
types (variants and structures etc.)
‹ Needed to be more scalable
‹ Internet capable
‹ A more “future-proof” framework was
needed
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC, the new
Standard
‹ OPEN Standards based
‹ The OPC Foundation controls the standards
‹ Automation Industry Organization
‹ Not controlled by any one company – managed
by board of directors elected by the membership
‹ Volunteer effort
‹ Created 1996 – by 6 founding members
‹ Companies from all over the globe
‹ Software Toolbox - a charter member, joining in
the foundation’s first year

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC, the Promise

‹ Industrial Automation Focus


‹ Timestamp support
‹ Quality flags – Ensuring Data Integrity
‹ Interoperability: Testing & Certification
‹ Client/Server architecture
‹ Scalable solution
‹ Flexible means of data access
‹ Easy for end-users
‹ Security using Microsoft standards
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC Solution, Similar
to DDE, but better
‹ Same client/server
HMI / SCADA
architecture
Application ‹ OPC Server contains
protocol definition
‹ Tag Database clearly
defined
OPC
OPCServer
Server
(Protocol
(ProtocolConverter)
Converter)
‹ HMI makes OPC calls to tell
the Server saying “read
this”, “write that” and how
often
PLC/other Equipment ‹ Performance gains
‹ Quality and timestamp
information now accessible
‹ Easy configuration for the
end-user.
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC Solution
HMI/SCADA
OPC Clients
• Standard software to
software interface
• One connection: OPC
• Communications
infrastructure
decoupled from the
HMI/SCADA
• Microsoft Security OPC OPC OPC
Server A Server B Server C
• Improves performance
• Flexibility
• Choices
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
What’s in a Tag/Item?

‹ OPC Server exposes OPC Client

PLC memory
addresses as “Tags” Dev1.Tag1 Dev2.Tag1
‹ Tags are a friendly 4001 obj1.prop.val
Dev1.Tag2 Dev2.Tag2
name, that maps to a 4001 obj2.prop.val
memory register in the
PLC. OPC Server

‹ Decouples the OPC


Client from the Modbus / DF1 etc. BACNet, Profibus etc.

underlying Device
Protocol and Memory
Register knowledge. PLC specific PLC specific
addresses addresses
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC – Data Access
Capabilities

‹ Browse computer for available OPC Servers


‹ Browse the server for available Tags
‹ Read 1..x Tags in a single call
‹ Write 1..x Tags in a single call
‹ Subscribe to Tags and receive updates
when their value(s) change.

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC DA, Data Acquisition
Read
Read these
Readthese 1…x
these1…x1…x
Read these 1…x
Tag(s)
Tag(s)
Tag(s)oneone time,
onetime,
time,
‹ Synchronous I/O Tag(s)
TELL
one
ME
time,
when
andTELL
and I Iwill
ME
will wait
when
wait for
for
‹ Blocking call you
you
the have results
theresponse
have results
response
‹ Good for round-robin OPC
polling-type Client

applications
‹ Asynchronous I/O
‹ Faster method,
compared to OPC
Synchronous Server

‹ Development requires
different way of
thinking
‹ Different Locations
‹ Cache
‹ Device
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC DA, Data Acquisition

‹ Subscriptions offer
These
Thesetags
tagshave
have
best optimization changed
changed
values….
values….
‹ OPC client OPC
Client

requests a
subscription
‹ OPC Server does
OPC
the polling Server

‹ OPC Server sends


change
notifications to the
client
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC Quality Codes

‹ Specifies if the Tag value is something you


can trust or not.
‹ 16-bit Bitmask of values (low 8 bits):
‹ 0 = Bad (00000000)
‹ 64 = Uncertain (01000000)
‹ 128 = Reserved (10000000)
‹ 192 = Good (1100000)
‹ High word is reserved for Vendor use.

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC, How does it Work?

OPC Server
•Any OPC Client OPC Group
OPC
•HMI/SCADA OPC Item
OPC Group
•Custom Application
OPC Item OPC Item

‹ OPC Client connects to an OPC OPC Item OPC Item


Server.
‹ Client adds a “Group”.
‹ Client adds “Tags” to Group. Hardware specific networks and
‹ The poll-rate is set in the Group. protocols
‹ You can add multiple Groups.

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Client/Server and OPC DA
Ethernet/IP ‹ The Client
Consumes data
Ethernet Human
Defined as services
Machine
the OPC
Interface
Client
‹ The Server Provides
data services
OPC DA
Modbus RTU Client Side ‹ COM is the Middle
Man
Microsoft COM
‹ OPC Servers and
OPC DA Defined as Clients in most cases
Server Side the OPC are separate
Server programs now
Communications ‹ OPC Servers only
Drivers act on commands
from an OPC Client

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC, Dependent upon
COM
‹ An OPC Client connects to an OPC Server through COM
‹ An OPC Client connecting to an OPC Server on a different
machine connects through DCOM and must be authenticated.

I Iwant
want
Tell meto
to your
connect
connect
login to
to you
nameyouand
My user
Letuser
My me name
check
name my
isis password!
“fred”
“fred”and
Access Control
and
PC – 1 OPC Client password is on PC – 1 OPC Client
you isare
Yes,List….
password
“*****”
my list… I will
“*****”
OPC Client COM run-time grant you access! OPC Client COM run-time

Security Security
Provider Provider

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC DA, Scalable Architecture

‹ A server can
OPC Server
support multiple
OPC Client
OPC Client
Visualization &
OPC Client/ Clients,
Database Logging OPC Server
Alarming etc.
concurrently
OPC Server ‹ Many servers can
exist on the
network
Enterprise
System ‹ Attach OPC
Systems to other
HMI/SCADA
Application
Other
Application
OPC Systems

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Answers to common
Questions
‹ Can I use OPC across different Domains?
‹ Does re-configuring DCOM open security holes
on my computer?
‹ Does a Tunneller help get OPC data through a
firewall and over the internet?
‹ How do I know if my PLC/Device is offline?
‹ Can OPC work on Linux?
‹ Is OPC DA still valid now OPC UA is coming?
‹ How much data can an OPC Server transfer?
‹ Can OPC Servers run as Windows Services?
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC, more than 1 standard

‹ OPC Data Access (DA)


‹ OPC Historical Data Access (HDA)
‹ OPC Alarms & Events (A&E)
‹ OPC XML Data Access (XMLDA)
‹ OPC Data Exchange (DX)
‹ OPC Complex Data
‹ OPC Commands
‹ OPC Security
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC Provides Industry-Standard
interOperability Performance & Connectivity

ERP, SAP … Corporate Enterprise


OPC

Manufacturing, Production and Maintenance


OPC
HMI MES SCADA
OPC (DCOM)

OPC(DCOM)
Adv.
OPC(DCOM) Batch
Control
PC-Based Control
OPC(DCOM)

PLC Data
Data
PLC Other….
DCS
Industrial
IndustrialNetworks
Networks Acquisition Other….(DB,
(DB,SQL
SQL
DCS Acquisition
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
OPC, Quality Assurance!

‹ OPC Compliance Testing


‹ Interoperability Testing
‹ Annual event
‹ Vendors attend with source code
‹ OPC Self-Certification
‹ Independent Test Lab Certification

Learn more about OPC Certification:


http://www.opcfoundation.org/Certification.aspx
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Future Direction

‹ OPC UA
‹ Single, abstract set of objects
‹ Backward compatible with all existing OPC
standards
‹ Service Oriented Architecture (SOA)
‹ Embeddable, within a PLC/Device
‹ Security and encryption built-in
‹ Designed to take plant-floor data to the
Enterprise.

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
What Does OPC UA
Mean for OPC DA?

Asset
Asset Production Inventory
Inventory
Production Purchasing
Control Purchasing
Management
Management Control Management
Management

UA
HMI
HMI
SCADA
SCADA
Visualization
Visualization The
The The
The
Automation
Automation Enterprise
Enterprise
paradigm
paradigm paradigm
paradigm
DA, HDA,
A&E Production
Production
Management UA
UADoesn’t
Doesn’tReplace
ManagementSystems
Systems Replace
OPC
OPCDA/HDA/A&E
DA/HDA/A&E
ItItComplements
ComplementsThem!
Them!
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Want to learn more?
“Using OPC” Webinars

‹ Using OPC DA Applications:


www.softwaretoolbox.com/opcdawebinar

‹ Building OPC Applications in


Visual Studio.NET
www.softwaretoolbox.com/opcvsnetwebinar

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
More Information

… get through to an expert!


Visit www.softwaretoolbox.com/webinars for future events

Questions: Nathan Pocock:


Email: npocock@softwaretoolbox.com
Tel: +1 (704) 708-6482

Colin Winchester
Email: cwinchester@softwaretoolbox.com
Tel: 704-849-2773 x1327

Technical Support:
Tel: +1 (704) 849-2773
Web: http://support.softwaretoolbox.com
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
Some Terminology

‹ HMI – Human Machine Interface


‹ SCADA – Supervisory Control & Data Acquisition
‹ DDE – Dynamic Data Exchange – a method of software to
software data exchange created in 1988 by Microsoft in
Windows 2.0.
‹ OPC
‹ OLE for Process Control (circa 1996)
‹ Openness, Productivity, Connectivity
‹ Today, the acronym underlying words is meaningless – OPC a
standardized technology is for open software connectivity in
industrial automation
‹ COM – Component Object Model – circa mid 90’s Microsoft
term for the way Windows software parts talk to each other
under the hood
‹ DCOM – Distributed COM – same concept but allowing
software parts on different computers to talk to each other
Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission
More Terminology

‹ PLC – Programmable Logic Controller – hardware used to control


many industrial processes and machinery
‹ DCS – Distributed Control System – used for same purposes as a
PLC, but highly optimized for process control, i.e. chemicals, oil/gas,
food/beverage, pharmaceutical
‹ RTU – Remote Terminal Unit – traditionally proprietary hardware –
today PLCs can be used for RTU’s – any device put in a remote
location that controls and/or gathers data for collection at a central
host – usually a SCADA system
‹ Protocol – as set of defined instructions or commands used to
exchange data with a device over a serial or Ethernet connection
‹ Register – a memory location in a PLC or DCS. To some a register
is a 16 bit word of data. Often used generically to refer to a memory
location in any type of device you are exchanging data with
‹ Tag, or Item – a single unit of data – can be digital or analog values,
in some cases can even be arrays of digital or analog values

Content is Copyright Software Toolbox, 2008 No re-use or copying without written permission

You might also like