Positioneren met een hall-sensor

Gepost door Jeroen Vreuls op woensdag 10 november 2021

Grote waarden verzenden

Ik had het hierboven over dat je maar tot een waarde van 255 kon verzenden via de compoort-module, maar door wat berekeningen uit te voeren kan er een veel grotere waarde verzonden worden.

Grote waarden verzenden via de compoort-moduleGrote waarden verzenden via de compoort-module

Ik geef eerst een voorbeeld met een klein getal.

Bij ingave NE1 geef je bijvoorbeeld een waarde van 5 in, die wordt gedeeld door 100 (FW1). Dan verschijnt er op de uitgang van DIV1 dus een waarde van 5 : 100 = 0,05. Die waarde komt op de ingang van MATH1 en SUB1 te staan. Bij de uitgang van MATH1 is de waarde ook 0,05, die wordt weer vermenigvuldigt door MUL1 x FW2. Dan krijg je dus 0,05 x 100 = 5. De berekening van SUB1 is als volgt, de waarde bij E0 = 0.05 en de waarde bij E1 = 0.05. De waarde op de uitgang van SUB1 wordt dus 0,05 - 0.05 = 0. Als er nu dus op de knop verzenden T1 gedrukt wordt, dan wordt eerst de waarde 0 verzonden en dan waarde 5. Dat wordt later in het programma van de controller weer omgezet, maar dat komt later aan bod.

We gaan nu kijken naar een waarde groter dan 255.

Bij ingave NE1 geef je bijvoorbeeld een waarde van 1000 in, die wordt gedeeld door 100 (FW1). Dan verschijnt er op de uitgang van DIV1 dus een waarde van 1000 : 100 = 10. Die waarde komt op de ingang van MATH1 en SUB1 te staan. Bij de uitgang van MATH1 is de waarde nu 0, die wordt weer vermenigvuldigd door MUL1 x FW2. Dan krijg je dus 0 x 100 = 0. De berekening van SUB1 is als volgt, de waarde bij E0 = 10 en de waarde bij E1 = 0. De waarde op de uitgang van SUB1 wordt dus 10 - 0 = 10. Als er nu dus op de knop verzenden T1 gedrukt wordt, dan wordt eerst de waarde 10 verzonden en dan waarde 0. Ook dat wordt later in het programma van de controller weer omgezet.

Op deze manier kun je dus makkelijk grote waardes verzenden via de compoort-modules $CS1 en $CS2. De tijd tussen de twee waardes verzenden loopt via monoflop MF1. De tijd tussen het verzenden staat hier op 0,05 seconden, die tijd is wel afhankelijk van de gebruikte baudrate.