Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Utilización
TPReadFK (FlexPendant Read Function Key) se utiliza para escribir un texto en las teclas de
función y para determinar qué tecla de función se ha presionado.
Ejemplos básicos
A continuación aparecen algunos ejemplos básicos de la instrucción TPReadFK.
Consulte también Más ejemplos en la página 567.
Ejemplo 1
TPReadFK reg1, "More?", stEmpty, stEmpty, stEmpty, "Yes", "No";
Se escribe el texto More? en la pantalla del FlexPendant y se activan las teclas de función 4
y 5 usando las cadenas de texto Yes y No respectivamente (consulte la figura siguiente). La
ejecución del programa espera hasta que se presiona una de las teclas de función, la tecla 4 o
la 5. En otras palabras, se asigna a reg1 el valor 4 ó 5 en función de cuál de las teclas se
presione.
En la figura se muestra cómo el operador puede introducir información a través de las teclas
de función.
© Copyright 2004-2009 ABB. Reservados todos los derechos.
xx0500002345
Argumentos
TPReadFK TPAnswer TPText TPFK1 TPFK2 TPFK3 TPFK4 TPFK5 [\MaxTime]
[\DIBreak] [\DOBreak] [\BreakFlag]
TPAnswer
Tipo de dato: num
La variable cuyo valor se devuelve (de 1 a 5) en función de qué tecla se presione. Si se
presiona la tecla de función 1, se devuelve 1, etc.
TPText
Tipo de dato: string
El texto informativo que debe escribirse en la pantalla (con un máximo de 80 caracteres y 40
caracteres por fila).
TPFKx
Function key text
Tipo de dato: string
El texto que debe escribirse en tecla de función adecuada (con un máximo de 42 caracteres).
TPFK1 es la tecla que se encuentra en el extremo izquierdo.
Para especificar que una tecla de función no debe tener ningún texto, se utiliza la constante
de cadena de caracteres predefinida stEmpty para cadenas de caracteres vacías ("").
[\MaxTime]
Tipo de dato: num
El periodo máximo, en segundos, que debe esperar el programa para continuar con la
ejecución. Si no se presiona ninguna tecla de función en ese periodo, el programa sigue
ejecutándose en el gestor de errores, a no ser que se utilice el indicador BreakFlag (que se
documenta a continuación). La constante ERR_TP_MAXTIME puede usarse para comprobar si
ha transcurrido ya el tiempo máximo establecido.
[\DIBreak]
Digital Input Break
Tipo de dato: signaldi
La señal digital que puede interrumpir el diálogo con el operador. Si no se presiona ninguna
tecla de función cuando la señal cambia a 1 (o si ya tiene el valor 1), el programa sigue
ejecutándose en el gestor de errores, a no ser que se utilice el indicador BreakFlag (que se
documenta a continuación). La constante ERR_TP_DIBREAK puede usarse para comprobar si
esto ha ocurrido.
[\DOBreak]
Digital Output Break
Tipo de dato: signaldo
[\BreakFlag]
Tipo de dato: errnum
Una variable que contiene el código de error si se utilizan MaxTime, DIBreak o DOBreak.
Si se omite esta variable opcional, se ejecuta el gestor de errores. Las constantes
ERR_TP_MAXTIME,ERR_TP_DIBREAK y ERR_TP_DOBREAK pueden usarse para seleccionar
el motivo.
Ejecución de programas
El texto de información se escribe siempre en una nueva línea. Si la pantalla está llena de
texto, el cuerpo de texto se mueve previamente una línea hacia arriba. Puede haber un
máximo de 7 líneas por encima del nuevo texto escrito.
El texto se escribe en las teclas de función adecuadas.
La ejecución del programa espera hasta que se presiona una de las teclas de función activadas.
Descripción de la petición concurrente de TPReadFK o TPReadNum en el FlexPendant
(petición TP) desde una misma tarea de programa o desde otras tareas de programa:
• Una nueva petición de unidad de programación de otras tareas de programa no recibe
el foco de programa (nuevo almacenamiento en la cola)
• Una nueva petición de unidad de programación de una rutina TRAP de la misma tarea
de programa recibe el foco de programa (almacenamiento anterior en la cola)
• Un paro de programa recibe el foco de programa (almacenamiento anterior en la cola)
• Una nueva petición de unidad de programación con el programa parado recibe el foco
de programa (almacenamiento anterior en la cola)
Más ejemplos
A continuación aparecen más ejemplos de cómo usar la instrucción TPReadFK.
Ejemplo 1
VAR errnum errvar;
...
TPReadFK reg1, "Go to service position?", stEmpty, stEmpty,
stEmpty, "Yes","No"
\MaxTime:= 600
\DIBreak:= di5\BreakFlag:= errvar;
IF reg1 = 4 OR errvar = ERR_TP_DIBREAK THEN
© Copyright 2004-2009 ABB. Reservados todos los derechos.
Gestión de errores
Si se alcanza el tiempo límite (parámetro \MaxTime) antes de que responda el operador, la
variable de sistema ERRNO cambia a ERR_TP_MAXTIME y la ejecución continúa en el gestor
de errores.
Si se activa la entrada digital (parámetro \DIBreak) antes de que responda el operador, la
variable de sistema ERRNO cambia a ERR_TP_DIBREAK y la ejecución continúa en el gestor
de errores.
Si tiene lugar la salida digital (parámetro \DOBreak) antes de la acción del operador, la
variable de sistema ERRNO cambia a ERR_TP_DOBREAK y la ejecución continúa en el gestor
de errores.
Si no hay ningún cliente, por ejemplo un FlexPendant, que se encargue de la instrucción, la
variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la ejecución continúa en el
gestor de errores.
A continuación, estas situaciones pueden ser gestionadas en el gestor de errores.
Limitaciones
Evite usar un valor demasiado pequeño para el parámetro de tiempo límite \MaxTime si
TPReadFK se ejecuta frecuentemente, por ejemplo en un bucle. Si lo hace, puede dar lugar a
un comportamiento impredecible del rendimiento del sistema, por ejemplo la ralentización de
la respuesta del FlexPendant.
Datos predefinidos
CONST string stEmpty := "";
La constante predefinida stEmpty debe usarse en el caso de las teclas de función que no
tienen textos asignados. El uso de stEmpty en lugar de "" ahorra aproximadamente 80 bytes
por cada tecla de función que no tenga texto.
Información relacionada