Hallo,
vielen Dank für die Unterstützung!
Das Protokoll scheint dem MettlerMultiRange (MMR) ähnlich zu sein (siehe hier, Kapitel 5.1), aber mit ein paar Zusätzen.
Die COM-Port Einstellungen sind:
- 9600 baud
- 7 databits
- 2 stopbits
- even parity
- kein FlowControl/Hanshake
- RTS off
- DTS off
Ich denke das Protokoll unterstützt mehrere Wägezellen und deshalb haben diese eine 1-Byte-Addresse.
Zunächst scheint die SW nach Wägezellen zu suchen, und die Wägezelle antwortet mit ihrer Addresse 0x06:
>> 16 1B 3F
<< 06
Danach sind alle Befehle von der SW so aufgebaut: Address-Byte Befehl-String \r \n, also binär 06 ... 0d 0a
Nach dem Finden der Wägezelle schickt die SW ein "I" Befehl, vermutlich für Identifikation.
Daraufhin scheint die Zelle eine lange Antwort zu schicken, mit mehreren durch \r\n getrennten Teilen, und nach jedem solchen Teil muss die SW erneut die Zelle anfragen mit einem "leeren" Request bestehend nur aus der Addresse
>> 06 49 0d 0a "I"
<< 06 20 49 42 4c 0d 0a "IBL"
>> 06
<< 20 41 20 4f 49 4d 4c 20 41 0d 0a
>> 06
<< ...
<< 49 45 0d 0a "IE"
Das "IE" steht vielleicht für IdentifikationEnde und daraufhin hört die SW auf leere Requests zu schicken.
Insgesamt wird folgendes übermittelt:
IBL
A OIML A
L D D E F H I S
U kg +
S MI
MAX 6.000 kg
MIN 0.040 kg
T 6.000 kg
TH 6.000 kg
R0 0.002 kg/6.000 kg
E 1D
MR 0.0002 kg
F MI 2 1 2 3
F ML 1 1 2 3
F MS 1 1 2 3 4
F MZ 1 1
F MF 10 5 10 20
P LZ20-0-0108
I OF
IE
Alles anzeigen
Das sind wohl die Genauigkeiten + Messbereiche, sowie der Name der Zelle (LZ20-0-0108)
Danach tariert die SW die Zelle, das entspricht dem dokumentieren MMR Protokoll:
>> "T 0.000 kg"
<< "TBH 0.000 kg"
Und ab dann fragt die SW ca. alle 100ms die Waage nach dem aktuellen Gewicht, ebenfalls nach dem MMR Protokoll:
>> "SXI"
<< "SX G 0.542 kg N 0.542 kg T 0.000 kg"
Und hier sieht man das gemessene Gewicht
Manchmal zeigt die Waage an, dass sie noch nicht stabil ist:
>> "SXI"
<< "SXD G 0.542 kg N 0.542 kg T 0.000 kg"
Einmal im Trace kommt ein Austausch von "ER" Nachrichten, und die SW beginnt wieder von vorne mit der Identifikation. Das könnte eine Art Fehlerekennung & Reset sein...
Aber basierend auf diesem Trace könnte man versuchen eine eigene Ansteuerung zu programmieren. Ich würde sogar vermuten dass man die Suche nach der Zell-Adresse und die Identifikation auslassen kann: d.h. es sollte reichen den COM-Port richtig einzustellen und einen "SXI" Befehl an die Zelle zu schicken als binär 06 53 58 49 0d 0a
-> Klappt das bei dir? Und wenn ja: klappt das auch direkt nach dem Boot nach Strom-Anstecken ohne davor die Original-SW zu starten?
Denn leider kommt auf meiner UC-HTT-P Waage auch darauf keine Antwort, weshalb ich mich frage ob entweder meine Waage etwas anders ist, oder ob man noch abgesehen vom COM-Port die Wägezelle "aktivieren" muss.