Herunterladen Inhalt Inhalt Diese Seite drucken

Programmierbeispiele In C; Modbus_Read - ABB TZA 401 Bedienungsanleitung

Messrechner modbus-schnittstelle
Inhaltsverzeichnis

Werbung

Programmierbeispiele in C

Alle nachfolgenden Beispiele für die Zugriffe auf Register sind in C, um ein exaktes und fehlerfreies Beispiel zu gewährleisten. Die
Übertragung findet hier im RTU-Protokoll statt. Die Funktionen modbus_read() und modbus_write() zeigen, wie ein Telgramm auf-
gebaut wird, alle anderen Funktionen zeigen den Umgang mit den verschiedenen Datenformaten.

Modbus_read

Daten von anderen Modbusteilnehmern lesen (Read-Output-Register: Funktion 03)
void modbus_read(unsigned regnr, int anzahl, int *recdata)
{
int
i,anz;
unsigned
crc;
sendbuf[0] = mod_adr;
sendbuf[1] = 3;
sendbuf[2] = regnr>>8;
sendbuf[3] = regnr;
sendbuf[4] = 0;
sendbuf[5] = 2
crc
= CRC16(sendbuf,6);
sendbuf[6] = crc;
sendbuf[7] = crc>>8;
ComWrite(sendbuf,8);
ComRead(receivebuf);
// receivebuf[0];
// receivebuf[1];
anz = receivebuf[2];
// receivebuf[3+anz];
// receivebuf[4+anz];
for (i=0; i < anz; i+=2) {
recdata[i+0] = receivebuf[4+i];
recdata[i+1] = receivebuf[3+i];
}
}
20 Programmierbeispiele in C
/* Modbus Zieladresse
/* Funktion „Read
/* Hi Register Adresse
/* Lo Register Adresse
/* Hi Anzahl Register (beim TZA 401 immer 0)
/* Lo Anzahl Register
/* 8 Zeichen senden */
/* Daten Empfangen */
enth. die Modbus Zieladresse
enth. den Functions-Code
/*
Anzahl Datenbytes (beim TZA 401 immer 4) */
enth.AElt Adresse CRC
enth.AElt Adresse CRC
*/
Real-Wert aus TZA 401" */
*/
*/
beim TZA 401 immer 2)
*/
*/

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis