manual intouch

152
A 1 I.- TRABAJANDO CON INTOUCH Para crear una nueva aplicación en Intouch, seleccione “Create Directory”, o para seleccionar una aplicación existente basta con hacer doble click sobre el nombre del archivo a abrir. Cuando se crea un directorio, tenemos la opción de hacer varias pantallas dentro de esté, al seleccionar el comando New Windows en el menú File aparece el cuadro Windows Properties (propiedad de pantalla), tal como se indica a continuación: Donde se coloca el nombre de la pantalla con un máximo de 32 caracteres, se selecciona el color de fondo de la pantalla en Window Color, se definen las dimensiones de la pantalla, también se define la visibilidad o no del titulo de pantalla. Se puede ingresar a los Scripts, aplicación que será detallada mas adelante, luego de terminadas las propiedades de pantalla se presiona OK y se comienza a trabajar en la confección de la pantalla. Cuando se está dentro de una nueva pantalla aparece la barra de herramientas Toolbox, es una caja de herramientas con una colección de objetos gráficos que son utilizados en la aplicación. La caja de herramientas queda normalmente visible al abrir Window Maker.

Upload: carlos-a-evangelista

Post on 20-Jan-2016

107 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Manual Intouch

A 1

I.- TRABAJANDO CON INTOUCH

Para crear una nueva aplicación en Intouch, seleccione “Create Directory”, o

para seleccionar una aplicación existente basta con hacer doble click sobre el nombre

del archivo a abrir.

Cuando se crea un directorio, tenemos la opción de hacer varias pantallas dentro

de esté, al seleccionar el comando New Windows en el menú File aparece el cuadro

Windows Properties (propiedad de pantalla), tal como se indica a continuación:

Donde se coloca el nombre de la pantalla con un máximo de 32 caracteres, se selecciona

el color de fondo de la pantalla en Window Color, se definen las dimensiones de la

pantalla, también se define la visibilidad o no del titulo de pantalla. Se puede ingresar a

los Scripts, aplicación que será detallada mas adelante, luego de terminadas las

propiedades de pantalla se presiona OK y se comienza a trabajar en la confección de la

pantalla.

Cuando se está dentro de una nueva pantalla aparece la barra de herramientas

Toolbox, es una caja de herramientas con una colección de objetos gráficos que son

utilizados en la aplicación. La caja de herramientas queda normalmente visible al abrir

Window Maker.

Page 2: Manual Intouch

A 2

La barra de herramientas es tal como se muestra a continuación:

La primera línea de herramienta es usada para crear objetos gráficos, escribir nombres,

seleccionar objetos, etc. Los cuales pueden ser mostrados o animados en el modo de

trabajo Runtime.

La segunda línea cuenta con la herramienta Wizard. Al seleccionar está

herramienta aparece un cuadro con elementos básicos que se utilizan para hacer

eficiente y rápido la construcción de las pantallas.

Basta con hacer doble click en el objeto seleccionado para que se de la opción de

colocarlo donde se requiera en la creación de la pantalla, también se pueda variar su

tamaño y dar Configuración de acuerdo a lo requerido en la construcción de la pantalla.

Page 3: Manual Intouch

A 3

Encontrándose también en está cuadro opciones de gráficos en tiempo real, históricos y

ventanas de alarmas.

Luego los componentes restantes de está línea, son herramientas que permiten

alinear, desagrupar, crear botoneras 3D con sus respectivos nombres, borrar, copiar,

pegar, etc.

II.- MENU WINDOWMAKER

WindowMaker contiene una barra de menú provista con numerosas funciones.

Esta barra de menú esta localizada en la parte superior de la pantalla y se puede acceder

a ella solamente haciendo click sobre la opción que se desea utilizar.

2.1.- Menú File (archivo)

El menú archivo contiene un Set de comandos que se utilizan para crear, abrir,

salvar, imprimir, cerrar, borrar, exportar e importar archivos, también se cuenta con Exit

que es salir del programa.

Además cuenta con WindowViewer que es un switch para cambio de

WindowMaker a WindowViewer (pantalla de simulación).

Page 4: Manual Intouch

A 4

2.2.- Menú ArreglarEl menú Arreglar contiene un conjunto herramientas tales como rotar en sentido

del reloj y en contra, transformar el objeto seleccionado en imagen de espejo vertical u

horizontal, combina varios objetos seleccionados en uno solo o viceversa, habilitar o

desabilitar grid (grilla). Para usar cualquier de los comandos del menú arreglar,

seleccione él o los objetos donde el comando va a ser aplicado y entonces seleccionado

el comando desde el menú arreglar se aplica. Usted puede configurar el Toolbox para

mostrar herramientas del menú arreglar. Muchas de estas herramientas se incluyen en el

toolbox.

El Toolbox se configura por medio de Special / Configure.

2.3.- Menú de TextoEl Menú de Texto es parte del Toolbox por lo tanto se maneja directamente de la

barra de herramientas.

2.4.- Menú de LíneaLos comandos de Menú de Línea se usan para cambiar el estilo y la anchura de

líneas que son usada sobre objetos individualmente. Cualquier objeto seleccionado que

contiene una línea (es decir, círculos, cuadrados, polígonos, líneas, etc.) será

Page 5: Manual Intouch

A 5

modificado. Después de seleccionar el o los objetos, y haciendo click sobre el tipo de

línea deseado que muestra en el menú de línea, esta será cambiada.

2.5.- Menú EspecialEl Menú Especial contiene un conjunto de comandos y subcomandos

permitiendo desempeñar funciones especiales tal como sustituir tagnames, strings,

acceder al Diccionario de Tagname, cambiar los nombres DDE, etc. En este menú se

encontraran comandos tales como mostrar y quitar el Toolbox de la pantalla (Show/hide

toolbox), Vínculos de Animación (Animation Links), sustitución de tagnames,

sustitución de string que son utilizados para cambiar el contenido de los String

(botoneras), llamar el diccionario de definiciones de tagnames, crear nombres de grupos

de alarmas o modificar viejos nombres de grupos, también se pueden crear subgrupos

de alarmas, seleccionar el nombre de accesos DDE (Dynamic Data Exchange).

También existe el comando Configurar con el cual Intouch, provee la habilidad

de personalizar completamente la funcionalidad y aspecto final de la aplicación

seleccionando varias opciones. Estas opciones se obtienen desde este comando. Por

ejemplo, puede colocarse las opciones que impidan al usuario salir de WindowVíewer,

la barra de título puede personalizarse para mostrar el nombre de compañía, la barra de

menú puede eliminarse, la tecla ALT puede estar incapacitado, etc.

Page 6: Manual Intouch

A 6

El comando borrar tag inutilizados, permite mostrar una lista de todos los

tagnames inutilizados en el Diccionario de Datos. Todos estos tagnames pueden

borrarse desde la base de datos. Además se incluye una lista de Script que son editores

de lógica, los cuales pueden ser usados por los usuarios. Dependiendo de que Script se

edita, la lógica puede implementarse (Aplicación Script), cuando se selecciona el

comando Script, los Scripts de Lógica son utilizados para crear simulaciones,

contraseña de protección, cálculos de sistemas de variables o cambio de ventanas

debido a los cambios en el proceso de variables, etc. Más adelante se profundizará más

sobre los Scripts.

2.6.- Menú de VentanaEl menú de Ventanas contiene las Propiedades de Ventana y una lista de todas

las pantallas que se encuentran abiertas. Haciendo Click sobre cualquier de los nombres

de las pantallas hará que las propiedades de la pantalla se active.

2.7.- ¿Qué es el Diccionario Tagname?

El diccionario de datos tagname es el corazón de Intouch. En orden crea la rutina

de la base de datos, Intouch requiere información aproximadamente de todas las

entradas/tags que son creados. Cada entrada se le debe asignar un tagname. Un tagname

es un nombre simbólico que se entra en el Diccionario de Tagname. Este nombre

simbólico puede entonces configurar valores min., max., alarmas, etc. y también se

define como un tipo específico, por ejemplo, un tag DDE. Este tag DDE puede llegar a

ser entonces un link entre Intouch, el servidor de I/O y el mundo real. El Diccionario de

Tagname es el mecanismo usado para ingresar esta información sobre la

variables/entradas en la base de datos. En el modo Runtime, contiene el valor actual de

todos los artículos en la base de datos.

La creación de la base de datos o el Diccionario de Datos puede realizarse

usando tres diferente métodos. El primer método es la creación de un manual donde

usted accesa el tagname de diccionario y define cada tag individualmente hasta

completar la base de datos. El segundo método es el método automático donde usted

crea un objeto gráfico, asignando vínculos de animación al objeto y el sistema

Page 7: Manual Intouch

A 7

rápidamente define el tagname. El tercer método es el método externo donde usted usa

el utilitario de Wonderware DB de Basurero y DB carga para transferir la base de datos

desde una aplicación de InTouch a otra aplicación de InTouch.

Si usted escoge el método automático o manual para crear la base de datos,

aparece el cuadro de dialogo "Diccionario - TagName de Definición". En el método

automático el cuadro de dialogo aparecerá una vez que se presiona OK, cuando pide

definir los tagnames, asignando después los vínculos de animación del objeto. Para

acceder al cuadro de diálogo cuando se usa el método manual de creación, primero se

selecciona Special/Tag Name Diccionary.

Details

Seleccione este botón para mostrar el cuadro de diálogo usado para ingresar los

detalles del tipo específico de tag. El inicialmente cuadro de dialogo Díctionary – Tag

Name Definition es usado para ingresar la información básica con respecto a un

tagname. Muchos puntos, especialmente entradas y salidas, requieren grandes detalles.

Para cada tipo de tagname especificado, existe un cuadro de dialogo “Details”

especifico para ingresar el detalle del tipo de tagname. Cuando un tipo de tagname es

seleccionado, aparece automáticamente un cuadro de dialogo “Details”

respectivamente. Si el cuadro de diálogo "Details" para la definición del tagname

actualmente mostrado en pantalla no aparece, seleccione Details en la parte superior del

cuadro.

Page 8: Manual Intouch

A 8

Alarms

Seleccione este botón para definir la condición de alarma del tagname. Cuando

definimos un tagname análogo (entero o verdadero), el siguiente cuadro de diálogo se

usa para seleccionar tipos de alarmas y entrar sus valores. Los valores de campos

ingresados para cada tipo de alarma no aparecerán hasta que un tipo de alarma sea

habilitado por un click en su respectivo cuadro de chequeo como se muestra más

adelante:

Both

Seleccione este botón para mostrar ambos cuadros de diálogos details y alarms

simultáneamente. El siguiente es un ejemplo como la pantalla se verá cuando un

tagname "Memoria Real" está siendo definido y este botón se selecciona:

Page 9: Manual Intouch

A 9

None

Seleccione este botón para remover el cuadro de diálogo details y/o alarms

desde la pantalla.

2.7.1.- Ingresar Campos, Botones y Permitir al Usuario Opciones de Entrada...

Page 10: Manual Intouch

A 10

Tag Name:

Ingrese el nuevo tagname en este campo. Los Tagnames pueden ser hasta un

largo de 32 caracteres y el primer carácter debe ser A-Z o a-z y puede seguirse con A-

Z, a-z, 0-9,! ¿, Q, -,? , #, $ , %, _ y &.

Comment: Los Comentarios son opcionales, pero pueden ser mostrados en una

Ventana de Alarma.

Ingrese cualquier información opcional para documentar el tagname en este

campo (hasta 50 - caracteres). (Estos comentarios pueden mostrarse en ventanas de

alarmas.)

Hacer click sobre este botón para acceder al Escoger tipo de Tag..., el

cuadro de diálogo selecciona el tipo de tagname:

Hacer click sobre este botón para acceder al cuadro de diálogo Escoger

Grupo de Alarmas... para asignar el tagname a un grupo de alarmas específico o crear

un nuevo grupo de alarma.

Read only

Seleccione este botón para restringir a WindowViewer para que solamente sea

capaz de leer el valor del tagname.

Read Write

Seleccione este botón para permitir a WindowViewer leer/escribir de/desde el

valor del tagname.

Page 11: Manual Intouch

A 11

Log Data

Registra automáticamente el tagname en el archivo Histórical Log cada vez que

sus valores de unidades de ingeniería cambien, más el valor del Registro

especificado Deadband.

Log Events Priority 999

Registra todos los cambios de valores del tagname que fueron establecidos por el

operador, DDE, un script o por el sistema. Cuando esta opción es habilitada, el

campo de Prioridad aparecerá. El valor ingresado en la Prioridad determina la

preferencia de nivel del suceso para el tagname. Las entradas válidas en este

campo son de 1 a 999 donde 1 es la más alta prioridad y 999 es la más baja.

Retentive Value

Esta opción es usada para retener el valor actual del tagname. Este valor,

entonces es usado como el valor inicial para el tagname cuando WindowViewer

se reinicie.

Retentive Parameters

No varía los cambios del valor de cualquier campo de alarma para el tagname.

Este valor se usará como el valor inicial para las alarmas cuando

WindowViewer es reiniciado.

2.8.- Tipos de TagCada tagname debe ser asignado a un tipo específico según el uso del tagname.

Por ejemplo, si el tagname es para leer o escribir valores que vienen desde otra

aplicación de Windows tal como un servidor DDE, este debe ser un tag tipo DDE. Se

debe considerar si el Tag esta representando una señal Discreta, que es un solo bit (tal

como una sola entrada del PLC) o una señal Análoga (tal como un registro de 16, 32, o

64 bits). Los tag analógicos son separados en dos de tipos, Enteros y Reales. A

continuación se describe cada tipo de tag y su uso respectivo.

Page 12: Manual Intouch

A 12

2.8.1.- Tagname tipo MemoriaEstos tipos de tag existen solamente dentro del programa Intouch. Ellos pueden

usarse para crear constantes de sistema, demostraciones y simulaciones. Estos también

son útiles en la creación de cálculos de variables para ser accesados en otros Programas

de Windows. Por ejemplo, si un tagname de memoria real es creado llamado “PI”,

podría asignarse a él, el valor inicial de 3.1416; o las fórmulas podrían almacenarse en

grupos de tagname de memoria. En simulaciones; los tagnames de memoria pueden

usarse para controlar las acciones de unos antecedentes de script. Por ejemplo un

tagname de memoria "STEP" podría ser cambiado con una acción presionando un botón

Script para provocar varios efectos de animación. Hay cuatro tipos de Memoria:

Memory DiscreteTagname Discreto Interno con un valor de O (Falso, Fuera) o 1 (Verdadero,

Habilitado).

Memory IntergerEs asignado un valor entero de 32 bit entre -2,147,483,648 y 2,147,483,647.

Memory Real

Tagname de memoria con punto flotante (decimal). El valor del punto flotante

puede estar entre 3.4e38. Todos los cálculos del punto flotante se realizan con 64 bit

de resolución, pero el resultado se almacena en 32 bit.

Memory MessageEl Texto del tagname de una fila puede ser de un largo de 131 caracteres.

2.8.2.- Tagname tipo DDE

Todos los tagnames que leen o escriben sus valores hacia o desde otro programa

de Wíndows son Tagname DDE. Esto incluye todas las entradas y salidas desde

controladores programables, procesos de computadoras, otros programas de Windows y

Page 13: Manual Intouch

A 13

datos desde nodos de red. Los Tagnames DDE se ingresan por medio del Protocolo

Dynámic Data Exchange (DDE) de Microsoft. Cuando el valor del tagname DDE de

lectura/escritura cambia, éste es inmediatamente escrito en la aplicación remota por

medio de DDE. El tagname también puede ser actualizado desde la aplicación remota

cuando el item al cual el tagname es vinculados cambia a la aplicación remota. Por

defecto Leer / Escribir es un conjunto de todos los tagnames DDE. Sin embargo, ellos

pueden restringirse para Leer solamente al seleccionar el botón Read Only en el cuadro

de diálogo Diccionary – Tag Name Definition. Hay cuatro Tipos de DDE:

DDE DiscreteTagname de entrada/salida discreta con un valor entre 0 (Falso, Off) o 1

(Verdadero, On).

DDE IntegerEs asignado un valor entero de 32 bits entre –2,147,483,648 y 2,147,483,647.

DDE RealTagname de memoria con punto flotante (decimal). El valor del punto flotante

puede estar entre 3.4e38. Todos los cálculos del punto flotante se realizan con 64 bit

de resolución, pero el resultado se almacena en 32 bit.

DDE MessageEl Texto del tagname de una fila puede ser de un largo de 131 caracteres.

2.8.3.- Tagnames de Tipo MisceláneoEstos son un tipo de tags especiales que son asignados a tagnames que realizan

funciones complejas, tal como mostrar despliegues de alarmas dinámicas, históricos,

monitoreo y / o cambio del tagname en cada trazado histórico que es dibujado y

tagname indirectos que permiten reasignar los tagname a múltiples fuentes. Estos tipos

de tags son los siguientes:

Page 14: Manual Intouch

A 14

Group VarEste tipo de tag es asignado a un tagname que tenga el nombre de un Grupo de

Alarma asignado a él. Esto es muy útil en hacer despliegues de alarma, registros de

discos e imprimir dinámicamente los registros. Las ventanas de alarmas o registros de

alarmas pueden configurarse para mostrar todas las alarmas asociadas con un Group

Var. Mediante asignación un grupo de Alarma diferente al nombre del Grupo de

Variable, la selección de alarmas a mostrar o a registrar puede ser controlada. Un

tagname de Group Var puede usarse para crear un botón que selectivamente muestre

las alarmas de diferentes partes de una planta en la misma Ventana de Alarma. Todos

los campos asociados con los Grupos de Alarma pueden ser aplicados a Group Var.

Hist TrendEste tipo de tag es asignado a un tagname para ser usado como un diagrama

Histórico de Tendencia. Cuando configuramos un mapa Histórico de Tendencia,

InTouch requiere que un tipo de tagname HistTrend sea asignado a un gráfico.

Tag IDEste tipo de tag es usado para obtener información sobre los tagnames que están

siendo registrados en un mapa de Tendencia Histórica. El uso más común es mostrar el

nombre del Tagname de la tendencia. Por ejemplo, Pen4 de un mapa Histórico de

Tendencia se muestra la tendencia del tagname "Analog1". Una ventana puede ser

creada con un campo de salida que muestra el tagname actualmente asignado a Pen4.

Indirect Discrete Indirect Analog Indirect Messaga

El tagname de tipo Indirecto permite al operador crear una de ventana y

reasignar el tagname en esa ventana a múltiples fuentes. Por ejemplo, uno Cambio de

Page 15: Manual Intouch

A 15

Datos de Script pueden ser creado para cambiar la fuente de todos los tagnames en una

ventana basado sobre el cambio de un valor.

Cuando un tag indirecto es igual a otro tag de fuente, ambos llegan a ser iguales

el uno al otro en cada aspecto. Por ejemplo, campos, scripts, etc., si el valor del tag de

fuente cambia, en el tag indirecto se reflejará el cambio. Si el valor del tag indirecto

cambia, el tag de fuente cambia consiguientemente. Los valores del tagname indirecto

pueden establecer en la base de datos como retentivo y también se pueden modificar.

Esto les permite tomar su última asignación de tagname en la partida.

2.9.- Tagnames “Placeholder”

Cuando una ventana es importada o es exportada a una aplicación, todos los

tagnames asociados con la ventana son transferidos con la ventana, pero no son

agregados a la nueva base de datos de aplicación. Ellos serán automáticamente

cambiados en el tagnames "placeholder" (índice) y deben ser convertidos y definidos

por la nueva aplicación.

1. Para convertir el tagnames, seleccione el comando /Edit/Select All (F2) luego el

comando /Special/Substitute All Tags...(Ctrl+U). El cuadro de diálogo Sustitute Tag

Names... aparecerá listando todos los tagnames usados por todos los objetos en la

ventana:

2. Note el " ?d: " , " ?h: " , etc. que precede el tagnames, estos son "placeholders".

La letra "d" indica que el tagname se definió originalmente como un tipo "discreto", la

Page 16: Manual Intouch

A 16

"h" indica un “HistTrend”, etc. haciendo Click sobre el botón Convert se removerá

automáticamente el placeholders:

3. Una vez que los tagnames son convertidos, haga click sobre OK. Si el tagname no

existe en la actual base de datos de la aplicación, el siguiente cuadro de mensaje

aparecerá verificando la creación del nuevo tagname:

4. Haciendo Click sobre OK permitirá que el cuadro de diálogo Diccionary - Tag

Name Definition aparezca y el tagname pueda definirse y agregarlo a la base de datos

de la actual aplicación.

2.10.- ¿ Qué son los Links (Vínculos)?

Una vez que un objeto gráfico o el símbolo se ha creado, éste puede ser animado

uniendo vínculos de animación a él. Los vínculos de animación permiten que el objeto,

símbolo o celda cambien su apariencia reflejando los cambios en el valor de una

variable de la base de datos del tagname. Por ejemplo, el símbolo de una bomba puede

ser de color rojo cuando esta apagada y de color verde cuando está encendida. El

símbolo de la bomba también puede ser encendida por un pulsador que se usa para

encender y apagar la bomba cuando se pulse. Estos y muchos otros efectos de

animación son obtenidos cuando se definen los vínculos de animación para un objeto o

símbolo seleccionado. Conjuntamente con los tagnames, algunos vínculos de

animaciones también permiten el uso de expresiones lógicas usados para calcular

variables (por ejemplo integer1 + 100, discretel AND discrete2 AND NOT discrete3,

etc.).

Page 17: Manual Intouch

A 17

2.10.1.- Uniendo y Seleccionando un Vínculo

Cuando un objeto se selecciona y el comando /Special/Animation Links... se

ejecuta hay dos cuadros de diálogo que siempre aparecen; el "Item Description" y el

"Links selection". Ambos cuadros de diálogo son descritos más adelante.

Nota: Haciendo Doble – click sobre el que objeto deseado se llama directamente

la pantalla de los Links de Animación.

A continuación se describe cada campo en el cuadro previo de diálogo:

Prev Link y Next Link

Si varios vínculos han sido adjuntos al objeto, estos dos botones pueden usarse

para avanzar y retroceder rápidamente mediante el cuadro de diálogo de detalle para

cada Links adjunto al objeto sin salir del cuadro de diálogo de Vinculo de Animación.

Nota: En un objeto o símbolo pueden tener múltiples links definidos. La

capacidad para combinar los vínculos de animación provee la capacidad para

crear casi cualquier animación de pantalla y efecto imaginable.

Horizontal/Vertical Loc. Width/Height

Corresponde a la ubicación Horizontal y Vertical como también al Largo y Alto

del objeto expresado en pixeles de la pantalla.

Page 18: Manual Intouch

A 18

Este cuadro de diálogo se usa para seleccionar el Link (s) deseado (s) para el

objeto, haciendo click sobre el botón con el nombre del links. Haciendo Click sobre el

cuadro de chequeo, solamente selecciona o deshabita el links. Haciendo Click sobre el

botón del nombre del links selecciona y permite que aparezca el específico cuadro de

diálogo de definición de detalle para el links.

Información común del Links...

La Paleta de Selección de Color: El cuadro de selección de color aparece

cuando un color de links está siendo unido para animar el color de la línea, llenado de

color, (y/o para atributos de color de texto de un objeto). El cuadro de selección de

color ofrece una cantidad de 32 colores. La primera columna (desde la izquierda)

muestra los ocho colores sólidos primarios. Las tres columnas que quedan muestran los

ocho colores sólidos o colores derivados dependiendo de la tarjeta de gráficas instalada

en la computadora.

Asignando una tecla a un Vinculo de Animación: Una Tecla específica o

combinación de teclas en el teclado pueden ser asignado para activar ciertos links,

cuando la tecla se presiona en WindowViewer. La tecla equivalente es solamente

