OPC .NET 3.0
description
Transcript of OPC .NET 3.0
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 ‘.’
2
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 ClientExistingClient
Xi Client
OPC COM Server
Xi InterfaceXi SecureMessaging
Xi SecureMessaging
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)
OPC COMServer
.NET
Interface “A”.NET Client Application “A”
COM/DCOM
.NET
Interface “B”.NET Client Application “B”
COM/DCOM
Custom Adapter
Custom Adapter
Custom Adapter.NET
Interface “C”.NET Client Application “C”
COM/DCOM
With Xi (Xi Wrapper is common to all types of OPC Servers)
OPC COM Server
.NET Client Application “A”
.NET Client Application “B”COM/
DCOMXi
Wrapper
.NET Client Application “C”
Xi .NET
Interface
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 Alarm Client
Xi Interface
Xi DA Client
OPC DAServer
OPC HDAServer
OPC A&EServer
Xi History Client
Xi Integrated Client
Xi Integrated Client
Security model
Full Access
Limited Access (e.g. no Writes)
Full Access
Performance model
Higher Performance
Remote Access Performance
Highest Performance
Platform model
Open – Generally Windows
Open – Any platform using web services
Windows
OPC .NET 3.0 Interface ArchitectureMulti-layer architecture to reduce interoperability problems
Client Interface
Client App
Client Base
Server Base
OPC Wrapper
OPC COM Server
Server Interface
WCF
Alternate Server Implementation
Developer-specific code Standard code
for the clientStandard code for the server
Developer-specific code
Standard code for OPC Wrappers
I/FExt
Robustness
.NET Client Application
OPC .NET
ServerX
DA
HDA
A&E
• Automatic recovery from connection failure• No loss of client configuration in the server (client context)
Security & Firewall Friendliness
• Two ports to open:
OPC .NET
Server
HTTP
TCP
DA
HDA
A&EEncryption
.NET Client Application
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)
Read Endpoint
Resource Management
Endpoint
Security architectureServer Discovery
Endpoint
List of Resources
Write Endpoint
Secure
One per server
One per system
•Dynamically opened •Multiple endpoints per client•Multiple lists per endpoint•Known only to the client
Opened only if
authorizedList of Resources
List of Resources
Subscribe Endpoint
List of Resources
Poll or Callback
(may be redundant)
Access Controls
ClientApplication
List of Resource Discovery Endpoints
Server and endpoint discoveryPNRP Enabled
Servers
Non-PNRP Enabled Servers
PNRP Enabled Clients
Non-PNRP Enabled Clients
Xi Discovery
Server
Manual Configuration of Discovery Server
Address
Manual Configuration of Server Address
PNRP Discovery of Servers
Xi Discovery of Server Endpoints Xi Discovery of Xi
Server Endpoints
PNRP Discovery of Discovery
Servers
PNRP = Peer Name Resolution Protocol (Microsoft)
OPC .NET 3.0 Functional ArchitectureClients select resources (data/alarms/events) into lists, and add lists to endpoints for access
Client App
System Resources
Client-specific Context
HistoricalData
Alarms & Events
Historical Alarms & Events
Runtime.Data
Common to all clients
filterfilter
Read
Write
Subscribe
Manage
Endpoint interfacesServerDiscovery
ResourceManagement
Callback Poll
Read
Write
Used to locate servers
Used to:• discover resources of a server, • create lists of resources, • create endpoints, and • assign lists to endpoints
Used to receive updates (changes) to list entries
Used to update the value of list entries
Subscribe
Used to read the value of list entries
Obtaining information about the server
Standard MIB Objects
Vendor MIB Objects
(optional)
Server Management Info Base (MIB) Server capabilities and settings accessed
by the GetStandardMib() method
Server-specific management object values accessed via
Read/Write/Subscribe endpoints
Vendor MIB Object descriptions
Finding objects (filtered browsing)
A
B C
D E F G
Object Hierarchy
Objects located by their path (e.g. A/C/G)
Object Attributes
InstanceIdNameDescription
IsLeaf
ObjectTypeIdDataTypeIdListDimensions
IsReadableIsWritable
FastestScanRateRoles
IsCollectingHistory
Flags
• 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
Data lists
Data Lists
A
B C
E F G
Object Hierarchy
data objects
D
• 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
Historical data lists
Historical Data Lists
A
B C
E F G
Object Hierarchy
Historical values
D
• Historical data lists are data lists that contain historical values
• Historical lists are updated as new values are received into the Data Journal
Alarm and event lists
Event/Alarm List
Filter Criteria
Alarms and
Events
Alarm/Event Sources
AreaHierarchy
• 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
Areas
Historical alarm and event lists
Historical Event/Alarm
ListFilter
Criteria
Historical Alarms and Events
Alarm/Event Sources
Event Journal
• Historical alarm/event list membership is defined by filters
• Historical lists are updated as new alarms/events are received into the Event Journal
Areas
Interface summary
Example specification page
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