Description fonctionnelle

Pour les automates Premium, la fonction PRINT_CHAR est utilisée pour envoyer une chaîne de caractères de 4 Ko maximum (120 octets sur le port terminal) à transmettre sur une liaison mode caractère.

Pour les CPU Modicon M340 et M580, la fonction PRINT_CHAR permet d'envoyer une chaîne de caractères de 1 024 octets maximum.

La chaîne de caractères peut être contenue dans une variable statique ou définie sous forme de valeur immédiate (série d’octets entre apostrophes, par exemple : 'Message à envoyer').

Ces chaînes de caractère peuvent contenir des caractères spéciaux, ils doivent débuter par le caractère $ suivi par la valeur hexadécimale du caractère à transmettre, exemple $0D.

Certains caractères spéciaux peuvent être utilisés, tels que :

$R = CR (retour chariot) $L = LF (retour à la ligne) $N = CR+LF

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
PRINT_CHAR String_to_Send, Management_Param

Représentation en ST

Représentation :

PRINT_CHAR(Address, String_to_Send, Management_Param);

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 pour Premium

ARRAY [0..7] OF INT pour Modicon M340 et M580

Les instructions suivantes ne sont correctes que pour l'automate Premium :

  • Address of the message's receiving character mode channel is given by the ADDR function

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

Les instructions suivantes ne s'appliquent qu'à 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')).

Les instructions suivantes ne s'appliquent qu'à l'UC Modicon M580 :

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

EMIS

STRING

Chaîne de caractères à envoyer. Intégrée dans une chaîne de caractères ou indiquée sous forme de valeur immédiate.

Remarque : cette chaîne de caractères doit exister, même s'il n'y a pas de données à envoyer.

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) et bit d'annulation (rang 1)

      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 l'utilisateur et qui définit la longueur de l'échange.

    • Si cette longueur de paramètre est définie sur 0, le système envoie la chaîne entière.

    • Si cette longueur de paramètre est supérieure à la longueur de la chaîne, l'erreur 16#0A (Taille insuffisante du tampon d'envoi) est renvoyée dans le 2e mot de gestion et aucun caractère n'est envoyé.

    NOTE : Dans le cas de PRINT_CHAR, le quatrième mot de gestion (longueur à envoyer) ne doit pas être écrit tant que le bit d'activité est à 1 (c'est-à-dire une fois EF en cours d'exécution). Sinon, la fonction PRINT_CHAR risquerait de se verrouiller en renvoyant une erreur 0xB.

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

Règles de programmation

Les caractères spéciaux doivent être précédés du caractère $ dans la chaîne à transmettre. Les caractères $ ne sont pas transmis par l'émetteur et ne doivent donc pas être comptés lors de l'initialisation du paramètre de longueur.

Les espaces entre deux caractères sont comptés dans un octet.

Par conséquent, dans l'exemple PRINTING IN PROGRESS$L$R, la longueur des données à transmettre est de 22 octets.

Sur les automates Premium, plusieurs cycles d'automate sont nécessaires pour envoyer 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 transmet la chaîne de manière cohérente sur plusieurs fragments, mais n'empêche pas la transmission d'une autre chaîne de caractères entre deux fragments.

Sur les CPU Modicon M340 et M580, un cycle d'UC est nécessaire pour envoyer 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.

NOTE : Pour envoyer des chaînes de caractères contenant des caractères de fin de chaîne (NULL). Vous devez :
  • utiliser des STRING localisées,

  • initialiser le dernier mot du tableau de gestion des échanges avec le nombre de caractères à émettre. Si vous initialisez ce mot avec la valeur 0 la chaîne envoyée s’arrêtera au premier caractère NULL rencontré. Si vous l’initialisez avec une valeur, la longueur de la chaîne de caractères envoyée sera égale à cette valeur.