Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
EPFL, Spring 2017
4 Application Layer Protocols
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 LoopThe 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
modemnetwork
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
devicenetwork
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
AgentMIB
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
object 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
ProgramInvocation
NamedVariable Named
Variable List
File
Types
Semaphore
EventEnrolment
Transaction
Domain
OperatorStation
Journal
EventCondition
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 devicesrepresent pieces of equipment
MMS: access all controllers, regardless of the manufacturer, in the same way.
Industrial Automation | 2017 21
response statusvalue
The basic MMS idea: read a variableclient
(any technology)
server
network(any)
I / O devices
request variable nameread
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
networklinkingdevice
router
device
request
(command)
response
(reply)
MMS
client
MMS specifies a set
of objects an MMS
server contains
MMS specifies a set of messages which
to control an MMS server
allow an MMS client
communication
stack
MMS specifies how
messages are
encoded for
transmission
ApplicationApplication
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 Control2"
mediacommon
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
EnrolmentEvent
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
physicallink
networktransportsession
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
out 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 MMSCriteria
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 busEthernet
Sensors/Actors
PLCs Brand Y
Industrial Automation | 2017 37
Before OPC
ABB PLCs Télémécanique PLCs Siemens PLCs
MasterBus
MMS driverXWAY
driver
Profinet
driver
visualization
history
data base
Industrial Automation | 2017 38
With OPC
ABB AC800M Télémécanique TSX Siemens S7
ABB
OPC serverSchneider
OPC server
Siemens
OPC server
Operatorapplication 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
of objects and methods.
devices devices devicesdevices
node
Industrial Automation | 2017 44
OPC for internal and external communication
800xA
aspects
OPC server
process
data base
aspectsfunctions
ABB
OPC serverSchneider
OPC server
Siemens
OPC server
OPC client
External
communication
ABB SCADA 800xA as an example
Internal
communicationEnterprise
HistorianAsset
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. optimized 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 ItemIDProcess_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
on 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
- operator 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 - AcknowledgementAlarm 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,
or internal bus
Alarm Signal
messageCondition
COM / DCOM
Industrial Automation | 2017 68
AE: Alarms - Condition states and acknowledgement
alarm signal
acknowledgement
event notification
condition stateInactive
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
ackalarmevent
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 Loggere.g. Trend Analysis
calculations
collector
raw and
ordered 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 log12.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 0
12.3.02 13:42 Gpalarme2 0
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 0
12.3.02 13:43 Gptpscycle 317
12.3.02 13:43 Gpdefr2 0
12.3.02 13:43 Gpvoydef 0
12.3.02 13:43 Gpdefgene1 0
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 0
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
yesterdayd-2d-3d-4d-5d-6d-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
october
1 2 3 27 28 29 30
octobreseptember
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2223 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 GenerationAES 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, resourcesSCADA =
Supervisory ControlAnd Data Acquisition
T
Production planning, orders, purchase
1
2
3
4
0
Planning, Statistics, Finances5
(manufacturing) execution
enterprise
administration
HierarchyOverview
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
waiterscookswaiter
dish washer
menu recipes
fresh
food
prepared
foodwaste
suppliers
clients owner
table
table
table
tablechef dish washer
clientsclientsclientsclient
controlleraccounting
cashier
authorities
Processes, actors, ressources, consumables, flows
Industrial Automation | 2017 82
Components of MESSupply Chain Management
SCM
Enterprise Resource Planning
ERP
Sales & Service Management
Product & Process
Engineering
Control
PLC/ Soft LogicDrives, Motors
Relays Data CollectionManual Process
ControlDCS/ 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 TerminologyPart 2: Data Structures and AttributesPart 3: Models of Manufacturing Operations
Industrial Automation | 2017 84
Manufacturing Element Examples
StoreProduction
CellTransporterInBox OutBox
A palette can carry a
product or a lot
materials,
parts,
energy
product,
waste
Palette
production
order
(recipe)
Production
Cell
InBoxOutBox
Production
Cell
InBoxOutBox
production
reports
Industrial Automation | 2017 85
Example Workflow
WindingPreparation
of statorImpregnation
Assembly
of rotorWelding 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 Travel1. 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