Description fonctionnelle

La fonction READ_REMOTE est utilisée pour lire la valeur de variables distantes qui sont ensuite échangées entre applications d'automate.

Lorsque la valeur d'entrée EN est TRUE :

  • Le bloc fonction de communication READ_REMOTE permet d'échanger des valeurs de variable entre automates. Les variables localisées et non localisées peuvent être lues.

  • Il est possible de lire tout type de variable distante nommée (localisée ou non localisée) sur la base du nom de la variable.

  • Le nombre de broches liées à la sélection des variables est fixe et ne peut pas être modifié par l'utilisateur : 14 broches pour spécifier des variables locales et 14 broches pour spécifier des variables distantes. Il n'est pas nécessaire de connecter toutes les broches d'entrée et de sortie.

NOTE : Les noms de variable distante indiqués dans le paramètre R_VAR_x peuvent être modifiés au moment de l'exécution. Cela entraîne une relance du processus de vérification entre les automates local et distant.

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

Limites liées au micrologiciel des UC

Le bloc READ_REMOTE est pris en charge par :

  • UC M580 avec système d'exploitation de version 3.20 ou ultérieure

  • UC M340 avec système d'exploitation de version 3.30 ou ultérieure

Pour permettre la vérification de type via une comparaison de sommes de contrôle (voir Contrôle des types de données), l'UC distante doit utiliser la version minimale de micrologiciel suivante :

  • UC M580 avec système d'exploitation de version 3.20 ou ultérieure

  • UC M340 avec système d'exploitation de version 3.30 ou ultérieure

NOTE : Il est possible d'échanger des variables avec une UC M580 ou M340 distante disposant d'un micrologiciel antérieur ou avec une autre UC prenant en charge la fonction Dictionnaire de données en désactivant la vérification de type basée sur la comparaison de somme de contrôle à l'aide du paramètre CTRL.

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL READ_REMOTE_Instance CTRL:=ReadRemote_Control, ENABLE:=ReadRemote_Enable, ADDR:=Address, ABORT:=ReadRemote_Abort, R_VAR_1:=RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, DONE=>ReadRemote_Done, ACTIVE=>ReadRemote_Active, ERROR=>ReadRemote_ExecutionError, STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode, L_VAR_1=>LocalVariable_1, ..., L_VAR_14=>LocalVariable_14)

Représentation en ST

Représentation :

READ_REMOTE_Instance (CTRL:=ReadRemote_Control, ENABLE:=ReadRemote_Enable, ADDR:=Address, ABORT:=ReadRemote_Abort, R_VAR_1:=RemoteVariable_1, ..., R_VAR_14:=RemoteVariable_14, DONE=>ReadRemote_Done, ACTIVE=>ReadRemote_Active, ERROR=>ReadRemote_ExecutionError, STATUS=>ErrorCode, EXT_STATUS=>ExtendedErrorCode, L_VAR_1=>LocalVariable_1, ..., L_VAR_14=>LocalVariable_14);

Description des paramètres

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

Paramètre

Type

Commentaire

CTRL

ARRAY_INT [0..3]

Paramètre d'entrée Control :

  • INT [0] : TIMEOUT définissant le temps d'attente maximum jusqu'à la fin d'exécution de la fonction READ_REMOTE (millisecondes)

  • INT [1] : défini sur 1 si la version de micrologiciel de l'UC distante est antérieure à V3.30 pour M340 ou à V3.2 pour M580

NOTE : La vérification de type via la somme de contrôle du type n'est pas effectuée dans le cas de INT [1]. Cette vérification s'appuie uniquement sur la longueur du type (par exemple, les types des variables locale et distante sont considérés comme cohérents s'ils ont la même taille en octets).

ENABLE

BOOL

La fonction est exécutée lorsque ce paramètre est ON.

ABORT

BOOL

La fonction n'est pas exécutée (abandon) lorsque ce paramètre est ON.

ADDR

ANY_ARRAY_INT

Tableau contenant l'adresse de l'automate, résultat de :

R_VAR_i

STRING

Identification (nom symbolique) d'une variable distante.

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

Paramètre

Type

Commentaire

DONE

BOOL

La fonction demandée est correctement exécutée et validée.

ACTIVE

BOOL

TRUE si l'exécution du bloc fonction est en cours (lecture des descripteurs de variable distante et de leurs valeurs).

ERROR

BOOL

Un nouvel état non nul est reçu.

STATUS

INT

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

NOTE : La valeur du paramètre STATUS est 0 uniquement si la valeur du paramètre EXT_STATUS est 0 pour chaque accès de variable.

EXT_STATUS

ARRAY [1..14] OF INT

Fournit le code d'erreur étendu si une erreur est détectée par le bloc fonction : un état pour chaque accès de variable.

L_VAR_i

ANY

Variable locale utilisée pour stocker la valeur lue dans une variable distante.

NOTE : Le type d'une variable locale doit correspondre au type d'une variable distante (voir Contrôle des types de données ci-après).

Règles d'utilisation

Cette fonction prend en charge les données distantes suivantes :

  • Variables élémentaires

  • Tableaux

  • Instances DDT sans références (indirection de type =1)

Les types de syntaxe suivants sont pris en charge :

  • MyVar

  • MyArray[2]

  • MyDdtArray[4].elem1

NOTE : L'index Array doit être une valeur immédiate.
NOTE : Une variable distante est adressée par son nom ou son nom de chemin. Par exemple, MyVar[2].elem1.

Le bloc fonction de communication READ_REMOTE lit d'abord la définition, l'adresse et le type des variables distantes ; il lit ensuite les variables elles-mêmes. Cette règle s'applique également aux modifications en ligne des données du serveur d'automate, par exemple la suppression d'une variable ou d'une instance de bloc fonction.

La fonction Dictionnaire de données doit être activée à la fois par un automate client et par un automate serveur.

Le bloc fonction de communication READ_REMOTE doit être invoqué et exécuté à partir de la tâche MAST, FAST, AUX0, ou AUX1.

Le jeu de caractères autorisé pour une variable distante est Standard. Si un caractère étendu ou Unicode est utilisé pour une variable distante, une erreur est détectée et le message le serveur OFS affiche un message indiquant que la variable est introuvable.

Si l'option Variables IHM uniquement est utilisée dans le Dictionnaire de données (Outils > Options du projet > Données intégrées de l'automate), l'attribut Variable IHM doit être sélectionné pour les variables échangées avec le bloc fonction READ_REMOTE. Cette opération est effectuée dans une application locale ou une application distante.

