De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3...

33
Vervolg

Transcript of De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3...

Page 1: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

Vervolg

Page 2: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3 PLC programmeringOm een PLC te kunnen programmeren is het belangrijk te weten hoe de PLC het programma verwerkt. (Zie 2.4 blz. 35-)

3.1 Programma verwerking samengevat

3.1.1 PLC-cyclus

1. De toestand van de ingangen wordt in het Proces Image Input geheugen geplaatst

2. Het programma wordt instructie per instructie in volgorde verwerkt, te beginnen met het hoofdprogramma.

3. Het Proces Image Output geheugen bepaald de toestand van de uitgangen.

3.1.2 Adressering

De in- en uitgangen krijgen een symbolische naam in de variabelenlijst. We gebruiken de globale variabelen lijst zodat de ingangen en uitgangen gekend zijn over het ganse project.

3.1.3 Programmeertalen

Bij het maken van een programma kiezen we een geschikte programmeertaal:

● LD= LadderDiagram

● FBD= FunctieBlokDiagram

● IL= InstructieLijst

● ST= StructuredTekst

● SFC= SequentieelFunctieDiagram (SequentialFunctionChart)

● CFC= ContinuousFunctionChart (gebruiken wij niet!!)

Toegepaste Informatica 49

VRIJ TECHNISCH INSTITUUT

Page 3: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.1.4 Programma types

Programma (POU):

Oproepen van andere functieblokken en programma’s.

Onthoudt de status van de lokale variabelen tot de volgende PLC-cyclus.

Oproepen van het programma gebeurt door de PLC-taak.

Functieblok:

Oproepen van andere functies en functieblokken.

Onthoudt de status van de lokale variabelen tot de volgende PLC-cyclus.

Gebruikt programmacode voor het oproepen van FB’s.

Function :

Heeft geen intern geheugen.

Heeft exact 1 uitgang.

Niet meer, niet minder.

3.1.5 Programma documenteren.

Om de programma's te verduidelijken heeft men verschillende mogelijkheden:

o Goede symbolische namen van ingangen, uitgangen, merkers en andere variabelen.

o Goede naam voor de programma's zelf.

o Programma commentaar: eventueel bijkomende verduidelijking over de functie van het programma

o Netwerk commentaar: bijkomende verduidelijking over de functie van het netwerk.

o Commentaar per instructielijn: in STL en IL kan men zelfs per instructie lijn commentaar geven.

Deze commentaren die in deze programma’s zitten kosten geen verwerkingstijd. In tegen stelling tot bij ander PLC fabriekanten wordt bij de beckhoff PLC deze commentaren in de PLC zelf opgeslagen. Als men dus een programma uit een PLC haalt heeft men gelijk de commentaar in het programma.

50 Toegepaste Informatica

VRIJ TECHNISCH INSTITUUT

Page 4: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.2 Basis besturingsfuncties

De bedoeling van het volgende deel van de cursus is, de basis instructies te leren en vertrouwd te geraken met de programmeringswijze van de TwinCAT SoftPLC.

Voor de begeleidende oefeningen maken we gebruik van een bestaand TwinCAT project en een bestaand PLC-project.

Het TwinCAT-project noemt 7IO.tsm. Zorg ervoor dat dit project actief is, en dat het

TwinCAT sytem gestart is . Dit wordt ingesteld via de TwinCAT System Manager.

In TwinCAT PLC Control openen we een bestaand PLC-project nl. 7IO.pro.

3.2.1 De JA-functie

Het meest eenvoudige dat men kan programmeren is de JA-functie. Bij de JA-functie volgt de uitgang de ingang. Als de ingang logisch '1' is, is de uitgang logisch '1'. Als de ingang logisch '0' is, is de uitgang logisch '0'.

Het uitgangssignaal neemt dus dezelfde toestand aan als het ingangssignaal.

3.2.1.1 De waarheidstabel

Als er niet te veel ingangsvariabelen zijn, kan een waarheidstabel gebruikt worden om al de mogelijke combinaties van deze ingangsvariabelen weer te geven, en hoe dit resulteert in de uitgangsvariabelen.

Bij de JA-functie hebben we maar één ingangssignaal, deze kan de toestand '0' of '1' aan nemen. Dit wordt in een eerste kolom genoteerd, in de laatste kolom wordt de toestand van het uitgangssignaal weergegeven.

De waarheidstabel van de JA-functie

Waarheidstabel

INGANG_1 UITGANG_1

0 0

1 1

De waarheidstabel kan uitgebreid worden met bijkomende ingangsvariabelen, en/of met bijkomende uitgangsvariabelen.

Omdat de waarheidstabel veel te groot zou worden, kan een volledig PLC-programma van een installatie nooit opgenomen worden in één waarheidstabel. Delen van het programma waar een beperkt aantal ingangsvariabelen gebruikt worden, kan men wel met een waarheidstabel controleren.

Toegepaste Informatica 51

VRIJ TECHNISCH INSTITUUT

Page 5: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.2.1.2 Elektrisch principe schema

Het elektrische schema van de JA-functie is ook heel eenvoudig.

3.2.1.3 Programmering van JA-functie

Programmering van JA-functie in LD

Programmering van JA-functie in IL

IL code .

LD INGANG_1

ST UITGANG_1

LD komt van Load

ST komt van Store

Programmering van JA-functie in FBD

