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