Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: CRC 16 Prüfsumme

  1. #1
    Registriert seit
    18.10.2006
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich brauche eine CRC 16 Prüfsumme für ein Projekt (Modbuskommunikation), leider bekomme ich das nicht ganz hin, vielleicht hat schon jemand einmal einen Code geschrieben (SCL).


    Ich hoffe es kann mir jemand weiterhelfen.

    mfg
    Thompsen
    Zitieren Zitieren CRC 16 Prüfsumme  

  2. #2
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge
    Zitieren Zitieren Suchfunktion verwenden  

  3. #3
    Thompsen ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.10.2006
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, hab ich schon gesehn aber danke.
    So habe ich das jetzt programmiert, aber ich bekomme immer das falsche ergebniss.

    Polynom := 2#1100000000000101;
    Daten := 2#1101001100001011;

    FOR i := 1 TO 16 DO
    temp := crc & 2#1000000000000000; // überprüfen ob vorderstes 0 ist

    IF(temp = 2#1000000000000000 )THEN
    temp2:= true;
    ELSE
    temp2:= false;
    END_IF;


    IF temp2 = True THEN
    Daten:= (Daten XOR Polynom );
    IF(i <> 16)THEN
    Daten:= SHL(in:=Daten, n:=1);
    END_IF;

    ELSE
    Daten:= SHL(in:=Daten, n:=1);
    END_IF;

    END_FOR;


    temp:= Daten;

    lg
    thompsen

  4. #4
    Registriert seit
    13.02.2006
    Beiträge
    130
    Danke
    14
    Erhielt 9 Danke für 7 Beiträge

    Ausrufezeichen

    Hallo, soweit ich weiß, arbeitet CRC16 mit einer Datentabelle, welche mittels XOR jeweils die einzelnen Bytes des Telegrammframes verknüpft.
    Wir haben hierfür einen FC mit DB geschrieben, welcher wie folgt aufgerufen wird:

    CALL FC 92 // FC für CRC-Berechnung
    CRC_Tabelle:=DB92 // DB mit den Daten zum Berechnen
    Datenfach :=DB90 // DB, für welchen CRC berechnet wird
    Offset :=1 // Angabe, ab welchem Byte begonnen wird
    Anzahl :=MW100 // Anzahl der involvierten Byte
    CRC :=MW102 // Rückgabe des CRC

    Wir ermitteln wie üblicherweise vorgesehen das CRC byteweise. Außerdem ist der FC in AWL geschrieben. Dateien siehe im Anhang.

    Ich hoffe geholfen zu haben.
    Georg
    Angehängte Dateien Angehängte Dateien
    • Dateityp: zip Crc.zip (24,6 KB, 315x aufgerufen)
    Zitieren Zitieren Prüfsumme CRC16  

  5. Folgende 2 Benutzer sagen Danke zu kassla für den nützlichen Beitrag:

    knubbl (15.12.2008),tomkoegl (08.04.2011)

  6. #5
    Thompsen ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.10.2006
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke, genau was ich gesucht habe.

    lg thompsen

Ähnliche Themen

  1. Prüfsumme bzw Zeitstempel auslesen
    Von Kuffel im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.11.2006, 12:50
  2. Antworten: 3
    Letzter Beitrag: 28.03.2005, 16:19

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •