59741168 Manual de 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 di rectorio, tenemos la opción de hacer varias pantallas d entro 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 co ntinuaci ón: Donde se coloca el nombre de la pantalla con un máximo de 32 caracteres, se selecciona el color de f ondo de l a pantal la 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 e n la confección de la  pantalla. Cuando se está dentro de una nueva pantalla aparece la barra de herramientas Toolbox, es una caja de herr amientas con una col ección de objetos gr áf icos que son utilizados en la aplicación. La caja de herramientas queda normalmente visible al abrir Window Maker .

Transcript of 59741168 Manual de Intouch

A 1

I.- TRABAJANDO CON INTOUCH

Para crear una nueva aplicacin en Intouch, seleccione Create Directory, o para seleccionar una aplicacin existente basta con hacer doble click sobre el nombre del archivo a abrir. Cuando se crea un directorio, tenemos la opcin 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 continuacin:

Donde se coloca el nombre de la pantalla con un mximo de 32 caracteres, se selecciona el color de fondo de la pantalla en Window Color, se definen las dimensiones de la pantalla, tambin se define la visibilidad o no del titulo de pantalla. Se puede ingresar a los Scripts, aplicacin que ser detallada mas adelante, luego de terminadas las propiedades de pantalla se presiona OK y se comienza a trabajar en la confeccin de la pantalla. Cuando se est dentro de una nueva pantalla aparece la barra de herramientas Toolbox, es una caja de herramientas con una coleccin de objetos grficos que son utilizados en la aplicacin. La caja de herramientas queda normalmente visible al abrir Window Maker.

A 2

La barra de herramientas es tal como se muestra a continuacin:

La primera lnea de herramienta es usada para crear objetos grficos, escribir nombres, seleccionar objetos, etc. Los cuales pueden ser mostrados o animados en el modo de trabajo Runtime. La segunda lnea cuenta con la herramienta Wizard. Al seleccionar est herramienta aparece un cuadro con elementos bsicos que se utilizan para hacer eficiente y rpido la construccin de las pantallas.

Basta con hacer doble click en el objeto seleccionado para que se de la opcin de colocarlo donde se requiera en la creacin de la pantalla, tambin se pueda variar su tamao y dar Configuracin de acuerdo a lo requerido en la construccin de la pantalla.

A 3

Encontrndose tambin en est cuadro opciones de grficos en tiempo real, histricos y ventanas de alarmas. Luego los componentes restantes de est lnea, 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 opcin 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, tambin se cuenta con Exit que es salir del programa.

Adems cuenta con WindowViewer que es un switch para cambio de WindowMaker a WindowViewer (pantalla de simulacin).

A 4

2.2.- Men Arreglar El 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 Texto El Men de Texto es parte del Toolbox por lo tanto se maneja directamente de la barra de herramientas. 2.4.- Men de Lnea Los comandos de Men de Lnea se usan para cambiar el estilo y la anchura de lneas que son usada sobre objetos individualmente. Cualquier objeto seleccionado que contiene una lnea (es decir, crculos, cuadrados, polgonos, lneas, etc.) ser

A 5

modificado. Despus de seleccionar el o los objetos, y haciendo click sobre el tipo de lnea deseado que muestra en el men de lnea, esta ser cambiada. 2.5.- Men Especial El Men Especial contiene un conjunto de comandos y subcomandos permitiendo desempear 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), Vnculos de Animacin (Animation Links), sustitucin de tagnames, sustitucin 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, tambin se pueden crear subgrupos de alarmas, seleccionar el nombre de accesos DDE (Dynamic Data Exchange). Tambin existe el comando Configurar con el cual Intouch, provee la habilidad de personalizar completamente la funcionalidad y aspecto final de la aplicacin seleccionando varias opciones. Estas opciones se obtienen desde este comando. Por ejemplo, puede colocarse las opciones que impidan al usuario salir de WindowVewer, la barra de ttulo puede personalizarse para mostrar el nombre de compaa, la barra de men puede eliminarse, la tecla ALT puede estar incapacitado, etc.

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. Adems se incluye una lista de Script que son editores de lgica, los cuales pueden ser usados por los usuarios. Dependiendo de que Script se edita, la lgica puede implementarse (Aplicacin Script), cuando se selecciona el comando Script, los Scripts de Lgica son utilizados para crear simulaciones, contrasea de proteccin, clculos de sistemas de variables o cambio de ventanas debido a los cambios en el proceso de variables, etc. Ms adelante se profundizar ms sobre los Scripts. 2.6.- Men de Ventana El 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 corazn de Intouch. En orden crea la rutina de la base de datos, Intouch requiere informacin aproximadamente de todas las entradas/tags que son creados. Cada entrada se le debe asignar un tagname. Un tagname es un nombre simblico que se entra en el Diccionario de Tagname. Este nombre simblico puede entonces configurar valores min., max., alarmas, etc. y tambin se define como un tipo especfico, 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 informacin sobre la variables/entradas en la base de datos. En el modo Runtime, contiene el valor actual de todos los artculos en la base de datos. La creacin de la base de datos o el Diccionario de Datos puede realizarse usando tres diferente mtodos. El primer mtodo es la creacin de un manual donde usted accesa el tagname de diccionario y define cada tag individualmente hasta completar la base de datos. El segundo mtodo es el mtodo automtico donde usted crea un objeto grfico, asignando vnculos de animacin al objeto y el sistema

A 7

rpidamente define el tagname. El tercer mtodo es el mtodo externo donde usted usa el utilitario de Wonderware DB de Basurero y DB carga para transferir la base de datos desde una aplicacin de InTouch a otra aplicacin de InTouch. Si usted escoge el mtodo automtico o manual para crear la base de datos, aparece el cuadro de dialogo "Diccionario - TagName de Definicin". En el mtodo automtico el cuadro de dialogo aparecer una vez que se presiona OK, cuando pide definir los tagnames, asignando despus los vnculos de animacin del objeto. Para acceder al cuadro de dilogo cuando se usa el mtodo manual de creacin, primero se selecciona Special/Tag Name Diccionary.

Details Seleccione este botn para mostrar el cuadro de dilogo usado para ingresar los detalles del tipo especfico de tag. El inicialmente cuadro de dialogo Dctionary Tag Name Definition es usado para ingresar la informacin bsica 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 automticamente un cuadro de dialogo Details

respectivamente. Si el cuadro de dilogo "Details" para la definicin del tagname actualmente mostrado en pantalla no aparece, seleccione Details en la parte superior del cuadro.

A 8

Alarms Seleccione este botn para definir la condicin de alarma del tagname. Cuando definimos un tagname anlogo (entero o verdadero), el siguiente cuadro de dilogo se usa para seleccionar tipos de alarmas y entrar sus valores. Los valores de campos ingresados para cada tipo de alarma no aparecern hasta que un tipo de alarma sea habilitado por un click en su respectivo cuadro de chequeo como se muestra ms adelante:

Both Seleccione este botn para mostrar ambos cuadros de dilogos details y alarms simultneamente. El siguiente es un ejemplo como la pantalla se ver cuando un tagname "Memoria Real" est siendo definido y este botn se selecciona:

A 9

None Seleccione este botn para remover el cuadro de dilogo details y/o alarms desde la pantalla. 2.7.1.- Ingresar Campos, Botones y Permitir al Usuario Opciones de Entrada...

