EduLab Wiki
Home Home
RSS


»
Geavanceerd Zoeken »


Navigatie                   


Gebruiker                  


Help                           


Beheer                      

PLC

RSS
Gewijzigd op donderdag, 24 mei 2012 11:16 door achatot Gecategoriseerd als Hardware, PLC

PLC

PLC


Een Programmable Logic Controller (PLC, Programmeerbare Logische Eenheid) 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 over het algemeen 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 van de 20ste eeuw is het verschil tussen een computer en een PLC vervaagd.

De eerste PLC's bestonden uit 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 de eerste echte PLC's waren een feit. Met de komst hiervan kreeg men veel meer flexibiliteit en mogelijkheden.

De PLC en de interface-software voor het debuggen en het schrijven van de software hebben een grote ontwikkeling doorgemaakt.

Nu vindt het programmeren meestal in een Windows-omgeving plaats.

Tegenwoordig is er ook sprake van een Slot PLC en een Soft PLC.

Soorten PLC's

  • De Traditionele PLC is een PLC bestaande uit een CPU met zijn eigen behuizing en intern werkgeheugen. Meestal worden insteekkaarten gebruikt als opslaggeheugen. Te denken valt aan een MMC kaart van een digitale camera.
  • Een Slot PLC is een Traditionele PLC, maar dan op bijvoorbeeld een PCI-kaart die in een PC gestoken wordt.
  • De Soft PLC is een PLC die draait als software op een PC. Met een interfacekaart en driversoftware communiceert deze met de buitenwereld.

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 (variatie van 0 tot 10V, 4 tot 20 mA of 0 tot 20 mA) 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 drijven, of om een regelklep op een bepaalde stand te zetten.

Tellerkaarten/modulen

Deze worden gebruikt 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 hoekverdraaiïng.

Veldbussen

De keuze van veldbussen begint met de keuze voor een elektrische laag:

  • RS232 - RS422 - RS485

Na deze keuze kan bepaald worden welke procotol er gebruikt dient te worden om PLC onderling of met PC's te laten communiceren.

PLC aansluitingen

PLC aansluitingen


Protocol

  • Modbus Het Modbus protocol is toendertijd(1968-1979) ontwikkeld door Modicon voor werelds eerste PLC van Modicon(084). Er is gekozen voor een opensource benadering, waardoor het mogelijk is voor iedereeen om dit protocol gratis te downloaden via de site www.modbus.org.
  • Modbus Plus Is een RS485 netwerk met een token ring topology. Dit betekent dat er geen master of slave situatie aanwezig is, maar alle deelnemers op netwerk hebben dezelfde rechten voor zowel schrijven als lezen van informatie.
  • Profibus

Een profibus (DP, FMS, PA, ... )-netwerk kan aangesloten worden aan de PLC.
  • Asi (AS-Interface)

Een interface volgens hetzelfde principe als profibus; enkel een ander netwerk met andere kabels en een ander protocol. Dit wordt veel gebruikt voor kleine toestellen zoals sensors en relais.

  • CAN
  • Interbus
  • Ethernet Ethernet is universeel in gebruik, uiteindelijk bepaald het protocol waarmee de PLC zijn informatie op het ethernet plaatst of andere gebruikers op ethernet met de PLC kunnen communiceren.

Werking 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 schijnbaar vele dingen tegelijk doen. Sommige nieuwere types van PLC's lezen echter de ingangen in op het moment dat ze die 'nodig hebben' in het programma, en sturen ook meteen de uitgangen aan nadat de logica van die uitgangen opgelost is. Deze types wachten dus niet noodzakelijk tot de volledige programmacyclus afgelopen is alvorens de uitgangen te sturen. De meeste oudere types hebben ook een speciale instructie waarbij de normale afloop van het programa even onderbroken wordt om alzo de plc te dwingen een bepaalde ingang te lezen of een uitgang te sturen. Daarna wordt de afloop gewoon verder gezet.

Veel voorkomende programmeertalen voor PLCs zijn: ladderdiagram, Function Blok Diagram (FBD), Sequential Function Chart (SFC), Instruction List (IL) en Structured Text Language (STL). Je kan ook een programmeertaal eigen aan de PLC gebruiken, die op een C programmeertaal lijkt, maar die is voor de meer complexe functies.

Programmeren PLC's

Om een PLC te programmeren, heb je een verbinding tussen de PLC en het apparaat waarmee geprogrammeerd wordt, nodig. De licentiezaken voor de software werden vaak vroeger doormiddel van hardwaresleutels geregeld, tegenwoordig wordt steeds meer gewerkt met softwarematige licensies. De communicatie tussen de PC en PLC vond en vindt nog steeds plaats doormiddel van de COM poort op de PLC. Recente ontwikkelingen door de PC leveranciers dwingen de PLC leveranciers steeds meer tot communicatie met USB of ethernet, daar (1) COM poorten op nieuwe PC bijna niet meer ter verkrijgen zijn en (2) de ethernet-verbindingen vele malen sneller werken dan de seriële COM-verbindingen.

Bekende PLC merken zijn onder andere: Beckhoff, Schneider Electric, Modicon, Siemens, VIPA, Yokogawa, OMRON, Allen-Bradley(op de markt gebracht door de firma Rockwell Automation), Hitachi, ABB, GE-Fanuc, Mitsubishi, Koyo en Phoenix Contact

