LabVIEWForum.de - Digital Output mit Boolean verbinden

LabVIEWForum.de

Normale Version: Digital Output mit Boolean verbinden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich war ja schon länger nicht mehr hier (Klausuren Huh). Jedenfalls bin ich mal wieder dazu gekommen, an meinen Projektchen zu arbeiten und tatsächlich läuft auch alles. ABER: Ich hab das Gefühl, dass ich schummel: Zu meiner Temperaturmessung, wird eine Wärmelamp an- bzw. ausgeschaltet, habe das durch einen Case verwirklicht. Dass die Wärmelampe an ist, soll auch auf dem Frontpanel durch LED zu sehen sein. Da ich aber keine Möglichkeit gefunden habe, den Boolean direkt mit dem Digital Output zu verbinden, habe ich einfach mit True bzw. False- Constanten gearbeitet...also, gibt es einen Weg, den Digital Output mit meiner LED zu verbinden???

Danke,
Anne

Lv09_img2
Hab' Dein VI mal grob überarbeitet.
Schau' Dir mal an, was ich geändert habe (Manches ist immer noch nicht ganz optimal, aber ich habe auch nicht ewig Zeit Big Grin).

[attachment=24528]
Lv09_img2

Nun zu Deinem Problem: Willst Du aus dem Dezimalwert 5, den Du an Deinen digitalen Ausgang sendest eine LED schalten?

Gruß Markus
Blöde Frage Markus:
Wie startest du den Task wenn der Schwellwert überschritten wird und als Task nur noch eine leere Konstante vorhanden ist?

Ich meine ja nur, weil du den Task löscht sobald die Bedingung FALSE ist, was vermutlich direkt zu Anfang passiert.
Ich sagte, es ist noch nicht alles optimal und ich habe abends um 10 ehrlich gesagt keinen Bock, ein komplettes "Projekt" nachzubauen / optimieren. Ich hätte manches noch anders gemacht, aber mir ging es hier um's Wesentliche.

Gruß Markus
Smile Hatte nicht gesehen, dass es schon so spät war....

Ich habe das VI jetzt mal funktionsfähig gemacht (also zumindest so, dass ich es mit meiner HW am Platz testen konnte).

Sprosse, wenn du zwei analoge Eingänge vom selben Device einlesen willst, dann sollte man dies mit einem Task machen, besonders, wenn die Abtastrate gleich ist. Desweiteren kannst du nicht kontinuierlich Einlesen aber immer nur 1 Sample verarbeiten, das führt zu einem Bufferoverflow und somit zu einem Programmfehler. Du solltest dir ausserdem Gedanken darüber machen, ob es wirklich notwendig ist mit 1000 Hz die Daten zu lesen. Wie schnell kann sich die Temperatur denn verändern und wie schnell musst du darauf reagieren können?
In meinem Beispiel bin ich einfach mal davon ausgegangen, dass der Proyzess relativ langsam ist und es somit genügt mit 10 Messungen pro Sekunde die Werte einzulesen. Sobald ein neuer Zustand eintritt, sprich der Schwellwert 70°C über- oder unterschritten wird, setze ich nur einmal einen neuen Ausgabewert, da der Schreibvorgang prinzipell nur aufgerufen werden muss, wenn der ausgegebene Wert sich ändern soll. Ausserdem habe ich die Ausgabe auf Boolean abgeändert, da ich keinen Sinn darin erkennen konnte, dass du eine numerische 5 auf einen Digitalausgang legst. (Du kannst die Ausgangsspannung nur zwischen High und Low, sprich TRUE und FALSE umschalten, aber nicht selbst den Spannungswert mit einer numerischen Konstante festlegen.)

Ich hoffe dies Hilft dir weiter.

snip09
[attachment=24540]
Lv09_img2
[attachment=24539]
Warum benutzt du das Wait VI anstatt einfach beim AI 'ne Abtastfrequenz von 10Hz einzustellen?
Dimitri, ich kann es nur mit Gewohnheit rechtfertigen.... Wink

Du hast natürlich recht; es ist besser die Samplerate mit zugehörigem VI einzustellen.

So sieht das dann aus:
snip09
[attachment=24541]
... bestimmt etwas genauer.
' schrieb:... bestimmt etwas genauer.
Ob das bei langsam veränderlichen Temperaturen nötig ist...

Aber noch was anderes, keiner hier wundert sich über das folgende Konstrukt aus dem Original-VI und schleppt es blind mit:
[attachment=24542]
@Sprosse: Was willst du hiermit erreichen? Denn ich bin mir sicher, es macht nicht das, was du dir dabei denkst!
Geschehen tut nämlich das folgende: Die beiden DBL werden in U32 oder auch I32 gewandelt, dann erfolgt ein bitweises UND dieser beiden U32, und dieses Ergebnis wird dann gegen 70 verglichen.
Nur ein kleines Bsp: Erstes DBL meinetwegen 77.4, zweites gleich 96.4, Ergebnis der UND-Operation ist 64.

Gruß, Jens
Da hast du recht. ich habe mich zwar gewundert was das soll, aber nicht weiter darüber nachgedacht. Bei mir hatte es auch keinen Einfluss, da ich meine Eingänge lediglich mit 0V und 5V über Taster angesprochen habe.

Ich vermute Sprosse möchte Temp 1 und Temp2 gegen 70°C prüfen und dann wenn beide größer sind die Lampe ausschalten. (In meinem Code wird die Lampe dann übrigens eingeschaltet, was mir jetzt gerade etwas blöde vorkommt.)

Edit:
So sollte es jetzt passen... Smile

Es wird jetzt elementweise erst gegen 70° geprüft und dann solange geheizt, solange alle Temperaturen niedriger sind.
snip09
[attachment=24543]
Seiten: 1 2
Referenz-URLs