Vous êtes sur la page 1sur 79

UNIVERSIDAD TCNICA DE AMBATO

PLCS
INGENIERA INDUSTRIAL
2017/2018

TEMA 2:
Funcionamiento de un PLC
UNIVERSIDAD TCNICA DE AMBATO

PLCS
Lenguajes de programacin IEC 61131

1
1. Diagramas de contactos
2. Diagramas de bloques funcionales
3. Texto estructurado
4. Sistemas de eventos discretos
5. GRAFCET

2
UNIVERSIDAD TCNICA DE AMBATO

3
El diagrama de una seccin se compone de circuitos,
llamados redes, entre las dos lneas de alimentacin.
Cada red se construye con contactos, bobinas y lneas de
conexin. A los contactos y bobinas se asocian variables.

4
Intermitente de cinco pulsos con:
Bloques TON.
Operaciones.
Comparacin.
Contacto de
deteccin de
flanco Positivo.
Bobina de puesta
a 0 (Reset).

5
Retardo de conexin Retardo de desconexin Generador de pulso

TON TOFF TP
EN ENO EN ENO EN ENO
IN Q IN Q IN Q
PT ET PT ET PT ET

PT
PT
IN IN IN
PT

Q Q Q
PT PT PT
ET ET ET

6
Se dispone de contadores para:
CTD (Count Down). Cuenta decreciente desde un valor cargado.
CTU (Count Up). Cuenta creciente hasta el valor indicado.
CTUD. Cuenta creciente o decreciente, segn la entrada usada.

Contador de 5 pulsos
del ejemplo anterior
usando un bloque
CTU

7
En LD, los bloques de funcin disponen de:
EN (ENable): El bloque se ejecuta cuando esta entrada vale 1. Si
no se usa, se interpreta que vale 1.
ENO (EN Output): Salida que se pone a 1 cuando el bloque
acaba su ejecucin. Si hay errores, ENO se pone a 0.

8
La ejecucin se realiza red a red, de arriba abajo.
Cada red se ejecuta completamente, hasta determinar
todas las salidas, antes de pasar a la siguiente red.
Si se usan bloques de funcin, estos requieren disponer
de todas las entradas para ejecutarse.
Se puede alterar el flujo de ejecucin con elementos de
salto, pero su abuso puede dificultar la interpretacin
de un programa.

9
Ejemplo:
Los nmeros dentro
de los bloques e
indicados como (x)
representan el orden
de ejecucin.
Estos nmeros no se
suelen indicar en los
diagramas.

10
No es posible definir un bucle explcitamente con lneas
de conexin, y hay que recurrir a variables.

11
Se dispone de elementos especiales para alterar la
secuencia de ejecucin en determinados casos:
Salto a una etiqueta: el
programa sigue a partir de la
etiqueta indicada.
Etiqueta: destino de un salto.
Retorno anticipado de una
subrutina o bloque de funcin.
Todas las subrutinas acaban
con un retorno implcito.

12
UNIVERSIDAD TCNICA DE AMBATO

13
Una seccin de programa se disea como un diagrama
de bloques interconectados con enlaces o variables.
Similar a esquemas de electrnica digital.
En los PLCs de Schneider y Siemens, los bloques se
clasifican en tres tipos:
Funciones elementales (EF). Operaciones sin estado interno.
Bloques de funcin elementales (EFB). Operaciones con estado
interno.
Bloques de funcin derivados (DFB). Creadas por el usuario.

14
Los bloques tambin tienen seales EN y ENO, pero por
defecto estn ocultas ya que muchas veces no se usan.

15
Funciones elementales tpicas:
Lgica: OR, AND, NOT, desplazamientos
Para BIT, BYTE, WORD, DWORD.
Matemticas: ADD, SUB, MUL, ABS, COS, SIN, EXP, LOG
Para INT, DINT, UINT, UDINT, REAL.
Comparacin: EQ, NE, GE, GT, LE, LT
Para BYTE, WORD, INT, UINT, REAL, STRING
Cadenas: CONCAT, EQUAL, FIND, LEFT, MID, REPLACE
Conversin de tipos: BOOL_TO_INT, BYTE_TO_REAL

16
Bloques de funcin elementales :
Lgica: F_TRIG, R_TRIG, biestable RS
Temporizadores: TON, TOFF, TP.
Contadores: CTU, CTD, CTUD.
Acceso a archivos: abrir, cerrar, crear, borrar, escribir y leer
datos, obtener espacio libre
Control de diagramas GRAFCET.

17
Otras funciones:
Fecha y hora, estadstica, operaciones entre vectores
Control continuo PID, generacin PWM
Control de unidades de movimiento.
Lectura y escritura de datos en puertos de comunicaciones.
Configuracin de puertos E/S avanzados.
Sistema: acceso a fecha y hora, gestin de tareas de eventos,
gestin de temporizadores, paro

18
Una sonda de temperatura da una seal analgica -10V a 10V
y est calibrada para temperaturas de 32 a 212 Farenheitt.
Se emplea un mdulo ADC que da un valor entero de 16 bits.
El sistema debe regular la temperatura de una sala en C de
forma que:
Si se supera 30C se pone en marcha el sistema de refrigeracin, que
se para si la temperatura baja de 28C.
Por debajo de 20C se pone en marcha el sistema de calefaccin, que
se detiene si la temperatura sube de los 22C.
C = 5 (F-32)/9

19
Las cadenas no se pueden comunicar con enlaces entre
bloques: hay que usar variables STRING.

cad_temp1 = 2010-10-04-00:13:52 valor=34


23
Con FBD es posible hacer llamadas a subrutina.
Al acabar la subrutina, el control vuelve a la parte del
programa desde donde se llama.
Seccin FBD

subrutina
SR_CALL
subrutina

24
Como en LD, se dispone de elementos para alterar la
secuencia de ejecucin:
Salto a una etiqueta: el
programa sigue a parir de la
etiqueta indicada.
Etiqueta: destino de un salto.
Retorno anticipado de una
subrutina o bloque de funcin.
Todas las subrutinas acaban
con un retorno implcito.

25
UNIVERSIDAD TCNICA DE AMBATO

13
Lenguaje de alto nivel, al estilo de Pascal o Basic.
Una seccin es un programa estructurado con una lista
de instrucciones compuestas de:
Instrucciones de control del flujo del programa.
Expresiones de evaluacin y asignacin de variables.
Llamadas a bloques de funciones y subrutinas.
Cada instruccin debe acabar en punto y coma (;).
Particularmente adecuado para programar clculos
aritmticos y algoritmos complejos.
27
Operadores bsicos:
Asignacin de un resultado: :=
Comparacin: > , < , = , >= , <= , <>
Lgicos: AND, &, OR, XOR, NOT
Aritmticos: +, -, *, /, MOD (resto divisin entera), ** (potencia)
Parntesis para forzar orden de evaluacin: ( , )
Llamadas a funciones:
TON_ins1 (inicio, tiempo, salida, cuenta);

28
Resulta fcil construir expresiones complejas:
s_motor := e_marcha AND NOT (e_alarma1 OR e_alarma2);
a := 5 + a * cos(INT_TO_REAL(%CH0.3.0.VALUE));
var1 := var2 := var3 := 1;
timeVar := 10 * T#10s;
salida := Instancia1_TON.Q;
UnlocV1[2] := LocV1[%MW200];
cad_temp1 := CONCAT_STR(cad_temp1, mensaje);
marcabool := %I0.1.0 OR %I0.1.1;

29
Hay que tener cuidado al usar bucles
El ciclo del PLC ya ejecuta un bucle para todas las tareas.
No hay que bloquear o retrasar el ciclo del PLC. Se puede iniciar
el watchdog si est activado.
Tarea maestra

