Sie sind auf Seite 1von 31

Ejemplo

Ejemplo escenarios
Esta sección proporciona ejemplos de secuencias de comandos que realizan una amplia gama
de tareas prácticas.

notas
 Si está viendo esta línea, puede copiar código de ejemplo y pegarlo en sus propios
scripts.
 La pantalla, Script_examples.htm, contiene scripts de ejemplo. Se encuentra en
<carpeta de instalación> \ Honeywell \ Experion PKS \ Client \ HMIWeb Display
Builder \ ejemplos, donde <carpeta de instalación> es la ubicación donde está
instalado Experion.

Llamada de un bloque de imagen en una

condición de alarma Escenario


Al que desea llamar a una placa frontal cuando una condición de alarma 'PV HiHigh' se
produce en un momento determinado.

Solución
Agrega una alfanumérica (o indicador) a la pantalla y lo configura de la siguiente manera:
 Sobre el Datos pestaña, especifique la ID de punto y conjunto de parámetros a
AlarmValue.
 En la ficha Detalles, establezca Mostrar como a Estado descriptor.
 Sobre el comportamientos pestaña, seleccione placa frontal.

Se escribe una secuencia de comandos que simula un clic (en funcionamiento normal,
haga clic en el alfanumérica sería llamar a la placa frontal) cuando se produce la
condición de alarma. Cuando se le concede el guión a onUpdate caso del alfanumérica.

Guiones
Este script simula un evento OnClick cuando se produce el evento de alarma especificado.
OnUpdate alpha002 sub
Si alpha002.value "PV HiHigh" Entonces
alpha002.click
End If
End Sub

Honeywell 2017 606


Ejemplo

Cambiar una información sobre herramientas en función del estado de una


bomba

Guión
¿Quieres información sobre herramientas de un objeto para reflejar el estado de una bomba.

Solución
Se escribe un guión que cambia la propiedad título del objeto cada vez que el estado de la
bomba está abierta.

Guiones
onchange alpha00l sub
Si alpha00l.value "abierto" Entonces
shape00l.title "bomba está abierta"
Más
shape00l.title "bomba está
cerrada" End If
end sub

observaciones
 Puede crear una información sobre herramientas de varias líneas mediante la
inserción de Chr (TO) entre cada línea, por ejemplo:
shape00l.title "El estado de esta bomba es:" & Chr (l0) y "CERRADO"

Cambiar el contenido de una tendencia en tiempo de

ejecución - Escenario 1 Escenario


Una pantalla incluye un objeto de tendencia para el que oculta la leyenda, pero desea que los
operadores sean capaces de añadir los puntos y parámetros a la tendencia haciendo clic en un
botón.

Solución
Añadir la tendencia a la pantalla y ocultar la leyenda. Añadir un botón a la pantalla y
adjuntar una secuencia de comandos para evento onclick del botón.

Honeywell 2017 607


Ejemplo

Guiones
Sub pushbutton00l onclick
trend00l.Legend.PointID (l) "sinusoidal"
trend00l.Legend.Parameter (l) "pv"
end sub

Cambiar el contenido de una tendencia en tiempo de

ejecución - Escenario 2 Escenario


Tiene varios procesos similares y desea que un operador sea capaz de llamar a los datos
de tendencias para un proceso en particular haciendo clic en un botón.

Solución
Se coloca la tendencia en una pantalla y configurar la tendencia por lo que está ligado a
las propiedades personalizadas del sistema.
Usted escribe guiones para los botones que especifican qué parámetros de puntos se
asignan a las propiedades personalizadas (y, por tanto, a la carta).

Guiones
El guión de cada botón especifica los puntos apropiados. Esta secuencia de comandos
especifica los puntos como 'POINTANA1' y 'POINTANA2'.
Sub pushbutton00l onclick
'Prevenir la forma que se
actualiza', ya que cada propiedad
personalizada se cambia
shape00l.autoReloadContent falsa
'establecer las propiedades
personalizadas
displayDataRepository.PutValue "Pointl", "POINTANAl"
displayDataRepository.PutValue "Paraml", "PV"
displayDataRepository.PutValue "Point2", "POINTANA2"
displayDataRepository.PutValue "Param2", "PV"
'Aplicar los cambios a la forma
shape00l.ReloadContent
End Sub

Honeywell 2017 608


Ejemplo

observaciones
 El gráfico se pone a cero cada vez que la pantalla que se active o se actualiza. (Si
no se especifica valores predeterminados de las propiedades personalizadas, el
gráfico quedará vacío hasta que el operador hace clic en un botón).

Creación de una pantalla

Para crear la pantalla


1. Elija FileNewDisplay.
2. Haga clic en el pestaña Propiedades personalizadas en la ventana Propiedades y
añadir las siguientes pro- piedades. (Es una buena idea dar a cada propiedad un
nombre intuitivo.)
3. Añadir una tendencia a la pantalla.
4. Con la tendencia seleccionado, haga clic en el parcelas lengüeta En la ventana
Propiedades y asignar las propiedades personalizadas a las parcelas según sea
necesario.
5. Configurar otras propiedades de la tendencia como apropiado, tal como el número
de muestras, unidades y así sucesivamente.

