0% encontró este documento útil (0 votos)
10 vistas17 páginas

AI Tema6 Modularizacion

Cargado por

Matajari
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas17 páginas

AI Tema6 Modularizacion

Cargado por

Matajari
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Automatización

Industrial
2º G. Ing. Electrónica, Robótica y Mecatrónica

Tema 6. Modularización en la
programación de autómatas

Miguel Ángel Ridao Carlini


miguelridao@[Link]
Modularización de programas
◼ OBJETIVO: Realizar módulos que automaticen partes
diferenciadas del sistema, de modo que puedan ser
reutilizados.

◼ Cada bloque controla una parte del sistema, y debe incluir:


⧫ Lista de entradas
⧫ Lista de salidas
⧫ Comportamiento (evolución del estado)

◼ Los módulos se comunican a través de sus entradas y sus


salidas (o bien mediante variables globales, que no es
recomendable)

◼ Cada módulo se modelará mediante un automatismo


independiente

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 2


Modularización de programas

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 3


Modularización de programas

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 4


Modularización de programas

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 5


Modularización de programas

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 6


Modularización de programas

P1

V1

LTH1

MD1

FCD1

FINAL1

VUELVE

VV1

LTL1

MI1

INTERACCION ENTRE BLOQUES: VUELVE:=FINAL1 AND FINAL2

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 7


Modularización de programas

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 8


Bloques funcionales
◼ Elemento fundamental para la modularización

◼ Un bloque funcional es un POU que puede devolver uno o más valores

◼ Para utilizarlos es necesario crear “copias” del bloque funcional


denominadas instancias.
⧫ Si definimos un bloque funcional denominado MiBlqFun, puedo definir instancias
de ese tipo
Mi_instancia: MiBlqFun;
⧫ Las instancias se declaran en la zona de declaración de variables. Puedo crear
tantas instancias como quiera

◼ Los valores de las variables internas y de salida se mantienen de una


ejecución de la instancia a la siguiente, por lo que una llamada a una
misma instancia de BF con los mismos parámetros de entrada, puede
devolver valores de salida distintos.

Recuerde que los programas se ejecutan de forma cíclica, por lo que


normalmente una llamada a una instancia que aparezca en un programa
normalmente se va a ejecutar en cada ciclo.

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 9


Bloques funcionales
◼ Bloques funcionales estándar
⧫ Detectores de Flancos
• R_TRIG: Detector de flancos de subida
• F_TRIG: detector de flancos de bajada
⧫ Temporizadores:
• TON: Temporizador de conexión
• TP: Temporizador de tiempo fijo
• TOF: Temporizador de desconexión
⧫ Contadores:
• CTU: Contador de incremento
• CTD: contador de decremento
• CTUD: Contador de incremento y decremento
⧫ Biestables:
• SR: Biestable con set dominante
• RS: Biestable con rerset dominante

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 10


POU: Bloques funcionales
◼ Los bloques funcionales ya se han ido utilizando en la asignatura:
Contadores, Temporizadores, Trigers,…

VAR
Contador:CTU;
END_VAR

◼ Pero podemos crear nuevos bloques funcionales y guardarlos en la librería


para reutilizarlos.

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 11


Creación y uso de Bloques funcionales
◼ Ejemplo: Biestable S-R
⧫ Definir un biestable S-R con prioridad al Set (escrito en lenguaje ST)

FUNCTION_BLOCK Biestable
VAR_INPUT Set
EntS : BOOL;
EntR: BOOL;
END_VAR
Reset Luz
VAR_OUTPUT
Estado : BOOL :=TRUE;
END_VAR
--------------
IF (EntS=TRUE ) THEN PROGRAM PLC_PRC
Estado:=TRUE; VAR
ELSE Mibiestable: Biestable;
IF (EntR=TRUE) THEN END_VAR
Estado:=FALSE;
END_IF ---------
END_IF
Mibiestable(EntS:=Set,EntR:=Reset,
Estado=>Luz);

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 12


Bloques funcionales
◼ Cuando se crea un bloque funcional, automáticamente es creada una
estructura de datos que incluye los datos de entrada y salida.
FUNCTION_BLOCK Biestable
VAR_INPUT
EntS : BOOL; VAR
EntR: BOOL;
Mibiestable: Biestable;
END_VAR
VAR_OUTPUT
Estado : BOOL :=TRUE; ---------
END_VAR

Se crea automáticamente [Link]:=…


TYPE Biestable
STRUCT
……
(* Entradas *)
EntS : BOOL; Var:=[Link]
EntR : BOOL;
(* Salidas *)
Estado :BOOL;
END_STRUCT
END_TYPE

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 13


Llamada a bloques funcionales en ST
Llamada desde otro programa VAR
Primer Método MiBiestable : Biestable;
END_VAR
-----------
MiBiestable( EntS:=BotonS,
EntR:=BotonR,
Definición de la función Estado=>Luz);
(solo la declaración)
FUNCTION_BLOCK Biestable
VAR_INPUT
EntS : BOOL; BotonS
EntR: BOOL;
END_VAR
VAR_OUTPUT
Estado : BOOL :=TRUE; Luz
Luz
END_VAR BotonS

BotonR
BotonR

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 14


Llamada a bloques funcionales en ST
VAR
Llamada desde otro programa MiBiestable : Biestable;
Segundo Método END_VAR
-----------
[Link]:=BotonS;
[Link]:=BotonR
Definición de la función MiBiestable();
MiEstado:=[Link]
(solo la declaración)
FUNCTION_BLOCK Biestable
VAR_INPUT
EntS : BOOL; BotonS
EntR: BOOL;
END_VAR
VAR_OUTPUT
Estado : BOOL :=TRUE; Luz
Luz
END_VAR BotonS

BotonR
BotonR

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 15


Llamada a bloques funcionales en ST
Llamada desde otro programa
Método Mixto VAR
MiBiestable : Biestable;
END_VAR
-----------
[Link]:=BotonR;
Definición de la función
MiBiestable(EntS:=BotonS);
(solo la declaración) MiEstado:=[Link];
FUNCTION_BLOCK Biestable
VAR_INPUT
EntS : BOOL; BotonS
EntR: BOOL;
END_VAR
VAR_OUTPUT
Estado : BOOL :=TRUE; Luz
Luz
END_VAR BotonS

BotonR
BotonR

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 16


Ejemplo

Entradas
P1 – Pulsador
A1 – Fin de carrera
B1 - Fin de carrera
P2 - Pulsador
A2 - Fin de carrera
B2 – Fin de carrera

Salidas
MOTOR_DE1
MOTOR_IZ1
Carga1
Descarga1
MOTOR_DE2
MOTOR_IZ2
Carga2
Descarga2

Depto. Ing. Sistemas y Automática. Automatización Industrial. 2º GIERM 17

También podría gustarte