Hallo Zusammen,
ich habe ein Problem beim auslesen von M-Bus Geräten und hoffe jemand hier hat evtl. schon Erfahrung damit und kann mir zumindest teilweise dabei helfen.
Ich verwende noch LV 7.1.
Ich möchte 2 unterschiedliche M-Bus Geräte über Labview auslesen. Dazu habe ich Sie an einem Pegelwandler (PW20; Relay) angeschlossen und den wandler über RS232 an den Pc angeschlossen.
Die Geräte hab ich über eine Software des Pegelwandler-Herstellers konfiguriert (Adresse etc..).
Das M-Bus Protokoll liegt mir vor und es gelingt mir Befehle an die Geräte zu senden und zu Empfangen.
1. Problem: die Befehle werden in ASCII übertragen und müssen in Hex gewandelt werden. Die Anzeige des Bedienelements auf HEX umzustellen genügt mir hierbei nicht. Daher wandle ich etwas aufwändig, die einzelnen Bestandteile des ASCII-Strings in Byte-Arrays und anschließend nach Fließkommazahl um. Dies funktioniert so einigermaßen aber nicht 100% zufriedenstellend.
->kennt jemand eine bessere oder komfortablere Lösung bei nicht jeder einzelne Bestandteil des ASCII-Strings auf diese weise Umgewandelt werden muss?
2. Problem: Ich weiß Anhand der Übertragungsprotokolle der beiden Geräte wie der Antwortstring aufgebaut ist und an welcher Stelle sich mein gewünschter Zahlenwert befindet, mir gelingt es jedoch nicht diesen Wert in den richtigen Dezimalwert umzuwandeln (den ich am Messgerät ablesen kann)
-> z.B. Hex: 910E 0000 = 273,5 Dez ;
wenn nur eine Stelle des 8 stelligem Codes belegt funktioniert die Umrechnung:
->z.B. Hex: F700 0000 = 247 Dez ;
Ich weiß, dass diese Frage sehr M-Bus Protokoll spezifisch ist, aber ich komm einfach nicht auf die Umrechnung des Wertes wenn mehrere HEX Stellen verwendet werden. Vielleicht hat ja jemand M-Bus Erfahrung und kann mir weiterhelfen (oder sogar ein VI).
Ich hab schon alle möglichen logiken verwendet; als nächsten Schritt würde ich mich wahrscheinlich an den Messgeräte-Hersteller wenden.
Vielen Dank schonmal und Grüße!