Comprobación de si un elemento no es un (NaN)

Escenario Número
Es necesario comprobar si el valor de un parámetro de punto es NaN.

Solución
Escribir un guión utilizando los métodos de ayuda previstas.

Guiones
Para un elemento de visualización tal como un alfanumérico:
Si alpha00l.IsElementNaN cierto
entonces 'Código que se ejecuta si
NaN
.
.
Más
'Código que se ejecuta lo contrario
.
.
Terminara si

Honeywell 2017 609


Ejemplo

Para una referencia de datos de secuencia de comandos:


Si rect00l.IsNaN ( "point.parameter") verdad
entonces 'Código de ejecutar si NaN
.
.
Más
'Código que se ejecuta lo contrario
.
.
Terminara si

observaciones
 Es posible hacer una comparación de cadenas directamente en la propiedad Value
(o propiedad DataValue de datos de scripts), pero se prefieren los métodos de
ayuda anteriores, ya que seguirán dando resultados correctos incluso si la
representación de cadena de NaN cambios.

Comprobación Escenario nivel de

seguridad del usuario


Desea impedir el acceso a cierta información si la persona no conoce la contraseña de nivel
gerente-.

Solución
Se utiliza un botón para controlar la visualización de la información. El script comprueba
primero el nivel de seguridad actual mediante la lectura del valor de
window.external.SecurityLevel.
Si el nivel actual no es gerente, se solicita al usuario que la contraseña de nivel de
administrador. Esto se realiza mediante el comando
window.external.executeoperatorcommand ( "PSW").

Guiones
Esta secuencia de comandos se agrega al evento onclick del botón.
cmdDetails Sub onclick
'0 LVL l
'L LVL 2
'2 Operador
'3 Supervisor
'4 Engineer
'5 Representante

Honeywell 2017 610


Ejemplo

Nivel Dim
'Variable de nivel se encuentren en el
nivel carga de la página
window.external.SecurityLevel'
Comprobación de la existencia del modo
de administrador.
Si el nivel 5 A continuación,
'Información del gestor de ventanas en la zona del mensaje.
window.external.MessageZoneText "Administrador de sesión On"
'Información del gestor de sólo
visualización. alpha5.style.visibility
"visible"
.
.
Más
window.external.MessageZoneText "insuficiente acreditación de
seguridad. Por favor, inicie sesión como un administrador."
window.external.executeoperatorcommand (
"PSW") End if
End Sub

observaciones
 Alternativa formas de mostrar la información del gestor de sólo incluyen un
cuadro de mensaje y una ventana emergente.
 Este escenario supone la seguridad basada en la estación. Si usted tiene la seguridad
basada en operador y el usuario no tiene acceso a nivel de administrador, un mensaje
apropiado podría ser: 'Usted no tiene suficiente autorización de seguridad'.

El control de la estación de otro escenario

de aplicación
¿Quieres crear una herramienta de apoyo a la formación, escrito en Visual Basic, que
presenta los operadores en formación con una serie de diagramas de flujo interactivos que
deben trabajar a través. Para mejorar la facilidad de uso, la herramienta de soporte instruye
a la estación para visualizar la pantalla adecuada en las diversas etapas en un
procedimiento.

Solución
En primer lugar, inicio un nuevo proyecto de Visual Basic como un EXE estándar. A
continuación, crear dos botones de comando llamados, cmdStart y cmdPage8O. El botón
cmdStart comienza la estación y el botón cmdPage8O accede a la pantalla sea necesario
(página 80).

Honeywell 2017 611


Ejemplo

Guiones
El código para la parte general del proyecto.
objStationApp pública Como
opción explícita de objetos

El guión de evento onclick de cmdStart. La estación se inicia mediante la función


CreateObject. Los parámetros que tienen que pasarse a la estación se realizan a través de
la variable de objeto objStationApp.
Private Sub cmdStart Click ()
Establecer objStationApp CreateObject (
"Station.Application") End Sub

La secuencia de comandos para el evento onclick de cmdPage8O. Un comando se envía a


la estación para acceder a la página 80.
Sub cmdPage80 privada Click ()
objStationApp.CurrentPage 80
End Sub

Controlar el color de un objeto en un Escenario de

forma dinámica
¿Quieres crear una forma dinámica para representar una bomba. También desea que
el OFA rectángulo de color para cambiar cuando el valor actual del punto de estado
asociada cambia de estado.

Solución
Cuando se crea la forma, además de definir una propiedad personalizada, también:
 Agregar la propiedad personalizada a la pestaña de secuencias de comandos de datos
del rectángulo.
 Escribir una secuencia de comandos para el rectángulo que controla su color en
función del valor de la propiedad personalizada.
Cada vez que se inserta la forma en un display, se asigna la propiedad personalizada
a la unapunto en el ppropriate efecto, la propiedad personalizada representa el punto. En
consecuencia, cuando el PV del punto cambia, también lo hace el color del rectángulo.

