Paramètres techniques de l'onduleur vectoriel haute performance
Le message CMD maître
ADR
CMD
Adresse des données (octet plus
ancien)
Adresse des données (octet plus
récent)
Contenu des données (octet plus
ancien)
Contenu des données (octet plus
récent)
CRC CHK (octet plus récent)
CRC CHK prioritaire
Message de réponse esclave
ADR
CMD
Adresse des données (octet plus
ancien)
Adresse des données (octet plus
récent)
Contenu des données (octet plus
ancien)
Contenu des données (octet plus
récent)
CRC CHK (octet plus récent)
CRC CHK (octet plus ancien)
Méthode de vérification - Méthode de vérification CRC : Le CRC (contrôle de redondance cyclique) prend le format de trame RTU, et
le message comprend le champ de détection d'erreur basé sur la méthode CRC. Le champ CRC détecte le contenu de l'intégralité du
message. Le champ CRC a deux octets, dont une valeur système binaire de 16 bits. Le dispositif de transmission les calcule et les ajoute
au message. Le dispositif récepteur recalcule le CRC du message reçu et le compare à la valeur du champ CRC reçu. Si les deux
valeurs CRC ne sont pas égales, la transmission est invalide.
Le CRC sauvegarde d'abord 0xFFFF puis appelle un processus pour traiter les octets contigus de 8 bits dans le message et les valeurs
dans le registre actuel. Seuls 8 bits de données dans chaque caractère sont valides pour le CRC, et le bit de démarrage, le bit d'arrêt et le
bit de parité ne sont pas valides.
Dans le processus de génération de CRC, chaque octet de 8 bits est XORed avec un contenu de registre séparé. Enfin il se décale vers
le bit de poids faible et le bit de poids fort est rempli avec la valeur 0. Le LSB est extrait pour la détection. Si LSB a la valeur 1, le
registre sera XORed avec le point de consigne. Si LSB vaut 0, pas d'action. L'ensemble du processus est répété 8 fois. Après la fin du
dernier bit (huitième bit), l'octet de 8 bits suivant sera XORed avec la valeur actuelle du registre lui-même. La valeur de fin dans le
registre est la valeur CRC une fois que tous les octets du message ont été exécutés.
En ajoutant CRC à un message, ajoutez d'abord l'octet de poids faible, puis l'octet de poids fort. Calcul du CRC comme ci-dessous :
02H
06H
F0H
0AH
13H
88H
CRC CHK valeur à calculer
02H
06H
F0H
0AH
13H
88H
CRC CHK valeur à calculer
-
unsigned int crc_chk_value(unsigned char *data_value, unsigned char length){
unsigned int crc_value=0xFFFF;
int i;
while(length--)
{
^0xa001 ;
Avant-propos
{
crc_value^=*data_value++;
for(i=0;i<8;i++)
if(crc_value&0x0001)
crc_value= ( crc_value>> 1)
}
else
crc_value=crc_value>>1;
{
}
{