Sven Rautenberg: Impulszähler

Beitrag lesen

Moin!

ich habe foglendes Problem, ich habe eine Steurung eines durchflussmessers den ich über den Paralellport ansteuern kann, d.h. ich öffne per software ein ventil und wasser strömt durch den durchflußzähler. Der widerum gibt mir rund 1800 impulse pro Liter, die Impulsleitung des Durchflußmessers ist an eine Datenleitung am Parallelport angeschlossen.

In welcher Zeit kriegst du diese Impulse? Bzw. wieviele Impulse pro Sekunde erwartest du. Oder umgekehrt: Wie lange dauert 1 und 0 eines Impulses?

Logisch ist: Wenn du keinerlei registrierende Hardware, beispielsweise einen Counter, hast, welche in der Lage ist, ultraschnell alle Impulse zu registrieren und zu summieren, sondern komplett auf die Abfrage des HI und LO angewiesen bist, benötigst du schon mal ganz sicher eine Programmiersprache und CPU, die in der Lage ist, mindestens doppelt soviele Abfragen auf dem Parallelport zu machen, wie als maximale Impulsfrequenz zu erwarten ist. Abtasttheorem, und so weiter.

Wenn du also 1800 Impulse in einer Sekunde kriegst (Modell "PLATSCH"), dann mußt du den Port mindestens 3600 Mal in der Sekunde abfragen, um sicherzugehen, dass dir keiner durch die Lappen flutscht.

Und das geschieht dann wirklich ganz banal in einer Schleife:
Ventil auf
label:
Abfrage des Port
Ist port_alt = lo und port = hi?
  dann counter++
port_alt = port
Ist counter < 1800?
  dann goto label
Ventil zu.

Die möglichen Sicherheitsimplikationen, die man mit solch einer Regelung verbinden muß, wurden ja schon angesprochen. Beispielsweise wäre es angebracht, eine Notabschaltung mit Schwimmschalter aufgrund Füllüberschreitung hardwaremäßig zu integrieren - damit der Rechner das, sofern er zu langsam ist, nicht auch noch beachten muß.

- Sven Rautenberg