250 likes | 373 Views
OPC .NET 3.0. Technical Overview. OPC .NET 3.0 or Xi. OPC Xi was renamed to OPC .NET 3.0 to better reflect its purpose – to provide a .NET interface for OPC
E N D
OPC .NET 3.0 Technical Overview
OPC .NET 3.0 or Xi • OPC Xi was renamed to OPC .NET 3.0 to better reflect its purpose – to provide a .NET interface for OPC • Xi is still used informally as an abbreviated name, especially in drawings where space is at a premium. In these uses, the “X” now stands for “.NET” and the “i” for “interface. • Xi is also used in the source code since names cannot start with a ‘.’
What is OPC .NET 3.0? A simple Microsoft.NET interface for securely wrapping industrial automation systems, for both local and remote access. Xi Client Xi Client Xi Client Xi Client Existing Client Xi Secure Messaging Xi Interface Xi Secure Messaging OPC COM Server
Why was OPC .NET 3.0 developed? New Microsoft-based client developments have moved to .NET => These application need a native .NET interface to talk to OPC COM servers, instead of each having to develop its own. Before Xi (need a custom adapter for each type of OPC server) .NET Interface “A” COM/DCOM .NET Client Application “A” Custom Adapter OPC COMServer Custom Adapter .NET Interface “B” COM/DCOM .NET Client Application “B” Custom Adapter .NET Interface “C” COM/DCOM .NET Client Application “C” With Xi (Xi Wrapper is common to all types of OPC Servers) OPC COM Server .NET Client Application “A” COM/ DCOM Xi .NET Interface Xi Wrapper .NET Client Application “B” .NET Client Application “C”
Is OPC .NET 3.0 a common interface? Yes - OPC .NET 3.0 provides access to runtime and historical data, events, and alarms, all in one interface Xi Integrated Client Xi Integrated Client Xi DA Client Xi Alarm Client Xi History Client Xi Interface OPC DA Server OPC A&E Server OPC HDA Server
Security model Limited Access (e.g. no Writes) Full Access Full Access
Performance model Remote Access Performance Higher Performance Highest Performance
Platform model Open – Any platform using web services Open – Generally Windows Windows
OPC .NET 3.0 Interface Architecture Multi-layer architecture to reduce interoperability problems Client Interface Server Interface Standard code for OPC Wrappers OPC COM Server Client Base Server Base I/F Ext OPC Wrapper WCF Client App Alternate Server Implementation Developer-specific code Standard code for the client Standard code for the server Developer-specific code
Robustness • Automatic recovery from connection failure • No loss of client configuration in the server (client context) DA X OPC .NETServer .NET Client Application A&E HDA
Security & Firewall Friendliness • Two ports to open: DA HTTP TCP .NET Client Application OPC .NETServer A&E Encryption HDA
Security concepts Base user privileges defined by access control list Base encryption and authentication provided by .NET WCF Read, write, and subscribe privileges for the user can be restricted based on location of the user and the client application being used (e.g. only approved client apps can write). Patent pending (royalty-free license for use with OPC .NET 3.0)
Security architecture Resource Management Endpoint Read Endpoint List of Resources List of Resources List of Resources List of Resources Write Endpoint Subscribe Endpoint One per system Server Discovery Endpoint (may be redundant) Client Application Secure List of Resource Discovery Endpoints One per server Access Controls • Dynamically opened • Multiple endpoints per client • Multiple lists per endpoint • Known only to the client Opened only if authorized Poll or Callback
Server and endpoint discovery PNRP Enabled Clients PNRP Enabled Servers PNRP Discovery of Servers PNRP Discovery of Discovery Servers Xi Discovery of Server Endpoints Xi Discovery Server Xi Discovery of Xi Server Endpoints Manual Configuration of Server Address Manual Configuration of Discovery Server Address Non-PNRP Enabled Servers Non-PNRP Enabled Clients PNRP = Peer Name Resolution Protocol (Microsoft)
OPC .NET 3.0 Functional Architecture Clients select resources (data/alarms/events) into lists, and add lists to endpoints for access System Resources Common to all clients Client App Manage Historical Alarms & Events filter filter Runtime. Data Historical Data Alarms & Events Read Write Client-specific Context Subscribe
Endpoint interfaces Used to: discover resources of a server, create lists of resources, create endpoints, and assign lists to endpoints Used to locate servers ServerDiscovery ResourceManagement Used to read the value of list entries Read Write Used to update the value of list entries Subscribe Used to receive updates (changes) to list entries Callback Poll
Obtaining information about the server Server Management Info Base (MIB) Server capabilities and settings accessed by the GetStandardMib() method Standard MIB Objects Vendor MIB Object descriptions Server-specific management object values accessed via Read/Write/Subscribe endpoints Vendor MIB Objects (optional)
Finding objects (filtered browsing) • Browsing follows path from root • Client can build path from root if known - no need to always start from root or change browse position • Built-in generic filtering mechanism • Object attributes returned – no need to separately ask for properties Objects located by their path (e.g. A/C/G) Object Hierarchy A Object Attributes InstanceId B C Name Description ObjectTypeId DataTypeId ListDimensions D E F G Flags IsLeaf IsReadable IsWritable IsCollectingHistory FastestScanRate Roles
Data lists • Data lists select data objects that are to be accessed via read/write/subscribe • Data lists can be created by the client or the server Object Hierarchy Data Lists A B C E F G D data objects
Historical data lists • Historical data lists are data lists that contain historical values • Historical lists are updated as new values are received into the Data Journal Object Hierarchy Historical Data Lists A B C E F G D Historical values
Alarm and event lists • Alarms and events, like data, are accessed via lists, but membership in the list is defined by filters • Events are in lists only long enough for them to be reported via a subscription • Alarms stay in lists until they are acked/inactive • Alarms and event lists can be created by the client or the server Event/Alarm List Filter Criteria Area Hierarchy Alarms and Events Areas Alarm/Event Sources
Historical alarm and event lists • Historical alarm/event list membership is defined by filters • Historical lists are updated as new alarms/events are received into the Event Journal Historical Event/Alarm List Filter Criteria Event Journal Areas Alarm/Event Sources Historical Alarms and Events
Conclusion Additional security layered on top of traditional security mechanisms Additional robustness features added to recover dropped connections with the server Supports runtime and historical data, events, and alarms. Additionally supports passthroughs and historical alarms/events Provides: Local access via NamedPipe bindings LAN access via NetTcp bindings Web access and off-platform access via REST interface & Http bindings