Herunterladen Inhalt Inhalt Diese Seite drucken

Siemens SITRANS F Serie Betriebsanleitung Seite 81

Vorschau ausblenden Andere Handbücher für SITRANS F Serie:
Inhaltsverzeichnis

Werbung

CRC-Berechnung
1. Laden eines 16-Bit-Registers mit FFFF Hex (alle 1). Benennung als CRC-Register.
2. EXKLUSIV-ODER-Verknüpfung des ersten 8-Bit-Bytes mit dem niederwertigen Byte des
16-Bit-CRC-Registers und Eintragung des Ergebnisses in das CRC-Register.
3. Verschiebung des CRC-Registers um ein Bit nach rechts (Richtung niedrigstwertiges Bit),
dabei Nullsetzung des höchstwertigen Bits. Extrahierung und Prüfung des
niedrigstwertigen Bits.
4. (Falls das niedrigstwertige Bit 0 war): Wiederholung von Schritt 3 (d. h., eine weitere
Verschiebung). (Falls das niedrigstwertige Bit 1 war): EXKLUSIV-ODER-Verknüpfung des
CRC-Registers mit dem polynomischen Wert 0xA001 (1010 0000 0000 0001).
5. Wiederholung der Schritte 3 und 4, bis 8 Verschiebungen durchgeführt wurden. Ergebnis
dieser 8 Verschiebungen ist ein vollständiges Byte aus 8 Bits.
6. Wiederholung der Schritte 2 bis 5 für das nächste 8-Bit-Byte der Nachricht. Fortsetzung,
bis alle Bytes erstellt wurden.
7. Im Endergebnis enthält das CRC-Register den CRC-Wert.
8. Wenn das CRC in die Nachricht eingesetzt wird, müssen die höherwertigen und
niederwertigen Bytes wie unten beschrieben umgelagert werden.
Platzierung des CRC in der Nachricht
Bei der Übermittlung des 16-Bit-CRC (d. h. der zwei 8-Bit-Bytes) innerhalb der Nachricht
wird zuerst das niederwertige Byte übertragen, dann das höherwertige Byte.
Beispiel: Der CRC-Wert ist 1241 Hex (0001 0010 0100 0001). Dies ergibt:
Adr
Funkt
CRC-Programmierbeispiel
/* Tabelle mit CRC-Werten für höherwertiges Byte */
static __flash unsigned char auchCRCHi[] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80,
0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1,
0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00,
0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40,
MAG 8000 Modbus RTU
Betriebsanleitung, 04/2016, A5E03828417-AA
Daten-
Daten n
Zählung
Daten n+1
Daten n+2
B.2 CRC-Berechnung
Daten n+x
CRC LO
0x41
Anhang
CRC HI
0x12
79

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Sitrans f m mag 8000

Inhaltsverzeichnis