Vous êtes sur la page 1sur 12

Fév.

-06 Gestion de liaison Série par l'Automatisme ST


Table des matières

1 DESCRIPTION 2
1.1 Présentation 2 Tous droits réservés
1.2 Configuration 2 Il est interdit de reproduire tout ou partie de cet ouvrage ou de le
transmettre sous quelque forme que ce soit, sans l’accord préalable
1.3 Particularités 2 de SOFREL.
Les informations décrites dans ce manuel ont été vérifiées avec
2 PRINCIPE DE FONCTIONNEMENT 3 soin et sont supposées exactes. Toutefois, SOFREL ne peut être
tenu responsable des erreurs ou des imprécisions qui pourraient
2.1 Modes de fonctionnement 3 exister dans ce manuel, ni des dommages directs ou indirects qui
2.1.1 Mode Normal 3 en résulteraient même s’il a été avisé de la possibilité de tels
2.1.2 Mode Bloc 3 dommages.
Suite au développement continuel de ses produits, SOFREL se
2.1.3 Mode synchro 3
réserve le droit d’apporter des modifications à ce manuel et aux
2.2 Ordinogramme 4 produits qui y sont mentionnés à tout moment, sans avoir à prévenir
2.2.1 Ouverture de la liaison 4 les personnes concernées.
2.2.2 Configuration 4 Marques
2.2.3 Communication 4 SOFREL, PCWin, SOFBUS, S500, S50, S50 THERMIX, TELBOX,
2.2.4 Codage en écriture 4 LINEBOX, CELLBOX, PC500, CS100, S10, S15, sont des marques
2.2.5 Décodage en lecture 4 déposées par la société SOFREL.
Microsoft Windows, Microsoft Excel, Microsoft Word sont des
marques ou des marques déposées par Microsoft Corporation.
3 APPEL DES FONCTIONS ST 5 Tous les autres noms de produits ou de sociétés mentionnés dans
3.1 Fonctions de configuration 5 cet ouvrage ne servent qu’à des fins d’identification et peuvent être
des marques déposées par leurs propriétaires respectifs.
3.1.1 SFOpenCom Ouverture de la liaison Série 5
3.1.2 SFCfgFct Choix du Mode de fonctionnement 6
3.1.3 SFCfgBloc Paramétrage du Mode BLOC 6
3.1.4 SFCfgSeq Paramétrage du Mode SYNCHRO 6 Légende
3.1.5 SFCfgFmt Choix du Format des données 7
3.1.6 SFCfgCtrl Choix du Type de Contrôle 7 CG : cliquez 1 fois sur le bouton gauche de la souris
3.1.7 SFCfgPoly Paramétrage du Contrôle de Type CRC16 7
3.2 Fonctions de communication
3.2.1 SFClrCom Purge des caractères reçus sur la liaison
8
8
CD : cliquez 1 fois sur le bouton droit de la souris
DCG : double-cliquez sur le bouton gauche de la souris
3.2.2 SFWritCom Écriture des données sur la liaison 8
3.2.3 SFReadCom Lecture des données reçues sur la liaison 8
3.3 Fonctions de codage 9
3.3.1 SFWrFloat Codage d’un réel 32 bits dans une chaîne (4 octets) 9
3.3.2 SFWrInt32 Codage d’un entier 32 bits dans une chaîne (4 octets) 9
3.3.3 SFWrInt16 Codage d’un entier 16 bits dans une chaîne (2 octets) 9
3.3.4 SFWrByte Codage d’un entier 8 bits dans une chaîne (1 octet) 9
3.4 Fonctions de décodage 10
3.4.1 SFRdFloat Décodage d’un réel 32 bits issu d’une chaîne 10
3.4.2 SFRdInt32 Décodage d’un entier 32 bits issu d’une chaîne 10
3.4.3 SFRdInt16 Décodage d’un entier 16 bits issu d’une chaîne 10
3.4.4 SFRdByte Décodage d’un entier 8 bits issu d’une chaîne 10
3.4.5 SFRdBit Décodage d’un bit issu d’une chaîne 11

4 EXEMPLE D’UTILISATION 11

5 DIAGNOSTIC DE COMMUNICATION 12
5.1 Journal de diagnostic 12
5.2 Suivi de fonctionnement 12

S500-doc_23-SERIE-ST -1-
Gestion de liaison Série par l'Automatisme ST
1 Description

1.1 Présentation
En plus d’automatiser des tâches propres à chacun des sites, l’application « Automatismes ST » de S500
permet de gérer des échanges d’informations sur les liaisons Série RS232 et RS485.

Par le biais de programmes d’automatismes élaborés par l’utilisateur et l’appel des fonctions dédiées
décrites ci-après, il est ainsi possible d’ouvrir un port de communication Série, de définir son mode de
fonctionnement, et de lire ou d’écrire des données.
2 Cette fonctionnalité du module « Automatismes ST » permet de développer des protocoles de
communication avec des capteurs intelligents, des automates ou des produits tiers spécifiques.

1.2 Configuration
Chaque liaison Série ainsi gérée doit être dédiée au module d’automatismes ST :

1.3 Particularités
¾ Gestion de défaut liaison
Pour chaque liaison Série de type « Automatisme », le défaut liaison ne peut être géré directement
par S500, mais doit être pris en compte dans le programme ST lui-même.
¾ Codage des données
En communication, il faut veiller à la manière dont sont codées les valeurs.
Le choix du format entre « little endian » (INTEL)” et « big endian » (MOTOROLA) est configurable.
¾ Cartes Série compatibles
Seules les cartes RS-232 et RS-485 installées dans les emplacements n° 1 à 7 sont compatibles.
Elles fonctionnent selon les paramètres programmés dans SOFTOOLS (vitesse, nombre de bits de
données, parité, stop, gestion du flux).
¾ Longueur des trames
La longueur maximale des trames échangées est de 255 caractères.

¾ Temps de cycle d’un programme


Par rapport à l’activité physique sur la liaison série, un temps de 200 millisecondes au minimum doit
être pris en compte.

S500-doc_23-SERIE-ST -2-
Gestion de liaison Série par l'Automatisme ST
2 Principe de fonctionnement
2.1 Modes de fonctionnement
3 modes de fonctionnement sont possibles :

2.1.1 Mode Normal


Les trames sont disponibles lorsqu’un timeout inter caractères a été détecté ou lorsque le nombre
maximum d’octets reçus a été atteint ; ces paramètres sont définis dans la fonction SFOpenCom.

X caractères Détection de fin


de transmission

Trame Silence

ou Temps inter caractères


Nombre maximal de caractères Détection de fin
de transmission

2.1.2 Mode Bloc


La réception des données s’effectue par blocs de longueur fixe ; ce paramètre se configure dans la
fonction SFCfgBloc.

9 Exemple d’un bloc de 10 caractères :


2 caractères + 3 caractères + 5 caractères

Détection de fin
de transmission
Temps aléatoire entre caractères Temps aléatoire entre caractères

Bloc de 10 caractères

2.1.3 Mode synchro


Les trames reçues sont délimitées par des séquences de début et de fin (par exemple : ETX, STX
et DLE) ; ces paramètres se configurent dans la fonction SFCfgSeq.

SD = Séquence de Début
FE = Fanion d’Échappement qui annule une séquence de Début ou de Fin
SF = Séquence de Fin
Détection de fin
de transmission
SD Données FE SD Données FE SF Données SF

utilisé par la fonction SFReadCom

2 Les fonctions de lecture et d’écriture traitent les séquences de synchronisation de début, de fin
et d’échappement, ainsi que les contrôles d’intégrité comme les CRC ou CHECKSUM. Le
programme ST doit seulement traiter les données échangées sur la liaison.

S500-doc_23-SERIE-ST -3-
Gestion de liaison Série par l'Automatisme ST

2.2 Ordinogramme
Les fonctions de ce programme ST doivent être appelées dans l’ordre défini ci-dessous :

2.2.1 Ouverture de la liaison Ouverture de la liaison Série


SFOpenCom

2.2.2 Configuration Choix du Mode de fonctionnement


SFCfgFct

ou ou
Normal Bloc Synchro

Paramétrage mode Bloc Paramétrage mode Synchro


SFCfgBloc SFCfgSeq

Choix du Format des données


SFCfgFmt

BIGENDIAN ou ou LITTLEENDIAN
(Motorola) (Intel)

Choix du Type de contrôle


SFCfgCtrl

ou ou
CRC16 Checksum16 Checksum8

Paramétrage du CRC16
SFCfgPoly

2.2.3 Communication

Purge des caractères reçus Écriture des données Lecture des données
SFClrCom SFWritCom SFReadCom

2.2.4 Codage en écriture

ou ou ou
SFWrFloat SFWrInt32 SFWrInt16 SFWrByte

