Skip to main content

Sezione: Visi

SEC Visu                                          //optional: yes, modifier: [UPDATE]
    Toplevel_Tab;                                 //optional: yes, type: bool
    Embedded := [%PAGE_VISU%, <visu1>,...];       //optional: yes, type: VisuList
    Embedded_Proxy := [%PAGE_VISU%, <visu1>,...]; //optional: yes, type: VisuList
    Page =: [<visu1>, <visu2>,...];               //optional: yes, type: VisuList

    SEC DefaultEmbeddings                         //optional: yes
            SEC Embedding : <visu identifier>         //optional: yes, modifier: [HIDE, UPDATE]
                    VisuName := <visu name>;                    //optional: no, type: literal
                    Target := <target name>;                    //optional: yes, type: literal
                    ProxyVisuName := <visu name>;               //optional: yes, type: literal
                    LinkId := <linkID>;                         //optional: yes, type: literal
            END_SEC
    END_SEC

    SEC Toplevel_Tab_Hotkey                      //optional: yes
            Hotkey := <keycode>;                        //optional: no, type: literal
            Modifiers := <modifier>;                    //optional: yes, modifier: [SHIFT, CONTROL, ALT]
    END_SEC

END_SEC

I dettagli riguardanti la sintassi dei tipi di definizione sono descritti nella sezione Dichiarazione del modulo.

. Specifica:
  • Toplevel_Tab definisce se la casella di controllo Crea scheda di primo livello nell'editor HMI è attivato o disattivato per impostazione predefinita.

  • Page definisce un elenco di oggetti di visualizzazione disponibili per il modulo.

  • Embedded definisce un elenco di oggetti di visualizzazione disponibili del sottomodulo che verranno incorporati in altre schermate di visualizzazione.

    Utilizzando il segnaposto %PAGE_VISU% invece del nome della visualizzazione, è possibile incorporare facoltativamente le schermate di visualizzazione generate in altre schermate.

  • Embedded_Proxy definisce un elenco di oggetti di visualizzazione disponibili del modulo. L'elenco viene utilizzato solo se a decoupled module è inserito in a decoupled slot e se non viene creato sotto il controller dell'istanza del modulo padre (come proxy).

  • Per i moduli che importano un altro modulo, il segnaposto %NONE% può essere utilizzato al posto del nome della visualizzazione. Ciò comporta che le visualizzazioni importate vengano nascoste. Questo approccio è possibile per l'elenco delle schermate di visualizzazione nonché per le schermate di visualizzazione (proxy) integrate.

  • Sezione: DefaultEmbeddings: Questa sezione serve per specificare gli incorporamenti predefiniti, che poi appariranno come preconfigurazione sul file HMI scheda di un sottomodulo (simile alla sezione "Default_Allocation", vedi Sezione: Slot). Gli incorporamenti predefiniti desiderati devono essere descritti nelle sottosezioni Embedding.

    Requisito: l'oggetto di visualizzazione specificato e il proxy devono essere disponibili nell'elenco dei possibili incorporamenti per il modulo (vedere sopra: Embedded E Embedded_Proxy).

  • Sezione: Toplevel_Tab_Hotkey: questa sezione definisce un tasto di scelta rapida come impostazione predefinita per la pagina di livello superiore. Le scorciatoie da tastiera non devono essere utilizzate più di una volta. Questa impostazione può essere modificata nell'editor del modulo su HMI scheda.

Esempio 23. Esempio
SEC Visu
        Toplevel_Tab ;
        Page := [VISU_CNC_Machine_1, VISU_CNC_Machine_2];
        Embedded := [%PAGE_VISU%];
        SEC DefaultEmbeddings
                 SEC Embedding : No1
                         VisuName := SubModule_Emb;
                         Target := '../../TopLevel_2';
                 END_SEC
                 SEC Embedding : No2
                         VisuName := SubModule_Emb_2;
                         //ProxyVisuName := SubModule_Emb_1;
                         Target := '';// leave empty for next ancestor
                 END_SEC
        END_SEC
        SEC Toplevel_Tab_Hotkey
                Hotkey := T;
                Modifiers := SHIFT | CONTROL;
        END_SEC
END_SEC


Il nome della visualizzazione è il nome del rispettivo oggetto di visualizzazione (senza distinzione tra maiuscole e minuscole). L'oggetto di visualizzazione deve trovarsi nello stesso livello gerarchico del blocco funzione del modulo.

. Regole per l'interfaccia degli oggetti di visualizzazione:
  • Tutti gli oggetti di visualizzazione e gli oggetti di visualizzazione incorporati possono avere una variabile VAR_IN_OUT con il nome inst, che può essere del tipo del blocco funzione del modulo oppure di una classe base. Il nome della variabile non fa distinzione tra maiuscole e minuscole.

    VAR_IN_OUT

      inst : <MODULE_FB> ;

    END_VAR

    In alternativa all'opzione qui descritta con VAR_IN_OUT è possibile utilizzare anche una variabile VAR_INPUT. Questa variabile deve soddisfare i seguenti requisiti:

    • Nome: inst

    • Tipo: interfaccia implementata dal blocco funzione del modulo

  • Gli oggetti di visualizzazione incorporati possono avere due variabili aggiuntive (i nomi delle variabili non fanno distinzione tra maiuscole e minuscole):

    VAR_INPUT

    paVisuFB : POINTER TO POINTER TO AC_Visu_Base ;

    iOwnFrameIndex : INT ;

    END_VAR

    Queste variabili devono essere definite insieme; non è consentito definire l'uno senza l'altro. Queste due variabili offrono alle visualizzazioni integrate la possibilità di cambiare il frame centrale nella visualizzazione di livello superiore. paVisuFB è un array di puntatori su AC_Visu_Base instances. Utilizza la variabile di visualizzazione globale CURRENTCLIENTID per accedere all'istanza corretta del client corrente. Il cambio di frame viene eseguito da un'azione ST della forma:

    paVisuFB[CURRENTCLIENTID]^.uiFrameIdx := iOwnFrameIndex ;

    iOwnFrameIndex è l'indice che ha l'immagine di visualizzazione del proprio modulo in questo frame di primo livello. (Se il proprio modulo non definisce un'immagine di visualizzazione, questo indice è -1.)

  • Oltre alle variabili sopra menzionate non sono ammesse altre variabili VAR_INPUT, VAR_OUTPUT o VAR_INOUT.

  • IL AC_Visu_Base le istanze forniscono la funzione aggiuntiva GetModuleFrameIndex. Questa funzione restituisce l'indice della schermata di visualizzazione (se presente) nella visualizzazione di primo livello per un'istanza di modulo (vedi IModule In AC_Module_Base.library). Con questa funzione è possibile passare a qualsiasi schermata di visualizzazione nell'albero delle istanze del modulo. Per abilitare anche la navigazione all'interno del codice di un modulo, l'ambiente del modulo (vedi IModule In AC_Module_Base.library) possiede un membro, Environment.visus, che corrisponde a quanto sopra menzionato paVisuFB puntatore.

Suggerimento

Essere in grado di utilizzare la variabile CURRENTCLIENTID, la Biblioteca VisuGlobalClientManager (categoria "Stagista|Visu") deve essere aggiunto al progetto.

La prima visualizzazione verrà utilizzata come impostazione predefinita.