Toepassingsgebied van PLC’s

PLC's worden in het algemeen daar toegepast, waar vroeger relaispanelen (hard-wired logic) gebruikt werden, en verder:
  • waar cyclische besturing nodig is
  • bij snelle digitale bewerkingen
  • waar puls-output nodig is (stappenmotoren)
  • bij snelle digitale communicatie
  • bij industriële besturingsprocessen

Voorbeelden van toepassingen:

  • verkeerslichten
  • machine bewerkingen
  • trein-volgsystemen
  • waterzuiveringsinstallaties
  • fabricagecel besturingen etc.

Opbouw van een PLC

Een PLC bestaat hoofdzakelijk uit een CPU, geheugen en een aantal geschikte schakelingen om in- en uitgaande data te ontvangen. We kunnen een PLC beschouwen als een doos gevuld met honderden of zelfs duizenden relais, tellers (counters), timers en data opslagplaatsen (Figuur 4.a). Deze componenten bestaan niet fysiek maar worden softwarematig gesimuleerd.

Afbeelding toevoegen

Ingangscontacten: Deze zijn fysiek verbonden met de buitenwereld en ontvangen signalen van schakelaars, sensoren etc. Ingangscontacten zijn genummerd.
Interne Utility relais (contacten): Deze bestaan niet fysiek. Het zijn software relais welke de PLC gebruikt om de ‘echte externe’ relais te elimineren.
Counters: Bestaan fysiek ook niet, maar zijn software tellers en deze kunnen worden geprogrammeerd om pulsen te tellen. Counters kunnen omhoog, omlaag of zowel omhoog als omlaag tellen.
Timers: Bestaan ook niet fysiek. Er bestaan veel varianten met verschillende interval waarden.
Interval waarden variëren van 1ms tot 1s.
Uitgangsrelais (coils): Zij zijn fysiek verbonden met de buitenwereld en versturen aan/uit signalen naar relais, lampen, etc. Uitgangsrelais (coils) zijn genummerd Data opslag: Registers gebruikt om gegevens op te slaan. Vaak gebruikt voor tijdelijke opslag van resultaten van berekeningen. Kunnen ook worden gebruikt voor opslag van gegevens als de stroom wordt uitgeschakeld.
De interface tussen de fysieke in- en uitgangen wordt de ‘soft interface’ genoemd om aan te geven dat software wordt gebruikt om de status van de ingangen te koppelen aan de gewenste waarden aan de uitgangen. De PLC software gebruikt hiervoor booleaanse logica.


De werking van een PLC

Een PLC scant continue een programma. Een scan cyclus bestaat voornamelijk uit 3 belangrijke stappen.
  • Stap1: Bepaal de ingangswaarden.

    De PLC kijkt eerst naar elke ingang en bepaalt of er wel of geen signaal op
    staat. Al deze waarden worden opgeslagen in het geheugen.
  • Stap 2: Voer programma uit.

    Het programma wordt instructie voor instructie uitgevoerd. Opnieuw worden
    de resultaten eerst opgeslagen in het geheugen.
  • Stap 3: Update de status van de uitgangen.

    Tenslotte zal de PLC de status van de uitgangen bijwerken. Dit gebeurt aan de
    hand van de opgeslagen waarden van de inputs in stap 1 en de resultaten van de
    bewerkingen die volgens het programma in stap 2 hierop uitgevoerd moeten
    worden.

    Nadat stap 3 is uitgevoerd, keert de PLC weer terug naar stap 1. Deze cyclus wordt
    voortdurend herhaald.

    Een scan cyclus wordt gedefinieerd als de tijd die nodig is om deze 3 stappen uit te voeren.

Hoe groter het programma, hoe langer de scan cyclus duurt.

Afbeelding toevoegen

De relatie tussen ingangen (inputs), de software interface en uitgangen (outputs) wordt weergegeven in Figuur 4.3 en 4.4

Afbeelding toevoegen

Een input apparaat (b.v. een sensor, schakelaar of drukschakelaar) levert een van vele mogelijke ingangsspanningen op de ingangsmodule van de PLC. De PLC input module vertaalt dit naar een waarde voor de betreffende software ‘contact’. We gebruiken voor de ingangen de Ix.x reeks en voor uitgangen de Qx.x reeks. De interne memory, ook wel merkers genoemd, worden Mx.x genummerd. De software interface interpreteert de waarde van de software ‘contact’ (een logische 0 of 1) en als het programma dit aangeeft, stuurt deze daarmee via de output module, een uitgangsspanning naar het te besturen proces.
De software interface zorgt ook voor de counter- en timer functies, alsmede wiskundige bewerkingen.

PLC-programmering

Een PLC kan op verschillende manieren geprogrammeerd worden.
  • ladderdiagrammen
  • functieblokken
  • sequential function charts (SFC’s)
  • specifieke PLC-code
  • Hogere programmeertaal (C)

Het programmeren van een PLC d.m.v. ladderdiagrammen is de oorspronkelijke manier van programmeren van een PLC. Een ladderdiagram toont grote overeenkomsten met een schakelschema, zoals die gebruikt worden bij het vastleggen van de aansluitingen van relais’ en de bijbehorende elektrische componenten. Niet zo vreemd, aangezien de PLC ooit bedoeld was om complexe relaisschakelingen te vervangen. Aangezien veel programmatuur van PLC’s “in ladder” is vastgelegd en deze programmeerwijze op verschillende plaatsen nog steeds gebruikt worden zal hieraan uitgebreid aandacht besteed worden.
Functieblokken vormen een uitbreiding op de ladderdiagrammen. Eigenlijk is het een vorm van modulair programmeren met ladders; een aantal logisch bij”elkaar horende “sporten” van een ladder worden samengevoegd in een functieblok. Op verschillende plaatsen kan van deze functieblokken gebruik worden gemaakt.
SFC’s vormen een heel andere wijze van programmering van een PLC. Een SFC is eigenlijk meer een toestandsdiagram. Zoals in een standaard toestandsdiagram aangegeven wordt welke events een toestandsverandering veroorzaken wordt in een SFC aangegeven welke inputs de PLC van toestand doen veranderen. In het “toestandsblok” worden daarbij de acties aangegeven die hierin uitgevoerd moeten worden. Dit is in het geval van de PLC niets anders dan het aansturen van bepaalde outputs. Ook hier zal de nodige aandacht aan besteed worden.

Specifieke PLC-code is nog het meest vergelijkbaar met assemblercode. Voor elk merk (of zelfs type) PLC wordt vaak een ander soort code gebruikt.
Tegenwoordig kunnen meer en meer PLC’s geprogrammeerd worden in een (afgeleide van een) hogere programmeertaal. Zo kunnen b.v. de PLC’s van B&R in “Automation Basic” of in C geprogrammeerd worden.
In de meeste gevallen wordt het PLC-programma ontwikkeld op een PLC met een daartoe ingericht programmapakket, waarmee vaak ook simulaties te maken zijn of controles uitgevoerd kunnen worden. Hierna wordt het ontwikkelde programma ingeladen in de PLC, zodat het zelfstandig kan functioneren. Op sommige PLC’s zijn ook (beperkte) programmeermogelijkheden aanwezig.

Ladderdiagrammen

Een ladderdiagram (LD) is een programmeertaal waarvan de opbouw lijkt op die van een ladder welke uit sporten (rungs) bestaat. Het programma bestaat uit opeenvolgende programma sporten welke sequentieel door de PLC worden uitgevoerd, van links naar rechts en van boven naar beneden.
Ladder logica is ontwikkeld om relais logica te imiteren. Hierdoor wordt het leren programmeren van een PLC makkelijker gemaakt voor zowel technici als niet-technici.
Een ladderdiagram (LD) is een grafische voorstelling van booleaanse vergelijkingen, welke contacten (input argumenten) combineert met coils (output resultaten), door middel van grafische symbolen. Deze grafische symbolen kennen een soortgelijke structuur als die, welke gebruikt worden in elektrische stroomschema’s.
Ladderdiagrammen zijn zowel aan de linkerkant als aan de rechterkant verbonden met verticale elektrische stroom geleiders.

Ladderdiagram symbolen

De onderstaande grafische symbolen worden gebruikt in ladderdiagrammen:

Afbeelding toevoegen

Afbeelding toevoegen

Afbeelding toevoegen

Bij elk grafisch symbool wordt de symbolische naam vermeld van de overeenkomstige boolean variabele. De grafische symbolen in ladderdiagrammen worden verbonden met elektrische stroom geleiders of met de andere symbolen door middel van horizontale of verticale verbindingslijnen.

Afbeelding toevoegen

Elk lijnsegment heeft de boolean status False of True. De boolean status is dezelfde voor alle lijn segmenten die rechtstreeks met elkaar zijn verbonden. Elke horizontale verbindingslijn die verbonden is met de linker elektrische stroom geleider heeft de status TRUE.
De boolean status van een lijnsegment wordt bepaald door een boolese bewerking uit te voeren tussen een lijn segment en de boolean variabele van een grafisch symbool.
De boolean status van een ouput variabele is gelijk aan de boolean status van het linker lijnsegment waarmee het is verbonden.
Input contacten mogen worden herhaald in een ladderdiagram.
Input contacten worden geprogrammeerd als open contacten ( | | ) als een logische continuïteit vereist is wanneer er een spanning op de overeenkomstige ingang van de input module van de PLC komt te staan of als een logische continuïteit moet worden opgeheven als er geen spanning op de overeenkomstige ingang van de PLC staat.
In alle andere gevallen wordt het contact geprogrammeerd als geïnverteerd contact ( |/| ).

Counters

In PLC’s hebben software counters dezelfde functie als mechanische counters. Een counter vergelijkt een langzaam oplopende of geleidelijk afnemende waarde met een vast ingestelde waarde om een schakeling te besturen.
Een inpakmachine gebruikt b.v. een counter om flesjes per 6 stuks te verpakken.
De counters die wij gebruiken kunnen tellen van 0 tot en met 999, waarbij tijdens het tellen de waarde telkens met 1 wordt verhoogd of verlaagd.
Als de counter de waarde 0 heeft en deze telt omlaag, zal de volgende waarde 999 zijn.
Indien de counter de vooraf ingestelde telwaarde op PV heeft bereikt zal de betreffende uitgang een logische 1 afgeven.
Figuur 4.6 toont een counter schakeling die het aantal voertuigen telt op een parkeerplaats.
De PV ingang geeft aan dat de parkeerplaats maximaal 150 voertuigen mag bevatten.
In Figuur 4 bezet de counter initieel een aantal sporten (rungs) in het ladderdiagram:
  1. Een identificatie / count rung: Ieder counter bezit een uniek identificatienummer (wij
    gebruiken C1 t/m C16) en men moet weten of de counter omhoog of omlaag telt, of zowel
    omhoog als omlaag telt. Dit laatste is hier het geval.
  2. Een reset rung: De counter wordt gereset (de uitgang CV wordt 0 en de uitgangen weer
    logisch 0).
  3. Een decode rung: geeft aan wat de counter zal besturen.