2.2.5 Décodage en lecture


ou ou ou ou
SFRdFloat SFRdInt32 SFRdInt16 SFRdByte SFRdBit

S500-doc_23-SERIE-ST -4-
Gestion de liaison Série par l'Automatisme ST

3 Appel des fonctions ST

3.1 Fonctions de configuration

3.1.1 SFOpenCom Ouverture de la liaison Série


Fonction à appeler initialement ; elle établit le lien avec la carte RS-232 ou RS-485. Tant que celle-ci
n’a pas été appelée, aucune autre fonction ne pourra fonctionner.
S500 ne transmet les données au programme ST qu’à partir du moment où un silence (timeout inter
caractère) est détecté ou que le nombre de caractères maximal (Maxcar) est atteint.
Le silence correspond au temps nécessaire pour recevoir «n» caractères.
Par exemple à 9600 bauds, un caractère met environ 1 milliseconde pour être transmis (1 start +
8 bits de données + 1 stop = 10 bits pour un caractère Æ 10/9600 = 0,00104 s) donc un timeout de
5 caractères à 9600 bauds équivaut à (5∗10)/9600 soit 0,00521 s.

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


TimeoutInterCar DINT Nombre de caractères pour calcul du timeout (de 0 à 65535)
Une valeur à 0 permet de recevoir une trame de la taille
MaxCar
MaxCar DINT Nombre maximal de caractères dans la trame (de 1 à 255)

¾ Sortie Cr BOOL TRUE si la fonction a abouti


FALSE si le numéro de carte est erroné,
ou si la carte est non affectée à l’automatisme,
ou si « TimeoutInterCar » ou « MaxCar » est erroné.

2 Si la fonction est appelée alors que la voie de communication est déjà ouverte, toutes les
données reçues sont perdues et le port est ouvert avec les nouveaux paramètres. De plus, les
paramètres configurés (contrôle, mode de fonctionnement, séquences, bloc) sont réinitialisés
par défaut.

Il n’y a pas de fonction de fermeture, car celle-ci est effectuée automatiquement à chaque
réouverture.

S500-doc_23-SERIE-ST -5-
Gestion de liaison Série par l'Automatisme ST

3.1.2 SFCfgFct Choix du Mode de fonctionnement


Cette fonction doit être appelée une fois (après la fonction SFOpenCom).

z Normal : les trames sont disponibles lorsqu’un timeout inter caractère a été détecté
ou lorsque le nombre maximum d’octets reçus a été atteint.
z Bloc : lorsque la lecture s’effectue par blocs de longueur fixe.
z Synchronisé : lorsque les trames sont délimitées par des séquences de début et de fin.

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Fct STRING ‘NORMAL’
’BLOC’
’SYNCHRO‘

¾ Sortie Cr BOOL TRUE si la fonction a abouti

FALSE si, au préalable, aucun appel à la fonction


SFOpenCom n’a été effectué ou si cet appel a échoué.

2 En cas de mauvaise valeur du mode de fonctionnement, le fonctionnement retenu est ‘NORMAL’.

3.1.3 SFCfgBloc Paramétrage du Mode BLOC


Cette fonction permet de paramétrer le nombre de caractères par Bloc.

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


NbCar DINT Nombre de caractères par bloc (de 0 à 255)

¾ Sortie Cr BOOL TRUE si la fonction a abouti

FALSE si, au préalable, aucun appel à la fonction


SFOpenCom n’a été effectué ou si cet appel a échoué,
ou si « NbCar » est erroné (forçage à 0).

3.1.4 SFCfgSeq Paramétrage du Mode SYNCHRO


Cette fonction permet de paramétrer les séquences de synchronisation.

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Debut STRING Si vide, la trame débute après le silence inter caractères

Fin STRING Si vide, la trame se termine après le timeout inter caractères

Esc STRING
¾ Sortie Cr BOOL TRUE si la fonction a abouti

FALSE si, au préalable, aucun appel à la fonction


SFOpenCom n’a été effectué ou si cet appel a échoué.
ou si « Debut », « Fin » ou « Esc » ont une taille erronée.

S500-doc_23-SERIE-ST -6-
Gestion de liaison Série par l'Automatisme ST

3.1.5 SFCfgFmt Choix du Format des données


