In mijn artikel Doe-het-zelf-domotica - Het nieuwe tweaken heb ik vorige maand een aantal populaire protocollen en technieken voor de hardware in een domoticasystemen besproken. Eén van de besproken technieken was de programmable logic controller (plc). Ik gebruik een plc in mijn eigen domoticasysteem en ben er inmiddels erg enthousiast voor. Hopelijk zijn er meer tweakers te vinden die met plc's werken of ermee aan de slag willen
.

Een plc is meestal modulair opgebouwd en bestaat uit de eigenlijke controller die via een veldbus communiceert met de buitenwereld en via uitbreidingsmodules naar wens voorzien kan worden van in- en uitgangen of interfaces naar andere apparaten. In het verleden werden industriële protocollen zoals Profibus, Modbus, rs-485 en Canbus gebruikt voor de communicatie met plc's. Tegenwoordig is ethernet populair. Dat maakt het makkelijk om een plc in een bestaand netwerk te hangen.
De uitbreidingsmodules voor in- en uitgangen zijn er in allerlei soorten en maten. Er zijn digitale uitgangen waarmee je bijvoorbeeld een relais kunt aansturen, digitale ingangen waarmee je de state van een druktoets, schakelaar of bewegingsmelder kunt herkennen en analoge in- en uitgangen waarmee je bijvoorbeeld de output van een current transformer kunt meten.

Een ander belangrijk verschil is dat knx een bustopologie heeft. Hoewel de bekabeling vaak stervormig wordt aangelegd (bijv. alle kabels naar de meterkast waar de knx-apparatuur wordt aangesloten) is dat geen verplichting. Bij een plc leg je wel altijd alle kabels in stervorm centraal naar de plc. Met behulp van buskoppelaars is het overigens wel mogelijk om op een andere plek (bijvoorbeeld in de schuur) uitbreidingsmodules op te hangen maar de kabels zullen dan daar opnieuw stervormig naar de buskoppelaar met uitbreidingsmodules aangelegd moeten worden.

Het programmeren van een plc zal een wat grotere investering in tijd vergen. De programmeertalen voor plc's zijn gestandaardiseerd. Er zijn verschillende talen waaronder ook visuele programmeertalen die relatief toegankelijk zijn voor een beginner. Wago heeft tegenwoordig ook Linux-gebaseerde plc's (Wago PFC200) waarmee je o.a. in php de plc kunt programmeren.

- Er zit niets op aan voorgekookte functionaliteit die je in de weg kan zitten of de kosten onnodig verhoogt.
- Plc's zijn schaalbaar en geschikt voor grote installaties. Een Wago 750-node mag een lengte hebben van maximaal 78cm (ruim 60 uitbreidingmodules met 2-16 inputs of outputs per stuk) en als je daar niet genoeg aan hebt bouw je lekker verder met behulp van een buskoppelaar.
- De kosten van de digitale in- en uitgangen zijn laag. Voor zo'n 30-40 euro koop je een nieuwe uitbreidingsmodule met vier 24V in- en of uitgangen. Analoge modules zijn wel fors duurder en kosten nieuw al snel 100-250 euro per vier in- of uitgangen.
- Er is op eBay een groot aanbod van hardware die afkomstig is uit ontmantelde industriële installaties. Op eBay scoor je deals van 6 tot 15 euro voor een viervoudige digitale in- of uitgang. Als je de plc eenmaal hebt kun je dus goedkoop uitbreiden.
- Omdat ze gemaakt zijn voor din-rail montage maak je er makkelijk een cleane install mee die ook kan groeien zonder dat het een bende wordt. Zorg wel voor goed en doordacht kabelmanagement.
- Vergeleken met een Arduino of Raspberry Pi zijn de kosten hoger maar ben je mijn inziens wel minder tijd kwijt aan aansluitwerk. Ook kun je aantal inputs en outputs veel makkelijker opschalen en maak je makkelijker een goed georganiseerde build.
- Omdat de aansturing van een relais en het relais zelf uit verschillende componenten bestaan kun je die bij een defect individueel vervangen ipv dat je bijvoorbeeld bij een meervoudige knx-schakelactor moet vervangen.
- Je hebt alle vrijheid om per indivueel apparaat de meest geschikte oplossing te kiezen. Heb je bijvoorbeeld een led-voeding met een hoge inschakelstroom die moeizaam geschakeld kan worden met een mechanisch relais dat trek je voor dat geval een solid state relais uit het schap en gebruik je voor de rest goedkopere spoelrelais.