FOR c:=1 TO 499 DO IF (primer_ciclo) Se rellena el

Tarea maestra
tabla[c]:=5; c:=0; vector tabla de
END_FOR; END_IF;
IF c<500 THEN
diez en diez
REPEAT elementos.
tabla[c]:=5;
c:=c+1;
UNTIL MOD(c/10)=0
END_IF;
32
Seleccin de alternativas
CASE funciona como varias
instrucciones IF-THEN-ELSIF,
pero es ms comprensible.
Para cada opcin se puede
especificar un bloque de
instrucciones o expresiones.
Opcionalmente, se puede
aadir la opcin ELSE al final.

33
JMP etiqueta: Salto a la etiqueta indicada. No es estndar, y no est
recomendado.
RETURN: retorno anticipado de una subrutina.
EXIT: fuerza la finalizacin de una instruccin de repeticin antes
de que se cumpla la condicin de final.

34
En la llamada a subrutina simplemente se usa su
nombre: nombre_de_la_subrutina();
En la llamada a EFB o DFB se deben indicar las
variables que se asignan a los parmetros de entrada y
salida:

35
En un programa (ST, LD, FBD), las llamadas a bloques
EFB o DFB requieren usar una instancia concreta del
tipo de bloque necesario.
Seccin del programa
Tabla de variables: bloques de funciones

Tipos de bloques

Instancias

36
Con el PLCS se puede acceder a archivos en la
tarjeta de memoria FLASH.
Operaciones tpicas de gestin de archivos de un lenguaje de
alto nivel: CREATE, OPEN, CLOSE, WRITE, READ, DELETE
Se puede abrir de forma simultnea hasta 16 archivos.
El nmero de archivos depende de la capacidad de la tarjeta.
Las funciones slo se pueden utilizar en la tarea MAST.
La tarjeta de memoria debe tener los derechos DATA-STORAGE
para poder utilizar estas funciones.

37
UNIVERSIDAD TCNICA DE AMBATO

13
Muchas aplicaciones de automatizacin se basan en
desarrollar una secuencia ordenada de acciones.
El controlador no comienza una accin hasta que la
accin anterior no ha terminado.
La situacin del sistema durante el desarrollo de una
accin estable se denomina estado.
El controlador determina la transicin de una accin a
otra en funcin de sus entradas.

40
Un evento es la transicin de un estado a otro.
Eventos discretos:
Las transiciones de estado son instantneas y ocurren en
instantes discretos de tiempo.
En un intervalo finito de tiempo hay un nmero finito de
transiciones de estado.
En un instante de tiempo, las salidas vienen
determinadas por el estado actual:
Las salidas no dependen directamente de las entradas.

41
El sistema sigue esta secuencia de funcionamiento:
Inicialmente el carro est en reposo en el lado izquierdo.
Mediante M, el carro se pone en marcha hacia la derecha.
Cuando el carro toca FCD, se mueve a la izquierda.
Al tocar FCI, el carro se para, la espera de pulsar M de nuevo.

Pulsador
de marcha Acciones
I D
sobre los
motores
M FCI Carro FCD
Final de Final de
carrera carrera
izquierdo derecho

42
El estado siguiente (qs) depende del
q1:
estado actual (q) y de las entradas (e). Reposo
I=0, D=0
Las entradas provocan las transiciones
M
de estado.
Las salidas (s) dependen del estado. FCI
q2:Mover
derecha
I=0, D=1
Q: Conjunto de estados qs = f (q, e)
E: Conjunto de entradas s = g(q) FCD
q3:Mover
S: Conjunto de salidas q, qs Q e E s S izquierda
I=1, D=0

43
Se puede realizar el procesamiento
de salidas en los cambios de estado
pero el programa no queda tan
claro, y es fcil cometer errores.
Es recomendable determinar las
salidas segn las variables de
estado, como en las diapositivas
anteriores.

46
Determinar cuales son los estados estables del sistema.
Modelar el funcionamiento con un grafo de estados.
Identificar variables de mando, entradas y salidas.
Definir variables de estado.
Iniciar las variables de estado (y salidas).
Programar los cambios de estado, segn las entradas.
Programar la generacin de salidas segn el estado.

47
Disear el programa en lenguaje estructurado para
controlar esta mquina taladradora:
A Cilindro 2

Pulsador
Marcha B FC2
Motor
M taladro
A B
Cilindro 1 FC3
Peiza
Presostato
P
FC1
48
El operario coloca la pieza en la mesa de mecanizado.
Cuando el operario acta sobre el pulsador de marcha, el cilindro 1 se
desplaza hacia la derecha.
Si el presostato detecta suficiente presin en el cilindro es que la pieza est
bien sujeta, el motor del taladro empieza a girar y el cilindro 2 se desplaza
hacia abajo.
Cuando el taladro activa el final de carrera FC3 la pieza ha sido taladrada,
se para el motor, y el cilindro 2 se mueve hacia arriba.
Si el taladro toca el final de carrera FC2, se para el motor y el cilindro 2 se
deja en reposo.
Finalmente, el cilindro 1 se desplaza a la izquierda hasta que se activa el
final de carrera FC1, quedando el cilindro 1 en reposo.
49
Un estado representa la totalidad del sistema.
El nmero de estados crece exponencialmente al aumentar la
complejidad de la aplicacin.
Slo sirve para problemas muy sencillos.
Difcil sincronizacin de grafos de procesos paralelos.
Se requiere una herramienta ms potente:
Redes de Petri.
Grafcet.

50
51
Creado por la extinta AFCET (Asociation Francaise pour
la Ciberntique Economique et Technique) en 1977.
Inspirado en redes de Petri.
Como otros grafos de estados, trabaja con estados,
eventos y acciones.
Adecuado para automatismos secuenciales que se
pueden estructurar en etapas.
Definido como lenguaje de Diagrama Secuencial de
Funciones (SFC) para PLCs en el IEC 61131.
52
El software de diseo de los PLCs actuales permite la
especificacin grfica de Grafcet de forma directa.
Elementos principales:
Etapas o pasos: Estados estables del
automatismo, que tienen asociadas acciones.
Transiciones: Determinan los cambios de
etapas en base a condiciones booleanas.
Conexiones direccionales: conectan una etapa
con una transicin o viceversa.
Slo se indica la direccin hacia arriba: el resto
se supone hacia abajo.
53
Etapa
inicial

Cada etapa tiene un nombre.


Durante un instante de la ejecucin, Etapa
hay dos tipos de etapas: activa
(verde)
Activas. Se estn ejecutando.
Sin activar. En espera de que una transicin
las active.
Todo Grafcet tiene una etapa inicial Etapa sin
que se activa al iniciar el programa. activar

54
Cada etapa tiene asignada una variable con su nombre,
con estos elementos:
Etapa1.t: Tiempo de duracin de la etapa. Si se desactiva la
etapa, se mantiene el valor.
Etapa1.x: 1 o 0 segn la etapa este activa o no.

Esas variables slo se pueden leer.


Las variables se pueden usar en
transiciones y acciones, y en otras
secciones del programa.

55
A una etapa se pueden asociar
ninguna, una o varias acciones.
Si ha varias, se ejecutan en orden.
Las acciones pueden ser:
Una variable o direccin booleana. Acciones
Una seccin de programa.
El tipo de control sobre una accin se
expresa con un descriptor.
La accin puede ser continua o un pulso.

56
N (None). La accin slo est a 1 cuando la etapa est activa.
R (Reset). Cuando la etapa se activa, la accin se pone a 0. La accin
se pudo activar previamente con S.
S (Set). Al desactivarse la etapa, la accin se pone a 1, hasta que se
use R.
L (Limit). Si la etapa est activa, la accin se pone a 1 durante el
tiempo indicado y luego se deja a 0. Si la etapa se desactiva, la
accin se pone a 0.
P (Pulse). Si la etapa est activa, la accin se establece a 1, y se
mantiene as durante un ciclo de programa. Luego se pone a 0.

57
D (Delay). Si la etapa se activa, se inicia un temporizador y, una vez
pasado el tiempo indicado, la accin se establece en 1. Si la etapa se
desactiva, la accin se pone a 0.
DS (Delayed Set). Acta como S, pero la accin no se pone a 0
automticamente al desactivarse la etapa.
P1 (Pulse to 1). Cuando la etapa pasa de inactiva a activa, la accin
se establece en 1 y permanece as durante un ciclo de programa.
P0 (Pulse to 0). Cuando la etapa pasa de activa a inactiva, la accin
se establece en 1 y permanece as durante un ciclo de programa.

58
Se pueden definir acciones complejas en
forma de secciones de programa en lenguaje
FBD, LD, IL ST.
Una misma seccin de accin se puede usar
como accin de multiples estapas.
No se puden usar bloques de funciones, y las
llamadas a subrutinas tienen limitaciones. Seccin
de accin
Para acciones de tipo pulso, la seccin slo se sec_acc1

ejecuta una vez (un ciclo).

59
Definen las condiciones que permiten evolucionar de
una o ms etapas activas a otras etapas no activas.
Una transicin se habilita si:
Todas las etapas de entrada estn activas.
La condicin asociada a la etapa es verdadera o 1.

La condicin de una transicin puede ser:


Una variable o direccin booleana.
Una seccin que devuelve un valor booleano.
El valor literal 1 (verdadero).

60
Si una transicin habilitada se ejecuta: Transicin
Condicin
Se desactivan todas las etapas inmediatament e habilitada
falsa
anteriores.
Se activan todas las etapas inmediatamente
posteriores.
Si hay varias transiciones habilitadas, se
disparan todas ellas.
El tiempo de ejecucin de una transicin Transicin no
habilitada
puede ser muy pequeo, pero no cero.

61
Es una sucesin de
etapas que son
activadas una a
continuacin de otra.

IZQ DER

Carro FCD
FCI

MARCHA

63
Divergencia
La salida de una transicin se en Y

conecta a varias etapas.


El disparo de la transicin lleva a la
activacin simultnea de varias
etapas, o secuencias de etapas.
Las secuencias simultneas deben
converger en una transicin.
La transicin se habilitar si todas s us
etapas previas estn activas.
Las etapas paralelas se desactivan. Convergencia
en Y

64
Segn el IEC 61131, una divergencia en Y siempre debe
cerrarse con una convergencia en Y.
El nmero de divergencias simultneas no tiene porque
coincidir con el nmero de convergencias simultneas.

65
Despus de una etapa, se inician Divergencia
en O
varios caminos posibles:
Cada camino tendr una transicin
con su condicin.
Slo debe progresar un camino:
a) Las condiciones deben ser
excluyentes.
b) Se escoge la primera transicin que
se habilita (de izquierda a derecha).
Los caminos deben converger.
Convergencia
en O
66
Se puede definir un salto de una o ms etapas en base
a una seleccin.

Elementos
de salto

67
Se inicia un contador en una
etapa anterior al bucle.
La condicin de la transicin se
establece con una seccin que
compare el contador
En una etapa interior al bucle se
modifica el contador.

69
Son etapas que contienen un Grafcet dentro.
Permiten estructurar el programa por niveles de detalle.
Etapa de
entrada o inicial

Etapa de salida
o final

70
El estndar IEC 61131 excluye la posibilidad de llamar a
una misma macroetapa desde diferentes lugares.
El motivo es que podra haber conflictos de acceso a
variables si la macroetapa se llama desde dos lugares
simultneamente.

