EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch ›...

93
EPFL, Spring 2017 4 Application Layer Protocols

Transcript of EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch ›...

Page 1: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

EPFL, Spring 2017

4 Application Layer Protocols

Page 2: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 3: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

Industrial Automation | 2017 3

Current LoopThe classical solution for analogue values

Example differential pressure transducer

4..20 mA current loop

fluid

Reminder:

Page 4: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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:

Page 5: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 6: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 7: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 8: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

Industrial Automation | 2017 8

SNMP:Simple Network Management Protocol

Page 9: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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?

Page 10: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 11: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 12: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

Industrial Automation | 2017 12

Example SNPM Network

Page 13: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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)

Page 14: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 15: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

Industrial Automation | 2017 15

Example Network and Queries

Page 16: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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 ?

Page 17: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 18: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 19: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 20: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 21: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 22: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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)

Page 23: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 24: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 25: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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)

Page 26: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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:

Page 27: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 28: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 29: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 30: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 31: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 32: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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 ?

Page 33: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

Industrial Automation | 2017 33

Open Process Control (OPC)

Page 34: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 35: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 36: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 37: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 38: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 39: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 40: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 41: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 42: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 43: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 44: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 45: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 46: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

Industrial Automation | 2017 46

OPC UA Data Model

Specialized models

extend the base

model by adding

functionality like DA,

AE, HDA,...

Page 47: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 48: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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 ?

Page 49: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 50: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 51: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

...

Page 52: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 53: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 54: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 55: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 56: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 57: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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?

Page 58: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 59: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 60: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 61: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 62: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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)

Page 63: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 64: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 65: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 66: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 67: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 68: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 69: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 70: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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?

Page 71: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 72: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 73: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 74: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 75: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 76: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 77: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 78: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 79: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

EPFL, Spring 2017

Manufacturing Execution System

Page 80: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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).

Page 81: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 82: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 83: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 84: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 85: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 86: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

Industrial Automation | 2017 86

Workflow: Transportation, productivity and inventory waste …

Order Travel1. Tubes

2. Unprotected

Cores

4. Taping

5. 2ry Winding

Page 87: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 88: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

Industrial Automation | 2017 88

Autonomous robots in manufacturing

source: KIVA, Boston

Page 89: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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.

Page 90: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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 ?

Page 91: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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

Page 92: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

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 ?

Page 93: EPFL, Spring 2017 4 Application Layer Protocolslamspeople.epfl.ch › ...Application_Layer_Protocols... · • Write variable unit • Trim DAC zero and gain • Write transfer function

Industrial Automation

Automation Industrielle

Industrielle Automation