SlideShare a Scribd company logo
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlich
 Überraschend mehr Möglichkeiten
© OPITZ CONSULTING 2019
Low-level programming
in the factory
Stephan Rauh
OC in Argentina
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichWelcome Days – Strategie@OC
Mission
Mit unserer Leidenschaft für neue Technologien
und unserem Anspruch an herausragende
Beratung sind wir bei unseren Kunden der
Motor der digitalen Transformation.
Wir entwickeln überraschend mehr Möglichkeiten!» Seite 2
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlich Seite 3
… in Argentina
Image source: Wikimedia (CC BY-SA 3.0)
Let‘s Control the Assembly Line!
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 4
What is a PLC?
Image source: https://de.wikipedia.org/wiki/Speicherprogrammierbare_Steuerung#/media/File:Programmable_logic_controller.jpg
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlich Seite 5
Controlling
Hardware
Half a World
Remote
Image source: https://pixabay.com/de/illustrations/welt-karte-weltkarte-erde-mercator-2169041/ (Pixabay license); https://en.wikipedia.org/wiki/File:Server-multiple.svg
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlich Seite 6
Performance
Image source: https://pixabay.com/de/illustrations/welt-karte-weltkarte-erde-mercator-2169041/ (Pixabay license); https://en.wikipedia.org/wiki/File:Server-multiple.svg
12.000 km / 300.000 km/s = 40 milliseconds
real-world latency: ≥ 75 ms
133 network calls: ≥ 10 seconds
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 7
Programming a PLC
1. Reading input registers and coils
2. Executing the program
3. Processing communication requests
4. Executing CPU diagnostics
5. Writing output registers and coils
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 8
Registers and Coils
Coils
little
endian
read-
only
big
endian
Registers
memory
address
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 9
Java Modbus Adaptor
JBoss Application
Server
PLCModbus
Adaptor
Modbus
TCP
SOAP over
JMS
• 12.000 km distance
• cyclic polling
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 10
Putting our project in perspective
Manufacturing Execution System
running on:
• JBoss Application Server
• JBoss Fuse ESB
• Active MQ
• SOAP over JMS
• Much more
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 11
Modbus Library
How to speak Modbus/TCP?
 Implement the protocol from scratch
 Possible but tedious
 Buy a library
 There ain’t none!
 At least not for Java
 Use an open source library
 Many C++-based libraries
 … but we’re not familiar with JNI
 Found a Java library at https://github.com/klymenek/modjn
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 12
Getting started with the Modbus Library
 Modjn offers a fairly simple API
 Got up to speed quickly
 We added a small abstraction Java-friendly layer
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 13
Modbus Library surprises
 Most Modbus libraries have been written by engineers
 Not software developers ☺
 If it runs, it’s good
 Modjn is great for proof of concepts
 Not reliable in the long run
 Errors piled up:
 Lost messages,
 wrong messages
 Many reconnects
 Performance problems (150+ messages in a 10 second time frame)
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 14
Modbus Library surprises
 We started to analyze and dissect the library
 Modjn offers a synchronous API using asynchronous Netty
 We could have sent the 150+ messages in parallel!
 But switching to async wasn’t an option
 We forked the library to make it more resilient
 Tried to contact the author
 No response
 Conclusion: We’re using an abandoned library!
 Luckily it’s simple
 We can maintain it ourselves
Unexpected project
risk!
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 15
Talking past
Each Other
Image source: Wikipedia (public domain)
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 16
Talking at Cross Purposes
0x0030
0x0060
0x0090
MVSK
NGA
LGL
ONT
moveSkid()
dropItem()
pickItem()
Image source: https://commons.wikimedia.org/wiki/File:Mailbox.svg published under a CC BY-SA 3.0 license
WebService names
Legacy telegram
names
What’s really
happening
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 17
Mailboxes
0x0030
0x0060
0x0090
Telegram 1
Telegram 2
Telegram 3
Telegram 4
Image source: https://commons.wikimedia.org/wiki/File:Mailbox.svg published under a CC BY-SA 3.0 license
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlichPLC programming for Java developers Seite 18
Mailboxes
0x0030
0x0060
0x0090
Telegram 1
Telegram 2
Telegram 3
Telegram 4
Memory address content
0x0060 Command ID
0x0062 Skid Number
0x0063 Target position
0x0064 …
Image source: https://commons.wikimedia.org/wiki/File:Mailbox.svg published under a CC BY-SA 3.0 license
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlich Seite 19
Any Questions?
 It's your turn!