A 10

Tag Name: Ingrese el nuevo tagname en este campo. Los Tagnames pueden ser hasta un largo de 32 caracteres y el primer carcter debe ser A-Z o a-z y puede seguirse con AZ, a-z, 0-9,! , Q, -,? , #, $ , %, _ y &.

Comment:

Los Comentarios son opcionales, pero pueden ser mostrados en una

Ventana de Alarma. Ingrese cualquier informacin opcional para documentar el tagname en este campo (hasta 50 - caracteres). (Estos comentarios pueden mostrarse en ventanas de alarmas.)

Hacer click sobre este botn para acceder al Escoger tipo de Tag..., el cuadro de dilogo selecciona el tipo de tagname:

Hacer click sobre este botn para acceder al cuadro de dilogo Escoger Grupo de Alarmas... para asignar el tagname a un grupo de alarmas especfico o crear un nuevo grupo de alarma. Read only Seleccione este botn para restringir a WindowViewer para que solamente sea capaz de leer el valor del tagname. Read Write Seleccione este botn para permitir a WindowViewer leer/escribir de/desde el valor del tagname.

A 11

Log Data Registra automticamente el tagname en el archivo Histrical Log cada vez que sus valores de unidades de ingeniera cambien, especificado Deadband. ms el valor del Registro

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 opcin 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 vlidas en este campo son de 1 a 999 donde 1 es la ms alta prioridad y 999 es la ms baja.

Retentive Value Esta opcin 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 vara 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 Tag Cada tagname debe ser asignado a un tipo especfico segn el uso del tagname. Por ejemplo, si el tagname es para leer o escribir valores que vienen desde otra aplicacin de Windows tal como un servidor DDE, este debe ser un tag tipo DDE. Se debe considerar si el Tag esta representando una seal Discreta, que es un solo bit (tal como una sola entrada del PLC) o una seal Anloga (tal como un registro de 16, 32, o 64 bits). Los tag analgicos son separados en dos de tipos, Enteros y Reales. A

continuacin se describe cada tipo de tag y su uso respectivo.

A 12

2.8.1.- Tagname tipo Memoria Estos tipos de tag existen solamente dentro del programa Intouch. Ellos pueden usarse para crear constantes de sistema, demostraciones y simulaciones. Estos tambin son tiles en la creacin de clculos de variables para ser accesados en otros Programas de Windows. Por ejemplo, si un tagname de memoria real es creado llamado PI, podra asignarse a l, el valor inicial de 3.1416; o las frmulas podran 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" podra ser cambiado con una accin presionando un botn Script para provocar varios efectos de animacin. Hay cuatro tipos de Memoria:

Memory Discrete Tagname Discreto Interno con un valor de O (Falso, Fuera) o 1 (Verdadero, Habilitado).

Memory Interger Es 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 clculos del punto flotante se realizan con 64 bit de resolucin, pero el resultado se almacena en 32 bit.

Memory Message El 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 Wndows son Tagname DDE. Esto incluye todas las entradas y salidas desde

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

A 13

datos desde nodos de red. Los Tagnames DDE se ingresan por medio del Protocolo Dynmic Data Exchange (DDE) de Microsoft. Cuando el valor del tagname DDE de lectura/escritura cambia, ste es inmediatamente escrito en la aplicacin remota por medio de DDE. El tagname tambin puede ser actualizado desde la aplicacin remota cuando el item al cual el tagname es vinculados cambia a la aplicacin remota. Por defecto Leer / Escribir es un conjunto de todos los tagnames DDE. Sin embargo, ellos pueden restringirse para Leer solamente al seleccionar el botn Read Only en el cuadro de dilogo Diccionary Tag Name Definition. Hay cuatro Tipos de DDE:

DDE Discrete Tagname de entrada/salida discreta con un valor entre 0 (Falso, Off) o 1 (Verdadero, On).

DDE Integer Es asignado un valor entero de 32 bits entre 2,147,483,648 y 2,147,483,647. DDE Real Tagname de memoria con punto flotante (decimal). El valor del punto flotante puede estar entre 3.4e38. Todos los clculos del punto flotante se realizan con 64 bit de resolucin, pero el resultado se almacena en 32 bit.

DDE Message El Texto del tagname de una fila puede ser de un largo de 131 caracteres. 2.8.3.- Tagnames de Tipo Miscelneo Estos son un tipo de tags especiales que son asignados a tagnames que realizan funciones complejas, tal como mostrar despliegues de alarmas dinmicas, histricos, monitoreo y / o cambio del tagname en cada trazado histrico que es dibujado y tagname indirectos que permiten reasignar los tagname a mltiples fuentes. Estos tipos de tags son los siguientes:

A 14

Group Var Este 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 dinmicamente los registros. Las ventanas de alarmas o registros de alarmas pueden configurarse para mostrar todas las alarmas asociadas con un Group Var. Mediante asignacin un grupo de Alarma diferente al nombre del Grupo de Variable, la seleccin de alarmas a mostrar o a registrar puede ser controlada. Un tagname de Group Var puede usarse para crear un botn 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 Trend Este tipo de tag es asignado a un tagname para ser usado como un diagrama Histrico de Tendencia. Cuando configuramos un mapa Histrico de Tendencia,

InTouch requiere que un tipo de tagname HistTrend sea asignado a un grfico.

Tag ID Este tipo de tag es usado para obtener informacin sobre los tagnames que estn siendo registrados en un mapa de Tendencia Histrica. El uso ms comn es mostrar el nombre del Tagname de la tendencia. Por ejemplo, Pen4 de un mapa Histrico 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 mltiples fuentes. Por ejemplo, uno Cambio de

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 tambin se pueden modificar. Esto les permite tomar su ltima asignacin de tagname en la partida. 2.9.- Tagnames Placeholder Cuando una ventana es importada o es exportada a una aplicacin, todos los tagnames asociados con la ventana son transferidos con la ventana, pero no son agregados a la nueva base de datos de aplicacin. Ellos sern automticamente cambiados en el tagnames "placeholder" (ndice) y deben ser convertidos y definidos por la nueva aplicacin. 1. Para convertir el tagnames, seleccione el comando /Edit/Select All (F2) luego el comando /Special/Substitute All Tags...(Ctrl+U). El cuadro de dilogo 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

A 16

"h" indica un HistTrend, etc. haciendo Click sobre el botn Convert se remover automticamente 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 aplicacin, el siguiente cuadro de mensaje aparecer verificando la creacin del nuevo tagname:

4. Haciendo Click sobre OK permitir que el cuadro de dilogo Diccionary - Tag Name Definition aparezca y el tagname pueda definirse y agregarlo a la base de datos de la actual aplicacin.

2.10.- Qu son los Links (Vnculos)? Una vez que un objeto grfico o el smbolo se ha creado, ste puede ser animado uniendo vnculos de animacin a l. Los vnculos de animacin permiten que el objeto, smbolo o celda cambien su apariencia reflejando los cambios en el valor de una variable de la base de datos del tagname. Por ejemplo, el smbolo de una bomba puede ser de color rojo cuando esta apagada y de color verde cuando est encendida. El smbolo de la bomba tambin puede ser encendida por un pulsador que se usa para encender y apagar la bomba cuando se pulse. Estos y muchos otros efectos de animacin son obtenidos cuando se definen los vnculos de animacin para un objeto o smbolo seleccionado. Conjuntamente con los tagnames, algunos vnculos de animaciones tambin permiten el uso de expresiones lgicas usados para calcular variables (por ejemplo integer1 + 100, discretel AND discrete2 AND NOT discrete3, etc.).

