Modèles de niveau supérieur
Un modèle de niveau supérieur est un modèle pour la page de démarrage de la visualisation générée. Il contient un cadre comme espace réservé pour les pages spécifiques à l'utilisateur et des onglets permettant de basculer entre les différentes pages. En option, il y a des boutons pour naviguer vers les pages et une ligne de statut et d'adresse. Le modèle de niveau supérieur peut être sélectionné dans les paramètres du Générateur de visualisation.
le AC_ModuleBase
bibliothèque qui fait partie de l'installation standard de CODESYS Application Composer contient trois modèles de niveau supérieur : AC.GenVisu_Toplevel_Template
, AC.Toplevel_Vertical_Template et AC.Toplevel_3S_Vertical_Template
.

AC_Toplevel_3S_Vertical_Template

Outre les modèles préparés, il est également possible de créer des modèles de niveau supérieur définis par l'utilisateur.

(1) : Navigation : Haut / Précédent / Suivant
(2) : Cadre pour afficher les pages
(3) : onglet pour une navigation directe vers les pages de niveau supérieur
(4) : Ligne d'état
(5) : Ligne d'adresse : Chemin d'instance de l'instance de modules affichée
Les éléments du modèle de visualisation sont identifiés par leurs noms d'éléments. Dans la liste ci-dessous, le nom des éléments est écrit entre parenthèses.
[Frame]
: Cadre principal qui affiche les pages de visualisation. Pour de meilleurs résultats, le type d'échelle du cadre doit être défini sur "isotrope".[Tab_Template_1]
,[Tab_Template_2]
: Deux éléments qui sont utilisés pour l'apparence et la disposition de tous les onglets. Tab_Template_1 définit la position du premier onglet et l'apparence de tous les onglets. A partir de la position de Tab_Template_2, la disposition des onglets (horizontal ou vertical) et l'écart entre les onglets seront calculés. La couleur de l'alarme sera définie si la hiérarchie de la page affichée est inférieure à l'instance représentée par l'onglet. Si l'élément est un bouton, la variable d'état du bouton sera également définie. Si l'élément est un cadre, la couleur de l'alarme ne sera pas utilisée. Au lieu de cela, la variable du cadre de commutation sera définie sur "1", si l'onglet est sélectionné (0 par défaut).
[Up]
,[Back]
,[Forward]
: Éléments de navigation qui peuvent être un bouton ou un cadre. Le type d'élément peut être un bouton ou un cadre. Dans le cas d'un cadre, le cadre doit contenir trois visualisations qui doivent être dans l'ordre suivant : Neutre, Enfoncé, Désactivé.[Address]
: Champ de texte qui affiche le chemin d'instance de l'instance de module affichée.[Status]
: Champ de texte qui affiche le contenu de la variable chaîne globaleac.g_stVisuStatusBar
de la bibliothèque AC_ModuleBase. Cette variable peut être utilisée dans les implémentations de modules propres pour afficher l'état d'une variable.
Tous les autres éléments ne sont pas spécialement gérés par le générateur de visualisation. Pour la génération, la visualisation modèle copie et modifie la copie. L'original n'est pas modifié.
À l'exception des éléments de visualisation mentionnés ci-dessus, le générateur de visualisation essaie de ne modifier aucun élément modifié manuellement. Lors de la première génération de visualisation, le modèle de visualisation décrit est copié. Cette copie, tant qu'elle n'est pas supprimée par l'utilisateur, sera uniquement modifiée dans les générations futures et non recopiée. Cela se fait en traitant une visualisation de niveau supérieur d'une exécution antérieure du générateur comme s'il s'agissait d'un nouveau modèle de visualisation (le modèle d'origine n'est jamais modifié), bien qu'il ne soit pas copié. Ainsi, s'il y a des onglets supplémentaires, ces onglets seront ajoutés aux onglets déjà existants. Toutes les autres propriétés et éléments ne seront pas touchés si possible afin que les boutons, onglets, etc., qui ont été ajoutés manuellement par l'utilisateur, conservent leur position.
Astuce
La suppression, par exemple, des boutons de navigation entraîne leur perte. Pour les générer, le visu de niveau supérieur doit être supprimé et régénéré
Alignement des onglets
Les onglets seront alignés horizontalement de gauche à droite ou verticalement de haut en bas. La position relative de l'élément du modèle Tab_Template_1
et Tab_Template_2
définit l'alignement : Si la distance verticale des éléments est supérieure à la distance horizontale, les éléments seront alignés horizontalement, sinon verticalement.
En cas d'alignement vertical, tous les onglets ont la même largeur, qui est la largeur minimale sur laquelle tous les noms d'onglets peuvent être affichés. Dans le cas d'un alignement horizontal, chaque onglet obtient la largeur minimale pouvant afficher son nom. Dans les deux cas la hauteur des onglets sera fixée à la hauteur du premier modèle (Tab_Template_1
).
Pour le placement, le premier modèle est copié et adapté pour chaque onglet.
Le placement commence à la position du premier modèle – la distance entre deux onglets résulte de la distance horizontale ou verticale entre les deux modèles. Cette distance peut aussi être négative, auquel cas la languette suivante chevauche la précédente et peint dessus car elle est plus en avant. Dans le cas d'un alignement vertical, la génération est interrompue avec une erreur s'il n'y a pas assez d'espace vers le bas pour accueillir tous les onglets. Aucune deuxième colonne d'onglets n'est créée. En cas d'alignement horizontal, une nouvelle ligne sera créée si l'onglet suivant ne tient plus horizontalement dans la visualisation. Si cela se produit pour le premier onglet d'une ligne, alors la génération est interrompue avec une erreur.
Il peut arriver qu'il n'y ait pas assez d'espace pour l'onglet. Dans le cas d'un alignement horizontal, cela se produit lors du retour à une nouvelle ligne. Lorsqu'ils sont alignés verticalement, cela se produit lorsque la largeur des onglets est supérieure à l'espace qui leur est prévu dans le modèle. Dans ces cas-là, on tente de créer plus d’espace. Grâce à cet alignement automatique des éléments, il existe quatre cas possibles pour disposer les onglets :
Alignement horizontal des onglets : Tous les onglets doivent être complètement au-dessus du cadre
Alignement horizontal des onglets : tous les onglets doivent être complètement en dessous du cadre
Alignement vertical des languettes : Tous les languettes doivent être entièrement sur le côté gauche du cadre.
Alignement vertical des languettes : Tous les languettes doivent être entièrement sur le côté droit du cadre.
Si l'alignement des onglets ne correspond pas à la restriction ci-dessus, un message d'erreur sera créé.
S'il n'y a pas assez d'espace pour les onglets, le cadre est réduit en conséquence. Tous les éléments entre les onglets et le cadre sont déplacés. La position d'un élément est interprétée comme "entre les onglets et le cadre" si elle n'est pas complètement en dehors de la limite extérieure du premier modèle d'onglet (voir les exemples de disposition horizontale ci-dessous).
La création de la visualisation sera interrompue si la modification de la taille du cadre conduisait à des valeurs négatives.

