Introduction

L'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) permet de définir le fonctionnement des valeurs de liaison reliées aux broches de sortie des EF, en cas d'appel conditionnel d'une EF (entrée EN connectée).

La valeur par défaut de cette option de projet pour les nouvelles applications est désactivé (décochée).

NOTE : Une fois que vous avez changé ce paramètre, vous devez Regénérer tout le projet de l'application.
NOTE : Le fonctionnement de l'application changera après la modification de ce paramètre de projet, ce qui aura une incidence sur l'exécution du code.

Modification de cette option de projet

Vous pouvez modifier l'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0)Control Expert dans Outils > Options du projet > Programme > Langages > Commun.

Fonctionnement en cas de désactivation de l'option de projet

En cas de front descendant sur l'entrée EN, les valeurs des variables de sortie restent inchangées, alors que les liaisons de sorties sont remises à 0.

Pour l'exemple présenté sur le graphique ci-dessous :

  • EN -> 0

  • save_out_val = 1

  • liaison = 0 (rouge)

Fonctionnement en cas d'activation de l'option de projet

En cas de front descendant sur l'entrée EN, les valeurs des variables de sortie et des liaisons de sortie restent inchangées.

Pour l'exemple présenté sur le graphique ci-dessous :

  • EN -> 0

  • save_out_val = 1

  • liaison = 1 (verte)

Compatibilité avec Unity Pro versions 4.0, 4.1 et ultérieure

NOTE :

Unity Pro est l’ancien nom de Control Expert pour les versions 13.1 et antérieures.

Le tableau ci-dessous décrit la compatibilité de Unity Pro version 4.0 (ou antérieure) et d'Unity Pro version 4.1 ou ultérieure, concernant :

  • le transfert d'automate à PC (déchargement)

  • l'ouverture de fichier XEF sur PC (importation)

  • l'ouverture de fichier STA sur PC (projet archivé)

La compatibilité dépend de l'activation ou non de l'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0).

Conditions requises

Unity Pro ≤4.0

Unity Pro 4.1 ou version ultérieure

Généré avec Unity Pro ≤4.0.

Option de projet non disponible dans Unity Pro 4.0.

possible

possible

Généré avec Unity Pro version 4.1 ou ultérieure pour une application 4.0.

Option de projet désactivée.

possible (1)

possible

Généré avec Unity Pro version 4.1 ou ultérieure pour une application V4.0

Option de projet activée.

impossible

possible

Généré avec Unity Pro version 4.1 ou ultérieure pour une application V4.1 (avec un automate M340 V2.1, …)

Option de projet désactivée.

impossible

possible

Généré avec Unity Pro version 4.1 ou ultérieure pour une application V4.1 (avec un automate M340 V2.1, …)

Option de projet activée.

impossible(2)

possible

(1) l'importation d'un fichier XEF 4.1 dans Unity 4.0 peut nécessiter l'outil externe XEFDowngrader

(2) l'automate n'est pas reconnu

Options du projet après déchargement, ouverture de fichier XEF, ouverture de fichier STA

NOTE :

Unity Pro est l’ancien nom de Control Expert pour les versions 13.1 et antérieures.

Le tableau ci-dessous décrit l'état de l'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) après

  • le transfert d'automate à PC (déchargement)

  • l'ouverture de fichier XEF (ou ZEF) sur PC (importation)

  • l'ouverture de fichier STA sur PC (projet archivé)

Conditions requises

Unity Pro ≤4.0

Unity Pro 4.1 ou version ultérieure

Généré avec Unity Pro ≤4.0.

Option de projet non disponible dans Unity Pro 4.0.

non disponible

non activé

Généré avec Unity Pro version 4.1 ou ultérieure pour une application 4.0.

Option de projet désactivée.

non disponible

non activé

Généré avec Unity Pro version 4.1 ou ultérieure pour une application V4.0

Option de projet activée.

non disponible

activé

Généré avec Unity Pro version 4.1 ou ultérieure pour une application V4.1 (avec un automate M340 V2.1, …)

Option de projet désactivée.

non disponible

non activé

Généré avec Unity Pro version 4.1 ou ultérieure pour une application V4.1 (avec un automate M340 V2.1, …)

Option de projet activée.

non disponible

activé

En cas de déchargement, d'importation ou d'ouverture d'une application Unity Pro avec Unity Pro version 4.1 ou ultérieure, créée avec Unity Pro version 4.0 ou antérieure, l'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) est désactivée.

Après une opération Regénérer tout le projet et un déchargement, le fonctionnement est celui qu'avait l'application dans l'environnement de la version précédente de Unity Pro.

Si vous souhaitez utiliser l'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0), vous devez :

  • ouvrir ou décharger une application,

  • activer l'option de projet,

  • Regénérer tout le projet .

Annulation d'une suppression d'EF

Si l'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) est activée et qu'une EF est appelée de façon conditionnelle, de la mémoire statique est allouée pour chaque broche de sortie de l'EF, pour enregistrer les valeurs de sortie à l'exécution.

En cas de suppression de cette EF dans l'éditeur la mémoire statique est libérée.

Si vous lancez ultérieurement une opération UNDO, la fonction élémentaire sera re-créée et une nouvelle mémoire statique sera allouée.

Après Générer, les mécanismes suivants sont mis en œuvre :

  • Option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) désactivée :

    Aucune mémoire statique n'est affectée aux broches de sortie car le maintien des valeurs de dernière liaison n'est pas nécessaire.

    • Si EN est à 0 la liaison est remise à 0.

    • Si EN est à 1 la liaison reçoit une écriture de OUT.

  • Option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) activée :

    Une nouvelle mémoire statique est allouée aux broches de sortie parce que la mémoire précédente a été libérée. La nouvelle mémoire statique de la liaison est initialisée à 0.

    • Si EN est à 0 la valeur de la liaison reste initialisée à 0.

    • Si EN est à 1 la fonction élémentaire est exécutée et la valeur de OUT est écrite dans la liaison.

Exemple :

Option de projet activée, EN non connectée

Conditions avant Générer :

  • EN = 0

  • save_out_val = 1

  • liaison = 1

Suppression d'EF.

UNDO et Générer .

Résultat :

  • save_out_val = 1

  • liaison = 0

A la prochaine activation de la fonction élémentaire modifiée, la nouvelle mémoire statique de la liaison reçoit une écriture et se comporte comme attendu à la prochaine désactivation.

Ce fonctionnement est en principe le même avec d'autres types d'EF (ADD, XOR…).

EN non connectée

Si EN n'est pas connectée ou affichée (case Afficher EN/ENO non cochée), aucune préparation n'est effectuée pour maintenir les dernières valeurs de liaison.

Si l'entrée EN est connectée ultérieurement, puis que la fonction Générer soit lancée, les mécanismes suivants sont mis en œuvre :

  • Option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) désactivée :

    Aucune mémoire statique n'est affectée car le maintien des valeurs de dernière liaison n'est pas nécessaire.

    Après le front descendant de EN, la liaison est remise à zéro, la variable save_out_val est inchangée.

  • Option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) activée :

    Une nouvelle mémoire statique est affectée sur l'automate pour maintenir les dernières valeurs de liaison pour les liaisons de sortie. Cette mémoire statique est initialisée à 0.

    Si EN est à 1 après un Générer, la fonction élémentaire est exécutée et les données de sortie sont affectées à la mémoire statique de la liaison connectée.

    La mémoire statique de la liaison est cohérente à la fin du premier cycle de travail de l'automate après un Générer .

NOTE : si l'EN est à 0 après la fonction Générer, la mémoire statique, représentant la liaison, conserve son état d'initialisation (0), qui peut être différent de la valeur d'avant la modification du téléchargement.

Exemple :

Option activée, EN non connectée

Conditions avant Générer :

  • EN du premier AND n'est pas connectée, c'est-à-dire EF AND est appelée

  • save_out_val = 1

  • liaison = 1

Connecter l'activation à l'EN du premier AND, régler l'activation à 0, lancer Générer .

Résultat :

  • save_out_val = 1

  • liaison = 0

A la prochaine activation de la fonction élémentaire modifiée, la nouvelle mémoire statique de la liaison reçoit une écriture et se comporte comme attendu à la prochaine désactivation.

Ce fonctionnement est en principe le même avec d'autres types d'EF (ADD, XOR…).

Cas d'utilisation

Les cas d'utilisation ci-dessous démontrent que

  • le remplacement d'EF par d'autres EF conduit à l'initialisation des valeurs de liaisons de sortie suite à l'allocation de mémoire nouvelle.

  • le changement de liaisons de sortie sur des EF non modifiées conduit à un maintien des valeurs de liaison suite à l'utilisation de la mémoire déjà allouée et appartenant aux EF.

Les cas d'utilisation ci-dessous s'appliquent à tous les types d'EF.

Remplacement de AND par AND_BOOL

Prérequis

  • L'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) est activée

  • variable enable = 0.

  • liaison de sortie = 1 (car enable était à 1 dans l'historique)

Remplacement de AND par AND_BOOL et lancement de Générer.

Résultat : liaison de sortie = 0

Raison pour que la liaison de sortie soit à 0 après Générer :

  • La mémoire qui contient les valeurs de sortie de la fonction élémentaire supprimée (AND) a été libérée.

  • L'affectation d'une nouvelle EF (AND_BOOL) entraîne l'allocation d'une nouvelle mémoire pour contenir ses valeurs de liaison de sortie.

  • La nouvelle mémoire statique est initialisée à 0.

Remplacement de ADD par MUL

Prérequis

  • L'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) est activée

  • variable enable = 0.

  • liaison de sortie = 6 (car enable était à 1 dans l'historique)

Remplacement de ADD_INT par MUL_INT et lancement de Générer.

Résultat : liaison de sortie = 0

Raison pour que la liaison de sortie soit à 0 après Générer :

  • La mémoire qui contient les valeurs de sortie de la fonction élémentaire supprimée (ADD_INT) a été libérée.

  • L'affectation d'une nouvelle EF (MUL_INT) entraîne l'allocation d'une nouvelle mémoire pour contenir ses valeurs de liaison de sortie.

  • La nouvelle mémoire statique est initialisée à 0.

Suppression d'une liaison de sortie suivie de UNDO

Prérequis

  • L'option de projet Maintenir les liens de sortie sur les EF désactivées (EN=0) est activée

  • variable enable = 0.

  • liaison de sortie = 6 (car enable était à 1 dans l'historique)

Suppression de liaison de sortie.

Annulation de suppression et Générer .

Résultat : liaison de sortie = 6

Raison pour que la liaison de sortie soit à 6 après Générer :

  • La suppression d'une liaison de sortie et la connexion d'une nouvelle liaison de sortie à la même broche de sortie d'EF n'entraînent pas d'allocation de nouvelle mémoire pour contenir les valeurs de la liaison de sortie.

  • Du fait que cette mémoire appartient à l'EF, elle n'est pas libérée jusqu'à la suppression de l'EF.

  • Dans ce cas d'utilisation la nouvelle liaison reçoit la mémoire de la liaison supprimée (valeur = 6).