A 17

2.10.1.- Uniendo y Seleccionando un Vnculo Cuando un objeto se selecciona y el comando /Special/Animation Links... se ejecuta hay dos cuadros de dilogo que siempre aparecen; el "Item Description" y el "Links selection". Ambos cuadros de dilogo son descritos ms adelante. Nota: Haciendo Doble click sobre el que objeto deseado se llama directamente la pantalla de los Links de Animacin.

A continuacin se describe cada campo en el cuadro previo de dilogo: Prev Link y Next Link Si varios vnculos han sido adjuntos al objeto, estos dos botones pueden usarse para avanzar y retroceder rpidamente mediante el cuadro de dilogo de detalle para cada Links adjunto al objeto sin salir del cuadro de dilogo de Vinculo de Animacin. Nota: En un objeto o smbolo pueden tener mltiples links definidos. La

capacidad para combinar los vnculos de animacin provee la capacidad para crear casi cualquier animacin de pantalla y efecto imaginable. Horizontal/Vertical Loc. Width/Height Corresponde a la ubicacin Horizontal y Vertical como tambin al Largo y Alto del objeto expresado en pixeles de la pantalla.

A 18

Este cuadro de dilogo se usa para seleccionar el Link (s) deseado (s) para el objeto, haciendo click sobre el botn con el nombre del links. Haciendo Click sobre el cuadro de chequeo, solamente selecciona o deshabita el links. Haciendo Click sobre el botn del nombre del links selecciona y permite que aparezca el especfico cuadro de dilogo de definicin de detalle para el links.

Informacin comn del Links... La Paleta de Seleccin de Color: El cuadro de seleccin de color aparece cuando un color de links est siendo unido para animar el color de la lnea, llenado de color, (y/o para atributos de color de texto de un objeto). El cuadro de seleccin de color ofrece una cantidad de 32 colores. La primera columna (desde la izquierda) muestra los ocho colores slidos primarios. Las tres columnas que quedan muestran los ocho colores slidos o colores derivados dependiendo de la tarjeta de grficas instalada en la computadora. Asignando una tecla a un Vinculo de Animacin: Una Tecla especfica o combinacin 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 mltiples, la definicin en la ventana abierta ms recientemente ser la que se active primero. Para asignar una tecla, haga click sobre el botn Key... en el cuadro de dilogo de detalle de animacin. El cuadro de dilogo "Choose Key... " aparecer rpidamente para que usted seleccione la tecla deseada.

2.10.2.- Cuadro de dilogo Choose Name... Haciendo doble - click sobre Blank Tag Name o Expression, entre el campo en el cuadro de dilogo de detalle de links de animacin que ocasionar que aparezca el cuadro "Choose Name...", rpidamente usted puede seleccionar el tagname deseado que ha sido previamente ingresado en la base de datos. Haciendo doble - click sobre un

A 19

nombre se remueve el cuadro de dilogo y se inserta el nombre seleccionado en el tagname o campo de expresin en el cuadro de dilogo.

2.11.- Qu Links estn disponibles?

Touch Links Touch Link convierte cualquier objeto o smbolo en un botn de accin. Un botn de accin puede ser activado al presionar el botn 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 continuacin.

Nota: Si el objeto o smbolo utilizado para estos vnculos contiene un campo de texto, todos atributos diseados para el texto aparecern 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 opcin Input Only sea habilitada en el cuadro de dilogo de Details.

A 20

Valor Slider Touch Links El Slider (Deslizador) Touch Links se usa para crear un objeto o smbolo que pueda moverse con el mouse. Como el objeto o smbolo 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 anlogas pueden ser cambiadas simultneamente.

Vnculos con Touch Pushbutton Los Touch Pushbutton son vnculos de objeto que ejecutan inmediatamente una operacin cuando son activados. Estas

operaciones pueden ser cambios de Valores Discreto (Discrete Value), ejecucin de Script (Action), mostrar Ventanas (Show Window) u Ocultar Ventanas (Hide Windows).

Vinculo de Colores Los vnculos de Colores permiten la animacin de atributos de color de lnea, llenado, y/o texto de un objeto. Cada uno de estos atributos pueden ser creados dinmicamente al definir un color vinculado al atributo. El atributo de color puede vincularse al valor de una expresin discreta, expresin anloga, condicin discreta de alarma o condicin anloga de alarma.

A 21

Vnculos de Colores de Objetos a Estados de Alarma El color de texto, lnea, y llenado de un objeto pueden ser vinculados al estado de alarma de un Tagname, Group Name, o Group Variable. Hay dos tipos bsicos 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 Anloga (Analog Alarm) que es nicamente aplicable a las variables de tipo anlogas. [Value Alarm Color Link] Provee la capacidad para seleccionar hasta cinco diferente colores basados en los lmites 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 desviacin 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 razn de cambio de la alarma definido para el punto.

Vnculos del Tamao del Objeto Este vinculo se usa para variar la altura y/o ancho de un objeto segn el valor de una expresin analgica. Provee la

capacidad para controlar la direccin en que el objeto se agranda en altura y/o anchura seteando el Anchor (Top, Middle, o Botton) del vinculo. Ambos vnculos, de anchura y altura, pueden ser usados en el mismo objeto.

Vnculos de Localizacin Este vinculo se usa para hacer que un objeto se mueva horizontalmente, verticalmente, o en ambas direcciones

automticamente con respecto a cambios en el valor de una expresin.

A 22

Vnculos del Porcentaje de Llenado Este vinculo provee la capacidad para variar el nivel de relleno de una forma o un smbolo que se llenan segn el valor de una expresin analgica. Por ejemplo, este vinculo puede usarse para mostrar el nivel de lquidos en una embarcacin. horizontal, vertical, o ambos. Vnculos Miscelneos Existen cuatro vnculos miscelneos, Visibility, Blink, Un objeto o smbolo puede ser llenado en forma

Orientation y Disable. Los vnculos de visibilidad controlan la visualizacin de un objeto dependiendo del valor de un tagname discreto o expresin. Este vinculo puede usarse para hacer que aparezcan y desaparezcan objetos. Los vnculos Blink proveen la capacidad para hacer que un objeto parpadee de acuerdo al valor de un tagname discreto o expresin. (Cada uno de los atributos de color del texto, Lnea y relleno pueden ser seleccionado para que un objeto parpadee). Los vnculos de orientacin proveen la capacidad para hacer que un objeto gire sobre un eje especificado de acuerdo al valor de un tagname o expresin. El vinculo Disable provee la capacidad de impedir a un usuario particular o un grupo de usuarios tener acceso a presionar un botn en particular si sus AccessLevel no es lo suficientemente alto por ejemplo (si el vinculo disable es verdadero, el texto sobre el botn 3-d no se destacar indicando que esta desabilitado). Vnculos de valores de salida Estos vnculos proveen la capacidad para usar un texto objeto para mostrar el valor de una variable discreta (Discrete), anloga (Analog), o alfanumrica (String).

A 23

III.- Men WindowViewer 3.1.- Men File El men File de WindowViewer es muy similar a cualquier men de una aplicacin en comn. Permitiendo abrir, cerrar, salir, etc. ventanas de la aplicacin.