Le format est une caractéristique des données codées sur plus d’un octet.
Les entiers et les réels sont codés différemment sur une machine dotée d’un processeur INTEL que
sur une autre dotée d’un processeur MOTOROLA.
& Exemple : La valeur entière 2500 codée 09C4 en hexadécimal sur 2 octets) sera
représentée en mémoire par « C4 09 » sur une machine INTEL
et par « 09 C4 » sur une machine MOTOROLA.

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Format STRING 'BIGENDIAN’ (‘MOTOROLA’) : Poids Fort, Poids Faible
’LITTLEENDIAN’ (‘INTEL’) : Poids Faible, Poids Fort

¾ Sortie Cr BOOL TRUE si la fonction a abouti


FALSE si, au préalable, aucun appel à la fonction
SFOpenCom n’a été effectué ou si cet appel a échoué.

2 En cas de mauvaise valeur du format, le format retenu est ‘BIGENDIAN’.

3.1.6 SFCfgCtrl Choix du Type de Contrôle


3 contrôles peuvent être gérés pour vérifier l’intégrité des données de la trame :
z CRC16 : (Cyclic Redundancy Code) utilisé par le protocole MODBUS sur 16 bits.
z Checksum16 : Somme des octets sur 16 bits.
z Checksum8 : Somme des octets sur 8 bits.

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Ctrl STRING ‘AUCUN’
’CRC16’
’CHECKSUM16’
’CHECKSUM8’

¾ Sortie Cr BOOL TRUE si la fonction a abouti


FALSE si, au préalable, aucun appel à la fonction
SFOpenCom n’a été effectué ou si cet appel a échoué.

2 En cas de mauvaise valeur, le contrôle retenu est ‘AUCUN’.

3.1.7 SFCfgPoly Paramétrage du Contrôle de Type CRC16

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Polynome DINT Les 16 bits de Poids Faible sont conservés pour former le
polynôme de calcul du CRC16

¾ Sortie Cr BOOL TRUE si la fonction a abouti


FALSE si, au préalable, aucun appel à la fonction
SFOpenCom n’a été effectué ou si cet appel a échoué.

2 Par défaut, ce polynôme est celui utilisé en MODBUS : 16#A001.

S500-doc_23-SERIE-ST -7-
Gestion de liaison Série par l'Automatisme ST
3.2 Fonctions de communication

3.2.1 SFClrCom Purge des caractères reçus sur la liaison

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).

¾ Sortie Cr BOOL TRUE si la fonction a abouti.


FALSE si, au préalable, aucun appel à la fonction
SFOpenCom n’a été effectué ou si cet appel a échoué.

3.2.2 SFWritCom Écriture des données sur la liaison


Les valeurs vues par le programme ST sont dépourvues des éventuelles séquences de début, de fin
et d’échappement ainsi que d’un éventuel contrôle d’intégrité.

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Trame STRING Données auxquelles vont être ajoutées les éventuelles
séquences de début et fin, ainsi qu’un éventuel contrôle
d’intégrité.

¾ Sortie Cr BOOL TRUE si la fonction a abouti.


FALSE si, au préalable, aucun appel à la fonction
SFOpenCom n’a été effectué ou si cet appel a
échoué.

3.2.3 SFReadCom Lecture des données reçues sur la liaison


¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).

¾ Sortie Trame STRING Données dépourvues des séquences de début, de fin et


d’échappement ainsi que du contrôle d’intégrité.
Trame vide si, au préalable, aucun appel à la fonction
SFOpenCom n’a été effectué ou si cet appel a échoué,
ou si une erreur est détectée au contrôle.

S500-doc_23-SERIE-ST -8-
Gestion de liaison Série par l'Automatisme ST

3.3 Fonctions de codage

3.3.1 SFWrFloat Codage d’un réel 32 bits dans une chaîne (4 octets)

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Val REAL Valeur à coder dans une suite de 4 octets.
¾ Sortie Buffer STRING Chaîne codée avec prise en compte du format des données
configuré pour la carte,
OU
au format BIGENDIAN si, au préalable, aucun appel à la
fonction SFOpenCom n’a été effectué, ou si cet appel a
échoué.

3.3.2 SFWrInt32 Codage d’un entier 32 bits dans une chaîne (4 octets)

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Val DINT Valeur à coder dans une suite de 4 octets.
¾ Sortie Buffer STRING Chaîne codée avec prise en compte du format des données
configuré pour la carte,
OU
au format BIGENDIAN si, au préalable, aucun appel à la
fonction SFOpenCom n’a été effectué, ou si cet appel a
échoué.