Voor wat meer geld koop je een Wago 750-8204 aka PFC200. Dit is de nieuwste serie van Wago gebaseerd op een real-time Linux-besturingssysteem en een Cortex A8-processor. De programmering verloopt via Wago e!Cockpit dat gebaseerd is op Codesys 3.5. Deze ontwikkelomgeving is aanzienlijk moderner dan de Codesys 2.3-gebaseerde ontwikkelomgeving voor de Wago 750-881. Voor 80 euro kun je targets voor Codesys 3.5 direct bij de makers van Codesys aanschaffen. Codesys zelf kan gratis gedownload worden. Dit is niet hoe Wago het graag ziet maar op die manier kun je zonder een dure e!Cockpit-licentie te moeten kopen toch je PFC200 programmeren. Een PFC200 kost ongeveer 725 euro. Je moet er dan nog minimaal een voeding en 750-600 eindmodule bij kopen. Deze module sluit de interne bus van de plc af.

Het kan goedkoper door een plc van eBay te halen, maar dan krijg je de programmeersoftware (een Wago-variant van Codesys) er niet bij die noodzakelijk is om de plc te configureren en programmeren.
De (digitale) uitbreidingsmodules zijn zogezegd vrij goedkoop en ruim voorhanden op eBay. De meeste digitale modules werken op een spanning van 24V. Een digitale ingang kun je direct aansluiten op een wandschakelaar. Om bijv. een 5V output van een bewegingsmelder uit te lezen met een 24V input op de plc heb je een relais of optocoupler nodig. Hiervoor is goedkoop spul te krijgen uit de Arduinowereld.
Voor het schakelen van verlichting en andere apparaten kun je relais gebruiken die werken op een spoelspanning van 24V. Zie hiervoor het assortiment van bijvoorbeeld Finder. Een 230V 16A relais van Finder is op eBay te krijgen vanaf € 7,50.
Verder heb je nog bijkomende kosten voor de bedrading, kabelgoten, rails, rijgklemmen, adereindhulzen en dergelijke. Dit kan alles bij elkaar ook nog wel een kostenpost van honderden tot duizenden euro’s worden.
Het bouwen van een schakelkast is een kunst op zich. Er zijn veel oplossingen verkrijgbaar om de inrichting van een schakelkast veilig, overzichtelijk en beheersbaar te maken. Een aantal tips:



Vermijden van single points of failure
Vergelijken met decentrale systemen zoals knx is een plc meer gecentraliseerd. Als de controller uitvalt stopt het programma en kunnen de inputs en outputs van de plc niet meer uitgelezen en aangestuurd worden. Om te voorkomen dat je huis onbestuurbaar wordt is het verstandig om te na te denken over oplossingen om de beschikbaarheid van het systeem te verhogen.
Een makkelijke spof om te verhelpen is de voeding. Met behulp van redundant uitgevoerde voedingen en een redundancy module kun je voorkomen dat het hele systeem op zijn gat ligt als de voeding faalt. Voorbeelden van redundancy modules zijn de Mean Well RD-RDN20 (alleen 24V DC) en Phoenix Contact Step Diode (geschikt voor 5-24V DC). De betere redundancy modules beschikken over een alarm output die je op een ingang van je plc kunt aansluiten om de status van de voedingen te monitoren. Gebruik je geen redundancy module dan is het in ieder geval verstandig om een reservevoeding op voorraad te hebben.
Wat is een plc?
Een programmable logic controller is een apparaat dat volgens een ingesteld programma informatie van inputs verwerkt en outputs aanstuurt. Een klassieke plc werkt cyclisch en leest eerst alle ingangen in, voert vervolgens het programma uit en schrijft de uitgangswaarden naar een tabel. Als het programma klaar is, worden de waarden van uitgangen aangepast. Een cyclus duurt, afhankelijk van de omvang van het programma, een aantal milliseconden en begint daarna opnieuw.
Een plc is meestal modulair opgebouwd en bestaat uit de eigenlijke controller die via een veldbus communiceert met de buitenwereld en via uitbreidingsmodules naar wens voorzien kan worden van in- en uitgangen of interfaces naar andere apparaten. In het verleden werden industriële protocollen zoals Profibus, Modbus, rs-485 en Canbus gebruikt voor de communicatie met plc's. Tegenwoordig is ethernet populair. Dat maakt het makkelijk om een plc in een bestaand netwerk te hangen.
De uitbreidingsmodules voor in- en uitgangen zijn er in allerlei soorten en maten. Er zijn digitale uitgangen waarmee je bijvoorbeeld een relais kunt aansturen, digitale ingangen waarmee je de state van een druktoets, schakelaar of bewegingsmelder kunt herkennen en analoge in- en uitgangen waarmee je bijvoorbeeld de output van een current transformer kunt meten.

