SlideShare a Scribd company logo
GUEST LECTURE, UNIVERSITY OF HEIDELBERG, 2018-01-30
Software Architecture in Process Automation
UML & the “Smart Factory”
Dr.-Ing. Heiko Koziolek, Senior Principal Scientist, ABB Corporate Research Ladenburg
Process Automation & Industrie 4.0
Software Architecture at ABB
Modeling with the Unified Modeling Language
Structure of an Automation System
Reference Software Architecture for Self-commissioning Industrial IoT-Devices
Experimental Evaluation & Performance Tests
Conclusions
Agenda
January 31, 2018 Slide 3
ABB System 800xA
World‘s Largest Paper Mill, Stora Enso, Kvarnsveden, Sweden
Process Automation
January 31, 2018 Slide 4
http://www.abb.com/cawp/seitp202/2e66f68dc8294228c1257654002c86bc.aspx
Automated with ABB‘s System 800xA
World‘s Largest Container Ship in 2006, Emma Maersk, Denmark
Process Automation
January 31, 2018 Slide 5
Automated with ABB‘s System 800xA
http://www.abb.de/cawp/seitp202/c12d1bb991ef3400c1257650004ceabe.aspx
Automated with ABB‘s System 800xA
World‘s Largest Chemical Complex, BASF, Ludwigshafen, Germany
Process Automation
January 31, 2018 Slide 6
https://library.e.abb.com/public/262ee24c3ad6de1bc125768f00411eba/ABB_SuccesStory_BASF_Oppanol_final.pdf
Introduction
Software Architecture
January 31, 2018 Slide 7
is the set of principal design decisions for a software system
determining its non-functional qualities, as well as the resulting
entities and their relations.
ABB Corporate Research’s Software Architecture Mission
 To architect sustainable automation products, systems, and
services using a risk-driven approach targeting optimal trade-
offs and exploiting opportunities for software reuse.
 To assist Business Units in cost-efficiently analyzing,
documenting, and evolving software architectures for large-
scale, embedded, and real-time systems.
 To develop, refine, and validate software architecting
methods and best practices in BU projects
Software Architecture
Why for ABB?
Software Architecture at ABB
January 31, 2018 Slide 8
– New IT technologies need to be mirrored against automation
requirements and tailored for ABB customer needs
– Deep software development expertise necessary
to manage the complexity of todays automation systems
– Methods and tools for architecting are still immature:
ABB can achieve a competitive advantage
with a state-of-the-art methodology
– Highly maintainable software systems,
faster resolution of customers issues
– Non-functional properties (security, resilience, performance,
etc.) achieved with architecture are key market differentiator
– Lower software development costs
through software reuse
and no redundant software development
Why are we doing research in this area? What is the concrete value for ABB?
Guidelines for architecting: towards an engineering discipline
Software Architecture at ABB
January 31, 2018 Slide 9
To structure architecture documents:
Arc42 (Word Template​)
To model architecture designs:
UML (Unified Modeling Language)
To structure architecture models:
Viewpoints & Perspectives, Modeling Guidelines​
To evaluate an architecture :
Architecture Trade-off Analysis Method (from SEI)
To check for architecture violations:
Dependency Structure Matrices
To model software architectures:
Sparx System Enterprise Architect​
To sketch architecture designs:
Microsoft Visio
To clean-up source code component dependencies:
Structure101, CppDepend, Ndepend, dv8 (beta)
To generate source code statistics for various languages:
scitools Understand
To document architecture decisions in Enterprise Architect:
DA4EA (beta), ADMentor ​(beta)
Architecting methods and tools at ABB are constantly being improved
supported by universities and commercial partners.
Methods Tools
Reminder: Modeling with UML
Software Architecture at ABB
January 31, 2018 Slide 10
class Class Model
Account
AddressBook
- name: String
+ getContact(): Contact
+ getContacts(): Contact[]
+ getName(): String
+ insertContact(Contact): void
+ setName(String): void
Contact ContactGroup
Operations
Attributes
Aggregation
RelationshipComposition
Relationship
Classes
sd Sequence Diagram
cust:Customer teller:ATM theBank:Bank
seq Balance Lookup
opt
Lifeline
Object
Message
Fragment
withdrawCash()
:cash
:balance
debit(accountNumber, account)
getBalance()
Reminder: Modeling with UML
Software Architecture at ABB
January 31, 2018 Slide 11
Component Diagrams Deployment Diagrams
cmp Class Model
Web Server
SQL Database
Web Client
Components
Provided
Interface
Required
Interface
deployment Class Model
Client Workstation
Internet
Linux Server
:Web Client
:Web Server
Deployment
Nodes
Deployed
Component
Modeling Software Architecture Decisions with ADMentor (Free Enterprise Architect Add-in)
Software Architecture at ABB
January 31, 2018 Slide 12
Problem
(Decision Point)
Connections
Options
https://github.com/IFS-HSR/ADMentor
How to model an automation system in UML?
January 31, 2018 Slide 13
ANSI/ISA 95
Structure
of an
Automation
System
January 31, 2018 Slide 14
cmp ISA95
EngineeringSupervision
Enterprise
Resource
Planning
Manufacturing
Execution
System
Supervision Engineering
Controller Controller
Level 4
Gateway
«device»
Sensor
«device»
Actuator
«device»
Sensor
«device»
Actuator
«device»
Sensor
«device»
Actuator
«device»
Actuator
«device»
Sensor
Remote
I/O
Level 3
Level 2
Level 1
Fieldbus
Fieldbus
Ethernet
Ethernet
Fieldbus
Point-to-Point
Level 2
Structure of an Automation System
January 31, 2018 Slide 15
ABB 800xA Extended Operator Workplace
 For high-level supervision,
starting batch processes,
handling alarms
 Distributed system: 2-20 servers
 Windows Server OS or Linux OS
 C++, ~10 MLOC
 Cloud Connectivity
 Clients: 1-40 Operator Stations
 Windows 10 OS, .NET/#C
 MS Windows Presentation Foundation
 Large displays for control room
 Video streams from production process
L2: Supervision
Level 2
Structure of an Automation System
January 31, 2018 Slide 16
Real-time controllers
 To handle deterministic, cyclic control
 Power PC, RISC Processors
 450 MHz
 256 MB RAM
 Real-time OS: Wind River VxWorks
I/O (Input/Output) Cabinets
 To process sensor signals
 Analog/Digital I/O Signals
 Wireless I/O
 Remote I/O
 Supported temperatures: -40 to +70°C
 Optional redundancy
L2: Control & IO
Structure of an Automation System
January 31, 2018 Slide 17
Sensors
 Flow
 Pressure
 Temperature
 Level
 …
Actuators
 Valves
 Motors
 Drives
 Robots
 ….
