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.
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 adecoupled module
è inserito in adecoupled 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", 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:
Embedded
EEmbedded_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_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.
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 suAC_Visu_Base instances
. Utilizza la variabile di visualizzazione globaleCURRENTCLIENTID
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 aggiuntivaGetModuleFrameIndex
. Questa funzione restituisce l'indice della schermata di visualizzazione (se presente) nella visualizzazione di primo livello per un'istanza di modulo (vediIModule
InAC_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 (vediIModule
InAC_Module_Base.library
) possiede un membro,Environment.visus
, che corrisponde a quanto sopra menzionatopaVisuFB
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.