Herunterladen Inhalt Inhalt Diese Seite drucken

Fehlerbehandlung - BERG BME461 Schnittstellenbeschreibung

Efficio certified meter modbus rtu schnittstelle der energiezähler
Vorschau ausblenden Andere Handbücher für BME461:
Inhaltsverzeichnis

Werbung

0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,
0x40
};
unsigned short Modbus CRC16 (unsigned char * Buffer, unsigned short Length)
{
unsigned char CRCHi = 0xFF;
unsigned char CRCLo = 0xFF;
int Index;
unsigned short ret;
while( Length-- )
{
Index = CRCLo ^ *Buffer++ ;
CRCLo = CRCHi ^ CRC Table Hi[Index];
CRCHi = CRC Table Lo[Index];
}
ret=((unsigned short)CRCHi << 8);
ret|= (unsigned short)CRCLo;
return ret;
}
2.8

Fehlerbehandlung

Tritt ein Sendefehler auf, z. B. wenn die vom Empfänger berechnete CRC16 nicht mit der gesendeten
übereinstimmt, dann sendet der Slave keine Antwort an den Master. Dadurch wird ein Timeout
provoziert. Das gleiche passiert, wenn ein nicht-existentes oder ausgeschaltetes Gerät angesprochen
wird.
Wenn der Empfänger des Telegramms einen anderen Fehler feststellt, dann wird ein entsprechendes
Fehlertelegramm an den Master gesendet.
Adresse
Funktionscode
11h
FC + 80h
Der empfangene Funktionscode wird mit gesetztem MSB (Most Significant Bit) zurückgesendet. Dies
entspricht einer Addition von 80h. Der Fehlercode zeigt einen Bedien- oder Programmfehler an.
Folgende Fehlercodes werden unterstützt:
Fehlercode
Beschreibung
01
Der verwendete Funktionscode wird nicht unterstützt
Die verwendete Registeradresse ist nicht erlaubt. Das Register ist ungültig oder
02
schreibgeschützt.
Einige benutzte Datenwerte sind nicht im zulässigen Bereich, z. B. ungültige Anzahl
03
der Register.
HINWEIS: Sämtliche Register im Adressbereich 3000 ... 10800 können ausschließlich
blockweise mit fester Länge gelesen und geschrieben werden.
Dies stellt eine gerätespezifische Einschränkung zur Sicherstellung der Datenkonsistenz der
Parameter und Daten in diesem Adressbereich dar. Alle anderen Register können gemäß Modbus-
Spezifikation auch anteilig gelesen werden.
6
Checksumme
Daten
Low
Byte
Fehlercode
High
Byte
CRC16
Berg GmbH

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Bme-serie

Inhaltsverzeichnis