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?
InconsistentInconsistent implementations,implementations, i.e. i.e. features supported and Vendor A HMI / SCADA Vendor BfeaturesHMI / SCADA supported and reliabilityreliability Modbus DF1 Other Modbus DF1 Other Driver Driver Driver Driver Driver Driver
EachEach vendor vendor has has implementedimplemented their their ownown Protocol 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 Other Application 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 DDEDDE Server Server this”, “write that” (Protocol Converter) (Protocol 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 OPCOPC Server Server (Protocol Converter) HMI makes OPC calls to tell (Protocol Converter) 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 these 1…x ReadReadRead these these these 1…x 1…x 1…x Tag(s) one time, Tag(s)Tag(s)Tag(s) one one one time, time, time, Synchronous I/O TELL ME when andandTELL I Iwill will ME wait wait when for for Blocking call you have results youthethe response haveresponse results 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 best optimization TheseThese tags tags have have changedchanged values…. values…. OPC OPC client 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 •HMI/SCADA OPC OPC Item •Custom Application OPC Group 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 services Machine Defined as the OPC Interface The Server Provides Client 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 wantTell meto to your connectconnectlogin to nameto you you and MyMyLet user user me name checkname my password! isisAccess “fred” “fred” andControl and PC – 1 OPC Client passwordpasswordYes,List…. you is areis on PC – 1 OPC Client 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 OPC Client/ Clients, Visualization & 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 Other Application 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 OPC (DCOM) OPC (DCOM) OPC(DCOM) HMI MES SCADA OPC(DCOM) Adv. Batch Control OPC(DCOM) PC-Based Control
OPC(DCOM)
Data PLCPLC Data IndustrialIndustrial Networks Networks Other….Other…. (DB, (DB, SQL SQL DCSDCS AcquisitionAcquisition 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?
AssetAsset Production InventoryInventory Production Purchasing Control Purchasing ManagementManagement Control ManagementManagement
UA HMIHMI SCADASCADA VisualizationVisualization TheThe TheThe AutomationAutomation EnterpriseEnterprise paradigmparadigm paradigmparadigm DA, HDA, A&E ProductionProduction UA Doesn’t Replace ManagementManagement Systems Systems UA Doesn’t Replace OPCOPC DA/HDA/A&E DA/HDA/A&E ItIt Complements Complements Them! 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: [email protected] Tel: +1 (704) 708-6482
Colin Winchester Email: [email protected] 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