Waar worden ze voor gebruikt?
Plc’s worden op grote schaal in de industrie gebruikt om machines aan te sturen. Dat kunnen bijvoorbeeld machines zijn in een productielijn maar ook een mobiele kraan of een glazenwassersinstallatie. Plc's zijn ook prima geschikt voor gebouwautomatisering en, op kleinere schaal, domotica.Wat is het verschil met knx?
Knx-apparaten zijn voorzien van voorgekookte programmeerbare functionaliteit die je via de programmeersoftware ETS aan elkaar kunt knopen. Je stelt er bijvoorbeeld mee in dat een schakelactor voor een bepaalde tijd ingeschakeld wordt als een bewegingsmelder beweging detecteert. Een plc is af-fabriek een dom apparaat dat niets anders kan dan de status van de aangesloten inputs en outputs lezen. Je kunt ofwel zelf een programma schrijven of tekenen (in een visuele programmeertaal) waarmee de outputs gaan reageren op de inputs en dat op de plc laden of je leest de inputs en outputs uit via ethernet en gebruikt externe software (bijvoorbeeld een domoticapakket zoals OpenHab of IP Symcon) om iets zinvols te doen met de informatie. Je moet dus wat meer zelf doen. Omdat je niet voor ingebakken slimmigheden hoeft te betalen zijn de kosten ook lager.Een ander belangrijk verschil is dat knx een bustopologie heeft. Hoewel de bekabeling vaak stervormig wordt aangelegd (bijv. alle kabels naar de meterkast waar de knx-apparatuur wordt aangesloten) is dat geen verplichting. Bij een plc leg je wel altijd alle kabels in stervorm centraal naar de plc. Met behulp van buskoppelaars is het overigens wel mogelijk om op een andere plek (bijvoorbeeld in de schuur) uitbreidingsmodules op te hangen maar de kabels zullen dan daar opnieuw stervormig naar de buskoppelaar met uitbreidingsmodules aangelegd moeten worden.
Is het moeilijk?
Mijn ervaring is beperkt tot de plc's van Wago. Als je voor de tweede optie gaat (in- en uitgangen uitlezen en aansturen via een domoticapakket) is de moeilijkheidsgraad laag. Het is dan een kwestie van de plc configureren (instellen welk type uitbreidingsmodules er zijn aangesloten) en in de domoticasoftware modbusinstanties aanmaken voor de adressen die corresponderen met de in- en uitgangen op de plc.
Het programmeren van een plc zal een wat grotere investering in tijd vergen. De programmeertalen voor plc's zijn gestandaardiseerd. Er zijn verschillende talen waaronder ook visuele programmeertalen die relatief toegankelijk zijn voor een beginner. Wago heeft tegenwoordig ook Linux-gebaseerde plc's (Wago PFC200) waarmee je o.a. in php de plc kunt programmeren.

