Achtergrond
PLCOpen-standaard combineert logica, motion en veiligheid voor mechatronica
13 november 2009
Op basis van de IEC 61131-3-standaard heeft PLCOpen een specificatie opgesteld die de werelden van PLC-software, motion control en veiligheid samenbrengt. Directeur Eelco van der Wal van de associatie uit Gorinchem belicht de verschillende delen waaruit de beschrijving bestaat. Daarbij legt hij uit hoe de specificatie de definitie en ontwikkeling van mechatronica-applicaties stroomlijnt.
De wereldwijde IEC 61131-3-standaard harmoniseert de diverse programmeerdialecten in de PLC-wereld. De specificatie voorziet niet alleen in een aantal programmeertalen, maar legt ook de basis voor een gestructureerde wijze van softwarespecificatie en –ontwikkeling. Daarnaast kan ze de herbruikbaarheid van de verschillende software-elementen verhogen en verschillende niveaus van verantwoordelijkheid mogelijk maken tijdens de diverse ontwikkelfases. Dit alles zorgt voor een aanmerkelijke kostenreductie in de applicaties en bij de gebruikers voor kennis en ervaring die beter overdraagbaar is.
Voortbouwend op de IEC 61131-3-standaard heeft PLCOpen de Motion Control-specificatie opgesteld. Deze brengt de werelden van PLC’s en PLC-software, de logica, samen met die van de motion control, de aansturing van elektromotoren en dan vooral servo’s. De specificatie standaardiseert niet alleen de motionprogrammeertaal, maar vergroot ook het gebruikersgemak door de verregaande hardwareonafhankelijkheid die ze bewerkstelligt. Het resultaat is dat er minder training nodig is, dat de kennis- en ervaringsoverdracht van de technicus soepeler verloopt en dat programma’s overzichtelijker zijn en gemakkelijker te wijzigen en te onderhouden. Daarnaast wordt modulair denken en ontwikkelen mogelijk.
Machinebouwers moeten ook nadenken over de veiligheid van de bediener. Met de wijzigingen in de EU-wetgeving is dit alleen maar belangrijker geworden. De machineveiligheid moet dus niet aan het einde nog even worden toegevoegd, maar een logisch onderdeel zijn van het hele ontwerptraject. Om dit te ondersteunen, heeft PLCOpen een veiligheidsspecificatie ontwikkeld.
Var_In_Out
PLCOpen heeft de motionsoftware gestandaardiseerd over de grote diversiteit aan dialecten en architecturen heen. Centraal staat het IEC 61131-3-concept van functieblokken. Deze scheiden functionaliteit en implementatie: de gebruiker van een functieblok ziet een gestandaardiseerde interface met daaraan gekoppeld de functionaliteit; de onderliggende code kan per systeem verschillen. Dit maakt het veel gemakkelijker om verschillende implementaties te gebruiken. Training op één systeem gaat niet verloren als we in de praktijk een ander systeem gaan inzetten, mits beide systemen de standaard ondersteunen.
Op dit moment telt de Motion Control-specificatie zes delen. Deel 1 beschrijft de basis, deel 2 de uitbreidingen daarop, deel 3 bevat gebruikersrichtlijnen en voorbeelden, deel 4 behandelt gecoördineerde bewegingen, deel 5 de procedures en functieblokken voor homing en deel 6 de uitbreidingen voor fluid power (hydraulica en perslucht). Op de gebruikersvoorbeelden na bestaat elk deel uit een toestandsdiagram, de definitie van een set functieblokken en de voorwaarden voor certificering.
Figuur 1: De functieblokken voor synchronisatie in deel 4 van de specificatie liggen in lijn met de soortgelijke blokken in deel 1 en 2.
Het toestandsdiagram beschrijft het asgedrag op een hoger niveau. Een as bevindt zich altijd in slechts één toestand. Een bewegingscommando kan een overgang bewerkstelligen naar een andere toestand. Voor een as zijn acht toestanden gedefinieerd: Disabled, StandStill, Homing, DiscreteMotion, ContinuousMotion, SynchronizedMotion, Stopping en ErrorStop. Een normale procedure begint in Disabled. Als we de spanning per as inschakelen, verandert de toestand in StandStill. Hierna kunnen we een Homing-procedure starten, die na beëindiging het systeem doet terugkeren naar StandStill. Nu kunnen we per motor commando’s geven om een discrete (DiscreteMotion) of continue beweging (ContinuousMotion) uit te voeren. In beide toestanden kunnen we een synchronisatie starten met een andere motor, bijvoorbeeld via MC_GearIn. Het resultaat voor die volgmotor is dan SynchronizedMotion. Een commando voor een enkelvoudige motor leidt weer tot een transitie naar een discrete dan wel continue beweging. Via het commando MC_Stop keren we via Stopping gecontroleerd terug in StandStill. Bij een fout komen we in ErrorStop, waarna we slechts via een bevestiging in StandStill eindigen.
Alle motionfunctieblokken die de specificatie definieert, representeren een motor door middel van het datatype Axis_Ref. Dit is niet enkel een ingangs- of een uitgangstype, maar een combinatie van beide, een Var_In_Out. Hierdoor ligt de Axis_Ref-structuur die de motor met drive weerspiegelt buiten het functieblok. Als meerdere functieblokken op dezelfde motor werken, wijzen ze ook naar dezelfde Axis_Ref, zodat er geen gegevens hoeven te worden gekopieerd. Dit is een efficiënte manier om de complexe structuur van een motor-drivecombinatie te beheren en aan te sturen. En dat ongeacht de onderliggende besturingsarchitectuur. Dit is de basis van de hardwareonafhankelijkheid van PLCOpen Motion Control.
Homing
Deel 3 van de Motion Control-specificatie bevat richtlijnen voor het gebruik van de functieblokken, met voorbeelden die illustreren hoe de specificatie in de praktijk kan worden toegepast. Bovendien beschrijft dit deel hoe gebruikers hun eigen functieblokken kunnen definiëren, toegesneden op hun machinefunctionaliteit, zodat ze functionaliteit op een hoger niveau kunnen standaardiseren binnen de eigen organisatie. Voor het gecontroleerd afwikkelen van een rol papier is er bijvoorbeeld geen standaard blok, omdat er te veel verschillende mechanische oplossingen mogelijk zijn. Is de mechanische oplossing eenmaal bekend, dan laat deel 3 zien hoe hier een applicatiespecifiek functieblok bij te definiëren is. Door dit blok te documenteren en in een bibliotheek algemeen beschikbaar te stellen, kunnen organisaties de herbruikbaarheid, de codekwaliteit, de implementatietijd en de kosten voor onderhoud en wijzigingen optimaliseren. Dit levert aanzienlijke besparingen op.
Het vierde deel beschrijft 3D-bewegingen met meerdere motoren, waarbij geen hoofdas wordt gevolgd. Voor bewegingen in drie dimensies transformeren we het te doorlopen traject via (inverse) kinematische modellen op de motoren die gegroepeerd zijn door de mechanische constructie. Daarbij kunnen we in meerdere coördinaatsystemen denken. Een goed voorbeeld is een zesassige robotarm. Door de groepering van de motoren is er ook een bovenliggend toestandsdiagram van toepassing.
Dit deel definieert zes functieblokken voor het groeperen, twaalf voor de beschrijving van de beweging zelf, zeven voor de transformaties en koppeling van coördinaatsystemen en negen met andere functionaliteit. Daarnaast is de mogelijke synchronisatie met een andere motor belangrijk, bijvoorbeeld die van een transportband of doseringsmodule van lijm op een ruit. Hiervoor zijn vier functieblokken gedefinieerd. Deze liggen weer in lijn met de synchronisatie in deel 1 en 2 (Figuur 1).
Om na het inschakelen van een machine de nulposities te vinden, kunnen complexe procedures nodig zijn. Deel 5 van de PLCOpen-specificatie beschrijft deze homing-procedures en gaat in op de implementatie ervan. De gebruiker kan ze via de simpele oproep van MC_Home per motor of machine uitvoeren. Opnieuw een voorbeeld van scheiding tussen de diverse engineeringniveaus en de toepassing door de operator en de onderhoudsman.
Safety
Als we een machine in beweging zetten, moeten we ook hebben nagedacht over de veiligheidsaspecten voor de bediener. Door de actuele wetgeving worden deze aspecten steeds belangrijker. Daarom moeten we ze het liefst al bij de start van de ontwikkeling van een machine meenemen in de specificatie. Om dit in praktijk te kunnen, heeft PLCOpen hiervoor samen met zijn leden en belangrijke Duitse veiligheidsorganisaties een specificatie geschreven die logica, motion en safety integreert. Deze integratie verhoogt het begrip van de veiligheidsaspecten en reduceert de certificeringstijd en -kosten.
Daarnaast zien we in de huidige besturingstechnologie een toenemend gebruik van communicatiebussen die ook geschikt zijn voor veiligheidstoepassingen. Door deze digitalisering komt de veiligheidsfunctionaliteit nu ook beschikbaar in de besturing zelf en moeten we veiligheidsvoorzieningen in software oplossen, terwijl de hieraan gestelde eisen steeds strenger worden. Dit vraagt om een resolute oplossing waarbij we verwarringen door verschillende dialecten moeten vermijden.
De specificatie van PLCOpen en partners maakt het mogelijk gegevens uit te wisselen tussen de veiligheidsomgeving en de functionele applicatie, terwijl de machine toch veilig blijft. De standaard definieert een uitgebreide hoeveelheid functieblokken, zoals handbesturing, modusselector, noodstop, veilige gereduceerde snelheid en veiligheidsdeuren. Daarnaast belicht het document de ondersteuning in de ontwikkelomgeving en de foutafhandeling en diagnose. Hierdoor kan één en dezelfde omgeving functionaliteit bieden voor de logica, motion en safety.
Om deze combinatie ten volle te kunnen benutten, is een gestructureerde aanpak van applicatiedefinitie en -ontwikkeling nodig. PLCOpen is zich ervan bewust dat dit veel vragen kan oproepen: waar te beginnen, hoe dat te realiseren voor de applicatiesoftware? De beschrijving ‘PLCOpen logic, motion, safety’ kan hier een wegwijzer zijn. Dit document is gratis te downloaden van de PLCOpen-website www.plcopen.org, net als de vrijgegeven delen van de Motion Control-specificatie (aan 5 en 6 wordt nog gewerkt).
Eelco van der Wal is directeur van PLCOpen.






