Bit-logische bewerkingen
Contacten, Spoelen & Flankdetectie
Het hart van PLC-programmering. Bit-logische instructies verwerken elke Booleaanse bewerking — van eenvoudige contacten en spoelen tot flip-flops en flankdetectie. Beheers deze en u kunt elke automatiseringslogica bouwen.
Wat zijn bit-logische bewerkingen?
Bit-logische bewerkingen zijn de meest fundamentele instructies in PLC-programmering. Ze werken met Booleaanse signalen (TRUE/FALSE, 1/0) — ze lezen ingangstoestanden, combineren voorwaarden met AND/OR-logica en besturen uitgangen. In LAD verschijnen deze als contacten en spoelen op rungs. In FBD verschijnen ze als AND/OR/NOT-poorten.
Elk PLC-programma maakt uitgebreid gebruik van bit-logische instructies. Een motor start/stop-circuit, een alarmvoorwaarde, een klepvergrendeling — ze beginnen allemaal met contacten die sensortoestanden lezen en eindigen met spoelen die actuatoren aansturen.
Contacten — Ingangstoestanden lezen
Contacten lezen de Booleaanse status van een tag en geven deze door aan de logische keten
Maakcontact (Normally Open)
—| |—Wat het doet
Leest een Booleaanse tag (BOOL). Als de tag TRUE (1) is, sluit het contact en geeft het de logische status (RLO = TRUE) door aan het volgende element. Als de tag FALSE (0) is, is het contact open en blokkeert het de signaalstroom. Dit is de meest gebruikte instructie in LAD-programmering.
Wanneer te gebruiken
Elke keer dat u moet controleren of een voorwaarde TRUE is: is een knop ingedrukt? Is een sensor actief? Is er een vlag gezet? Plaats een maakcontact en wijs uw tag eraan toe.
Pro Tips
De naam 'Maakcontact' komt voort uit de relaislogica — het contact maakt verbinding (laat stroom door) wanneer het wordt geactiveerd. In de ruststand is het open.
Meerdere maakcontacten in serie creëren AND-logica. Meerdere maakcontacten in parallelle takken creëren OR-logica.
In FBD is het equivalent simpelweg het bedraden van een BOOL-variabele naar een ingang van een AND/OR-blok — er is geen expliciet contactsymbool nodig.
Verbreekcontact (Normally Closed)
—|/|—Wat het doet
Het omgekeerde van een maakcontact. Als de tag FALSE (0) is, is het contact gesloten en geeft het signaal door. Als de tag TRUE (1) is, opent het contact en blokkeert het het signaal. Het werkt als een NOT-bewerking op de tag-waarde.
Wanneer te gebruiken
Wanneer u moet controleren of een voorwaarde NIET waar is: noodstop niet ingedrukt, geen actieve fout, limietschakelaar niet bereikt. Zeer gebruikelijk voor veiligheidsvergrendelingen en alarmvoorwaarden.
Pro Tips
Gebruik verbreekcontacten voor noodstoppen en veiligheidscircuits — deze zijn 'fail-safe'. Als de draad breekt, opent het contact en stopt de machine.
In FBD is het equivalent een genegreerde ingang (kleine cirkel op de ingangspen van een AND/OR-blok).
Verwar de verbreekcontact-instructie niet met een fysieke NC-drukknop. Dit zijn onafhankelijke concepten.
RLO inverteren
—|NOT|—Wat het doet
Inverteert (ontkent) het huidige Resultaat van de Logische Bewerking (RLO). Als de logische keten tot dit punt evalueert naar TRUE, maakt NOT deze FALSE, en vice versa. Het werkt op het geaccumuleerde logische resultaat, niet op een specifieke tag.
Wanneer te gebruiken
Wanneer u een complexe logische expressie moet inverteren in plaats van een enkele tag. In plaats van de hele voorwaarde te herschrijven met omgekeerde contacten, plaatst u NOT aan het einde om het resultaat om te draaien.
Pro Tips
NOT inverteert de gehele RLO op dat punt in de keten — dit is anders dan een verbreekcontact dat slechts één tag inverteert.
Gebruik in FBD het NOT-blok of negeer de uitgang van een logische poort.
Gebruik spaarzaam — overmatig gebruik van NOT maakt logica moeilijk leesbaar. Vaak is het herstructureren van de logica duidelijker.
Spoelen — Uitgangen besturen
Spoelen schrijven het resultaat van de logische keten naar een uitgangstag
Toewijzing
—( )—Wat het doet
Schrijft het huidige RLO (Resultaat van de Logische Bewerking) naar een Booleaanse tag. Als de logische keten TRUE is, wordt de tag TRUE. Indien FALSE, wordt de tag FALSE. Dit is de standaard uitgangsspoel — deze weerspiegelt direct de ingangslogica bij elke scancyclus.
Wanneer te gebruiken
Voor elke uitgang die direct de ingangsvoorwaarden moet volgen. Een controlelampje dat AAN is als een motor draait, een klep die opent als aan de voorwaarden is voldaan. De uitgang volgt de ingang — wanneer de voorwaarden FALSE worden, wordt de uitgang ook FALSE.
Pro Tips
De toewijzingsspoel is 'niet-retentief' — deze schrijft elke scan. Als de logica naar FALSE gaat, gaat de uitgang onmiddellijk naar FALSE.
Een tag mag slechts in ÉÉN netwerk worden toegewezen. Meerdere toewijzingen aan dezelfde tag zorgen ervoor dat de laatste wint, wat leidt tot onvoorspelbaar gedrag.
In FBD is de toewijzing simpelweg het verbinden van de uitgang van een logische poort met een BOOL-tag.
Genegreerde toewijzing
—(/)—Wat het doet
Schrijft de geïnverteerde RLO naar een Booleaanse tag. Als de logische keten TRUE is, wordt de tag FALSE. Als de logische keten FALSE is, wordt de tag TRUE. Het combineert Toewijzing + NOT in één instructie.
Wanneer te gebruiken
Wanneer een uitgang actief moet zijn in de tegenovergestelde toestand. Bijvoorbeeld een 'systeem OK'-lamp die UIT gaat wanneer een fout wordt gedetecteerd. In plaats van de hele logische keten te inverteren, gebruikt u de genegreerde spoel.
Pro Tips
Gelijk aan het plaatsen van een NOT voor een gewone toewijzingsspoel, maar compacter.
Wees voorzichtig — genegreerde spoelen kunnen verwarrend zijn om te lezen. Soms is het duidelijker om de logica te herstructureren.
In FBD is dit een genegreerde uitgangsverbinding.
Reset uitgang
—(R)—Wat het doet
Wanneer de RLO TRUE is, wordt de tag op FALSE (0) gezet. Wanneer de RLO FALSE is, blijft de tag ongewijzigd (behoudt zijn huidige waarde). Dit is een bewerking in één richting — het kan dingen alleen UIT zetten, nooit AAN.
Wanneer te gebruiken
In Set/Reset-circuits: het ene netwerk zet de uitgang (Set, zet AAN), het andere reset hem (Reset, zet UIT). Gebruik Reset voor stopvoorwaarden, het wissen van fouten en alarmbevestiging. De Reset heeft doorgaans prioriteit in veiligheidslogica.
Pro Tips
Reset werkt alleen als de RLO TRUE is. Als de RLO FALSE is, blijft de uitgang ongewijzigd — deze wordt NIET op TRUE gezet.
In een S/R-paar heeft de instructie die als LAATSTE in het programma voorkomt prioriteit (als beide voorwaarden tegelijkertijd TRUE zijn).
Reset is retentief — na een Reset blijft de uitgang FALSE totdat deze expliciet weer wordt ge-Set.
Set uitgang
—(S)—Wat het doet
Wanneer de RLO TRUE is, wordt de tag op TRUE (1) gezet. Wanneer de RLO FALSE is, blijft de tag ongewijzigd (behoudt zijn huidige waarde). Dit is een bewerking in één richting — het kan dingen alleen AAN zetten, nooit UIT.
Wanneer te gebruiken
In Set/Reset-circuits: gebruik Set voor startvoorwaarden, overnamesignalen en first-run vlaggen. Eenmaal ge-Set, blijft de uitgang TRUE totdat deze expliciet wordt gereset — waardoor deze 'zelfvergrendelend' is zonder dat er een overnamecontact nodig is.
Pro Tips
Set werkt alleen als de RLO TRUE is. Als de RLO FALSE is, blijft de uitgang ongewijzigd — deze wordt NIET gereset.
Klassieke motorbesturing: Netwerk 1 = Startknop → Set Motor. Netwerk 2 = Stopknop OF Fout → Reset Motor.
Wees voorzichtig met retentieve tags in veiligheidscircuits — na een stroomcyclus kunnen Set-uitgangen hun laatste status behouden, afhankelijk van de DB-instellingen.
Bitveld-bewerkingen
Zet of reset een reeks bits in één bewerking
SET_BF — Bitveld zetten
Wat het doet
Zet een aaneengesloten groep bits op TRUE vanaf een opgegeven adres. U definieert de startbit en het aantal bits dat moet worden gezet. Wanneer de RLO TRUE is, worden alle opgegeven bits op 1 gezet.
Wanneer te gebruiken
Wanneer u meerdere gerelateerde uitgangen tegelijkertijd moet activeren — bijvoorbeeld het instellen van alle bits van een statuswoord, het initialiseren van een groep vlaggen of het in één keer activeren van een reeks uitgangen.
Pro Tips
Handig voor batchbewerkingen in plaats van individuele Set-instructies voor elke bit te schrijven.
De parameter voor het aantal bits bepaalt hoeveel opeenvolgende bits worden beïnvloed.
Net als Set werkt dit alleen als de RLO TRUE is — bits blijven ongewijzigd als de RLO FALSE is.
RESET_BF — Bitveld resetten
Wat het doet
Reset een aaneengesloten groep bits naar FALSE vanaf een opgegeven adres. U definieert de startbit en het aantal bits dat moet worden gereset. Wanneer de RLO TRUE is, worden alle opgegeven bits gewist naar 0.
Wanneer te gebruiken
Wanneer u meerdere vlaggen of uitgangen tegelijk moet wissen — bijvoorbeeld het wissen van alle alarmbits in een statuswoord, het resetten van een groep uitgangen tijdens het uitschakelen of het initialiseren van een gegevensgebied.
Pro Tips
De tegenhanger van SET_BF — gebruik ze samen voor Set/Reset-bewerkingen op groepsniveau.
Vooral handig voor het in één keer wissen van alarmwoorden of statusregisters.
Net als Reset werkt dit alleen als de RLO TRUE is — bits blijven ongewijzigd als de RLO FALSE is.
Flip-Flops — Geheugencircuits
Bistabiele elementen die hun status onthouden totdat ze expliciet worden gewijzigd
SR — Set/Reset Flip-Flop
Wat het doet
Een bistabiele flip-flop met Set-prioriteit. Het heeft twee ingangen: S (Set) en R (Reset), en één uitgang Q. Wanneer S=TRUE, wordt Q TRUE. Wanneer R=TRUE, wordt Q FALSE. Wanneer zowel S als R tegelijkertijd TRUE zijn, is Q TRUE (Set domineert).
Wanneer te gebruiken
Voor vergrendelingscircuits waarbij de Set-voorwaarde prioriteit moet hebben. In een SR-flip-flop blijft de uitgang AAN als zowel start als stop tegelijkertijd worden ingedrukt. Gebruik dit wanneer 'start-prioriteit' acceptabel is.
Pro Tips
SR = Set-prioriteit. Als S=1 en R=1 → Q=1. Gebruik wanneer starten belangrijker is dan stoppen.
Geef in veiligheidskritische toepassingen de voorkeur aan RS (Reset-prioriteit) — dit is veiliger als beide voorwaarden tegelijkertijd optreden.
De flip-flop is een enkel blok in zowel LAD als FBD met S- en R-ingangen en Q-uitgang.
RS — Reset/Set Flip-Flop
Wat het doet
Een bistabiele flip-flop met Reset-prioriteit. Het heeft twee ingangen: R (Reset) en S (Set), en één uitgang Q. Wanneer S=TRUE, wordt Q TRUE. Wanneer R=TRUE, wordt Q FALSE. Wanneer zowel R als S tegelijkertijd TRUE zijn, is Q FALSE (Reset domineert).
Wanneer te gebruiken
Voor vergrendelingscircuits waarbij veiligheid voorop staat. De Reset (stop) voorwaarde heeft prioriteit — als zowel start als stop actief zijn, is de uitgang UIT. Dit is de standaardkeuze voor motorbesturing en veiligheidsvergrendelingen.
Pro Tips
RS = Reset-prioriteit. Als S=1 en R=1 → Q=0. De veiligere keuze voor de meeste industriële toepassingen.
Klassiek motorbesturingspatroon: S = Start_knop AND NOT Fout, R = Stop_knop OR Noodstop OR Fout.
De uitgang Q is retentief binnen de scancyclus — deze behoudt zijn waarde totdat de flip-flop opnieuw wordt geëvalueerd.
Flankdetectie — Signaalveranderingen detecteren
Detecteer wanneer een signaal overgaat van FALSE→TRUE of TRUE→FALSE
Operand scannen op positieve flank
—|P|—Wat het doet
Detecteert een stijgende flank (overgang FALSE→TRUE) op een specifieke operand. De instructie vergelijkt de huidige waarde met de waarde van de vorige scan. Als de waarde veranderde van 0 naar 1, is de RLO gedurende precies één scancyclus TRUE. Vereist een flankgeheugenbit (M-bit) om de vorige status op te slaan.
Wanneer te gebruiken
Wanneer u een eenmalige puls nodig heeft uit een aanhoudend signaal: knopdrukken tellen, een enkele actie triggeren bij een niveauverandering, een teller verhogen bij elke activering. Zonder flankdetectie zou een ingedrukte knop elke scancyclus triggeren.
Pro Tips
U MOET een uniek flankgeheugenbit (M-bit) toewijzen — gebruik NIET dezelfde M-bit voor meerdere flankdetecties, anders zullen ze elkaar storen.
De uitgang is TRUE gedurende precies één PLC-scancyclus (meestal 1-50 ms). Als u een langere puls nodig heeft, gebruik dan een timer.
In LAD verschijnt dit als een contact met de markering 'P'. De M-bit tag wordt boven/onder het contact weergegeven.
Operand scannen op negatieve flank
—|N|—Wat het doet
Detecteert een dalende flank (overgang TRUE→FALSE) op een specifieke operand. De instructie vergelijkt de huidige waarde met de waarde van de vorige scan. Als de waarde veranderde van 1 naar 0, is de RLO gedurende precies één scancyclus TRUE. Vereist een flankgeheugenbit.
Wanneer te gebruiken
Wanneer u moet reageren op een signaal dat UIT gaat: detecteren wanneer een knop wordt losgelaten, triggeren bij deactivering van een sensor, of het moment vastleggen waarop een processtap is voltooid.
Pro Tips
Dezelfde regels als voor de positieve flank — elke negatieve flankdetectie heeft zijn eigen unieke M-bit nodig.
Handig voor acties bij het 'loslaten van de knop': start een timer wanneer een knop wordt losgelaten, niet wanneer deze wordt ingedrukt.
Gebruik in een uitschakelsequentie negatieve flanken om te detecteren wanneer elke stap is voltooid (uitgang gaat van AAN naar UIT).
Operand zetten bij positieve flank
—(P)—Wat het doet
Zet (schrijft TRUE naar) een opgegeven operand gedurende één scancyclus wanneer een positieve flank (FALSE→TRUE) wordt gedetecteerd op de RLO. Combineert flankdetectie en uitgangstoewijzing in één instructie.
Wanneer te gebruiken
Wanneer u een vlag of uitgang voor precies één scan wilt zetten op een stijgende flank, zonder dat u een afzonderlijk flankdetectiecontact gevolgd door een spoel nodig heeft.
Pro Tips
Dit is een spoeltype-instructie — deze komt aan het einde van een rung, niet in het midden.
Vereist een flankgeheugenbit, net als de contactversie.
De operand is slechts gedurende één scan TRUE en keert dan automatisch terug naar FALSE.
Operand zetten bij negatieve flank
—(N)—Wat het doet
Zet (schrijft TRUE naar) een opgegeven operand gedurende één scancyclus wanneer een negatieve flank (TRUE→FALSE) wordt gedetecteerd op de RLO. Combineert dalende flankdetectie en uitgangstoewijzing in één instructie.
Wanneer te gebruiken
Wanneer u een vlag of uitgang voor precies één scan wilt zetten op een dalende flank. Handig voor het triggeren van acties na deactivering.
Pro Tips
Instructie van het spoeltype — plaats aan het einde van een rung.
Vereist zijn eigen unieke flankgeheugenbit.
Vaak gebruikt voor 'opschoningsacties' die eenmalig moeten gebeuren wanneer een proces stopt.
P_TRIG — RLO scannen op positieve flank
Wat het doet
Detecteert een stijgende flank op de RLO (Resultaat van de Logische Bewerking) in plaats van op een specifieke operand. Wanneer het gecombineerde logische resultaat overgaat van FALSE naar TRUE, is de uitgang TRUE gedurende één scancyclus. Het flankgeheugen wordt opgeslagen binnen de instructie-instantie.
Wanneer te gebruiken
Wanneer u een stijgende flank wilt detecteren op een complexe logische combinatie, niet alleen op een enkele tag. Bijvoorbeeld: detecteren wanneer (Sensor1 AND Sensor2 AND NOT Fout) voor het eerst TRUE wordt.
Pro Tips
P_TRIG werkt op de geaccumuleerde RLO — het detecteert de flank van de gehele logische keten die eraan voorafgaat.
Het flankgeheugen is ingebouwd in de instructie — er is geen apart M-bit nodig.
In FBD is P_TRIG een blok met CLK-ingang en Q-uitgang.
N_TRIG — RLO scannen op negatieve flank
Wat het doet
Detecteert een dalende flank op de RLO. Wanneer het gecombineerde logische resultaat overgaat van TRUE naar FALSE, is de uitgang TRUE gedurende één scancyclus. Het flankgeheugen wordt opgeslagen binnen de instructie-instantie.
Wanneer te gebruiken
Wanneer u wilt detecteren wanneer een complexe voorwaarde niet meer waar is. Bijvoorbeeld: detecteer het moment waarop (Auto_Modus AND Vrijgave) van TRUE naar FALSE gaat.
Pro Tips
N_TRIG is de tegenhanger van de P_TRIG voor dalende flanken.
Geen apart M-bit nodig — het flankgeheugen is intern.
Handig voor het detecteren van het einde van een gecombineerde voorwaarde in plaats van een enkel signaal.
R_TRIG — Positieve signaalflank detecteren
Wat het doet
Een IEC 61131-3 conforme stijgende flank detector functieblok. Het heeft een CLK-ingang en een Q-uitgang. Wanneer CLK overgaat van FALSE naar TRUE, is Q TRUE gedurende één scancyclus. Het flankgeheugen wordt opgeslagen in de instantiegegevens van de FB.
Wanneer te gebruiken
Wanneer u IEC-standaard flankdetectie wilt met eigen instantiegegevens. R_TRIG is een functieblok — elke instantie onderhoudt automatisch zijn eigen flankgeheugen. Bij voorkeur te gebruiken in gestructureerde, herbruikbare code.
Pro Tips
R_TRIG is een FB — deze heeft instantiegegevens nodig (een eigen DB of als multi-instantie in een bovenliggende FB). Dit maakt hem op zichzelf staand en herbruikbaar.
Beschikbaar sinds V1.0 op S7-1200/1500. Dit is de IEC 61131-3 standaardmanier van flankdetectie.
In SCL: mijnRTRIG(CLK := mijnSignaal); IF mijnRTRIG.Q THEN ... END_IF;
F_TRIG — Negatieve signaalflank detecteren
Wat het doet
Een IEC 61131-3 conforme dalende flank detector functieblok. Het heeft een CLK-ingang en een Q-uitgang. Wanneer CLK overgaat van TRUE naar FALSE, is Q TRUE gedurende één scancyclus. Het flankgeheugen wordt opgeslagen in de instantiegegevens van de FB.
Wanneer te gebruiken
Wanneer u IEC-standaard dalende flankdetectie wilt met eigen instantiegegevens. F_TRIG is de tegenhanger van de R_TRIG voor dalende flanken.
Pro Tips
F_TRIG is een FB met een eigen instantie — net als R_TRIG is deze op zichzelf staand en IEC 61131-3 conform.
In SCL: mijnFTRIG(CLK := mijnSignaal); IF mijnFTRIG.Q THEN ... END_IF;
Geef de voorkeur aan R_TRIG/F_TRIG boven |P|/|N| contacten bij het schrijven van herbruikbare bibliotheekcode, omdat deze geen externe M-bits vereisen.
Snelreferentie — Alle 20 bit-logische instructies
| # | Instructie | LAD Symbool | Sneltoets | Beschrijving |
|---|---|---|---|---|
| 1 | Maakcontact (Normally Open) | —| |— | F9 | Laat stroom door als de tag TRUE is |
| 2 | Verbreekcontact (Normally Closed) | —|/|— | F10 | Laat stroom door als de tag FALSE is |
| 3 | RLO inverteren | —|NOT|— | — | Inverteert het resultaat van de logische bewerking |
| 4 | Toewijzing | —( )— | Shift + F7 | Schrijft RLO naar uitgangstag |
| 5 | Genegreerde toewijzing | —(/)— | — | Schrijft geïnverteerde RLO naar uitgangstag |
| 6 | Reset uitgang | —(R)— | — | Zet tag op FALSE als RLO TRUE is |
| 7 | Set uitgang | —(S)— | — | Zet tag op TRUE als RLO TRUE is |
| 8 | SET_BF — Bitveld zetten | — | — | Zet een reeks bits op TRUE |
| 9 | RESET_BF — Bitveld resetten | — | — | Reset een reeks bits naar FALSE |
| 10 | SR — Set/Reset Flip-Flop | — | — | Flip-flop met Set-prioriteit (S=1,R=1 → Q=1) |
| 11 | RS — Reset/Set Flip-Flop | — | — | Flip-flop met Reset-prioriteit (S=1,R=1 → Q=0) |
| 12 | Operand scannen op positieve flank | —|P|— | — | Detecteert stijgende flank op een operand |
| 13 | Operand scannen op negatieve flank | —|N|— | — | Detecteert dalende flank op een operand |
| 14 | Operand zetten bij positieve flank | —(P)— | — | Zet operand voor 1 scan bij stijgende flank |
| 15 | Operand zetten bij negatieve flank | —(N)— | — | Zet operand voor 1 scan bij dalende flank |
| 16 | P_TRIG — RLO scannen op positieve flank | — | — | Detecteert stijgende flank op de RLO |
| 17 | N_TRIG — RLO scannen op negatieve flank | — | — | Detecteert dalende flank op de RLO |
| 18 | R_TRIG — Positieve signaalflank detecteren | — | — | IEC stijgende flank detector (FB) |
| 19 | F_TRIG — Negatieve signaalflank detecteren | — | — | IEC dalende flank detector (FB) |
Veelgestelde vragen
Wat is het verschil tussen Set/Reset-spoelen en SR/RS flip-flops?
Set (S) en Reset (R) spoelen zijn individuele instructies die in afzonderlijke netwerken worden geplaatst — u bepaalt de prioriteit door welk netwerk als laatste komt. SR/RS flip-flops zijn enkele blokken met beide ingangen — de prioriteit is ingebouwd (SR = Set-prioriteit, RS = Reset-prioriteit). Flip-flops zijn compacter en maken de prioriteit expliciet.
Welke flankdetectie moet ik gebruiken: |P|/|N|, (P)/(N), P_TRIG/N_TRIG, of R_TRIG/F_TRIG?
|P|/|N| contacten detecteren flanken op een specifieke tag en hebben een externe M-bit nodig. (P)/(N) spoelen combineren flankdetectie met uitgangstoewijzing. P_TRIG/N_TRIG detecteren flanken op de RLO (gecombineerde logica). R_TRIG/F_TRIG zijn IEC-standaard FB's met ingebouwd geheugen. Geef voor herbruikbare bibliotheekcode de voorkeur aan R_TRIG/F_TRIG. Voor eenvoudige inline logica zijn |P|/|N| contacten prima.
Waarom gedraagt mijn Set/Reset-circuit zich onverwacht?
De meest voorkomende oorzaak is dat zowel de Set- als de Reset-voorwaarden tegelijkertijd TRUE zijn. In dat geval wint de laatste instructie in het programma. Als uw Reset-netwerk zich voor uw Set-netwerk bevindt, wordt de uitgang ge-Set. Oplossing: gebruik een RS-flip-flop (Reset-prioriteit) voor veiligheidskritische circuits, of zorg ervoor dat uw voorwaarden elkaar uitsluiten.
Kan flankdetectie werken op analoge waarden of alleen op BOOL?
Flankdetectie-instructies (|P|, |N|, R_TRIG, F_TRIG) werken alleen op Booleaanse signalen. Voor analoge waarden moet u een vergelijking maken (bijv. waarde > drempel) die een BOOL-resultaat oplevert, en vervolgens flankdetectie op die BOOL toepassen.