Meestal is voor de JA-functie geen apart symbool voorzien in FBD.

3.2.1.4 TwinCAT 7IO

Start de TwinCAT SoftPLC, en start het eerste project: De JA-functie.

In dit project zie je ook het verband tussen schakelaar en PLC-Ingang en tussen de PLC-ingang en de ingangsvariabele van het programma.

--> Project 1: EN-functie.

52 Toegepaste Informatica

24V 0V

INGANG_1 UITGANG_1

INGANG_1 UITGANG_1

VRIJ TECHNISCH INSTITUUT

Page 6: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.2.2 NIET-functie of inversie

Het omgekeerde van de JA-functie is de NIET-functie. De uitgang neemt de tegenovergestelde waarde aan van de ingang. Als de ingang logisch '1' is, is de uitgang logisch '0'. Als de ingang logisch '0' is, is de uitgang logisch '1'.

Bij de NIET-functie neemt het uitgangsignaal steeds het omgekeerde van het ingangssignaal. Het ingangssignaal wordt geïnverteerd.

3.2.2.1 De waarheidstabel

De waarheidstabel van de NIET-functie

Waarheidstabel

INGANG_1 UITGANG_1

0 1

1 0

3.2.2.2 Elektrisch principe schema

Om elektrisch een niet functie te maken, hebben we een hulprelais nodig. Geen stroom door de ingang moet er voor zorgen dat er wel stroom vloeit door de uitgang. En omgekeerd.

Door de schakelaar te bedienen, er vloeit nu stroom door de schakelaar, trekt het relais aan. Als het relais aangetrokken wordt gaat het normaal gesloten contact open.Geen stroom meer door de Lamp, of de uitgang.

Dit is niet gelijk aan het volgende elektrisch schema.

Als er een stroom vloeit door de schakelaar vloeit er ook een stroom door de lamp.

Vanuit het standpunt van de bediening echter, functioneren bij de schakelingen hetzelfde. In rusttoestand, schakelaar niet bediend, brandt de lamp. Als de schakelaar bediend wordt gaat de lamp uit.

Toegepaste Informatica 53

24V 0V

NIET0V24V

VRIJ TECHNISCH INSTITUUT

Page 7: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.2.2.3 Programmering van de NIET-functie

Programmering van NIET-functie in LD

Programmering van NIET-functie in IL

LDN INGANG_1

ST UITGANG_1

Programmering van NIET-functie in FBD

3.2.2.4 TwinCAT 7IO

Start de TwinCAT SoftPLC. Als je het eerste project succesvol hebt volbracht kan je nu het volgende project 2: De NIET-functie starten.

In dit project zie je ook het verband tussen schakelaar en PLC-Ingang en tussen de PLC-ingang en de ingangsvariabele van het programma.

--> Project 2: De NIET-functie

54 Toegepaste Informatica

INGANG_1 UITGANG_1

INGANG_1 UITGANG_1

VRIJ TECHNISCH INSTITUUT

Page 8: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

INGANG_1UITGANG_1INGANG_2

3.2.3 EN-functie

Het uitgangsignaal wordt ‘1’ als al de ingangssignalen van de functie de toestand ‘1’ bezitten.

3.2.3.1 De waarheidstabel

Waarheidstabel

INGANG_1 INGANG_2 UITGANG_1

0 0 0

0 1 0

1 0 0

1 1 1

3.2.3.2 Programmering van de EN-functie

Programmering van EN-functie in LD

Programmering van EN-functie in IL

LD INGANG_1

AND INGANG_2

ST UITGANG_1

Programmering van EN-functie in FBD

3.2.3.3 TwinCAT 7IO

Start de TwinCAT SoftPLC. Het volgende project is project 3: De EN-functie.

--> Project 3: De AND-functie

Toegepaste Informatica 55

INGANG_1 UITGANG_1INGANG_2

INGANG_1UITGANG_1INGANG_1 AND

VRIJ TECHNISCH INSTITUUT

Page 9: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.2.4 OF-functie

Het uitgangsignaal wordt ‘1’ als één van de ingangssignalen van de functie de toestand ‘1’ bezit.

3.2.4.1 De waarheidstabel

Waarheidstabel

INGANG_1 INGANG_2 UITGANG_1

0 0 0

0 1 1

1 0 1

1 1 1

3.2.4.2 Programmering van OF-functie

Programmering van OF-functie in LD

Programmering van OF-functie in IL.

LD INGANG_1

OR INGANG_2

ST UITGANG_1

Programmering van OF-functie in FBD.

3.2.4.3 TwinCAT 7IO

--> Project 4: De OF-functie

56 Toegepaste Informatica

INGANG_1 UITGANG_1

INGANG_2

INGANG_1UITGANG_1INGANG_1 OR

VRIJ TECHNISCH INSTITUUT

Page 10: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.2.5 Inversie van het resultaat

Bij deze instructie wordt het resultaat geïnverteerd. Niet het ingangssignaal.

Om dit te illustreren een voorbeeld met een EN-functie

3.2.5.1 De waarheidstabel

Waarheidstabel

INGANG_1 INGANG_2INGANG_1

EN INGANG_2

UITGANG_1

0 0 0 1

0 1 0 1

1 0 0 1

1 1 1 0

3.2.5.2 Programmering van INVERSIE van het resultaat

Programmering van de INVERSIE van de EN-functie in LD.

Programmering van INVERSIE in IL.

LD INGANG_1

AND INGANG_2

NOT

ST UITGANG_1

Programmering van een INVERSIE van de EN-functie in FBD.

Toegepaste Informatica 57

INGANG_1

UITGANG_1

INGANG_2

INGANG_1UITGANG_1INGANG_1 AND

VRIJ TECHNISCH INSTITUUT

Page 11: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.2.6 Prioriteitsregels, plaatsing van haakjes.

De ingewikkelde netwerken kunnen gereduceerd worden tot NIET, EN en OF-functies.

In IL is bij sommige PLC’s de rangorde van bewerkingen van toepassing; de NIET heeft voorrang op de EN-functie, de EN-functie heeft voorrang op de OF-functie, enz.

Bij de beckhoff PLC is dit echter niet zo. Bij beckhoff is de volgorde in het programma van belang, daarom is het soms nodig bij IL haakjes om te plaatsen. Bij siemens S7 zijn deze haakjes niet altijd noodzakelijk.

3.2.6.1 Voorbeeld 1 in LD

3.2.6.2 Programmering voorbeeld 1 in IL

Beckhoff IL code.

LD INGANG_1

AND INGANG_2

AND INGANG_3

OR( INGANG_4

AND INGANG_5

)

OR INGANG_6

ST UITGANG_1

programma in STL-code (Siemens S7)

A INGANG_1

A INGANG_2

A INGANG_3

O

A INGANG_4

A INGANG_5

O INGANG_6

= UITGANG_1

58 Toegepaste Informatica

INGANG_4

UITGANG_1INGANG_2 INGANG_3INGANG_1

INGANG_6

INGANG_5

VRIJ TECHNISCH INSTITUUT

Page 12: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.2.6.3 Voorbeeld 2 in LD

3.2.6.4 Programmering voorbeeld 2 in IL

Beckhoff IL code.

LD INGANG_1

OR INGANG_4

OR INGANG_6

AND( INGANG_2

OR INGANG_5

)

AND INGANG_3

ST UITGANG_1

Het programma in STL-code (Siemens S7)

A(

O INGANG_1

O INGANG_4

O INGANG_6

)

A(

0 INGANG_2

0 INGANG_5

)

A INGANG_3

= UITGANG_1

3.2.6.5 TwinCAT 7IO

--> Project 5: De verwarming

Toegepaste Informatica 59

INGANG_4 INGANG_5

INGANG_6

INGANG_3INGANG_2INGANG_1 UITGANG_1

VRIJ TECHNISCH INSTITUUT

Page 13: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.3 Geheugenfuncties

3.3.1 Houdcontacten.

Via houdcontacten van een relais kan men ook een 'geheugen' functie maken. Een goed voorbeeld hiervan is de start/stop schakeling voor een motor.

3.3.1.1 Elektrisch principe schema

Als je S1 drukt trekt het relais K1 aan. Het hulp contact K1 sluit, het relais blijft aangetrokken ook als je schakelaar S1 lost laat. De schakeling 'onthoudt' dat schakelaar S1 is gedrukt.

De schakeling onthoud dat S1 gedrukt is tot dat schakelaar S0 gedrukt wordt. Dan wordt de spanning van het relais K1 weggenomen, het hulp contact opent, als S0 losgelaten wordt blijft het relais K1 spanningsloos.

Als je S1 en S0 gelijktijdig bedient krijgt het relais geen spanning. De schakeling geeft dus een voorrang aan Stop, (S0).

3.3.1.2 Start/stop programmering

Programmeren van start/stop in LD

Als ingang_1 hoog is en ingang_2 is laag dan is uitgang_1 hoog. Als uitgang_1 hoog is en ingang_2 is laag dan blijft uitgang_1 hoog. Enkel als ingang_2 hoog wordt zal uitgang_1 laag worden.

De startdrukknop en de stopdrukknop moeten beide een NormaalOpen-contact hebben. Op die manier wordt ingang_1 hoog als je de startdrukknop drukt en ingang_2 wordt hoog als je op de stopdrukknop drukt.

60 Toegepaste Informatica

0V24V

S1 S0

K1

K1

INGANG_1

UITGANG_1

UITGANG_1INGANG_2

VRIJ TECHNISCH INSTITUUT

Page 14: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

Programmering van start/stop in LD met veilige stop

Het probleem van de vorig start/stop schakeling in LD is dat deze niet meer veilig is. Als er een draadbreuk is in de verbinding van de stopdrukknop naar de PLC, dan kan ingang_2 nooit meer hoog worden en kan de uitgang niet meer laag worden, tenzij men de spanning wegneemt.

Dit kan elektrisch opgelost worden door de stopdrukknop terug uit te rusten met een normaalgesloten contact. In rusttoestand, stopdrukknop niet gedrukt, is ingang_2 hoog.

Als we het LadderDiagram dan aanpassen:

Zal de start/stop schakeling terug functioneren. Maar veilig nu.

Als ingang_1 hoog is en ingang_2 is hoog dan is uitgang_1 hoog. Als uitgang_1 hoog is en ingang_2 is hoog dan blijft uitgang_1 hoog. Enkel als ingang_2 laag wordt zal uitgang_1 laag worden.

