CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
UNIVERSIDAD TECNOLÓGICA DE PEREIRA
PROGRAMA DE TECNOLOGIA ELÉCTRICA
ASIGNATURA:
CONTROL DE PROCESOS INDUSTRIALES
TEMA:
“PROGRAMACIÓN AVANZADA CON EL AUTÓMATA PROGRAMABLE S7-1200”
POR:
MSC. SIGILFREDO ARREGOCÉS CAMPO
PROFESOR TITULAR UTP
PEREIRA, RISARALDA, DICIEMBRE DE 2016
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
TIPOS DE PROGRAMACION DE LOS AUTOMATAS PROGRAMABLES S7-300, S7-1200, S7-1500
Los automatismos requeridos en las aplicaciones de controladores lógicos programables
evolucionan aceleradamente requiriendo más capacidad de memoria de los controladores lógicos
programables para su implementación, por lo tanto los conceptos de programación lógica deben
evolucionar para mejorar el código a través de funciones:
Existen desde el punto de vista tres conceptos de programación para los controladores lógicos
programables o plc.
Programación lineal
Programación dividida o estructurada en áreas
Programación estructurada
La programación lineal utiliza un módulo de programación, el OB1, bloque o módulo de
organización, este bloque corre cíclicamente y es bloque principal de programación, existen
diversos bloques o módulos de programación OB’s en los S7-300, S7-400, S7-1200, S7-1500,
bloques que se pueden llevar desde el modulo o bloque Main OB1, la siguiente FIGURA 1 nos
muestra cómo operan los bloques OB’s. Todos los programas desarrollados en los autómatas
programables simatic deben llevar almenos un bloque o modulo principal OB1.
FIGURA#1
Los S7 poseen otros tipos de módulos como los FC’S o function call, que pueden ser llamados por
un OB1 o por cualquier otro FC, si se requiere bases de datos o data block, estas pueden ser
llamados por los FC’S como se puede observar en la siguiente Figura 2.
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
FIGURA#2
El ejemplo siguiente figura3 ilustra el concepto de programación lineal y de programación
estructurada en áreas.
FIGURA#3
En este ejercicio se controlan 2 motores, pero en la medida que incrementa el número de motores
el código aumenta y se dificulta su depuración en caso de error.
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
PROGRMACION ESTRUCTURADA EN AREAS
Utiliza módulos o bloques FC’S con este tipo de módulos se simplifica el programa agrupando
parte de los módulos que representan o módulos de funciones function call figura4
FIGURA#4
Lo que se puede observar se han creado dos FC’S, uno para controlar el motor 1 y el otro para
controlar el motor 2, si se requiere controlar 30 motores se requieren 30 FC’S, lo que ocupa mucha
capacidad de memoria y aumentaría la capacidad de errores.
La siguiente FIGURA 5 nos muestra la estructura del control del proceso de programación
estructurada en áreas con tres bases de datos globales (DB2, DB4, DB8) y la forma, como operan
los módulos o bloques de función FC’S y como se integran al bloque principal MAIN (OB1)
FIGURA#5
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
PROGRAMACION ESTRUCTURADA
La programación estructurada solo utiliza un solo módulo de función FB o function block, con un
módulo o base de datos adjunto o de instancia que se llama en forma jerárquica con la base de
datos de cada subproceso, en cada llamado del FB programado se transfieren a un mínimo
programa, desarrollado con el parámetro en el FB escogido.
BLOQUES DE FUNCION FB’S
Son bloques programables. Un FB es un bloque con memoria y dispone de un bloque de datos
(bloque de datos de instancia en un FB transfieren parámetros memorizados en el DB de
instancia), lo mismo que las variables estáticas stat. Las variables temporales se memorizan en la
fila de datos lineales.
Los datos memorizados en el DB de instancia no se pierden al concluir el tratamiento del FB lo
contrario para los datos locales,
TABLA DE DECLARACIONES DE VARIABLES
Los FB’S tienen parámetros formales.
Un parámetro es una variable que permite cambiar de forma o intercambiar valores variables. Los
parámetros pueden ser temporales, estáticos o formales.
Un FB tiene parámetros formales: IN, OUT, IN-OUT y existen parámetros lineales que pueden
intercambiarse por parámetros formales.
Cuando se invoca a un FB o un FC automáticamente se carga una tabla de parámetros formales.
CREACION DE UN FB
-Insertar un FB
- Crear un bloque de datos DB y asignarlo como bloque de datos de instancia y asociarlo al FB
Al asociar el DB al FB, el DB copia la tabla de variables del FB llamando de un FB:
La instrucción call FBn,DBn llama al bloque FBn en forma incondicional si hemos parametrizado un
FB, con sus parámetros in,out,in-out, creando en el bloque invocante se introduzca la función call
FBm,DBm automáticamente se crea, una tabla de parámetros formales
EJ: Declaración de variable de un FB
Al abrir un FB aparecerá la siguiente tabla de parámetros, para asignar a las variables del proceso
Dir Declaración Nombre Tipo V/r Inicial
0.0 IN MARCHA
2.0 OUT
4.0 IN-OUT BOMBA
6.0 STAT TIEMPO S5TIME S5T#20s
8.0 TEMP
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Cuando se parametriza un FBn los datos de la tabla de parámetros quedan guardados en el DBn de
instancia.
La siguiente FIGURA 6 Y FIGURA 7 muestra la lógica de la programación del control de un proceso
estructurado en áreas y en programación estructurada
FIGURA 6 FIGURA 7
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Como se puede apreciar en la figura anterior, solo se requiere un módulo de funciones FB1 o
funtion block 1 para ejecutar las operaciones de cada subproceso: Encendido y apagado de la
bomba1, encendido y apagado de la bomba2, etc.
Cada vez que se hace un llamado del FB1 con un DB diferente a su DB de instancia, en nuestro
caso el FB1, cada vez que se haga un llamado, el sistema responde al usuario con un llamado a que
asigne variables locales como: nivel1, nivel2, bomba1 a parámetros como nivel, condición, bomba,
etc.
CALL FB 1, DB2
Bomba :=
Nivel :=
Condicion :=
Tiempo :=
En este caso, bomba, nivel, condición y tiempo son parámetros a los que se deben asignar
variables del proceso que son diferentes para cada uno de los subprocesos que se le deben asignar
a cada uno de los parámetros.
La siguiente FIGURA 8 nos muestra la definición de la jerarquía estructurada para la producción de
los 3 productos del enunciado principal de este capítulo.
FIGURA#8
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
El programa de lógica estructurada en módulos de funciones FB’S o function blocks utiliza la
siguiente estructura:
1) Se crean las bases de datos del proceso
2) Se parametriza, se asigna a los parámetros del FB las variables locales del proceso
3) Se crea un programa en el FB escogido con parámetros genéricos
4) Se establece un llamada desde el OB1(MAIN) jerárquico del módulo de funciones FB
escogido en las especificaciones del proceso
BASES DE DATOS:
Las bases de datos, son áreas de memoria para almacenar datos del usuario final de los
procesos controlados por controladores lógicos programables. Existen dos tipos de bases de
datos:
Bases de datos globales, son aquellas bases de datos a la cual pueden acceder todos
los bloques.
Bases de datos de instancia, son aquellas bases de datos asociadas a módulos de
función FB.
La figura #9 nos muestra la estructura lógica del llamado de una base de datos global desde
un módulo secuencial OB1 y desde módulos de función FC´S y FB´S.
Las bases de datos globales sirven para depositar datos del usuario como se puede observar
en la figura#9, a través de los módulos FB´S, FC´S y OB´S se pueden acceder o escribir
datos en las bases de datos.
S7-1200, S7-1500
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
La función MOVE nos permite transferir datos de la base de datos a la memoria temporal
(nube)
En lista de instrucciones se requiere dos instrucciones para subir a la memoria temporal
(nube)
EJEMPLO: S7-300, S7-400
Cargar el dato de la dirección W0 a la memoria temporal MW10 (nube), de la base de datos
creada con el registro de datos DB2.
L DB2.DBW0
T MW10
U DB2.DBX.7 //Leer en el registro de resultado lógico el bit 7 de la base de datos creada
con el registro de datos DB2
Figura#9
Una base de datos no tiene instrucciones, sino que es una tabla de datos que construida con
una estructura, la figura#10 nos muestra esta estructura.
Figura#10
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
CREACIÓN DE UNA BASE DE DATOS EN UN CONTROLADOR LÓGICO
PROGRAMABLE S7-300 Y S7-1200
Una base de datos se puede insertar generando un nuevo objeto, en el controlador lógico
programable S7-300 se le puede asignar un nombre simbólico p se puede direccionar en
forma absoluta. En los controladores lógicos programables S7-1200, solo se admite
direccionamiento simbólico de las bases de datos.
Los datos a direccionar en una base de datos pueden ser de los siguientes tipos:
Bool: [false] o [true]
Byte: formato: B#16#A0
Word: W#16#A0
DWord: DW#16#FFFAF2D, permite introducirlo de la forma Z#1001… pero lo
traduce a W#16#...
INT: número entre 32768 y 32767.
DINT: número entre 32768 y 2147483647 y entre 32769 y 2147483648.
REAL: número entre (1.000000e+000)
S5TIME: valor máximo para el S7-300 : 9990s
TIME: máximo T#24D20H:31M:23s 647ms
DATE: D2000-1-24 (max D#2168-12-31)
TIME_OF_DAY: max:TOD#23:59:59:999
CHAR: formato: “C”, un carácter ocupa un byte
ARRAY: Matrices
STRINGS [N° de caracteres]: Cadena de caracteres entre comillas
Las direcciones se las asigna el sistema al terminar de introducir una declaración, el valor
inicial se adapta por el sistema como valor actual de la variable.
En los S7-300 se admiten comentarios de hasta 80 caracteres.
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Aplicación de la Programación estructurada a un proceso industrial
OBJETIVO:
Controlar de un proceso industrial con tres bombas y un agitador para la producción de 3
productos con diferentes tiempos de procesamiento de 2 subproductos y un tiempo de
agitación, el tiempo de operación de la Bomba 1, Bomba 2 y del agitador generan cada
producto, cada vez que se genere un Batch de producción se debe evacuar utilizando la Bomba
3; La cual se enciende si el nivel S3 está activo. El volumen del subproducto A, se
considera transferido al tanque de agitación por la bomba 1si ha transcurrido el tiempo
establecido de producción y si está el nivel S1 activo y se activa el sensor S2, el volumen
del subproducto B se considera transferido al tanque de agitación por la bomba 2, si ha
transcurrido el tiempo establecido de producción y si está el nivel S2 activo y se activa el
sensor S3. FIGURA11
ESQUEMA DEL PROCESO DE MEZCLA:
FIGURA#11
PROCEDIMIENTO:
1) Se identifican las variables de cada elemento del proceso a controlar.
2) Subproducto A, subproducto B y agitador.
3) Se crea una base de datos global para cada subproceso (mezcla), en este caso tres
bases de datos globales: Base de datos_1 [DB1], Base de datos_2 [DB2], Base de
datos_3 [DB3], y una Tabla de variables.
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
4) Se establece la lógica para transferir los datos a la memoria temporal (NUBE).
5) Se inserta o se crea un módulo FC para transferir los datos de cada uno de las bases
de datos creadas a las respectivas memorias escogidas para programar los
temporizadores que controlan a cada una de las bombas y del agitador.
6) Se establece la lógica y jerarquía de cada subproceso.
7) Se programa en el módulo secuencial la secuencia de llamado de cada uno de los
FC´s, de acuerdo a la jerarquía establecida.
Base de datos_1 [DB1]
Base de datos_2 [DB2]
Base de datos_3 [DB3]
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Tabla de variables
Bloque_1 [FC1]
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Bloque_2 [FC2]
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Bloque_3 [FC3]
MAIN [OB1]
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Ejemplo de aplicación de programación estructurada
Solo se requiere un código para el control del proceso, el código requerido es idéntico y es
reutilizable; solo se requiere un FB para todos los actuadores del proceso (Por ejemplo un
proceso con 20 bombas, no requiere un código para cada bomba; es decir, 20 programas).
Solo se requiere un código idéntico para el control de todas las bombas, el código es un
programa con parámetros formales que se intercambian por variables en cada llamado del
FB escogido, en nuestro caso para el control del proceso con 2 bombas como se describe en
la siguiente figura12:
FIGURA#12
Se requiere mezclar dos productos (Producto 1 a través de la bomba 1, Producto 2 a través
de la bomba 2), con un tiempo de agitación dado por el tiempo de operación del motor, el
operación de agitación debe ser programada en un FC debido a que no corresponde a la
misma estructura del código para el control de las bombas; es decir, un programa aparte que
debe ser llamada desde el OB. El programa que realiza el control de este proceso es el
siguiente.
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Tabla de variables
Bloque_1 [FB1]
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Bloque_2 [FC1]
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Bloque_Main [OB1]
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Aplicación de las bases de datos al control de un brazo neumático
con un controlador lógico programable s7-30
Que permite controlar por el usuario final los tiempos de espera de reposo y de avance
TAREA 1
Desarrollar el código en lista de instrucciones, utilizando saltos y programación
estructurada en áreas para el s7-300, para el control de un brazo neumático controlado por
una electroválvula 5/3 biestable como se observa en la FIGURA 13, de tal forma que el
usuario final pueda seleccionar los tiempos de espera del proceso.
FIGURA#13
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
TAREA 2
Base de datos_1 [DB1]
Base de datos_2 [DB2]
NOTA: El tiempo del subproducto C es 50s
Desarrollar código en programación estructurada en áreas y en programación estructurada
s7-1200 para controlar el proceso
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
APLICACIÓN DE PROGRAMACION ESTRUCTURADA A EL CONTROL DE UN MOVIL AVG
Se genera la siguiente trayectoria:
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
TAREA 3
Desarrollar en programación estructurada en áreas y en programación estructurada s7-1200
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Sistema numero 1
Sistema numero 2
TAREA 4
CONTROL DE PROCESOS INDUSTRIALES
ING MSC SIGILFREDO ARREGOCÉS
PROFESOR TITULAR
Se desea controlar la operación de un motor trifásico utilizando un variador de velocidad
(Altivar28), con las siguientes entradas digitales (LSP, HSP, DERECHA, IZQUIERDA),
cada entrada digital (LSP, HSP) con la entrada digital de derecha o izquierda genera una
velocidad en un sentido de giro. Esto me permite generar diferentes perfiles de velocidad
para dos sentidos de giro.
Desarrollar el código en contactos s7-1200 para controlar el motor trifásico de 1 HP y con
un variador de velocidad.
De tal forma que se puedan escoger 4 perfiles de velocidad en cualquiera de los sentidos de
giro utilizando programación estructurada en áreas.
Velocidad LSP-HSP
0 0 10 Hz
0 1 20 Hz
1 0 30 Hz
1 1 40 Hz