Académique Documents
Professionnel Documents
Culture Documents
INDICE
I. INDICE.................................................................................................................................1
II. Scripts...................................................................................................................................1
Tipos de Scripts.......................................................................................................................1
Para abrir un Script.................................................................................................................1
Para abrir un script de ventana...............................................................................................2
Scripts de la ventana...............................................................................................................2
Para abrir una secuencia de comandos de eventos ActiveX..................................................2
Para abrir un script de acción.................................................................................................2
Para abrir una clave, una condición o un script de cambio de datos.....................................2
Guardar o descartar cambios en un script..............................................................................2
Para guardar los cambios y mantener el script abierto..........................................................2
Para guardar los cambios y cerrar el script............................................................................2
Para descartar cambios y mantener el script abierto.............................................................3
Para descartar cambios y cerrar el script...............................................................................3
Copiar, cortar y pegar texto.....................................................................................................3
Inserción de elementos de código..........................................................................................3
Para insertar una función en un script....................................................................................3
Para insertar una variable en un script...................................................................................3
Para insertar un campo de puntos en un script......................................................................3
Para insertar un nombre de ventana en un script...................................................................3
Para insertar un método o propiedad ActiveX en un script.....................................................4
Para insertar una palabra clave o un operador en un script...................................................4
Desencadenadores de script..................................................................................................4
Tipos de desencadenadores de secuencias de comandos....................................................4
Uso de disparadores múltiples................................................................................................5
Ejecución periódica de secuencias de comandos..................................................................5
Configuración de scripts de aplicación....................................................................................5
Para configurar un script de aplicación...................................................................................5
Para eliminar una secuencia de comandos de la aplicación..................................................5
Limitaciones de secuencias de comandos de aplicación.......................................................6
Script de ventana....................................................................................................................6
Script de claves.......................................................................................................................7
Scripts de Condición...............................................................................................................8
Script de cambio de datos.......................................................................................................9
Configuración de secuencias de comandos de acción...........................................................9
Script de acción.....................................................................................................................10
Comandos de eventos de ActiveX........................................................................................11
Ejecución de secuencias de comandos................................................................................13
Etiqueta del sistema $LogicRunning.....................................................................................13
The Script Language.............................................................................................................14
Reglas básicas de sintaxis....................................................................................................14
Sintaxis para llamadas a funciones estándar........................................................................15
Pasar parámetros a una función...........................................................................................15
Llamada de funciones (QuickFunctions)...............................................................................16
Pasar parámetros a una función rápida................................................................................16
Asignación de valores y operadores.....................................................................................16
Desplazar hacia la izquierda: SHL y desplazar a la derecha: SHR......................................18
Bit a bit AND: &......................................................................................................................18
OR de bits: |...........................................................................................................................19
XOR a bit: ^...........................................................................................................................19
Conjunción lógica: AND.........................................................................................................19
Disyunción lógica: OR...........................................................................................................19
Negación lógica: NOT............................................................................................................20
Comparaciones: <,>, <=,> =, ==, <>.....................................................................................20
Establecer el orden de evaluación de los operadores..........................................................20
Conversión implícita de tipos de datos.................................................................................21
Ejemplos de expresiones......................................................................................................21
Programas condicionales......................................................................................................21
Estructura Condicional Simple..............................................................................................22
Estructura condicional anidada.............................................................................................22
Bucles de programa..............................................................................................................23
Uso de variables locales.......................................................................................................25
Denominación de conflictos entre variables locales y etiquetas..........................................26
III. WindowMaker: Su Entorno de Desarrollo......................................................................27
WindowMaker........................................................................................................................27
Configuración de las preferencias de WindowMaker............................................................27
Para establecer las propiedades de WindowMaker..............................................................28
Uso de la cuadrícula de pantalla y la regla...........................................................................29
Para configurar la cuadrícula................................................................................................29
Uso de la regla......................................................................................................................29
Para mostrar u ocultar las reglas..........................................................................................29
Panorámica y zoom...............................................................................................................29
Para mostrar u ocultar la barra de herramientas Panorámica y Zoom.................................29
Uso de la ventana de miniaturas para desplazar y ampliar..................................................29
Uso de la rueda del ratón para hacer zoom y panorámica...................................................30
Limitaciones de panorámica y zoom.....................................................................................30
Administrar barras de herramientas......................................................................................30
Para mostrar u ocultar una barra de herramientas...............................................................30
Para cambiar el tamaño de una barra de herramientas flotante..........................................30
Para ocultar todas las barras de herramientas a la vez.......................................................31
Uso del Explorador de aplicaciones......................................................................................31
Navegación en el Explorador de aplicaciones......................................................................31
Adición de aplicaciones al explorador de aplicaciones.........................................................31
Configurar Explorador para abrir archivo, como documento u hoja de cálculo....................31
Uso de paletas de colores.....................................................................................................32
Apertura de la paleta de colores...........................................................................................32
Para crear un color personalizado........................................................................................32
Para seleccionar un color personalizado con la herramienta Cuentagotas.........................33
Para establecer los valores predeterminados de la fuente...................................................33
Uso del modo de pantalla completa......................................................................................33
Cortos de ratón......................................................................................................................33
Para acceder a los comandos de menú de los elementos de WindowMaker......................33
Para abrir el cuadro de diálogo Enlaces de animación........................................................33
Para acceder a la etiqueta dotfields......................................................................................33
Para abrir una definición de tagname en el Diccionario Tagname.......................................34
Mover objetos con las teclas de flecha.................................................................................34
Cuando la cuadrícula está mostrando:.................................................................................34
Cuando la cuadrícula no se muestra:...................................................................................34
IV. Aplicaciones Windows....................................................................................................34
Para crear una nueva ventana..............................................................................................34
Configuración de Windows para que aparezca en tiempo de ejecución..............................35
Modificación de las ventanas de la aplicación......................................................................35
Apertura, almacenamiento y cierre de Windows..................................................................35
Para abrir una ventana..........................................................................................................35
Para guardar una ventana....................................................................................................36
Cerrar una ventana...............................................................................................................36
Duplicación de Windows.......................................................................................................36
Eliminación de Windows.......................................................................................................36
V. Objetos de WindowMaker...............................................................................................37
Objetos simples.....................................................................................................................37
Creación de líneas y formas.................................................................................................37
Creación de botones.............................................................................................................37
Creación de polilíneas y polígonos.......................................................................................38
Creación de texto..................................................................................................................38
Objetos complejos.................................................................................................................38
Células y Símbolos................................................................................................................38
Agrupación de objetos en celdas:.........................................................................................39
Agrupación de objetos con símbolos:...................................................................................39
Manipulaciones comunes......................................................................................................39
Selección de objetos.............................................................................................................39
Mover Objetos.......................................................................................................................40
Alineación de objetos............................................................................................................41
Capas de objetos (Layering Objects)....................................................................................41
Control del espaciado horizontal y vertical...........................................................................42
Volteo de objetos y celdas.....................................................................................................42
Cambiar el tamaño de los objetos.........................................................................................42
Objetos giratorios..................................................................................................................42
Cambiar la apariencia del texto.............................................................................................43
Cambio de líneas y esquemas..............................................................................................43
Cambio de relleno.................................................................................................................44
Eliminación de objetos..........................................................................................................44
Deshacer cambios.................................................................................................................44
Cortar, copiar y pegar objetos...............................................................................................45
Cortar, copiar y pegar vínculos de objetos............................................................................45
Duplicación de objetos..........................................................................................................45
Cambiar la configuración de objetos de polilínea y polígono...............................................46
Trabajar con contenedores de mapa de bits.........................................................................46
Definición de la transparencia de mapa de bits....................................................................47
Cambio del radio de un rectángulo redondeado...................................................................47
Sustitución de texto de objeto...............................................................................................47
VI. Animación de objetos......................................................................................................48
Dos tipos de enlaces de animación:.....................................................................................48
Animaciones de visualización de datos................................................................................48
Creando Movimiento.............................................................................................................49
Creación de rotación.............................................................................................................50
Animación de tamaños..........................................................................................................51
Animación de colores............................................................................................................52
Animación de niveles de llenado...........................................................................................54
Cómo hacer que los objetos parpadeen...............................................................................55
Habilitación de la visibilidad..................................................................................................56
Desactivación de objetos......................................................................................................56
Configuración de las sugerencias de herramientas..............................................................57
Posicionamiento de una ventana sensible al tacto...............................................................58
Animaciones de entrada de datos.........................................................................................59
Habilitación de entradas discretas........................................................................................59
Activación de la entrada analógica.......................................................................................60
Activación de la entrada de cadena......................................................................................60
Activación de deslizadores (Sliders).....................................................................................61
Activación de botones pulsadores........................................................................................62
Para crear un enlace de script de acción..............................................................................62
Apertura y cierre de ventanas...............................................................................................62
Configuración de teclados en pantalla..................................................................................63
DialogStringEntry() Function.................................................................................................64
DialogValueEntry() Function..................................................................................................64
Tareas comunes de animación.............................................................................................66
Creación de un filtro de etiquetas.........................................................................................66
Cambiar la vista en el cuadro de diálogo Seleccionar etiqueta............................................67
Crear atajos de teclado.........................................................................................................68
Cambiar las referencias de variables....................................................................................68
VII. Secuencias de comandos con objetos OLE...................................................................69
Función OLE_CreateObject ()...............................................................................................70
Función OLE_IsObjectValid ()...............................................................................................70
Función OLE_ReleaseObject ()............................................................................................70
Asignar varios punteros al mismo objeto OLE:.....................................................................72
Solucionar errores OLE.........................................................................................................73
Cosas que puedes hacer con OLE.......................................................................................74
Panel de propiedades de fecha y hora de Windows abierto................................................76
Minimizar Windows...............................................................................................................76
VIII. Introducción a la gestión de datos..................................................................................77
Trabajar con las etiquetas de InTouch..................................................................................77
Tipos de etiquetas InTouch...................................................................................................78
Etiquetas de memoria...........................................................................................................78
Etiquetas de E / S..................................................................................................................79
Etiquetas indirectas...............................................................................................................79
Etiquetas varias.....................................................................................................................80
Propiedades de la etiqueta...................................................................................................81
Propiedades de la etiqueta de memoria...............................................................................82
Propiedades de la etiqueta de E / S......................................................................................83
Referencias de etiquetas remotas........................................................................................84
IX. Administrar etiquetas con el TagnameDictionary............................................................84
Planificación del uso de etiquetas.........................................................................................84
Creación de nuevas etiquetas...............................................................................................85
Configuración de propiedades de etiqueta...........................................................................86
Propiedades comunes de la etiqueta....................................................................................86
Convenciones de nombre de etiqueta..................................................................................86
Automáticamente nombrar etiquetas....................................................................................86
Comentarios de la etiqueta...................................................................................................87
Descripción de las propiedades de las etiquetas..................................................................87
Rangos de valor, unidades de medida y un valor inicial.......................................................87
Tag Deadbands. (Etiqueta Bandas muertas)........................................................................87
Retención de valor de etiqueta.............................................................................................88
Registro de etiquetas............................................................................................................89
Creación de etiquetas enteras y reales................................................................................90
Creación de etiquetas de mensaje........................................................................................90
Creación de etiquetas de E / S.............................................................................................91
Modificación de etiquetas......................................................................................................91
Eliminación de etiquetas.......................................................................................................91
Impresión de una lista de etiquetas e información de uso....................................................91
X. Uso de etiqueta Dotfields para ver o cambiar propiedades de etiqueta........................91
Dotfields disponibles para tipos de etiquetas........................................................................92
Cambiar los límites de valor de una etiqueta........................................................................92
Visualización del límite de valor bruto. (The Raw Value Limit).............................................93
.MinRaw Dotfield...................................................................................................................93
.MaxRaw Dotfield..................................................................................................................93
Visualización del valor bruto de una etiqueta. (The Raw Value of a Tag).............................94
.RawValue Dotfield................................................................................................................94
Visualización del límite de valor de las unidades de ingeniería............................................94
.MaxEU Dotfield....................................................................................................................94
.MinEU Dotfield......................................................................................................................95
Cambio de las unidades de ingeniería de una etiqueta........................................................95
.EngUnits Dotfield..................................................................................................................95
Visualización del valor de una etiqueta en unidades de ingeniería......................................96
.Value Dotfield.......................................................................................................................96
Visualización o cambio de mensajes de etiqueta discreta...................................................96
.OnMsg Dotfield.....................................................................................................................96
.OffMsg Dotfield.....................................................................................................................97
Cómo ver o cambiar el comentario de una etiqueta.............................................................97
XI. Datos de marcas de tendencias.....................................................................................98
Tipos de tendencias de InTouch............................................................................................98
Comprensión de las tendencias históricas...........................................................................98
Mostrar valores de etiqueta guardados en una tendencia histórica.....................................99
Uso de objetos de tendencia histórica..................................................................................99
Creación de una tendencia histórica.....................................................................................99
Configuración de etiquetas que se muestran desde una tendencia histórica......................99
Configuración del intervalo de tiempo de una tendencia histórica.....................................100
Configuración de las opciones de visualización de tendencias históricas.........................101
Cambio de la configuración de tendencia en tiempo de ejecución....................................102
Control de una tendencia histórica utilizando campos de puntos......................................103
.DisplayMode Dotfield.........................................................................................................103
.MinRange Dotfield..............................................................................................................103
.MaxRange Dotfield.............................................................................................................104
.UpdateCount Dotfield.........................................................................................................104
.UpdateInProgress Dotfield.................................................................................................105
.UpdateTrend Dotfield.........................................................................................................105
.ChartLength Dotfield..........................................................................................................106
.ChartStart Dotfield..............................................................................................................107
.Pen1-8 Dotfields.................................................................................................................107
.TagID Dotfield.....................................................................................................................108
.ScooterLockLeft Dotfield....................................................................................................108
.ScooterLockRight Dotfield..................................................................................................109
.ScooterPosLeft Dotfield......................................................................................................109
.ScooterPosRight Dotfield...................................................................................................110
Uso del Asistente para tendencias históricas......................................................................111
Creación de una tendencia con el Asistente para tendencias históricas............................111
Configuración de las etiquetas a mostrar en el gráfico de tendencia.................................112
Configuración de la tendencia histórica..............................................................................112
Configuración de las opciones de visualización..................................................................113
Cambiar la configuración en tiempo de ejecución..............................................................114
Control Asistente de tendencia histórica mediante secuencias de comandos...................114
Actualización de la tendencia a la hora actual....................................................................114
Cambio de la configuración de tendencias.........................................................................114
Función HTSelectTag()........................................................................................................115
Función HTSetPenName()..................................................................................................115
Recuperación de información sobre la tendencia y los datos históricos............................116
Función HTGetTimeAtScooter()..........................................................................................116
Función HTGetTimeStringAtScooter ()...............................................................................117
Función HTGetValue ()........................................................................................................117
Función HTGetValueAtScooter ()........................................................................................118
Función HTGetValueAtZone ()............................................................................................118
Panorámica y zoom de la tendencia...................................................................................119
Función HTScrollRight ().....................................................................................................120
Función HTZoomIn ()..........................................................................................................120
Función HTZoomOut ().......................................................................................................120
Impresión de la tendencia...................................................................................................121
Función PrintHT()................................................................................................................121
Solución de problemas de la tendencia..............................................................................121
Función HTGetLastError ()..................................................................................................121
Visualización de valores en tiempo real en una tendencia.................................................122
Uso de objetos de tendencia en tiempo real.......................................................................122
Creación de una tendencia en tiempo real.........................................................................122
Configurar qué etiquetas mostrar en una tendencia en tiempo real...................................123
Configuración de opciones de visualización de tendencias en tiempo real.......................124
Impresión de una tendencia en tiempo de ejecución.........................................................125
Uso del InTouch HMI con el Historiador de Wonderware...................................................126
Configuración de plumas para mostrar datos de tendencia remota...................................127
Explorador de etiquetas para asignar pluma a proveedor de historial remoto...................127
Utilizar QuickScript para asignar pluma a un proveedor de historial remoto.....................128
XII. Asistentes. (Wizards.)...................................................................................................128
Trabajar con asistentes.......................................................................................................128
Tipos de asistentes..............................................................................................................128
Adición de asistentes a la barra de herramientas...............................................................128
Cómo pegar instancias del asistente..................................................................................129
Configuración de asistentes................................................................................................129
Realización de operaciones estándar en asistentes..........................................................129
Instalación y eliminación de asistentes...............................................................................129
Objetos de tendencias.........................................................................................................130
Asistentes de controles de Windows..................................................................................131
Creación y configuración de controles de Windows...........................................................131
Creación de un cuadro de texto. (Text Box)........................................................................132
Creación de un cuadro de lista. (List Box)..........................................................................132
Creación de un cuadro combinado. (Combo Box)..............................................................133
Creación de una casilla de verificación. (Check Box).........................................................133
Creación de un grupo de botones de radio.........................................................................134
Scripting de controles de Windows.....................................................................................134
Cómo obtener o establecer el valor de un control..............................................................134
Activación o desactivación de un control para entrada de usuario....................................136
Ocultar controles de Windows dinámicamente...................................................................136
Agregar y eliminar elementos en cuadros combinados......................................................137
Cargar y guardar elementos de la lista desde o hacia un archivo......................................139
El ControlType es COMBOBOX o LISTBOX......................................................................140
Trabajar con índices de elementos en un cuadro combinado o lista..................................141
Recuento de caja de lista o elementos de cuadro combinado...........................................143
Cómo obtener o establecer el valor de un elemento de lista..............................................143
Cómo obtener el nombre de un elemento de lista..............................................................144
Cargar el contenido de un cuadro de texto.........................................................................145
Comprobar si un cuadro de texto es de sólo lectura..........................................................146
Obtener o establecer la etiqueta de una casilla de verificación.........................................146
Descripción de los mensajes de error de los controles de Windows.................................147
II. Scripts.
Tipos de Scripts.
• Los scripts de aplicación se ejecutan de forma continua mientras se está ejecutando WindowViewer o una vez
cuando se inicia o se cierra WindowViewer.
• Los scripts de ventana se ejecutan periódicamente cuando una ventana de InTouch está abierta o una vez
cuando se abre o cierra una ventana de InTouch.
• Los scripts de teclas se ejecutan una vez o periódicamente cuando se presiona o libera una determinada tecla
o combinación de teclas.
• Los scripts de condición se ejecutan una vez o periódicamente cuando una determinada condición se cumple
o no se cumple.
• Los scripts de cambio de datos se ejecutan una vez cuando cambia el valor de una determinada etiqueta o
expresión.
• Los scripts de acción se ejecutan una vez o periódicamente cuando un operador hace clic en un objeto gráfico
InTouch HMI.
• ActiveX scripts de eventos se ejecutan una vez cuando se produce un evento de ActiveX, haga clic en el
control ActiveX.
58
Para abrir un script de ventana.
Utilizando la vista clásica, en el panel de Windows, haga clic con el botón secundario en el nombre de la
ventana y, a continuación, haga clic en Scripts de ventana.
Utilizando la vista de proyecto, expanda Scripts ya continuación, haga doble clic en la secuencia de
comandos.
Abra la ventana a la que está asociado el script.
En el menú especial, seleccione Scripts y a continuación, haga clic.
Scripts de la ventana.
Abra la ventana a la que está asociado el script.
Haga clic con el botón secundario en un área en blanco en la ventana y, a continuación, haga clic en
Scripts de ventana.
En la lista Tipo de condición, haga clic en la condición para que se ejecute el script.
Nota: Guardar y descartar cambios siempre se aplica a todos los tipos de condición para un tipo de secuencia
de comandos, no sólo al tipo de condición que está actualmente visible.
58
Para descartar cambios y mantener el script abierto.
Haga clic en Restaurar.
58
Para insertar un método o propiedad ActiveX en un script.
En el menú Insertar, haga clic en ActiveX. Aparecerá el cuadro de diálogo Explorador de control ActiveX.
En la lista Nombre de control, haga clic en la instancia de control ActiveX cuyas propiedades y métodos
desea listar.
En la lista Método / Propiedad, haga clic en el método o propiedad.
Haga clic en Aceptar. El cuadro de diálogo se cierra y se inserta el método o la referencia de propiedad
en su secuencia de comandos en la ubicación del cursor.
Desencadenadores de script.
Todas las secuencias de comandos de InTouch HMI se ejecutan mediante desencadenadores de script. Cada
tipo de secuencia de comandos tiene uno o más disparadores para iniciarlo.
En el Editor de secuencias de comandos, puede seleccionar el desencadenador de secuencia de comandos
que desea utilizar para ejecutar el script. Seleccione un desencadenador de secuencia de comandos basado en
cuándo y cómo se ejecuta un script.
Puede configurar varios disparadores basados en acciones de usuario, estados internos y cambios de valores
de variables. Las acciones del usuario incluyen presionar las teclas y hacer clic en elementos gráficos.
Los disparadores internos del estado pueden incluir iniciar WindowViewer.
Un script de aplicación tiene tres disparadores: en el inicio, en el apagado y durante la ejecución. Cada
desencadenador puede ejecutar un script diferente.
Un script de ventana tiene tres disparadores: en mostrar, en ocultar y mientras se muestra. Cada
desencadenador puede ejecutar un script diferente.
Un script de clave tiene tres disparadores: en la tecla arriba, en la tecla hacia abajo, o mientras está
abajo. Cada desencadenador puede ejecutar un script diferente.
Un script de condición tiene cuatro disparadores: true, while true, false y false. Cada desencadenador
puede ejecutar un script diferente.
Un script de cambio de datos se ejecuta cuando el valor de una determinada etiqueta o expresión
cambia.
Un script de acción se ejecuta una vez o periódicamente cuando un operador hace clic en un objeto
gráfico InTouch HMI.
Un script de sucesos ActiveX se ejecuta una vez cuando se produce un cierto evento ActiveX, como un
clic en el control ActiveX.
58
Uso de disparadores múltiples.
Para la mayoría de los tipos de script, puede utilizar varios desencadenadores y asociar diferentes scripts con
cada desencadenador.
Por ejemplo, puede configurar una secuencia de comandos de aplicación para ejecutar una secuencia de
comandos cuando se inicia WindowViewer y otra secuencia de comandos periódicamente mientras se está
ejecutando WindowViewer. Seleccione el desencadenador en la lista Tipo de condición para ver el script
existente para un disparo.
58
Limitaciones de secuencias de comandos de aplicación.
Las secuencias de comandos de aplicación que se ejecutan cuando se inicia o se cierra WindowViewer tienen
limitaciones en su interacción con otros objetos.
No puede utilizar las secuencias de comandos de On Startup para:
Script de ventana
Configuración de secuencias de script de ventana:
Los scripts de ventana son scripts que están vinculados a ventanas específicas. Puede utilizar scripts de
ventana para:
Nota: Abrir una ventana InTouch también se conoce como "mostrar una ventana InTouch”. También se hace
referencia al cierre de una ventana InTouch. Como "ocultar una ventana InTouch".
Utilizando la vista clásica, en el panel de Windows, haga clic con el botón secundario en una ventana y,
a continuación, haga clic en Scripts de ventana. Aparecerá el cuadro de diálogo Window Script for
Window Name.
En la lista Tipo de condición, realice una de las siguientes
acciones:
Haga clic en Mostrar para configurar una
secuencia de comandos para ejecutar una vez
cuando se inicia la ventana asociada.
Haga clic en Si bien se muestra para configurar
una secuencia de comandos para ejecutar
periódicamente mientras la ventana asociada está
abierta.
Haga clic en Ocultar para configurar una
secuencia de comandos para que se ejecute una
vez cuando se cierra la ventana asociada.
Si selecciona While Showing en el paso anterior, escriba un
intervalo de tiempo entre 1 y 360000 milisegundos en el cuadro Cada.
Fig.3: Cuadro de dialogo
Escriba su secuencia de comandos en la ventana.
Window Script.
Haga clic en Aceptar.
En el panel de Windows, haga clic con el botón secundario del mouse en una ventana y haga clic en
Window Scripts. Aparecerá el cuadro de diálogo Window Script for Window Name.
En la lista Tipo de condición, haga clic en el disparador de secuencia de comandos para que el script se
elimine. El script aparece en la sección principal del cuadro de diálogo Window Script for Window
Name.
En el menú Edición, haga clic en Borrar.
58
Script de claves.
Configuración de secuencias de Script de claves:
Las secuencias de comandos clave son secuencias de comandos que están vinculadas a la pulsación de una
tecla específica o combinación de teclas. Puede utilizar los scripts clave para:
Ejecutar un script una vez cuando se presiona una tecla o combinación de teclas.
Ejecutar un script periódicamente mientras se presiona una tecla o combinación de teclas y no se
suelta.
Ejecutar un script una vez cuando se libera una combinación de teclas o teclas.
Un script clave se identifica con el nombre de la clave que inicia el script. Por ejemplo: Ctrl + q.
Nota: Si ha configurado una secuencia de comandos de acción que utiliza la misma clave o combinación de
teclas para activarla, se omite el script de claves y, en su lugar, se ejecuta el script de acción.
Para configurar un script de clave:
Fig.5: Cuadro de
dialogo elegir
clave.
Seleccione las casillas de verificación Ctrl y / o Mayúsculas para asignar una combinación de teclas de
control y / o de cambio a la tecla seleccionada.
En la lista Tipo de condición, realice una de las siguientes acciones:
Haga clic en On Key Down para configurar una secuencia de comandos para que se ejecute
una vez cuando se presiona la tecla asociada o la combinación de teclas.
Haga clic en Aceptar para configurar una secuencia de comandos para que se ejecute
periódicamente mientras se presiona la tecla asociada o la combinación de teclas.
Haga clic en On Key Up para configurar una secuencia de comandos para que se ejecute una
vez cuando se suelta la combinación de teclas o teclas asociada.
Si seleccionó While Down en el paso anterior, escriba un intervalo de tiempo entre 1 y 360000
milisegundos en el cuadro.
Escriba su secuencia de comandos en la ventana.
58
Haga clic en Aceptar.
Para eliminar todos los scripts de teclas asociados con una clave:
Utilizando la Vista clásica, en el panel Scripts, expanda Clave, haga clic con el botón secundario en el
nombre de secuencia de comandos de claves y, a continuación, haga clic en eliminar. Cuando aparezca
un mensaje, haga clic en Sí.
Para eliminar un script de clave asociado a una clave:
En la vista Clásica, en el panel Scripts, expanda Clave, haga clic con el botón secundario en el nombre
de secuencia de comandos de claves y, a continuación, haga clic en Modificar. Aparecerá el cuadro de
diálogo Editar secuencia de comandos de claves.
En la lista Tipo de condición, haga clic en el disparador de secuencia de comandos para que el script se
elimine. El script aparece en la sección principal del cuadro de diálogo Editar secuencia de comandos
de claves.
En el menú Edición, haga clic en Borrar. El script de la sección principal se borra y el script asociado se
elimina.
Scripts de Condición.
Configuración de Scripts de Condición:
Los scripts de condición se activan dependiendo de cuándo se cumplen ciertas condiciones lógicas. Utilice
scripts de condición para ejecutar un script:
Una vez cuando se cumple una condición.
Una vez cuando una condición no se cumple.
Periódicamente mientras se cumple una cierta condición.
Nota: Una secuencia de comandos que se asigna al tipo de condición On True sólo se ejecuta si la condición
cambia de False a True. Un script al que se le asigna el tipo de condición Falso sólo se ejecuta si la condición
cambia de Verdadero a Falso.
Para configurar un script de condición:
En la vista Clásica, en el panel Scripts:
Haga clic con el botón secundario en Condición y haga clic en Nuevo. Aparece el cuadro de diálogo
Scripts de condiciones.
Para editar una secuencia de comandos de condición existente, haga clic en el signo más junto a
Condición, haga clic con el botón secundario en el nombre de secuencia de comandos de condición y, a
continuación, haga clic en Editar. Aparecerá el cuadro de diálogo Editar secuencia de estado.
En el cuadro Condición, escriba la expresión que desea utilizar
como condición.
Puede introducir un comentario en el cuadro Comentario.
En la lista Tipo de condición, realice una de las siguientes
acciones:
Haga clic en Falso para configurar una secuencia de
comandos para que se ejecute una vez cuando la condición
se convierte en falsa.
Haga clic en While False para configurar una secuencia de
comandos para ejecutar periódicamente mientras la
condición es falsa.
Haga clic en Aceptar para configurar una secuencia de
comandos para que se ejecute una vez cuando la condición
se convierta en verdadera.
Haga clic en While True para configurar una secuencia de
comandos para ejecutar periódicamente mientras la
condición es verdadera. Fig.6: Cuadro de dialogo
Condition Script.
58
Si seleccionó While False o While True en el paso anterior, escriba un intervalo de tiempo entre 1 y
360000 milisegundos en el cuadro Cada.
Escriba la secuencia de comandos o modifique la secuencia de comandos existente en la ventana.
Haga clic en Aceptar.
Eliminar todos los scripts de condición que están asociados a una condición:
Utilizando la vista clásica, en el panel Scripts, expanda Condición, haga clic con el botón secundario en
el nombre del script de condición y haga clic en Eliminar. Cuando aparezca un mensaje, haga clic en Sí.
Para eliminar secuencias de comandos de condición individuales que están asociadas con una
condición:
En la vista Clásica, en el panel Scripts, expanda Condición, haga clic con el botón secundario en el
nombre de la secuencia de comandos de claves y haga clic en Editar. Aparecerá el cuadro de diálogo
Editar secuencia de estado.
En la lista Tipo de condición, haga clic en el disparador de secuencia de comandos para que el script se
elimine. La secuencia de comandos aparece en la sección principal del cuadro de diálogo Editar
secuencia de estado.
En el menú Edición, haga clic en Borrar. El script de la sección principal se borra y el script asociado se
elimina.
Puede utilizar scripts de cambio de datos para ejecutar un script una vez cuando un determinado campo de
variables o puntos cambie por más de su banda muerta definida.
Un script de cambio de datos es identificado por el campo tagname o tagname que inicia el script. Por ejemplo:
Tag1 o Tag2.HiHiLimit.
Para configurar un script de cambio de datos:
58
Haga doble clic en el botón izquierdo, central o derecho del ratón.
Presionar una tecla o combinación de teclas.
Presionar y mantener presionada una tecla o combinación de teclas.
Soltar una combinación de teclas o teclas.
Mover un puntero del ratón sobre un objeto.
Un script de acción sólo se puede configurar en el enlace de animación. Panel de selección del propio objeto.
Importante: Si existe un script de clave que se activa mediante la misma combinación de teclas o de teclas
que el script de acción, se ejecuta el script de acción y se ignora el script de clave.
Script de acción.
Para configurar un script de acción:
F ig .8:
Panel de selección para configurar script. Fig.9: Cuadro de dialogo Touch-> Action script.
58
Una vez, cuando el botón central del ratón es doble clic On Center Double Click
Una vez que el ratón se mueve sobre el objeto. On Mouse Over
Si selecciona En Clic Izquierdo / Tecla Abajo, Mientras Izquierda / Tecla Abajo, o En Izquierda / Tecla
Arriba:
a) Haga clic en Clave. Aparecerá el cuadro de diálogo Elegir clave.
b) Haga clic en una tecla.
c) Seleccione las casillas de verificación Ctrl y / o Mayúsculas para asignar una combinación de teclas de
control y / o de cambio a la tecla seleccionada.
Si selecciona While Left / Key Down o While Right Down, escriba un intervalo de tiempo entre 1 y
360000 milisegundos en el cuadro Cada.
Si selecciona En el ratón sobre, en el cuadro Después, escriba el número de milisegundos entre 1 y
360000 para pasar después de que el mouse se ha movido sobre el objeto antes de ejecutar el script.
Escriba su secuencia de comandos en la ventana.
Haga clic en Aceptar.
Haga doble clic en el objeto gráfico que tiene el script de acción que desea eliminar. Aparece el panel
de propiedades del objeto.
Haga clic en el botón Acción. Aparecerá el cuadro de diálogo Touch -> Action Script.
En la lista Tipo de condición, haga clic en el desencadenador de secuencia de comandos. (script
trigger).
En el menú Edición, haga clic en Borrar. El script de la sección principal se borra y el script asociado se
elimina.
Utilice secuencias de comandos de eventos ActiveX para ejecutar una secuencia de comandos cuando se
produce un suceso ActiveX. Dependiendo del control ActiveX, tales eventos pueden incluir:
Se inicia el control ActiveX: Inicio
El control ActiveX está cerrado: Apagado
El usuario hace clic en el control ActiveX: haga clic en
El usuario hace doble clic en el control ActiveX: Doubleclick
Un script de evento ActiveX se identifica con un nombre. De forma predeterminada, InTouch HMI agrega
automáticamente el nombre del control y el evento al que está asociado el script. Por ejemplo:
58
MyActiveXScript (AlarmViewerCtrl1::Click).
Seleccione un evento como haga clic, haga doble clic, apague o inicie.
Haga clic en la celda Scripts para ese evento. Aparecen los corchetes.
Escriba un nuevo nombre para un script de evento y haga clic en Aceptar. Cuando aparezca un
mensaje, haga clic en Aceptar para crear un nuevo script. Aparecerá el cuadro de diálogo ActiveX Event
Scripts.
58
En el cuadro Nombre, puede realizar cambios en el
nombre del script de sucesos de ActiveX.
Escriba su secuencia de comandos en la ventana.
Haga clic en Aceptar.
En la vista Clásica, en el panel Scripts, expanda Evento ActiveX, haga clic con el botón secundario del
mouse en el nombre del script ActiveX y haga clic en Editar. Aparecerá el cuadro de diálogo ActiveX
Event Scripts.
Realice los cambios necesarios en el script y haga clic en Aceptar.
Asegúrese de que ningún control ActiveX esté utilizando la secuencia de comandos de eventos ActiveX
que desee eliminar. Si hay controles ActiveX que utilizan el script, haga lo siguiente primero:
Elimine las referencias de secuencia de comandos de eventos ActiveX en el panel Eventos de
cada control ActiveX que pueda estar utilizando.
Cierre todas las ventanas y actualice las cuentas de uso.
En la vista Clásica, en el panel Scripts, expanda Evento ActiveX, haga clic con el botón secundario en el
nombre del script ActiveX y haga clic en Eliminar. Cuando aparezca un mensaje, haga clic en Sí. Se
elimina la secuencia de comandos de eventos ActiveX.
En el menú Lógica, haga clic en Halt Logic. Los scripts síncronos dejan de ejecutarse. Los scripts
asíncronos continúan ejecutándose pero no se inician nuevos scripts asíncronos.
Escriba el valor 0 en la etiqueta de sistema discreta $LogicRunning. Los scripts síncronos dejan de
ejecutarse. Los scripts asíncronos continúan ejecutándose pero no se inician nuevos scripts asíncronos.
58
En el menú Lógica, haga clic en Iniciar lógica. Se reanuda la ejecución del script.
Declaraciones.
Una sentencia puede ser una asignación de valor, una llamada de función o una estructura de control.
Cada instrucción en un guión debe terminar con un punto y coma (;).
Puede tener varias sentencias en la misma línea, siempre y cuando cada sentencia termine con un punto
y coma.
Puede distribuir una sentencia a través de varias líneas utilizando saltos de línea (presionando Enter).
Indentación (Sangría).
Puede indentar el código de secuencia de comandos de cualquier manera. Las sangrías no tienen
relevancia funcional.
Comentarios.
Para marcar el texto como un comentario, ciérrelo entre llaves {}. Los comentarios pueden abarcar
varias líneas.
Referencias de etiquetas.
Para referirse a una etiqueta que se define en el TagnameDictionary local, simplemente use la variable.
Para referirse a un campo de punto específico, utilice el formato de referencia regular (Tagname.Dotfield).
Para referirse a un elemento de datos en un nodo remoto, utilice una referencia de etiqueta remota regular
(AccessName: Ítem).
También puede definir variables locales cuyo ámbito se limita al script actual. Consulte Uso de variables
locales.
58
Valores de datos literales.
Puede especificar valores enteros en notación decimal o hexadecimal. Por ejemplo, 255 o 0xFF.
Puede especificar valores de coma flotante en notación decimal o científica. Por ejemplo, 0,001 o 1E-3.
Para especificar un valor booleano, utilice los valores numéricos 0 para FALSE y 1 para TRUE.
Para especificar un valor de cadena, colóquelo entre comillas dobles. Por ejemplo: "Esto es una cadena".
Expresiones de valor.
Las expresiones de valor pueden incluir valores literales, referencias de etiquetas y llamadas a
funciones, todas enlazadas entre sí por operadores adecuados .
Validación de sintaxis.
Cuando guarda una secuencia de comandos, el Editor de secuencias de comandos comprueba
automáticamente la sintaxis correcta. También puede iniciar esta validación manualmente haciendo clic
en el botón Validar.
La sintaxis para llamar a una función de script predefinida depende de si y cómo la función devuelve un
resultado.
Algunas funciones no devuelven ningún resultado; Algunas funciones devuelven un resultado opcional que se
puede asignar a una etiqueta o utilizar en una expresión; Algunas funciones devuelven un resultado que debe
asignarse a una etiqueta o utilizarse en una expresión.
Para determinar el tipo de función, observe la descripción de la función. Cada descripción de función tiene una
lista de sintaxis que muestra si la función devuelve un resultado y si ese resultado es opcional.
Utilice sólo el nombre de la función (y los parámetros, si los hay) en una sentencia. Por ejemplo:
FunctionName(Parameters);
Para llamar a una función que requiere asignar su resultado:
Utilice el nombre de la función (y los parámetros, si los hay) en cualquier lugar de una secuencia de
comandos donde pueda utilizar un valor literal o una variable del tipo de datos relevante. Por ejemplo,
en una asignación de valor:
ResultsTagname = FunctionName(Parameters);
O en una llamada de función anidada, usándola como parámetro para
Otra función:
OtherFunction(FunctionName(Parameters));
Para llamar a una función que devuelve un resultado opcional:
Tales expresiones pueden incluir valores literales, referencias de etiquetas y llamadas a funciones, todas
enlazadas entre sí por operadores adecuados.
58
Cuando el script llama a la función, la expresión se evalúa y el valor resultante se pasa a la función.
Sin embargo, hay algunas funciones que requieren una referencia de etiqueta como un parámetro. Por ejemplo:
En este ejemplo, el parámetro RecipeName debe ser una referencia de etiqueta (es decir, debe utilizar una
variable literal para el parámetro RecipeName). No puede pasar una expresión de cadena en su lugar, incluso si
esa expresión se evalúa como una variable válida.
Nota: Algunas funciones legadas predefinidas con sólo un parámetro (por ejemplo, la función Ack ()) no siguen
la sintaxis estándar de pasar parámetros entre paréntesis. En su lugar, el parámetro se separa del nombre de la
función por un espacio. Compruebe la descripción de la sintaxis en la documentación de la función si tiene
dudas acerca de una función en particular.
Llamar a una función rápida personalizada difiere ligeramente de llamar a una función estándar predefinida:
Utilice el nombre de la función (y los parámetros, si los hay) precedidos por la palabra clave CALL en
una sentencia. Por ejemplo:
CALL QuickFunctionName(Parameters);
Para llamar a una función rápida que devuelve un resultado:
ResultsTagname = CALL
QuickFunctionName(Parameters);
O en una llamada de función anidada, utilizando como parámetro para una función estándar:
OtherFunction(CALL FunctionName(Parameters));
Nota: No puede anidar llamadas QuickFunction para que una función rápida se utiliza como un parámetro para
otra QuickFunction. Por ejemplo:
58
Puede pasar cualquier expresión válida como parámetro, siempre y cuando la expresión se evalúe en el tipo de
datos que se requiere para el parámetro. Tales expresiones pueden incluir valores literales, referencias de
etiquetas y llamadas a funciones, todas enlazadas entre sí por operadores adecuados.
Cuando el script llama a la función, la expresión se evalúa y el valor resultante se pasa a la función.
Operadores compatibles.
Nota: Para los cálculos numéricos, siempre seleccione los operandos para que el resultado del cálculo se
encuentre dentro del rango de valores de un número real. De lo contrario, el resultado no será correcto.
Adición o Concatenación: +
Agrega dos operandos numéricos o concatena dos operandos de cadena.
Operandos válidos:
Para la adición: Cualquier valor entero o real
Para concatenar: Cualquier valor de Mensaje
Tipo de datos de valor devuelto
Para la adición: Integer o Real
Para concatenar: Mensaje
Ejemplo: MessageTag = "Setpoint value: " + Text(SetpointTag,"#.##");
Sustracción o negación: -
Cuando se usa con dos operandos, realiza una sustracción numérica normal. Cuando se utiliza con un
operando, cambia el signo del operando.
Operandos válidos: Cualquier valor entero o real.
Tipo de datos de valor devuelto: Entero o real
Ejemplo: En este ejemplo, si OriginalValue es 70, InvertedValue se convierte en -70. Si OriginalValue es -70,
InvertedValue se convierte en 70.
InvertedValue = -OriginalValue;
Multiplicación: *
Multiplicación numérica regular.
Operandos válidos: Cualquier valor entero o real.
Tipo de datos de valor devuelto: Entero o real.
División: /
División numérica regular. Si intenta dividir por 0 en tiempo de ejecución, 0 se devuelve como el resultado.
Operandos válidos: Cualquier valor entero o real
Tipo de datos de valor devuelto: Entero o real.
58
Poder (Power): **
Levanta el operando izquierdo (la base) a la potencia del operando derecho (la potencia).
Operandos válidos: Entero o Real. No es posible combinar una base de 0 con una potencia negativa, o una
base negativa con una potencia fraccional. En estos casos, se devuelve 0 como resultado.
Tipo de datos de valor devuelto: Entero o real
Ejemplo: 8 ** (1/3) returns 2 (the cubic root of 8)
Modulo: MOD.
Devuelve el resto de la división de dos valores enteros.
Operandos válidos: Cualquier valor entero.
Tipo de datos de valor devuelto: Entero
Ejemplo: 37 MOD 4 returns 1
Complemento: ~
Devuelve el complemento de un valor entero. Es decir, convierte cada bit cero en un bit y viceversa.
Operandos válidos: Cualquier valor entero.
Tipo de datos de valor devuelto: Entero.
58
Puede utilizar este operador para "enmascarar" rápidamente (establecer a 0) ciertas partes de un patrón de bits.
Por ejemplo, la siguiente instrucción enmascara los 24 bits superiores de la etiqueta IntTag.
Como se muestra en la tabla, el bit de resultado es siempre 0 si uno de los bits de operando es 0. En la
representación binaria de 255, sólo los 8 bits inferiores son 1, por lo que los 24 bits restantes causan todos los
bits correspondientes en el Resultado para que se establezca en 0.
Operandos válidos: Cualquier valor entero.
Tipo de datos de valor devuelto: Entero.
OR de bits: |
Compara las representaciones binarias de dos números enteros, bit para bit, y devuelve un resultado de
acuerdo con la siguiente tabla:
XOR a bit: ^
Compara las representaciones binarias de dos números enteros, bit para bit, y devuelve un resultado de
acuerdo con la siguiente tabla:
58
Operandos válidos: Cualquier valor discreto.
Tipo de datos de valor devuelto: Discreto.
58
Operandos válidos: Valores de cualquier tipo de datos (ambos valores deben ser del mismo tipo de datos).
Tipo de datos de valor devuelto: Discreto.
Ejemplos de expresiones
La siguiente tabla muestra algunas expresiones válidas, junto con el resultado de la expresión y el tipo de datos
del resultado.
58
Programas condicionales.
Uso de estructuras de ramificaciones de programas condicionales.
Puede controlar dinámicamente la ruta de ejecución de un script en función de ciertas condiciones que se
cumplan. El InTouch HMI soporta estructuras de control IF-THEN-ELSE para este propósito. La sintaxis básica
para una estructura de control IF-THEN-ELSE es la siguiente:
Sintaxis:
IF Condition THEN
... statements and/or another IF-THEN-ELSE structure
[ELSE
... statements and/or another IF-THEN-ELSE
structure]
ENDIF
Estructuras IF-THEN-ELSE pueden anidarse, tanto en la sección THEN como en la sección ELSE.
Para cada instrucción IF, debe haber una instrucción FINIF de cierre. Una instrucción ENDIF siempre se
aplica a la instrucción IF más cercana anterior en el mismo nivel de anidamiento.
La condición debe ser una expresión discreta válida. La sección THEN se ejecuta si Condition es TRUE.
La sección ELSE se ejecuta si la condición es FALSE.
La sección ELSE es opcional.
Algunos otros lenguajes de programación permiten comprobar varias condiciones en el mismo nivel de
jerarquía de una estructura IF-THEN-ELSE y tener una sección ELSE general que se ejecuta si todas
las condiciones se evalúan como FALSE. (La estructura If-ElseIf-Else en Visual Basic es un ejemplo de
esto.) Esto no es posible en la InTouch HMI. Para cada condición a comprobar, debe abrir una nueva
estructura IF-THEN-ELSE. Por lo tanto, para tener una sola sección de código para actuar como el
código ELSE para todas las condiciones, debe colocarlo en la sección ELSE de la estructura IF-THEN-
ELSE en el último nivel de anidamiento.
58
Estructura Condicional Simple.
El siguiente script muestra una estructura condicional simple. If SuccessTag es TRUE, se abre la ventana
"Success", de lo contrario se abre la ventana "Failure".
IF SuccessTag == 1 THEN
Show "Success";
ELSE
Show "Failure";
ENDIF;
IF ChoiceTag == 1 THEN
Show "Procedure 1";
ELSE
IF ChoiceTag == 2 THEN
Show "Procedure 2";
ELSE
IF ChoiceTag == 3 THEN
Show "Procedure 3";
ELSE
Show "Default Procedure";
ENDIF;
ENDIF;
ENDIF;
Si está familiarizado con Visual Basic, puede intentar escribir una instrucción IF simple como ésta:
Esto no funciona en el InTouch HMI. Para cada instrucción IF, debe haber una instrucción ENDIF de cierre.
Si está familiarizado con un lenguaje como Visual Basic, puede escribir una estructura condicional con varias
condiciones y una condición predeterminada como esta:
IF ChoiceTag == 1 THEN
Show "Procedure 1";
ELSE IF ChoiceTag == 2 THEN
Show "Procedure 2";
58
ELSE IF ChoiceTag == 3 THEN
Show "Procedure 3";
ELSE
Show "Default Procedure";
ENDIF;
Esto no funciona en el InTouch HMI. Cada IF abre un nuevo nivel de anidamiento y debe tener una instrucción
ENDIF correspondiente.
Bucles de programa.
Utilización de bucles de programa.
Los bucles permiten ejecutar una sección de código repetidamente. El InTouch HMI sólo admite bucles FOR. Un
bucle FOR funciona supervisando el valor de una variable de bucle numérico que se incrementa o decrementa
con cada iteración de bucle. Los Loop se ejecutan hasta que el valor de la variable de bucle alcance un límite
fijo.
Sintaxis:
FOR LoopTag = StartExpression TO EndExpression [PASO
ChangeExpression]
... instrucciones u otro bucle FOR...
NEXT;
Los bucles FOR se pueden anidar. El número máximo de niveles de anidamiento depende de la
memoria disponible y los recursos del sistema.
Para cada instrucción FOR, debe haber una instrucción NEXT de cierre. Una instrucción NEXT siempre
se aplica a la instrucción FOR anterior más cercana en el mismo nivel de anidamiento.
LoopTag debe ser una etiqueta numérica (o variable local).
StartExpression, EndExpression y ChangeExpression deben ser expresiones válidas que se evalúen en
un resultado numérico.
Si ChangeExpression es positivo, EndExpression debe ser mayor que StartExpression; Si
ChangeExpression es negativo, StartExpression debe ser mayor que EndExpression. De lo contrario, el
bucle no se inicia.
Para salir de un bucle, utilice la sentencia EXIT FOR.
58
Hay un límite de tiempo para bucles.
Precaución: La ejecución del bucle afecta a otros procesos en tiempo de ejecución.
Ejemplo: El siguiente fragmento de código utiliza un bucle para insertar un gran número de registros ficticios en
una tabla de base de datos. Si hay un error al insertar un registro, el bucle se aborta para evitar la creación de
más errores.
FOR Counter = 1 TO 1000
ResultCode = SQLInsert(ConnectionID,
"BatchDetails","BindList1");
IF ResultCode <> 0 THEN
LogMessage("Error creating records! Aborting...");
EXIT FOR;
ENDIF;
NEXT
Mientras se ejecuta un bucle FOR, todos los demás procesos de tiempo de ejecución en
WindowViewer están en pausa. Esto incluye las siguientes áreas:
Actualizaciones de pantalla (enlaces de animación, visualización de valores, tendencias, etc.). Esto
significa que no puede utilizar los bucles FOR para animar objetos, ya que no se producirá ningún
movimiento hasta que se haya completado el bucle.
Comunicaciones de E / S. Por ejemplo, si modifica el valor de una etiqueta de E / S en un bucle FOR,
sólo el valor después de la iteración final se escribe en el dispositivo de E / S.
Otros scripts, incluyendo QuickFunctions asíncronas.
Puede evitar pausar otros procesos de tiempo de ejecución al colocar el bucle FOR en un QuickFunction
asíncrono.
Para evitar bucles infinitos, hay un límite de tiempo durante el cual los bucles FOR deben completar la
ejecución. Si un bucle no completa la ejecución después de este intervalo de tiempo, WindowViewer lo termina
automáticamente y escribe un mensaje sobre la terminación al Visor de registros.
LoopTimeout=x
Nota: El límite de tiempo se comprueba sólo en la instrucción NEXT del bucle. Por lo tanto, la primera iteración
del bucle se ejecuta siempre, incluso si tarda más que el límite de tiempo.
La siguiente secuencia de comandos utiliza un bucle simple y una etiqueta indirecta para volver a inicializar 100
etiquetas (Tag001 a Tag100) con un valor de 0.
58
DIM Counter AS INTEGER;
FOR Counter = 1 TO 100
IndirectInteger.Name = "Tag" + Text(Counter, "000");
IndirectInteger.Value = 0;
NEXT;
La siguiente secuencia de comandos utiliza dos bucles anidados y una etiqueta indirecta para reinicializar 1000
etiquetas (Line01_Tag001 a Line10_Tag100) con un valor de 0.
Las variables locales sólo existen dentro del ámbito del script en el que se declaran. Pierden su valor
cuando finaliza la ejecución del script. No pueden ser referenciados por otros scripts en su aplicación.
Las variables locales no tienen campos de puntos.
Las variables locales no cuentan para el recuento de etiquetas.
Antes de poder utilizar una variable local en un script, debe declararlo; De lo contrario, la referencia se
considera una variable. Puede declarar variables locales que tienen los mismos nombres que las etiquetas.
Puede declarar variables locales en cualquier lugar de su secuencia de comandos, siempre y cuando las
declare antes de su primer uso. Para declarar una variable local, utilice la siguiente instrucción:
58
DIM MyLocalRealVar1 AS Real;
DIM MyLocalRealVar2 AS Real;
En este escenario, la asignación de valor escribe un valor sólo en la variable local. El valor de la etiqueta con el
mismo nombre permanece sin cambios.
58
Configuración de las preferencias de WindowMaker.
Mediante el cuadro de diálogo Propiedades de WindowMaker, puede configurar preferencias y opciones que
afectan al comportamiento de WindowMaker. Usted puede:
58
Para establecer las propiedades de WindowMaker.
En el menú especial, seleccione Configurar y, a
continuación, haga clic en WindowMaker. Aparecerá el
cuadro de diálogo Propiedades de WindowMaker.
En el área Barra de título de WindowMaker, configure la
apariencia de la barra de título. Realice una de las siguientes
acciones:
En el cuadro Texto de la barra de título, escriba el texto
que aparecerá en la barra de título durante el tiempo de
diseño.
Seleccione la casilla de verificación Mostrar directorio
de aplicaciones para incluir la ruta de acceso a la
carpeta de la aplicación en la barra de título.
En el área Configuración de cuadrícula, configure la
cuadrícula de fondo. Realice una de las siguientes acciones:
En el cuadro Espaciado, escriba el número de píxeles
entre las coordenadas de la cuadrícula.
Seleccione la casilla de verificación Mostrar cuadrícula
para mostrar la cuadrícula.
Configure diversas propiedades de ventana. Realice una de las siguientes acciones:
Seleccione la casilla de verificación Mostrar número de etiquetas para mostrar el número de variables
en su diccionario de variables en la barra de menús. Si tiene muchas etiquetas, mostrar el recuento de
etiquetas puede afectar el rendimiento del Diccionario de variables. Esto es útil si está creando una
aplicación con un tamaño de diccionario Tagname limitado. El número de variables no incluye las
referencias de variables remotas ni las etiquetas del sistema. Haga clic en Actualizar Utilizar recuentos
en el menú especial para averiguar su uso de referencia de referencia remota.
Seleccione la casilla de verificación Cerrar en la transferencia a WindowViewer para cerrar
WindowMaker automáticamente cuando inicie WindowViewer. El propósito de esta opción es
conservar memoria limitada. Si la memoria no es un problema y se está moviendo a menudo entre
WindowViewer y WindowMaker, no seleccione esta opción. Cuando selecciona Cerrar en Transferir a
WindowViewer, también se selecciona el comando recíproco, Cerrar ventana, en la ficha Propiedades
generales del cuadro de diálogo Propiedades de Visor de ventana.
Seleccione la casilla de verificación Recoger objetos huecos para seleccionar objetos que están detrás
de objetos huecos. Esto le permite hacer cosas como seleccionar un objeto dentro de un marco sin
tener que enviar el marco a la parte posterior.
Seleccione la casilla de verificación Habilitar conmutador rápido para usar el "conmutador rápido" para
alternar entre WindowMaker y WindowViewer. El conmutador rápido es la palabra Runtime que
aparece en la esquina superior derecha de WindowMaker. En WindowViewer, es la palabra Desarrollo.
Cuando utiliza el conmutador rápido, WindowMaker guarda automáticamente todos los cambios
realizados en todas las ventanas abiertas antes de cambiar a WindowViewer.
En el cuadro Precisión de selección de línea, escriba el número de píxeles que su cursor puede estar
alejado de una línea y aun así podrá seleccionarlo. En la mayoría de los casos, la configuración
predeterminada de 4 funciona bien.
En el cuadro Niveles de deshacer, escriba el número de niveles de deshacer y rehacer para mantener.
Puede tener hasta 25 niveles. Si escribe "cero", la función de deshacer / rehacer se desactiva.
Un nivel representa una acción. Las pilas Undo y Redo están vacías cuando se crea una nueva
ventana o se abre una ventana existente. Las dos pilas se vacían cuando se cierra una ventana.
En el área Configurar fuentes, haga clic en Texto o en Botón para establecer la fuente de texto o fuente de
botón predeterminada. Seleccione el valor predeterminado de la fuente y, a continuación, haga clic en
Aceptar. Puede reemplazar estos valores predeterminados en cualquier ventana mediante la barra de
herramientas Fuente.
Haga clic en Aceptar.
Reinicie WindowMaker para aplicar los cambios que haya realizado.
58
Uso de la cuadrícula de pantalla y la regla.
Puede mostrar una cuadrícula y una regla para ayudarle a organizar y alinear objetos. Ajustar objetos a la
cuadrícula Puede hacer que sus objetos se ajusten a puntos de cuadrícula predefinidos al seleccionar Ajustar a
cuadrícula. De forma predeterminada, la cuadrícula está establecida en 10 píxeles y estará visible cuando inicie
WindowMaker. Configure el intervalo de píxeles para la cuadrícula en el cuadro de diálogo Propiedades de
WindowMaker. Para ver la cuadrícula, debe seleccionar Mostrar cuadrícula en el cuadro de diálogo Propiedades
de WindowMaker y seleccionar Ajustar a cuadrícula en el menú Organizar.
Uso de la regla
Utilice las reglas para la alineación de precisión de los objetos en sus ventanas. Las reglas aparecen en la parte
superior ya lo largo de un lado de la ventana del entorno de desarrollo .
Panorámica y zoom
Puede acercarse y alejarse para ver mejor los elementos que está editando para asegurarse de que los objetos
se alinean exactamente o se colocan correctamente.
La barra de herramientas Panorámica y Zoom aparece de forma predeterminada en la parte inferior derecha de
la pantalla. Puede ser flotado o acoplado en otras ubicaciones, al igual que las otras barras de herramientas.
Usted puede:
Ampliar y reducir de 100% a 500%.
Zoom a un área específica con la herramienta de goma.
Zoom la ventana a un porcentaje específico.
Haga clic y arrastre para desplazar la ventana.
Vuelva a la vista predeterminada normal.
58
Arrastre el rectángulo rojo para mostrar una parte
diferente de la ventana.
Haga clic en un área diferente de la ventana para
mover el rectángulo a esa área.
Cambie el tamaño del rectángulo para cambiar el nivel
de zoom del área de visualización.
58
Para ocultar todas las barras de herramientas a la vez.
En el menú Ver, haga clic en Ocultar todo.
Haga doble clic en una carpeta o icono para expandir y miembros del grupo.
Haga doble clic en un miembro para abrirlo.
58
Uso de paletas de colores.
Puede utilizar paletas de colores para aplicar el color a las propiedades estáticas y dinámicas de líneas,
rectángulos, rectángulos redondos, elipses, polilíneas, polígonos y texto. Puede seleccionar el color de fondo
para sus ventanas y el color transparente para los mapas de bits que le permiten ver objetos detrás de mapas
de bits. La paleta le ofrece una amplia gama de selecciones de colores, hasta 16,7 millones de colores. Los
colores disponibles pueden estar limitados por la capacidad de su tarjeta de video.
Tú también puedes:
58
Para seleccionar un color personalizado con la herramienta Cuentagotas.
Abra la paleta de colores.
Haga clic con el botón derecho en uno de los cuadrados en blanco de la sección Paleta personalizada
en la parte inferior de la paleta de colores.
Haga clic en la herramienta Cuentagotas y, a continuación, haga clic en el color que desea agregar.
En la barra de herramientas Vista, haga clic en el botón Pantalla completa para cambiar del modo
normal al modo de pantalla completa. La barra de herramientas Vista cambia a la barra de herramientas
Restaurar automáticamente y flota en la parte superior.
Cortos de ratón.
Utilice los siguientes atajos para abrir cuadros de diálogo y realizar otras tareas comunes.
58
Mover objetos con las teclas de flecha.
En WindowMaker, puede utilizar las teclas de flecha para mover un objeto o grupo de objetos seleccionado. Al
mover objetos con las teclas de flecha, la distancia que un objeto mueve dependerá de si la cuadrícula está o
no mostrada.
Cuando se muestra la cuadrícula, el número de píxeles que mueve un objeto depende del espaciado de la
cuadrícula, que se establece en el diálogo de propiedades de WindowMaker. El valor predeterminado es diez
pixeles entre puntos de rejilla.
58
Haga clic en Soltero para una ventana con borde tridimensional que puede tener una barra de
título y controles de tamaño. Seleccione la casilla de verificación Barra de título para incluir la
barra de título.
Haga clic en Doble para una ventana con borde tridimensional sin barra de título y no se puede
clasificar sin controles de tamaño.
Haga clic en Ninguno para una ventana sin borde o barra de título y que no se pueda clasificar
sin controles de tamaño.
Seleccione la casilla de verificación Controles de tamaño para permitir a los usuarios cambiar el tamaño
de la ventana en tiempo de ejecución.
En el área Dimensiones, especifique la ubicación y las dimensiones de la ventana. Haz lo siguiente:
En el cuadro Ubicación X, escriba el número de píxeles entre el borde izquierdo del área de
diseño y el borde izquierdo de la ventana que se está definiendo.
En el cuadro Ubicación Y, escriba el número de píxeles entre el borde superior del área de
diseño y el borde superior de la ventana que se está definiendo.
En los cuadros Ventana ancho y altura de ventana, escriba el ancho y la altura de la ventana en
píxeles.
Haga clic en Aceptar.
58
Para guardar una ventana.
En el menú Archivo, haga clic en Guardar ventana. Aparecerá el cuadro de diálogo de Windows para
guardar, enumerando los nombres de todas las ventanas.
Seleccione las ventanas que deben guardarse.
Haga clic en Aceptar. Al cerrar una ventana que se ha modificado, se le pide que guarde los cambios.
Duplicación de Windows
Cuando tiene procesos muy similares para simular y controlar, es posible que desee duplicar una ventana y
luego personalizarla para un proceso secundario o unidad.
Puede duplicar ventanas con todos los gráficos, QuickScripts, propiedades y así sucesivamente, asociados con
la ventana.
Antes de empezar, la ventana que desea duplicar debe estar abierta y guardada al menos una vez. Sólo puede
duplicar una ventana a la vez.
En el menú Archivo, haga clic en Guardar ventana como. Aparecerá el cuadro de diálogo Ventana para
guardar en el nuevo nombre, con los nombres de todas las ventanas actualmente abiertas.
Seleccione la casilla de verificación junto al nombre de la ventana.
En el cuadro Nuevo nombre, escriba un nombre para la nueva ventana.
Haga clic en Aceptar.
Eliminación de Windows.
Para conservar el espacio de almacenamiento de la computadora, o si la lista de ventanas en el Explorador de
aplicaciones se vuelve demasiado larga para administrar, puede eliminar ventanas no utilizadas.
Precaución: Asegúrese de eliminar la ventana correcta. No puede restaurar una ventana eliminada con
Deshacer.
En el menú Archivo, haga clic en Eliminar ventana. Aparece un cuadro de diálogo con los nombres de
todas las ventanas.
Seleccione el nombre de la ventana que desea eliminar y haga clic en Aceptar. Cuando aparezca el
mensaje, haga clic en Sí.
Haga clic en Aceptar.
V. Objetos de WindowMaker.
Objetos simples.
Puede crear los siguientes tipos de objetos simples:
58
Líneas
Formas
Texto
Botones
Creación de botones.
Puede utilizar los botones para crear puntos de interacción con su aplicación. El proceso es muy similar a la
creación de objetos de dibujo simples.
Haga clic con el botón derecho en el botón y haga clic en Sustituir cadenas.
En el cuadro Nueva cadena, escriba el texto del botón.
Haga clic en Aceptar.
58
Haga clic de nuevo en la ventana de la aplicación para establecer más puntos para definir su polilíneas
o polígono.
Haga doble clic en el último punto.
Creación de texto.
Puede utilizar el texto para etiquetar elementos visuales en su aplicación. Al crear texto, los ajustes de formato
de texto coinciden con los establecidos en el cuadro de diálogo Propiedades de WindowMaker. Puede cambiar
la apariencia del texto seleccionado. Al escribir varias líneas de texto, se convierten en objetos que se pueden
mover y editar independientemente. También puede combinar objetos de texto en un símbolo y editarlos como
un grupo.
Objetos complejos.
Los objetos complejos proporcionan más funcionalidad que objetos simples. Los siguientes son tipos de objetos
complejos.
Células y Símbolos.
Puede combinar varios objetos en dos tipos diferentes de unidades individuales: celdas y símbolos. Una celda
puede contener cualquier objeto. Un símbolo sólo puede contener objetos simples. Los símbolos no pueden
contener celdas.
Para averiguar si un objeto específico es una celda o un símbolo, haga doble clic en el objeto.
Se abre una celda, ya sea el cuadro de diálogo Sustituir variables o si la celda no contiene variables,
aparece el mensaje de advertencia Sustituir nombres.
Un símbolo o un objeto gráfico simple abre el cuadro de diálogo Selección de enlaces de animación.
Use una celda para combinar y mantener una relación espacial fija entre múltiples elementos. También puede
utilizar una celda para mover varios elementos alrededor y alinear con otros elementos gráficos. Para cambiar
los elementos de una celda, debe romper la celda, cambiar los elementos y, a continuación, combinar los
elementos en una celda de nuevo. Puede animar elementos de una celda pero no puede animar una celda.
Tampoco puede cambiar el tamaño de una celda.
Acerca de Símbolos:
Puede animar un símbolo y objetos simples. También puede utilizar un símbolo para animar partes de una
gráfica compleja. No puede hacer un símbolo si más de uno de los objetos seleccionados tiene vínculos. Si
combina dos símbolos en un nuevo símbolo, se pierde la estructura de símbolos original. Si rompe el nuevo
símbolo, se rompe en los componentes individuales de cada símbolo original. Los dos símbolos originales se
pierden.
58
Para crear una celda:
Seleccione los objetos que desea incluir.
En el menú Organizar (Arrange), haga clic en Crear celda (Make Cell.).
Romper un símbolo:
Seleccione el símbolo.
En el menú Organizar (Arrange), haga clic en Romper símbolo (Break Symbol).
Manipulaciones comunes.
Haga clic con el botón derecho en un objeto para ver un menú que muestre los comandos o acciones válidos
que puede aplicar a ese objeto. Usted puede:
Selección de objetos.
Debe seleccionar un objeto antes de poder modificarlo. Cuando selecciona un objeto, las asas aparecen en el
perímetro del objeto. Puede utilizar estos controladores para cambiar el tamaño y / o remodelar el objeto.
58
Haga clic en el botón Seleccionar modo y haga clic en el objeto que desea seleccionar.
Mover Objetos.
Puede mover objetos mediante:
Arrastrarlos.
Con las teclas de flecha del teclado.
Escribir coordenadas de ventana en cuadros en la barra de estado. Al mover un objeto, observe cómo
cambian las coordenadas de la barra de estado.
Al mover objetos con las teclas de flecha, la distancia que un objeto mueve dependerá de si la cuadrícula está o
no mostrada.
Cuando se muestra la cuadrícula, el número de píxeles que mueve un objeto depende del espaciado de la
cuadrícula, que se establece en el diálogo de propiedades de WindowMaker. La configuración predeterminada
es de diez píxeles entre los puntos de la cuadrícula.
58
Escriba las coordenadas X e Y en la barra de estado.
Pulse Enter.
Alineación de objetos.
Puede alinear objetos por sus bordes izquierdos o derechos, centros, puntos centrales, tops, medias o fondos.
Mediante los comandos de menú o los botones, puede alinearse de varias maneras.
58
Control del espaciado horizontal y vertical.
Puede espaciar objetos horizontalmente entre el objeto seleccionado más a la izquierda y el objeto
seleccionado más a la derecha. También puede controlar el espaciado vertical entre el objeto seleccionado más
arriba y el objeto seleccionado más inferior.
Objetos giratorios.
Puede rotar la mayoría de los objetos incluyendo símbolos, texto y mapas de bits. No se pueden rotar las
celdas. Puede girar objetos en el sentido de las agujas del reloj o en sentido contrario a las agujas del reloj 360
grados en incrementos de 90 grados. La rotación de objetos en WindowMaker no tiene nada que ver con la
rotación dinámica de objetos en tiempo de ejecución o en WindowViewer. Gire objetos en WindowViewer
vinculándolos a una animación de orientación.
58
toda la cadena de texto, incluido el valor, se centrará o se justificará cada vez que cambie el número de dígitos
mostrados. Mediante los comandos de menú o los botones, puede configurar el texto de varias maneras.
Seleccione el objeto.
En el menú Línea, haga clic en el estilo de línea o el ancho.
58
Seleccione el objeto.
En el menú Línea, haga clic en Sin línea.
Cambio de relleno.
Las formas llenas incluyen la forma rodeada por una línea. Ejemplos de formas rellenas son rectángulos,
rectángulos redondeados, círculos, elipses y polígonos.
Seleccione el objeto.
En la barra de herramientas Formato, haga clic en la herramienta Color de relleno.
Seleccione un color.
Eliminación de objetos
Para eliminar un objeto:
Deshacer cambios.
WindowMaker registra sus cambios de edición y formato para cada ventana. De forma predeterminada,
WindowMaker admite 10 niveles de deshacer / rehacer, donde un nivel representa una acción. Puede configurar
WindowMaker para retener hasta 25 niveles de acciones. También puede desactivar el deshacer / rehacer
estableciendo el nivel de deshacer / rehacer en cero. Si cierra la ventana, se borran todas las acciones
grabadas.
Rehacer un comando:
Cortar un objeto:
58
Haga clic con el botón derecho en el objeto y, a continuación, haga clic en Cortar.
Haga clic con el botón derecho en el objeto y, a continuación, haga clic en Copiar.
Haga clic con el botón derecho en un espacio en blanco de la ventana y haga clic en Pegar. El cursor
cambia a un símbolo de esquina.
Mantenga pulsado el botón izquierdo del ratón. El cursor cambia a un rectángulo punteado del tamaño
del objeto copiado.
Arrastre el rectángulo para localizar el objeto.
Suelte el botón del ratón.
El Portapapeles sólo almacena los vínculos para su acción de corte o copia más reciente.
Puede pegar los enlaces a cualquier objeto o símbolo que admita los vínculos del Portapapeles.
Si un vínculo pegado no está soportado por el objeto, por ejemplo, un enlace de color de línea en un
objeto de texto, el enlace no se pega.
Si selecciona varios objetos para pegar, los vínculos se pegan a todos los objetos.
Duplicación de objetos.
Duplicar objetos es similar a copiar objetos y sus vínculos de animación, pero tiene la ventaja de duplicar
también la distancia de desplazamiento y la dirección cuando los objetos se duplican más de una vez. Cuando
mueves un objeto duplicado sin des-seleccionarlo, luego lo dupliques de nuevo, la tercera iteración es
desplazada la misma distancia y dirección entre las dos primeras iteraciones. Puede repetir este procedimiento
tantas veces como sea necesario.
Haga clic con el botón derecho en el objeto y haga clic en Duplicar. El objeto se copia y se pega en una
posición de desplazamiento desde el objeto original.
Manteniendo seleccionado el objeto duplicado, arrástrelo a una posición diferente.
Una vez más, sin desmarcar el objeto duplicado, haga clic con el botón derecho del ratón en el objeto y,
a continuación, haga clic en Duplicar. La tercera iteración del objeto aparece en la misma posición
relativa que las dos primeras.
Seleccione el objeto.
Realice una de las siguientes acciones:
En el menú Edición, haga clic en Reformular objeto.
Haga clic con el botón secundario en el objeto y haga clic en Reformar objeto.
En la barra de herramientas Arrange, haga clic en el botón Reshape Object.Cada punto de
definición de forma se convierte en un identificador.
Arrastre un asa para volver a formatear.
58
Seleccione el objeto.
Realice una de las siguientes acciones:
En el menú Edición, haga clic en Agregar punto.
Haga clic con el botón derecho en el objeto y haga clic en Add Point.
Haga clic en un borde del polígono, luego arrastre el punto para cambiar la forma del polígono.
Seleccione el objeto.
Realice una de las siguientes acciones:
En el menú Edición, haga clic en Del Point.
Haga clic con el botón derecho del ratón en el objeto y haga clic en Apagar.
Haga clic en un punto del polígono, se suprime el punto y cambia la forma del polígono.
En la barra de herramientas Dibujo, haga clic en la herramienta Bitmap. El cursor se convierte en una
cruz.
Arrastre el cursor para dibujar un contenedor de mapa de bits.
En el menú Edición, haga clic en Importar imagen. Aparecerá el cuadro de diálogo Seleccionar archivo
de imagen.
Seleccione el nombre del archivo de imagen y haga clic en Aceptar.
Seleccione la imagen.
En el menú Edición, haga clic en Mapa de bits - Tamaño del original.
Con el mapa de bits seleccionado, haga clic en el botón Color transparente de la barra de
herramientas Formato para abrir la paleta de colores transparente.
Haga clic con el botón derecho en un cuadrado de color en la paleta personalizada. Aparecerá el cuadro
de diálogo Editar color personalizado.
Haga clic en el color del mapa de bits que desee hacer transparente. El color se
copia en el cuadrado de color que seleccionó en la paleta de colores.
58
Haga clic en el cuadrado de color para aplicar el color transparente al mapa de bits. Todos los píxeles
de la imagen que son de ese color se vuelven transparentes.
Seleccione el objeto.
En el menú Edición, haga clic en Ampliar radio o Reducir radio.
Seleccione el objeto o el botón con el texto. Realice una de las siguientes acciones:
En el menú especial, haga clic en sustituir cadenas.
Haga clic con el botón secundario en el objeto de texto, elija Sustitute ya continuación, haga clic
en Sustituir cadenas.
En el cuadro Nueva cadena, escriba la nueva cadena y haga clic en Aceptar.
Para cambiar una parte del texto en una serie de objetos de texto:
58
Animaciones de visualización de datos.
Las animaciones de visualización de datos sólo muestran información a los operadores. Estas animaciones no
permiten la entrada del operador.
Puede utilizar hasta 1023 caracteres en una expresión. Si necesita una expresión más grande, cree una
QuickFunction y llámela en su expresión.
Los mensajes aparecen en la ubicación del objeto de texto original utilizando la fuente, el tamaño, el color, la
alineación y los atributos vinculados establecidos para ese objeto. El contenido original del campo no tiene
ningún efecto en el mensaje en tiempo de ejecución.
Haga clic con el botón derecho en el objeto de texto y haga clic en Enlaces de animación. Aparece el
cuadro de diálogo Enlaces de animación.
En el área Mostrar valor, haga clic en
Analógico. Aparecerá el cuadro de diálogo
Salida -> Expresión analógica.
En el cuadro Expresión, escriba una variable
analógica (entera o real) o una expresión
que equivale a un valor analógico. Por
ejemplo: Tank_CV * 0.06
Haga clic en Aceptar.
58
Haga clic con el botón derecho en el
objeto de texto y haga clic en Enlaces
de animación. Aparece el cuadro de
diálogo Enlaces de animación.
En el área Mostrar valor, haga clic en
Cadena. Aparece el cuadro de diálogo
Output -> String Expression.
En el cuadro Expresión, escriba el
nombre de una etiqueta de mensaje o una expresión que utilice una etiqueta de mensaje. Por ejemplo:
"El nivel del tanque es:" + Text (TankLevel, "#")
Haga clic en Aceptar.
Creando Movimiento.
Los objetos se mueven en tiempo de ejecución mediante vínculos de ubicación. Puede hacer que un objeto se
mueva horizontalmente, verticalmente o ambos, a medida que cambia el valor de una etiqueta o expresión
analógica. Por ejemplo, cuando un nivel de tanque aumenta y disminuye, un indicador se mueve hacia arriba y
hacia abajo.
58
En el cuadro En la parte inferior, escriba el valor de la etiqueta analógica cuando el objeto debe
estar en la posición inferior.
En el cuadro Arriba, escriba el número de píxeles que el objeto debe mover hacia arriba desde
la posición inicial.
En el cuadro Abajo, escriba el número de píxeles que el objeto debe mover hacia abajo desde
la posición inicial.
Haga clic en Aceptar.
Creación de rotación.
Puede hacer que un objeto se mueva alrededor de un punto central a medida que el valor de una etiqueta
analógica cambia usando enlaces de orientación. Por ejemplo, a medida que la presión aumenta o disminuye,
un puntero puede moverse alrededor de un dial. El enlace de orientación utiliza el centro del objeto o símbolo
como el centro de rotación predeterminado. Puede desplazar el centro de rotación. Los enlaces de orientación
no son compatibles con los gráficos de ArchestrA.
Consejo: Dibuje un rectángulo temporal desde el centro del objeto hasta el punto central de rotación. Ahora
puede leer las dimensiones de desplazamiento X e Y en píxeles de los cuadros W, H en la barra de estado.
Animación de tamaños.
Puede variar la altura y / o el ancho de un objeto de acuerdo con el valor de una etiqueta o expresión analógica
utilizando vínculos de tamaño de objeto. Por ejemplo, un indicador de presión puede aumentar a medida que
aumenta la presión, o un objeto en un transportador puede parecer moverse hacia el espectador haciéndose
más grande. Los enlaces de tamaño de objeto no sólo controlan el tamaño de un objeto, sino la dirección en la
que el objeto cambia de tamaño mediante el uso de un ancla para la animación.
58
Para crear un enlace de altura de tamaño de objeto:
58
En el cuadro Valor en el ancho mínimo, escriba el valor de la etiqueta o expresión cuando el
objeto alcance el ancho mínimo.
En el cuadro Max% Ancho, escriba el porcentaje de su ancho original que el objeto será cuando
la variable o la expresión alcance el valor establecido en el cuadro Valor en el ancho máximo.
Las cifras porcentuales se expresan como un porcentaje del tamaño dibujado del objeto. El
tamaño dibujado es siempre el tamaño del 100%.
En el cuadro Ancho% mínimo, escriba el porcentaje de su ancho original que el objeto será
cuando la variable o la expresión alcance el valor establecido en el cuadro Valor en el ancho
mínimo. Las cifras porcentuales se expresan como un porcentaje del tamaño dibujado del
objeto. El tamaño dibujado es siempre el tamaño del 100%.
Seleccione el punto de anclaje desde el que el objeto se agranda en anchura.
Seleccione Izquierda para que el objeto se agrande desde su lado izquierdo.
Seleccione Centro para que el objeto se agrande desde su punto central hacia el exterior en
ambas direcciones.
Seleccione Derecha para que el objeto se agrande desde su lado derecho.
Haga clic en Aceptar.
Animación de colores.
Puede animar cambios de color a cualquier objeto mediante enlaces de color. Los cambios pueden basarse en
el valor de una etiqueta analógica o discreta, el valor de una expresión analógica o discreta o un estado de
alarma discreto o analógico. Puede utilizar tres tipos de enlaces de color para animar objetos:
Color de línea
Color de relleno
Color de texto
Para cada uno de estos tres tipos de enlaces de color, cuatro tipos de expresiones pueden controlar los
cambios de color.
¡ADVERTENCIA! : Los objetos no entran en un estado de alarma cuando se usa un enlace de alarma analógico
si el enlace es a una etiqueta remota de una aplicación no convertida creada antes de InTouch versión 7.11.
Todos los enlaces de color discretos se crean de la misma manera. El siguiente procedimiento describe la
creación de un enlace de color de relleno.
58
TankLevel> = 75. En este ejemplo, cuando el valor de la variable "TankLevel" es mayor o igual a 75, el
color de relleno del objeto cambia.
En el área Colores, haga clic en cada cuadro de color para abrir la paleta de colores. Seleccione el color
que desea usar para cada estado.
Haga clic en Aceptar.
Haga clic con el botón derecho en el objeto y, a continuación, seleccione Enlaces de animación.
Aparece el cuadro de diálogo Enlaces de animación.
En el área Color de relleno, haga clic en Analógico. Aparecerá el cuadro de diálogo Color de relleno ->
Expresión analógica.
En el cuadro Expresión, escriba el nombre de una etiqueta analógica o una expresión que equivalga a
un valor analógico.
Sugerencia: No tienes que usar diez colores diferentes. Por ejemplo, si sólo desea que el objeto
cambie de color tres veces, escriba tres valores y utilice el mismo color para los valores restantes. Si
necesita un rango más versátil, revise las capacidades de relleno analógico de los símbolos de
ArchestrA. Para obtener más información, consulte el Capítulo 1, Acerca de InTouch y ArchestrA
Integration, en InTouch® HMI y ArchestrA Integration Guide.
Haga clic con el botón derecho en el objeto y, a continuación, seleccione Enlaces de animación.
Aparece el cuadro de diálogo Enlaces de
animación.
En el área Color de relleno, haga clic en
Alarma discreta. Aparecerá el cuadro de
diálogo Color de relleno -> Estado de
alarma de variable.
En el cuadro Tagname, escriba el nombre de
la etiqueta discreta a asociar con el objeto.
En el área Colores, seleccione un color para cada estado de alarma.
Haga clic en Aceptar.
58
Haga clic con el botón derecho en el objeto y, a
continuación, seleccione Enlaces de animación.
Aparece el cuadro de diálogo Enlaces de
animación.
En el área Color de relleno, haga clic en Alarma
analógica. Aparece el cuadro de diálogo Color de
relleno -> Estado de la alarma de la variable
analógica.
En el cuadro Tagname, escriba el nombre de una etiqueta analógica asociada con el objeto.
En el área Tipo de alarma, seleccione uno de los tres tipos de alarmas que se asociarán con el objeto.
58
En el cuadro Color de fondo, seleccione el color de la parte no llenada del objeto.
El color de relleno real es el color que selecciona para el objeto cuando lo dibuja.
Si vincula el relleno porcentual vertical y el porcentaje horizontal de relleno de relleno al mismo
objeto, el último color que seleccione es el color de fondo.
Haga clic en Aceptar.
Sugerencia: Las expresiones discretas pueden contener variables analógicas. Por ejemplo, Nivel de tanque>
75. En este ejemplo, cuando el valor de la etiqueta TankLevel es mayor que 75, el objeto comienza a parpadear.
Nota: Si selecciona un color de parpadeo de relleno que es igual al color de relleno del objeto, el objeto no
parpadea.
En el área Velocidad de parpadeo, establezca la velocidad de parpadeo del objeto. Haga clic en Lento,
Medio o Rápido.
Haga clic en Aceptar.
Nota: Los cambios realizados en estas configuraciones son globales y afectan a todas las velocidades de
parpadeo en su aplicación.
Habilitación de la visibilidad.
Puede crear vínculos para ocultar objetos basándose en los valores de varias etiquetas utilizando vínculos de
visibilidad. Utilizando enlaces de visibilidad, puede:
58
Crear la impresión de que los objetos en movimiento sólo se mueven en una dirección, ocultándolos
cuando se mueven en la dirección equivocada.
Crear la impresión de que un objeto en movimiento se ha detenido.
Haga que un objeto como una alarma o mensaje de error se vuelva visible sólo cuando esté activado.
Sugerencia: Las expresiones discretas pueden contener etiquetas analógicas, por ejemplo, TankLevel> = 75.
En este ejemplo, cuando el valor de la etiqueta, TankLevel es mayor o igual a 75, el objeto se vuelve visible en
la ventana.
Desactivación de objetos.
Puede imponer un nivel de seguridad en su aplicación con enlaces deshabilitados. Por ejemplo, puede
desactivar los objetos sensibles al tacto basados en el nivel de acceso o el nombre del operador. O puede
proteger un botón de manipulación si no hay nadie conectado.
Un estado desactivado de ON significa que la funcionalidad táctil del objeto o botón está desactivada y no está
activa mientras la expresión sea verdadera.
Sugerencia: Las expresiones discretas pueden contener variables analógicas. Por ejemplo, TankLevel> = 75.
En este ejemplo, cuando el valor de la variable "TankLevel" es mayor o igual a 75, el objeto está deshabilitado.
58
Configuración de las sugerencias de herramientas.
Puede crear sugerencias para proporcionar a los usuarios información sobre un objeto en la pantalla
mediante vínculos de información sobre herramientas. Las sugerencias aparecen cuando el puntero se
mueve sobre el objeto y desaparece cuando se mueve el puntero. La duración del tiempo en que la
información sobre herramientas aparece y el posicionamiento de la información de herramientas es
determinado por el sistema operativo. Puede establecer una expresión o un texto estático para las
sugerencias.
Cree una descripción de herramienta estática para mostrar el mismo mensaje cada vez que se muestre
la información de herramientas.
Cree una información sobre herramientas de expresión para que cada vez que aparezca la información
sobre herramientas, la expresión se evalúe y se muestre como el texto de la información sobre
herramientas.
Para la siguiente expresión de ejemplo, el texto aparece como el valor actual de la etiqueta de mensaje
msgTooltipTag01.
MsgTooltipTag01
Para este ejemplo, la cadena literal aparece seguida por el valor actual de la etiqueta iTemp y el resultado
aparece como texto de información de la herramienta:
58
La nueva ventana aparece con su esquina superior izquierda en el centro del objeto seleccionado. Una función
de script similar abre la ventana con su centro en el centro del objeto seleccionado. La sintaxis tiene este
aspecto:
En el cuadro Tipo de condición, haga clic en la acción del mouse para abrir la ventana.
Haga clic en Aceptar
58
• String
• Vertical
Deslizadores(Sliders)
• Horizontal
• Valor discreto
• Acción
Apretar botones
• Mostrar ventana
• Ocultar ventana
Cuando se utiliza un campo de texto para la entrada, el texto aparece en la pantalla cuando se presionan las
teclas. Si no desea que aparezca texto a medida que lo escribe, seleccione la opción Sólo de entrada en el
panel de configuración del enlace.
58
¿En el teclado? , Haga clic en Sí si desea mostrar un teclado numérico en pantalla para
introducir el nuevo valor. En el cuadro Msg to User, escriba el mensaje de mensaje que desea
que aparezca en el teclado.
En los cuadros Valor mínimo y Valor máximo, escriba los valores mínimo y máximo de entrada
para la etiqueta.
Seleccione la casilla de verificación Sólo entrada para evitar que la entrada aparezca en un campo de
texto asociado al objeto.
Haga clic en Aceptar.
Importante: El cifrado de contraseñas sólo funciona en el contexto de InTouch HMI. No cifre la cadena si
desea pasarla a un sistema de seguridad externo, como el sistema operativo o una base de datos de SQL
Server. El sistema de seguridad externo no puede leer la cadena de contraseña cifrada y el acceso fallará.
Seleccione la casilla de verificación Sólo entrada para evitar que la entrada aparezca en un campo de
texto asociado al objeto.
Haga clic en Aceptar.
58
Haga clic con el botón derecho en el objeto y haga
clic en Enlaces de animación. Aparece el cuadro de
diálogo Selección de vínculo de animación.
En el área Slider, haga clic en Horizontal. Aparecerá
el cuadro de diálogo Slider horizontal.
En el cuadro Tagname, escriba el nombre de una
etiqueta analógica.
En el área Propiedades, realice lo siguiente:
En el cuadro En el extremo izquierdo, escriba el valor de la etiqueta cuando el control deslizante
esté en su posición izquierda más alejada.
En el cuadro En el extremo derecho, escriba el valor de la etiqueta cuando el control deslizante
esté en su posición más lejana a la derecha.
En el cuadro A la izquierda, escriba el número de píxeles que el deslizador puede mover hacia
la izquierda.
En el cuadro A la derecha, escriba el número de píxeles que el deslizador puede mover hacia la
derecha.
En el área Referencia, haga clic en la ubicación del objeto que el cursor usará para bloquear el objeto.
Haga clic en Aceptar.
58
Haga clic en Clave para asignar una clave equivalente al vínculo.
En el área Acción, haga clic en uno de los siguientes tipos:
Haga clic en Direct (Directo) para establecer el valor igual a 1 siempre y cuando se presione y
mantenga presionado el botón pulsador. El valor se restablece automáticamente a 0 cuando se
suelta el botón.
Haga clic en Invertir para establecer el valor igual a 0 cuando se presiona y se mantiene
pulsado el botón. El valor se restablece automáticamente a 1 cuando se suelta el botón.
Haga clic en Alternar para invertir el estado de la etiqueta discreta.
Haga clic en Restablecer para establecer el valor igual a 0.
Haga clic en Establecer para establecer el valor igual a 1.
Haga clic en Aceptar.
En la ventana Editor de secuencias de comandos, escriba el script que se ejecutará cuando se active el
objeto.
Haga clic en Aceptar.
58
El teclado o teclado InTouch estándar. Este es el teclado predeterminado.
El teclado del sistema Windows. El teclado de Windows es un teclado QWERTY completamente
funcional con teclas de función, tecla de pantalla de impresión, tecla de bloqueo de número, flechas
direccionales, etc.
El tamaño del teclado o del teclado. Este teclado se puede cambiar el tamaño durante el tiempo de
ejecución.
También puede abrir el teclado utilizando la función DialogStringEntry () y DialogValueEntry () en una secuencia
de comandos.
DialogStringEntry() Function.
Muestra un teclado alfanumérico en la pantalla, lo que permite al operador cambiar el valor de cadena actual de
una etiqueta de mensaje en el Diccionario de variables.
Categoría: Misceláneos
Sintaxis: [Result =] DialogStringEntry (MessageTag_Text, UserPrompt_Text);
Parámetros:
58
-1 = Error interno.
-2 = No se pudo iniciar.
-3 = Tagname no definido.
-4 = Tagname no es un tipo de mensaje.
-5 = No se puede escribir.
Observaciones: Esta función se utiliza principalmente en aplicaciones que contienen pantallas táctiles.
Ejemplo:
Por ejemplo, el siguiente script abre un teclado alfanumérico, permitiendo la modificación de MyMessageTag
mientras muestra el mensaje "Enter a new string..." en la parte superior del teclado:
DialogValueEntry() Function.
Muestra el teclado numérico en la pantalla, permitiendo al usuario cambiar el valor actual de una etiqueta
discreta, entera o real.
Categoría: Misceláneo
Sintaxis: [Resultado =] DialogValueEntry (ValueTag_Text, LowLimit, HighLimit, UserPrompt_Text);
Parámetros:
ValueTag_Text: El nombre de la etiqueta discreta, entera o real que se va a modificar. Este valor es un valor
de cadena. Especifique la variable entre comillas o utilice el campo .Name sin comillas. También puede utilizar
una etiqueta de mensaje como un puntero.
Bajo límite (LowLimit): El valor mínimo permisible para la etiqueta. (Esta debe ser> = la definición de la
variable para el valor mínimo, unidad mínima de ingeniería cruda o mínima, según corresponda).
Limite alto (HightLimit): El valor máximo permitido para la etiqueta. (Esta debe ser <= la definición de la
variable para el valor máximo, unidad máxima de ingeniería cruda o máxima, según corresponda).
58
-2 = No se pudo iniciar.
-3 = Tagname no definido.
-4 = Tagname no es un tipo discreto, entero o real.
-5 = Error de escritura.
Observaciones: Esta función se utiliza principalmente en aplicaciones que contienen pantallas táctiles.
Ejemplo (s):
Por ejemplo, el script siguiente abre el teclado numérico, permitiendo la modificación de MyIntegerTag usando
un límite mínimo y máximo de -100 y 100 (respectivamente),
Mientras muestra el mensaje "Introduzca un nuevo valor..." en la parte superior del teclado:
Utilice el cuadro de diálogo Seleccionar etiqueta, también denominado navegador de etiquetas, para
seleccionar:
Etiquetas definidas en una aplicación InTouch local o remota.
Atributos de objeto ArchestrA con el Navegador de atributos.
Abra el cuadro de diálogo Seleccionar etiqueta haciendo doble clic en cualquier cuadro de texto que requiera un
nombre de etiqueta para la entrada.
Puede seleccionar etiquetas definidas en una aplicación InTouch local o remota. Puede crear referencias a las
etiquetas en cualquier fuente de etiquetas que admita la interfaz del diccionario de variables.
Por ejemplo, las referencias de etiquetas remotas permiten que la aplicación acceda a los datos de los
servidores de E / S sin crear etiquetas en el diccionario local de variables. Puede establecer un campo de
58
puntos para cada etiqueta de InTouch que seleccione. Dotfields puede acceder, supervisar y modificar las
propiedades de la etiqueta. Si no selecciona un Dotfield, se utiliza el campo de puntos .Value.
Abra el cuadro de diálogo Seleccionar etiqueta haciendo doble clic en cualquier cuadro de texto que
requiera un nombre de etiqueta para la entrada.
En la lista Fuente de etiquetas, haga clic en el
nombre del origen de la etiqueta o haga clic en el
botón Examinar para definir un nuevo origen de
etiquetas que desea utilizar.
En la lista Filtro, haga clic en un filtro para reducir el
número de variables mostradas en la ventana. Para
definir un filtro, haga clic en el botón de puntos
suspensivos.
Seleccione una variable en la ventana. Puede
cambiar la forma en que se muestran las variables
en el cuadro de diálogo Seleccionar etiqueta.
En la lista Campo de puntos, haga clic en un campo
de puntos para anexar a la variable seleccionada.
Dotfields puede acceder, supervisar y modificar las
propiedades de la etiqueta. Si no selecciona un
dotfield, se utiliza el campo de puntos .Value. Haga clic en Aceptar.
58
En el cuadro de diálogo Seleccionar etiqueta, haga clic en
el botón de puntos suspensivos junto a la lista Filtro.
Aparecerá el cuadro de diálogo Definir filtro de etiquetas.
En el cuadro Nombre del filtro, escriba un nombre de filtro.
En el área Opciones de filtro, configure los criterios de filtro.
Realice una de las siguientes acciones:
En el cuadro Tagname, escriba el nombre de la
etiqueta.
En el cuadro Tipo de etiqueta, escriba el tipo de
etiqueta.
En el cuadro Nombre de acceso, escriba el Nombre
de acceso local.
En el cuadro Grupo de alarmas, escriba el nombre
del grupo de alarmas.
En el cuadro Comentario, escriba la expresión de comentario.
Haga clic en Aceptar. El nombre del filtro aparece en la lista Filtro en el cuadro de diálogo Seleccionar
etiqueta. Puede seleccionar el filtro para mostrar las etiquetas que cumplan los criterios de filtro.
Para eliminar un filtro de búsqueda:
58
Nota: Si se asigna un botón de acción o de objeto en la ventana activa a la misma clave utilizada para un script
de acción de tecla, el enlace equivalente clave de la clave de la ventana activa tiene prioridad sobre la ejecución
del script de acción de clave.
Los enlaces de animación que soportan equivalentes clave aparecen en el área Equivalente de llave en sus
cuadros de diálogo de enlace.
Los enlaces clave sólo están disponibles para las teclas de función 1-16. Si está utilizando un teclado
personalizado que tiene más de 16 teclas de función, obtenga un controlador de dispositivo de su fabricante que
le permita acceder a las teclas de función extendidas de su sistema.
Seleccione los objetos asociados con la etiqueta para cambiar a otra etiqueta.
En el menú especial, haga clic en Sustituir etiquetas. Aparecerá el cuadro de diálogo Substitute
Tagnames.
En el cuadro Nombre nuevo, escriba la nueva variable.
Si hace doble clic en una etiqueta en el cuadro Nuevo nombre, aparecerá su definición en el
Diccionario de variables.
Si borra la variable, haga doble clic en el cuadro en blanco y aparecerá el cuadro de diálogo
Seleccionar etiqueta.
Haga clic en Aceptar. La etiqueta asociada con el objeto se cambia automáticamente.
Si importa o exporta una ventana o QuickScript a su aplicación actual, todas las etiquetas asociadas con esa
ventana o QuickScript se transfieren con la ventana.
Las etiquetas locales no se agregan automáticamente a la base de datos de la aplicación. En su lugar, se
marcan automáticamente como etiquetas de marcador de posición.
58
Las referencias de etiquetas remotas no se ven afectadas y no están marcadas como etiquetas de marcador de
posición. Debe convertir las etiquetas de marcador de posición en etiquetas locales existentes, definirlas en el
Diccionario de variables de la nueva aplicación o convertirlas en referencias de etiquetas remotas.
Observe los marcadores de posición? D :,? I :,? M: y? R: precede a las etiquetas. Indican el tipo que la etiqueta
se definió originalmente como:
Nota: Las referencias de etiquetas remotas no se muestran como marcadores de posición, sino como
referencias de etiquetas remotas como: PLC2: Temperatura.
Puede utilizar varios métodos en el cuadro de diálogo Sustituir variables para convertir etiquetas de marcador
de posición a etiquetas locales. Para obtener más información, consulte el Capítulo 4, Exportación e importación
de definiciones de etiquetas, Windows y secuencias de comandos en la Guía de administración y extensión de
aplicaciones InTouch® HMI.
Al importar una ventana o QuickScript desde otra aplicación y convertir todas las variables asociadas a los
enlaces de animación o QuickScript a referencias de variables remotas, puede crear una aplicación que reciba
instantáneamente datos de cientos de variables remotas sin definir una sola etiqueta En su diccionario local de
variables.
Puede crear y validar objetos OLE para su uso en secuencias de comandos de InTouch. Después de usar un
objeto OLE, puede liberarlo para liberar memoria.
Utilice las siguientes funciones para crear, validar y liberar objetos OLE:
Función OLE_CreateObject()
Función OLE_IsObjectValid()
Función OLE_ReleaseObject()
Función OLE_CreateObject ()
Antes de que pueda hacer referencia a un objeto OLE en un script, debe crearlo. Al hacerlo, recibirá un puntero
que hace referencia al objeto OLE.
58
En una secuencia de comandos, puede crear un objeto OLE y asignar un puntero mediante la función
OLE_CreateObject ().
%pointer: El nombre de su elección para el puntero al objeto OLE. Puede contener caracteres alfanuméricos
(A-Z, 0-9) y subrayado. No distingue entre mayúsculas y minúsculas.
classname: El nombre de la clase OLE. El nombre de la clase es sensible a mayúsculas. Valor de cadena
literal, tagname de mensaje o expresión de cadena.
Observaciones: Si utiliza el mismo nombre de objeto para crear otro objeto, el objeto se actualiza para hacer
referencia a la nueva clase OLE. Se libera de la clase OLE antigua.
Ejemplo (s): Este script crea un objeto OLE denominado %WShell que hace referencia a la clase Wscript.Shell.
Ejemplo (s): Este script crea un objeto OLE basado en la clase Wscript.Shell y crea un puntero% WS para
referenciarlo. Isvalid es una etiqueta discreta que es TRUE si el objeto OLE se crea correctamente. De lo
contrario es FALSO.
%pointer: Nombre del puntero que hace referencia al objeto OLE. Puede contener caracteres alfanuméricos
(A-Z, 0-9) y subrayado. No distingue entre mayúsculas y minúsculas.
58
Ejemplo (s): Esta secuencia de comandos libera el objeto OLE asociado con el puntero% WShell y elimina el
puntero% WShell.
OLE_ReleaseObject (% WShell);
Utilizar las propiedades de objeto OLE y los métodos
En un script, puede utilizar punteros para leer y escribir valores desde y hacia propiedades OLE. También puede
utilizar el puntero para llamar a métodos OLE. Las propiedades y métodos disponibles dependen del objeto
OLE.
En un script, puede acceder a las propiedades de un objeto OLE como lo haría en la mayoría de los lenguajes
de programación. Las propiedades se identifican usualmente con el operador ".".
Nota: Cuando utiliza propiedades de objeto OLE en una secuencia de comandos, asegúrese de que sus
referencias no superen 98 caracteres, incluido el "%" principal. Mantenga los nombres de puntero OLE tan
cortos como sea posible.
En un script, puede leer una propiedad de objeto OLE asignando la propiedad a una etiqueta. No puede utilizar
una referencia directa a una propiedad de objeto OLE en un vínculo de presentación de animación.
% Pointer: El puntero que hace referencia al objeto OLE. Debe ser creado con la función OLE_CreateObject ()
o asignado a otro puntero antes de leer una propiedad.
En un script, puede escribir un valor en una propiedad de objeto OLE asignando un valor a la propiedad.
% Pointer: El puntero que hace referencia al objeto OLE. Debe ser creado con la función OLE_CreateObject
() o asignado a otro puntero antes de escribir en una propiedad.
58
Métodos de llamada de un objeto OLE:
% Pointer: El puntero que hace referencia al objeto OLE. Debe ser creado con la función OLE_CreateObject
() o asignado a otro puntero antes de llamar a un método.
Method: El nombre del método que forma parte del objeto OLE.
Parameters: Una lista de parámetros para pasar al método. Estos parámetros deben estar separados por
coma. Valores literales, tagnames o expresiones.
Ejemplo (s): Este script crea un objeto OLE basado en la clase OLE Shell.Application, crea un puntero% SA en
el objeto OLE y llama al método .MinimizeAll (). Este método minimiza todas las ventanas de su escritorio.
Nota: Los parámetros opcionales no están permitidos en las secuencias de comandos de OMI InTouch HMI. Se
deben especificar todos los parámetros.
%pointer: El nombre del puntero que ya hace referencia a un objeto OLE creado.
% Newpointer: El nombre de un nuevo puntero que debe hacer referencia al mismo objeto OLE. Puede
contener caracteres alfanuméricos (A-Z, 0-9) y subrayado. No distingue entre mayúsculas y minúsculas.
Ejemplo (s): Este script crea un objeto OLE basado en la clase Wscript.Shell y crea un puntero% WS para
referenciarlo. El puntero% WS2 cuando se establece en% WS apunta al mismo objeto OLE. Se puede utilizar
para leer o escribir en propiedades y llamar a métodos del mismo objeto OLE.
Nota: Puede utilizar variables de mensaje en relación con punteros. Si asigna una variable de mensaje a un
puntero, puede obtener un valor de ID. Puede utilizarlo para crear más punteros al mismo objeto OLE.
Función. Descripción.
58
Función OLE_GetLastObjectError () Obtener el número de error del último error OLE.
Función OLE_GetLastObjectErrorMessage () Obtener información sobre el último error OLE.
Función OLE_ResetObjectError () Restablecer el último error.
Mostrar u ocultar el cuadro de diálogo de mensaje
Función OLE_ShowMessageOnObjectError ()
de error OLE.
Cuente el número de errores OLE con una
Función OLE_IncrementOnObjectError ()
variable InTouch HMI.
Esto se puede utilizar para identificar cualquier error en un lote de funciones OLE.
Sintaxis: OLE_ResetObjectError ()
Función OLE_ShowMessageOnObjectError ().
De forma predeterminada, cuando se produce un error OLE, se muestra un cuadro de diálogo de mensaje de
error. En un script, puede especificar si desea o no mostrar el cuadro de diálogo de mensaje de error utilizando
la función
OLE_ShowMessageOnObjectError ().
Sintaxis: OLE_ShowMessageOnObjectError (Boolean)
Argumentos:
Boolean: Un valor que determina si se muestra un cuadro de diálogo de mensaje de error OLE o no. Un valor
booleano literal, tagname discreta o expresión booleana con los siguientes significados:
0 - ningún cuadro de diálogo de mensaje de error OLE aparece cuando se produce un error OLE
1 - un cuadro de diálogo de mensaje de error OLE aparece cuando se produce un error OLE.
Ejemplo (s): Este script suprime todos los cuadros de diálogo de mensaje de error OLE. Cuando se producen
errores OLE, no se muestran cuadros de diálogo de mensaje de error.
OLE_ShowMessageOnObjectError (0);
58
Función OLE_IncrementOnObjectError ().
En una secuencia de comandos, puede utilizar la función OLE_IncrementOnObjectError () para designar un
tagname entero como contador para el número de errores OLE.
Observaciones: Si se muestran cuadros de diálogo de mensaje de error OLE, la variable de contador sólo se
incrementa después de que se cierra el cuadro de diálogo de mensaje de error OLE.
Ejemplo (s): Este script designa el contador de errores tagname entero como contador de errores, oculta los
cuadros de diálogo de mensaje de error e intenta crear un objeto OLE basado en un nombre de clase OLE no
válido. Esto crea un error y el valor de la variable valor de error se incrementa a 1.
errorcount = 0;
OLE_IncrementOnObjectError (errorcount);
OLE_ShowMessageOnObjectError (0);
OLE_CreateObject (% WS, "InVaLiD.cLaSs.nAmE");
En una secuencia de comandos, utilice los comandos siguientes para producir un número aleatorio entre 0 y
255:
En una secuencia de comandos, utilice los comandos siguientes para producir un cuadro de diálogo de interfaz
de usuario:
58
La variable Estilo determina qué icono y qué botones aparecen en el cuadro de diálogo. Utilice los siguientes
valores:
Icono. Estilo. Valor.
(Sin icono) Sin icono 0
Icono de error 16
Icono de advertencia 48
Icono de información 64
Para utilizar un botón en particular, agregue uno de los siguientes valores al valor de estilo:
Valor. Estilo.
0 Sólo botón OK
1 Botones Aceptar y Cancelar
2 Botones Abortar, volver a intentar e ignorar
3 Botones Sí, No y Cancelar
4 Botones Sí y No
5 Botones Reintentar y Cancelar
6 Botones Cancelar, intentar de nuevo y continuar
El resultado tagname contiene el número de botón que el usuario hizo clic. Esto se puede utilizar para la
ramificación condicional en su secuencia de comandos de InTouch. Los siguientes códigos de resultado son
posibles:
58
Panel de propiedades de fecha y hora de Windows abierto.
En un script, utilice los siguientes comandos para abrir el panel de propiedades Windows Date / Time:
Puede realizar tareas similares llamando a métodos diferentes y pasándolos al objeto OLE referenciado:
Por ejemplo, estos comandos leen la versión instalada de InTouch HMI directamente desde la clave de registro
y almacenan el valor en la variable de mensaje rkey:
Estos comandos escriben el valor 1 en la clave de registro que determina si las extensiones de archivo están
ocultas para el usuario actualmente conectado:
58
VIII. Introducción a la gestión de datos.
Una aplicación Wonderware® InTouch® de interfaz de máquina humana (HMI) es una representación gráfica de
los componentes en un entorno de fabricación. Los operadores de la planta trabajan con esta interfaz gráfica
para supervisar y administrar sus procesos de
fabricación.
La siguiente figura muestra un ejemplo de una
bomba que es un componente de un proceso de
fabricación. La bomba tiene propiedades con
valores asociados. Presión, RPM y estado son
propiedades de la bomba cuyos valores se
monitorean a través de una HMI.
Puede utilizar diferentes tipos de etiquetas para los diferentes tipos de datos recopilados de un componente de
fabricación. Por ejemplo, la etiqueta PumpState devuelve un valor Booleano On / Off para indicar si la bomba
está funcionando o detenida. Asigne el tipo apropiado de etiqueta InTouch al tipo de datos que desea que forme
parte de su aplicación.
58
Asigne el nombre y el tipo de etiqueta con el Diccionario de variables. Para algunos tipos de etiquetas, tiene
otras opciones en el Diccionario de variables para especificar las propiedades adicionales de las etiquetas. Por
ejemplo, las etiquetas de tipo de E / S incluyen opciones adicionales para especificar la conexión a un origen de
datos remoto.
Las aplicaciones InTouch se ejecutan en el entorno WindowViewer. Cuando WindowViewer inicia una
aplicación, lee las etiquetas del repositorio de desarrollo y coloca en la memoria de tiempo de ejecución.
La aplicación InTouch se comunica con las etiquetas colocadas en la memoria de ejecución mediante enlaces
de animación o scripts. La aplicación InTouch rastrea los valores actuales y otra información de estado de las
propiedades de componente asignadas a las etiquetas.
Etiquetas de memoria.
Las etiquetas de memoria definen las constantes internas del sistema y las variables dentro de las aplicaciones
de InTouch. Por ejemplo, puede definir una constante interna como un número real de 3.414. En las
simulaciones de proceso, las etiquetas de memoria pueden controlar las acciones de QuickScripts de fondo
actuando como un contador. Basándose en el recuento asociado con la etiqueta, QuickScript puede activar
varios efectos de animación. Las etiquetas de memoria también pueden actuar como variables calculadas a las
que acceden otros programas.
58
Seleccione entre los cuatro tipos de etiquetas de memoria, basándose en los datos de proceso asociados con la
etiqueta.
Etiquetas de E / S.
Las etiquetas de E / S leen o escriben los datos de la aplicación InTouch desde o hacia una fuente externa. Los
datos externos incluyen entradas y salidas de controladores programables, computadoras de proceso y nodos
de red. Los valores de datos de etiqueta de E / S se acceden remotamente a través de los siguientes
protocolos:
Cuando el valor de una etiqueta de E / S cambia en la memoria de tiempo de ejecución, InTouch HMI actualiza
la aplicación remota. Por el contrario, los valores de etiqueta de E / S en InTouch se actualizan cada vez que
cambian los valores de elementos de datos correspondientes en una aplicación remota.
InTouch HMI proporciona cuatro tipos de etiquetas de E / S basadas en los datos de proceso asociados con la
etiqueta. Estos cuatro tipos de etiquetas de E / S son similares a los tipos de etiquetas de memoria.
58
Las variables reales de E / S se pueden asignar con números de punto decimal flotante entre -3,4 x 1038 y 3,4 x
1038. Todos los cálculos de punto flotante de etiqueta real de E / S se realizan con resolución de 64 bits, pero
los resultados se almacenan como números de 32 bits.
Etiquetas indirectas.
Las etiquetas indirectas actúan como "punteros" para
otras etiquetas. Por ejemplo, puede crear una sola
ventana InTouch y utilizar etiquetas indirectas para
mostrar datos de varios conjuntos diferentes de
etiquetas.
La siguiente figura muestra un ejemplo de una
ventana de aplicación que es capaz de mostrar varias
bombas. En lugar de crear ventanas separadas para
cada bomba, puede utilizar etiquetas indirectas en
una ventana para mostrar los valores de diferentes
etiquetas de origen asociadas a bombas individuales.
Una acción QuickScript u operador señala la etiqueta
indirecta a las etiquetas de origen. Por ejemplo, las sentencias de script siguientes asignan las dos etiquetas de
PumpRPM a una etiqueta analógica indirecta llamada IndPumpRPM basada en el valor de la etiqueta PumpNo.
IF PumpNo == 1 THEN
IndPumpRPM.Name = "PumpRPM1";
ELSE
IndPumpRPM.Name = "PumpRPM2";
ENDIF;
Al igualar una etiqueta indirecta a otra etiqueta de origen, la etiqueta indirecta actúa como si fuera la etiqueta de
origen. Los valores asociados con la fuente original y el duplicado indirecto
Se sincronizan entre sí. Si el valor de la etiqueta de origen cambia, la etiqueta indirecta refleja el cambio. Si
cambia el valor de la etiqueta indirecta, la etiqueta de origen cambia en consecuencia.
Puede utilizar tipos discretos, analógicos y de mensajes de etiquetas indirectas. Estos tres tipos de etiquetas
indirectas son comparables a la memoria similar y tipos de E / S de etiquetas.
Etiquetas varias.
Puede utilizar otros tipos de etiquetas InTouch diseñadas para fines específicos y restringidos. Puede utilizar
estas etiquetas para crear pantallas de alarmas dinámicas, crear tendencias históricas y cambiar las etiquetas
asignadas a las plumas de tendencia histórica.
58
Puede incluir una sentencia en un QuickScript para asignar una nueva etiqueta a un lápiz en cualquier
tendencia histórica mediante una etiqueta de tipo ID de etiqueta. Por ejemplo, la siguiente sentencia de
QuickScript cambia la etiqueta asociada con un lápiz de tendencia histórica:
HistTrend.Pen1 = MyLoggedTag.TagID;
Cuando se ejecuta este QuickScript, Pen1 de la tendencia histórica comienza la tendencia de los datos
registrados históricamente para MyLoggedTag.
SuperTags.
Un SuperTag es una plantilla que contiene un conjunto de etiquetas relacionadas. Por ejemplo, puede crear una
plantilla SuperTag que contenga un conjunto de etiquetas asignadas a todas las propiedades de una bomba.
Utilice SuperTags cuando tenga equipo idéntico en su proceso de producción. En lugar de crear un conjunto de
etiquetas para cada equipo, asigne una instancia de la plantilla SuperTag a cada uno de los elementos de
proceso idénticos.
Propiedades de la etiqueta.
Cada tipo de etiqueta InTouch tiene un conjunto de propiedades que describen las características de los datos
asociados con la etiqueta. Los cuatro tipos de datos principales asociados con las etiquetas de InTouch son:
A todas las propiedades de etiqueta se les asignan valores iniciales cuando crea una etiqueta con el Diccionario
de variables. La siguiente figura muestra las propiedades de una etiqueta de entero de E / S.
58
Después de establecer los valores iniciales de las propiedades de la etiqueta del Diccionario de variables,
puede cambiar dinámicamente la mayoría de las propiedades de la etiqueta mediante dotfield (campos de
puntos). Un dotfield identifica una propiedad de etiqueta que puede ser supervisada o modificada por una
secuencia de comandos cuando se ejecuta la aplicación InTouch. Añade el campo de puntos al nombre de la
etiqueta en un script.
58
Propiedades de la etiqueta de E / S.
Al igual que las etiquetas de memoria, las
propiedades de las etiquetas de E / S se pueden
seleccionar o modificar como opciones en el
Diccionario de variables.
58
Referencias de etiquetas remotas.
Puede crear
aplicaciones
InTouch
distribuidas con
un servidor de etiquetas que se ejecute en un nodo independiente
desde el nodo que ejecuta la aplicación InTouch. La siguiente figura
muestra una aplicación InTouch que hace una referencia remota a la
etiqueta PumpRPM desde un servidor de etiquetas que se ejecuta en
otro nodo.
• Utilice una referencia remota directamente a la etiqueta. Por ejemplo, PLC1: PumpRPM.
58
IX. Administrar etiquetas con el TagnameDictionary.
Mediante el TagnameDictionary, se crean etiquetas para una aplicación InTouch. La siguiente figura muestra el
cuadro de diálogo TagnameDictionary con todas las opciones para definir las propiedades de una etiqueta de
E / S.
Identificar todos los componentes físicos del proceso que necesitan ser representados en la aplicación
InTouch. Cree una lista de atributos de componente que deben representarse como orígenes de datos
en la aplicación.
Identificar el tipo de datos asociados con cada atributo de componente. Asigne a cada etiqueta un tipo
de etiqueta basado en los datos asociados con el atributo de componente.
Determinar las características de los datos que deben incorporarse a su aplicación InTouch. Evaluar las
siguientes características de datos para cada etiqueta:
Alcance esperado de los valores de datos.
Unidades de medida asignadas a valores de datos.
Valor de datos inicial.
Valor de banda muerta para establecer un umbral cuando el valor de una etiqueta se reconoce
como cambiado.
Mensajes que se mostrarán cuando el valor de una etiqueta cambie de estado.
Desarrollar una convención de nomenclatura de etiquetas y estándares. Normalmente, las aplicaciones
complejas requieren muchas etiquetas. Desarrollar una convención de nomenclatura estandarizada que
sugiera la organización de las etiquetas dentro de la aplicación.
58
Determinar qué datos de proceso se deben guardar. Los datos seleccionados se guardan en un archivo
de registro. Puede utilizar datos registrados para crear tendencias históricas que muestren los cambios
en los valores de las etiquetas a lo largo del tiempo.
58
Propiedades comunes de la etiqueta.
Debe asignar un nombre único a cada etiqueta. Un comentario opcional puede ser parte de la definición de la
etiqueta. Es una buena práctica asignar un comentario apropiado para cada etiqueta que defina.
Todas las etiquetas pertenecen a un grupo de alarmas, que es otra propiedad de etiqueta común. De forma
predeterminada, todas las etiquetas pertenecen al grupo $ System alarm.
Si es posible, evite utilizar caracteres especiales en los nombres de etiqueta a menos que sea absolutamente
necesario en su aplicación.
Comentarios de la etiqueta.
Puede introducir un comentario opcional de hasta 50 caracteres en el cuadro Comentario de TagnameDictionary
cuando cree una etiqueta.
La primera vez que accede al Diccionario de variables, el comentario predeterminado para la etiqueta del
sistema $ AccessLevel aparece en el cuadro Comentarios. Elimine este comentario para evitar que se asocie
con las etiquetas que cree.
58
Descripción de las propiedades de las etiquetas.
Después de especificar las propiedades comunes de la etiqueta, debe definir otras propiedades específicas del
tipo de etiqueta que está creando. La siguiente tabla muestra las propiedades básicas de las etiquetas de
memoria por tipo de etiqueta.
Las etiquetas de E / S tienen propiedades adicionales para establecer la comunicación de red y transformar
datos sin procesar de dispositivos de red a valores normalizados utilizados por la aplicación InTouch.
• Value Deadband: La propiedad deadband de valor establece un umbral que debe superarse antes de que
WindowViewer actualice el valor de la etiqueta en la memoria de tiempo de ejecución. La siguiente figura
muestra el rango de banda muerta absoluta alrededor de un valor de etiqueta actual.
• Log Value Deadband: La banda muerta del registro establece un umbral que se debe superar antes de que el
valor de la etiqueta se escriba en el archivo de registro. La siguiente figura muestra la banda muerta alrededor
del valor actual de una etiqueta registrada.
58
Sólo los nuevos valores de etiqueta fuera de la banda muerta se escriben en el archivo de registro. Cambios de
valor pequeños dentro del intervalo de banda muerta se ignoran y no se registran.
Establezca la banda muerta de valor introduciendo un número entero o real en el cuadro Deadband
basándose en el tipo de etiqueta seleccionado. La banda muerta de valor establece un nivel de umbral
absoluto en unidades de ingeniería.
Establezca la banda muerta del registro introduciendo un número entero o real en el cuadro Log
Deadband (Banda muerta de registro) en función del tipo de etiqueta seleccionado. Al igual que la
banda muerta de valor, la banda muerta de log establece un umbral absoluto en unidades de ingeniería.
Haga clic en Guardar para guardar los cambios en la banda muerta.
Haga clic en Cerrar para cerrar el cuadro de diálogo Diccionario de variables.
La opción Retentive Value no se puede seleccionar ni borrar para las etiquetas nuevas o existentes si
WindowViewer se está ejecutando. Al seleccionar esta opción, el valor inicial de la etiqueta se actualiza
constantemente para reflejar su valor actual. Cuando WindowViewer se detiene, el valor inicial se establece en
el último valor retenido. Si esta opción se borra más tarde, el valor inicial de la etiqueta se establece en el último
valor retenido. Las etiquetas enteras y reales incluyen la propiedad Retentive Parameters. Seleccione
Parámetros Retentivos para retener los cambios realizados por el operador al límite de alarma de una etiqueta
58
mientras la aplicación está en ejecución. WindowViewer utiliza el límite de alarma modificado como el valor
inicial para el límite de alarma cuando se reinicia la aplicación.
Conexión de E / S.
Todos los tipos de etiquetas de E / S deben identificar el nombre de acceso y el nombre de elemento del origen
de datos externo.
Registro de etiquetas.
Durante el tiempo de ejecución, WindowViewer puede escribir una entrada en el archivo de registro histórico
cada vez que el valor de una etiqueta cambia más que la banda muerta del registro especificado.
WindowViewer también escribe entradas en el registro en un intervalo fijo independientemente de los valores de
etiqueta actuales. De forma predeterminada, este intervalo fijo es de una hora.
Nota: Para un registro más controlable y versátil, considere usar Wonderware Historian para almacenar datos
históricos de InTouch.
El cuadro de diálogo Diccionario de variables incluye opciones separadas para registrar datos y eventos en el
archivo de registro. Puede establecer opciones de registro de valores.
Para que el valor de una etiqueta se escriba en el archivo de registro histórico, se debe habilitar el registro
histórico. Para las etiquetas enteras y reales, puede establecer la banda muerta del registro en sus respectivos
cuadros de diálogo de detalles. La opción Log Deadband especifica cuántas unidades de ingeniería debe
cambiar el valor de una etiqueta para escribir una entrada de registro.
Seleccione On u Off como el valor inicial asociado con la etiqueta. La etiqueta se establece en este
valor inicial cuando se inicia la aplicación.
Ingrese los mensajes en los cuadros Msg y Msj deshabilitados que aparecen cuando la etiqueta transita
dentro y fuera de un estado de alarma.
Estos mensajes están disponibles para su uso en cualquier vínculo o secuencia de comandos de
animación, independientemente de si la etiqueta tiene configuradas o no alarmas.
Si define una alarma discreta que está activa cuando el valor de etiqueta es igual a 1 (Activado,
Verdadero), el mensaje ingresado en el cuadro Msj activado aparece en las columnas Valor y
Límite de las pantallas de alarma ActiveX. Cuando el estado de alarma de la etiqueta vuelve a
la normalidad, el mensaje ingresado en el cuadro Desactivado aparece en la columna Valor y el
mensaje Activado permanece en la columna Límite.
Si define una alarma discreta que está activa cuando el valor de etiqueta es igual a 0 (Off,
Falso), el mensaje ingresado en el cuadro Desactivado aparece en las columnas Valor y Límite
de las pantallas de alarma ActiveX. Cuando el estado de alarma de la etiqueta vuelve a la
normalidad, el mensaje ingresado en el cuadro On Msg aparece en la columna Value y el
mensaje Off permanece en la columna Límite.
Guarde los cambios en la etiqueta.
58
Los siguientes pasos muestran cómo definir memoria y E / S entero y etiquetas reales. Se debe asignar un valor
inicial a las etiquetas enteras y reales de memoria. También debe establecer rangos de datos mínimos y
máximos.
Importante Los números reales de InTouch están limitados a la precisión de ocho dígitos. Para evitar posibles
errores de redondeo, no exceda la precisión de ocho dígitos cuando especifique las propiedades de las
etiquetas reales.
TagnameDictionary.
58
En el cuadro Comentario de alarma, escriba un mensaje que se puede leer en el control
AlarmViewer si la etiqueta de mensaje tiene seleccionada la opción Eventos de registro.
Guarde los cambios en la etiqueta.
Creación de etiquetas de E / S.
Las etiquetas de E / S tienen un conjunto de propiedades comunes que especifican la conectividad de red entre
la aplicación InTouch y los procesos externos. La parte de detalle del cuadro de diálogo TagnameDictionary
incluye opciones para establecer las propiedades externas de una etiqueta de E / S.
Modificación de etiquetas.
La modificación de una etiqueta es similar a la creación de una etiqueta. Seleccione la etiqueta que se va a
modificar desde el TagnameDictionary. A continuación, cambia las propiedades de la etiqueta siguiendo los
mismos pasos para crear una etiqueta.
Importante: No es fácil modificar el tipo de una etiqueta después de que se utilice en una aplicación de
InTouch. La selección del tipo de etiqueta puede estar limitada a tipos de datos similares. Debe seleccionar
cuidadosamente el tipo de datos correcto cuando defina sus etiquetas.
Eliminación de etiquetas.
Se mantiene un recuento para todas las etiquetas definidas para una aplicación InTouch. El recuento de
etiquetas no disminuye automáticamente cuando se elimina una ventana que contiene enlaces de animación o
secuencias de comandos. Las etiquetas asociadas con la ventana suprimida todavía se consideran en uso y no
se pueden eliminar. Para poder eliminar una etiqueta que ya no se utiliza, debe cerrar WindowViewer y
actualizar las cuentas de uso de etiquetas locales y remotas. Puede determinar dónde se está utilizando una
etiqueta con la utilidad de referencia cruzada InTouch.
Cada tipo de etiqueta InTouch tiene un conjunto único de propiedades que describen los datos o las posibles
condiciones asociadas con la etiqueta. Un dotfield identifica una propiedad de etiqueta. Hay un dotfield para casi
cada propiedad de etiqueta que se muestra en el TagnameDictionary. Algunos dotfields son comunes a cada
tipo de etiqueta InTouch. Por ejemplo, el campo de punto .Name siempre está asociado con el nombre de una
etiqueta. Otros dotfields se aplican sólo a las propiedades únicas de un tipo específico de etiqueta.
Al utilizar campos de puntos en un script, una expresión o una entrada de usuario, puede supervisar y modificar
las propiedades de una etiqueta mientras se está ejecutando una aplicación. El siguiente ejemplo muestra la
58
sintaxis de un dotfield para acceder a las propiedades de la etiqueta dentro de una secuencia de comandos o
expresión.
Tag_name.property_dotfield
Por ejemplo, para permitir que los operadores cambien el límite de alarma HiHi mientras se está ejecutando una
aplicación, puede crear un enlace táctil de entrada de usuario analógico. A continuación, aplique el vínculo a un
botón que se define con la expresión de punto matemático Analog_Tag.HiHiLimit. Durante el tiempo de
ejecución, el operador simplemente hace clic en el botón y escribe un nuevo valor para el límite de alarma HiHi
para la etiqueta. Puede utilizar campos de puntos para permitir la entrada y salida de datos asociados a una
etiqueta y puede utilizar campos de puntos históricos para modificar la tendencia histórica que se muestra
actualmente desde una aplicación en ejecución. Por ejemplo, puede utilizar campos de puntos en secuencias
de comandos que permiten a los operadores modificar el desplazamiento de tendencias históricas, bloquear o
volver a colocar los scooters en la tendencia o reasignar las plumas a nuevas etiquetas.
58
Visualización del límite de valor bruto. (The Raw Value Limit).
Los valores de las variables de entrada sin procesar de un servidor de E / S pueden requerir sujeción antes de
que puedan utilizarse en una aplicación InTouch.
La fijación restringe los valores brutos a un rango con límites inferiores y superiores definidos. Los campos de
punto .MinRaw y .MaxRaw muestran los límites inferior y superior del rango de entrada sin procesar.
.MinRaw Dotfield
El campo de puntos .MinRaw muestra el ajuste de la abrazadera inferior de Min Raw asignado a una etiqueta.
El valor para .MinRaw dotfield proviene del valor de valor mínimo asignado a la etiqueta de E / S en el
TagnameDictionary. Cualquier valor bruto menor que este ajuste se sujeta a este valor mínimo.
Categoría: Etiquetas
Uso: Tag_name.MinRaw;
Parámetro Tag_name: El nombre de cualquier entero de E / S, E / S real y etiqueta analógica indirecta.
Observaciones: Este campo de puntos de sólo lectura muestra el valor asignado al ajuste de la abrazadera
inferior de Min Raw.
Tipo de datos: Real o entero (sólo lectura).
Valores válidos: Cualquier valor analógico.
Ejemplo: El siguiente script muestra una ventana de error si el valor bruto asociado con la presión de entrada
de la bomba está fuera de los límites de valores inferiores y superiores establecidos por las propiedades Min
Raw y Max Raw de la etiqueta.
.MaxRaw Dotfield
El campo de puntos .MaxRaw muestra el ajuste de máxima fijación de Max Raw asignado a una etiqueta de E /
S desde la propiedad Max Raw en el Diccionario de variables. Cualquier valor de datos sin formato que exceda
esta configuración se sujeta a este valor bruto máximo.
Categoría: Etiquetas
Uso: Tag_name.MaxRaw
Parámetro Tag_name: El nombre de cualquier entero de E / S, E / S real y etiqueta analógica indirecta.
Observaciones: Este campo de puntos de sólo lectura muestra el valor asignado a la configuración de fijación
alta de Max Raw.
Tipo de datos: Real o entero (sólo lectura).
Valores válidos: Cualquier valor analógico.
Ejemplo: Esta secuencia de comandos determina si un valor de etiqueta está fuera del rango de
funcionamiento normal y, si es el caso, se muestra una ventana.
58
ENDIF;
Visualización del valor bruto de una etiqueta. (The Raw Value of a Tag).
El campo de puntos .RawValue muestra el valor discreto o analógico real de una propiedad supervisada
recibida de un servidor de E / S.
El valor bruto es el valor real de entrada antes de que se aplique el ajuste y la escala para normalizar el valor a
las unidades de ingeniería de la etiqueta.
.RawValue Dotfield
El campo de puntos .RawValue muestra el valor real recibido de un servidor de E / S por WindowViewer. El
campo de puntos .RawValue le permite acceder al valor de una etiqueta de E / S antes de que InTouch aplique
la escala.
Categoría: Etiquetas
Uso: Tag_name.RawValue
Parámetro Tag_name: El nombre de cualquier entero de E / S, E / S real, E / S discreto, indirecto discreto y
etiqueta analógica indirecta.
Observaciones: Este campo de puntos de sólo lectura se utiliza para mostrar el valor real de E / S discreta o
analógica antes de que InTouch aplique escala.
Tipo de datos: Cualquier dato apropiado para el tipo de etiqueta asociada con el campo de puntos .RawValue.
Por ejemplo, números reales para etiquetas reales o valores discretos para etiquetas discretas (sólo lectura).
Ejemplo: La siguiente secuencia de comandos emite un mensaje de advertencia cuando la presión de entrada
de la bomba bruta está por debajo o por encima de los límites de sujeción mínimo y máximo de la etiqueta.
.MaxEU Dotfield
El campo de punto .MaxEU muestra el valor de unidad de ingeniería máximo asignado a la etiqueta
especificada desde el TagnameDictionary.
Categoría: Etiquetas
Uso: Tag_name.MaxEU
Parámetro Tag_name: Cualquier etiqueta analógica entera, real o indirecta.
Observaciones: El campo de punto .MaxEU se utiliza para escalar valores de datos sin procesar a un rango de
unidades de ingeniería definido para la etiqueta. Define el límite superior del rango de la unidad de ingeniería.
Tipo de datos: Real para etiquetas reales e integer para etiquetas enteras (sólo lectura).
Valores válidos: Depende del tipo de etiqueta especificada.
58
Ejemplo: Un medidor de nivel es leído por un controlador lógico programable en el campo. El transmisor de
nivel envía una señal que oscila entre 4 y 20mA. El PLC convierte esta señal en un valor entero entre 0 y 4095.
Este valor se asigna a la etiqueta TankTwoLevel.
La visualización del valor bruto (entre 0 y 4095) no proporciona datos útiles al operador. Es necesario escalar
este valor a un rango de ingeniería apropiado.
Para ello, los campos Unidad mínima de ingeniería y Unidades de ingeniería máxima deben estar configurados
correctamente. En nuestro ejemplo, si el valor bruto de 0 (4mA del campo) traducido a "0 galones" y el valor de
4095 (20mA del campo) traducido a "100 galones", se necesitaría la siguiente configuración para mostrar de
forma correcto en la pantalla:
TankTwoLevel.MinRaw = 0;
TankTwoLevel.MaxRaw = 4095;
TankTwoLevel.MinEU = 0;
TankTwoLevel.MaxEU = 100;
Con estos ajustes, cuando el valor bruto en el campo es 4095, el valor mostrado al operador es 100.
Vea también: .EngUnits, .MinEU, .MinRaw, .MaxRaw, .RawValue
.MinEU Dotfield
El campo de puntos .MinEU muestra el valor mínimo de unidad de ingeniería asignado a la etiqueta
especificada desde el TagnameDictionary.
Categoría: Etiquetas
Uso: Tag_name.MinEU
Parámetro Tag_name: Cualquier etiqueta analógica entera, real o indirecta.
Observaciones: El campo de punto .MinEU se utiliza para escalar valores de datos sin procesar a un rango de
unidades de ingeniería definido para la etiqueta. Define el límite inferior del rango de la unidad de ingeniería.
Tipo de datos: Real para etiquetas reales e integer para etiquetas enteras (sólo lectura).
Valores válidos: Depende del tipo de etiqueta especificada.
Ejemplo: Este ejemplo asigna el rango de unidades de ingeniería definido para la etiqueta Tag1 a la etiqueta
AbsoluteTagRange.
AbsoluteTagRange = (Tag1.MaxEU - Tag1.MinEU);
Vea también: .EngUnits, .MaxEU, .MinRaw, .MaxRaw, .RawValue
.EngUnits Dotfield
El campo de puntos .EngUnits muestra el valor de texto asignado a una etiqueta analógica con la propiedad
Eng Units. El campo de puntos .EngUnits muestra la unidad de ingeniería como un valor de texto.
Nota: Los valores escritos en este campo no son retentivos.
Categoría: Etiquetas
Uso: Tag_name.EngUnits
Parámetro Tag_name: Cualquier marca analógica entera, real o indirecta.
Tipo de datos: Mensaje (lectura / escritura).
Observaciones: El campo de puntos .EngUnits no afecta a la escala, conversión o formato de los datos reales
asociados con la etiqueta.
Valores válidos: Cualquier cadena que contenga de 0 a 31 caracteres.
Ejemplo: El siguiente script llama a una función de conversión de temperatura Fahrenheit si la unidad de
ingeniería de la etiqueta es Celsius.
58
IF Temperature.EngUnits == "Celsius" THEN
CALL TempFConvert(Temperature);
ENDIF;
.Value Dotfield
El campo de puntos .Value muestra el valor actual de la etiqueta especificada en las unidades de ingeniería.
.Value es el campo de punto InTouch predeterminado aplicado implícitamente a todas las etiquetas. Si una
etiqueta no tiene un dotfield asignado, se asume el campo de puntos .Value.
Categoría: Etiquetas
Uso: tag_name.Value
Parámetro tag_name: Cualquier tipo de etiqueta excepto la etiqueta Hist Trend.
Observaciones: Usted raramente necesita usar el campo de puntos .Value. Sin embargo, en algunos casos,
hace más claro el cálculo o el uso de parámetros.
Tipo de datos: Igual que el tipo de etiqueta especificado (lectura / escritura).
Valores válidos: Depende del tipo de etiqueta especificada.
.OnMsg Dotfield
El campo de campo .OnMsg le permite acceder al mensaje On asignado a una etiqueta discreta desde el
TagnameDictionary.
Categoría: Etiquetas
Uso: Tag_name.OnMsg
Parámetro Tag_name: Cualquier etiqueta discreta.
Tipo de datos: Mensaje (lectura / escritura). Los valores escritos en este campo de puntos no son retentivos.
Valores válidos: Cualquier cadena que contenga de 0 a 15 caracteres.
Ejemplo: La sentencia siguiente emite un mensaje si se le asigna un valor de cadena de "Pump1 running" al
mensaje indirecto IndPumpState tag On.
IF IndPumpState.OnMsg == "Pump1 running" THEN
TypeOfTag = "The IndPumpState tag is assigned to
Pump1.";
ENDIF;
58
Vea también: .OffMsg
.OffMsg Dotfield
El campo de puntos .OffMsg le permite acceder al mensaje Off asignado a una etiqueta discreta del Diccionario
de variables.
Categoría: Etiquetas
Uso: Tag_name.OffMsg
Parámetro Tag_name: Cualquier etiqueta discreta.
Tipo de datos: Mensaje (lectura / escritura). Los valores escritos en este campo de puntos no son retentivos.
Valores válidos: Cualquier cadena que contenga de 0 a 15 caracteres.
Ejemplo: La sentencia siguiente asigna la cadena apropiada a la etiqueta de StateMessage de acuerdo con el
estado de la etiqueta MyDiscrete.
58
XI. Datos de marcas de tendencias.
Puede crear tendencias que muestren gráficamente los datos recopilados de una aplicación InTouch.
WindowMaker incluye un conjunto de utilidades y asistentes que le permiten crear tendencias históricas y en
tiempo real. La siguiente figura muestra un
ejemplo de una tendencia InTouch Media /
Dispersión.
• La tendencia histórica Promedio / Barra muestra el valor promedio de un punto de datos durante los intervalos
de tiempo en forma de barra.
• La tendencia histórica Min / Max muestra los cambios en el porcentaje de unidades de ingeniería como escala
vertical en el intervalo de tiempo. El énfasis está en el flujo de tiempo y la tasa de cambio, en lugar de la
cantidad de cambio.
• La tendencia histórica Promedio / Dispersión muestra el valor promedio de los puntos de datos en cada
intervalo de tiempo de tendencia.
Puede crear deslizadores gráficos llamados scooters para acceder a los detalles de los datos de tendencia
basados en la posición actual del scooter dentro de una tendencia. Por ejemplo, cuando el operador coloca el
scooter sobre un área en la tendencia que tiene datos visibles, el tiempo y los valores en esa ubicación para
todos los valores de la base de datos que se están mostrando. También puede crear botones o deslizadores
58
para acercar y alejar entre los scooters o datos, como el valor máximo a mínimo. Promedio y desviación
estándar se puede mostrar para el cuadro completo o para el área entre los scooters. Las tendencias históricas
también se pueden desplazar por cualquier cantidad de tiempo. Puede crear escalas personalizadas y
vincularlas a los campos de punto .MinEU y .MaxEU para crear una tendencia que muestre el rango completo
de datos establecidos por su unidad de ingeniería. Descripción de las tendencias en tiempo real Una tendencia
en tiempo real muestra los datos de una aplicación InTouch que se está ejecutando actualmente. Las
tendencias en tiempo real se actualizan continuamente. Las tendencias en tiempo real representan los valores
de datos actuales asociados con hasta cuatro etiquetas o expresiones locales.
Usted puede:
• Crear una tendencia en tiempo real
• Seleccione las etiquetas de una tendencia
• Especifique el intervalo de tiempo y de actualización de una tendencia
• Configurar las opciones de visualización de una tendencia.
Además, puede incorporar una tendencia de ActiveFactory para mostrar los datos de tendencias históricas de
InTouch guardados en una base de datos de Historiador de Wonderware.
58
Una tendencia histórica soporta hasta ocho corrales.
Nota: WindowViewer debe cerrarse. De lo contrario, los cuadros de pluma no se pueden seleccionar.
Puede seleccionar etiquetas de proveedores de historial remotos, si los proveedores están configurados.
Nota: También puede configurar un proveedor de historial Wonderware Historian para visualizar datos de
tendencias históricas. Para obtener más versatilidad y otras opciones de gráficos, utilice las herramientas de
tendencias de ActiveFactory para crear tendencias con los datos históricos de InTouch guardados en una base
de datos de Historiador de Wonderware.
Para configurar las etiquetas que se muestran a partir de una tendencia histórica:
Haga doble clic en el objeto de tendencia de la ventana. Aparecerá el cuadro de diálogo Configuración
de tendencias históricas.
En el cuadro Etiqueta histórica, escriba la etiqueta que
desea utilizar para la tendencia. La etiqueta debe
definirse como un tipo de tendencia Hist. Debe asignar
una etiqueta Hist Trend diferente a cada tendencia
histórica en una aplicación InTouch.
Si la etiqueta que ingresa no está definida actualmente
en el TagnameDictionary, aparecerá un cuadro de
diálogo y le preguntará si desea crear una etiqueta. Si
selecciona OK para definir una etiqueta,
Aparecerá el cuadro de diálogo Diccionario de variables.
En el área Tagname, especifique el nombre de una
etiqueta local o remota existente en uno o más cuadros
Pen.
Para asignar directamente una etiqueta local o remota existente, haga clic en el cuadro de una pluma y
escriba el nombre de la etiqueta.
58
Configuración del intervalo de tiempo de una tendencia histórica.
Puede configurar el intervalo de tiempo de una tendencia histórica.
Min/Max
Average
58
De Div Menor / Div Mayor, escriba el número de divisiones de tiempo menores dentro de cada
división de tiempo principal. El número de divisiones temporales menores debe ser igualmente
divisible dentro de una división principal. Por ejemplo, si la división principal se establece en 60
segundos, al ingresar un valor de 2 en Div Menor / Div Mayor, se establece la división de tiempo
menor en 30 segundos.
Seleccione el color de las líneas de división menores.
Seleccione Etiquetas superiores o Etiquetas inferiores para especificar la colocación de
etiquetas de tiempo en la tendencia.
Si está utilizando etiquetas de tiempo, escriba el número de líneas de división de tiempo
principales por etiqueta de tiempo en el cuadro Etiqueta de div / hora principal.
Seleccione el color de las etiquetas de división de tiempo.
Seleccione las unidades de tiempo mostradas como la etiqueta de la división de tiempo
principal.
En el área Divisiones de valores, configure la apariencia del eje vertical de la tendencia. Las opciones
de divisiones de valor se configuran de la misma manera que las opciones de divisiones de tiempo. El
eje vertical especifica el intervalo de valores de datos que aparecen en la tendencia basándose en
unidades de ingeniería para todas las etiquetas.
Haga clic en Aceptar para guardar los cambios de configuración y cerrar el cuadro de diálogo
Configuración de tendencia histórica.
58
En el área Longitud del gráfico, escriba la duración que se mostrará en la tendencia y, a continuación,
seleccione la unidad de medida. Por ejemplo, si introduce 2 y selecciona Horas, la duración de la
tendencia es de 2 horas.
En el área Rango de gráficos, escriba el porcentaje del rango de la unidad de ingeniería que se muestra
en el eje vertical de la tendencia histórica. La escala de la tendencia es un segmento del rango de la
unidad de ingeniería de la etiqueta con tendencia definida por un rango porcentual. Los valores van de
0 a 100. Por ejemplo, si desea modificar la varianza de las etiquetas seleccionadas de 40 a 60 por
ciento de su rango de unidades de ingeniería, escriba 40 y 60 en las casillas de rango mínimo y
máximo, respectivamente.
En el área Etiquetas, haga clic en un número de pluma para asignar una etiqueta.
El cuadro de diálogo Seleccionar etiquetas aparece con una lista de etiquetas que se pueden asignar al
lápiz de tendencia histórica.
Utilice la siguiente instrucción en un botón QuickScript o para permitir al operador actualizar el gráfico:
Hist_TrendTag.UpdateTrend = 1;
Utilice cualquiera de las siguientes funciones en un QuickScript o en un botón:
HTUpdateToCurrentTime (Hist_Tag);
HTScrollLeft (Hist_Tag, Porcentaje);
HTScrollRight (Hist_Tag, Porcentaje);
HTZoomIn (Hist_Tag, LockString);
HTZoomOut (Hist_Tag, LockString);
HTSetPenName (Hist_Tag, PenNum, Tagname);
.ChartStart
.ChartLength
.Rango máximo
.MinRange
.Pen1-.Pen8
Control de una tendencia histórica utilizando campos de puntos.
Puede utilizar puntos para gestionar las tendencias históricas durante el tiempo de ejecución.
.DisplayMode Dotfield
El campo de puntos .DisplayMode especifica el formato de tendencia utilizado para mostrar los valores de una
etiqueta.
Categoría: Histórico
Uso: tag_name.DisplayMode
Parámetro tag_name: Cualquier etiqueta de Hist Trend.
Tipo de datos: Analógico (lectura / escritura).
Valores válidos:
1 = Muestra el valor mínimo / máximo que se produjo en cada período de muestra (predeterminado).
2 = Muestra el valor promedio de cada período de muestra en una tendencia histórica de dispersión.
3 = Muestra el promedio de cada período de muestra en una tendencia histórica del gráfico de barras.
Ejemplo: Esta sentencia especifica que los valores de la tendencia histórica representada por el
"HistTrend_Tag" están formateados como una tendencia histórica del gráfico de barras.
58
HistTrend_Tag.DisplayMode = 3;
Vea también: .ChartLength, .ChartStart
.MinRange Dotfield
El campo de puntos .MinRange especifica el porcentaje mínimo del rango de unidades de ingeniería de la
etiqueta que se mostrará para cada etiqueta en una tendencia Histórica.
Categoría: Histórico.
Uso: tag_name.MinRange
Parámetro: tag_name: Cualquier etiqueta de Hist Trend.
Observaciones: Una tendencia histórica puede mostrar varios tipos de etiquetas al mismo tiempo. Especificar
los límites mínimo y máximo del rango de valores en unidades de ingeniería es difícil porque los diferentes tipos
de etiquetas pueden tener diferentes rangos de ingeniería. Por lo tanto, los valores de rango mínimo y máximo
se expresan como un porcentaje del rango de ingeniería de cada etiqueta. De esta manera,
independientemente del rango de ingeniería real de la etiqueta, la tendencia histórica muestra el porcentaje
indicado del rango de ingeniería particular de esa etiqueta.
Tipo de datos: Real (lectura / escritura).
Valores válidos: Los límites para los campos de punto .MaxRange y .MinRange son de 0 a 100. .MinRange
siempre es menor que .MaxRange. Si asigna un valor menor que 0 o mayor que 100 a cualquiera de estos
campos de puntos, el valor se bloquea en 0 o 100. Sí .MinRange es mayor o igual que .MaxRange, la tendencia
no muestra ningún dato.
Ejemplo: Esta sentencia dotfield de ejemplo establece el rango de porcentaje mínimo de la tendencia histórica
al 25 por ciento del rango posible de la unidad de ingeniería de una etiqueta Hist Trend.
HistTrend.MinRange = 25
Vea también: .ChartStart, .ChartLength, .DisplayMode, .EngUnits, .MinEU, .MaxEU, .MaxRange, .MinRaw,
.MaxRaw, .RawValue
.MaxRange Dotfield
El campo de punto .MaxRange especifica el porcentaje máximo del rango de unidades de ingeniería de la
etiqueta que se mostrará para cada etiqueta en una tendencia histórica.
Categoría: Histórico.
Uso: tag_name.MaxRange
Parámetro: tag_name: Cualquier etiqueta de Hist Trend.
Observaciones: Una tendencia histórica puede mostrar muchos tipos de etiquetas simultáneamente.
Especificar los límites mínimo y máximo del rango en unidades de ingeniería puede ser difícil porque las
etiquetas pueden tener rangos de ingeniería diferentes. Por lo tanto, los valores de rango mínimo y máximo se
expresan como un porcentaje del rango de ingeniería de cada etiqueta. De esta manera, independientemente
del rango de ingeniería real de la etiqueta, la tendencia histórica muestra el porcentaje indicado del rango de
ingeniería de esa etiqueta.
Tipo de datos: Real (lectura / escritura).
Valores válidos: Los límites para los campos de punto .MaxRange y .MinRange son de 0 a 100. .MinRange
siempre es menor que .MaxRange. Si asigna un valor menor que 0 o mayor que 100 a cualquiera de estos
campos de puntos, el valor se bloquea en 0 o 100. Sí .MinRange es mayor o igual que .MaxRange, la tendencia
no muestra ningún dato.
Ejemplo: Esta sentencia de ejemplo dotfield establece el rango de porcentaje máximo de la tendencia histórica
al 75 por ciento del rango posible de la unidad de ingeniería de una etiqueta Hist Trend.
HistTrend.MaxRange = 75
58
Vea también: .ChartStart, .ChartLength, .DisplayMode, .EngUnits, .MinEU, .MaxEU, .MinRange, .MinRaw,
.MaxRaw, .RawValue
.UpdateCount Dotfield
El campo de punto .UpdateCount incrementa un recuento cada vez que se actualiza una tendencia histórica. El
campo de punto .UpdateCount se puede utilizar como un disparador para otras funciones.
Categoría: Histórico.
Uso: HistTrendTag.UpdateCount
Parámetro: HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Tipo de datos: Integer (sólo lectura).
Valores válidos: Cualquier número entero positivo.
Ejemplo: Este ejemplo utiliza la función HTGetValueAtScooter () para recuperar el valor de Pen1 en la posición
actual del scooter derecho. Un cambio en cualquier argumento de función hace que la función sea reevaluada.
Cuando se completa la actualización y se incrementa el valor de .UpdateCount, se vuelve a evaluar esta
instrucción.
MyRealTag = HTGetValueAtScooter (
MyHistTrendTag, MyHistTrendTag.UpdateCount, 2,
MyHistTrendTag.ScooterPosRight, 1, "PenValue");
.UpdateInProgress Dotfield
El campo de puntos .UpdateInProgress indica el estado actual de una operación de actualización de tendencia
histórica. El valor del campo de puntos se establece en 1 si una recuperación histórica está en curso; De lo
contrario el dotfield se establece en 0.
Categoría: Histórico.
Uso: HistTrendTag.UpdateInProgress
Parámetro: HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: Cuando se solicitan nuevos datos de la tendencia histórica, el valor de este punto se establece
en 1. Una vez finalizado el proceso, .UpdateInProgress se restablece a 0. .UpdateInProgress se puede utilizar
en funciones relacionadas con tendencias históricas. Si el operador desplaza la tendencia a un período fuera
del período mostrado actualmente, puede tomar algún tiempo recuperar los datos históricos. El campo de
puntos .UpdateInProgress proporciona una forma de alertar al operador de que se están recuperando los datos
solicitados. Sin retroalimentación, el operador puede no ser consciente de que la tendencia se está
actualizando.
Tipo de datos: Discreto (sólo lectura).
Valores de valor:
Ejemplo: El campo de puntos .UpdateInProgress se suele utilizar como expresión en un enlace de visibilidad en
un objeto de texto cerca o en los botones de desplazamiento de una Tendencia histórica. Puede utilizar el
campo de punto .UpdateInProgress para mostrar "Ocupado" en la ventana
Cuando se están recuperando los datos con el siguiente enlace de animación de visualización de valor de
mensaje:
58
DText (HistTrend1.UpdateInProgress, "Ocupado", "Listo")
Consulte también: .UpdateCount, .UpdateTrend
.UpdateTrend Dotfield
El campo de punto .UpdateTrend activa una actualización de una tendencia histórica. Utilizando el campo de
puntos .UpdateTrend en un script de acción de botón, el operador puede actualizar manualmente la tendencia
durante el tiempo de ejecución.
Categoría: Histórico.
Uso: HistTrendTag.UpdateTrend
Parámetro: HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: Las tendencias históricas no se actualizan automáticamente. Se debe realizar un cambio en los
campos de punto .ChartStart o .ChartLength para actualizar el gráfico y mostrar los valores actuales de las
etiquetas especificadas. Mediante el uso de este campo de puntos en un script de acción de botón, el operador
puede actualizar el gráfico durante el tiempo de ejecución. También puede utilizar este campo de puntos en un
QuickScript si otros dotfields asociados con la tendencia histórica van a ser cambiados.
Sólo debe establecer el campo de punto .UpdateTrend en un valor de 1.
Tipo de datos: Discreto (sólo escritura).
Valores válidos: 1
Ejemplo: Este ejemplo activa la tendencia histórica asociada con la etiqueta MyHistTrendTag para actualizar
con los valores actuales de todos los parámetros.
MyHistTrendTag.UpdateTrend = 1;
.ChartLength Dotfield
El campo de puntos .ChartLength especifica el tiempo que se muestra en una tendencia histórica.
Categoría: Histórico.
Uso: HistTrendTag.ChartLength
Parámetro: HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Comentarios: La etiqueta HistTrend asignó el nombre de la tendencia.
Comentarios: El valor asignado a .ChartLength especifica la longitud del gráfico en segundos. La longitud se
define como la cantidad de tiempo que se muestra actualmente en el gráfico de tendencia histórica. Más
específicamente, el cálculo recuperado como la Longitud del gráfico de un gráfico de tendencia histórico es:
Debido a que los sellos de fecha / hora se expresan en segundos a partir de la medianoche del 1 de enero de
1970, los resultados del cálculo se muestran en segundos de tiempo entre los lados izquierdo y derecho del
gráfico. Siempre que se suma o resta de .ChartLength, el tiempo se expresa en segundos. Por lo tanto, para
restar dos horas a la .ChartLength actual, convierta las horas en segundos antes de realizar el cálculo. Por
ejemplo:
58
HtTag.ChartLength = 3600 {60 minutos * 60
Segundos / minuto};
HtTag.ChartStart = HtTag.ChartStart -
HtTag.ChartLength / 2;
.ChartStart Dotfield
El campo de puntos .ChartStart se puede utilizar para establecer o verificar el valor de la marca de fecha / hora
inicial (izquierda) de una tendencia histórica.
Categoría: Histórico.
Uso: HistTrendTag.ChartStart
Parámetro: HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: Este campo de puntos de lectura / escritura se utiliza para establecer o verificar el valor de la
fecha / hora de inicio de una tendencia histórica. El campo de puntos .ChartStart se expresa como el número de
segundos transcurridos después de la medianoche del 1 de enero de 1970. El punto de partida se define como
la primera marca de fecha / hora en una tendencia histórica.
Tipo de datos: Integer (lectura / escritura).
Valores válidos: Cualquier número entero positivo.
Ejemplo: La instrucción siguiente desplaza el gráfico a la derecha por un minuto.
.Pen1-8 Dotfields
Los campos de punto .Pen1-8 asignan una etiqueta registrada a un lápiz de tendencia histórica.
Categoría: Histórico
Uso: HistTrendTag {.Pen1 | .Pen2 | .Pen3 | .Pen4 | .Pen5 | .Pen6 | .Pen7 | .Pen8};
Parámetro: HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: Asigna etiquetas a las plumas de tendencia utilizando los campos de punto .Pen1-8
Con el siguiente formato: HistTrend.PenX = Tag_Name.TagID
Donde X es un número entero de 1 a 8.
Se recomienda que utilice las funciones HTSetPenName () y HTGetPenName () si es posible.
Nota: Sólo se pueden asignar etiquetas locales a un campo de puntos .PenX. No se puede usar la notación
provider.tag. El proveedor.tag se puede utilizar sólo con la función HTSetPenName ().
Una buena referencia a utilizar al aprender cómo funcionan estos dotfields es un mago de la tendencia histórica
colocado en la pantalla y quebrado aparte.
58
Tipo de datos: TagID (lectura / escritura).
Valores válidos: este tipo de datos dotfield es tipo TagID. Esto significa que sólo se puede asignar el
identificador de una etiqueta a los campos de punto .Pen1-8. No puede asignar directamente el nombre de una
etiqueta a los campos de punto .Pen1-8. Debe asociar el tag .tagID asociado de una etiqueta a un campo de
puntos .Pen1-8 utilizando la siguiente sintaxis:
HistTrendTag.Pen1 = LoggedTag.TagID;
En general, una etiqueta de tipo TagID sólo se puede equiparar a otra etiqueta TagID. No se puede utilizar con
ningún otro tipo de etiqueta a menos que la extensión de campo de punto .TagID se agregue a la otra etiqueta.
Aunque los campos de punto .Pen1-8 se consideran de lectura / escritura, sus valores no se pueden mostrar
directamente en la pantalla.
Ejemplos:
El siguiente ejemplo asigna una nueva etiqueta al campo de puntos .Pen5 de la tendencia histórica asociada
con la etiqueta Hist Trend. Debe agregar el campo de punto .TagID al nombre de la etiqueta registrada para
asignarla a .Pen5 dotfield.
HistTrendTag.Pen5 = PumpPress.TagID;
Trabajando desde el ejemplo anterior, puede mostrar el nombre de la etiqueta asignada a HistTrendTag.Pen5.
La creación de una leyenda que muestre la etiqueta asignada a cada pluma de tendencia es información útil
para un operador. No puede mostrar la etiqueta asignada a HistTrendTag.Pen5 en un enlace de visualización de
mensajes. El valor real del campo de puntos .Pen5 es un entero que representa una ubicación de memoria
dentro de WindowViewer, que no es útil para fines de visualización. Necesita crear una nueva etiqueta de tipo
TagID llamada Pen05. Coloque la siguiente declaración debajo de la declaración del ejemplo anterior:
Pen05 = HistTrendTag.Pen5;
En el primer ejemplo, la etiqueta PumpPress se asigna a la pluma 5 de HistTrendTag. En este ejemplo, a Pen05
se le asigna el valor de Pen5 del HistTrendTag, que es el TagID de la etiqueta de PumpPress. Los campos de
punto .Pen1-8 son punteros a las etiquetas asociadas con las plumas seleccionadas para aparecer en una
tendencia. Los campos de punto .Pen1-8 son de un tipo de datos especial, a saber, .TagID. Después de realizar
la asignación, puede utilizar el campo de punto .Name de la etiqueta TagID para mostrar el nombre de la
etiqueta.
.TagID Dotfield
El campo de puntos .TagID se puede utilizar junto con los campos de punto .Pen1 - .Pen8 para asignar una
etiqueta a un lápiz de tendencia histórica.
Categoría: Etiqueta histórica.
Uso: tag_name.TagID
Parámetro: tag_name: Cualquier marca analógica discreta, entera, real, indirecta discreta o indirecta.
Observaciones: El campo de puntos .TagID proporciona el identificador de una etiqueta y se utiliza
principalmente para asignar etiquetas a plumas en una tendencia histórica.
Tipo de datos: TagID (sólo lectura).
Ejemplo: En este ejemplo se utiliza el dotfield .TagID para asignar la etiqueta de la pluma PumpRPM 6 de la
tendencia histórica.
HistTrendTag.Pen6 = PumpRPM.TagID;
Vea también: .Pen1-.Pen8
58
.ScooterLockLeft Dotfield
El campo de puntos .ScooterLockLeft especifica si un operador puede mover el scooter derecho más a la
izquierda que la posición actual del scooter izquierdo en la tendencia histórica.
Categoría: Histórico.
Uso: HistTrendTag.ScooterLockLeft
Parámetro:
HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: En general, debe evitar que un operador mueva el scooter derecho más a la izquierda que la
posición actual del scooter izquierdo. Cuando el scooter izquierdo está bloqueado, obliga a la posición del
scooter derecho a ser igual a la posición del scooter izquierdo cada vez que el scooter derecho se adelanta al
scooter izquierdo.
Tipo de datos: Discreto (lectura / escritura).
Valores válidos:
0 = Falso. Scooter derecho puede moverse más a la izquierda que la posición actual de la scooter izquierda en
la tendencia histórica
1 = Verdadero. El scooter derecho no puede moverse más a la izquierda que la posición actual del scooter
izquierdo en la tendencia histórica.
Ejemplo: El ejemplo siguiente evita que el scooter derecho se mueva más a la izquierda que la posición actual
del scooter izquierdo en la tendencia histórica.
HistTrendTag.ScooterLockLeft = 1;
Vea también: .ScooterPosRight, .ScooterPosLeft, .ScooterLockRight
.ScooterLockRight Dotfield
El campo de puntos .ScooterLockRight especifica si un operador puede mover el scooter izquierdo más a la
derecha que la posición actual del scooter derecho en la tendencia histórica.
Categoría: Histórico.
Uso: HistTrendTag.ScooterLockRight
Parámetro:
HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: En general, debe evitar que el operador mueva el scooter izquierdo más a la derecha que la
posición actual del scooter derecho. Cuando el scooter derecho está bloqueado, si obliga a la posición del
scooter izquierdo a ser igual a la posición del scooter derecho cada vez que el scooter izquierdo se adelanta al
scooter derecho.
Tipo de datos: Discreto (lectura / escritura).
Valores válidos:
0 = Falso. El scooter izquierdo puede moverse más a la derecha que la posición actual del scooter derecho en
la tendencia histórica.
1 = Verdadero. El scooter izquierdo no puede moverse más a la derecha que la posición actual del scooter
derecho en la tendencia histórica.
Ejemplo: El ejemplo siguiente evita que el scooter izquierdo se mueva más a la derecha que la posición actual
del scooter derecho en la tendencia histórica.
HistTrendTag.ScooterLockRight = 1;
Vea también: .ScooterPosRight, .ScooterPosLeft, .ScooterLockLeft
.ScooterPosLeft Dotfield
El campo de punto .ScooterPosLeft controla dinámicamente la posición del scooter izquierdo en una tendencia
histórica.
Categoría: Histórico
Uso: HistTrendTag.ScooterPosLeft
Parámetro:
58
HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: Este campo dinámico de lectura / escritura controla dinámicamente la posición del scooter
izquierdo. Puede utilizar este campo de puntos en una función QuickScript para recuperar la posición actual del
scooter izquierdo o puede asignar un valor a este campo de puntos para ajustar la posición del scooter
izquierdo a otra ubicación en la tendencia. Este dotfield se utiliza con mayor frecuencia en conjunto con el
conjunto de funciones HTGetValue (). Estas funciones deben especificar qué tendencia histórica se está
consultando, así como la posición actual de los scooters de la tendencia.
Tipo de datos: Real (lectura / escritura).
Valores válidos: 0.0 a 1.0; Donde 0,0 es la extrema izquierda del gráfico de tendencias históricas, y 1,0 es la
extrema derecha del gráfico de tendencias históricas.
Ejemplos: El ejemplo siguiente reposiciona el scooter izquierdo. El scooter izquierdo se mueve a una ubicación
del 34 por ciento de la longitud total del gráfico desde el lado izquierdo del gráfico de tendencia histórico
asociado actualmente con la etiqueta MyHistTrendTag.
MyHistTrendTag.ScooterPosLeft = .34;
En la instrucción siguiente, la función QuickGuardValueAtScooter () recupera el valor de la pluma 1 en la
posición actual del scooter izquierdo. Un cambio a cualquier valor dentro de la lista de argumentos de una
función hace que la función sea reevaluada. Cada vez que la posición del scooter izquierdo cambia, esta
declaración es reevaluada.
MyRealTag = HTGetValueAtScooter
(MyHistTrendTag, MyHistTrendTag.UpdateCount, 1,
MyHistTrendTag.ScooterPosLeft, 1, "PenValue");
.ScooterPosRight Dotfield
El campo de punto de lectura / escritura .ScooterPosRight controla dinámicamente la posición del scooter
derecho.
Categoría: Histórico.
Uso: HistTrendTag.ScooterPosRight
Parámetro:
HistTrendTag: La etiqueta HistTrend asignó el nombre de la tendencia.
Observaciones: Este campo dinámico de lectura / escritura controla dinámicamente la posición del scooter
derecho. Puede utilizar este campo de puntos en una función QuickScript para recuperar la posición actual del
scooter derecho. También puede asignar un valor a este campo de puntos para mover el scooter derecho a otra
ubicación en la tendencia. Este dotfield se utiliza con mayor frecuencia en conjunción con las funciones
HTGetValue (). Estas funciones deben especificar qué tendencia histórica se está consultando, así como la
posición actual de los scooters de la tendencia.
Tipo de datos: Real (lectura / escritura)
Valores válidos: 0.0 a 1.0; Donde 0,0 es la extrema izquierda de la tendencia histórica
Gráfico, y 1,0 está en la extrema derecha de la gráfica de tendencia histórica.
Ejemplos: La siguiente sentencia especifica una nueva ubicación para el scooter derecho. El scooter derecho
se mueve a una ubicación del 34 por ciento de la longitud total del gráfico desde el lado izquierdo del gráfico de
tendencia histórica asociado con la etiqueta MyHistTrendTag.
MyHistTrendTag.ScooterPosRight = .34;
La siguiente sentencia utiliza la función QuickGuard de HTGetValueAtScooter () para recuperar el valor de la
pluma 1 en la nueva posición del scooter derecho. Un cambio en cualquier variable dentro de la lista de
58
parámetros de una función hace que la función sea reevaluada. Cada vez que la posición del scooter derecho
cambia, esta declaración es reevaluada.
Para agregar funciones de zoom y movimiento o controles de bolígrafo a una tendencia histórica, utilice los
paneles Tendencia / Paneo de tendencia y Leyenda de plumas de tendencia.
Puede crear y configurar una tendencia histórica. Usted puede:
• Crear una tendencia histórica con asistentes
• Seleccione las etiquetas de una tendencia
• Configurar el intervalo de tiempo de tendencia histórica
• Control de una tendencia con QuickScripts
58
Haga doble clic en la tendencia. Aparecerá el cuadro de diálogo Asistente para gráficos de tendencias
históricas.
Haga clic en Sugerir. El Asistente de gráfico de tendencia histórico asigna automáticamente valores de
configuración predeterminados a la tendencia. La única tarea de configuración restante es asignar
etiquetas a las plumas de tendencia.
Si hace doble clic en el cuadro Pen, aparece el cuadro de diálogo Select Tag con una lista de etiquetas
asignadas a la opción Log Data para la aplicación. Puede asignar una etiqueta al lápiz seleccionándola en el
cuadro de diálogo Seleccionar etiqueta.
Haga clic en el cuadro de color situado junto a cada lápiz y seleccione otro color si desea cambiar el
color del lápiz predeterminado. De lo contrario, omita este paso y acepte el color predeterminado.
Haga clic en Aceptar para cerrar el cuadro de diálogo Plumas de tendencia.
Haga clic en Aceptar para cerrar el cuadro de diálogo Asistente para la gráfica de tendencia histórica.
58
Configuración de la tendencia histórica.
El cuadro de diálogo Asistente para gráficos de tendencias históricas incluye una opción para configurar
manualmente el intervalo de tiempo que se muestra a partir de una tendencia creada con el Asistente para
tendencias históricas. Puede configurar manualmente la hora de una tendencia en lugar de aceptar la
configuración predeterminada del Asistente de tendencia histórica.
58
paleta de colores y, a continuación, haga clic en el color que asigna a las líneas de división del
eje de valor principal.
En el cuadro Menor Div / Mayor, escriba el número de divisiones menores que desea que sean
visibles dentro de cada división del eje de valor principal. Haga clic en el cuadro de color para
acceder a la paleta de colores y, a continuación, haga clic en el color que asigna a las líneas de
división del eje de valor menor.
En el cuadro Formato de valor, escriba el formato de los números que aparecen en el eje de
valores verticales de la tendencia. El formato de número predeterminado es #, ###.
En los cuadros Rango de tendencia, escriba los límites de porcentaje inferior e superior de las
unidades de ingeniería de una etiqueta que aparecen en la tendencia.
Haga clic en Aceptar para cerrar el cuadro de diálogo Formato de valor.
Haga clic en Aceptar para cerrar el cuadro de diálogo Asistente para la gráfica de tendencia histórica.
Función HTUpdateToCurrentTime ()
La función HTUpdateToCurrentTime () recupera y muestra los datos con una hora de fin igual a la hora actual.
El tiempo de inicio es igual al tiempo de finalización menos el ancho del gráfico.
Categoría: Histórico
Sintaxis: HTUpdateToCurrentTime (Hist_Tag);
Argumento:
58
Hist_Tag: La etiqueta HistTrend asignó el nombre de la tendencia histórica.
Ejemplo: La siguiente instrucción recupera y muestra los datos de la etiqueta histórica Trend1 en la hora actual:
HTUpdateToCurrentTime ("Trend1");
Si la hora actual es 3:04 PM y el ancho de la tendencia es de 60 segundos, la nueva hora de finalización es
3:04 PM. La nueva hora de inicio de la tendencia es 3:03 PM.
Función HTSelectTag()
La función HTSelectTag () abre el cuadro de diálogo Seleccionar etiqueta para que el operador asigne una
etiqueta diferente a un lápiz de tendencia.
Nota: El cuadro de diálogo Seleccionar etiqueta sólo enumera las etiquetas que se definen para el registro
histórico con la opción de datos de registro seleccionada en el TagnameDictionary.
Categoría: Histórico
Sintaxis: HTSelectTag ();
Observaciones: La función HTSelectTag () sólo muestra las etiquetas en las que se ha seleccionado la opción
Datos de registro del Diccionario de variables. Sin embargo, es posible utilizar el filtro del navegador de
etiquetas para mostrar un conjunto de etiquetas más pequeño. Por ejemplo, todas las etiquetas que comienzan
con "A" La función devuelve la etiqueta seleccionada y se puede utilizar como parámetro de función para
asignar una etiqueta a un bolígrafo.
Ejemplo: El siguiente QuickScript hace que el cuadro de diálogo Seleccionar etiqueta aparezca en
WindowViewer. El usuario puede seleccionar una etiqueta de la lista. Esta etiqueta está asignada a la pluma 1
por el objeto histórico denominado HistTrend.
HTSetPenName("HistTrend", 1, HTSelectTag());
Véase también: HTSetPenName()
Función HTSetPenName()
La función HTSetPenName () asigna una etiqueta diferente al lápiz de una tendencia.
Categoría: Histórico
Sintaxis: HTSetPenName (Hist_Tag, PenNum, Tagname);
Argumentos:
Hist_Tag: La etiqueta HistTrend asignó el nombre de la tendencia.
PenNum: Etiqueta entera o valor que representa el número de pluma (1-8) de la tendencia.
Tagname: Nombre de la nueva etiqueta que se va a asignar a la pluma.
Observaciones: Esta función QuickScript es el único método para agregar etiquetas de un proveedor de
historial distribuido durante el tiempo de ejecución.
Puede ver el mensaje de error siguiente cuando intenta anular la asignación de un lápiz de tendencia:
VIEW /UpdateData: Invalid DBS.TAGNAME handle – 0
Este error se produce si está intentando anular la asignación de un bolígrafo asignado previamente a una
etiqueta remota en el formato histprovider.tag_name. Para resolver este error, cree una etiqueta local con la
opción de datos de registro seleccionada. A continuación, utilice el siguiente script para anular la asignación del
lápiz:
58
{assigns the pen to a locally logged tag---localtag}
HistTrend.Pen1=None;
{unassigns the pen}
Función HTGetPenName()
Función HTGetTimeAtScooter()
Función HTGetTimeStringAtScooter()
Función HTGetValue()
Función HTGetValueAtScooter()
Función HTGetValueAtZone()
Función HTScrollLeft()
Función HTScrollRight()
Función HTZoomIn()
Función HTZoomOut()
Función HTGetPenName()
UpdateCount: Integer que representa el campo de punto .UpdateCount de la tendencia. El valor del argumento
actúa como un activador de cambio de datos para reevaluar la función.
PenNum: Etiqueta entera o valor que representa el número de pluma (1-8) de la tendencia.
TrendPen = HTGetPenName("Trend1",
Trend1.UpdateCount, 2);
Función HTGetTimeAtScooter()
El HTGetTimeAtScooter () devuelve el tiempo en segundos después de 00:00:00 horas GMT, 1 de enero de
1970 para la muestra en la ubicación del scooter especificada por los argumentos ScootNum y ScootLoc.
Categoría: Histórico
58
Sintaxis:
IntegerResult=HTGetTimeAtScooter(Hist_Tag,
UpdateCount,ScootNum,ScootLoc);
Argumentos:
Hist_Tag: La etiqueta HistTrend asignó el nombre de la tendencia.
UpdateCount: Integer que representa el campo de punto .UpdateCount de la tendencia.
ScootNum
Número entero que representa el scooter izquierdo o derecho:
1 = Scooter Izquierda
2 = Scooter derecho
ScootLoc
Número real que representa el valor en las posiciones .ScooterPosRight o .ScooterPosLeft en la tendencia.
Observaciones: Cualquier cambio en los valores asignados a los argumentos UpdateCount, ScootNum y
ScootLoc hace que la expresión se evalúe. Esto asegura que la expresión se evalúa después de que se
recuperen nuevos datos o después de que se mueve un scooter.
Ejemplo: La sentencia siguiente recupera el tiempo en segundos para el valor en la ubicación actual del scooter
izquierdo de la tendencia Trend1:
Observaciones: Cualquier cambio en los valores asignados a los argumentos UpdateCount, ScootNum y
ScootLoc hace que la expresión se evalúe. Esto asegura que la expresión se evalúa después de que se
recuperen nuevos datos o después de que se mueve un scooter. El formato de la cadena determina el
contenido del valor devuelto.
Ejemplo: La sentencia siguiente recupera la fecha y la hora del valor en la posición actual del scooter para el
scooter derecho de la tendencia Trend1. El valor se almacena en la etiqueta de mensaje NewRightTimeString y
se encuentra en formato "Hora":
58
NuevoRightTimeString = HTGetTimeStringAtScooter
("Trend1", Trend1.UpdateCount, 2,
Trend1.ScooterPosRight, "Tiempo");
Función HTGetValue ()
La función HTGetValue () devuelve un valor del tipo solicitado para el lápiz especificado de la tendencia.
Categoría: Histórico
Sintaxis: RealResult = HTGetValue (Hist_Tag, UpdateCount,
PenNum, ValType_Text);
Argumentos:
Hist_Tag: La etiqueta HistTrend asignó el nombre de la tendencia.
UpdateCount: Entero que representa el campo de puntos .UpdateCount de la tendencia.
PenNum: Etiqueta entera o valor que representa el número de pluma (1-8) de la tendencia.
Ejemplo: La instrucción siguiente obtiene la desviación estándar para los datos de la pluma 2 recuperados de la
tendencia de PumpPress. El valor se almacena en la etiqueta real de la memoria LeftHemisphereSD:
58
Cuando se utiliza el argumento ValType_Text con la función HTGetValueAtScooter (), utilice uno de los tipos
válidos enumerados.
Ejemplo: La función siguiente devuelve un 1 si el valor es una muestra real o un 0 si el valor no es válido para
la pluma 3 de la tendencia Tendencia1 para la posición actual del scooter derecho:
Función HTScrollLeft ()
58
La función HTScrollLeft () establece la hora de inicio de la tendencia a una hora anterior a la hora de inicio
actual por un porcentaje del tiempo total de la tendencia. El efecto es desplazar el gráfico a la izquierda a un
tiempo anterior por un porcentaje especificado del tiempo total de la tendencia.
Categoría: Histórico
Sintaxis: HTScrollLeft (Hist_Tag, Percent);
Argumentos:
Hist_Tag: etiqueta HistTrend asigna el nombre de la tendencia.
Percent: Número real que representa el porcentaje del intervalo de tiempo del gráfico para desplazarse (0.0 a
100.0) a la izquierda.
Ejemplo: La instrucción siguiente desplaza la hora / fecha que queda por el 10 por ciento del ancho total de la
tendencia de PumpPress:
Función HTScrollRight ()
La función HTScrollRight () establece la hora de inicio de la tendencia a un tiempo posterior a la hora de inicio
actual por un porcentaje del ancho de la tendencia. El efecto es desplazar la fecha / hora del gráfico a la
derecha por un porcentaje especificado del ancho de la tendencia.
Categoría: Histórico
Sintaxis: HTScrollRight (Hist_Tag, Percent);
Argumentos:
Hist_Tag: etiqueta HistTrend asigna el nombre de la tendencia.
Percent: Número real que representa el porcentaje del gráfico para desplazarse (0.0 a 100.0) a la derecha.
Ejemplo: La siguiente afirmación desplaza la tendencia PumpPress a la derecha en un 20 por ciento.
Función HTZoomIn ()
La función HTZoomIn () calcula un nuevo ancho de gráfico y hora de inicio. Si los scooters de la tendencia se
encuentran en el lado izquierdo y derecho de la tendencia, entonces el ancho del gráfico nuevo es igual al
ancho del gráfico antiguo dividido por dos. La nueva hora de inicio se calcula en función del valor del argumento
LockString. Si los scooters no están a la izquierda y derecha de la tendencia, la función HTZoomIn () amplía la
tendencia a la zona definida por los scooters e ignora el argumento LockString.
Categoría: Histórico
Sintaxis: HTZoomIn (Hist_Tag, LockString);
Argumentos:
Hist_Tag: etiqueta HistTrend asigna el nombre de la tendencia.
LockString: String que representa el tipo de zoom:
StartTime: Mantenga la hora de inicio igual a antes del zoom
Center: Mantenga el tiempo del centro igual a antes del zoom
EndTime: Mantiene el tiempo final igual al antes del zoom
Observaciones: Si las posiciones del scooter no están en el lado izquierdo y derecho de la tendencia, el nuevo
ancho del gráfico es el tiempo entre las posiciones .ScooterPosLeft y .ScooterPosRight. En este caso, no se
58
utiliza el valor de LockString. El ancho mínimo de la carta es de un segundo. Las posiciones del scooter se
ajustan a .ScooterPosLeft = 0.0 y .ScooterPosRight = 1.0 después del zoom.
Ejemplo: La siguiente declaración amplía la visualización por un factor de dos y mantiene la misma hora de
inicio para la tendencia Trend1. Trend1.ScooterPosRight es igual a 1.0 y Trend1.ScooterPosLeft es igual a 0.0.
Si la hora de inicio antes del zoom era 1:25:00 PM y el ancho del gráfico era de 30 segundos, la nueva hora de
inicio permanece en 1:25:00. El nuevo ancho del gráfico es de 15 segundos.
Observaciones: Las posiciones actuales del scooter no tienen ningún efecto en HTZoomOut ().
Una vez finalizado el zoom de función, las nuevas posiciones del scooter se ajustan a .ScooterPosLeft = 0.0
y .ScooterPosRight = 1.0.
Ejemplo: La siguiente declaración amplía el tiempo de tendencia por un factor de dos y mantiene el mismo
tiempo de centro para la tendencia de volumen. Si la hora de inicio antes del zoom era 2:15:00 PM y el ancho
del gráfico era de 30 segundos, la hora de inicio después del zoom es ahora 2:14:45. El ancho de la carta es de
60 segundos y el centro de la tendencia permanece a las 2:15:15.
Función PrintHT()
La función PrintHT() imprime la tendencia histórica actualmente visible en la pantalla. Normalmente, la función
PrintHT() está asociada con un botón de pantalla incluido en la ventana de tendencia histórica. Los operadores
hacen clic en el botón para imprimir la tendencia histórica visible con sus valores actuales.
Categoría: Histórico
Sintaxis: PrintHT(Trend_Tag);
Argumento: Trend_Tag: etiqueta HistTrend.
Ejemplo: Este ejemplo muestra la tendencia histórica de PumpPress visible en la pantalla.
PrintHT (PumpPress);
58
Solución de problemas de la tendencia.
Puede crear QuickScripts para verificar si los datos se recuperaron correctamente y aparecen en una tendencia
histórica. Utilice la función HTGetLastError () para solucionar la tendencia.
Función HTGetLastError ()
La función HTGetLastError () se puede utilizar en una secuencia de comandos para determinar si se produjo un
error durante la última recuperación de datos para un lápiz de tendencia histórica especificado.
Categoría: Histórico
Sintaxis: [Result=]HTGetLastError(Hist_Tag,UpdateCount,PenNum);
Argumentos:
Hist_Tag: etiqueta HistTrend asigna el nombre de la tendencia.
UpdateCount: Integer que representa el campo de punto .UpdateCount de la tendencia.
PenNum: Etiqueta entera o valor que representa el número de pluma (1-8) de la tendencia.
Result: Número entero asignado a una etiqueta que representa el estado de la última llamada de función de
secuencia de comandos para el lápiz especificado.
0 = Sin error
1 = Error general del servidor
2 = Solicitud anterior
3 = Error de archivo
4 = El servidor no está cargado
5 = No existe la función Trend / Pen passed in
6 = La etiqueta de tendencia no existe en la base de datos
7 = El número de pluma pasado a la función es inválido (no en el rango de 1 a 8).
8 = Ninguna etiqueta o etiqueta no registrada asignada al número de la pluma.
Ejemplos: La sentencia siguiente recupera el estado de la última recuperación de datos para la pluma 3 de la
tendencia Trend1 y asigna el resultado a la etiqueta de número entero ResultCode.
58
Después de configurar una tendencia en tiempo real, WindowMaker utiliza los últimos valores de configuración
como la configuración inicial de cualquier objeto de tendencia en tiempo real nuevo.
Puede dibujar el gráfico de tendencias de cualquier tamaño dentro de los bordes de la ventana.
Para establecer un intervalo de tiempo de tendencia en tiempo real y una tasa de actualización:
Si es necesario, haga doble clic en el objeto de tendencia. Aparecerá el cuadro de diálogo Real Time
Trend Configuration.
58
En el área Hora, escriba la longitud de tiempo en el cuadro Intervalo de tiempo que desea que aparezca
en el eje x horizontal de la tendencia.
Seleccione la unidad de medida para el tiempo de tendencia.
Segundos (Sec)
Minutos (Min)
Horas (Hr)
Por ejemplo: Si introduce 30 en el cuadro Intervalo de tiempo y luego selecciona Min, el intervalo de tiempo
que se muestra en el gráfico es de 30 minutos.
Por ejemplo: Si introduce 10 en Intervalo y luego selecciona Sec, la tendencia en tiempo real se actualiza
cada 10 segundos.
Mantenga abierto el cuadro de diálogo Configuración de tendencia en tiempo real y vaya al siguiente
procedimiento descrito en Configuración de opciones de visualización de tendencias en tiempo real.
58
igualmente divisible dentro del período de división mayor. Por ejemplo, si el período de división
principal se establece en 60 segundos, introducir un valor de 2 en Div Menor/Div Mayor crea dos
períodos menores de división de tiempo de 30 segundos.
Seleccione el color de las líneas de división menores.
Seleccione la casilla de verificación Etiquetas superiores o Etiquetas inferiores para especificar la
ubicación de las etiquetas de tiempo en la tendencia. Puede seleccionar ambas opciones para
colocar etiquetas de tiempo en la parte superior e inferior de la tendencia. Dejar ambas opciones en
blanco elimina las etiquetas de tiempo del eje horizontal de la tendencia.
Si está utilizando etiquetas de tiempo, escriba el número de líneas de división de tiempo principales
por etiqueta de tiempo en Etiqueta de div / hora principal. El número de divisiones principales debe
ser un múltiplo par del valor Div / Etiqueta de tiempo mayor. Seleccione el color de las etiquetas de
división de tiempo.
Seleccione las unidades de tiempo mostradas como parte de la etiqueta principal de división de
tiempo.
Horas (HH)
Minutos (MM)
Segundos (SS)
58
En el área Control de impresión, especifique el
porcentaje de la página para imprimir la
tendencia en la casilla Default% of page to print
on. Si introduce 50, la tendencia se imprimirá en
la mitad de la página vertical y horizontalmente.
Una tendencia impresa al 50 por ciento toma
mucho menos tiempo para imprimir que una
tendencia de página completa. Como
alternativa de impresión, puede utilizar la
función QuickScript de PrintWindow ().
En el cuadro de impresión Tiempo máximo de
tiempo consecutivo, escriba la franja de tiempo
de proceso en milisegundos. Un segmento de tiempo representa el período asignado al procesador del
equipo para ejecutar el proceso del módulo de impresión en primer plano e imprimir la tendencia. Un
segmento de tiempo más largo permite que la tendencia se imprima más rápidamente a costa de otros
procesos que se ejecutan en el equipo.
En el cuadro Tiempo de espera entre impresiones, escriba el tiempo en milisegundos que el módulo de
impresión espera entre intervalos de tiempo del procesador. Un período de espera más corto entre los
intervalos de tiempo del procesador permite que la tendencia se imprima más rápidamente.
Haga clic en Seleccionar fuente de impresora. Aparecerá el cuadro de diálogo Fuente. Seleccione las
características del texto que aparece en una tendencia.
Haga clic en Aceptar para guardar la configuración de impresión y cerrar el cuadro de diálogo
Propiedades del registro histórico. Visualización de valores de marcas históricas de otros nodos InTouch
o Historiador de Wonderware Si desea utilizar datos almacenados de forma remota para crear
tendencias históricas, el proveedor remoto debe estar registrado en la lista de proveedores de historial
de InTouch. Esta lista especifica el nombre y la ubicación de red de cada proveedor de historial. Se
hace referencia a estos nombres siempre que los lápices de tendencia histórica señalan etiquetas en el
proveedor de historial remoto. Puede definir un proveedor de historial remoto y asignar marcadores de
tendencia históricos para etiquetar los datos almacenados en la ubicación remota. Usted puede:
Configurar proveedores de historial remotos.
Configurar las plumas para mostrar datos de un proveedor de historial remoto.
Asigne bolígrafos para etiquetar los datos almacenados en un proveedor de historial remoto
mediante el Explorador de etiquetas.
Asigne un lápiz a una etiqueta remota usando un QuickScript.
58
Haga clic en Configurar proveedor InSQL. Aparece el cuadro de diálogo Propiedades del proveedor de
historial de InSQL.
En el cuadro Origen de datos, escriba el
nombre de nodo del servidor donde está
instalado el Historian de Wonderware.
Introduzca un nombre para una cuenta de
usuario de la base de datos de Wonderware
Historian.
Introduzca la contraseña de la cuenta de usuario en los cuadros Contraseña y Reinsertar
contraseña.
Haga clic en Test para verificar la conexión a la
base de datos de Wonderware Historian.
Aparecerá un mensaje indicando si la conexión a la
base de datos es correcta o no.
Haga clic en Aceptar para cerrar el cuadro de diálogo.
Haga clic en Aceptar para cerrar el cuadro de diálogo
Proveedores de historial de InSQL. El nodo Wonderware
Historian aparece en la lista Proveedores de historial.
9 Haga clic en Aceptar para cerrar el cuadro de diálogo
Administrador de nombres distribuidos.
Nota: El campo de puntos .TagID no se puede utilizar en las referencias de etiquetas del proveedor de historial
remoto.
58
Haga doble clic en la tendencia histórica para abrir el cuadro de diálogo Configuración de tendencia
histórica.
Haga doble clic en el cuadro de entrada Tagname de una pluma para mostrar el cuadro de diálogo
Select Tag.
Haga clic en Definir fuentes de etiquetas para definir el proveedor de historial remoto como fuente de
etiquetas.
Haga clic en la flecha Fuente de etiqueta y seleccione el nuevo origen de etiqueta del proveedor de
historial remoto en la lista o haga clic en el botón Vista de árbol y seleccione el origen de etiqueta en el
panel de vista de árbol. El cuadro de diálogo Seleccionar etiqueta se actualiza y muestra las etiquetas
del proveedor de historial remoto seleccionado.
Seleccione la etiqueta que desea asignar al lápiz histórico y haga clic en Aceptar. El cuadro de diálogo
Configuración de tendencia histórica vuelve a aparecer con la etiqueta seleccionada que aparece en el
cuadro Tagname de la pluma como: AccessName: Item.
Vuelva a colocar la parte AccessName: con el nombre del proveedor de historiales que definió en el
Administrador de nombres distribuidos. Por ejemplo, HistPrv1.tag_name. Este proceso puede parecer
engorroso, pero después de haber definido el proveedor de historiales como una fuente de etiquetas en
el Navegador de etiquetas, cada vez que haga doble clic en otro cuadro de entrada de etiquetas,
simplemente haga doble clic en el nombre de etiqueta en el Navegador de etiquetas y, a continuación,
La parte AccessName: con el nombre del proveedor de historial.
Nota: En WindowViewer, si se permiten cambios en tiempo de ejecución para la tendencia histórica, cuando el
usuario hace clic en un botón de pluma para cambiar la variable, aparece el Navegador de etiquetas, pero sólo
las etiquetas de la aplicación local son accesibles.
Nota: El cuadro de diálogo Configuración de tendencias históricas de ejecución y los campos de puntos Pen no
es compatible con los proveedores remotos de historial.
Los asistentes son objetos pre-diseñados, preconstruidos y preprogramados, solo es necesario seleccionar,
colocar y configurar para su aplicación.
58
Trabajar con asistentes.
Con los asistentes, no pasa tiempo dibujando los
componentes individuales del objeto, o introduciendo los
rangos de valores para el objeto, o animando el objeto:
• Seleccione asistentes de la barra de herramientas
Asistentes / ActiveX.
• Configure asistentes escribiendo etiquetas y QuickScripts
en cuadros de diálogo de configuración.
• Cuando pegue un asistente seleccionado en una ventana
y luego haga doble clic en él, aparecerá el cuadro de
diálogo Configuración.
Por ejemplo, en el caso de un asistente de control
deslizante, la configuración incluye elementos como la variable a realizar, las etiquetas de rango mínimo y
máximo para el control deslizante, el color de relleno y así sucesivamente. Después de proporcionar la
información de configuración requerida, el asistente está listo para usar.
También puede desarrollar sus propios magos complejos para proporcionar detrás de escenas tipos de
operaciones. Estas operaciones pueden incluir crear ventanas de visualización completas, crear o convertir una
base de datos, importar un dibujo de AutoCAD y configurar otras aplicaciones.
Antes de crear sus propios asistentes, debe investigar los símbolos de ArchestrA, que ofrecen funcionalidad de
asistente, pero no requieren programación.
Tipos de asistentes.
Las categorías de asistentes se muestran en el cuadro de diálogo Selección del asistente.
Objetos de tendencia y controles de Windows. Los asistentes son asistentes especiales con
parámetros únicos.
58
Haga clic en el botón Asistente en la barra de herramientas Asistentes / ActiveX. Aparecerá el cuadro de
diálogo Asistente de selección. En el panel izquierdo, seleccione una categoría de asistente.
En el panel derecho, seleccione un asistente.
Haga clic en Aceptar. El cuadro de diálogo se cierra y el cursor se convierte en un símbolo de esquina.
Haga clic en la ubicación para poner el asistente.
Configuración de asistentes.
Después de colocar un asistente en la aplicación, haga doble clic en él para configurar sus propiedades.
Aparece un cuadro de diálogo de propiedades personalizado para el asistente seleccionado.
Para obtener más información sobre cada tipo concreto de asistente, consulte la Ayuda del asistente, si está
disponible.
58
Haga clic en Buscar. Aparecerá el cuadro de diálogo Buscar carpetas.
Vaya al directorio que contiene los asistentes que desea instalar y haga clic en Aceptar. El cuadro de
diálogo Asistente de instalación vuelve a aparecer con los asistentes importados en la lista de
asistentes desinstalados.
Objetos de tendencias.
Los objetos de tendencia son asistentes que muestran los valores de las etiquetas a lo largo del tiempo.
Hay tres tipos principales de objetos de tendencia:
Las tendencias en tiempo real representan hasta cuatro etiquetas en tiempo real.
Las tendencias históricas muestran hasta ocho etiquetas en un período de tiempo anterior.
16 Tendencias de la pluma muestran los datos históricos y en tiempo real para hasta dieciséis etiquetas.
No hay límite para el número de objetos de tendencia, en tiempo real o histórico, que puede colocar en una
ventana.
Nota: Un conjunto más robusto y flexible de controles de Windows basados en .NET está disponible si utiliza
símbolos de ArchestrA.
58
Creación y configuración de controles de Windows.
Al crear y configurar asistentes de control de Windows, tenga en cuenta que:
Los Asistentes de control de Windows no pueden superponerse entre sí.
Cada Asistente para Control de Windows tiene un nombre de control único, que no agrega al recuento
de etiquetas.
El valor inicial de las etiquetas asignadas a un cuadro de lista o cuadro combinado no inicializa el valor
del cuadro de lista o cuadro combinado. Debe utilizar las funciones de QuickPro de SetPropertyX en
una secuencia de comandos para asignar valores iniciales que deben ser diferentes de los valores
predeterminados.
Sugerencia: Pega los Controles de Windows Asistentes en tus ventanas igual que otros asistentes. Para
lograr la mejor legibilidad, seleccione un fondo gris para los controles de Windows.
Si el color de fondo no puede ser gris, coloque un Asistente de panel gris detrás de los Asistentes de control de
Windows. Para cada Asistente para controles de Windows, debe especificar un nombre de control alfanumérico,
donde el primer carácter es una letra. Los subrayados son permitidos, pero otros caracteres especiales no lo
son. Por ejemplo, "Checkbox_1" está permitido, pero "Checkbox # 1" no lo es. Puede configurar asistentes de
control de Windows mediante InTouch QuickScripts.
58
Cree y coloque el control de cuadro de lista. Haz lo siguiente:
En el cuadro de diálogo Selección del asistente, seleccione Controles de
Windows.
Haga doble clic en el icono del cuadro de lista. La ventana de la
aplicación vuelve a aparecer y el cursor cambia a un símbolo de la
esquina izquierda.
Haga clic en una ubicación en la ventana de la aplicación para colocar el control. Aparecerá el
control del cuadro de lista.
Haga doble clic en el control. Aparece el cuadro de diálogo Control de
cuadro de lista.
Configure el control. Haz lo siguiente:
Escriba un nombre de control, como ListBox_1, en el cuadro
Nombre de control.
Escriba un nombre de etiqueta de mensaje de memoria,
como LB1_Value, en el cuadro Tagname.
En el área Propiedades, configure cómo el control aparece y funciona.
Haga clic en Aceptar.
58
Haga doble clic en el icono de la casilla de verificación. La ventana de su aplicación vuelve a
aparecer y el cursor cambia a un símbolo de esquina izquierda.
Haga clic en una ubicación en la ventana de la aplicación para
ubicar el asistente. Aparecerá el asistente de la casilla de
verificación.
Arrastre y redimensione el asistente.
Haga doble clic en el asistente. Aparece el cuadro de diálogo
Control de casilla de verificación.
Configure el asistente. Haz lo siguiente:
Escriba el nombre del control.
Escriba el nombre de la etiqueta discreta o haga doble
clic en la casilla vacía para mostrar el cuadro de diálogo
Seleccionar variable y seleccione una etiqueta.
Escriba el título para que aparezca en la cara del botón.
Haga clic en Aceptar.
58
Las propiedades de tiempo de ejecución pueden ser de lectura-escritura o de sólo lectura, dependiendo de la
propiedad.
Utilice las funciones GetPropertyX () y SetPropertyX () para controlar o recuperar estas propiedades.
.Value Dotfield
Propiedad predeterminada para todos los asistentes de control de Windows de InTouch.
Los cambios realizados en esta propiedad se sincronizan en la función InTouch y los asistentes de control de
Windows.
Categoría: control de ventanas.
Uso: Los M, I y D son para las versiones de memoria, entero y discreto de las funciones GetProperty y
SetProperty.
[ErrorNumber=]GetPropertyM("ControlName[.Value]",
Tagname);
[ErrorNumber=]SetPropertyM("ControlName[.Value]",
Value);
[ErrorNumber=]GetPropertyI("ControlName[.Value]",
Tagname);
[ErrorNumber=]SetPropertyI("ControlName[.Value]",
Value);
[ErrorNumber=]GetPropertyD("ControlName[.Value]",
Tagname);
[ErrorNumber=]SetPropertyD("ControlName[.Value]",
Value);
Parámetros:
ControlName: Nombre del control de Windows, por ejemplo, ChkBox_4.
Tagname: La variable a la que se escribe el valor de la propiedad.
[.Value]: Esta propiedad es opcional. Si no se especifica, la función siempre asume que se está utilizando la
propiedad .Value.
Value: El valor actual a escribir o una variable InTouch válida (del mismo tipo que la propiedad a ser escrita)
que contiene el valor de la propiedad que se escribirá cuando se procesa la función.
Comentarios: El valor inicial de variables asignadas a un cuadro de lista o cuadro combinado no se puede
utilizar para inicializar el valor del cuadro de lista o cuadro combinado. Este campo de puntos es de lectura /
escritura durante el desarrollo y el tiempo de ejecución. Si se accede al campo de puntos .Value asociando una
58
variable a un cuadro de lista o un cuadro combinado, es de sólo lectura. Si el campo de puntos .Value está
asignado a una casilla de verificación, un botón de opción o un cuadro de texto, es de lectura / escritura. El valor
que especifique en el desarrollo sirve como valor predeterminado para el tiempo de ejecución.
Tipo de datos: Mensaje (lectura / escritura) para cuadros de texto, cuadros de lista y cuadros combinados.
Integer (lectura / escritura) para los botones de radio.
Discrete (lectura / escritura) para las casillas de verificación.
Aplicable: Cuadros de texto, cuadros de lista, cuadros combinados, casillas de verificación y botones de
opción.
Ejemplo (s): La instrucción siguiente establece el campo de puntos .Value del objeto de botón de radio
"RadioButton_1" a un valor de 4:
SetPropertyI("RadioButton_1.Value", 4);
.Dotfield habilitado
Determina si el objeto de control puede responder a eventos generados por el usuario.
Categoría: control de ventanas
Uso:
[ErrorNumber =] GetPropertyD("ControlName.Enabled",
Tagname);
[ErrorNumber =] SetPropertyD("ControlName.Enabled",
Discreto);
Parámetros:
ControlName: Nombre del control de Windows. Por ejemplo, ChkBox_4.
Tagname: Una variable discreta que contiene la propiedad solicitada.
Discreto: Un valor discreto o una variable discreta que contiene el valor a escribir cuando se procesa la función.
Para un valor discreto:
0 = El control está deshabilitado.
1 = El control está habilitado.
Ejemplo (s): La instrucción siguiente deshabilita el objeto de cuadro de lista denominado "ListBox_1".
SetPropertyD("ListBox_1.Enabled", 0).
58
Ocultar controles de Windows dinámicamente.
Utilice la propiedad .Visible para determinar si el control de Windows está visible en la ventana.
.Visible Dotfield
Determina si el control de Windows está visible en la ventana.
Categoría: control de ventanas
Uso:
Parámetros:
ControlName: Nombre del control de Windows. Por ejemplo, ListBox_1.
Tagname: Una variable (del mismo tipo que se devuelve) que contiene el valor de la propiedad cuando se
procesa la función.
Number: Un valor discreto o una variable discreta que contiene el valor a escribir cuando se procesa la función.
Para un valor discreto:
0 = El control es invisible.
1 = El control es visible.
Observaciones: Esta propiedad es de lectura / escritura tanto en tiempo de desarrollo como en tiempo de
ejecución.
Tipo de datos: Discreto (lectura / escritura), Valores válidos.
Aplicable: Cuadros de texto, cuadros de lista, cuadros combinados, casillas de verificación y botones de
opción.
SetPropertyD("TextBox_1.Visible", 0);
58
wcClear() Elimina todos los elementos de la lista o del cuadro combinado.
Función WcAddItem()
Agrega un elemento al final de la lista de un cuadro de lista o cuadro combinado. Si la clasificación está
activada, la lista se ordenará después de que se agregue el elemento.
Categoría: control de ventanas
Sintaxis: [ErrorNumber =] wcAddItem("ControlName", "MessageTag");
Parámetros:
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
MessageTag: La cadena de mensajes que se mostrará. Cadena real o mensaje tagname.
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo (s): La instrucción siguiente agrega el contenido de la cadena de mensaje al cuadro de lista cuando se
abre la ventana (utilizando On Show Window QuickScript) que contiene el cuadro de lista:
WcAddItem("ListBox_1", "Chocolate");
WcAddItem("ListBox_1", "Vainilla");
WcAddItem("ListBox_1", "Fresa");
Ejemplo (s): La siguiente instrucción inserta un nuevo elemento llamado "Blueberry" en un cuadro de lista en la
cuarta posición desde la parte superior cuando se ejecuta una secuencia de comandos de acción.
WcInsertItem("ListBox_1", 4, "Blueberry");
Función wcDeleteItem()
Elimina el elemento en una posición especificada de la lista de un cuadro de lista o cuadro combinado.
Categoría: control de ventanas
Sintaxis: [ErrorNumber =] wcDeleteItem("ControlName", ItemPosition);
Parámetros:
58
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
ItemPosition: Número que corresponde a la posición del elemento. Cualquier número o número entero.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo (s): La siguiente instrucción elimina el tercer elemento de una lista cuando se ejecuta una secuencia
de comandos de acción:
WcDeleteItem("ListBox_1", 3);
Función wcDeleteSelection()
Elimina el elemento actualmente seleccionado de la lista.
Categoría: control de ventanas
Sintaxis: [ErrorNumber =] wcDeleteSelection ("ControlName");
Parámetro: ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o
mensaje tagname.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo (s): La instrucción siguiente elimina el elemento seleccionado actualmente en una lista de cuadro de
lista cuando se ejecuta una secuencia de comandos de acción:
WcDeleteSelection("ListBox_1");
Función wcClear()
Elimina todos los elementos del cuadro de lista o del cuadro combinado.
Categoría: control de ventanas
Sintaxis: [ErrorNumber =] wcClear ("ControlName");
Parámetros:
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo (s): La sentencia siguiente borra todos los elementos de un cuadro de lista cuando se ejecuta una
secuencia de comandos de acción:
WcClear ("ListBox_1");
58
Función wcLoadList()
Carga un cuadro de lista o un cuadro combinado con nuevos elementos de un archivo.
Categoría: control de ventanas
Sintaxis: [ErrorNumber=]wcLoadList("ControlName", "Filename");
Parámetros:
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
Filename: Contiene el nombre de un archivo. Si no proporciona un nombre de ruta completo como parte del
parámetro de mensaje, la función comprueba el directorio de la aplicación para el archivo de mensajes. Cadena
real o mensaje tagname.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Si utiliza archivos externos para rellenar la lista y los cuadros combinados, deben seguir un formato específico y
contener información específica. Formato:
ControlType, ListCount
ListItem, ItemIndex
ListItem, ItemIndex
..
..
..
ListItem, ItemIndex
COMBOBOX, 3
Chocolate, 0
Vainilla, 0
Fresa, 0
El COMBOBOX es el tipo de control. El recuento de listas es de 3 para Chocolate, Vainilla y Fresa. El chocolate
entonces se enumera como el primer artículo o posición 1. La vainilla como la posición 2, y la fresa como la
posición 3. Cada uno de estos artículos tiene un valor de los datos de 0.
Ejemplo (s): La siguiente instrucción carga una lista correctamente formateada (ubicada en c: \ wclist.txt.) En
un cuadro combinado:
Función wcSaveList()
Guarda los elementos de un cuadro de lista o cuadro combinado en un archivo.
Categoría: control de ventanas
Sintaxis: [ErrorNumber=]wcSaveList("ControlName","Filename");
Parámetros:
58
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
Filename: Contiene el nombre de un archivo. Si el archivo no existe, se crea. Cadena real o mensaje tagname.
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo (s): La siguiente sentencia guarda los elementos actuales en un cuadro de lista en un archivo (c: \
newlist.txt) cuando se ejecuta una secuencia de comandos de acción:
Función wcFindItem()
Determina la posición correspondiente del primer elemento en el cuadro de lista o cuadro combinado que
coincide con la cadena de mensaje suministrada.
Parámetros:
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
MessageTag: La cadena de mensajes a comparar. Cadena real o
Mensaje tagname.
CaseSens: Determina el tipo de comparación de cadenas. Puede ser un valor discreto o una variable. Los
siguientes valores son válidos:
0 = sin distinción entre mayúsculas y minúsculas.
1 = sensible a mayúsculas y minúsculas.
Tagname: Etiqueta de número entero en la que se devuelve la posición del elemento coincidente. Si no se
encuentra ningún elemento coincidente, se devuelve -1.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Se aplica a: Cuadros de lista, cuadros combinados
Ejemplo (s)
Suponiendo que ListBox_1 es un cuadro de lista que contiene "ItemA", "ItemB" y "ItemC", la función devuelve
los valores siguientes en Resultado:
58
Trabajar con índices de elementos en un cuadro combinado o lista.
Utilice los campos de puntos siguientes para trabajar con el índice de elementos de un cuadro de lista o cuadro
combinado.
Campo de puntos (Dot Field). Efecto.
.TopIndex El índice entero del elemento superior en el cuadro de lista.
El índice entero (tagname) del último elemento agregado al cuadro de
.NewIndex lista o cuadro combinado a través de las funciones wcAddItem () o
wcInsertItem ().
El índice (tagname o número) del elemento actualmente seleccionado
.ListIndex
en la lista.
.TopIndex Dotfield
Establece o lee el índice de número entero del elemento más superior en un cuadro de lista.
Categoría: Control de ventanas
Uso:
[ErrorNumber =] GetPropertyI("ControlName.TopIndex", Tagname);
[ErrorNumber =] SetPropertyI("NombreControl.TopIndex", Number);
Parámetros:
ControlName: Nombre del control de Windows. Por ejemplo, ListBox_1.
Tagname: Una variable Integer que contiene el valor de la propiedad cuando se procesa la función.
Number: el número de índice que define el elemento más superior en el cuadro de lista. Puede ser un valor
entero literal o una variable tagname o expresión que proporcione un valor entero.
Comentarios: Esta propiedad está disponible sólo en tiempo de ejecución.
Tipo de datos: Integer (lectura / escritura)
Se aplica a: Cuadros de lista.
Ejemplo (s): La instrucción siguiente establece el TopIndex del objeto de cuadro de lista "ListBox_1" a un valor
de 14:
SetPropertyI ("ListBox_1.TopIndex", 14);
.NowIndex Dotfield
Devuelve el índice entero (Tagname) del último elemento agregado al cuadro de lista o cuadro combinado a
través de wcAddItem () o wcInsertItem ().
Categoría: Control de ventanas
Uso: [ErrorNumber =] GetPropertyI("ControlName.NewIndex", Tagname);
Parámetros:
ControlName: Nombre del control de Windows. Por ejemplo, ListBox_4.
Tagname: Una variable que contiene el índice entero del último elemento agregado a la lista o al cuadro
combinado. Para las listas vacías, se devuelve un valor -1.
Comentarios: Esta propiedad sólo está disponible en tiempo de ejecución.
Tipo de datos: Integer (sólo lectura)
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo: La instrucción siguiente recupera el índice del elemento añadido más recientemente en el cuadro de
lista denominado "ListBox_1" y escribe ese valor en la variable de memoria entera NewItemIndex.
Vea también: GetPropertyI (), wcAddItem (), wcInsertItem (), .ListIndex, .TopIndex
58
.ListIndex Dotfield
Establece o lee el índice (Tagname o Number) del elemento actualmente seleccionado en la lista.
Cuando se utiliza un cuadro de lista, un índice de -1 indica que no hay ningún elemento seleccionado
actualmente.
Cuando se utiliza un cuadro combinado, un índice de -1 indica que el usuario ha escrito nuevo texto en el
campo de entrada de texto del control.
Sintaxis:
[ErrorNumber =] GetPropertyI ("ControlName.ListIndex", Tagname);
[ErrorNumber =] SetPropertyI ("NombreControl.ListIndex", Number);
Parámetros:
ControlName: Nombre del control de Windows. Por ejemplo, ListBox_4.
Tagname: La variable a la que se escribe el índice del elemento seleccionado actualmente.
Number: El número de índice que define un elemento específico en la lista.
Observaciones: El número de índice define un elemento específico en una lista. Utilice el campo de punto
.ListIndex para establecer o determinar el índice del elemento seleccionado actualmente en una lista o cuadro
combinado. Esta propiedad sólo está disponible en tiempo de ejecución.
Tipo de datos: Integer (lectura o escritura).
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo: Esta instrucción recupera el índice del elemento actualmente seleccionado en el cuadro de lista
denominado "ListBox_1" y escribe ese valor en la variable de memoria entera MyListBoxIndex.
.ListCount de Dotfield
Lee el número de elementos en el cuadro de lista o en el cuadro combinado.
Categoría: Control de Windows
Sintaxis: [ErrorNumber =] GetPropertyI("ControlName.ListCount", Tagname);
Parámetros:
ControlName: Nombre del control de Windows.
Tagname: Una variable válida que contiene el número entero de los elementos de la lista.
Observaciones: Esta propiedad sólo está disponible en tiempo de ejecución.
Tipo de datos: Integer (sólo lectura)
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo (s): La sentencia siguiente recupera el número de elementos en el cuadro de lista denominado
ListBox_1 y escribe ese valor en la etiqueta entera de memoria MyListBoxCount.
GetPropertyI("ListBox_1.ListCount", MyListBoxCount);
58
Utilice la función wcSetItemData() para asignar un valor entero al elemento de la lista especificada por índice de
elemento. Esto asigna un número a una cadena.
Función wcGetItemData()
Lee el valor entero asociado con el elemento de lista identificado por el parámetro ItemIndex.
Categoría: control de ventanas
Sintaxis: [ErrorNumber =] wcGetItemData ("ControlName", ItemIndex, Tagname);
Parámetros
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
ItemIndex: Número que corresponde a la posición del elemento. Cualquier número o número entero.
Tagname: Nombre real de una variable real o entera. La función wcGetItemData () coloca el valor numérico
correspondiente al elemento en esta variable al regresar de la función.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo (s): La sentencia siguiente recupera el valor numérico asociado con el quinto elemento en un cuadro
de lista y lo devuelve a la variable ItemValue Integer cuando se ejecuta una secuencia de comandos de acción:
WcGetItemData("ListBox_1", 5, ItemValue);
Si se asigna al quinto elemento de la lista el valor entero 4500, la variable ItemValue contiene 4500.
Función wcSetItemData()
Asigna un valor entero del elemento (el parámetro Number) al elemento de la lista especificada por el parámetro
ItemIndex. Esta función permite asignar un número a una cadena.
Categoría: Control de ventanas
Sintaxis: [ErrorNumber =] wcSetItemData ("ControlName", ItemIndex, Number);
Parámetros:
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
ItemIndex: un valor entero que especifica el elemento de lista que desea editar. Cualquier número o número
entero.
Number: un valor entero que representa los datos del elemento. Cualquier número o número entero.
Observaciones: Puede crear listas completas que contengan los elementos utilizando un programa como el
Bloc de notas y, a continuación, cargarlos mediante una llamada de función. Formatee la lista según lo requiera
la función wcSaveList (). Para obtener una lista de los números de error devueltos, consulte Descripción de los
mensajes de error de los controles de Windows. Utilice la función wcGetItemData () para devolver el valor
(datos de elemento) asociado con el elemento de lista. El parámetro tagname contiene el valor numérico
devuelto. Este parámetro podría ser una variable de entero de E / S que escribe directamente en el dispositivo
del mundo real.
Ejemplo (s): Una receta tiene tres ingredientes; Harina, azúcar y sal. La cantidad de harina es 4500 gramos, el
azúcar es 1500 y la sal es de 325 gramos. Los valores se asignan a cada uno de los elementos del cuadro de
lista mediante un script de cambio de datos activado por qué receta (tagname, RecipeName) está seleccionada:
58
Vea también: wcLoadList(), wcSaveList(), wcGetItemData()
Función wcGetItem()
Devuelve una cadena que contiene el contenido del elemento correspondiente al ItemIndex en el cuadro de lista
o en el cuadro combinado.
Categoría: control de ventanas
Sintaxis: [ErrorNumber =] wcGetItem("ControlName", ItemIndex, Tagname);
Parámetros:
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
ItemIndex: Número que corresponde a la posición del elemento. Cualquier número o número entero.
Tagname: Mensaje tagname. La función wcGetItem colocará los datos correspondientes al índice del elemento
en esta variable al regresar de la función.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Se aplica a: Cuadros de lista y cuadros combinados.
Ejemplo (s): La instrucción siguiente devuelve el valor de cadena del décimo elemento en un cuadro
combinado a la etiqueta de mensaje ListSelection cuando se ejecuta una secuencia de comandos de acción:
Nota: Si el nombre de etiqueta se ha definido con una longitud máxima, sólo se puede asignar ese número de
caracteres desde el contenido del cuadro de texto a la etiqueta. Si no se asigna ninguna etiqueta al cuadro de
texto, su contenido puede tener hasta 65.535 caracteres.
Función wcLoadText()
Reemplaza el contenido del cuadro de texto con el contenido del archivo.
Categoría: Control de ventanas.
Sintaxis: [ErrorNumber=]wcLoadText("ControlName", "Filename");
Parámetros:
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
Filename: Contiene el nombre de un archivo. Si no se suministra un nombre de ruta completo como parte del
parámetro de mensaje, la función comprobará el directorio de la aplicación para el archivo. Cadena real o
mensaje tagname.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Se aplica a: Cuadros de texto.
58
Ejemplo (s): La siguiente instrucción carga un archivo de texto (c: \ InTouch.32 \ readme.txt.) En un cuadro de
texto cuando se abre la ventana (On Show Window script) que contiene el cuadro de texto:
Función wcSaveText()
Guarda el texto contenido en el cuadro de texto en el archivo especificado. Si el archivo no existe, se crea. Si
existe, debe ser de lectura / escritura.
Categoría: Control de ventanas
Sintaxis: [ErrorNumber=]wcSaveText("ControlName", "Filename");
Parámetros:
ControlName: El nombre del objeto de control de Windows. Por ejemplo, ListBox_1. Cadena real o mensaje
tagname.
Filename: Contiene el nombre del archivo de destino. Si no proporciona un nombre de ruta completo, el archivo
se guarda en el directorio de la aplicación. Si el archivo existe, se sobrescribe. Si el archivo no existe, se crea.
El archivo resultante se puede cargar posteriormente en un objeto de cuadro de texto mediante la función
wcLoadText (). Cadena real o mensaje tagname.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Se aplica a: Cuadros de texto.
Ejemplo (s): La siguiente instrucción guarda la información actual introducida en un cuadro de texto en un
archivo de c: \ InTouch.32 \ newtext.txt cuando se ejecuta una secuencia de comandos de acción:
.ReadOnly Dotfield
Determina si el contenido del cuadro de texto es de sólo lectura o de lectura / escritura.
Categoría: control de ventanas
Uso: [ErrorNumber =] GetPropertyD("ControlName.ReadOnly", Tagname);
Parámetros:
ControlName: Nombre del control de Windows. Por ejemplo, Textbox_1.
Tagname: Una variable discreta que contiene el valor de la propiedad cuando se procesa la función.
0 = Contenido del cuadro de texto es lectura / escritura
1 = El contenido del cuadro de texto es de sólo lectura
Observaciones: Esta propiedad está disponible tanto en tiempo de desarrollo como en tiempo de ejecución.
Tipo de datos: Discreto (sólo lectura)
Se aplica a: Cuadros de texto.
Ejemplo (s): La instrucción siguiente recupera el estado de sólo lectura del cuadro de texto denominado
"TextBox_1":
GetPropertyD("TextBox_1.ReadOnly", A_Tagname);
58
Obtener o establecer la etiqueta de una casilla de verificación.
El campo de puntos .Caption define el texto del mensaje de una casilla de verificación.
.Caption Dotfield
Determina el mensaje que se mostrará con la casilla de verificación.
Categoría: control de ventanas
Uso:
[ErrorNumber =] GetPropertyM ("ControlName.Caption", Tagname);
[ErrorNumber =] SetPropertyM ("ControlName.Caption", " Message ");
Parámetros:
ControlName: Nombre del control de Windows. Por ejemplo, ChkBox_4.
Tagname: Un mensaje tagname que contiene la propiedad solicitada.
Message: Una cadena de mensaje entre comillas.
Comentarios: Esta propiedad es de lectura / escritura durante el desarrollo y el tiempo de ejecución.
Tipo de datos: Mensaje (lectura / escritura)
Se aplica a: casillas de verificación.
Ejemplo: Esta sentencia establece el título del objeto de casilla de verificación "CheckBox_1" en "Blue Paint
Option".
En este script, ErrorNumber es una etiqueta de número entero que contiene el valor de error devuelto. El valor
devuelto de la función se puede pasar a wcErrorMessage (). WcErrorMessage () devolverá una descripción de
cadena del error. Por ejemplo:
En este script, ErrorMsg es una etiqueta de tipo de mensaje que contiene el texto del error devuelto. La tabla
siguiente identifica valores de error numéricos y sus definiciones.
Mensaje de error. Definición.
0 Éxito
-1 Falla general
-2 Memoria insuficiente disponible
-3 La propiedad es de sólo lectura
-4 Elemento especificado ya presente
-5 Nombre de objeto desconocido
-6 Nombre de la propiedad desconocido
58
-x Error desconocido
Función wcErrorMessage()
Devuelve una cadena de mensaje que describe el error.
Categoría: control de ventanas
Sintaxis: ErrorMessage = wcErrorMessage(ErrorNumber);
Parámetros:
ErrorMessage: Mensaje tagname.
ErrorNumber: Número devuelto por todas las funciones de control de Windows. Cualquier número o número
entero.
Observaciones: Para obtener una lista de números de error devueltos, consulte Descripción de los mensajes
de error de los controles de Windows.
Se aplica a: Cuadros de lista, cuadros de texto, cuadros combinados, casillas de verificación y botones de
opción.
Ejemplo (s): Si se produce un error mientras se carga una lista, muestre la descripción de texto del error en la
variable de mensaje ErrorDescription. En este ejemplo, se asigna un vínculo de animación de Visualización de
valor a la variable ErrorDescription para mostrar el mensaje de error. En la ventana "On Show" QuickScript:
Puede utilizar esta función con todas las funciones de control de Windows para mostrar mensajes de error:
58