De startdrukknop heeft een normaalopen contact en de stopdrukknop een normaalgesloten. Op die manier wordt ingang_1 hoog als je de startdrukknop drukt en ingang_2 wordt laag als je op de stopdrukknop drukt.

3.3.1.3 TwinCAT 7IO

--> Project 6: De start/stop schakeling

Toegepaste Informatica 61

INGANG_1

UITGANG_1

UITGANG_1INGANG_2

VRIJ TECHNISCH INSTITUUT

Page 15: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.3.2 SR-functie en RS-functie

Omdat een startstop functie allerhande toepassingen kent, en dikwijls terug komt, heeft men in de PLC een standaard functie voorzien.

Een SR-functie of RS-functie is een functie waarbij men een uitgang (of merker) met één signaal kan ‘hoog’ maken (of 'Setten') en met een ander, een tweede signaal kan ‘laag’ maken (of 'Resetten').

De functie heeft een SET ingang en een RESET ingang. Een logische ‘1’ aan de SET ingang zorgt ervoor dat de uitgangstoestand van de functie ‘1’ wordt. De uitgangstoestand blijft ‘1’ ook al wordt de SET ingang terug 'laag'. Dit blijft zo tot de toestand aan de RESET ingang in ‘1’ verandert, dan wordt de uitgangstoestand terug ‘laag’.

Bij de SR-functie heeft de SET ingang voorrang, bij de RS-functie heeft de RESET ingang voorrang. Opgelet: dit is volgens de IEC 61131-3 standaard. Bij de Siemens PLC is die omgekeerd.

3.3.2.1 Programmering van de Set/Reset functie

Programmering van SR-functie in LD in één netwerk

Programmering van SR-functie of RS-functie In twee netwerken.

Als je de S of de R in aparte netwerken programmeerd dan bepaald de volgorde van uitvoering de voorrang. Het laatst uitgevoerde net werk heeft voorrang. Om een SR-functie te programmeren, Set heeft voorrang, moet je dit dus als volgt doen.

Netwerk1

Netwerk2

62 Toegepaste Informatica

INGANG_1 UITGANG_1

INGANG_2

SR SET Q1

RESET

NAAM

INGANG_1 UITGANG_1

R

INGANG_2 UITGANG_1

S

VRIJ TECHNISCH INSTITUUT

Page 16: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

Het programma van de SR-functie of RS-functie in IL

Ook hier bepaald de volgorde van verwerking de voor. Het onderstaande voorbeeld is een RS-functie.

LD INGANG_1

S UITGANG_1

LD INGANG_2

R UITGANG_1

3.3.2.2 TwinCAT 7IO

--> Project 7: De geheugenfuncties

3.3.3 Flankdetectie

Naast het detecteren van een statische toestand is het vaak nodig op een signaalverandering te reageren. Hier is het moment van de verandering belangrijk. Zo kan men de “stijgende flank” detecteren als ook de “dalende flank”. De “verandering is dan ook maar één PLC cyclus actief, want de volgende PLC-cyclus is er geen verandering meer…Tot het signaal daadwerkelijk weer veranderd.

Gebruik makende van het feit dat de PLC de instructies lijn per lijn afwerkt kunnen we met de basis besturingsfuncties die we tot nu toe gezien hebben deze functie programmeren.

Toegepaste Informatica 63

Toestand ‘0’

Toestand ‘1’

Stijgende flank dalende flank

VRIJ TECHNISCH INSTITUUT

Page 17: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.3.3.1 Flankdetectie met normale basisfuncties.

Netwerk1

Netwerk2

Werking:

Om de werking beter te verklaren is er een hieronder een tijdsdiagram getekend, elke verticale verdeling stelt één PLC-cyclus voor. We weten ook dat de PLC het programma lijn per lijn verwerkt.

tijdstip t0: eerste cyclus van de PLC, na een PLC-reset.

Netwerk 1: INGANG_1=0, MERKER_2 = 0 dus MERKER_1 = 0Netwerk 2: INGANG_1=0 dus MERKER_2 wordt1

Waar MERKER_2 in Netwerk 1 van het programma nog 0 was is MERKER_2 na het doorlopen van de eerste cyclus 1 geworden.

tijdstip t1:

Netwerk 1: INGANG_1=0, MERKER_2 = 1 dus MERKER_1 = 0Netwerk 2: INGANG_1=0 dus MERKER_2 = 1

MERKER_2 is veranderd in de vorige cyclus maar dit heeft verder geen invloed.

tijdstip t2 - t3:

T.o.v. de vorige cyclus is er niets veranderd dus veranderd er niets aan de merkers.

tijdstip t4: de ingang is t.o.v. de vorige cyclus veranderd = stijgende flank.

Netwerk 1: INGANG_1=1, MERKER_2 = 1 dus MERKER_1 wordt 1Netwerk 2: INGANG_1=1 dus MERKER_2 wordt 0

MERKER_1 wordt 1 in netwerk 1. Daarna wordt in netwerk 2 MERKER_2 0

64 Toegepaste Informatica

INGANG_1 MERKER_1MERKER_2

INGANG_1 MERKER_2

INGANG_1

MERKER_2

MERKER_1=FLANK

24V

0V

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11

VRIJ TECHNISCH INSTITUUT

Page 18: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

tijdstip t5: de ingang is nog steeds 1

Netwerk 1: INGANG_1=1, MERKER_2 = 0 dus MERKER_1 wordt terug 0Netwerk 2: INGANG_1=1 dus MERKER_2 = 0

