Description
Le programme suivant est une courte application de démonstration avec quatre instances du bloc XXMIT illustrant les quatre fonctions principales :
Maître Modbus
Entrée ASCII simple
Sortie Message ASCII
Entrée ASCII terminée
Maître Modbus
L'opération suivante du maître Modbus est une requête de lecture adressée à un équipement esclave (adresse 4 par exemple) connecté au port 1 du maître :
Lecture des mots %MW1 à %MW10 de l'esclave
dans les mots locaux %MW11 à %MW20
L'esclave (adresse 4) doit être configuré avec les paramètres de port suivants :
9 600 bauds
8 bits de données
1 bit d'arrêt
parité paire (2)
Le maître utilise les paramètres du bloc XXMIT
Déclaration des variables pour le maître Modbus
Le tableau suivant présente les variables utilisées dans l'exemple de maître Modbus :
Nom de variable |
Type de données |
Valeur initiale |
Commentaire |
---|---|---|---|
DémarrMaîtreModbus |
BOOL |
||
MaîtreModbusActif |
BOOL |
||
CommandeMaîtreModbus |
WORD |
16#0100 |
Bit 8 défini |
MaîtreModbusEffect |
BOOL |
||
ErreurMaîtreModbus |
BOOL |
||
ParamMaîtreModbus |
WordArr9 |
||
ParamMaîtreModbus[1] |
3 |
Code Modbus : lecture de plusieurs mots |
|
ParamMaîtreModbus[2] |
10 |
Nombre de mots à lire |
|
ParamMaîtreModbus[3] |
4 |
Adresse de l'automate Modbus esclave |
|
ParamMaîtreModbus[4] |
1 |
Mot source |
|
ParamMaîtreModbus[5] |
11 |
Mot cible |
|
ParamMaîtreModbus[6] |
0 |
Non utilisé |
|
ParamMaîtreModbus[7] |
Non utilisé |
||
ParamMaîtreModbus[8] |
Non utilisé |
||
ParamMaîtreModbus[9] |
Non utilisé |
||
EtatMaîtreModbus |
INT |
||
AbonnéMaîtreModbus |
WORD |
4 |
Saisie de l'adresse de l'esclave |
CpteurErrMaîtreModbus |
INT |
||
CpteurEffectMaîtreModbus |
INT |
Section IEC pour maître Modbus
Utilisez le programme suivant dans une section FBD :
Affectation de l'adresse de l'abonné esclave

Affectations au bloc fonction XXMIT :

Comptage des échecs et des réussites

Réception ASCII simple
Reçoit toute valeur arrivant au port 1. La longueur du tampon de réception est associée à la variable LongRéceptSimple, dont la valeur initiale est égale à 10.
Les caractères reçus sont stockés dans le tableau MsgIn et le nombre de caractères reçus dans RecCount.
Déclaration des variables pour la réception ASCII simple
Le tableau suivant présente les variables utilisées dans l'exemple de réception ASCII simple :
Nom de variable |
Type de données |
Valeur initiale |
Commentaire |
---|---|---|---|
DémarrRéceptSimple |
BOOL |
||
RéceptSimpleActive |
BOOL |
||
CpteurCaracRéceptSimple |
INT |
||
CommandeRéceptSimple |
WORD |
16#0480 |
Bits 7 et 10 définis. FIFO activé |
RéceptSimpleEffect |
BOOL |
||
ErrRéceptSimple |
BOOL |
||
LongRéceptSimple |
INT |
10 |
|
CpteurNouvTentRéceptSimple |
INT |
||
EtatRéceptSimple |
INT |
||
MessRéceptSimple |
ByteArr12 |
||
CpteurEffectRéceptSimple |
INT |
||
CpteurErrRéceptSimple |
INT |
Section IEC pour réception ASCII simple
Utilisez le programme suivant dans une section FBD :

Comptage des échecs et des réussites

