Conditions de début et de fin pour l'opération Recevoir
L'opération Recevoir utilise les bits de l'octet de commande de réception de message (SMB87 ou SMB187)
pour définir les conditions de début et de fin de message.
Conseil
En cas de trafic de données en provenance d'autres unités sur l'interface de communication lors de
l'exécution de l'opération Recevoir, la fonction de réception de message peut commencer à recevoir un
caractère au milieu de ce caractère, ce qui pourrait provoquer une erreur de parité et l'interruption de la
réception. Si la parité n'est pas activée, le message reçu peut contenir des caractères incorrects. Cette
situation peut se produire lorsque la condition de début est indiquée sous forme de caractère de début
spécifique ou de caractère quelconque, comme décrit sous les points 2. et 6. ci-après.
L'opération Recevoir accepte plusieurs conditions de début de message. Indiquer une condition de début
impliquant une coupure ou une détection de ligne inactive permet d'éviter ce problème puisque la fonction
de réception de message est forcée de synchroniser le début du message avec le début d'un caractère
avant d'inscrire des caractères dans la mémoire tampon de message.
L'opération Recevoir accepte plusieurs conditions de début de message :
1.
Détection de ligne inactive : La condition de ligne inactive est définie comme un temps de repos ou
d'inactivité sur la ligne de transmission. Une réception commence lorsque la ligne de communication
a été au repos ou inactive pendant le nombre de millisecondes indiqué dans le mot SMW90 ou
SMW190. Lorsque l'opération Recevoir dans votre programme est exécutée, la fonction de réception
de message déclenche une recherche de ligne inactive. Si des caractères quelconques sont reçus
avant l'expiration du délai de ligne inactive, la fonction de réception de message n'en tient pas compte
et relance la temporisation de ligne inactive avec le temps indiqué dans le SMW90 ou le SMW190
(voir figure 6-11). Une fois le délai de ligne inactive expiré, la fonction de réception de message stocke
tous les caractères ultérieurs reçus dans la mémoire tampon de message.
Le temps de ligne inactive doit toujours être supérieur au temps nécessaire à la transmission d'un
caractère (bit de début, bits de données, parité et bits d'arrêt) au débit indiqué. Une valeur typique
pour le temps de ligne inactive est trois temps de caractère au débit indiqué.
Vous pouvez utiliser la détection de ligne inactive comme condition de début pour des protocoles
binaires, des protocoles dans lesquels n'existe pas de caractère de début particulier ou lorsque le
protocole indique un temps minimum entre messages.
Configuration :
millisecondes
Caractères
Redémarre le temps d'inactivité.
L'opération Recevoir est exécutée :
lance le temps d'inactivité.
Figure 6-11
Utilisation de la détection du temps d'inactivité pour démarrer l'opération Recevoir
2.
Détection de caractère de début : Le caractère de début correspond à tout caractère utilisé comme
premier caractère d'un message. Un message commence lorsque le caractère de début indiqué dans
l'octet SMB88 ou SMB188 est reçu. La fonction de réception de message stocke le caractère de
début dans la mémoire tampon de réception comme premier caractère du message. La fonction de
réception de message ne tient compte d'aucun caractère reçu avant le caractère de début. Le
caractère de début et tous les caractères reçus après le caractère de début sont stockés dans la
mémoire tampon de message.
Typiquement, vous utilisez la détection de caractère de début pour des protocoles ASCII dans
lesquels tous les messages commencent par le même caractère.
Configuration :
il = 1, sc = 0, bk = 0, SMW90/SMW190 = délai de ligne inactive en
Temps d'inactivité détecté :
lance la fonction de réception de message
il = 0, sc = 1, bk = 0, SMW90/SMW190 = indifférent,
SMB88/SMB188 = caractère de début
Jeu d'opérations S7-200
Caractères
Premier caractère placé dans la
mémoire tampon de message
Chapitre 6
6
83