Waarom moet ik een plc willen?
- Plc's zijn gemaakt voor industriële toepassingen en dus betrouwbaar.- Er zit niets op aan voorgekookte functionaliteit die je in de weg kan zitten of de kosten onnodig verhoogt.
- Plc's zijn schaalbaar en geschikt voor grote installaties. Een Wago 750-node mag een lengte hebben van maximaal 78cm (ruim 60 uitbreidingmodules met 2-16 inputs of outputs per stuk) en als je daar niet genoeg aan hebt bouw je lekker verder met behulp van een buskoppelaar.
- De kosten van de digitale in- en uitgangen zijn laag. Voor zo'n 30-40 euro koop je een nieuwe uitbreidingsmodule met vier 24V in- en of uitgangen. Analoge modules zijn wel fors duurder en kosten nieuw al snel 100-250 euro per vier in- of uitgangen.
- Er is op eBay een groot aanbod van hardware die afkomstig is uit ontmantelde industriële installaties. Op eBay scoor je deals van 6 tot 15 euro voor een viervoudige digitale in- of uitgang. Als je de plc eenmaal hebt kun je dus goedkoop uitbreiden.
- Omdat ze gemaakt zijn voor din-rail montage maak je er makkelijk een cleane install mee die ook kan groeien zonder dat het een bende wordt. Zorg wel voor goed en doordacht kabelmanagement.
- Vergeleken met een Arduino of Raspberry Pi zijn de kosten hoger maar ben je mijn inziens wel minder tijd kwijt aan aansluitwerk. Ook kun je aantal inputs en outputs veel makkelijker opschalen en maak je makkelijker een goed georganiseerde build.
- Omdat de aansturing van een relais en het relais zelf uit verschillende componenten bestaan kun je die bij een defect individueel vervangen ipv dat je bijvoorbeeld bij een meervoudige knx-schakelactor moet vervangen.
- Je hebt alle vrijheid om per indivueel apparaat de meest geschikte oplossing te kiezen. Heb je bijvoorbeeld een led-voeding met een hoge inschakelstroom die moeizaam geschakeld kan worden met een mechanisch relais dat trek je voor dat geval een solid state relais uit het schap en gebruik je voor de rest goedkopere spoelrelais.
Wat kost het?
Een Wago Ethernet Start Kit 2 kost je 540 euro. Voor dat geld krijgt je een 750-881-plc, tweevoudige digitale in- en uitgangen, een 750-600-eindmodule, een 24VDC-voeding, usb-kabel, een stukje din-rail, een schakelaar en de programmeersoftware. Hiermee heb je alles dat nodig is om je eerste 'hello world’-bouwsel te maken.
Voor wat meer geld koop je een Wago 750-8204 aka PFC200. Dit is de nieuwste serie van Wago gebaseerd op een real-time Linux-besturingssysteem en een Cortex A8-processor. De programmering verloopt via Wago e!Cockpit dat gebaseerd is op Codesys 3.5. Deze ontwikkelomgeving is aanzienlijk moderner dan de Codesys 2.3-gebaseerde ontwikkelomgeving voor de Wago 750-881. Voor 80 euro kun je targets voor Codesys 3.5 direct bij de makers van Codesys aanschaffen. Codesys zelf kan gratis gedownload worden. Dit is niet hoe Wago het graag ziet maar op die manier kun je zonder een dure e!Cockpit-licentie te moeten kopen toch je PFC200 programmeren. Een PFC200 kost ongeveer 725 euro. Je moet er dan nog minimaal een voeding en 750-600 eindmodule bij kopen. Deze module sluit de interne bus van de plc af.

