Description fonctionnelle

La fonction INPUT_CHAR est utilisée pour envoyer une requête de lecture de chaîne de caractères à un module de communication en mode caractère (attente de réception des chaînes de caractères). Le message reçu est enregistré dans une chaîne de caractères.

Pour les automates Premium, cette fonction permet de recevoir jusqu'à 4 Ko (120 octets au niveau du port terminal).

Sur les UC M340 et M580, cette fonction permet de recevoir jusqu'à 1 024 octets.

Deux possibilités s'offrent à vous :

  • Lire un nombre de caractères : Aucune condition ne doit être configurée.

  • Lire un message : Une condition d'arrêt doit être configurée dans l'écran de configuration.

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

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

Représentation en IL

Représentation :

LD Address
INPUT_CHAR Raz, String_Length, Management_Param, Received_Data

Représentation en ST

Représentation :

INPUT_CHAR(Address, Raz, String_Length, Management_Param, Received_Data);

Description des paramètres

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

Paramètre

Type

Commentaire

ADR

ARRAY [0..5] OF INT for Premium

ARRAY [0..7] OF INT for Modicon M340 and M580

Pour l'automate Premium :

  • L'adresse de la voie (en mode caractères) de réception du message est indiquée par la fonction ADDR.

  • Seules les adresses se terminant par SYS sont possibles (exemple : 0.0.0.SYS (port terminal du processeur)).

Pour l'automate Modicon M340 :

  • L'adresse de la voie (en mode caractères) de réception du message est indiquée par la fonction ADDM.

  • La syntaxe de l'adresse est de type ADDM (‘r.m.c.node’). Le champ Node est facultatif. Il peut être de type SYS ou vide (par exemple ADDM('0.0.0.SYS') est égal à ADDM('0.0.0')).

Pour l'UC Modicon M580 :

  • Adresse de l'entité cible de l'opération d'entrée, résultat de la fonction ADDMX.

RAZ

INT

Réinitialisation. Ce paramètre permet de réinitialiser la mémoire de réception du coupleur.

  • valeur 0 : pas de réinitialisation de la mémoire

  • valeur 1 : réinitialisation de la mémoire

REMARQUE : Pour les communications au niveau du port terminal des automates Premium, la valeur doit être 1.

REMARQUE : Sur les UC Modicon M340 et M580, l'EF INPUT_CHAR peut être programmée avec ou sans ce paramètre.

NB

INT

Longueur de la chaîne de caractères ou nombre de caractères à recevoir.

  • Valeur = 0 : Message lu dès qu'il est disponible sur la voie. Ici, une condition d'arrêt doit être spécifiée dans l'écran de configuration.

  • Valeur supérieure à 0 : Indique le nombre de caractères à lire.

REMARQUE : Pour les communications au niveau du port terminal des automates Premium, 0 est la seule valeur autorisée. Le caractère de fin de message par défaut est un retour chariot (CR).

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

Paramètre

Type

Commentaire

GEST

ARRAY [0..3] OF INT

Table de gestion de l'échange composée des mots suivants :

  • Mot de rang 1 : mot géré par le système et composé de 2 octets :

    • octet de poids fort : numéro d'échange,

    • octet de poids faible : bit d'activité (rang 0), bit d'annulation (rang 1) et bit de reconnaissance immédiate (rang 2)

      NOTE : le bit d'annulation n'est disponible que pour les automates Modicon M340 et M580.
  • Mot de rang 2 : mot géré par le système et composé de 2 octets :

    • octet de poids fort : compte rendu d'opération

    • octet de poids faible : compte rendu de communication

  • Mot de rang 3 : mot géré par l'utilisateur et qui définit le temps de réponse maximum en utilisant une base de temps de 100 ms.

  • Mot de rang 4 : mot géré par le système et qui définit la longueur de l'échange.

Pour plus d'informations, consultez la section Structure des paramètres de gestion.

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

Paramètre

Type

Commentaire

RCP

STRING

Chaîne reçue. Cette chaîne est ensuite stockée dans une chaîne de caractères.

NOTE : la taille des données reçues (en octets) est automatiquement écrite par le système dans le quatrième mot du tableau de gestion.

Règles de programmation

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

Une requête peut être envoyée afin de réinitialiser la mémoire du module pour le message suivant et de ne pas recevoir d'anciennes données.

Si le paramètre RAZ est réglé sur 1, la fonction INPUT_CHAR doit être lancée avant d'envoyer des données.

Sur les automates Premium, plusieurs cycles d'automate sont nécessaires pour recevoir une chaîne de caractères de plus de 240 octets (la chaîne est fragmentée). Il est donc important de s'assurer que les données de gestion n'ont pas été modifiées au cours du traitement de la fonction. Le système reçoit la chaîne de manière cohérente sur plusieurs fragments.

Sur les UC Modicon M340 et M580, un seul cycle d'UC (CPU) est nécessaire pour recevoir une chaîne de caractères de 1 024 octets maximum. Il est important de s'assurer que les données de gestion n'ont pas été modifiées au cours du traitement de la fonction.

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 a été envoyée et mise en attente.

Il est possible de lancer la fonction INPUT_CHAR avant de finaliser les caractères sur 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 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 : Dans une communication en mode caractère, lorsque vous utilisez l'EF INPUT_CHAR, les caractères reçus sur la liaison série sont stockés dans un tampon en anneau. La taille de ce tampon est 1024. Lorsque le tampon 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 émise (par exemple 1013), le RTS ne permettra de recevoir que les 1000 premiers caractères, et la fonction INPUT_CHAR attendra le caractère de fin indéfiniment (si aucun délai d'expiration n'a été défini pour cette fonction).

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