L1: Field Devices
Sensor: Laser Level Transmitter
Sensors: Flowmeters
Level 1
1. An engineer…
a) places a sensor into the asset, connects it to power & network
b) sets a fieldbus address manually
c) uses a configuration tool on laptop to retrieve sensor type/ID
d) selects a driver (e.g., a GSD file for Profibus) on laptop,
downloads it to the sensor, to enable basic communication
e) engineer enters a dozen configuration parameters for the sensor
(e.g., maximum level value), uploads it to the sensor
2. A control logic programmer…
a) imports the network configuration into programming tool, maps
program variables (e.g., levelValue) to bus addresses (e.g., 0xFC)
b) compiles and downloads the configured control logic programs
to the real-time controller
3. Repeat 1) and 2) for all devices (e.g., 100s-10.000s) in a plant
4. Production is ready to start
Steps to get a sensor running
How to commission a field device today
January 31, 2018 Slide 18
This may take months for a mid-sized plant!
R1: Standardized communication protocol
R2: Automated network discovery
R3: Standardized device description
R4: Field devices provide standardized signal interface
R5: Standardized control logic language
R6: Automated signal matching
R7: Human approval step for discovered configurations
R8: Real-time communication ( >1 ms cycle time)
R9: Security via authentication and optional encryption
„Plug & Produce“
Requirements for self-commissioning field devices
January 31, 2018 Slide 19
ABB Corporate Research has designed a Reference Architecture to address these requirements.
A software reference architecture is a software architecture
where the structures and respective elements and relations provide templates
for concrete architectures in a particular domain or in a family of software systems.
Definition
What is a Reference Architecture?
January 31, 2018 Slide 20
Java Platform Enterprise Edition, Layered ArchitectureAUTOSAR: AUTomotive Open System ARchitecture
https://goo.gl/4vCQNb
Purpose:
Address the requirements for self-commissioning IIoT devices,
so that field devices and controllers of different vendors
can commission themselves with minimal human intervention.
Architecture Viewpoints:
• Static View: UML Component Diagrams
• Dynamic View: UML Interaction Diagrams
• Deployment View: UML Deployment Diagrams
• Information View: UML Class Diagrams
• Architecture Decisions: ADMentor
Experimental Evaluation:
• Prototype at ABB Corporate Research
• No commercial implementations yet
Overview
Reference Architecture for Self-commissioning IIoT devices
January 31, 2018 Slide 21
cmp ISA95
EngineeringSupervision
Enterprise
Resource
Planning
Manufacturing
Execution
System
Supervision Engineering
Controller Controller
Level 4
Gateway
«device»
Sensor
«device»
Actuator
«device»
Sensor
«device»
Actuator
«device»
Sensor
«device»
Actuator
«device»
Actuator
«device»
Sensor
Remote
I/O
Level 3
Level 2
Level 1
Fieldbus
Fieldbus
Ethernet
Ethernet
Fieldbus
Point-to-Point
ANSI/ISA 95
Structure
of an
Automation
System
January 31, 2018 Slide 22
Focus of the
reference
architecture
(Level 1+2)
Static
View
January 31, 2018 Slide 23
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
Static
View
January 31, 2018 Slide 24
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
Novel Industry Standard for IoT Machine-to-Machine Communication
What is OPC UA?
January 31, 2018 Slide 25
OPC UA Server
with device
parameter and
signal values
Level Transmitter (Sensor)
Communication & Platforms:
• Supported protocols: HTTP, SOAP, UA Binary, MQTT, AMQP, …
• Supported programming languages: C, C++, Java, Python, …
• Supported OS: Windows, Linux, MacOS, VxWorks, …
Object-oriented Information Model:
• For example to build up tree-like structures
• Static data (e.g., parameter), dynamic data (e.g., sensor value)
• Standardized models for field devices, robots, drives, …
Services:
• Connect, Read, Write, Subscribe, AddNode, CallMethod, …
• Alarms and Conditions: to detect regular and irregular events
• Historical Access: long-term storage for visualizing trends
Features
Excerpts from the OPC UA Metamodel in UML
What is OPC UA?
January 31, 2018 Slide 26
Novel Industry Standard for IoT Machine-to-Machine Communication
What is OPC UA?
January 31, 2018 Slide 27
Co-authored by ABB Corporate Research Brochure from the OPC Foundation
Becoming Industrial Internet-of-Things (IIoT) Devices
Controller OPC UA Server / Device OPC UA Server
January 31, 2018 Slide 28
Controller
UA Server with
PLCopen (IEC 61131)
control programs
OPC UA Server
with device
parameter and
signal values
Level Transmitter (Sensor)
Becoming Industrial Internet-of-Things (IIoT) Devices
Controller OPC UA Server / Device OPC UA Server
January 31, 2018 Slide 29
cmp ISA95
EngineeringSupervision
Enterprise
Resource
Planning
Manufacturing
Execution
System
Supervision Engineering
Controller Controller
Level 4
Gateway
«device»
Sensor
«device»
Actuator
«device»
Sensor
«device»
Actuator
«device»
Sensor
«device»
Actuator
«device»
Actuator
«device»
Sensor
Remote
I/O
Level 3
Level 2
Level 1
Fieldbus
Fieldbus
Ethernet
Ethernet
Fieldbus
Point-to-Point
OPC UA
over AMQP
Static
View
January 31, 2018 Slide 30
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
Static
View
January 31, 2018 Slide 31
Static
View
January 31, 2018 Slide 32
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
1. An engineer…
a) places a sensor into the asset, connects it to power & network
b) sets a fieldbus address manually
c) uses a configuration tool on laptop to retrieve sensor type/ID
d) selects a driver (e.g., a GSD file for Profibus) on laptop,
downloads it to the sensor, to enable basic communication
e) engineer enters a dozen configuration parameters for the sensor
(e.g., maximum level value), uploads it to the sensor
2. A control logic programmer…
a) imports the network configuration into programming tool, maps
program variables (e.g., levelValue) to bus addresses (e.g., 0xFC)
b) compiles and downloads the configured control logic programs
to the real-time controller
3. Repeat 1) and 2) for all devices (e.g., 100s-10.000s) in a plant
4. Production is ready to start
Steps to get a sensor running
Reminder: How to commission a field device today
January 31, 2018 Slide 33
These steps may take weeks for a mid-sized plant!
Static
View
January 31, 2018 Slide 34
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
Static
View
January 31, 2018 Slide 35
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
Dynamic
View 1/2
January 31, 2018 Slide 36
sd DeviceConfig
:Device
Management
:Communication
Channel
:Device OPC UA
Server
:Public Device
Driver Repository
:Engineering
Repository
opt
loop
Only necessary if
fieldbus
communication is
required.
Via Local
Discovery
Server
announce()
:deviceDriver
:configData
:deviceId
getDeviceIds()
retrieveDeviceDriver()
getDeviceId()
:deviceIds
:signalConfigReady
:addresses
scan()
configureDevice()
populateUaServer()
retrieveConfigData()
downloadDriversAndConfig()
1. An engineer…
a) places a sensor into the asset, connects it to power & network
b) sets a fieldbus address manually
c) uses a configuration tool on laptop to retrieve sensor type/ID
d) selects a driver (e.g., a GSD file for Profibus) on laptop,
downloads it to the sensor, to enable basic communication
e) engineer enters a dozen configuration parameters for the sensor
(e.g., maximum level value), uploads it to the sensor
2. A control logic programmer…
a) imports the network configuration into programming tool, maps
program variables (e.g., levelValue) to bus addresses (e.g., 0xFC)
b) compiles and downloads the configured control logic programs
to the real-time controller
3. Repeat 1) and 2) for all devices (e.g., 100s-10.000s) in a plant
4. Production is ready to start
Steps to get a sensor running
Reminder: How to commission a field device today
January 31, 2018 Slide 37
These steps may take weeks for a mid-sized plant!
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
Static
View
January 31, 2018 Slide 38
Static
View
January 31, 2018 Slide 39
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
Static
View
January 31, 2018 Slide 40
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
Dynamic
View 2/2
January 31, 2018 Slide 41
sd SignalMatching
:Plug and Produce
Service
:Device OPC UA
Server
:Controller OPC
UA Server
:Communication
Channel
:61131 Runtime
opt
loop
loop
Via Local
Discovery
Server
if signals match:
activate publishing
/ subscribing via
multicast addresses
cyclic
communication
signalIn()
browseForSignals()
:approved
:endpointURL
disconnect()
:signalNames
readSignalNames()
enableSubscription()
subscribe()
signalOut()
:signalNames
enablePublishingCaculatedSignalValues()
connect()
connect()
queryForHumanApproval()
findOPCUAServer()
SignalRetrieval via MulticastUdp()
enableSubscription()
matchSignalNames()
Information View
January 31, 2018 Slide 42
class IoT Device Model
Root
Objects
DeviceSet
IoT Device CtrlConfiguration
Resources
FieldDevice
Programs
Main
FB_IoTDevice
Input Variable
OutputVariable
Local Variable
CtrlProgramOrganizationUnit
CtrlResource
SerialNumber
Manufacturer
ProtocolSupport
[...]
Device
TopologyElement
OPC UA for
Devices
PLCOpen for
OPC UA
e.g., GSD-
file
e.g., level
transmitter
Classical Deployment with IO Gateway
Deployment View (1/2)
January 31, 2018 Slide 43
deployment DeploymentClassical
Controller IO Gateway
«device»
Field Device 1
:Controller OPC
UA Server
:61131 Runtime
:Controller
Local
Discovery
:Device Local
Discovery
:Device OPC
UA Server
:Communication
Channel
Device Management Server
:Plug and
Produce
Service
:Device
Management
Ethernet Network Link
Fieldbus or
Analog
Connection
e.g., Windows server,
Linux server, ...
Embedded
Real-time
Controller
e.g., sensor,
actuator
e.g., Profibus,
HART,
Modbus, ...
«device»
Field Device 2
«device»
Field Device n
[...]
optional: TSN
Deployment with intelligent IIoT Devices
Deployment View (2/2)
January 31, 2018 Slide 44
deployment DeploymentIntelligentDevice
Controller
:Plug and
Produce
Service
:Controller
Local
Discovery
:Controller OPC
UA Server
:61131 Runtime
Device Management Server
:Device
Management
Ethernet Network Link
Intelligent Field Device 1
:Device Local
Discovery
:Device OPC
UA Server
Intelligent Field Device 2 Intelligent Field Device n
:Device OPC
UA Server
:Device Local
Discovery
:Device Local
Discovery
:Device OPC
UA Server
[...]
Laptop
Industry PC
Field device with
integrated OPC
UA Server
Decisions provide different way of
viewing the architecture
Important to document the rationale for
an architectural decision
List considered options and chosen
alternative
Helps to understand the design better,
especially during later life-cycle phases
~10 decision made for the reference
architecture
Documented with AD-Mentor in
Enterprise Architect
Overview
Architecture Decisions
January 31, 2018 Slide 45
cmp Static View with Decisions
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
(Chosen)
OPC UA Discovery
(Chosen)
Automated,
decoupled from
controller
(Chosen)
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
«trace»
retrieve
device
driver
exchange
configuration data
and signals
«trace»
announce startup
approve
configuration
and supervise
cyclic
signal
exchange
browse for
signals, enable
subscriptions
upload
device
driver
«trace»
multicast
probe &
announce
retrieve signal
configuration,
arbitrate 61131
runtime
monitor
announce startup
retrieve engineering data
upload
control
logic
«trace»
exchange
control logic
and signals
https://github.com/IFS-HSR/ADMentor
Communication
Architecture Decisions (Example 1/2)
January 31, 2018 Slide 46
SolutionOverview Communication
(Solved)
Controller to IO
Communication
(Neglected)
Ethernet-based
Fieldbus
(Neglected)
DDS
(Neglected)
MQTT
(Chosen)
OPC UA
(Neglected)
SOAP + DPWS
(Solved)
Network Discovery
(Neglected)
SOAP + DPWS
(Chosen)
OPC UA Discovery
(Neglected)
SSDP
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
https://github.com/IFS-HSR/ADMentor
Signal Matching
Architecture Decisions (Example 2/2)
January 31, 2018 Slide 47
SolutionOverview Signal Matching
(Solved)
Signal Mapping
(Solved)
Signal Matching
(Neglected)
IEC 61804
(Neglected)
IEC 61158
(Foundation Fieldbus)
(Chosen)
PLCopen
(Neglected)
Automated,
integrated to
controller
(Chosen)
Automated,
decoupled from
controller
(Neglected)
Manual matching
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
«adAddressedBy»
Boiler Demo Setup
Reference Architecture Experimental Evaluation
January 31, 2018 Slide 48
OPC UA
Server 3
OPC UA
Server 1
OPC UA
Server 4
Boiler
FT
1001
FT
1002
Pipe1002
Valve 1001
LI
1001
LC
1001
OPC UA
Server 2
OPC UA
Client
Legend
LC: Level Controller
LI: Level Indicator
FT: Flow Transmitter
flow
disturbance
flow
disturbance
Simulation
Component
Simulates
input and output of
process medium
Reference Architecture Experimental Evaluation
January 31, 2018 Slide 49
Deployment
deployment DeploymentDemo
Raspberry Pi
:Plug and
Produce
Service
:Controller
Local
Discovery
:Controller OPC
UA Server
:61131 Runtime
Ethernet Network Link
Raspberry Pi
:Device Local
Discovery
:Device OPC
UA Server
Raspberry Pi Raspberry Pi
:Device OPC
UA Server
:Device Local
Discovery
:Device Local
Discovery
:Device OPC
UA Server
Raspberry Pi
:Device OPC
UA Server
:Device Local
Discovery
OPC UA C++ Server SDK V1.5.5 (Linux)
Live Demo
Reference Architecture Experimental Evaluation
January 31, 2018 Slide 50
OPC UA Client showing controller behavior
Reference Architecture Experimental Evaluation
January 31, 2018 Slide 51
Level value (cm)
Valve position (%)
Setpoint reached (133 cm)
80 seconds
Performance Measurements
Reference Architecture Experimental Evaluation
January 31, 2018 Slide 52
Max measured jitter: 104 microseconds
 Scenarios with 1 ms update rate can be
analyzed reasonably
Signal publishing with 1 ms update rate
Publisher CPU idle time decrease with a
higher number of encoded signals
At most it can handle 800 signals per ms
Signal subscribing with 1 ms update rate
Subscriber latency increases with higher
number of encoded signals
At most it can handle 600 signals per ms
A commercial controller usually manages ~350 analog and digital signals, our prototype managed > 500 signals.
Raspberry Pi Jitter Publisher OPC UA Encoding Subscriber OPC UA Decoding
Distributed control systems are used for various industry applications.
Process control systems are evolving to the Industrial Internet-of-Things.
A Smart Factory will be faster to set up and much more flexible than today.
Software Architecture helps to manage the complexity of such systems.
Architects use UML to describe systems and information models.
UML can also be used to capture architecture decisions and their rationale.
The Reference Architecture enables self-commissioning IIoT systems.
Controllers and devices from different vendors can find each other.
Performance tests validated its feasibility based on a prototype.
Software Architecture in Process Automation
Conclusions
January 31, 2018 Slide 53
cmp Static View
Engineering
Repository
Process Control
System
Device
Management
Public Device
Driver Repository
61131 Runtime
Plug and
Produce Service
Controller
Local
Discovery
Device Local
Discovery
Controller
OPC UA
Server
Device OPC
UA Server
Communication
Channel
«device»
Field Device
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
OPC UA
HTTPS
HTTPS
UDP Publish
UDP Subscribe
UDP Subscribe
UDP Publish
OPC UA
OPC UA
exchange
configuration data
and signals
upload
device
driver
announce startup
retrieve engineering data
retrieve
device
driver
announce startup
cyclic
signal
exchange
multicast
probe &
announce
approve
configuration
and supervise monitor
exchange
control logic
and signals
exchange
configuration data
and signals
browse for
signals, enable
subscriptions
upload
control
logic
retrieve signal
configuration,
arbitrate 61131
runtime
Industrie 4.0 / IIoT needs talented Software Architects!
Internships, Master Theses, Open Positions
ABB Corporate Research in Ladenburg
January 31, 2018 Slide 54
http://new.abb.com/de/karriere
Internship:
“Software development
for the Internet-of-Things”
Master / Bachelor Thesis:
“Big Data Analytics System
for Industrial Plants”
Industry Researcher:
“Software Architecture”
Software Architecture in Process Automation: UML & the "Smart Factory"