PLC programming for Java developers
© OPITZ CONSULTING 2019
Informationsklassifikation:
öffentlich
 Überraschend mehr Möglichkeiten
@OC_WIRE
OPITZCONSULTING
opitzconsulting
opitz-consulting-bcb8-1009116
WWW.OPITZ-CONSULTING.COM
Seite 20
Let‘s make the web a place to be!
Stephan Rauh
CC „moderne Clients und agile Architekturen“
0172-205 59 66
Stephan.Rauh@opitz-consulting.com
@beyondjava
http://www.beyondjava.net
PLC programming for Java developers

More Related Content

Similar to OC in Argentina - Low-level programming in the factory

JavaOne 2016 - Faces Counter
JavaOne 2016 -  Faces CounterJavaOne 2016 -  Faces Counter
JavaOne 2016 - Faces Counter
Coritel
 
Hands on-intro to Node-RED
Hands on-intro to Node-REDHands on-intro to Node-RED
Hands on-intro to Node-RED
Pooja Mistry
 
Bridging Modern DevOps and the Mainframe
Bridging Modern DevOps and the MainframeBridging Modern DevOps and the Mainframe
Bridging Modern DevOps and the Mainframe
DevOps.com
 
Essential Node.js for Web Developers from Developer Week 2013
Essential Node.js for Web Developers from Developer Week 2013Essential Node.js for Web Developers from Developer Week 2013
Essential Node.js for Web Developers from Developer Week 2013
CA API Management
 
CNCF Keynote - What is cloud native?
CNCF Keynote - What is cloud native?CNCF Keynote - What is cloud native?
CNCF Keynote - What is cloud native?
Weaveworks
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trends
Olaf Janssen
 
Open Source on the Mainframe Mini-Summit 2019 - How Open Source is Modernizin...
Open Source on the Mainframe Mini-Summit 2019 - How Open Source is Modernizin...Open Source on the Mainframe Mini-Summit 2019 - How Open Source is Modernizin...
Open Source on the Mainframe Mini-Summit 2019 - How Open Source is Modernizin...
Open Mainframe Project
 
Cloud-native Application Development on OCI
Cloud-native Application Development on OCICloud-native Application Development on OCI
Cloud-native Application Development on OCI
Sven Bernhardt
 
Open Source & DevOps Market trends - Open Core Summit
Open Source & DevOps Market trends - Open Core SummitOpen Source & DevOps Market trends - Open Core Summit
Open Source & DevOps Market trends - Open Core Summit
Ido Green
 
Webinar–OWASP Top 10 for JavaScript for Developers
Webinar–OWASP Top 10 for JavaScript for DevelopersWebinar–OWASP Top 10 for JavaScript for Developers
Webinar–OWASP Top 10 for JavaScript for Developers
Synopsys Software Integrity Group
 
The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to ServerlessThe Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to Serverless
Phil Calçado
 
Dev ops and paas at hp discover 2015
Dev ops and paas at hp discover 2015Dev ops and paas at hp discover 2015
Dev ops and paas at hp discover 2015
James Governor
 
[한국핀테크포럼] 제7회 핀테크포럼
[한국핀테크포럼] 제7회 핀테크포럼[한국핀테크포럼] 제7회 핀테크포럼
[한국핀테크포럼] 제7회 핀테크포럼
Hyeseon Yoon
 
Docker cloud hybridation & orchestration
Docker cloud hybridation & orchestrationDocker cloud hybridation & orchestration
Docker cloud hybridation & orchestration
Adrien Blind
 
Rich Web Applications with Aspenware
Rich Web Applications with AspenwareRich Web Applications with Aspenware
Rich Web Applications with Aspenware
Aspenware
 
Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recap
Torben Dohrn
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
Alexander Arda
 
Openoffice and Linux
Openoffice and LinuxOpenoffice and Linux
Openoffice and Linux
Olivier Teytaud
 
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
Yves LE CLEACH
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
Tom Boucher
 

Similar to OC in Argentina - Low-level programming in the factory (20)

JavaOne 2016 - Faces Counter
JavaOne 2016 -  Faces CounterJavaOne 2016 -  Faces Counter
JavaOne 2016 - Faces Counter
 
Hands on-intro to Node-RED
Hands on-intro to Node-REDHands on-intro to Node-RED
Hands on-intro to Node-RED
 
Bridging Modern DevOps and the Mainframe
Bridging Modern DevOps and the MainframeBridging Modern DevOps and the Mainframe
Bridging Modern DevOps and the Mainframe
 
Essential Node.js for Web Developers from Developer Week 2013
Essential Node.js for Web Developers from Developer Week 2013Essential Node.js for Web Developers from Developer Week 2013
Essential Node.js for Web Developers from Developer Week 2013
 
CNCF Keynote - What is cloud native?
CNCF Keynote - What is cloud native?CNCF Keynote - What is cloud native?
CNCF Keynote - What is cloud native?
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trends
 
Open Source on the Mainframe Mini-Summit 2019 - How Open Source is Modernizin...
Open Source on the Mainframe Mini-Summit 2019 - How Open Source is Modernizin...Open Source on the Mainframe Mini-Summit 2019 - How Open Source is Modernizin...
Open Source on the Mainframe Mini-Summit 2019 - How Open Source is Modernizin...
 
Cloud-native Application Development on OCI
Cloud-native Application Development on OCICloud-native Application Development on OCI
Cloud-native Application Development on OCI
 
Open Source & DevOps Market trends - Open Core Summit
Open Source & DevOps Market trends - Open Core SummitOpen Source & DevOps Market trends - Open Core Summit
Open Source & DevOps Market trends - Open Core Summit
 
Webinar–OWASP Top 10 for JavaScript for Developers
Webinar–OWASP Top 10 for JavaScript for DevelopersWebinar–OWASP Top 10 for JavaScript for Developers
Webinar–OWASP Top 10 for JavaScript for Developers
 
The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to ServerlessThe Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to Serverless
 
Dev ops and paas at hp discover 2015
Dev ops and paas at hp discover 2015Dev ops and paas at hp discover 2015
Dev ops and paas at hp discover 2015
 
[한국핀테크포럼] 제7회 핀테크포럼
[한국핀테크포럼] 제7회 핀테크포럼[한국핀테크포럼] 제7회 핀테크포럼
[한국핀테크포럼] 제7회 핀테크포럼
 
Docker cloud hybridation & orchestration
Docker cloud hybridation & orchestrationDocker cloud hybridation & orchestration
Docker cloud hybridation & orchestration
 
Rich Web Applications with Aspenware
Rich Web Applications with AspenwareRich Web Applications with Aspenware
Rich Web Applications with Aspenware
 
Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recap
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
 
Openoffice and Linux
Openoffice and LinuxOpenoffice and Linux
Openoffice and Linux
 
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
Bluemix overview - Rencontres Ecole Centrale et Supelec avec IBM France Lab -...
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
 

More from OPITZ CONSULTING Deutschland

OC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle LizenzierungOC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle Lizenzierung
OPITZ CONSULTING Deutschland
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
OPITZ CONSULTING Deutschland
 
OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021
OPITZ CONSULTING Deutschland
 
OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"
OPITZ CONSULTING Deutschland
 
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
OPITZ CONSULTING Deutschland
 
OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"
OPITZ CONSULTING Deutschland
 
OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"
OPITZ CONSULTING Deutschland
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
OPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OPITZ CONSULTING Deutschland
 
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-LizenzierungOC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OPITZ CONSULTING Deutschland
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OPITZ CONSULTING Deutschland
 
OC|Weekly Talk The Power of DevOps…
OC|Weekly Talk  The Power of DevOps…OC|Weekly Talk  The Power of DevOps…
OC|Weekly Talk The Power of DevOps…
OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remoteOC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remote
OPITZ CONSULTING Deutschland
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud Nutzung
OPITZ CONSULTING Deutschland
 

More from OPITZ CONSULTING Deutschland (20)

OC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle LizenzierungOC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle Lizenzierung
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
 
OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021
 
OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"
 
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
 
OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"
 
OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
 
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-LizenzierungOC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-Lizenzierung
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
 
OC|Weekly Talk The Power of DevOps…
OC|Weekly Talk  The Power of DevOps…OC|Weekly Talk  The Power of DevOps…
OC|Weekly Talk The Power of DevOps…
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring
 
OC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remoteOC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remote
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud Nutzung
 

Recently uploaded

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 

Recently uploaded (20)

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 

