LabVIEWForum.de - Messgerät antwortet (mir) nicht

LabVIEWForum.de

Normale Version: Messgerät antwortet (mir) nicht
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Forum,

ich habe hier ein Messgerät mit RS485-Schnittstelle und einen dazugehörenden Konverter mit RS232.
Es gibt eine Hersteller-Software, die funktioniert, und mein LabVIEW-Programm, welches von dem Gerät keine Antwort bekommt.
Ich habe die Kommunikation mit einem Port-Monitor aufgezeichnet und verglichen, finde aber keine relevanten Unterschiede (mehr).
Es werden die IOCTL_SERIAL_SET_irgendwas mit den zugehörigen Bytes angezeigt, deren Bedeutung man bei microsoft findet.
Keine relevanten Unterschiede: z.B. XonLim, XoffLim, was nach meinem Verständnis nicht relevant ist.

Ablauf
Das Gerät gibt die gesendeten Bytes zur Kontrolle zurück.
Einstellungen: 9600, 8, 1, Space, kein Handshake, kein Parity-Replace
DTR wird gesetzt und bleibt es.

RTS wird gesetzt
Senden eines Adress-Bytes - Lesen des Adress-Bytes
Senden von 4 Bytes (vermutlich Empfänger-Adresse und Anzahl Bytes) - Lesen dieser 4 Bytes
Senden von zwei Bytes (wohl ein Kommando) - Lesen dieser 2 Bytes
Senden von 4 Bytes CRC - Lesen dieser 4 Bytes
RTS wird zurück gesetzt

Bei der Herstelle-Software sehe ich jetzt sofort die Antwort, bei meiner LabVIEW-Software kommt nichts.


Ursprünglich wurde das Parity-Bit verwendet, um das Adress-Byte zu kennzeichnen. Wie es wohl manchmal bei RS485 gemacht wird.
Laut Hersteller ist das aber deaktiviert und ich sehe auch in deren Kommunikation keine Änderung der Parity.

Sollten die gesendeten Bytes das Bit verwenden, müsste ich die Bytes ja trotzdem bekommen, da Parity-Replace deaktiviert ist.

Wo kann ich noch schauen? Was kann ich noch probieren?
Kennt jemand dieses Protokoll?
(Es erinnert ein bisschen an Modbus, aber dort habe ich weder das mit dem RTS, noch mit dem Kommando so gesehen...)

Viele Grüße
Nominas
Hallo Nominas,

Zitat:ich habe hier ein Messgerät mit RS485-Schnittstelle und einen dazugehörenden Konverter mit RS232.
Es gibt eine Hersteller-Software, die funktioniert, und mein LabVIEW-Programm, welches von dem Gerät keine Antwort bekommt.
Ich habe die Kommunikation mit einem Port-Monitor aufgezeichnet und verglichen, finde aber keine relevanten Unterschiede (mehr).
Welches Messgerät?
Gibt es eine Programmieranleitung vom Hersteller?
Gibt es eine Protokollbeschreibung vom Hersteller?
Wie sieht dein VI aus?
Hallo Gerd,

Zitat:Welches Messgerät?
Wir haben ja Kontakt zum Support des Herstellers, aber der ist sehr zäh...
In einer Mail stand "Die folgenden Informationen sind vertraulich und dürfen nur intern verwendet werden!", daher hoffe ich, wir kommen ohne Details zum Messgerät weiter...
Zitat:Gibt es eine Programmieranleitung vom Hersteller?
Gibt es eine Protokollbeschreibung vom Hersteller?
Es gibt weder Programmieranleitung, noch Protokollbeschreibung des Herstellers.
Im Moment warte ich auf einen direkten Kontakt zu einem Entwickler dort.
Bis dahin habe ich gehofft, dass sich hier jemand meldet, mit "Das Problem hatte ich auch schon" oder "Das Protokoll kenne ich von dem RS232 nach RS485 Wandler Soundso".
Zitat:Wie sieht dein VI aus?
Siehe Anhang (LV2021, ist eine ältere Version sinnvoll?))

Gruß
Nominas
Hi Nominas,

da das Gerät mit der Herstellersoftware antwortet und in LabVIEW nicht, liegt für mich die Vermutung nahe, dass du den serial buffer nicht richtig ausließt. Das war bei mir zumindest bei einem ähnlichen Problem die Lösung.

Hier wird das Ganze in einem anderen Forum erklärt:
https://forums.ni.com/t5/LabVIEW/read-a-...-p/3216778

-->
1. Look at the serial data format and determine if it is sending a termination character (Carriage return, Line feed, both?)
2. Use the VISA Serial setup VI to set the termination character and enable it
3. Set VISA read to read an arbitrarily high number of bytes.
4. Read until you receve the termination character or timeout (read will automatically stop on one of the two conditions if Termination Character is True)
5. Clear timeout errors

LG Kaya
Hallo Kaya,

da nicht mal ein einziges Byte zurückkommt, glaube ich nicht, dass das Problem beim termination character liegt...


Ich habe hier: https://www.moxa.com/getmedia/a07808dd-f...e-v1.0.pdf auf Seite 2 einen Hinweis gefunden.
Wenn das Messgerät also sofort antwortet, die Software aber zu lange braucht, um den Schnittstellen-Konverter mit RTS auf Lesen umzuschalten, bekomme ich die Antwort gar nicht mit.

Ich werde jetzt mal probiere, ob ich das im LabVIEW anders machen kann.
Aber vielleicht hat da schon jemand eine Lösung?

Gruß
Nominas
Hallo Nominas,

Zitat:Aber vielleicht hat da schon jemand eine Lösung?
Nimm doch einfach mal einen (preiswerten) USB-zu-RS485-Adapter, wenn du die Kommunikation mit deinem Gerät prüfen willst…
Referenz-URLs