Afbeelding toevoegen

De bovenste rung: een schakelaar is verbonden met de slagboom aan de ingang van de parkeerplaats. Telkens als de slagboom open en dicht gaat veroorzaakt dit een puls op contact ‘ingang’. De Upcounter telt het aantal pulsen op de ‘ingang’, dus het aantal voertuigen dat de parkeerplaats oprijdt.
De tweede rung: een schakelaar is verbonden met de slagboom aan de uitgang van de parkeerplaats. De Downcounter telt het aantal pulsen op contact ‘uitgang’, dus het aantal voertuigen dat de parkeerplaats verlaat.
Als de counter de waarde 150 op de CV uitgang heeft bereikt is de parkeerplaats vol en zal de uitgang van de counter de lamp ‘Parkeerplaats vol’ laten oplichten.
De derde rung zorgt ervoor dat de counter weer wordt gereset.


Timers

Timers kunnen exact worden behandeld als counters. Een timer kan tellen in verschillende resoluties vanaf b.v. 1 milliseconde, 10 milliseconden en 100 milliseconden.
Timers worden gebruikt bij b.v. verkeerslichten.
In Figuur 4.e heeft timer T10 een resolutie van 100 milliseconden = 0.1 s.
De preset tijd is ingesteld op 150 x 0.1s = 15s. De uitgang is verbonden met een uitgangs coil welke een lamp laat branden.
Als het contact ‘deur_sensor’ logisch 1 wordt (er gaat b.v. ergens een deur open), start de timer.
Na 15s zal de lamp gaan branden.

Afbeelding toevoegen

De timer wordt gereset en gedisabled als het ingangscontact ‘deur_sensor’ logisch 0 is.
Als de timer is gestart en het ingangscontact ‘deur_sensor’ wordt binnen 15 seconden geopend en weer gesloten, zal de timer opnieuw vanaf 0 starten.
Het toepassen van een contact van de timer in een volgende rung realiseer je door het contact te coderen met T10.

Waarheidstabellen van logische bewerkingen met ladderdiagrammen

Hieronder staan de logische equivalenten afgebeeld van grafische ladderdiagram symbolen en hun overeenkomstige logische bewerkingen.

Afbeelding toevoegen

Afbeelding toevoegen

Input apparaten (b.v. sensoren of schakelaars) worden aangesloten op genummerde input modulen. We nemen aan dat de ingangen worden genummerd I0.0, I0.1, ...., I0.7.
De software ‘ingangs contacten’ ( | | , |/| ) gebruiken symbolische namen.
Op dezelfde manier wordt aangenomen dat output apparaten worden aangesloten op genummerde uitgangen van de output module van de PLC.
De uitgangen worden genummerd Q0.0, Q0.1 ....Q0.7.
De software uitgangen krijgen ook symbolische namen.

Stroomkring schema’s

De externe componenten die worden aangesloten op de input- en output module van een PLC, worden door andere grafische symbolen voorgesteld.
Dit zijn de zogenaamde stroomkring symbolen.
Hieronder volgen een aantal veel gebruikte stroomkring symbolen in PLC schema’s:

Afbeelding toevoegen

Afbeelding toevoegen

Aanpak PLC problemen



Lampschakeling met een schakelaar

Met een schakelaar wordt een lamp aan en uit geschakeld.

Conventioneel stroomkringschema lampschakeling

Rechts wordt de beschreven schakeling in de vorm van een stroomkringschema getoond.
Herkenbaar is de schakelaar en de lamp. De twee horizontale lijnen stellen de spanningslijnen voor.


Afbeelding toevoegen

Afbeelding toevoegen


PLC georiënteerd stroomkringschema lampschakeling

In het schema hiernaast wordt een PLC gebruikt in de plaats van de conventionele elektrische schakeling. De schakelaar en de lamp zijn aangesloten op de PLC de in- en uitgangen zijn geadresseerd. De ingangsadressen beginnen met I waarvan het eerste adres 0.0 is en die van de uitgangen met een Q waar eveneens het eerste bitadres 0.0 is.

Afbeelding toevoegen

Symbolen tabel lampschakeling

Om de werking van het PLC programma gemakkelijker te begrijpen, zullen we bovengenoemde ingangs- en uitgangsadressen niet binnen de PLC gebruiken, maar vervangen door begrijpelijke symbolische namen die de actie of gevolg van actie verwoorden. Deze koppeling wordt vastgelegd in de symbolentabel.
  • Naam: symbolische naam van het IO-punt of intern element. In de naamgeving zit de
    beschrijving wat er op die plaats gebeurt.
  • Adres: het fysieke adres van het IO-punt of intern element.
  • Type: in de komende voorbeelden worden alleen bit toekenningen gebruikt. Het type
    is dan een boolean.
  • Commentaar: beschrijft wat er gebeurt.

Onder de stippellijn worden straks de extra benodigde elementen van de PLC beschreven.
Deze gegevens zijn pas bekend tijdens het bouwen van het ladderdiagram.