OC in Argentina - Low-level programming in the factory

  • 1. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlich  Überraschend mehr Möglichkeiten © OPITZ CONSULTING 2019 Low-level programming in the factory Stephan Rauh OC in Argentina
  • 2. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichWelcome Days – Strategie@OC Mission Mit unserer Leidenschaft für neue Technologien und unserem Anspruch an herausragende Beratung sind wir bei unseren Kunden der Motor der digitalen Transformation. Wir entwickeln überraschend mehr Möglichkeiten!» Seite 2
  • 3. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlich Seite 3 … in Argentina Image source: Wikimedia (CC BY-SA 3.0) Let‘s Control the Assembly Line!
  • 4. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 4 What is a PLC? Image source: https://de.wikipedia.org/wiki/Speicherprogrammierbare_Steuerung#/media/File:Programmable_logic_controller.jpg
  • 5. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlich Seite 5 Controlling Hardware Half a World Remote Image source: https://pixabay.com/de/illustrations/welt-karte-weltkarte-erde-mercator-2169041/ (Pixabay license); https://en.wikipedia.org/wiki/File:Server-multiple.svg
  • 6. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlich Seite 6 Performance Image source: https://pixabay.com/de/illustrations/welt-karte-weltkarte-erde-mercator-2169041/ (Pixabay license); https://en.wikipedia.org/wiki/File:Server-multiple.svg 12.000 km / 300.000 km/s = 40 milliseconds real-world latency: ≥ 75 ms 133 network calls: ≥ 10 seconds
  • 7. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 7 Programming a PLC 1. Reading input registers and coils 2. Executing the program 3. Processing communication requests 4. Executing CPU diagnostics 5. Writing output registers and coils
  • 8. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 8 Registers and Coils Coils little endian read- only big endian Registers memory address
  • 9. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 9 Java Modbus Adaptor JBoss Application Server PLCModbus Adaptor Modbus TCP SOAP over JMS • 12.000 km distance • cyclic polling
  • 10. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 10 Putting our project in perspective Manufacturing Execution System running on: • JBoss Application Server • JBoss Fuse ESB • Active MQ • SOAP over JMS • Much more
  • 11. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 11 Modbus Library How to speak Modbus/TCP?  Implement the protocol from scratch  Possible but tedious  Buy a library  There ain’t none!  At least not for Java  Use an open source library  Many C++-based libraries  … but we’re not familiar with JNI  Found a Java library at https://github.com/klymenek/modjn
  • 12. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 12 Getting started with the Modbus Library  Modjn offers a fairly simple API  Got up to speed quickly  We added a small abstraction Java-friendly layer
  • 13. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 13 Modbus Library surprises  Most Modbus libraries have been written by engineers  Not software developers ☺  If it runs, it’s good  Modjn is great for proof of concepts  Not reliable in the long run  Errors piled up:  Lost messages,  wrong messages  Many reconnects  Performance problems (150+ messages in a 10 second time frame)
  • 14. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 14 Modbus Library surprises  We started to analyze and dissect the library  Modjn offers a synchronous API using asynchronous Netty  We could have sent the 150+ messages in parallel!  But switching to async wasn’t an option  We forked the library to make it more resilient  Tried to contact the author  No response  Conclusion: We’re using an abandoned library!  Luckily it’s simple  We can maintain it ourselves Unexpected project risk!
  • 15. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 15 Talking past Each Other Image source: Wikipedia (public domain)
  • 16. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 16 Talking at Cross Purposes 0x0030 0x0060 0x0090 MVSK NGA LGL ONT moveSkid() dropItem() pickItem() Image source: https://commons.wikimedia.org/wiki/File:Mailbox.svg published under a CC BY-SA 3.0 license WebService names Legacy telegram names What’s really happening
  • 17. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 17 Mailboxes 0x0030 0x0060 0x0090 Telegram 1 Telegram 2 Telegram 3 Telegram 4 Image source: https://commons.wikimedia.org/wiki/File:Mailbox.svg published under a CC BY-SA 3.0 license
  • 18. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlichPLC programming for Java developers Seite 18 Mailboxes 0x0030 0x0060 0x0090 Telegram 1 Telegram 2 Telegram 3 Telegram 4 Memory address content 0x0060 Command ID 0x0062 Skid Number 0x0063 Target position 0x0064 … Image source: https://commons.wikimedia.org/wiki/File:Mailbox.svg published under a CC BY-SA 3.0 license
  • 19. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlich Seite 19 Any Questions?  It's your turn! PLC programming for Java developers
  • 20. © OPITZ CONSULTING 2019 Informationsklassifikation: öffentlich  Überraschend mehr Möglichkeiten @OC_WIRE OPITZCONSULTING opitzconsulting opitz-consulting-bcb8-1009116 WWW.OPITZ-CONSULTING.COM Seite 20 Let‘s make the web a place to be! Stephan Rauh CC „moderne Clients und agile Architekturen“ 0172-205 59 66 Stephan.Rauh@opitz-consulting.com @beyondjava http://www.beyondjava.net PLC programming for Java developers