EPFL, Spring 2017
4 Application Layer Protocols Device Management Protocols - - PowerPoint PPT Presentation
4 Application Layer Protocols Device Management Protocols - - PowerPoint PPT Presentation
EPFL, Spring 2017 4 Application Layer Protocols Device Management Protocols Application layer protocols offering remote services for large networks of devices: - Monitoring (health of devices and network, get current state) - Management
Industrial Automation | 2017 2
Application layer protocols offering remote services for large networks of devices:
- Monitoring (health of devices and network, get current state)
- Management (deployment, configuration, change settings)
- current loop 4..20 mA
- HART
- SNMP: Simple Network Management Protocol
- MMS: Manufacturing Messaging Specification
Device Management Protocols
Industrial Automation | 2017 3
Current Loop
The classical solution for analogue values Example differential pressure transducer 4..20 mA current loop fluid Reminder:
Industrial Automation | 2017 4
4.1.2 HART
Data over 4..20 mA loops Practically all 4..20mA devices come equipped with HART today About 15 Mio devices are installed worldwide.
more info: http://www.thehartbook.com/default.htm http://www.hartcomm.org/
Reminder: Reminder:
Industrial Automation | 2017 5
The Round card
Standardized printed circuit board
- can be mounted in instrument
- contains modem, processor, RAM, EPROM… necessary
to execute the HART protocol. Why round? Most hydraulic instruments have a round case.
http://www.fint.no/ha-i4012.pdf
Industrial Automation | 2017 6
HART commands summary
Universal Commands Common Practice Commands Device-Specific Commands (example)
- Read manufacturer and device type
- Read variable and units
- Read current output and percent of
range
- Read up to four predefined dynamic
variables
- Read/write tag, descriptor, date
- Read/write 32-character message
- Read device range values, units, and
damping time constant
- Read or write final assembly number
- Write polling address
- Read selection of up to four dynamic
variables
- Write damping time constant
- Write device range values
- Calibrate (set zero, set span)
- Set fixed output current
- Perform self-test
- Perform master reset
- Trim variable zero
- Write variable unit
- Trim DAC zero and gain
- Write transfer function (square
root/linear)
- Write sensor serial number
- Read or write dynamic variable
assignments
- Read or write low-flow cut-off
- Start, stop, or clear totalizer
- Read or write density calibration
factor
- Choose variable (mass, flow, or
density)
- Read or write materials or
construction information
- Trim sensor calibration
- enable PID, write PID setpoint
- Valve characterization
- Valve setpoint
- Travel limits
- User units
- Local display information
Industrial Automation | 2017 7
Device access
modem network adapter
13.32 9.8 0.8
field device
type manufacturer
network adapter
device volumetric flow rate FlowPro ABB velocity 13.32 m2/s
- diff. pressure
9.8 Pa density 0.8 kg/l volumetric flow rate cross sectional area: pipe inside diameter 3 cm2 2 cm
hand-held device
network adaper
SCADA
4-20 mA loop for HART
Industrial Automation | 2017 8
SNMP:Simple Network Management Protocol
Industrial Automation | 2017 9
Simple Network Management Protocol
IETF (Internet standard) protocol for device and network management (widely supported, especially by routers, switches, servers, workstations, printers…). Configuration Management Keeping track of device settings Fault management Dealing with problems and emergencies (router stops forwarding, server loses power, etc) Performance Management How smoothly is network running? Can it handle the current workload?
Industrial Automation | 2017 10
SNMP - MIB objects
TCP/UDP/IP (171 objects) NT network (90 objects) DHCP (14 objects) WINS (70 objects) Appletalk Nowell IPX DecNet ….. CISCO (proprietary) Mostly parameters, statistics and error counters used for communication Agent MIB networked device Device contains MIB (managed information base) and an agent to access MIB
Industrial Automation | 2017 11
tcpMaxConn OBJECT-TYP SYNTAX Integer32 (-1 | 0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The limit on the total number of TCP connections the entity can support. In entities where the maximum number of connections is dynamic, this object should contain the value -1." ::= { tcp 4 } tcpActiveOpens OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of times that TCP connections have made a direct transition to the SYN-SENT state from the CLOSED state. Discontinuities in the value of this counter are indicated via discontinuities in the value of sysUpTime." ::= { tcp 5 }
http://net-snmp.sourceforge.net/docs/mibs/TCP-MIB.txt
SNMP – ASN.1 Object example
Industrial Automation | 2017 12
Example SNPM Network
Industrial Automation | 2017 13
SNMP - Access to Managed Objects
management messages
- bject interface
User managed information base MIB Manager Agent network
UDP IP ISO 8802-2 Type 1 ISO 8802-3 (Ethernet) UDP IP ISO 8802-2 Type 1 ISO 8802-3 (Ethernet)
call
(indication)
call
(request)
reply
(confirm)
reply
(response)
Industrial Automation | 2017 14
SNMP - Operations on objects
Operations (PDU type): Get (read) Set (write) GetNext (transversal reading) GetBulk (optimized GetNext, v2 and v3) Response (variable bindings and acknowledgement) Trap (asynchronous agent notification, priorities) Since SNMPv1/SNMPv2 do not provide authentication, “Set” commands are normally
- disabled. Traps are rarely used.
Industrial Automation | 2017 15
Example Network and Queries
Industrial Automation | 2017 16
ISO defined a world-wide addressing scheme on a hierarchical basis: MIB objects are identified by a concatenation of numerical identifiers quite wasteful, but bearable in LANs
SNMP - How are objects identified ?
Industrial Automation | 2017 17
SNMP example of identification
.1.3.111.3.37.238.9999.1.1.2 == .iso.org.ieee.standards-association-c-series-standards.std-c37.part238. ieeeC37238TSMib.ieeeC37238Objects.ieeeC37238DefaultDS.ieeeC37238DefaultDSClkIdentity
Industrial Automation | 2017 18
SNMP - Assumptions about the underlying communication network
- the network is connectionless (datagrams): only UDP is used (no TCP).
- manager and agent can send messages to each other spontaneously
- all entities must be able to receive and send packets of at least 484 octets
- the network supports broadcast
Further reading: www.wtcs.org/snmp4tpc/files/reference/francois/snmp.ppt
Industrial Automation | 2017 19
Manufacturing Messaging Specification (MMS)
Action Program Invocation Named Variable Named Variable List File Types Semaphore Event Enrolment Transaction Domain Operator Station Journal Event Condition Event
schedule robot configuration
Industrial Automation | 2017 20
Interaction between Operator Workplace and field equipment
SCADA (client)
(any technology)
controller (server)
(any technology) represents automation objects, i.e. a collection of PLC1 variables
network
(any)
manufacturing devices
represent pieces of equipment
MMS: access all controllers, regardless of the manufacturer, in the same way.
Industrial Automation | 2017 21
response status value
The basic MMS idea: read a variable
client
(any technology)
server network
(any)
I / O devices
request variable name read
basic MMS idea: read and write equipment variables using standard messages.
Industrial Automation | 2017 22
MMS - Manufacturing Message Specification
Developed 1980 for General Motor’s flexible manufacturing initiative Reputation: heavy, complicated and costly (due to poor implementation) But:
- Boeing adopted MMS (on Ethernet)
- Adopted by the automobile industry and power distribution
Standardized as:
[1] ISO/IEC 9506-1: Industrial Automation systems – Manufacturing Message Specification - Part 1: Service Definition (IS 1990) [2] ISO/IEC 9506-2: Industrial Automation systems – Manufacturing Message Specification - Part 2: Protocol Specification (IS 1990)
Industrial Automation | 2017 23 device
MMS server
communication stack
MMS - Manufacturing Message Specification
network
linking device router device
request (command) response (reply)
MMS client MMS specifies a set
- f objects an MMS
server contains MMS specifies a set
- f messages which
to control an MMS server allow an MMS client
communication stack
MMS specifies how messages are encoded for transmission
Application Application MMS does not specify the application interface
Industrial Automation | 2017 24
MMS - Communication Stack
Association Control Service Element, ACSE, ISO 8649/8650, N2526,N2327
ISO 8473 connectionless ISO 8802-3 (Ethernet)
Physical Link Network Transport
ISO 8802-4 ISO 8073 Class 4 ISO 8326/8327 Abstract syntax notation,ISO 8822/8823, 8824/8825
Presentation
ISO 8802-2 Type 1
MAC Application Session
quite heavy… Boeing decided to drop ISO for TCP/IP ("TOP“).
(token bus)
MMS
Industrial Automation | 2017 25
MMS in the fieldbus stack context
time-critical process variables time-benign messages Physical Link (Medium Access) Network (connectionless) Transport (connection-oriented) Session Presentation Application (Association)
7 6
Remote Procedure Call
5 4 3 2' 1
time-critical applications (PLC tasks)
connectionless connectionless
real-time traffic (not MMS)
connection-oriented medium access implicit (ASN.1) implicit
Logical Link Control
2"
media
common MMS real-time data base
MMS is not for real-time communication, but it can access the real-time variables
time-benign applications (HMI, download)
Industrial Automation | 2017 26
MMS - Basic Communication Principles
Remote Procedure Call (Call paired with reply, synchronous, unicast) Event Reporting (spontaneous messages sent by server) 1) 2)
Addressing not specified, messages contain communication reference to identify connection. Usually, clients/servers are addressed by IP address and MMS server uses port number 102.
Indication
MMS Responder (server)
Request Confirmation Response
network
Indication Request processing event
MMS Requester (client) MMS assumes that the communication stack offers two services:
Industrial Automation | 2017 27
MMS - Event services
MMS provides services to:
- Event Condition (define boolean condition that triggers event and its priority)
- Event Enrolment (define MMS client(s) to notify when event is triggered)
- Event Action (define MMS service to be executed when event occurs)
MMS client MMS client
(MMS server)
enables/disables event conditions event notification and confirmation
Event Action Event Enrolment Event Condition
What? Who? When?
Events are the most complicated part of MMS
Industrial Automation | 2017 28
MMS - Event triggering
MMS client MMS client
MMS Server
NETWORK- TRIGGERED plant
Event Action Event Enrolment Event Condition
Events are triggered by a change in a boolean variable in the server (monitored event) or by MMS client (trigger event) as an invitation procedure
cyclic monitoring
boolean variable
MONITORED
Industrial Automation | 2017 29
VMD: Virtual Manufacturing Device
Definition of objects, services, and behavior
- Only specifies the network-visible aspects (device / application communication)
- Internal implementation details (programming language, operating system, CPU type, input/output
(I/O) systems) not specified by MMS interoperability
flow meter robot Application Programming Interface (MMSI = MMS interface) Virtual Device Virtual Device Virtual Device
communication stack
physical link network transport session presentation cell
Industrial Automation | 2017 30
MMS - Importance
- Used as reference model for industry, not just implementation.
- High complexity makes it very general, but required bandwidth and computing power were
- ut of reach until few years ago.
- Part of almost every PLC today.
- Gave rise to several other "simpler" models (DLMS, BacNet, FMS....)
- Base of IEC 61850 „Communication networks and systems in substations“ together with
TCP/IP/Ethernet.
http://lamspeople.epfl.ch/kirrmann/mms/
For more information, see:
http://www.nettedautomation.com/qanda/mms/#OPC/MMS
Industrial Automation | 2017 31
Exercise
Fill in and extend the table Criteria 4-20mA loop HART SNMP MMS Criteria Real time Monitoring Management Event handling
- Comm. Pattern
Security Application area …
Industrial Automation | 2017 32
Assessment
What is the purpose of the HART protocol ? Which communication is used between a hand-help and a field device ? Which categories of HART commands do exist ? What distinguishes Hart from SNMP ? What distinguishes SNMP from MMS ? What are the (dis)advantages of MMS ?
Industrial Automation | 2017 33
Open Process Control (OPC)
Industrial Automation | 2017 34
Open Process Control: API for Automation
Manufacturer-independent application programming interface (API)
- To implement clients which can access plant data coming from remote devices (PLCs, field
bus devices, real-time databases) easily
- Set of commands to access OPC servers
OPC clients
- Read and write process variables, read alarms and events, acknowledge alarms, retrieve
historical data from data bases according to several criteria
- Implemented on automation platforms (e.g. ABB Ax800), which may act themselves as OPC
servers 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, each server
can be accessed by several clients in same network
Industrial Automation | 2017 35
4.2.1 OPC Overview Usage and specifications 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
OPC Specifications
Industrial Automation | 2017 36
4.2.1 What is OPC ?
Industry standard set up by the OPC Foundation (http://www.opcfoundation.org/) specifying the software interface (objects, methods) to a server that collects data produced by field devices and programmable logic controllers.
OPC server X application (OPC client) OPC server (simulator) OPC server Y
API covered by the OPC standard servers PLCs Brand X : Field bus Ethernet Sensors/Actors PLCs Brand Y
Industrial Automation | 2017 37
Before OPC
ABB PLCs Télémécanique PLCs Siemens PLCs
MasterBus MMS driver XWAY driver Profinet driver
visualization history data base
Industrial Automation | 2017 38
With OPC
ABB AC800M Télémécanique TSX Siemens S7
ABB OPC server Schneider OPC server Siemens OPC server
Operator application software is written independently from the type of controller Historian (Information Manager)
MMS XWAY ProfiNet
Proprietary drivers still exist, clients do not see them anymore
Industrial Automation | 2017 39
Importance of OPC
- Greatest improvement in automation since IEC 61131.
- 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
- 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 802.3.
Industrial Automation | 2017 40
Specification 1: OPC DA for Data Access
Process variables describe a plant's state, generated by the sensors or calculated in the programmable logic controllers (PLCs).
Process variables sent upon a change, on demand or when given time elapsed. OPC DA (Data Access) specification addresses collecting Process Variables. It provides services for reading and writing Process Variables. Main clients of OPC DA are visualization and (soft-) control.
Industrial Automation | 2017 41
Specification 2: OPC AE for Alarms and Events
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
Events are changes that need to be logged, such as "production start" Alarms are abnormal states that require attention, such as "low oil pressure" OPC AE (Alarms and Events) offers services to specify alarms and events, their subscription, under which conditions they are filtered and sent with their associated messages. The main clients of OPC AE are the Alarms and Event loggers.
Industrial Automation | 2017 42
Specification 3: HDA for Historical Data Access
Historical Data are process states and events (process variables, operator actions, recorded alarms,...) stored as logs in a long-term storage for later analysis.
OPC HDA (Historical Data Access) offers services to specify how historical data are retrieved, filtered and aggregated (e.g. compute averages, peaks). The main client of OPC HDA are Trend Displays and Historians.
Industrial Automation | 2017 43
Server(s) and Client(s) in the same node
OPC server client application (OPC client) OPC server OPC server client application (OPC client)
Clients and servers run as parallel processes The OPC specification defines the interface between client and server in the form
- f objects and methods.
devices devices devices devices node
Industrial Automation | 2017 44
OPC for internal and external communication
800xA
aspects
OPC server
process data base aspects functions ABB OPC server Schneider OPC server Siemens OPC server
OPC client
External communication ABB SCADA 800xA as an example Internal communication
Enterprise Historian Asset Optimizer
External communication
Industrial Automation | 2017 45
OPC UA (IEC 62541)
http://wiki.opcfoundation.org/index.php/Main_Page
OPC UA is a service-oriented communication framework for the exchange of information models, replacing OPC “Classic” which was based on Microsoft DCOM communication. Service provider receives requests, processes them and sends results back. In contrast to classic Web services that describe their services over a WSDL and can thus be different with each service provider, generic services are already defined with OPC-UA
Industrial Automation | 2017 46
OPC UA Data Model
Specialized models extend the base model by adding functionality like DA, AE, HDA,...
Industrial Automation | 2017 47
OPC UA Communication
OPC UA does not only standardize the interfaces, but also the transmitted data and enables encryption and authentication of process data. Address space is structured hierarchically for interoperability. Top levels are standardized for servers.
More info: https://opcfoundation.org/wp-content/uploads/2016/05/OPC-UA-Interoperability-For-Industrie4-and-IoT-EN-v5.pdf
Two main protocol bindings available: 1.
- ptimized TCP-based binary protocol
2. HTTP/HTTPS web service with binary or XML messages Discovery mechanisms:
- identification of devices and their functions
within a network.
- aggregation across subnets and intelligent,
configuration-less procedure (e.g. Zeroconf) to identify and address network participants.
Industrial Automation | 2017 48
Assessment Overview
- What is the objective of OPC ?
- What is an OPC Server , what an OPC client ?
- What do the main OPC specifications describe ?
- On which technologies does OPC UA rely ?
Industrial Automation | 2017 49
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
Industrial Automation | 2017 50
OPC DA: Objects as viewed by the OPC server
Controller 1 Machine 2 Controller 2 Controller_3.Prog_2 Controller_3.Prog_1 Cell 1
branch
Structure is defined during engineering of the attached devices and sensor/actors.
leaf (item)
Level_1 Level_2 Ramp4
TAG TAG TAG
fully qualified ItemID
Process_Line_1.Controller_2.Level_2
Process Line 1
root
Industrial Automation | 2017 51
OPC DA: Objects as viewed by the OPC client
- full-fledged PLC may export some 10’000 items
- client needs only a subset.
client builds flat groups of items with similar time requirements
GroupX GroupZ Item1 Item2 Item3 Item1 Item2
...
Industrial Automation | 2017 52
OPC DA: Mapping items to groups
- client registers groups at server.
- server keeps structure of all its clients.
Temperature Heat_On TAG TAG Server root
GroupX
Level Empty_Valve Fill_Valve TAG TAG TAG Area 1 Area 51 Oven_1 Tank_1 Area 2
GroupZ Client1 Item1 Item2 Item3 Item1 Item2
server
clients Client2
Industrial Automation | 2017 53
4.2.2 OPC DA: Example of access to a variable
Network
controller program
OPC server
Reactor_1
MW%1003 MotorSpeed MW%1004 Temperature … ….
symbols load symbol table
ReadItem ("OPC:Reactor1: Program2.MotorSpeed") Get () 192.162.0.2, MW%1003) Return (MW%1003, 112)
Reactor_1.Program2
code
Marker: MW%1003
OPC application
Industrial Automation | 2017 54
server
Subscribe Notify
OPC DA: Read Communication Models (per group)
myGroup.SynchRead()
client
Call Reply myGroup.IsSubscribed myGroup_DataChange() myGroup.AsyncRead() myGroup_AsyncReadComplete()
server
Call Reply myGroup_DataChange()
server client client synchronous asynchronous
- n change
("subscription-based")
Notify
Industrial Automation | 2017 55
OPC DA: Write Communication Models (per group)
myGroup.SynchWrite()
client
Call Reply myGroup.AsyncWrite() myGroup_AsyncWriteComplete()
server
Call Reply
server client
The OPC interface accesses only groups, not individual items.
Industrial Automation | 2017 56
OPC DA: Communication paradigm
shared memory: newer value overwrites the older one No guarantees
- for same snapshots on different clients
- changes may be missed depending on polling period
OPC DA Client OPC DA Client OPC DA Server
Industrial Automation | 2017 57
OPC DA: Assessment
- 1. How does the OPC server know
a) where to fetch an item? b) which items belong to which group?
- 2. What are the DA the read and write operations ?
- 3. Is communication done by items, by groups or by collection of groups ? Why?
- 4. Can a change of an OPC variable be notified as an event, or shall the client poll ?
- 5. What are the implications of the shared memory paradigm for the application developer?
Industrial Automation | 2017 58
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
Industrial Automation | 2017 59
e.g.
- production start
- perator pressed
button
Alarms and Events: Purpose
OPC AE server registers alarms and events and makes them available to clients Event: represents change. Alarm: state machines, may require acknowledgement. Services offered by OPC AE server
- browse 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
Alarms and events must not get lost!
e.g.
- handle low tank level
Wandida: https://www.youtube.com/watch?v=kP0tW6yqpX4&t=3s
Industrial Automation | 2017 60
AE: communication paradigm
message passing: events kept in a queue until all clients have read it (or timed out). guarantees different clients will see all events in same sequence.
OPC AE Client OPC AE Client OPC AE Server
12:34 23.114 12:34 32.334
Industrial Automation | 2017 61
AE: Displaying Alarms and Events
Event list can become long (~ 1000 entries), entries are not cleared when the source of the event returns to normal Alarms list is short (< 50 alarms) appearance changes when alarm is acknowledged, an alarm line is cleared when alarm signal is cleared (but remains in log).
Ack checkbox
Industrial Automation | 2017 62
AE: Events kinds
OPC AE defines three kinds of events: 1. simple: process control system related events (change of a boolean variable) 2. condition-related: notifies a change of an alarm condition (CLEARED, ACKNOWLEDGED), (see later) 3. tracking-related: origin outside of the process (e.g. operator intervention)
Industrial Automation | 2017 63
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)
Tank1 Tank2
event
HiLevelCond HiLevelCond
event event
LoLevelCond LoLevelCond
event
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)
event name
Industrial Automation | 2017 64
AE: Events - Notification
Level Switch OPC AE Server
timestamp
AE Client event notification Tank1LevelHigh_SimpleEvent (source, timestamp, message, severity, category) Event FB Controller Plant Tank1 message
queue
specified communication COM/DCOM unspecified communication network, fieldbus or internal bus
Industrial Automation | 2017 65
AE: Events - Time Stamp
Events can be time-stamped at
- device that produced the data
allowing Sequence-Of-Events with a high accuracy (microseconds)
- controller
giving accuracy not greater than the period of PLC tasks, about 1 ms.
- OPC Server, when event message arrives
not more accurate than DA, about 10 ms
Industrial Automation | 2017 66
AE: Alarms - Condition Definition
Described in a named state machine. 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) Acknowledgement signal (a positive transition of a boolean variable) Condition state Enable (positive transition) Disable (positive transition)
Condition
Industrial Automation | 2017 67
AE: Alarms - Acknowledgement
Alarm condition active when PLC produces alarm signal for abnormal state. Operator has to acknowledge this condition (client ack) Alternatively, a button at the PLC may be pushed (field ack)
LevelHigh controller AckButton (field ack) OPC AE Server time- stamp AE Client event notification client ack (acknowledger ID) Tank1Level_ConditionEvent Network, field bus,
- r internal bus
Alarm Signal message Condition COM / DCOM
Industrial Automation | 2017 68
AE: Alarms - Condition states and acknowledgement
alarm signal acknowledgement event notification condition state
Inactive Acked Active Unacked Active Acked Inactive Acked Active Unacked Inactive Unacked Inactive Acked
Enabled Inactive Acked EnabledAct ive Unacked EnabledAct ive Acked Enabled Inactive Unacked
Ack Ack alarm_signal alarm_signal alarm_signal
condition state transitions
(here: always enabled)
alarm_signal Inactive Unacked
Event is generated when alarm signal changes state, or is acknowledged by operator
Operator
Industrial Automation | 2017 69
AE: Summary alarms and events
controller OPC AE Server AE Client Condition OPC AE Server
timestamp
AE Client event notification (source, timestamp, message) message message alarm notification (source, timestamp, message, condition,
subcondition, severity, type)
Event FB controller Event Alarm
ack alarm event
Industrial Automation | 2017 70
OPC A&E: Assessment
- 1. What is the difference between an alarm and an event?
- 2. Where are alarms and events time stamped?
- 3. How does the “message passing” paradigm influence the OPC client application developer?
Industrial Automation | 2017 71
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
Industrial Automation | 2017 72
Historian Example
GE Fanuc/Intellution iHistorian (iFix...)
Features: Sub-Second Data Collection Rates Compression Data collection, archiving and retrieval Report generation
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
Industrial Automation | 2017 73
HDA: Historical Data Access
Field device OPC HDA Server HDA Clients
history database
Field device OPC DA Server proprietary data acquisition e.g. Event Logger e.g. Trend Analysis calculations collector raw and
- rdered data
hidden
Industrial Automation | 2017 74
HDA: Purpose
- Server: access to a historical data base (logs)
data from process have been collected and time-stamped
- Clients: require ordered access to data
e.g., trend analysis, product tracking or data mining Services
- browse 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
Industrial Automation | 2017 75
HDA: Raw log
12.3.02 13:40 Gpcpt2ofpbonne 4824 12.3.02 13:40 Cpt2bac 50 12.3.02 13:40 Gpcpt2bac 70 12.3.02 13:40 Gpcptbe2 45 12.3.02 13:41 Gpcpt1bac 151 12.3.02 13:41 Gpcpt1ofpbonne 4826 12.3.02 13:41 Gpcptae2 45 12.3.02 13:41 Cpt1bac 49 12.3.02 13:41 Gpdefr2 64 12.3.02 13:41 Gpvoydef 2 12.3.02 13:41 Gpr3tempscycleprd 318 12.3.02 13:42 Gpstn1e1 16 12.3.02 13:42 Gpalarme1 12.3.02 13:42 Gpalarme2 12.3.02 13:43 Gpetatmodemarche 2 12.3.02 13:43 Gptpscycle 1346 12.3.02 13:43 Gpetatmodemarche 1 12.3.02 13:43 Gpdefgene1 16 12.3.02 13:43 Gpetatmodemarche 12.3.02 13:43 Gptpscycle 317 12.3.02 13:43 Gpdefr2 12.3.02 13:43 Gpvoydef 12.3.02 13:43 Gpdefgene1 12.3.02 13:44 Gpetatmodemarche 1 12.3.02 13:44 Gpr2tempscycleprd 1992 12.3.02 13:44 Gptpscycle 435 12.3.02 13:44 Gpalarme3 1 12.3.02 13:44 Gpalarme4 1 12.3.02 13:44 Gpalarme3 12.3.02 13:44 Gpcpt2ofpbonne 4823
For each item:
- itemID
- value
- quality (good, stale, bad)
- timestamp (UTC).
Registers value changes
Industrial Automation | 2017 76
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 interpolation
Industrial Automation | 2017 77
yesterday d-2 d-3 d-4 d-5 d-6 d-7 today
HDA: Hierarchical logs
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
1 mn_7 days log 6 MB 1s_24 hours log: 50 traces @ 12 B 52 MB long-term log 1 hour_forever 5.2 MB / Year
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
- ctober
1 2 3 27 28 29 30
- ctobre
september 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Industrial Automation | 2017 78
Real-Life Examples and Exercise
http://www.matrikonopc.com/portal/downloads.aspx?dID=132 and https://www.matrikonopc.com/portal/downloads/case_studies/AESWindGeneration_OPC.pdf
Integration of redundant GE Mark V turbine controllers at a power plant
The controllers tie into the plant’s main DCS, an ABB Advant control system. Process Portal B and MicroSCADA client applications are used to visualize process data from the turbine controllers. Exercise: Draw schema of system and describe which OPC specifications are used where 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
EPFL, Spring 2017
Manufacturing Execution System
Industrial Automation | 2017 80
Context
Group control Unit control Field Sensors & actors A V Supervisory Primary technology Workflow, order tracking, resources
SCADA = Supervisory Control And Data Acquisition
T Production planning, orders, purchase 1 2 3 4 Planning, Statistics, Finances 5 (manufacturing) execution enterprise administration
Hierarchy Overview
A Manufacturing Execution System (MES)
- tracks and documents all steps of the transformation of raw materials to finished goods
- provides information for decision makers to optimize production output.
- Runs in real time to enable the control of multiple elements of the production process (e.g. inputs,
personnel, machines and support services).
Industrial Automation | 2017 81
Example Manufacturing Model: Restaurant
waiters cooks waiter dish washer menu recipes fresh food prepared food waste suppliers clients
- wner
table table table table chef dish washer clients clients clients client controller accounting cashier authorities Processes, actors, ressources, consumables, flows
Industrial Automation | 2017 82
Components of MES
Supply Chain Management SCM Enterprise Resource Planning ERP Sales & Service Management
Product & Process Engineering
Control
PLC/ Soft Logic Drives, Motors Relays Data Collection Manual Process Control DCS/ OCS
MES: Integrated Production Data, Operations Management Systems, People
Process Management
CAD/CAM Product Data Management
Customer Relationship Management E-Commerce
Automation, Instruments, Equipment Maintenance Management Dispatching
- Prod. Units
Performance Analysis
Procurement E-Auction Inbound/ Outbound Logistics
Labour Management Product Tracking Scheduling & Planning Quality Management Resource Allocation Document Control
Inventory Management Strategic Sourcing source: MESA White Paper
Industrial Automation | 2017 83
ISA S95 standard
US standard defining terminology and good practices
- Delineate business processes from manufacturing processes
- Identify responsibilities and functions in Business to Manufacturing and Manufacturing to
Manufacturing integration
- Identify exchanged information in Business to Manufacturing integration
- Improve integration of manufacturing by defining:
– Common terminology – Consistent set of models
- Establish common points for the integration of manufacturing systems with other enterprise
systems Part 1: Models and Terminology Part 2: Data Structures and Attributes Part 3: Models of Manufacturing Operations
Industrial Automation | 2017 84
Manufacturing Element Examples
Store Production Cell Transporter InBox OutBox A palette can carry a product or a lot materials, parts, energy product, waste Palette production
- rder
(recipe)
Production Cell InBox OutBox Production Cell InBox OutBox
production reports
Industrial Automation | 2017 85
Example Workflow
Winding Preparation
- f stator
Impregnation Assembly
- f rotor
Welding Final Tests
Workflow: path that the product being manufactured takes through several “stations”. Recipe: sequence of operations that takes place at one particular station.
Industrial Automation | 2017 86
Workflow: Transportation, productivity and inventory waste …
Order Travel
- 1. Tubes
- 2. Unprotected
Cores
- 4. Taping
- 5. 2ry Winding
Industrial Automation | 2017 87
… have been vastly eliminated from the factory floor
Taped Cores 2ry Winding Pre-Test Positioning 1ry Winding Protective Taping Taping Buffer Order Travel
Industrial Automation | 2017 88
Autonomous robots in manufacturing
source: KIVA, Boston
Industrial Automation | 2017 89
ISA S95: 1. Resource Allocation and Status
Guiding what people, machines, tools, and materials do. Maintain and display status of resources including machines, tools, labour, materials, etc. Details 1. manage resources (machines, tools, labour skills, materials, other equipment, documents, … that must be available for work to start and to be completed, directly associated with control and manufacturing. 2. do local resource reservation to meet production-scheduling objectives. 3. ensure that equipment is properly set up for processing, including any allocation needed for set-up. 4. provide real-time statuses of the resources and a detailed history of resource use. Similar descriptions for dispatching production, data collection, quality management, process management, product tracking, … See IA_ISA95.pptx for more details.
Industrial Automation | 2017 90
Performance Analysis
Goal: answer questions of factory owner. What is the number of good / bad pieces produced: by shift X, in week 20 ? (with / without induced downtime) What is the relation to the maximum ? What was the average production speed of a unit compared to the maximum ? How close to the theoretical production capacity is my plant producing ? What are the N major reasons why the unit is not producing at full capacity ? How many stops did the unit suffer from ? What is the availability of my production unit? What is the efficiency of operator M ? of shift S ? What is the progression of the OEE (overall equipment efficiency) on a daily basis ? How does my OEE compares with others ? How much time is spent loading / unloading the machine ?
Industrial Automation | 2017 91
Conclusion
MES is a business of its own, that require a good knowledge of the manufacturing process and organization skills. Simulation tools are helpful to anticipate the real plant behavior Fits well with buzzwords like “lean manufacturing”, Industrie 4.0, Digitalization
Industrial Automation | 2017 92
Assessment
What are the parts of the ISA S95 standard ? What is workflow optimization ? Why do manufacturing models exist ? What KPIs are manufacturers interested in ?
Industrial Automation Automation Industrielle Industrielle Automation