In netwerk 1 wordt MERKER_1 terug 0 omdat in de vorige cyclus MERKER_2 0 werd

tijdstip t6..t8:

T.o.v. de vorige cyclus is er niets gewijzigd dus wijzigt de toestand van de merkers ook niet.

tijdstip t9:

Netwerk 1: INGANG_1=0, MERKER_2 = 0 dus MERKER_1 = 0Netwerk 2: INGANG_1=0 dus MERKER_2 = 1

In netwerk 1 blijft MERKER_1 = 0 en in Netwerk 2 wordt MERKER_2 = 1

tijdstip t10:

Netwerk 1: INGANG_1=0, MERKER_2 = 1 dus MERKER_1 = 0Netwerk 2: INGANG_1=0 dus MERKER_2 = 1

In netwerk 1 blijft MERKER_1 = 0 ondanks MERKER_2 = 1. In netwerk 2 is er niets veranderd.

tijdstip t11 en volgende.

T.o.v. de vorige cyclus is er niets gewijzigd dus wijzigt de toestand van de merkers ook niet.

Besluit.

Een merker die voor flankdetectie gebruikt wordt, is maar één PLC-cyclus 'hoog'

3.3.3.2 Programmering van een stijgende flank in LD

Positieve flank, (RISING EDGE), detectie van het resultaat van voorgaande instructies, in dit geval INGANG_1

3.3.3.3 Programmering van dalende flank in LD

Negatieve flank, (FALLING EDGE), detectie van het resultaat van voorgaande instructies, in dit geval INGANG_1

3.3.3.4 TwinCAT 7IO

--> Project 8: De flankdetectie

Toegepaste Informatica 65

INGANG_1 MERKER_1R_TRIG

CLK Q1

NAAM

INGANG_1 MERKER_1F_TRIG

CLK Q1

NAAM

VRIJ TECHNISCH INSTITUUT

Page 19: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.4 Tijdsfuncties

In vele productie processen wordt de werking door tijdsfuncties beïnvloed. Die beïnvloeding van het proces kan men meestal in één van volgende groepen onderverdelen:

● Een actie reageert met een bepaalde vertraging op de voorwaarde van de actie.

● Een actie nog een tijd geactiveerd houden terwijl de voorwaarde niet meer voldaan zijn.

● De start voorwaarden voor de actie verlengen.

Voorbeelden van dergelijke tijdsfuncties.

● Trappenhuis, na het drukken van de lichtschakelaar moet het licht na een bepaalde tijd automatisch uitgaan.

● Een automatische ster/driehoek aanloop van een zware elektromotor

Deze “tijdfuncties” worden ook timers genoemd.

3.4.1 De inschakelvertraging of TON (Beckhoff PLC)

3.4.1.1 De inschakelvertraging: symbool

Een positieve flank op IN van de Timer start de timer. Na het verstrijken van de tijd wordt Q geset. Bij een laag signaal op IN valt ook het signaal Q weg.

De ingangsvariabelen van de functieblok T_ON

VAR_INPUT

IN : BOOL; (* start de timer met de stijgende flank, reset de timer met logisch '0' *)

PT : TIME; (* de vertragingstijd, na het verlopen van deze tijd wordt Q geset *)

END_VAR

De uitgangsvariabelen van de functieblok T_ON

VAR_OUTPUT

Q : BOOL; (* is TRUE (logisch ‘1’), PT seconden nadat IN een stijgende flank had *)

ET : TIME; (* de reeds verstreken tijd *)

END_VAR

66 Toegepaste Informatica

T_ON

IN Q

PT ET

NAAM

VRIJ TECHNISCH INSTITUUT

Page 20: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.4.1.2 Tijdsdiagram van de inschakelvertraging

het verloop in het tijdsdiagram

t0 Bij een positieve flank aan ‘IN’ wordt de Timer gestart. ‘ET’ geeft de verstreken tijd.

t0+PT Na de geprogrammeerde tijd (PT) wordt Q logisch ‘1’. ‘ET’ geeft de verstreken tijd.

t1 Een logisch ‘0’ aan ‘IN’ geeft een logisch ‘0’ op ‘Q’. ‘ET’ is 0.

t2 De Timer wordt opnieuw gestart zie punt 1.

t3 De Timer wordt onderbroken door het wegvallen van het ‘IN’ signaal. ‘ET’ wordt 0.

t4 De Timer wordt opnieuw gestart zie punt 1.

t4+PT Na de geprogrammeerde tijd (PT) wordt Q logisch ‘1’. ‘ET’ geeft de verstreken tijd.

t5 Een logisch ‘0’ aan ‘IN’ geeft een logisch ‘0’ op ‘Q’. ‘ET’ is 0.

3.4.1.3 Programmering van de inschakelvertraging

Programmering van de TON-timer in LD

Toegepaste Informatica 67

INGANG_1 UITGANG_1T_ON

IN Q

PT ET

Timer1

T#5S

IN

Q

tijd

ET

tijd

T#5s

T#0s

tijd

t0 t1 t2 t3 t4 t5

t0 t1 t2 t3 t4 t5t0+PT t4+PT

VRIJ TECHNISCH INSTITUUT

Page 21: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

Programmering van de TON-timer in IL

