Sección: Visu
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
Los detalles sobre la sintaxis de los tipos de definición se describen en la sección Declaración del módulo.
Toplevel_Tab
define si la casilla de verificación Crear pestaña de nivel superior en el editor HMI está activado o desactivado por defecto.Page
define una lista de objetos de visualización disponibles para el módulo.Embedded
define una lista de objetos de visualización disponibles del submódulo que se integrarán en otras pantallas de visualización.Usando el marcador de posición
%PAGE_VISU%
en lugar del nombre de la visualización, permite que las pantallas de visualización generadas se puedan incrustar opcionalmente en otras pantallas.Embedded_Proxy
define una lista de objetos de visualización disponibles del módulo. La lista sólo se utiliza si undecoupled module
se inserta en undecoupled slot
y si no se crea debajo del controlador de su instancia de módulo padre (como proxy).Para módulos, que importan otro módulo, el marcador de posición
%NONE%
se puede utilizar en lugar del nombre de la visualización. Esto hace que las visualizaciones importadas queden ocultas. Este enfoque es posible para la lista de pantallas de visualización, así como para las pantallas de visualización (proxy) integradas.Sección:
DefaultEmbeddings
: Esta sección sirve para la especificación de incrustaciones predeterminadas, que luego aparecerán como una configuración previa en la IHM pestaña de un submódulo (similar a la sección "Default_Allocation", verSección: Tragamonedas
). Las incrustaciones predeterminadas deseadas se describen en las subseccionesEmbedding
.Requisito: El objeto de visualización especificado y el proxy deben estar disponibles en la lista de posibles incrustaciones para el módulo (ver arriba:
Embedded
yEmbedded_Proxy
).Sección:
Toplevel_Tab_Hotkey
: Esta sección define una tecla de acceso rápido como configuración predeterminada para la página de nivel superior. Los atajos de teclado no deben usarse más de una vez. Esta configuración se puede ajustar en el editor de módulos en la IHM pestaña.
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
El nombre de visualización es el nombre del objeto de visualización respectivo (no distingue entre mayúsculas y minúsculas). El objeto de visualización debe estar en el mismo nivel jerárquico que el bloque de funciones del módulo.
Todos los objetos de visualización y los objetos de visualización incrustados pueden tener una variable VAR_IN_OUT con el nombre
inst
, que puede ser del tipo del bloque de funciones del módulo o de una clase base. El nombre de la variable no distingue entre mayúsculas y minúsculas.VAR_IN_OUT
inst : <MODULE_FB> ;
END_VAR
Como alternativa a la opción descrita aquí con VAR_IN_OUT, también se puede utilizar una variable VAR_INPUT. Esta variable debe cumplir con los siguientes requisitos:
Nombre:
inst
Tipo: interfaz que implementa el bloque de funciones del módulo
Los objetos de visualización incrustados pueden tener dos variables adicionales (los nombres de las variables no distinguen entre mayúsculas y minúsculas):
VAR_INPUT
paVisuFB : POINTER TO POINTER TO AC_Visu_Base ;
iOwnFrameIndex : INT ;
END_VAR
Estas variables deben definirse juntas; no está permitido definir uno sin el otro. Estas dos variables brindan a las visualizaciones incrustadas la capacidad de cambiar el marco central en la visualización de nivel superior.
paVisuFB
es una matriz de punteros enAC_Visu_Base instances
. Usar la variable de visualización globalCURRENTCLIENTID
para acceder a la instancia correcta del cliente actual. El cambio de trama se realiza mediante una acción ST de la forma:paVisuFB[CURRENTCLIENTID]^.uiFrameIdx := iOwnFrameIndex ;
iOwnFrameIndex
es el índice que tiene la imagen de visualización del propio módulo en este marco de nivel superior. (Si el propio módulo no define una imagen de visualización este índice es -1.)Aparte de las variables mencionadas anteriormente, no se permiten otras variables VAR_INPUT, VAR_OUTPUT o VAR_INOUT.
los
AC_Visu_Base
las instancias proporcionan la función adicionalGetModuleFrameIndex
. Esta función devuelve el índice de la pantalla de visualización (si está presente) en la visualización de nivel superior para una instancia de módulo (consulteIModule
enAC_Module_Base.library)
. Con esta función, puede saltar a cualquier pantalla de visualización en el árbol de instancias del módulo. Para habilitar también la navegación dentro del código de un módulo, el entorno del módulo (verIModule
enAC_Module_Base.library
) posee un miembro,Environment.visus
, que corresponde a lo mencionadopaVisuFB
puntero.
Sugerencia
Para poder utilizar la variable CURRENTCLIENTID
, la biblioteca VisuGlobalClientManager
(categoría "Becario|Visu") debe agregarse al proyecto.
La primera visualización se utilizará como configuración predeterminada.