Inleiding in de PLC
Luc Mestchen PTI Eeklo
1
Wat is een PLC ................................................................................................................................. 6
2
Doel en nut van een PLC.................................................................................................................. 6
3
Soorten PLC’s ................................................................................................................................... 7 3.1
Traditionele PLC....................................................................................................................... 7
3.2
Slot PLC .................................................................................................................................... 8
3.3
Soft PLC.................................................................................................................................... 8
3.4
OPLC ...................................................................................................................................... 10
4
Visualisatie: WinCC en HMI panelen ............................................................................................. 11
5
Soorten in- en uitgangen ............................................................................................................... 13 5.1
5.1.1
Digitale ingangen ........................................................................................................... 13
5.1.2
Analoge ingangen .......................................................................................................... 19
5.1.3
Snelle ingangen (interruptgestuurde ingangen) ........................................................... 24
5.2
6
Ingangen ................................................................................................................................ 13
Uitgangen. ............................................................................................................................. 25
5.2.1
Digitale uitgangen.......................................................................................................... 25
5.2.2
Analoge uitgangen ......................................................................................................... 30
Veldbussen .................................................................................................................................... 32 6.1
Protocollen ............................................................................................................................ 33
7
Voedingen...................................................................................................................................... 34
8
CPU ................................................................................................................................................ 35
9
Programmacyclus .......................................................................................................................... 38
10
Opbouw van adressen voor in- en uitgangen .......................................................................... 40
11
Programmeertalen .................................................................................................................... 41
12
Basis digitale functies ................................................................................................................ 42
12.1
Afvragen op 1 of recht inlezen .............................................................................................. 42
12.1.1
LAD recht inlezen ........................................................................................................... 44
12.1.2
FBD recht inlezen........................................................................................................... 47
12.1.3
STL recht inlezen............................................................................................................ 48
12.2
Afvragen op 0 of invers inlezen ............................................................................................. 48
12.2.1
LAD invers inlezen ......................................................................................................... 49
12.2.2
FBD invers inlezen ......................................................................................................... 49
12.2.3
STL invers inlezen .......................................................................................................... 50
12.3
AND functie ........................................................................................................................... 50
12.3.1
AND in LAD .................................................................................................................... 51
12.3.2
AND in FBD .................................................................................................................... 51
12.3.3
AND in STL ..................................................................................................................... 51
12.4
OR .......................................................................................................................................... 52
12.4.1
OR in LAD ....................................................................................................................... 53
12.4.2
OR in FBD ....................................................................................................................... 53
12.4.3
OR in STL ........................................................................................................................ 53
12.5
NOT ........................................................................................................................................ 54
12.5.1
NOT in LAD..................................................................................................................... 54
12.5.2
NOT in FBD..................................................................................................................... 55
12.5.3
NOT in STL...................................................................................................................... 55
12.6
Voorrang van bewerkingen ................................................................................................... 55
12.7
EXOR ...................................................................................................................................... 57
12.7.1
EXOR in LAD ................................................................................................................... 58
12.7.2
EXOR in FBD ................................................................................................................... 58
12.7.3
EXOR in STL .................................................................................................................... 59
12.8
NAND ..................................................................................................................................... 60
12.8.1
Nand in LAD ................................................................................................................... 60
12.8.2
NAND in FBD .................................................................................................................. 61
12.8.3
NAND in STL ................................................................................................................... 62
12.9
NOR........................................................................................................................................ 63
12.9.1
NOR in LAD .................................................................................................................... 63
12.9.2
NOR in FBD .................................................................................................................... 64
12.9.3
NOR in STL ..................................................................................................................... 64
12.10
EXNOR................................................................................................................................ 65
12.10.1
EXNOR in LAD ............................................................................................................ 66
12.10.2
EXNOR in FBD ............................................................................................................ 66
12.10.3
EXNOR in STL ............................................................................................................. 66
13
Voorbeeld: start stop met voorrang stop ................................................................................. 67
13.1
Stuurkring .............................................................................................................................. 67
13.2
Vermogenkring ...................................................................................................................... 68
13.3
Toewijzingstabel .................................................................................................................... 68
13.4
Programma in LAD ................................................................................................................. 68
13.5
Programma in FBD ................................................................................................................. 70
13.6
Programma in STL .................................................................................................................. 70
13.7
Verbindingen ......................................................................................................................... 71
14
Voorbeeld: twee motoren, slechts één motor mag draaien. .................................................... 71
14.1
Relaisschema ......................................................................................................................... 72
14.2
Toewijzingslijst ...................................................................................................................... 72
14.3
Programma 2 motoren in LAD ............................................................................................... 73
14.4
Programma 2 motoren in FBD ............................................................................................... 74
14.5
Programma 2 motoren in STL ................................................................................................ 75
14.6
Verbindingsschema ............................................................................................................... 76
15
Set Reset functie........................................................................................................................ 77
15.1
SET /RESET met voorrang RESET ........................................................................................... 77
15.2
SET /RESET met voorrang SET ............................................................................................... 78
16
Voorbeeld: Alarmbewaking ....................................................................................................... 78
16.1
Toewijzingslijst ...................................................................................................................... 79
16.2
Programma in Lad ................................................................................................................. 79
17
Flankdetectie ............................................................................................................................. 81
17.1
Detectie op de positieve flank ............................................................................................... 81
17.2
Detectie op de negatieve flank.............................................................................................. 82
17.3
Voorbeeld: aanpassing Alarmbewaking met flankdetectie .................................................. 84
17.4
Voorbeeld: aan uit met één drukknop .................................................................................. 85
18
Timers ........................................................................................................................................ 87
18.1
Triggeren op flank of op niveau ............................................................................................ 87
18.2
Hertriggerbaar en niet hertriggerbaar .................................................................................. 89
18.3
Inschakelvertraging of uitschakelvertraging ......................................................................... 90
18.4
Soorten timers bij S7-300 ...................................................................................................... 90
18.4.1
S_ODT (inschakelvertraging met niveaugevoelige ingang) ........................................... 91
18.4.2
S_ODTS inschakelvertraging met flankgevoelige ingang .............................................. 93
18.4.3
S_PULSE ......................................................................................................................... 94
18.4.4
S_PEXT ........................................................................................................................... 96
18.4.5
S_OFFDT (uitschakelvertaring) ...................................................................................... 98
18.5
Samenvatting timers ........................................................................................................... 100
18.6
Voorbeeld: trappenhuis verlichting .................................................................................... 101
18.7
Voorbeeld: automatische ster driehoek met PLC ............................................................... 102
18.7.1
Hoofd- en stuurkring ................................................................................................... 102
18.7.2
Toewijzingslijst............................................................................................................. 102
18.7.3
Programma .................................................................................................................. 103
18.7.4
Aansluitingen ............................................................................................................... 104
18.8
Voorbeeld: knipperlicht ...................................................................................................... 105
18.8.1
Toewijzingslijst............................................................................................................. 105
18.8.2
Programma .................................................................................................................. 105
18.9
Voorbeeld looplicht ............................................................................................................ 106
18.10 19
Opgave: verkeerslicht ...................................................................................................... 107
Tellers ...................................................................................................................................... 108
19.1
Up counter ........................................................................................................................... 108
19.2
Down counter ...................................................................................................................... 109
19.3
Up/down counter ................................................................................................................ 110
19.4
Voorbeeld parkeergarage.................................................................................................... 110
19.4.1
Toewijzingslijst............................................................................................................. 110
19.4.2
Programma .................................................................................................................. 111
19.5 20 20.1
Opdracht frequentieteller ................................................................................................... 112 Vergelijkers .............................................................................................................................. 112 Voorbeeld, controle massa. ................................................................................................ 114
21
Rekenkundige functie’s ........................................................................................................... 116
22
Omzettingsfuncties (converters) ............................................................................................. 118
23
Gestructureerd programmeren............................................................................................... 120
24
Links, bronnen ......................................................................................................................... 120
1 Wat is een 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 is het verschil tussen een computer en een PLC vervaagd. De eerste PLC's bestonden uit AND, OR, NOT 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 software uitgevoerd en waren de eerste echte PLC's een feit. Men kreeg nu meer flexibiliteit en meer mogelijkheden. De PLC en de software voor het debuggen en het schrijven van de PLC-programma’s hebben een grote ontwikkeling doorgemaakt. Nu vindt het programmeren meestal in een Windows-omgeving plaats. Eens het programma klaar kan het overgedragen worden naar het geheugen van de PLC zodat zelfstandig kan werken (hardware PLC). Tegenwoordig is er ook sprake van een Slot PLC en een Soft PLC. Bij deze soorten PLC’s wordt de CPU van de PC gebruikt om het rekenwerk te doen.
Voorbeeld van een kast met PLC sturing van frequentieregelaars
2 Doel en nut van een PLC De eerste PLC is ontwikkeld in 1968 in een bedrijf in de VS. Men noemde het toestel””Modular Digital Controller”. De PLC werd ontwikkeld ter vervanging van besturingssystemen opgebouwd met relais. Deze hebben n.l. volgende nadelen: Inleiding PLC
6 / 120
LM
hoge ontwikkelings- en montagekosten door de vele werkuren weinig of geen flexibiliteit, elke wijziging resulteert in montage en bedradings wijzigingen veel slijtage door bewegende delen => hoge onderhoudskosten.
Men zocht naar een oplossing met volgend eisenpakket: compact systeem => kleinere stuurkasten gemakkelijk aanpasbaar het toestel moet eenvoudig te programmeren zijn eenvoudig in onderhoud (snel vervangen van onderdelen) een modulair toestel dat algemeen inzetbaar is vereenvoudigde diagnose bij storingen m.b.v. controlelampjes De eerste PLC’s werden gebruikt om aan/uit sturingen van machines en processen te controleren. Deze waren geschikt voor een sequentiële besturing. Vandaag worden er echter veel hogere eisen gesteld aan een PLC. Hij neemt niet alleen de sequentiële of combinatorische aan/uit besturing voor zijn rekening, hij moet ook analoge waarden kunnen lezen, verwerken en uitsturen. Als PID regelaar kunnen functioneren, communiceren met andere toestellen, displays aansturen voor bediening en weergeven van alarmen, groot aantal I/O mogelijkheden, signalen van encoders en allerlei sensoren kunnen verwerken, opslaan van gegevens, wiskundige berekeningen aankunnen, netwerkverbindingen (PROFI-bus, CAN-bus ASI-bus, Ethernet, opbouwen. Hij moet programmeerbaar zijn in meerdere en ook in hogere programmeertalen.
3 Soorten PLC’s PLC’s kunnen in verschillende groepen ingedeeld worden naar gelang de manier waarop deze opgebouwd zijn.
3.1 Traditionele PLC De Traditionele PLC is een PLC bestaande uit een CPU met zijn eigen behuizing en intern werkgeheugen. Vaak worden insteekkaarten gebruikt als opslaggeheugen. Te denken valt aan een MMC kaart van een digitale camera.
Inleiding PLC
7 / 120
LM
LOGO!
S7-200 3 soorten traditionele PLC’s van Siemens
S7-300
3.2 Slot PLC Een Slot PLC is een traditionele PLC, maar dan op bijvoorbeeld een PCI-kaart die in een PC slot geplaatst wordt.
De communicatie naar bijvoorbeeld I/O kaarten gebeurt via een of andere veldbus Ethernet of Profibus-DP.
3.3 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.
Inleiding PLC
8 / 120
LM
Op de PLC is dus geen processor meer nodig, enkel communicatiemogelijkheid met de PC en connectiviteit met de I/O. Het programma wordt op de PC uitgevoerd. De soft PLC module fungeert eerder als hardware interface. Nadeel van een soft PLC is dat je systeem maar zo stabiel is al het Operating systeem dat je draait. Een update, een virus of een slechte driver kan je hele systeem doen crashen. Voordeel is de goedkopere hardware. Qua snelheid lijken Soft PLC’s de meeste hardware PLC’s te kunnen kloppen.
Inleiding PLC
9 / 120
LM
Voorbeeld van een eenvoudige zelf te bouwen soft-PLC
* http://users.skynet.be/DCI_Site/plcinfo.html
3.4 OPLC Een "operating panel PLC". Dit is een PLC met ingebouwde HMI (human machine interface), bestaande uit toetsenbord met display of een touchpanel.
Dit zijn kleine PLC's die meestal gebruikt worden op kleine standalone machines. Bijvoorbeeld CNC gestuurde machines. PLC + HMI = OPLC
Inleiding PLC
10 / 120
LM
4 Visualisatie: WinCC en HMI panelen WinCC (Windows Control Center) is een PC gebaseerd visualisatie- en controlesysteem (software) dat vaak gekoppeld wordt aan grotere PLC-gestuurde processen. De PC wisselt via software en een communicatiekanaal gegevens uit met de PLC. Op die manier is het mogelijk bedienings- en visualisatiefuncties te realiseren op een computerscherm. Bij eenvoudiger processen wordt zal eerder een HMI (Human Machnine Interface) paneel gebruikt worden. Bij ingewikkelder processen geeft één of meerdere computerschermen meer mogelijkheden om het proces te controleren en te configureren.
Een voorbeeld van een WinCC scherm
Inleiding PLC
11 / 120
LM
Voorbeelden van HMI panelen
http://www.automation.siemens.com/mcms/human-machine-interface/en/visualizationsoftware/Pages/Default.aspx
Inleiding PLC
12 / 120
LM
5 Soorten in- en uitgangen Onafhankelijk van welk soort PLC je hebt, het is steeds de bedoeling een proces te besturen. Hiervoor moeten ingangen gelezen en uitgangen gestuurd worden.
5.1 Ingangen We kunnen zowel in- als uitgangen opsplitsen in digitaal en analoog. Lezen we een schakelaar of sensor van het type aan/uit dan volstaan we met digitale in- en uitgangen. Willen we een continu waarde meten, bijvoorbeeld een temperatuur , niveau, een toerental, dan werken we uiteraard analoog.
5.1.1 Digitale ingangen Zoals hierboven reeds aangehaald kunnen digitale ingangen enkel detecteren of iets aan, of uit is. Elke digitale ingang komt dus overeen met één bit in het PLC systeem.
U
t
Een binair signaal kent slechts twee toestanden
Elke digitale ingang krijgt een naam (adres). Bij veel systemen bestaat de naam uit een BYTE adres en een BIT adres. Zo zal bijvoorbeeld bij een S7-300 I0.4 verwijzen naar ingang met BYTE adres 0 en bit adres 4. Bij bijvoorbeeld een Logo! PLC zal men in en uitgangen gewoon doornummeren vanaf I1 over I2, …In De uitgangen worden daar genummerd als Q1,Q2,….Qn Fysisch is er voor elke digitale ingang een aansluitklem op de ingangsmodule waaraan het signaal aangeboden wordt. Is de spanning op de klem hoog, dan lezen we een “1” in, is de spanning laag dan lezen we een “0” of “laag niveau” in. In het PLC-programma kan desgewenst de ingang invers ingelezen worden. Een 1 wordt dan verwerkt als een 0 en omgekeerd.
Hierboven, enkele mogelijke digitale ingangen Inleiding PLC
13 / 120
LM
Sommige PLC’ systemen hebben standaard een aantal ingangen geïntegreerd in de CPU module (bijvoorbeeld Logo!, S7200, ..). Bij andere systemen (bijvoorbeeld S7-300 en S7-400) moeten aparte ingangsmodules aangeschaft worden. Bij bijna alle systemen kunnen, naar gelang het aantal benodigde ingangen één of meerdere ingangsmodules bijgeplaatst worden. Bij de aankoop van de modules bepaalt het aantal ingangen en het spanningsniveau dat gevraagd wordt voor een “1” niveau de keuze. Hieronder een tabel met enkele voorbeelden van modules voor de S7-300 reeks
Overzichtstabel met soorten ingangen voor de Siemens 300 reeks
Kies je ingangsmodule(s) volgens de soort inputs die je gaat gebruiken. Hierna volgt een overzicht van enkele types van veel gebruikte sensoren. De meeste van deze sensoren zijn drie-draads sensoren Ze hebben twee draden voor de de voeding: (+24V) en massa (0V) en één draad voor de uitgang. De uitgang kan actief hoog zijn (24V ) of laag (0V). Je zoekt dit best op in de datasheet of met behulp van een proefopstelling.
Inleiding PLC
14 / 120
LM
Veel gebruikte sensoren met hun symbool
Inleiding PLC
15 / 120
LM
Voorbeeld van een capacitieve drie-draadssensor
Aanlsuitschema voor een 3 draads sensor (PNP) BN = brown, BL= bleu, BK = Black
Inleiding PLC
16 / 120
LM
Aanlsuitschema voor schakelaars/drukknopen en magneetcontact (24V ingangsmodule)
Voorbeeld: digitale ingangsmodule 32x24V voor de 300 reeks
Inleiding PLC
17 / 120
LM
Inwendig schema van een digitale ingangsmodule 64x24V sinking en sourcing (sinking= stroom trekken uit de ingang, sourcing is stroom sturen naar de ingang (let op de bruggelijkrichter en de aparte sturende bron (4)of (5))
Inwendig schema van een digitale ingangsmodule 16x24V sourcing (er is geen brugcel meer, de led licht enkel op als stroom naar de ingang gestuurd wordt.)
Opdracht: Bestudeer het verschil tussen de ingangsmodules 16x24V sinking/sourcing en 16x24V sourcing. Wat is het nut van de brugcel, wat wordt bedoelt met sinking/sourcing?
Inleiding PLC
18 / 120
LM
5.1.2 Analoge ingangen Een signaal afkomstig van een analoge sensor wordt via een analoog naar digitaal omzetter omgezet in een binair getal van meerdere bits (courant is dit 8,12 en 16 bits). Dit binair getal is een representatie van de analoge waarde en kan door de PLC verwerkt worden.
U
t Een analoog signaal kan oneindig veel toestanden aannemen Sommige analoge modules laten toe om rechtstreeks thermokoppels of PT-100 of PT-1000 weerstanden aan te sluiten. Een vaak gebruikte weerstand voor temperatuurmeting is de PT-100 weerstand. Ontbreekt de mogelijkheid om de sensor rechtstreeks aan te sluiten, dan plaatst men een transmitter tussen de sensor en de analoge ingangsmodule. De transmitter past het signaal van de sensor aan naar één van de standaard signalen (0 tot 10V, 4 tot 20 mA of 0 tot 20 mA) waarmee de analoge ingangsmodule van de PLC wel mee overweg kan.
PT-100 weerstanden thermokoppels ** http://nl.wikipedia.org/wiki/Thermokoppel
Inleiding PLC
19 / 120
LM
** http://nl.wikipedia.org/wiki/Pt100
Transmitter voor DIN rail montage
transmitter voor kopmontage
Er bestaan analoge sensoren om praktisch alle grootheden te meten. Om er maar enkele te noemen: druk, temperatuur, afstand, zuurtegraad, toerental, massa, radioactiviteit, hoek, snelheid, versnelling enzv. * http://www.be.endress.com/nederlands * http://www.abb.com/ProductGuide/Alphabetical.aspx * http://www.ifm-electronic.com/ifmbenl/web/pmain.htm In de meeste productieprocessen worden deze sensoren gebruikt om automatisch systemen bij te regelen tot een gewenste waarde.
Zo kan bovenstaand schema van een PID regelkring verwezenlijkt worden met een PLC. Het setpoint stelt de gewenste waarde voor. Van deze gewenste waarde wordt de werkelijke waarde, gemeten in het proces en aangepast via een transmitter afgetrokken. Het resultaat is de fout. Is de gewenste waarde precies gelijk aan de werkelijke waarde, dan is de fout (error) 0. De fout
Inleiding PLC
20 / 120
LM
wordt verwerkt met drie wiskundige acties die we (in het geval van een PLC) via software uitvoeren. De drie acties zijn: P= versterken I= integreren D= differentiëren Het resultaat van de drie acties worden samengeteld en daarna via een corrigerend orgaan (bijvoorbeeld een regelklep of een vermogensturing die de stroom door een verwarmingsweerstand regelt) teruggevoerd naar het proces, met de bedoeling om de fout weg te werken. Betrekken we bovenstaand schema bijvoorbeeld op een PLC die de temperatuur moet regelen van een lasdraad om plastic zakken dicht te smelten. Is de temperatuur te hoog, dan branden de zakjes door, is deze te laag, dan zullen de zakjes niet goed dicht zijn. Via bijvoorbeeld een PT-100, meten we de temperatuur van de lasdraad. De weerstandswaarde van de PT-100 wordt via een transmitter omgezet in een stroom van 4-20mA die evenredig is met de huidige temperatuur van de lasdraad. We sluiten deze waarde aan op de een analoge ingang van de PLC. De analoge ingangsmodule zet de analoge waarde op in een binair woord (16 bits) die de PLC verder verwerkt. De gewenste temperatuur wordt via een potmeter aangeboden aan de tweede analoge ingang en wordt daar eveneens in een binair woord omgezet. We hebben nu twee binaire getallen die overeenkomen met respectievelijk de gewenste- en werkelijke waarde. De PLC berekent de fout door de twee waarden van elkaar af te trekken. De PLC berekent, met behulp van opgegeven parameters de drie acties P, I en D en telt deze samen. Dit resultaat, nog steeds een digitaal getal, moet vervolgens via de digitaal naar analoog uitgangsmodule omgezet worden in een analoge waarde. De output van de analoge uitgangsmodule is bijvoorbeeld een regelsignaal van 4 -20mA. Deze stuurt een vermogensversterker aan , bij 4mA wordt niet verwarmd, bij 12mA op halve kracht, bij 20mA op volle kracht. Als de drie parameters voor de P, I en D actie goed ingesteld zijn dan zal de PLC in staat zijn om de lasdraad, binnen de kortst mogelijke tijd op de juiste temperatuur te brengen en te houden. In de analoge ingangsmodule bevindt zich dus een A/D omzetter (analoog naar digitaal converter) die het analoge bereik omzet naar een bit reeks.
Inleiding PLC
21 / 120
LM
Hoe meer bits, hoe nauwkeuriger, maar ook hoe duurder de omzetter.
In bovenstaande tabel zien we de voorstelling van een drie bits A/D omzetter. Op de verticale as zien we de analoge ingangswaarde, op de horizontale as de digitale, omgezette uitgangswaarde. Aangezien er drie bits zijn, zijn er 23 =8 digitale waarden mogelijk. De ideale analoge conversiewaaden zijn dan gelegen op: 0, 1/8 ,.. tot en met 7/8 van de maximum spanning. 0V analoog zal omgezet worden in 000(2) en 7/8 van de maximale ingangspanning in 111(2). Uiteraard zijn er waarden mogelijk tussen 0 en 1/8, deze zullen allemaal resulteren in een binaire 000. We zien gemakkelijk in, dat door meer bits te gebruiken de stapgrootte of stapfout kleiner wordt. Het te verwerken binair getal wordt dan wel groter. Tevens moet de elektronica zo gebouwd zijn dat de tolerantie kleiner is dan de stap. Met ander woorden, het heeft geen zin om teveel bits te gebruiken bij de AD-conversie omdat de stapfout, op een bepaald moment kleiner wordt dan de tolerantie van de gebruikte elektronica. Bij PLC’s worden soms analoge modules gebruikt van 12 bits. Zo’n A/D omzetter van 12bits zal 212=4096 verschillende uitgangscombinaties hebben. Namelijk 0000 0000 0000(2) of 000(H) tot 1111 1111 1111(2) of FFF(H) De grote van 1 stap is dan in bovenstaand voorbeeld :
stapgrootte
Inleiding PLC
bereik 10V 0V 2,4mV aatal stappen 4096
22 / 120
LM
In % is dit
2,4.10 3 .100% 0,024% 10
In de volgende tabel staat een overzicht met de getalvoorstelling bij een Siemens analoge module (16 bits). Reken zelf de stapgrootte en de fout uit voor een ingangsbereik van -10V tot 10V Omdat de aangeboden spanning zowel positief als negatief kan zijn is de moet de binaire waarde een teken kunnen weergeven. De getallen worden in dit voorbeeld voorgesteld volgens de tweecomplement methode. **** http://nl.wikipedia.org/wiki/Two's_complement
Opdracht: Een PT100 sensor is aangesloten op een transmitter die 0V levert bij -50°C en 10V levert bij +50°C. De temperatuur is momenteel 25°C. Welke waarde is de gedigitaliseerde waarde (in binair en hex) . W gaan ervan uit dat de transmitter aangesloten is op een analoge ingang waarvan hierboven de tabel gegeven is.
Inleiding PLC
23 / 120
LM
5.1.3 Snelle ingangen (interruptgestuurde ingangen) Door de cyclische werking van het PLC programma zullen de ingangen slechts bevraagd worden aan het begin van elke programma cyclus.
cyclische werking van een PLC programma
De PLC bevraagt zijn ingangen voordat hij het programma doorloopt. Daarna wordt het programma, instructie na instructie, doorlopen. Vervolgens worden de uitgangen aangestuurd. Deze cyclus wordt herhaald. Verandert een ingang kortstondig tijdens het doorlopen van het programma (cyclustijd) dan zal de PLC deze verandering aan de ingang niet zien. Bij snelle processen is dit niet gewenst . Hier moeten we kiezen voor ingangsmodules die interrupt gestuurd zijn. Deze ingangsmodules zullen het lopend programma onderbreken als er iets wijzigt aan de ingang.
Onderbreken van het hoofdprogramma voor de interrupt routine ISR
In het bovenstaand voorbeeld wordt het hoofdprogramma (links) onderbroken door de ingangsmodule. De ingangsmodule vraagt via een aparte klem op de CPU een interrupt aan. De CPU onderbreekt het hoofdprogramma en doorloopt de ISR (interrupt service routine). Deze schenkt aandacht aan de ingang en haalt de nieuw waarde(n) op. Inleiding PLC
24 / 120
LM
Vervolgens wordt verder gegaan met het hoofdprogramma dat dan gebruik maakt van de nieuwe waarden van de ingang.
5.2 Uitgangen. Uiteraard willen we niet enkel ingangen kunnen lezen maar ook uitgangen kunnen aansturen.
5.2.1 Digitale uitgangen De meest gebruikte uitgang is de digitale uitgang. Hiermee kan je iets aan- of uit zetten. Meestal zijn dit relais, lampen ,indicatoren, pneumatische- of hydraulische ventielen. Met deze laatste kunnen dan weer cilinders aangestuurd worden om iets te openen, te klemmen enzovoort.
Indicator
contactor
relais voor DIN rail montage
elektromagnetisch perslucht ventiel DC motor (klein vermogen) Enkele voorbeelden van digitale uitgangen Bij digitale uitgangen kies je voor halfgeleider uitgangen (contactloze uitgangen) met transistoren voor de lagere DC spanningen of triacs voor hogere wisselspanningen of relaisuitgangen. Deze laatste zijn uiteraard voor alle spanningen toepasbaar, maar hebben het nadeel dat ze mechanisch zijn. De DC uitgangen leveren meestal 24V. De max stroom die zo’n uitgang kan leveren is vaak 0,5 of 2A. Als de uitgangsmodules hun spanning betrekken van de voeding van de PLC, dan moet Inleiding PLC
25 / 120
LM
men erop letten dat de som van de te leveren uitgangstromen de maximale stroom van de PLC voeding niet overschrijdt. Veel uitgangsmodules kunnen aangesloten worden op een extra of externe voeding (in onderstaand schema tussen klem 1-10, 11,20 31,20 en 31,40). Zijn de te leveren stromen niet groot, of is de voeding van de CPU voldoende krachtig, dan kan men de voeding van de PLC gebruiken.
Blokschema van een digitale output module SM322 (s7-300 reeks) 32x24V 0,5A (elektronische uitgang)
De modules met relais uitgang, kunnen een gemeenschappelijk voedingscontact of aparte voedingscontacten per uitgang hebben. De laatste hebben als voordeel dat je per uitgangscontact een aparte voedingsspanning kan gebruiken. Indien we de voeding voor de relaiscontacten betrekken uit de PLC voeding dan moet men er eveneens letten dat de maximale stroom van de voeding niet overschreden wordt.
Inleiding PLC
26 / 120
LM
Bokschema van een output module met relais uitgangen 16 x REL
Voor uitgangen die veelvuldig moeten schakelen kies je best voor elektronische uitgangen (solid state relais). Wil je een lamp laten knipperen en kies je hiervoor een module met een relaisuitgang, dan zal de relais in de module dit niet lang volhouden.
Inleiding PLC
27 / 120
LM
Uitgangsmodule 8x120/230V AC
Men moet erop letten dat, bij het schakelen van inductieve belastingen op DC (gelijkspanning), een vrijloopdiode over de belasting geplaatst wordt. Dit , om te vermijden dat de piekspanning
E L.
I t
die ontstaat bij het uitschakelen van de (relais)spoel de uitgang van de PLC stuk maakt.
Onderdrukking van de emk van zelfinductiebij met vrijloopdiode
Bij wisselspanning kan je uiteraard geen diode gebruiken. Om de contacten van je relaisuitgangen te sparen kan je ofwel werken met een VDR (Voltage Dependent Resistor) of een RC serieschakeling (snubber netwerk) in parallel met de belasting.
Inleiding PLC
28 / 120
LM
*** http://nl.wikipedia.org/wiki/Spanningsafhankelijke_weerstand ** http://en.wikipedia.org/wiki/Snubber
Onderdrukking van emk van zelfinductie bij uitschakelen van een inductieve belasting op wisselspannig met VDR (1) of snubbernetwerk (2)
Voorbeeld van aansluiten van relais ( uitgang Q0.0), indicator (Q0.1) en dubbelwerkend elektromagnetisch ventiel (Q0.2 en Q0.3) op de uitgangen van de PLC
Inleiding PLC
29 / 120
LM
Aansluiten van een relais op een digitale uitgangsmodule. In bepaalde gevallen kan, omwille van veiligheidsredenen nog een hardware vergrendelcontact (1) opgenomen worden in serie met de belasting (2)
5.2.2 Analoge uitgangen Zoals aangehaald in het voorbeeld van de PLC als regelkring onder “4.3, analoge ingangen”, kan de PLC ook analoge signalen als uitvoer leveren. Hierdoor is het mogelijk om bijvoorbeeld een regelklep in een bepaalde stand te zetten, een motor op een bepaald toerental te laten draaien, de stroom door een belasting naar een bepaalde waarde te sturen zodat de temperatuur in de weerstand regelbaar is, een servomotor in een robot naar een bepaalde positie te sturen enzoverder. *** http://nl.wikipedia.org/wiki/Actuator Het principe van een analoge uitgang is nagenoeg gelijk aan dit van een analoge ingang. Enkel wordt de bitreeks, die de analoge waarde representeert nu naar de uitgang gestuurd. De D/A convertor in de uitgang zet deze bitreeks om in de een analoge spanning of stroom. Onderstaand, een tabel van vaak voorkomende analoge uitgangsbereiken.
Aangezien een analoge uitgang enkel spanning of kleine stromen kan leveren kunnen we de actuator hiermee meestal niet rechtstreeks aansturen. We zullen praktisch altijd een vermogensturing nodig hebben als aanpassing tussen de outputmodule en de belasting. Vaak gebruikt zijn spanningsgestuurde fase-aansnijdingen (dimmers), PWM regelaars (Pulse Width Inleiding PLC
30 / 120
LM
Modulation), frequentieregelaars voor a-synchrone motoren en andere vermogenselektronica. Hieronder: enkele voorbeelden van controllers die kunnen aangestuurd worden vanuit een analoge uitgangsmodule van een PLC
Micromaster frequentieregelaar voor a-synchrone motoren
DC controlled dimmer (Velleman K8064)
Servo motor controller
PWM motor speed controller
Regelklep
Proportioneel drukventiel
Inleiding PLC
31 / 120
LM
Servomotoren *** http://nl.wikipedia.org/wiki/Servomotor Twee servomotoren synchroon laten draaien: demo *** http://www.youtube.com/watch?v=4tO0U-njBTQ Fanuc robot met servomotoren en visie http://www.youtube.com/watch?v=hjPZagSAKnA&feature=related Wat is PWM op You Tube: *** http://www.youtube.com/watch?v=YmPziPfaByw&feature=fvw
6 Veldbussen Een veldbus is een industriële, digitale bus voor realtime en gedistribueerde besturing van machineparken en processen. *** http://nl.wikipedia.org/wiki/Realtime Een typisch proces moet gegevens uitwisselen tussen sensoren, Programmable Logic Controllers (PLC’s), stuurcomputers, actuatoren, interfaces naar de operator, enzovoort. Een veldbus zorgt voor een storingsvrije en determineerbare communicatie (determineerbaar wil zeggen dat zender en ontvanger zijn indentificeerbaar zijn). De PLC moet verbonden worden met de PC, om deze te kunnen programmeren, om eventueel gegevens te visualiseren, gegevens te loggen, het proces bij te sturen in de de PLC via de PC enzoverder. Grotere systemen kunnen uit meerdere PLC’s opgebouwd zijn die elk een deel van de taak uitvoeren. Om het geheel te laten samen werken moeten de PLC’ s onderling kunnen communiceren. Indien er veel I/O (input output) moet gelezen worden (op een grote afstand) kan er gekozen worden om met decentrale periferie te werken om bekabeling uit te sparen. De signalen afkomstig van/naar meerdere sensoren/actuatoren komen dan samen in één punt en kunnen dan langs één kabel verstuurd worden naar de centrale PLC. Een typisch voorbeeld hiervan is de ET200 module die via profibus/profinet met de PLC vebonden wordt. * http://www.automation.siemens.com/salesmaterial-as/brochure/en/brochure_simaticet200_en.pdf
Inleiding PLC
32 / 120
LM
. Voorbeeld van een gecombineerd veldbussysteem (profibus + ethernet-TCP-IP + RS232)
Zo’n verbinding die industriële communicatie mogelijk maakt tussen verschillende delen noemt men een veldbus. De communicatie in een domoticasysteem verloopt eveneens via een veldbus of afgeleide van een veldbus. Er zijn jammer genoeg veel verschillende soorten veldbussystemen die niet onderling compatibel zijn. Een bussysteem bestaat, net als het OSI model, uit verschillende lagen.
6.1 Protocollen Het elektrisch niveau (het laagste niveau van het OSI model) wordt zodanig beschreven dat het elektronisch mogelijk is om signalen uit te wisselen. Hiervoor gebruikt men onderandere :
RS232 ** RS422 ** RS485 ** Ethernet **
Inleiding PLC
33 / 120
LM
Boven het elektrisch niveau draait een protocol dat bepaalt hoe de communicatie softwarematig verloopt. Enkele gekendeprotocollen zijn:
PROFI bus Profinet CAN bus (de standaard in de auto industrie) ASI bus
Meer info over bussystemen en protocollen: *** http://www.bustechnologie.nl/LeerMiddelen/bsboek.html
7 Voedingen De elektronica van de PLC moet gevoed worden. Hiervoor heeft elke PLC een voeding nodig. In sommige(kleinere) PLC’s kan de voeding ,de processor en enkele in- en uitgangen in dezelfde behuizing ondergebracht zijn. Grotere systemen werken steeds met een aparte voedingen. De voeding levert niet enkel spanning voor de stuurelektronica, maar ook voor de uitgangsmodules. De stroom die de belastingen (bijvoorbeeld relais) uit de uitgangsmodules halen moet eveneens geleverd worden door de voeding van de PLC. Dit kan dezelfde zijn als deze van de PLC, of een externe. Bij grote systemen wordt vaak een aparte voeding gebruikt voor de stuurelektronica en voor de uitgangsmodules. De stuur elektronica wordt gevoed via de centrale bus, de voeding van de uitgangstrappen wordt meestal aangesloten op externe klemmen zodat de ontwikkelaar kan kiezen hoe de uitgangsmodules gevoed worden. De meeste PLC voedingen zijn kortsluitbestendig. Dit wil uiteraard niet zeggen dat men zorgeloos met de bekabeling kan/mag omgaan. Bij grotere stromen kan serieuze vonkvorming ontstaan.
voorbeeld van een 2A voeding voor de S7-300 Inleiding PLC
34 / 120
LM
*** http://en.wikipedia.org/wiki/Inrush_current
8 CPU De PLC bestaat hoofdzakelijk uit een processor (CPU of Central Processing Unit), geheugen, en input output. De PLC is eigenlijk een volwaardige computer, echter gebouwd om elektrische schakelingen te vervangen. We kunnen de PLC in feite beschouwen als een doos vol contactoren, tellers, tijdsschakelaars en gegevensopslagplaatsen. Deze elementen bestaan niet echt maar worden gesimuleerd met behulp van binaire gegevens in registers. De in- en uitgangen zijn via de back-plane of interne bus verbonden met de CPU. Als we een module toevoegen aan een rack, dan zal steeds op een of andere manier, een verbinding gemaakt worden met de backplane, hetzij met een connector op de zijkant of op de achterkant van de module. Deze backplane zorgt voor de verbinding van data-, adres en controlesignalen alsook de spanningsverzorging van de stuurelektronica (niet voor de in- en uitgangstrappen). De voeding voor in- en uitgangstrappen kan desgewenst via een aparte voeding aangesloten worden aan de (voorkant) van de module. De in- en uitgangsmodules zijn fysisch verbonden met de buitenwereld via de aansluitklemmen van de deze modules waarop de periferie aangesloten wordt. Ze ontvangen signalen van schakelaars, sensoren enzv. Ze sturen relais, ventielen, lampen, motoren, regelaars enzovoort aan. Interne hulpcontactoren of merkers ontvangen geen signalen van de buitenwereld en bestaan ook Inleiding PLC
35 / 120
LM
niet fysisch. Het zijn gesimuleerde contactoren en vormen de hulpvariabelen waardoor de PLC een aantal externe contactoren kan elimineren. We noemen deze in het algemeen merkers. Elke merkerbit is in staat om één bit te onthouden. Elektronisch gezien is een merker een flip-flop. Hij is in staat om één bit te onthouden. Er bestaan ook merker bytes, (8 bits) merker woorden (16 bits) en merker dubbelwoorden (32 bits). Merker bytes,- woorden en -dubbel woorden worden onderandere gebruikt bij de verwerking van gedigitaliseerde analoge waarden. Er bestaan remanente merkers, hun inhoud blijft behouden bij het uitschakelen van de PLC. Van de niet remanente merkers, gaat de inhoud verloren bij het uitschakelen van de PLC. In de PLC is vaak een batterij ingebouwd die ervoor zorgt dat een deel van het RAM geheugen onder spanning blijft zodat remanente merkers mogelijk zijn. Counters of tellers bestaan niet fysisch. Het zijn via software gesimuleerde tellers en ze kunnen geprogrammeerd worden om pulsen te tellen. Tellers kunnen over het algemeen optellen, aftellen of een combinatie van beide. Daar ze gesimuleerd worden zijn ze meestal gelimiteerd voor wat betreft hun telsnelheid. Timers of tijdsrelais bestaan ook niet fysisch. Er zijn verschillende vormen en tijdsbasissen. De meest gebruikte tijdsfunctie is de inschakelvertraging. Andere merken beschikken soms over uitschakelvertragingen, ze kunnen flank- of niveaugevoelig zijn, hertriggerbaar en niet hertriggerbaar enzovoort. De verlopen tijd van timers kan zowel remanente als niet-remanent zijn. De tijdsbasissen variëren van 1ms tot meerdere uren. Registers zijn interne geheugens van de CPU. Ze worden simpelweg gebruikt voor de opslag van gegevens. Hierbij denken we aan de tijdelijke opslag van rekenkundige bewerkingen en gegevensmanipulatie. Ze kunnen remanent en niet remanent zijn. Het bekendste register van de CPU is de ACCU. Bekijken we even het intern blokschema:
Inleiding PLC
36 / 120
LM
De CVE is de centrale verwerkingseenheid of CPU. Hierin vind je de normale delen van een microprocessor zoals: ALU, ACCU, hulpregister, programmateller, instructiedecoder enzoverder. Voor een diepgaandere werking van dit deel verwijzen we naar de cursus Siemens didactische computer. De CVE haalt zijn programma uit het programmageheugen. Het programma wordt daarin geladen via een programmeerapparaat (PG of programmiergerät). Dit kan een PC zijn die via een of andere bus of interface (bijvoorbeeld RS232 of USB) verbonden is met de PLC. De Batterij onderhoud het RAM geheugen van spanning zodat de remanente waarden niet verloren gaan bij het uitschakelen of wegvallen van de voedingsspanning. Tellers houden de getelde waarden van de diverse counters of tellers bij. Tijden, in dit blokje worden de tijden van de software timers bijgehouden. Het systeemprogramma bevat het interne programma van de PLC. Als deze opstart moeten de nodige taken uitgevoerd worden, het is als het ware het besturingssysteem van de PLC. Het Ram geheugen houdt alle variabelen bij die niet opgeslagen zijn in een van de andere blokken. In het PAE of PIT (process abfrage eingang of Process Input Table), eveneens een stukje geheugen, worden in het begin van een programmacyclus alle waarden van de ingangen gekopieerd. Het lopende programma kijkt enkel naar het PAE, niet rechtstreeks naar de ingangen.
Inleiding PLC
37 / 120
LM
Voor elke cyclus wordt het PAE ververst (ingangen gekopieerd naar PAE) Wat het PAE is voor de ingangen, is het PAA of POT (proces abfrage ausgang of Process Output Table) voor de uitgangen. Tijdens een lopend programma worden de veranderingen naar het PAA geschreven. Pas op het einde van het programma wordt het PAA naar de uitgang gekopieerd.
9 Programmacyclus Hiervoor is reeds aangehaald dat de werking van een PLC is gebaseerd op het continue uitvoeren van een programma. We kunnen deze scancyclus splitsen in drie belangrijke stappen. stap 1 kopieren van de ingangen naar de PITof PAE Stap 2 uitvoeren van het programma, instructie na instructie Stap 3 kopieren van de waarden van het outputregister PAA, POT naar de uitgang. Opdat de PLC bij een opstart zou initialiseren (in een vaste bepaalde begintoestand komt) wordt na een opstart één maal een procedure doorlopen.
Inleiding PLC
38 / 120
LM
De totale responstijd van de PLC is een feit waar we rekening moeten mee houden bij de keuze van een PLC. Net zoals onze hersenen heeft een PLC enige tijd nodig om te reageren op veranderingen. In veel tragere toepassingenis de snelheid niet van doorslaggevend belang, maar in snelle processen kan de traagheid van de PLC voor fouten zorgen. De totale reactietijd van een PLC systeem is de som van de reactietijd van de invoer, de uitvoeringstijd van het programma en de reactietijd van de uitvoer. Dit kan snel oplopen tot meerdere ms.
Willen we een sensor lezen waarvan de waarde 1000 xsec wissselt dan kunnen er veranderingen gemist worden en moet er naar sneller oplossingen gezocht worden zoals bvb een interruptgestuurde ingangsmodule.
Inleiding PLC
39 / 120
LM
10 Opbouw van adressen voor in- en uitgangen Er zijn veel merken en soorten PLC’s. Onderstaande is geldig voor sommige PLC’s van Siemens. Andere merken gebruiken meestal gelijkaardige of afleidbare nummering. In eerste instantie wordt het type bepaalt. Er wordt een verschil gemaakt tussen in- uitgangen en merkers. Engels systeem I-> input Q->output M-> merker of hulpbit Duits systeem E->eingang A-> Ausgang M-> merker of hulpbit Het type wordt gevolg door een adres. Meestal bestaat dit adres uit twee delen: byte adres bit adres. Bijl Logo! worden de ingangen gewoon genummerd vanaf I1, I2 ….enzv. De uitgangen zijn dan Q0, Q1 enzv. Bij de S7- reeks wordt gewerkt met een BYTE adres en een BIT adres. Bij de S7-300 is het byte adres van een module afhankelijk van de plaats van de module op de rack. De meest linkse module krijgt Byte adres 0, de module daarnaast byte adres 4 enzv. Bekijken we de hardware configuratie van een S7 3xx (op te roepen via de software) het volgende voorbeeld: De meest linkse module is de voeding, deze telt niet mee bij de adrestelling, in dit geval een voeding van 2A. Daarnaast komt steeds de CPU, in dit geval een CPU314. Deze wordt ook niet meegerekend in de adrestelling. De CPU heeft een MPI adres, dit is het ID van de CPU, nodig voor programmatie en communicatie op de MPI bus. Naast de CPU komt een communicatiemodule (bvb profibus module) of een vrije ruimte. In het voorbeeld is geen communicatiemodule gebruikt. De eerste drie locaties kunnen dus niet ingenomen worden door input- of output modules. De eerste module, in het voorbeeld een digitale ingangsmodule met 16 ingangen van 24V, staat in ons voorbeeld op positie 4. Het krijgt adres 0. Aangezien het een ingangsmodule is met met 16 ingangen lopen de adressen van I0.0 over I0.7 en dan verder vanaf I1.0 t:m I1.7. De ingangen I2.0 t/m I3.7 zijn in deze configuratie ongebruikt. Op de vijfde locatie vinden we een digitale uitgangsmodule met 32 uitgangen van 24V 0,5A.
Inleiding PLC
40 / 120
LM
De adressen van deze uitgangsmodule starten op Q4,0 over Q4,7 (1ste byte) om dan via Q5.0->Q5.7, Q6.0-Q6.7 enQ7.0 door te lopen en te eindigen bij Q7.7.
Toewijzing van de adressen in de hardware configuratie van een S7-300
11 Programmeertalen De PLC wordt geprogrammeerd via de PLC of zoals Siemens het noemt een PG (programmiergerät). Het programma wordt dan via een aangepaste kabel overgedragen van het PG naar de PLC. Hierna kan de PLC zelfstandig werken (niet bij een soft PLC) Er bestaan verschillende manieren (talen) om een programma te schrijven. De meest gebruikte zijn:
LAD (ladder) FBD function block diagram STL statement list. Graph af graphcet Hogere programmeertalen zoals C /C++
We leggen het verschil uit tussen de drie talen bij het volgende punt, basis digitale functies en via de voorbeelden. De laatste twee programmeertalen vallen buiten het bestek van deze cursus.
Inleiding PLC
41 / 120
LM
12 Basis digitale functies Om te begrijpen hoe PLC programma’s werken en om ze te kunnen schrijven bekijken we eerste enkele geïsoleerde basisfuncties. Ze worden telkens beschreven in de 3 basistalen. Grotere programma’s zijn uiteraard een combinatie van meerdere basisnetwerken. We gaan uit van een Siemens S7-300.
12.1 Afvragen op 1 of recht inlezen We wensen een uitgang hoog te maken als de ingang hoog is. Het niveau op een digitale ingangsklem kan hoog (1) of laag (0)zijn. Het niveau hangt af van de soort van ingang en de manier waarop de ingang geschakeld is.
Bekijken we enkele voorbeelden van verbinden:
+24V S2
S1 +24V I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 0V
0 aansturen van ingangen met NO en NC drukknop
De drukknop S1 is een NO contact en de drukknop S2 is een NC contact. In rust (drukknop) niet bediend staat op aansluitklem I0.0 0V en aansluitklem I0.1 24V. Worden de drukknoppen bediend dan wordt I0.0 0V en I0.1 24V.
Inleiding PLC
42 / 120
LM
Bekijken we nu het voorbeeld van een sensor met NPN uitgangstrap.
+24V
R1
+24V I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 0V
0 Aansturen van een PLC ingang met een sensor NPN open collector output We gaan ervan uit dat de transistor gestuurd wordt als een voorwerp in de buurt van de sensor komt. De transistor wordt dan aangestuurd en zal beginnen geleiden. De Klem I0.0 wordt via de geleidende transistor (te vergelijken met een gesloten contact tussen collector en emitter) aan massa gelegd. I0.2 wordt 0V. Is er geen voorwerp in de buurt dan is de transistor gesperd (te vergelijken met een open contact tussen C en E). De spanning op I0.2 wordt via de weerstand R1 opgetrokken naar de +24V. Zonder R1 zou de ingang in beide gevallen op 0V blijven. Berekenen waarde voor R1 Nota: we dienen erop te letten dat de waarde van R1 zo gekozen is dat de spanningsval over R1 beperkt blijft. De spanning op de klem I0 moet groot genoeg zijn om aanzien te worden als een hoog niveau, we noemen deze spanning UIh (minimum ingangsspanning voor hoog niveau) . De spanning op de ingangsklem is te schrijven als: 24V – UR1 en UR1 =IR1.R1 IR1 is de ingangsstroom van de module Bekijken we de modulespecificaties van een S7 ingangsmodule dan zien we dat Iih (ingangsstroom bij hoog niveau) = 7mA en Uih (minimum spanning voor een hoog niveau) =13V. De max waarde voor R1 is bijgevolg: Inleiding PLC
43 / 120
LM
(24V-13V)/7mA=1,57KΏ Let op! Nemen we R1 te klein dan is er risico dat de transistor, als deze begint te geleiden, te veel stroom trekt. Je kan de maximum schakelstroom van de sensor nagaan door de specificaties van de sensor te raadplegen.
Bekijken we het voorbeeld van een sensor met PNP open collector uitgang:
+24V
R1
+24V I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 0V
0
Aansturen van een PLC ingang met een sensor PNP open collector output We gaan er terug van uit dat de transistor begint te geleiden als van een voorwerp gedetecteerd wordt. De klem I0.3 wordt dan hoog bij signaaldetectie. Let erop dat bij de PNP open collector uitgang geen pull-up weerstand nodig is. We moeten ons steeds afvragen welk niveau er op de klem aanwezig is. Bij recht inlezen wordt dit niveau (“1”) of (“0”) overgenomen en doorgegeven aan de rest van de logica. Zie hieronder enkele voorbeelden in de verschillende programmeertalen.
12.1.1
LAD recht inlezen
De programmeervorm LAD (ladder) ligt het dichtst bij de elektricien. Ze lijkt het meest op een Inleiding PLC
44 / 120
LM
klassiek elektrisch schema. We stellen een ingang voor door rechte haakjes met daarbij vermeld het nummer van de ingang: IX.Y
Bij S7-300 is X is het Byte adres, Y het bit adres. We stellen een uitgang voor met ronde haakjes, daarbij vermeld men eveneens het adres van de uitgang: QX.Y
Soms wensen we een resultaat tijdelijk op te slaan zonder hiervoor een uitgang te gebruiken. We kunnen dit doen via een merker. Een merkerbit is de opslagruimte van 1 bit en wordt op dezelfde manier voorgesteld als een uitgang. Voor opslag van gedigitaliseerde analoge waarden wordt, naargelang de breedte van de A/D omzetter, een merker BYTE (8bits) of een merker woord (16 bits gebruikt) Merkers kunnen remanent zijn (behouden hun waarde als de spanning afgezet worden) of niet remanent (verliezen hun waarde). Elke merker krijgt ook een adres. MX.Y
Zowel merkers als uitgangen kunnen ook als ingang gebruikt worden. Ze worden dan getekend als ingang. Enkel via de code zie je of een ingang een merker, ingang of uitgang is. I1.3
M9.2
,
Q4.3
,
Bekijken we het onderstaande programmavoorbeeld in LAD
Inleiding PLC
45 / 120
LM
In netwerk 1 wordt de status van de ingangsklem I0.0 doorgegeven aan uitgang Q4.0 In wat volgt gaan we ervan uit dat de ingangen aangesloten zijn zoals onder punt 10.1. Dit houdt in dat een relais of lamp aangesloten op de uitgang Q4.0 zal oplichten als er gedrukt wordt op de schakelaar S1. Bij het duwen op S1 komt er een hoog niveau om klem I0.0 en dit wordt doorgegeven aan uitgang Q4.0 In netwerk 2 wordt de status van ingangsklem I0.1 overgenomen in M4.0. Dit wil zeggen dat M4.0 in rust hoog is, bij bedienen van S2 zal M4.0 laag worden. In netwerk 3 wordt de status van merker M4.0 doorgeven aan uitgang Q4.1. Q4.1 volgt M4.0. Een relais, aangesloten op Q4.1 zal afvallen bij het bedienen van S2 omdat dan de spanning op I0.1 laag wordt en bijgevolg de merker M4.0 en de uitgang Q4.1 beide laag worden. Opdracht: Ga, uitgaande van de ingangen geschakeld als onder 12.1 in het programma hieronder na wanneer Q4.2 en Q4.3 hoog worden.
Inleiding PLC
46 / 120
LM
12.1.2 FBD recht inlezen De programmeervorm FBD( Function Block Diagram) ligt wellicht het dichtst bij de elektronicus omdat deze het meest lijkt op elektronische schema’s. Zetten we laddervoorbeelden van 10.1.1 om in FBD dan ziet dit er als onderstaand uit. In- uitgangen en functies worden in FBD voorgesteld als blokken.
Inleiding PLC
47 / 120
LM
12.1.3
STL recht inlezen
De programmeervorm STL (STructured Language) lijkt op een hogere programmeertaal en zal wellicht de voorkeur krijgen van de informaticus.
De ingangen worden vooraf gegaan door de A van AND (zie verder). Aangezien er hier maar één ingang is zou dit in dit voorbeeld evengoed de O van OR kunnen zijn. De toewijzing aan de uitgang wordt aangegeven door het “=” symbool.
12.2 Afvragen op 0 of invers inlezen Bij het afvragen op 0 onderzoeken we of een ingang 0 is. Als de ingang laag is wordt een hoog of “1” doorgegeven, is de ingang hoog of “1”, dan wordt een “0” doorgegeven. De status van de ingang wordt dus geïnverteerd. We spreken van invers inlezen of afvragen op 0 Het symbool voor het afvragen op 0 in LAD is: IX.Y
Men kan zowel ingangen, merkers als uitgangen bevragen op 0
Inleiding PLC
48 / 120
LM
12.2.1
LAD invers inlezen
Als de spanning op I0.0 laag is wordt dit door het invers inlezen omgezet in een hoog niveau en wordt Q4.0 hoog. Q4.2 zal aan zijn (“1”) zijn als I0.1 “0” is. Immers, als I0.1 laag is wordt dit invers ingelezen, M10.0 wordt hoog. Int netwerk 3 wordt de hoog status van M10.0 doorgegeven aan uitgang Q4.2
12.2.2
FBD invers inlezen
Hetzelfde voorbeeld van 10.2.1 in FBD. Het invers inlezen van de ingang wordt gesymboliseerd door de kleine cirkel aan de ingang .
Inleiding PLC
49 / 120
LM
12.2.3
STL invers inlezen
Hetzelfde voorbeeld van 10.2.1 in STL. Het invers inlezen wordt hier aangeven door de AND operator te laten volgen door de “N” van “NOT”
12.3 AND functie De “AND” of “EN” functie zal een waar (hoog) opleveren als alle ingangen waar zijn. In een waarheidstabel ziet de AND functie met drie ingangen er als volgt uit. C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
X 0 0 0 0 0 0 0 1
De Booleaanse vergelijking is:
X=A.B.C
Als je dit omzet in een elektrisch schakelschema krijg je:
Inleiding PLC
50 / 120
LM
A
B
C
X
De lamp X zal oplichten als A en B en C bediend (gelijktijdig) worden.
12.3.1
AND in LAD
12.3.2
AND in FBD
12.3.3
AND in STL
Opdracht: Ga, uitgaande van bovenstaand voorbeeld, met de ingangen geschakeld als in 12.1 na wanneer Q4.0 hoog is.
Inleiding PLC
51 / 120
LM
En hoe is dit bij onderstaand voorbeeld? Welke drukknoppen moeten bediend zijn, welke niet? De sensoren moeten wel/niet een blokje detecteren opdat Q4.0 hoog wordt.
12.4 OR De “OR” of “OF” functie zal een waar (hoog) opleveren van zodra één van de ingangen hoog is. De waarheidstabel met drie ingangen ziet er als volgt uit.
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
X 0 1 1 1 1 1 1 1
De Booleaanse vergelijking is:
X=A+B+C
Als je dit omzet in een elektrisch schakelschema krijg je:
A X
B C
Inleiding PLC
52 / 120
LM
12.4.1
OR in LAD
12.4.2
OR in FBD
12.4.3
OR in STL
Inleiding PLC
53 / 120
LM
12.5 NOT De “NOT” of “NIET” functie heeft één ingang en één uitgang. De uitgang is het inverse (omgekeerde van de uitgang). De waarheidstabel voor de niet functie A 0 1
X 1 0
De booleaanse vergelijking
X A
elektrisch schakelschema
A
Y X
Als de schakelaar gesloten is, dan is y=1 bij open schakelaar (niet bediend) is y=0. Met ander woorden: Y=A De lamp X gaat uit als het relais aan gaat. Dus
YA en X A
12.5.1
Inleiding PLC
NOT in LAD
54 / 120
LM
12.5.2
NOT in FBD
12.5.3
NOT in STL
12.6 Voorrang van bewerkingen Net zoals bij rekenen de vermenigvuldiging voor de optelling gaat zal, bij binaire logica, de AND bewerking voor de OR bewerking gaan. Stel, men wil men het volgend netwerk:
Dan kan men dit in STL niet als volgt schrijven
Inleiding PLC
55 / 120
LM
Want dit zou in LAD resulteren in dit netwerk:
En in FBD:
Doordat de AND functie eerst uitgevoerd wordt, worden eerst de drie ingangen in AND geplaatst, daarna wordt pas de ingang I0.3 in OR geplaatst.
Inleiding PLC
56 / 120
LM
De juiste oplossing in STL is:
Let op de haakjes die zorgen dat I0.2 en I0.3 eerst in OR geplaatst worden voordat ze met de rest in AND geschakeld worden. in FBD ziet dit er zo uit:
12.7 EXOR De “EXOR” of “EXOF” functie zal een hoog aan de uitgang hebben bij ongelijkheid. Dus enkel als één ingang hoog is en de andere laag.
Inleiding PLC
B
A
X
0 0
0 1
0 1
1 1
0 1
1 0
57 / 120
A.B A.B
LM
Via de SOP (som of products) verkrijgen we de booleaanse vergelijking van de EXOR
X A.B A.B Maken we gebruik van het EXOF symbool dan is de vergelijking
X A B.
12.7.1
EXOR in LAD
12.7.2
EXOR in FBD
EXOR uitgevoerd met basisblokken in FBD
Inleiding PLC
58 / 120
LM
EXOR uitgevoerd met het EXOR blok in FBD
12.7.3
EXOR in STL
of
Opdracht: Onderzoek hoe de uitgang Q4.0 zal reageren op de drukknoppen geschakeld als in 12.1 op de EXOR schakeling.
Inleiding PLC
59 / 120
LM
12.8 NAND De “NAND” of “NEN” functie (NOT AND of NOT EN) is de AND functie gevolgd door een “NOT” functie. De NAND functie levert in de waarheidstabel dus dezelfde waarden, als de AND maar dan omgekeerd. C B A X 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0
Booleaans:
X A.B.C De streep boven A.B wil zeggen dat het resultaat moet geïnverteerd worden. Let op:
X A.B A.B In het linkse geval reken je eerst A.B uit en inverteer je daarna het resultaat. In het rechtse geval inverteer je eerst A en B en laat je de AND functie los op de geïnverteerde resultaten
Volgens DE MORGAN kan je een NAND functies omzetten naar een OR met geïnverteerde ingangen. Namelijk:
X A.B.C A B C en bijgevolg is X A.B.C A.B.C A B C
12.8.1
Nand in LAD
Er zijn verschillende mogelijkheden:
Inleiding PLC
60 / 120
LM
met gebruikmaking van de NOT functie
Of omgezet naar OR met inverse ingangen via “De Morgan”
*** http://hyperphysics.phy-astr.gsu.edu/hbase/electronic/demorgan.html *** http://nl.wikipedia.org/wiki/Wetten_van_De_Morgan
12.8.2
NAND in FBD
Ook hier zijn er verschillende mogelijkheden:
met de uitgang geïnverteerd (eigenlijk de ingang van de uitgang)
Inleiding PLC
61 / 120
LM
Via de Morgan
12.8.3
NAND in STL
met de uitgang geïnverteerd (eigenlijk de ingang van de uitgang)
of via de Morgan
Inleiding PLC
62 / 120
LM
12.9 NOR De NOR functie is de OR fucntie gevolgd door een inversie. Het levert ons onderstaande waarheidstabel op. C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
X 1 0 0 0 0 0 0 0
En deze Booleaanse vergelijking
X A B C En, via De Morgan kunnen we terug aantonen dat:
X A. B C A.B.C en bijgevo lg is X A B C A B C A.B.C
12.9.1
Inleiding PLC
NOR in LAD
63 / 120
LM
12.9.2
NOR in FBD
12.9.3
NOR in STL
Let op de haakjes, wiskundig genomen zijn deze niet nodig, maar S7 voegt deze toe. Je krijgt als het ware een AND schakeling met één ingang. Opdracht: Zet de NOR functie zelf om naar AND met geïnverteerde ingangen gebruik makend van De Morgan.
Inleiding PLC
64 / 120
LM
12.10
EXNOR
Net zoals NAND en NOR omgekeerde functies zijn van AND en OR is de EXNOR het inverse van de EXOR. De EXOR onderzocht op ongelijkheid, de EXNOR op gelijkheid B 0 0 1 1
A 0 1 0 1
X 1 0 0 1
Via de SOP (som of products) verkrijgen we de booleaanse vergelijking van de EXOR
X A.B A.B
Uiteraard kunnen we de EXNOF ook schrijven als de inverse EXOR functie
X A.B A.B We kunnen bovenstaande vergelijking omwerken tot:
X A.B A.B want:
X A.B A.B A.B. A.B A B . A B A B . A B A.A A.B B. A B.B A.B B. A A.B A.B
=
Eenvoudiger met gebruikmaking van het EXOR symbool:
X A B.
Er zijn dus veel manieren om een exnor uit te werken, we geven telkens één voorbeeld.
Inleiding PLC
65 / 120
LM
12.10.1
EXNOR in LAD
12.10.2
EXNOR in FBD
12.10.3
EXNOR in STL
Inleiding PLC
66 / 120
LM
13 Voorbeeld: start stop met voorrang stop Werken we nu een eenvoudig voorbeeld uit. We programmeren en verbinden een eenvoudige start stop met voorrang stop. Frissen we eerst even het elektrisch schakelschema op:
13.1 Stuurkring
Stellen we de booleaanse vergelijking op met uitzondering van F3 (smeltveiligheden van de stuurkring die niet teruggekoppeld worden naar de PLC) dan krijgen we: F2.S1.S2+(S3+K1)=K1 Hierbij zijn: F2= thermiek S1= noodstop S2=Stop S3= start K1= overnamecontact relais K1 K1 relais
Inleiding PLC
67 / 120
LM
13.2 Vermogenkring
13.3 Toewijzingstabel In de toewijzingstabel maken we de link tussen de benodigde in- en uitgangen, de symbolische namen en de fysische adressen van de in- en uitgangen op de PLC Schema Symb. Fysisch Nr Naam Adres I/O F2 THE I0.0 S1 NSTO I0.1 S2 STO I0.2 S3 STA I0.3 S4 K1 Q4.0 K1 K1 Q4.0 In veel gevallen is het beter zich niet meer te baseren op het relaisschema maar zich te concentreren op de booleaanse voorwaarden. Maar, als eerste oefening, kan het een houvast zijn om te vertrekken van een gekend gegeven.
13.4 Programma in LAD
Inleiding PLC
68 / 120
LM
Let erop dat, alhoewel de stop, noodstop en thermiek, normaal gesloten contacten zijn deze toch recht ingelezen worden. Deze contacten worden verbonden met de +24V (zie punt 12.7). Moesten we deze invers inlezen dan zou, het hoog niveau, dat in rust op de klemmen I0.0 t/m I0.2 aanwezig is, verwerkt worden als een laag niveau. Dit zou de verdere werking van de schakeling verhinderen (Als bij een AND functie één ingang “0” is is de uitgang altijd “0”). Bekijken we hetzelfde programma, ditmaal met gebruikmaking van symbolische namen dan ziet het er als volgt uit:
De tabel met “symbol information” kan naar believen via het menu “view” in de programmeersoftware aan- of afgezet worden.
Inleiding PLC
69 / 120
LM
13.5 Programma in FBD
13.6 Programma in STL
Inleiding PLC
70 / 120
LM
13.7 Verbindingen Bekijken we even de fysische verbindingen op de PLC:
F3 PS 230V/24V 2A
CPU
DI 8x24V
D0 8x24v 0,5A
+24V THE
L1 N
0V
0V
+24V
+24V
I0.0 I0.1 I0.2
Q0.0 Q0.1 Q0.2
I0.3 I0.4 I0.5 I0.6
Q0.3 Q0.4 Q0.5 Q0.6
I0.7
Q0.7
0V
0V
NSTO
STO
STA
K1
0V
14 Voorbeeld: twee motoren, slechts één motor mag draaien. In een kelder staan twee motoren die elk een pomp aandrijven. Het is de bedoeling dat er maximum één motor draait. De tweede motor/pomp is een reserve voor het geval er iets fout loopt met de eerste. Teken het schema met relais, maak de toewijzingslijst, schrijf het programma in de drie talen en teken het aansluitschema voor PLC.
Inleiding PLC
71 / 120
LM
14.1 Relaisschema F3 L1 1
F2 2 1
S1 2 1
S2 2 3
3
1
S3
K1 2
4 1
1
S4 4
K2 2
1
K2 2
K1 2
K1
K2
N
14.2 Toewijzingslijst Aangezien het twee gelijke motoren zijn en deze nooit gelijktijdig draaien beperken we ons tot één thermiek. De noodstop en de stop worden ook enkel uitgevoerd. Voor de start hebben we uiteraard twee drukknoppen nodig (één voor elke motor).
Inleiding PLC
72 / 120
LM
Schema Nr F2 S1 S2 S3 S4 K1 K2
Symb. Naam THE NSTO STO STA1 STA2 K1 K2
Fysisch Adres I/O I0.0 I0.1 I0.2 I0.3 I0.4 Q4.0 Q4.1
14.3 Programma 2 motoren in LAD
Inleiding PLC
73 / 120
LM
14.4 Programma 2 motoren in FBD
Inleiding PLC
74 / 120
LM
14.5 Programma 2 motoren in STL
Inleiding PLC
75 / 120
LM
14.6 Verbindingsschema F3 PS 230V/24V 2A
CPU
DI 8x24V
D0 8x24v 0,5A
+24V THE
L1 N
0V
0V
+24V
+24V
I0.0 I0.1 I0.2
Q0.0 Q0.1 Q0.2
I0.3 I0.4 I0.5 I0.6
Q0.3 Q0.4 Q0.5 Q0.6
I0.7
Q0.7
0V
0V
K2
NSTO
STO
STA1
STA2
K1
K1
K2
0V
Let erop dat in serie met de uitgangen nog een NC contact van de andere relais blijft staan. Dit beschermt de schakelingen tegen het blijven”plakken” van relais. Op deze manier is het onmogelijk dat twee relais gelijktijdig aantrekken. In de software is een vergrendeling ingebouwd door de uitgang K1 in AND te schakelen met K2 en vice-versa. Het is echter niet zeker dat, als K1 laag is K1 eveneens afgevallen is. Beter is, om een NC contact van K1 en K2 terug te verbinden met de ingang van de PLC en dit in te lezen. Op die manier weet de PLC zeker dat het relais afgevallen is. Een dergelijke aanpak helpt niet tegen een eventuele programmeerfout. Daarom is de hardware vergrendeling zoals hierboven toegepast een extra veiligheid.
Opdracht: Herschrijf het programma en herteken het aansluitschema van de PLC zodat er van elk relais een NC contact teruggekoppeld wordt naar de PLC. De hardware vergrendeling op de uitgangskringen van de PLC moet behouden blijven Uitbreiding toewijzingslijst: NC terugkoppelcontact van K1 -> I.5 NC terugkoppelcontact van K2 -> I.6
Inleiding PLC
76 / 120
LM
15 Set Reset functie De Set Reset functie lijkt sterk op de start stop. De Set Reset functie is een functie met twee ingangen en één uitgang. De ingangen zijn:
Set: als deze ingang actief is dan wordt de uitgang hoog en blijft deze hoog tot een reset gegeven wordt. (vergelijk dit met een start bij een start stop) Reset: als deze ingang actief is dan wordt de uitgang laag en blijft deze laag tot er een set gegeven wordt. (vergelijk met de stop bij een start stop uitgang)
Er zijn twee soorten set/reset schakelingen. Het verschil is de reactie van de uitgang bij het gelijktijdig optreden van een set en reset aan de ingang.
15.1 SET /RESET met voorrang RESET Als beide ingangen gelijktijdig actief zijn dan krijgt de reset ingang voorrang. De uitgang wordt hoog. In het symbool heeft de onderste ingang van het de SR voorrang, dus in onderstaand voorbeeld de set .
Opmerking: de onderste ingang heeft voorrang. Dit is de laatste regel in STL
Inleiding PLC
77 / 120
LM
15.2 SET /RESET met voorrang SET Als beide ingangen gelijktijdig actief zijn dan krijgt de set ingang (onderste ingang in het SR symbool ) voorrang. De uitgang wordt hoog
16Voorbeeld: Alarmbewaking In een vat wordt het proces bewaakt met 3 sensoren
S1 verbonden met I0.1 meet de druk, hoog niveau bij te hoge druk S2 verbonden met I0.2 meet de tempratuur, hoog niveau bij te hoge temperatuur S3 verbonden met I0.3 meet het niveau, laag niveau bij te laag niveau Q1 indicator, druk te hoog Q2 indicator temperatuur te hoog Q3 indicator niveau te laag Q4 er doen zich twee alarmen gelijktijdig voor. Van zodra er geen twee alarmen meer zijn gaat Q4 uit. Bij 3 alarmen is Q4 ook uit.
Q5 Drie alarmen gelijktijdig. Een geluidssignaal wordt gestart. Dit alarm blijft aan, ook nadat de er geen drie sensoren meer alarm geven. Er kan enkel gereset worden met een NO drukknop op I0.4 Inleiding PLC
78 / 120
LM
16.1 Toewijzingslijst
16.2 Programma in Lad
Inleiding PLC
79 / 120
LM
In bovenstaande schakeling is er een probleem. Als we op de reset drukknop duwen en er zijn nog 3 alarmen actief, dan zal het alarm weer starten bij het loslaten van de drukknop. We lossen dit probleem later op met behulp van flankdetectie.
Inleiding PLC
80 / 120
LM
17 Flankdetectie Soms zijn we niet geïnteresseerd in het al dan niet bekrachtigd zijn van een schakelaar of input, maar willen we het moment detecteren dat de input verandert. In het geval van een drukknop is dit dan het indrukken of loslaten van de knop. Op het moment van verandering treedt een transitie of flank op. Naargelang de soort input krijgen we een overgang van laag naar hoog (0->1 transitie of stijgende flank) of een overgang van hoog naar laag (1->0) transitie of dalende flank) In de plc S7-300 is een functie ingebouwd om de zowel een positieve als een negatieve flank te detecteren. In de S5 moest men deze nog zelf schrijven, daar loste men dit op met een klein programma. De uitgang na een flankdetectie is slechts een cyclustijd hoog, dus zeer kort. Dit is echter voldoende om bijvoorbeeld een teller of een counter mee aan te sturen.
17.1 Detectie op de positieve flank Bij detectie op de positieve flank zal de uitgang van de flankdetectie één cyclustijd hoog zijn bij een 0->1 overgang aan zijn ingang (RLO Result of logic operations van de voorgaande functies)
Bij een positieve flank op de ingang I0.0 zal via de flankdetectie M0.0 de merker 0.1 hoog worden gedurende één cyclustijd. Voor de flankdetectie is steeds een merker nodig, in bovenstaand voorbeeld is dat M0.0. Zoals hierboven reeds aangehaald bestaat er hiervoor bij de S5 geen functie en moet men dit zelf schrijven door een kort programma. Men loste dit zo op: E32.0 = ingang M50.1 = de uitgang U E 32.0 U M 50.0 = M 50.1 ***
Inleiding PLC
81 / 120
LM
UN =
E M
32.0 50.0
17.2 Detectie op de negatieve flank Bij detectie op de negatieve flank zal de uitgang van de flankdetectie een cyclustijd hoog zijn bij een 1->0 overgang aan de ingang (RLO Result of logic operations van de voorgaande functies)
Oplossing bij S5: Detectie van de negatieve flank bij S5. UN U = *** U =
E M M
32.0 50.0 50.1
E M
32.0 50.0
Opdracht Gegeven onderstaande schakeling, golfvormen en programma. Vervolledig het verloop van de spanningen
Inleiding PLC
82 / 120
LM
+24V S1
S2
+24V I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 0V
0
S1 bediend t S2 bediend
J t
M4.0 t M4.1 t
M4.2
t M4.3 t
M4.4
t
Inleiding PLC
83 / 120
LM
17.3 Voorbeeld: aanpassing Alarmbewaking met flankdetectie In de oefening van voorbeeld 3 zal het alarm na het loslaten van drukknop “reset alarm” (I0.3) terug actief worden als het probleem nog niet verholpen is. Want, er is dan nog steeds een hoog niveau op de “set ingang” van de flip-flop, deze wordt terug actief. Dit kan vervelend zijn voor de servicetechnicus en de omstaanders. We kunnen natuurlijk een schakelaar gebruiken voor de reset, dan is de kans groot dat deze niet uitgeschakeld wordt waardoor de bewaking inactief blijft. We kunnen dit beter oplossen door de set - reset enkel te setten op een stijgende flank van “druk”, “temp” en “niveau”. Op die manier wordt de flip-flop geset bij een 0-1 transitie van het alarm (begin of optreden van het alarm) en gereset door de drukknop “reset alarm”. Zelfs al is het probleem nog niet verholpen, er is geen stijgende flank op de set ingang, het alarm wordt niet opnieuw opgestart. Hiervoor moet één of meerdere sensoren terug laag worden en daarna alle drie weer hoog, want anders komt er geen stijgende flank op de set ingang. Inleiding PLC
84 / 120
LM
17.4 Voorbeeld: aan uit met één drukknop Willen we iets in- en uitschakelen met één drukknop, dan zal dit niet lukken zonder flankdetectie. Stel, we willen een lamp in en uitschakelen (aangesloten Q4.0) met een drukknop (N.O op I8.0). Stellen we even de waarheidstabel op:
I8.0 0 0 1 1
Inleiding PLC
Q4.0(oud) 0 1 0 1
85 / 120
Q4.0(nieuw) 0 1 1 0
LM
Opdracht: Welke functie staat er in de waarheidstabel? Schrijf het programma in LAD voor deze functie. Wat zal er gebeuren als we de drukknop induwen (zonder flankdetectie) Het doorlopen van het programma duurt minder dan 1ms! Programmeer en test het programma met behulp van flankdetectie. Oplossing:
Opdracht: Verwijder de flankdetectie in bovenstaand voorbeeld, wat stel je vast?
Inleiding PLC
86 / 120
LM
18 Timers Timers zijn de tijdsfuncties binnen een PLC. We gebruiken ze als we een bepaalde functie willen uitstellen, we willen meten of iets plaatsvindt binnen een bepaalde tijd. Als we een timer en een counter combineren kan je bijvoorbeeld een toerenteller, een snelheidsmeter, of km-teller programmeren. Er zijn veel soorten timers, de manier van voorstellen verschilt sterk van fabrikant naar fabrikant, zelfs binnen één fabrikant kan er verschil zijn in de soorten timers. Zo worden de timers bij S7-200, S7-300 en logo anders voorgesteld. De principes blijven echter dezelfde, daarom leggen we deze hier eerst even uit. Met de hulp van het PLC programma is makkelijk te achterhalen welke timer wat doet. Is het met de hulp nog niet duidelijk, maak dan even een testprogramma en onderzoek de werking van de timer. Bepaalde problemen kunnen op verschillende manieren opgelost worden door gebruik te maken van verschillende timers, het is de creativiteit van de programmeur die hier doorslag zal geven bij de oplossingsmethode.
18.1 Triggeren op flank of op niveau Sommige timers reageren op een flank aan de ingang, andere op een niveau. Nemen we bijvoorbeeld een trappenhuisautomaat, dit is een voorbeeld van een flankgevoelige timer. Na een impuls (flank) aan de ingang (drukken van de drukknop) zal deze de uitgang gedurende een bepaalde ingestelde tijd actief maken (lamp gaat aan voor een bepaalde tijd). Het is niet nodig dat de ingang actief blijft opdat de uitgang hoog zou blijven (de drukknop moet niet bekrachtigd blijven). De timer bij een puntlasmachine zal best een niveaugevoelige zijn. Deze zal een tijd starten bij een actief niveau aan de ingang (drukken van het pedaal ) en zal dan zijn uitgang gedurende de ingestelde tijd hoog houden. Wordt de ingang echter voor deze tijd terug laag (vroegtijdig lossen van het pedaal) , dan wordt de uitgang ook vroegtijdig laag.
Inleiding PLC
87 / 120
LM
U trigger
t 1
2 t1 tv
3
4
5
6
7
U Uit
t 1
t1
2
3
4
tv
5
6
7
Triggeren op flank: de ingangsimpuls kan korter zijn dan de ingestelde tijd zonder dat deze verandert
U trigger
t 1
2 t1 tv
3
4
5 6 t2 tv
7
U Uit
t 1
tv 2
3
4
5
tv t2
6
7
Triggeren op niveau: de uitgangsimpuls wordt korter als het de trigger vroegtijdig wegvalt
Inleiding PLC
88 / 120
LM
18.2 Hertriggerbaar en niet hertriggerbaar Wat zal er gebeuren als bij een flankgevoelige timer de ingang een tweede impuls krijgt terwijl de uitgang nog hoog is? Er zijn twee mogelijkheden. De uitgang negeert de tweede impuls de ingestelde tijd wordt niet verlengd, dit is een “niet hertriggerbare timer”. De tweede mogelijkheid is dat de reeds verlopen tijd aangevuld wordt met de vast ingestelde tijd. De uitgang van de timer blijft dus langer hoog. U trigger
t 1
2 t1 tv
3
4
5
6
7
3
4
5
6
7
U Uit
t 1
2
tv
Niet hertriggerbare timer, de tweede impuls wordt genegeerd
U trigger
t 1
2 t1 tv
3
4
3
4
5
6
7
U Uit
t 1
t1
2
tv
5
6
7
t1 t v Hertriggerbare timer, de uitgangimpuls wordt verlengd Opdracht: Welk type is een trappenhuisautomaat? Opdracht: Ik wil detecteren of een wiel minder dan 100 tr/min draait. Er zit een sensor op het wiel die een puls per omwenteling levert. Welke timer gebruik ik? Op welke tijd stel ik de in?
Inleiding PLC
89 / 120
LM
18.3 Inschakelvertraging of uitschakelvertraging Als na het optreden van een trigger aan de ingang de timer direct hoog wordt en deze een tijd lager terug laag wordt dan spreekt men van uitschakelvertraging, als er eerst een tijd verloopt vooraleer de uitgang hoog wordt dan is het een timer met inschakelvertraging.
18.4 Soorten timers bij S7-300 Voor het maken van tijdsfuncties zijn er bij de S7-300 5 verschillende types timers beschikbaar:
S_ODT : On Delay Timer, SD S_ODTS : On delay Timer Saved, SS S_OFFDT : S_OFFDT = Off Delay Timer, SF S_PULSE : Pulse SP S_PEXT : Pulse Extended, SE
De tijdwaarden zijn instelbaar tussen 10 ms en 9990s De tijdsduur wordt bepaald uit het product van de tijdsfactor en de tijdbasis. Tijdsbasis en tijdsfactor vormen samen 1 woord of 16 bits.
tijdbasis 0 0
1
Tijdbasis b15 0 0 0 0
b14 0 0 0 0
Tijdsfactor in BCD 1 0 0 1 102
1
b13 0 0 1 1
b12 0 1 0 1
0 1 101
0
0
0 1 100
0
1
X factor 0,01s 0,1s 1s 10s
De twee meest beduidende bits worden dus niet gebruikt in de tijdsbasis. In het voorbeeld hierboven in de tijdbasis dus ingesteld op 10s. De tijsfactor is 945. De ingestelde tijd is dus 945 x 10s =9450s Opdracht Vul de tijdbasis en tijdsfactor in zodat een tijd van 123s ingesteld is.
Inleiding PLC
90 / 120
LM
Behalve het hierboven beschreven formaat kan de tijd ook ingegeven worden in het onderstaande formaat: S5T#wh xm ys zms Hierin is: w X Y z
het aantal uren het aantal minuten het aantal seconden het aantal milliseconden
Niet alle waarden moeten ingevuld worden. Volgende voorbeelden zijn geldige formaten voor de tijd: S5T#30s stelt de timer in op 30s S5T#1m40s stelt de timer in op 1minuut 40s Elke timer heeft een aantal parameters. Parameter T nr S TV R BI BCD Q
18.4.1
Inleiding PLC
Datatype Bit S5time Bit Woord Woord bit
Beschrijving Nummer van de timer Start ingang Presetwaarde (tijdswaarde) Reset ingang Actuele tijd in integer formaat Actuele tijd in BCD formaat Status van de uitgang
S_ODT (inschakelvertraging met niveaugevoelige ingang)
91 / 120
LM
De “Set “ start het aflopen van de timer. Als S laag wordt stopt de tijdstelling. De reset stopt eveneens de tijdstelling. Q wordt hoog als de ingestelde tijd is afgelopen en wordt laag als de S ingang laag wordt of als de reset ingang hoog wordt.
Hieronder, de S_ODT timer in zijn drie mogelijke programmeervormen.
Opdrachten: a) ga in de simulator de werking na b) Wat gebeurt er als de ingang vroegtijdig laag wordt terwijl de tijd nog loopt? c) Wat doet de reset? Heeft deze voorrang op de S? d) Als je de “S” laag maakt vooraleer de timer beëindigd is en je maakt deze terug hoog, wordt dan de vorige tijd dan onthouden of niet? e) Bestudeer het verschil tussen MW100 en MW102 (stop hiervoor de tijdstelling)
Inleiding PLC
92 / 120
LM
18.4.2
S_ODTS inschakelvertraging met flankgevoelige ingang
Een stijgende flank op S start het aflopen van de timer bij. Als S laag wordt stopt de tijdstelling niet. Dit kan enkel door de R ingang te hoog te maken. Bij een nieuwe stijgende flank op S vóór het aflopen van de timer, start de tijdstelling opnieuw. De output”Q” wordt hoog als de ingestelde tijd is afgelopen en wordt enkel laag als de “R” ingang hoog wordt. Hieronder de S_ODTS timer in zijn drie vormen.
Inleiding PLC
93 / 120
LM
Opdrachten: a) ga in de simulator de werking na b) Wat gebeurt er als de ingang vroegtijdig laag wordt terwijl de tijd nog loopt? c) Als je de “S” laag maakt vooraleer de timer beëindigd is en je maakt deze direct terug hoog, wat gebeurt er dan?
.
18.4.3
Inleiding PLC
S_PULSE
94 / 120
LM
De set start het aflopen van de timer na een 0-1 overgang. Als S laag wordt stopt de tijdstelling. De “Q” wordt hoog na een 0- >1 overgang op de set ingang en wordt terug laag als de tijd is afgelopen, of als de S ingang laag wordt of als de R ingang hoog wordt. Hieronder, een voorbeeld van gebruik van S_Pulse in de drie talen.
Inleiding PLC
95 / 120
LM
Opdrachten: a) ga de werking na b) Wat gebeurt er als de ingang vroegtijdig laag wordt terwijl de tijd nog loopt? c) Is dit bruikbaar voor een trappenhuisautomaat? d) Is dit bruikbaar voor een timer van een puntlasmachine? e) Is deze timer hertriggerbaar? Motiveer uw antwoorden
18.4.4
S_PEXT
Een stijgende flank op de “Set” start het aflopen van de Timer. Als S laag wordt stopt de tijdstelling niet. Dit kan enkel door de R ingang te hoog te maken. Bij een nieuwe stijgende flank op S vóór het aflopen van de timer, start de tijdstelling opnieuw. (dus, flankgevoelig, hertriggerbaar)
Inleiding PLC
96 / 120
LM
Hieronder, een voorbeeld van gebruik van S_PEXT in de drie talen
Opdrachten: a) Is dit bruikbaar voor een trappenhuisautomaat? b) Is dit bruikbaar voor een timer van een puntlasmachine? c) Is deze timer hertriggerbaar? Is dit gewenst bij een trappenhuisautomaat? Motiveer uw antwoorden
Inleiding PLC
97 / 120
LM
18.4.5
S_OFFDT (uitschakelvertaring)
De timer start het aflopen bij een dalende flank op S. Als S hoog wordt stopt de tijdstelling. Als S hoog wordt vóór de tijd is verstreken blijft Q hoog en start de tijd opnieuw bij een dalende flank. De output: wordt hoog als de S ingang hoog wordt en wordt laag als de ingestelde tijd is afgelopen. Q wordt ook laag bij het hoog maken van de R ingang. Hieronder, een voorbeeld van gebruik van S_OFFDT in de drie talen
Inleiding PLC
98 / 120
LM
Opdrachten: a) Ga de werking na. b) Is deze bruikbaar als uitschakelvertraging, bijvoorbeeld lampje in de auto? Motiveer uw antwoord. c) Is deze timer bruikbaar om het sterrelais vertraagd te laten afvallen?
Inleiding PLC
99 / 120
LM
18.5 Samenvatting timers Er zijn dus nogal wat timers, zoals eerder reeds aangehaald kan in veel gevallen een bepaald probleem met verschillende timers opgelost worden. Het zal de programmeur zijn die kiest voor een bepaalde oplossingsmethode. Hieronder nog een overzicht van de verschillende soorten timers bij de S7-300
Inleiding PLC
100 / 120
LM
18.6 Voorbeeld: trappenhuis verlichting Ontwerp een programma voor sturing van een relais in een trappen huis van een appartement. De gebruikte timer moet hertriggerbaar zijn. Er zijn 8 drukknoppen (S1 t/m S8) bij elke appartement één) Er is één relais (K1) die de lampen stuurt. Er is een schakelaar (S9) die toelaat om de lampen permanent te laten branden. Teken het verbindingsschema en schrijf het programma. Test het programma in de simulator. Controleer of de tijd kan verlengd worden en of de lamp continu kan blijven branden Schema Nr S1 t/m S8
Symb. Naam drknppn
Fysisch Adres I/O I0.0
S9
Continu
I0.1
K1
lmpn
Q4.0
Omschrijving We plaatsen de drukknoppen in parallel om ingangen te sparen. Lamp continu laten branden als deze schakelaar aan staat Relais die de lampen schakelt
Opdracht: Vaak wordt vergeten de schakelaar continu af te zetten. Pas het bovenstaand programma aan zodat de continu schakelaar ervoor zorgt dat de lamp max 1h30 continu brandt. Om de continu mode terug te activeren moet de schakelaar even uit en weer aangezet worden. Er moet bovendien een ledje zijn (Q4.1) dat aangeeft of de timer in de continu mode staat. Bereken de voorschakelweerstand voor de led (UF=2,1V, IF=20mA)
Inleiding PLC
101 / 120
LM
18.7 Voorbeeld: automatische ster driehoek met PLC Als voorbeeld nemen we een automatische ster-driehoek. Bekijken we als herhaling eerst het klassieke schema, de hoofd en stuurkring.
18.7.1
Hoofd- en stuurkring
K2 Ster
18.7.2
Toewijzingslijst Schema Nr F2 K1 K2 K3 S1 S2 K3_29 K2_17
Inleiding PLC
Symb. Naam THE LIJN STER DRIE STO STA VG_DRI VG_STE
Fysisch Adres I/O I0.0 Q4.0 Q4.1 Q4.2 I0.1 I0.2 I0.3 I0.4
Omschrijving Thermische beveil. Lijn relais Ster Relais Driehoek Relais Drukknop stop (NC) Drukknop start (NO) Terugkoppelcontact driehoek Terugkoppelcontact ster
102 / 120
LM
18.7.3
Programma
We hebben het programma modulair geschreven. De ster driehoek is ondergebracht in een subroutine (FC1). Deze wordt aangeroepen van uit het hoofdprogramma OB1.
Inleiding PLC
103 / 120
LM
18.7.4
Aansluitingen
Opdracht: Wat gebeurt er als het ster-relais niet kan aantrekken? Welke gevolgen kan dit hebben voor de stroomvoorziening? Pas het programma aan zodat dit niet kan gebeuren, voorzie een alarm van 3 seconden op Q3 en een knipperende lamp (1HZ) op Q4.4 als het sterrelais niet aantrekt. De lamp blijft knipperen tot er een reset is I0.5. Hoe zorg ik ervoor dat het alarm ook onthouden blijft na een stroomuitval?
Inleiding PLC
104 / 120
LM
18.8 Voorbeeld: knipperlicht Schrijf een programma die een lamp laat knipperen met het volgende ritme 2” aan, 1” uit. Het knipperen van de lamp kan in- en uitgeschakeld worden met de schakelaar S1. Het knipperen stopt onmiddellijk als S1 een laag niveau levert.
18.8.1
Toewijzingslijst Schema Nr S1 S2 K1
18.8.2
Inleiding PLC
Symb. Naam Aan/uit Continu Lamp
Fysisch Adres I/O I0.0 I0.1 Q4.0
Omschrijving Thermische beveil. Lamp continu branden Lamp
Programma
105 / 120
LM
Opdracht: In de toewijzingslijst is reeds een schakelaar S2 opgenomen. In het voorbeeld is dit nog niet uitgewerkt. Als de schakelaar S2 bediend wordt, dan moet de lamp continu oplichten (enkel als S1 aan staat) Voor de uitgangsmodule kiezen we voor deze opdracht best een halfgeleider uitgang of relais uitgang? Motiveer.
18.9 Voorbeeld: looplicht Schrijf een programma dat 5 lampen achtereenvolgens laat oplichten. Elke lamp is 1” aan. Het patroon is dus: 1 0 0 0 -> 0 1 0 0 -> 0 0 1 0 , enzv. Het systeem wordt in- en uitgeschakeld met S1 (actief als S1 een hoog niveau levert)
Schema Nr S1 S2 L1 L2 L3 L4
Symb. Naam Aan/uit Continu Lmp1 Lmp1 Lmp1 Lmp1
Fysisch Adres I/O I0.0 I0.1 Q4.0 Q4.0 Q4.0 Q4.0
Omschrijving .aan/uit Knipperen/looplicht Lamp 1 Lamp 2 Lamp 3 Lamp 4
Opdracht: Pas het onderstaand voorbeeld aan dat, als S1 en S2 gelijktijdig aan alle lampen knipperen met een ritme van 0,5” aan, 0,5” uit (periode van 1Hz). Welke uitgangsmodule neem je als je spots gebruikt van 24V? 1A Welke module neem je als je spots gebruikt van 230V? Zoek het typenummer op van de modules (s7300) en teken het bedradingschema.
Inleiding PLC
106 / 120
LM
18.10
Opgave: verkeerslicht
Opdracht: Programmeer een verkeerslicht voor een normaal kruispunt zonder voetgangerslichten. Dit zijn de tijden en de fases: Groen richting 1: 50” Oranje richting 1: 5” Dubbel rood 1->2: 3” Groen richting 2: 40” Oranje richting 2: 4” Dubbel rood:2->1” 2” Stel de toewijzingslijst op. Voorzie een schakelaar voor normale werking of knipperen van de oranje lichten. Voorzie de nodige softwarematige vergrendelingen. In de praktijk zal softwarematige beveiliging niet voldoende zijn en zullen extra veiligheden nodig zijn
Inleiding PLC
107 / 120
LM
19 Tellers Met de teller bouwsteen kunnen impulsen geteld worden. Deze kunnen bijvoorbeeld afkomstig zijn van een sensor om bijvoorbeeld het aantal producten op een band te tellen. Bij de S7-300 worden er 3 soorten tellers gebruikt: up counters down counters up-down counter
19.1 Up counter
Aan de linkerkant vinden we de ingangen, aan de rechterkant de uitgangen. CU, of count up ingang. Bij een pos. Flank aan de ingang wordt de inhoud van de teller met één verhoogd. De max telwaarde is 999(10) S of set ingang. Bij het hoog maken van de set (stijgende flank)wordt de teller geladen met de waarde die eventueel aangeboden wordt aan de PV ingang. PV Preset value: Aan deze ingang kan een constante aangeboden worden onder het formaat C#XX. XX is in deze notatie het getal waarmee we de teller willen laden. Willen we bijvoorbeeld de teller laden met het getal 124 dan noteren we dit onder het formaat volgend formaat: C#124 De preset value kan ook afkomstig zijn van een input-woord, output-woord of merker-woord. R reset: een flank op deze ingang zet de counter op “0”
CV counted value in integer format. Op deze uitgang ( type word of woord) wordt de inhoud van de teller in integer formaat aangebracht. Is de inhoud van de teller 129(10) Dan staat op deze uitgang 0000 000 1000 0001. Wordt deze uitgang verbonden met een merker woord bijvoorbeeld 100 dan zal de inhoud van merkerwoord 100 het volgende zijn:
Inleiding PLC
108 / 120
LM
0
0
0
0 100.0
0
100.1
0
100.2
0
100.3
0
100.4
101.4
1
100.5
101.5
0
100.6
101.6
0
100.7
101.7
0
101.0
0
101.1
0
101.2
0
101.3
1
Let op: het laatste deel wordt in het hoogste adres geschreven bij S7! CV_BCD counted value in BCD. Deze uitgang is eveneens van het type word. Het gehanteerde formaat is hier echter BCD. Onderstellen we terug dat de counter tot 129 geteld heeft en dat we CV_BCD verbonden hebben met MW102 zou de inhoud van de merker 102.0 t/m 103.7 er als volgt uitzien.
0
0
1
102.2
102.1
102.0
102.5
0
102.3
0
1 0
102.4
0 102.6
1
0 0 102.7
103.5
0
103.0
103.6
0
103.1
103.7
0
103.2
1
103.3
0
9 1
103.4
2 0
Let op! Ook hier wordt het laagste deel in het hoogste adres geschreven (Big Endian) Q status uitgang van de couter: deze uitgang wordt 1 als de counter op 0 komt.
19.2 Down counter De down-counter werkt indentiek als de up-counter, maar bij elke impuls aan de CD ingang wordt de inhoud van de teller met één vermindert.
Inleiding PLC
109 / 120
LM
19.3 Up/down counter De up/down-counter is een combinatie van beide voorgaande, we vinden dan ook twee ingangen terug.
19.4 Voorbeeld: parkeergarage Een garage heeft een ingang met sensor S1 (I0.0) en een uitgang met sensor S2 (I0.1) Aan de ingang is een verkeerslicht met groene lamp GR1 (Q4.0) en rode lamp Ro1 (Q4.1). Het maximum wagens in de parkeergarage is 99. Schijf een PLC programma zodat de rode lamp brandt als het maximum aantal wagens bereikt is. Voorzie eveneens een reset toets “res” (I0.3) zodat de teller op 0 kan gezet worden en een set toets (I0.2) waarbij de teller geladen wordt met een vaste waarde (99)
19.4.1
Toewijzingslijst Schema Nr S1 S2 S3 S4 K1
Inleiding PLC
Symb. Naam Uit In Set Reset Vol
Fysisch Adres I/O I0.0 I0.1 I0.2 I0.3 Q4.0
Omschrijving Sensor binnenrijden Sensor buitenrijden Teller laden met preset value Teller resetten Relais lamp “vol”
110 / 120
LM
19.4.2
Inleiding PLC
Programma
111 / 120
LM
Opdracht: Pas het bovenstaand programma aan zodat de teller kan geladen worden met de inhoud van 2 BCD duimwielschakelaars (I1.0) t/m I1.7). Bovendien willen we een 2 7-segment displays aansturen op de uitgangen Q5.0 t/m Q5.7. De 7 segmentsdisplay worden aangestuurd in BCD via een BCD->7 segmentdecoder.
BCD schakelaars
7-segment display
19.5 Opdracht frequentieteller Schrijf een programma om het aantal impulsen/sec te tellen van een ingang I0.0. De meet tijd is een 1”. Het aantal getelde pulsen moet in BCD formaat in MW 100 staan.
20 Vergelijkers Een vergelijker of comparator kan twee waarden van hetzelfde type met elkaar vergelijken. Er zijn verschillende soorten comparatroren.
EQ gelijk aan NE verschillend GT groter dan LT kleiner dan GE groter of gelijk aan LE kleiner of gelijk aan
Bovendien zijn deze nog eens onderveeld per datatype. De datatypes die kunnen vergeleken worden zijn: Geheel getal 10 Geheel getal DWORD L#10 R Real Komma getal DWORD 10.0
Type I Integer D Dubbel integer R Real
Inleiding PLC
Verklaring Geheel getal Geheel getal Komma getal
Grootte WORD DWORD DWORD
112 / 120
Voorbeeld 10 L#10
10.0
LM
De integer laat ons toe om enkel met gehele getallen te werken. We onderscheiden integer en dubbele integer. Een integer en neemt 2 Bytes in.
S7-300 gebruikt de twee complement notatie voor het voorstellen van negatieve getallen. Een dubbele integer heeft een groter getalbereik dan een integer en neemt 4 bytes in in plaats van 2
Dit leidt tot een indrukwekkende reeks vergelijkers Vraag: Hoe vergelijk je twee bits?
Inleiding PLC
113 / 120
LM
20.1 Voorbeeld, controle massa. In MW 100 staat de gemeten massa (integer ) in binair formaat. De verwachte massa kan variëren tussen 0 en 100 kg. Als de massa tussen 60 en 70 kg is (grenzen inbegrepen dan moet via Q4.1 een lamp “ok” oplichten. Is de massa te laag dan wordt Q4.0 aangestuurd, is de massa te hoog Q4.2. Oplossing. We hebben het vergelijkingsprogramma geschreven in FC2.
Inleiding PLC
114 / 120
LM
Om te kunnen testen met de simulator hebben we een teller gemaakt in FC1. Later wordt dit vervangen met de routine om de massa te meten via de analoge ingang.
Uiteraard moeten beide programma’s aangeroepen worden in OB1
Opmerking. Hierboven hebben we een eenvoudige vorm van modulair programmeren. Het programma wordt opgesplitst in afzonderlijke delen subroutines, in dit geval FC’s. Deze worden één voor één aangeroepen vanuit het hoofdprogramma “OB1”.
Inleiding PLC
115 / 120
LM
21 Rekenkundige functie’s Naast de vergelijkingsinstructies zijn er ook de rekenkundige. Ze zijn in te delen in twee groepen:
Integer Floating point
Het verschil tussen een integer (I)en en dubbele integer werd reeds besproken bij de comparators. Een float kan getallen na de komma weergeven. Deze is omwille van zijn notatievorm minder nauwkeurig dan een int of Double. Hieronder de info uit de “help van S7 over de “float notatie”.
Inleiding PLC
116 / 120
LM
Opdracht: ga via de help en de simulator na wat je kan doen met de verschillende functies
Inleiding PLC
117 / 120
LM
Voorbeeld: Het gewicht van een vrachtwagen wordt in een containerpark gemeten bij het binnenrijden, dit wordt opgeslagen in MW100 als integer. Bij het buitenrijden wordt het gewicht opnieuw gemeten, ditmaal wordt dit opgeslagen in MW102. In MW 104 moet het gewicht van het afval komen.
Oplossing:
M10.0 wordt geset als er een fout bij de aftrekking is. Deze kan bijvoorbeeld gebruikt worden om een foutafhandelingsroutine te starten. .
22Omzettingsfuncties (converters) In veel gevallen moet er geconverteerd worden van de ene notatie naar de andere. De nodige functies hiervoor zijn standaard ingebouwd onder de rubriek converter.
Opdracht: ga via de help en de simulator na wat je kan doen met de verschillende functies.
22.1 Voorbeeld: berekenen diameter Op een analoge ingangsmodule wordt een analoge afstandsmeter aangeslogen. Deze meet de diameter van een rol (in mm). Via een routine wordt deze waarde binair in MW 100 geplaatst. In MD 224 moet de omtrek van de rol komen in mm (BCD formaat). Inleiding PLC
118 / 120
LM
Inleiding PLC
119 / 120
LM
23 Gestructureerd programmeren Voor kleinere (test programma’s kan je alle in één blok schrijven, bijvoorbeeld OB1 of FC1). Groter programma’s spilts je best op in deelprogramma’s die een voor één, al dan niet voorwaardelijk opgeroepen worden. Het best zal dit duidelijk worden aan de hand van de hierna volgende voorbeelden. Later zullen we hieraan nog een apart voorstel wijden. Voorlopig verwijzen we hiervoor naar de cursussen HST6 programmastructuren.pdf van de KHKIM http://193.190.56.244/~rmeerman/login/Login_2BA/cursus%20PLC%202ELOICT/HST6%20programmastructuren.pdf En http://home.scarlet.be/sectieplc.brugge/PLC/Algemeen/Analyse/00_Algemeen.htm van dhr Jean Pierre Vandecandelaere
24 Links, bronnen http://plc.freehosting.net/Plc/Introductie/introductie.htm http://wiki.edulab.nl/(S(ygo0cl55stghmu2cy2erf555))/Default.aspx?Page=PLC&NS=&AspxAutoDetectCookieSupport =1 http://rtcpickandplace.be/download/Cursus_RTC-project_Mechatronica.pdf http://www.bustechnologie.nl/ http://www.plc-automatisatie.be/ Handleidingen Siemens S7-300
Inleiding PLC
120 / 120
LM