Skip to main content

Appeler des dialogues avec des interfaces

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.

Si 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 comme CODESYS TargetVisu ou CODESYS WebVisu, les paramètres peuvent également avoir des types de données définis par l'utilisateur.

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. Sélectionnez le résultat dont les paramètres ont été mis à jour dans Mettre à jour _cds_icon_output_channel.png et _cds_icon_varinout.png Paramètre en cas de résultats liste.

  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).

Exemple 26. Dialogue: visChangeUserLevel:
Exemple 27. Visualisation principale : visMain:
_visu_img_vismain.png
Tableau 6. Liste des éléments de la visualisation visMain :

Taper

Nom

Propriétés des éléments

La description

#5 Text field

Button for change user level

Textes → Texte: %s

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

Title

Textes → Texte: Change user level

Configuration d'entrée → OnMouseDown → Ouvrir la boîte de dialogue: Open Dialog: visChangeUserLevel

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

Astuce : cliquez sur Configurer pour afficher la configuration stockée dans le Configuration d'entrée boîte de dialogue (action d'entrée Ouvrir la boîte de dialogue).



Tableau 7. Configuration de l'appel du dialogue visChangeUserLevel

Paramètre

Taper

Évaluer

La description

La liste des paramètres est enregistrée dans le Configuration d'entrée boîte de dialogue (action d'entrée Ouvrir la boîte de dialogue).

sItfTitle

STRING

'ChangeUse 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

Transfert d'une variable pour le mot de passe spécifié par l'utilisateur.



Tableau 8. Mise à jour de la liste et paramètre en cas de résultat

Évaluer

La description

d'accord

Autorisé



Ouvrir la boîte de dialogue modale

Activé L'entrée en dehors de la boîte de dialogue n'est pas possible.



L'application suivante appelle le Modifier le niveau d'utilisateur boîte de dialogue et invite l'utilisateur à sélectionner un niveau et à spécifier un mot de passe. Si le mot de passe est d'accord, alors le d'accord bouton est activé. Ensuite, l'utilisateur peut fermer la boîte de dialogue. L'entrée du niveau est également appliquée.

_visu_img_dialog_change_user_level.png

Déclaration de l'interface de dialogue visChangeUserLevel:

VAR_INPUT
    sTitle: 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 visChangeUserLevel :

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 vierge avec un arrière-plan gris et une barre de titre bleue vierge à l'élément. L'image est incluse dans le VisuDialogs 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 d'entrée → 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 d'entrée → 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 28. Code d'application PLC_PRG:
PROGRAM PLC_PRG
VAR
    iLevel: INT;
    sPwd : STRING;
END_VAR                       


Exemple 29. Visualisation à 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 30. 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