Programmable Logic Controllers vormen het hart van de industriële automatisering en maken de nauwkeurige besturing en regeling van machines en processen mogelijk. PLCs bieden flexibiliteit, betrouwbaarheid en efficiëntie in talloze toepassingen. Gedetailleerde informatie en antwoorden op veelgestelde vragen vind je in deze FAQ.
In bijna elke procesinstallatie in de industrie worden elektrische en mechanische systemen geautomatiseerd. Dit betekent bijvoorbeeld dat componenten automatisch worden aangestuurd op basis van schakelaarposities of nadat een bepaalde tijd is verstreken. Soms zijn alleen eenvoudige binaire koppelingen nodig, maar vaak zijn complexe sequentiebesturingen nodig. Programmable Logic Controllers (PLCs) worden gebruikt voor automatisering.
Een PLC (Programmable Logic Controller) kan worden gezien als een kleine computer die uitgangen genereert op basis van ingangen en bewerkingen. Een PLC bestaat minimaal uit een centrale verwerkingseenheid (CPU) en ingangs-/uitgangsmodules (I/O-modules). In de regel zijn de I/O-modules via een systeembus verbonden met de centrale verwerkingseenheid en worden ze via de centrale verwerkingseenheid van stroom voorzien.
JUMO variTRON 500 centrale verwerkingseenheid (CPU) met PLC-functionaliteit, in-/uitgangsmodules en webpaneel
PLC's zijn verkrijgbaar in verschillende uitvoeringen al naar gelang functionaliteit en toepassing:
Deze controllers zijn geïntegreerd in een enkele behuizing en bevatten alle benodigde componenten zoals CPU (Central Processing Unit), ingangen/uitgangen en communicatie interfaces. Ze zijn ideaal voor kleinere toepassingen met minimale ruimtevereisten.
Deze systemen bestaan uit een centrale CPU en aparte ingangs-/uitgangsmodules die naar wens kunnen worden toegevoegd of verwijderd. Ze bieden flexibiliteit en uitbreidbaarheid voor complexere toepassingen. Dit geld ook voor de automatiseringssystemen van de JUMO variTRON-serie, ook al hebben ze een veel breder aanbod aan functies dan standaard PLC's.
Deze besturingseenheden zijn speciaal ontwikkeld voor veiligheidskritische toepassingen en voldoen aan strenge veiligheidsnormen. Ze worden gebruikt in gebieden waar de bescherming van mensen en systemen de hoogste prioriteit heeft.
De signalen van schakelaars en sensoren, etc. bereiken de centrale eenheid via ingangsmodules en zijn zo beschikbaar in de PLC. Voorbeelden van de signalen van het systeem zijn de respectieve status van eindschakelaars, thermostaten, flowmonitoren en niveauschakelaars of de overeenkomstige meetwaarden van temperatuur-, druk— of vochtigheidssensoren. De PLC koppelt de signalen en creëert een resultaat dat beschikbaar gesteld wordt aan de uitgangsmodules. Relais worden bijvoorbeeld gebruikt om magneetkleppen en motoren te activeren. De functionaliteit van een PLC wordt dus gerealiseerd in de centrale eenheid (CPU), het is als het ware het besturingssysteem.
Vóór de introductie van de PLC werden besturingssystemen gerealiseerd door relais en tijdrelais aan elkaar te koppelen. Een dergelijk besturingssysteem vereiste een grote materiaalinzet en de functionaliteit kon alleen worden gewijzigd door bedrading te veranderen. De systemen waren gevoelig voor storingen en het oplossen van problemen was tijdrovend. De taak van de eerste programmeerbare logische controllers was om deze relaisnetwerken te vervangen.
Alle ingangssignalen worden cyclisch bewerkt door een PLC-programma en gekoppeld in het programma. Ontwikkelomgevingen zoals CODESYS zijn beschikbaar voor PLC-programmering, d.w.z. de programma's worden ontwikkeld in CODESYS en vervolgens overgebracht naar de PLC.
Het programmeren van een PLC is mogelijk in verschillende programmeertalen die zijn gedefinieerd in de IEC 61131-3 norm. De programmeur kan daarom de programmeertaal kiezen die het beste past bij de betreffende vereisten. Hieronder volgt een overzicht van de belangrijkste PLC-programmeertalen:
De programmeertaal Ladder Logic (ladderdiagram), die al sinds de jaren 1960 bestaat, is geschikt voor het vervangen van relaisnetwerken. Het is de oudste van de bekende programmeertalen en de programmaweergave is vergelijkbaar met die van elektrische circuits.
Stel je een heel eenvoudige toepassing voor waarin een ingangsmodule de status van een grenswaardeschakelaar in een tank en die van 2 drukknoppen verkrijgt. De respectievelijke statussen zijn beschikbaar in het PLC-programma via variabelen met de namen “LevelBelowTheLimit”, ‘PushbuttonLeft’ en “PushbuttonRight”. Een pomp wordt aangestuurd via het relais van een uitgangsmodule. Deze wordt in het programma aangesproken met de naam “PumpActivated”). De pomp mag alleen worden geactiveerd als beide drukknoppen (beide - om veiligheidsredenen) zijn ingedrukt en het puntniveau is gezakt. Het eenvoudige programma in de programmeertaal ladderlogica ziet er als volgt uit in CODESYS:
Programmavoorbeeld in Ladder Logic
Je herkent een structuur die lijkt op die van een schakelschema, bestaande uit schakelaars/knoppen en relais. Nadat het programma is gemaakt, wordt het overgezet naar de PLC en gecontroleerd. Hierna is de CODESYS-ontwikkelomgeving niet meer nodig.
Er waren al heel vroeg timers beschikbaar in de Ladder Logic programmeertaal die vertraagd in- en uitschakelen mogelijk maken of hun uitgang activeren gedurende een bepaalde tijd na activering. Er is bijvoorbeeld een functieblok met de aanduiding TON, dat zijn uitgangssignaal pas activeert als zijn ingang gedurende een bepaalde tijd wordt geactiveerd. Als de pomp bijvoorbeeld moet worden geactiveerd wanneer de knoppen gedurende een minimale tijd van 5 seconden worden geactiveerd, moet het kleine programma als volgt worden gewijzigd:
Aangepast programmavoorbeeld in Ladder Logic
De standaard functiemodules bevatten ook RS flip-flops, tellers, timer elementen (zoals in— en uitschakelvertragingen) en flankdetectoren. Wiskundige operatoren maken ook deel uit van de basis programmeeruitrusting.
Een andere zeer vergelijkbare taal is het netwerk georiënteerde functieblokdiagram. In deze taal is het kleine programma als volgt opgebouwd:
Programmavoorbeeld in functieblokdiagram
CFC (continuous function chart) is een verdere ontwikkeling van het functieblokdiagram waarbij elementen vrij gepositioneerd kunnen worden. Voor de rest lijkt CFC qua uiterlijk erg op elkaar. De programmeertaal is heel gebruikelijk. Daarin ziet het programma er als volgt uit:
Programmavoorbeeld in Continuous Function Chart (CFC)
Instruction list (IL) is een programmeertaal die tegenwoordig relatief weinig gebruikt wordt en erg lijkt op de Assembler programmeertaal. Elke instructie in IL is primair gebaseerd op het laden van waarden in een accumulator, wat wordt gedaan met de LD instructie. De overeenkomstige bewerking wordt dan uitgevoerd met de eerste parameter uit de accumulator. Het resultaat van deze bewerking wordt teruggeschreven naar de accumulator. Het kleine programma is in IL als volgt opgebouwd:
Programmavoorbeeld in Instruction List (IL)
Een andere programmeertaal is ST-code (structured text). ST-code is een op tekst gebaseerde programmeertaal die het mogelijk maakt om complexe besturingstaken op te lossen. De syntaxis lijkt op die van Pascal en maakt het gebruik van variabelen, functies, lussen en voorwaardelijke verklaringen mogelijk. ST-code is bijzonder geschikt voor het programmeren van complexe sequenties en wiskundige berekeningen en maakt gestructureerd en duidelijk programmeren mogelijk, wat het onderhoud en de verdere ontwikkeling van besturingsprogramma's vergemakkelijkt. Voor het voorbeeldprogramma in ST-code zijn slechts 2 regels nodig.
Programmavoorbeeld in Structured text (ST-code)
De Sequential Function Chart-taal is ideaal voor het realiseren van sequentiebesturingen. Stel je een thermische behandelingsinstallatie voor waarin het te behandelen material via een transportband wordt aangevoerd. De eerste 3 stappen zijn als volgt:
In programma's in sequentiebesturingstaal zijn er stappen (bijv. verwarmen en invoeren) die met elkaar verbonden zijn door schakelvoorwaarden of overgangen. De eerste 3 stappen (+basis posities) van het programmavoorbeeld zien er in sequentiebesturingstaal als volgt uit:
Het verlinken van de verschillende processtappen in Sequential Function Chart
Voor iedere stap kunnen programma's worden gedefinieerd, maar deze worden alleen verwerkt als de bijbehorende stap actief is. De verwerking begint bij de stap "Basis positie", waarvoor geen programma is gedefinieerd en dus geen activiteit plaatsvindt.
Voor alle volgende stappen worden aparte programma's gedefinieerd (bijv. in het ladder diagram). Als de startknop vanuit de basis positie (uitgangspositie) wordt ingedrukt, wordt de stap "verwarmen" geactiveerd en wordt de warmteopwekker geactiveerd. De stap blijft actief totdat de verwarmingstemperatuur is opgelopen tot 200 °C en de stap "Product invoeren" actief wordt. Het programma in de stap "Invoeren" zorgt voor de overeenkomstige besturing van de deur— en scharniermotor.
Verdere stappen worden dienovereenkomstig toegevoegd. De stap "Basis positie" wordt weer actief bij de laatste overgang.
Een van de kernfuncties van een programmeerbare logische controller is het automatiseren van processen, waarvoor programmering in een van de bovengenoemde programmeertalen vereist is. De PLC's van tegenwoordig zijn echte allrounders en bieden veel meer: