Bloque que exhibe una determinada pantalla en la IHM.
Representación Ladder
![]()
Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
EN |
BOOL |
Habilitación del bloque |
NUMBER |
BYTE UINT USINT WORD |
Número de la pantalla a ser exhibida |
|
VAR_OUTPUT |
Q |
BOOL |
Salida del bloque |
VAR |
SETSCREEN_INST_0 |
SETSCREEN |
Instancia de acceso a la estructura del bloque |
Operación
Este bloque, cuando detecta un flanco de subida en EN, exhibe la pantalla representada por NUMBER en la IHM.
Q recibe TRUE por un ciclo de scan, en caso de que el número de la pantalla sea válido.
Cuando EN tiene valor FALSE, Q permanece FALSE.
Diagrama de Flujo del Bloque

Ejemplo en Ladder
El ejemplo a seguir habilita la pantalla 3 por 4 segundos a cada pulso en DI1.

Al inicio, se considera TELA_3 con valor FALSE, activando la entrada del bloque SETSCREEN_INST_0, que exhibe la pantalla HOME.

Al identificar un pulso en DI1, TELA_3 recibe valor TRUE, activando la entrada del bloque SETSCREEN_INST_1, que exhibe la pantalla 3.

Incluso con la señal retirada de DI1, TELA_3 continúa con el valor TRUE, o sea, la pantalla 3 continúa siendo mostrada.

Pasados los cuatro segundos, en caso de que DI1 todavía sea TRUE, aun así será exhibida la pantalla HOME. Sólo será exhibida la pantalla 3 cuando haya un nuevo flanco de subida en DI1.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR TELA_3 : BOOL; TP_INST_0 : FB_TP; TELA : UINT := 3; HOME : UINT := 0; SETSCREEN_INST_1 : FB_SETSCREEN; SETSCREEN_INST_2 : FB_SETSCREEN; END_VAR
TP_INST_0.IN := DI1; TP_INST_0(PT:=4, TIMEBASE:=1000); TELA_3 := TP_INST_0.Q; SETSCREEN_INST_1.EN := TELA_3; SETSCREEN_INST_1(NUMBER:=TELA); SETSCREEN_INST_2.EN := NOT TELA_3; SETSCREEN_INST_2(NUMBER:=HOME);
|
|---|