Afbeelding toevoegen

Tijddiagram van de lampschakeling

In het tijddiagram wordt de relatie tussen de input en output over de tijd weergegeven. Extra opgenomen zijn de fysieke componenten die op de PLC zijn aangesloten. Nu is de relatie tussen fysieke toestand van componenten en IO-punten duidelijk zichtbaar.

Afbeelding toevoegen

Lampschakeling ladderdiagram 1

De beschreven lampschakeling wordt nu geïmplementeerd in een PLC. Als de schakelaar S0 is ingeschakeld moet de lamp gaan branden. We weten nu dat LampAan de waarde 1 krijgt als S0 ingeschakeld is. De uitgang moet nu de ingang gaan volgen.

Dus als de ingang hoog wordt moet ook de uitgang hoog worden. En bij het uitschakelen van S0 zal de uitgang weer laag moeten worden. Voor de oplossing gebruiken we dan een NO contact voor LampAan.
Stel dat de lamp moet gaan branden als de schakelaar S0 uit staat en bij het inschakelen van S0 de lamp weer dooft. Dan moet de uitgang, de ingang geïnverteerd gaan volgen. Dus als de ingang laag is moet de uitgang hoog worden. En bij het inschakelen van S0 zal de uitgang laag moeten worden. Voor de oplossing gebruiken we nu een “Normally Closed” NC contact voor LampAan.

Dit kan in de praktijk voorkomen als bij draadbreuk om veiligheidsredenen de lamp moet gaan branden.

Afbeelding toevoegen

Afbeelding toevoegen

PLC voorbeelden



Lampschakeling met twee schakelaars

Met twee drukschakelaars wordt een lamp aan en uit geschakeld. Wordt drukschakelaar S1 bediend, dan gaat de lamp aan. Bij het loslaten van S1 blijft de lamp aan.
Als daarna de drukschakelaar S0 bediend wordt gaat de lamp uit, ook na het loslaten blijft de lamp uit.

Conventioneel stroomkringschema lampschakeling

Rechts wordt de beschreven schakeling in de vorm van een stroomkringschema getoond. Herkenbaar zijn de twee schakelaars en de lamp. Om de beschreven werking te realiseren, wordt gebruik gemaakt van een relais K1 dat na indrukken van S1 de lamp brandend houdt, totdat S0 het relais laat afvallen. In dit schema is S0 Normally Closed en S1 Normally Open.

Afbeelding toevoegen

PLC georiënteerd stroomkring-schema lampschakeling

In het schema zijn de schakelaars de lamp aangesloten op de IO-punten van de PLC.

Afbeelding toevoegen

Symbolen tabel lampschakeling

Afbeelding toevoegen

Tijddiagram van de lampschakeling

De werking van S0 is in dit schema goed te volgen.
Onbediend levert S0 een hoog signaal op de ingang LampUit.
Na indrukken van S0 wordt LampUit laag. De ingang LampUit is de inverse van de waarde van S0. S1 ingedrukt levert een hoog signaal op de ingang LampAan. Uitgang LampAanst moet hoog blijven als er eenmaal op S1 is gedrukt met als doel de lamp te laten branden. De waarde van S1 moet worden vastgehouden omdat anders de lamp weer uit zou gaan. Pas als LampUit laag wordt mag LampAanst laag worden en zal de lamp doven.

Afbeelding toevoegen

Lampschakeling ladderdiagram 1

We weten dat LampAan even de waarde 1 krijgt (het is een drukschakelaar). Om nu ervoor te zorgen dat de lamp blijft branden, maken we gebruik van ‘geheugen’. De ‘coil’ Memory wordt hoog gemaakt door LampAan, het contact Memory wordt ook hoog en zet LampAanst hoog. Daardoor gaat buiten de PLC de lamp aan.
Het contact Memory in de vertakking in de eerste sport van het ladderdiagram noemen we een overnamecontact.
Memory neemt hier de functie van LampAan over en houdt de lamp brandend.

Afbeelding toevoegen

Uitbreiding symbolen tabel lampschakeling

Na de gegeven oplossing breiden we de symbolentabel uit met het toegevoegde element uit het ladderdiagram.

Afbeelding toevoegen

Lampschakeling ladderdiagram 2

Er blijkt een eenvoudiger oplossing te zijn voor de schakeling. LampAanst kunnen we als overnamecontact toepassen. Memory van de vorige oplossing is hier overbodig geworden.

Afbeelding toevoegen

Lampschakeling ladderdiagram 3

Dit voorbeeld van een lampschakeling is ook heel geschikt om op eenvoudige wijze de werking van SET en RESET coils te illustreren. De waarde van LampAanst kan door 2 soorten coils, een S (set) en een R (reset), gewijzigd worden.
Wordt LampAan hoog gemaakt, dan wordt LampAanst geset, blijft de waarde hoog en blijft de lamp aan. Het resetten van LampAanst zorgt ervoor dat LampAanst laag wordt en de lamp dooft.

Afbeelding toevoegen

De oplossing beschrijft dat bij bediening van beide drukschakelaars de lamp uit blijft. Door de RESET onder de SET te plaatsen zal er eerst een set worden uitgevoerd en daarna de reset.
Dit door het sequentiële gedrag van de PLC doorloopt. We creëren hiermee een RESET- dominante oplossing.