3.2.- Controlador Logic El Men de Logic contiene los comandos de partida (Start Logic) y parada (Stop Logic) de la ejecucin 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 Histricos y accesar al Wonderware Logger para ver informacin de error.

A 24

3.4.- /Special/Security Los comandos de seguridad de este men son usados para iniciar y cerrar la aplicacin, cambiar passwords o contraseas 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 ms adelante. 3.5.- Development! Este es un interruptor rpido que cambia a la aplicacin WindowMaker. Este es habilitado en WindowMaker usando el comando \Special\Configure\WindowMaker. 3.6.- Diseo de Scripts en InTouch La variedad de scripts de Wonderware expande las capacidades de InTouch para proporcionar la ejecucin de comandos y operaciones lgicas segn 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 automticos personalizados. Existen seis tipos de Scripts disponibles: Scripts de Aplicacin Scripts de Ventanas

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 excepcin del Accionamiento de Botones) se ubican en el men /Special/Scripts.

3.7.- Scripts de Aplicacin Los Scripts de Aplicacin son vinculados a una aplicacin completa y se pueden usar para correr otras aplicaciones, crear simulacin de procesos, clculo de variables. Al seleccionar este comando aparece el siguiente cuadro de dilogo:

A 26

On Startup permite crear un Script que se ejecute una vez cuando la aplicacin comienza. While Running crea un Script para que se ejecute continuamente cada cierta cantidad de tiempo mientras corre una aplicacin. Este tiempo se ingresa en milisegundos. On Shutdown ejecuta el Script una vez que la aplicacin termina. Una vez que el botn Script es presionado, aparecer en pantalla el cuadro de dilogo de seleccin de script. Nota: Los tres tipos de scripts pueden ser utilizados en una misma aplicacin. Un Script While Running se ejecutar despus de transcurridos el tiempo establecido. Para una ejecucin inmediata se debe crear un script On Starup.

3.8.- Script de Ventana Estos tipos de scripts son vinculados a una ventana especfica. La seleccin de este comando causar la aparicin de la ventana de dilogo 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.

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 botn Script es presionado, aparecer en pantalla el cuadro de dilogo de seleccin de script. Nota: Los tres tipos de scripts pueden ser utilizados en una misma ventana. Un Script While Showing se ejecutar despus de transcurridos el tiempo establecido. Para una ejecucin inmediata se debe crear un script On Show.

3.9.- Script de Teclas Estos tipos de scripts son vinculados a una tecla especfica del teclado. Pueden muy tiles para crear teclas globales para la aplicacin, por ejemplo, volver a una ventana del men principal, salida del operador (log off). Seleccionando este comando aparecer el cuadro de dilogo 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.

A 28

On Key Up ejecuta el Script una vez que la tecla es dejada de presionar. Una vez que el botn Script es presionado, aparecer en pantalla el cuadro de dilogo de seleccin de script. Nota: Los tres tipos de scripts pueden ser utilizados en una misma ventana. Un Script While Down se ejecutar despus de transcurridos el tiempo establecido. Para una ejecucin inmediata se debe crear un script On Key Down. Nota especial: Si un objeto o botn de accin en la ventana activa (abierta) es asignado a una misma tecla usada para un Script de teclas, el vnculo en la tecla de la ventana tendr preferencia sobre la ejecucin del Script.

3.10.- Scripts de Condiciones Estos Scripts estn vinculados a un tagname o expresin discretos. Cuando este comando es seleccionado aparecer el cuadro de dilogo Condition Action Script:

On True ejecuta un Script una vez cuando la condicin pasa a ser verdadera. On False se ejecuta cuando la condicin pasa a ser falsa. While True ejecuta el Script continuamente a una

frecuencia especificada mientras la condicin es verdadera. While False ejecuta el Script continuamente a una frecuencia especificada mientras la condicin es falsa.

A 29

Nota: El valor para la condicin debe pasar a la transicin 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 ejecutarn en forma repetitiva. Una vez que un botn de Script es pulsado aparecer en pantalla el cuadro de dilogo del Script. Nota: Los cuatro tipos de Scripts pueden ser usados a la misma condicin. Ambos Scripts, While True y While False, se ejecutarn despus de transcurridos el tiempo en milisegundos establecido. Para una ejecucin 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 Condicin o Script de Cambio de Dato, no deberan ser usados como el tagname para un Script de Cambio de Datos o en la expresin de un Script de Condicin. Ejemplo, un Script de Cambio de Dato ejecuta un valor A cambiando el contenido lgico de B=B+1. El tagname B no debera ser usado cono el tagname para un Script de Cambio de Dato o ser parte de la expresin de un Script de Condicin.

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.

A 30

Nota Especial: Los tagname que son modificados en un Script de Condicin o Script de Cambio de Dato no deben ser usados con el tagname para un Script de Cambio de Datos o en la expresin de un Script de Condicin.

3.12.- Scripts de Accionamiento de Botones Estos Scripts son vinculados a un objeto tipo Botn. Cuando el operador presione el botn el Script de Accionamiento es ejecutado. Seleccionando un vnculo de animacin usando un Botn de Accin aparecer el cuadro de dilogo Touch Script. Action

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 botn Script es presionado, aparecer en pantalla el cuadro de dilogo de seleccin de script. Nota: Los tres tipos de scripts pueden ser utilizados al mismo botn. Un Script While Down se ejecutar despus de transcurridos el tiempo establecido. Para una ejecucin inmediata se debe crear un script On Key Button Down.

A 31

3.13.- Ingreso de la Operacin Lgica En la mayora de los casos, una vez que el tipo de Script es seleccionado en su respectivo cuadro de dilogo, aparecer tambin el siguiente cuadro de dilogo 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 matemtica ingresa la funcin correspondiente a l.

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 posicin del cursor en el Script. Se devuelve a la ltima operacin de edicin. Remueve el primer carcter tabulado a la izquierda de la posicin del cursor. Inserta una tabulacin a la derecha de la posicin del cursor.

Borra completamente el texto del Script. (El Script no es borrado de la aplicacin). Valida el Script ingresado. Si existen errores aparecer el correspondiente cuadro de mensaje.

Aparece en pantalla los tpicos de ayuda de WindowMaker para todas las funciones del editor de Script. Pulsando este botn aparecer el cuadro de dilogo Reemplazar:

A 33

Funciones especficas estn 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 dilogo Choose Function.

A 34

A 35

A 36

A 37

Esta funcin entrega el valor absoluto de un nmero especfico(el equivalente sin signo). Ejemplo:

ResultNumericTag= Abs(InputNumericTag);

En esta instruccin el valor absoluto del NumericTag es calculado y dado como ResultNumericTag.

Esta funcin puede ser usada en un botn para reconocer cualquier alarma desconocida. Esta funcin 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 algn Grupo de Alarma asignado a l.) Ejemplo:

A 38

Ack $System; (Reconoce todas las alarmas) Ack Tagname; Ack GroupName; Ack GroupVariable;

Esta funcin activa otra aplicacin 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 aplicacin a activar debe estar entre comillas.

Entrega la funcin 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 funcin arco seno expresado en grados entre -90 y 90. Ejemplo: ResultNumericTAg=ArcSin(InputNumericTag)

A 39

Ejemplo: ArcSin (1) estregar el valor 90 ArcSin(-1) entregar el valor -90

Entrega la funcin 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 funcin cambia en forma dinmica 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

A 40

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

Esta funcin entrega el valor de la potencia de . Ejemplo: ResultNumericTag=Exp(InputNumericTag) Ejemplo: Exp(1) dar el valor 2.71828182..........

El rango de esta funcin es entre -88.72 hasta 88.72

Esta funcin es usada para copiar un archivo fuente a un archivo destino, similar al comando de DOS o la funcin 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 parmetro 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 funcin FileCopy() es usada, sta automticamente arroja un valor 1 si el procedimiento fue iniciado exitosamente. 0 si existe otro procedimiento en ejecucin (el nuevo procedimiento no podr ser inicializado) 1 si existe un error. Usando estos valores, la inicializacin de FileCopy() puede ser monitoreada:

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 operacin de InTouch. El propsito del MonitorTag es permitir que el progreso de copiado sea monitoreado por una aplicacin 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 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 an 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 tambin puede ser un directorio, como muestra el siguiente ejemplo: si el

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 funcin dar un cdigo de error. Ejemplo: FileCopy(C: \*. TXT, C: \BACKUP, Monitor); El tag Monitor ser 1 cuando la copia sea realizada por completo.

Esta funcin es FileDelete(Filename). Ejemplo:

usada para borrar archivos indexados o innecesarios.

A 42

Status=FileDelete(C:\DATA.TXT)

Si el o los archivos son encontrados y borrados, la funcin estar en 1. En caso contrario en 0.

Similar a FileCopy(), excepto que esta funcin 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 parmetro 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 funcin FileMove() es usada, sta automticamente arroja un valor 1 si el procedimiento fue iniciado exitosamente. 0 si existe otro procedimiento en ejecucin(el nuevo procedimiento no podr ser inicializado) 1 si existe un error. Usando estos valores, la inicializacin 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 operacin de InTouch. MonitorTag - permite que el progreso de copiado sea monitoreado por una aplicacin 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.

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 an 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 funcin cambia la referencia de directorio de archivos sin mover los datos. En este caso el procedimiento ser rpido, sin importar el tamao del archivo. Si el SouceFile y DestinationFile se encuentran en diferentes discos, el tiempo de depender del tamao del archivo. En este caso es transferida de un disco fsico a otro. Ejemplo: FileMove(C:\DATA.TXT, D:\DATA.TXT,Monitor);

Nota: Tambin 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 funcin lee variables separadas por coma, Comma Separated Variable (CSV) de un archivo especfico.

FieldReadFields(Filename,BytePosition,Tagname,NumberOfFields); donde: Filename especifica el archivo donde se leern los campos. BytePosition especifica la posicin del comienzo de la lectura.

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 nmero(ej. :MyTag1). Este parmetro 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 nmero de campos a leer (el nmero de campos separados por coma en cada registro del archivo). Si el Tagname es MyTag1 y NumberOfFields es 3, entonces hay 3 campos ledos 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 lnea de C:\DATA\FILE.TXT es: This is text, 3.1416,5 El siguiente script leer esta lnea 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 funcin toma el nuevo valor de Byte position despus 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 funcin leer un nmero especfico de bytes (o una lnea completa) de un archivo especfico.

FileReadMessage(Filename,BytePosition,MessageTag,ByteCount); donde: Filename especifica el archivo desde donde se leer. BytePosition especifica la posicin en el archivo para comenzar a leer.

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 funcin entonces leer hasta el prximo linefeed en el archivo. Ejemplo: FileReadMessage(C:\DATA\FILE.TXT,0,MsgTag,0);

La primera lnea ser leda desde el archivo C:\DATA\FILE.TXT y almacenada en MsgTag.

La funcin toma el nuevo byteposition despus de la lectura. Este valor se puede usar como el BytePosition para la prxima lectura.

Esta funcin escribe un registro tipo CVS para un archivo especfico.

FileWriteFields(Filename, BytePosition; TagName, NumberOfFields); donde: Filename especifica el nombre del archivo a escribir. Si no existe es creado. BytePosition especifica la ubicacin 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 nmero. Debe tener un caracter indicando el nombre del tag. NumberOfFields especifica el nmero de campos a escribir(nmero 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.)

A 46

El siguiente script escribir la lnea This text, 3.1416, 5 a la primera lnea 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 funcin toma el nuevo valor del byte de posicin despus de la escritura. Este valor se puede usar como el BytePosition para la prxima 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 funcin escribir un numero de bytes especficos (o una lnea completa) en un archivo especfico.

FileWriteMessage(Filename, BytePosition, MessageTag, linefeedFlag); donde: Filename especifica el archivo a escribir. Si el archivo no existe, ser creado. BytePosition especifica la ubicacin en el archivo para comenzar a escribir. Si el BytePosition es -1, la funcin escribir al final del archivo. MessageTag especifica los caracteres a escribir en el archivo. LineFeedFlag especifica agregar o no una lnea despus de la operacin de escritura. Al escribir en un archivo de texto, setear el LineFeddFlag en 1. La funcin retoma el nuevo byte de posicin despus de la escritura. Este valor se puede usar como el BytePosition para la prxima escritura. Ejemplo: FileWriteMessage(C: \DATA\FILE.TXT, -1,MsgTag,1);

A 47

Esta instruccin escribir el tag de mensaje MsgTag al final del \DATA\FILE.TXT.

archivo

C:

Esta funcin puede ser usada en un script para obtener el nombre de un nodo NetDDE a una variable de caracteres. Formato vlido:

GetNodeName(messagetagname, 131);

Cuando este script se ejecuta, la funcin GetNodeName() leer el nombre del nodo local y lo registrar en el messagetagname. (El nmero 131 establece la longitud del caracter para el tagname de mensaje.) Nota: Esta funcin se ejecuta slo si se est ejecutando NetDDE.

Esta funcin 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. Tambin, si el nombre de la ventana es usado en un script de cambios, sta tambin ser cambiada en esta instruccin. Nota: Si el script es solamente para mostrar u ocultar pantallas, se recomienda usar el botn Touch Pushbotton que vincula Show Window o Hide Windows en vez de esta funcin. Si esos botones son usados y cambia el nombre de la ventana, Intouch har el cambio en el vnculo.

A 48

Esta funcin crea un botn genrico para ocultar a travs de una aplicacin para ocultar la actual ventana activa. Ejemplo: HideSelf;

Nota: el funcionamiento del script de botn Hideself es slo aplicable para un action pushbutton script.

Esta funcin es usada para determinar si hubo algn error durante la ltima recuperacin 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 nmero de escritura (de 1 -4).

Los siguientes tag enteros ResultCodes sern 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 Funcin no Existe 6=Nombre del Tag de Tendencia no existe en la Base de Datos 7=Nmero de Escritura en la funcin es Invlida (fuera del rango 1 a 4)

A 49

Ejemplo: ResulCode=HTLastError(Trend1.UpdateCount, Pen3);

Esta instruccin recupera el error para la ltima recuperacin de Pen3 de la tendencia

