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: