Présentation

Utilisez le bloc fonction READ_DDT pour configurer les messages pour le module de communication BMENUA0100.

Les paramètres ADR, DDT_NAME et GEST définissent l'opération.

EN et ENO peuvent être configurés en tant que paramètres supplémentaires.

Représentation en FBD

Paramètres d'entrée

Paramètre

Type de données

Description

EN

BOOL

Ce paramètre est facultatif. Lorsque la valeur un est associée à cette entrée, le bloc est activé et peut résoudre l'algorithme des blocs fonction. Lorsque la valeur zéro est associée à cette entrée, le bloc est désactivé et ne peut résoudre l'algorithme des blocs fonction.

ADR

Tout tableau de INT

Tableau contenant l'adresse de l'entité de destination de l'opération d'échange. L'adresse est le résultat de la fonction ADDMX. (Par exemple : ADDMX(0.0.3{192.168.10.2}100.TCP.MBS indique le module à l'adresse IP 192.168.10.2 correspondant à l'ID d'unité 100 (serveur local du module) et connecté au port Ethernet intégré.)

DDT_NAME

STRING

Nom du DDT à lire : T_BMENUA0100

Paramètres d'entrée/sortie

Le tableau GEST est local :

Paramètre

Type de données

Description

GEST

Array [0...3] of INT

Paramètres de gestion, composés de quatre mots. Pour plus d'informations sur ces paramètres, consultez la rubrique d'aide de Control Expert Structure des paramètres de gestion.

Mot#

Octet de poids fort

Octet de poids faible

0

Numéro de l'échange

Bit d'activité : rang 0

Bit d'annulation : rang 1

Bit de données immédiat : rang 2

1

Rapport d'opération

Rapport de communication

2

Timeout

3

Longueur

Paramètres de sortie

Paramètre

Type de données

Description

ENO

BOOL

Ce paramètre est facultatif. Lorsque vous sélectionnez cette sortie, vous obtenez également l'entrée EN. La sortie ENO est activée lorsque l'exécution du bloc fonction aboutit.

RECP_DDT

Quelconque

Mémoire tampon de réception. Une variable DDT peut être utilisée. Consultez la description du DDT de T_BMENUA0100 pour connaître le contenu de ce DDT. la taille des données reçues (en octets) est automatiquement écrite par le système dans le quatrième mot de la table de gestion.

Bloc fonction de communication asynchrone

Dans une application à redondance d'UC, pendant un événement de basculement, le bloc fonction de communication asynchrone READ_DDT ne recommence pas automatiquement à fonctionner sur le nouveau PAC primaire, sauf s'il est configuré de la manière spécifique décrite ci-après.

Procédez comme suit pour permettre aux EFB de communication asynchrone de fonctionner à nouveau automatiquement après un basculement :

  • Programmez votre application afin que toutes les instances EFB ne soient pas échangées avec le PAC redondant. Pour cela, désélectionnez l'attribut Echange sur l'automate redondant de l'instance EFB.

Remarques relatives à la configuration de la fonction

Lors de l'utilisation de la fonction élémentaire (EF) READ_DDT, notez bien :

  • Si votre application utilise plus d'un module BMENUA0100 dans un même rack, configurez une instance distincte de tableau d'éléments WORD pour chaque broche GEST. Chaque bloc gère son propre tableau de types WORD.

  • Il n'est pas nécessaire de définir une valeur pour le paramètre de longueur dans GEST[3], car il n'y a aucune donnée à envoyer. A la fin de l'opération (lorsque le bit d'activité dans GEST[0] est défini sur 0), la longueur est définie avec la longueur des données copiées dans le paramètre de sortie RECP_DDT si aucune erreur détectée est signalée dans GEST[1] ou avec un code d'état supplémentaire. Reportez-vous à la rubrique d'aide de Control Expert Codes d'erreur des EFB avec paramètre STATUS pour une description de ces valeurs de code d'état supplémentaires.

  • Si le délai est égal à 0 indique une période d'attente illimitée. Dans ce cas, le délai ou la perte de communication qui se produit durant l'opération d'échange n'est pas détecté. Durant cette période d'attente illimitée, le paramètre RECP_DDT conserve sa valeur précédente. Pour éviter ce scénario, définissez le délai à une valeur différente de zéro.

  • En cas de rapport d'opération 16#01 (requête non traitée) ou 16#02 (réponse incorrecte) dans le mot GEST[1] du tableau de gestion, un code d'état supplémentaire peut être signalé dans le paramètre de longueur (GEST[3]). Les codes d'état renvoyés dans ce champ correspond à une sous-plage de codes STATUS possibles de EFB de communication. Les valeurs possibles pour READ_DDT sont 0x30ss et 0x4001. Reportez-vous à la rubrique d'aide de Control Expert Codes d'erreur des EFB avec paramètre STATUS pour une description de ces valeurs de code d'état supplémentaires.

  • En fonction du DDT défini dans le paramètre DDT_NAME, certaines vérifications de cohérence sont exécutées sur les données reçues. En cas de détection de divergence, le code 16#02 (réponse incorrecte) est défini dans l'octet de rapport d'opération (octet de poids fort GEST[1]). Notez que le bloc ne vérifie pas la validité du type de données de la variable configurée comme mémoire tampon de réception (RECP_DDT). Vérifiez que le type de données de la variable liée au paramètre RECP_DDT correspond au type de données reçues.

Configuration de la fonction élémentaire READ_DDT

Pour configurer la fonction élémentaire READ_DDT, suivez ces étapes :

Étape

Action

1

Définissez l'adresse de l'équipement de destination dans ADR (utilisez un bloc ADDM pour définir cette adresse dans un format de chaîne explicite).

2

Définissez le paramètre DDT_NAME avec le nom du DDT à lire.

3

Appelez la fonction READ_DDT pour lancer la communication (avec la broche d'entrée EN définie sur 1 si elle est configurée).

4

Surveillez ce bit d'activité (octet de poids faible du paramètre GEST[0]) jusqu'à la fin de la communication (le bit d'activité est défini sur 0 par le système lorsque la communication est terminée). Exécutez une seule fois cette fonction pour éviter d'effacer les valeurs d'état. Par exemple, si la broche EN est définie sur 0 durant l'opération, la fonction est appelée à nouveau.

5

Consultez les paramètres de rapport dans GEST[1]. Si le rapport indique 16#0000, alors la mémoire tampon RECP_DDT est remplie de données reçues. La taille des données reçues (en octets) est écrite dans le quatrième mot (GEST[3]) de la table de gestion.

Exemple de fonction élémentaire (EF) READ_DDT

Dans cet exemple, la fonction élémentaire READ_DDT peut être lancée :

  • En continu, en définissant la variable read_ddt_continuous.

    NOTE : En cas de détection d'erreur, les codes de rapport dans le deuxième mot de la variable read_ddt_mngt ne peuvent pas être lu.
  • Une seule fois, en définissant la variable read_ddt_one_shot.