con el tagname Trend1 y el resultado es puesto en el tag entero ResultCode. Esta funcin 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 nmero de escritura (1-4). Un tag de mensaje es dado representando el tag especfico 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 funcin retorna el tiempo en segundos desde 00:00:00 hrs. GMT, January 1, 1970 para el muestreo en la ubicacin del scooter especificado por Scooter# y ScooterLocation. UpdateCount, Scooter#, y ScooterLocation permiten evaluar la expresin ser evaluada cuando alguno de estos parmetros cambian. Esto asegura que la expresin es evaluada despus de nuevos restablecimientos o desplazamientos del scooter.

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 nmero 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 funcin restablece el tiempo en segundos por el valor a la posicin del scooter actual para el scooter izquierdo de la tendencia etiquetada Trend1.

Esta funcin retorna en la variable la hora/fecha para el muestreo a la ubicacin del scooter especificada por Scooter# y ScooterLocation. UpdateCount, Scooter# y ScooterLocation causan que la expresin sea evaluada cuan algunos de estos parmetros cambian. Esto asegura que la expresin es evaluada despus 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 nmero real que representa el scooter izquierdo o derecho(1=Scooter

A 51

Izquierdo, 2=Scooter Derecho), ScooterLocation es un nmero 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 funcin ser retornado. Ejemplo: HTGetTimeStringAtScooter(Trend1, Trend1.UpdateCount, 2,Trend1. ScooterPosRight,Time); Esta instruccin restablece el valor tiempo/fecha a la posicin 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 funcin toma un valor del tipo requerido para la tendencia completa de un Pen especificado. El parmetro UpdateCount causar que la expresin sea evaluada despus que una recuperacin 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 nmero 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= Mximo para la tendencia PenMinValue= Mnimo para la tendencia PenStdDev= Desviacin standard para la tendencia

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 funcin obtendr la desviacin standard para el dato capturado para las tendencias Trend1, Pen2. El valor es almacenado en el tag de memoria real LeftHemisphereSD.

Esta funcin entrega del tipo requerido para el muestreo en la posicin del scooter, tendencia y pen# especificados. El parmetro UpdateCount permite que la expresin sea evaluada despus 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 nmero de pen (1-4) ValueType es una variable que indica el tipo de valor a entregar. ValueType puede ser:

PenValue= Valor de la posicin del Scooter. PenVaid= 0 si no es vlido, 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);

A 53

Esta instruccin 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 posicin actual del scooter derecho.

Esta funcin retorna un valor del tipo requerido para el dato contenido entre las posiciones del scooter derecho y el izquierdo para un escrito especfico de la tendencia. El parmetro UpdateCount permitir que la expresin sea calculada despus 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 nmero 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 mximo para la zona entre el scooter derecho y el izquierdo. PenMinValue= El mnimo para la zona entre el scooter derecho y el izquierdo. PenStdDev= Desviacin 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 :

A 54

AvgValue=HTGetValueAtZone(Trend1, Trend1.UpdateCount, Trend1. ScooterPosLeft, Trend1.ScooterPosRight, Pen1,PenAverageValue);

Esta instruccin 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 instruccin 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 grfico 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 nmero real representando el porcentaje del grfico a desplegar (0.0 a 100.0). Ejemplo: HTScrollLeft(Trend, 10.0);

Esta instruccin 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(despus que la funcin es ejecutada).

Esta instruccin 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 grfico date/time a la derecha por un porcentaje dado.

HTScrollRight(TrendName, Percent) donde:

A 55

TrendName es un tag HistTrend representando el nombre de la tendencia. Percent es un nmero real representando el porcentaje del grfico a desplegar (0.0 a 100.0). Ejemplo: HTScrollRight(Trend, 20.0);

Esta instruccin 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 (despus que la funcin es ejecutada).

Esta funcin 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 nmero 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 instruccin Pen3 de Tendencia1 usar como tagname OutletPressure.

Esta funcin 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 grfico.

HTUpdateToCurrentTime(TrendName) donde: TrendName es un tag HistTrend correspondiente al nombre de la tendencia.

A 56

Ejemplo: HTUpdateToCurrentTime(Trend1);

Esta instruccin recupera y muestra el dato para el tag histrico Trend1 a la hora exacta. Si fueran las 3:04 PM y el ancho de la tendencia es 60 segundos, la nueva hora de trmino ser 3:04 PM. La nueva hora de inicio ser 3:03 PM.

Esta funcin calcular un nuevo ancho de grfico y tiempo de inicio. Si el campo ScooterPosLeft de la tendencia es 0.0 y ScooterPosRight es 1.0, entonces el nuevo ancho del grfico 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 estn al final, el nuevo ancho del grfico es el tiempo entre ScooterPosLeft y ScooterPosRight. En ese caso, el valor de LockString no se usa. El ancho mnimo del grfico es 1 segundo. Las posiciones de los scooters sern para ScooterPosLeft=0.0 y para ScooterPosRight=1 despus del zoom. Ejemplo: HTZoomIn(Trend1, StartTime);

A 57

Esta instruccin 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 grfico era 30 segundos (despus de realizar el zoom), el tiempo de

inicio todava ser 1:25:00. Pero en ancho ser de 15 segundos. Calcula un nuevo ancho del grfico y tiempo de inicio. El nuevo ancho del grfico 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 despus del zoom. Ejemplo: HTZoomOut(Volume, Center);

Esta instruccin 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 grfico era 30 segundos, el tiempo de inicio despus de realizar el zoom todava ser 2:15:00. El ancho ser de 60 segundos y el tiempo central de la tendencia permanecer en 2:15:15.

A 58

Prueba cuando una aplicacin est Activa.

ResulDiscrete=InfoAppActive(TaskListname);

El ttulo para una aplicacin en particular puede ser determinado usando la funcin InfoAppTitle. Ejemplos: InfoAppActive(Microsoft Excel) ser 1 (si se est ejecutando) InfoAppActive(Calculator) ser 0 (si no se est ejecutando)

Esta funcin retorna al programa especificado que est corriendo en la Lista de Tareas. ResultMessage=InfoAppTitle(ProgramEXEName);

En esta instruccin, 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 informacin de un disco local o conectado en la red.

ResultInteger=InfoDisk/DriveLetter, InfoType, Trigger);

A 59

En esta instruccin, la informacin acerca del disco especificado por la letra del DriveLetter es asignada a ResultInteger. InfoType determina la informacin deseada en particular: Case1: Entrega el tamao total del disco (en bytes). Case2: Entrega el espacio disponible en el disco (en bytes). Trigger ejecutar la funcin 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 funcin se ejecutar cada minuto y entregar el valor actual.

Nota: Trigger puede ser algn tagname (no est limitado a un sistema de variables). Nota: As como en otras funciones se usan caracteres simples, si el tag message contiene ms de una letra y es usado en InfoDisk (como DriveLetter), slo el primer caracter del tag ser considerado.

Esta funcin retorna la informacin sobre un archivo o subdirectorio especfico en un computador (o equipo conectado en red).

ResultInteger=InfoFile(FileName, InfoType, Trigger);

En esta instruccin, la informacin acerca de un archivo especificado como FileName es retornada a ResultInteger. El FileName debe incluir la ruta completa del archivo, pero tambin puede incluir los caracteres comodines(*,?). InfoType determina la informacin en particular que se muestra a continuacin: 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 funcin no puede encontrar el archivo.

A 60

