LabVIEWForum.de
Generatorsteuerung (Beispiele?) - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Generatorsteuerung (Beispiele?) (/Thread-Generatorsteuerung-Beispiele)

Seiten: 1 2


Generatorsteuerung (Beispiele?) - Kaya - 27.07.2023 11:56

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


RE: Generatorsteuerung (Beispiele?) - GerdW - 27.07.2023 12:11

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…


RE: Generatorsteuerung (Beispiele?) - Kaya - 27.07.2023 12:26

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


RE: Generatorsteuerung (Beispiele?) - Martin.Henz - 27.07.2023 16:43

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]


RE: Generatorsteuerung (Beispiele?) - Kaya - 28.07.2023 09:47

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


RE: Generatorsteuerung (Beispiele?) - Kaya - 28.07.2023 10:11

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


RE: Generatorsteuerung (Beispiele?) - GerdW - 28.07.2023 10:58

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…


RE: Generatorsteuerung (Beispiele?) - Martin.Henz - 28.07.2023 15:13

(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.


RE: Generatorsteuerung (Beispiele?) - Kaya - 01.08.2023 08:43

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


RE: Generatorsteuerung (Beispiele?) - GerdW - 01.08.2023 09:01

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)!