Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación de
Autómatas Simatic
Introducción
La programación de un autómata sigue las reglas del álgebra de Boole que hemos visto en el
Capítulo 3 y sus instrucciones básicas harán referencia a las puertas lógicas.
En STEP 7 podemos representar o realizar en programa de tres formas distintas, éstas son:
44
adaptar el esquema a este formato mediante unas reglas muy simples e introducir el programa
en el autómata.
• FUP: Esquema de funciones. El programa se realiza a partir del esquema obtenido por la
tabla de Karnaugh y realizado con puertas lógicas. Se transforma en los símbolos equivalentes
electrotécnicos y queda listo el programa. Este método de programación está poco difundido,
tan sólo en algunos modelos de autómatas concretos (por ejemplo, el LOGO!).
45
1. Representación de entradas y salidas
Como un autómata está formado, principalmente, por una serie de entradas por donde recibe
la información y otras salidas por donde envía las señales, debemos establecer la relación
existente entre las entradas y salidas del autómata programable.
Una entrada será cualquier elemento físico que puede enviar una señal eléctrica al autómata,
por ejemplo: pulsadores, interruptores, termostatos, presostatos, sondas de nivel, células
fotoeléctricas, etc.
Por otra parte, una salida será cualquier elemento físico que pueda ser activado o desactivado
por el autómata, por ejemplo: relés y contactores que se encargarán de activar motores,
lámparas, bocinas, etc.
46
Para designar una entrada utilizamos, en formato internacional, la letra “I” de input o, “E” de
eingang (entrada en alemán). Para las salidas utilizamos una “Q” de output o “A” ausgang
(salida en alemán). Se utiliza la Q en lugar de la O para no confundirla con el 0.
Después del signo de entrada o salida debemos poner un número, este número estará formado
por un byte: 0, 1, 2, ... y un bit de 0 a 7.
Para un determinado programa podemos tomar el orden de entradas y salidas que deseemos,
no es necesario que tengan que seguir un orden, por ejemplo, podemos asignar como entradas
las I 0.0, I 0.3 y I 1.0, o cualquier otra. Tampoco existe ninguna relación el orden que asignemos
a las entradas con las salidas y viceversa, es decir, que si el pulsador de marcha de un sistema
está asignado a la entrada I 0.0 la salida no tiene porqué ser la Q 0.0, podemos poner la que
queramos.
47
2. Programación de contactos de apertura y cierre
Esta es una particularidad de la programación de autómatas que nos permite considerar una
señal de entrada como contacto abierto o cerrado según nos convenga.
48
Una instrucción en STEP 7 se compone de una parte llamada operacional, que describe la
función a realizar (los tres símbolos KOP de la figura) y otra llamada operando, en la que se
indicará la entrada o salida correspondiente.
49
4.2. Relés incompatibles pasando por paro
50
5. Programación de temporizadores S7-1200
El TON (temporizador de retardo a la conexión) empieza a contar el tiempo cuando recibe una
señal por la entrada del temporizador (señal de habilitación). Este temporizador se borra en el
momento en que se desactive dicha señal.
El primer ejemplo es una aplicación del temporizador TON. En este ejemplo se activa un
temporizador tipo TON y al cabo del tiempo prefijado 10 segundos se activa la salida Q0.0
(figura).
51
Por último, el temporizador de tipo TOF actúa sobre la salida Q0.0 en el momento que se activa
la entrada I0.0; permanece activada la salida cuando la entrada pasa a cero, instante en que se
inicia el tiempo y, una vez que finaliza el tiempo, la salida Q0.0 pasa a cero (figura).
52
7. Programación de contadores
En S7-1200 existen tres tipos de contadores. El contador Contar Adelante (CTU) el contador
Contar Atrás (CTD) y el contador Contar Adelante/Atrás (CTUD).
El CTU (Contador Adelante) empieza a contar adelante a partir del valor actual cuando se
produce una señal en la entrada de contaje adelante. El contador se borra cuando se activa la
entrada de desactivación o cuando se ejecuta la operación desactivar (R).
El CTD (Contador Atrás) empieza a partir del valor prefijado y decrementará el valor hasta llegar
a cero. La salida estará siempre en 1 hasta el final del contaje que se pondrá a 0.
El CTUD (Contador Adelante/Atrás) empieza a contar adelante a partir del valor actual cuando
se produce una señal en la entrada de contaje adelante y empieza a contar atrás cuando se
produce un flanco creciente en la entrada de contaje atrás. El contador se borra cuando se
activa la entrada de desactivación o cuando se ejecuta la operación desactivas (R).
53
Ejemplo: Vamos a realizar un contador decremental desde 10. Se activará con la señal I0.0 y
decrementará con la entrada I0.1. Con la entrada I0.2 se reseteará el contador. Cuando llegue a
cero se activará la salida Q0.0, el resto del contaje estará activa la señal Q0.1:
8. Uso de marcas
En la mayoría de los procesos existen contactores que se utilizan como contactores auxiliares.
No tienen asignados ningún elemento de fuerza (motores, electroválvulas, etc.), sin embargo,
se utilizan como contactos para facilitar la automatización. Por ejemplo, en la figura el
contactor K1 asignado a la salida Q0.0 no activa ningún equipo eléctrico, sin embargo, la única
salida que nos interesa es la de la lámpara H1 asignada a la Q0.1. En estos casos, para no
utilizar estas salidas, podemos utilizar marcas, es decir, variables internas tipo memoria, que
para el funcionamiento normal del programa hará el mismo efecto y, además, nos ahorra
salidas para otras necesidades.
Para los autómatas SIMATIC a estas marcas se les nombra con la letra M seguido de un par de
números que designan la dirección de igual forma que para las entradas y las salidas, es decir,
estas marcas seguirán la numeración:
M 0.0, M 0.1, M 0.2,... M 0.7, M 1.0, etc.
54
Cada marca constará de un byte (0., 1., 2., etc.) y una dirección bit (de 0 a 7). Según esto el
programa KOP de la figura quedaría, cambiando la salida Q0.0 por M0.0 y conservando la salida
Q0.1, de la siguiente forma:
Al activar I0.0 la salida Q0.0 se activará y permanecerá activada, aunque se desactive I0.0.
Para desactivar una salida o marca activada con Set utilizaremos Reset:
55
10. Estructura del Programa
Los ejemplos que hemos visto son programas lineales, es decir, todo
el programa se encuentra en un módulo (OB1 en el S7-1200) con
todas las instrucciones seguidas. Este modelo se asemeja a un
esquema de relés, que se reemplaza por un controlador lógico
programable. La CPU procesa las instrucciones individuales y da un
resultado de entradas y de salidas en cada ciclo del PLC.
En este caso el programa está dividido en bloques, cada bloque solo contiene el programa para
resolver una tarea parcial. Es posible dividir aún más el programa en segmentos dentro de un
bloque. Podemos generar plantillas de segmento para segmentos del mismo tipo. En este caso
el bloque de organización OB 1 contiene instrucciones que llaman a los otros bloques en una
secuencia definida.
Por último, un Programa Estructurado contiene bloques con parámetros, llamados bloques
parametrizables. Estos bloques se diseñan para que puedan usarse de forma universal. Cuando
56
llamamos a un bloque parametrizable, le damos los parámetros actuales (las direcciones
exactas de entradas y salidas, así como los valores de los parámetros). Ejemplo:
Los bloques de programa, que son responsables del control de bombas especiales, llaman al
bloque “bomba” y le dan información sobre qué bomba va a ser controlada y con qué
parámetros.
57
Funciones FC
- Una función (FC) contiene el programa de trabajo, éste puede dividirse en diversas
funciones que realizan tareas distintas. Los FC se numeran para cada función distinta:
FC1, FC2, FC3, etc. La ejecución se hará desde las llamadas del programa OB. Los
bloques FC no tienen un área de memoria asignada para su ejecución; los datos locales
del FC se pierden después de cada ejecución. Las Funciones de Sistema (SFC) son
funciones integradas en el sistema operativo de la CPU.
Bloques de función FB
- Básicamente, los bloques de función ofrecen la misma funcionalidad que las funciones
FC. La diferencia radica en que los bloques de función necesitan un área de memoria
que se llamará a través de un bloque de datos (DB). Estos bloques son parametrizables,
es decir, las variables con las que van a realizar la función (entradas, salidas,
temporizadores, …) varían en cada llamada. Como resultado, los bloques de función
están concebidos para tareas muy repetitivas o funcionalidades complejas, como tareas
de control en lazo cerrado. Los Bloques de Función de Sistema (SFB) son funciones
parametrizables integradas en el sistema operativo de la CPU.
Bloques de datos DB
- Los bloques de datos (DB) son áreas de datos del programa de usuario en las que los
datos son distribuidos de forma estructurada y pueden ser utilizados para almacenar
cualquier variable que pueda ser utilizada en un programa.
58
11. Ejemplo de programa con FC1 y FC2
Supongamos que deseamos realizar un programa que al accionar la entrada I0.1 se active la
salida Q0.0 y un temporizador, que al cabo de 4 segundos active la salida Q0.1. Cuando se
active la entrada I0.2 se activarán las salidas Q0.2 y Q0.3 simultáneamente. Al pulsar el I0.0 se
desactivarán todas las salidas.
Realizaremos un programa FC1 para la primera parte y un programa FC2 para la segunda. El
programa para el FC1 será:
59
Por último, realizamos el programa OB1 con las llamadas a los dos subprogramas:
60
12. Ciclo de la CPU
La CPU comprueba el estado de las entradas y las salidas en cada ciclo. Existen áreas de
memoria específicas en las que se almacenan los datos binarios de los módulos: la PAE y la
PAA. El programa accede a estos registros durante el procesamiento.
PAE
- La tabla de imagen de proceso de entrada se encuentra en el área de memoria de la
CPU. Allí se almacena el estado de señal de todas las entradas.
PAA
- La tabla de imagen de proceso de salida contiene los valores de salida resultantes de la
ejecución del programa. Estos se envían a las salidas reales (Q) al final del ciclo
Programa de Usuario
En cada ciclo, cuando se comprueban las entradas en el programa de usuario, por ejemplo, con
la instrucción I2.0, se evalúa el último estado de señal desde la PAE. Esto garantiza la llegada
del mismo estado de señal cuando realizamos consultas múltiples de la entrada dentro de un
ciclo.
Arranque
La CPU lleva a cabo un rearranque completo cuando alimentamos o cuando pasamos de STOP -
61
-> RUN. Durante este rearranque se ejecuta el OB100, el cual podremos programas para
realizar funciones de arranque concretas, además, el sistema operativo borra las marcas,
temporizadores y contadores no remanentes, borra la pila de interrupciones y la pila de
bloques, resetea todas las alarmas de proceso y diagnóstico almacenadas e inicia el tiempo de
vigilancia del ciclo.
Ciclo de Scan
El funcionamiento cíclico de la CPU se compone de tres secciones principales, como se muestra
en el diagrama superior:
- La CPU comprueba el estado de las señales de entrada y actualiza la tabla de imagen de
proceso de entrada.
- Ejecuta el programa de usuario con sus respectivas instrucciones.
- Escribe los valores de la tabla de imagen de proceso de salida en los módulos de salidas.
Ejemplos resueltos:
1. En un paso de cebra se encuentra un semáforo para peatones. Tras el encendido del
semáforo quedará en la posición
inicial de “verde coches” y “rojo
peatones”. Mediante la actuación
del pulsador se deberá desarrollar
la conocida secuencia de "rojo"
para vehículos y "verde" para
peatones y viceversa. Seleccionar
para este ejemplo los tiempos de
manera que a los conductores de
vehículos les corresponda una fase
amarilla de tres segundos y a la
fase roja una duración de dieciséis
segundos.
62
Realizamos la tabla de entradas y salidas:
ENTRADAS SALIDAS
Encendido I 0.0 Verde coches Q 0.0
Pulsador I 0.1 Ámbar coches Q 0.1
Rojo coches Q 0.2
Verde peatones Q 0.3
Rojo peatones Q 0.4
El encendido activará una marca (M 0.0) que se pondrá en 1 con una instrucción de Set y
esta marca encenderá el semáforo en la posición inicial.
Al pulsar en el botón S1 para cruzar pondremos a 1 otra marca (M 0.1) que apague la luz
verde de coches y active el ámbar, además, se iniciará el temporizador de 3 segundos.
Pasado el tiempo se anulará la marca inicial (M 0.0) y se activará otra marca para el verde
de peatones y rojo de coches.
63
64
2. Controlar la grúa representada en la figura para que realice los ciclos representados en la
dicha figura. Partiendo de la posición de reposo (la representada en la figura) realiza el ciclo 1,
hasta llegar a la posición 2, donde permanecerá un tiempo determinado antes de realizar el
ciclo número 2.
El sistema cuenta con un interruptor de control o arranque que tendrá que ser activado, cada
vez que deseemos que la grúa realice los dos ciclos.
ENTRADAS SALIDAS
Inicio I0.0 Sube Q0.0
FC1 I0.1 Baja Q0.1
FC2 I0.2 Dcha Q0.2
FC3 I0.3 Izda Q0.3
FC4 I0.4
65
66
67