Caso 2: Tamao del archivo(en bytes) Caso 3: Fecha/Hora del archivo. ( en segundos desde Jan-1-1970) Caso 4: Nmero de archivos que cumplen con la descripcin del filename. Este valor ser mayor que 1 para bsquedas semejantes. Trigger ejecutar la funcin 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(tamao 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 instruccin se ejecutar cada minuto.

Nota: Trigger puede ser cualquier tagname (no est limitado a variables del sistema).

Esta aplicacin retorna al directorio actual de la aplicacin InTouch.

ResultMessage=InfoInTouchAppDir();

En esta instruccin, la aplicacin InTouch actual es asignada a ResultMessage. Ejemplo: InfoInTouchAppDir() ser c:\demoapp1

Esta funcin retorna varios valores en los recursos.

ResultInteger=InfoResources(ResourceType, Trigger);

A 61

En esta instruccin, 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 nmero de bytes de memoria libre actual. Caso 4: Entrega el nmero de tareas que estn corriendo actualmente. Trigger ejecutar la funcin 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 instruccin se ejecutar cada minuto.

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

sistema). Esta funcin retorna el prximo entero menor o igual a un nmero especfico.

ResultNumericTag=Int(InputNumericTag)

Cuando se ingresan nmeros reales negativo, esta funcin retorna el entero ms alejado del cero. Ejemplos: Int(4.7) ser 4 Int(-4.7) ser -5

A 62

Esta funcin retorna el logaritmo natural de un nmero.

ResultNumericTag=Log(InputNumericTag) Ejemplos: Log(100) ser 4.605... Log(1) ser 0 Log(0) es indeterminado.

Esta funcin escribir un mensaje definido por el usuario en el WWLogger.

LogMessage(Message);

En esta instruccin, el contenido de Message ser escrito en el WWLogger. Ejemplo: LogMessage(Report Script is Running);

La siguiente lnea 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.

A 63

Esta funcin retorna el valor de Pi(). ResultNumericTag=Pi() Ejemplo: Pi() ser 3.1416926...

Esta funcin toca una msica o sonido especificado por un archivo .wav o una entrada en la seccin [sounds] del archivo WIN.INI mediante el dispositivo de sonidos (si est instalado). Ejemplo: PlaySound(c:\horns.wav, 1);

En esta instruccin, el 1 permite tocar el sonido en forma asincrnica. Para un sonido repetitivo, se ingresa un 9.

Nota especial: El sonido debe estar en la memoria fsica disponible y ser ejecutado en una unidad de sonido instalada. Los directorios en donde se buscan los archivos de sonido estn 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 seccin [sounds] del archivo WIN.INI Si no existe el sonido por defecto o no es encontrado, la funcin no se escuchar.

Esta funcin crea un botn para ser usado en la impresin del grfico Historical Trend asociado con el tagname HistTrend especfico. La Tendencia Histrica debe estar visible cuando se usa esta funcin. Ejemplo: PrintHT(HistTrend1);

A 64

Esta funcin es usada para imprimir una ventana. Al usar esta funcin muchos reportes pueden ser encolados. Cuando se selecciona esta funcin, 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 lnea al archivo INTOUCH.INI:

PrintWindowWait=10000

donde: 10000 representa el nmero 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 slo letras se imprimen rpidamente. 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 nmero con punto flotante en pulgadas correspondiente al margen izquierdo. top nmero con punto flotante en pulgadas correspondiente al margen superior. width nmero con punto flotante en pulgadas que establece el ancho que no se imprime. Este por defecto puede ser 0, o puede tener un ancho especfico. height nmero con punto flotante en pulgadas que establece el largo que no se imprime. Este por defecto puede ser 0, o puede tener un ancho especfico. options puede ser 0 1 y slo se usan si width y height estn en 0. Si options est en 1, la ventana se imprime con el aspecto de la razn del largo que es un entero mltiplo del tamao de la ventana. Si options est en 0, la ventana se imprime con el aspecto ms amplio que se ajuste a la pgina.

A 65

Nota: Si la ventana contiene mapas de bits, options debe estar en 1 para evitar imgenes angostas. El siguiente ejemplo de Script de Condicin podra imprimir 3 pginas de reporte cada da 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 funcin PrintWindow() es 1 si la ventana existe y pudo ser encolada para imprimir. De otro modo, es 0. Adems, el estado de la funcin 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 funcin redondea un nmero real a una precisin especfica.

ResultNumericTag=Round(InputNumericTag, Precision);

El parmetro Precision establece la precisin 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

A 66

Esta funcin activa teclas para otra aplicacin. En la otra aplicacin, las teclas aparecern como si se hubiesen ingresado desde el teclado mismo. Esta capacidad puede ser usada para ingresar datos a la aplicacin como tambin comandos a ella. La mayora de las teclas del teclado pueden usadas en el SendKeys. Cada tecla se representa por uno o ms caracteres tal como la A es para la letra A o {Enter} para la tecla Enter. Para especificar ms de una tecla, se debe concatenar los cdigos 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 vlidas para ser utilizadas por el teclado: BACKSPACE {HELP} BREAK {BREAK} HOME INSERT {HOME} {INSERT} {BACKSPACE} o {BS}HELP

CAPSLOCK {CAPSLOCK} DELETE DOWN END ENTER ESCAPE F1 {DELETE} o {DEL} {DOWN} {END} {ENTER} o { } {ESCAPE} o {ESC} {F1}*

NUMLOCK {NUMLOCK} PAGE DOWN {PGDN} PAGE UP PRTSC RIGHT TAB UP {PGUP} {PRTSC} {RIGHT} {TAB} {UP}

* Igual con las dems teclas de funcin

Para especificar que las teclas Shift, Ctrl y/o Alt sean presionadas mientras otra tecla lo est, la otra tecla debe estar en minsculas y entre parntesis. Ejemplo: Sendkeys^(p); Si dos de esas teclas son usadas juntas, se utiliza un segundo par de parntesis. Por ejemplo, para presionar Ctrl+Alt+p se debe ingresar: ActivateApp Microsoft Excel; SendKeys ^(%(p));

A 67

El comando debe ser precedido por una ActivateApp para dirigir las teclas a la aplicacin respectiva.

Esta funcin modifica la aplicacin o las porciones de un nombre o tpico de un DDE Access Name durante la ejecucin runtime lo cual permite la implementacin de estrategias de respaldo (hot-backup) para InTouch. Ejemplo: SetDddeAppTopic(DDEAccessName, Application, Topic);

El DDEAccessName es el nombre actual de la definicin DDE Access Name a ser modificado. Application es el actual programa de la nueva aplicacin, por ejemplo, genius; y Topic es el nuevo nombre a ser usado por el DDE Access Name. (Estos trminos deben estar entre comillas como se muestra en el ejemplo). Si la nueva aplicacin o tpico est en blanco, la aplicacin o tpico 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 conversacin DDE. Durante este tiempo cualquier modificacin al nuevo tpico se perder.

Esta funcin determina el signo de un valor(si es positivo, negativo o cero).

ResulNumericTag=Sgn(InputnumericTag);

A 68

Si la entrada es positiva, el resultado ser 1. Para nmeros 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 especfica. 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 instruccin. Tambin, si el nombre de la ventana cambia, el script tambin debe ser cambiado.

Nota: Si el script solo est mostrando u ocultando ventanas, es recomendable usar los vnculos Show Window o Hide Window. Si se usan y el nombre de la ventana cambia, InTouch automticamente har los cambios.

Esta funcin especifica la posicin 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 instruccin, el 100 representa el pixel horizontal y 200 el vertical. Objetos de entrada anloga (Analog Input) tambin pueden ser creados y vinculados a tagnames de