3.3.3 SFWrInt16 Codage d’un entier 16 bits dans une chaîne (2 octets)

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Val DINT Valeur à coder dans une suite de 2 octets
¾ Sortie Buffer STRING Chaîne codée avec prise en compte du format des données
configuré pour la carte,
OU
au format BIGENDIAN si, au préalable, aucun appel à la
fonction SFOpenCom n’a été effectué, ou si cet appel a
échoué.

3.3.4 SFWrByte Codage d’un entier 8 bits dans une chaîne (1 octet)

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Val DINT Valeur à coder dans un octet
¾ Sortie Buffer STRING Chaîne codée

S500-doc_23-SERIE-ST -9-
Gestion de liaison Série par l'Automatisme ST
3.4 Fonctions de décodage

3.4.1 SFRdFloat Décodage d’un réel 32 bits issu d’une chaîne

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Buffer STRING Trame contenant la suite de 4 octets à décoder.
Pos DINT Position dans la trame du début de la suite des 4 octets
(à partir de 1).
¾ Sortie Val REAL Valeur décodée dans le format configuré pour la carte
OU
dans le format BIGENDIAN si, au préalable, aucun appel à
la fonction SFOpenCom n’a été effectué, ou si cet appel a
échoué.

Valeur = 0.0 si « Pos » est hors bornes.

3.4.2 SFRdInt32 Décodage d’un entier 32 bits issu d’une chaîne

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Buffer STRING Trame contenant la suite de 4 octets à décoder
Pos DINT Position dans la trame du début de la suite des 4 octets
(à partir de 1)
¾ Sortie Val DINT Valeur décodée dans le format configuré pour la carte
OU
dans le format BIGENDIAN si, au préalable, aucun
appel à la fonction SFOpenCom n’a été effectué, ou si
cet appel a échoué.

Valeur = 0 si « Pos » est hors bornes.

3.4.3 SFRdInt16 Décodage d’un entier 16 bits issu d’une chaîne

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Buffer STRING Trame contenant la suite de 2 octets à décoder
Pos DINT Position dans la trame du début de la suite des 2 octets
(à partir de 1)
¾ Sortie Val DINT Valeur décodée dans le format configuré pour la carte
OU
dans le format BIGENDIAN si, au préalable, aucun
appel à la fonction SFOpenCom n’a été effectué, ou si
cet appel a échoué.

Valeur = 0 si « Pos » est hors bornes.

3.4.4 SFRdByte Décodage d’un entier 8 bits issu d’une chaîne

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Buffer STRING Trame contenant l’octet à décoder.
Pos DINT Position de l’octet dans la trame (à partir de 1).

¾ Sortie Val DINT Valeur décodée.

Valeur = 0 si « Pos » est hors bornes

S500-doc_23-SERIE-ST - 10 -
Gestion de liaison Série par l'Automatisme ST

3.4.5 SFRdBit Décodage d’un bit issu d’une chaîne

¾ Entrée NoCarte DINT Numéro de la carte (1 à 7).


Buffer STRING Trame contenant l’octet à décoder.
Pos DINT Position de l’octet dans la trame (à partir de 1).
Nobit DINT Position du bit dans l’octet (à partir de 1).

¾ Sortie Val BOOL Valeur décodée (TRUE / FALSE)

FALSE si « Pos » est hors bornes.

4 Exemple d’utilisation
Le programme ST suivant :

z récupère l’information n° 3 (lecture de 2 mots à l’adresse MODBUS 54005)


via une liaison Série RS232 gérée par l’automatisme, dans l’esclave n° 3.
z et recopie sa valeur dans l’information n° 14.

S500-doc_23-SERIE-ST - 11 -
Gestion de liaison Série par l'Automatisme ST

5 Diagnostic de communication

5.1 Journal de diagnostic


Des messages de type « Automatisme : Appel incorrect à SFCfgxxx() » indiquent des erreurs de
paramétrage détectées par S500 (liaison Série non ouverte, ou appels de fonctions SFCfgxxx() avec
des paramètres erronés).

5.2 Suivi de fonctionnement


Grâce au choix « Diagnostic – Suivis », il est possible de visualiser les trames échangées sur
chaque liaison gérée par l’application « Automatismes ST » ; ce suivi permet de contrôler l’intégrité
des trames, mais n’affiche pas les séquences de synchronisation.

S500-doc_23-SERIE-ST - 12 -

Vous aimerez peut-être aussi