# CRC16-Berechnung



## CBRA (7 September 2007)

Hi an alle,

ich bin neu hier und hab da mal eine Frage an euch.
In naher Zukunft muss ich einen FC bzw. FB schreiben der eingehende Telegramme (von RS232) einlesen sollte und die gesendete Prüfsumme berechnen und mit der gesendeten vergleichen muss. Anschließend sollen verschiedene DATA-Bytes an HMI übergeben werden.
Desweiteren soll ein weiterer FC bzw. FB erstellt werden der Telegramme mit variablen DATA-Bytes berechnet und diese dann an eine externe Anlage zur Weiterverarbeitung sendet. Eine schematische Darstellung des Ablaufes der Berechnung lege ich mal in den Anhang.

Falls jemand mir dabei helfen könnte, wäre ich ihm jetzt schon sehr dankbar. Sicherlich ist für einen erfahrenen SPS-Programmierer das kein Thema, aber ich stehe noch am Anfang und bin über die absolute Programmierung nicht weiter gekommen. Auch einfache Lösungsansätze bzw. Links sind hilfreich.


----------



## zotos (7 September 2007)

Schau mal ein der oscat.lib nach, da sind unter Logic_others zwei CRC Bausteine drin. Vielleicht passen die ja.


----------



## gravieren (8 September 2007)

Hi CBRA

Für Feedbacks sind wir offen   

(Rückmeldung, ob der OSCAT-Baustein seinen "Dienst" erfüllt)


----------



## CBRA (9 September 2007)

Hi gravieren,

eigendlich nicht so richtig, denn in diesem OSCAT war nicht der gesuchte CRC-Check- bzw. CRC-GEN-Baustein enthalten. in der PDF "oscat Library Reference" stand hierzu etwas drin, aber im ZIP-File nicht. Muss nochmal auf die Suche gehen.


----------



## gravieren (9 September 2007)

Hi CBRA



> eigendlich nicht so richtig, denn in diesem OSCAT war nicht der gesuchte CRC-Check- bzw. CRC-GEN-Baustein enthalten. in der PDF "oscat Library Reference" stand hierzu etwas drin, aber im ZIP-File nicht.


 

Wenn du von ZIP-File redest, das hast du die Version für Step 7.

CRC_GEN und CRC_CHECK ust seit der OSCAT-S7 Version 0.14 Implementiert.




> Muss nochmal auf die Suche gehen.


Mein Tip, suche doch noch mal in der OSCAT-S7 der Beistein sollte vorhanden sein.
Im Ordner Logic Others gemäss Beschreibung.

Solltest du Links zum Thema CRC16 benötigen, so kann ich dir welche besorgen.
(Jedoch alle Sourcen für C, C++, BASIC)


----------



## CBRA (9 September 2007)

Hi gravieren,
alles schon gefunden, war eine Sucherei.
Ja, schicke mal ein paar Links zum CRC-16. Der Baustein aus OSCAT ist für einen CRC-32 aufgebaut und ich kann das Ding nicht umprogrammieren. 

mfg CBRA


----------



## gravieren (9 September 2007)

Hi



> Der Baustein aus OSCAT ist für einen CRC-32 aufgebaut


Nein, du braucht nur das Polynom anzugeben.
Dieser Baustein beherscht etliche CRCs

z.b. 
CRC-16-CCITT "CRC-CCITT"XMODEM,X25, V41,Bluetooth, PPP,IrDA;

"CRC-16"USB, many others;




> Ja, schicke mal ein paar Links zum CRC-16.


Sollte der Bausein NICHT passen, sende ich dir die Links  ​​​


----------



## CBRA (10 September 2007)

Hi

hab es gefunden und bin am probieren. Bin mal gespannt ob der Baustein richtig mein Telegramm berechnet. 
ich werde mir erstmal die Bausteine ansehen, die Dokumentation genau lesen und probieren. Mein Datenbaustein mit dem extern geprüften Telegramm ist ja vorhanden. das dumme ist, ich habe verschieden große Telegramme die berechnet werden müssen. Vielleicht hast du ja noch ein paar Tipps hierzu. Wenn nicht steht es dann sowieso im Forum.

Gruß
Carsten


----------