Honeywell 2017 612


Ejemplo

La creación de la forma dinámica

Para crear la forma


1. Crear la nueva forma dinámica.
2. Abrir la ventana Propiedades, seleccione la pestaña Propiedades personalizadas y
añadir un erty encargo prop-, COLORPOINT y establezca su tipo a punto.
3. Añadir los objetos que se requiere para crear la bomba.
reon't olvide de agrupar los objetos-esto es un requisito para una forma dinámica.
4. Seleccione el rectángulo cuyo color desea controlar, abra la ventana Propiedades,
haga clic en la ficha Comportamientos y seleccione escritura de datos.
5. Haga clic en la secuencia de comandos pestaña datos y añada el punto que ha
definido en una propiedad personalizada anterior paso ASA.
6. Con el objetar aún seleccionada, abra el Editor de secuencias de comandos y, para
el caso OnDataChange, escribir la siguiente secuencia de comandos:
OnDataChange rect00l sub
' Obtener el valor apropiado
PumpMode rect00l.GetDataValue "ColorPoint.PV"

' Ahora actualizar el aspecto de


la bomba si PumpMode l entonces
Group.rect00l.Color vbRed
demás
Group.rect00l.Color vbGreen
end if
End Sub

lnserting la forma en displays


Cada vez que se inserta esta forma en una pantalla, seleccione la pestaña Propiedades
personalizadas y escriba el ID del punto apropiado en Valor.

Honeywell 2017 613


Ejemplo

Copia de scripts de ejemplo


Si está viendo esta línea, puede ahorrar mucho tiempo copiando scripts de ejemplo,
pegándolos en sus propios scripts, y luego hacer las modificaciones apropiadas.
El siguiente ejemplo describe cómo copiar un bloque de código y pégala en una de las
secuencias de comandos.

Para copiar y pegar un bloque de código


1. En el ayudar, arrastre diagonalmente a través del código que desea copiar.

2. Copiar el código presionando CTRL + C.


3. Cambiar el Editor de secuencias de comandos.
4. Hacer clic en la que desea insertar el código (normalmente una línea en
blanco) y, a continuación, presione CTRL + V.

La creación de un

escenario de control de

jogging
¿Quieres un control 'footing' para una válvula motorizada. (Un control que activa da el
control exacto del usuario sobre la posición de la válvula.)

Solución
Se agrega un botón y escribir guiones para su onMouseDown y onMouseUp eventos para
que el motor funciona mientras el botón izquierdo del ratón se mantiene presionado.
Agrega el parámetro SP del punto de control de la válvula (llamado 'ValveControl') a la
pestaña de secuencias de comandos de datos del botón, de manera que se puede escribir en el
parámetro.

Guiones
Este script está asociado a eventos onMouseDown del botón.
pushbutton00l.DataValue ( "ValveControl.SP")
l pushbutton00l.fillColor vbGreen

Este script se une al evento onmouseup del botón.

Honeywell 2017 614


Ejemplo

pushbutton00l.DataValue ( "ValveControl.SP")
0 pushbutton00l.fillColor vbRed

Creación de un objeto en movimiento

Guión
Usted tiene un objeto que representa una puerta de seguridad y desea que 'slide' abierto /
cerrado cuando se emite un comando de apertura / cierre. (El cuadro combinado se utiliza
para emitir el comando.)
La puerta en su posición abierta

La puerta en su posición cerrada

Honeywell 2017 615


Ejemplo

Solución
Se crea la animación moviendo el objeto de puerta en pequeños pasos a intervalos de 100
ms. (El tamaño del paso y el intervalo de determinar la 'suavidad' de la animación.)
Se inicia un temporizador en el evento onchange del cuadro combinado. Cada vez
que un temporizador activa el evento, la función gateTimer mueve la puerta en la
dirección apropiada hasta que es abierta o cerrada.

Guiones
La siguiente secuencia de comandos se une al evento onchange del cuadro combinado.
Esto crea un temporizador de 100 ms, que controla la velocidad de la animación.
Basado en el estado actual del cuadro combinado, ya sea en o una O se escribe en la variable
blnGateState.
Sub onchange cboGateControl
intTimerID window.setInterval ( "gateTimer ()", L00)
Si cboGateControl.value "On" entonces
blnGateState l
Más
blnGateState 0
End If

El siguiente guión se escribe en la sección general.


La función se llama gateTimer cada 100 ms. Se comprueba la posición de la puerta
mirando el blnGateState variable. Si se abre la puerta, se desplaza el objeto de puerta
(imgGate) de 50 píxeles a la vez en la dirección de apertura hasta que alcance la posición
completamente abierta (6OO), y borra el temporizador. Si la puerta está siendo cerrada, se
desplaza el objeto puerta 50 píxeles a la vez en la dirección de cierre hasta que se alcanza
la posición cerrada (26), despeja el temporizador y se asegura de que la puerta está cerrada
en la posición cerrada 26.
Dim Dim
blnGateState
intTimerId
Funcionar gateTimer ()
Si blnGateState l entonces
Si imgGate.style.pixelLeft <600 Entonces
imgGate.style.pixelLeft imgGate.style.pixelLeft + 50
Más
window.clearInterval (intTimerId)
End If
Más
Si imgGate.style.pixelLeft> 26 entonces

Honeywell 2017 616


Ejemplo

imgGate.style.pixelLeft imgGate.style.pixelLeft - 50
Else
window.clearInterval (intTimerId)
imgGate.style.pixelLeft 26
End If
End If
End Function

Creación de una animación con un escenario de

secuencia de forma
Usted tiene un ventilador que está controlado por los botones Start y Stop en una pantalla, y
desea animar el ventilador.
La siguiente figura muestra el ventilador y botones en la pantalla.

Solución
Se utiliza la secuencia siguiente forma con algunos scripts para crear una animación.

La primera (izquierda) forma representa el estado 'off', y los otros cuatro formas se utilizan
en la animación para el estado 'on'.
Estas formas son imágenes de mapa de bits que se crearon en un programa de dibujo y
luego pegar en el archivo de formas. La creación de las formas de esta manera hace que
sea más fácil para producir un efecto más realista.

Propina:
animaciones no se ejecutan en HMIWeb Display constructor. Se pueden ver sólo
en la estación.

Honeywell 2017 617


Ejemplo

Guiones
La siguiente secuencia de comandos se une al evento onclick del botón Inicio. Esto
crea un temporizador de 200 ms, que controla la velocidad de la animación.
Sub cmdStartBtn onclick ()
intTimerID window.setInterval ( "mifuncion ()", 200)
End Sub

La función, 'myFunction' se define en la sección general. En este ejemplo, la secuencia de


comandos los pasos a través de los cuatro 'en' formas (valores de 2 a 5).
En la parte general también debe contener la definición de la variable de identificación
temporizador 'intTimerID', que se utiliza cuando matar el temporizador.
Dim intTimerID
mifuncion función ()
Si fan.shapefile.numberOfShapes fan.value Entonces
fan.value 2
Más
fan.value fan.value +
Fin Si l
End Function

La siguiente secuencia de comandos se une al evento onclick del botón de parada. Se


detiene la animación llamando al método clearInterval del objeto de ventana, que tiene el
ID de temporizador como un parámetro. El guión también selecciona la forma de
'apagado'.
Sub cmdStopBtn onclick ()
window.clearInterval (intTimerID)
fan.value l
End Sub

observaciones
 Al insertar la forma, usted no tiene que especificar el número de formas, porque esto
es controlado por el script.

Creación de un botón 'Una vez fuera-scan' para la exploración dinámica

En este tema se muestra cómo crear un botón que, al hacer clic, lleva a cabo una 'una vez-
off' scan de todos los parámetros que tienen un período de exploración que no sea cero, en
un controlador especificado. Lo más habitual es usar esto para mirar a los valores de
configuración en un controlador. Otro uso podría ser cuando un operador, preocupado por la
frescura de los datos en los controladores basados en excepciones, quiere una actualización
en vivo desde el controlador en lugar de confiar en los paquetes basados en excepciones.

Honeywell 2017 618


Ejemplo

Ver Escenario # 4 en el tema titulado "escenarios de exploración dinámicas" en la


configuración de la estación Cuide para más información.

Prerrequisitos
 Se ha creado una visualización personalizada y ha añadido objetos
alfanuméricos con los parámetros que desea analizar en el controlador.
 La pestaña Propiedades de Pantalla HMIWeb Builder es visible (CTRL + R).

Para crear un botón de 'Una vez fuera-scan' para la exploración dinámica

1. Hacer clic el Presionar el botón icono en la barra de herramientas.


2. Arrastre el puntero en diagonal sobre la pantalla, y suelte el botón del ratón
cuando el punteada 'esquema rectángulo' es el tamaño y la forma correcta.
Aparece un nuevo botón, con el botón como la etiqueta.
3. En el botón detalles grupo de la ficha Propiedades, haga clic en la fila de etiquetas y
escriba Toman Una exploración fuera.
La etiqueta del botón cambia a una vez-off de exploración.
4. En el comportamientos grupo de la ficha Propiedades, haga clic en la fila de datos de
secuencias de comandos.
Aparece el cuadro de diálogo Propiedades pushbuttonnnn. Por ejemplo,
propiedades pushbuttonOOt o Propiedades pushbuttonOO2.

Honeywell 2017 619


Ejemplo

pushbuttonnnn de diálogo Propiedades

5. Hacer clic Añadir.


Una fila aparece con PV como el parámetro predeterminado.
6. En el Punto cuadro, escriba la dirección del responsable del tratamiento en el formato:
$ CONTROLLERnnnn
donde nnnn es el número de controlador. Si usted se está dirigiendo un
controlador en un servidor conectado DSA, utilice el formato de nombre de
punto de pre-adjuntas. Es decir:
<ServerAlias>: $ CONTROLLERnnnn
7. En el Parámetro caja, entrar o escriba OnceOffScan.
8. En el Mostrar como cuadro, seleccione Numérico.
9. En el Actualizar cuadro, seleccione Predeterminado.
10. En el Seguridad cuadro, seleccione el nivel de seguridad
apropiado.
pushbuttonnnn de diálogo Propiedades de parámetro - OnceOffScan

Honeywell 2017 620


Ejemplo

11. Cerrar el diálogo Propiedades pushbuttonnnn.


12. Haga clic con el objeto de pulsador y seleccione Editar guión, o presione CTRL +
ENTRAR. Aparece la ficha Editor de secuencias de comandos.
13. Escriba la siguiente entrada después de la fila Sub y antes de la fila End
Sub: pushbuttonnnn.DataValue ( "$ CONTROLLERnnnn.OnceOffScan") =
t donde nnn es el número pulsador y nnnn es el número de controlador.
Por ejemplo, pushbuttonOOt.DataValue ( "$ CONTROLLEROOOt.OnceOffScan")
=t
ejemplo Script Editor

14. Realizar otros cambios en el botón pulsador según sea necesario.


15. Guardar la pantalla.

Honeywell 2017 621


Ejemplo

La creación de una caja 'Limitado en el tiempo de exploración dinámica' cheque


para el escaneo dinámico

En este tema se muestra cómo crear una casilla de verificación para colocar en una pantalla
que, cuando se selecciona, realiza una exploración periódica o exploración acelerada
(dependiendo de la configuración), por un período de dos minutos, de todos los parámetros
que tienen un no-cero exploración período, en un controlador especificado. Una vez que el
período de dos minutos expira, la velocidad de barrido devuelve el período de exploración
configurado (CSP), si es que existe, y la casilla de verificación se borra automáticamente.
Ver Escenario # 5 en el tema titulado "escenarios de exploración dinámicas" en la
configuración de la estación Cuide para más información.

Prerrequisitos
 Se ha creado una visualización personalizada y ha añadido objetos
alfanuméricos con los parámetros que desea analizar en el controlador.
 La pestaña Propiedades de Pantalla HMIWeb Builder es visible (CTRL + R).

Para crear un cuadro 'Limitado en el tiempo de exploración dinámica' cheque


para el escaneo dinámico

1. Hacer clic el casilla de verificación icono en la barra de herramientas.


2. Arrastre el puntero en diagonal sobre la pantalla, y suelte el botón del ratón
cuando el punteada 'esquema rectángulo' es el tamaño y la forma correcta.
Aparece una nueva casilla de verificación.
3. En el Datos grupo de la ficha Propiedades, en la fila Point, escriba la dirección de la
con- Troller en el formato:
$ CONTROLLERnnnn
donde nnnn es el número de controlador. Si usted se está dirigiendo un
controlador en un servidor conectado DSA, utilice el formato de nombre de
punto de pre-adjuntas. Es decir:
<ServerAlias>: $ CONTROLLERnnnn
También puede hacer clic en la flecha hacia abajo junto a la fila de puntos y seleccione
el controlador de la lista.
4. En el Parámetro caja, entrar o escriba FastScan.
5. Realizar otros cambios en la casilla de verificación según sea necesario.
6. Guardar la pantalla.

Honeywell 2017 622


Ejemplo

Forzando una pantalla para utilizar una ventana Escenario

Safeview particular,

Atención:
Este ejemplo sólo es aplicable si se utiliza la estación junto con Safeview

Si desea añadir varios botones de la pantalla, cada uno de los cuales obliga a una pantalla
tendencia particular a aparecer en la ventana 'TrendWindow'. (Esta ventana se define en el
archivo de configuración del espacio de trabajo.)

Solución
Se utiliza la función de VBScript GetObject para crear una referencia a Safeview. (La
función GetObject requiere identificador de programa único de Safeview, que es
Honeywell.Workspace.Client).
Después de haber creado una referencia a Safeview, a continuación, puede controlar a
través de su modelo de objetos. (Para más detalles, véase Cuide del usuario Safeview).
En este ejemplo, IsManagerActive utiliza para comprobar si Safeview se está ejecutando, y
luego usar el método SetOutputFocus para establecer la siguiente ventana para recibir una
pantalla. Finalmente, se llama a la pantalla.

Guiones
Cuando se le concede a este script evento onclick de cada botón. (Cada script especificará
una pantalla diferente.)
Sub Pushbutton00l onclick
tenue sview
conjunto sview GetObject ( "", "Honeywell.Workspace.Client")
Si sview.IsManagerActive cierto
bResult entonces tenue
bResult sview.SetOutputFocus ( "TrendWindow")
Terminara si
window.external.CurrentPage "trend00l.htm"
End Sub

observaciones
 Para obtener detalles sobre la función GetObject, consulte la ayuda de VBScript.

Honeywell 2017 623


Ejemplo

Realizar una acción en respuesta a un clic derecho

Guión
¿Quieres acceder a la pantalla anterior cuando el usuario hace clic en algún lugar de
la pantalla.

Solución
Se utiliza el evento onMouseDown para detectar qué botón se hizo clic. Cuando se activa
el evento, el valor de window.external.button se comprueba (un valor de 2 indica que se
hizo clic en el botón derecho).
Si este es el caso, se solicita LRN 21 (el programa de servidor de pantalla) con 2t parámetro
(el comando atrás página ').

Guiones
El script está asociado al evento onMouseDown para la página.
Si window.event.button 2 Entonces
window.external.requestserverlrn 2L, 2L,
0
Terminara si

observaciones
 No se puede utilizar el evento onclick.

En respuesta a eventos Estación de otro escenario de

aplicación
¿Quieres crear una aplicación visible, aparte que responde a los eventos disparados por la
estación. Esta aplicación se invoca desde una pantalla.

Solución
Escribir un EXE de ActiveX de Visual Basic que se invoca dentro de la estación a través de
guiones de la página.

Honeywell 2017 624


Ejemplo

Preparación del control ActiveX

Para preparar el control ActiveX


1. comienzo un nuevo proyecto de Visual Basic como un archivo EXE ActiveX.
2. Hacer referencia a la biblioteca de tipos de estación.
El EXE ActiveX requiere el conocimiento del objeto Aplicación estación, sus
métodos, propiedades y eventos. Para exponer estos es necesario añadir la 'biblioteca
de tipos de estación (versión 2)' a las referencias del proyecto. Estación necesita ser
instalado en su ordenador para su biblioteca de tipos para ser visible.
3. Añadir una variable de aplicación a su estación de EXE.
Esta variable almacena el objeto Aplicación estación. Declarar la variable WithEvents
'' para permitir el manejo de eventos de aplicación disparados por la estación.
4. Añadir un método para permitir que la estación se conecte a su EXE.
Este método se llama dentro de script para pasar un puntero al objeto Application
estación. Sus tiendas EXE este momento de una variable global para su uso futuro.
5. Escribir Los controladores de eventos para los eventos a los que está interesado.
Private Sub objStation OnConnect ()
'Inserte aquí el código para manejar el caso
OnConnect End Sub

6. Añadir a su página de guiones para invocar el archivo EXE ActiveX


Estos scripts crean el archivo EXE ActiveX, que pasan una referencia al objeto
Application estación, y, si es necesario, dar instrucciones al EXE ActiveX para mostrar
cualquier forma que contiene.

Secuencia de comandos ActiveX

Guiones
El código de la sección general del módulo de clase para los pasos 3, 4 y 6 en la preparación
del control ActiveX se muestra a continuación para un archivo EXE ActiveX que contiene
una forma llamada UIForm.
Option Explicit
Dim WithEvents m objStation Como Station.Application2
'************************************************* ***
'Este método debe existir en este módulo de usar la estación Public Sub
SetStationObject (ByRef objStation Como Station.Application2)
Establecer m objStation objStation
Establecer UIForm.objStation objStation

Honeywell 2017 625


Ejemplo

End Sub
'************************************************* ***
********************************************** ******
' Este método debe existir en este módulo para cargar el
formulario a través de la escritura pública Sub Load ()
UIForm.Visible True
End Sub
'************************************************* ***

Una vez que su EXE es compilado se puede escribir el guión página que crea y lo carga.
Establecer MyControl CreateObject (
"MyControl.clsMyControl") MyControl.SetStationObject
(window.external) MyControl.Load ()

El envío de una pantalla a otra estación en una consola

Guión
¿Quieres un operador para poder enviar una pantalla en particular a una estación específica
dentro de la consola haciendo clic en un alfanumérica en la pantalla.

Solución
Se agrega una secuencia de comandos para el alfanumérica para el evento onclick para
solicitar LRN 21.

Guiones
Sub alpha00l onclick
2l window.external.RequestTask, L5, l, "CSTN02-l", 0, 0
window.external.RequestTask 2l, l, "BoilerPageCallup.htm", 0, 0, 0
End Sub

observaciones
 Se podría cambiar la secuencia de comandos para enviar la indicación actual de la
siguiente manera:

2l window.external.RequestTask, L5, 0, "CSTN02-l", 0, 0

 Se podría utilizar un alias para especificar la estación a la que se envía la pantalla.


Para obtener más información acerca de los alias, consulte la sección 'Configuración
de las estaciones de consola y consolas' en el CUIDE configuración.

Honeywell 2017 626


Ejemplo

Mostrar y ocultar objetos

Guión
Tiene una pantalla que es difícil de usar, ya que muestra demasiada información. Desea
simplificar la pantalla ocultando información no crítica a menos que específicamente
solicitado por el usuario.

Solución
Se utiliza un botón para cambiar la visibilidad de algunos objetos dentro de un grupo. (Por
ejemplo, caracteres alfanuméricos que contienen información que no sea crítico aparecen
cuando se hace clic en el botón una vez y desaparecen cuando se hace clic en un segundo
tiempo).

Guiones
La secuencia de comandos para el evento onclick del botón. Controla la visibilidad de los
objetos secundarios relevantes. (Un objeto, alfa5, se utiliza para comprobar si los objetos
son visibles.)
Sub cmdPushbutton onclick
Si imgGroupl.all ( "alfa5"). Style.visibility "visible" Entonces
imgGroupl.all ( "alfa5"). Style.visibility "oculta" imgGroupl.all (
"alfa6"). Style.visibility "oculta" imgGroupl.all ( "alfa7").
style.visibility "oculta"
.
.
Más
imgGroupl.all ( "alpha5"). style.visibility
"visible" imgGroupl.all ( "alfa6").
style.visibility "visible" imgGroupl.all (
"alfa7"). style.visibility "visible"
.
.
End If
End Sub

Inicio de una aplicación haciendo clic en un botón

Guión
Quieres una aplicación para comenzar cuando el usuario hace clic en un botón.

Honeywell 2017 627


Ejemplo

Solución
En este ejemplo se inicia Microsoft Word utilizando el comando CreateObject. (El
comando CreateObject requiere nombre y el tipo del objeto. En el caso de Microsoft
Word, se trata de la Palabra y de la aplicación.)
Después de haber comenzado la Palabra, su modelo de objetos se puede acceder a
través de la variable, msword. En este ejemplo, la propiedad visible se establece en
true para mostrar la aplicación.

Guiones
Este script se une al evento onclick del botón.
Sub msword cmdNotepad
onclick Dim
Establecer msword CreateObject (
"Word.Application") msword.visible verdadera
End Sub

El uso de un botón para iniciar

un escenario de bomba
Desea utilizar un botón para iniciar una bomba. También desea que el usuario confirme la
acción antes de arrancar la bomba.

Solución
Se agrega el parámetro que controla la bomba a la pestaña de secuencias de comandos de
datos del botón de modo que la secuencia de comandos se puede acceder a él en este
ejemplo, se agrega el OP de un punto de estado de llamada 'poista218'.

Se utiliza el método de GetResponse3 para mostrar un mensaje y para


obtener respuesta Sí / No del usuario.

Honeywell 2017 628


Ejemplo

Guiones
Cuando se le concede a este script evento onclick del botón. (Este script configurar un
temporizador. Tal como se especifica en la descripción del método GetResponse3, sólo se
debe utilizar el método dentro de una subrutina temporizador.)
Sub pushbutton00l onclick
m iTimerID window.setInterval ( "timerHandler ()", l000)
End Sub

Agrega esta subrutina temporizador a la sección general.


Sub timerHandler
() Dim str,
iStatus
Si pushbutton00l.DataValue ( "poista2l8.OP") 0 entonces
iStatus window.external.GetResponse3 ( "¿Está seguro de que desea
iniciar esta bomba", l, str)
Si iStatus l
entonces si str
"", entonces
'No ha recibido una respuesta
todavía'.
'.
Más
'Confirmó Acción.
Si str "Y" entonces
pushbutton00l.fillColor vbGreen
pushbutton00l.DataValue ( "poista2l8.OP")
End If l
End If
Else
'Acción cancelada, por lo que
matar temporizador.
window.clearInterval (m
iTimerID)
End If
End If
pushbutton00l.fillColor vbRed
End Sub

Uso del color para reflejar el valor de un punto de estado

Guión
¿Quieres color de un objeto para indicar el valor actual del parámetro PV de un punto de
Honeywell 2017 629
Ejemplo

estado.

Honeywell 2017 630


Ejemplo

Solución
Agrega el parámetro PV del punto de pestaña Script datos del objeto de manera que la
secuencia de comandos se puede acceder al parámetro.

Guiones
Cuando se le concede la siguiente secuencia de comandos para OnDataChange caso del
objeto. En este ejemplo, el punto se llama "poista85", y tiene dos valores: O y t.
onchange rect00l sub
Si rect00l.DataValue ( "poista85.PV") 0
rect00l.fillColor vbRed
Más
rect00l.fillColor vbGreen
End if
End sub

El uso de la propagación de eventos para reducir el esfuerzo de la escritura

escenario 1
Desea que el puntero del ratón para cambiar a un símbolo de la mano sobre todos los
objetos de botón. La página que contiene un gran número de objetos, muchos de los
cuales son secuencias de comandos de manera casi idéntica y que desea evitar tener que
escribir el mismo guión para cada objeto pulsador.

Solución
En lugar de secuencias de comandos del onmouseover y onmouseout eventos para todos los
pulsadores en la página de la escritura de estos eventos en el objeto de página. En el
controlador de eventos, comprobar el ID del objeto de disparar el evento y, si se indica que
el objeto es un botón, cambiar el puntero del ratón en consecuencia.

Guiones
La secuencia de comandos para el evento onmouseover de la página.
onmouseover el subdirectorio
Si (Izquierda (window.event.srcElement.id, l0) "botón") Entonces
window.event.srcElement.style.cursor "mano"
End If
End Sub

La secuencia de comandos para el evento onmouseout de la página.

Honeywell 2017 631


Ejemplo

onmouseout el subdirectorio
Si (Izquierda (window.event.srcElement.id, l0) "botón") Entonces
window.event.srcElement.style.cursor "auto"
End If
End Sub

escenario 2
En la situación donde co-existen varios elementos de visualización en la misma página de
visualización, cada uno con su propio elemento de scripting, tal como con animación, que
es más eficiente para crear y utilizar un controlador de eventos común, utilizando una
variable booleana nivel página a la bandera cuando es el momento de iniciar el scripting
animación página.

Solución
El uso de la subrutina AlmTypeCheck en las placas frontales del sistema analógico es un
ejemplo de cómo se implementa el concepto de secuencias de comandos comunes nivel
de página.

Guiones
En este ejemplo, una variable global bPageComplete se define y se inicializa como falso.
Cada vez que se ejecuta AlmTypeCheck, primero se comprueba bPageComplete y sólo
sigue funcionando si se ha establecido en true. Por ejemplo:
<Script language VBScript Defer>
tenue bPageComplete
bPageComplete falsa

sub AlmTypeCheck ()
si bPageComplete false
entonces sub salida
terminara si

'Código para
comprobar' alarma de
tipo aquí.

sub final
</ Script>

AlmTypeCheck se llama en el controlador de eventos OnUpdate para diversos elementos de


la página:
<Script language VBScript onUpdate evento para el elemento
de aplazar> On Error Resume Next

Honeywell 2017 632


Ejemplo

Llamar AlmTypeCheck ()
</ Script>

El bPageComplete variable sólo se establece en true cuando se maneja el evento


OnPageComplete.
<Script language caso VBScript onpagecomplete para aplazar
página> On Error Resume Next
bPageComplete cierto
AlmTypeCheck ()
</ Script>

Por lo tanto, el cuerpo principal del código en AlmTypeCheck (no se muestra) no se


ejecutará hasta que la página se ha completado a pesar de la subrutina potencialmente ser
llamado varias veces antes de ese punto. Tenga en cuenta que el controlador de eventos
llama OnPageComplete AlmTypeCheck para asegurarse de que se ejecuta una vez tan
pronto como la página ha terminado de cargarse.

El uso de temporizadores en un archivo de formas


Hay algunas dificultades en el uso de temporizadores en los archivos de formas debido a la
necesidad de almacenar el identificador de temporizador como una variable dentro del
ámbito de la forma. Las siguientes secuencias de comandos proporcionan una solución para
superar esta dificultad.
La secuencia de comandos en este ejemplo se animará el ventilador para hacer girar basado
en el valor del temporizador.

La siguiente secuencia de comandos se adjunta en la sección General de la pantalla:


'funciones de animación
'--------------------------------------
sub Animate

(oTarget) en

curriculum vitae

error siguiente
Honeywell 2017 633
Ejemplo

Si oTarget.value oTarget.shapefile.numberOfShapes Entonces


oTarget.value 5

Honeywell 2017 634


Ejemplo

Más
oTarget.value oTarget.value + l
End If

sub final
'--------------------------------------

El siguiente script está asociado al objeto StatusData y se llevará a cabo en una acción
onUpdate:
Sub onUpdate StatusData

On Error Resume Next

Si (me.value l) A continuación,
si (no IsNull (group00l.parentElement.getAttribute ( "iTimerID")))
entonces window.clearInterval (group00l.parentElement.iTimerID)
group00l.parentElement.setAttribute "iTimerID", null
terminara si

group00l.parentElement.setAttribute "iTimerID", window.setInterval (


"llamar Animate (StatusAnim)", L00)
Más
si (no IsNull (group00l.parentElement.getAttribute ( "iTimerID")))
entonces window.clearInterval (group00l.parentElement.iTimerID)
group00l.parentElement.setAttribute "iTimerID", null
terminar si
StatusAnim.value l
End If

StatusTarget.title AlarmData.parentnode.parentnode.GetCustomProperty (
"valor", "EquipmentLabel")
Y "Estado del ventilador es" & Data.DataValue ( "Status.ValueParam")

End Sub

Finalmente, el código siguiente se adjunta al objeto AlarmData para ser ejecutado en un


onUpdate:
Sub onUpdate AlarmData

On Error Resume Next

Si me.value "l"

Entonces

Honeywell 2017 635


Ejemplo

Housing.title AlarmData.parentnode.parentnode.GetCustomProperty (
"valor", "EquipmentLabel")
Y "ha sido mandado" y Data.DataValue ( "Start.ValueParam") &
"y está en alarma"
Más
Housing.title AlarmData.parentnode.parentnode.GetCustomProperty (
"valor", "EquipmentLabel")
Y "ha sido mandado" y Data.DataValue ( "Start.ValueParam") y
"y su estatus es" & Data.DataValue ( "Status.ValueParam")
End If

End Sub

Honeywell 2017 636

Das könnte Ihnen auch gefallen