LabVIEWForum.de - Ansteuerung von Ventilen über digitale Ausgänge

LabVIEWForum.de

Normale Version: Ansteuerung von Ventilen über digitale Ausgänge
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo LabVIEW Gemeinde,

ich habe folgendes Problem. Ich möchte über die Digitalausgänge eines A/D-Wandlers Ventile schalten. Der A/D-Wandler ist an einer Transistorschaltung angeschlossen und verbindet auf diese Weise die Ventile mit der Spannungsversorgung. Die Ansteuerung klappt auch schon ganz gut, allerdings sind die Ventile über einen einzigen Port angeschlossen. Dem Port werden nun Worte zugeordnet, die Binärzahlen entsprechen, die wiederum die Schaltzustände der Ventile darstellen. 1 steht für offen, 0 für geschlossen.

Im Moment kann ich nur alle drei Ventile gleichzeitig ansteuern, d.h. wenn ich von LabVIEW eine 3 an den Digitalausgang des A/D-Wandlers schicke, entspricht das dort 011. Ventil 1 und 2 werden geöffnet, Ventil 3 bleibt geschlossen. Ich würde aber gerne die Ventile einzeln ansteuern können, idealerweise sollte jedes Ventil separat und unabhängig von den anderen geöffnet und geschlossen werden können.

Hab schon hier im Forum von "Bitwise" Operationen gelesen, vielleicht ist das der richtige Ansatz, kenne mich damit aber leider nicht aus.

Im Bild habe ich das Problem vorübergehend dadurch gelöst, das ich 2 Ventile über Port B und eines über Port A ansteuere. Das funktioniert zwar halbwegs, ist aber meiner Meinung nach wenig geschickt und außerdem nicht sinnvoll von 8 verfügbaren Plätzen pro Port nur einen zu Nutzen.

Ich hoffe auf Eure Hilfe.
[attachment=27365]
Hallo phil,

warum hängst du hier ein als *.vi umbenanntes JPG an???

Guckst du hier:
[attachment=27364]
Die boolschen Konstanten stellen die Schalter für deine Ventile dar...
Das oberste Bit ist Ventil0, das unterste hier Ventil2. Kann man natürlich auf 8Bits=Ventile erweitern.
' schrieb:warum hängst du hier ein als *.vi umbenanntes JPG an???
Erledigt, Anhang ausgetauscht.

Gruß, Jens
Ja, bitwise klingt doch ganz gut. Um z.B. das LSB eines Ports zu setzen nimmt man den aktuellen Wert des Ports und verodert ihn mit 00000001 (mal einen 8bit-Port angenommen). Um z.B. das zweite Bit rückzusetzen verundet man den Port mit 11111101. Systematik ist hoffentlich klar. Zur Vereinfachung in LV entweder Bool-Arrays verwenden oder die entsprechenden U8-Elemente auf eine binäre Darstellung einstellen.

ch
Vielen Dank für die schnellen Antworten und werde das Morgen direkt testen. Und Entschuldigung wegen des Bildes. Keine Ahnung wie das passiert ist.
Referenz-URLs