Skip to main content

Dialogues d'appel dotés d'une interface

Vous pouvez définir une interface pour une visualisation appelée en tant que boîte de dialogue.

Créez une visualisation pour cela avec le type de visualisation Dialogue et déclarer une interface pour la boîte de dialogue. La référence de la visualisation dans une visualisation primaire au moyen d'une entrée utilisateur et le transfert des paramètres à l'interface.

Lorsque vous appelez la visualisation en tant que visualisation intégrée, les paramètres transmis doivent être des variables d'un type de données de base. Si la visualisation est appelée CODESYS TargetVisu ou un CODESYS WebVisu, les paramètres peuvent également avoir des types de données personnalisés.

Procédure principale

  1. Définissez les types de visualisation de la visualisation sur boîte de dialogue.

  2. Déclarez les variables dans l'éditeur d'interface de la boîte de dialogue.

    La boîte de dialogue a une interface. Vous pouvez transférer des paramètres lors de l'appel de la boîte de dialogue.

  3. Configurez les éléments de la boîte de dialogue et utilisez les variables d'interface.

  4. Sélectionnez un élément dans une autre visualisation (généralement la visualisation principale) pour configurer l'ouverture de la boîte de dialogue.

  5. Dans le Configuration d'entrée → OnMouseDown propriété, cliquez sur Configurer.

    le Configuration d'entrée la boîte de dialogue s'ouvre.

  6. Sélectionner Ouvrir la boîte de dialogue dans la liste des actions d'entrée sélectionnées.

  7. Sélectionnez-en un parmi les Dialogue zone de liste.

    Si la boîte de dialogue sélectionnée possède une interface, les variables d'interface sont répertoriées ci-dessous.

  8. Affectez un paramètre de transfert aux variables d'interface dans le Évaluer colonne.

  9. Dans le Mettre à jour _cds_icon_output_channel.png et _cds_icon_varinout.png paramètre en cas de résultat liste, sélectionnez le résultat pour lequel les paramètres doivent être mis à jour.

  10. Activez l'option Ouvrir la boîte de dialogue modale. Cliquez sur d'accord pour quitter la boîte de dialogue.

    L'ouverture de la boîte de dialogue est configurée.

Astuce

L'exécution d'une boîte de dialogue plusieurs fois en même temps nécessite plusieurs instances de la boîte de dialogue. Ceux-ci doivent déjà avoir été téléchargés sur le dispositif de visualisation lors du téléchargement de l'application. Pour cela, définissez le nombre d'instances à télécharger dans le gestionnaire de visualisation (Visualisations languette).

Avis

0_Sample_Project Exemple de projet : Boîte de dialogue

Exemple

Vous trouverez ci-dessous un exemple de mise en œuvre du visMain visualisation et visChangeUserLevel dialogue.

Exemple 19. Visualisation principale : visMain
_visu_img_vismain.png
Tableau 7. Liste des éléments du visMain visualisation

Taper

Nom

Propriétés des éléments

La description

#5 Text field

Niveau utilisateur

Textes → Texte : %i

Sortie avec espace réservé

Variables de texte → Variable de texte: PLC_PRG.iLevel

Affectation de la PLC_PRG.iLevel variables à l'espace réservé. Inclut le numéro de niveau.

#6 Button

Button for change user level

Textes → Texte: Change user level

Configuration des entrées → OnMouseDown → Ouvrir la boîte de dialogue: Open Dialog: visChangeUserLevel

Lorsqu'un utilisateur clique sur Change User Level bouton, le visChangeUserLevel une boîte de dialogue s'ouvre avec la liste des paramètres stockée ici.

Conseil : cliquez Configurer pour afficher la configuration enregistrée dans le Configuration des entrées dialogue → Ouvrir la boîte de dialogue action de saisie.





Exemple 20. Configuration de saisie du bouton

Le Ouvrir la boîte de dialogue une action de saisie est implémentée pour le bouton « Modifier le niveau utilisateur ». Par conséquent, une boîte de dialogue s'ouvre (OnMouseClick)).

Dialogue

visChangeUserLevel

La zone de liste fournit automatiquement toutes les visualisations relatives à l'ensemble du projet qui ont été configurées sous forme de boîtes de dialogue.

sItfTitle

STRING

'Change user level'

Transfert d'une chaîne pour le titre.

sItfLevel0

STRING

'pwd0'

Transfert d'une chaîne comme mot de passe pour Level0.

sItfLevel1

STRING

'pwd1'

Transfert d'une chaîne comme mot de passe pour Level1.

sItfLevel2

STRING

'pwd2'

Transfert d'une chaîne comme mot de passe pour Level2.

