# Programmable logic controller

Een programmable logic controller (PLC, programmeerbare logische sturing) is een elektronisch apparaat met een microprocessor, dat op basis van de informatie op zijn diverse ingangen zijn uitgangen aanstuurt.
In de industrie worden machines vaak aangestuurd met PLC's en die zijn daarmee een belangrijk onderdeel in de automatisering. Hoe de PLC zijn gegevens precies inleest hangt af van de geïnstalleerde interfacekaarten en van de veldbusnetwerken waarlangs verschillende apparaten met elkaar gegevens uitwisselen.
Van oorsprong bevatte een PLC geen volledige microprocessor, maar in de jaren 90 is het verschil tussen een computer en een PLC vervaagd.
De eerste PLC's bestonden uit logische poorten (AND, OR) en timer IC's die met bedrading verbonden waren. Door aanpassing van de bedrading werd de functionaliteit en dus het programma aangepast. Met de komst van de microprocessor werd deze functionaliteit in geheugen gestopt en waren de eerste echte PLC's een feit. Men kreeg nu meer flexibiliteit en meer mogelijkheden.
De PLC en de interface-software voor het debuggen en het schrijven van de software hebben een grote ontwikkeling doorgemaakt.
Er kan sprake zijn van een Slot PLC en een Soft PLC.

## Soorten
#### Traditionele PLC

De traditionele PLC bestaat uit een CPU met zijn eigen behuizing en intern werkgeheugen. Meestal worden geheugenkaarten gebruikt als opslaggeheugen. Te denken valt aan een MMC-kaart van een digitale camera.

#### Slot-PLC

Een slot-PLC is een traditionele PLC, maar dan op bijvoorbeeld een PCI-insteekkaart die in een PC gestoken wordt.

#### Soft PLC

De soft PLC is een PLC die draait als software op een PC of een embedded PC met bijvoorbeeld WinCE. Met een interfacekaart en driversoftware communiceert deze met de buitenwereld. Deze communicatie verloopt normaal gesproken via een standaard industrieel bussysteem zoals profibus of Modbus. Nieuwe generatie van embedded soft PLC's in kleine maar krachtige micro-pc's kunnen naast Profibus of Modbus ook Profinet als communicatiemiddel hanteren.

#### OPLC

Een "operating panel PLC" is een PLC met ingebouwde HMI, bestaande uit toetsenbord met display of een touchpanel. Dit zijn kleine PLC's die meestal gebruikt worden op kleine stand alone-machines.

#### Veiligheids-PLC

Er bestaan PLC's die speciaal ontworpen zijn voor het implementeren van veiligheidssystemen. Dergelijke PLC's worden vaak toegepast als aanvulling op Distributed control systemen, waarbij ze ervoor moeten zorgen dat bij uitval van functies het proces of de installatie naar een veilige toestand gebracht wordt. Dergelijke systemen zijn vrijwel altijd failsafe uitgevoerd en moeten voldoen aan een door de instanties voorgeschreven minimale SIL-kwalificatie.

## Interfacekaarten of modulen

* Digitale kaarten/modulen
Hier wordt een toestand aan of af (één bit 0 of 1) ingelezen of uitgestuurd. De 0 of 1 kan als lage of hoge spanning aangeboden worden, maar ook als een schakelcontact dat open of dicht is.
* Analoge kaarten/modulen
Een analoog signaal afkomstig van een sensor (variatie van 0 tot 10V, 4-20 mA of 0-20 mA of weerstandmeting) wordt via een analoog-digitaalomzetter omgezet in een binair getal dat verder door de PLC behandeld kan worden. Afhankelijk van het programma wordt dit signaal gebruikt in de besturing of herschaald naar bijvoorbeeld een temperatuur (0 tot 100 graden). De PLC kan ook analoge signalen als uitvoer leveren, bijvoorbeeld een elektrische spanning of stroom om een motor aan te sturen, of om een regelklep op een bepaalde stand te zetten.
* Tellerkaarten/modulen
Deze worden gebruikt om te tellen of voor de positiebepaling van machines, via het tellen van pulsen afkomstig van een pulsgever (of "encoder"). Dat pulssignaal is meestal een combinatie van twee signalen met een onderlinge faseverschuiving, zodat ook de richting van de beweging kan gedetecteerd worden. De PLC rekent deze pulsen om naar een positie; bijvoorbeeld: 10 pulsen zijn gelijk aan 1 mm verplaatsing, of aan 1 graad hoekverdraaiing.
* Communicatiekaarten
Kaarten met communicatiepoorten, bijvoorbeeld RS232, RS485 of ethernet.
* Functiekaarten
Bijvoorbeeld kaarten om stappenmotoren aan te sturen of kaarten met een busmaster

