LabVIEWForum.de - Generatorsteuerung (Beispiele?)

LabVIEWForum.de

Normale Version: Generatorsteuerung (Beispiele?)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi ihr Lieben,

ich bin neu in LV und möchte einen generator über eine rs232 Schnittstelle ansteuern und hierfür ein user interface schreiben.

Ich habe bislang ein VI, das durch Registerkarten durchgeht und in dem ich meine Funktionen einbauen will.

Darüber hinaus habe ich ein VI, das eine Checksumme entsprechend meinem gerät berechnet und einen Befehlsstring erzeugt und ein VI, das den befehlsstring in hex auf das gerät bringt.

Habt ihr Tipps für mich, wie ich die VIs ineinander einarbeite, also dass ich eine Nutzereingabe machen kann statt eines festgeschriebenen Strings oder habt ihr vielleicht eigene Beispiele für eine ähnliche Ansteuerung eines Generators?

Vielen Dank im Voraus!
LG Kaya <3
Hallo Kaya,

zu deinen aktuellen VIs:
- "Befehlsstring aus 7 Werten": der Input sollte ein Array sein anstatt 7 einzelner Controls. Der Rest vereinfacht sich dadurch enorm… (Warum sind die Controls als U16 definiert, wenn es um 7 Bytes (=U8) geht?
- "SerielleKommunikation": Das sollte aufgeteilt werden in SerialInit, WriteCommand, ReadResponse, ClosePort. Init/Close muss nur je einmal aufgerufen werden, Write/Read bei Bedarf.
- Beispielmenü: Du verwendest weiterhin die Eventstruktur, um alle User-Aktionen auszuwerten. Der Tab ist nett, aber aus Blockdiagrammsicht "transparent" (d.h. nicht für den Programmablauf notwendig).

Du hast die LabVIEW-Grundlagen durchgearbeitet und kannst mit einem LabVIEW-Projekt, subVIs und Typedefinitionen umgehen?
Zumindest das Enum hast du (immer) noch nicht typdefiniert…
Hi Gerd,

danke für Deine Rückmeldungen. Ich habe Lv grundlagen 1 durchgearbeitet, aber trotzdem noch total am Anfang.
Mit Projekten und SubVIs kann ich was anfangen, Typdefinitionen sind mir noch nicht über den Weg gelaufen.

LG Kaya
Hallo Kaya,

mich irritiert auch ein wenig, wie du deinen Befehlsstring zusammenstellst und was du in dem anderen VI tatsächlich sendest. Das Ganze lässt mich vermuten, dass ein Befehl aus ein paar Buchstaben (und evtl. Zahlen) besteht. Daraufhin folgt ein Semikolon, eine Checksumme und ein Linefeed. Den Befehlsstring mit fest programmierten 7 Zeichen zusammenzustellen passt doch gar nicht dazu.

Was ist denn, wenn der Befehl aus nur drei Zeichen besteht (inclusive Semikolon), wie z.B. das "CC;" oder "AR;" aus deinem anderen VI. Was macht das Gerät, wenn die Checksumme ein Linefeed ist? Soweit so unklar.

Zu deiner Checksummenberechnung: Interessant - aber vor allem ist es sehr abenteuerlich :-)

Was du brauchst, das ist doch eher so etwas:

[attachment=62542]
Hi Martin,

ja, das ist genau, was ich brauche, vielen Dank dafür! Big Grin
Es war mein erstes VI, dementsprechend abenteuerlich... Construction

Tja, ich fürchte, es führt kein Weg dran vorbei, mich jetzt mit SubVIs und lokalen und globalen Variablen auseinanderzusetzen. Big Grin

LG Kaya
Ach so und die einzelnen Eingaben bei der Checksummenberechnung hatte ich so gedacht, dass man mit verschiedenen Eingaben umgehen kann, also zum Beispiel verschiedene Volt. Du hast aber Recht, dass das VI nicht mit unterschiedlichen Längen umgehen kann.

Woher hast du die Berechnung der Checksumme? Das NOT und +1 erschließt sich mir auch nach scharfem Nachdenken nicht. Tongue

LG Kaya
Hallo Kaya,

Zitat:Das NOT und +1 erschließt sich mir auch nach scharfem Nachdenken nicht.
Binäre Algebra?

In deinem VI hast du die U16-Werte addiert, dann per Q&R (modulo 0x100) auf das untere Byte begrenzt und dann rechnest du "0x100 - byte". Und diese Subtraktion ist dem NOT +1 ähnlich…
(28.07.2023 10:11 )Kaya schrieb: [ -> ]Woher hast du die Berechnung der Checksumme? Das NOT und +1 erschließt sich mir auch nach scharfem Nachdenken nicht. Tongue

Wenn man so lange wie ich mit und an Labview, Prüfständen, Messeinrichtungen usw. herum programmiert, dann ist das bei so einer einfachen Checksumme ein Blick, dass das sehr viel einfacher geht und nur ein paar Sekunden bis klar ist, wie das aussehen muss. Alles andere wäre mir eher peinlich - das kommt aber auch vor.

Ganz nebenbei: Mit globalen Variablen brauchst du dich nicht zu beschäftigen. Ich hatte noch nie die Notwendigkeit diese zu verwenden. Wenn du meinst, dass du unbedingt eine brauchst, dann denke nach. Du brauchst sie nicht, da bin ich 100% sicher.

Mit lokalen Variablen ist es etwas anders. Es gilt aber auch hier, dass sie nur sehr punktuell eingesetzt werden sollten (bei VIs mit Benutzeroberfläche). In SubVIs sind sie genauso überflüssig wie globale Variablen.
Tjaaa, bei mir sind's 3 Wochen Big Grin aber cool, dass es dieses Forum gibt!

Sind für die Erstellung von einem User Interface Registerkarten eigentlich eine gute Lösung um durch verschiedene Seiten mit Einstellungen zu navigieren, oder gibt es da was besseres?

LG Kaya
Hallo Kaya,

Zitat:Sind für die Erstellung von einem User Interface Registerkarten eigentlich eine gute Lösung um durch verschiedene Seiten mit Einstellungen zu navigieren, oder gibt es da was besseres?
Manche mögen TabContainer, manche hassen sie…
Was wollen denn deine User eigentlich haben? Gibt es ein Lastenheft?

Gegenvorschlag: Subpanels verwenden. Schau dir als Beispiel doch mal den Options-Dialog von LabVIEW an (Tools->Options)!
Seiten: 1 2
Referenz-URLs