LabVIEWForum.de
Servomex Messwerte auslesen über RS232/RS485 - 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: Servomex Messwerte auslesen über RS232/RS485 (/Thread-Servomex-Messwerte-auslesen-ueber-RS232-RS485)



Servomex Messwerte auslesen über RS232/RS485 - Chefkoch - 14.07.2016 13:57

Hi,
hat jemand schon mal bei einen Gasanalysator Servomex 4000 (z. Bsp. Servopro 4100) über die serielle Schnittstelle die Messwerte abgefragt (Modbusprotokoll)?
Wenn ich den Servomex auf "Dauersenden" stelle, kann ich die Messwerte empfangen, aber das gezielte Auslesen will irgendwie nicht.
Wer kann mir bitte eine kleine Ausleseroutine zusenden?
Danke
Robert


RE: Servomex Messwerte auslesen über RS232/RS485 - jg - 14.07.2016 16:38

LabVIEW Modbus-API gibt es inzwischen "zu Hauf", kostenlos und kostenpflichtig.

http://www.ni.com/example/29756/en/
https://lavag.org/files/file/286-plasmionique-modbus-master/
https://decibel.ni.com/content/docs/DOC-30140

Jetzt musst du dich "nur" für eine entscheiden, deine Gegenstelle richtig konfigurieren, dich durch die Doku von Servomex arbeiten und die richtigen Register abfragen, dann sollte es funktionieren.

Was funktioniert bei "gezieltem Auslesen" nicht? Was versuchst du?

Gruß, Jens


RE: Servomex Messwerte auslesen über RS232/RS485 - Chefkoch - 15.07.2016 13:39

Hallo Jens,
ich habe die Ansteuerung wie folgt versucht:
1. Die Schnittstellansteuerung habe ich wie beim „continuous mode“ gelassen, den das funktioniert ja, also sind die Schnittstellparameter richtig und das Kabel in Ordnung. Dann bekomme ich im Sekundentakt eine String mit alle Messwerten übermittelt.
2. Dann habe ich den Seromex auf Modbus RTU umgestellt
3. die standartmäßig eingestellte Adresse ist 247, das entspricht hex F7
4. Daran angehängt dann hex 04, so wie es im Anhang B steht.
5. Zum Auslesen des ersten Registers 30001, das entspricht hex 7531
6. Dazu Checksumme CRC, errechnet hex 156F

Der gesamte String heißt dann : F704 7531 156F

Hab aber keine Ahnung, ob das eine Sinn ergibt was ich da gemacht habe. Wenn ich den String auf die Schnittstelle sende, kommt nicht noch nicht mal ein Error Code oder so was.

Hab auch noch andere Kombinationen ausprobiert, geht aber alles nicht.

Hab mal die beiden entscheidenden Seiten aus dem Manual gescannt.

Gruß und schönes Wochenende

Robert


RE: Servomex Messwerte auslesen über RS232/RS485 - Chefkoch - 15.07.2016 14:24

Update:

Hab noch mal was probiert:

Habe an den oben genannten String eine 0001 für die Anzahl der abzufragenden Register angehängt.

Draus ergibt sich für die Abfrage: F704 7531 0001 6E9F

dann kommt tatsächlich eine Antwort vom Servomex: F784 0222 F3

Habe es auch mit einer anderen Anzahl der abzufragenden Register versucht, natürlich dann auch mit anderen Checksumme. Aber es kommt immer F784 0222 F3 als Antwort. Wenn ich das richtig interpretiere bedeutet das: "Nicht bearbeitbarer Registerraum"


RE: Servomex Messwerte auslesen über RS232/RS485 - jg - 15.07.2016 14:50

Wieso mühselig selber HEX-Strings zusammenbasteln, wenn es fertige APIs gibt? Mach dir doch nicht unnötig das Leben schwer. Immerhin hast du inzwischen eine Antwort bekommen, also funktioniert der Modbus-Slave.

Gruß, Jens

EDIT: Und ja, die Antwort bedeutet Modbus Exception Code 2:
[attachment=56302]

Versuch mal Folgendes:

1) 2 Adressen auf einmal abfragen, der Messwert steht in 2 Registern.
2) Frag mal Adressen 1 & 2 ab, die Dokus haben gerne mal die Register-Typ mit in die Adresse reinverheiratet
3) Es gibt leider keine eineindeutige Festlegung bei Start des Adress-Bereichs. Auf HEX-Ebene wird eigentlich bei Adresse 0 gestartet, manche Dokus haben aber mit Adresse 1 begonnen. Es könnte also sein, dass 30001 & 30002 auf Protokoll-Ebene 30000 & 30001 (bzw. 0 & 1) bedeuten.

EDIT 2:
Das Auslesen des ersten Kanals könnte mit der ersten API aus meiner Link-Liste z.B. so aussehen:
[attachment=56303]


RE: Servomex Messwerte auslesen über RS232/RS485 - Chefkoch - 18.07.2016 13:27

Hallo Jens,
vielen Dank für Dein Hilfe. Die nimodbus121.zip aus deinem ersten Link habe ich runter geladen, aber noch nicht das richtige VI gefunden, wo ich alle Parameter eingeben kann, um eine erste Abfrage komplett durchführen zu können. Müsste es doch eigentlich geben, sonst macht das wenig Sinn.
Bei deinem zweiten Link kommt nur die Mitteilung, das ich keine kompatibles Labview verwende (habe LV2013)
Irgendwie habe ich jetzt schon alles mögliche probiert und komme nicht weiter.
Hast du bitte noch mal einen Tipp für jemanden wie mich der sich mit MODBUS noch fast gar nicht auskennt?

Gruß
Robert


RE: Servomex Messwerte auslesen über RS232/RS485 - jg - 18.07.2016 13:54

Schau dir das Beispiel "MB Serial Example Master.vi" an:
[attachment=56316]
Gruß, Jens