Wisselschakeling

In de meeste woningen komt deze schakeling voor. Met twee schakelaars kan een lamp aan en gezet worden. Voor de PLC oplossing gebruiken wij echter andere schakelaars. Het zijn twee drukschakelaars, die weer terugveren.

Afbeelding toevoegen

Conventioneel stroomkring-schema wisselschakeling Het stroomkringschema toont de schakelaars S0 en S1. Bij bediening van S0 zal de lamp aan of uit gaan, afhankelijk van de toestand van de lamp. Op dezelfde manier werkt ook S1.


PLC georiënteerd stroomkringschema wisselschakeling Om te voldoen aan de beschrijving van de schakelaars is in de PLC oplossing gebruik gemaakt van twee NO drukschakelaars

Afbeelding toevoegen

Symbolen tabel wisselschakeling

Afbeelding toevoegen

Tijddiagram van de wisselschakeling

Volgens de beschrijving van deze schakeling zal de bediening van een schakelaar altijd een effect hebben op de toestand van de lamp.
Bij bediening van S1 verandert de toestand van L1 en als S2 vervolgens bediend wordt wijzigt de toestand van L1 weer. Is door S1 de LampAanst hoog gemaakt, dan zet S2 deze weer omlaag. De fysieke lamp zit aangesloten op uitgang LampAanst en zal dus gaan branden als deze uitgang hoog wordt.

Afbeelding toevoegen

Wisselschakeling ladderdiagram

In dit ladderdiagram zijn nu positieve flank contacten opgenomen. Om te voorkomen dat bij het setten van LampAanst direct een reset van LampAanst plaats vindt, wordt er een memory element gebruikt. Bij de volgende scan in LampAanst hoog en memory laag. Bij volgende bediening van S0 of S1 zal er een reset plaats vinden.

Afbeelding toevoegen

Uitbreiding symbolen tabel wisselschakeling

We maken de symbolentabel compleet met het interne element.

Afbeelding toevoegen

Sequential Function Charts (SFC’s)

Een andere belangrijke manier van programmeren van PLC’s is het toepassen van sequential function charts (functiediagrammen). Het is de gestandaardiseerde versie (IEC 1131) van het in Frankrijk ontworpen Grafcet-systeem. Het woord Grafcet komt van "Graphe de Fonctionnement de Commande par Etappe et Transition", hetgeen zoveel wil zeggen als:

"Tekening of schema van de opdrachten die nodig zijn voor het stapsgewijs doen verlopen van een proces".

Een diagram volgens deze tekenwijze geeft stap voor stap aan welke acties op welk tijdstip en onder welke voorwaarden moeten plaatsvinden. Hiervoor gebruiken we in het diagram eenvoudige symbolen, verbonden door lijnen, alsmede begrijpelijke tekst.


Principe van SFC’s

De volgende figuur geeft het principe weer van waaruit ieder functiediagram is opgebouwd:

Afbeelding toevoegen

Het besturingsproces wordt onderverdeeld in een aantal zo elementair mogelijke fasen. Elke fase kent een stap en de daarbij behorende acties(s). De stap speelt zich in feite af in de besturing, de actie vindt plaats in het proces of aan de machine.
  • De stappen worden de een na de ander geactiveerd.
  • De acties worden uitgevoerd zodra en zolang de desbetreffende stap actief is.
  • Tussen twee stappen bestaat een overgang.
  • In de overgang bevindt zich een zogenaamde schuifvoorwaarde. De overgang is geblokkeerd zolang nog niet aan de schuifvoorwaarde is voldaan en wordt vrijgegeven zodra aan de voorwaarden is voldaan.
  • Een volgende stap wordt actief als:
    1. de voorgaande stap actief is en
    2. aan de schuifvoorwaarde is voldaan.

Dit betekent dat er controle is op het verloop van de besturing, immers een volgende stap kan nooit actief worden als de voorgaande niet actief is.

De schuifvoorwaarden komen doorgaans uit het proces, d.w.z. dat er controle is of de actie wel of niet is uitgevoerd. Pas als aan de voorwaarden is voldaan, wordt de weg vrijgegeven voor de volgende stap.
Het vrijgeven van de overgang heeft tot gevolg dat
  1. de volgende stap actief wordt (SET)
  2. de vorige stap wordt uitgeschakeld (RESET)

Ter verduidelijking volgt hieronder het logische schema van vorige figuur:

Afbeelding toevoegen

We zien hier dat zowel de schuifvoorwaarde als het uitgangssignaal van de voorliggende stap aanwezig dienen te zijn, wil de volgende stap actief kunnen worden gemaakt. Verder kan opgemerkt worden dat de volgorde (of sequentie) -schakeling opgebouwd is door het achter elkaar schakelen van gelijke "blokken" of modules. We kunnen dan ook spreken van een modulair programma.
In de figuur is verder te zien dat voor iedere stapmodule een geheugenfunctie en een EN- functie aanwezig zijn. Deze vormen een keten die overeen komt met de structuur van het functiediagram waarin stappen en schuifvoorwaarden elkaar afwisselen. De geheugenfunctie correspondeert met een stap. De EN-functie zorgt ervoor dat de volgende stap pas actief kan worden als én aan de schuifvoorwaarde is voldaan én de voorgaande stap actief is. Hiermee is dan aan de ontvankelijkheid voldaan om het geheugen van de volgende stapmodule te "setten".