sItfLevel3

STRING

'pwd3'

Transfert d'une chaîne comme mot de passe pour Level3.

sItfLevel4

STRING

'pwd4'

Transfert d'une chaîne comme mot de passe pour Level4.

sItfLevel5

STRING

'pwd5'

Transfert d'une chaîne comme mot de passe pour Level5.

sItfLevel6

STRING

'pwd6'

Transfert d'une chaîne comme mot de passe pour Level6.

sItfLevel7

STRING

'pwd7'

Transfert d'une chaîne comme mot de passe pour Level7.

iItfLevel

INT

PLC_PRG.iLevel

Transfert d'une variable pour le niveau spécifié par l'utilisateur.

sItfPwd

STRING

PLC_PRG.sPwd

Transmission d'une variable pour le mot de passe.

Tableau 8. Liste : « Mettre à jour _visu_icon_output.png et _visu_icon_inout_parameter.png paramètre en cas de résultat »

Utiliser

Valeur

_cds_icon_option_activated.png

d'accord

Lorsque l'utilisateur de la visualisation clique sur le bouton, la boîte de dialogue s'ouvre et le résultat « OK » est renvoyé.



_cds_icon_option_activated.png Ouvrir la boîte de dialogue modale

Activé par conséquent, les entrées en dehors de la boîte de dialogue ne sont pas possibles.



Exemple 21. Dialogue : visChangeUserLevel

La boîte de dialogue fournit des éléments permettant de sélectionner le niveau et de saisir le mot de passe.

Si le mot de passe correspond, OK le bouton est activé. L'utilisateur peut ensuite fermer la boîte de dialogue. La saisie du niveau est également appliquée.

_visu_img_dialog_change_user_level.png

Déclaration de l'interface de dialogue visChangeUserLevel:

VAR_INPUT
    sItfTitle: STRING; // titel of the dialog box
    sItfLevel0: STRING; //password level 0
    sItfLevel1: STRING; //password level 1
    sItfLevel2: STRING; //password level 2
    sItfLevel3: STRING; //password level 3
    sItfLevel4: STRING; //password level 4
    sItfLevel5: STRING; //password level 5
    sItfLevel6: STRING; //password level 6
    sItfLevel7: STRING; //password level 7
END_VAR
VAR_IN_OUT
    iItfLevel: INT; // user input: level
    sItfPwd: STRING; //user input: password
END_VAR                        
Tableau 9. Liste des éléments de la boîte de dialogue

Taper

Nom

Propriétés des éléments

La description

#0 Image

Background

ID statique: VisuDialogs.ImagePoolDialogs.Login

La propriété attribue l'image d'une boîte de dialogue vide avec un fond gris et une barre de titre bleue vide à l'élément. L'image est incluse dans Afficher les boîtes de dialogue bibliothèque.

#1 Rectangle

Title

Textes → Texte: %s

Sortie avec espace réservé pour la variable de texte

Variables de texte → Variable de texte: sItfTitle

Affectation de la variable d'interface sItfTitle pour lequel un paramètre est transféré au moment de l'appel.

#2 Radio button

Input level

Variable: iItfLevel

Affectation de la variable d'interface iItfLevel pour lequel un paramètre est transféré au moment de l'appel. Inclut l'entrée de l'utilisateur au moment de l'exécution.

Le nombre de colonnes: 4

Ordre des boutons radio: De gauche à droite

Afficher

Paramètres du bouton radio → Bouton radio → Zones: [0] à [7]

[<n>] → Texte: <n>

Étiquette de huit boutons radio avec des numéros de 0 à 7

#3 Text field

Input password

Textes → Texte: %s

Sortie avec espace réservé pour la variable de texte

Variables de texte → Variable de texte: sItfPwd

Affectation de la variable d'interface sItfPwd pour lequel un paramètre est transféré au moment de l'appel. Inclut l'entrée de l'utilisateur au moment de l'exécution.

Configuration d'entrée → OnMouseDown → Write Variable: Variable:,InputType:Edit,Use text output variable: TRUE

Dans le Configuration d'entrée dialogue, Saisie de texte est sélectionné pour la Type d'entrée zone de liste et l'option Utiliser la variable de sortie de texte est activé.

#4 Text field

Label for level

Textes → Texte: Level:

Étiqueter

#5 Text field

Label for password

Textes → Texte: Password

Étiqueter

#6 Button

OK

Textes → Texte: OK

Étiqueter

Couleurs → couleur: Element base color

Couleurs → Couleur d'alarme: Alarm filling color

Configuration de l'affichage en couleurs dépendant de l'état. Vous pouvez basculer entre les couleurs.

