Adressliste der Daten im Modbus-RTU-Kommunikationsregister:
Adresse registrieren
0x0001
0x0002
0x0003
0x0004
0x0005
0x0006
0x0007
0x0008
0x0009
0x000A
Hinweis: Alle geschriebenen oder gelesenen Kraftdaten werden durch „Int" mit Vorzeichen oder durch
eine Ganzzahl mit Vorzeichen gekennzeichnet. Die Dezimalstellen werden durch Lesen der Dezimalstellen
bestimmt. Die größte Zahl ist -32767 ... +32767. Wenn der gelesene oder geschriebene Wert außerhalb des
Bereichs liegt, sind die gelesenen oder geschriebenen Daten fehlerhaft.
Beispiel 1: Wenn der Echtzeitwert 123,45 beträgt, werden beim Lesen des Echtzeit-Testwertregisters die
Daten des Registers 0x3039=12345 gelesen. Die Daten des Registers 0x0002=2 werden durch Lesen des
Dezimalstellenregisters gelesen. Sie können in den tatsächlichen Echtzeit-Testwert umgewandelt werden:
12345×10-2=123,45.
Beispiel 2: Um die Obergrenze des Alarms 123,45 zu schreiben, können Sie die Daten 0x3039 in die
Obergrenze des Alarmregisters schreiben
Anhang E MODBUS-Prüfcode und CRC16-Wert-Ermittlungsfunktion
/* Liste der oberen CRC-Bytes */
const unsigned char code auchCRCHi[] = {ausgelassen.........} ;
/* Liste der unteren CRC-Bytes */
const unsigned char code auchCRCLo[] = {ausgelassen.........} ;
/* CRC-Wert-Ermittlungsfunktion */
unsigned int crc16(uchar *puchMsg, uint usDataLen)
{
uchar uchCRCHi = 0xFF, uchCRCLo = 0xFF ;
uint uIndex ; /* CRC-Indizes im Zyklus*/
while (usDataLen--) /*Pufferbereich der Informationsübertragung*/
{
uIndex = uchCRCHi ^ *puchMsg++ ; /*CRC berechnen*/
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex];
uchCRCLo = auchCRCLo[uIndex] ;
}
return (uchCRCHi << 8 | uchCRCLo) ;
}
0x03 Lesevorgang überprüfen
Echtzeit-Testwert lesen
Aktuellen Spitze-Spitze-Wert
lesen
Aktuellen Tal-Spitze-Wert lesen
Dezimalstellen lesen
Obergrenze des Alarms lesen
Untergrenze des Alarms lesen
Bruchalarmwert lesen
Bruch-Totzonenwert lesen
Erfassungsauslösewert lesen
Erfassungslänge lesen
0x06 Schreibvorgang
überprüfen
Null setzen
Spitzenwerte löschen
Tal-zu-Spitzenwert löschen
Keine
Obergrenze des Alarms
schreiben
Untergrenze des Alarms
schreiben
Bruchalarmwert schreiben
Bruch-Totzonenwert schreiben
Erfassungstriggerwert schreiben
Erfassungslänge schreiben
11