Presentation is loading. Please wait.

Presentation is loading. Please wait.

4 Application Layer Protocols

Similar presentations


Presentation on theme: "4 Application Layer Protocols"— Presentation transcript:

1 4 Application Layer Protocols
• Learn the advantages of using OPC • Understand the OPC Client/ Server architecture • Review the milestones in the history of OPC • Understand how to create a connection between an OPC Client and OPC Server • Recognize what factors can affect OPC communication • Review the most widely implemented OPC specification: OPC DA 4 Application Layer Protocols 4.2 Open Process Control (OPC)

2 OPC: Open Process Control
Source:

3 OPC: Open Process Control
Manufacturer-independent application programming interface (API) for automation To implement clients which can access plant data coming from remote devices (PLCs, field bus devices, real-time databases) easily Set of commands collected in a software library (DLL) to access OPC servers OPC clients read and write process variables, read alarms and events and acknowledge alarms, and retrieve historical data from data bases according to several criteria Implemented on automation platforms (e.g. ABB Ax800), which may act themselves as an OPC server to publish their data, events and historical data. OPC server Supplied by manufacturer of automation devices supplies Communicates with its devices through a proprietary protocol Manages several devices of the same type, several servers can run in parallel and each server can be accessed by several clients in the same network

4 Usage and specifications Clients and Servers: configuration
OPC Overview 4.2.1 OPC Overview Usage and specifications Clients and Servers: configuration 4.2.2 OPC Data Access Objects, Types and properties Communication model 4.2.3 OPC Alarms and Events Specification Events Alarm Conditions 4.2.4 OPC Historical Data Specification Overview

5 API covered by the OPC standard
4.2.1 What is OPC ? OPC (formerly: "OLE1 for Process Control", now: "Open Process Control") is an industry standard set up by the OPC Foundation ( specifying the software interface (objects, methods) to a server that collects data produced by field devices and programmable logic controllers. API covered by the OPC standard application (OPC client) servers OPC server X OPC server (simulator) OPC server Y Ethernet : Field bus Manufacturer-independent application programming interface (API - implement clients accessing plant data coming from remote devices (PLCs, field bus devices, real-time databases) easily - set of commands collected in a software library (DLL) to access OPC servers OPC clients read and write process variables, read A&E, and retrieve historical data Implemented on automation platforms (e.g. ABB Ax800 OPC server Supplied by manufacturer of automation devices supplies Communicates with its devices through a proprietary protocol Manages several devices of the same type Several servers can run in parallel and each server can be accessed by several clients in the same network PLCs Brand X PLCs Brand Y Sensors/Actors 1) OLE (Object Linking and Embedding) is a Microsoft technology for connecting software components. It has since been extended by the COM / DCOM technology. It corresponds to Java Beans.

6 Before OPC visualization history data base ABB PLCs Télémécanique PLCs
MasterBus MMS driver Profinet driver XWAY driver ABB PLCs Télémécanique PLCs Siemens PLCs

7 (Information Manager)
With OPC Operator Historian (Information Manager) application software is written independently from the type of controller the drivers still exist, but the clients do not see them anymore ABB OPC server Schneider OPC server Siemens OPC server MMS XWAY ProfiNet ABB AC800M Télémécanique TSX Siemens S7

8 Greatest improvement in automation since IEC 61131.
Importance of OPC Greatest improvement in automation since IEC More than 150 vendors offer OPC servers to connect their PLCs, field bus devices, displays and visualization systems. Used for data exchange between applications and for accessing databases DLL for Automation Interface (VB,..) and Custom applications (C++,..) Three major components: 1) OPC - DA = Data Access (widespread, mature) 2) OPC - AE = Alarms and Events 3) OPC - HDA = Historical Data Access … and some profiles* (batch,…) * A “profile” is a subset or a specialization of a standard to form a stricter standard, adapted to an application. E.g. 100 Mbit/s, full-duplex, fibre-optical Ethernet is a profile of IEEE

9 Specification 1: OPC DA for Data Access
Process variables describe the plant's state, they are generated by the sensors or calculated in the programmable logic controllers (PLCs). Process variables can be sent upon a change, on demand or when a given time elapsed. The OPC DA (Data Access) specification addresses collecting Process Variables. The main clients of OPC DA are visualization and (soft-) control.