Variables de couleur → Basculer la couleur: sItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

Si le mot de passe et l'entrée utilisateur ne concordent pas, l'expression est TRUE. Ensuite, le bouton s'affiche dans la couleur de l'alarme.

Variables d'état → Désactiver les entrées: sItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

Si le mot de passe et l'entrée utilisateur ne concordent pas, l'expression est TRUE. Le bouton est désactivé.

Si le mot de passe est d'accord, le bouton est activé.

Configuration des entrées → OnMouseDown → Fermer la boîte de dialogue: Close Dialog: visChangeUserLevel, Result: OK

Si un utilisateur clique sur le d'accord bouton, puis le visChangeUserLevel La boîte de dialogue se ferme et les paramètres sont mis à jour.

#7 Button

Cancel

Textes → Texte: Cancel

Étiqueter

Couleurs → couleur: Element base color

Afficher

Configuration des entrées → OnMouseDown → Fermer la boîte de dialogue: Close Dialog: visChangeUserLevel, Result: Cancel

Si un utilisateur clique sur le Annuler bouton, puis le visChangeUserLevel la boîte de dialogue est fermée.





Exemple 22. Configuration d'entrée : bouton OK
Tableau 10. Liste : « Mettre à jour _visu_icon_output.png et _visu_icon_inout_parameter.png paramètre en cas de résultat »

_cds_icon_option_activated.png

OK

Lorsque l'utilisateur de la visualisation clique sur le bouton, la boîte de dialogue s'ouvre et le résultat « OK » est renvoyé.





Exemple 23. Configuration des entrées : bouton Annuler
Tableau 11. Liste : « Mettre à jour _visu_icon_output.png et _visu_icon_inout_parameter.png paramètre en cas de résultat »

_cds_icon_option_activated.png

Annuler

Lorsque l'utilisateur de la visualisation clique sur le bouton, la boîte de dialogue s'ouvre et le résultat « Annuler » est renvoyé.





Exemple 24. Mise en œuvre de PLC_PRG:
PROGRAM PLC_PRG
VAR
    iLevel: INT;
    sPwd : STRING;
END_VAR                       


Exemple 25. Visualisation au moment de l'exécution
_visu_img_vismain_rt.png

Après avoir cliqué sur le bouton, la boîte de dialogue s'ouvre et permet la saisie. Si le texte spécifié correspond au texte enregistré, alors d'accord est autorisé:

_visu_img_vismain_open_dialog_rt.png

Après avoir cliqué d'accord, la sélection est appliquée.

_visu_img_vismain_level4_rt.png


Astuce

L'exemple montre la procédure pour plusieurs valeurs de retour. Cependant, le mot de passe peut être retourné plus facilement avec une variable locale dans la boîte de dialogue.

Accéder aux paramètres par programmation

Les variables déclarées dans l'interface d'une visualisation sont disponibles automatiquement en tant que variables de structure. Ils sont identifiés par <name of visualization>_VISU_STRUCT. Par conséquent, vous pouvez accéder aux variables d'interface des visualisations qui s'affichent sous forme de boîte de dialogue. Normalement, vous utilisez la structure dans le code d'application d'une fonction qui est appelée par une entrée utilisateur.

Passer des pointeurs en paramètres

Pour transmettre une structure de données complexe, vous pouvez marquer une variable d'interface de type VAR_IN_OUT avec l'attribut pragma VAR_IN_OUT_AS_POINTER et transmettez-lui un pointeur ou une référence en tant que paramètre.

Procédure. Procédure d'utilisation des références
  1. Déclarez l'objet de données utilisateur (DUT).

  2. Dans l'éditeur d'interface d'un dialogue, déclarez une variable d'interface (VAR_IN_OUT) comme référence à l'objet de données en affectant l'attribut 'VAR_IN_OUT_AS_POINTER' à la variable.

  3. Programmez l'interface utilisateur : utilisez la boîte de dialogue dans une visualisation ou affectez la boîte de dialogue dans la configuration d'entrée d'un élément de visualisation. L'accès aux données référencées est alors possible.

Exemple 26. Exemple : Utilisation d'une interface avec le pragma 'VAR_IN_OUT_AS_POINTER'
FUNCTION_BLOCK ControlFB
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    bOk : BOOL := TRUE;
    nCounter : INT;
    nValue : INT;
END_VAR
nCounter := nCounter + 1;
                        

Déclaration d'une variable d'interface avec VAR_IN_OUT_AS_POINTER

_visu_img_varinoutaspointer_example.png

Interface utilisateur : La boîte de dialogue s'ouvre :

_visu_img_varinoutaspointer_dialog_example.png