ST500 | Fjernstyring af frekvensomformer via Modbus RS485

Kommunikationen mellem styreenheden og frekvensomformeren med RS485 skal foregå i RTU-tilstand. ST500-omformeren forventer i fabriksindstillingen en overførsel med 19200 baud, 8/N/2. Data sendes og modtages i rå byte-format uden yderligere kodning. Ekstra kontroltegn er ikke nødvendige.

Her er to eksempel-datagrammer sendt til frekvensomformeren:
01 06 20 00 00 01 43 CA (Start-kommando fremad, vist som hexadecimale tal)
01 06 20 00 00 06 02 08 (Stop-kommando, vist som hexadecimale tal)

Datagrammer skal altid sendes som én samlet blok. Hvis der opstår en pause mellem to tegn, der varer mere end 1½ tegnlængde, anses datagrammet for ugyldigt ifølge protokollen og skal kasseres.

Kort forklaring af strukturen:
01 = Adresse på frekvensomformeren (indstilles via F9.02)
06 = Sæt styreparameter eller gem parameter permanent i EEPROM / 07 = midlertidig gemning (ikke permanent)
20 00 = Adresse på styreparameter
00 01 = Drift i fremadgående retning
43 CA = CRC16-kontrolsum, laveste byte først
Flere adresser og funktioner findes i kapitel 12.2.5 i manualen.

CRC-kontrolsummen kan beregnes med følgende funktion (i C):

unsigned int cal_crc16 (unsigned char *data, unsigned int length)
{
unsigned int i, crc_result = 0xffff;

while (length–)
{
crc_result ^= *data++;
for (i = 0; i < 8; i++) { if (crc_result & 0x01) { crc_result = (crc_result >> 1) ^ 0xa001;
}
else
{
crc_result = crc_result >> 1;
}
}
}
crc_result = ((crc_result & 0xff) << 8) | (crc_result >> 8);

return (crc_result);
}

Bemærk, at CRC-16-kontrolsummen i Modbus-format skal overføres som little endian, dvs. lav byte først, så den passer til algoritmen i omformeren (som vist i funktionen cal_crc16()).

Tags: