Typologie de commandes :
Tab.2
Commande
Opération
Master
01
Lecture données numériques (données 1 bit)
05
Écriture données numériques (données 1 bit)
03
Lecture données numériques (données 16 bit)
06
Écriture données numériques (données 16 bit)
Format des commandes :
Commande 01 :
Lectures Données Numériques
Avec cette commande l'on peut demander une ou plusieurs
variables numériques à partir de l'adresse spécifiée. Les données
en réponse sont regroupées en octet (8 données par octet).
Le premier octet reçu correspond aux 8 données avec l'adresse la
plus basse, le bit le moins significatif de chaque octet correspond à
la donnée avec l'adresse la plus basse.
EXEMPLE :
DEMANDE
Champ
Adresse machine
Commande
Adresse de départ (byte high)
Adresse de départ (byte low)
N° de données (partie high)
N° de données (partie low)
Checksum
REPONSE
Champ
Adresse machine
Commande
Numéro de octet donnés en réponse
Données (0-7)
Données (8-9)
Checksum
Commande 05 :
Écritures Numériques
Pour attribuer 1 à une adresse numérique il faut transmettre la
donnée hex 0xFF00 ;
pour attribuer 0 il faut transmettre la donnée hex 0x0000.
Tout autre type de donnée est gérée comme erreur.
La réponse normale est un écho de la réponse si l'attribution de la
donnée est allée à bonne fin.
EXEMPLE :
DEMANDE
Champ
Adresse machine
Commande
Adresse (byte high)
Adresse (byte low)
Nouvelle donnée (partie high)
Nouvelle donnée (partie low)
Checksum
REPONSE
Champ
Adresse machine
Commande
Adresse (byte high)
Adresse (byte low)
Nouvelle donnée (partie high)
Nouvelle donnée (partie low)
Checksum
Commande 03 :
Avec cette commande l'on peut demander une ou plusieurs variables analogiques et
entières à partir de l'adresse spécifiée. L'encodage adopté est binaire en complément à
2. Les variables analogiques sont représentées en dixièmes (par exemple la valeur 10,0
est transmise comme 0064h = 100d)., les entières sont transférées avec la valeur effec-
tive (par exemple 100 est transmis comme 0064h = 100d).
Les variables entières sont celles avec l'adresse supérieure à 128.
Le nombre de données demandées s'entend à partir de l'adresse
EXEMPLE :
hex
01
01
00
00
00
0A
Commande 06 :
...
Avec cette commande l'on peut écrire une variable analogique ou entière. L'encodage
adopté est binaire en complément à 2.
hex
Les variables analogiques sont représentées en dixièmes (par exemple la valeur 10,0 est
01
transmise comme 0064h = 100d)., les entières sont transférées avec la valeur effective
01
(par exemple 100 est transmis comme 0064h = 100d).
02
Les variables entières sont celles avec l'adresse supérieure à 128.
0E
La réponse normale est un écho de la réponse si l'attribution de la donnée est allée à bonne
03
fin.
...
EXEMPLE :
hex
01
05
00
00
FF
00
...
GESTION TEMPORISATION ET ERREURS DE COMMUNICATION
hex
Ci-après sont analysés les cas possibles où la communication peut évoluer ainsi que le com-
portement prévu de master et de slave comme protocole.
01
05
1.
00
00
FF
00
2.
...
Lectures Données Analogiques
DEMANDE
Champ
Adresse machine
Commande
Adresse de départ (byte high)
Adresse de départ (byte low)
N° de données demandées (partie high)
N° de données demandées (partie low)
Checksum
REPONSE
Champ
Adresse machine
Commande
Numéro de octets donnés en réponse
Octet high donné 0
octet low donné 0
Checksum
Écritures Données Analogiques
DEMANDE
Champ
Adresse machine
Commande
Adresse (byte high)
Adresse (byte low)
Nouvelle donnée (partie high)
Nouvelle donnée (partie low)
Checksum
REPONSE
Champ
Adresse machine
Commande
Adresse (byte high)
Adresse (byte low)
Nouvelle donnée (partie high)
Nouvelle donnée (partie low)
Checksum
Le slave reçoit la demande sans erreurs de communication : slave : répond comme
prévu master : doit prévoir une temporisation sur la réponse du slave d'au moins
500mS pour donner au slave la possibilité d'élaborer les données.
Le slave ne reçoit pas la demande pour une erreur de communication slave : il ne
donne aucune réponse master : il doit prévoir une temporisation sur la réponse.
(hex)
01
03
00
00
00
02
...
hex
01
03
04
0c
03
...
(hex)
01
06
00
00
1B
00
...
hex
01
06
00
00
1B
00
...
13