## Veldbussen

De traditionele veldbussen waren vooral RS485 netwerken, sommigen gebruiken een heel eigen elektrische laag zoals de CAN-bus en ASi-bus. De laatste tijd zijn de Ethernet-netwerken erg in opkomst. Hiervoor zijn intussen tientallen protocollen beschikbaar.
* Het Modbus-protocol is ontwikkeld door Modicon voor 's werelds eerste PLC van Modicon. Er is gekozen voor een opensource benadering, waardoor het mogelijk is voor iedereen om dit protocol gratis te downloaden via de site.
* Modbus Plus is een RS485-netwerk met een Token Ring Topology. Dit betekent dat er geen master- of slavesituatie aanwezig is, maar alle deelnemers op het netwerk dezelfde rechten hebben voor zowel schrijven als lezen van informatie.
* Profibus DP
* Profibus PA. Dit is een tweedraadsbus voor zowel voeding als data.
* Foundation Fieldbus
* AS-Interface (Asi) Dit is een tweedraadsbus voor zowel voeding als data.
* Controller Area Network (CAN)
* HART (protocol)
* Interbus
Veldbussen op ethernet zijn onder andere:
* Modbus/TCP
* Profinet
* Ethercat
* Sercos-III, vooral voor high speed motion.
* Varan
* Ethernet/IP
* Powerlink

## Werking van de PLC

Een PLC doorloopt intern voortdurend een vaste, voorgeprogrammeerde cyclus. Na een programmacyclus te hebben afgerond, wordt de status van de outputs aangepast en vervolgens wordt de status van de ingangen ingelezen. Door deze manier van werken kan een PLC vele dingen tegelijk doen. Binnen de vaste cyclus bestaat er naast de basistask (slow-task) ook een fasttask waarin men bepaalde ingangen/uitgangen snel kan verwerken los van de basistask. Bij bepaalde merken van PLC is de snelheid van de verschillende fasttasks in te stellen. Andere PLC's gebruiken een interrupt systeem om andere specifieke taken uit te voeren. De aanroep van deze interrupts kunnen worden ingesteld volgens prioriteit.

## Programmeren van PLC's

Om een PLC te programmeren en te testen is een verbinding nodig tussen de PLC en het apparaat waarmee geprogrammeerd wordt, doorgaans een personal computer. De softwarelicenties werden vroeger door middel van hardwaresleutels geregeld, tegenwoordig wordt steeds meer gewerkt met softwarematige licenties.
Vijf veel gebruikte programmeertalen zijn: AnWeisungsListe (AWL) of Instruction List (IL), Structured Text (ST), KontaktPlan (KOP) of Ladder Diagram (LD), FunctionsPlan (FUP) of Functional Block Diagram (FBD) en Sequential Function Chart (SFC). Structured text is een complexere programmeertaal, die op Pascal lijkt. Een veel gebruikte norm is de IEC 6-1131 norm. In deel drie van de norm IEC 6-1131 worden de programmeertalen ook genoemd / beschreven.

## Externe link

* (en) Website met veel informatie over PLC's
* ↑ modbus.org
* ↑ (IEC 6-1131-3)