LabVIEWForum.de
visa resource name - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: visa resource name (/Thread-visa-resource-name--27442)



visa resource name - Ina-Pina - 29.03.2015 16:24

Hallo zusammen,

ich hab ein kleines Problem und weiß nicht, ob es an Labview liegt oder an meinem PC. Ich lese eine Waage über Visa ein. Wenn das Programm alleine läuft, klappt alles wunderbar. Benutze ich es aber im Hauptprogramm (Energiebilanz am Motor) führt er die While - Schleife nicht aus. Geh ich mit der Sonde auf die Leitungen, zeigt er, dass er keine COM Verbindung hat, obwohl sie als Konstante festgelegt ist. Das seltsame ist, mach ich eine zweite While - Schleife um Visa Resource Name, findet er den COM, verlässt aber nicht die Schleife!?
Kann mir einer Helfen???
Das Problem habe ich übrigens auch bei einer Case-Schleife. Die Bedingung ist ein Bedienelement, wechsel aber nie auf true wechselt. Egal ob ich das Bedienelement betätige oder nicht. In eine Wihle - Schleife, wechsel das Bedienelement auf true und false, verlässt aber nicht die Schleife.
Wieso nur?

Wär schön, wenn einer eine Idee hätte, woran das liegt.

MFG Ina


RE: visa resource name - GerdW - 29.03.2015 17:35

Hallo Ina,

bist du nicht auch der Meinung, dass wir dir viel besser helfen könnten, wenn wir einen Blick auf dein VI werfen könnten?
Glas2


RE: visa resource name - Ina-Pina - 29.03.2015 18:50

Ja vielleicht, hätte ja auch sein können, dass es am PC liegt


RE: visa resource name - jg - 29.03.2015 19:54

Hier eine Reihe von Kritikpunkten an deinem VI:

- zu viele lokale Variablen
- VI lässt sich nur durch den Abort-Button abbrechen.
- 4 deiner While-Schleifen laufen ungebremst und treiben damit die CPU-Auslastung ganz schön hoch...
- Für die gleichzeitige Überprüfung > UND < gibt es die "In Range and Coerce" Funktion.
- Wozu ungebremst die Drehzahl auf Grenzüberschreitung überprüfen, wenn du sie sowieso nur alle 10 Sekunden neu berechnest?
- Bitte NIE das Label eines Controls/Indicators wegeditieren. Wenn du es im FP nicht brauchst, dann dort das Label aus der "Visible" Liste entfernen.
- Bei einem Slide Bar kann man einen numerischen Indicator aktivieren, damit sparst du dir die parallelen numerischen Anzeige-Elemente.
- Dein String "Datenausgabe" wird immer länger und länger, da du hier keine Begrenzung eingebaut hast. Irgendwann führt das zu Speicherüberlauf.
- Wieso öffnetst und schließt du COM4 immer IN der While-Schleife, bei COM3 hast du es korrekterweise davor und danach gemacht.
- Verwendung von "Bytes at Port" bei nicht deaktivertem Termination Char, das passt meist nicht zusammen.

Gruß, Jens


RE: visa resource name - Ina-Pina - 29.03.2015 20:46

Hallo Jens,

ich beschäftige mich mit Labview noch nicht wirklich lange und mit den lokalen Variabeln weiß ich, dass es nicht gut ist. Mit den While-Schleifen hast du voll kommen recht, das werde ich gleich ändern. Mit der Funktion in range an coerce werde ich es gleich mal versuchen. Die Funktion kannte ich noch gar nicht. Die Anzeigeelement hatte ich auch erst über "Sichtbar" an der Slide-bar dargestellt. Aber da hat er die Formatierung der Fließkommastellen nicht erkannt. Mit den Bytes at Port, meinst du die Baudrate oder??? Die habe ich aus dem jeweligen Manual.
Mit der COM 4 Schnittstelle, die immer in Schleife ausgeführt wird, das habe ich so gemacht, da es außerhalb der Schleife nicht ging.

Danke für deine Anregungen
Gruß Ina


RE: visa resource name - jg - 29.03.2015 21:51

(29.03.2015 20:46 )Ina-Pina schrieb:  Die Funktion kannte ich noch gar nicht. Die Anzeigeelement hatte ich auch erst über "Sichtbar" an der Slide-bar dargestellt. Aber da hat er die Formatierung der Fließkommastellen nicht erkannt.
Die Formatierung des Digital Display kannst du z.B. interaktiv anpassen, du musst es nur vorher auswählen:
[attachment=52681]
Und eine PropertyNode "nur" des Digital Display kannst du z.B. über Rechtsklick im Frontpanel erzeugen.
(29.03.2015 20:46 )Ina-Pina schrieb:  Mit den Bytes at Port, meinst du die Baudrate oder??? Die habe ich aus dem jeweligen Manual.
Nein, ich meine deine Abfrage "Bytes at Port" vor dem "Visa Read" bei der COM3 Kommunikation. Häufig ist das bei aktiviertem "Termination Character" kontraproduktiv, da "VISA Read" bei Auftreten des "Termination Character" im Bytestream das Lesen beendet. Hier solltest du einmal in deinem Kommunikationsprotokoll nachschauen, ob deine Gegenstelle jetzt mit oder ohne Term-Char arbeitet!
(29.03.2015 20:46 )Ina-Pina schrieb:  Mit der COM 4 Schnittstelle, die immer in Schleife ausgeführt wird, das habe ich so gemacht, da es außerhalb der Schleife nicht ging.
Wieso sollte etwas, was bei COM3 geht, bei COM4 anders sein?

Erzähl doch mal mehr über deine COM-Gegenstellen...

Gruß, Jens

EDIT: Weitere Kritikpunkte:
- Genauso wie man Labels nicht wegeditieren sollte sollte man auch nicht mehrmals in einem VI dasselbe Label vergeben. Wenn du im FP denselben Namen brauchst, dann lass dir dort die Caption bzw. Untertitel anzeigen und ändere dort den Text. Das Label dagegen sollte eindeutig und aussagekräftig sein, so dass man gleich im Blockdiagramm den Sinn erkennt.
- Einige Schleifen sind ziemlich überflüssig. Wieso z.B. die Berechnung der Drehzahl in der entsprechenden Erfassungsschleife erledigen und dafür diese Erfassungsschleife mit 10 sek Takt laufen lassen. Wieso muss die Berechung der Leistung in eine eigene Schleife, die mit demselben Takt läuft wie die Erfassungsschleife für Strom und Spannung? Selbiges gilt für die Grenzwertüberprüfungen.


RE: visa resource name - GerdW - 30.03.2015 09:04

Hallo Ina,

Zitat:mit den lokalen Variabeln weiß ich, dass es nicht gut ist
Du weißt, dass sie kontraproduktiv sind - und trotzdem nutzt du sie extensiv… Hmm

Noch ein Nachtrag zu Jens' Liste:
- Wozu so viele "Stopp"-Buttons? (Mehr als einer…)
- Wozu überhaupt Stopp-Buttons, wenn die Hälfte der Loops auf "unendlich lange laufen" programmiert wurde? Hmm