Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
27.03.2014, 11:37 (Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2014 11:38 von Hattorii.)
Ich möchte u.a. 3 Waagen von Sartorius auslesen und habe diese über eine USB-SChnittstelle mit dem PC verbunden. Diese werden aufgrund der Einstellung an der Waage nun als COM-Port erkannt und problemlos im Geräte-Manager angezeigt.
Das Problem ist, dass sich mein HOST.vi immer wieder aufhängt. Ich bekomme folgende Fehlermeldung:
__________________________________________________________________________________
Error 1073807313 occured at VISA Read in HOST.vi
VISA: (Hex 0xBFFF002F) You must enable events on the speficied type in order to receive them.
__________________________________________________________________________________
Ich habe danach gegoogelt und was gefunden. Da mein Englisch aber nicht sehr berauschend ist bin ich nicht sehr viel weiter gekommen.
Kennt den Fehler vielleicht schon jemand und kennt eine Lösung?
PS: HOST.vi befindet sich im Anhang
Grüße,
Hattorii
NACHTRAG:
Das Komische ist, dass es mit 2 Waagen mal funktioniert hat und ich habe seit dem auch nicht großartig was am HOST.vi verändert...
hast du schon mal auf die CPU-Last deines RT-Systems geschaut?
Du hast dort mindestens eine Schleife, die ungebremst läuft und nutzlos CPU-Last erzeugt!
Ein weiteres großes Problem ist das andauernde Initialisieren und Schließen der COM-Ports! Was soll das? In welchem Beispiel-VI hast du das gelernt?
Wenn du ein TermChar nutzt (zumindest hast du das so eingestellt), brauchst du kein BytesAtPort verwenden!
Ich bin mir ziemlich sicher, dass man das hier:
durch ein ScanFromString mit "%f" ersetzen kann…
Du hattest Recht, nachdem ich die ganzen Schleifen mal gebremst habe, hat es funktioniert. Ich habe nun aber ein anderes Problem. Komischerweise kann er über "Waage 2" und "Waage 3" das Gewicht problemlos auslesen, über "Waage 1" jedoch nicht. Kann man z.B. den COM-Port 3 über "Waage 2" und "Waage 3" auslesen, funktioniert dies nicht wenn man den Reiter bei "Waage 1" auf COM-Port 3 stellt.
Keine Ahnung woran das liegen kann. Vorschläge?
Grüße,
Hattorii
31.03.2014, 17:15 (Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2014 17:16 von jg.)
Wenn du etwas verändert hast, dann bitte hochladen. Aktuell enthält dein Host-VI kein Reiter- bzw. Tab-Control.
Und zur Klarstellung: Deine 3 Waagen hängen an 3 unterschiedlichen COM-Ports?!
Konstruktiver Vorschlag: Es wäre vielleicht eine gute Idee, die Waage-Abfrage-Schleifen irgendwie zu starten und zu stoppen. Wenn dein VI erst mal läuft, geht das eigentlich nicht mehr. In der Standard-Einstellung greifen alle 3 Schleifen erst einmal auf COM1 zu, das führt garantiert zu unerwünschten Nebeneffekten.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
dein VI enthält immer noch nicht die angemahnten Änderungen…
Zitat:Ein weiteres großes Problem ist das andauernde Initialisieren und Schließen der COM-Ports! Was soll das? In welchem Beispiel-VI hast du das gelernt?
Wenn du ein TermChar nutzt (zumindest hast du das so eingestellt), brauchst du kein BytesAtPort verwenden!
durch ein ScanFromString mit "%f" ersetzen
Und 4mal 100ms Wartezeit in ein und derselben Schleife ist nicht hilfreich…
Großen Dank an euch beide, Ihr helft mir immer sehr weiter.
@jg
Ich habe das VI nun so geändert, dass nicht alle erst einmal auf COM-Port 1 zugreifen. Dann die Schleifen mit Start und Stop Buttons versehen.
@Gerd
Ich weiß nicht warum aber das beim Entfernen von "VISA Close" wollte er auf ein mal nichts mehr auslesen. Die anderen Anmerkungen habe ich umgesetzt, Danke sehr.
Komischerweise hat es danach immer noch nicht geklappt. In meinem "Test-VI" konnte er immer alle Waagen auslesen nur nicht im HOST.vi. Daher habe ich dem HOST.vi nun mein Test.vi hinzugefügt und lass es dann über globale Variablen über mein Test.vi laufen und es funktioniert
Ich weiß es ist nicht die schönste Lösung aber es funktioniert.
- Im VI "Waagen" werden immer noch andauernd COM-Ports initialisiert und wieder geschlossen.
- Du hast da Case-Strukturen, an denen eine TRUE-Konstante am Selektor hängt. Wozu?
Das VI kann keine Lösung sein…
Wenn ich die Initialisierung und Schließung der COM-Ports entferne funktioniert es wiederum nicht mehr.
Zur Case-Struktur: Das ist noch ein Relikt vom ursprünglichen VI bei dem da ein "Control" war. Das war halt die schnellste Methode um es umzuschreiben.
Ich merke schon Gerd es tut dir in den Augen weh so wie das VI aussieht
Ich werde noch mal versuchen die Initialisierung aus der Schleife rauszunehmen.