Skip to main content

Chiamare le finestre di dialogo con un'interfaccia

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

Quando si chiama la visualizzazione come visualizzazione integrata, i parametri che vengono passati devono essere variabili di un tipo di dati di base. Se la visualizzazione viene chiamata CODESYS TargetVisu o un CODESYS WebVisu, quindi i parametri possono avere anche tipi di dati personalizzati.

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. Nel Aggiornamento _cds_icon_output_channel.png e _cds_icon_varinout.png parametro in caso di risultato elenco, seleziona il risultato per il quale i parametri devono essere aggiornati.

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

Avviso

0_Sample_Project Progetto di esempio: Finestra di dialogo

Esempio

Di seguito troverai un esempio dell'implementazione del visMain visualizzazione e visChangeUserLevel finestra di dialogo.

Esempio 19. Visualizzazione principale: visMain
_visu_img_vismain.png
Tabella 7. Elenco degli elementi di visMain visualizzazione

Tipo

Nome

Proprietà dell'elemento

Descrizione

#5 Text field

Livello utente

Testi → Testo : %i

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

Button for change user level

Testi → Testo: Change user level

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

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

Suggerimento: fare clic Configura per visualizzare la configurazione memorizzata nel Configurazione di input finestra di dialogo → Apri finestra di dialogo azione di input.





Esempio 20. Configurazione di ingresso del pulsante

Le Apri finestra di dialogo l'azione di input è implementata per il pulsante «Cambia livello utente». Di conseguenza, si apre una finestra di dialogo (OnMouseClick)).

Dialogo

visChangeUserLevel

La casella di riepilogo fornisce automaticamente tutte le visualizzazioni a livello di progetto che sono state configurate come finestre di dialogo.

sItfTitle

STRING

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

Passaggio di una variabile per la password.

Tabella 8. Elenco: «Aggiornamento _visu_icon_output.png e _visu_icon_inout_parameter.png parametro in caso di risultato»

Usare

Valore

_cds_icon_option_activated.png

ok

Quando l'utente della visualizzazione fa clic sul pulsante, si apre la finestra di dialogo e viene restituito il risultato «OK».



_cds_icon_option_activated.png Apri finestra di dialogo modale

Abilitato di conseguenza, gli input al di fuori della finestra di dialogo non sono possibili.



Esempio 21. Dialogo: visChangeUserLevel

La finestra di dialogo fornisce elementi per selezionare il livello e inserire la password.

Se la password corrisponde, 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
    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                        
Tabella 9. Elenco degli elementi della finestra di dialogo

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 uno sfondo grigio e una barra del titolo blu vuota. L'immagine è inclusa nel VisuDialogs libreria.

#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 di 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 di 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 22. Configurazione di ingresso: pulsante OK
Tabella 10. Elenco: «Aggiornamento _visu_icon_output.png e _visu_icon_inout_parameter.png parametro in caso di risultato»

_cds_icon_option_activated.png

OK

Quando l'utente della visualizzazione fa clic sul pulsante, si apre la finestra di dialogo e viene restituito il risultato «OK».





Esempio 23. Configurazione di ingresso: pulsante Annulla
Tabella 11. Elenco: «Aggiornamento _visu_icon_output.png e _visu_icon_inout_parameter.png parametro in caso di risultato»

_cds_icon_option_activated.png

Annulla

Quando l'utente della visualizzazione fa clic sul pulsante, si apre la finestra di dialogo e viene restituito il risultato «Annulla».





Esempio 24. Implementazione di PLC_PRG:
PROGRAM PLC_PRG
VAR
    iLevel: INT;
    sPwd : STRING;
END_VAR                       


Esempio 25. 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 26. 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