Présentation

Les fonctions de communication permettent à un équipement de communiquer avec un autre équipement.

Certaines sont communes à plusieurs types de voies de communication ; d'autres, propres à une seule voie de communication.

Les fonctions de communication sont traitées de façon asynchrone par rapport à la tâche d'application utilisée pour les activer (à l'exception des fonctions SEND_TLG et RCV_TLG). Une fonction de communication est asynchrone lorsqu'elle est exécutée pendant un ou plusieurs cycles après le cycle dans lequel elle a été activée.

Plusieurs blocs de fonction de communication peuvent être programmés sur le même port de communication. Si le nombre maximum de blocs est dépassé sur un port, les blocs excédentaires ne sont pas traités tant qu'un chemin de transaction n'est pas libéré. Lorsqu'un chemin de transaction se libère, le bloc suivant sur le même port devient actif et utilise le chemin libéré.

Cette rubrique a pour objet de décrire la gestion des fonctions de communication selon leur type :

  • les fonctions de type EF et Procédure,

  • les fonctions de type EFB.

NOTE : L'insertion d'une fonction élémentaire (EF) de communication dans la tâche FAST n'augmente pas la vitesse de traitement de l'EF, pas plus que la vitesse d'exécution de la communication. Toutes les communications (y compris la libération physique des messages sur toutes les liaisons de communication) sont exécutées à la fin de la tâche MAST, même si la fonction EF de communication est traitée dans la tâche FAST.

Fonctions de communication de type EF et Procédure

Les fonctions de communication de type EF et Procédure sont gérées comme suit :

Début d'une communication :

la fonction est appelée à l'intérieur de la tâche. L'appel de la fonction déclenche la communication si l'entrée EN est à 1.

Surveillance d'une communication :

Le système d'exploitation de l'UC gère la communication de manière autonome. Celle-ci est traitée en mode asynchrone par rapport à la tâche qui l'a activée. Il n'est pas nécessaire de réexécuter la fonction lorsqu'elle a été activée. L'utilisateur surveille le processus de communication grâce aux paramètres de gestion mis à jour par le système d'exploitation.

Pendant la communication, le bit d'activité est mis à 1. Une fois la communication terminée (avec ou sans erreur détectée), ce bit est mis à 0. Comme la communication peut durer plusieurs cycles de tâche, il contient de tester le bit d'activité pour savoir quand la communication s'est terminée.

Si la communication nécessite plusieurs cycles de tâche, réinitialisez l'entrée EN à 0 après le lancement de la fonction de communication et avant le cycle de tâche suivant. Pour maintenir une communication continue, conservez l'entrée EN à 1.

Début d'une nouvelle communication :

deux cas de figure sont possibles :

  • La fonction est appelée une fois lorsqu'une communication est requise (déclenchement sur front) : appelez la fonction avec l'entrée EN à 1 pour débuter la communication et réinitialisez EN (0) avant le cycle de tâche suivant.

  • La fonction est appelée de manière cyclique dans une tâche : si le bit d'activité est à 0 (communication précédente terminée, testée par la fonction lorsqu'elle est appelée), la fonction débute une nouvelle communication. Dans ce cas de figure, la communication est continue.

    Pour éviter de lancer une communication dans le cycle de tâche suivant, réinitialisez l'entrée EN à 0.

Fonctions de communication de type EFB

Les fonctions de communication de type EFB sont gérées comme suit :

Début d'une communication :

la fonction est appelée à l'intérieur de la tâche, mais elle dépend de l'état de l'entrée ENABLE. Pour débuter la communication, les entrées ENABLE et EN doivent être à 1 lorsque la fonction est appelée.

Surveillance d'une communication :

la fonction est traitée pendant la tâche. Si la communication requiert plusieurs cycles de tâche, la fonction doit être appelée et activée dans la tâche lors de chaque cycle.

Pendant la communication, la sortie ACTIVE est mise à 1. Une fois la communication terminée (avec ou sans erreur détectée), la sortie ACTIVE est mise à 0.

Si la communication requiert plusieurs cycles de tâche :

  • Lorsque la fonction de communication est exécutée, les entrées ENABLE et EN doivent être mises à 1 pendant la communication. La valeur de la sortie ACTIVE peut être utilisée comme une condition pour gérer l'entrée ENABLE de la fonction. Consultez l'exemple fourni dans la section sur la description des fonctions de communication M580.

  • Si l'entrée ENABLE ou EN est mise à 0 pendant une tâche, la fonction est désactivée et figée. Elle reprend son activité lors d'un cycle suivant si les entrées ENABLE et EN sont à 1.

Début d'une nouvelle communication :

la fonction est appelée de manière cyclique dans une tâche à des fins de surveillance.

Lorsqu'elle est appelée, elle teste elle-même son activité. Si la fonction est inactive (communication précédente terminée), les entrées ENABLE et EN doivent être mises à 1 pour qu'une nouvelle communication puisse débuter.

Pour n'exécuter la fonction de communication qu'une fois, l'entrée ENABLE doit être mise à 0 lorsque la sortie ACTIVE est lue à 0.

La figure suivante détaille le rôle et le fonctionnement des paramètres ENABLE, ACTIVE, DONE (ou SUCCESS) et ERROR :

1 DONE = 1 si aucune erreur détectée, DONE = 0 en cas d'erreur détectée

2 ERROR = 0 si aucune erreur détectée, ERROR = 1 en cas d'erreur détectée

Le paramètre ENABLE est écrit par l'application. Les paramètres ACTIVE, DONE et ERROR sont lus par l'application.