LabVIEWForum.de - Hilfe, Aufsummieren von Impulsen

LabVIEWForum.de

Normale Version: Hilfe, Aufsummieren von Impulsen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Experten,

was LabVIEW betrifft bin ich ziemlicher Anfänger und habe folgendes Problem:

Ich soll die Daten eines externen, mechanischen Rollenzählers auf einem Rechner abbilden.

Der Rollenzähler ist auf der kleinsten Zählerrolle mit einem Magneten versehen, der bei jeder Umdrehung einen Reed Kontakt schaltet. Über eine USB Optokoppler Platine werden diese Impulse zum Steuerrechner geleitet.
Das vi lt. Anlage wurde mit V 8.5 erstellt und arbeitet mit zwei parallelen while Schleifen. In der oberen Schleife wird links der Reed Kontakt abgefragt, der Schalter Reed Kontakt auf der rechten Seite dient der Simulation. Das Einlesen der Impulse klappt Problemlos.

Um den Zählerstand bei Programmstart zu initialisieren, wird dieser in eine Textdatei geschrieben, bzw. ausgelesen. Über die Ereignisstruktur in der unteren Schleife wird die Änderung des Reedkontaktes erkannt und bei der ansteigenden Flanke (Case Struktur) der Summenzähler hochgezählt.

Nun Mein Problem:
In der Simulation klappt alles problemlos. Sobald ich aber den externen Kontakten anschließe, funktioniert das Ganze nicht mehr.
Ich habe auch schon Versucht den Ausgang 'Imp' und den Demoschalter 'Reedkontakt' über eine Oder Verknüpfung an die lokale Variable 'Reedkontakt' weiterzugeben, aber das funktioniert auch nicht.

Hilfe!!!!!!!!!!!!!!!
Was mache ich falsch?
' schrieb:Sobald ich aber den externen Kontakten anschließe, funktioniert das Ganze nicht mehr.
Events einer Event-Struktur funktionieren nur, wenn das Bedienelement, das den Event auslösen soll, am Frontpanel vom Bediener manuell manipuliert wird. Schreibst du also per Programm in ein Element (IMP), so wird kein Event ausgelöst. In diesem Falle musst du das Property "Wert(signalisierend)" verwenden.

Zweitens: Nimm in den Events (IMP und REEDKONTAKT) nicht eine Lokale Variable, sondern den Werte "Neuer Wert", der im Event zur verfügung gestellt wird. Das hat dann auch zur Folge, dass du IMP und REEDKONTAKT im selben Event-Case verarbeiten kannst.
Ich hab mal ein Muster gemacht.
Lv85_img
Hallo Ichselbst,

vielen Dank für den Tipp, es klappt.
Allerdings musste ich noch einige kleine Änderungen vornehmen (erzeugen des Messimpulses aus einer XOR Verknüpfung zwischen dem Ausgang/Eingang) des Schieberegisters. Ansonsten hätte das VI so lange aufsummiert, bis der Reedkontakt wieder öffnet. Warum, ist mir allerdings nicht klar. Die Wertänderung des Reedkontaktes sollte eigentlich nur zwei Ereignisse auslösen, bei Übergang LH und HL.
' schrieb:Allerdings musste ich noch einige kleine Änderungen vornehmen (erzeugen des Messimpulses aus einer XOR Verknüpfung zwischen dem Ausgang/Eingang) des Schieberegisters. Ansonsten hätte das VI so lange aufsummiert, bis der Reedkontakt wieder öffnet. Warum, ist mir allerdings nicht klar.
Sobald du das Property "Wert(signalisierend)" beschreibst, wird ein Event ausgelöst. D.h. natürlich: Wenn du immer den gleichen Wert hineinschreibst, wird auch ständig mit dem gleichen Wert ein Event ausgelöst => ständig aufsummieren.

Zitat:sollte eigentlich nur zwei Ereignisse auslösen, bei Übergang LH und HL.
Genau das entspricht dann deiner XOR-Verknüpfung.

Du könntest das auch im Event machen: Vergleiche "Alter Wert" und "Neuer Wert" - bei Ungleichheit neuen Wert ausführen.
Referenz-URLs