Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

24.02.2006, 22:57

Kommunikatin über serielle Schnittstelle

Hi zusammen,

ich habe hier ein Windowsprogramm, welches über die serielle Schnittstelle mit einem KFZ-Waageinterface verbunden ist. Soll heissen, dass man damit PKWs wiegen kann.
Allerdings ist die Windows-Software nicht wirklich toll und ich würde sowieso lieber Gentoo einsetzen. Nur gibt es für Linux keine Spftware für dieses Interface. Also will ich mir da selbst was schreiben, nur fehlen mir halt die Spezifikationen des Interfaces und das Wissen über den seriellen Port.
Ich habe einfach mal den Seriellen Port belauscht:

Request: 50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 00 00 00 00 0F 24 2F
Antwort entspricht 0kg

Request: 50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 41 A0 00 00 0F C5 D0
Antwort entspricht 20kg

Request: 50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 42 C8 00 00 0F AE B9
Antwort entspricht 100

Request:50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 45 9E C0 00 0F 3F 4A
Antwort entspricht 5000kg

Request: 50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 46 43 A0 00 0F 81 8C
Antwort entspricht 12520kg


A0 01 0B 01 80 47 28 48 00 0D 01 0C (43100kg)

A0 01 0B 01 80 42 20 00 00 0F 46 51 (40kg)

A0 01 0B 01 80 46 08 40 00 0F 2A 35 (8720 kg)

A0 01 0B 01 80 C1 A0 00 00 0F 45 50 (-20kg)

A0 01 0B 01 80 C2 20 00 00 0F C6 D1 (-40kg)

Request wird vom PC gesendet, die Antwort kommt vom Interface. Soweit ich weiss, übermittelt das Interface die Gewichte immer auf 20kg genau. Die kleinste Einheit ist also nach 0kg 20kg
Was am Interface von der Waage ankommt, wissen wir noch nicht. Wir können auch noch nicht sagen, ob dsa Interface diese Hex-Werte erzeugt oder nur weiterreicht.
Die Kilogramm-Angaben sind die Angaben, die das Interface und die Software anzeigen. Das Interface zeigt bis auf 20kg genau an. In wie weit jetzt die Waage genauer wiegen kann oder es auch macht, wissen wir nicht.Kann gut sein, dass die Hex-Werte den genauen kg-Wert darstellen und nur vom Interface und der Software auf volle 20kg gerundet werden.

Ich habe nun jetzt leider keine Ahnung vom seriellen Port. Läuft dort die Kommunikation immer hex ab?
Der Request ist ja immer gleich, das könnte man also nachprogrammieren.
Aber die Antwort verstehe ich nicht ganz.
Die ersten 5 Pakete sind immer gleich, was könnte dies sein?
Ich rate mal, dass die folgenden 4 Pakete irgendwie das Gewicht verschlüsseln, da diese bei 0kg genau alle 0 sind.
dann folgt immer ein 0F, was könnte dies sein? Und was bedeuten die letzten beiden Pakete?
Kann man aus den hier geposteten Daten irgendwie Rückschlüsse auf das übermittelte Gewicht ziehen?

Die Waage kann bis 60000kg wiegen, darüber würde sie durchbrechen :o)
Ich habe jetzzt nur 2 negative Werte, aber den negativen Werten sollen nach unten auch keine Grenzen gesetzt sein.
Die kg-Zahlen sind die Zahlen, die das Interface und die Software anzeigen. Also muss das Interface die kg-Zahl irgendwie in diesen Hex-Werten verschlüsseln und an die Software auf dem PC schicken. Dort wird sie dann wieder von der Software dekodiert und angezeigt.
Wenn man hier von Kodierung sprechen kann...

Ein Hexeditor hat mich da bisher nicht weitergebracht, der zeigt nicht wirklich brauchbare Daten an.
Wenn sich hier jemand mit der seriellen Schnittstelle auskennt, wäre ich für jeden Tip dankbar.

Viele Grüsse
Macbeth

2

25.02.2006, 14:56

Schonmal versucht beim Hersteller eine Schnittstellenbeschreibung zu bekommen ???
Wer einen Rechtschreibefehler findet darf ihn behalten und sammeln. Bei 100 gefundenen gibt's einmal gratis "aus-dem-Bus-winken" .

Was zwei Hunde können, dass können drei Hunde besser.

3

25.02.2006, 19:26

Gesendet wird immer binär. Das Programm zeigt es dir halt als HEX an, da das einfach die übliche Art ist.
Wird dir nichts übrig bleiben, als
  • vom Hersteller eine Antwort abzuwarten, wie die Werte kodiert sind
  • selbst darauf zu kommen (wohl zu aufwendig)
  • alle Werte zu protokollieren, und damit eine komplette Liste aller möglichen Werte haben (wohl viel zu aufwendig)

Bliebe letztendlich noch Google, vielleicht liefert das was.
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.