Fonctions définies par l’utilisateur

FactoryTalk Design Workbench
prend en charge la création et la gestion de fonctions définies par l’utilisateur (UDF) pour réutiliser la logique du programme et rendre notre programme plus lisible. Pour un simple calcul ne nécessitant qu'une seule sortie, utilisez une UDF.
Elles ne peuvent pas accéder aux variables locales dans le programme appelant. Les variables locales dans le programme appelant doivent être transmises à l'UDF sous forme de paramètres d'entrée.
IMPORTANT:
Un paramètre d’entrée défini par l’utilisateur ne peut pas activer ou désactiver les UDF, car le paramètre d’entrée active ou désactive uniquement les instructions dans la fonction.
Pour activer ou désactiver un UDF, activez ou désactivez
EN/ENO
dans le volet
Propriétés
.
Si
EN/ENO
est désactivé, l’UDF n’est pas exécuté et les paramètres de sortie ne sont pas écrasés.
Si une UDF est exécutée plusieurs fois par scrutation de programme, il n’est pas recommandé d’utiliser des instructions qui nécessitent plusieurs scrutations de programme, comme des temporisateurs, des mouvements, des messages et des instructions de comptage. Ces instructions conservent les états entre les scrutations de programme.

Utiliser des UDF plutôt que des blocs de fonctions définis par l’utilisateur (UDFB)

  • Pour un simple calcul ne nécessitant qu’une seule sortie comme
    Y=MX+B.
  • Pour les instructions sans état qui ne requièrent pas d’enregistrer les valeurs des variables locales d’une exécution à l’autre, comme SIN.
  • Lorsque le paramètre de sortie ne requiert pas de type de données Tableau ou Structuré.
  • Utilisez des UDF dès que possible, car elles consomment moins de mémoire.
    Lorsque plusieurs instances sont nécessaires, l’utilisation d’un UDFB peut nécessiter moins de mémoire qu’une UDF, car un UDFB n’existe pas dans un programme tant qu’il n’a pas été instancié comme une variable.

Utilisation d’un UDFB à la place d’une UDF

  • Pour les calculs complexes qui ont plusieurs sorties.
  • Lorsque l'enregistrement de valeurs de variables locales entre chaque exécution (enregistrement de l'état) est nécessaire.
  • Lorsque plusieurs instances sont nécessaires. Utiliser un UDFB peut nécessiter moins de mémoire qu’une UDF, car un UDFB dans un projet n’existe pas dans un programme tant qu’il n’a pas été instancié comme une variable.
  • Lorsque le paramètre de sortie requiert un type de données Tableau ou Structuré.
  • Lorsque plusieurs messages sont envoyés simultanément.
    Si une UDF contient une instruction de message comme MSG_CIPGENERIC, l'UDF envoie uniquement un message à la fois, même si elle est appelée plusieurs fois par scrutation de programme.

Tenez compte des bonnes pratiques suivantes lorsque vous utilisez des UDF

  • Utiliser l'encapsulation des données.
    Les UDF peuvent accéder aux variables globales. L’accès aux variables globales à partir d’un UDFB n’est pas recommandé.
  • Avant d’appeler plusieurs fois une UDF dans votre projet, déboguez le programme UDF, car :
    • Il est difficile de surveiller la logique d’une UDF lorsqu’elle est appelée plusieurs fois.
    • Il n'est pas possible de surveiller une UDF appelée à partir d'un programme d’interruption.
  • Initialisez des variables locales à chaque exécution.
    Par défaut, les variables locales d’un programme UDF ne sont pas automatiquement réinitialisées à chaque appel de l’UDF. Étant donné que les UDF ne prennent pas en charge plusieurs instances, il est recommandé d’initialiser les variables locales de l’UDF à chaque exécution avec les paramètres d’entrée ou une constante.
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal