OPC .NET 3.0

25
OPC .NET 3.0 Technical Overview

description

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 - PowerPoint PPT Presentation

Transcript of OPC .NET 3.0

Page 1: OPC .NET 3.0

OPC .NET 3.0

Technical Overview

Page 2: OPC .NET 3.0

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

Page 3: OPC .NET 3.0

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

Page 4: OPC .NET 3.0

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

Page 5: OPC .NET 3.0

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

Page 6: OPC .NET 3.0

Security model

Full Access

Limited Access (e.g. no Writes)

Full Access

Page 7: OPC .NET 3.0

Performance model

Higher Performance

Remote Access Performance

Highest Performance

Page 8: OPC .NET 3.0

Platform model

Open – Generally Windows

Open – Any platform using web services

Windows

Page 9: OPC .NET 3.0

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

Page 10: OPC .NET 3.0

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)

Page 11: OPC .NET 3.0

Security & Firewall Friendliness

• Two ports to open:

OPC .NET

Server

HTTP

TCP

DA

HDA

A&EEncryption

.NET Client Application

Page 12: OPC .NET 3.0

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)

Page 13: 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

Page 14: OPC .NET 3.0

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)

Page 15: OPC .NET 3.0

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

Page 16: OPC .NET 3.0

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

Page 17: OPC .NET 3.0

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

Page 18: OPC .NET 3.0

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

Page 19: OPC .NET 3.0

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

Page 20: OPC .NET 3.0

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

Page 21: OPC .NET 3.0

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

Page 22: OPC .NET 3.0

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

Page 23: OPC .NET 3.0

Interface summary

Page 24: OPC .NET 3.0

Example specification page

Page 25: OPC .NET 3.0

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