Gebruiksvoorschriften

Het opzetten en gebruiken van een SFC is aan een aantal regels en voorschriften gebonden. In de hierna volgende paragrafen worden deze regels vermeld en nader toegelicht.

Stappen

Voor een stap kennen we 3 symbolen, te weten :

Afbeelding toevoegen

Een stap is een gedefinieerde stabiele situatie in een besturingssysteem. Gedurende deze werkingsperiode zijn de ontvankelijkheid en de voortgebrachte acties niet variabel. De stap is in afwachting van het voldoen aan de schuifvoorwaarde. Met ontvankelijkheid wordt bedoeld het "open staan" van de besturing voor alleen informatie die de op een bepaald ogenblik gewenste verandering (actie) in het systeem veroorzaakt.
De "actieve stap" is aanwijsbaar als ergens in een lopende cyclus een momentopname wordt gemaakt. Elke stap is dus op zijn beurt, zij het steeds op een ander moment, aan te wijzen als de op dat moment actieve stap.
Stappen die dienen om het paraatstellen van het begin of het einde van een cyclus aan te geven, worden met een dubbelwandig vierkant aangegeven.
Aan stappen verbonden acties Aan iedere stap kunnen één of meerdere acties zijn verbonden. De acties worden uitgevoerd op het moment dat de desbetreffende stap actief is. De volgende figuur geeft de voorstellingswijze. De acties kunnen in de rechthoek symbolisch, dan wel beschrijvend worden genoteerd.

Afbeelding toevoegen

Voorbeelden

Aan stap 5 zijn twee acties verbonden, namelijk zodra stap 5 actief is, moet de zuiger in cilinder A naar buiten (+) en in cilinder B naar binnen (-) worden geschoven of bijvoorbeeld schakelaar A sluiten en B openen, enz.
Stap 7 is op dit moment actief en klep C wordt dus gesloten.

De acties kunnen uiteraard zeer gevarieerd zijn, afhankelijk van het proces, bijvoorbeeld:
  • zuiger in of uit;
  • schakelaar open of dicht;
  • klep sluiten;
  • stempel neerlaten;
  • beschermkap lichten.

Maar ook:
  • tellerstand met één verhogen;
  • geheugen setten of resetten;
  • tijdsvertraging starten, enz.

Overgangen en schuifvoorwaarden

Afbeelding toevoegen

Deze figuur geeft in 3 fasen aan wat precies bij een overgang gebeurt. De overgang is de verbindingslijn tussen 2 stappen. In de overgang bevindt zich dus altijd een schuifvoorwaarde.
  1. In het linkse deel van de figuur is stap 10 niet actief. De schuifvoorwaarde is a·(b+c),
    dat wil zeggen dat contact b of contact c moeten gesloten zijn en contact a. Dit is de
    uitgangs-toestand van een stukje uit de besturingsketen.
  2. In het midden is stap 10 reeds actief, maar aan de schuifvoorwaarde is nog niet
    voldaan: a·(b+c)=0. De overgang is nog geblokkeerd. De aan stap 10 verbonden
    actie(s) worden uitgevoerd. Dit is in feite de voorbereidingstoestand voor het actief
    worden van stap 11.
  3. Rechts op de figuur is aan de schuifvoorwaarde voldaan: a·(b+c)=1. Stap 10 was
    actief, dus nu wordt de overgang gerealiseerd. Daardoor wordt stap 11 actief en stap
    10 wordt gereset.

Een grote verscheidenheid van schuifvoorwaarden komt voor. Als voorbeelden noemen we:
  • opnemers en eindschakelaars (een "stand").
  • de stand van een teller (c=10).
  • een temperatuur (t=300°, vb. een thermostaat).
  • een snelheidsniveau (n=1000 omw/min).
  • einde van een tijdsvertraging (t=10s).
  • resultaat van een vergelijking (>, <) enz.

Vertakkingen

Machines met verschillende cycli of machines die verschillende producten kunnen maken, zijn typische gevallen van vertakkingen. Op het knooppunt van de vertakking moet een keuze worden gemaakt: òf de ene weg òf de andere weg in. We spreken dan van een OF-divergentie uiteengaan).
Als stap 10 actief is, hangt het geheel af van de schuifvoorwaarde a of b af of stap 11 dan wel stap 21 actief wordt. Aan het einde van de vertakking hangt het af van het actief zijn van stap 13 met schuifvoorwaarde c òf van stap 22 met schuifvoorwaarde d of stap 14 actief kan worden. We spreken nu van een OF-convergentie (samenkomen). Er wordt steeds maar één tak per keer actief. Voorts dienen twee speciale gevallen van een vertakking te worden genoemd en wel de sprongfunctie en de herhalingsfunctie.

Afbeelding toevoegen

Sprongfunctie

De schuifvoorwaarden a of b bepalen of na stap 3 stap 4 komt of stap 6. Als stap 3 actief is en aan voorwaarde a is voldaan, dan volgt stap6. Als stap 3 actief is en aan b is voldaan, dan volgt stap 4. De sprongfunctie maakt het dus mogelijk om, afhankelijk van de schuifvoorwaarden a en b, hier vertakkingsvoorwaarden genoemd, één of meer vooraf bepaalde stappen over te slaan.

Herhalingsfunctie

