Trois fonctions de communication spécifiques permettent d'émettre et recevoir des données via une voie de communication en mode caractère :
-
PRINT_CHAR : envoi d'une chaîne de caractères de 1 024 octets maximum.
-
INPUT_CHAR : lecture d'une chaîne de caractères de 1 024 octets maximum.
-
INPUT_BYTE : lecture d'un tableau de 1 024 octets maximum.
NOTE : pour confirmer le bit d'activité de la fonction INPUT_CHAR, il est nécessaire de définir un délai d'expiration si la voie est configurée sans arrêt en cas de silence. Pour la fonction PRINT_CHAR, la définition d'un délai d'expiration est facultative mais conseillée.
Mécanisme interne de l'UC
Le port série de l'automate Modicon M340 est en duplex intégral. Par conséquent, une fonction PRINT_CHAR peut être envoyée même si une fonction INPUT_CHAR ou INPUT_BYTE a été envoyée ou est en attente d'envoi.
L'accès en lecture et écriture s'effectue grâce à deux pointeurs indépendants.
La figure ci-dessous représente ce mécanisme :
Les données reçues sont stockées dans un tampon cyclique de 1 024 bits. Une fois le tampon saturé, le 1 025e bit reçu remplace le 1er bit, et ainsi de suite. Chaque bit du tampon lu à l'aide de la fonction INPUT_CHAR est réinitialisé.
L'UC enregistre l'écho des données émises dans le même tampon que les données reçues. Il est donc obligatoire de vider le tampon de l'UC après chaque PRINT_CHAR ou avant que quelqu'un n'envoie des données à la voie. Sinon, les données reçues suite à une fonction INPUT_CHAR ou INPUT_BYTE ne seront pas les bonnes.
Pour vider le tampon de l'UC, vous pouvez mettre à 1 le paramètre d'entrée RAZ de la fonction de lecture et annuler cette dernière avant l'expiration du délai. Le tampon est d'abord réinitialisé, puis le processeur attend la réception des données.
NOTE : L'utilisation de cette fonction est conseillée pour démarrer correctement une réception en éliminant les anciennes données pouvant rester dans le tampon.
Deux types de programmation permettent d'annuler un échange effectué par les fonctions de communication :