Skip to main content

Dialoghi di chiamata con interfacce

È possibile definire un'interfaccia per una visualizzazione che viene chiamata come finestra di dialogo.

Crea una visualizzazione per questo con il tipo di visualizzazione Dialogo e dichiarare un'interfaccia per la finestra di dialogo. Il riferimento alla visualizzazione in una visualizzazione primaria per mezzo di un input dell'utente e trasferire i parametri all'interfaccia.

Se si richiama la visualizzazione come visualizzazione integrata, i parametri trasferiti devono essere variabili di un tipo di dati di base. Se la visualizzazione viene chiamata come CODESYS TargetVisu o CODESYS WebVisu, i parametri possono avere anche tipi di dati definiti dall'utente.

Procedura principale

  1. Imposta i tipi di visualizzazione della visualizzazione su dialogo.

  2. Dichiara le variabili nell'editor dell'interfaccia della finestra di dialogo.

    La finestra di dialogo ha un'interfaccia. È possibile trasferire i parametri quando si richiama la finestra di dialogo.

  3. Configurare gli elementi della finestra di dialogo e utilizzare le variabili dell'interfaccia.

  4. Selezionare un elemento in un'altra visualizzazione (solitamente la visualizzazione principale) per configurare l'apertura della finestra di dialogo.

  5. Nel Configurazione ingresso → OnMouseDown proprietà, fare clic Configura.

    Il Configurazione ingresso si apre la finestra di dialogo.

  6. Selezionare Apri finestra di dialogo nell'elenco delle azioni di input selezionate.

  7. Selezionane uno dal Dialogo casella di riepilogo.

    Se la finestra di dialogo selezionata ha un'interfaccia, le variabili dell'interfaccia sono elencate di seguito.

  8. Assegnare un parametro di trasferimento alle variabili di interfaccia in Valore colonna.

  9. Selezionare il risultato per il quale sono stati aggiornati i parametri in Aggiornare _cds_icon_output_channel.png e _cds_icon_varinout.png Parametro in caso di risultati elenco.

  10. Attiva l'opzione Apri finestra di dialogo modale. Clic ok per uscire dalla finestra di dialogo.

    L'apertura della finestra di dialogo è configurata.

Suggerimento

L'esecuzione di una finestra di dialogo più volte contemporaneamente richiede più istanze della finestra di dialogo. Questi devono essere già stati scaricati nel dispositivo di visualizzazione durante il download dell'applicazione. A tale scopo, impostare il numero di istanze da scaricare in Visualization Manager (Visualizzazioni scheda).

Esempio 26. Dialogo: visChangeUserLevel:
Esempio 27. Visualizzazione principale: visMain:
_visu_img_vismain.png
Tabella 6. Elenco elementi della visualizzazione visMain:

Tipo

Nome

Proprietà dell'elemento

Descrizione

#5 Text field

Button for change user level

Testi → Testo: %s

Output con segnaposto

Variabili di testo → Variabili di testo: PLC_PRG.iLevel

Assegnazione del PLC_PRG.iLevel variabili al segnaposto. Include il numero del livello.

#6 Button

Title

Testi → Testo: Change user level

Configurazione input → OnMouseDown → Apri finestra di dialogo: Open Dialog: visChangeUserLevel

Quando un utente fa clic su Change User Level pulsante, il visChangeUserLevel si apre la finestra di dialogo con l'elenco dei parametri qui memorizzato.

Suggerimento: fare clic Configura per visualizzare la configurazione memorizzata nel file Configurazione ingresso finestra di dialogo (azione di input Apri finestra di dialogo).



Tabella 7. Configurazione del richiamo della finestra di dialogo visChangeUserLevel

Parametro

Tipo

Valore

Descrizione

L'elenco dei parametri è memorizzato nel file Configurazione ingresso finestra di dialogo (azione di input Apri finestra di dialogo).

sItfTitle

STRING

'ChangeUse user level'

Trasferimento di una stringa per il titolo.

sItfLevel0

STRING

'pwd0'

Trasferimento di una stringa come password per Level0.

sItfLevel1

STRING

'pwd1'

Trasferimento di una stringa come password per Level1.

sItfLevel2

STRING

'pwd2'

Trasferimento di una stringa come password per Level2.

sItfLevel3

STRING

'pwd3'

Trasferimento di una stringa come password per Level3.

sItfLevel4

STRING

'pwd4'

Trasferimento di una stringa come password per Level4.

sItfLevel5

STRING

'pwd5'

Trasferimento di una stringa come password per Level5.

sItfLevel6

STRING

'pwd6'

Trasferimento di una stringa come password per Level6.

sItfLevel7

STRING

'pwd7'

Trasferimento di una stringa come password per Level7.

iItfLevel

INT

PLC_PRG.iLevel

Trasferimento di una variabile per il livello specificato dall'utente.

sItfPwd

STRING

PLC_PRG.sPwd

Trasferimento di una variabile per la password specificata dall'utente.



Tabella 8. Aggiornamento elenco e parametro in caso di risultato

Valore

Descrizione

ok

Abilitato



Apri finestra di dialogo modale

Abilitato L'immissione al di fuori della finestra di dialogo non è possibile.



La seguente applicazione chiama il Cambia livello utente finestra di dialogo e richiede all'utente di selezionare un livello e specificare una password. Se la password è d'accordo, allora il ok il pulsante è abilitato. Quindi l'utente può chiudere la finestra di dialogo. Viene applicato anche l'input del livello.

_visu_img_dialog_change_user_level.png

Dichiarazione dell'interfaccia di dialogo 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                        
Tabella 9. Elenco degli elementi della finestra di dialogo visChangeUserLevel:

Tipo

Nome

Proprietà dell'elemento