More Related Content

What's hot (20)

PDF
Oracle GoldenGate入門
オラクルエンジニア通信
 
PDF
Kubernetesを使う上で抑えておくべきAWSの基礎概念
Shinya Mori (@mosuke5)
 
PDF
超簡単!Apache TomcatをWindowsにインストール
Shin Tanigawa
 
PPTX
Service Connector Hub ご紹介
オラクルエンジニア通信
 
PDF
オープンソースで始める「超」VPN 構築術
Masahiko Hashimoto
 
PDF
Oracle GoldenGate導入Tips
オラクルエンジニア通信
 
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
 
PDF
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
オラクルエンジニア通信
 
PDF
Azure Kubernetes Service Overview
Takeshi Fukuhara
 
PPTX
スキトラ Spring + mybatis
小川 昌吾
 
PPT
DataGuard体験記
Shinnosuke Akita
 
PDF
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
オラクルエンジニア通信
 
PPTX
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルエンジニア通信
 
PDF
Oracle GoldenGate Cloud Serviceユーザーズガイド
オラクルエンジニア通信
 
PDF
Oracle GoldenGate R12.2 セットアップガイド
オラクルエンジニア通信
 
PPTX
NGINXでの認可について考える
Hitachi, Ltd. OSS Solution Center.
 
PDF
PostgreSQL DBのバックアップを一元化しよう
Yukiya Hayashi
 
PDF
Oracle GoldenGate アーキテクチャと基本機能
オラクルエンジニア通信
 
PDF
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
オラクルエンジニア通信
 
Oracle GoldenGate入門
オラクルエンジニア通信
 
Kubernetesを使う上で抑えておくべきAWSの基礎概念
Shinya Mori (@mosuke5)
 
超簡単!Apache TomcatをWindowsにインストール
Shin Tanigawa
 
Service Connector Hub ご紹介
オラクルエンジニア通信
 
オープンソースで始める「超」VPN 構築術
Masahiko Hashimoto
 
Oracle GoldenGate導入Tips
オラクルエンジニア通信
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
 
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
オラクルエンジニア通信
 
Azure Kubernetes Service Overview
Takeshi Fukuhara
 
スキトラ Spring + mybatis
小川 昌吾
 
DataGuard体験記
Shinnosuke Akita
 
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
オラクルエンジニア通信
 
オラクルのDX事例から学ぶ「次世代クラウド・インフラストラクチャとは?」第16回しゃちほこオラクル俱楽部
オラクルエンジニア通信
 
Oracle GoldenGate Cloud Serviceユーザーズガイド
オラクルエンジニア通信
 
Oracle GoldenGate R12.2 セットアップガイド
オラクルエンジニア通信
 
NGINXでの認可について考える
Hitachi, Ltd. OSS Solution Center.
 
PostgreSQL DBのバックアップを一元化しよう
Yukiya Hayashi
 
Oracle GoldenGate アーキテクチャと基本機能
オラクルエンジニア通信
 
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
オラクルエンジニア通信
 

Similar to Software Architecture in Process Automation: UML & the "Smart Factory" (20)

PDF
Fostering MBSE in Engineering Culture
Obeo
 
PPTX
Evolving Industrial Software Architectures into a Software Product Line: A Ca...
Heiko Koziolek
 
PPT
2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns
Jaap van Ekris
 
PPTX
Design Like a Pro: Planning Enterprise Solutions
Inductive Automation
 
PPTX
Design Like a Pro: Planning Enterprise Solutions
Inductive Automation
 
PPTX
Software Architecture: Introduction to the abstraction (May 2014_Split)
Henry Muccini
 
PDF
Software - Role in Systems and Architectures
Abhilash Gopalakrishnan
 
