Gibt es hier jemand der mir bitte helfen kann, ich suche ein Beispiel wir ich den CRC checksum ausrechen kann im Codesys. Es ist der standart CRC-CCITT
eks 3f01 hex ist CRC checksum = 058A
Jesper
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Gegenfrage: Kannst du denn etwas mit deinem Code anfangen?
Ich wage das mal zu bezweifeln!
Einfach den erstbesten Codeschnipsel aus dem Netz zu saugen und nachzudenken hinzurotzen wird dem guten Mann wohl kaum weiterhelfen.
@Tiak
vielleicht hilft dir das weiter.
FUNCTIONberechne_CRC : WORDVAR_INPUT
 wEingang : WORD;END_VARVAR
 wCRC16 : WORD;
 n : INT;END_VARVARCONSTANT
 c_wGenerator : WORD :=16#1021;  (*  x^16 + x^12 + y^5 + 1 = 16#1021 *)END_VARwCRC16 :=16#FFFF;wCRC16 :=wEingangXORwCRC16;FORn :=1TO8DO
 IF(wCRC16.0=TRUE)THEN
  wCRC16 :=SHR(wCRC16,1);
  wCRC16 :=wCRC16XORc_wGenerator;
 ELSE
  wCRC16 :=SHR(wCRC16,1);
 END_IFÂ
END_FORberechne_CRC :=wCRC16;
Gruß
Benjamin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Benjamin hat geschrieben:
@ gravieren
Gegenfrage: Kannst du denn etwas mit deinem Code anfangen?
Ich wage das mal zu bezweifeln!
Einfach den erstbesten Codeschnipsel aus dem Netz zu saugen und nachzudenken hinzurotzen wird dem guten Mann wohl kaum weiterhelfen.
@Tiak
vielleicht hilft dir das weiter.
FUNCTIONberechne_CRC : WORDVAR_INPUT
 wEingang : WORD;END_VARVAR
 wCRC16 : WORD;
 n : INT;END_VARVARCONSTANT
 c_wGenerator : WORD :=16#1021;  (*  x^16 + x^12 + y^5 + 1 = 16#1021 *)END_VARwCRC16 :=16#FFFF;wCRC16 :=wEingangXORwCRC16;FORn :=1TO8DO
 IF(wCRC16.0=TRUE)THEN
  wCRC16 :=SHR(wCRC16,1);
  wCRC16 :=wCRC16XORc_wGenerator;
 ELSE
  wCRC16 :=SHR(wCRC16,1);
 END_IFÂ
END_FORberechne_CRC :=wCRC16;
Gruß
Benjamin
Hi Benjamin
Vielen dank für dein Beispiel das war super und schnell . Ich habe es getestet und da ist ein Problem
Wen hex 3f01 auf der Eingang kommt 058A das ist IO
Aber wen ich 3F02 auf der Eingang kommt 1D9B das ist NIO soll 35E9 sein
und 3F09 auf der Eingang kommt 1AB5 das ist auch NIO soll 079A sein
Wenn du ein wenig Programmiererfahrung hast und vor allem weißt, was du mit dem CRC eigentlich bewirken willst, wirst du hier deine Lösung finden.
Die Programmierbeispiele in der zip-Datei sind sehr kompakt und verständlich.
Komme heute und morgen leider nicht mehr dazu den Code in ST zu übertragen. Davon abgesehen, lässt sich der CRC aber auch in AWL realisieren...nur nicht so einfach.
Gruß
Benjamin
edit:
mein Code im oberen Beitrag ist nicht ganz richtig, das muss ich leider eingestehen....
Er ist aber auch nicht so falsch, das man nich damit weiterarbeiten könnte!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo
Gibt es hier jemand der mir bitte helfen kann, ich suche ein Beispiel wir ich den CRC checksum ausrechen kann im Codesys. Es ist der standart CRC-CCITT
eks 3f01 hex ist CRC checksum = 058A
Jesper
Hi Tiak
CRC 16 bit ?
CRC 32 bit ?
Welcher, es gibt etliche, die sich CCITT nennen ?
Was willst du damit Coden ?
Es ist ein 16 bit CRC-CCITT 0x1021 x16 + x12 + x5 + 1
Ich muss es ausrechen für ein Kommunikation wo ich den richtige crc code brauche, und das ist nicht ganz so einfach für mich das zu kapieren
Grube aus Dänemark
Hi Tiak
O.K !
Werde mich mal "umhören"
Hi Gravieren
Das ist Super danke
Hi Tiak
Kannst du damit was anfangen ?
Humm nein leider nicht
@ gravieren
Gegenfrage: Kannst du denn etwas mit deinem Code anfangen?
Ich wage das mal zu bezweifeln!
Einfach den erstbesten Codeschnipsel aus dem Netz zu saugen und nachzudenken hinzurotzen wird dem guten Mann wohl kaum weiterhelfen.
@Tiak
vielleicht hilft dir das weiter.
Gruß
Benjamin
Hi
@Benjamin
Müßte mal den Komplementärcode ST <--> C suchen.
Jo, dein Code sieht cooler aus
@ Tiak
Ein Feedback wäre schön.
Gruß
Benjamin
Hi Benjamin
Vielen dank für dein Beispiel das war super und schnell . Ich habe es getestet und da ist ein Problem
Wen hex 3f01 auf der Eingang kommt 058A das ist IO
Aber wen ich 3F02 auf der Eingang kommt 1D9B das ist NIO soll 35E9 sein
und 3F09 auf der Eingang kommt 1AB5 das ist auch NIO soll 079A sein
Hast du da ein Tipp ich bin eibischen neu in ST
h**p://www.lammertbies.nl/comm/info/crc-calculation.html?crc=3f10&method=hex
Gruß Jesper
Auf dieser Seite bist du ja schon genau richtig.
Wenn du ein wenig Programmiererfahrung hast und vor allem weißt, was du mit dem CRC eigentlich bewirken willst, wirst du hier deine Lösung finden.
Die Programmierbeispiele in der zip-Datei sind sehr kompakt und verständlich.
Komme heute und morgen leider nicht mehr dazu den Code in ST zu übertragen. Davon abgesehen, lässt sich der CRC aber auch in AWL realisieren...nur nicht so einfach.
Gruß
Benjamin
edit:
mein Code im oberen Beitrag ist nicht ganz richtig, das muss ich leider eingestehen....
Er ist aber auch nicht so falsch, das man nich damit weiterarbeiten könnte!