Als stap 7 actief is, hangt het af van de vertakkingsvoorwaarden c of d of wordt verdergegaan naar stap 8, dan wel wordt teruggesprongen naar stap 4.
Stel dat niet aan d en wel aan c is voldaan, dan wordt teruggesprongen naar stap 4 en dit blijft zo doorgaan totdat aan voorwaarde d is voldaan.

Afbeelding toevoegen

N.B.: Het gedeelte dat wordt herhaald, moet altijd uit ten minste 3 stappen bestaan. Een stap kan namelijk alleen inschakelen als de volgende stap niet actief is (uitschakeling heeft voorrang op inschakeling). Stel in de figuur links heeft in de lus slechts 2 stappen: 4 en 5.
De voortgang is dan als volgt:
  • Stap 3 actief, p=1, stap 4 wordt
    actief.
  • Stap 4 actief, q=1, stap 5 wordt
    actief.
  • Stap 5 actief, c=1, nu kan 4 niet
    actief worden want 5 is nog
    actief.

Komt dit in de praktijk toch voor, dan wordt altijd een extra, zogenaamde loze stap toegevoegd (zie rechter figuur).

Afbeelding toevoegen

Gelijktijdige sequenties

Bij deze vorm hebben we te maken met meer wegen. Deze wegen worden echter nu gelijktijdig bewandeld. Deze vorm komt veelvuldig voor bij machines met verscheidene bewerkingsposten (vb. transferstraten). Er zijn nu dus meer takken tegelijk actief waarbij de stappen per tak onafhankelijk van de andere takken worden afgewerkt.
Als stap 10 actief is en aan voorwaarde e is voldaan, dan worden èn stap 11 èn stap 21 actief. We spreken nu van een EN-divergentie. Deze wordt met een dubbele lijn aangegeven. Zowel de linker as de rechter tak worden nu doorlopen. Voordat stap 14 actief kan worden, moet aan voorwaarde f voldaan zijn, maar ook moeten èn stap 13 èn stap 22 actief zijn. We spreken dan van een EN-convergentie. Als beide stappen niet gelijktijdig gereed zijn, moet de snelste wachten op de langzaamste voordat de gemeenschappelijke loop kan worden vervolgd: ook al is 22 reeds actief en is f voldaan, dan nog moet eerst 13 actief worden voordat met 14 verder kan worden gegaan.

Afbeelding toevoegen

Bijzondere notaties

In de voorgaande paragrafen zijn de algemene of basisgebruiksregels van het functiediagram behandeld. Naast deze algemene regels zijn er nog een paar bijzondere of wat verdergaande regels. In deze paragraaf gaan we daar wat dieper op in.
Voorwaardelijke acties of vergrendelingen Doorgaans zal de aan een stap verbonden actie worden uitgevoerd als de desbetreffende stap actief is. Er kunnen echter aan de uitvoering van de actie meer voorwaarden zijn verbonden. Deze kunnen van interne (vanuit de besturing) of externe (vanuit het proces of de bediening) aard zijn. De afhankelijkheid van een externe variabele wordt als volgt voorgesteld:

Afbeelding toevoegen

Stap 7 is actief. De bewerking "frezen" wordt zonder meer uitgevoerd. Het koelen is echter afhankelijk van de stand van de keuzeschakelaar (KS=0 niet koelen, KS=1 wel koelen), dus van de beslissing van de bedien(st)er.
Wanneer de uitvoering van een actie behalve van het actief zijn van de desbetreffende stap ook afhankelijk is van een interne variabele, dan wordt dit met een pijl weergegeven als volgt:

Afbeelding toevoegen

De acties E en F zijn tijdafhankelijk gemaakt. Op het moment dat stap 8 actief wordt, wordt de tijdschakeling T gestart en actie E begint.
Na t=3s wordt actie E beëindigd en actie F gestart. Actie F blijft doorgaan tot aan schuifvoorwaarde c is voldaan en daarmee de volgende stap actief wordt. Deze interne variabelen of voorwaarden worden ontleend aan de interne hulpfuncties.
Herhaling van sequenties (subroutines)
Als een gedeelte van een besturingscyclus of een zelfde uit verscheidene stappen bestaande bewerking meermalen in een cyclus voorkomt, is het nuttig dit deel uit de hoofdcyclus te lichten en er een aparte herhalingssequentie of subroutine van te maken.

Afbeelding toevoegen

Het linker deel geeft het desbetreffende deel uit de hoofdcyclus weer, dat in de cyclus verscheidene malen voorkomt. Het rechter deel geeft de notatie van deze subroutine weer.

Afbeelding toevoegen

Op twee plaatsen is deze subroutine nu als een simultane sequentie ingebouwd. De stappen 4 en 20 worden gelijktijdig geactiveerd. De overgang 5-6, via de schuifvoorwaarde em, kan alleen als ook stap 22 ook actief is. Het nut van deze truc blijkt duidelijk als we ons de technische uitvoering voor ogen stellen. Immers, iedere stap betekent tenminste 1 geheugenmodule.

Als nu in een cyclus een bepaald deel, zeg van 5 stappen, 5 maal voorkomt, zouden we hier 25 modules voor nodig hebben. Met behulp van de subroutine vraagt dit slechts 10 modules, namelijk 5 in de subroutine zelf en 5*1 in de hoofdcyclus. Een besparing derhalve van 15 modules.

De EduLab wiki gebruikt ScrewTurn Wiki software versie 3.0.5.600.