2.1. Basisinstructies: 2.1.1. Ja-functie: Indien je een normaal open schakelaar bedient, moet de lamp oplichten. Waarheidstabel: Booleaanse schrijfwijze: Q0.0 = I0.0 2.1.2. Niet-functie: Waarheidstabel: Booleaanse schrijfwijze: Q0.0 = -I0.0 5TET: PLC Van Lommel, M blz. 22
2.1. Basisinstructies: 2.1.3. En-functie: Er zijn 2 schakelaars. De lamp licht op alleen als de 2 schakelaars gelijktijdig gesloten zijn. Waarheidstabel: Booleaanse schrijfwijze: Q0.0 = I0.0. 5TET: PLC Van Lommel, M blz. 23
2.1. Basisinstructies: 2.1.4. Of-functie: Er zijn 2 schakelaars. De lamp licht op als één van de 2 schakelaars of beiden geschakeld zijn of de lamp dooft als beide schakelaars open zijn. Waarheidstabel: Booleaanse schrijfwijze: Q0.0 = I0.0 + 5TET: PLC Van Lommel, M blz. 24
2.1. Basisinstructies: 2.1.5. Niet-en-functie of NEN-functie: Er zijn 2 schakelaars. De lamp dooft als beide schakelaars geschakeld zijn. Opmerking: Als alle schakelaars gesloten zijn, dooft de lamp bij meerdere schakelaars. Waarheidstabel: Booleaanse schrijfwijze: Q0.0 = -(I0.0. ) 2.1.6. Niet-of-functie of NOF-functie: Er zijn 2 schakelaars. De lamp licht op als beide schakelaars open zijn. Opmerking: Als alle schakelaars open zijn, dooft de lamp bij meerdere schakelaars. Waarheidstabel: Booleaanse schrijfwijze: Q0.0 = -(I0.0 + ) Opmerking: Voor beide poorten bestaan er geen specifieke symbolen of uitdrukkingen; ze moeten samengesteld worden door een NIET (NOT)-functie en de desbetreffende poort EN of OF. Een en ander wordt duidelijk in de oefeningen. 5TET: PLC Van Lommel, M blz. 25
2.1. Basisinstructies: 2.1.7. EXOR-functie: Er zijn 2 schakelaars. De lamp licht alleen op als één van beide schakelaars gesloten is. Opmerking: De EXOF-functie is niet als basisfunctie in het programma aanwezig; zij zal moeten samengesteld worden met EN- en OF-functies. I0.0 & & >1 Q0.0 I0.0 & & Waarheidstabel: Vul aan! Booleaanse schrijfwijze: Q0.0 = (I0.0. ) + (-I0.0. -) 5TET: PLC Van Lommel, M blz. 26
2.1. Basisinstructies: 2.1.8. Afvragen van de status: De logische toestand van ingang, uitgang of geheugenplaats opvragen Voor S7-200 zij er 2 mogelijkheden: Afvragen op status 1: LD I0.0 toekennen aan een uitgang: Afvragen op status 0: LDN I0.0 toekennen aan een uitgang: 2.1.9. RLO (Result of Logic Operation: De instructies van een programma worden één voor één afgelopen en de tussentijdse resultaten van de logische bewerkingen worden door de PLC onthouden. Voorbeeld: EN-functie van onderstaande ingangen in de tabel waarbij de status van de ingangen als volgt is: I0.0 en =1 en I0.2 = 0 5TET: PLC Van Lommel, M blz. 27
2.1. Basisinstructies: 2.1.9. RLO (Result of Logic Operation: Oefening 9: Vul RLO in LD LD LD LD LD LD 5TET: PLC Van Lommel, M blz. 28
2.1. Basisinstructies: 2.1.10. NO- en NG-contacten vertalen in een PLC-programma: Om veiligheidsredenen worden sommige contacten NG uitgevoerd. Dit betekent niet dat je in het programma dit moet verwerken als een niet-functie Voorbeeld: I0.0 QI0.0 1 Regel 1: heeft status en RLO =1 omdat bij het starten de NO-schakelaar gesloten moet zijn. Regel 2: heeft status 1 doordat de NG-schakelaar niet bediend is. De RLO is toch 0 omdat AN betekent dat wordt afgevraagd op status 0. Beter is het programma aan te passen door: A teschrijven. Oefening 10: Vul de status en de RLO in 5TET: PLC Van Lommel, M blz. 29
2.2. Gebruik van hulpgeheugen (merkers): Hulpgeheugen of merkers zijn te vergelijken met hulprelais: ze sturen geen vermogenelementen aan maar dienen voor het in goede banen leiden van het stuurproces. Wanneer we voor elke toekenning een uitgang zouden gebruiken, zouden we een veel meer uitgangen nodig hebben en moeten kiezen voor een duurdere PLC. Algemene regel: Indien er geen verbruikers moeten aangestuurd worden, gebruiken we merkers zoals er geen hoofdcontactoren gebruikt worden wanneer er geen verbruikers worden aangestuurd maar hulpcontactoren. Schrijfwijze: M0.0 Voorbeeld: K2 S3 K1 K1 S2 S1 K2 K2 Volgende schakeling wordt een start stop gevormd met K2. K2 stuurt K1 aan die bijvoorbeeld een motor aanstuurt. We zien hier dat K2 geen verbruiker aanstuurt, terwijl K1 dit wel doet. Voor de schakelaars nemen we ingangen. Voor de contactoren nemen we voor K1 een uitgang, want deze moet een verbruiker aansturen; voor K2 nemen we een merker. De schakeling wordt dan: We programmeren eerst de hulpkring en dan de vermogenkring. Vorm om naar FBD en dan naar STL. M0.0 I0.2 M0.0 I0.3 Q0.0 Q0.0 M0.0 5TET: PLC Van Lommel, M blz. 30
2.3. Set - reset - geheugen of SR-flip-flop: SR-geheugen is een bistabiel relais: het heeft 2 vaste toestanden. Maken we de set (S) = 1, dan wordt Q0.0 = 1 en blijft 1, ook al wordt S = 0 Maken we de reset (R) = 1, dan wordt Q0.0 = 1 en blijft 0, ook al wordt R= 0 Symbool: S Q Q0.0 I0.0 R Programmeren in STL: S Q0.0, 1 -> slaat op het aantal uitgangen dat geactiveerd wordt te tellen vanaf dit adres. LDN I0.0 R Q0.0, 1 -> slaat op het aantal uitgangen dat gedeactiveerd wordt te tellen vanaf dit adres. Opmerking: in deze versie van het programma moeten S en R in aparte netwerken programmeren, anders kunnen we niet omschakelen tussen de talen. Programmeren in FBD: S en R zijn hier aparte blokjes en moeten in aparte netwerken geprogrammeerd worden. Prioriteit: Wat gebeurt er wanneer S en R gelijktijdig 1 worden? Dit hangt af van de volgorde waarin we het programma schrijven. Het programma wordt cyclisch verwerkt. De R staat hier de laatste geprogrammeerd. Dus de uitgang wordt dan 0! We hebben dus een R-prioriteit. 5TET: PLC Van Lommel, M blz. 31
2.4. Flankdetectie: = een sturing starten op de stijgende of dalende flank van een ingang Als een ingang met stijgende of dalende flank gestuurd wordt noemen we dit een Dynamische ingang Gebruik: - voor veiligheid: voorbeeld: wanneer de contacten van een NO-startdrukknop blijven plakken, kan er niet meer gestopt worden; - om bepaalde opeenvolgende acties mogelijk te maken: reset bij een RS-FF die geset is. 2 manieren om iets te detecteren: Op niveau (niveausturing): Op signaalverandering (flankgestuurd): Stijgende flank: Dalende flank: Positieve flank EU = Edge Up vb.: EU S Q0.0, 1 Negatieve flank ED = Edge Down vb.: ED S Q0.0, 1 Voorbeeld van gebruik van een dynamische ingang: Wanneer we een schakeling zouden starten en stoppen via een RS-FF, dan kunnen we deze maar stoppen via de reset-ingang als de set-ingang op nul staat. Indien dit niet het geval is dan start de schakeling steeds opnieuw. Door nu aan positieve flankdetectie te doen gaat de set van de RS-FF setten enkel op de positieve flank van de aangeboden één; blijft de set een logische één dan zal de RS-FF dit niet meer detecteren en kunnen we de RS-FF resetten zonder dat deze terug geset wordt. 5TET: PLC Van Lommel, M blz. 32
2.5. Tijdfuncties: 2 soorten timers: TON: On Delay Timer: TONR: Retentive On Delay Timer: In FBD: T33 In FBD: T1 300 1000 Tijddiagram Tijddiagram Begint opnieuw te tellen telkens wanneer de ingang 0l wordt en terug 1 gemaakt wordt. Stopt met tellen wanneer de ingang 0 wordt en gaat verder met tellen wanneer de ingang terug 1 wordt. STL-weergave: N1 TON T33, 300 N2 LD T33 Zichtbaar maken van de timer STL-weergave: N1 TONR T1, 1000 N2 LD T1 N3 LD I0.0 R T1, 1 Zichtbaar maken van de timer Inschakelvertraging PRESET TIME: Terug op nul Totale tijdsduur = preset time x pulsduur brengen De pulsduur is afhankelijk van de gekozen timer maken van de timer (zie Quick Reference Card ) Inschakelvertraging met geheugen 5TET: PLC Van Lommel, M blz. 33
2.5. Tijdfuncties: Gebruik in de praktijk: - Inschakelvertraging (zie vorige blz.); - uitschakelvertraging; - impuls; - pulsgenerator. Enkele voorbeelden: Uitschakelvertraging: Network 1 EU S Q0.0, 1 Network 2 LDN TON T33, 300 Network 3 LD T33 ON I0.0 R Q0.0, 1 De uitgang schakelt na een zekere tijd uit als de wordt uitgeschakeld en I0.0 (NC) niet bediend wordt. De uitgang schakelt onmiddellijk uit wanneer I0.0 bediend wordt, zonder de tijd verstreken is. 5TET: PLC Van Lommel, M blz. 34
2.5. Tijdfuncties: Gebruik in de praktijk: - Inschakelvertraging (zie vorige blz.); - uitschakelvertraging; - impuls; - pulsgenerator. Enkele voorbeelden: Impuls zonder geheugen: Network 1 EU S Q0.0, 1 Network 2 LD Q0.0 TON T33, +300 Network 3 LD T33 ON ON I0.0 R Q0.0, 1 Als =1 zal uitgang 1 worden en na een zekere tijd 0 worden als de een blijft. Impuls met geheugen of verlengde impuls: Network 1 EU S Q0.0, 1 R T33, 1 Network 2 LD Q0.0 TON T33, +300 Network 3 LD T33 ON I0.0 R Q0.0, 1 Als =1 zal uitgang 1 worden en na een zekere tijd 0 worden zelfs als de niet een blijft. 5TET: PLC Van Lommel, M blz. 35
2.5. Tijdfuncties: Enkele voorbeelden: Symmetrische pulsgenerator: Gaat de uitgang aan en uitschakelen. De aan- en uittijd is even groot. Network 1 LDN M0.0 TON T33, 25 Network 2 LD T33 = M0.0 Network 3 LD M0.0 AN Q0.0 LDN M0.0 A Q0.0 OLD A Asymmetrische pulsgenerator: Bij het aanzetten van I0.2 begint de pulsgenerator te lopen met een verschillende aan- en uittijd. Network 1 LD M0.0 TON T34, 75 Network 2 LDN M0.0 TON T35, 25 Network 3 LD T35 S M0.0, 1 Network 4 LD T34 R M0.0, 1 Network 5 LD M0.0 A I0.2 = Q0.1 Symmetrische pulsgenerator door gebruik van speciale merkers (SM): SM0.4 Wekt een klokpuls op van 1 minuut: 30 sec aan, 30 sec uit. Voorbeeld: LD SM0.4 A I0.0 SM0.5 Wekt een klokpuls op van 1 seconde: 0,5 sec aan, 0,5 sec uit. Voorbeeld: LD SM0.5 A = Q0.1 5TET: PLC Van Lommel, M blz. 36
2.6. Telfuncties (Counters): CTU: = Count Up 2 meest gebruikte soorten CTUD: = Count Up/Down CU R PV CTU CU CD R PV CTUD In FBD: C1 In FBD: C48 CU CTU CU CTUD I0.0 R I0.2 CD 5 PV I0.0 R 5 PV STL-weergave: STL-weergave: LD I0.0 CTU C1, +5 Bij elke positieve flank van een impuls aan deze ingang wordt de teller met 1 verhoogd (max. 32.767). Zie hierboven maar met 1 verlaagd. De teller wordt op 0 gezet (gereset). Uitgang teller 1 of 48 wordt op 1 gezet bij het bereiken van de preset (+5). LD I0.2 LD I0.0 CTUD C48, +5 Gebruik in de praktijk: - Optellen; - aftellen; - vergelijken van tellerwaarden. 5TET: PLC Van Lommel, M blz. 37
2.6. Telfuncties (Counters): Voorbeeld: vergelijken van tellerwaarden: Volgende vergelijkingsmogelijkheden kunnen gebruikt worden: - X ==I Y Als X gelijk is aan Y is de voorwaarde waar; - X >=I Y Als X groter of gelijk is aan Y is de voorwaarde waar; - X <=i Y Als X kleiner of gelijk is aan Y is de voorwaarde waar. I staat hier voor een integer getal en wil zeggen dat twee integere getallen worden vergeleken. Andere grootheden kunnen ook met elkaar vergeleken worden: - I = integer getal; - B = de inhoud van een byte (8 bits); - W = de inhoud van een woord (16 bits); - D = de inhoud van een dubbel woord (32 bits); - R = de inhoud van een reëel getal; LDW = C48, +5 Vergelijken met een getal: De uitgang Q0.0 wordt 1 als de momentele inhoud van de teller C48 gelijk is aan het getal 5. LDW>= C2, C3 Tellers met elkaar vergelijken: De uitgang Q0.0 wordt 1 als de inhoud van de teller C2 groter of gelijk is aan de inhoud van teller C3 Aantal ingeven via ingangen: Verschillende ingangen kunnen gegroepeerd worden als één geheel. Ze worden dan gelezen als een hexadecimaal getal. Aldus zouden we een duimwielschakelaar kunnen aansluiten. De getallen van de duimwielschakelaar komen dan overeen met de toestanden van de ingangen zoals aangegeven op de tabel hiernaast. Het volgende programma zet de uitgang Q0.0 op 1 als de duimwielschakelaar op 6 wordt gezet. Volgens de tabel zullen de ingangen en I0.2 een 1 hebben. LDB= Ib0, +6 5TET: PLC Van Lommel, M blz. 38