Power Point 2007 presentation

advertisement
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 Client
Xi Client
Existing
Client
OPC COM Server
Xi Interface
Xi Secure
Messaging
Xi Secure
Messaging
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 Client Application “A”
.NET
Custom Adapter
COM/DCOM
Interface “A”
.NET Client Application “B”
COM/DCOM
.NET
Interface “B”
.NET Client Application “C”
Custom Adapter
OPC COM
Server
COM/DCOM
.NET
Interface “C”
Custom Adapter
With Xi (Xi Wrapper is common to all types of OPC Servers)
.NET Client Application “A”
.NET Client Application “B”
Xi .NET
Interface
.NET Client Application “C”
Xi
Wrapper
COM/
DCOM
OPC COM
Server
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 DA
Client
Xi Integrated
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
I/F
Ext
Client
App
Developerspecific code
Client
Base
Server Interface
WCF
Server
Base
Standard code for
OPC Wrappers
OPC
Wrapper
OPC COM
Server
Alternate Server
Implementation
Standard code
for the client
Standard code
for the server
Developerspecific code
Robustness
• Automatic recovery from connection failure
• No loss of client configuration in the server (client context)
.NET Client
Application
X
DA
OPC .NET
Server
A&E
HDA
Security & Firewall Friendliness
• Two ports to open:
.NET Client
Application
HTTP
Encryption
TCP
DA
OPC .NET
Server
A&E
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
Server Discovery
Endpoint
List of Resource
Discovery
Endpoints
One per system
(may be redundant)
Resource
Management
Endpoint
Secure
One per
server
Access Controls
List of Resources
Read Endpoint
List of Resources
Client
Application
• Dynamically opened
• Multiple endpoints per client
• Multiple lists per endpoint
Write Endpoint
• Known only to the client
List of Resources
Subscribe Endpoint
List of Resources
Poll or Callback
Opened
only if
authorized
Server and endpoint discovery
PNRP Enabled Clients
PNRP Enabled
Servers
PNRP Discovery
of Discovery
Servers
Xi Discovery of Xi
Server Endpoints
Manual
Configuration of
Discovery Server
Address
Non-PNRP Enabled
Clients
PNRP Discovery
of Servers
Xi
Discovery
Server
Xi Discovery of
Server Endpoints
Manual
Configuration of
Server Address
PNRP = Peer Name Resolution
Protocol (Microsoft)
Non-PNRP Enabled
Servers
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
Manage
filter
Client
App
Runtime.
Data
Historical
Data
Alarms &
Events
Read
Write
Subscribe
Client-specific Context
filter
Historical
Alarms &
Events
Endpoint interfaces
Used to locate servers
ServerDiscovery
ResourceManagement
Used to:
• discover resources of a server,
• create lists of resources,
• create endpoints, and
• assign lists to endpoints
Read
Used to read the value of list entries
Write
Used to update the value of list entries
Subscribe
Callback
Poll
Used to receive updates (changes)
to list entries
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
Vendor
MIB Objects
(optional)
Server-specific management
object values accessed via
Read/Write/Subscribe endpoints
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
B
D
InstanceId
Name
Description
ObjectTypeId
DataTypeId
ListDimensions
C
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
D
C
E
F
data objects
G
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
D
C
E
F
Historical values
G
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
Filter
Criteria
Area
Hierarchy
Areas
Alarms
and
Events
Alarm/Event
Sources
Event/Alarm
List
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
Event Journal
Areas
Alarm/Event
Sources
Historical Alarms
and Events
Filter
Criteria
Historical
Event/Alarm
List
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
Download