PPTX
Tool-Driven Technology Transfer in Software Engineering
Heiko Koziolek
 
PPT
Systems Engineering: A practitioner's perspective
rovik89920
 
PPT
Brian muirhead v1-27-12
NASAPMC
 
PDF
Software engineering in industrial automation state of-the-art review
Tiago Oliveira
 
PDF
Identifying and Resolving Consistency Issues between Model Representations
Ivan Ruchkin
 
PPT
Ch10
guest50f28c
 
PPT
T315-02 System Architecture - 800xA RevC.ppt
rubhernandez11
 
PPTX
10 Steps to Architecting a Sustainable SCADA System
Inductive Automation
 
PPTX
10 Steps to Architecting a Sustainable SCADA System
Inductive Automation
 
PPTX
Plenary Session: application drive design alberto sv
chiportal
 
PPTX
Develop High-bandwidth/low latency electronic systems for AI/ML application
Deepak Shankar
 
PPTX
The art of architecture
ADDQ
 
Fostering MBSE in Engineering Culture
Obeo
 
Evolving Industrial Software Architectures into a Software Product Line: A Ca...
Heiko Koziolek
 
2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns
Jaap van Ekris
 
Design Like a Pro: Planning Enterprise Solutions
Inductive Automation
 
Design Like a Pro: Planning Enterprise Solutions
Inductive Automation
 
Software Architecture: Introduction to the abstraction (May 2014_Split)
Henry Muccini
 
Software - Role in Systems and Architectures
Abhilash Gopalakrishnan
 
Tool-Driven Technology Transfer in Software Engineering
Heiko Koziolek
 
Systems Engineering: A practitioner's perspective
rovik89920
 
Brian muirhead v1-27-12
NASAPMC
 
Software engineering in industrial automation state of-the-art review
Tiago Oliveira
 
Identifying and Resolving Consistency Issues between Model Representations
Ivan Ruchkin
 
T315-02 System Architecture - 800xA RevC.ppt
rubhernandez11
 
10 Steps to Architecting a Sustainable SCADA System
Inductive Automation
 
10 Steps to Architecting a Sustainable SCADA System
Inductive Automation
 
Plenary Session: application drive design alberto sv
chiportal
 
Develop High-bandwidth/low latency electronic systems for AI/ML application
Deepak Shankar
 
The art of architecture
ADDQ
 
Ad

More from Heiko Koziolek (20)

PPTX
Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
Heiko Koziolek
 
PPTX
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
Heiko Koziolek
 
PPTX
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
Heiko Koziolek
 
PPTX
Self-commissioning Industrial IoT Systems
Heiko Koziolek
 
PPTX
IoT challenges for Smart Manufacturing
Heiko Koziolek
 
PPTX
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
Heiko Koziolek
 
PPTX
6 Years of Performance Modeling at ABB
Heiko Koziolek
 
PPTX
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
Heiko Koziolek
 
PPTX
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Heiko Koziolek
 
PPTX
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
Heiko Koziolek
 
PDF
Sustainability Evaluation of Software Architectures: A Systematic Review
Heiko Koziolek
 
PPTX
The SPOSAD Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
PPTX
2011 05-27-icse
Heiko Koziolek
 
PPTX
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
Heiko Koziolek
 
PPTX
Towards Software Sustainability Guides for Industrial Software Systems
Heiko Koziolek
 
PPTX
Q-ImPrESS
Heiko Koziolek
 
PPTX
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
Heiko Koziolek
 
PPTX
Towards an Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
PPSX
PerOpteryx
Heiko Koziolek
 
PPTX
A Model Transformation from the Palladio Component Model to Layered Queueing ...
Heiko Koziolek
 
Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
Heiko Koziolek
 
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
Heiko Koziolek
 
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
Heiko Koziolek
 
Self-commissioning Industrial IoT Systems
Heiko Koziolek
 
IoT challenges for Smart Manufacturing
Heiko Koziolek
 
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
Heiko Koziolek
 
6 Years of Performance Modeling at ABB
Heiko Koziolek
 
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
Heiko Koziolek
 
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Heiko Koziolek
 
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
Heiko Koziolek
 
Sustainability Evaluation of Software Architectures: A Systematic Review
Heiko Koziolek
 
The SPOSAD Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
2011 05-27-icse
Heiko Koziolek
 
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
Heiko Koziolek
 
Towards Software Sustainability Guides for Industrial Software Systems
Heiko Koziolek
 
Q-ImPrESS
Heiko Koziolek
 
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
Heiko Koziolek
 
Towards an Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
PerOpteryx
Heiko Koziolek
 
A Model Transformation from the Palladio Component Model to Layered Queueing ...
Heiko Koziolek
 
Ad

Recently uploaded (20)

PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 

