LabVIEWForum.de - Triggern auf Daten-Byte!

LabVIEWForum.de

Normale Version: Triggern auf Daten-Byte!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin, moin zusammen.
folgendes Problem stellt sich mir gerade:
Ich lese über eine DAQ-Card meinen kontinuierlichen Datenstrom (Bitfolge, Rechteckspannung 5V) ein und würde gerne einen Trigger auslösen (zunächst erstmal ne LED) wenn die gesuchte
Bitkombination im Datenstrom auftaucht. Also Trigger (LED an) bei z.B.: 11001010.
Wie kann ich am einfachsten vorgehen??
Müßte doch irgendwie über nen 8-BIT Schieberegister gehen, das ständig mit den aktuellen Daten eingelesen wird und im entscheidenden Augenblick reagiert.

Grüße und hoffentlich Hilfe
Pathfinder
' schrieb:Moin, moin zusammen.
folgendes Problem stellt sich mir gerade:
Ich lese über eine DAQ-Card meinen kontinuierlichen Datenstrom (Bitfolge, Rechteckspannung 5V) ein und würde gerne einen Trigger auslösen (zunächst erstmal ne LED) wenn die gesuchte
Bitkombination im Datenstrom auftaucht. Also Trigger (LED an) bei z.B.: 11001010.
Wie kann ich am einfachsten vorgehen??
Müßte doch irgendwie über nen 8-BIT Schieberegister gehen, das ständig mit den aktuellen Daten eingelesen wird und im entscheidenden Augenblick reagiert.

Grüße und hoffentlich Hilfe
Pathfinder

Wie wäre es mit dem Knuth-Morris-Pratt-Algorithmus?

Gruß, Rob
' schrieb:Moin, moin zusammen.
folgendes Problem stellt sich mir gerade:
Ich lese über eine DAQ-Card meinen kontinuierlichen Datenstrom (Bitfolge, Rechteckspannung 5V) ein und würde gerne einen Trigger auslösen (zunächst erstmal ne LED) wenn die gesuchte
Bitkombination im Datenstrom auftaucht. Also Trigger (LED an) bei z.B.: 11001010.
Wie kann ich am einfachsten vorgehen??
Müßte doch irgendwie über nen 8-BIT Schieberegister gehen, das ständig mit den aktuellen Daten eingelesen wird und im entscheidenden Augenblick reagiert.

Grüße und hoffentlich Hilfe
Pathfinder

Hallo,
danke für den Tip, aber geht das nich einfacher? Ich wollte die Rechteckfolge mit der DAQ-Card in ein Schiebregister (8Bit) einlesen und wenn die Bitfolge passt, einen Trigger auslösen.
Ich weiss nur nicht, wie ich die Umsetzung des Schieberegisters anstellen soll mit dem Vergleich des Referenzmuster z.B. 10010101

Grüße
pathfinder
Hi,

an das Schieberegister kannst du doch ein Cluster of Boolean Array mit deinen acht Bit anschließen und dann das vergleichen, oder? Oder gleich das Array vergleichen:

[attachment=5240]

A.
' schrieb:wenn die gesuchte Bitkombination im Datenstrom auftaucht. Also Trigger (LED an) bei z.B.: 11001010.
Sehe ich das jetzt richtg: Die Bitfolge ist seriell, also zeitlich hintereinander? Zuerst eine 1 dann noch eine 1 dann eine 0 usw? Oder liegen da 8 Bit parallel an?

Wenn die Bits seriell anliegen, brauchst du aber ein Taktsignal, um feststellen zu können, ob ein Pagel am Eingang nun ein einzels Bit darstellt oder schon vier. (Im Prinzip ist das bei parallel natürlich genauso).
Selbstverständlich geht es genau so wie Du sagst, und zwar sowohl mit dem Shift-Register, wie es in der While-Schleife Anwendung findet, als auch mit den Funktionen zum Rotieren/Schieben. Warum machst Du es denn nicht so?
[attachment=5242]

@IchSelbst: Das "Taktsignal" ist hier im Beispiel jeder neue Schleifendurchlauf.
' schrieb:@IchSelbst: Das "Taktsignal" ist hier im Beispiel jeder neue Schleifendurchlauf.
Prinzipiell ist das natürlich richtig.

Nur: Richtet sich das Raster des externen Signals auch nach der Dauer eines Schleifendurchlaufes? Was tun, wenn der Schleifendurchlauf zeitlich gesehen nicht konstant ist - respektive wie nachweisen, dass er nicht zu sehr wobbelt? Ich glaube, hier muss northcoast noch Information nachliefern.
' schrieb:Warum machst Du es denn nicht so?
[attachment=31640:Triggeren_auf_Byte.png]

also ich finde, das Beispiel mit dem "Rotate left" ist die Musterlösung ...
' schrieb:Nur: Richtet sich das Raster des externen Signals auch nach der Dauer eines Schleifendurchlaufes? Was tun, wenn der Schleifendurchlauf zeitlich gesehen nicht konstant ist - respektive wie nachweisen, dass er nicht zu sehr wobbelt? Ich glaube, hier muss northcoast noch Information nachliefern.
Daß ein serieller Bitstream immer einen Mastertakt erfordert, der entweder auf einer extra Leitung daherkommt, oder der aus dem entsprechend codierten Bitstream selbst rekonstruiert wird, ist doch selbstverständlich. Und genau so selbstverständlich ist, daß die Abfrage der Bitfolge in diesem Takt zu erfolgen hat und nicht im Takte einer damit überhaupt nicht synchronisierten Wait - Schleife. Weiterhin: da "Northcoast". "Pathfinder" (oder wie heißt er sonst noch?) das nicht zum Thema der Frage gemacht hat, gehe ich davon aus, daß er das beherrscht und sehe keinen Anlass, hierüber einfach so aus freien Stücken eine Nebendiskussion loszutreten.
Ich denke, der Frager wird mich verstehen, daß ich mich nur auf die Frage selbst konzentriert habe und die Antwort in einfachstmöglicher, idealisierter Form gegeben habe. Er wird denke ich nicht versucht sein, Zufallsgenerator oder diese Whileschleife mit 10ms-Timer so ins wirkliche Leben zu übernehmen.
Referenz-URLs