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_SECI dettagli riguardanti la sintassi dei tipi di definizione sono descritti nella sezione Dichiarazione del modulo.
Toplevel_Tabdefinisce se la casella di controllo Crea scheda di primo livello nell'editor HMI è attivato o disattivato per impostazione predefinita.Pagedefinisce un elenco di oggetti di visualizzazione disponibili per il modulo.Embeddeddefinisce 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_Proxydefinisce un elenco di oggetti di visualizzazione disponibili del modulo. L'elenco viene utilizzato solo se adecoupled moduleè inserito in adecoupled slote 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", vediSezione: Slot). Gli incorporamenti predefiniti desiderati devono essere descritti nelle sottosezioniEmbedding.Requisito: l'oggetto di visualizzazione specificato e il proxy devono essere disponibili nell'elenco dei possibili incorporamenti per il modulo (vedere sopra:
EmbeddedEEmbedded_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.
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_SECIl 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.
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_OUTinst : <MODULE_FB> ;END_VARIn alternativa all'opzione qui descritta con VAR_IN_OUT è possibile utilizzare anche una variabile VAR_INPUT. Questa variabile deve soddisfare i seguenti requisiti:
Nome:
instTipo: 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_INPUTpaVisuFB : POINTER TO POINTER TO AC_Visu_Base ;iOwnFrameIndex : INT ;END_VARQueste 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 suAC_Visu_Base instances. Utilizza la variabile di visualizzazione globaleCURRENTCLIENTIDper 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_Basele istanze forniscono la funzione aggiuntivaGetModuleFrameIndex. Questa funzione restituisce l'indice della schermata di visualizzazione (se presente) nella visualizzazione di primo livello per un'istanza di modulo (vediIModuleInAC_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 (vediIModuleInAC_Module_Base.library) possiede un membro,Environment.visus, che corrisponde a quanto sopra menzionatopaVisuFBpuntatore.
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.