operacional cuando el objeto con el link es visible. Si una tecla se define en ventanas

múltiples, la definición en la ventana abierta más recientemente será la que se active

primero. Para asignar una tecla, haga click sobre el botón Key... en el cuadro de diálogo

de detalle de animación. El cuadro de diálogo "Choose Key... " aparecerá rápidamente

para que usted seleccione la tecla deseada.

2.10.2.- Cuadro de diálogo Choose Name...

Haciendo doble - click sobre Blank Tag Name o Expression, entre el campo

en el cuadro de diálogo de detalle de links de animación que ocasionará que aparezca el

cuadro "Choose Name...", rápidamente usted puede seleccionar el tagname deseado que

ha sido previamente ingresado en la base de datos. Haciendo doble - click sobre un

Page 19: Manual Intouch

A 19

nombre se remueve el cuadro de diálogo y se inserta el nombre seleccionado en el

tagname o campo de expresión en el cuadro de diálogo.

2.11.- ¿ Qué Links están disponibles?

Touch Links

Touch Link convierte cualquier objeto o símbolo en un botón

de acción. Un botón de acción puede ser activado al presionar el

botón del mouse sobre él, tocando la imagen en la pantalla (si

la pantalla es sensible al tacto), presionando alguna letra

asignada o presionando la tecla [Enter (sí el objeto está

marcado alrededor). Hay nueve de tipos de Touch Links que

pueden ser definidos, que se describen a continuación.

Nota: Si el objeto o símbolo utilizado para estos vínculos contiene un campo de

texto, todos atributos diseñados para el texto aparecerán cuando el objeto

aparezca en el modo Runtime. El valor de salida que usted haya ingresado será

mostrará en el campo de a menos que la opción Input Only sea habilitada en el

cuadro de diálogo de Details.

Page 20: Manual Intouch

A 20

Valor Slider Touch Links

El Slider (Deslizador) Touch Links se usa para crear un objeto o

símbolo que pueda moverse con el mouse. Como el objeto o símbolo se mueve, este

altera el valor de una variable vinculada a él. Esto permite la capacidad de crear

dispositivos para colocar valores en el sistema. Un objeto puede ser un Slider

Horizontal, un Slider Vertical, o ambos. Para usar ambos Link sobre un objeto único, el

valor de las dos variables análogas pueden ser cambiadas simultáneamente.

Vínculos con Touch Pushbutton

Los Touch Pushbutton son vínculos de objeto que ejecutan

inmediatamente una operación cuando son activados. Estas

operaciones pueden ser cambios de Valores Discreto (Discrete

Value), ejecución de Script (Action), mostrar Ventanas (Show

Window) u Ocultar Ventanas (Hide Windows).

Vinculo de Colores

Los vínculos de Colores permiten la animación de atributos de color de línea,

llenado, y/o texto de un objeto. Cada uno de estos atributos pueden ser creados

dinámicamente al definir un color vinculado al atributo. El atributo de color puede

vincularse al valor de una expresión discreta, expresión análoga, condición discreta de

alarma o condición análoga de alarma.

Page 21: Manual Intouch

A 21

Vínculos de Colores de Objetos a Estados de Alarma

El color de texto, línea, y llenado de un objeto pueden ser

vinculados al estado de alarma de un Tagname, Group Name, o Group Variable. Hay

dos tipos básicos de alarmas orientados al color. El primero es el Estado del tag de

Alarma Discreta (Discrete Alarm) que puede usarse con cualquier tipo de variable. El

segundo tipo es el Estado de Alarma Análoga (Analog Alarm) que es únicamente

aplicable a las variables de tipo análogas.

[Value Alarm Color Link]

Provee la capacidad para seleccionar hasta cinco diferente colores basados en los

límites de alarma definidos para ese tagname.

[Deviation Alarm Color Link]

Proveen la capacidad para seleccionar hasta tres diferente colores dependiendo

de los estados de las alarmas de desviación que se definen para el punto.

[Rate-Of-Change Alarm Color Link]

Provee la capacidad para seleccionar dos colores diferentes dependiendo del

estado de la razón de cambio de la alarma definido para el punto.

Vínculos del Tamaño del Objeto

Este vinculo se usa para variar la altura y/o ancho de un objeto

según el valor de una expresión analógica. Provee la

capacidad para controlar la dirección en que el objeto se agranda en altura y/o anchura

seteando el Anchor (Top, Middle, o Botton) del vinculo. Ambos vínculos, de anchura y

altura, pueden ser usados en el mismo objeto.

Vínculos de Localización

Este vinculo se usa para hacer que un objeto se mueva

horizontalmente, verticalmente, o en ambas direcciones

automáticamente con respecto a cambios en el valor de una expresión.

Page 22: Manual Intouch

A 22

Vínculos del Porcentaje de Llenado

Este vinculo provee la capacidad para variar el nivel de relleno

de una forma o un símbolo que se llenan según el valor de una

expresión analógica. Por ejemplo, este vinculo puede usarse para mostrar el nivel de

líquidos en una embarcación. Un objeto o símbolo puede ser llenado en forma

horizontal, vertical, o ambos.

Vínculos Misceláneos

Existen cuatro vínculos misceláneos, Visibility, Blink,

Orientation y Disable. Los vínculos de visibilidad controlan la

visualización de un objeto dependiendo del valor de un

tagname discreto o expresión. Este vinculo puede usarse para

hacer que aparezcan y desaparezcan objetos. Los vínculos Blink proveen la capacidad

para hacer que un objeto parpadee de acuerdo al valor de un tagname discreto o

expresión. (Cada uno de los atributos de color del texto, Línea y relleno pueden ser

seleccionado para que un objeto parpadee). Los vínculos de orientación proveen la

capacidad para hacer que un objeto gire sobre un eje especificado de acuerdo al valor de

un tagname o expresión. El vinculo Disable provee la capacidad de impedir a un

usuario particular o un grupo de usuarios tener acceso a presionar un botón en particular

si sus AccessLevel no es lo suficientemente alto por ejemplo (si el vinculo disable es

verdadero, el texto sobre el botón 3-d no se destacará indicando que esta desabilitado).

Vínculos de valores de salida

Estos vínculos proveen la capacidad para usar un texto objeto

para mostrar el valor de una variable discreta (Discrete),

análoga (Analog), o alfanumérica (String).

Page 23: Manual Intouch

A 23

III.- Menú WindowViewer

3.1.- Menú File

El menú File de WindowViewer es muy similar a cualquier menú de una

aplicación en común. Permitiendo abrir, cerrar, salir, etc. ventanas de la aplicación.

3.2.- Controlador Logic

El Menú de Logic contiene los comandos de partida (Start Logic) y

parada (Stop Logic) de la ejecución de los scripts que se crearon en el

WindowMaker.

3.3.- Menú Special

Este menú de WindowViewer contiene los comandos que son utilizados para

iniciar o reiniciar conversaciones DDE, reanudar Registros de Alarmas, iniciar/detener

registros Históricos y accesar al Wonderware Logger para ver información de error.

Page 24: Manual Intouch

A 24

3.4.- /Special/Security

Los comandos de seguridad de este menú son usados para iniciar y cerrar la

aplicación, cambiar passwords o contraseñas y para configurar la lista de usuarios,

passwords y niveles de acceso. Cuando este comando es seleccionado aparece un menú

secundario de comandos:

La seguridad será discutida más adelante.

3.5.- Development!

Este es un interruptor rápido que cambia a la aplicación WindowMaker. Este es

habilitado en WindowMaker usando el comando \Special\Configure\WindowMaker.

3.6.- Diseño de Scripts en InTouch

La variedad de scripts de Wonderware expande las capacidades de InTouch para

proporcionar la ejecución de comandos y operaciones lógicas según las necesidades.

Por ejemplo presionar una tecla, abertura de ventanas, cambio de valores, etc. Al usar

Scripts, se pueden crear una gran variedad de funciones y sistemas automáticos

personalizados.

Existen seis tipos de Scripts disponibles:

Scripts de Aplicación

Scripts de Ventanas

Page 25: Manual Intouch

A 25

Scripts de Teclas

Scripts de Condiciones

Scripts de Cambio de Datos

Scripts de Accionamiento de Botones (Touch Pushbotton)

Los comandos para crear estos Scripts (a excepción del Accionamiento de

Botones) se ubican en el menú /Special/Scripts.

3.7.- Scripts de Aplicación

Los Scripts de Aplicación son vinculados a una aplicación completa y se pueden

usar para correr otras aplicaciones, crear simulación de procesos, cálculo de variables.

Al seleccionar este comando aparece el siguiente cuadro de diálogo:

Page 26: Manual Intouch

A 26

“On Startup” permite crear un Script que se ejecute

una vez cuando la aplicación comienza.

“While Running” crea un Script para que se ejecute

continuamente cada cierta cantidad de tiempo mientras

corre una aplicación. Este tiempo se ingresa en

milisegundos.

“On Shutdown” ejecuta el Script una vez que la

aplicación termina.

Una vez que el botón Script es presionado, aparecerá en pantalla el cuadro de

diálogo de selección de script.

Nota: Los tres tipos de scripts pueden ser utilizados en una misma aplicación. Un

Script While Running se ejecutará después de transcurridos el tiempo establecido.

Para una ejecución inmediata se debe crear un script On Starup.

3.8.- Script de Ventana

Estos tipos de scripts son vinculados a una ventana específica. La selección de

este comando causará la aparición de la ventana de diálogo Window Action Script for

“Nombre de Ventana”

“On Show” permite crear un Script que se ejecute una

vez cuando la ventana se abre por primera vez.

Page 27: Manual Intouch

A 27

“While Showing” crea un Script para que se ejecute

continuamente cada cierta cantidad de tiempo mientras

la ventana está abierta. Este tiempo se ingresa en

milisegundos.

“On Hide” ejecuta el Script una vez que la ventana se

cierra.

Una vez que el botón Script es presionado, aparecerá en pantalla el cuadro de

diálogo de selección de script.

Nota: Los tres tipos de scripts pueden ser utilizados en una misma ventana. Un

Script While Showing se ejecutará después de transcurridos el tiempo establecido.

Para una ejecución inmediata se debe crear un script On Show.

3.9.- Script de Teclas

Estos tipos de scripts son vinculados a una tecla específica del teclado. Pueden

muy útiles para crear teclas globales para la aplicación, por ejemplo, volver a una

ventana del menú principal, salida del operador (log off). Seleccionando este comando

aparecerá el cuadro de diálogo Keyboard Action Script:

“On Key Down” permite crear un Script que se ejecute

una vez cuando la tecla inicialmente es presionada por

primera vez.

“While Down” crea un Script para que se ejecute

continuamente cada cierta cantidad de tiempo mientras

la tecla está presionada. Este tiempo se ingresa en

milisegundos.

Page 28: Manual Intouch

A 28

“On Key Up” ejecuta el Script una vez que la tecla es

dejada de presionar.

Una vez que el botón Script es presionado, aparecerá en pantalla el cuadro de

diálogo de selección de script.

Nota: Los tres tipos de scripts pueden ser utilizados en una misma ventana. Un

Script While Down se ejecutará después de transcurridos el tiempo establecido.

Para una ejecución inmediata se debe crear un script On Key Down.

Nota especial: Si un objeto o botón de acción en la ventana activa (abierta) es

asignado a una misma tecla usada para un Script de teclas, el vínculo en la tecla de

la ventana tendrá preferencia sobre la ejecución del Script.

3.10.- Scripts de Condiciones

Estos Scripts están vinculados a un tagname o expresión discretos. Cuando este

comando es seleccionado aparecerá el cuadro de diálogo Condition Action Script:

“On True” ejecuta un Script una vez cuando la

condición pasa a ser verdadera.

“On False” se ejecuta cuando la condición pasa a ser falsa.

“While True” ejecuta el Script continuamente a una

frecuencia especificada mientras la condición es verdadera.

“While False” ejecuta el Script continuamente a una

frecuencia especificada mientras la condición es falsa.

Page 29: Manual Intouch

A 29

Nota: El valor para la condición debe pasar a la transición verdadera o falsa antes

de que el Script se ejecute. Por ejemplo, si el valor inicial cuando parte el

WindowViewer es verdadero, el valor debe transformarse en falso y nuevamente a

verdadero para que se ejecute un Script On True.

Establece el tiempo (en milisegundos) en que los Scripts While

True y While False se ejecutarán en forma repetitiva.

Una vez que un botón de Script es pulsado aparecerá en pantalla el cuadro de

diálogo del Script.

Nota: Los cuatro tipos de Scripts pueden ser usados a la misma condición. Ambos

Scripts, While True y While False, se ejecutarán después de transcurridos el

tiempo en milisegundos establecido. Para una ejecución inmediata, se crea o se

crean los Scripts On True y/o On False.

Nota Especial: Los tagnames que son modificados (escritos) en un Script de

Condición o Script de Cambio de Dato, no deberían ser usados como el tagname

para un Script de Cambio de Datos o en la expresión de un Script de Condición.

Ejemplo, un Script de Cambio de Dato ejecuta un valor A cambiando el contenido

lógico de B=B+1. El tagname B no debería ser usado cono el tagname para un

Script de Cambio de Dato o ser parte de la expresión de un Script de Condición.

3.11.- Scripts de Cambio de Datos

Estos Scripts se vinculan a un tagname o tagname field. Se ejecuta una vez

cuando el valor del tagname o campo de un tagname cambien por un valor mayor que

la banda muerta (dead band) definida para él, el ítem /point en el Tagname Dictionary.

Page 30: Manual Intouch

A 30

Nota Especial: Los tagname que son modificados en un Script de Condición o

Script de Cambio de Dato no deben ser usados con el tagname para un Script de

Cambio de Datos o en la expresión de un Script de Condición.

3.12.- Scripts de Accionamiento de Botones

Estos Scripts son vinculados a un objeto tipo Botón. Cuando el operador

presione el botón el Script de Accionamiento es ejecutado. Seleccionando un vínculo de

animación usando un Botón de Acción aparecerá el cuadro de diálogo Touch Action

Script.

“On Key Down” permite crear un Script que se ejecute

una vez cuando el objeto inicialmente es presionado.

“While Down” crea un Script para que se ejecute

continuamente cada cierta cantidad de tiempo mientras el

objeto está presionado. Este tiempo se ingresa en

milisegundos.

“On Key Up” ejecuta el Script una vez que el objeto se

deja de presionar.

Una vez que el botón Script es presionado, aparecerá en pantalla el cuadro de

diálogo de selección de script.

Nota: Los tres tipos de scripts pueden ser utilizados al mismo botón. Un Script

While Down se ejecutará después de transcurridos el tiempo establecido. Para una

ejecución inmediata se debe crear un script On Key Button Down.

Page 31: Manual Intouch

A 31

3.13.- Ingreso de la Operación Lógica

En la mayoría de los casos, una vez que el tipo de Script es seleccionado en su

respectivo cuadro de diálogo, aparecerá también el siguiente cuadro de diálogo en la

pantalla:

Significado de cada uno de los Botones

Pulsando alguno de estos botones aparecerá la

palabra escrita de ellos.

Pulsando alguno de estos botones de equivalencia o

matemática ingresa la función correspondiente a él.

Page 32: Manual Intouch

A 32

El texto seleccionado (resaltado) es eliminado del Script. El texto

eliminado no es guardado en la carpeta de Windows.

El texto seleccionado (resaltado) es borrado del Script. El texto

cortado es guardado en la carpeta de Windows.

El texto seleccionado (resaltado) es copiado a la carpeta de Windows. El

texto copiado no es borrado del Script.

Pega el contenido de la carpeta de Windows en la posición del cursor en

el Script.

Se devuelve a la última operación de edición.

Remueve el primer carácter tabulado a la izquierda de la posición del

cursor.

Inserta una tabulación a la derecha de la posición del cursor.

Borra completamente el texto del Script. (El Script no es borrado de la

aplicación).

Valida el Script ingresado. Si existen errores aparecerá el correspondiente

cuadro de mensaje.

Aparece en pantalla los tópicos de ayuda de WindowMaker para todas las

funciones del editor de Script.

Pulsando este botón aparecerá el cuadro de diálogo Reemplazar:

Page 33: Manual Intouch

A 33

Funciones específicas están creadas internamente en el sistema y pueden

ser seleccionadas e insertadas al Script seleccionando uno de esos

botones. Al seleccionar uno de ellos aparecerá el cuadro de diálogo

Choose Function.

Page 34: Manual Intouch

A 34

Page 35: Manual Intouch

A 35

Page 36: Manual Intouch

A 36

Page 37: Manual Intouch

A 37

Esta función entrega el valor absoluto de un número específico(el equivalente

sin signo). Ejemplo:

ResultNumericTag= Abs(InputNumericTag);

En esta instrucción el valor absoluto del NumericTag es calculado y dado como

ResultNumericTag.

Esta función puede ser usada en un botón para reconocer cualquier alarma

desconocida. Esta función puede ser aplicada a un tagname, Grupo de Alarmas o Grupo

de Variables. (Un Grupo de Variables es un tagname que tiene el nombre de algún

Grupo de Alarma asignado a él.) Ejemplo:

Page 38: Manual Intouch

A 38

Ack $System; (Reconoce todas las alarmas)

Ack Tagname;

Ack GroupName;

Ack GroupVariable;

Esta función activa otra aplicación en Windows que está ejecutando.

Ejemplo:

ActivateApp “Title Text”;

“Title Text” es la palabra o texto exacto, incluyendo espacios, que aparece en la Lista de

Tareas.

Ejemplo:

ActivateApp “Microsoft Excel”;

Nota: El Title Text o aplicación a activar debe estar entre comillas.

Entrega la función arco coseno expresado en grados entre 0º y 180º.

Ejemplo:

ResultNumericTAg=ArcCos(InputNumericTag)

Ejemplo:

ArcCos(1) estregará el valor 0

ArcCos(-1) entregará el valor 180

Entrega la función arco seno expresado en grados entre -90º y 90º.

Ejemplo:

ResultNumericTAg=ArcSin(InputNumericTag)

Page 39: Manual Intouch

A 39

Ejemplo:

ArcSin (1) estregará el valor 90

ArcSin(-1) entregará el valor -90

Entrega la función arco tangente expresada en grados entre -90º y 90º.

Ejemplo:

ResultNumericTAg=ArcTan(InputNumericTag)

Ejemplo:

ArcTan (1) estregará el valor 45

ArcTan (0) entregará el valor 0

Entrega el coseno de un ángulo en grados.

Ejemplo:

ResultNumericTAg=Cos(InputNumericTag)

Ejemplo:

Cos (90) estregará el valor 0

Cos(0) entregará el valor 1

Esta función cambia en forma dinámica un tagname de mensaje basado en un

tagname de una variable discreta.

Ejemplo:

MsgTag=DText(Discrete, “OnMessage”, “OffMessage”);

MsgTag es un tagname tipo mensaje, Discrete es un tagname tipo discreto,

OnMessage es el mensaje que aparecerá cuando el valor de Discrete es 1(True, On,

Yes, Sí). El mensaje se convertirá en OffMessage es el mensaje que aparecerá cuando

Page 40: Manual Intouch

A 40

el valor de Discrete es 0(False, Off, No). (Los mensajes de estado On y off deben estar

entre comillas)

Esta función entrega el valor de la potencia de .

Ejemplo:

ResultNumericTag=Exp(InputNumericTag)

Ejemplo:

Exp(1) dará el valor 2.71828182..........

El rango de esta función es entre -88.72 hasta 88.72

Esta función es usada para copiar un archivo fuente a un archivo destino,

similar al comando de DOS o la función de copiado en el administrador de archivos.

FileCopy(SourceFile, DestinationFile, MonitorTag);

donde:

SourceFile - nombre del archivo fuente (incluyendo la ruta completa)

DestinationFile - nombre del archivo destino (incluyendo la ruta completa) o nombre

del directorio.

MonitorTag - Nombre de un tag que usará el comando FileCopy() para informar el

progreso del copiado. Este parámetro debe tener un caracter referenciando el nombre

del tag(no el mismo nombre del tag). Si el tag monitor se llama Monitor, se debe

agregar “Monitor” o Monitor.name, no Monitor.

Cuando la función FileCopy() es usada, ésta automáticamente arroja un valor 1

si el procedimiento fue iniciado exitosamente. 0 si existe otro procedimiento en

ejecución (el nuevo procedimiento no podrá ser inicializado) ó 1 si existe un error.

Usando estos valores, la inicialización de FileCopy() puede ser monitoreada:

Page 41: Manual Intouch

A 41

Status=FileCopy(“C:\*.TXT”, “C:\BACKUP”,“Monitor”);

donde: Status es un tag entero el cual puede ser 1, -1 ó 0.

FileCopy() es ejecutado en segundo plano lo cual no interfiere en la operación de

InTouch. El propósito del MonitorTag es permitir que el progreso de copiado sea

monitoreado por una aplicación o un usuario. De esta forma, el usuario puede ser

alertado de errores que puedan ocurrir DESPUES que el procedimiento sea inicializado.

Este es diferente que el valor Status descrito recientemente, el cual indica si el

procedimiento ha sido iniciado exitosamente.

Una vez que el copiado ha sido exitosamente iniciado, el valor del MonitorTag

es entonces asignado. El valor está en 0 mientras el procedimiento está aún en progreso.

Es 1 cuando se completó exitosamente ó -1 si hay un error antes de que sea completado

normalmente, SourceFile y DestinationFile son nombres de archivos. Sin embargo, si

un archivo es copiado con FileCopy, el destino también puede ser un directorio, como

muestra el siguiente ejemplo:

FileCopy(“C: \DATA.TXT”, “C: \BACKUP”, “Monitor”);

El tag Monitor será 1 cuando la copia sea realizada por completo.

Si SourceFile contiene varios archivos, sin embargo, el destino DEBE ser un

directorio. En caso contrario la función dará un código de error.

Ejemplo:

FileCopy(“C: \*. TXT”, “C: \BACKUP”, “Monitor”);

El tag Monitor será 1 cuando la copia sea realizada por completo.

Esta función es usada para borrar archivos indexados o innecesarios.

FileDelete(Filename).

Ejemplo:

Page 42: Manual Intouch

A 42

Status=FileDelete(“C:\DATA.TXT”)

Si el o los archivos son encontrados y borrados, la función estará en 1. En caso contrario

en 0.

Similar a FileCopy(), excepto que esta función mueve archivos de un lugar a

otra en vez de hacer una copia.

FileMove(SourceFile,DestinationFile,MonitorTag);

donde:

SourceFile - nombre del archivo fuente (incluyendo la ruta completa)

DestinationFile - nombre del archivo destino (incluyendo la ruta completa).

MonitorTag Nombre de un tag que usará el comando FileMove() para informar el

progreso del movimiento. Este parámetro debe tener un caracter referenciando el

nombre del tag(no el mismo nombre del tag). Si el tag monitor se llama Monitor, se

debe agregar “Monitor” o Monitor.name, no Monitor.

Cuando la función FileMove() es usada, ésta automáticamente arroja un valor 1 si el

procedimiento fue iniciado exitosamente. 0 si existe otro procedimiento en ejecución(el

nuevo procedimiento no podrá ser inicializado) ó 1 si existe un error. Usando estos

valores, la inicialización de FileMove() puede ser monitoreada:

Status=FileMove(“C:\DATA.TXT”,“C:\BACKUP\DATA.TXT”,“Monitor”);

donde:

Status es un tag entero el cual puede ser 1, -1 ó 0.

FileMove() - es ejecutado en segundo plano y no interfiere en la operación de InTouch.

MonitorTag - permite que el progreso de copiado sea monitoreado por una aplicación o

un usuario, el usuario puede ser alertado de errores que puedan ocurrir DESPUES que el

procedimiento sea inicializado. Este es diferente que el valor Status descrito

recientemente, el cual indica si el procedimiento ha sido iniciado exitosamente.

Page 43: Manual Intouch

A 43

Una vez que el movimiento ha sido exitosamente iniciado, el valor del

MonitorTag es entonces asignado. El valor está en 0 mientras el procedimiento está aún

en progreso. Es 1 cuando se completó exitosamente ó -1 si hay un error antes de que sea

completado. Si el SouceFile y DestinationFile se encuentran en el mismo disco, la

función cambia la referencia de directorio de archivos sin mover los datos. En este caso

el procedimiento será rápido, sin importar el tamaño del archivo.

Si el SouceFile y DestinationFile se encuentran en diferentes discos, el tiempo

de dependerá del tamaño del archivo. En este caso es transferida de un disco físico a

otro.

Ejemplo:

FileMove(“C:\DATA.TXT”, “D:\DATA.TXT”,“Monitor”);

Nota: También puede ser usado para renombrar archivos cuando el SourceName y

el DestinationName especifican el mismo directorio pero diferentes nombres de

archivos.

Ejemplo:

FileMove(“C:\DATA.TXT”, “C:\DATA.bak”,“Monitor”);

El archivo DATA.TXT es renombrado a DATA.BAK. El tag Monitor será 1 cuando la

copia sea realizada por completo.

Esta función lee variables separadas por coma, Comma Separated Variable

(CSV) de un archivo específico.

FieldReadFields(Filename,BytePosition,Tagname,NumberOfFields);

donde:

Filename especifica el archivo donde se leerán los campos.

BytePosition especifica la posición del comienzo de la lectura.

Page 44: Manual Intouch

A 44

Tagname especifica el nombre de un tag Intouch donde el primer ítem será escrito. El

name de este tag debe terminar en un número(ej. :MyTag1). Este parámetro debe ser un

caracter indicando el nombre del tag (no el tag mismo). Si el tag fuera MyTag, se debe

agregar “MyTag” o MyTag.name; no solamente MyTag1.

NumberOfFields especifica el número de campos a leer (el número de campos

separados por coma en cada registro del archivo).

Si el Tagname es “MyTag1” y NumberOfFields es 3, entonces hay 3 campos

leídos del archivo y son almacenados en MyTag1, MyTag2 y Mytag3. Estos tags, con

nombres consecutivos deben ser primeramente creados en InTouch y deben ser de tipos

diferentes(Integer, Message, etc.).

Ejemplo:

Si la primera línea de C:\DATA\FILE.TXT es: This is text, 3.1416,5

El siguiente script leerá esta línea y almacena “This is text” en MyTag1,

3.1416 en MyTag2 y 5 en MyTag3:

BytePosition=FileReadFields(“C:\DATA\FILE.TXT”,0,“MyTag”,3)

La función toma el nuevo valor de Byte position después de la lectura. Se puede usar

este valor como el BytePosition para la siguiente lectura.

Por ejemplo:

FileReadFields(“C:\DATA\FILE.TXT”, BytePosition,“MyTag1”,3)

Esta función leerá un número específico de bytes (o una línea completa) de un

archivo específico.

FileReadMessage(Filename,BytePosition,MessageTag,ByteCount);

donde:

Filename especifica el archivo desde donde se leerá.

BytePosition especifica la posición en el archivo para comenzar a leer.

Page 45: Manual Intouch

A 45

MessageTag corresponde al lugar donde almacenar el dato elido del archivo.

ByteCount especifica cuantos bytes a leer desde el archivo. Para archivos de texto,

ByteCount puede ser sesteado en 0. La función entonces leerá hasta el próximo linefeed

en el archivo.

Ejemplo:

FileReadMessage(“C:\DATA\FILE.TXT,0,MsgTag,0);

La primera línea será leída desde el archivo C:\DATA\FILE.TXT y almacenada en

MsgTag.

La función toma el nuevo byteposition después de la lectura. Este valor se puede usar

como el BytePosition para la próxima lectura.

Esta función escribe un registro tipo CVS para un archivo específico.

FileWriteFields(Filename, BytePosition; TagName, NumberOfFields);

donde:

Filename especifica el nombre del archivo a escribir. Si no existe es creado.

BytePosition especifica la ubicación en que archivo comenzará a ser escrito. Si

BytePosition es -1, la escritura comienza al final del archivo.

Tagname especifica el nombre de un tag InTouch de donde proviene el primer ítem de

dato. El nombre de este tag debe terminar con un número. Debe tener un caracter

indicando el nombre del tag.

NumberOfFields especifica el número de campos a escribir(número de campos

separados por coma grabados en el archivo).

Si el TagName es “MyTag1” y el NumberOfFields es 3, entonces 3 campos se

escriben en el archivo (desde MyTag1, MyTag2 y Mytag3). Estos tag con nombres

consecutivos deben ser primero creados en InTouch y deben ser de diferentes

tipos(Integer, Message, etc.)

Page 46: Manual Intouch

A 46

El siguiente script escribirá la línea “This text, 3.1416, 5” a la primera línea de

C:\DATA\FILE.TXT. “This text” es el actual valor en MyTag1, 3.1416 en MyTag2 y 5

en MyTag3:

FileWriteFields(“C:\DATA\FILE.TXT”,0,“MyTag”,3);

La función toma el nuevo valor del byte de posición después de la escritura. Este valor

se puede usar como el BytePosition para la próxima escritura.

El siguiente script escribirá el siguiente texto de MyTag al final de

C:\DATA\FILE.TXT:

FileWriteFields(“C:\DATA\FILE.TXT”,-1,“MyTag1”,3);

Esta función escribirá un numero de bytes específicos (o una línea completa) en

un archivo específico.

FileWriteMessage(Filename, BytePosition, MessageTag, linefeedFlag);

donde:

Filename especifica el archivo a escribir. Si el archivo no existe, será creado.

BytePosition especifica la ubicación en el archivo para comenzar a escribir. Si el

BytePosition es -1, la función escribirá al final del archivo.

MessageTag especifica los caracteres a escribir en el archivo.

LineFeedFlag especifica agregar o no una línea después de la operación de escritura.

Al escribir en un archivo de texto, setear el LineFeddFlag en 1.

La función retoma el nuevo byte de posición después de la escritura. Este valor

se puede usar como el BytePosition para la próxima escritura.

Ejemplo:

FileWriteMessage(“C: \DATA\FILE.TXT”, -1,MsgTag,1);

Page 47: Manual Intouch

A 47

Esta instrucción escribirá el tag de mensaje MsgTag al final del archivo C:

\DATA\FILE.TXT.

Esta función puede ser usada en un script para obtener el nombre de un nodo

NetDDE a una variable de caracteres. Formato válido:

GetNodeName(messagetagname, 131);

Cuando este script se ejecuta, la función GetNodeName() leerá el nombre del nodo local

y lo registrará en el messagetagname. (El número 131 establece la longitud del caracter

para el tagname de mensaje.)

Nota: Esta función se ejecuta sólo si se está ejecutando NetDDE.

Esta función oculta varias ventanas con un script. Un comando “Hide” debe

preceder a cada ventana que se desea cerrar.

Ejemplo:

Hide “WindowName”;

“WindowName” debe ser el nombre de una ventana que existe o será creada. En

runtime, si la ventana no existe, WindowViewer ignora la sentencia. También, si el

nombre de la ventana es usado en un script de cambios, ésta también será cambiada en

esta instrucción.

Nota: Si el script es solamente para mostrar u ocultar pantallas, se recomienda

usar el botón Touch Pushbotton que vincula Show Window o Hide Windows en

vez de esta función. Si esos botones son usados y cambia el nombre de la ventana,

Intouch hará el cambio en el vínculo.

Page 48: Manual Intouch

A 48

Esta función crea un botón genérico para ocultar a través de una aplicación

para ocultar la actual ventana activa.

Ejemplo:

HideSelf;

Nota: el funcionamiento del script de botón Hideself es sólo aplicable para un

action pushbutton script.

Esta función es usada para determinar si hubo algún error durante la última

recuperación de escritura. Ejemplo:

HTGetLastError(TrendName, UpdateCount; Pen#);

donde:

TrendName es un tag HistTrend representando el nombre la tendencia.

UpdateCount es un entero representando la tendencia. El campo UpdateCount, y Pen#

es un tag entero que representa el número de escritura (de 1 -4).

Los siguientes tag enteros ResultCodes serán dados:

0= Sin Error.

1=Error General del Servidor

2=Reuqerimiento Antiguo

3=Error de Archivo

4=Servidor no Cargado.

5= Tendencia/Escritura en la Función no Existe

6=Nombre del Tag de Tendencia no existe en la Base de Datos

7=Número de Escritura en la función es Inválida (fuera del rango 1 a 4)

Page 49: Manual Intouch

A 49

Ejemplo:

ResulCode=HTLastError(“Trend1.UpdateCount, Pen3);

Esta instrucción recupera el error para la última recuperación de Pen3 de la tendencia

con el tagname Trend1 y el resultado es puesto en el tag entero ResultCode.

Esta función convierte el tagname del tag actualmente usado por el pen# de la

tendencia especificada.

HTGetPenName(TrendName, UpdateCount, Pen#)

donde:

TrendName es un tag de HistTrend representando el nombre de la tendencia.

UpdateCount es un entero que representa la tendencia. El campo UpdateCount y Pen#

es un tag entero que representa el número de escritura (1-4). Un tag de mensaje es dado

representando el tag específico del pen.

Ejemplo:

TrendPen2=HTGetPenName(“Trend1”, Trend1.UpdateCount, Pend2);

Este ejemplo recupera el tagname para el Pen2 de la tendencia con el tagname Pen1 y

coloca el resultado en el tag de mensaje TrendPen2.

Esta función retorna el tiempo en segundos desde 00:00:00 hrs. GMT, January

1, 1970 para el muestreo en la ubicación del scooter especificado por Scooter# y

ScooterLocation. UpdateCount, Scooter#, y ScooterLocation permiten evaluar la

expresión ser evaluada cuando alguno de estos parámetros cambian. Esto asegura que la

expresión es evaluada después de nuevos restablecimientos o desplazamientos del

scooter.

Page 50: Manual Intouch

A 50

HTGetTimeAtScooter(TrendName, UpdateCount, Scooter#,

ScootertLocation)

donde:

TrendName es un tag HistTrend representando el nombre de una tendencia,

UpdateCount es un entero representando el campo UpdateCount de la tendencia,

Scooter# es un entero representando el scooter izquierdo o derecho (1=Scooter

Izquierdo, 2=Scooter Derecho), y ScooterLocation es un número real representando el

campo ScooterPosRight o ScooterPosLeft. Un entero es dado representando el tiempo

en segundos desde 1/1/70.

Ejemplo:

HTGetTimeAtSCooter(“Trend1”,Trend1.UpdateCount,1,Trend1.ScooterPosLeft);

Esta función restablece el tiempo en segundos por el valor a la posición del scooter

actual para el scooter izquierdo de la tendencia etiquetada Trend1.

Esta función retorna en la variable la hora/fecha para el muestreo a la ubicación

del scooter especificada por Scooter# y ScooterLocation. UpdateCount, Scooter# y

ScooterLocation causan que la expresión sea evaluada cuan algunos de estos parámetros

cambian. Esto asegura que la expresión es evaluada después de nuevos

restablecimientos o desplazamientos del scooter. El formato de la variable determina el

contenido del valor retornado.

Ejemplo:

NewRightTimeString=HTGetTimeStringAtScooter(TrendName,Update

Count,Scooter#,ScooterLocation,Format)

donde:

TrendName es un tag HistTrend representando el nombre de la tendencia,

UpdateCount es un entero representando el campo UpdateCount de la tendencia.

Scooter# es un número real que representa el scooter izquierdo o derecho(1=Scooter

Page 51: Manual Intouch

A 51

Izquierdo, 2=Scooter Derecho), ScooterLocation es un número real que representa el

campo ScooterPosRight o ScooterPosLeft de la tendencia, Format es una variable que

especifica el formato tiempo/fecha a usar, NewRightTimeString es un tag message

donde el resultado de la función será retornado.

Ejemplo:

HTGetTimeStringAtScooter(“Trend1”, Trend1.UpdateCount, 2,Trend1.

ScooterPosRight,”Time”);

Esta instrucción restablece el valor tiempo/fecha a la posición del scooter actual por el

scooter derecho de la tendencia llamada Trend1. El valor es almacenado en el tag

message NewRightTimeString y está en formato “Time”.

Los formatos pueden ser los siguientes: “Date”, “Time”, “DateTime”,

“DOWShort”(Wed, por ejemplo), y “DOWLong”(Wednesday, por ejemplo).

Esta función toma un valor del tipo requerido para la tendencia completa de un

Pen especificado. El parámetro UpdateCount causará que la expresión sea evaluada

después que una recuperación es completa.

Ejemplo:

HTGetValue(TrendName, UpdateCount, Pen#, ValueType)

donde:

TrendName es un tag HistTrend que representa el nombre de la tendencia.

UpdateCount es un entero que representa el campo UpdateCount de la tendencia.

Pen# es un tag entero que representa el número de escritura (1-4),

ValueType es una cadena que indica el tipo de valor. Este ValueType puede ser uno de

los siguientes:

“PenAverageValue”= Promedio de la tendencia completa

“PenMaxValue”= Máximo para la tendencia

“PenMinValue”= Mínimo para la tendencia

“PenStdDev”= Desviación standard para la tendencia

Page 52: Manual Intouch

A 52

Un tag de memoria real es dado representando el valor calculado de estos tipos.

Ejemplo:

LeftHemisphereSD=HTGetValue(“Trend1”, Trend1.UpdateCount, Pen2,”PenStdDev”)

Esta función obtendrá la desviación standard para el dato capturado para las tendencias

Trend1, Pen2. El valor es almacenado en el tag de memoria real LeftHemisphereSD.

Esta función entrega del tipo requerido para el muestreo en la posición del

scooter, tendencia y pen# especificados. El parámetro UpdateCount permite que la

expresión sea evaluada después de un restablecimiento completo.

HTGetValueAtScooter(TrendName, UpdateCount, Scooter#,

ScooterLocation, Pen#, ValueType)

donde:

TrendName es un tag HistTrend que representa el nombre de la tendencia,

UpdateCount es un entero que representa el campo. UpdateCount de la tendencia,

Scooter# es un entero que representa el scooter izquierdo o derecho (1=Scooter

Izquierdo, 2=Scooter Derecho)

Pen# es un entero que representa el número de pen (1-4)

ValueType es una variable que indica el tipo de valor a entregar. ValueType puede ser:

“PenValue”= Valor de la posición del Scooter.

“PenVaid”= 0 si no es válido, 1 si lo es.

Un tag de memoria real entrega el valor calculado “PenValue”. Un tag discreto

de memoria representa el valor para “PenValid”.

Ejemplo:

ValidFlag=HTGetValueAtScooter(“Trend1”,Trend1.UpdateCount,2,

Trend1.ScooterPRigh,Pen3,“PenValid”);

Page 53: Manual Intouch

A 53

Esta instrucción almacena un 1 si el valor es un muestreo actual o un 0 si no lo es para

el Pen3 de la tendencia Tren1 en un a flag el discreto de memoria Valid Flag para la

posición actual del scooter derecho.

Esta función retorna un valor del tipo requerido para el dato contenido entre las

posiciones del scooter derecho y el izquierdo para un escrito específico de la tendencia.

El parámetro UpdateCount permitirá que la expresión sea calculada después de un

restablecimiento completo.

HTGetValueAtZone(TrendName, UpdateCount, Scooter1,

Scooter2Location, Pen#,ValueType)

donde:

TrendName es un tag HistTrend que representa el nombre de la tendencia.

UpdateCount es un entero que representa el campo UpdateCount de la tendencia.

Scooter1Location es un real que representa el campo ScooterPosLeft de la tendencia.

Scooter2Location es un real que representa el campo ScooterPosRight de la tendencia.

Pen# es tag entero representando el número de escrito (de 1 a 4).

ValueType es una variable indicando el tipo de valor a retornar. Valuetype puede ser

uno de los siguientes:

“PenAverageValue”= Valor medio para la zona entre el scooter derecho y el izquierdo.

“PenMaxValue”= El máximo para la zona entre el scooter derecho y el izquierdo.

“PenMinValue”= El mínimo para la zona entre el scooter derecho y el izquierdo.

“PenStdDev”= Desviación standard para la zona entre el scooter derecho y el izquierdo.

Un tag de memoria real es dado representando el valor calculado de los tipos

dados anteriormente.

Ejemplo :

Page 54: Manual Intouch

A 54

AvgValue=HTGetValueAtZone(“Trend1”, Trend1.UpdateCount, Trend1.

ScooterPosLeft, Trend1.ScooterPosRight, Pen1,”PenAverageValue”);

Esta instrucción calcula el valor medio para el dato entre los scooters derecho e

izquierdo de la tendencia “Trend1”, Pen1. El valor es almacenado en el tag de memoria

real AvgValue.

Esta instrucción establece el tiempo de partida de la tendencia a un valor

anterior que el actual tiempo de partida por un porcentaje del ancho de la tendencia. El

efecto es mostrar el gráfico date/time a la izquierda por un porcentaje dado.

Ejemplo:

HTScrollLeft(TrendName, Percent)

donde:

TrendName es un tag HistTrend representando el nombre de la tendencia.

Percent es un número real representando el porcentaje del gráfico a desplegar (0.0 a

100.0). Ejemplo:

HTScrollLeft(“Trend”, 10.0);

Esta instrucción despliega el time/date para una tendencia con un tagname de Trend1 al

10%. Si la pantalla actual comienza a las 12:00:00 PM y en ancho de pantalla es de 60

segundos, entonces, la nueva tendencia comenzará a las 11:59:54 AM(después que la

función es ejecutada).

Esta instrucción establece el tiempo de partida de la tendencia a un valor

anterior que el actual tiempo de partida por un porcentaje del ancho de la tendencia. El

efecto es mostrar el gráfico date/time a la derecha por un porcentaje dado.

HTScrollRight(TrendName, Percent)

donde:

Page 55: Manual Intouch

A 55

TrendName es un tag HistTrend representando el nombre de la tendencia.

Percent es un número real representando el porcentaje del gráfico a desplegar (0.0 a

100.0). Ejemplo:

HTScrollRight(“Trend”, 20.0);

Esta instrucción despliega el time/date para una tendencia con un tagname de Trend1 al

20%. Si la pantalla actual comienza a las 12:00:00 PM y en ancho de pantalla es de 60

segundos, entonces, la nueva tendencia comenzará a las 12:00:12 PM (después que la

función es ejecutada).

Esta función es usada para asignar un diferente tagname a un trazado de

tendencia.

HTSetPenName(TrendName.Pen#,PenName)

donde:

TrendName es un tag HistTrend que representa el nombre de la tendencia

Pen# es un tagname entero representando el número de trazado(de 1 a 4)

PenName es una variable que representa el nuevo tagname asignado al trazado.

Ejemplo:

HTSetPenName(“Trend1”, Pen3, “OutletPressure”);

En esta instrucción Pen3 de Tendencia1 usará como tagname OutletPressure.

Esta función causa que el dato sea recuperado y mostrado con una hora final

igual a la hora actual. La hora de inicio será igual al EndTime - Ancho del gráfico.

HTUpdateToCurrentTime(TrendName)

donde:

TrendName es un tag HistTrend correspondiente al nombre de la tendencia.

Page 56: Manual Intouch

A 56

Ejemplo:

HTUpdateToCurrentTime(“Trend1”);

Esta instrucción recupera y muestra el dato para el tag histórico “Trend1” a la hora

exacta. Si fueran las 3:04 PM y el ancho de la tendencia es 60 segundos, la nueva hora

de término será 3:04 PM. La nueva hora de inicio será 3:03 PM.

Esta función calculará un nuevo ancho de gráfico y tiempo de inicio. Si el

campo ScooterPosLeft de la tendencia es 0.0 y ScooterPosRight es 1.0, entonces el

nuevo ancho del gráfico es igual al ancho antiguo dividido por dos. El nuevo tiempo de

inicio será calculado de acuerdo al valor de LockString.

HTZoomIn(TrendName, LockString)

donde:

TrendName es un tag HistTrend del nombre de la tendencia.

LockString es una variable que representa el tipo de zoom. Puede ser uno de los

siguientes:

“StartTime”= Mantiene el tiempo de inicio igual al de antes del zoom.

“Center” = Mantiene el tiempo central igual al de antes del zoom.

“EndTime”= Mantiene el tiempo final al de antes del zoom.

Si las posiciones de los scooters no están al final, el nuevo ancho del gráfico es

el tiempo entre ScooterPosLeft y ScooterPosRight. En ese caso, el valor de LockString

no se usa. El ancho mínimo del gráfico es 1 segundo. Las posiciones de los scooters

serán para ScooterPosLeft=0.0 y para ScooterPosRight=1 después del zoom.

Ejemplo:

HTZoomIn(“Trend1”, “StartTime”);

Page 57: Manual Intouch

A 57

Esta instrucción mostrará la pantalla en factor de dos y mantendrá el mismo

tiempo de inicio para el tag de tendencia “Trend1”. Trend1.ScooterPosRight es igual a 1

y Trend.ScooterPosLeft es igual a 0.0. Si el tiempo de inicio antes del zoom era 1:25:00

PM y el ancho del gráfico era 30 segundos (después de realizar el zoom), el tiempo de

inicio todavía será 1:25:00. Pero en ancho será de 15 segundos.

Calcula un nuevo ancho del gráfico y tiempo de inicio. El nuevo ancho del

gráfico es el antiguo multiplicado por dos. El nuevo tiempo de inicio será calculado de

acuerdo al LockString.

HTZoomOut(TrendName, LockString)

donde:

TrendName es un tag HistTrend del nombre de la tendencia.

LockString es una variable que representa el tipo de zoom. Puede ser uno de los

siguientes:

“StartTime”= Mantiene el tiempo de inicio igual al de antes del zoom.

“Center” = Mantiene el tiempo central igual al de antes del zoom.

“EndTime”= Mantiene el tiempo final al de antes del zoom.

Si las posiciones de los scooters no tienen efecto sobre HTZoomOut.

ScooterPosLeft=0.0 y ScooterPosRight. =1 después del zoom.

Ejemplo:

HTZoomOut(“Volume”, “Center”);

Esta instrucción mostrará la pantalla en factor de dos y mantendrá el mismo tiempo

central para el tag de tendencia “Volume”. Si el tiempo de inicio antes del zoom era

2:15:00 PM y el ancho del gráfico era 30 segundos, el tiempo de inicio después de

realizar el zoom todavía será 2:15:00. El ancho será de 60 segundos y el tiempo central

de la tendencia permanecerá en 2:15:15.

Page 58: Manual Intouch

A 58

Prueba cuando una aplicación está Activa.

ResulDiscrete=InfoAppActive(TaskListname);

El título para una aplicación en particular puede ser determinado usando la función

InfoAppTitle.

Ejemplos:

InfoAppActive(“Microsoft Excel”) será 1 (si se está ejecutando)

InfoAppActive(“Calculator”) será 0 (si no se está ejecutando)

Esta función retorna al programa especificado que está corriendo en la Lista de

Tareas.

ResultMessage=InfoAppTitle(ProgramEXEName);

En esta instrucción, el programa, si existe, de nombre ProgramExeName será asignado a

ResultMessage. Por ejemplo, un ProgramExeName “calc” será “Calculator”.

Ejemplos:

InfoAppTitle(“calc” será “Calculator”

InfoAppTitle(“excel”) será “Microsoft Excel”

Entrega la información de un disco local o conectado en la red.

ResultInteger=InfoDisk/DriveLetter, InfoType, Trigger);

Page 59: Manual Intouch

A 59

En esta instrucción, la información acerca del disco especificado por la letra del

DriveLetter es asignada a ResultInteger. InfoType determina la información deseada en

particular:

Case1: Entrega el tamaño total del disco (en bytes).

Case2: Entrega el espacio disponible en el disco (en bytes).

Trigger ejecutará la función InfoDisk cada tiempo que el valor del Trigger cambia.

Ejemplo:

InfoDisk(“C”, 1, $Minute) será 233869345 (capacidad total)

InfoDisk(“C”, 2, $Minute) será 3238935 (espacio disponible)

En estos ejemplos, la función se ejecutará cada minuto y entregará el valor actual.

Nota: Trigger puede ser algún tagname (no está limitado a un sistema de

variables).

Nota: Así como en otras funciones se usan caracteres simples, si el tag message

contiene más de una letra y es usado en InfoDisk (como DriveLetter), sólo el

primer caracter del tag será considerado.

Esta función retorna la información sobre un archivo o subdirectorio específico

en un computador (o equipo conectado en red).

ResultInteger=InfoFile(FileName, InfoType, Trigger);

En esta instrucción, la información acerca de un archivo especificado como FileName

es retornada a ResultInteger. El FileName debe incluir la ruta completa del archivo,

pero también puede incluir los caracteres comodines(*,?). InfoType determina la

información en particular que se muestra a continuación:

Case 1: ¿Existe el archivo?. Es 1 si el nombre del archivo es un archivo actual. Es 2 si

el FileName es un directorio. Es 0 y la función no puede encontrar el archivo.

Page 60: Manual Intouch

A 60

Caso 2: Tamaño del archivo(en bytes)

Caso 3: Fecha/Hora del archivo. ( en segundos desde Jan-1-1970)

Caso 4: Número de archivos que cumplen con la descripción del filename. Este valor

será mayor que 1 para búsquedas semejantes.

Trigger ejecutará la función InfoFile cada vez que el valor de Trigger Cambie.

Ejemplos:

InfoFile(“c:\intouh\view.exe”, 1, $Minute) será 1 (encuentra el archivo)

InfoFile(“c:\intouh\view.exe”, 2, $Minute) será 634960(tamaño del archivo)

InfoFile(“c:\intouh\view.exe”, 3, $Minute) será 736701852 (encuentra el

archivo)

InfoFile(“c:\intouh\*. exe”, 4, $Minute) será 17 (encuentra 17

archivos.EXE)

En estos ejemplos, la instrucción se ejecutará cada minuto.

Nota: Trigger puede ser cualquier tagname (no está limitado a variables del

sistema).

Esta aplicación retorna al directorio actual de la aplicación InTouch.

ResultMessage=InfoInTouchAppDir();

En esta instrucción, la aplicación InTouch actual es asignada a ResultMessage.

Ejemplo:

InfoInTouchAppDir() será “c:\demoapp1”

Esta función retorna varios valores en los recursos.

ResultInteger=InfoResources(ResourceType, Trigger);

Page 61: Manual Intouch

A 61

En esta instrucción, el recurso del sistema en particular especificado por el entero

ResourceType es almacenado en ResultInteger. ResourceType determina el valor del

recurso establecido, el cual puede ser:

Caso 1: Entrega el porcentaje de espacio libre para recursos GDI.

Caso 2: Entrega el porcentaje de espacio libre para recursos del USUARIO.

Caso 3: Entrega el número de bytes de memoria libre actual.

Caso 4: Entrega el número de tareas que están corriendo actualmente.

Trigger ejecutará la función InfoResources cada vez que el valor de Trigger Cambie.

Ejemplos:

InfoResources(1, $Minute) será 54 (% libre)

InfoResources(2, $Minute) será 36 (% libre)

InfoResources(3, $Minute) será 11524093 (bytes)

InfoResources(4, $Minute) será 14 (tareas)

En estos ejemplos, la instrucción se ejecutará cada minuto.

Nota: Trigger puede ser cualquier tagname (no está limitado a variables del

sistema).

Esta función retorna el próximo entero menor o igual a un número específico.

ResultNumericTag=Int(InputNumericTag)

Cuando se ingresan números reales negativo, esta función retorna el entero más alejado

del cero.

Ejemplos:

Int(4.7) será 4

Int(-4.7) será -5

Page 62: Manual Intouch

A 62

Esta función retorna el logaritmo natural de un número.

ResultNumericTag=Log(InputNumericTag)

Ejemplos:

Log(100) será 4.605...

Log(1) será 0

Log(0) es indeterminado.

Esta función escribirá un mensaje definido por el usuario en el WWLogger.

LogMessage(Message);

En esta instrucción, el contenido de Message será escrito en el WWLogger.

Ejemplo:

LogMessage(“Report Script is Running”);

La siguiente línea aparecerá en el WWLogger:

94/01/14 15:21:14 WWSCRIPT Message: Report Script is Running

Entrega el valor del logaritmo en base n.

ResultNumericTag=Log(InputNumericTag, BaseNumericTag)

Ejemplos:

LogN(8,3) será 1.89279...

LogN(3,7) será 0.564...

Base 1 es indeterminado.

Page 63: Manual Intouch

A 63

Esta función retorna el valor de Pi().

ResultNumericTag=Pi()

Ejemplo:

Pi() será 3.1416926...

Esta función toca una música o sonido especificado por un archivo .wav o una

entrada en la sección [sounds] del archivo WIN.INI mediante el dispositivo de sonidos

(si está instalado).

Ejemplo:

PlaySound(“c:\horns.wav”, 1);

En esta instrucción, el 1 permite tocar el sonido en forma asincrónica. Para un sonido

repetitivo, se ingresa un 9.

Nota especial: El sonido debe estar en la memoria física disponible y ser ejecutado

en una unidad de sonido instalada. Los directorios en donde se buscan los archivos

de sonido están en orden: Directorio actual; Directorio Windows; Directorio

Windows\System; los directorios listados en el PATH. Si un archivo .wav especifico

no puede ser encontrado, se escuchará el sonido por defecto por la entrada del

SystemDefault en la sección [sounds] del archivo WIN.INI Si no existe el sonido

por defecto o no es encontrado, la función no se escuchará.

Esta función crea un botón para ser usado en la impresión del gráfico Historical

Trend asociado con el tagname HistTrend específico. La Tendencia Histórica debe estar

visible cuando se usa esta función.

Ejemplo:

PrintHT(HistTrend1);

Page 64: Manual Intouch

A 64

Esta función es usada para imprimir una ventana. Al usar esta función muchos

reportes pueden ser encolados. Cuando se selecciona esta función, el View carga la

pantalla en un área de memoria “off screen” o “fuera de pantalla”. Entonces el View

espera 10 segundos para permitir a todas las variables DDE ser actualizadas. La ventana

entonces en enviada a la impresora. El tiempo de espera que el View tiene puede ser

controlado al agregar la siguiente línea al archivo INTOUCH.INI:

PrintWindowWait=10000

donde: 10000 representa el número en milisegundos de espera.

Las fuentes son impresas como fuentes, los objetos se imprimen como mapas

de bits. Las ventanas con fondo blanco que contienen sólo letras se imprimen

rápidamente. Las que contienen fondo de color y varios objetos toman un tiempo

considerable en imprimir.

Ejemplo:

PrintWindow(WindowName, left, top, width, height, options)

donde:

WindowName es el nombre de la pantalla a imprimir.

left número con punto flotante en pulgadas correspondiente al margen izquierdo.

top número con punto flotante en pulgadas correspondiente al margen superior.

width número con punto flotante en pulgadas que establece el ancho que no se imprime.

Este por defecto puede ser 0, o puede tener un ancho específico.

height número con punto flotante en pulgadas que establece el largo que no se imprime.

Este por defecto puede ser 0, o puede tener un ancho específico.

options puede ser 0 ó 1 y sólo se usan si width y height están en 0. Si options está en 1,

la ventana se imprime con el aspecto de la razón del largo que es un entero múltiplo del

tamaño de la ventana. Si options está en 0, la ventana se imprime con el aspecto más

amplio que se ajuste a la página.

Page 65: Manual Intouch

A 65

Nota: Si la ventana contiene mapas de bits, options debe estar en 1 para evitar

imágenes angostas.

El siguiente ejemplo de Script de Condición podría imprimir 3 páginas de

reporte cada día a las 8:30 AM:

$Hour==8 and $Minute==30;

PrintWindow(“1sr Shift Summary”, 1,1,0,0,0);

PrintWindow(“2nd Shift Summary”, 1,1,0,0,0);

PrintWindow(“3rd Shift Summary”, 1,1,0,0,0);

La función PrintWindow() es 1 si la ventana existe y pudo ser encolada para imprimir.

De otro modo, es 0. Además, el estado de la función puede ser monitoreado.

Ejemplo:

Status=PrintWindow(“Shift Summary Overview”, 1,1,0,0,0);

donde:

Status es un tag discreto que puede ser 1 ó 0.

Esta función redondea un número real a una precisión específica.

ResultNumericTag=Round(InputNumericTag, Precision);

El parámetro Precision establece la precisión a la cual el InputNumericTag será

redondeado. Ejemplos:

Round(4.3,1) será 4

Round(4.3, .01) será 4.30

Round(4.5,1) será 5

Round(-4.5,1) será -5

Round(106,5) será 106

Round(43.7, .5) será 43.5

Page 66: Manual Intouch

A 66

Esta función activa teclas para otra aplicación. En la otra aplicación, las teclas

aparecerán como si se hubiesen ingresado desde el teclado mismo. Esta capacidad

puede ser usada para ingresar datos a la aplicación como también comandos a ella. La

mayoría de las teclas del teclado pueden usadas en el SendKeys. Cada tecla se

representa por uno o más caracteres tal como la A es para la letra A o {Enter} para la

tecla Enter. Para especificar más de una tecla, se debe concatenar los códigos para cada

caracter. Por ejemplo, para especificar el signo pesos ($) seguido por una b, ingresar $b.

La siguiente lista muestra los sendkeys con sus teclas válidas para ser utilizadas por el

teclado:

BACKSPACE {BACKSPACE} o {BS} HELP

{HELP}

BREAK {BREAK} HOME {HOME}

CAPSLOCK {CAPSLOCK} INSERT {INSERT}

DELETE {DELETE} o {DEL} NUMLOCK {NUMLOCK}

DOWN {DOWN} PAGE DOWN {PGDN}

END {END} PAGE UP {PGUP}

ENTER {ENTER} o { } PRTSC {PRTSC}

ESCAPE {ESCAPE} o {ESC} RIGHT {RIGHT}

F1 {F1}* TAB {TAB}

* Igual con las demás teclas de función UP {UP}

Para especificar que las teclas Shift, Ctrl y/o Alt sean presionadas mientras otra tecla lo

está, la otra tecla debe estar en minúsculas y entre paréntesis.

Ejemplo:

Sendkeys”^(p)”;

Si dos de esas teclas son usadas juntas, se utiliza un segundo par de paréntesis. Por

ejemplo, para presionar Ctrl+Alt+p se debe ingresar:

ActivateApp “Microsoft Excel”;

SendKeys “^(%(p))”;

Page 67: Manual Intouch

A 67

El comando debe ser precedido por una ActivateApp para dirigir las teclas a la

aplicación respectiva.

Esta función modifica la aplicación o las porciones de un nombre o tópico de

un DD·E Access Name durante la ejecución runtime lo cual permite la implementación

de estrategias de respaldo (hot-backup) para InTouch.

Ejemplo:

SetDddeAppTopic(“DDEAccessName”, “Application”, “Topic”);

El “DDEAccessName” es el nombre actual de la definición DDE Access Name a ser

modificado. “Application” es el actual programa de la nueva aplicación, por ejemplo,

genius; y “Topic” es el nuevo nombre a ser usado por el DDE Access Name. (Estos

términos deben estar entre comillas como se muestra en el ejemplo). Si la nueva

aplicación o tópico está en blanco, la aplicación o tópico no cambian. Ejemplo:

SetDdeAppTopic(“PLC1”, “genius”, “”);

Estos tres argumentos pueden ser variables de caracteres constantes o variables.

Nota: Cuando se ejecuta SetDdeAppTopic, existe un retardo cuando se inicia como

cuando se termina una conversación DDE. Durante este tiempo cualquier

modificación al nuevo tópico se perderá.

Esta función determina el signo de un valor(si es positivo, negativo o cero).

ResulNumericTag=Sgn(InputnumericTag);

Page 68: Manual Intouch

A 68

Si la entrada es positiva, el resultado será 1. Para números negativos será -1 y para el 0

será 0.

Ejemplos:

Sgn(425) será 1

Sgn(0) será 0

Sgn(-37.3) será -1

Muestra una ventana específica. Ejemplo:

Show “WindowName”;

WindowName debe ser el nombre de una ventana existente o una ventana que será

creada. En runtime si la ventana no existe, WindowViewer ignora la instrucción.

También, si el nombre de la ventana cambia, el script también debe ser cambiado.

Nota: Si el script solo está mostrando u ocultando ventanas, es recomendable usar

los vínculos Show Window o Hide Window. Si se usan y el nombre de la ventana

cambia, InTouch automáticamente hará los cambios.

Esta función especifica la posición del pixel horizontal y vertical de una

ventana cuando es mostrada. Cuando se abre la ventana, ésta será centrada a las

coordenadas vertical y horizontal. Ejemplo:

ShowAt(“WindowName”, 100,200);

En esta instrucción, el 100 representa el pixel horizontal y 200 el vertical. Objetos de

entrada análoga (Analog Input) también pueden ser creados y vinculados a tagnames de

Page 69: Manual Intouch

A 69

memoria, por ejemplo, Horz y Vert, a cambios dinámicos de la posición de la ventana

durante el runtime. En este caso la instrucción podría ser:

ShowAt(“WindowName”, HORZ, VERT);

Para determinar la ubicación de los pixel en un objeto, los tagnames internos $ObjHorz

y $ObjVer pueden ser asignados a vínculos de salidas análogas que mostrará las

posiciones del objeto seleccionado actualmente. Una ventana puede ser creada para

aparecer centrado sobre un objeto o botón usando los tagnames $ObjHorz y $ObjVer en

un script vinculado al objeto o botón.

Ejemplo:

ShowAt(“WindowName”, $ObjHor, $ObjVer);

Esta función muestra la(s) ventana(s) “home”. Las ventanas “Home” son

configuradas a través del comando /Special/Configure... /View Home Windows...

Ejemplo:

ShowHome;

Especifica la ubicación horizontal y vertical del pixel de la esquina superior

izquierda de una ventana cuando es mostrada. Cuando se abre la ventana, su esquina

superior izquierda será ubicada donde las coordenadas horizontal y vertical se ubiquen.

(La esquina superior izquierda más extrema de la ventana está en la ubicación del pixel

0,0).

Nota: Esta función trabaja exactamente igual que la función ShowAt descrita

anteriormente excepto que ésta última controla donde la esquina superior

izquierda de la ventana aparecerá.

Page 70: Manual Intouch

A 70

Esta función entrega el valor del seno de un ángulo en grados.

ResulNumericTag=Sin(InputNumericTag)

Ejemplos:

Sin(90) será 1

Sin(0) será 0

Permite al InTouch calcular automáticamente la raíz cuadrada de un valor.

Ejemplo:

AnalogTag1=Sqrt(AnalogTag2);

Esta función automáticamente ejecuta otra aplicación de Windows. La

instrucción es la siguiente:

StartApp”AplicationName”{“DocumentName”};

“AplicationName” es el actual nombre del programa de aplicación que será ejecutado,

Por ejemplo; Excel.exe. La parte “DocumentName” es opcional y se refiere a abrir un

documento específico cuando parte la aplicación.

Ejemplo:

StartApp”Excel.exe Report.XLS”;

Esta instrucción ejecutará el Excel y abrirá inmediatamente la hoja de cálculo llamada

Report.XLS. Si No es usado el nombre del documento la instrucción será:

StartApp”Excel.exe”;

Page 71: Manual Intouch

A 71

Esta instrucción ejecutará Excel.exe y la hoja de cálculo por defecto será Sheet1.

Aunque no es un requerimiento, es recomendable incluir la extensión.exe en el nombre

del programa o aplicación.

Entrega el valor en código ASCII del primer caracter de un tag de mensaje

específico.

IntegerTag=StringASCII(MessageTag);

En esta instrucción, el valor ASCII del primer caracter en MessageTag será entregado al

IntegerTag.

Ejemplos:

StringASCII(“A”) será 65

StringASCII(“A Mixer is Running”) será 65

StringASCII(“a mixer is running) será 97

Nota: Como en otras funciones donde el primer caracter es chequeado o afectado,

si el tag de mensaje dado para la instrucción StringASCII contiene más de un

caracter, sólo el primero del tag será utilizado para la conversión.

Entrega el caracter correspondiente a un código ASCII específico.

MessageTag=StringChar(IntegerTag);

En esta instrucción, el caracter ASCII especificado por el IntegerTag es retornado al

MessageTag. Una utilización de esta función es que se puede agregar caracteres ASCII

que normalmente no están representados en el teclado para tags de mensajes.

Ejemplo:

ControlString=MessageTag+StringChar(13)+StringChar(10);

Page 72: Manual Intouch

A 72

En este ejemplo, un [CR y un [LF han sido agregados al final de MessageTag y

traspasados a ControlString. La inserción de caracteres fuera del rango normal de 32 a

126 de caracteres visuales pueden ser útilmente usados en la creación de códigos de

control para ciertos dispositivos externos tales como impresoras o módems.

Convierte un entero en una representación de caracteres de diferente base

numérica.

ResultMessage=StringFromIntg(IntegerTag, Base);

En esta instrucción, IntegerTag es convertido a la Base especificada y el resultado es

almacenado en ResultMessage.

Ejemplos:

StringFromIntg(26,2) será el código binario “11010”

StringFromIntg(26,8) será el número octal “32”

StringFromIntg(26,16) será el número hexadecimal “1A”

Convierte un valor real a una representación como un número con punto

flotante o como notación exponencial.

ResultMessage=StringFromReal(RealTag, Precision, StringType);

En esta instrucción, RealTag es convertido a la precisión y tipo y caracter especificado y

el resultado es almacenado en ResultMessage. La variable Precision especifica cuantos

decimales serán mostrados. StringType determina el método en que aparecerá de

acuerdo a:

StringType=“f” muestra la notación con punto flotante.

StringType=“e” muestra la notación exponencial en minúscula “e”.

Page 73: Manual Intouch

A 73

StringType=“E” muestra la notación exponencial en mayúscula “E”.

Ejemplos:

StringFromReal(263.355,2,”f”) será “263.36”

StringFromReal(263.355,2,”e”) será “2.63e2”

StringFromReal(263.55,3,”E”) será “2.636E2”

Convierte un valor del tiempo (en segundos desde Jan 01-1970) a una

representación particular.

ResultMessage=StringFromTime(TimeValue, StringType);

En esta instrucción, TimeValue es convertido al StringType especificado y el resultado

es almacenado en ResultMessage. StringType determina la forma en que se mostrará de

acuerdo a:

Caso 1: Muestra la fecha en el mismo formato del panel de control. Similar al que es

mostrado por $DateString.

Caso 2: Muestra la hora en el mismo formato del panel de control. Similar al que es

mostrado por $TimeString.

Caso 3: Muestra una cadena de 24 caracteres indicando la fecha y la hora. Ejemplo :

“Wed Jan 02 02:03:55 1993”

Caso 4: Muestra el día de la semana abreviado. Ejemplo: “Wed”.

Caso 5: Muestra el nombre completo del día de la semana. Ejemplo: “Wednesday”.

Ejemplos:

StringFromTime(86400,1) será “1/2/70”

StringFromTime(86400,2) será “12:00:00 AM”

StringFromTime(86400,3) será “Fri Jan 02 00:00:00 1970”

StringFromTime(86400,4) será “Fri”

StringFromTime(86400,5) será “Friday”

Page 74: Manual Intouch

A 74

Esta función retorna la posición en el MessageTag donde ocurre primero

MessageToFind.

IntegerTag=StringInString(MessageTag, MessageToFind, StartPosition,

CaseSensitive);

En esta instrucción, el MessageTag es buscado para encontrar el MessageToFind. Si

está varias veces en el MessageTag, La posición del primer encuentro será dado a

IntegerTag. StartPosition es un entero que determina desde que posición comienza la

búsqueda en el MessageTag. El parámetro CaseSensitive determina cuando la búsqueda

será exacta (0=n0 y 1=yes).

Ejemplos:

StringInString(“The mixer is running”, “mix”, 1,0) será 5

StringInString(“Today is Thursday”, “day”, 1,0) será 3

StringInString(“Today is Thursday”, “day”, 10,0) será 15

StringInString(“Today is Veteran’s Day”, “Day”,1,1) será 20

StringInString(“Today is Veteran’s Day”, “Night”, 1,1) será 0

Considera los primeros caracteres de un tag de mensaje específico.

ResultMessage=StringLeft(MessageTag, IntegerTag);

Ejemplos:

StringLeft(“The Control Pump is On”, 3) será “The”

StringLeft(“Pump 01 is On”, 3) será “Pum”

StringLeft(“Pump 01 is On”, 3) será “Pump 01 is On”

Determina la longitud de un tag de mensaje específico.

Page 75: Manual Intouch

A 75

IntegerTag=StringLen(MessageTag);

En esta instrucción, la longitud (en caracteres) de MessageTag es dada a IntegerTag.

Todos los caracteres en el tag de mensaje, incluyendo los que no aparecen en pantalla

son contados.

Ejemplos:

StringLen(“Twelve percent”) será 14

StringLen(“12%”) será 3

StringLen(“The end. [CR “) será 10

Nota: [CR es el caracter retorno de carro, en ASCII es el 13.

Convierte todos los caracteres en mayúsculas a minúsculas de un tag de

mensaje específico.

ResultMessage=StringLower(MessageTag);

Los caracteres en minúsculas, símbolos, números y otros caracteres especiales no son

afectados.

Ejemplos:

StringLower(“TURBINE”) será “turbine”

StringLower(“22.2 Is The Value) será “22.2 is the value”

Toma un número específico de caracteres de un tag de mensaje, partiendo de la

posición especificada.

ResultMessage=StringMid(MessageTag, StartInteger, SpanInteger);

Page 76: Manual Intouch

A 76

Esta función es levemente diferente de las otras StringLeft y StringRight en que permite

al usuario especificar el comienzo y el final de la cadena de caracteres que será extraído

del tag de mensaje. StartInteger especifica la posición del primer caracter a extraer.

SpanInteger el número total de caracteres a retornar.

Ejemplos:

StringMid(“The Furnace is Overheating”, 5,7) será “Furnace”

StringMid(“The Furnace is Overheating”, 13,3) será “is”

StringMid(“The Furnace is Overheating”, 16,50) será “Overheating”

Reemplaza o cambia partes específicas de una variable de caracteres dada.

ResultMessage=StringReplace(MessageTag, SearchForString, ReplaceWithString,

CaseSensitive, NumberTo.MatchWholeWord);

Usando esta instrucción se pueden cambiar caracteres, palabras o frases con tag

de string. Los parámetros de StringReplace() son:

MessageTag es la cadena de caracteres o frase que se desea modificar.

SearchForString es la cadena de caracteres que se desea buscar y reemplazar.

ReplaceWithString es la cadena que es reemplazada.

CaseSensitive determina la exactitud de los cambios(0=no y 1=yes)

NumberToReplace determina el número de ocurrencia a reemplazar (-1=todas)

MatchWholeWord determina si la función limitará el reemplazo a palabras completas

(0=no y 1=yes). Si MatchWholeWord se deja en 1 y SearchForString es “and”, el “and”

en la palabra “handle” no será reemplazado. Si el WatchWholeWord está en 0, todo

puede ser reemplazado.

Ejemplos:

StringReplace(“In From Within”, “In”, “Out”, 0, 1,0 es “Out From Within”

(sólo se reemplaza el primer caracter encontrado).

Page 77: Manual Intouch

A 77

StringReplace(“In From Within”, “In”, “Out”, 0, -1,0 es “Out From WithOut”

(reemplaza todos los encontrados).

StringReplace(“In From Within”, “In”, “Out”, 1, -1,0 es “Out From Within”

(Reemplaza el caracter encontrado).

StringReplace(“In From Within”, “In”, “Out”, 0, -1,1 es “Out From Within”

(reemplaza todas las palabras completas).

Considera los últimos caracteres de un tag de mensaje específico.

ResultMessage=StringRight(MessageTag, IntegerTag);

Ejemplos:

StringLeft(“The Control Pump is On”, 2) será “On”

StringLeft(“Pump 01 is On”, 5) será “is On”

StringLeft(“Pump 01 is On”, 87) será “Pump 01 is On”

Esta función es usada para generar una cadena de espacios en un tag de

mensaje o una expresión.

MessageTag=StringSpace(IntegerTag);

En esta instrucción, StringSpace entrega una serie de espacios cuya longitud está

especificada por el IntegerTag.

Nota: En el siguiente ejemplo, todos los espacios son representados por el caracter

“x”.

StringSpace(4) será “xxxx”

“Pump” + StringSpace(1) + “Station” será “PumpxStation”

Page 78: Manual Intouch

A 78

Esta función determina el primer caracter de un tag de mensaje para determinar

si es de un cierto tipo.

DiscreteTag=StringTest(Message Tag, IntegerTag)

En esta instrucción, StringTest dará un valor positivo a DiscreteTag si el primer caracter

en MessageTag es del tipo especificado en IntegerTag. Los diferentes casos que pueden

ser chequeados están dentro de las siguientes categorías:

Clase 1: Caracter Alfanumérico (‘A’ -‘Z’, ‘a’ - ‘z’ y ‘0’ - ‘9’)

Clase 2: Caracter Numérico (‘0’ - ‘9’)

Clase 3: Caracter Alfabético (‘A’ - ‘Z’ y ‘a’ - ‘z’)

Clase 4: Caracter en Mayúscula (‘A’ - ‘Z’)

Clase 5: Caracter en minúscula (‘a’ - ‘z’)

Clase 6: Caracter de puntuación (0x21 - 0x2F)

Clase 7 Caracteres ASCII (0x00 - 0x7F)

Clase 8: Caracteres Hexadecimal (‘A’ - ‘F’ o ‘a’ - ‘f’’ ó ‘0’ - ‘9’)

Caso 9 Caracteres de impresión (0x20-0x1E)

Caso 10 Caracteres de Control (0x00 - 0x1F o 0x7F)

Caso 11 Caracteres de Espacio en Blanco (0x09 - 0x0D o 0x20)

Como en las otras funciones, sólo es chequeado el primer caracter cuando el StringTest

contiene más de un caracter.

Ejemplos:

StringTest(“ACB123”, 1) será 1

StringTest(“ACB123”, 5) será 0

Page 79: Manual Intouch

A 79

Convierte el valor numérico de un tagname de mensaje a un valor entero que

pueda ser calculado.

Ejemplo:

IntegerTag=StringToIntg(MessageTag);

En esta instrucción, IntegerTag es un tagname tipo entero y MassageTag es un tagname

tipo mensaje. Cuando esta instrucción es evaluada, el sistema lee el primer caracter en

busca de un valor numérico. Si el primer caracter es distinto a un número (sin

considerar los espacios en blanco), el valor de la variable es cero(0). Si el primer

caracter es un número, el sistema continúa leyendo los siguientes caracteres hasta

encontrar un valor no numérico.

Ejemplos:

Si MessageTag=“ABCD”, entonces IntegerTag=0

Si MessageTag=“22.22 is the value” entonces IntegerTag=22

Si MessageTag=“The Value is 22” entonces IntegerTag=0

Esta función convierte el valor numérico de un tagname de mensaje a un valor

real(punto flotante) que pueda ser calculado.

Ejemplo:

RealTag=StringToReal(MessageTag);

En esta instrucción, RealTag es un tagname tipo real y MassageTag es un tagname tipo

mensaje. Cuando esta instrucción es evaluada, el sistema lee el primer caracter en busca

de un valor numérico. Si el primer caracter es distinto a un número (sin considerar los

espacios en blanco), el valor de la variable es cero(0). Si el primer caracter es un

número, el sistema continúa leyendo los siguientes caracteres hasta encontrar un valor

no numérico. Ejemplos:

Page 80: Manual Intouch

A 80

Si MessageTag=“ABCD”, entonces RealTag=0

Si MessageTag=“22.261 is the value” entonces RealTag=22.261

Si MessageTag=“The Value is 22” entonces RealTag=0

Esta función es usada para remover espacios indeseados en un tag de mensaje.

ResultMessage=StringTrim(MessageTag, IntegerCode);

En esta instrucción, MessageTag es buscado por espacios en blanco (Código ASCII

0x0D o 0x20) que serán removidos. IntegerCode determina el método a usar en la

función.

Caso 1: Remover espacios iniciales(a la izquierda del primer caracter)

Caso 2: Remover espacios finales(a la derecha del último caracter)

Caso 3: Remover todos los espacios a excepción del espacio entre palabras.

Ejemplos:

StringTrim(“xxxxThisxisxaxxtestxxxx”, 1) será “Thisxisxaxxtestxxxx”

StringTrim(“xxxxThisxisxaxxtestxxxx”, 2) será “xxxxThisxisxaxxtest”

StringTrim(“xxxxThisxisxaxxtestxxxx”, 3) será “Thisxisxaxtest”

Nota: En estos ejemplos los espacios en blanco son representados por “x”.

Nota: La función StringReplace() puede ser usada para remover TODOS los

espacios de un tag de mensaje específico. Simplemente reemplazar todos los

espacios con un caracter nulo.

Esta función convierte todos los caracteres en minúscula a mayúscula.

ResultMessage=StringUpper(MessageTag);

Page 81: Manual Intouch

A 81

Los caracteres en mayúsculas, símbolos, números y otros caracteres especiales no son

alterados.

Ejemplos:

StringUpper(“abcd”) será “ABCD”

StringUpper(“22.2 is the value”) será “22.2 IS THE VALUE”

Entrega el valor de la tangente de un ángulo en grados.

ResulNumericTYag=Tan(InputNumericTag)

Ejemplos:

Tan(45) será 1

Tan(0) será 0

Esta función permite que un tagname de tipo mensaje muestre el valor de un

tagname análogo(entero o real) de acuerdo a un “formato” específico.

Ejemplo:

MessageTag=Text(AnalogTag,”#.00”);

En esta instrucción, MessageTag es un mensaje tipo tagname, AnalogTag es un

tagname tipo entero o real y “#.00” representa la forma en que se muestra el valor.

Ejemplo:

Si AnalogTag=66 entonces MessageTag=66.00.

Si AnalogTag=22.269 entonces MessageTag=22.27.

Si AnalogTag=9.999 entonces MessageTag=10.00.

Page 82: Manual Intouch

A 82

Esta función trunca un número real eliminando la parte a la derecha del punto

decimal.

ResultNumericTag=Trunc(InputnumericTag)

Esta función toma el mismo valor y el contenido de un número real lo convierte en un

tag entero.

Ejemplos:

Trunc(4.3) será 4

Trunc(-4.3) será –4

Esta función permite al usuario controlar otra a aplicación desde InTouch,

dando la capacidad de Restaurar, Minimizar, Maximizar o Cerrar tal aplicación.

WWControl(TaskListname, ControlAction);

El TaskListname para una aplicación en particular puede ser determinado usando la

función InfoAppTitle. El parámetro ControlAction determina el control de la aplicación

(estas acciones son las mismas en la selección correspondiente al menú de control de la

aplicación), las cuales son:

ControlAction= “Restore”: Activa y muestra la ventana de la aplicación.

ControlAction=“Minimize”: Activa una ventana y la minimiza en un icono.

ControlAction=“Maximize”: Activa y muestra la ventana de la aplicación.

ControlAction=“Close”: Cierra una aplicación.

Ejemplos:

WWControl(“Calculator”,”Restore”);

WWControl(“Microsoft Excel”, “Close”);

Page 83: Manual Intouch

A 83

Esta función enviará un comando (usando una ejecución DDE) a una

aplicación y tópico específicos.

WWExecute(Application, Topic, Command);

En esta instrucción, el Command será enviado a un Application y Topic específicos. El

siguiente Script ejecuta una macro en Excel:

Macro= “Macro1!TestMacro”;

Command=“¨[Run(“+StringChar(34) + Macro + StringChar(34) + “0) “;

WWExecute(“excel”, system”, Command);

El siguiente script ejecuta una macro en Microsoft Access:

WWExecute(“MSAccess”, “system”,”MyMacro);

La función WWWexecute() está en 1 si la aplicación está corriendo, existe el tópico y el

comando ha sido enviado satisfactoriamente. Está en 0 cuando la aplicación está

ocupada, y en -1 cuando existe un error. De esta manera, se puede monitorear el estado

del comando:

Status= WWExecute(“excel”, “system”, Command);

Donde: Status es un tag entero que puede ser 1, -1 ó 0.

Está función envía un valor usando un DDE Poke a una Aplicación, Topic, e

Item específicos.

WWPoke(Application, Topic, Item, ValueMessageTag);

Page 84: Manual Intouch

A 84

En esta instrucción el valor ValueMessageTag enviará al Application en particular,

Topic e Item especificados. Notar que el valor enviado debe ser un caracter

alfanumérico. Si el valor a enviar es un número debe ser convertido usando las

funciones Text(), StringFromIntg(), o StringFromReal().

El siguiente script convertirá un valor a texto y lo posesionará en una celda de

una planilla excel:

String= Text(Value,"0");

WWPoke(“excel”, “sheet1”, “r1c1”, String);

La función WWPoke() está en 1 si la aplicación está corriendo, y el valor ha sido

enviado satisfactoriamente.

Está en 0 cuando la aplicación está ocupada y en -1 cuando hay un error. De

este modo el estado de este comando puede ser monitoreado:

Status=WWPoke(“excel”, “sheet1”, “r1c1”, String);

Donde: Status es un tag entero que puede ser 1, -1 ó 0.

Esta función realiza un requerimiento de una vez por un valor (usando DDE

Request) de una Application, Topic e Item.

WWRequest(Application, Topic, Item, ValueMessageTag);

En esta instrucción el valor DDE en la Application, Topic e Item en particular será dado

al ValueMessageTag. Notar que el valor será entregado como una cadena de caracteres

al MessageTag. Si el valor es un número se debe convertir usando las funciones

StringFromIntg(), o StringFromReal().

El siguiente script pedirá un valor de una celda de una planilla Excel y

convertirá el texto a un valor:

WWRequest(“excel”,”sheet1”,”r1c1”, Result);

Page 85: Manual Intouch

A 85

Value=StringToReal(Result);

La función WWRequest() está en 1 si la aplicación está corriendo, y el valor ha sido

obtenido satisfactoriamente. Está en 0 cuando la aplicación está ocupada y en -1 cuando

hay un error. De este modo el estado de este comando puede ser monitoreado:

Status=WWRequest(“excel”, “sheet1”, “r1c1”, Result);

Donde : Status es un tag entero que puede ser 1, -1 ó 0.

3.14.- Definición de Window Name to Insert

Accionando este botón se inserta automáticamente el nombre de una

ventana en un script, aparecerá el cuadro de diálogo Window Name

to Insert:

3.15.- Definición de Choose Name

Accionando este botón se accesa a todos los tagnames de la base de

datos (incluyendo todos los tagnames internos del sistema) para

ingresar el script en la posición respectiva; aparecerá el cuadro de diálogo Choose

Name...

Page 86: Manual Intouch

A 86

Lee solamente el tagname de seguridad entero usado

en expresiones o script para controlar las propiedades del operador en la ejecución de

funciones específicas. Por ejemplo, para hacer que un objeto sea visible dependiendo

del registro de nivel de acceso del operador, la siguiente expresión podría ser usada para

en vínculo de visibilidad:

$AccessLevel=>2000;

Nota: La funcionalidad de tocar objetos puede ser también basado en valor del

$AccessLevel usado en una expresión para un objeto, botón, etc., que es asignado

al vínculo de animación “Disable”.

Es un tagname discreto de lectura/escritura que se

setea en 1 para reiniciar el registro de alarma y de impresión durante el runtime cuando

el comando /Special/Restart Alarm Log ha sido desabilitado en el WindowViewer.

Page 87: Manual Intouch

A 87

Nota Especial: El tagname $AlarmLogging no puede ser usado para desactivar un

registro de alarma o de impresión. Este es usado estrictamente en lugar del

comando /Restart Alarm Log. Si el valor de $AlarmLogging es mostrado siempre

será 0 (off) (cada vez que el registro se realiza).

Lee solamente el tagname discreto que está en 1 si

existe un error de impresora.

Lee solamente el tagname discreto que está en1 si la

impresora no tiene papel.

Lee solamente el tagname discreto que está en 1 si la

impresora está fuera de línea.

Lee solamente el tagname discreto que está en 1 si la

impresora está sobrecargada.

Lee sólo el tagname real que muestra el número actual

de la versión de la aplicación. Este número cambia

cada vez que un tagname o script es cambiado, agregado o borrado.

Es un tagname de seguridad discreto de

Lectura/Escritura que puede ser usado en un botón

discreto para permitir al operador establecer el valor de 1 en el tagname

$ChangePassword para hacer que aparezca el cuadro de diálogo Change Password.

(Una vez que el cuadro desaparece, el sistema automáticamente deja el valor en 0).

Es un tagname de seguridad discreto de

Lectura/Escritura que puede ser usado en un botón discreto para permitir al operador

establecer el valor de 1 en el tagname $ChangePassword para hacer que aparezca el

Page 88: Manual Intouch

A 88

cuadro de diálogo Configure Users para editar la lista de usuarios de seguridad. (Una

vez que el cuadro desaparece, el sistema automáticamente deja el valor en 0).

Es un tagname entero sólo de lectura que muestra el

número total de días que han transcurridos desde 1/1/70.

Es un tagname entero sólo de lectura que muestra la

fecha en el mismo formato que el archivo WIN.INI. Por ejemplo 4/18/92. (Este formato

de fecha es establecido a través del Panel de Control de Windows.)

Es un tagname real sólo de lectura que muestra el

número completo de días que han transcurridos desde 1/1/70.

Es un tagname entero sólo de lectura que muestra el

día y su valor puede ser desde 1 a 31.

Es un tagname discreto de Lectura/escritura usado para

monitorear y/o controlar la partida y parada de un registro histórico.

Es un tagname real sólo de lectura que muestra la hora

y el día y su valor puede ser de 0 a 23.

Es un tagname de seguridad discreto sólo de Lectura

que es igual a 1 cuando el tiempo configurado para un registro automático del operador

ha terminado.

Nota: El tiempo para $InactivityTimeout es establecido (en segundos) en el menú

/Special/Configure... /View Generic

Es un tagname de seguridad discreto sólo de Lectura

Page 89: Manual Intouch

A 89

que es igual a 1 cuando el tiempo configurado para advertir al operador que ha

terminado el tiempo de espera para termino de sesión o de tarea.

Nota Especial: El tiempo para los dos últimos tagnames explicados es establecido

en el menú /Special/Configure... /View Generic al ingresar el número de segundos

en los siguientes campos.

Es un tagname discreto de Lectura/Escritura usado

para monitorear y/o controlar la ejecución de scripts.

Es un tagname real sólo de lectura que muestra los

minutos y su valor puede ser de 0 a 59.

Es un tagname entero sólo de lectura que muestra el

mes y su valor puede ser de 0 a 12.

Es un tagname entero sólo de lectura que muestra los

milisegundos y su valor puede ser de 0 a 999. (Este

número se incrementa cada segundo)

Es un tagname discreto de lectura/escritura que es

igual a 1 cada vez que ocurre una nueva alarma. Este tagname puede ser vinculado a

programa WWBeeper o al tagname interno PlaySound para provocar una alarma sonora

Page 90: Manual Intouch

A 90

para alertar al operador sobre la nueva condición de alarma. Un botón puede ser creado

para permitir resetear este valor en 0.

Es un tagname entero sólo de lectura usado para

mostrar la ubicación del pixel horizontal de un objeto seleccionado.

Es un tagname entero sólo de lectura usado para

mostrar la ubicación del pixel vertical de un objeto seleccionado.

Es un tagname de mensaje de seguridad sólo de lectura

que puede ser usado en una expresión o script para controlar la capacidad del operador

de ejecutar funciones específicas. Por ejemplo, acceder a una ventana específica podría

ser controlada al ingresar el siguiente script:

IF $Operator==“DayShift” THEN

Show “Control Panel Window”;

ENDIF

Es un tagname de mensaje de seguridad sólo de

lectura/escritura que puede ser usado para crear una ventana de registro (log on)

personalizada. Los objetos de entrada Touch-sensitive y/o scripts pueden ser vinculados

a este tagname para configurar el “UserName” del operador.

Es un tagname de mensaje de seguridad que puede ser

usado para crear una ventana de registro (log on) personalizada. Los objetos de entrada

Touch-sensitive y/o scripts pueden ser vinculados a este tagname para configurar el

“Password” del operador.

Ejemplo:

$PasswordEntered;

Page 91: Manual Intouch

A 91

Nota: Si las dos entradas recién mencionadas son válidas, $AccessLevel y

$Operator son establecidos a sus valores predefinidos.

Es un tagname entero sólo de lectura que muestra los

segundos y su valor puede ser de 0 a 59.

Es un tagname discreto de lectura/escritura usado para

partir conversaciones DDE no iniciadas durante el runtime cuando el menú /Special ha

sido deshabitado.

Es un tagname del tipo grupo de alarmas del sistema

(system alarm group) sólo de lectura para el grupo raíz de alarmas (alarm root group).

Si el nombre de un AlarmGroup no está creado para un tagname, es automáticamente

asignado a este grupo raíz por defecto. Todos los Grupos de Alarmas definidos derivan

de $System.

Es un tagname entero sólo de lectura que muestra la

hora en milisegundos desde la medianoche.

Es un tagname de mensaje de memoria sólo de lectura

que muestra la hora en el mismo formato que el archivo WIN.INI. Por ejemplo 12:01:59

PM. (Este formato de fecha es establecido a través del Panel de Control de Windows.)

Es un tagname entero sólo de lectura que muestra el

año en cuatro dígitos, por ejemplo, 1990.

Definiciones de los Campos de Alarma en Choose Field Name

Todos los tagnames en el Data Dictionary tienen campos (.fields)

asociados a ellos que pueden ser usados para crear a una variedad de

Page 92: Manual Intouch

A 92

aplicaciones dinámicas, por ejemplo, establecer y mostrar límites de las alarmas,

cambiar el tiempo de partida y longitud de un gráfico de Tendencia Histórica (Historical

Trend), etc. Este botón accesa al cuadro de diálogo Choose field name...:

Es un .field discreto de lectura/escritura usado para

monitorear y/o controlar el estado de reconocimiento de alarmas de los tagnames,

Alarm Groups y/o Group Variables.

Ejemplos:

Tagname.Ack=1;

GroupName.Ack=1

GroupVariable.Ack=1;

Es un .field discreto sólo de lectura que es igual a 1 cuando

existe una condición de alarma para el tagname, Alarma Group Name o Group Variable

especificados.

Ejemplo:

AlarmaGroup.Alarm;

Es un .field análogo de lectura/escritura (válido solamente

para tags enteros o reales) que monitorea y/o controla del porcentaje de desviación de la

Page 93: Manual Intouch

A 93

banda muerta para las alarmas de mayor y menor desviación. Por ejemplo, para cambiar

el porcentaje de desviación a 25%, se puede usar la siguiente instrucción:

Tagname.AlarmDevDeadband=25

Es un .field discreto de lectura/escritura que habilita o

deshabita sucesos y alarmas en un tagname, Alarm Group o Group Variable.

Ejemplo:

GroupVariable.AlarmEnabled=1;

Es un .field análogo de lectura/escritura (válido solamente

para tags enteros o reales) que monitorea y/o controla el valor de la banda muerta de

una alarma. Este campo es válido para Alarm Groups y Group Variables como también

para tags comunes.

Tagname.AlarmValDeadband=10;

Es un .field análogo de lectura/escritura (válido solamente

para tags enteros o reales) que monitorea y/o controla el target para las alarmas de

mayor y menor desviación.

Ejemplo:

Tagname.DevTArget=500;

Es un .field del tagname discreto sólo de lectura usado para

determinar cuando existe una alarma de tipo específico. Por ejemplo, .HiHiStatus será 1

cuando existe una alarma HiHi para el tagname. (También se aplica a .HiStatus,

.LoStatus, .LoLoStatus, .MinorDevStatus, .MajorDevStatus, .ROCStatus y .SPCStatus.)

Es un .field de tagname análogo de lectura/escritura usado

para monitorear y/o controlar los límites para los valores que la alarma contiene y esos

Page 94: Manual Intouch

A 94

campos son validos sólo para tags enteros o reales. (También se aplica a .HiLimit,

.LoLimit y .LoLoLimit)

Ejemplo:

RealTag.LoLoLimit

Es un .field de un tagname entero tipo lectura/escritura

usado para monitorear y/o controlar el contenido de la desviación de la alarma.

(También se aplica a .MajorDevPct, .ROCPct). Ejemplo:

IntegerTag.ROCPct

Son .Field de tagname discreto sólo de lectura usados para determinar cuando existe una

alarma de un tipo específico. Por ejemplo:

.MinorDevStatus será 1 cuando hay una alarma MinorDevStatus para el tagname.

Campo sólo de lectura que muestra el campo comment del

tagname. Ejemplo:

Tagname.Comment

Campo de las Tendencias Históricas en la Definición de Choose Field Name...

En los siguientes ejemplos asumir que “ht” es un tagname tipo HistTrend.

Es un .field de un tagname entero de tipo lectura/escritura

usado para controlar el tiempo de partida y/o desplegar el gráfico de la tendencia

histórica correspondiente. .ChartStart muestra el número de segundos transcurridos

desde el 1/1/80 a las 12:00 a.m. Ejemplos:

Page 95: Manual Intouch

A 95

Desplazar a la derecha por 1 minuto:

ht. ChartStart = ht. ChartStart + 60;

Desplazar a la izquierda por 1 hora:

ht.ChartStart = ht.ChartStart -3600;

Es .field de un tagname entero de lectura/escritura usado

para mostrar la longitud del tiempo mostrado en un gráfico de tendencia histórica.

.ChartLength muestra la longitud del gráfico en segundos. Ejemplos :

Forzar el intervalo del gráfico a 1 hora:

ht.ChartLength = 3600 {60 minutos * 60

segundos/minuto}

Despliegue del gráfico izquierdo por la mitad:

ht.ChartStart = ht.ChartStart - ht.ChartLenght / 2;

Despliegue del gráfico izquierdo en un 10%:

ht.ChartStart = ht. ChartStart - 1 * ht. ChartLength

Son .fields de tagname real de escritura/lectura usados para representar el

porcentaje del rango en Unidades de Ingeniería del tagname que podría ser mostrado

por cada tag que está siendo dirigido. Las unidades para .MaxRange y .MinRange son

de 0 a 100 y .MinRange debe ser siempre menor que .MaxRange. Si un valor menor que

0 o mayor que 100 es asignado a estos campos serán aproximados a 0 o 100. Si

.MinRange es mayor o igual que .MaxRange la tendencia no mostrará ninguna

información.

Es un .field de tagname análogo de lectura/escritura usado

Page 96: Manual Intouch

A 96

para determinar el método a usar en mostrar los valores en la tendencia. Ejemplo:

HistTrendChart.DisplayMode=2

Las entradas son:

1. Muestra el min/max por cada período de muestreo (por defecto).

2. Muestra el valor medio por cada período de muestreo usando un diagrama

“scatter”(dispersión).

3. Muestra el valor medio por cada período de muestreo usando un diagrama “bar

chart”(gráfico de barras).

Es un .field de un tagname TagID de lectura/escritura usado

en conjunto con los tagnames TagID Historical Trend .Pen1 - .Pen4 para monitorear

y/o controlar el tagname que está siendo dirigido por un trazador (descrito a

continuación).

Es un .field de un tagname tipo TagID de lectura/escritura

usado para controlar el tagname que está siendo históricamente dirigido por cada

trazador. (También se aplica a .Pen2, .Pen3 y .Pen4. Un tagname tipo TagID solo puede

ser igualado por otro tagname TagID. Este no puede ser mezclado con otro tipo de

tagname a menos que el campo de extensión .TagID sea agregado al otro tagname. Por

ejemplo, de acuerdo a HistTrendTag.Pen1 para dirigir el tagname Temperature, este

debe tener agregado el campo .TagID.

Ejemplo:

HistTrendTag.Pen1= Temperature.TagID;

Pen01 = HistTrendTag.Pen1;

Este script iguala el tagname TagID HistrendTag.Pen1 a Temperature.TagID

y también Pen01 a HistTrendTag.Pen1. Donde Pen01 es un tagname tipo TagID.

Entonces un campo de salida vinculado a Pen01.Name mostrará Temperature.

Page 97: Manual Intouch

A 97

Para controlar dinámicamente el despliegue de Unidades de Ingeniería mínimo y

máximo, por el tagname que está siendo dirigido por cada trazador, el tagname TagID

debe ser igualado a un tagname tipo Indirect Analog.

Por Ejemplo:

IndirectAnalogTag.Name = Pen01.Name;

Donde el tagname TagID Pen01 se iguala al IndirectAnalogTag el cual puede ser usado

en cuatro script de cambio de dato ( Data Change Scripts) que son vinculados a los

campos Historical Trend.Pen1-.Pen4. Por ejemplo, un Data Change Script podría ser

creado por HistTrendTag.Pen1 como sigue:

Pen01 = HistTrendTag.Pen1;

IndirectAnalogTag.Name = Pen01.Name;

Los vínculos Analog Output pueden ser entonces creados y vinculados a las siguientes

instrucciones para mostrar los Eus ( Unidades de Ingeniería) mínimo o máximo de

acuerdo con el tagname que está siendo dirigido:

IndirectAnalogTag.MinEU;

IndirectAnalogTag.MaxEU;

Es un .field de un tagname discreto de lectura/escritura que

puede estar en 1 para actualizar un gráfico de tendencia histórica usando todos los

valores actuales. Un cambio debe ser hecho para comenzar el gráfico, longitud de

gráfico, etc. de acuerdo al gráfico para actualizar y mostrar los valores actuales para los

tagnames especificados. Usando este .field en un script de action pushbutton permitirá

al operador actualizar el gráfico cuando sea necesario durante el runtime.

Ejemplo:

HisTrendTag.Update Trend = 1;

Page 98: Manual Intouch

A 98

Es un campo entero solo de lectura que es incrementado

cuando una recuperación es completa para una tendencia.

Es un campo discreto solo de lectura que muestra el estado

de recuperación de información histórica (0=no hay recuperación, 1= recuperación en

curso).

Es un campo discreto de lectura/escritura. Cuando el valor

de este campo es TRUE, el scooter derecho no se puede mover hacia la izquierda

(0=FALSE, 1= TRUE).

Es un campo discreto de lectura/escritura. Cuando el valor

de este campo es TRUE, el scooter izquierdo no se puede mover hacia la derecha (0=

FALSE, 1=TRUE).

Es un campo real de lectura/escritura que representa la

posición del scooter izquierdo (Rango 0.0-1.0).

Es un campo real de lectura/escritura que representa la

posición del scooter derecho (Rango 0.0-1.0).

Definición de .Field Miscellaneous en el Choose Field Name ...

Es un .field análogo sólo de lectura que muestra el valor

máximo del tagname en Unidades de Ingeniería.

Es un .field análogo sólo de lectura que muestra el valor

mínimo del tagname en Unidades de Ingeniería.

Page 99: Manual Intouch

A 99

Es un .field de tagname de mensaje sólo de lectura usado

para mostrar el nombre de un Alarm Group que está indicando un Group Variable, o el

nombre de un tagname TagID, o sólo es el nombre de un Tagname de Intouch.

Es un .field de un tagname de mensaje sólo de lectura que es

igual a 1 cuando no hay alarmas para el nombre especificado. Este campo es válido para

Alarm Groups y Group Variables como también tag comunes.

Es un .field de un tagname análogo sólo de lectura que

muestra el valor del tagname especificado.

Direccionando Bit .Fields para Tagnames AnálogosLos bits simples dentro de un tagname entero pueden ser direccionados usando

el bit.field. Todos ellos son considerados como discretos (0/1) y si se graban, el tagname

es actualizado inmediatamente. Estos campos pueden ser usados donde se utilice un

tagname discreto, por ejemplo, DDE, scripts, expresiones, etc.

.00 bit menos significativo (LSB)

.01

.02

.

.

.

.31 Bit más significativo en un entero de 32 bits (MSB)

El siguiente ejemplo muestra como usar el bit fields dentro de una expresión:

Temperature.08==1;

Page 100: Manual Intouch

A 100

o, dentro de un script:

IF Temperature.29 THEN

Temperature.29=0;

ENDIF;

Nota: El bit 31 representa el bit de signo. Si es 1 el número es negativo. Si es 0 el

número es positivo. Se usa complemento 2’s.

IF-THEN-ELSE y Comparaciones de ScriptsLa instrucción IF-THEN-ELSE es usada para ejecutar condicionalmente varias

instrucciones basadas en el estado de una expresión. Las siguientes operaciones de

comparación son usadas para establecer las condiciones en la instrucción IF-THEN-

ELSE:

< Menor que

> Mayor que

<= Menor o igual que

>= Mayor o igual que

== Equivalencia (“es igual a”)

<> Distinto

Ejemplos de IF-THEN-ELSE

Instrucción IF-THEN sin condición ELSE:

IF a<>0 THEN

a=a+100;

ENDIF;

Nota: Cada IF debe tener un ENDIF y un punto y coma debe terminar cada línea

de instrucción.

Page 101: Manual Intouch

A 101

3.16.- Característica de SeguridadSeguridad en una aplicación es una característica opcional. Si la

implementamos, proporcionamos el desarrollo de una aplicación la capacidad de

controlar o no una operación especifica donde se permiten realizar funciones especificas

a una aplicación que están vinculadas a esa función de variables de seguridad interna.

Además, cuando la seguridad es establecida en una aplicación el establecimiento de

rutas puede ser creado con vínculos de registros del operador para todas las

ALARM/EVENTS que ocurren durante el tiempo en que se han creados en el sistema.

La seguridad esta basada en el concepto de que el operador registra para la

aplicación y entra el/los User Name y Password. ( La aplicación establece desarrollos de

cada operador con un User Name, o preasignando Password y un Access Level vía el

comando /Special/Security/Configure User… en cualquiera de los dos WindowMaker o

WindowViewer.)

Una vez que el operador registra la aplicación, accede a algunas funciones de

protección que son reconocidas por la verificación del registro de los operadores en el

Password y Access Level a través de valores específicos para la variable de seguridad

interna que esta vinculada a esta función. Por ejemplo, acceder a Windows, o ver un

objeto, pushbutton, etc., pueden ser controlados especificándose el Access Level que

tiene que ser mayor que 2000.

3.16.1.- Comandos del Menú Seguridad

El comando usado para establecer seguridad en una aplicación es accesible

desde el menú /Special en ambos, WindowMaker o WindowViewer. El comando

/Special/Security son usado para habilitar y desabilitar la aplicación, cambiar la

Password y configurar la lista de nombres de usuarios, password y niveles de acceso.

Cuando se llama este comando un segundo menú de comando aparece en pantalla:

Page 102: Manual Intouch

A 102

Variables de Seguridad Interna

Son 2 variables de seguridad interna que se usan en expresión o lógica de control

si el registro del operador permite llevar a cabo funciones especificas:

$AccessLevel Entero 0-9999 Leer solamente

$Operator Mensaje 16 Caracteres max. Leer solamente

Por ejemplo, crear un objeto que se haga visible basado en el registro en usuario

nivel de acceso, el siguiente estamento puede ser usado:

$AccessLevel => 2000;

o, un script puede ser limitado por un estamento IF:

If $Operator ==”DayShift” THEN

Show “Control Panel Window”

Endif

Los objetos pueden ser también desabilitados basados sobre el valor de una

variable de seguridad interna usando él vinculo de animación Disable. Por ejemplo:

3.17.- Introducción de Alarmas

La mayoría de los sistemas automáticos dependen de serios tipos análogos de

medidas junto con el estándar digital de I/O para controles precisos de estos procesos.

Estas medidas tienen que ver con temperatura, posicionamiento, flujos y niveles, por

nombrar unos pocos. En muchos casos, las medidas criticas necesitan ser monitoreadas

Page 103: Manual Intouch

A 103

cerradamente y/o registradas. Una solución a esto son los vínculos de variables de

alarmas. La mayoría de los conceptos de alarmas implican un menor setpoint o valor

normal para la variable junto con un valor de limite bajo y alto.

Intouch apoya este concepto y más. Los tipos de alarmas de apoyos para

variables análogas son: LowLow, Low, High, HigHigh, RateOfChange, Minor

Deviation, y Major Deviation. Además, una variable discreta puede ser una alarma

definida para uno de estos conocidos estados.

Nota: Un tagname se transforma en alarma habilitada tan pronto como es

configurada por los parámetros de alarma desde el diccionario del tagname.

Estos campos de alarma pueden ser usados por un control dinámicamente y/o

monitor de varias condiciones de alarmas. Por ejemplo un pushbutton es quizás creado

para crear una alarma individual, grupo de alarma o todas alarmas. Muchos de estos

campos son accesibles usando DDE, expresiones y/o script. Los accesos DDE

proporcionan al operador la habilidad de monitorear y/o controlar una información de

alarma especifica usando otras aplicaciones de Windows, ejemplo, Excel o una

aplicación View remota. (Usando NetDDE).

3.18.- Alarma o Evento

Un evento existe generalmente cuando un tagname predefinido es mejorado por

el operador, DDE, una lógica script o por el sistema. En orden para el evento para ser

ingresado en la ventana de alarma, registro o impresión, el tagname empieza a verse

afectado necesita ser configurado para dejar registrados los eventos.

El grupo de alarmas de jerarquía

Cada tagname es asignado a un grupo de alarma. Si un nombre de grupo de

alarma no es creado, el tagname es automáticamente asociado con el arraigamiento al

grupo $System. Algunos grupos de alarmas tienen ambos tagnames y otros nombres de

grupos de alarmas asociados a él. Los grupos de alarmas son organizados en una

Page 104: Manual Intouch

A 104

estructura de árbol jerárquico con el grupo de arraigamiento, $System, en la parte

superior del árbol. Todos los grupos de alarmas se definen automáticamente en forma

descendiente del grupo de arraigamiento. Este árbol tiene hacia arriba 8 niveles. Cada

grupo de alarmas tiene un máximo de 16 subgrupos. Cada subgrupo tiene un máximo de

16 grupo, etc.

Esta ilustración muestra solamente el grupo de alarma y no tagname con cada

grupo. Este concepto de árbol es análogo para la estructura MS-DOS, cuando un

directorio ve el contenido de otro subdirectorio (grupos analógicos) y nombre de

archivos (tagname analógico). Una vez que la estructura de grupos es creada, esto puede

ser usado en mucho caminos que son discutidos más adelante.

3.18.1.- Creando un Grupo de Alarmas

Para crear un tagname de grupo de alarma realizar los siguientes pasos:

1.- Llamar el menú /Special/Alarm Groups, o hacer click en el botón Group… en el

cuadro de dialogo DICCIONARY TAGNAME DEFINITION apareciendo el siguiente

cuadro de dialogo:

2.- Hacer click en el botón ADD… para acceder al cuadro Add Alarm Group.

Nota: Los botones Modify y Delete pueden hasta desabilitar un nuevo grupo de

alarmas creado. El grupo de alarma $System no puede ser modificado o creado.

Page 105: Manual Intouch

A 105

3.- Entre el nombre del nuevo campo Group Name. En este ejemplo GroupA a sido

creado como un subgrupo de Parent Group $System. Hacer click en Done para entrar un

nuevo Group Name (nombre de grupo) y retornar a la ventana de selección del grupo de

alarma. Para seleccionar otro Parent Group, hacer click en el botón Parent Group.

El cuadro de dialogo Alarm Group Selection aparece. Seleccione el grupo

deseado y presione Done.

Para modificar o borrar un grupo de alarma hacer click sobre el nombre del

grupo que se modificara o borrara y seleccionar al botón apropiado.

Nota: Cuando un grupo de alarma es borrado con todos los tagnames que fueron

asignados a ese grupo son bajados a un nivel en el árbol del grupo de alarmas.

Creando un Objeto Alarma Evento

Intouch proporciona la habilidad de crear 2 tipos de alarmas de objetos; Alarm

Summary y Alarm History. La principal diferencia entre las 2 es el que una Alarm

Summary solamente muestra la alarma hasta que esta vuelva a la normalidad o es

reconocida.

Page 106: Manual Intouch

A 106

En una ventana de alarma histórica, todas las condiciones de alarma son siempre

mostrada. Estas ventanas pueden mostrar todas las Alarm/Events activas o un subseteo

de los archivos de alarmas basada en el valor actual del grupo de alarmas y expresiones

prioritariamente asociados con la muestra de una alarma particular además de mostrar

alarmas de redes.

Nota: Él número de memorias de entrada de Alarm/Events mantenidas por

WindowViewer es configurado vía el comando /Special/Configure…

/Alarm/Events.

Nota: Una alarma muestra un objeto vinculado a otro dibujo de objeto en

WindowMaker. Esto puede ser movido tomando con el mouse o puede ser

modificado su tamaño tomando uno de los Handles (pequeño cajas alrededor de la

ventana). El texto que aparece usando la alarma objeto es inicialmente dibujado y

muestra el texto proporcionando una idea como la muestra actual mostrado en el

runtime. Múltiples alarmas muestran objetos que pueden también ser localizados

dentro de una ventana.

Page 107: Manual Intouch

A 107

3.18.2.- Configurando un objeto Alarm/Events

Inicialmente, el objeto Alarm/Events mostrado es dibujado con cualquiera de las

dos configuraciones por defecto o para un objeto dibujado previamente. El cambio del

seteo de configuración, para cualquiera de las dos hacer click en el objeto Alarm/Events

o llamando el comando /Special/Animation Links con el objeto Alarm/Events

seleccionado. Donde aparece el cuadro de dialogo siguiente:

Seleccione el tipo de Alarm/Event visualizado. Estos son

dos tipos : Alarm Summary y Alarm History.

Seleccione esta opción para mostrar la barra de títulos

con niveles para cada columna en la alarma del objeto

mostrado. Habilitando esta opción provoca que aparezca el cuadro de selección Title

Bar y Title Text Color: (todas las funciones de selección de color en el mismo camino y

son descritos detalles pequeños).

Hacer click en el cuadro coloreado para acceder a la paleta de

Page 108: Manual Intouch

A 108

selección de color para elegir el color del objeto Alarm/Events mostrado en la barra de

título.

Hacer click en el cuadro coloreado para seleccionar el color para la

columna en la barra de título.

Hacer click en el cuadro coloreado para seleccionar el color de

fondo de pantalla.

Hacer click en el cuadro coloreado para seleccionar el color del

borde.

Hacer click en el cuadro coloreado para seleccionar el color del

texto para alarmas no reconocidas mostradas en la pantalla de alarma.

Hacer click en el cuadro coloreado para seleccionar el color del

texto para alarma reconocidas mostradas en la pantalla de alarma.

Hacer click en el cuadro coloreado para seleccionar el color del texto

para retornar a la alarma normal mostradas en la pantalla de alarma.

Hacer click en el cuadro coloreado para seleccionar el color del texto

para mostrar eventos en el objeto Alarm/Events.

Nota: La selección del color RTN y evento son solamente seleccionable para una

ventana tipo Alarm History.

Para ver el evento de nodo local, configure una ventana Alarm History

y seleccione Local (viene por defecto).

Es una configuración maestro/esclavo, seleccione Server para mostrar

una lista de Alarm/Events para el nodo servidor. (El nodo servidor es especificado vía el

comando /Special/Configure/View Generic.)

Page 109: Manual Intouch

A 109

Haciendo click en este botón se accede al cuadro de

dialogo Format Alarm Message para seleccionar varios items que son mostrados y cada

mensaje de alarma visualizado en el objeto Alarm/Events.

Nota: Visualizando, imprimiendo y registrando mensajes de alarmas son todas

formateadas de la misma manera.

Entre el nombre de un grupo de alarmas o de un grupo de variables en este

campo. Si un grupo de alarmas es ingresado, el objeto Alarm/Events mostrara

solamente la alarma en este grupo especifico. Para mostrar todas las alarmas en todos

los grupos, use el nombre de grupo de arraigamiento, $System.

Para controlar la elección de alarmas que se muestran en runtime, entre el

nombre de una variable de grupo en este campo y entonces configure una acción de

pushbutton o una tecla script para asignar un especifico nombre de grupo de alarma para

el grupo de variable. Por ejemplo, lo siguiente presenta en la entrada en la acción para el

pushbutton:

GroupVariableTagname=AlarmGroupName;

Page 110: Manual Intouch

A 110

Entre el nivel alto de alarma para el rango de prioridades que serán visualizadas

en el objeto alarma. Un tagname análogo puede ser ingresado en este campo. El valor

del tagname esta determinando la prioridad del nivel para ser mostrados. La prioridad

de los números de alarma para ser visualizado puede estar controlados por asignaciones

de valores para estos tagnames a través de un vinculo de entrada análoga o script.

Entre el nivel de alarma para el rango de prioridades que serán visualizadas en el

objeto alarma. Un tagname análogo puede ser ingresado en este campo. El valor del

tagname esta determinando la prioridad del nivel para ser mostrados. La prioridad de los

números de alarma para ser visualizado puede estar controlados por asignaciones de

valores para estos tagnames a través de un vinculo de entrada análoga o script.

Nota: La prioridad de alarmas parte de un nivel alto, ejemplo, 1 es la prioridad

alta.

Entre un tagname discreto que será usado para mostrar la pagina a través de la

lista de mensajes de alarma (sí hay más del numero que permite la pantalla). Cuando el

valor de la transición de una variable discreta desde ON (1, verdadero) a OFF (0, falso),

el objeto visualizado Alarm/Events mostrara la pagina previa. Una vez que se muestra

la pagina previa, la variable discreta automáticamente sé resetea en ON, a menos que

alcance la parte de arriba de la lista. En este caso, el valor de la variable que da en OFF

y la acción de la pagina previa queda desabilitada.

Para crear un pushbutton de pagina previa, crear un objeto y unir un vinculo

Discrete Value Pushbutton usando el tagname discreto usado en el campo de pagina

previa. Un vinculo de visibilidad puede ser también usado en el pushbutton de valor

discreto para ocultar el botón cuando el valor del tagname discreto es OFF.

Page 111: Manual Intouch

A 111

Los datos ingresados en este campo de trabajo son lo mismo que el del campo de

pagina previa descrita arriba excepto, en control de la función Next Page (siguiente

pagina).

Hacer click sobre este botón para seleccionar el comando Font, este

estilo y tamaño se usa para mostrar el mensaje en el objeto visualizado Alarm/Events.

Al llamar este comando se accede al cuadro de dialogo FONT:

3.18.3.- Configuración de Alarm/Events

Estos son 3 tipos de cuadros de dialogo de configuración usadas para alarmas, el

Alarm/Events, Alarm Loggin y Alarm Priting. A todas ellas se accede vía el comando

/Special/Configure:

3.19.- Alarm/Events

Hacer click en este botón para configurar varios parámetros que

afectan a Alarm/Events. El cuadro de dialogo Alarm/Events Configuration aparecerá:

Page 112: Manual Intouch

A 112

3.19.1.- Registro de Alarmas

Hacer click sobre este botón para configurar el archivo de

registro de alarmas. El siguiente cuadro de dialogo aparece:

Seleccione esta opción para habilitar el registro de alarmas. Los

archivos se pondrán en el directorio seleccionado y nombrados automáticamente como

sigue:

YYMMDDHH.ALG

Donde: YY es igual al año en que el archivo fue creado.

MM es igual al mes en que el archivo fue creado (01-12).

DD es igual al día en que el archivo fue creado (01-31).

HH es igual a la hora en que el archivo fue creado (00-23).

Por ejemplo, si un archivo es creado cada 8 horas a partir de las 6 AM en Abril 30 de

1992, entonces el nombre quedaría como sigue:

92043006.ALG

92043014.ALG

92043022.ALG

Page 113: Manual Intouch

A 113

Entre el número de valor de la hora del dato de

alarma para ser provisto en cada archivo de registro. Los valores de ingreso son entre 1

y 24.

Entre el intervalo de hora para que el primer registro

empiece. Las entradas validas deben estar entre 0 (para 12:00 AM) y 23 (para 11:00

PM).

Ejemplo 1: El operador de planta realiza 3 cambios. El primer cambio comienza

a las 6:00 AM. Las alarmas son registradas por cambios individuales. Entonces, ingrese

8 en el campo Numer of Hours to Cycle Filaname y 6 en el campo Starting at Hour (0-

23).

Ejemplo 2: El operador de planta realiza 3 cambios. Las alarmas son registradas

por días con la partida del registro de archivo para medianoche. Entonces, ingrese 24 en

el campo Numer of Hours to Cycle Filaname y 0 en el campo Starting at Hours (0-23).

Entre el número del valor de días del registro de

archivo para ser retenido en el disco. Por ejemplo, si 10 es ingresado y es el día 12 del

mes, el registro archiva desde el segundo al 12 y el 1 automáticamente será borrado.

Nota: Cuando se ingresa 0 (cero) para el día, el archivo de registro será guardado

indefinidamente.

Seleccione este botón para acceder al cuadro de

dialogo Format Alarm Message para configurar el contenido del mensaje de alarma

escrito para el archivo de registro.

3.19.2.- Imprimiendo Alarmas

Hacer click sobre este botón para configurar la puerta que

Page 114: Manual Intouch

A 114

será usada para imprimir, el formato de impresión de mensaje de alarmas, grupos

específicos de alarmas y/o prioridad de alarmas para ser impreso. Al llamar este

comando accede al cuadro de dialogo Alarm Printer Configuration:

Si usa una puerta paralela, seleccione la puerta donde se usara la

impresora. (None es el seteo por defecto).

Si la impresora usa una puerta serial, seleccione la puerta donde se usara la

impresora. Una vez hecha la selección, el campo Configuración aparece. El

formato del valor ingresado en este campo es el mismo que el requerido por

el comando del modo DOS (BaudDate, Parity, DataBits, StopBits). El siguiente es el

valor valido para cada entrada en la variable:

BaudRate: 110, 150, 300, 600, 1200, 4800, 9600, 19200

Parity: O (odd), E (even), N (none)

DataBits: 7 o 8

StopBits: 1 o 2

Nota Especial: Cuando se imprime alarmas, Intouch toma el control completo de

la puerta. Por lo tanto, una impresora seleccionada es requerida . No para otras

aplicaciones, ejemplo Excel puede usar la impresora hasta que la impresión de

alarma la desabilita.

Page 115: Manual Intouch

A 115

Seleccione este botón para acceder al cuadro de dialogo

Format Alarm Message para configurar el contenido de la impresión del mensaje de

alarma.

3.20.- Campos de Alarmas

La sintaxis Tagname.FieldName puede ser usada para acceder al campo de datos

asociados con un tagname en la base de datos. Esto es útil para el seteo y visualización

del limite de alarma, etc.

Campo discreto de lectura y escritura usado para monitorear

y/o controlar el estado de tagname, grupo de alarma y/o grupo de variables. Ejemplo:

Tagname.Ack=1;

GroupName.Ack=1;

GroupVariable.Ack=1;

Campo discreto solamente de lectura, esto es igual a 1 cuando

existe una condición de alarma para el tagname especifico, nombre del grupo de alarma

o grupo de variable, ejemplo:

AlarmGroup.Alarm;

Campos análogo de lectura y escritura, (solamente validos

para tagnames enteros o redes). El monitoreo y/o control del porcentaje de desviación

de banda muerta para mayor y menor desviación de alarmas. Por ejemplo, para cambiar

el porcentaje a 25%, el siguiente estamento será usado:

Tagname.AlarmDevDeadband=25;

Campos discreto de lectura y escritura, esto desabilita y/o

Page 116: Manual Intouch

A 116

habilita eventos y alarmas para un tagname, grupo de alarmas o grupo de variables.

Ejemplo:

GroupVariable.AlarmEnable=1;

Campo análogo de lectura y escritura (solamente validos para

tagnames enteros o reales) esto monitorea o controla el valor de una alarma de banda

muerta. Este campo es valido para grupos de alarmas y grupo de variables para un

tagname ordinario.

Tagname.AlarmValDeadband=10;

Campo análogo de lectura y escritura (solamente valido para tagnames

enteros y reales) esto monitorea y/o controla la tarjeta para menor y mayor desviación

de alarmas. Ejemplo:

Tagname.DevTarget=500;

Campo solamente de lectura de tagnames discretos usados para

determinar si una alarma de tipo especifico existe. Por ejemplo .HiHiStatus será igual a

1 cuando hay una alarma HiHi para el tagname. (Algunas aplicaciones para .HiStatus,

.LoStatus, .LoLoStatus, .MinorDevStatus, .MajorDevStatus, .ROCStatus y

.SPCStatus.).

Campos de lectura y escritura de tagnames análogos usados para

monitorear y/o controlar los limites para valores de chequeo de alarmas y estos campos

son solamente validos para tagnames enteros y reales. (Algunas aplicaciones para

.HiLimit, .LoLimit, y .LoLoLimit.).

Ejemplo:

RealTag,LoLoLimit

Campos lectura y escritura de tagname enteros usados para

Page 117: Manual Intouch

A 117

monitorear y/o controlar el chequeo de la desviación de alarma. (Algunas aplicaciones

para .MajorDevPct, .ROCPct.). Ejemplo:

IntergeTag.ROCPct

Campos de solamente de lectura de tagnames discretos usados para determinar si

una alarma de un tipo especifico existe. Por ejemplo:

.MinorDevStatus será igual a 1 cuando hay una alarma de MinorDevStatus para el

tagname.

3.21.- Campo de acceso DDE de alarma

El siguiente campo de alarma es accesible usando DDE, una expresión y/o

Scripts. El acceso DDE provee al operador la habilidad de monitorear y/o controlar una

información de alarma de tagname especifico usando otra aplicación de Windows,

ejemplo: Excel o una aplicación View remota (usando NetDDe).

.Ack (0/1)

.Alarm (0/1) Lee solamente

.AlarmEnable (0/1)

Los siguientes campos de alarmas son aplicables para tagnames reales o enteros

solamente:

.AlarmDevDeadband

.AlarmValDeadband

.HiHiLimit

.HiHiStatus (0/1) Solamente lectura

.HiLimit

.HiStatus (0/1) Solamente lectura

Page 118: Manual Intouch

A 118

.LoLimit

.LoStatus (0/1) Solamente lectura

.LoLoLimit

.LoLoStatus (0/1) Solamente lectura

.DevTarget

.MajorDevPct

.MajorDevStatus (0/1) Solamente lectura

.MinorDevPct

.MinorDevStatus (0/1) Solamente lectura

.ROCPct

.ROCStatus (0/1) Solamente lectura

El siguiente es un ejemplo de cómo usar este campo dentro de una expresión:

Temperature.HiHiStatus==1;

O dentro de un script

IF Temperature.HiHiStatus THEN

Temperature.AlarmValDeadband=3;

ENDIF;

3.22.- Tendencia de Tiempo Real y Tendencia Histórica

El paquete del software Intouch tiene la capacidad de mostrar tendencias de

gráficos de la entrada de la base de datos. Ellos son creados por el uso especial de

herramientas desde la barra de herramientas de WindowMaker. La tendencia de gráfico

puede ser muy pequeña o abarcar un área de pantalla entera. No hay limite para el

número de gráficos que puedes colocarse en una pantalla. Los gráficos tienen la

apiencia de papel gráfico con el valor del tiempo en movimiento desde derecha a

izquierda. Varias opciones están disponibles para personalizar la apariencia del gráfico

de tendencia. El operador puede especificar el tiempo abarcado, valores de rango,

Page 119: Manual Intouch

A 119

resolución de grilla, localización de la marca de tiempo, localización de la marca de

valores, número de anotaciones (sobre 4) y atributos de color. Existen 2 tipos de objetos

gráficos, Tendencia de Tiempo Real y de Tendencia Histórica.

Además para la capacidad de tendencia de Intouch, 2 utilidades son incluidas en

el paquete del software, HDMerger y HistData. Ambos son diseñados para trabajar con

el registro Histórico. La utilidad HistData convierte archivos de registro de datos

históricos (.log) en archivos separados por coma (.CSV) para ser usados en hoja de

calculo o entorno a una edición de texto (ej. MSExcel). La utilidad HDMerge permite la

unión de varios archivos de registro .CSV con el archivo ONE.CSV.

3.22.1- Tendencia de Gráfico en Tiempo Real

La tendencia de objetos en tiempo real provee la habilidad para cambiar un

gráfico y registro cuando ellos están pasando para alguna base de datos de un tagname

especifico o a una expresión que contiene uno o más tagnames. Un gráfico de tendencia

de tiempo real es creado para seleccionar la herramienta de tendencia en tiempo real

(tercera herramienta en la segunda fila) en la barra de herramienta de WindowMaker y

usando la herramienta se crea el rectángulo de tendencia.

Page 120: Manual Intouch

A 120

Nota: La tendencia en tiempo real del objeto es vinculada a algún otro objeto. Esto

puede ser movido agarrando del centro con el mouse o redimencionado al agarrar

uno de las esquinas circundantes.

3.22.2.- Configuración de una tendencia en Tiempo Real

Cuando una tendencia de tiempo real de un objeto es dibujada, ésta

configuración se sesteara por defecto para cualquiera de los dos sistemas (sí este es el

primer dibujo de tendencia) o para el seteo de configuración del dibujo de tendencia

previo.

Para cambiar el seteo de configuración hacer doble click en la tendencia del

objeto. El cuadro de diálogo Real Time Trend Configuration aparecerá:

Entre el valor para todo el largo de tiempo para ser mostrado

horizontalmente (eje X) en el gráfico de tendencia. Entonces

seleccione el botón para el incremento del tiempo que

empieza a contar. Por ejemplo, si se ingresa 30 y se selecciona Mín, el tiempo será

horizontalmente en el gráfico por 30 Minutos.

Entre un número para la frecuencia en que la

tendencia de expresión será evaluada. Entonces

seleccione el botón para incrementar el tiempo en

Page 121: Manual Intouch

A 121

que empiece a contar. Por ejemplo, si se ingresa 10 y se selecciona Sec. la expresión

será evaluada cada 10 segundos.

Haga click en el cuadro coloreado para acceder a la paleta de

colores de Intouch para seleccionar el color de fondo y del borde para la tendencia.

Entre el número de líneas de mayor desviación

para ser visible en el área de tendencia. El color de estas líneas es mostrado en el cuadro

adyacente, para un nuevo color hacer click sobre este cuadro.

Entre el número de líneas de menor división para ser

visibles las líneas de menor división. El color de

estas líneas se muestra en el cuadro adyacente, para elegir un color nuevo hacer click

sobre este.

Chequee el cuadro para la etiqueta de tiempo

deseado. Entre el número de la etiqueta de

tiempo por mayor división en el cuadro de

entrada. Haga click sobre el cuadro coloreado para seleccionar el color de la etiqueta.

Seleccionar al formato deseado para la etiqueta de tiempo.

El valor de la etiqueta se configura igual que la

etiqueta de tiempo. El valor Mín/Máx. es

ingresado en el seteo del rango del valor

vertical (eje Y) para la ventana de tendencia. Este rango es en Unidad de Ingeniería

(EU) y el mismo para todos los tagnames de tendencia.

Nota: para puntos decimales se muestra una runtime para el valor mínimo y

máximo ello se hace entrando en los cuadros Mín y Máx.

Page 122: Manual Intouch

A 122

Más de 4 anotaciones pueden ser visibles en una ventana de tendencia. Las

anotaciones pueden ser usadas para mostrar uno o más tagnames. La habilidad para la

tendencia de expresión es útil en la creación de ventanas personalizadas para mostrar

tagnames con muchos rangos ampliamente diferentes. El color del tagname tenderá en

está muestra en el acompañamiento en el cuadro coloreado que al hacer click sobre él se

selecciona el nuevo color. El ancho de la anotación puede también ser configurado en el

entrada del ancho del cuadro.

Nota: Seleccionando un gran ancho de anotación mayor que una significancia

reduce el rendimiento en la actualización de pantalla e impresión.

Seleccionando ésta opción causa que la tendencia

solamente actualizada cuando está es parte de una

ventana visualizada (ayuda en RAM).

Hacer click en este botón para acceder al cuadro de diálogo

Font para seleccionar el tipo de letra, el estilo y tamaño para ser usado en la impresión.

Aumentando la representación en tiempo real

Para la aumentar la representación de tendencia en tiempo real haga lo siguiente:

1.- Setee la anotación con ancho 1

2.- Asegúrese de que otro objeto no este en el lugar de arriba del gráfico de tendencia de

tiempo real.

3.- Los números más bajos de muestra son tomados. Por ejemplo:

Page 123: Manual Intouch

A 123

Si la envergadura del tiempo en el seteo es de 30 Minutos y los intervalos de muestra

están seteados a 2 segundos, el número de muestras que serán tomadas durante 30

Minutos pueden ser calculado como sigue:

30*60/2

3.23.- Gráfico de tendencia Histórica

La tendencia histórica no es dinámica. Esto provee una imagen Snap Shot de

datos para un tiempo y datos del pasado. Distinto de la tendencia de tiempo real, la

tendencia histórica solamente se actualiza cuando Told se hace vía script, expresión o

por el operador pulsando un botón. Hasta 4 tagnames pueden ser tendencia de una vez

sin limite del número de tendencia de objetos visualizados. Se tiene completa

flexibilidad en diseñar una interface para el gráfico de tendencia. Se pueden crear

Scooters o cursos de datos, el operador puede crear Slides por encima de la tendencia

para acceder a una variedad de datos basados en la actual localización del scooters. Por

ejemplo, cuando el scooters es posesionado sobre un área en la tendencia estos datos

son visibles, la localización del scooters retornará el tiempo y valor para todas las

anotaciones (tagnames) que son tendencia.

Se pueden crear botones para aumentar (zoom In) o disminuir (zoom Out) entre

los scooters o datos, tal como el valor máximo y mínimo. El promedio y desviación

estándar pueden ser mostrados del gráfico completo o del área entre scooters. El gráfico

de tendencia histórica puede también ser mostrado por algún tiempo. Se puede crear

escalas personalizadas y vincular campos .MínEU y MaxEU para mostrar en EU los

máximos y mínimos.

Para crear un gráfico de tendencia histórica, seleccione la herramienta de

tendencia histórica en la barra de WindowMaker, entonces mover el cursor para alguna

área en blanco de la pantalla. Dibujar el objeto de tendencia histórica soltando y

manteniendo el botón del mouse apretado un momento, dibujando con el mouse

diagonalmente para hacer un rectángulo. Suelte el botón y un objeto de tendencia

histórica aparecerá.

Page 124: Manual Intouch

A 124

El objeto de tendencia histórica es vinculado a algún otro objeto. Esto puede ser

movido agarrando del centro con el mouse o esto puede ser redimencionado agarrando

una de las esquinas del objeto.

3.23.1.- Configuración de una tendencia histórica

Cuando un objeto de tendencia histórica es dibujado, está configurado por

defecto para cualquiera de los dos sistemas (si este es el primer dibujo de tendencia) o

configurado por el dibujo de tendencia anterior. Para cambiar la configuración haga

doble click sobre el objeto de tendencia. El cuadro de diálogo Historical Trend

Configuration aparecerá:

Page 125: Manual Intouch

A 125

Nota: Para gráficos de tendencia histórica solamente, cuando no comienza la

tendencia de inmediato, el color del área mostrada será la misma que el color del

borde seleccionado. Por ejemplo, si la máquina es impulsada desde las 6:00 a las

7:00, los datos para este intervalo de tiempo será graficado usando el color del

borde seleccionado. Por lo tanto, esto se recomienda para que el color sea diferente

para alguno de los colores de anotación.

Entre el nombre de un punto de la base de datos que este definido como un tipo

Hist Trend. Si un nuevo tagname es ingresado, este puede ser definido. En general, esto

es recomendado para crear distintos nombres para cada gráfico histórico. Sin embargo,

múltiples gráficos pueden usar el mismo nombre.

Esta entrada determina el largo del tiempo

inicial horizontalmente mostrado (eje X) en el

gráfico de tendencia. Para setear el Chart Initial

Time Span, escriba un número en el cuadro y seleccione el botón para el incremento del

tiempo para que empiece a contar. Por ejemplo, si se ingresa 1 y se selecciona Hrs., la

envergadura del tiempo mostrado horizontalmente en el gráfico será de 1 hora de largo

Seleccione el botón para indicar el tipo inicial de muestra

para el gráfico nombrado. Si se selecciona el modo

Mín/Máx., cada pixel en el gráfico se mostrará el rango

máximo y mínimo de puntos ocultos en el tiempo representado por este pixel. Si se

selecciona el modo Average el gráfico mostrará el valor promedio para cada pixel.

Ejemplo, segmento de tiempo.

Nota: Varias de estas configuraciones ingresadas son las mismas que se discutieron

en la configuración de tendencia de tiempo real.

Page 126: Manual Intouch

A 126

Estos campos de rangos setean el valor inicial para el rango de la tendencia. Las

unidades para rango Mín/Máx. son un porcentaje de la escala de unidad de ingeniería.

Así estos valores son de 0 a 100. Esto es diferente para la tendencia en tiempo real, ya

que el rango de la escala de EU es del 0 %.

Hasta cuatro anotaciones pueden ser visibles en una ventana de tendencia. Estas

pueden ser usadas para mostrar algunos tagnames de base de datos. La habilidad de la

tendencia de expresión es útil en la creación personalizada de pantallas para mostrar

tagnames con muchos rangos diferentes. El color de cada anotación de tendencia se

muestra en el cuadro coloreado y al hacer click sobre éste cuadro se selecciona un color

nuevo. El ancho de la anotación también puede ser configurado en un cuadro de ingreso

de ancho. Al seleccionar un ancho más grande que una significancia influye en la

presentación.

Nota Especial: Una vez completada la configuración, la opción de habilitar la

anotación se hará valida vía el comando Special/Configure...Historical Logging.

Para un control dinámico la partida/parada del registro histórico durante el

runtime, el tagname $Historical Logging del sistema interno puede ser vinculado a

un objeto o ser usado en un script si el registro es habilitado.

Seleccione ésta opción para permitir al operador hacer

cambios en la configuración de la tendencia histórica durante el runtime.

Haga click sobre éste botón para acceder al cuadro de

diálogo para seleccionar la letra, estilo y tamaño para ser usada en la impresión.

Page 127: Manual Intouch

A 127

3.23.2.- Actualización de una tendencia histórica durante runtime.

En WindowViewer cuando una tendencia histórica es mostrada por primera vez,

ésta mostrara datos para la configuración especifica. Distinto de la tendencia de tiempo

real, la tendencia histórica no se actualiza ella misma continuamente. Un cambio debe

estar echo para la tendencia es orden para ser actualizado después que los datos iniciales

son mostrados. Algunos de los siguientes métodos pueden ser usados para actualizar la

tendencia:

1.- Habilitar la opción Allow runtime changes en el cuadro de diálogo de tendencia

histórica (en WindowMaker) para permitir al operador cambiar manualmente la

tendencia de tiempo y/o datos para forzar la actualización.

2.- Use lo siguiente en un script o en un pushbutton para permitir al operador actualizar

el gráfico:

Tagname.UpdateTrend=1

3.- Use lo siguiente en un script o en un pushbutton:

HTUpdateToCurrentTime(Hist_tag);

HTScrollLeft(Hist_tag,Percent);

HTScrollRigh(Hist_tag,Percent);

HTZooMin(Hist_tag,LockString);

HTZoomOut(Hist_tag,LockString);

Para más detalles sobre algunos de las funciones de arriba, vea la sección

Historical Function de éste capítulo.

Page 128: Manual Intouch

A 128

3.23.3.- Configuración de una tendencia histórica durante runtime.

Si la opción Allow Runtime Changes (descrita arriba) es habilitada cuando el

objeto de tendencia es configurado, el gráfico será Touch-sensitive y puede ser

configurado por el operador durante runtime. Durante runtime, hacer click en Trend

para hacer que el cuadro de diálogo Historical Trend Setup aparezca:

Entre el dato de partida y el tiempo para el gráfico en

este campo.

Seleccione el botón para indicar el modo de mostrar el gráfico.

Estos son tres modos de mostrar un gráfico de tendencia:

1 Mín/Máx.

2 Average/Scatter

3 Average/Bar Chart.

El modo mostrar de los gráficos afecta la presentación. El primer factor aquí es

Page 129: Manual Intouch

A 129

el largo de las líneas que serán dibujadas para generar el gráfico. El largo de las líneas,

es tomado para generar el gráfico. El ancho de la línea es también factor de

presentación, el ancho de las líneas toma un significado grande para el gráfico. Los

gráficos Mín/Máx. o Average/Scatter son generalmente mucho más rápido para generar

que la tendencia Average/Bar Chart.

Entre el largo del tiempo para ser mostrado horizontalmente (eje Y) sobre la

tendencia.

Esta unidad para el rango es un porcentaje de la escala de EU. Así, estos valores

serán de 0 a 100. Entre el porcentaje de la escala EU para que la tendencia sea

aumentada y disminuida. Por ejemplo, para la tendencia de la varianza del tagname

seleccionado desde el porcentaje 40 a 45 de la escala, ingrese 40 y 45 en el mínimo y

máximo en el campo de rango respectivamente.

Para seleccionar el tagname para ser tendencia, haga click en el

botón de la anotación deseada PEN #. Al seleccionar el cuadro de

diálogo Tag for the Pen aparecerá rápidamente para hacer click

sobre un tag.

Nota: Solamente estos tags son opción de datos de registros que serán habilitados

en el diccionario de datos de tagname siendo mostrado en este cuadro de diálogo.

Alguna tendencia histórica puede ser impresa haciendo click en el botón

Print. La operación de impresión toma lugar en el Background mientras continua

WindowViewer para procesar todas las otras entradas, normalmente WindowViewer

Page 130: Manual Intouch

A 130

agrega dos ítems a este menú durante la impresión: CancelPrint y X % Done. Haciendo

click en CancelPrint para cancelar la actual impresión.

Un botón pushbutton puede también ser creado para imprimir la tendencia

histórica para ser usada en la acción interna del script de la función PrintHT. Lo

siguiente es una entrada en la acción script para el pushbutton:

PrintHT(HistTrendTagname);

La operación de impresión usa la actual tendencia histórica como base para

imprimir. Por lo tanto, si algún campo en el cuadro de diálogo Hitorical Trend Setup es

cambiado, el botón Print será desabilitado. Algunos cambios hechos en el setup no

pueden ser impresos hasta que el botón OK en el cuadro de diálogo Historical Trend

Setup sea presionado para ingresar estos cambios.

Nota: Después de seleccionado la impresora, no se puede cambiar la tendencia

hasta que el menú CancelPrint y X % Done aparezcan. Durante este tiempo,

WindowViewer está salvando la información de tendencia en la memoria para

imprimirla. Una vez que estos dos menús aparecen, la tendencia puede ser

cambiada sin afectar la impresión que ésta en progreso.

3.24.- Escribiendo Tagname para el Archivo de Registro Histórico.

Los valores escritos en el archivo de registro histórico todo el tiempo son

cambiados una vez cada hora, a pesar de todo cambio. Para cada valor de un tagname

escrito en el archivo de registro histórico, hará que el setup se registre en la base de

datos de Intouch. Al llamar el comando Special/Tag Name Dictionary... se accede al

cuadro de diálogo Dictionary-Tag Name Definition y mostrara la definición del

tagname deseado.

Page 131: Manual Intouch

A 131

Una vez que la definición del tagname deseado es mostrada, habilite

ésta opción.

Para ingresar un tipo de tagname real (punto

flotante), un campo Log Deadband será mostrado en su respectivo detalle en el cuadro

de diálogo. Un valor puede ser en este campo controlado por la EU del valor de un

punto que fue cambiado antes en el registro del disco.

Habilitando el Registro Histórico.

En orden para el tagname estos son definidos para ser registrados y escritos en el

archivo de registro histórico, la función registro ha de ser habilitada. Para habilitar el

registro, Llame al comando Special/Configure. La selección de Intouch Configuration

hace que aparezca el siguiente cuadro de diálogo:

Page 132: Manual Intouch

A 132

3.25.- Configure/Historical Logging.

Este comando es usado para configurar el archivo de registro histórico. Al llamar

este comando se accede al cuadro de diálogo Historical Logging Configuration:

Seleccione ésta opción para habilitar el registro. Los

archivos se colocaran en el directorio seleccionado y nombrado automáticamente como

sigue:

YYMMDD00.LOG

Donde: YY es igual al año en que fue creado el archivo.

MM es igual al mes en que fue creado el archivo (01-12).

DD es igual al año en que fue creado el archivo (01-31).

00 siempre mostrara ceros.

Por ejemplo, si el archivo fue creado un 30 de Abril de 1992, su nombre será:

92043000.LOG

Page 133: Manual Intouch

A 133

Nota: Los registros históricos pueden ser activados y detenidos durante runtime

siendo vinculado al tagname del sistema interno $Historical Logging para un

botón de toque o script. Además, si el computador queda sin espacio en el disco

para registro de archivos históricos, el operador creara espacio libre en el disco

llamando al comando Special/Restart Historical Logger en WindowViewer para

continuar registrando.

Seleccione esta opción para causar que los datos histórico sean registrados en el

directorio de la aplicación.

Seleccione este botón y entre un pathname en el cuadro para provocar que el

objeto histórico sea registrado en el directorio especifico. (Esto es recomendado si el

pathname completo a sido ingresado, ejemplo C:\Intouch).

Entre el número de valor de días (prioridad el actual día) del archivo de registro

histórico para ser retenido en el disco. Por ejemplo, si se ingresa 10 y es el día 12 del

mes, el archivo de registro del día 2 hasta el día 12 serán archivados y el día 1 será

automáticamente borrado.

Nota: Cuando se ingresa cero (0) en el día, el archivo de registro es guardado

indefinidamente.

Estos son muchos factores que afectan la presentación de la impresión del

gráfico de tendencia histórica. El primer factor de presentación es el tamaño del gráfico

en la página impresa. La presentación puede ser mejorada siendo cambiado el

porcentaje de la página que esta siendo usada. Por ejemplo, entrando 50 en este campo

Page 134: Manual Intouch

A 134

causará que WindowViewer use la mitad de la página (verticalmente y

horizontalmente). Una impresión esta dimensionada para tomar un cuarto del tiempo

para preparar toda la página impresa.

Entre la sección de tiempo de duración del proceso (en milisegundos) con él

modulo de impresión de la tendencia histórica.

Entre el tiempo (en milisegundos) para que él modulo de impresión de la

tendencia histórica esperara antes de ingrese a otra sección de tiempo del procesador.

3.26.- Campo de Tendencia Histórica.

Para una entrega de tagname de tendencia histórica hay mucho campos que están

solamente aplicados a los tagnames de tendencia histórica. Lo siguiente describe cada

uno de los campos de tendencia histórica.

Nota: En el ejemplo de abajo, se supone que “ht” es un tagname de tendencia

histórica.

Es un .field de un tagname entero de tipo lectura/escritura

usado para controlar el tiempo de partida y/o desplegar el gráfico de la tendencia

histórica correspondiente. .ChartStart muestra el número de segundos transcurridos

desde el 1/1/80 a las 12:00 a.m. Ejemplos:

Desplazar a la derecha por 1 minuto:

ht. ChartStart = ht. ChartStart + 60;

Desplazar a la izquierda por 1 hora:

ht.ChartStart = ht.ChartStart -3600;

Page 135: Manual Intouch

A 135

Es .field de un tagname entero de lectura/escritura usado para

mostrar la longitud del tiempo mostrado en un gráfico de tendencia histórica.

.ChartLength muestra la longitud del gráfico en segundos. Ejemplos :

Forzar el intervalo del gráfico a 1 hora:

ht.ChartLength = 3600 {60 minutos * 60 segundos/minuto}

Despliegue del gráfico izquierdo por la mitad:

ht.ChartStart = ht.ChartStart - ht.ChartLenght / 2;

Despliegue del gráfico izquierdo en un 10%:

ht.ChartStart = ht. ChartStart - 1 * ht. ChartLength

Son .fields de tagname real de escritura/lectura usados para representar el

porcentaje del rango en Unidades de Ingeniería del tagname que podría ser mostrado

por cada tag que está siendo dirigido. Las unidades para .MaxRange y .MinRange son

de 0 a 100 y .MinRange debe ser siempre menor que .MaxRange. Si un valor menor

que 0 o mayor que 100 es asignado a estos campos serán aproximados a 0 o 100. Si

.MinRange es mayor o igual que .MaxRange la tendencia no mostrará ninguna

información.

Es un .field de tagname análogo de lectura/escritura usado

para determinar el método a usar en mostrar los valores en la tendencia.

Ejemplo:

HistTrendChart.DisplayMode=2

Las entradas son:

1.- Muestra el min/max por cada período de muestreo (por defecto).

2.- Muestra el valor medio por cada período de muestreo usando un diagrama

“scatter”(dispersión).

3.- Muestra el valor medio por cada período de muestreo usando un diagrama “bar

chart”(gráfico de barras).

Page 136: Manual Intouch

A 136

Es un .field de un tagname TagID de lectura/escritura usado

en conjunto con los tagnames TagID Historical Trend .Pen1 - .Pen4 para monitorear

y/o controlar el tagname que está siendo dirigido por un trazador (descrito a

continuación).

Es un .field de un tagname tipo TagID de lectura/escritura

usado para controlar el tagname que está siendo históricamente dirigido por cada

trazador. (También se aplica a .Pen2, .Pen3 y .Pen4. Un tagname tipo TagID solo puede

ser igualado por otro tagname TagID. Este no puede ser mezclado con otro tipo de

tagname a menos que el campo de extensión .TagID sea agregado al otro tagname. Por

ejemplo, de acuerdo a HistTrendTag.Pen1 para dirigir el tagname Temperature, este

debe tener agregado el campo .TagID.

Ejemplo:

HistTrendTag.Pen1= Temperature.TagID;

Pen01 = HistTrendTag.Pen1;

Este script iguala el tagname TagID HistrendTag.Pen1 a Temperature.TagID

y también Pen01 a HistTrendTag.Pen1. Donde Pen01 es un tagname tipo TagID.

Entonces un campo de salida vinculado a Pen01.Name mostrará Temperature.

Para controlar dinámicamente el despliegue de Unidades de Ingeniería mínimo y

máximo, por el tagname que está siendo dirigido por cada trazador, el tagname TagID

debe ser igualado a un tagname tipo Indirect Analog.

Por Ejemplo:

IndirectAnalogTag.Name = Pen01.Name

Donde el tagname TagID Pen01 se iguala al IndirectAnalogTag el cual puede ser

usado en cuatro script de cambio de dato ( Data Change Scripts) que son vinculados a

los campos Historical Trend.Pen1-.Pen4. Por ejemplo, un Data Change Script podría ser

creado por HistTrendTag.Pen1 como sigue:

Page 137: Manual Intouch

A 137

Pen01 = HistTrendTag.Pen1;

IndirectAnalogTag.Name = Pen01.Name;

Los vínculos Analog Output pueden ser entonces creados y vinculados a las

siguientes instrucciones para mostrar los Eus ( Unidades de Ingeniería) mínimo o

máximo de acuerdo con el tagname que está siendo dirigido:

IndirectAnalogTag.MinEU;

IndirectAnalogTag.MaxEU;

Es un .field de un tagname discreto de lectura/escritura que

puede estar en 1 para actualizar un gráfico de tendencia histórica usando todos los

valores actuales. Un cambio debe ser hecho para comenzar el gráfico, longitud de

gráfico, etc. de acuerdo al gráfico para actualizar y mostrar los valores actuales para los

tagnames especificados. Usando este .field en un script de action pushbutton permitirá

al operador actualizar el gráfico cuando sea necesario durante el runtime. Ejemplo:

HisTrendTag.Update Trend = 1;

Es un campo entero solo de lectura que es incrementado

cuando una recuperación es completa para una tendencia.

Es un campo discreto solo de lectura que muestra el estado

de recuperación de información histórica (0=no hay recuperación, 1= recuperación en

curso).

Es un campo discreto de lectura/escritura. Cuando el valor

de este campo es TRUE, el scooter derecho no se puede mover hacia la izquierda

(0=FALSE, 1= TRUE).

Page 138: Manual Intouch

A 138

Es un campo discreto de lectura/escritura. Cuando el valor

de este campo es TRUE, el scooter izquierdo no se puede mover hacia la derecha (0=

FALSE, 1=TRUE).

Es un campo real de lectura/escritura que representa la

posición del scooter izquierdo (Rango 0.0-1.0).

Es un campo real de lectura/escritura que representa la

posición del scooter derecho (Rango 0.0-1.0).

3.27.- Controlando la frecuencia de Registro Histórico

Cuando el registro es habilitado vía el comando Special/Configure/Historical

Logging previamente descritos, los valores de todos los tagname designado para ser

registrado, automáticamente serán escritos en el archivo de registros histórico una vez

cada hora, a pesar de todo cambio.

Tu puedes hacer que no se realice cada una hora por defecto al agregar el

parámetro ForceLogging=# del archivo Intouch. INI (localizado en el directorio de la

aplicación) él # representa los minutos y pueden ser seseados entre 5 y 120. Ver el

ejemplo siguiente:

En este ejemplo, se agrega el ForceLogging=15, el valor del tagname registrado

será escrito en el archivo de registro histórico cada 15 minutos, a pesar de que el valor

del tagname haya cambiado.

Page 139: Manual Intouch

A 139

Nota: El parámetro ForceLogging será seteado a un valor en minutos entre 5 y

120.

3.28.- Muestra de Scooters de Tendencia Histórica

Los Scooters son indicadores de posición a lo largo de una escala de tiempo,

estos pueden ser cambiados en orden para recordar piezas específicas de datos para

entregar instantes de tiempo. Para unir objeto deslizador a un campo scooters, te puedes

deslizar por encima de una muestra de tendencia histórica y acceder a una sección

deseada de datos. Las funciones son proporcionadas para acceder al promedio, mínimo

y valores máximos para una posición específica del socorrer. Un scooter izquierdo y

derecho puede ser creado usando una función script adicional de Intouch, puede retornar

valores basado en un análisis personalizado en el dato en el scooter o en la localización

del scooter. Los tipos de análisis incluyen el promedio, mínimo, máximo, valor

min/max, EU min/max. y desviación estándar. Al aumentar, puede también ser

personalizado entre los dos scooter. Una agradable característica para agregar a una

tendencia histórica es la habilidad para mostrar datos basados en una localización

conocida en el gráfico. Aumentando y disminuyendo una tendencia es también

beneficial. Las siguientes páginas describen los vínculos y expresiones que pueden ser

usados para incorporar esta funcionalidad en la ventana de tendencia histórica.

3.29.- Programa Utilitario Dato Histórico Merge

La utilidad del programa Utilitario Dato Histórico Merge de InTouch (HDMerge.EXE)

provee de un mecanismo para unir un archivo de datos .CSV con un archivo de registro

histórico de la aplicación Intouch existente. HDMerge determina el archivo histórico del

dato que será unido a los datos específicos para el valor de datos en el archivo de datos.

(Archivos de registros históricos son salvados por el dato marcado. Por ejemplo,

Noviembre 22, 1994 será salvado como 94112200.LOG). HDMerge puede también ser

usado para crear archivos de registros históricos. Si un archivo de registro histórico no

existe en la aplicación de tarjeta para el dato especifico en el archivo .CSV, HDMerge

creara uno para el dato. Si el archivo de datos contiene múltiples días de datos, cada

Page 140: Manual Intouch

A 140

archivo de registro histórico será actualizado con el dato para este día. La especificación

de tiempo para cada muestra de dato puede ser de 1 milisegundo de resolución.

3.30.- Configurando la Aplicación

Intouch provee la habilidad para personalizar completamente la funcionalidad y

la apariencia final de una aplicación seteando varios parámetros. Estos parámetros son

seteados a través del cuadro de diálogo de configuración dentro del menú

/Special/Configure.... Por ejemplo, los parámetros pueden ser seteados para prevenir al

operador de la existencia de WindowViewer y/o Windows, la barra de títulos de

WindowViewer puede ser personalizado para mostrar el nombre de la compañía y el

menú WindowViewer puede ser desabilitado a través de la tecla ALT y/o de los menús

de control de la pantalla.

Por primera vez WindowViewer y WindowMaker son ejecutados, Intouch

automáticamente crea el archivo Intouch.INI que contiene por defecto los seteos de

configuración que serán usados por la aplicación. Una vez que el operador configura

varios parámetros, ellos son actualizados y guardados en este archivo. Como nuevas

aplicaciones son creadas, la personalización del archivo Intouch.INI puede ser copiado

en el directorio de la nueva aplicación, eliminando así la necesidad de setear la

personalización de parámetros para cada nueva aplicación creada.

3.30.1.- /Special/Configure

Este comando es usado para acceder al cuadro de diálogo Intouch Configuration:

Page 141: Manual Intouch

A 141

En las siguientes páginas se describe las opciones WindowMaker, View

Generic, View Window y View Home Window.

3.30.2.- /Configure/WindowMaker

Este comando es usado para configurar varios items en el programa

WindowMaker. Al llamar este comando aparecerá el siguiente cuadro de diálogo:

Entre el título que aparecerá en la barra de título cuando se ejecute

WindowMaker. Por ejemplo:

Intouch – DemoApp

Seleccione esta opción para hacer que el actual directorio de la aplicación sea

mostrado siguiendo el título en la barra de título. Por ejemplo:

Intouch – DemoApp – C:\DEMOAPP5.

Page 142: Manual Intouch

A 142

Estas dos opciones son usadas para configurar la grid. Entre el número de

pixeles para ser espaciado entre la coordenada del grid. Para hacer visible la grid,

habilitar Show Grid.

Seleccione esta opción para hacer que el programa de registro

de Wonderware, automáticamente parta cuando WindowMaker es ejecutado. El

programa registro graba todos los problemas o errores (ejemplo, error de afirmación) de

un archivo del disco para analizarlo después.

Seleccione esta opción para mostrar el número de tagnames

(en la barra menú de WindowMaker) que están siendo definidos en la base de dato de la

aplicación.

Seleccione esta opción para hacer que el

programa WindowMaker automáticamente se cierre cuando sé esta transfiriendo a

WindowViewer. Cuando esta opción es seleccionada , la memoria es conservada. Si la

memoria no esta siendo cuestionada y el operador se esta moviendo a menudo entre

WindowMaker y WindowViewer, esta opción no debe ser seleccionada.

Seleccione esta opción para hacer que el menú

/Edit de WindowMaker muestre el comando para copiar y pegar para y desde el

programa Scrapbook+. (WindowMaker deberá ser seteado después que esta selección es

habilitada por el comando que aparece).

Nota: el programa de Windows Scrapbook+ debe ser instalado en el computador.

Habilitando esta opción permitirá la selección del

objeto que esta detrás de un objeto Vacío. Por ejemplo, si cuatro líneas son dibujadas y

Page 143: Manual Intouch

A 143

unidas para hacer un cuerpo alrededor de otro objeto, con esta opción habilitada, uno

será capaz de meter el objeto dentro del cuerpo sin hacer que el cuerpo quede atrás de

este objeto.

Seleccione esta opción para habilitar el

Fast Switch (switch rápido) entre WindowMaker y WindowViewer. El switch aparecerá

en la esquina superior derecha en la barra de menú.

En WindowMaker, aparecerá runtime y en WindowViewer , Development.

Haciendo click en este switch (o usando ALT+!) rápidamente se transfiere desde un

programa a otro.

Usando este switch para transferir de WindowMaker a WindowViewer salva

todos los cambios hechos para todas las pantallas abiertas en WindowViewer.

Entre el número de pixeles que el

operador puede estar fuera de una línea para WindowMaker para saber que esta línea ha

sido seleccionada. El seteo por defecto es 4, esto es recomendado para ser usado a

menos que exista alguna dificultad con la selección.

Entre el número de niveles de deshacer/rehacer.

Esto puede ser 0 – 25 niveles (donde 0 los desabilita). Un nivel representa una acción.

El deshacer y rehacer fila esta vacío cuando una nueva ventana es creada o existe una

ventana abierta.

3.30.3.- /Configure/View Generic...

Este comando es usado para configurar varios items de sistema para el programa

WindowViewer. Al llamar este comando aparecerá el cuadro de diálogo View Generic

Configuration:

Page 144: Manual Intouch

A 144

Seleccione ésta opción para hacer que el programa de registro de

Wanderware automáticamente parta cuando se corre

WindowViewer. El programa de registro graba todos los problemas o errores de un

archivo del disco para analizarlo después.

Seleccione ésta opción para hacer que WindowViewer comience

cuando es seleccionado un icono de una ventana. En muchos casos, la selección de ésta

opción es apropiada solamente cuando el operador esta usando WindowViewer para

reunir datos para otras aplicaciones interconectadas DDE.

Seleccione esta opción para hacer que el programa

WindowViewer automáticamente se cierre cuando se transfiere desde WindowViewer a

WindowMaker.

Seleccione esta opción cada vez que exista una situación

de recurso de memoria baja o Window bajo.

Page 145: Manual Intouch

A 145

Habilitando esta opción provoca que una

aplicación de pantalla sea cargada desde el disco y no salvada en la memoria RAM

cuando es cerrada.

Entre la cantidad de memoria

(Kbytes) que WindowViewer intentara mantener libre para otra aplicación de Windows.

Seleccione esta opción para aumentar

significativamente la velocidad de actualización de los dibujos. Habilitando esta opción

aumenta significativamente el rango de actualización para campos de textos. (Si el

sistema es bajo en memoria no habilite esta opción).

Todos los temporizadores de

Intouch son chequeados basados en la frecuencia del temporizador.

Entre la frecuencia (en

milisegundos) a la que WindowViewer actualizara la base de tiempo del tagname del

sistema $Msec, $Second, $Minute, etc. Si los milisegundos nunca son mostrados, dejar

el seteo por defecto. Si los segundos, nunca son mostrados, setee el valor a 60000. Si

estos tagnames nunca son usados, setee este valor a 0 para prevenir que los tagnames

sean actualizados.

Seleccione esta opción para hacer que todos los

objetos de toque suenen cuando sean tocados en WindowViewer.

Seleccione esta opción para hacer la actualización de

tendencia de cierre.

Nota: Este es solamente recomendado cuando el operador esta absolutamente

seguro de que los objetos no se traplasen en algunas tendencias de runtime. Si los

Page 146: Manual Intouch

A 146

objetos sé traplasan la tendencia y esta opción es seleccionada, la tendencia no se

dibujara correctamente.

Seleccione esta opción para crear un mensaje para ser escrito en el

WWLogger cada vez que un script es ejecutado. Esta opción puede ser habilitada y/o

desabilitada durante runtime cuando el menú /Debug de WindowViewer ha sido

habilitado vía el comando /Special/Configure.../View Window...:

Seleccione esta opción solamente para aplicación

internacionales desarrolladas en Intouch 3.26 o anteriores.

Este campo es usado para especificar el nombre del Nodo

del servidor de alarma en la red. Este Nodo es entonces

usado por los nodos remotos para recuperar su información de alarma (si el Nodo local

es el nodo servidor de alarma, este es valido para entrar el nombre de estos Nodos aquí).

Cuando un programa servidor se esta comunicando con

Intouch, DDE Advise y Data Messages son agrupados en bloques para mejorar lo

puesto. Este campo es usado para mejorar el tamaño del bloque. Estas entradas no

afectan la operación del servidor DDE con aplicaciones normales de DDE Aware.

Entre el valor para controlar el intervalo (en segundos)

Page 147: Manual Intouch

A 147

que WindowViewer automáticamente usará para estabilizar la conversación DDE sin

notificar al operador. Si se cierra un servidor DDE, WindowViewer intentara

reinicializar la conversación a el rango de seteo en este campo.

Entre el número de segundos que pueden transcurrir sin

actividad en la aplicación antes de que el tagname del sistema discreto $Inactivity

Warning sea seteado a 1. Un mensaje de precaución dirá al operador de que el/ella esta

más o menos fuera de registro de la aplicación pueden ser generado usando el tagname

$Inactivity Warning.

Entre el número de segundos que pueden transcurrir sin

actividad en la aplicación antes de que el tagname de sistema discreto $Inactivity

Timeout sea seteado a 1. Un mensaje dirá al operador de que el/ella esta más o menos

fuera de registro de la aplicación pueden ser generado usando el tagname $Inactivity

Timeout.

Estos son tres campos usados para setear la velocidad (en

milisegundos) de parpadeo de un objeto. La velocidad seteada

aquí será usada por la selección de velocidad de parpadeo en el

cuadro de diálogo Vínculos de Animación:

Page 148: Manual Intouch

A 148

3.30.4.- Configure/View Window

Este comando es usado para configurar varios items relativos a la pantalla del

programa WindowViewer. Al llamar este comando se accede al cuadro de diálogo

WindowViewer Configuration:

Por defecto, la barra de menú será mostrada cuando WindowViewer esta

cerrado. Desabilitando esta opción desabilitará todas todos los menús WindowViewer.

Una barra en blanco fija aparecerá en la parte de arriba de la pantalla. Si la barra de

menú es habilitada, todos de los siguientes menús no serán habilitados para verse:

Por defecto, el menú /File será mostrado cuando se corre WindowViewer.

Page 149: Manual Intouch

A 149

Nota: Cuando el menú /File es habilitado, el comando WindowMaker será

desabilitado para prevenir que el operador este cambiando el programa

WindowMaker cuando una llave de desarrollo es instalada.

Por defecto, el menú /Logic será mostrado cuando se corre WindowViewer.

Si este menú es habilitado, el operador tendrá la habilidad de partir y parar todos los

script que son ejecutados durante runtime.

Habilitando este menú permitirá al operador acceder a varios comandos

que pueden ser usados para la aplicación. Esto es recomendado para que este menú

solamente sea mostrado cuando sea necesario acceder al comando Debug (paso a paso)

del troubleshooting durante la aplicación de desarrollo.

Nota ESPECIAL: esto es recomendado para que este menú no sea habilitado sin

primero consultar el soporte técnico de Wanderware.

Por defecto, el menú /Special será mostrado cuando se corre

WindowViewer. Si el menú es habilitado, todos los comandos siguiente del menú no

serán habilitados para visualizarce:

Por defecto, el menú /Special/Security será accesible cuando se corre

WindowViewer. Si el menú es desabilitado, todos los comandos siguiente del menú no

serán habilitados para visualizarce:

Page 150: Manual Intouch

A 150

Seleccione esta opción para provocar que el menú de control sea

mostrado cuando se corre WindowViewer.

Seleccione esta opción para provocar que el cuadro minimizar

pantalla sea mostrado cuando se corre WindowViewer.

Seleccione esta opción para provocar que el cuadro maximizar

pantalla sea mostrado cuando se corre WindowViewer.

Seleccione ésta opción para permitir al operador cambiar el tamaño

de la visualización de WindowViewer. (Este comando no es seleccionable cuando la

barra de título esta oculta).

Entre el título que aparecerá en la barra de título cuando se corre

WindowViewer. Ejemplo: Intouch – WindowViewer.

Seleccione esta opción para mostrar el actual directorio de la aplicación en la

barra de título seguido del título, ejemplo: Intouch – WindowViewer c:\DEMOAPP1.

Seleccione esta opción para que la barra de título no sea mostrada

en WindowViewer.

Seleccione esta opción para hacer que el programa

WindowViewer sea imposible de cerrar.

Page 151: Manual Intouch

A 151

Seleccione esta opción para activar la tecla de

secuencia Ctrl+Break para detener la ejecución de un script cada vez que sea necesario

durante runtime.

Nota Especial: Si esta opción es habilitada, el operador será capaz de parar todos

los script que se están ejecutando a pesar de toda si o no el menú /Logic es

mostrado en WindowViewer. Si el menú Logic no es visualizado y los script son

detenidos usando la secuencia de la tecla Ctrl+Break, WindowViewer será

reseteado para partir ejecutando el script otra vez.

Seleccione ésta opción para desabilitar la tecla ALT y prevenir al

operador de usar el comando acelerador ALT, ejemplo: ALT+FX para salir de la

aplicación.

Seleccione ésta opción para ocultar el cursor durante runtime.

Seleccione ésta opción para desabilitar la tecla de secuencia

Ctrl+ESC. Esto prevé al operador para acceder a la lista de tareas de Windows para

cerrar y/o cambiar de aplicación.

Nota: Para estar absolutamente seguro de que el operador no tenga la habilidad de

llamar la lista de tareas de Windows, Taskman.exe puede ser borrado del

directorio de Windows.

Seleccione ésta opción para mantener minimizado el programa

WindowViewer para todos los tiempos.

Page 152: Manual Intouch

A 152

3.30.5.- /Configure/View Home Windows...

Este comando es usado para definir las pantallas que automáticamente serán

mostradas cuando parte WindowViewer desde cualquiera de los dos comandos del

programa Manager de Windows /File/Run... o haciendo doble click en el icono

WindowViewer. (Esto no es aplicable cuando se transfiere de WindowViewer a

WindowMaker).

Estas son algunas pantallas que se muestran cuando el comando ShowHome es

usado en un script. Al llamar este comando se accede al cuadro de diálogo Home

Windows For View:

Para seleccionar una pantalla, haga click en ella. Para seleccionar varias

pantallas, haga click en cada nombre de pantalla con el mouse o use la tecla del cursor

de flecha para moverse a cada nombre de pantalla, presionando la barra espaciadora

para seleccionar la pantalla.