10 Specification 2: OPC AE for Alarms and Events
Events are changes in the process that need to be logged, such as "production start" Alarms are abnormal states in the process that require attention, such as "low oil pressure" OPC AE (Alarms and Events) specifies how alarms and events are subscribed, under which conditions they are filtered and sent with their associated messages. The main clients of OPC AE are the Alarms and Event loggers. determine the exact time of change (time stamping) categorize by priorities log for further use acknowledge alarms (events are not acknowledged) link to clear text explanation

11 Specification 3: HDA for Historical Data Access
Historical Data are process states and events such as: process variables, operator actions, recorded alarms,... that are stored as logs in a long-term storage for later analysis. OPC HDA (Historical Data Access) specifies how historical data are retrieved from the logs in the long-term storage, filtered and aggregated (e.g. compute averages, peaks). The main client of OPC HDA are Trend Displays and Historians.

12 Beyond Microsoft: OPC UA
In a move to get more independence from Microsoft and use web technology, a new specification called " Unified Architecture" (formerly. OPC XML) that uses web services for all kinds of transactions: query, read, write, subscribe,... The classical OPC DA, AE and HDA are implemented with XML / SOAP / WSDL this allows encryption and authentication of process data. OPC UA does not only standardize the interfaces, but also the transmitted data.

13 Usage and specifications
Client and Servers 4.2.1 OPC Overview Usage and specifications Clients and Servers: configuration and communication 4.2.2 OPC Data Access Objects, Types and properties Communication model 4.2.3 OPC Alarms and Events Specification Events Alarm Conditions Automation Interface 4.2.4 OPC Historical Data Specification Overview

14 Server(s) and Client(s) in the same node
client application (OPC client) client application (OPC client) OPC server OPC server OPC server devices devices devices devices Clients and servers run as parallel processes The OPC specification defines the interface between client and server in the form of objects and methods.

15 OPC for internal communication: ABB’s SCADA (800xA) as example
ABB's Operator Workplace (800xA) is at the same time OPC server and OPC client. Software components (agents) within AIP expose their properties as OPC objects. Internal (within the PC) and external communication (between PCs) takes place over OPC. 800xA aspects aspects Enterprise Historian Asset Optimizer functions OPC server Windows PC process data base OPC connections OPC client ABB OPC server Schneider OPC server Siemens OPC server

16 Direct and Fieldbus access
direct connection fieldbus connection client application (OPC client) client application (OPC client) (local) OPC server (local) OPC server FB Manager fieldbus can also be a point-to-point link proprietary protocol I/O devices fieldbus fieldbus The OPC server is running all the time, even if no client is present FB agent FB agent PLC PLC

17 Accessing a server in another node
client application (OPC client) stub DCOM TCP/IP DCOM TCP/IP TCP/IP DCOM DCOM OPC server OPC server Limitation: does not work over firewalls. Solution: Tunneller OPC UA FB Manager fieldbus

18 What is the objective of OPC ? On which technology does OPC rely ?
Assessment Overview What is the objective of OPC ? On which technology does OPC rely ? What is an OPC Server ? What do the main OPC specifications describe ? How can an OPC Server access data on another machine? And how does it work for OPC clients?

19 Usage and specifications Clients and Servers: configuration
OPC Data Access 4.2.1 OPC Overview Usage and specifications Clients and Servers: configuration 4.2.2 OPC Data Access Objects, Types and properties Communication model 4.2.3 OPC Alarms and Events Specification Events Alarm Conditions Automation Interface 4.2.4 OPC Historical Data Specification Overview

20 OPC DA: Item properties
The process data are represented by three dynamic properties of an item: value: numerical or text time-stamp: time at which this data was transmitted from the PLC to the server UTC, not local time. quality: validity of the reading (not readable, dubious data, o.k.) optional static properties description: a text string describing the use and of the variable (optional) engineering unit: the unit in which the variable is expressed (optional) ID V Q T D U