Envoi ASCII simple
Envoie un message ASCII simple depuis le port 1. Le message est « Hello World!! ».
Déclaration des variables pour l'envoi ASCII simple
Le tableau suivant présente les variables utilisées dans l'exemple d'envoi ASCII simple :
Nom de variable |
Type de données |
Valeur initiale |
Commentaire |
---|---|---|---|
DémarrEnvSimple |
BOOL |
||
EnvSimpleActif |
BOOL |
||
CommandeEnvSimple |
WORD |
16#0200 |
Bit 9 défini |
EnvSimpleEffect |
BOOL |
||
ErrEnvSimple |
BOOL |
||
LongEnvSimple |
INT |
14 |
Nombre de caractères à envoyer |
MessEnvSimple MessEnvSimple[1] MessEnvSimple[2] MessEnvSimple[3] MessEnvSimple[4] MessEnvSimple[5] MessEnvSimple[6] MessEnvSimple[7] MessEnvSimple[8] MessEnvSimple[9] MessEnvSimple[10] MessEnvSimple[11] MessEnvSimple[12] MessEnvSimple[13] MessEnvSimple[14] |
ByteArr36 |
16#48 16#65 16#6C 16#6C 16#6F 16#20 16#57 16#6F 16#72 16#6C 16#64 16#20 16#21 16#21 |
'Hello World !!' |
CpteurNouvTentEnvSimple |
INT |
||
EtatEnvSimple |
INT |
||
CpteurEffectEnvSimple |
INT |
||
CpteurErrEnvSimple |
INT |
Section IEC pour envoi ASCII simple
Utilisez le programme suivant dans une section FBD :

Comptage des échecs et des réussites

Réception ASCII terminée
Après avoir reçu les caractères de départ « AB », le bloc fonction place tous les caractères reçus dans le tampon de réception MsgIn. Le récepteur s'arrêtera à la réception des caractères de fin « CD ». La sortie « Done » sera alors activée pour indiquer la réussite de l'opération. La longueur maximale du tampon de réception est associée à la variable « LongRéceptTerm », dont la valeur initiale est égale à 20 dans cet exemple.
Déclaration des variables pour la réception ASCII terminée
Le tableau suivant présente les variables utilisées dans l'exemple de réception ASCII terminée :
Nom de variable |
Type de données |
Valeur initiale |
Commentaire |
---|---|---|---|
DémarrRéceptTerm |
BOOL |
||
RéceptTermActive |
BOOL |
||
CpteurCaracRéceptTerm |
INT |
||
CommandeRéceptTerm |
WORD |
16#0880 |
Bits 11 et 7 définis. FIFO activé |
RéceptTermEffect |
BOOL |
||
ErrRéceptTerm |
BOOL |
||
LongRéceptTerm |
INT |
20 |
|
MessRéceptTerm |
ByteArr36 |
Caractères reçus |
|
CpteurNouvTentRéceptTerm |
INT |
||
ParamRéceptTerm ParamRéceptTerm[1] ParamRéceptTerm[2] ParamRéceptTerm[3] ParamRéceptTerm[4] ParamRéceptTerm[5] ParamRéceptTerm[6] |
ByteArr36 |
16#02 16#02 16#41 16#42 16#43 16#44 |
Longueur de la chaîne de fin (1 ou 2) Longueur de la chaîne de départ (0, 1 ou 2) Premier caractère de départ Deuxième caractère de départ Premier caractère de fin Deuxième caractère de fin |
EtatRéceptTerm |
INT |
||
CpteurEffectRéceptTerm |
INT |
||
CpteurErrRéceptTerm |
INT |
Section IEC pour réception ASCII terminée
Utilisez le programme suivant dans une section FBD :

Comptage des échecs et des réussites

Saisie de chaînes comme valeurs initiales
L'éditeur de données de Control Expert vous permet de saisir facilement des chaînes en tant que valeurs initiales dans des tableaux d'octets.
La section suivante explique brièvement comment définir une variable « ChaîneDémo » en tant que « ByteArr36 » et comment saisir une chaîne « Mon texte! » comme valeur initiale.
Ouverture de l'éditeur de données
Dans le menu principal, sélectionnez :
Outils -> Editeur de données.
Editeur de données

Déclaration du nouveau nom de chaîne
Déclarez le nom de la chaîne du tableau en cliquant
sur en regard du type (sélectionnez
Bool dans le cas présent). Une fenêtre permettant de sélectionner
le type de variable s'affiche alors.
Définition du type d'élément 1

Définition du type d'élément
Cochez la case Tableau, puis définissez le nombre d'éléments et leur type. Vous pouvez maintenant afficher et modifier les valeurs de byteArr36 étendu.
Définition du type d'élément 2

Définition de ByteArr36