Descrizione

#0 Image

Background

ID statico: VisuDialogs.ImagePoolDialogs.Login

La proprietà assegna all'elemento l'immagine di una finestra di dialogo vuota con sfondo grigio e una barra del titolo blu vuota. L'immagine è inclusa nel VisuDialogs biblioteca.

#1 Rectangle

Title

Testi → Testo: %s

Output con segnaposto per variabile di testo

Variabili di testo → Variabili di testo: sItfTitle

Assegnazione della variabile di interfaccia sItfTitle per cui un parametro viene trasferito al momento della chiamata.

#2 Radio button

Input level

Variabile: iItfLevel

Assegnazione della variabile di interfaccia iItfLevel per cui un parametro viene trasferito al momento della chiamata. Include l'input dell'utente in fase di esecuzione.

Numero di colonne: 4

Ordine dei pulsanti di opzione: Da sinistra a destra

Schermo

Impostazioni del pulsante di opzione → Pulsante di opzione → Aree: [0] bis [7]

[<n>] → Testo: <n>

Etichetta di otto pulsanti di opzione con numeri da 0 a 7

#3 Text field

Input password

Testi → Testo: %s

Output con segnaposto per variabile di testo

Variabili di testo → Variabili di testo: sItfPwd

Assegnazione della variabile di interfaccia sItfPwd per cui un parametro viene trasferito al momento della chiamata. Include l'input dell'utente in fase di esecuzione.

Configurazione ingresso → OnMouseDown → Scrivi variabile: Variable:,InputType:Edit,Use text output variable: TRUE

Nel Configurazione ingresso dialogo, L'immissione di testo è selezionato per il Tipo di ingresso casella di riepilogo e l'opzione Usa la variabile di output del testo è attivato.

#4 Text field

Label for level

Testi → Testo: Level:

Etichetta

#5 Text field

Label for password

Testi → Testo: Password

Etichetta

#6 Button

OK

Testi → Testo: OK

Etichetta

Colori → colore: Element base color

Colori → Colore sveglia: Alarm filling color

Configurazione del display in colori dipendenti dallo stato. È possibile passare da un colore all'altro.

Variabili di colore → Attiva/disattiva colore: sItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

Se la password e l'immissione dell'utente non sono d'accordo, l'espressione è TRUE. Quindi il pulsante viene visualizzato nel colore dell'allarme.

Variabili di stato → Disattiva ingressi: sItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

Se la password e l'immissione dell'utente non sono d'accordo, l'espressione è TRUE. Il pulsante è disattivato.

Se la password è d'accordo, il pulsante è abilitato.

Configurazione input → OnMouseDown → Chiudi finestra di dialogo: Close Dialog: visChangeUserLevel, Result: OK

Se un utente fa clic su ok pulsante, quindi il visChangeUserLevel la finestra di dialogo viene chiusa e i parametri vengono aggiornati.

#7 Button

Cancel

Testi → Testo: Cancel

Etichetta

Colori → colore: Element base color

Schermo

Configurazione input → OnMouseDown → Chiudi finestra di dialogo: Close Dialog: visChangeUserLevel, Result: Cancel

Se un utente fa clic su Annulla pulsante, quindi il visChangeUserLevel la finestra di dialogo è chiusa.





Esempio 28. Codice dell'applicazione PLC_PRG:
PROGRAM PLC_PRG
VAR
    iLevel: INT;
    sPwd : STRING;
END_VAR                       


Esempio 29. Visualizzazione in fase di esecuzione
_visu_img_vismain_rt.png

Dopo aver fatto clic sul pulsante, la finestra di dialogo si apre e consente l'immissione. Se il testo specificato è d'accordo con il testo memorizzato, allora ok è abilitato:

_visu_img_vismain_open_dialog_rt.png

Dopo aver cliccato ok, la selezione viene applicata.

_visu_img_vismain_level4_rt.png


Suggerimento

L'esempio mostra la procedura per più valori restituiti. Tuttavia, la password può essere restituita più facilmente con una variabile locale nella finestra di dialogo.

Accesso ai parametri a livello di codice

Le variabili dichiarate nell'interfaccia di una visualizzazione sono disponibili automaticamente come variabili di struttura. Sono identificati da <name of visualization>_VISU_STRUCT. Pertanto, è possibile accedere alle variabili di interfaccia delle visualizzazioni che appaiono come una finestra di dialogo. Normalmente si usa la struttura nel codice dell'applicazione di una funzione che viene chiamata da un input dell'utente.

Passaggio di puntatori come parametri

Per passare una struttura dati complessa, puoi contrassegnare una variabile di interfaccia di tipo VAR_IN_OUT con l'attributo pragma VAR_IN_OUT_AS_POINTER e passare un puntatore o un riferimento ad esso come parametro.

Procedura. Procedura per l'utilizzo dei riferimenti
  1. Dichiara l'oggetto dati utente (DUT).

  2. Nell'editor di interfaccia di una finestra di dialogo, dichiarare una variabile di interfaccia (VAR_IN_OUT) come riferimento all'oggetto dati assegnando l'attributo 'VAR_IN_OUT_AS_POINTER' alla variabile.

  3. Programmare l'interfaccia utente: utilizzare la finestra di dialogo in una visualizzazione o assegnare la finestra di dialogo nella configurazione di input di un elemento di visualizzazione. Quindi è possibile accedere ai dati di riferimento.

Esempio 30. Esempio: utilizzo di un'interfaccia con il 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;
                        

Dichiarazione di una variabile di interfaccia con VAR_IN_OUT_AS_POINTER

_visu_img_varinoutaspointer_example.png

Interfaccia utente: si apre la finestra di dialogo:

_visu_img_varinoutaspointer_dialog_example.png