OPC UA doorbreekt de hiėrarchie

Met de creatie van OPC UA client-functieblokken doorbreken PLCopen en de OPC Foundation de klassieke hiėrarchie in automatiseringssystemen. Waar communicatie in het verleden steeds geļnitieerd moest worden door een systeem dat hoger stond in de piramidestructuur, kunnen controllers vanaf nu ook zelf het initiatief nemen om een communicatie op te zetten. Op die manier kan een PLC bijvoorbeeld zelf een receptuur opvragen in een MES-systeem.

OPC is een veel gebruikte standaard in automatiseringssystemen om data uit te wisselen tussen controllers, visualisatiesystemen en MES-software. Daarbij kan het zowel gaan om real-time proceswaarden als om settings, alarmen en historische data. OPC stond aanvankelijk voor OLE voor Process Control, maar de betekenis van het acroniem werd een paar jaar geleden door de OPC Foundation veranderd in Open Platform Communications.

De oude naam verwees naar de technologie die bij de ontwikkeling van de standaard eind jaren ’90 gebruikt werd voor de communicatie, namelijk Object Linking and Embedding – een technologie die op zijn beurt gebruikmaakte van het Distributed Component Object Model van Microsoft. Het kwam er op neer dat data verpakt zat in objecten die door een OPC server (onderdeel van een PLC) aangeboden werden en door een client (een visualisatiesysteem of MES software) opgevraagd konden worden.

Intussen heeft dat model plaats geruimd voor OPC UA, waarbij OPC dus staat voor Open Platform Communications en UA voor Unified Architecture. De nieuwe standaard bouwt verder op de service-oriented architecture die, net als OLE destijds, afkomstig is uit de IT-wereld.

Hergebruik van code

Het uitgangspunt van die service-oriented architecture is het principe dat programmeurs gebruiken om stukjes code te hergebruiken door middel van functies en procedures. Een functie is een stukje code dat bij het oproepen een bepaalde input meekrijgt en in functie daarvan een bepaald resultaat oplevert.

In een service-oriented architecture wordt dat principe verder doorgetrokken waarbij het gebruik van een functie niet langer beperkt blijft tot één systeem, maar waarbij meerdere systemen gebruik kunnen maken van een zelfde functie.

Om een concreet voorbeeld te geven: wanneer u op de site van uw krant de weerkaart raadpleegt, komt die kaart niet van de krant zelf. De server met de website van de krant zal die kaart op dat moment opvragen bij een andere server, namelijk van een bedrijf dat dergelijke kaarten als service aanbiedt. Eventueel geeft de krant bij die aanvraag ook uw locatie door naar de dienstverlener zodat de kaart op die locatie gecentreerd kan worden.

Meer geavanceerde functies

De denkwijze van een service-oriented architecture heeft intussen zijn weg gevonden naar de automatiseringswereld. Mogelijke toepassingen zijn er immers te over. Denk maar aan het opvragen van een receptuur voor een bepaald product, het doorgeven van een programma voor een CNC-machine of het opvragen van klantspecificaties uit een ERP-systeem.

OPC UA is een standaard die de toepassing van dat concept mogelijk maakt. OPC UA zorgt daarbij niet alleen voor het doorgeven van de data, maar ook voor het beheer van de meta-data, authorisatie, enz.

De praktische toepassing is sterk analoog aan de manier van werken bij het originele OPC-concept op basis van OLE, namelijk dat een controller, van welk platform dan ook, een OPC server krijgt, die zijn data als services aanbiedt aan hoger gelegen systemen zoals MES en ERP software.

Een verschil met vroeger is dat OPC UA niet langer gebonden is aan het besturingssysteem Windows van Microsoft en dat er meer geavanceerde functies voor de datacommunicatie ingebakken zitten in de standaard, zoals de mogelijkheid om data te bufferen en opnieuw te verzenden indien nodig, en de veiligheid in de communicatie.

OPC UA client

Een organisatie die OPC UA van bij de eerste publicatie van de standaard in 2006 omarmde, was PLCopen, waarbij een link ontwikkeld werd tussen het informatiemodel van PLCopen en de OPC UA server. Wie een applicatie ontwikkelt in de gestandaardiseerde programmeertaal, kan daarbij ook de services definiėren die die applicatie aan de buitenwereld zal aanbieden.

Eens de applicatie gecompileerd wordt voor een bepaalde controller, kan de OPC UA server van die controller data uit de applicatie gebruiken en deze op een volledig transparante manier aanbieden aan andere systemen. Ook tal van andere organisaties bieden intussen de mogelijkheid om een OPC UA server te integreren.

Een volgende stap in de samenwerking tussen PLCopen en de OPC Foundation was de ontwikkeling van een OPC UA client. Dit werd eerder dit jaar afgerond met de publicatie van de specificaties voor PLCopen functieblokken die het mogelijk maken om een controller niet alleen als server maar ook als client te laten fungeren.

Dat is een revolutionaire stap want een machine kan nu niet alleen zijn data als service aanbieden, maar kan ook zelf een beroep doen op services die elders worden aangeboden.

Cyber-physical systems

Daarmee kunnen een aantal van de eerder aangehaalde voorbeelden ook echt gerealiseerd worden met OPC UA. Een controller zou bijvoorbeeld in een MES-systeem een receptuur kunnen opvragen. Een bewerkingsmachine zou na het uitlezen van een tag op een product een CNC programma kunnen ophalen.

In het verleden werden dergelijke toepassingen altijd gerealiseerd via een hoger gelegen systeem dat de machine en zijn omgeving controleerde en data naar de machine stuurde. Nu kan de controller van een machine daartoe zelf het initiatief nemen.

Dat biedt met name nieuwe mogelijkheden in de ontwikkeling van cyber-physical systems – machines en andere systemen die met elkaar kunnen communiceren zonder bovenliggend, coördinerend systeem. Het biedt ook mogelijkheden om volop gebruik te maken van de cloud waarbij een controller gebruik zou kunnen maken van diensten (cloud services) die door externe partners aangeboden worden, een beetje zoals de website van de krant die elders haar weerkaarten haalt. De OPC UA standaard garandeert daarbij een veilige en correcte communicatie, met een zekere quality of service (QoS) die het mogelijk moet maken om ook real-time toepassingen te realiseren.

© Productivity.be, Tekst: Erwin Vanvuchelen


Feel free to share

Productivity.be Update Alerts

Wenst u regelmatig update alerts te ontvangen over nieuwe artikels en productoverzichten?

Agenda

AgriFoodTech, Brabanthallen ‘s-Hertogenbosch, 12-13/12/18
Indumation, Kortrijk Xpo, 6-8/2/19
RapidPro, Koningshof Veldhoven, 13-14/3/19
Meer


Productivity.be

is een publicatie van
Redactiebureau ConScript

Contact

Erwin Vanvuchelen
+32 (0)475 64 99 34
erwin@conscript.be
erwinvanvuchelen