Software Architecture in Process Automation: UML & the "Smart Factory"

  • 1. GUEST LECTURE, UNIVERSITY OF HEIDELBERG, 2018-01-30 Software Architecture in Process Automation UML & the “Smart Factory” Dr.-Ing. Heiko Koziolek, Senior Principal Scientist, ABB Corporate Research Ladenburg
  • 2. Process Automation & Industrie 4.0 Software Architecture at ABB Modeling with the Unified Modeling Language Structure of an Automation System Reference Software Architecture for Self-commissioning Industrial IoT-Devices Experimental Evaluation & Performance Tests Conclusions Agenda
  • 3. January 31, 2018 Slide 3 ABB System 800xA
  • 4. World‘s Largest Paper Mill, Stora Enso, Kvarnsveden, Sweden Process Automation January 31, 2018 Slide 4 http://www.abb.com/cawp/seitp202/2e66f68dc8294228c1257654002c86bc.aspx Automated with ABB‘s System 800xA
  • 5. World‘s Largest Container Ship in 2006, Emma Maersk, Denmark Process Automation January 31, 2018 Slide 5 Automated with ABB‘s System 800xA http://www.abb.de/cawp/seitp202/c12d1bb991ef3400c1257650004ceabe.aspx Automated with ABB‘s System 800xA
  • 6. World‘s Largest Chemical Complex, BASF, Ludwigshafen, Germany Process Automation January 31, 2018 Slide 6 https://library.e.abb.com/public/262ee24c3ad6de1bc125768f00411eba/ABB_SuccesStory_BASF_Oppanol_final.pdf
  • 7. Introduction Software Architecture January 31, 2018 Slide 7 is the set of principal design decisions for a software system determining its non-functional qualities, as well as the resulting entities and their relations. ABB Corporate Research’s Software Architecture Mission  To architect sustainable automation products, systems, and services using a risk-driven approach targeting optimal trade- offs and exploiting opportunities for software reuse.  To assist Business Units in cost-efficiently analyzing, documenting, and evolving software architectures for large- scale, embedded, and real-time systems.  To develop, refine, and validate software architecting methods and best practices in BU projects Software Architecture
  • 8. Why for ABB? Software Architecture at ABB January 31, 2018 Slide 8 – New IT technologies need to be mirrored against automation requirements and tailored for ABB customer needs – Deep software development expertise necessary to manage the complexity of todays automation systems – Methods and tools for architecting are still immature: ABB can achieve a competitive advantage with a state-of-the-art methodology – Highly maintainable software systems, faster resolution of customers issues – Non-functional properties (security, resilience, performance, etc.) achieved with architecture are key market differentiator – Lower software development costs through software reuse and no redundant software development Why are we doing research in this area? What is the concrete value for ABB?
  • 9. Guidelines for architecting: towards an engineering discipline Software Architecture at ABB January 31, 2018 Slide 9 To structure architecture documents: Arc42 (Word Template​) To model architecture designs: UML (Unified Modeling Language) To structure architecture models: Viewpoints & Perspectives, Modeling Guidelines​ To evaluate an architecture : Architecture Trade-off Analysis Method (from SEI) To check for architecture violations: Dependency Structure Matrices To model software architectures: Sparx System Enterprise Architect​ To sketch architecture designs: Microsoft Visio To clean-up source code component dependencies: Structure101, CppDepend, Ndepend, dv8 (beta) To generate source code statistics for various languages: scitools Understand To document architecture decisions in Enterprise Architect: DA4EA (beta), ADMentor ​(beta) Architecting methods and tools at ABB are constantly being improved supported by universities and commercial partners. Methods Tools
  • 10. Reminder: Modeling with UML Software Architecture at ABB January 31, 2018 Slide 10 class Class Model Account AddressBook - name: String + getContact(): Contact + getContacts(): Contact[] + getName(): String + insertContact(Contact): void + setName(String): void Contact ContactGroup Operations Attributes Aggregation RelationshipComposition Relationship Classes sd Sequence Diagram cust:Customer teller:ATM theBank:Bank seq Balance Lookup opt Lifeline Object Message Fragment withdrawCash() :cash :balance debit(accountNumber, account) getBalance()
  • 11. Reminder: Modeling with UML Software Architecture at ABB January 31, 2018 Slide 11 Component Diagrams Deployment Diagrams cmp Class Model Web Server SQL Database Web Client Components Provided Interface Required Interface deployment Class Model Client Workstation Internet Linux Server :Web Client :Web Server Deployment Nodes Deployed Component
  • 12. Modeling Software Architecture Decisions with ADMentor (Free Enterprise Architect Add-in) Software Architecture at ABB January 31, 2018 Slide 12 Problem (Decision Point) Connections Options https://github.com/IFS-HSR/ADMentor
  • 13. How to model an automation system in UML? January 31, 2018 Slide 13
  • 14. ANSI/ISA 95 Structure of an Automation System January 31, 2018 Slide 14 cmp ISA95 EngineeringSupervision Enterprise Resource Planning Manufacturing Execution System Supervision Engineering Controller Controller Level 4 Gateway «device» Sensor «device» Actuator «device» Sensor «device» Actuator «device» Sensor «device» Actuator «device» Actuator «device» Sensor Remote I/O Level 3 Level 2 Level 1 Fieldbus Fieldbus Ethernet Ethernet Fieldbus Point-to-Point
  • 15. Level 2 Structure of an Automation System January 31, 2018 Slide 15 ABB 800xA Extended Operator Workplace  For high-level supervision, starting batch processes, handling alarms  Distributed system: 2-20 servers  Windows Server OS or Linux OS  C++, ~10 MLOC  Cloud Connectivity  Clients: 1-40 Operator Stations  Windows 10 OS, .NET/#C  MS Windows Presentation Foundation  Large displays for control room  Video streams from production process L2: Supervision
  • 16. Level 2 Structure of an Automation System January 31, 2018 Slide 16 Real-time controllers  To handle deterministic, cyclic control  Power PC, RISC Processors  450 MHz  256 MB RAM  Real-time OS: Wind River VxWorks I/O (Input/Output) Cabinets  To process sensor signals  Analog/Digital I/O Signals  Wireless I/O  Remote I/O  Supported temperatures: -40 to +70°C  Optional redundancy L2: Control & IO
  • 17. Structure of an Automation System January 31, 2018 Slide 17 Sensors  Flow  Pressure  Temperature  Level  … Actuators  Valves  Motors  Drives  Robots  …. L1: Field Devices Sensor: Laser Level Transmitter Sensors: Flowmeters Level 1
  • 18. 1. An engineer… a) places a sensor into the asset, connects it to power & network b) sets a fieldbus address manually c) uses a configuration tool on laptop to retrieve sensor type/ID d) selects a driver (e.g., a GSD file for Profibus) on laptop, downloads it to the sensor, to enable basic communication e) engineer enters a dozen configuration parameters for the sensor (e.g., maximum level value), uploads it to the sensor 2. A control logic programmer… a) imports the network configuration into programming tool, maps program variables (e.g., levelValue) to bus addresses (e.g., 0xFC) b) compiles and downloads the configured control logic programs to the real-time controller 3. Repeat 1) and 2) for all devices (e.g., 100s-10.000s) in a plant 4. Production is ready to start Steps to get a sensor running How to commission a field device today January 31, 2018 Slide 18 This may take months for a mid-sized plant!
  • 19. R1: Standardized communication protocol R2: Automated network discovery R3: Standardized device description R4: Field devices provide standardized signal interface R5: Standardized control logic language R6: Automated signal matching R7: Human approval step for discovered configurations R8: Real-time communication ( >1 ms cycle time) R9: Security via authentication and optional encryption „Plug & Produce“ Requirements for self-commissioning field devices January 31, 2018 Slide 19 ABB Corporate Research has designed a Reference Architecture to address these requirements.
  • 20. A software reference architecture is a software architecture where the structures and respective elements and relations provide templates for concrete architectures in a particular domain or in a family of software systems. Definition What is a Reference Architecture? January 31, 2018 Slide 20 Java Platform Enterprise Edition, Layered ArchitectureAUTOSAR: AUTomotive Open System ARchitecture https://goo.gl/4vCQNb
  • 21. Purpose: Address the requirements for self-commissioning IIoT devices, so that field devices and controllers of different vendors can commission themselves with minimal human intervention. Architecture Viewpoints: • Static View: UML Component Diagrams • Dynamic View: UML Interaction Diagrams • Deployment View: UML Deployment Diagrams • Information View: UML Class Diagrams • Architecture Decisions: ADMentor Experimental Evaluation: • Prototype at ABB Corporate Research • No commercial implementations yet Overview Reference Architecture for Self-commissioning IIoT devices January 31, 2018 Slide 21
  • 22. cmp ISA95 EngineeringSupervision Enterprise Resource Planning Manufacturing Execution System Supervision Engineering Controller Controller Level 4 Gateway «device» Sensor «device» Actuator «device» Sensor «device» Actuator «device» Sensor «device» Actuator «device» Actuator «device» Sensor Remote I/O Level 3 Level 2 Level 1 Fieldbus Fieldbus Ethernet Ethernet Fieldbus Point-to-Point ANSI/ISA 95 Structure of an Automation System January 31, 2018 Slide 22 Focus of the reference architecture (Level 1+2)
  • 23. Static View January 31, 2018 Slide 23 cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime
  • 24. Static View January 31, 2018 Slide 24 cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime
  • 25. Novel Industry Standard for IoT Machine-to-Machine Communication What is OPC UA? January 31, 2018 Slide 25 OPC UA Server with device parameter and signal values Level Transmitter (Sensor) Communication & Platforms: • Supported protocols: HTTP, SOAP, UA Binary, MQTT, AMQP, … • Supported programming languages: C, C++, Java, Python, … • Supported OS: Windows, Linux, MacOS, VxWorks, … Object-oriented Information Model: • For example to build up tree-like structures • Static data (e.g., parameter), dynamic data (e.g., sensor value) • Standardized models for field devices, robots, drives, … Services: • Connect, Read, Write, Subscribe, AddNode, CallMethod, … • Alarms and Conditions: to detect regular and irregular events • Historical Access: long-term storage for visualizing trends Features
  • 26. Excerpts from the OPC UA Metamodel in UML What is OPC UA? January 31, 2018 Slide 26
  • 27. Novel Industry Standard for IoT Machine-to-Machine Communication What is OPC UA? January 31, 2018 Slide 27 Co-authored by ABB Corporate Research Brochure from the OPC Foundation
  • 28. Becoming Industrial Internet-of-Things (IIoT) Devices Controller OPC UA Server / Device OPC UA Server January 31, 2018 Slide 28 Controller UA Server with PLCopen (IEC 61131) control programs OPC UA Server with device parameter and signal values Level Transmitter (Sensor)
  • 29. Becoming Industrial Internet-of-Things (IIoT) Devices Controller OPC UA Server / Device OPC UA Server January 31, 2018 Slide 29 cmp ISA95 EngineeringSupervision Enterprise Resource Planning Manufacturing Execution System Supervision Engineering Controller Controller Level 4 Gateway «device» Sensor «device» Actuator «device» Sensor «device» Actuator «device» Sensor «device» Actuator «device» Actuator «device» Sensor Remote I/O Level 3 Level 2 Level 1 Fieldbus Fieldbus Ethernet Ethernet Fieldbus Point-to-Point OPC UA over AMQP
  • 30. Static View January 31, 2018 Slide 30 cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime
  • 31. cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime Static View January 31, 2018 Slide 31
  • 32. Static View January 31, 2018 Slide 32 cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime
  • 33. 1. An engineer… a) places a sensor into the asset, connects it to power & network b) sets a fieldbus address manually c) uses a configuration tool on laptop to retrieve sensor type/ID d) selects a driver (e.g., a GSD file for Profibus) on laptop, downloads it to the sensor, to enable basic communication e) engineer enters a dozen configuration parameters for the sensor (e.g., maximum level value), uploads it to the sensor 2. A control logic programmer… a) imports the network configuration into programming tool, maps program variables (e.g., levelValue) to bus addresses (e.g., 0xFC) b) compiles and downloads the configured control logic programs to the real-time controller 3. Repeat 1) and 2) for all devices (e.g., 100s-10.000s) in a plant 4. Production is ready to start Steps to get a sensor running Reminder: How to commission a field device today January 31, 2018 Slide 33 These steps may take weeks for a mid-sized plant!
  • 34. Static View January 31, 2018 Slide 34 cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime
  • 35. Static View January 31, 2018 Slide 35 cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime
  • 36. Dynamic View 1/2 January 31, 2018 Slide 36 sd DeviceConfig :Device Management :Communication Channel :Device OPC UA Server :Public Device Driver Repository :Engineering Repository opt loop Only necessary if fieldbus communication is required. Via Local Discovery Server announce() :deviceDriver :configData :deviceId getDeviceIds() retrieveDeviceDriver() getDeviceId() :deviceIds :signalConfigReady :addresses scan() configureDevice() populateUaServer() retrieveConfigData() downloadDriversAndConfig()
  • 37. 1. An engineer… a) places a sensor into the asset, connects it to power & network b) sets a fieldbus address manually c) uses a configuration tool on laptop to retrieve sensor type/ID d) selects a driver (e.g., a GSD file for Profibus) on laptop, downloads it to the sensor, to enable basic communication e) engineer enters a dozen configuration parameters for the sensor (e.g., maximum level value), uploads it to the sensor 2. A control logic programmer… a) imports the network configuration into programming tool, maps program variables (e.g., levelValue) to bus addresses (e.g., 0xFC) b) compiles and downloads the configured control logic programs to the real-time controller 3. Repeat 1) and 2) for all devices (e.g., 100s-10.000s) in a plant 4. Production is ready to start Steps to get a sensor running Reminder: How to commission a field device today January 31, 2018 Slide 37 These steps may take weeks for a mid-sized plant!
  • 38. cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime Static View January 31, 2018 Slide 38
  • 39. Static View January 31, 2018 Slide 39 cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime
  • 40. Static View January 31, 2018 Slide 40 cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime
  • 41. Dynamic View 2/2 January 31, 2018 Slide 41 sd SignalMatching :Plug and Produce Service :Device OPC UA Server :Controller OPC UA Server :Communication Channel :61131 Runtime opt loop loop Via Local Discovery Server if signals match: activate publishing / subscribing via multicast addresses cyclic communication signalIn() browseForSignals() :approved :endpointURL disconnect() :signalNames readSignalNames() enableSubscription() subscribe() signalOut() :signalNames enablePublishingCaculatedSignalValues() connect() connect() queryForHumanApproval() findOPCUAServer() SignalRetrieval via MulticastUdp() enableSubscription() matchSignalNames()
  • 42. Information View January 31, 2018 Slide 42 class IoT Device Model Root Objects DeviceSet IoT Device CtrlConfiguration Resources FieldDevice Programs Main FB_IoTDevice Input Variable OutputVariable Local Variable CtrlProgramOrganizationUnit CtrlResource SerialNumber Manufacturer ProtocolSupport [...] Device TopologyElement OPC UA for Devices PLCOpen for OPC UA e.g., GSD- file e.g., level transmitter
  • 43. Classical Deployment with IO Gateway Deployment View (1/2) January 31, 2018 Slide 43 deployment DeploymentClassical Controller IO Gateway «device» Field Device 1 :Controller OPC UA Server :61131 Runtime :Controller Local Discovery :Device Local Discovery :Device OPC UA Server :Communication Channel Device Management Server :Plug and Produce Service :Device Management Ethernet Network Link Fieldbus or Analog Connection e.g., Windows server, Linux server, ... Embedded Real-time Controller e.g., sensor, actuator e.g., Profibus, HART, Modbus, ... «device» Field Device 2 «device» Field Device n [...] optional: TSN
  • 44. Deployment with intelligent IIoT Devices Deployment View (2/2) January 31, 2018 Slide 44 deployment DeploymentIntelligentDevice Controller :Plug and Produce Service :Controller Local Discovery :Controller OPC UA Server :61131 Runtime Device Management Server :Device Management Ethernet Network Link Intelligent Field Device 1 :Device Local Discovery :Device OPC UA Server Intelligent Field Device 2 Intelligent Field Device n :Device OPC UA Server :Device Local Discovery :Device Local Discovery :Device OPC UA Server [...] Laptop Industry PC Field device with integrated OPC UA Server
  • 45. Decisions provide different way of viewing the architecture Important to document the rationale for an architectural decision List considered options and chosen alternative Helps to understand the design better, especially during later life-cycle phases ~10 decision made for the reference architecture Documented with AD-Mentor in Enterprise Architect Overview Architecture Decisions January 31, 2018 Slide 45 cmp Static View with Decisions Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device (Chosen) OPC UA Discovery (Chosen) Automated, decoupled from controller (Chosen) OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals «trace» retrieve device driver exchange configuration data and signals «trace» announce startup approve configuration and supervise cyclic signal exchange browse for signals, enable subscriptions upload device driver «trace» multicast probe & announce retrieve signal configuration, arbitrate 61131 runtime monitor announce startup retrieve engineering data upload control logic «trace» exchange control logic and signals https://github.com/IFS-HSR/ADMentor
  • 46. Communication Architecture Decisions (Example 1/2) January 31, 2018 Slide 46 SolutionOverview Communication (Solved) Controller to IO Communication (Neglected) Ethernet-based Fieldbus (Neglected) DDS (Neglected) MQTT (Chosen) OPC UA (Neglected) SOAP + DPWS (Solved) Network Discovery (Neglected) SOAP + DPWS (Chosen) OPC UA Discovery (Neglected) SSDP «adAddressedBy» «adAddressedBy» «adAddressedBy» «adAddressedBy» «adAddressedBy» «adAddressedBy» «adAddressedBy» «adAddressedBy» https://github.com/IFS-HSR/ADMentor
  • 47. Signal Matching Architecture Decisions (Example 2/2) January 31, 2018 Slide 47 SolutionOverview Signal Matching (Solved) Signal Mapping (Solved) Signal Matching (Neglected) IEC 61804 (Neglected) IEC 61158 (Foundation Fieldbus) (Chosen) PLCopen (Neglected) Automated, integrated to controller (Chosen) Automated, decoupled from controller (Neglected) Manual matching «adAddressedBy» «adAddressedBy» «adAddressedBy» «adAddressedBy» «adAddressedBy» «adAddressedBy»
  • 48. Boiler Demo Setup Reference Architecture Experimental Evaluation January 31, 2018 Slide 48 OPC UA Server 3 OPC UA Server 1 OPC UA Server 4 Boiler FT 1001 FT 1002 Pipe1002 Valve 1001 LI 1001 LC 1001 OPC UA Server 2 OPC UA Client Legend LC: Level Controller LI: Level Indicator FT: Flow Transmitter flow disturbance flow disturbance Simulation Component Simulates input and output of process medium
  • 49. Reference Architecture Experimental Evaluation January 31, 2018 Slide 49 Deployment deployment DeploymentDemo Raspberry Pi :Plug and Produce Service :Controller Local Discovery :Controller OPC UA Server :61131 Runtime Ethernet Network Link Raspberry Pi :Device Local Discovery :Device OPC UA Server Raspberry Pi Raspberry Pi :Device OPC UA Server :Device Local Discovery :Device Local Discovery :Device OPC UA Server Raspberry Pi :Device OPC UA Server :Device Local Discovery OPC UA C++ Server SDK V1.5.5 (Linux)
  • 50. Live Demo Reference Architecture Experimental Evaluation January 31, 2018 Slide 50
  • 51. OPC UA Client showing controller behavior Reference Architecture Experimental Evaluation January 31, 2018 Slide 51 Level value (cm) Valve position (%) Setpoint reached (133 cm) 80 seconds
  • 52. Performance Measurements Reference Architecture Experimental Evaluation January 31, 2018 Slide 52 Max measured jitter: 104 microseconds  Scenarios with 1 ms update rate can be analyzed reasonably Signal publishing with 1 ms update rate Publisher CPU idle time decrease with a higher number of encoded signals At most it can handle 800 signals per ms Signal subscribing with 1 ms update rate Subscriber latency increases with higher number of encoded signals At most it can handle 600 signals per ms A commercial controller usually manages ~350 analog and digital signals, our prototype managed > 500 signals. Raspberry Pi Jitter Publisher OPC UA Encoding Subscriber OPC UA Decoding
  • 53. Distributed control systems are used for various industry applications. Process control systems are evolving to the Industrial Internet-of-Things. A Smart Factory will be faster to set up and much more flexible than today. Software Architecture helps to manage the complexity of such systems. Architects use UML to describe systems and information models. UML can also be used to capture architecture decisions and their rationale. The Reference Architecture enables self-commissioning IIoT systems. Controllers and devices from different vendors can find each other. Performance tests validated its feasibility based on a prototype. Software Architecture in Process Automation Conclusions January 31, 2018 Slide 53 cmp Static View Engineering Repository Process Control System Device Management Public Device Driver Repository 61131 Runtime Plug and Produce Service Controller Local Discovery Device Local Discovery Controller OPC UA Server Device OPC UA Server Communication Channel «device» Field Device OPC UA OPC UA OPC UA OPC UA OPC UA OPC UA HTTPS HTTPS UDP Publish UDP Subscribe UDP Subscribe UDP Publish OPC UA OPC UA exchange configuration data and signals upload device driver announce startup retrieve engineering data retrieve device driver announce startup cyclic signal exchange multicast probe & announce approve configuration and supervise monitor exchange control logic and signals exchange configuration data and signals browse for signals, enable subscriptions upload control logic retrieve signal configuration, arbitrate 61131 runtime Industrie 4.0 / IIoT needs talented Software Architects!
  • 54. Internships, Master Theses, Open Positions ABB Corporate Research in Ladenburg January 31, 2018 Slide 54 http://new.abb.com/de/karriere Internship: “Software development for the Internet-of-Things” Master / Bachelor Thesis: “Big Data Analytics System for Industrial Plants” Industry Researcher: “Software Architecture”