LD TRUEAND INGANG_1ST Timer1.INCAL Timer1(PT := T#5000ms)

LD Timer1.QST UITGANG_1

3.4.2 De uitschakelvertraging of TOF (Beckhoff PLC)

Als het signaal IN logisch ‘1’ is wordt ook Q geset. Een negatieve flank op IN van de Timer start de timer na het verstrijken van de tijd valt ook het signaal Q weg.

3.4.2.1 De uitschakelvertraging: symbool

De ingangsvariabelen van de functieblok.

VAR_INPUT

IN : BOOL; (* start de timer met de dalende flank, reset de timer met de stijgende flank *)

PT : TIME; (* de vertragingstijd, na het verlopen van deze tijd wordt Q gereset *)

END_VAR

De uitgangsvariabelen van de functieblok.

VAR_OUTPUT

Q : BOOL; (* is FALSE (logisch ‘0’), PT seconden nadat IN een dalende flank had *)

ET : TIME; (* de reeds verstreken tijd *)

END_VAR

68 Toegepaste Informatica

De variabele ‘Timer1’, dit is de naam van de timer, wordt gedeclareerd als het type TON.

T_OF

IN Q

PT ET

NAAM

VRIJ TECHNISCH INSTITUUT

Page 22: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.4.2.2 Tijdsdiagram van de uitschakelvertraging

het verloop in het tijdsdiagram

t0 Bij een positieve flank aan ‘IN’ wordt de uitgang van de Timer, Q, geset.

t1 Bij de dalende flank wordt de Timer gestart, Q blijft geset. ‘ET’ geeft de verstreken tijd.

t1+PT Als de tijd verstreken is, wordt Q gereset.

t2 De positieve flank op ‘IN’ zorgt voor een logisch ‘1’ op Q. ‘ET’ wordt op 0 gezet.

t3 De Timer wordt gestart. ‘ET’ geeft de verstreken tijd.

t4 De Timer wordt onderbroken. ‘ET’ wordt gereset.

t5 De Timer wordt t.g.v. de dalende flank opnieuw gestart ‘ET’ geeft de verstreken tijd.

t5+PT Als de tijd verstreken is, wordt Q gereset.

3.4.2.3 Programmering van de uitschakelvertraging

Programmering van de TOF-timer in LD

Toegepaste Informatica 69

IN

Q

tijd

ET

tijd

T#5s

T#0s

tijd

t0 t1 t2 t3 t4 t5

t0 t1 t2 t3 t4 t5t1+PT t5+PT

INGANG_1 UITGANG_1T_OF

IN Q

PT ET

Timer1

T#5S

VRIJ TECHNISCH INSTITUUT

Page 23: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

Programmering van de TOF-timer in IL

LD TRUEAND INGANG_1ST Timer1.INCAL Timer1(PT := T#5000ms)

LD Timer1.QST UITGANG_2

3.4.3 Impuls tijdfunctie of TP (Beckhoff PLC)

Als het signaal IN logisch ‘1’ is wordt ook Q geset, gelijktijdig wordt de timer gestart. Pas na het verstrijken van de tijd valt het signaal op uitgang Q weg.

3.4.3.1 De impulsfunctie: symbool

De ingangsvariabelen van de functieblok.

VAR_INPUT

IN : BOOL; (* start de timer met de stijgende flank, *)

PT : TIME; (* de vertragingstijd, na het verlopen van deze tijd wordt Q gereset *)

END_VAR

De uitgangsvariabelen van de functieblok.

VAR_OUTPUT

Q : BOOL; (* is TRUE bij de stijgende flank van IN en is FALSE (logisch ‘0’), PT seconden nadat IN een stijgende flank had *)

ET : TIME; (* de reeds verstreken tijd *)

END_VAR

70 Toegepaste Informatica

De variabele ‘Timer1’, dit is de naam van de timer, wordt gedeclareerd als het type TOF.

TP

IN Q

PT ET

NAAM

VRIJ TECHNISCH INSTITUUT

Page 24: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.4.3.2 Tijdsdiagram van de impulsfunctie

het verloop in het tijdsdiagram

t0 Bij een positieve flank aan ‘IN’ wordt de uitgang van de Timer Q geset. De Timer wordt gestart. ‘ET’ geeft de verstreken tijd.

t0+PT Als de tijd verstreken is, wordt Q gereset. Ook al is de ingang nog steeds hoog.

t1 Als de tijd verstreken is en de ingang wordt ‘0’ dan wordt ‘ET’ gereset.

t2 Bij een positieve flank aan ‘IN’ wordt de uitgang van de Timer Q geset. De Timer wordt gestart. ‘ET’ geeft de verstreken tijd.

t3 De ingang wordt ‘0’ toch telt de Timer verder.

t2+PT Als de tijd verstreken is, wordt Q gereset. Als de ingang al ‘0’ is, wordt ook ‘ET’ gereset.

t4 Bij een positieve flank aan ‘IN’ wordt de uitgang van de Timer Q geset. De Timer wordt gestart. ‘ET’ geeft de verstreken tijd.

t5 Een volgende puls terwijl de tijd nog niet verstreken is, heeft geen invloed.

t4+PT Als de tijd verstreken is, wordt Q gereset. Als de ingang al ‘0’ is, wordt ook ‘ET’ gereset.

3.4.3.3 Programmering van de impulsfunctie

Programmering van de TP-timer in LD

Toegepaste Informatica 71

IN

Q

tijd

ET

tijd

T#5s

T#0s

tijd

t0 t1 t2 t3 t4 t5

t0 t0+PT t2 t2+PT t4 t4+PT

INGANG_1

UITGANG_1

TP

IN Q

PT ET

Timer1

T#5S

VRIJ TECHNISCH INSTITUUT

Page 25: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

Programmering van de TP-timer in IL

LD TRUEAND INGANG_1ST Timer1.INCAL Timer1(PT := T#5000ms)

LD Timer1.QST UITGANG_1

3.4.3.4 TwinCAT 7IO

--> Project 9: De timerfuncties

72 Toegepaste Informatica

De variabele ‘Timer1’, dit is de naam van de timer, wordt gedeclareerd als het type TP.

VRIJ TECHNISCH INSTITUUT

Page 26: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.5 De telfuncties

Vaak moet er bij processen worden geteld. Het aantal producten dat een bepaald gedeelte van het productie proces verwerkt. (vb.: flessen, zakken, dozen, auto’s, enz.) Het aantal foutmeldingen etc.

Elke PLC beschikt over een aantal telfuncties.

Deze “telfuncties” worden ook counters genoemd.

Men heeft meestal drie verschillende tellers:

Optellers: meestal aangeduid met CTU (Count Up)

Afteller: meestal aangeduid met CTD (Count Down)

En Op/Aftellers: aangeduid met CTUD (Count Up/Down)

3.5.1 De optel-functie

Een positieve flank aan ‘CU’ vermeerdert de teller met 1. CV is de uitlezing van de waarde van de teller. Q is logisch 1 als de actuele teller waarde kleiner is als de opgegeven waarde ‘PV’. Met reset wordt de teller op 0 gezet.

3.5.1.1 De optel-functie: symbool

De ingangsvariabelen van de functieblok.

VAR_INPUT

CU : BOOL; (* bij een stijgende flank vermeerdert de teller met 1, *)

RESET : BOOL; (* een logisch ‘1’ reset de teller, CV=0, *)

PV : WORD; (* presetvalue, wanneer de tellerwaarde CV groter of gelijk aan deze waarde is, is de uitgang ‘Q’ logisch ‘1’ *)

END_VAR

De uitgangsvariabelen van de functieblok.

VAR_OUTPUT

Q : BOOL; (* is TRUE wanneer de presetvalue ‘PV’ is bereikt. *)

CV : TIME; (*actuele tellerwaarde, vermeerdert met één bij een positieve flank op ‘CU’ *)

END_VAR

Toegepaste Informatica 73

CTU

CU Q

RESET CV

PV

NAAM

7 2 8

VRIJ TECHNISCH INSTITUUT

Page 27: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.5.1.2 Tijdsdiagram van de optel-functie

3.5.1.3 Programmering van de optel-functie

Programmering van de CTU-counter in LD

Programmering van de CTU-counter in IL

LD TRUE

AND INGANG_1

ST C1.CU

CAL C1(RESET := INGANG_2, PV := 5)

LD C1.Q

ST UITGANG_1

74 Toegepaste Informatica

CU

RESET

Q

CV

0

5

10

15

5

INGANG_1 UITGANG_1

INGANG_2

CTU

CU Q

RESET CV

PV

C1

7 2 8

De variabele ‘C1’, dit is de naam van de timer, wordt gedeclareerd als het type CTU.

VRIJ TECHNISCH INSTITUUT

Page 28: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.5.2 De neertel-functie

Een positieve flank aan ‘CD’ vermindert de teller met 1. CV is de uitlezing van de waarde van de teller. Q is logisch 1 als de actuele teller waarde 0 is. Met LOAD wordt de waarde van PV in de teller ingelezen.

3.5.2.1 De neertel-functie: symbool

De ingangsvariabelen van de functieblok.

VAR_INPUT

CD : BOOL; (* bij een stijgende flank vermindert de teller met 1, *)

LOAD : BOOL; (* een logisch ‘1’ laad de preset value ‘PV’ in de teller, CV=PV, *)

PV : WORD; (* presetvalue, een logisch’1’ bij ‘LOAD’ laad deze waarde in ‘PV’ *)

END_VAR

De uitgangsvariabelen van de functieblok.

VAR_OUTPUT

Q : BOOL; (* is TRUE wanneer de CV=0. *)

CV : TIME; (* actuele tellerwaarde, vermindert met één bij een positieve flank op ‘CD’ *)

END_VAR

Toegepaste Informatica 75

CTD

CD Q

LOAD CV

PV

NAAM

7 2 8

VRIJ TECHNISCH INSTITUUT

Page 29: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.5.2.2 Het tijdsdiagram van de neertel-functie

3.5.2.3 Programmering van de neertel-functie

Programmering van de CTD-counter in LD

Programmering van de CTD-counter in IL

LD TRUE

AND INGANG_1

ST C1.CD

CAL C1(LOAD := INGANG_2, PV := 10)

LD C1.Q

ST UITGANG_1

76 Toegepaste Informatica

CD

LOAD

Q

CV

0

5

10

15

5

INGANG_1 UITGANG_1

INGANG_2

CTU

CU Q

LOAD CV

PV

C1

7 2 8

De variabele ‘C1’, dit is de naam van de timer, wordt gedeclareerd als het type CTU.

VRIJ TECHNISCH INSTITUUT

Page 30: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.5.3 De op en neertel-functie

Een positieve flank aan ‘CU’ vermeerdert de teller met 1. Een positieve flank aan CD vermindert de teller met 1.CV is de uitlezing van de waarde van de teller. QU is logisch 1 als de actuele teller waarde groter of gelijk is aan de opgegeven waarde ‘PV’. Met reset wordt de teller op 0 gezet. QD is logisch 1 als de actuele teller waarde 0. Met reset wordt de teller op 0 gezet. Met LOAD wordt de waarde PV in de teller ingelezen.

3.5.3.1 De op en neertel-functie: symbool

De ingangsvariabelen van de functieblok.

VAR_INPUT

CU : BOOL; (* bij een stijgende flank vermeerdert de teller met 1, *)

CD : BOOL; (* bij een stijgende flank vermindert de teller met 1, *)

RESET : BOOL; (* een logisch ‘1’ reset de teller, CV=0, *)

LOAD : BOOL; (* een logisch ‘1’ laad de preset value ‘PV’ in de teller, CV=PV, *)

PV : WORD; (* presetvalue, een logisch’1’ bij ‘LOAD’ laad deze waarde in ‘PV’ *)

END_VAR

De uitgangsvariabelen van de functieblok.

VAR_OUTPUT

QU : BOOL; (* is TRUE wanneer de presetvalue ‘PV’ is bereikt. *)

QD : BOOL; (* is TRUE wanneer de CV=0. *)

CV : TIME; (* actuele tellerwaarde*)

END_VAR

Toegepaste Informatica 77

CTUD

CU QU

CD QD

RESET CV

LOAD

PV

NAAM

7 2 8

VRIJ TECHNISCH INSTITUUT

Page 31: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.5.3.2 Het tijdsdiagram van de op en neertel-functie

3.5.3.3 Programmering van de op en neertel-functie

Programmering van de CTUD-counter in LD

78 Toegepaste Informatica

CU

CD

QU

CV

0

5

10

15

RESET

LOAD

QD

INGANG_3

INGANG_1 UITGANG_1

INGANG_2

C1

CTUD

CU QU

CD QD

RESET CV

LOAD

PV7 2 8INGANG_4

5

UITGANG_2

VRIJ TECHNISCH INSTITUUT

Page 32: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

Programmering van CTUD-counter in IL

LD TRUE

AND INGANG_1

ST C1.CU

CAL C1(CD:=INGANG_2, RESET:=INGANG_3, LOAD:=INGANG_4, PV:=5)

LD C1.QD

ST UITGANG_2

LD C1.QU

ST UITGANG_1

3.5.3.4 TwinCAT 7IO

--> Project 10: De tel-functies

--> Project 11: De transportband

Toegepaste Informatica 79

Versie: donderdag 1 november 2007

De variabele ‘C1’, dit is de naam van de timer, wordt gedeclareerd als het type CTUD.

VRIJ TECHNISCH INSTITUUT

Page 33: De PLC geïntegreerd in de PC - Telenet.beusers.telenet.be/mijn_favorieten/files/TIN_deel3.pdf · 3 PLC programmering Om een PLC te kunnen programmeren is het belangrijk te weten

3.6 Doelstellingen.

1. De PLC-cyclus kunnen omschrijven.

2. Kunnen omschrijven wat bedoelt wordt met een netwerk in een programma.

3. Minstens drie ‘hulpmiddelen’ kunnen opnoemen die een programma kunnen verduidelijken.

4. Uitleggen wat er met gestructureerd programmeren wordt bedoeld.

5. De verschillende soorten programma’s en hun kenmerken kunnen opnoemen.

6. De basisfunctie : identiteit kunnen uitleggen en kunnen gebruiken in een opgave.

7. De basisfunctie : AND of EN kunnen uitleggen en kunnen gebruiken in een opgave.

8. De basisfunctie : OR of OF kunnen uitleggen en kunnen gebruiken in een opgave.

9. De basisfunctie : de inversie van een operand kunnen uitleggen en kunnen gebruiken in een opgave.

10. De basisfunctie : de inversie van het resultaat kunnen uitleggen en kunnen gebruiken in een opgave.

11. De extra functie: EXOR kunnen uitleggen en gebruiken in een opgave.

12. De prioriteitsregels op de basisfuncties kunnen toepassen.

13. Het gebruik van een merker kunnen uitleggen.

14. Een geheugen functie kunnen uitleggen en gebruiken in een opgave.

15. De set/reset functie kunnen uitleggen en gebruiken in een opgave.

16. De flankdetectie kunnen uitleggen en gebruiken in een opgave.

17. De flankdetectie kunnen maken met de basis programmeerfuncties en de werking kunnen uitleggen.

18. De verschillende tijdfuncties herkennen.

19. De werking van de verschillende tijdfuncties kunnen uitleggen.

20. Een tijddiagram van een gegeven tijdfunctie kunnen vervolledigen.

21. Een tijdfunctie kunnen gebruiken in een programma.

22. De verschillende telfuncties herkennen.

23. De werking van de verschillende telfuncties kunnen uitleggen.

24. Een tijddiagram van een gegeven telfunctie kunnen vervolledigen.

25. Een telfunctie kunnen gebruiken in een programma.

26.

80 Toegepaste Informatica

VRIJ TECHNISCH INSTITUUT