21 OPC DA: Objects as viewed by the OPC server
An OPC server is structured as a directory with root, branches and leaves (items) Process Line 1 Tag Name Controller 1 Controller 2 TAG Level_1 An item is identified by its "fully qualified ItemID", e.g. "Process_Line_1.Controller_2.Level_2" Controller_3.Prog_1 TAG Level_2 Controller_3.Prog_2 TAG Ramp4 Cell 1 Machine 2 Branches may contain other branches and items The structure may also be flat instead of hierarchical This structure is defined during engineering of the attached devices and sensor/actors. (Intelligent servers can configure themselves by reading the attached devices)

22 OPC DA: Objects as viewed by the OPC client
A client builds its own hierarchy, using the server’s hierarchical view. Items in the server are defined by the programmer of the PLC A full-fledged PLC may export some 10’000 items, a client needs only a subset. A client builds groups, populating them with items it is interested in. Items of a group are expected to have similar real-time requirements Groups are not hierarchical, but flat.

23 OPC DA: Mapping items to groups
Each client structures its items by groups, independently from the server. Initially, the client browses the server structure to check if the items it is interested in exist. A client registers its groups and items at the server. The server keeps the structure of all its clients. clients Client1 Client2 GroupX GroupZ Item1 Item2 Item3 Item1 Item2 Server root server Area 1 Oven_1 TAG Temperature TAG Heat_On Tank_1 TAG Level Area 2 TAG Empty_Valve Fill_Valve Area 51 TAG

24 OPC DA: Communication Model
4.2.1 OPC Common Overview: usage and specifications Clients and Servers: configuration 4.2.2 OPC Data Access Objects, Types and properties Communication model 4.2.3 OPC Alarms and Events Specification Events Alarm Conditions Automation Interface 4.2.4 OPC Historical Data Specification Overview

25 4.2.2 OPC DA: Example of access to a variable
controller program OPC application Reactor_1.Program2 ReadItem ("OPC:Reactor1: Program2.MotorSpeed") MW%1003 MotorSpeed Value: 112 MW%1004 Temperature …. load symbol table symbols OPC server code Get () , MW%1003) Return (MW%1003, 112) Network Program 2 Reactor_1 Marker: MW%1003

26 OPC DA: Read Communication Models (per group)
synchronous asynchronous client server client server Call Call myGroup.SynchRead() myGroup.AsyncRead() Reply Reply myGroup_AsyncReadComplete() client server Subscribe myGroup.IsSubscribed on change ("subscription-based") The OPC interface accesses only groups, not individual items. Notify myGroup_DataChange() Notify myGroup_DataChange()

27 OPC DA: Write Communication Models (per group)
client server client server Call Call myGroup.SynchWrite() myGroup.AsyncWrite() Reply Reply myGroup_AsyncWriteComplete() The OPC interface accesses only groups, not individual items.

28 OPC DA: communication paradigm
OPC DA works according to the “shared memory” paradigm. This means that a newer value overwrites the older one, no queues or history are kept. The server does not guarantee that different clients see the same snapshot of the plant. The server does not guarantee that all changes to variables are registered, changes may be missed if the polling period is too long. OPC DA Client OPC DA Client OPC DA Server

29 What are the DA the read and write operations ?
OPC DA: Assessment How does the OPC server know a) where to fetch an item? b) which items belong to which group? What are the DA the read and write operations ? Is communication done by items, by groups or by collection of groups ? Why? Can a change of an OPC variable be notified as an event, or shall the client poll ? What are the implications of the shared memory paradigm for the application developer? a) Loads symbol table from PLC b) it keeps a record of each client and its groups Read: sync, async, on change Write: sync, async Client asks for groups (can define what belongs to them by itself), server depends on proprietary protocol Can be done event-based, depends on application Developer must no rely on assumption of consistent snapshot of plant

30 Usage and specifications Clients and Servers: configuration
OPC Alarms and Events 4.2.1 OPC Overview Usage and specifications Clients and Servers: configuration 4.2.2 OPC Data Access Objects, Types and properties Communication model 4.2.3 OPC Alarms and Events Specification Events Alarm Conditions 4.2.4 OPC Historical Data Specification Overview

31 Alarms and Events: Purpose
The controllers (PLC) generate events in response to changes in the plant variables. together with their precise time of occurrence, type, severity and associated message for the human operator. An OPC AE server registers these events and makes them available to several clients Alarms are described as state machines and may require acknowledgement. The OPC Alarms & Events Interface gives access to the AE server, allowing to: - browse the OPC AE Server for predefined events. - enable or disable alarms and events - subscribe to alarms and events of interest - receive the event and alarm notifications with the associated attributes - acknowledge alarms

32 AE: Definitions An event is a general change of state that is relevant to the OPC server. An event signal a change: 1) in the field device ("production started") 2) in the OPC server ("alarm acknowledged") 3) in the application ("operator action") An alarm indicates a state of the process that requires attention and is relevant to the OPC server. An alarm is represented by an alarm condition, which is a state machine determining if the alarm has been enabled, triggered or acknowledged. An alarm rises several events. An event or an alarm does not transmit process values, but boolean information indicating a change of state, its originator, the time of its occurrence and a message intended for a human operator. Alarms and events may not get lost (contrarily to OPC DA, which does not guarantee completeness) Alarms and event are precisely time-stamped by their source, (contrarily to process variables, which are time-stamped by the receiving OPC server).

33 AE: communication paradigm
OPC AE works according to the “message passing” paradigm, contrarily to OPC DA, that works according to the "shared memory" paradigm. This means that an event is kept in a queue until all clients have read it (or timed out). The AE server guarantees that different clients will see all events in the same sequence. OPC AE Client OPC AE Client OPC AE Server 12: 12:

34 AE: Displaying Alarms and Events
Alarms and events are usually displayed differently on an operator screen. - Events are displayed in an event list that can become quite long (typically 1000 entries), entries are not cleared when the source of the event returns to normal - Alarms are displayed in a short list (typically 50 alarms) appearance changes when the alarm is acknowledged, an alarm line is cleared when the alarm signal is cleared (but remains in the log). Ack checkbox

35 Usage and specifications Clients and Servers: configuration
AE: Events 4.2.1 OPC Overview Usage and specifications Clients and Servers: configuration 4.2.2 OPC Data Access Objects, Types and properties Communication model 4.2.3 OPC Alarms and Events Specification Events Alarm Conditions 4.2.4 OPC Historical Data Specification Overview

36 AE: Events kinds OPC AE defines three kinds of events: simple: process control system related events (change of a boolean variable) condition-related: notifies a change of an alarm condition (CLEARED, ACKNOWLEDGED), (see later) tracking-related: origin outside of the process (e.g. operator intervention)

37 AE: Event- identification
An event is identified by - its source (the object that generates the event. e.g. Tank1) and - the event name (which can be the same as in another object, e.g. HiLevelCond) HiLevelCond HiLevelCond event event Function Block LoLevelCond LoLevelCond event event event name Tank1 Tank2 event signal (boolean expression) is an external signal to be used ?(boolean) signal name for external signal (20 characters) name of the source (30 characters) message (60 characters)

38 AE: Events - Notification
Tank1LevelHigh_SimpleEvent (source, timestamp, message, severity, category) AE Client specified communication COM/DCOM OPC AE Server queue unspecified communication network, fieldbus or internal bus event notification message Controller timestamp Event FB Tank1 Plant Level Switch

39 AE: Events - Time Stamp There are three places where events can be time-stamped: - at the device that originally produced the data (external event - low-level event) allowing Sequence-Of-Events with a high accuracy, down to microseconds - at the controller, (internal event) using the controller's clock to time-stamp messages giving accuracy not greater than the period of the tasks, about 1 ms. - at the OPC Server, when an event message arrives (tracking events) not more accurate than DA, about 10 ms) The OPC server can be configured to register the time stamp at the instant of the event transition (positive or negative) and the instant of the acknowledgement.

40 Overview: usage and specifications Clients and Servers: configuration
AE: Alarm conditions 4.2.1 OPC Common Overview: usage and specifications Clients and Servers: configuration 4.2.2 OPC Data Access Objects, Types and properties Communication model 4.2.3 OPC Alarms and Events Specification Events Alarm Conditions 4.2.4 OPC Historical Data Specification Overview

41 AE: Alarms - Condition Definition
An (alarm) condition is described in a named state machine The condition state is defined by three variables: Enabled: the condition is allowed to send event notifications Active: the alarm signal is true Acknowledged: the alarm has been acknowledged Alarm signal (e.g. FIC101.PV > 100 AND FIC101.PV < 150) Condition Acknowledgement signal (a positive transition of a boolean variable) Condition state Enable (positive transition) Disable (positive transition)

42 AE: Alarms - Condition states and acknowledgement
event notification alarm signal acknowledgement Inactive Acked Active Unacked Active Acked Inactive Acked Active Unacked Inactive Unacked Inactive Unacked Inactive Acked condition state alarm_signal  condition state transitions (here: always enabled) Enabled Inactive Acked alarm_signal  EnabledActive Unacked EnabledActive Acked Ack  Ack  alarm_signal  Enabled Inactive Unacked alarm_signal  An event is generated each time the alarm signal changes state, or is acknowledged

43 AE: Alarms - Acknowledgement
An alarm condition becomes active when the PLC produces an alarm signal describing an abnormal state defined by the application (e.g. the level of the tank is too high). The operator is expected to acknowledge this condition (client ack) Alternatively, a local operator may use a button or HMI that the PLC reads (field ack) event notification Tank1Level_ConditionEvent AE Client client ack (acknowledger ID) COM / DCOM OPC AE Server Network, field bus, or internal bus message Condition time- stamp LevelHigh controller AckButton (field ack) Alarm Signal

44 AE: Summary alarms and events
AE Client AE Client COM / DCOM OPC AE Server OPC AE Server event notification (source, timestamp, message) alarm notification (source, timestamp, message, condition, subcondition, severity, type) message Condition timestamp Event FB message controller controller event alarm ack

45 What is the difference between Alarms and Events?
OPC A&E: Assessment What is the difference between Alarms and Events? Where are Alarms and Events time stamped? How does the “message passing” paradigm influence the OPC client application developer? E: state change, A state that can trigger event notifications Depends, accuracy varies Ensures the same sequence of events is seen by all clients

46 Usage and specifications Clients and Servers: configuration
OPC Common Overview 4.2.1 OPC Overview Usage and specifications Clients and Servers: configuration 4.2.2 OPC Data Access Objects, Types and properties Communication model 4.2.3 OPC Alarms and Events Specification Events Alarm Conditions 4.2.4 OPC Historical Data Specification Overview

47 GE Fanuc/Intellution iHistorian (iFix...)
Historian Example GE Fanuc/Intellution iHistorian (iFix...) Questions to the historian: What was the value of FIC101 last week ? What was the flow average during October ? Which were the daily averages in October ? What was the total flow in each month ? How much fuel did we use for the batch ? Give the answers in form of tables, pie diagrams, spreadsheet, reports Features: Unlimited Point Collection Sub-Second Data Collection Rates Enhanced Data Compression True Thin Client Administration Fault Tolerant Architecture Data collection, archiving and retrieval Report generation Computations (e.g. VBScript) Secure access (FDA 21 CFR 11) 20'000 actions/ s, Up to 100'000 data points

48 HDA: Historical Data Access
e.g. Trend Analysis e.g. Event Logger HDA Clients independent processes OPC HDA Server hidden calculations history database raw and ordered data collector OPC DA Server proprietary data acquisition Field device Field device

49 HDA: Purpose An OPC HDA server gives access to a historical data base (logs) in which data from the process have been collected and time-stamped, possibly through an OPC DA interface. The OPC HDA interface clients, such as trend analysis, product tracking or data mining, that require ordered access these data logs. The OPC HDA interface allows to: - browse the historical data base - retrieve data through proper filtering, e.g. by date range, by identity, by property - build aggregates over the retrieved data, such as average, minimum, maximum. - enter new entries, correct entries or remove entries - enter / delete annotations in the history data base

