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.
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 :
|
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 :
|
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.