CRC-Prüfsumme? CNC-Programm über RS232
-
Hallo Allerseits,
Hat von Euch einer Ahnung von Prüfsummen und deren Generierung....?
Ich schreibe gerade einen Postprozessor für die Umwandlung von CNC-Programmen auf andere CNC-Maschinen.In diesem konkreten Fall geht es um eine Deckel D11-Steuerung:
hier ein Beispiel:
%733*1 ( - -000038- - -ZENTRIEREN 11)
N10 G82 TA-5.7 OA0 SI2 EA2 MI0.5 HI0.1
?
0E2D%733*2 ( - -000030- - -BOHREN 11)
N10 G82 TA-22 OA0 SI2 EA2 MI2 HI0.1
?
0C47%733*3 ( - -000038- - -ZENTRIEREN M3)
N10 G82 TI-3 OA-25 SI2 EA2 MI0.5 HI0.1
?
0E52%733*4 ( - -000028- - -PUNGT)
N10 G81 TI-0.5 OA0 SI2 EA2
?
0A0C%733*5 ( - -000038- - -BOHREN 2.5)
N10 G82 TI-12 OA-25 SI2 EA2 MI1.5 HI0.1
?
0D52%733*6 ( - -000030- - -M3)
N10 G84 TA-31 OA-25 SI2 EA2 ST0.5
?
0A63%733*7 ( - -000058- - -FRAESEN 125)
N10 G41 G45 G1 X-62.5 Y-38 R5
N20 G1 Y38
N30 G40 G45 R3
N40 G0 Z2
?
119BDie Prüfsummen sind jeweils die 4 Ziffern unter dem Fragezeichen.
Weiß jemand wie ich diese Prüfsummen erzeugen kann?
Danke für Eure Hilfe!
Krishna
-
Dafür musst Du rausfinden welches System zur Erzeugung der Prüfsummen in dem System benutzt wird.
Solltest Du mal nach Deckel D11 googlen und rausfinden welches CRC verwendet wird.Ich gehe aber mal davon aus das es sich um ein CRC-16-Verfahren handelt, da die Prüfsummen ja scheinbar im Hex-Code angegeben sind.
Das Überprüfen und auch Erzeugen der Summen ist ganz einfach. Nur Modulo-2-Arithmetik.
-
Ach ja, vergessen: CRC-Prüfsummen werden über die Binärdaten erstellt. Kurz: Man nimmt die Binärdaten, hängt, bei CRC-x, x-1 Nullen an und berechnet den Rest mit dem CRC-Polynom. Der Rest ist die Prüfsumme und wird nun an die Binärdaten angehängt.
Zum Prüfen: Daten durch CRC-Polynom teilen, wenn Daten korrekt empfangen Rest=0, ansonsten Fehler in Übertragung
-
Hallo,
ersteinmal vielen Dank für Eure Hilfe!
Ich habe da ein bischen rumprobiert. Leider bekomme ich alles raus, bloß nicht die Prüfsumme, die ich haben möchte.Gibt es eine Möglichkeit, herauszufinden, welches Verfahren angewendet wurde?
-
Hallo,
Du solltest Dir die Spezifikationen für das Protokoll suchen. Dort muß festgelegt sein wie die CRC berechnet wird.
Sonst kannst Du ein Programm schreiben das alle Generatorpolynome durchprobiert und mit dem erwarteten Ergebnis vergleicht. Ist aber sehr umständlich und müßte für mehrere Daten gemacht werden. Aber was anderes fällt mir da jetzt nicht ein.
-
...hab ich mir so gedacht...
Hab auch im Netz nichts darüber gefunden.
Danke.