Python in industriële automatisering

Wanneer we het hebben over welke programmeertalen we moeten gebruiken voor toepassingen in de industriële automatisering, beginnen we meestal met de IEC 61131-3-talen voor PLC’s, zoals het klassieke Ladder Diagram (LD) of Structured Text (ST). Voor complexe toepassingen zoals robotica zien we vaak gecompileerde code , zoals die van de C-familie.

Tot voor kort had niemand het over het gebruik van Python op de fabrieksvloer. Wat is er veranderd waardoor een interpreter gebaseerde hogere programmeertaal ineens aantrekkelijk is geworden? Pythoncode werkt doorgaans trager dan een gecompileerde taal die dichter bij machinecode staat, en is zeker niet geschikt voor realtimebesturing, wat een belangrijk knelpunt is bij de ontwikkeling van industriële systemen.

We zien nu echter een samenloop van factoren die Python in de schijnwerpers zetten. Ten eerste is Industrie 4.0 het paradigma aan het veranderen van hoe we denken over industriële automatisering; namelijk de nadruk op “slimme” machines met verbeterde autonomie, een groot big data-landschap, en volledige integratie met next-gen technologieën zoals additive manufacturing en cloud computing.

Een andere implicatie van Industrie 4.0 is het Industrial Internet of Things (IIoT), dat industriële machines verbindt op een lokaal netwerk voor realtime machine-to-machine (M2M) communicatie en om een gestage stroom van sensorgegevens te leveren voor analyses. Als gevolg daarvan zijn we getuige van een IT/OT-convergentie, een afbraak van de silo’s die lange tijd de scheiding hebben gemaakt tussen IT-professionals en hun collega’s in Operationele Technologie (OT). IIoT-apparaten gebruiken immers informatie om hun activiteiten te optimaliseren.

Dit brengt ons terug bij Python. Als we kijken naar de sterke punten van ’s werelds populairste programmeertaal, dan zien we een aantal duidelijke voordelen voor IIoT. Ten eerste staat Python bekend om zijn vermogen om enorme datasets te verwerken. Ten tweede heeft Guido Van Rossum, de uitvinder van Python, de taal ontworpen met het oog op een hoge leesbaarheid, een belangrijke eigenschap wanneer meerdere ingenieurs aan dezelfde code werken of deze onderhouden, en een eigenschap die innovatie stimuleert. En ten slotte is Python open source, het heeft een geweldige community en het is de keuze bij uitstek voor veel van de meest aansprekende toepassingen van vandaag.

Laten we Python eens verder onder de loep nemen.

Machine Learning

Het speelveld waar Python de meeste invloed uitoefent is ongetwijfeld Machine Learning (ML), een tak van Artificial Intelligence (AI) waarbij algoritmen leren van gegevens zonder dat iemand expliciet regels codeert. Veel voorkomende industriële toepassingen zijn voorspellend onderhoud en autonome robotica.

Het grootste deel van de ML van vandaag is geschreven in Python. Frameworks zoals PyTorch en Google’s open source TensorFlow gebruiken Python. AWS SageMaker, Amazons cloud AI-dienst, wordt geleverd met een ingebouwde Python Software Development Kit (SDK). Simpel gezegd, Python is het beste gereedschap voor de klus.

Zo ziet een veelgebruikte industriële ML-opstelling eruit: Machine- en sensorgegevens worden naar de cloud gestuurd, waar we eenvoudig toegang hebben tot krachtige systemen die we kunnen gebruiken om een ML-model te trainen. Zodra we een getraind model hebben, bijvoorbeeld een model dat gegevens kan analyseren om te zeggen hoe snel een machine waarschijnlijk defect zal zijn, kunnen we dat model terugsturen naar de fabrieksvloer.

Door edge computing toe te passen en de GPU’s in te bouwen in de productieapparaten zelf of door gebruik te maken van de middelen van een lokale IIoT-gateway voor fog computing, kunnen we ons getrainde model ter plaatse gebruiken. Als we kijken naar een autonome robot, zal de Python-code de doelen op hoog niveau interpreteren, en dit wordt op zijn beurt geïnterpreteerd in bewegingen door de low-level, gecompileerde code die direct communiceert met de hardware.

Een eenvoudige analogie is het bewegen van je arm: je hersenen bepalen de intentie op hoog niveau, en het zenuwstelsel op lager niveau beweegt je spieren. Naarmate we verder gaan in Industrie 4.0 en fabrikanten meer innovatieve toepassingen vinden voor AI, zullen Python-engineeringvaardigheden een steeds belangrijker rol gaan spelen.

Python autoindustrie

Computer Vision

Om een robotarm iets te laten oppakken, moet hij eerst weten waar hij naar kijkt. Hier begint de wereld van computer vision (CV), een AI-gebied dat machines in staat stelt om hun camera’s te gebruiken als ogen en, nog crucialer, de objecten te herkennen die ze zien. Als je alleen al kijkt naar de grote rol van Python in ML, is het niet moeilijk te zien hoe nuttig Python is voor CV.

Oorspronkelijk ontwikkeld door Intel in de late jaren ’90, is OpenCV nu een van de beste opties voor open source CV-ontwikkeling. Hoewel de bibliotheek nog steeds in C++ is geschreven, is de Python-wrapper, opencv-python, ideaal voor ML-toepassingen zoals deep learning voor CV, omdat het de snelheid van de oorspronkelijke C++-code behoudt en toch de voordelen van Python ontsluit.

En omdat opencv-python NumPy-arrays als uitvoer maakt, kunnen we onze gegevens onmiddellijk overzetten naar andere Python-tools zoals SciPy, Matplotlib, of het ML-platform van uw keuze. Het resultaat is een machine die veel meer ziet dan pixels, een die producten kan onderscheiden, kwaliteitscontroles kan uitvoeren, en hun omgeving tot in het kleinste detail kan manipuleren.

Een brug slaan voor een verbonden ecosysteem

Wanneer fabrikanten machine leveren, geven ze gewoonlijk geen prioriteit aan de mogelijkheid om te communiceren met iets anders dan de menselijke machine-interface (HMI).

Als we daar nog aan toevoegen dat veel machines eigen code of G-code draaien, die ongelooflijk dicht op de hardware zit, wordt de IT-kant van de IT/OT-convergentie nog moeilijker.

Hoe kunnen we machines met elkaar laten praten als ze niet in staat zijn dezelfde taal te spreken?

We hebben dus een vertaler nodig en Python is geschikt voor die taak. Programma’s zoals OpenMTC fungeren als een middleware, of “softwarelijm,” voor M2M en IoT toepassingen. Als we deze middleware bijvoorbeeld op een zo eenvoudig apparaat als een Raspberry Pi zetten, dan neemt het Python-script gegevens van de ene bron, converteert die, en stuurt ze door naar een andere machine in een formaat dat deze kan lezen.

Een eenvoudig voorbeeld is een temperatuurgevoelig productieproces. De machine kan de temperatuur misschien niet zelf aanpassen, maar de thermometer kan wel metingen verrichten en als die een bepaalde drempel overschrijdt, stuurt hij een ping naar de middleware, die de verwarming dan kan vertellen de thermostaat lager te zetten.

Dezelfde logica kunnen we toepassen op elke machine die afhankelijk is van de output van een andere machine. Bovendien kunnen we deze methode niet alleen gebruiken om machines te integreren en de prestaties te verbeteren, maar dit opent ook de deur naar een wereld vol nieuwe mogelijkheden.

Eén zo’n wereld is de bestuurderloze auto; door te communiceren met andere voertuigen op de weg zullen ze verkeerspatronen optimaliseren, het woon-werkverkeer verkorten en het aantal ongevallen verminderen.

Python zou wel eens een van de belangrijke bouwstenen kunnen zijn van deze onderling verbonden toekomst.

Conclusie

Hoewel we Python uiteindelijk misschien niet zullen gebruiken om robothardware aan te sturen of rechtstreeks te communiceren met productiemachines, betekent dat niet dat deze programmeertaal geen industriële toepassingen heeft.

Wanneer we Industrie 4.0 in zijn geheel bekijken, zien we dat data het bepalende kenmerk is. We overlappen de digitale wereld rechtstreeks op de fysieke wereld. En daarom hebben we Python nodig: om de kloof tussen beide te overbruggen, om de ongekende hoeveelheden data die we genereren te verwerken en om macroscopische controle en aansturing te ondersteunen.

Python is dus een logische aanvulling voor moderne industriële besturingssystemen zoals de PLCnext Controllers welke met een geïntegreerde Python 3 interpreter optimaal zijn afgestemd op uw Industrie 4.0 toepassingen.

Ook interessant voor u
Phoenix Contact

Adresgegevens:
Hengelder 56
6902 PA Zevenaar
Postbus 246
6900 AE Zevenaar

Contactgegevens:
Tel: (0316) 59 17 20
E-mail: sales@phoenixcontact.nl