50 Data in the historical database are identified by their
HDA: Raw log :40 Gpcpt2ofpbonne 4824 By definition, values are registered when they change. (even if data are acquired by periodic polling) :40 Cpt2bac 50 :40 Gpcpt2bac 70 :40 Gpcptbe2 45 :41 Gpcpt1bac 151 :41 Gpcpt1ofpbonne 4826 Data in the historical database are identified by their itemID (here, represented by their name), value, (of the respective type) quality (good, stale, bad), and timestamp (UTC). :41 Gpcptae2 45 :41 Cpt1bac 49 :41 Gpdefr2 64 :41 Gpvoydef 2 :41 Gpr3tempscycleprd 318 :42 Gpstn1e1 16 :42 Gpalarme1 :42 Gpalarme2 :43 Gpetatmodemarche 2 :43 Gptpscycle 1346 :43 Gpetatmodemarche 1 :43 Gpdefgene1 16 :43 Gpetatmodemarche :43 Gptpscycle 317 :43 Gpdefr2 :43 Gpvoydef :43 Gpdefgene1 :44 Gpetatmodemarche 1 :44 Gpr2tempscycleprd 1992 :44 Gptpscycle 435 :44 Gpalarme3 1 :44 Gpalarme4 1 :44 Gpalarme3 :44 Gpcpt2ofpbonne 4823

51 HDA: How to reduce raw data (even before HDA comes into play)
Data sent to the OPC DA server on change, collector records data in a circular buffer log Since storage capacity is limited, data are reduced by: if a variable is received more often than the log's minimal storage interval (e.g. 1s), the log keeps the latest of all values of the interval if (and only if) a received variable changed by more than the "exception deviation" (e.g. 5%, analog values only), it is entered into the log. if a variable changed by less than the exception deviation, it may be forced into the log after the log's maximum storage interval (e.g. 4 s) elapsed. min time max time max time max time max exception deviation min time = process value (event) = log entry If the time scale of the log is smaller than that of the trend display in this case, values have to be interpolated to be displayed correctly

52 HDA Application: Trend Display
Parameters: time scale (with possible offset, zoom, pan) amplitude scale (low range, high range, scale units) style: smoothed, stepped, filled (several ways to display the same data) extrapolate: how to display values not received (e.g. because they did not yet change) log: how were data sampled

53 HDA: Hierarchical logs
long-term log 1 hour_forever  5.2 MB / Year 1 2 3 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 september octobre october 1 mn_7 days log  6 MB yesterday d-2 d-3 d-4 d-5 d-6 d-7 today 1s_24 hours log: 50 12 B  52 MB 23 24 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 A hierarchical log is built on the data contained in the parent log. To reduce the log size, several aggregations can be applied: - record only maximum, minimum, average over a period, etc... Actual data

54 Toy Examples: Logging Temperature
Logging Temperature Data using OPC Task Overview •  Log Temperature Data to Matrikon OPC Server using •  Create and use Aliases in the OPC Server •  Read Temperature Data from MatrikonOPC Server •  Scaling/ConverCng funcConality inside the OPC Server •  Read Temperature Data from MatrikonOPC Server in a client App

55 Real-Life Examples and Exercise
Integration of redundant GE Mark V turbine controllers at a power plant The controllers were going to tie into the plant’s main DCS, an ABB Advant control system. Process Portal B and MicroSCADA client applications were used to visualize process data from the turbine controllers. Exercise: Draw schema of system and describe which OPC specifications are used and how. Wind Generation AES Wind Generation manages 7 different wind farms across the United States, five of which comprise more than 500 turbines, with a total generating capacity of over 700 MW. There are six different turbine models, from four different manufacturers. Exercise: Explain which OPC concepts are useful in this context and how they can be applied to support a SCADA system 1. What is an OPC server? What does it communicate with? 2. What are the services of a OPC DA server? 3. What are the services of a OPC AE server? 4. What is the paradigm difference between OPC DA and OPC A&E? 5. What are the main purposes of the OPC HDA? and

56 To probe further…. OPC Foundation: Specifications SoftwareToolbox Examples in Visual Basic The Code Project OPC and .NET Matrikon Free client and server: WinTech Toolkit for an OPC server NewAge Automation Toolkit for an OPC server


Download ppt "4 Application Layer Protocols"

Similar presentations


Ads by Google