NOTE : L'option Variables IHM uniquement ne doit pas nécessairement être configurée à l'identique dans les applications locale et distante.

Contrôle des types de données

Le bloc fonction de communication READ_REMOTE lit des variables dont les types de données sont identiques.

Le contrôle du type de données entre variables locales et distantes est effectué par défaut et s'applique aux types suivants :

  • EDT

  • DDT

  • Tableau (ARRAY) de DDT

  • Tableau (ARRAY) anonyme

Le contrôle de type d'utilisateur s'appuie sur la somme de contrôle et sur la longueur des types.

Les attributs exportés du format source défini sont vérifiés au cours du contrôle de type basé sur l'égalité des sommes de contrôle.

Un contrôle minimum de cohérence basé sur la longueur des types est systématiquement effectué pour vérifier que les variables locale et distante présentent la même taille en octets.

Il n'y a pas de contrôle par nom de type en raison de la différence entre les définitions utilisées par l'automate client et le serveur.

Pour désactiver le contrôle de type de données, utilisez les paramètre CTRL. Seul le contrôle de type de données basé sur l'égalité des sommes de contrôle de type peut être désactivé via le paramètre CTRL.

NOTE : Les types de données STRING et STRING[n] sont considérés identiques même si la longueur de chaîne est différente. Seuls les caractères correspondant à la longueur minimum des variables locale et distante sont échangés. La troncature de chaîne concerne uniquement les variables de type chaîne (STRING ou STRING[n]). Cette règle ne s'applique pas aux variables de type chaîne situées à l'intérieur des DDT.
NOTE : Les gammes d'UC Premium et Quantum ne présentent pas le même schéma d'alignement mémoire que les gammes M580 et M340. Les variables de type DDT ou tableau peuvent ne pas s'échanger correctement, en indiquant le code 16#1309 (non-concordance de longueur) dans le champ EXT_STATUS correspondant. Pour éviter un échange de données incorrect, vous devez modifier le type DDT dans Premium ou Quantum. Pour plus d'informations, reportez-vous au chapitre DDT : Règles de mappage. Control Expert peut indiquer que l'alignement semble différent lors de la compilation. Pour activer cette option, modifiez la propriété La compatibilité du mappage DDT génère dans Paramètres du projet .

Comportement du mode de redondance d'UC

En mode de redondance d'UC, READ_REMOTE s'exécute de la même manière que les autres blocs fonction de communication. La règle de programmation décrite dans Bloc fonction de communication asynchrone doit être suivie.

Lors d'un basculement, l'adresse IP de l'automate cible est basculée dans l'automate serveur tandis que la requête en cours est relancée en mode de redondance. La communication avec le bloc fonction READ_REMOTE est ainsi restaurée et se poursuit normalement.

NOTE : La définition d'une variable distante est communiquée à l'automate redondant en même temps que l'état interne du bloc fonction de communication READ_REMOTE.

Simulateur d'automate

Le bloc fonction de communication READ_REMOTE peut être utilisé avec le simulateur d'automate de requêtes de communication en cours. Voir EcoStruxure™ Control Expert - Simulateur d'automate pour plus d’informations.

Limites

Cette fonction ne prend pas en charge les données suivantes mappées sur le type de données ANY :

  • Instances IODDT

  • Instances de DDT d'équipement contenant des types EBOOL

  • Instances de DDT comprenant une référence (indirection de type =1)

  • Tableaux de types EBOOL, EFB et DFB

NOTE : Le comportement est identique pour le paramètre ANY.

Autres limites :

  • Le nombre maximum de variables est 14

  • La taille de la requête ne doit pas dépasser 1 Ko. Autrement dit :

    • La taille totale des données échangées doit être inférieure à 1 Ko

    • La somme de toutes les chaînes décrites dans tous les chemins de variable doit être inférieure à 1010 octets

    • Si la taille de la requête est supérieure à 1 Ko, une erreur d'état est générée

  • Le temps de réponse dépend du temps de cycle de l'automate et il est limité à la valeur de timeout indiquée dans le premier mot du paramètre CTRL.