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!
Hallo liebe LV-Gemeinde,
ich stecke in einem Projekt zur Automatisierung eines Messvorgangs, bei dem eines der Geräte über Modbus-Protokoll
zum Sprechen gebracht wird. Diese Komunikation hackt nicht immer, aber immer öfter.
Hier ein paar Details: Der Treiber ist ein für meine Zwecke modfizierter ganz normaler NI-Modbus-Vi.
Die Befehle werden über USB auf einen virtuellen COM-Port gegeben der von einem USB auf RS232 Konverter
erzeugt wird. Es hat sich herausgestellt, dass die Wandlerchipart oder die Hersteller nicht der Grund für das Hängen sind.
Nachdem Wandler bleibt es seriell und im Gerät drinnen wird das Signal noch Mal verwurstet.
Diese Komunikation von Computer zu dem seriellen Gerät hält das ganze Program an (keine Eingaben mehr möglich) und erst!! nachdem man die Verbindung manuell durch Ziehen des Steckers unterbrochen und gleich wieder eingesteckt hat geht es mit einigen Informationsverlusten normal weiter.
Die Frage, die sich mir stellt ist; Auf was wartet das Program. Steckt evtl. NI-VISA dahinter.
Ich bedanke mich für hilfreiche Anworten.
Viele Grüße
Stefan
Hallo stevenhiker,
sinnvolle Möglichkeiten hier wirklich effizient weiter zu kommen wären:
-Bereitstellung deines VI's
-Protokollierung der Schnittstellen
-und natürlich Informationen wie es zu dem Erkenntnisgewinn
Zitat:dass die Wandlerchipart oder die Hersteller nicht der Grund für das Hängen sind
gekommen ist.
1Postingempfehlungen, 2Motivation Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
Ich bin mir fast sicher, dass NI VISA dahinter steckt. Die VIs können sich aufhängen im Falle, wenn die Gegenstelle dein Befehl nicht verstanden hat, du wartest aber auf eine Antwort.
Checke alle deine Befehle, die du zum Gerät abschickst, versuche rauszufinden an welchen VIs es am meisten Probleme macht.
' schrieb:Die Befehle werden über USB auf einen virtuellen COM-Port gegeben der von einem USB auf RS232 Konverter
erzeugt wird.
Also gerade bei USB-RS232 Konvertern hat man (auch hier im Forum) schon öfters von Problemen gehört und gelesen. Von welchem Hersteller ist denn der Konverter?
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!
Hallo Jens,
der Konverterhersteller scheint, wie bereits gesagt nicht zu sein.
Aufgetreten ist das Problem mit einem Digitus, aber auch nur
bei einem Kunden sonst nicht. Andere Hersteller haben ähnliche
Hänger hervorgerufen.
Ich glaube auch, dass die NI-Visa dahinter steckt.
@Imexporty: das mit dem Protokollieren der Schnittstelle
ist vielleicht noch ein guter Weg zur Diagnose.
Danke für Eure Hilfe.
Stefan
Hi,
ich bin mit dem Problem doch keinen Schritt weiter.
Anbei noch der Code wo es 'scheinbar' zu hängen scheint.
Zusätzlich noch die Info.
Auf allen Rechnern, die mit einer herkömmlichen Grafikkarte
oder Bildauflösung (1024x768) ausgestattet sind scheint der
Fehler nicht aufzutreten. Bei Rechnern mit sehr hohem Auflösungsvermögen
wohl. Kann es sein, dass die Grafikkarte, Treiber mit dem LabVIEW
probleme hat. Es ist schon höchst merkwürdig was da passiert.
Dies ist nur ein verzweifelter Versuch, irgendeine Systematik in das
Problem reinzukriegen.
@imexporty: was sind geeignete Programme, um den USB Kom.-verkehr
abzuhörchen.
Danke für die Hilfe
Stefan
Hallo stevenhiker, da gibt's einige es kommt halt darauf an...was gefällt, was/wie aufgezeichnet wird ... (Kosten, Schnittstellen)...
viel Erfolg
1Postingempfehlungen, 2Motivation Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
Grundsätzlich wäre the NI Spy sicher schon mal ein guter Start. Damit kannst Du alle Aufrufe des VISA APIs und die dabei übergebenen/zurückgegebenen Parameter protokollieren. Vielleicht hilft das schon.
Ansonsten gibt es noch den PortMon von Sysinternals der das Ganze auf Widnows API Ebene macht. Das könnte eventuel helfen um Hängern des entsprechenden Serialtreibers für den USB Adapter zumindest auf die Spur zu kommen.
Hallo Rolf,
danke...
ich habe jetzt mal die Portkommunikation mitgeschnitten.
Das Dateiende ist somit der Hänger.
Vielleicht kennt sich da jemand ganz gut aus. Wie gesagt das Kom.Protokoll
ist Modbus.
Viele Grüße
Stefan
08.05.2009, 10:31 (Dieser Beitrag wurde zuletzt bearbeitet: 08.05.2009 10:32 von rolfk.)
Also Du scheinst den Port ja nach jedem Schreib/Lesevorgang abzuschliessen und wieder zu öffnen. Obwohl das eher nicht das eigentliche Problem sein wird ist das super ineffizient.
Vom Log her scheint nichts besonderes zu passieren. Da wird ein Kommand geschickt um ein Register zu lesen aber Deine Software scheint das Resultat nie lesen zu wollen. Warum das so ist weiss ich nicht. Es könnte sein dass das Gerät aus irgendeinem Grund nicht mehr antwortet. Und der Treiber erst Daten lesen will wenn da etwas empfangen wurde. Oder Du hast ganz einfach einen Bug in Deine Applikationslogik eingebaut. Das passiert sogar Profis ab und zu.
Was auch immer es ist Du wirst wohl oder übel ein kleines Testprogramm erzeugen müssen das das Problem reproduziert und hier mal uploaden.
Und bitte nicht für jeden IO Klacks den Port jedesmal neu öffnen.