Nothing Special   »   [go: up one dir, main page]

Unidad 3. Introduccion A Los PLC y A La Programacion SCL PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 19

UNIDAD 3.

INTRODUCCION A LOS PLC Y A LA PROGRAMACION SCL


3.1. ¿QUE ES UN PLC?

El PLC es un dispositivo diseñado para controlar procesos secuenciales (una etapa después de la
otra) que se ejecutan en un ambiente industrial. Es decir, que van asociados a la maquinaria que
desarrolla procesos de producción y controlan su trabajo.

El PLC sustituye a los elementos electromecánicos como: relés auxiliares, temporizadores y


contadores.

3.2. ¿QUE HACE UN PLC?

Un PLC realiza, entre otras, las siguientes funciones:

 Recoger datos de las fuentes de entrada a través de las fuentes digitales y analógicas.
 Tomar decisiones con base en los criterios programados previamente.
 Almacenar datos en la memoria.
 Generar ciclos de tiempo.
 Realizar cálculos matemáticos.
 Actuar sobre los dispositivos externos mediante las salidas analógicas y digitales.
 Comunicarse con otros sistemas externos.

Los PLC se distinguen de otros controladores automáticos, en que pueden ser programados para
controlar cualquier tipo de máquina, a diferencia de otros controladores (como por ejemplo un
programador o control de la llama de una caldera) que, solamente, pueden controlar un tipo
específico de aparato.

Además de poder ser programados, son automáticos, es decir son aparatos que comparan las
señales emitidas por la máquina controlada y toman decisiones con base en las instrucciones
programadas, para mantener estable la operación de dicha máquina.

3.3. VENTAJAS Y DESVENTAJAS DEL USO DE LOS PLC

3.3.1. Ventajas.
Las ventajas del uso de los PLC son las siguientes:

• Menor tiempo empleado en la elaboración de proyectos debido a que no es


necesario dibujar el esquema de contactos.
• No es necesario simplificar las ecuaciones lógicas ya que, por lo general, la
capacidad de almacenamiento del módulo de memoria es lo suficientemente
grande como para almacenarlas.
• La lista de materiales a emplear es más reducida y, al elaborar el presupuesto
correspondiente, se elimina parte del problema que supone el contar con diferentes
proveedores, distintos plazos de entrega, etc.
• Posibilidad de introducir modificaciones sin cambiar el cableado y añadir aparatos.
• Mínimo espacio de ocupación
• Menor costo de mano de obra de la instalación.
• Economía de mantenimiento. Además de aumentar la fiabilidad del sistema, al
eliminar contactos móviles, los mismos autómatas pueden detectar e indicar
posibles averías.
• Posibilidad de gobernar varias máquinas con un mismo autómata.
• Menor tiempo para la puesta en funcionamiento del proceso al quedar reducido el
tiempo de cableado.
• Si por alguna razón la maquina queda fuera de servicio, el autómata sigue siendo
útil para controlar otra máquina o sistema de producción.

3.3.2. Inconvenientes

• Hace falta un programador, lo que exige la preparación de los técnicos en su etapa


de formación.
• La inversión inicial es mayor que en el caso de los relés, aunque ello es relativo en
función del proceso que se desea controlar. Dado que el PLC cubre de forma
correcta un amplio espectro de necesidades, desde los sistemas lógicos cableados
hasta el microprocesador, el diseñador debe conocer a fondo las prestaciones y
limitaciones del PLC. Por tanto, aunque el coste inicial debe ser tenido en cuenta a
la hora de decidirnos por uno u otro sistema, conviene analizar todos los demás
factores para asegurarnos una decisión acertada.

3.4. ESTRUCTURA DEL PLC

Un PLC está constituido, principalmente, por las siguientes partes:

 PROCESADOR. En él se desarrolla todo el tratamiento de la información o de las


instrucciones que contiene el programa.
 ENTRADAS. Sirven para recibir las señales eléctricas procedentes de los elementos
empleados en la etapa de detección (pulsadores, sensores, presóstatos, finales de carrera,
etc.)
 SALIDAS. Elementos a través de los cuáles se emiten las órdenes de mando provenientes
del programa y que permiten activar los elementos finales solenoides, bobinas de contactores,
bombillas, sirenas, etc.)
 MEMORIA. En ella se almacenan programas, datos e información requerida por el PLC para
su correcto funcionamiento.

En los PLC´s se tienen modelos que funcionan a distintos voltajes: 24 VDC, 110 VAC y 220 VAC
principalmente. Las corrientes que se manejan a través de las entradas son muy pequeñas (del
orden de miliamperios) y en las salidas se pueden manejar corrientes hasta de 1 ó 2 amperios.

3.5. CLASIFICACION DE LOS PLC´s

Los PLC pueden clasificarse, en función de sus características en:

3.5.1. PLC Nano. Generalmente es un PLC de tipo compacto (es decir, que integra la fuente de
alimentación, la CPU y las entradas y salidas) que puede manejar un conjunto reducido de
entradas y salidas, generalmente en un número inferior a 100. Este PLC permite manejar
entradas y salidas digitales y algunos módulos especiales.
3.5.2. PLC Compacto. Estos PLC tienen incorporada la fuente de alimentación, su CPU y los
módulos de entrada y salida en un solo módulo principal y permiten manejar desde unas
pocas entradas y salidas hasta varios cientos (alrededor de 500 entradas y salidas), su
tamaño es superior a los PLC tipo Nano y soportan una gran variedad de módulos especiales,
tales como:
• Entradas y salidas análogas
• Módulos contadores rápidos
• Módulos de comunicaciones
• Interfaces de operador
• Expansiones de entradas y salidas

3.5.3. PLC Modular. Estos PLC se componen de un conjunto de elementos que conforman el
controlador final. Estos son:
• El Rack
• La fuente de alimentación
• La CPU
• Los módulos de entrada y salida

De estos tipos de PLC existen desde los denominados Micro-PLC que soportan una pequeña
cantidad de entradas y salidas, hasta los PLC de grandes prestaciones que permiten manejar miles
de entradas y salidas.

3.6. DONDE UTILIZAR UN PLC

- Actuadores distintos en un mismo proceso industrial


- Verificación de las distintas partes del proceso de forma centralizada
- Cuando el lugar donde se tiene que instalar el sistema de control dentro de la planta es
reducido
- Procesos de producción periódicamente cambiantes
- Procesos secuenciales

Si queremos ver un esquema general, tenemos el siguiente:


+24V
ENTRADAS

24V I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16

P LC
0V Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10Q11Q12Q13Q14Q15Q16

0V
SALIDAS

3.7. PROGRAMACION DE UN PLC

Programar es introducir una serie de instrucciones literales o gráficas para que el PLC las ejecute. El
programa está constituido por una serie de funciones lógicas que tratan la información recibida a las
entradas, para elaborar una información que permita activar las salidas. En los PLC´s
convencionales solo se reconocen dos estados o situaciones:

 Nivel lógico 1 (ACTIVADO, CERRADO)


 Nivel lógico 0 (DESACTIVADO, ABIERTO)

La programación del PLC puede desarrollarse de varias maneras:

 Directamente en el PLC.
 A través de una consola manual.
 A través de un computador.

3.8. LENGUAJES DE PROGRAMACION

En la actualidad cada fabricante diseña su propio software de programación, lo que significa que
existe una gran variedad de software, comparable con la cantidad de PLCs que hay en el mercado.

Es obvio, que la gran diversidad de lenguajes de programación da lugar a que cada fabricante tenga
su propia representación, originando cierta incomodidad al usuario cuando programa más de un
PLC.

3.8.1. La norma IEC 1131-3.

La Comisión Electrotécnica Internacional (IEC) desarrolló el estándar IEC 1131, en un esfuerzo para
estandarizar los Controladores Programables. Uno de los objetivos del Comité fue crear un conjunto
común de instrucciones que podría ser usado en todos los PLCs. Aunque el estándar 1131 alcanzó
el estado de estándar internacional en agosto de 1992, el esfuerzo para crear un PLC estándar
global ha sido una tarea muy difícil debido a la diversidad de fabricantes de PLCs y a los problemas
de incompatibilidad de programas entre marcas de PLCs.

El estándar IEC 1131 para controladores programables consiste de cinco partes, una de las cuales
hace referencia a los lenguajes de programación y es referida como la IEC 1131-3.

El estándar IEC 1131-3 define dos lenguajes gráficos y dos lenguajes basados en texto, para la
programación de PLCs. Los lenguajes gráficos utilizan símbolos para programar las instrucciones de
control, mientras los lenguajes basados en texto, usan cadenas de caracteres para programar las
instrucciones.

3.8.2. Lenguajes Gráficos

 Diagrama Ladder (LD)


 Diagrama de Bloques de Funciones (FBD)

3.8.3. Lenguajes Textuales

 Lista de Instrucciones (IL)


 Texto Estructurado (ST)

Aun teniendo en cuenta ventajas y desventajas, la utilización de PLC´s en automatización representa


muchas más ventajas con respecto a la lógica cableada sobre todo cuando se habla de
automatización de grandes procesos.

Vamos a concentrarnos en el tipo de lenguaje de programación que trabajaremos en este curso:

El lenguaje SCL es un lenguaje de programación de alto nivel (muy parecido a PASCAL y C). Con
este lenguaje se utilizarán sentencias que facilitan la labor de programación notablemente,
principalmente en los procesos medida y tratamiento de datos.

Con SIMATIC STEP S7 se pueden programarlos siguientes tipos de bloques.

 OB: Bloques de sistema


 FC: Funciones
 FB: Bloques de función
 DB: Bloques de datos
 UDT: Tipo de datos.

OB: Se denominan así a los bloques de organización. Existen diferentes bloques OB, cada uno de
ellos realiza una determinada función. El OB1 es el único bloque de ejecución cíclica y es ejecutado
por la CPU sin que nadie le invoque. Los demás OB tienen una función determinada y se ejecutan
cuando les corresponda, sin que nadie les llame desde ningún sitio del programa. Así, existen
bloques OB asociados a diferentes errores de la CPU, a alarmas, etc.

FC: Las FC son funciones. Son subprogramas (creadas por el programador o por otros
programadores en librerías) que realizan una función determinada dentro del proyecto. Se ejecutan
cuando son invocadas desde algún punto del programa (tienen la misma labor que las funciones en
lenguaje C). Pueden ser parametrizables o no. Las FC de librería (creadas por otros programadores)
no pueden ser leídas ni editadas.
FB: Se denominan así a los bloques de función. De forma general, puede decirse que estos bloques
desempeñan trabajan igual que las FC, con la diferencia de que en las FB se guarda la tabla de
parámetros en un módulo de datos. Esto tiene dos ventajas: una es que se posibilita el acceso a los
parámetros desde cualquier punto del programa; y la otra es que cada vez que se llame a la FB no
es necesario que se le den todos los parámetros. Los parámetros que no se introduzcan, tomarán los
valores por defecto de la última vez que se introdujeron.

DB: Se denominan así a los módulos de datos. En este tipo de bloques no se desarrollan programas.
Únicamente son tablas de datos en las que se puede leer y escribir (editar).

UDT: Son bloques en los que se definen el tipo de datos para poder utilizarlos en los bloques DB.

OJO: Para programar en SCL se requiere ante todo crear la tabla con las variables de entrada y
salida que se van a utilizar en la programación.

Vamos siempre a crear funciones (FC) en lenguaje SCL y estas funciones se van a ubicar dentro del
bloque main (OB1) y desde allí van a ejecutarse.

OPERACIONES DE ASIGNACION

Vamos a representar las entradas como PULSADORES y las salidas se representaran como
BOMBILLAS para los ejercicios a continuación.

Las siguientes ENTRADAS y SALIDAS son comunes a todas las estaciones.

“B_START”: I 1.0
“B-STOP” : I 1.1
“B_RESET”: I 1.3

“LUZ_Q1” : Q 1.2
“LUZ_Q2” : Q 1.3

Entonces, empecemos.

“LUZ_Q1”:= “B_START”;

Esto corresponde en lógica cableada a lo siguiente:


+24V 1

3
S1
4

0V

“LUZ_Q1”:= “B_START” AND “B_RESET”;


Esto corresponde en lógica cableada a lo siguiente:
+24V 1

3
S1
4
3
S2
4

0V

“LUZ_Q2”:= “B_START” OR “B_RESET”;

Esto corresponde en lógica cableada a lo siguiente:


+24V 1 2

3 3
S1 S2
4 4

0V

“LUZ_Q2”:= NOT “B_START”;

Esto corresponde en lógica cableada a lo siguiente:


+24V 1

1
S1

0V

“LUZ_Q1”:= (“B_START” OR “LUZ_Q1”) AND “B_STOP”;

Esto corresponde en lógica cableada a lo siguiente: (bloque de memoria que veremos más adelante)
+24V 1 2
3 3
S1 KA
4 4

1
S0

A1
KA
A2
0V

OPERACIONES CON BITS. INSTRUCCIONES BINARIAS

La operación más sencilla con bits es la de utilizar un contacto (entrada E) para activar, por ejemplo,
un relé (salida A).

IF ("B_START" = 1) THEN
"LUZ_Q1":=1;
ELSE
"LUZ_Q1":=0;
END_IF;

Esto corresponde en lógica cableada a lo siguiente:

+24V 1

3
S1
4

0V
Para este sencillo programa se ha utilizado la sentencia de control: IF-THEN ELSE-END_IF. Si
observamos con detenimiento es un poco complejo de escribir para ser una expresión tan sencilla,
pero puede ser muy útil en otras aplicaciones.

También pueden manejarse IF anidados como se observa en el siguiente ejemplo.

IF ("B_START" = 1) THEN
IF ("B_RESET" = 1) THEN
"LUZ_Q1":=1;
ELSE
"LUZ_Q1":=0;
END_IF:
END_IF;

Si se requiere hacer preguntas múltiples, se pueden utilizar IF-THEN anidados dentro de una misma
estructura.

IF "B_START” THEN
"LUZ_Q1":=1;
ELSIF ("B_RESET" THEN
"LUZ_Q2":=1;
ELSE
"LUZ_Q1":=0;
"LUZ_Q2":=0;
END_IF;

El concepto básico que debe entenderse con claridad para el desarrollo de automatismos tanto en
lógica cableada como en lógica programada es el concepto de BLOQUE DE MEMORIA.

Un bloque de memoria, en programación SCL, se puede desarrollar de la siguiente manera:

IF ("B_START" = 1) THEN
"LUZ_Q2":=1;
END_IF;
IF ("B_RESET" = 1) THEN
"LUZ_Q2":=0;
END_IF;

Programa ejemplo:

Simular el automatismo ENCENDER/APAGAR para una LUZ INDICADORA que pueda ser
encendida desde cualquiera de dos puntos y apagada desde un punto.

IF (("B_START" = 1) OR ("B_RESET" = 1)) THEN


"LUZ_Q1”:= 1;
END_IF;
IF NOT “B-STOP” THEN
"LUZ_Q1”:= 0;
END_IF;

Esto corresponde en Lógica cableada a lo siguiente:

+24V 1 2 3

3 3 3
S1 S2 KA
4 4 4

1
S3

2
1
S4

A1
KA
A2
0V

3
Cuando la sentencia IF THEN no está acompañada del ELSE se convierte en una función SET. Esto
significa que se activa la salida y esta permanecerá así hasta que en otro punto del programa exista
“algo” (RESET) que se desactive lo que anteriormente fue activado.

En SCL a las marcas se les puede asociar el estado de una variable utilizando también la sentencia
de control IF-THEN-ELSE_IF:

IF ("B_START" = 1) THEN
"Memoria”:= 1;
END_IF;
IF ("Memoria" = 1) THEN
"LUZ_Q2”:= 1;
END_IF;
IF ("B_RESET" = 1) THEN
"LUZ_Q2”:= 0;
“Memoria”:=0;
END_IF;

Donde la etiqueta “Memoria” está asociada a una determinada a la marca (posición de memoria):

Memoria Bool M0.0

Esto no tiene representación práctica en lógica cableada.

Una memoria es una “salida” que no es física. Se puede utilizar dentro de la lógica del programa
para hacer asignaciones temporales o bloques de memoria.

CONTADORES

En programación mediante SCL, al igual que en los otros lenguajes de programación, se pueden
implementar tres tipos de funciones para contadores:

•S_CU (ascendente)
•S_CD (descendente)
•S_CUD (ascendente-descendente)

Los tipos de datos para los parámetros de los contadores ASCENDENTES-DESCENDENTES son:

Parámetro Declaración Tipo de datos Descripción


CU Input BOOL Entrada de contaje
ascendente
CD Input BOOL Entrada de contaje
descendente
R Input BOOL Entrada de reset
PV Input Enteros Valor con el que se
activa la salida Q.
QU Output BOOL Estado del
contador
ascendente
QD Output BOOL Estado del
contador
descendente
CV Output Enteros Valor actual de
contaje

En lenguaje SCL los contadores son muy sencillos de implementar. Con el siguiente ejemplo se
pretende programar un contador integrador (S_CU), y que también se pueda inicializar a cero cada
vez que así se desee. En el ejemplo consideraremos un bloque contador CTU (CEI).

"Contador". CTU (CU:= "B_START",


R:= "B_RESET",
PV:= 10,
Q=> “LUZ_Q1”,
CV=>"DONDE_VAMOS");

DONDE_VAMOS INT %M1

Esto corresponde en lógica cableada a lo siguiente:

+24V 1 4 5

3 3 3
S1 S2 KC
4 4 4
2 3

A1 R1
KC 10
A2 R2

0V

TEMPORIZADORES

Los temporizadores (T) son elementos de programación cuya salida (0 o1) está en función de la
entrada y de la temporización preestablecida. Existen muchos tipos de temporizadores pero lo más
empleados son el temporizador al trabajo (TON) y el temporizador al reposo (TOF). Sobre todo el
primero es de amplia aplicación.

“Temporizador_1”. TON (IN: = “B_START”,


PT: = T#5s,
Q=> “LUZ_Q2”);

Esto corresponde en lógica cableada a lo siguiente:


+24V 1 2

3 3
S1 KT
4 4

A1
KT 5
A2

0V

“Temporizador_2”. TOF (IN: = “B_START”,


PT: = T#5s,
Q=> “LUZ_Q2”);

Esto corresponde en lógica cableada a lo siguiente:

+24V 1 2

3 3
S1 KT
4 4

A1
KT 5
A2
0V

Ahora exponemos un ejemplo un poco más elaborado y que incluye un temporizador al trabajo y una
memoria.

IF "B_START” THEN
"Memoria”:= 1;
END_IF;

“Temporizador_4”. TON (IN: = “Memoria”,


PT: = T#5s,
Q=> “LUZ_Q1”);
IF "B_RESET" THEN
“Memoria”:=0;
END_IF;
INSTRUCCION CASE

Con la instrucción CASE se ejecuta uno de los varios grupos de instrucciones en función del valor de
una expresión.

La forma general de esta instrucción es la siguiente:

CASE “valor de prueba” OF

“Valor1”: Instrucciones1;
“Valor2”: Instrucciones2;
.
.
.
“ValorN”: InstruccionesN;

ELSE

Instrucciones;

END_CASE

El “valor de prueba” es indispensable y siempre será un valor numérico ENTERO.

“Valor1”, ….. “ValorN” son indispensables y corresponde a los diferentes valores que puede tomar
“valor de prueba”. Si este valor corresponde con el de “valor de prueba” se ejecutarán únicamente
las instrucciones correspondientes a ese valor.

La instrucción ELSE es opcional y únicamente se ejecutará si “valor de prueba” no coincide con


ninguno de los valores principales.
Ejemplo.

CASE “PASOS” OF

0: IF “B_START” THEN
“LUZ_Q1”:= 1;
“PASOS”:= 2;
END_IF;

2: IF “B_RESET” THEN
“LUZ_Q2”:= 1;
“PASOS”:= 4;
END_IF;

4: IF “B_START” THEN
“LUZ_Q1”:= 0;
“PASOS”:= 6;
END_IF;

6: IF “B_RESET” THEN
“LUZ_Q2”:= 0;
“PASOS”:= 0;
END_IF;

END_CASE;

Ejemplo.
+24V 1

3 3
START_____ K
4 4

T1
2
2

A1 A1
K T1 5
A2 A2
0V

2 1

CASE “PASOS” OF

0: IF “B_START” THEN
“LUZ_Q1”:= 1;
“PASOS”:= 5;
END_IF;
5: “T1”. TON (IN: = TRUE,
PT: = T#5s);
“PASOS”:= 10;

10: IF NOT “T1.Q” THEN


“T1”.TON (IN: = FALSE,
PT: = T#5s);
“LUZ_Q1”:= 0;
“PASOS”:= 0;
END_IF

END_CASE;

Ejemplo. Analicen para cada una de sus estaciones y escojan un actuador en el cual puedan
identificar la información del plano.
A0 A1

4 2

A+
5 3
1

CASE “PASOS” OF

0: IF “B_START” THEN
“BOBINA A+”:= 1;
“PASOS”:= 5;
END_IF;

5: IF “SENSOR A1” THEN


“BOBINA A+”:= 0;
“PASOS”:= 0;
END_IF;

END_CASE;

Esta instrucción va a ser de MUCHISIMA ayuda para desarrollar los automatismos que requieren
para poner en funcionamiento cada una de sus estaciones.
Ejemplo. Para probar lo anterior vamos a desarrollar una secuencia con dos actuadores neumáticos
de acuerdo con el siguiente plano.
A0 A1 B0 B1

4 2 4 2

Y1+ Y2+
5 3 5 3
1 1

Se desea que los actuadores del diagrama realicen la siguiente secuencia (A+, B+, A-, B-) después
de accionar el pulsador B_START.

CASE “PASOS” THEN

0: IF “B_START” THEN
“SOLENOIDE_Y1+”:= 1;
“PASOS”:= 5;
END_IF;

5: IF “SENSOR_A1” THEN
“SOLENOIDE_Y2+”:= 1;
“PASOS”:= 10;
END_IF;

10: IF “SENSOR_B1” THEN


“SOLENOIDE_Y1+”:= 0;
“PASOS”:= 15;
END_IF;

15: IF “SENSOR_A0” THEN


“SOLENOIDE_Y2+”:= 0;
“PASOS”:= 0;
END_IF;

END_CASE;
Ejemplo. Para probar lo anterior vamos a desarrollar una secuencia con dos actuadores neumáticos
de acuerdo con el siguiente plano.
A0 A1 B0 B1

2 2 4 2

A+ A- B+
1 3 1 3 5 3
1

Se requiere que los actuadores se muevan con una secuencia determinada (para nuestro caso en
particular: A+, B+, Espera de 5 segundos, A-, B-). La secuencia se inicia al accionar el botón
B_START.

Primero, haremos una descripción de cada ENTRADA y cada SALIDA anotando que función
desempeña:

ENTRADAS:

“B_START” : Pulsador para inicio de ciclo.


“SENSOR_A0” : Sensor carro del actuador A está a la izquierda.
“SENSOR_A1” : Sensor carro del actuador A está a la derecha.
“SENSOR_B0” : Sensor vástago del actuador B está retraído.
“SENSOR_B1” : Sensor vástago del actuador B está extendido.

SALIDAS:

“SOLENOIDE_A+” : Solenoide que genera desplazamiento del carro de A


Hacia la derecha.
“SOLENOIDE_A-” : Solenoide que genera desplazamiento del carro de A
Hacia la izquierda.
“SOLENOIDE_B+” : Solenoide que genera la extensión del vástago de B.

Entonces, ahora comenzamos a desarrollar nuestra secuencia utilizando una instrucción CASE y las
demás herramientas que hemos aprendido hasta ahora.

CASE “PASOS” THEN

0: IF “B_START” AND “SENSOR_B0” THEN


“SOLENOIDE_A+”:= 1;
“PASOS”:= 5;
END_IF;
5: IF “SENSOR_A1” THEN
“SOLENOIDE_B+”:= 1;
“PASOS”:= 10;
END_IF;

10: “TIEMPO_1”. TON (IN: = TRUE,


PT: = 5s);
“PASOS”:= 15;
END_IF;

15: IF “TIEMPO_1”.Q THEN


“SOLENOIDE_A+”:= 0;
“SOLENOIDE_A-”:= 1;
“TIEMPO_1”. TON (IN: = FALSE,
PT: = 5s);
“PASOS”:= 20;
END_IF;

20: IF “SENSOR_A0” THEN


“SOLENOIDE_B+”:= 0;
“SOLENOIDE_A-”:= 0;
“PASOS”:= 0;
END_IF;

END_CASE;

También podría gustarte