PROGRAMACIÓN A LOS PLC’s
PROGRAMACIÓN A LOS PLC
INTRODUCCIÓN El Controlador Lógico Programable ( PLC por sus siglas en inglés), es un dispositivo que nos permite hacer más flexibles las tareas de control, en particular para el control de sistemas neumáticos, de motores puesto que se pueden manejar algunas algunas variables con mayor facilidad que la que que sera sera con los dispos dispositi itivos vos de contro controll tradic tradicion ional al as como como una una simpli simplific ficaci ación ón con el alambrado del circuito de control! "na de las principales ventajas que se tienen con la introducción de los #$%&s es, por una parte, la eliminación de los relevadores de retardo de tiempo utili'ados para la lógica de control tradicional y por otra parte el poder resolver los problemas de mayor complejidad los cuales requieren mayor precisión!
Hardware Software
PLC
Sensores Actuadores
Fig. 1 Elementos escenciales del #$% egn el problema técnico que se tenga que resolver con el #$% la configuración de este puede ser más o menos compleja! *ndependientemente *ndependientemente del grado de complejidad de la aplicación, el equipo consta de los componentes componentes esenciales mostrados en la +igura !
PROGRAMACIÓN A LOS PLC’s
I0
PLC
O0
I1
O1 Programa
In
Baderas Contadores Temporizadores
Om
Fig. 2 %onceptuali'ación del #$% $a +igura - muestra una conceptuali'ación del #$%! %omo se aprecia consta de n entradas y m salidas, donde m y n dependen del modelo y de la marca del #$%! .demás contienen/
banderas, para tomar acciones en base al estado de ellas !n"ad!res, para ejecutar eventos que se repiten "e#$!ri%ad!res, para determinar la duración de los eventos . las banderas, contadores y tempori'adores se les denomina &'ni!nes!
El programa es un conjunto de instrucciones similares a las de cualquier ensamblador, el cual se encarga de consultar y0o modificar si es necesario el estado de las funciones! CARACTERÍSTICAS TÉCNICAS 1emoria "nidades de +unción
+unciones Especiales
PLC de FESTO 202:
2-3 4.1 ó 253 E#461 7 entradas de -8 9%: ; salidas transistori'adas ; salidas a relevadores ; contadores ; relojes <7 banderas *nicio automático al encender el equipo =atera de respaldo del buffer :etección de bajo nivel de voltaje en batera
-
PROGRAMACIÓN A LOS PLC’s
*ndicador de errores %onexión a módulos de expansión 4etención del estado de las salidas 9oltaje de 6peración ?olerancia %onsumo de potencia
>-8 9%: >;!< a 25 9%: *@7< m. *max@2A5m. #max@B!- C
LÓGICA D( PROGRAMACIÓN :ebido a que por lo regular en un circuito de control nos interesa estar monitoreando el estado de las variables del circuito para que en base a éstas se tomen las acciones pertinentes, la lógica de programación del #$% esta basada en bloques de instrucciones que se ejecutan permanentemente y cuando se cumple una cierta condición se ejecutan un conjunto de instrucciones asociadas a dicho bloque! "na excepción existe con las instrucciones iniciales las cuales se utili'an para la iniciali'ación de algunas funciones! Esquemáticamente esto sera/ Bloque de instrucciones iniciales Condiciones 1 Bloque de instrucciones 1 Condiciones 2 Bloque de instrucciones 2 …………………………………….. Condiciones i Bloque de instrucciones i Bloque de instrucciones finales
$as condiciones se estructuran de tal manera que dependan del estado lógico de las funciones! "na forma no recomendable de modificar esta lógica de programación sera mediante saltos condicionales hacia dentro de los bloques de instrucciones pero sera una lógica de programación muy confusa e ineficiente!
DIAGRAMAS D( (SCAL(RA $os diagramas de escalera son utili'ados para la representación adecuada y clara de los diagramas de control!
2
PROGRAMACIÓN A LOS PLC’s
. continuación se listan algunos la'os comunes de los diagramas de escalera con su correspondiente descripción!
LAB 0 S
Se declara la etiueta 0 O0
Se declara la etiueta 0
Se declara la salida 0 acti#ada
I0 !st" acti#a la entrada 0$ I0 %o est" acti#a la entrada 0$ I0 S
O0
Si est" acti#a la entrada 0& acti#ar la salida 0
I0 '(P 0
Si no est" acti#a la entrada 0& ir a etiueta 0
:e esta manera, con la ayuda del diagrama de escalera, se puede pasar directamente al programa en lista de mnemónicos! "n programa en lista de mnemónicos consta de lneas consecutivas donde cada lnea del programa contiene un comando, siendo ejecutada cada lnea del comando secuencialmente, sin ruptura o interrupción!
#or ejemplo, el siguiente programa en lista de mnemónicos se muestra con su correspondiente diagrama de escalera
8
PROGRAMACIÓN A LOS PLC’s
I0 I1
$:
D6?
*D
5
S
O0
E?
6"?
5
S
O+ O*
E?
6"?
B
*D
6"?
-
*D
-
S
$:
D6?
E?
I* S
O*
)
O+
$:
D6?
E?
6"? -
4?
6"?
B
CON)UNTO D( INSTRUCCION(S $as instrucciones que conforman el lenguaje de programación del #$% se clasifican en dos grupos/ !#and!s * &'ni!nes.
L!s !#and!s se encargan de controlar las funciones que tiene disponible el #$% y los podemos encontrar tanto en los bloques de condición como en los bloques de acción! .lgunos de los comandos son los siguientes/ $:, E?, 4?, @, etc! #or su parte, +as &'ni!nes tienen acción directa sobre el hardFareG del #$%, esto es, son instrucciones enfocadas a hacer actuar los elementos de control del #$%! .lgunos ejemplos de funciones son/ *D, 6"?, etc!
<
PROGRAMACIÓN A LOS PLC’s
COMANDOS LD
Este comando se utili'a para consultar el estado de las funciones, si es verdadero el estado lógico se ejecutaran las instrucciones que le siguen! intaxis/ $:
S(T y RST
Cond Bloque_inst
Estos comandos activan o desactivan las funciones! intaxis/ E? función
p!e! E? 6"?
4? función
RST
OUT 2
Ejemplo 1. Hacer un diagrama de escaleras y un programa el cual active la salida 8 si la
entrada está activa y la salida < si no lo está, y desactivalos si las condiciones no se cumplan correspondientamente
I1
)
O,
S
O-
$:
*D
4?
6"?
<
E?
6"?
8
*D
4?
6"?
8
E?
6"?
<
$: I1
)
O-
S
O,
D6?
7
PROGRAMACIÓN A LOS PLC’s
Este comando se emplea para asignar a la función el estado lógico de evaluar la condición! intaxis/ $: =
Condición función
$as diferentes opciones que se tienen para emplear este comando son las siguientes!
$:
*D
5
@
6"?
5
$:
*D
5
@
D6?
6"?
5
$:
D6?
*D
5
6"?
5
@ $:
D6?
*D 5
@
D6? 6"? 5
Ejemplo 2. *mplementar el programa del ejemplo con la instrucción de asignación!
$:
*D
@
6"?
8
*D
6"?
<
$: @
D6?
I1 .
O-
.
O,
I1
B
PROGRAMACIÓN A LOS PLC’s
)MP El comando de salto I1#, tiene por destino alguna lnea del programa en donde se desea que contine la ejecución del mismo! #ara el caso del #$% de +E?6, el comando I1# debe ser usado en conjunto con el comando $.=, ya que $.= indica la lnea a donde se va a saltar la ejecución del programa! #! $o anterior se explica con las siguientes lneas de un programa!
$.=
5
$:
*D
I1#
5
$a estructura de salto descrita anteriormente se conoce como salto incondicional!
El #$% de +E?6 ejecuta una sola ve' todo el conjunto de instrucciones a menos de que se le indique lo contrario! $a manera de reali'ar la ejecución permanente de un programa en el #$% de +E?6 es mediante un alto *ncondicional, de la siguiente manera! $.=
n
J#rogramaK $: #46L
p
I1#
n
%omo se puede observar, la condición para reali'ar el salto ($: #46L p) depende de si el programa se encuentra activado, es decir, la condición pregunta si el programa se encuentra ejecutándose! :e esta manera nos aseguramos que nuestro bloque de instrucciones se encuentra en un ciclo infinito! ;
PROGRAMACIÓN A LOS PLC’s
Ejemplo 3. Hacer un programa que termine cuando la entrada < se active!
$.= $:
5 D6?
*D
I1#
LAB 0
<
I,
5
'(P 0
Ejemplo 4. %orrija el programa de asignación, asumiendo que es el programa 5, de tal
manera que funcione correctamente!
$.=
5
$:
*D
@
6"?
8
*D
@
6"?
<
$:
#46L 5
$:
I1#
D6?
5
LAB 0 I1 .
O-
.
O,
I1 P0 '(P 0
INSTRUCCION(S LÓGICAS
$as instrucciones lógicas nos facilitan la evaluación de las condiciones que prevalecen en los circuitos! Hay esencialmente tres funciones/ .D:, 64 y D6?! . continuación se dan varios ejemplos de éstos!
A
PROGRAMACIÓN A LOS PLC’s
AND Es utili'ada para enla'ar condiciones con la operación lógica .D:!
Ejemplo 5. .ctivar la salida 5 siempre y cuando estén activas la entrada 5 y la
(65@*D5M*D)! $.= $:
*D
5
.D:
*D
@
6"?
5
$:
#46L 5
I1#
OR
5
LAB 0 I0
I1 .
O0
P0 '(P 0
5
Es usado para unir varias condiciones con el operador lógico 64
Ejemplo 6. .ctivar la salida 5 siempre y cuando esté activa la entrada 5 ó la
(65@*D5>*D)! 5
PROGRAMACIÓN A LOS PLC’s
$.=
5
$:
*D
5
64
*D
@
6"?
5
$:
#46L 5
I1#
5
LAB 0 I0
.
O0
I1
P0 '(P 0
Ejemplo 7. .ctivar la salida 5 siempre y cuando no esté activa la entrada 8, ó estén
activadas las entradas y 2 (65@N*D8>*DM*D2)!
PROGRAMACIÓN A LOS PLC’s
$.=
LAB 0 IO0
.
$:
*D
.D:
*D
2
*D
8
@
6"?
5
$:
#46L 5
64
I1 I/
P0
5
D6?
I1#
'(P 0
5
Ejemplo 8. *mplementar la función Ex6r, mediante bloques lógicos!
$.=
LAB 0
$:
I1 I* .
I1 I* P0 '(P 0
O,
5 D6?
*D
.D:
*D
-
$:
*D
*D
-
@
6"?
<
$:
#46L 5
.D:
D6?
OR
LD
I1#
5
%omo puede observarse, si no se ejecuta ninguna acción a continuación de la condición, el resultado será almacenado en memoria en un stacO! i este valor es evaluado inmediatamente, entonces el stacO nunca se llenará, si por el contrario retrasamos la evaluación y algunos otros resultados son guardados en él, entonces el máximo nmero de resultados que se pueden almacenar son ;!
-
PROGRAMACIÓN A LOS PLC’s
-AND(RAS $as banderas son unidades de memoria que se utili'an para guardar valores lógicos y pueden ser utili'adas para almacenar valores de entradas o salidas o para almacenar valores intermedios de operaciones!
Ejemplo 12. *mplementar la función lógica 64Pexclusivo sin utili'ar bloques condicionales!
olución/ ver ejemplo ; $.=
LAB 0
$:
I1 I* .
1
I1 I* .
1 .
O0
* P0 '(P 0
*
5 *D
.D:
*D
-
@
+
$:
*D
*D
-
@
+
-
$:
+
64
+
-
@
6"?
5
$:
#
5
.D:
I1#
D6?
D6?
5
2
PROGRAMACIÓN A LOS PLC’s
T(MPORIADOR(S $os tempori'adores son tuili'ados para controlar la duración de los eventos, cada tempori'ador posee tres parámetros/ #ara +E?6/ •
?imer preseleccionado
•
Estado
•
9alor (5P2-B!7 seg en incrementos de 5! seg)
#or lo general, la iniciali'ación del tempori'ador de +E?6 se reali'a al inicio del programa, toma la siguiente forma!
Ejemplo 13. *mplementar un programa que active y desactive 6 cada segundo!
8
PROGRAMACIÓN A LOS PLC’s
P)! T1 10
!5
T1
E?
?
S
O1
E?
6"?
$.= $:
O1 )
S
T1
?
S
LAB 1 T1
#4E
O1 T1
O1 S
S)
P1 '(P 1
O1 T1
D6?
?
.D:
6"?
4?
6"?
E?
?
$:
D6?
?
.D:
D6?
6"?
E?
6"?
E?
?
$:
#46L
I1#
i un tempori'ador esta activado y en ese momento se resetea, entonces toma un valor de 5 en ese instante! 4esetear un tempori'ador que ya ha cumplido su ciclo no tiene ningun efecto! En caso de una falla en la alimentación, el valor de preseleccion del tempori'ador es guardado, en caso contrario el valor y el estado son puestos en 5! i durante la ejecución del programa el valor de preseleccion del tempori'ador es cambiado, éste será tomado en cuenta tanpornto como sea activado otra ve'!
<
PROGRAMACIÓN A LOS PLC’s
CONTADOR(S on utili'ados para programar procesos que contienen eventos repetitivos! %ada contador posee las siguientes caractersticas/ •
%ontador preseleccionado
•
Estado
•
9alor de conteo (5PAAAA)
#or lo general la preselección del contador se reali'a al inicio del programa y toma la siguiente forma/ #4E
%
c
5Q@cQ@B
vc
5Q@vcQ@AAAA
e pueden utili'ar contadores ya sea incrementándolos o decrementándolosR la manera en que se activa el contador difiere para una y otra manera de uso y es la siguiente/ *ncrementar (empe'ar de 5)/
E? % c
:ecrementar (empe'ar con vc)/
1
*D*? % c
I%C c
S!T I%C 0
C
Cma2 I%C c
1 I%IT I%C 0 1
C
Cma2
C
3!C c
S!T 3!C 0 1
0 3!C c
I%IT 3!C 0
C
Cma2
7
PROGRAMACIÓN A LOS PLC’s
Ejemplo 14. El contador %5 es cargado con el valor de preselección 5! %ada ve' que hay
una seSal en la entrada 5, el contador es incrementado en ! * el contador alcan'a su valor de preselección se resetea y el tempori'ador 5 y la salida B son reseteadas! :espués de que 2 segundos han pasado, la salida B es reseteada! $a siguiente ve' que la seSal de entrada es aplicada el procedimiento comien'a otra ve'
LAB 0
S
T0
S
C0
P)! T0 /0 P)! C0 10
LAB 1 I0
I0 T0
O/ I
C0
S
O/
)
O/
O/
O+ S
P0
%
#4E
?
E? E? $.= $: .D: *D% E? $: .D: 4? $:
% ?
$:
O+ ) O+
C0
$.= #4E
O+
*D D6? % D6?
D6? .D: 4? D6? .D: E? I1# $: I1#
6"? 6"? *D 6"? 6"? ?
% D6?
5 5 5 5 2 5 5 5 2 5 2 5 2 2 5 6"? 6"? 5 6"? 6"? #46L
B B B B 5 5
'(P 0 '(P 1
B
PROGRAMACIÓN A LOS PLC’s
PR/CTICAS !P "so y conexiones de entradas y salidas del #$%! $os objetivos principales para esta practica son/ familiari'arse con el #$%, hacer uso adecuado de las entradas y salidas y observar los voltajes que deben usarse para el #$%! Hacer el diagrama de escalera y el programa en lista de mnemónicos en base a lo siguiente/
*! e activará la salida con la entrada y la salida - con las entradas y simultáneamente! e desactivará las salida con la entrada 2 y la salida - con las entradas 2 y
-!P :iseSar un programa que mueve el conjunto de bra'o y antebra'o linealmente una ve'! I1
I*
S1
S*
PLC O1
O*
C1 B1
B*
"so de tempori'adores y contadores! 2! #ara ejemplo - aplicar los tempori'adores! 8! #ara ejemplo - aplicar los contadores! $os objetivos son/ hacer uso de las herramientas para obtener retardos de tiempo en el RUN
STOP
SNGLE
EDIT
C/A
#$% y utiil'ar los contadores que permitan llevar a cabo el control de un determinado PRINT
EXT
SHOW
nmero de eventos! 4eali'ar el diagrama de escalera a las siguientes IN 7 LD de acuerdo 8 AND 9 ORinstrucciones/ STEP FLAG
D
E
F
INS
*! 1over un cilindro después de transcurrir un tiempo de < seg!
= en su posición por < seg y después regresarlo! 4 el cilindro **! 1antener
OUT
5 SET
6 RST
CLR DEL
PROG
A INIT
B INC
C DEC
C
1 JMP
!
LAB
DISP
END
***! 4epetir el evento * y ** < veces!
PRE
T EP ROM
" NOT SAFE
# AUTO
= SHIFT
;