71
Se permite varias secuencias de
etapas activas simultneamente (a
parte de las secuencias simultneas
con convergencia correcta).
A cada lnea de evolucin se la
denomina token (testigo).
No es estndar.

72
La existencia de mltiples tokens puede deberse a:
Varias etapas iniciales en un mismo diagrama.
Una macro-etapa que tiene etapas iniciales.
En una secuencia de seleccin se activan varias transiciones.
Activacin explicita de etapas

Los tokens se pueden finalizar a travs de:


Coincidencia de dos o ms tokens en una etapa: solo un token
evoluciona a partir de esa etapa.
Desactivacin explicita de etapas.

73
M M M M
H V B J

Motor Motor Motor bomba Motor bomba


Subida de Rodillo H Rodillos V agua jabn
rodillo H
FC4: Rodillo
Bajada de H arriba Inicio Piloto ON Con jabn
rodillo H

Entrada del
FC3: Presencia vehculo
Vehculo

FC1: retroceso FC2: avance


Retroceso del Avance del
puente puente
74
Condiciones iniciales: puente atrs, rodillo H arriba, rodillos parados,
bombas paradas, vehculo entrando.
Al pulsar Inicio, y si el vehculo est en posicin (FC3):
Activar piloto ON y esperar 10s.
Bajar rodillo H durante 5s.
A la vez: activar rotacin de rodillos, avance del puente, activar bomba.
Si se ha escogido usar jabn, tambin se activa la bomba de jabn
durante de 20s en paralelo a las acciones anteriores.
El puente retrocede al llegar a FC2.
Si se activa FC1, se para el puente, la rotacin de rodillos y las bombas.
El rodillo H sube hasta tocar FC3.

75
E0 Espera vehculo

Inicio & FC3 Rotacin H, rot. Avance


E3 E4 E6 Nada
V, bomba agua puente
E1 Encender piloto
FC2 No Jabn
E1.T=10s Jabn
Retroceso
E2 Bajar rodillo H E5 E7
puente
E8.T=20s
E2.T=5s & /FC1

E8 Nada

FC1
Bomba
E9 Subir rodillo H
jabn
FC4
76
Mejorar el auto-lavado de forma que:
Tras el lavado, incluya un ciclo de secado, activando los motores
de dos ventiladores.
Si el cliente ha pagado el doble, el ciclo de lavado se debe repetir
2 veces. Para ello, segn la ficha que haya comprado el cliente, se
activar o no un interruptor denominador lavado_doble.

77
Solo se puede crear secciones SFC en la tarea maestra.
Cada seccin SFC contiene:
Seccin con diagrama Grafcet (chart).
Secciones de acciones.
Secciones de transciones.
Macroetapas.

Se puede activar el modo multitoken, aunque esto


permite situaciones que no siguen el IEC 61131 .

78
La tarea de sistema vigila los tiempos de ejecucin de
las secciones SFC: Para cada etapa se puede definir:
Tiempo de vigilancia mnimo: Tiempo mnimo que debe durar.
Tiempo de vigilancia mximo: Tiempo mximo que debe durar.
Retardo de ejecucin: tiempo mnimo que estar activa la etapa.

Se pueden asociar variables a las etapas para acceder a


los tiempos anteriores durante la ejecucin.
Si no se cumplen los tiempos de vigilancia se activan los
bits de error asociados a la etapa.

79
Hay bloques de funcin que permiten controlar la
ejecucin de cada seccin de SFC desde otras secciones
del programa.
Se puede reiniciar y activar pasos iniciales, congelar la
evolucin, activar o desactivar etapas especficas, etc.
Estos bloques son tiles para
controlar aspectos como:
Situaciones de error, paradas de
emergencia, seleccin de un modo
de funcionamiento, etc.

80

Vous aimerez peut-être aussi