Morgen zusammen, ich habe hier gerade einen Thread gelesen, in dem es um die Berechnung bzw. Nachvollziehung einer CRC16-CCITT-Prüfsumme geht. Ein solches Problem habe ich auch; ich möchte, bevor ich anfange, eine Auswertung zu programmieren, zu allererst mal die Vorraussetzungen prüfen: Ich habe einen elektronischen Drehstromzähler Marke ISKRA eHZ-EDL Typ MT681 (Das ist ein normaler neuzeitlicher Einrichtungszähler). Aus diesem möchte ich die aktuellen Daten auslesen und habe zu dem Zweck die optische Schnittstelle mit einem Auslesekopf (Optical Probe OP-300) per RS-232 abgefragt. So weit klappt das prima; ich kann mit dem Terminalprogramm m.E. sinnvolle SML-Datenpakete empfangen. Laut SML-Spezifikation (https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03109/TR-03109-1_Anlage_Feinspezifikation_Drahtgebundene_LMN-Schnittstelle_Teilb.pdf?__blob=publicationFile&v=2) beginnt ein Telegramm mit vier mal '1B' (Start Telegramm) , dann kommt vier mal '01' (Start SML-V.1-Nachricht) gefolgt von den Nutzdatenpaketen. Am Ende des Telegramms erscheint wieder vier mal '1B', dann '1A', ein Füllbyte und als letzte zwei Bytes eine Prüfsumme gemäß 16 Bit CRC-CCITT. Hier liegt nun mein Problem: ich komme beim Überprüfen nicht auf diese Prüfsumme. Wenn ich das komplette Datenpaket ohne die letzten zwei Bytes in einen der Online-CRC-Rechner kopiere (http://www.sunshine2k.de/coding/javascript/crc/crc_js.html) müsste doch die dort angezeigte Prüfsumme mit der im Telegramm mitgeschickten übereinstimmen ? Bzw. wenn ich die komplette SML-Nachricht inklusive der letzten beiden Bytes berechnen lassen, müsste 'Null' herauskommen. Soweit die Theorie; ich habe als Generatorpolynom CRC-CCITT (x^16 + x^12 + x^5 + 1) sowohl in Form von 16#1021 als auch bitreihenfolgengedreht in Form von 16#8408 ausprobiert, einen CRC-Startwert von 16#FFFF (laut Spezifikation) oder 16#0000 und so fort. Wo ist da mein Denkfehler ? Anbei mal zwei der mitgeschriebenen Telegramme, eins normgerecht geloggt mit 8N1, das andere versuchsweise mit 7E1 (las ich an einer anderen Stelle als Kommunikationseinstellung). Kein Online-Prüfprogramm gibt die erwarteten Daten aus. Irgendeine Idee ??
Hier nochmal zur Veranschaulichung ein Bild: Rechts unten das empfangene Telegramm und links und oben in je einen Online-Rechner eingefügt. Nirgendwo erscheit '09 A8'...
Gelöst !! Prima, alleine durch ins Forum schreiben hat sich das Problem nach drei Tagen gelöst: Man muss alles anknipsen, was geht: Eingang und Ausgang 'reflekten' und am Ende nochmal verXODERn. Mann... Danke jedenfalls, Michael
Die 7E1 Datei ist ungültig. Die 8E1 Datei kann ich komplett interpretieren. Auf die Schnelle sehe ich da: 1.0.1.8.0. 125776312 * 10^-1 Wh 1.0.1.8.1. 125776312 * 10^-1 Wh 1.0.1.8.2. 0* 10^-1 Wh 1.0.10.7.0 54W 1.0.24.7.0 27W
> Die 7E1-Datei ist ungültig. Das entspricht auch der Theorie. War nur ein Versuch :-) > Die 8N1-Datei kann ich komplett interpretieren. Das ist jetzt mein nächster Schritt; ich wollte zuerst die Prüfsumme auswerten. Danke fürs Mitdenken, Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.