Description de la fonction

La fonction INPUT_CHAR_QX permet de recevoir une chaîne de caractères envoyée par un équipement série connecté à un module de communication série Modicon X80 (BMX NOM) situé dans une station EIO.

Le message reçu est enregistré dans une chaîne de caractères.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

NOTE : La fonction INPUT_CHAR_QX fonctionne avec un module Modicon M340 BMX NOM 0200 muni d'un micrologiciel version SV 1.4 ou ultérieure. Si le micrologiciel est d'une version antérieure, une erreur (STATUS = 16#3301) est générée.

Les blocs fonction de communication utilisent un chemin de transaction de données et requièrent plusieurs cycles pour effectuer une opération. Le nombre de chemins de transaction disponibles par module et par cycle MAST dépend du port de communication utilisé :

  • Les modules à port intégré Modbus Plus ou NOM prennent en charge jusqu'à 4 blocs simultanément.

  • Le port intégré Ethernet TCP/IP prend en charge jusqu'à 4 blocs simultanément.

  • Les modules TCP/IP Ethernet NOE, NOC et 140 CRP 312 00 prennent en charge jusqu'à 16 blocs simultanément.

D'autres blocs fonction de communication peuvent être programmés sur le même port de communication. Toutefois, le bloc de communication qui dépasse le nombre maximum sur ce port n'est traité qu'après la mise à disposition d'un des chemins de transaction. Le bloc suivant sur le port devient alors actif et commence à utiliser un chemin disponible.

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL INPUT_CHAR_QX_Instance (ENABLE:=InputCharEnable, ABORT:=InputCharAbort, ADDR:=ModuleAddress, RESET_BUF:=ResetInputBuffer, INPUT_LEN:=NbCharToRead, DONE=>InputCharSuccessfull, ACTIVE=>InputCharActive, ERROR=>InputCharFaulty, STATUS=>ErrorCode, REC_LEN=>NbCharReceived, REC_BUF=>ReceivedBuffer)

Représentation en ST

Représentation :

INPUT_CHAR_QX_Instance (ENABLE:=InputCharEnable, ABORT:=InputCharAbort, ADDR:=ModuleAddress, RESET_BUF:=ResetInputBuffer, INPUT_LEN:=NbCharToRead, DONE=>InputCharSuccessfull, ACTIVE=>InputCharActive, ERROR=>InputCharFaulty, STATUS=>ErrorCode, REC_LEN=>NbCharReceived, REC_BUF=>ReceivedBuffer)

Description des paramètres

Le tableau suivant décrit les paramètres d’entrée :

Paramètre

Type

Commentaire

ACTIVER

BOOL

Réglé sur 1 pour recevoir une chaîne de caractères.

ABORT

BOOL

Réglé sur 1 pour abandonner l'opération en cours.

ADDR

ANY_ARRAY_INT

Tableau contenant l'adresse du module Modicon M340 cible, c'est-à-dire le résultat de la fonction ADDMX.

RESET_BUF

BOOL

Ce paramètre permet de réinitialiser la mémoire de réception :

  • 0: aucune réinitialisation de la mémoire

  • 1: réinitialisation de la mémoire

INPUT_LEN

INT

Nombre de caractères à recevoir :

  • 0: message lu dès qu'il est disponible sur la voie. Une condition STOP doit être définie dans l'écran de configuration.

  • >0: nombre de caractères à lire.

Le tableau suivant décrit les paramètres de sortie :

Paramètre

Type

Commentaire

DONE

BOOL

Réglé sur 1 lorsque la fonction s'est exécutée correctement.

ACTIVE

BOOL

Réglé sur 1 lorsque la fonction est en cours d'exécution.

ERROR

BOOL

Réglé sur 1 si une erreur est détectée par le bloc fonction.

STATUS

WORD

Fournit le code d'erreur si le bloc fonction détecte une erreur.

REC_LEN

INT

Nombre de caractères reçus.

REC_BUF

ANY

Caractères reçus.

Règles de programmation

Si plusieurs fonctions INPUT_CHAR_QX sont lancées simultanément, le paramètre RESET_BUF doit être réglé sur 0 (mémoire de réception du module non réinitialisée).

Une requête de réinitialisation (RESET_BUF=1) doit être émise pour réinitialiser la mémoire du module pour le message suivant, afin d'éviter la réception de données anciennes. Si le paramètre RESET_BUF est réglé sur 1, la fonction INPUT_CHAR_QX doit être lancée avant l'envoi des données. Sinon les caractères déjà reçus sont supprimés.

Il est possible de lancer la fonction INPUT_CHAR_QX avant l'envoi des caractères de fin à l'automate.

Si des caractères de fin sont utilisés, que le tampon en contient beaucoup et qu'il n'a pas été réinitialisé, chaque fonction INPUT_CHAR_QX reçoit la chaîne de début du tampon jusqu'au premier caractère de fin. Les caractères lus sont ensuite supprimés du tampon.

La lecture d'un nombre de caractères fonctionne de la même manière.

Si des caractères de fin sont configurés, il est possible d'utiliser la fonction de nombre de caractères.

NOTE : gestion RTS/CTS : si vous utilisez l'EF INPUT_CHAR_QX dans une communication en mode caractère, les caractères reçus sur la liaison série sont stockés dans un tampon en anneau. La taille de ce buffer est de 1 024. Lorsque le buffer est plein, les autres caractères sont perdus. Pour empêcher cette perte de caractères, il est possible de sélectionner la gestion RTS/CTS. Dans ce cas, lorsque le buffer en anneau est presque plein, l'UC réinitialise son signal RTS pour interrompre l'envoi des caractères.

Si une chaîne de plus de 1000 caractères est envoyée (par exemple, 1013), le RTS n'autorise la réception que des 1000 premiers caractères, tandis que la fonction INPUT_CHAR_QX attend le caractère de fin indéfiniment.

NOTE : si vous souhaitez envoyer une chaîne de plus de 1000 caractères (1013, par exemple), vous devez envoyer 2 chaînes. Par exemple, 1000 caractères dans la première, et les 13 caractères restants dans la seconde.