Hallo zusammen,
ich verwende als Interface das NI 6008. Bei der Programmierung in LabVIEW nehme ich die Konfiguration über den DAQ-Assistenten vor. Z.B. konfiguriere ich einen digitalen Leitungsausgang port0ne0. Den möchte ich über einen Schalter (boolesch) schalten. Wie mache ich das fachlich richtig? Es scheint so zu sein, dass immer der komplette Port betrachtet werden muss, obwohl ich nur eine Leitung konfiguriert habe. Eine Lösung habe ich gefunden, weiß aber nicht, ob das eine saubere Lösung ist. Ich habe einen Screenshot (LabVIEW 8.2) beigefügt.
Ähnliche Fragen habe ich, wenn ich einen digitalen Leitungseingang konfiguriert habe. Nehmen wir an, es handelt sich um 1 Leitung. Wie zeige ich den Zustand über 1 LED im Frontpanel an?
Es gibt folgende Möglichkeiten:
[
attachment=22819]
[
attachment=22817]
Gruß Markus
EDIT: Die erste Möglichkeit (obere Schleife) ist zum schreiben auf den Port, die zweite (untere Schleife) ist zum schreiben auf eine einzelne Line.
Hallo Markus,
ist es richtig, dass ich bei Deiner Lösung nicht mit dem DAQ-Assistenten arbeiten kann?
Gruß Josef
Ja.
Gruß Markus
' schrieb:Hallo Markus,
ist es richtig, dass ich bei Deiner Lösung nicht mit dem DAQ-Assistenten arbeiten kann?
Gruß Josef
Weil das Handling des DAQ-Assistenten recht einfach ist, möchte ich ganz gerne damit weiterarbeiten. Daher suche ich weiter nach einer Lösung, wie ich den Dateneingang richtig ansprechen kann. Wenn ich den Dateneingang auf 1 Leitungseingang konfiguriere und schließe dann direkt einen Schalter (boolesch) an, erhalte ich die Fehlermeldung, dass die Datenquelle über 1 Kanal verfügt, die Senke über 8. Mit meiner Schaltung erhalte ich die Fehlermeldung nicht mehr, weiß allerdings nicht, ob es nicht bessere oder fachlich richtigere Lösungen gibt.
Gruß Josef
Wenn Du unbedingt den DAQ-Assistenten verwenden möchtest, dann muss ich mich jetzt leider ausklinken, weil ich den nie verwende und auch nie verwenden werde.
Mit meiner Methode (wie sie übrigens auch beim DAQmx-Lehrgang von NI geschult wird und auch im Example-Finder zu finden ist) habe ich schon zig DIO's geschaltet und das hat immer funktioniert. Mit dem DAQ-Assistenten hast Du nur Scherereien. Ich wünsche Dir trotzdem viel Erfolg dabei.
Vielleicht siehst Du es ja auch noch ein, dass Express-VIs / Assistenten nicht so toll sind (um es mal nett auszudrücken), wie sie auf den ersten Blick aussehen.
Gruß Markus
EDIT: Ich habe mein Bsp. gerade mit meiner 6008er-Karte probiert und es hat problemlos funktioniert. Wenn Du einen Port schreiben möchtest, dann muss Dein Array auch eine Größe von 8 haben, d.h. 8 aktive Schalter auf dem Frontpanel!
Erst einmal stimme ich Y-P 100pro zu. Der DAQ-Assi mag für dein Einstieg oder eine schnelle Konfiguration interessant sein, er ersetzt aber nie die Möglichkeiten, die man bei Verwendung der DAQmx API hat.
' schrieb:Es scheint so zu sein, dass immer der komplette Port betrachtet werden muss, obwohl ich nur eine Leitung konfiguriert habe. Eine Lösung habe ich gefunden, weiß aber nicht, ob das eine saubere Lösung ist. Ich habe einen Screenshot (LabVIEW 8.2) beigefügt.
Nö, dem ist nicht so... Der DAQ-Assi will zwar ein Array als Eingang, aber wenn du nur eine Line im DAQ-Assi definiert hast, dann hat das Eingangs-Array nur ein Element. Also kein kompletter Port, der hätte 8 Elemente.
[
attachment=22845]
' schrieb:Ähnliche Fragen habe ich, wenn ich einen digitalen Leitungseingang konfiguriert habe. Nehmen wir an, es handelt sich um 1 Leitung. Wie zeige ich den Zustand über 1 LED im Frontpanel an?
So:
[
attachment=22846]
Besser wäre natürlich die Verwendung der DAQmx-API....
Gruß, Jens
Hallo Jens,
genau das habe ich gesucht. Es funktioniert!
Vielen Dank!
Trotzdem werde ich mich mal mit der DAQmx-API beschäftigen, wenn mir das schon von dir und auch von Markus empfohlen wird. Mir ist allerdings nicht so klar, warum der DAQ-Assi so schlecht und problematisch sein soll. Aber ihr werdet eure Erfahrungen haben.
Gruß Josef
Hallo zusammen,
ich habe die Belehrungen beherzigt und mich mit der Programmierung mit DAQmx-API beschäftigt. Beiliegendes vi ist dabei herausgekommen. Ich kann über eine Leitung ein Signal ausgeben, über eine zweite ein Signal einlesen. Ich wüsste gerne, ob in meinem Programm noch Fehler sind. Wenn ihr Zeit und Lust habt, könnt ihr vielleicht mal draufschauen.
Gruß Josef
Sieht gut aus.
Gruß Markus