Het kan goedkoper door een plc van eBay te halen, maar dan krijg je de programmeersoftware (een Wago-variant van Codesys) er niet bij die noodzakelijk is om de plc te configureren en programmeren.
De (digitale) uitbreidingsmodules zijn zogezegd vrij goedkoop en ruim voorhanden op eBay. De meeste digitale modules werken op een spanning van 24V. Een digitale ingang kun je direct aansluiten op een wandschakelaar. Om bijv. een 5V output van een bewegingsmelder uit te lezen met een 24V input op de plc heb je een relais of optocoupler nodig. Hiervoor is goedkoop spul te krijgen uit de Arduinowereld.
Voor het schakelen van verlichting en andere apparaten kun je relais gebruiken die werken op een spoelspanning van 24V. Zie hiervoor het assortiment van bijvoorbeeld Finder. Een 230V 16A relais van Finder is op eBay te krijgen vanaf € 7,50.
Verder heb je nog bijkomende kosten voor de bedrading, kabelgoten, rails, rijgklemmen, adereindhulzen en dergelijke. Dit kan alles bij elkaar ook nog wel een kostenpost van honderden tot duizenden euro’s worden.
Wat heb je nodig om aan de slag te gaan?
- Een ruimte waar je de plc en alle bijkomende onderdelen monteert. Dat kan zijn een schakelkast die je ergens ophangt of een schakelplank in de meterkast. Zorg voor voldoende ruimte, die ga je nodig hebben als de installatie in omvang toeneemt.
- 35mm din-rails om de controller, I/O-modules, voedingen, rijgklemmen en dergelijke op te monteren.
- Een 24V DC voeding (Mean Well levert betaalbare voedingen). 1 tot 2,5A is voldoende afhankelijk van hoeveel hardware je eraan gaat hangen.
- Rijgklemmen voor het aansluiten van kabels en aders. Zie het assortiment van Wago, Phoenix Contact en Weidmuller.
- Aders in verschillende kleuren voor verdeling van de voeding en het aansluiten van input en outputs.
- Kabels om sensoren en actoren op afstand met de rijgklemmen te verbinden. Cat5- en cat6-kabel leent zich prima voor het aansluiten van bijvoorbeeld relais, sensoren en pulsdrukkers. Goedkope copper clad meuk volstaat.
- Adereindhulzen en een perstang om aders met flexibele draad te confectioneren.
- Adernummering om aders te nummeren.
Best practices
Inrichten van een schakelkastHet bouwen van een schakelkast is een kunst op zich. Er zijn veel oplossingen verkrijgbaar om de inrichting van een schakelkast veilig, overzichtelijk en beheersbaar te maken. Een aantal tips:
- Monteer binnenkomende stuurkabels niet direct af op de input- en outputmodules van je plc maar gebruik hiervoor rijgklemmen. Op die manier kun je binnenkomende kabels makkelijker naar een andere input of output van de plc patchen en kun je rijgklemmen gebruiken voor potentiaalverdeling (van de massa) zodat er minder aders op de input- en outputmodules aangesloten hoeven te worden.
- Gebruik etageklemmen om ruimte te besparen. Etageklemmen zijn verkrijgbaar in allerlei soorten en maten. Een rijgklem met drie etages kun je bijvoorbeeld gebruiken om aarde, fase en nul door te verbinden of om de massa, voeding en output van een sensor aan te sluiten. De massa en voeding kun je op een makkelijk manier verdelen door dezelfde etage van naastgelegen etageklemmen met behulp van bruggen met elkaar te verbinden. Bij de etage waarop je de output van een sensor aansluit die je dit natuurlijk niet, die verbindt je door met een input van de plc.
- Deel de schakelkast op in verschillende etages en gebruik kabelgoten om de kabels en aders naar de verschillende etages in de schakelkast te geleiden. De binnenkomende stuurkabels monteer je helemaal boven (of onder) in de kast (afhankelijk van waar de kabels binnenkomen) af op rijgklemmen en trek je door naar de input/outmodules op een onder- of bovenliggende rail. Tussen horizontale kabelgoten heb je minimaal 14cm ruimte nodig om rijgklemmen en I/O-modules (in het geval van Wago en Beckhoff) op een comfortabele manier op de rail te kunnen monteren.
- Zorg voor een goede scheiding tussen netspanning en zwakstroom/gelijkstroom. Aders waar 230V door gaat mogen niet in aanraking komen met aders van stuurkabels die onvoldoende isolatie hebben om 230V te weerstaan. Bij voorkeur netspanning en gelijkstroom door verschillende kabelgoten onderbrengen maar als ze toch door dezelfde goot moeten dan de kabels/aders gescheiden van elkaar links of rechts of onder/boven in de kabelgoot houden.
- Het is verstandig om de voeding van de controller en de field/sensor supply afzonderlijke af te zekeren zodat kortsluiting in bijvoorbeeld een stuurkabel of voedingskabel van een sensor geen gevolgen heeft voor de uptime van de controller. Afzekeren doe je aan de secundaire kant van de voeding met behulp van zekeringsklemmen. Er zijn klemmen waar je standaard glaszekeringen in kunt plaatsen en duurdere modules met een elektronische beveiliging. Zekeringsklemmen vind je onder andere bij Phoenix Contact, Wago en ETA.
- Gebruik een consistente kleurcodering voor aders die een verschillende potentialen dragen. Dus bruin, blauw en groen/geel voor 230V AC fase, nul en aarde en bijvoorbeeld wit voor massa, rood voor 24V DC, oranje voor 12V DC en geel voor 5V DC.



Vermijden van single points of failure
Vergelijken met decentrale systemen zoals knx is een plc meer gecentraliseerd. Als de controller uitvalt stopt het programma en kunnen de inputs en outputs van de plc niet meer uitgelezen en aangestuurd worden. Om te voorkomen dat je huis onbestuurbaar wordt is het verstandig om te na te denken over oplossingen om de beschikbaarheid van het systeem te verhogen.
Een makkelijke spof om te verhelpen is de voeding. Met behulp van redundant uitgevoerde voedingen en een redundancy module kun je voorkomen dat het hele systeem op zijn gat ligt als de voeding faalt. Voorbeelden van redundancy modules zijn de Mean Well RD-RDN20 (alleen 24V DC) en Phoenix Contact Step Diode (geschikt voor 5-24V DC). De betere redundancy modules beschikken over een alarm output die je op een ingang van je plc kunt aansluiten om de status van de voedingen te monitoren. Gebruik je geen redundancy module dan is het in ieder geval verstandig om een reservevoeding op voorraad te hebben.
[ Voor 62% gewijzigd door Femme op 11-02-2016 12:48 ]