A 69

memoria, por ejemplo, Horz y Vert, a cambios dinmicos de la posicin de la ventana durante el runtime. En este caso la instruccin podra ser:

ShowAt(WindowName, HORZ, VERT);

Para determinar la ubicacin de los pixel en un objeto, los tagnames internos $ObjHorz y $ObjVer pueden ser asignados a vnculos de salidas anlogas que mostrar las posiciones del objeto seleccionado actualmente. Una ventana puede ser creada para aparecer centrado sobre un objeto o botn usando los tagnames $ObjHorz y $ObjVer en un script vinculado al objeto o botn. Ejemplo: ShowAt(WindowName, $ObjHor, $ObjVer);

Esta funcin muestra la(s) ventana(s) home. Las ventanas Home son configuradas a travs del comando /Special/Configure... /View Home Windows... Ejemplo: ShowHome;

Especifica la ubicacin 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 ms extrema de la ventana est en la ubicacin del pixel 0,0). Nota: Esta funcin trabaja exactamente igual que la funcin ShowAt descrita anteriormente excepto que sta ltima controla donde la esquina superior izquierda de la ventana aparecer.

A 70

Esta funcin 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 automticamente la raz cuadrada de un valor. Ejemplo: AnalogTag1=Sqrt(AnalogTag2);

Esta funcin automticamente ejecuta otra aplicacin de Windows. La instruccin es la siguiente:

StartAppAplicationName{DocumentName};

AplicationName es el actual nombre del programa de aplicacin que ser ejecutado, Por ejemplo; Excel.exe. La parte DocumentName es opcional y se refiere a abrir un documento especfico cuando parte la aplicacin. Ejemplo: StartAppExcel.exe Report.XLS;

Esta instruccin ejecutar el Excel y abrir inmediatamente la hoja de clculo llamada Report.XLS. Si No es usado el nombre del documento la instruccin ser:

StartAppExcel.exe;

A 71

Esta instruccin ejecutar Excel.exe y la hoja de clculo por defecto ser Sheet1. Aunque no es un requerimiento, es recomendable incluir la extensin.exe en el nombre del programa o aplicacin.

Entrega el valor en cdigo ASCII del primer caracter de un tag de mensaje especfico. IntegerTag=StringASCII(MessageTag);

En esta instruccin, 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 instruccin StringASCII contiene ms de un caracter, slo el primero del tag ser utilizado para la conversin.

Entrega el caracter correspondiente a un cdigo ASCII especfico.

MessageTag=StringChar(IntegerTag);

En esta instruccin, el caracter ASCII especificado por el IntegerTag es retornado al MessageTag. Una utilizacin de esta funcin es que se puede agregar caracteres ASCII que normalmente no estn representados en el teclado para tags de mensajes. Ejemplo: ControlString=MessageTag+StringChar(13)+StringChar(10);

A 72

En este ejemplo, un [CR y un [LF han sido agregados al final de MessageTag y traspasados a ControlString. La insercin de caracteres fuera del rango normal de 32 a 126 de caracteres visuales pueden ser tilmente usados en la creacin de cdigos de control para ciertos dispositivos externos tales como impresoras o mdems.

Convierte un entero en una representacin de caracteres de diferente base numrica. ResultMessage=StringFromIntg(IntegerTag, Base);

En esta instruccin, IntegerTag es convertido a la Base especificada y el resultado es almacenado en ResultMessage. Ejemplos: StringFromIntg(26,2) ser el cdigo binario 11010 StringFromIntg(26,8) ser el nmero octal 32 StringFromIntg(26,16) ser el nmero hexadecimal 1A

Convierte un valor real a una representacin como un nmero con punto flotante o como notacin exponencial.

ResultMessage=StringFromReal(RealTag, Precision, StringType);

En esta instruccin, RealTag es convertido a la precisin y tipo y caracter especificado y el resultado es almacenado en ResultMessage. La variable Precision especifica cuantos decimales sern mostrados. StringType determina el mtodo en que aparecer de acuerdo a: StringType=f muestra la notacin con punto flotante. StringType=e muestra la notacin exponencial en minscula e.

A 73

StringType=E muestra la notacin exponencial en mayscula 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 representacin particular.

ResultMessage=StringFromTime(TimeValue, StringType);

En esta instruccin, 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 da de la semana abreviado. Ejemplo: Wed. Caso 5: Muestra el nombre completo del da 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

A 74

Esta funcin retorna la posicin en el MessageTag donde ocurre primero MessageToFind. IntegerTag=StringInString(MessageTag, MessageToFind, StartPosition, CaseSensitive);

En esta instruccin, el MessageTag es buscado para encontrar el MessageToFind. Si est varias veces en el MessageTag, La posicin del primer encuentro ser dado a IntegerTag. StartPosition es un entero que determina desde que posicin comienza la bsqueda en el MessageTag. El parmetro CaseSensitive determina cuando la bsqueda 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 Veterans Day, Day,1,1) ser 20

StringInString(Today is Veterans Day, Night, 1,1) ser 0 Considera los primeros caracteres de un tag de mensaje especfico.

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 especfico.

A 75

IntegerTag=StringLen(MessageTag);

En esta instruccin, 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 maysculas a minsculas de un tag de mensaje especfico. ResultMessage=StringLower(MessageTag);

Los caracteres en minsculas, smbolos, nmeros 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 nmero especfico de caracteres de un tag de mensaje, partiendo de la posicin especificada.

ResultMessage=StringMid(MessageTag, StartInteger, SpanInteger);

A 76

Esta funcin 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 extrado del tag de mensaje. StartInteger especifica la posicin del primer caracter a extraer. SpanInteger el nmero 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 especficas de una variable de caracteres dada.

ResultMessage=StringReplace(MessageTag, SearchForString, ReplaceWithString, CaseSensitive, NumberTo.MatchWholeWord);

Usando esta instruccin se pueden cambiar caracteres, palabras o frases con tag de string. Los parmetros 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 nmero de ocurrencia a reemplazar (-1=todas) MatchWholeWord determina si la funcin 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 (slo se reemplaza el primer caracter encontrado).

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 especfico.

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 funcin es usada para generar una cadena de espacios en un tag de mensaje o una expresin.

MessageTag=StringSpace(IntegerTag);

En esta instruccin, 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 xxxxPump + StringSpace(1) + Station ser PumpxStation

A 78

Esta funcin determina el primer caracter de un tag de mensaje para determinar si es de un cierto tipo.

DiscreteTag=StringTest(Message Tag, IntegerTag)

En esta instruccin, 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 estn dentro de las siguientes categoras:

Clase 1: Clase 2: Clase 3: Clase 4: Clase 5: Clase 6: Clase 7 Clase 8: Caso 9 Caso 10 Caso 11

Caracter Alfanumrico (A -Z, a - z y 0 - 9) Caracter Numrico (0 - 9) Caracter Alfabtico (A - Z y a - z) Caracter en Mayscula (A - Z) Caracter en minscula (a - z) Caracter de puntuacin (0x21 - 0x2F) Caracteres ASCII (0x00 - 0x7F) Caracteres Hexadecimal (A - F o a - f 0 - 9) Caracteres de impresin (0x20-0x1E) Caracteres de Control (0x00 - 0x1F o 0x7F) Caracter