15.10.2013, 16:39
Beitrag #1
|
mfader
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Nov 2009
LabVIEW Base 2010 SP1
1999
DE
49448
Deutschland
|
Digitalsignal filtern
Hallo,
hab hier ein kleines technisches Problem. Wir betreiben hier eine Messanwendung bei der ein Druck aufgezeichnet wird, das ganze wird über 2 Digitalsignale gestartet und wieder beendet. Nun ist es leider so dass aufgrund einer etwas ungünstigen elektrischen Installation es hin und wieder zu induktiven Einstreuungen aus einer 230V-Heizung kommt und diese dann als Signal gewertet werden. Wenn die Messung unbemerkt startet, nicht weiter schlimm, Datenmüll löschen und weitermachen. Wohingegen Messung einfach so abgewürgt ohne dass man es wollte eher schon blöd ist.
Ich hab hier schon verschiedene Sachen durchsucht, letztendlich bin ich darauf gestossen, dass sich hier über einen Digitalfilter bestimmen lässt, dass das Signal eine bestimmte Zeit ( z. B. 500 ms) anstehen muss, um wirklich als Signal gewertet zu werden, aber ich find das bei mir nicht. Wenn ich einen "DAQmx - Kanal Eigenschaftsknoten" öffne, dann kann ich für Digitale Erfassung genau "Leitung invertieren", "Anzahl Leitungen" und "Tristate" auswählen. Den Filter "Impulsbreite" kann ich nur bei Zählergestützte Erfassung finden und das bekomm ich irgendwie nicht zum laufen.
Liegt das evtl. an der LV-Version/Hardware? Ich hab hier das LV 2010 SP1 Base und ein USB-6210. Geht dass damit überhaupt oder muss ich mir hier etwas anderes überlegen und wenn ja, hat jemand eine Idee wie das sonst gehen könnte? Wäre toll wenn mir da jemand helfen könnte. Ich hatte auch schon daran gedacht, den gleichen Kanal mit einer Verzögerung von 500 ms zweimal auszulesen und dann den Status zu vergleichen, irgendwie fehlt mir aber hier komplett die Idee wie ich das lösen soll.
Ich bedank mich schon mal im voraus für bissle Hilfe.
Gruss
Michael
|
|
|
16.10.2013, 06:27
(Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2013 06:28 von Y-P.)
Beitrag #2
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
RE: Digitalsignal filtern
Kann es sein, dass die VIs bei der Base-Version nicht dabei sind?
: Bitte . Da steht noch LabVIEW 2009, Du hast aber anscheinend schon die 2010er-Version.
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
16.10.2013, 08:03
Beitrag #3
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Digitalsignal filtern
Hallo mfader,
Zitat:den gleichen Kanal mit einer Verzögerung von 500 ms zweimal auszulesen und dann den Status zu vergleichen
Du solltest den Kanal nicht nur zweimal, sondern dauernd einlesen - und zwar in einer Schleife. Dann einfach die Schleife mit 500ms takten und den aktuellen Messwert mit dem vorherigen (Schieberegister!) vergleichen...
|
|
|
16.10.2013, 09:56
(Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2013 09:58 von jg.)
Beitrag #4
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Digitalsignal filtern
Das hatten wir kürzlich einmal, dafür brauchst du eine aktuelle DAQmx-Version, da kann man Eigenschaften von DI-Kanälen und Impulsen einstellen.
Gruß, Jens
EDIT: Hier der Link zum Thread
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
16.10.2013, 11:00
Beitrag #5
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Digitalsignal filtern
Finde jetzt das VI nicht, was ich dafür mal gemacht hatte.
Das Signal wird dauernd eingelesen. Ein "gültiges" hi oder lo liegt dann vor, wenn n mal (z.B n=5) hi oder lo hintereinander ankommt.
Man kann das mit einem Mehrfach-Schieberegister realisieren, eleganter (weil skalierbar) geht es aber mit einem Zähler.
Der Zähler wird bei jedem Pegelwechsel auf n initialisiert. Findet kein Pegelwechsel statt, wird er um 1 dekrementiert.
Wenn er Null erreicht, ist der Flankenwechsel, also von hi auf lo oder umgekehrt, gültig.
Reicht das oder muss ich weiter nach dem VI suchen?
|
|
|
16.10.2013, 13:30
Beitrag #6
|
mfader
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Nov 2009
LabVIEW Base 2010 SP1
1999
DE
49448
Deutschland
|
RE: Digitalsignal filtern
@Gerd: das meinte ich, bissle ungünstig formuliert, klar kontinuierlich lesen und wenn dann innerhalb von 500 ms 2 high-Signale kommen, dann erst als "gültiges" Signal auswerten.
@Jens: ich hab gerade die Aktualisierung auf DAQmx 9.7.5 laufen lassen, ich kann das aber immer noch nicht einstellen, wie in dem von dir angeführten Thread. Drum hab ich bissle die Befürchtung das Markus Recht hat und die VIs in der Base-Version gar nicht drin sind.
@Lucki: du musst natürlich nicht suchen, aber es wär lieb wenn du mal kuckst ob du das findest.
Danke an alle schon mal :-)
|
|
|
17.10.2013, 16:32
Beitrag #7
|
mfader
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Nov 2009
LabVIEW Base 2010 SP1
1999
DE
49448
Deutschland
|
RE: Digitalsignal filtern
Hallo zusammen,
für alle, die ein ähnliches Problem wie das oben geschilderte haben und leider nur die Basisversion von LabView gibt es auch eine Lösung:
Man wandelt die Boolschen Werte in 0/1 und schreibt diese in ein Array. In dieses schreibt man bei jedem Schleifendurchlauf jeweils an den Anfang den neuen Wert und schmeisst hinten den letzten raus. Wenn man nun die Summe des Arrays bildet diese mit der Anzahl der Elemente vergleicht, dann muss der gleiche Wert herauskommen, wenn durchgängig ein "high-Signal" anstand. Dies wird dann als gültiges "high-Signal" interpretiert und weiter gegeben.
Über die Wartezeit der Schleife und die Anzahl der Array-Elemente ergibt sich dann die Zeit, die ein Signal angestanden haben muss, um als "gültiges high" interpretiert zu werden.
Gruss
Michael
|
|
|
17.10.2013, 16:52
Beitrag #8
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
RE: Digitalsignal filtern
Danke für die Info.
Gruß Markus
PS: Deine Whileschleife im Screenshot läuft ewig.
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
17.10.2013, 18:02
Beitrag #9
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Digitalsignal filtern
Da würde ich denn doch sagen, dass die Variante mit einem Zähler einfacher und schneller ist.
Trigger.vi (Größe: 6,64 KB / Downloads: 230)
|
|
|
18.10.2013, 09:04
|
mfader
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Nov 2009
LabVIEW Base 2010 SP1
1999
DE
49448
Deutschland
|
RE: Digitalsignal filtern
@Markus: ich weiss, aber das war auch nur zum Ausprobieren, im eigentlichen VI ist das dann auch anderst verdrahtet
@Lucki: Stimmt, die Lösung gefällt mir noch besser, als das was wir hier gebastelt haben. Vielen Dank :-)
|
|
|
| |