Está en la página 1de 101

Mantenimiento de Instalaciones

Térmicas y de Fluidos

2015
Autómatas Programables
Siemens S7-1200

Sistemas automáticos en las María Pérez / Martín Salamanca


instalaciones CIPFP CANASTELL – San Vicente
(Alicante)
Edición marzo de 2015
ÍNDICE
1. INSTALACIÓN Y MANEJO DE SIMATIC S7-1200 ............................................................ 1
1.1. ELEMENTOS IMPORTANTES DE LA CPU ................................................................ 4
1.2. ESTADOS OPERATIVOS DE LA CPU ....................................................................... 5
2. COMPONENTES SIMATIC S7-1200 .................................................................................. 7
2.1. PUERTO PROFINET ................................................................................................... 7
2.2. ENTRADAS Y SALIDAS DIGITALES INTEGRADAS (DI14/ DO10) ......................... 16
2.3. ENTRADAS ANALÓGICAS INTEGRADAS (AI2) ..................................................... 16
2.4. SIGNAL BOARDS Y COMMUNICATION BOARDS ................................................. 17
2.5. TECNOLOGÍA INTEGRADA Y DIAGNÓSTICO ........................................................ 17
3. PROGRAMA DE USUARIO ............................................................................................. 21
3.1. EJECUCIÓN DEL PROGRAMA ................................................................................ 21
3.2. BLOQUES DE PROGRAMA ..................................................................................... 22
3.3. TIPO DE ESTRUCTURA DEL PROGRAMA DE USUARIO ...................................... 24
3.4. UTILIZAR BLOQUES PARA ESTRUCTURAR EL PROGRAMA.............................. 25
3.5. BLOQUES DE ORGANIZACIÓN (OBS) ................................................................... 26
3.6. MEMORIA DE LA CPU ............................................................................................. 28
3.7. MARCAS DE SISTEMA ............................................................................................ 29
3.8. MARCAS DE CICLO ................................................................................................. 30
4. ALMACENAMIENTO DE DATOS, ÁREAS DE MEMORIA .............................................. 31
4.1. AREAS DE MEMORIA .............................................................................................. 31
4.2. ACCEDER A LA MEMORIA DE ENTRADAS, SALIDAS Y MARCAS ...................... 32
4.3. ACCEDER A MEMORIA DE DATOS LOCALES Y TEMPORALES ......................... 35
4.4. ACCEDER A MEMORIA DE DATOS DBs ................................................................ 36
4.5. DIRECCIONAMIENTO .............................................................................................. 36
4.6. TIPOS DE DATOS .................................................................................................... 37
5. PROGRAMACIÓN BÁSICA ............................................................................................. 39
5.1. LENGUAJES DE PROGRAMACIÓN ........................................................................ 39
5.2. INSTRUCCIONES LÓGICAS CON BITS .................................................................. 40
5.3. TEMPORIZADORES ................................................................................................. 49
5.4. CONTADORES ......................................................................................................... 55
5.5. COMPARACIÓN ....................................................................................................... 58
5.6. TRANSFERENCIA .................................................................................................... 59
5.7. FUNCIONES MATEMÁTICAS .................................................................................. 60
6. FUNCIONES, BLOQUES DE FUNCIÓN Y BLOQUES DE DATOS ................................. 63
6.1. FUNCIONES FC ........................................................................................................ 63
6.2. BLOQUES DE FUNCIÓN FB .................................................................................... 63
6.3. BLOQUES DE DATOS GLOBALES ......................................................................... 67
6.4. BLOQUES DE DATOS DE INSTANCIAS Y MULTIINSTANCIAS ............................. 67
7. CABLEADO DE ENTRADAS Y SALIDAS INTEGRADAS ............................................... 83
7.1. SENSORES DIGITALES ........................................................................................... 84
8. SEÑALES ANALÓGICAS ................................................................................................ 85
8.1. DATOS DE ENTRADAS ANALÓGICAS INTEGRADAS .......................................... 86
8.2. RANGOS DE MEDIDA DE ENTRADAS Y SALIDAS ANALÓGICAS ....................... 87
8.3. CONEXIÓN DE ENTRADAS ANALÓGICAS ............................................................ 89
8.4. CONEXIÓN DE SALIDAS ANALÓGICAS ................................................................ 92
8.5. CONFIGURACIÓN DE LAS ENTRADAS Y SALIDAS ANALÓGICAS ..................... 92
8.6. INSTRUCIONES DE CONVERSIÓN ......................................................................... 96

Documentación basada en la guía de producto:


A5E02486683-06 Manual de sistema S7 1200
Disponibles en la web del fabricante del producto:
http://swe.siemens.com
http://support.automation.siemens.com/
Colabora: Roberto Álvarez Sindín

Este trabajo se distribuye bajo licencia Creative Commons BY-NC-SA


http://creativecommons.org/licenses/by-nc-sa/4.0/
(2015) Roberto Álvarez Sindín / María Pérez Cabezas / Martín Salamanca Merino
Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

1. INSTALACIÓN Y MANEJO DE SIMATIC S7-1200

El autómata SIMATIC S7-1200, es el sucesor del S7-200. El controlador S7-1200 es el


modelo modular y compacto para pequeños sistemas de automatización que requieran
funciones simples o avanzadas para lógica, HMI o redes. Gracias a su diseño compacto, su
bajo coste y sus potentes funciones, los sistemas de automatización S7-1200 son idóneos para
controlar gran variedad de aplicaciones.

La CPU incorpora un microprocesador con una fuente de alimentación integrada, circuitos


de entrada y salida, PROFINET integrado, E/S de control de movimiento de alta velocidad y
entradas analógicas incorporadas, todo ello en una carcasa compacta, conformando así un
potente controlador. S7-1200 es un sistema de automatización modular que ofrece la siguiente
gama de módulos:

 Módulos de comunicación CM para comunicación en serie RS232/RS485


(Con las CPU 1211C/1212C y 1214C se pueden utilizar hasta 3 CM).

 Módulos centrales CPU con distinta potencia, salidas/entradas integradas e interfaz


PROFINET (p. ej. CPU1214C).

Autómatas Programables S7-1200 1


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 Fuente de alimentación PM con entrada 120/230 V AC, 50 Hz/60 Hz, 1.2 A/0.7 A y
salida 24 V DC/2.5 A.

 Módulos de señal SM para entradas y salidas digitales y analógicas (Con las CPU
1212C se pueden utilizar como máx. 2 SM y con las 1214C como máx. 8 SM.)

 Compact Switch Module CSM con cuatro conectores RJ45 de 10/100 Mbits/s.

 Signal boards SB para agregar entradas/salidas analógicas o digitales sin modificar las
dimensiones de la CPU. (Los signal boards se pueden utilizar con las CPU
1211C/1212C y 1214C.

 Tarjetas de memoria SIMATIC de 2 MB o 24 MB para guardar datos del programa y


para una sustitución simple

Autómatas Programables S7-1200 2


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Autómatas Programables S7-1200 3


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

1.1. ELEMENTOS IMPORTANTES DE LA CPU

Con una alimentación integrada (conexión de 24 V) y entradas y salidas integradas, la


CPU S7-1200 se puede utilizar sin componentes adicionales.

Numerosas funciones de seguridad protegen el acceso tanto a la CPU como al programa


de control:

 Toda CPU ofrece protección por contraseña que permite configurar el acceso a sus
funciones.
 Es posible utilizar la "protección de know-how" para ocultar el código de un bloque
específico.

Autómatas Programables S7-1200 4


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Para la comunicación con una programadora, la CPU dispone de un puerto TCP/IP


PROFINET integrado. A través de una red ETHERNET, la CPU puede comunicarse con
paneles de operador HMI y con otras CPU.

① Conexión de alimentación.

② Regleta de bornes enchufable para el


cableado por parte del usuario (detrás de
las tapas de cubierta).

③ LED de estado para las E/S integradas y


para el estado operativo de la CPU.

④ Conector PROFINET (TCPIP en la parte


inferior de la CPU).

La tarjeta de memoria/Memory Card (MC) SIMATIC almacena programas, datos, datos


de sistema, archivos y proyectos. Puede utilizarse para:

 Transferencia de un programa a varias CPU


 Actualización de firmware de CPU, módulos de señal SM y
módulos de comunicación CM.

1.2. ESTADOS OPERATIVOS DE LA CPU

La CPU tiene los tres siguientes estados operativos:

 En el estado operativo STOP la CPU no ejecuta el programa y se puede cargar un


proyecto.
 En el estado operativo STARTUP la CPU efectúa un arranque.
 En el estado operativo RUN el programa se ejecuta cíclicamente. En el estado
operativo RUN de la CPU no se puede cargar ningún proyecto.

La CPU no dispone de un interruptor físico para


modificar el estado operativo.
Desde el TIA Portal STEP 7 se modifica el estado
operativo (STOP o RUN) en modo online-diagnostico.
Además, el panel de mando contiene un botón MRES
para borrar la memoria y muestra los LED de estado de
la CPU. También nos indica si el autómata está en
ERROR.

Autómatas Programables S7-1200 5


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

El LED de estado RUN/STOP de la parte delantera de la CPU indica el estado operativo


actual de la CPU a través del color.
Adicionalmente están también los LED ERROR para indicar averías, y MAINT para
indicar que es necesario algún trabajo de mantenimiento.

 La luz amarilla indica el estado


operativo STOP (parada).
 La luz verde indica el estado
operativo RUN (funcionamiento).
 Una luz intermitente indica el estado
operativo STARTUP (arranque).

CONFIGURAR LOS PARÁMETROS DE ARRANQUE

En las propiedades de la CPU se puede configurar cómo debe arrancar tras desconectar
y conectar la alimentación, hay tres tipos:

 Estado operativo STOP.


 Cambio a estado operativo RUN después del arranque en caliente.
 Cambio al estado operativo anterior después del arranque en caliente.

Autómatas Programables S7-1200 6


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

La CPU ejecuta un arranque en caliente antes de pasar al estado operativo RUN. El


arranque en caliente inicializa toda la memoria no remanente a los valores iniciales
predeterminados. No obstante, se conservan los valores actuales almacenados en la memoria
remanente.

Para configurar los parámetros de arranque de la CPU del proyecto actual, haga doble
clic en "CPU", "Propiedades", "General", seleccione "Arranque".

2. COMPONENTES SIMATIC S7-1200


2.1. PUERTO PROFINET
La CPU S7-1200 dispone de una interfaz PROFINET integrada que soporte TCP/IP
basados en estándares de comunicación.
Los siguientes protocolos de aplicación son compatibles con el S7-1200:

 PROFINET – Servicios básicos y controlador I/O


 Comunicación abierta entre usuarios – TCP, ISO
on TCP y UDP

Para poder programar desde el PC, PG o un portátil el


autómata SIMATIC S7-1200, es necesaria una conexión
TCP/IP.
Para comunicar el PC y SIMATIC S7-1200 entre sí, es importante que las direcciones IP
de ambos dispositivos estén en el mismo rango.
A continuación se muestra cómo se puede configurar la dirección IP fija del PC para
comunicarlo con el S7-1200. Esto se hace cuando nos conectamos directamente a través de
un cable RJ-45 del PC al PLC o bien si tenemos varios autómatas en red con un switch-hub.
Si la red de autómatas es con un Router, la IP será dinámica, ya que el router asignaría
las IPs. Pero para que funcione correctamente hay que configurar el Router adecuadamente.

Autómatas Programables S7-1200 7


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Windows 7
1. Desde el “Panel de control", abrir "Ver estado y tareas de red" y “Cambiar
configuración del adaptador” seleccionar las " Propiedades" de la conexión de área
Local.

(Inicio  Panel de control  Ver estado y tareas de red  Cambiar configuración del
adaptador  Conexión de área local  Propiedades)

Autómatas Programables S7-1200 8


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

2. Seleccione las (Propiedades)" de "Protocolo de Internet (TCP/IPv4)" ( Conexión


área local  Propiedades  Protocolo de Internet (TCP/IPv4)  Propiedades).

Autómatas Programables S7-1200 9


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

3. Configuramos la "Dirección IP y la Máscara de subred) y confirmar con "Aceptar". (


Usar la siguiente dirección IP  Dirección IP: 192.168.0.50  Máscara de subred
255.255.255.0  Aceptar  Cerrar)

Autómatas Programables S7-1200 10


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

4. Para comprobar la IP que tiene en "Conexión de área local” ( Estado  Detalles 


Cerrar)

Autómatas Programables S7-1200 11


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Autómatas Programables S7-1200 12


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Windows XP
1. Desde el "Panel de control", abrir "Conexiones de red" y seleccionar las
"(Propiedades)" de la conexión de área Local.

(Inicio  Panel de control 


Conexiones de red  Conexión de área
local  Propiedades)

Autómatas Programables S7-1200 13


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

2. Seleccione las (Propiedades)" de "Protocolo de Internet (TCP/IP)" (Protocolo de


Internet (TCP/IP)  Propiedades)

Autómatas Programables S7-1200 14


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

3. Aquí puede configurar la "Dirección IP", y la “Máscara de subred” y confirmar con


"Aceptar". (Usar la siguiente dirección IP  Dirección IP): 192.168.0.50  Máscara de
subred 255.255.255.0  Aceptar  Cerrar)

4. Para mostrar el icono de la conexión de área local dejar activadas las pestañas de la
siguiente imagen (recuadro rojo).

Autómatas Programables S7-1200 15


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

5. Para ver las propiedades y la IP asignada, pulsar en el icono del escritorio según
imagen. Aparecerá la siguiente ventana, vemos como hemos configurado la IP.

2.2. ENTRADAS Y SALIDAS DIGITALES INTEGRADAS (DI14/ DO10)

14 Entradas Digitales
- Tipo: Sumidero/Fuente
- Tensión nominal: 24 VDC a 4 mA

10 Salidas Digitales
- Tipo: Relé
- Rango de voltaje : 5 a 30 VDC o 5 a 250 VAC
- Corriente máxima: 2.0 A
- Tipo: Fuente
- Rango de voltaje : 20.4 a 28.8 VDC
- Corriente máxima: 0.5 A

2.3. ENTRADAS ANALÓGICAS INTEGRADAS (AI2)

2 Entradas Analógicas
- Tipo: Tensión (unipolares)
- Rango: 0 a 10 V
- Resolución: 10 bits

Autómatas Programables S7-1200 16


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

2.4. SIGNAL BOARDS Y COMMUNICATION BOARDS


Se utilizan para:
 Proporcionan canales digitales E/S adicionales.
 Las Signal Boards de medida analógica o temperatura,
proporcionan canales analógicos E/S adicionales.
 El Communication Board proporciona un interfaz de
comunicación adicional.
Por ejemplo SB analógica (AQ1):

Signal Boards SB 1232 AQ


AO1 x 12 Bit
Salida analógica
±10 V DC o 0 a 20 mA

2.5. TECNOLOGÍA INTEGRADA Y DIAGNÓSTICO


 CONTADORES ALTA VELOCIDAD (HSC)

Para el recuento de eventos de mayor rapidez que la velocidad de ejecución del OB:
El S7-1200 soporta hasta 6 contadores de alta velocidad para el control preciso de
encoders incrementales, conteo de frecuencia o conteo de eventos del proceso de alta
velocidad. Algunas de las HSCs le permiten elegir entre las Entradas integradas de la CPU o
de las Entradas de una Signal Board.

 GENERADORES DE IMPULSOS (PTO/PVM)


Para controlar las funciones de salida de impulsos a alta velocidad:
 Ancho de pulso (PWM) para el control del ciclo de trabajo.
 Tren de impulsos (PTO) para su uso con instrucciones de control de movimiento.
 Soporta 2 generadores de impulsos: 2@100 kHz (DC salidas) / 2@1 Hz (RLY salidas)
 Los generadores de impulsos se pueden utilizar ya sea con las salidas integradas de la
CPU o las salidas de una Signal Board.
Autómatas Programables S7-1200 17
Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 SERVIDOR WEB
 Para acceder a la información acerca y datos de proceso de la CPU.
 Páginas Web estándar se incluyen accesibles desde un PC a través de cualquier
navegador Web.
 Apoyo para la creación de páginas definidas por el usuario Web que pueden acceder a
datos de la CPU.
 El desarrollo de estas páginas se puede hacer usando las herramientas estándar de
edición HTML.

 RELOJ EN TIEMPO REAL


La CPU soporta un reloj en tiempo real. Un condensador de alto rendimiento suministra la
energía necesaria para que el reloj pueda seguir funcionando mientras está desconectada la
alimentación de la CPU. El condensador de alto rendimiento se carga mientras está conectada
la alimentación de la CPU. Tras haber estado conectada la alimentación de la CPU como
mínimo 2 horas, la carga del condensador de alto rendimiento alcanzará para que el reloj
pueda funcionar 10 días por lo general.
El reloj en tiempo real sirve para ajustar la hora del sistema que es el tiempo universal
coordinado (UTC). STEP 7 Basic ajusta el reloj en tiempo real a la hora del sistema. Se
dispone de instrucciones que permiten leer la hora del sistema (RD_SYS_T) o la hora local
(RD_LOC_T). La hora local se calcula según la diferencia con respecto a la zona horaria y al
horario de verano que se han ajustado en la "Configuración de dispositivos" del reloj de la CPU.

Autómatas Programables S7-1200 18


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

El reloj en tiempo real de la CPU se configura en la propiedad "Hora". También es posible


habilitar el horario de verano y determinar su fecha y hora de inicio y fin. Para ajustar el reloj en
tiempo real es preciso estar online y en la vista "Online y diagnóstico" de la CPU. Utilice la
función "Ajustar hora".

 CONTROL DE MOVIMIENTO

La CPU ofrece funciones de control de movimiento para el uso de motores paso a paso y
servomotores con interfaz por impulsos. Las funciones de control de movimiento controlan y
monitorizan los accionamientos.
 El objeto tecnológico "Eje" configura los datos mecánicos del accionamiento, así como
su interfaz, sus parámetros dinámicos y otras propiedades.
 Las salidas de dirección e impulso de la CPU deben configurarse para controlar el
accionamiento.
 El programa de usuario utiliza las instrucciones de Motion Control para controlar el eje
e iniciar las tareas de desplazamiento.
 Además de las funciones online de la CPU, hay funciones de puesta en marcha y
diagnóstico adicionales para el control de movimiento.

 CONTROL PID

La CPU permite control de proceso simple con herramientas para la configuración y


puesta en marcha en TIA Portal STEP 7 para el objeto tecnológico "controlador PID". Incluye
instrucciones PID empleadas en el programa de usuario para controlar capacidades de
autoajuste y manual.
 La instrucción PID_Compact se utiliza para controlar procesos técnicos con variables
continuas de entrada y salida.

Autómatas Programables S7-1200 19


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 La instrucción PID_3Step se utiliza para controlar dispositivos accionados por motor,


como válvulas que requieren señales discretas para las acciones de apertura y cierre.
 Herramientas para el monitoreo en línea y la puesta en marcha del regulador PID.

 ONLINE Y DIAGNÓSTICO

La CPU soporta un búfer de diagnóstico que contiene una entrada para cada evento de
diagnóstico. Toda entrada incluye la fecha y hora del evento, así como su categoría y
descripción. Las entradas se visualizan en orden cronológico. El evento más reciente aparece
en primer lugar. Estando conectada la alimentación de la CPU, los 50 eventos más recientes
están disponibles en este búfer. Cuando se llena el búfer, un evento nuevo reemplaza al evento
más antiguo. Cuando se corta la alimentación, se almacenan los diez eventos más recientes.

Los siguientes tipos de eventos se registran en el búfer de diagnóstico:


 Todo evento de diagnóstico del sistema, p. ej. errores de la CPU y de los módulos.
 Todo cambio de estado de la CPU (todo arranque, toda transición a STOP, toda
transición a RUN)
Para acceder al búfer de diagnóstico es preciso estar online. El búfer se encuentra en
"Online y diagnóstico / Diagnóstico / Búfer de diagnóstico".

Autómatas Programables S7-1200 20


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

3. PROGRAMA DE USUARIO
3.1. EJECUCIÓN DEL PROGRAMA
La ejecución del programa en un PLC se realiza de forma cíclica según la siguiente
secuencia:
1. En el primer paso se transfiere el estado desde la imagen de proceso de las salidas (IPS)
a las salidas y estas se conectan o desconectan.

2. A continuación, el procesador, que a efectos prácticos representa el cerebro del PLC,


pregunta si las entradas individuales conducen tensión. Este estado de las entradas se
guarda en la imagen de proceso de las entradas (IPE). Para las entradas con tensión se
guarda la información 1 o "Alta" y para las que no tienen tensión, la información 0 o
"baja".
3. A continuación, este procesador procesa el programa guardado en la memoria de
programa. Este se compone de una lista de operaciones lógicas e instrucciones que se
procesan sucesivamente. Para la información de entrada necesaria se accede a la (IPE)
leída previamente y el resultado lógico se escribe en la llamada imagen de proceso de las
salidas (IPS). En caso necesario, el procesador también accede a otras áreas de
memoria, p. ej. para datos locales de los subprogramas, bloques de programas OBs,
FCs, DBs y marcas, durante la ejecución del programa.
4. Finalmente, se ejecutan otras tareas internas del sistema operativo, como autotest y
comunicación. A continuación sigue con el punto 1. Así cíclicamente seguirá leyendo el
programa.
Tiempo de ciclo o Ciclo de scan:

El tiempo que requiere el procesador para esta secuencia se denomina tiempo de ciclo, y
depende de la cantidad y el tipo de instrucciones, así como del rendimiento del procesador.

En modo online-diagnostico en el TIA Portal podemos ver el tiempo de ciclo, Para ver el
uso de memoria de la CPU del proyecto actual, haga doble clic en "Online y diagnóstico",
expanda "Diagnóstico" y seleccione "Tiempo de ciclo".

Autómatas Programables S7-1200 21


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Secuencia en la ejecución del programa usuario:

La ejecución del programa usuario comienza con uno o varios bloques de organización
(OBs) de arranque que se ejecutan una vez al cambiar a estado operativo RUN, seguidos de
uno o varios OBs de ciclo que se ejecutan cíclicamente. También es posible asociar un OB a
un evento de alarma que puede ser un evento estándar o de error y que se ejecuta cada vez
que ocurre el evento en cuestión.

1. Transmitir el estado de la IPS a las salidas.


2. Guardar el estado de las entradas en la IPE.

Programa del PLC IPE


3. Procesamiento del en la memoria de
programa instrucción programa Datos locales
por instrucción con
1.ª instrucción Marcas
acceso a IPE e IPS
2.ª instrucción
3.ª instrucción Bloques
4.ª instrucción
... IPS

Última instrucción
4. Ejecutar tareas internas del sistema operativo.
(Comunicacón, autotest, etc.)

3.2. BLOQUES DE PROGRAMA

La CPU soporta los siguientes tipos de bloques lógicos que permiten estructurar
eficientemente el programa de usuario:
 Los bloques de organización (OBs) definen la estructura del programa. Cada OB
tiene una función determinada. OB1 es el único bloque de ejecución cíclica. Es el que
ejecuta la CPU sin que nadie lo llame.
Los demás OB´s tienen una función determinada. Se ejecutan cuando les corresponda
sin que nadie los llame desde ningún sitio del programa. Tenemos OB´s asociados a
diferentes errores de la CPU, a alarmas, a eventos de arranque predefinidos. No
obstante, también es posible crear OBs con eventos de arranque personalizados.
 16 desde OBs de ciclo o de arranque
 4 desde OBs de alarma de retardo, alarma cíclica, alarma de proceso, alarma de
error de tiempo o alarma de diagnóstico

Autómatas Programables S7-1200 22


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 Las funciones (FCs) y contienen el código de programa correspondiente a tareas


específicas o combinaciones de parámetros definidas por el programador. Pueden ser
parametrizables o no, cada FC provee parámetros de entrada y salida para compartir
datos con el bloque invocante.
 los bloques de función (FBs) En principio funcionan igual que las FC. La diferencia
está en que las FB utiliza un bloque de datos asociado (denominado DB instancia)
para conservar el estado de valores durante la ejecución que pueden utilizar otros
bloques del programa. Esto tiene dos ventajas. Una es que podemos acceder a los
parámetros desde cualquier punto del programa. Otra es que cada vez que llamemos a
la FB no es necesario que le demos todos los parámetros. Los parámetros que no
rellenemos, se tomarán por defecto los últimos que hayamos utilizado.
 Los bloques de datos (DBs) almacenan datos que pueden ser utilizados por los
bloques del programa. Un DB se puede definir de manera que sea de sólo lectura.
Hay dos tipos de DBs, a saber:
 DB global almacena los datos de los bloques lógicos en el programa. Cualquier OB,
FB o FC puede acceder a los datos en un DB global. Todos los bloques del programa
de usuario pueden acceder a estos datos globales.
 DB instancia almacena los datos de un FB específico, o bien se genera un DB de
instancia al crear temporizadores y contadores. La estructura de los datos en un DB
instancia refleja los parámetros (Input, Output e InOut) y los datos estáticos del FB (la
memoria temporal del FB no se almacena en el DB instancia).Los datos
almacenados en un DB no se borran cuando finaliza la ejecución del bloque lógico
asociado.

Autómatas Programables S7-1200 23


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

3.3. TIPO DE ESTRUCTURA DEL PROGRAMA DE USUARIO

Según los requisitos de la aplicación, es posible seleccionar una estructura lineal o


modular para crear el programa de usuario:
 Un programa lineal ejecuta todas las instrucciones de la tarea de automatización
deforma secuencial, es decir, una tras otra. Generalmente, el programa lineal deposita
todas las instrucciones del programa en el OB encargado de la ejecución cíclica del
programa (OB 1).
 Un programa modular llama bloques de función específicos que ejecutan
determinadas tareas. Para crear una estructura modular, la tarea de automatización
compleja se divide en tareas subordinadas más pequeñas, correspondientes a las
funciones tecnológicas del proceso. Cada bloque lógico provee el segmento del
programa para cada tarea subordinada. El programa se estructura llamando uno de los
bloques lógicos desde otro bloque.
Creando bloques lógicos genéricos que pueden reutilizarse en el programa de usuario, es
posible simplificar el diseño y la implementación del programa de usuario. La utilización de
bloques lógicos genéricos ofrece numerosas ventajas:

Autómatas Programables S7-1200 24


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Estructura Lineal Estructura Modular

OB1 OB1 FB1

FC1

 Es posible crear bloques lógicos reutilizables para tareas estándar, tales como el control
de una bomba o motor. También es posible almacenar estos bloques lógicos genéricos
en una librería, de manera que puedan ser utilizados por diferentes aplicaciones o
soluciones.
 El programa de usuario puede dividirse en componentes modulares para las tareas
funcionales, facilitando así su comprensión y gestión. Los componentes modulares
ayudan no sólo a estandarizar el diseño del programa, sino que también pueden facilitar
y agilizar la actualización o modificación del código del programa.
 La creación de componentes modular simplifica la depuración del programa. Dividiendo
el programa completo en segmentos de programa modulares, es posible comprobar las
funciones de cada bloque lógico a medida que se va desarrollando.
 La creación de componentes modulares para las distintas funciones tecnológicas
permite simplificar y reducir el tiempo de puesta en marcha de la aplicación.

3.4. UTILIZAR BLOQUES PARA ESTRUCTURAR EL PROGRAMA


Diseñando FBs y FCs que ejecuten tareas genéricas, se crean bloques lógicos
modulares. El programa se estructura luego, de manera que otros bloques lógicos llamen estos
bloques modulares reutilizables. El bloque que efectúa la llamada transfiere los parámetros
específicos del dispositivo al bloque llamado.
Cuando un bloque lógico llama otro bloque lógico, la CPU ejecuta el código del programa
en el bloque llamado. Una vez finalizada la ejecución del bloque llamado, la CPU reanuda la
ejecución del bloque que ha efectuado la llamada. El procesamiento continúa con la ejecución
de la instrucción siguiente a la llamada de bloque.

Autómatas Programables S7-1200 25


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Las llamadas de bloque pueden anidarse para crear una estructura más modular. En el
ejemplo siguiente, la profundidad de anidamiento es 4: El OB de ciclo de programa más 3
niveles de llamadas de bloques lógicos.

3.5. BLOQUES DE ORGANIZACIÓN (OBS)


Los OBs controlan la ejecución del programa de usuario. Todo OB debe tener un número
de OB unívoco. Algunos números menores que 200 están reservados para OBs
predeterminados. La numeración de los demás OBs debe comenzar a partir de 200.
Determinados eventos de la CPU disparan la ejecución de un bloque de organización. Un
OB no puede llamar a otro. Tampoco es posible llamar un OB desde una FC o un FB. Sólo un
evento de arranque, p. ej. Una alarma de diagnóstico o un intervalo, puede iniciar la ejecución
de un OB. La CPU procesa los OBs según su clase de prioridad. Los OBs de mayor prioridad
se ejecutan antes que los de menor prioridad. La clase de prioridad más baja es 1 (para el ciclo
del programa principal) y la más alta es 27 (para las alarmas de error de tiempo).

Autómatas Programables S7-1200 26


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Los OBs controlan los siguientes procesos:


 Los OBs de ciclo se ejecutan cíclicamente cuando la CPU se encuentra en estado
operativo RUN. El bloque principal del programa es un OB de ciclo. Éste contiene las
instrucciones que controlan el programa y permite llamar otros bloques de usuario. Es
posible utilizar varios OBs de ciclo. Éstos se ejecutan en orden numérico. El OB1 es el
bloque predeterminado. Los demás OBs de ciclo deben identificarse como OB 200 o
superior.
 Los OBs de arranque se ejecutan una vez cuando el estado operativo de la CPU
cambia de STOP a RUN, al arrancar a estado operativo RUN y en una transición
ordenada de STOP a RUN. Una vez finalizado, se comienza a ejecutar el OB de ciclo.
Es posible utilizar varios OBs de arranque. El OB 100 es el bloque predeterminado. El
número de los demás OBs debe ser 200 o superior.
 Los OBs de alarma de retardo se ejecutan al cabo de un intervalo posterior a un
evento configurado en la instrucción de alarma de arranque (SRT_DINT). El tiempo de
retardo se especifica en el parámetro de entrada de la instrucción avanzada SRT_DINT.
Los OBs de alarma de retardo interrumpen la ejecución cíclica del programa una vez
transcurrido un tiempo de retardo especificado. Es posible configurar como máximo 4
eventos de retardo en cualquier momento. Por cada evento de retardo configurado se
permite un OB. El número del OB de alarma de retardo debe ser 200 o superior.
 Los OBs de alarma cíclica se ejecutan en intervalos periódicos. Los OBs de alarma
cíclica interrumpen la ejecución cíclica del programa en intervalos definidos, p. ej. cada
2 segundos. Es posible configurar como máximo 4 eventos de alarma cíclica. Por
cada evento de alarma cíclica configurado se permite un OB. El número del OB debe
ser 200 o superior.
 Los OBs de alarma de proceso se ejecutan cuando ocurre el evento de hardware
correspondiente, incluyendo flancos ascendentes y descendentes en las entradas
digitales integradas y eventos de contadores rápidos (HSC). Los OBs de alarma de
proceso interrumpen la ejecución cíclica del programa como reacción a una señal de un
evento de hardware. Los eventos se definen en las propiedades de la configuración
hardware. Por cada evento de hardware configurado se permite un OB. El número del
OB debe ser 200 o superior.
 Los OBs de error de tiempo se ejecutan cuando se detecta un error de tiempo. Los
OBs de error de tiempo interrumpen la ejecución cíclica del programa cuando se rebasa
el tiempo de ciclo máximo. El tiempo de ciclo máximo se define en las propiedades del
PLC. El OB 80 es el único número de OB soportado para el evento de error de tiempo.
Es posible configurar la acción que debe realizarse si no existe el OB 80: ignorar el error
o cambiar a STOP.

Autómatas Programables S7-1200 27


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 Los OBs de alarma de diagnóstico se ejecutan cuando se detecta y notifica un error


de diagnóstico. Los OBs de alarma de diagnóstico interrumpen la ejecución cíclica del
programa cuando el módulo apto para diagnóstico detecta un error (si se ha habilitado
la alarma de diagnóstico para ese módulo). El OB 82 es el único número de OB
soportado para el evento de error de diagnóstico. Si el programa no contiene ningún OB
de diagnóstico, la CPU se puede configurar para que ignore el error o cambie a STOP.

3.6. MEMORIA DE LA CPU


La CPU provee las áreas de memoria siguientes para almacenar el programa de usuario,
los datos y la configuración:
 La memoria de carga permite almacenar de forma no volátil el programa de usuario,
los datos y la configuración. Cuando un proyecto se carga en la CPU, se almacena
primero en el área de memoria de carga. Esta área se encuentra bien sea en una
Memory Card (si está disponible) o en la CPU. Esta área de memoria no volátil se
conserva incluso tras una pérdida de alimentación. La Memory Card ofrece mayor
espacio de almacenamiento que el integrado en la CPU.
 La memoria de trabajo ofrece almacenamiento volátil para algunos elementos del
proyecto mientras se ejecuta el programa de usuario. La CPU copia algunos elementos
del proyecto desde la memoria de carga en la memoria de trabajo. Esta área volátil se
pierde si se desconecta la alimentación. La CPU la restablece al retornar la
alimentación.
 La memoria remanente permite almacenar de forma no volátil un número limitado de
valores de la memoria de trabajo. El área de memoria remanente se utiliza para
almacenar los valores de algunas posiciones de memoria durante una pérdida de
alimentación. Si ocurre un corte de alimentación, la CPU dispone de suficiente tiempo
de retención para respaldar los valores de un número limitado de posiciones de
memoria definidas. Estos valores remanentes se restablecen al retornar la alimentación.
Para impedir la pérdida de datos tras un corte de alimentación, es posible definir que
ciertos datos sean remanentes. Los siguientes datos pueden configurarse para que
sean remanentes: Areas de Marcas (M), Variables de Bloques de Función (FB),
Variables de Bloque de Datos Globales (DB).
Para ver el uso de memoria de la CPU del
proyecto actual, haga doble clic en "Online y
diagnóstico", expanda "Diagnóstico" y
seleccione "Memoria".

Autómatas Programables S7-1200 28


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

3.7. MARCAS DE SISTEMA


Los bytes de marcas de sistema se habilitan en las propiedades de la CPU. El byte que
se puede asignar a las marcas de sistema pertenece al área de marcas (M), este byte de
marcas de sistema pone a disposición los siguientes cuatro bits que puede referenciar el
programa de usuario:
 El bit "Siempre 0 (low)" está siempre puesto a 0.

 El bit "Siempre 1 (high)" está siempre puesto a 1.


 El bit "Diagrama de diagnóstico modificado" se pone a 1 durante un ciclo, una vez
que la CPU registre un evento de diagnóstico. Puesto que la CPU no activa el bit
"Diagrama de diagnóstico modificado" hasta el final de la primera ejecución de los OBs
de ciclo, el programa de usuario no puede detectar si ha cambiado el diagnóstico
durante la ejecución de los OBs de arranque, o bien durante la primera ejecución de los
OBs de ciclo.
 El bit "Primer ciclo" se pone a 1 durante el primer ciclo tras finalizar el OB de arranque.
(Una vez finalizada la ejecución del primer ciclo, el bit "Primer ciclo" se pone a 0).
Para configurar las Marcas de Sistema de la CPU del proyecto actual, haga doble clic en
"CPU", "Propiedades", "General", seleccione "Marcas de Sistema y ciclo" y active “Bits de
marcas de sistema”.

Autómatas Programables S7-1200 29


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

3.8. MARCAS DE CICLO


Es posible asignar un byte de marcas de ciclo en el área de marcas (M), todo bit del byte
de marcas de ciclo genera un impulso de onda cuadrada. El byte de marcas de ciclo ofrece 8
frecuencias diferentes, comprendidas entre 0,5 Hz (lenta) hasta 10 Hz (rápida).

Bit del byte de marcas de ciclo 0 1 2 3 4 5 6 7

Duración del pulso (s) 0,1 0,2 0,4 0,5 0,8 1 1,6 2,0

Frecuencia (Hz) 10 5 2,5 2 1,25 1 0,625 0,5

Estos bits pueden utilizarse como bits de control para disparar acciones cíclicas en el
programa de usuario, especialmente si se combinan con instrucciones de detección de flancos.
La CPU inicializa estos bytes cuando el estado operativo cambia de STOP a
ARRANQUE. Los bits de las marcas de ciclo cambian de forma síncrona al reloj de la CPU
durante los estados operativos ARRANQUE y RUN.
Para configurar las Marcas de Sistema de la CPU del proyecto actual, haga doble clic en
"CPU", "Propiedades", "General", seleccione "Marcas de Sistema y ciclo" y active “Bits de
marcas y ciclo”.

Autómatas Programables S7-1200 30


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

4. ALMACENAMIENTO DE DATOS, ÁREAS DE MEMORIA


4.1. AREAS DE MEMORIA
La CPU ofrece varias opciones para almacenar datos durante la ejecución del programa
de usuario:
 Memoria global: La CPU ofrece distintas áreas de memoria, incluyendo entradas (I),
salidas (Q) y marcas (M). Todos los bloques lógicos pueden acceder sin restricción a
estas memorias.
 Tabla de variables PLC: se pueden especificar nombres simbólicos en la tabla de
variables PLC de STEP 7 para posiciones de memoria específicas. Esas variables son
globales dentro del programa STEP 7 y permiten la programación con nombres
significativos para la aplicación.
 Bloque de datos (DB): Es posible incluir DBs en el programa de usuario para
almacenar los datos de los bloques lógicos. Los datos almacenados se conservan
cuando finaliza la ejecución del bloque lógico asociado. Un DB "global" almacena datos
que pueden ser utilizados por todos los bloques lógicos, mientras que un DB instancia
almacena datos para un bloque de función (FB) especifico y está estructurado según los
parámetros del FB.
 Memoria temporal: Cada vez que se llama un bloque lógico (OB, FC o FB), el sistema
operativo de la CPU asigna la memoria temporal o local (L) que debe utilizarse durante
la ejecución del bloque. Cuando finaliza la ejecución del bloque lógico, la CPU reasigna
la memoria local para la ejecución de otros bloques lógicos.
Toda posición de memoria diferente tiene una dirección unívoca. El programa de usuario
utiliza estas direcciones para acceder a la información de la posición de memoria.

Forzado
Símbolo Área de Memoria Descripción Remanente
Permanente
Imagen de proceso de las Se copia de las entradas físicas al inicio
I NO NO
entradas del ciclo
Lectura inmediata de las entradas físicas
I_:P Entradas físicas SI NO
de la CPU, SB y SM
Imagen de proceso de las Se copia de las salidas físicas al inicio del
Q NO NO
salidas ciclo
Lectura inmediata de las salidas físicas de
I_:P Salidas físicas SI NO
la CPU, SB y SM
SI
M Marcas Control y memoria de datos NO
(opcional)

L Temporal Datos locales temporales de un bloque NO NO

SI
DB Bloque de datos Memoria de datos y de parámetros de FBs NO
(opcional)

Autómatas Programables S7-1200 31


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

4.2. ACCEDER A LA MEMORIA DE ENTRADAS, SALIDAS Y MARCAS

El autómata S7-1200 se puede programar según dos normas diferentes:


 Norma IEC 1131-3.
 Norma alemana.

Norma IEC 1131-3 (Comité Internacional Eléctrico):

En el presente documento vamos a seguir esta Norma IEC 1131-3 según la cual define
tres zonas como mínimo: Entradas (%I), Salidas (%Q) y Marcas (%M).
Los objetos en cada zona pueden ser como mínimo: Bits, Bytes (8 bits), Words (16 Bits) y
Double Words (32 bits).
Ejemplos: %I0.0, %Q1.0, %IB0, %QW1, %MD10.

Norma Alemana:
El autómata SIMATIC S7-1200 también permite programar con la norma alemana.
En la Norma Alemana tenemos tres zonas también: Entradas (%E), Salidas (%A) y
Marcas (%M).
Los mismos objetos: Bits, Bytes (8 bits), Words (16 Bits) y Double Words (32 bits).
Ejemplos: %E0.0, %A1.0, %EB0, %AW1, %MD10.
En el TIA Portal podemos seleccionar cual queremos utilizar.

Autómatas Programables S7-1200 32


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

BITS DE ENTRADAS (I) Y SALIDAS (Q)

Por ejemplo en un autómata que presenta 14 entradas y 10 salidas:

Estructura de operando

% I 0. 2

Dirección de bit Número de bit en un byte (0…7)

Punto Separa la dirección de byte del Nº de bit

Dirección de byte Número de un grupo de 8 bits (1 byte)

Identificador de Operando (Identificador de Área)

BITS DE MARCAS (M)


Vamos a añadir un nuevo término llamado Marca, cuyo identificador de operando es: M.

Al igual que las entradas y salidas, junto con el identificador de operando necesita de un
parámetro. Éste tiene exactamente la misma estructura que en las entradas y salidas. Por
ejemplo: M2.0.
Consideraciones:
 Las marcas se utilizan como la memoria de la calculadora, para guardar resultados
intermedios.
 Las marcas se utilizan cuando el resultado intermedio de un segmento debe procesarse
en otros segmentos o para guardar estados sucesivos evaluados.
 En PLC's su efecto es similar a los relés o contactores auxiliares utilizados en la técnica
convencional.
 Una marca puede utilizarse todas las veces que se desee como contacto NA o NC.
 Si se corta la alimentación se pierde el estado de la marca. Para evitar esto existe la
función de “remanencia”.

Autómatas Programables S7-1200 33


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

BYTES

Acceder bytes es similar a bits, pero en este caso solo se utiliza el identificador de
parámetro, seguido de la letra B (byte) más la dirección de byte, así para byte entradas (%IB),
byte salidas (%QB) y byte marcas (%MB). De este modo podemos acceder a distintos bits con
una sola “llamada”:

%QB0 Q 0.7 Q 0.6 Q 0.5 Q 0.4 Q 0.3 Q 0.2 Q 0.1 Q 0.0

PALABRAS (WORDS)
En las palabras solo se utiliza el identificador de parámetro, seguido de la letra W (word)
más la dirección de la palabra, así para palabra de entradas (%IW), palabra de salidas (%QW)
y palabra de marcas (%MW).
QW0 QW2
QB0 QB1 QB2 QB3
QW1

DOBLES PALABRAS (DWORDS)


En dobles palabras es similar a las palabras, pero en este caso solo se utiliza el
identificador de parámetro, seguido de la letra D (double). Así para la doble palabra de
entradas (%ID), doble palabra de salidas (%QD) y doble palabra de marcas (%MD).
QD0
QW0 QW2 QW4
QB0 QB1 QB2 QB3 QB4 QB5
QW1 QW3
QD1

Autómatas Programables S7-1200 34


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

I[dirección de byte].[dirección de
Imagen de Bit I0.1
bit]
I proceso de las
entradas Byte, palabra y
I[tamaño][dirección de byte inicial] IB4, IW5 o ID12
doble palabra
I[dirección de byte].[dirección de
Bit I0.1:P
bit]:P
I_:P Entradas físicas
Byte, palabra y I[tamaño][dirección de byte
IB4:P, IW5:P o ID12:P
doble palabra inicial]:P
Q[dirección de byte].[dirección de
Imagen de Bit Q1.1
bit]
Q proceso de las
salidas Byte, palabra y
Q[tamaño][dirección de byte inicial] QB6, QW10 o QD18
doble palabra
Q[dirección de byte].[dirección de
Bit Q0.1:P
bit]:P
Q_:P Salidas físicas
Byte, palabra y Q[tamaño][dirección de byte QB6:P, QW10:P o
doble palabra inicial]:P QD18:P
M[dirección de byte].[dirección de
Bit M0.0
bit]
M Marcas
Byte, palabra y
M[tamaño][dirección de byte inicial] MB20, QW30 o QD40
doble palabra

4.3. ACCEDER A MEMORIA DE DATOS LOCALES Y TEMPORALES

La CPU asigna la memoria temporal según sea necesario. La CPU asigna la memoria
temporal al bloque lógico cuando éste se inicia (en caso de un OB) o se llama (en caso de una
FC o un FB). La asignación de la memoria temporal a un bloque lógico puede reutilizar las
mismas posiciones de memoria temporal usadas anteriormente por un OB, FC o FB diferente.
La CPU no inicializa la memoria temporal durante la asignación por lo que esta memoria puede
contener un valor cualquiera.

A la memoria temporal se puede acceder sólo con direccionamiento simbólico.


La memoria temporal es similar al área de marcas, con una excepción importante: el área
de marcas tiene un alcance "global", en tanto que la memoria temporal tiene un alcance "local".
 Área de marcas: Cualquier OB, FC o FB puede acceder a los datos del área de
marcas. Esto significa que los datos están disponibles globalmente para todos los
elementos del programa de usuario.
 Memoria temporal: El acceso a los datos de la memoria temporal está restringido al
OB, FC o FB que ha creado o declarado la posición de memoria temporal. Las
posiciones de memoria temporal son siempre locales y no son compartidas por
diferentes bloques lógicos, incluso si un bloque lógico llama otro bloque lógico. Ejemplo:
Cuando un OB llama una FC, ésta no puede acceder a la memoria temporal del OB que
ha efectuado la llamada.
La CPU pone a disposición memoria temporal (local) para cada una de las tres clases de
prioridad de OBs:
 16 KB para arranque y ciclo, incluyendo los FBs y FCs asociados
 4 KB para eventos de alarma estándar, incluyendo FBs y FCs
 4 KB para eventos de alarma de error, incluyendo FBs y FCs

Autómatas Programables S7-1200 35


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

4.4. ACCEDER A MEMORIA DE DATOS DBs

Los bloques de datos se utilizan para almacenar diferentes tipos de datos, incluyendo el
estado intermedio de una operación u otros parámetros de control de FBs, así como
estructuras de datos requeridas para numerosas instrucciones, temporizadores, contadores….

Es posible determinar que un bloque de datos sea de lectura/escritura o de sólo lectura. A


los bloques de datos se puede acceder en formato de bit, byte, palabra o palabra doble.

Los bloques de datos que se pueden leer y escribir, se permiten accesos de lectura y
escritura. Los bloques de datos de sólo lectura se permiten sólo los accesos de lectura.

DB[número de bloque de datos].DBX[dirección de


Bit DB1.DBX2.3
byte].[dirección de bit]
DB1.DBB4,
Byte, palabra o DB[número de bloque de datos].DB[tamaño][dirección de
DB10.DBW2,
palabra doble byte inicial]
DB20.DBD8

4.5. DIRECCIONAMIENTO

En la CPU y módulos de E/S en la ventana de configuración, se asignan


automáticamente direcciones I y Q. El direccionamiento predeterminado puede cambiarse
seleccionando el campo de dirección en la ventana de configuración y tecleando números
nuevos. Las entradas y salidas digitales se asignan en grupos de 8 E/S (1 byte), sin importar si
el módulo utiliza todas las E/S o no. Las entradas y salidas analógicas se asignan en grupos de
2 (4 bytes).

Autómatas Programables S7-1200 36


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

4.6. TIPOS DE DATOS


BOOL, BYTE, WORD Y DWORD

ENTERO

REAL EN COMA FLOTANTE

Autómatas Programables S7-1200 37


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

FECHA Y HORA

CARÁCTER Y CADENA

ARRAY

Autómatas Programables S7-1200 38


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

ESTRUCTURA DE DATOS
Se puede utilizar el tipo de datos "Struct" para definir una estructura de datos formada por
otros tipos de datos. El tipo de datos STRUCT puede emplearse para gestionar un grupo de
datos de proceso relacionados como una unidad de datos simple. Se asigna un nombre a un
tipo de datos STRUCT y la estructura de datos interna se declara en el editor de bloques de
datos o un editor de interfaces de bloque.

DATOS PLC
El editor del tipo de datos PLC permite definir estructuras de datos, que pueden usarse varias
veces en el programa. Para crear un tipo de datos PLC abra la rama "Tipos de datos PLC" del
árbol del proyecto y haga doble clic en el elemento "Añadir nuevo tipo de datos". En el tipo de
datos PLC recién creado, haga dos clics individuales para cambiar el nombre predeterminado y
un doble clic para abrir el editor del tipo de datos PLC.

DATOS DE PUNTERO
Los tipos de datos de puntero (Pointer, Any y Variant) pueden utilizarse en tablas de
interfaz de bloque para bloques lógicos FB y FC. El tipo de datos de puntero se puede
seleccionar de las listas desplegables de tipos de datos de interfaz de bloque. El tipo de datos
Variant también se utiliza para parámetros de instrucción.
Para más información consultar el manual: A5E02486683-06 Manual de sistema S7
1200.

5. PROGRAMACIÓN BÁSICA
5.1. LENGUAJES DE PROGRAMACIÓN

STEP 7 ofrece los lenguajes de programación estándar siguientes para S7-1200:


 KOP (esquema de contactos) es un lenguaje de programación gráfico. Su
representación se basa en esquemas de circuitos.
 FUP (diagrama de funciones) es un lenguaje de programación que se basa en los
símbolos lógicos gráficos empleados en el álgebra booleana.
 SCL (structured control language) es un lenguaje de programación de alto nivel
basado en texto.
Al crear un bloque lógico, se debe seleccionar el lenguaje de programación que empleará
dicho bloque.
El programa de usuario puede emplear bloques lógicos creados con cualquiera de los
lenguajes de programación.

Autómatas Programables S7-1200 39


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

KOP FUP SCL

Nota: En este documento se trabajará en KOP.

5.2. INSTRUCCIONES LÓGICAS CON BITS


 INSTRUCCIONES LÓGICAS

Contacto normalmente abierto ---| |---


La activación de un contacto normalmente abierto depende del estado lógico del
operando correspondiente. Si el estado lógico del operando es "1", se cierra el contacto
normalmente abierto y el estado lógico de la entrada se transfiere a la salida. Si el estado
lógico del operando es "0", el contacto normalmente abierto no se activa y el estado lógico de la
salida de la instrucción se pone a "0".

Contacto normalmente cerrado ---| / |---


La activación de un contacto normalmente cerrado depende del estado lógico del
operando correspondiente. Si el estado lógico del operando es "1", se abre el contacto
normalmente cerrado y el estado lógico de la salida de la instrucción se pone a "0". Si el estado
lógico del operando es "0", no se activa el contacto normalmente cerrado y el estado lógico de
la entrada se transfiere a la salida.

Asignación ---( )---


La instrucción "Asignación" permite activar el bit de un operando indicado. Pone a "1" el
bit designado para una condición de ejecución "1" y lo pone a "0" para una condición de
ejecución "0". Esto es, sólo si los contactos previos a la salida tienen continuidad, la salida se
activará.
Autómatas Programables S7-1200 40
Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Programas de ejemplo:

Programa Equivalente eléctrico

Al activar la entrada I0.0 (pulsador NA), se activará la salida Q0.0.


Para que la salida se mantenga activa deberemos mantener activa la
entrada.

Similar al anterior, pero usando en la entrada I0.0 (pulsador NC). En


este caso, la salida Q0.0 estará activa hasta que accionemos el
pulsador I0.0. La salida permanecerá activa sólo mientras no
estemos accionado el pulsador.

Los ejemplos utilizando entrada y salidas negadas no tienen equivalente eléctrico. En los
casos anteriores, negando la entrada o la salida, el circuito se comportará de forma contraria,
salvo que neguemos ambas de forma simultánea (doble negación = afirmación).

Negar asignación --( / )—


La instrucción "Negar Asignación" invierte el bit de un operando indicado. Pone a "0" el
bit designado para una condición de ejecución "1" y lo pone a "1" para una condición de
ejecución "0". Esto es, la salida se activará sólo si los contactos previos no tienen continuidad.
Ejemplo: Niega el valor de la salida Q0.0.

Invertir RLO --|NOT|--


Invierte el RLO que es el estado lógico de la entrada de flujo de corriente. Si el estado
lógico de la entrada de la instrucción es "1", la salida de la instrucción devuelve el estado lógico
"0". Si el estado lógico de la entrada de la instrucción es "0", la salida devuelve el estado lógico
"1". También se llama complementación o negación, el valor de la salida, es el inverso al de la
entrada. F=Ā

A B F=Ā

0 0 1

0 1 0

Autómatas Programables S7-1200 41


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Ejemplo: El contacto NOT cambia el estado de la entrada de circulación de corriente.

Contactos en serie (AND) (Función Y)

La función AND (Y), implica que deben cumplirse las condiciones simultáneamente para
tener continuidad en la línea del programa. Eléctricamente equivale a disponer de dos
contactos en serie. Pueden utilizarse indistintamente con las entradas o salidas negadas.
El resultado de esta operación es 1 cuando las dos variables valen 1, en caso contrario el
resultado es 0. F=A∙B

A B F=A·B
0 0 0
0 1 0
1 0 0
1 1 1

Contactos en paralelo (OR) (FUNCIÓN O)

La función OR (O), implica que basta con que se cumpla una de las condiciones para
tener continuidad en la línea del programa. Eléctricamente equivale a disponer de dos
contactos en paralelo. Pueden utilizarse indistintamente con las entradas o salidas negadas.
El resultado de la suma lógica es 1 cuando una de las dos variables A o B toma el valor
1. La suma lógica no es igual a la suma aritmética. F = A + B

A B F=A+B
0 0 0
0 1 0
1 0 0
1 1 1

Duplicación de salidas:

Con las mismas condiciones de ejecución pueden ponerse múltiples salidas en paralelo,
esto es, una misma condición del programa puede activar varias salidas de forma simultánea.

Nota: una misma condición puede activar más de una salida, no es recomendable utilizar la misma
salida en dos puntos distintos del programa, si se hace se tomará la última programada.

Las funciones AND y OR, así como las salidas en paralelo pueden combinarse.

Autómatas Programables S7-1200 42


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Programas de ejemplo:

Programa Equivalente eléctrico

Para que se active la salida Q0.0, han de estar activadas


simultáneamente las entradas I0.0 y I0.01

En este caso bastará que sólo una de las entradas, I0.0 ó I0.1 esté
activa para que se active la salida Q0.0.

En este caso, activando la entrada I0.0, se conectarán


simultáneamente las salidas Q0.0 y Q0.1.

Por último, para que se active la salida, será necesario que estén
activas la entrada I0.2 y además o bien la I0.0 ó la I0.1 ó ambas a la
vez.

 ENCLAVAMIENTOS
Con Instrucciones Lógicas

Podemos utilizar una salida, física o no, de forma similar a como se utilizan los contactos
auxiliares de los contactores o relés para hacer un enclavamiento. De esta forma, bastará con
dar un pulso para activar una salida y con otro pulso, en otra entrada, para desactivarla.
El programa será una traducción casi literal de un circuito eléctrico, utilizando un contacto
de la propia salida en paralelo (función OR) con el pulsador de marcha, y los pulsadores de de
marcha y paro conectados en serie (función AND).

Autómatas Programables S7-1200 43


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Activar salida: SET ---( S )---


Pone el bit operando a "1", cuando la condición de ejecución es "1" la entrada de la
bobina es "0" (no hay flujo de señales en la bobina), el estado lógico del operando indicado no
cambia.

Desactivar salida: RESET ---( R )---


Pone el bit operando "0", cuando la condición de ejecución es "1". Si la entrada de la
bobina es "0" (no hay flujo de señales en la bobina), el estado lógico del operando indicado no
cambia.
Nota: En caso de simultaneidad de señales a un mismo bit de SET y/o RSET predominará el último
programado.

Activar mapa de bits ---( SET_BF )---


La instrucción "Activar mapa de bits" activa a "1" varios bits a partir de una dirección
específica, es un Set a varios bits a la vez.

Desactivar mapa de bits ---( RESET_BF )---


La instrucción "Desactivar mapa de bits" desactiva a "0" varios bits a partir de una
dirección específica, es un Reset a varios bits a la vez.

Flipflop de activación/desactivación SR
Esta función realiza el enclavamiento de un bit, activado por una entrada de set (S) y
desactivado por una entrada de reset (R1). Es equivalente al ejemplo anterior, pero resumido
en una única función. En caso de recibir señales simultáneas por ambas entradas, siempre
prevalece el Reset (R1) sobre el Set (S).

Flipflop de desactivación/activación RS
Esta función realiza el enclavamiento de un bit, activado por una entrada de set (S1) y
desactivado por una entrada de reset (R). Es equivalente al ejemplo anterior, pero en caso de
recibir señales simultáneas por ambas entradas, siempre prevalece el Set (S1) sobre el
Reset (R).

Ejemplo: El programa está online, con I0.6 e I0.7 (set y reset) (NA) pulsados se mantiene
activa Q1.1. y Q1.0. El lugar donde va la salida Q1.0 se puede eliminar del programa es
opcional, se puede ponerla si queremos activar otra salida sino la necesitamos no ponemos
nada.

Autómatas Programables S7-1200 44


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Otros ejemplos:

Esquema eléctrico Funcionamiento

Circuito eléctrico
S1 Paro (NC) I0.0
S2 Marcha (NA) I0.1
K1 Contactor (Motor) Q0.0
Pulsando en S2 (entrada I0.1),
cerramos el circuito que alimenta
la bobina del contactor K1 (salida
Q0.0), realimentándose mediante
un contacto auxiliar (Q0.0).
Al pulsar el paro S1 (entrada
I0.0) cortamos la alimentación,
desactivándose la bobina del
contactor.

Programa con el autómata Descripción


Instrucciones lógicas
Si lo asimilamos a un circuito
eléctrico, estando activo Paro
(I0.0) (lo está por ser un contacto
NC), al pulsar sobre Marcha
(I0.01) activaremos la salida de
Motor (Q0.0). Al dejar de pulsar
Marcha (I0.01), la alimentación
se mantiene por el contacto
auxiliar de Q0.0.
Para detenerlo bastará con
pulsar Paro (I0.0).
Funciones SET / RESET
Al recibir un pulso por la entrada
de set (S) se enclavará Q0.0. Al
recibirlo por la entrada de reset
(R), se desenclavará. Como la
entrada de Reset (I0.0) es un
NC, hemos de negarla ya que si
no siempre estará reseteando

Función SR
Como vemos es como el SET y
RESET pero en una sola
instrucción.

Autómatas Programables S7-1200 45


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Cerrados físicos, negados lógicos

En el esquema anterior tenemos que el pulsador de paro (S1) es un cerrado físico NC,
esto es, en condiciones normales de funcionamiento dará continuidad y cuando se pulse,
interrumpirá el circuito. Como vemos, este contacto se programa utilizando instrucciones
lógicas como ABIERTO, del mismo modo que el pulsador de marcha (S2), que es, sin
embargo, un contacto normalmente abierto NA.

Sin embargo, cuando utilizamos las funciones SR o SET y RESET, utilizamos la entrada
negada de S1, ya que si no, al tratarse de un cerrado físico, nos activaría la entrada de reset,
impidiendo activar el circuito.
No debemos confundir los contactos normalmente cerrados con entradas de programa
negadas. Utilizando instrucciones lógicas (“en serie”) se programará la entrada normal,
mientras que si usamos funciones (“en paralelo”), deberá negarse esta.

Esquema eléctrico Funcionamiento

Circuito eléctrico
S1 Paro (NC) I0.0
S2 Marcha (NA) I0.1
K1 Contactor (Motor) Q0.0
H1 Piloto Verde Q0.1
H2 Piloto Ámbar Q0.2
Pulsando en S2 (entrada I0.1),
cerramos el circuito que alimenta
la bobina del contactor K1 (Q0.0),
H1 (Q0.1) y H2 (Q0.2)
realimentándose mediante un
contacto auxiliar (Q0.0).
Al pulsar el paro S1 (entrada I0.0)
cortamos la alimentación,
desactivándose la bobina del
contactor.

Programa con el autómata Descripción

Funciones SET_BF / RESET_BF


Funciona igual que el SET y
RESET pero activando y
desactivando varios bits a la vez
(Q0.0, Q0.1 y Q0.2).
No tiene porque ser el mismo
número de bits en el set y reset.

 FLANCOS

Los flancos ponen a ON un bit durante un ciclo de scan (el tiempo que tarda en
completarse el programa), cuando la condición de ejecución (los bits de entrada a la
instrucción) pasan de OFF a ON (flanco ascendente P) o de ON a OFF (flanco descendente N).
Se utilizan cuando queremos dar únicamente un pulso de señal, independientemente del
tiempo que el bit de entrada esté activo.

Autómatas Programables S7-1200 46


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Consultar flanco de señal ascendente de un operando --|P|--

El estado de este contacto es TRUE durante un ciclo del


programa cuando detecta un flanco ascendente (OFF a ON) en el bit
asignado, solo afecta a este contacto.
La transición de un contacto de “abierto” a “cerrado” o de “falso”
a “verdadero” se designa como flanco creciente o positivo.

Consultar flanco de señal descendente de un operando --|N|--


El estado de este contacto es TRUE durante un ciclo del
programa cuando detecta un flanco descendente (ON a OFF) en el bit
asignado, solo afecta a este contacto.
La transición de “cerrado” a “abierto” o de “verdadero” a “falso” se
designa como flanco decreciente o negativo.

Ejemplo: Activado con un flanco descendente.

Ejemplo: El flanco positivo solo se detecta en I0.2 y el negativo solo se detecta I0.4. Hay que
poner las marcas para que funcione y no se pueden utilizar estas marcas de nuevo en el
programa. Para el set deben estar activas I0.0, I0.1, I0.3 y un flanco positivo en I0.2. Para el
reset tenemos I0.4 activa y cuando la quitemos (flanco descendente) hará el reset.

Autómatas Programables S7-1200 47


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Activar operando con flanco de señal ascendente --(P)--

El bit asignado es TRUE cuando se detecta un flanco ascendente (OFF a ON) en el flujo
de corriente que entra a la bobina (RLO), se activa un operando durante un ciclo de programa.

Activar operando con flanco de señal descendente --(N)--


El bit asignado es TRUE cuando se detecta un flanco ascendente (ON a OFF) en el flujo
de corriente que entra a la bobina (RLO), se activa un operando durante un ciclo de programa.

Ejemplo: Si tenemos un flanco en el flujo de corriente a M0.0, se activa Q0.0 con un set y en
I0.4 reset de Q0.0. La marca M0.0 no es una marca de flancos, en su lugar se podría poner
una salida, pero no daría tiempo a ver la activa porque se activa tan solo un ciclo de scan. En
cuanto M0.1 es la marca de flancos para evaluar el flanco.

Consultar flanco de señal ascendente del RLO P_TRIG


El flujo de corriente o estado lógico de la salida Q es TRUE cuando se detecta un flanco
ascendente (OFF a ON) en el flujo de corriente de CLK.

Consultar flanco de señal descendente del RLO N_TRIG

El flujo de corriente o estado lógico de la salida Q es TRUE cuando se detecta un flanco


descendente (ON a OFF) en el flujo de corriente de CLK.

Nota: La dirección de la marca de los flancos no se puede utilizar más de una vez en el programa,
puesto que, de lo contrario, se sobrescribe el bit de marcas. Esto afecta la evaluación de flancos de
forma que el resultado deja de ser unívoco. El área de memoria de la marca de flancos debe
encontrarse en un bloque de datos (sección 'Static' en un FB) o en el área de marcas.

Autómatas Programables S7-1200 48


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Ejemplo: Funciona como el anterior ejemplo.

5.3. TEMPORIZADORES
Disponemos de cuatro tipos de temporizadores:
 Impulso TP
 Retardo al conectar TON
 Retardo al desconectar TOF
 Acumulador de tiempo TONR

Los temporizadores no requieren de ninguna zona memoria sino que al insertar cualquier
temporizador CEI automáticamente se genera un DB de instancia individual IEC_Timer_DB
que lo llamamos como queramos, lo normal es utilizar un nombre que nos indique su función
en nuestro programa.

Autómatas Programables S7-1200 49


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Los valores PT (tiempo predeterminado) y ET (tiempo transcurrido) se almacenan en los


datos de DB IEC_TIMER como enteros dobles con signo de 32 bits que representan
milisegundos.
Los datos TIME utilizan el identificador T# y pueden introducirse como unidad de tiempo
simple ("T#200ms ó 200) y como unidades de tiempo compuestas "T#2s_200ms", admite como
máximo hasta T#24d_20h_31m_23s_647ms que es 2.147.483.647 ms.

 TEMPORIZADOR DE IMPULSO TP

Permite activar la salida Q por un tiempo programado PT cuando detecta un impulso en


la entrada del temporizador. Aunque se de otro impulso en la entrada no cambiará nada hasta
que transcurra el tiempo programado en PT. El valor de tiempo actual se puede consultar en la
salida ET.

Ejemplo: Un motor activado por impulso se mantiene durante 15 s, después se para.

Arrancar temporizador como impulso ---( TP )---

También podemos iniciarlo como una bobina, con la instrucción arrancar temporizador
CEI como impulso con el fin de ahorrar instrucciones. Previamente se debe crear el DB de
instancia del temporizador.
Ejemplo: Funciona igual que el anterior ejemplo.

Autómatas Programables S7-1200 50


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 TEMPORIZADOR DE RETARDO AL CONECTAR TON

El temporizador TON pone la salida Q a ON tras un tiempo de retardo programado PT. La


instrucción se inicia cuando el resultado lógico (RLO) de la entrada IN cambia de "0" a "1"
(flanco de señal ascendente). La salida Q permanece activada mientras la entrada de arranque
esté puesta a "1". Cuando el estado lógico de la entrada de arranque cambia de "1" a "0", se
desactiva la salida Q. El valor de tiempo actual se puede consultar en la salida ET.

Ejemplo: Pulsando Marcha (NA) arrancamos el Motor 1 y el Piloto ámbar, pasados los 10
segundos arranca Motor 2 y el Piloto verde, mantenemos el Motor 1 pero se apaga el Piloto
ámbar con el contacto del temporizador (“Tiempo_1”.Q), todo se parará pulsando el paro (NC)
o si tenemos una sobrecarga en el Térmico (NC).

Arrancar temporizador como retardo a la conexión ---( TON )---


También podemos iniciarlo como una bobina, con la instrucción arrancar temporizador
CEI como retardo a la conexión. Previamente se debe crear el DB de instancia del
temporizador.

Autómatas Programables S7-1200 51


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Ejemplo: Funciona igual que el anterior ejemplo.

 TEMPORIZADOR DE RETARDO AL DESCONECTAR TOF


El temporizador TOF pone la salida Q a OFF tras un tiempo de retardo programado PT.
La instrucción se inicia cuando el resultado lógico (RLO) de la entrada IN cambia de "1" a "0"
(flanco de señal descendente). La salida Q permanece activada mientras la entrada de
arranque esté puesta a "0". Cuando el estado lógico de la entrada de arranque cambia de "0" a
"1", se desactiva la salida Q. Si el estado lógico de la entrada IN cambia a "1" antes de que
transcurra el tiempo PT, se inicializa el temporizador. El valor de tiempo actual se puede
consultar en la salida ET.

Ejemplo: Pulsando Marcha (NA) arrancamos el Motor 1 y el Piloto verde, estará funcionando
hasta que lo paremos bien pulsando el Paro (NC) o si tenemos una sobrecarga en el
Térmico_1 (NC), en ese momento arranca Motor 2 y el Piloto ámbar. Este segundo motor se
mantendrá arrancado durante 8 segundos siempre y cuando no pulsemos el Paro o se tenga
una sobrecarga en el Térmico_2.

Autómatas Programables S7-1200 52


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Arrancar temporizador como retardo a la desconexión ---( TOF )---


También podemos iniciarlo como una bobina, con la instrucción arrancar temporizador
CEI como retardo a la desconexión. Previamente se debe crear el DB de instancia del
temporizador.
Ejemplo: Funciona igual que el anterior ejemplo.

Autómatas Programables S7-1200 53


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 TEMPORIZADOR DE ACUMULADOR DE TIEMPO TONR

El temporizador TONR permite acumular valores de tiempo dentro de un periodo definido


por el parámetro PT. Cuando el estado lógico de la entrada IN cambia de "0" a "1"(flanco de
señal ascendente), se ejecuta la instrucción y se empieza a contar el tiempo PT. Mientras
transcurre el tiempo PT se van acumulando los valores de tiempo que se leen cuando el estado
lógico de la entrada IN sigue en "1". Cuando esta entrada IN cambia "0" se pará el contaje de
PT esperando un nuevo cambio de la entrada IN a "1", en ese momento seguirá con el
contando tiempo PT. Una vez se ha alcanzado el tiempo PT, la salida Q devuelve el estado
lógico "1". El parámetro Q permanece a "1" aunque el estado lógico del parámetro IN cambie
de "1" a "0" (flanco de señal descendente). El tiempo acumulado se deposita en la salida ET y
se puede consultar allí.

Ejemplo: Acumulador de tiempo si mantenemos a la I0.0 hasta que pasen los diez segundos.

Arrancar acumulador de tiempo ---( TONR )---

También podemos iniciarlo como una bobina, con la instrucción acumulador de tiempo
con el fin de ahorrar instrucciones. Previamente se debe crear el DB de instancia del
temporizador.

Inicializar temporizador ---( RT )---

Inicializa un temporizador borrando los datos de tiempo almacenados en el bloque de


datos instancia del temporizador indicado.
Autómatas Programables S7-1200 54
Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Ejemplo: Acumulador de tiempo si mantenemos a la I0.0 hasta que pasen los diez segundos.
Después es necesario inicializar el temporizador con I0.1.

Cargar tiempo ---( PT )---

La bobina PT (Cargar temporizador), carga un nuevo valor de tiempo PRESET


(predeterminado) en el IEC_Timer especificado.

Ejemplo: Si pulsamos I0.0 temporizamos 15s, si antes de llegar a 10 s pulsamos I0.1 solo
temporiza hasta 10s.

5.4. CONTADORES
Disponemos de tres tipos de contadores:
 Contador ascendente CTU
 Contador descendente CTD
 Contador ascendente-descendente CTUD

Los contadores no requieren de ninguna zona memoria al igual que los temporizadores,
sino que al insertar cualquier contador CEI automáticamente se genera un DB de instancia
individual IEC_Counter_DB que lo llamamos como queramos, lo normal es utilizar un nombre
que nos indique su función en nuestro programa.

El valor del parámetro CV (valor de contaje actual) y el parámetro PV (valor de contaje


predeterminado) son enteros. El tipo de entero se puede seleccionar en el contador.

Autómatas Programables S7-1200 55


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 CONTADOR ASCENDENTE CTU


CTU se incrementa en 1 cuando el valor del parámetro CU cambia de 0 a 1.
Si el valor del parámetro CV (valor de contaje actual)
es mayor o igual al valor del parámetro PV (valor de contaje
predeterminado), el parámetro de salida del contador Q = 1.
Si el valor del parámetro de reset R cambia de 0 a 1,
el valor de contaje actual se pone a 0. La figura siguiente
muestra un cronograma de la instrucción CTU con un valor
de contaje de entero sin signo (donde PV = 3).

Ejemplo: Después de 5 impulsos de la entrada I 0.0 se activa Q 0.0.

 CONTADOR DESCENDENTE CTD

CTD se decrementa en 1 cuando el valor del parámetro CD cambia de 0 a 1. Si el valor


del parámetro CV (valor de contaje actual) es menor o igual a 0, el parámetro de salida del
contador Q = 1. Si el valor del parámetro LOAD
cambia de 0 a 1, el valor del parámetro PV (valor
predeterminado) se carga en el contador como
nuevo CV (valor de contaje actual).
La figura muestra un cronograma de la
instrucción CTD con un valor de contaje de
entero sin signo (donde PV = 3).

Autómatas Programables S7-1200 56


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Ejemplo: Pulsamos I0.3 para poner el contador CTD a 5, después de 5 impulsos de la entrada
I 0.2 se activa Q 0.1.

 CONTADOR ASCENDENTE-DESCENDENTE CTUD


CTUD se incrementa o decrementa en 1 cuando el estado lógico de las entradas de
contaje ascendente (CU) o descendente (CD) cambia de 0 a 1. Si el valor del parámetro CV
(valor de contaje actual) es mayor o igual al valor del parámetro PV (valor predeterminado), el
parámetro de salida del contador QU = 1.
Si el valor del parámetro CV es menor o igual a cero, el parámetro de salida del contador
QD = 1. Si el valor del parámetro LOAD cambia de 0 a 1, el valor del parámetro PV (valor
predeterminado) se carga en el contador como nuevo CV (valor de contaje actual). Si el valor
del parámetro de reset R cambia de 0 a 1, el valor de contaje actual se pone a 0.
La figura siguiente muestra un cronograma de la instrucción CTUD con un valor de
contaje de entero sin signo (donde PV = 4).

Ejemplo: Un recinto tiene un límite de personas, así que se quiere contar las personas que
entran y salen, para el control de acceso se dispone de un torno giratorio (NA) en la entrada
I0.4 y otro a la salida I0.5, cada vez que pase una persona por el torno de entrada un contador
se incrementará, cada vez que salga una persona el contador descuenta una unidad. Cuando
halla 25 o más personas se encenderán un letrero luminoso “Prohibido el paso” Q0.2, si el
recinto está vacío se señaliza con otro luminoso “Vacío” Q0.3. Para poner el contador a cero se
dispone de un reset del contador con un pulsador (NA) I0.6.

Autómatas Programables S7-1200 57


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

5.5. COMPARACIÓN
 COMPARADORES CMP

Las instrucciones de comparación se utilizan para comparar dos “IN1” e “IN2”valores de


un mismo tipo de datos. Si la comparación de contactos es TRUE (verdadera), se activa el
contacto.
Los tipos de datos que se pueden utilizar en esta instrucción son: Byte, Word, DWord.
Entero, Número en coma flotante, String, Char, Time, DTL, constante. El TIA Portal adapta la
instrucción en función del dato utilizado.

Nota: Hay que tener la precaución de que los dos datos a comparar sean del mismo tipo de datos.
En caso contrario el TIA Portal nos avisará de este conflicto.

Tipo de relación La comparación se cumple si:


== IN1 es igual a IN2
<> IN1 es diferente de IN2
>= IN1 es mayor o igual a IN2
<= IN1 es menor o igual a IN2
> IN1 es mayor que IN2
< IN1 es menor que IN2

Ejemplo: Se activa la salida Q0.4 cuando en el Contador_3 hay 5 o más.

Autómatas Programables S7-1200 58


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

5.6. TRANSFERENCIA
 COPIAR VALOR (MOV)
La función MOVE es ejecutada cuando tenemos un flanco
ascendente en en la entrada EN, copia un elemento de datos
almacenado en una dirección indicada IN a una dirección diferente
OUT.

IN y OUT soportan los siguientes tipos de datos: SInt, Int, DInt, USInt, UInt, UDInt, Real,
LReal, Byte, Word, DWord, Char, Array, Struct, DTL, Time. Por tanto puede trabajar a: 8 bits,
16 bits o 32 bits.
Se pueden activar varias salidas a la vez.

El valor a introducir puede ser en Decimal (255), Hexadecimal (16#FF), Octal (8#377), Binario
(2#11111111).

Ejemplo: Con I0.0 se activan todas las salidas del byte 0 (QB0), pulsamos I0.1 se transfiere la
información a la palabra MW0. Pulsamos I0.2 tenemos un 0 en QB0 y en MW0, desactivamos
entonces las salidas.

Autómatas Programables S7-1200 59


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

5.7. FUNCIONES MATEMÁTICAS

Las instrucciones matemáticas: "Sumar", "Restar", "Multiplicar" y "Dividir". En estas


operaciones los parámetros IN1, IN2 y OUT deben ser del mismo tipo de datos.

ADD  Sumar  (IN1 + IN2 = OUT)

SUB  Restar  (IN1 - IN2 = OUT)

MUL  Multiplicar  (IN1 * IN2 = OUT)

DIV  Dividir  (IN1 / IN2 = OUT)

Parámetro Tipo de datos Descripción

IN1, IN2 SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, constante Entradas de la operación matemática.

OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Salida de la operación matemática.

 SUMAR (ADD)

Se pueden sumar varios operandos:

 RESTAR (SUB)

Autómatas Programables S7-1200 60


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 MULTIPLICAR (MUL)  DIV IDIR (DIV)

Ejemplo:

 INCREMENTAR (INC)
Incrementa un valor de un número entero con o sin signo: Valor IN_OUT +1 = valor IN_OUT

Autómatas Programables S7-1200 61


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 DECREMENTAR (DEC)

Decrementa un valor de un número entero con o sin signo: Valor IN_OUT - 1 = valor IN_OUT

Ejemplo: Si pulsamos I0.0 incrementa en un 1 la doble palabra MD100 tipo entero, en I0.1 la
decrementa en 1 y en I0.2 la ponemos a 0.

Autómatas Programables S7-1200 62


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

6. FUNCIONES, BLOQUES DE FUNCIÓN Y BLOQUES DE DATOS


6.1. FUNCIONES FC
Una función contiene un programa que se ejecuta cada vez que la función es llamada por
otro bloque lógico.
Las funciones (FC) son bloques lógicos sin memoria. Los datos de las variables
temporales se pierden tras haberse procesado la función. Los datos temporales no se
almacenan. Para almacenar los datos de forma permanente es preciso asignar el valor de
salida a una posición de memoria global, p. ej. al área de marcas o un DB global.´
Las funciones se pueden utilizar p. ej. para los siguientes fines:
 Contienen instrucciones a modo de subrutinas.
 Devolver valores de función al bloque que llama, p. ej. en funciones matemáticas
 Ejecutar funciones tecnológicas, p. ej. controles individuales con operaciones
lógicas binarias
Una FC no tiene ningún bloque de datos instancia asociado (DB). La FC usa la pila de
datos locales para los datos temporales utilizados para calcular la operación.
Una función se puede llamar varias veces en diferentes puntos de un programa. Esto
facilita la programación de funciones complejas que se repiten con frecuencia.

6.2. BLOQUES DE FUNCIÓN FB

Los bloques de función contienen subprogramas que se ejecutan cada vez que un bloque
de función es llamado por otro bloque lógico.
Los bloques de función son bloques lógicos que depositan sus valores de forma
permanente en bloques de datos de instancia, de modo que siguen disponibles tras procesar el
bloque.

Los parámetros de entrada, salida y entrada/salida se depositan de forma permanente en


bloques de datos de instancia. Gracias a ello, continúan disponibles tras el procesamiento
del bloque. Por este motivo, se conocen también como bloques con memoria.
Los bloques de función se utilizan en tareas que no se pueden realizar con funciones:
 Cuando son necesarios temporizadores y contadores.
 Cuando hay que almacenar información en el programa.
 Por ejemplo una preselección del modo de operación con un pulsador.

Un bloque de función también se puede llamar varias veces en diferentes puntos de un


programa. Esto facilita la programación de tareas complejas que se repiten con frecuencia.

Autómatas Programables S7-1200 63


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Instancias de bloques de función:

La llamada de un bloque de función FB se denomina instancia. A cada instancia de un


bloque de función se asigna un área de memoria que contiene los datos que utiliza el bloque de
función. Esta memoria es proporcionada por bloques de datos DBs que son creados
automáticamente por el software.

Ejemplo instancia: La figura siguiente muestra un OB que llama un FB tres veces, utilizando
un bloque de datos diferente para cada llamada. Esta estructura permite que un FB genérico
controle varios dispositivos similares (p. ej. motores), asignando un bloque de datos instancia
diferente a cada llamada de los distintos dispositivos. Cada DB instancia almacena los datos (p.
ej. velocidad, tiempo de aceleración y tiempo de operación total) de un dispositivo en particular.

La memoria también puede estar disponible para varias instancias como multiinstancia
en un bloque de datos.

 TIPOS DE PARAMETROS

Se pueden declarar los tipos de parámetros siguientes:

 Input, Output, InOut y Ret_Val: estos parámetros definen las variables de entrada, las
variables de salida, variables entrada-salida y el valor de retorno del bloque lógico. El
nombre de la variable introducida en este punto se emplea de forma local durante la
ejecución del bloque lógico. Normalmente, no se emplea el nombre de variables
globales en la tabla de variables.
 Estáticos (solo FBs): las variables estáticas se utilizan para almacenar resultados
intermedios estáticos en el bloque de datos instancia. Los datos estáticos se retienen
hasta que se sobrescriben, lo cual puede ocurrir después de varios ciclos. Los nombres
de los bloques, los cuales se llaman en este bloque lógico como multiinstancia, también
se almacenan en los datos locales estáticos.
 Temp: estos parámetros son variables temporales que se emplean durante la ejecución
del bloque lógico.

Autómatas Programables S7-1200 64


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Parámetros de bloque que forman la interfaz del bloque para la llamada en el programa:

Tipo Denominación Función Disponible en


Funciones, bloques de
Parámetros de Parámetros cuyos valores lee el
Input función y en algún
entrada bloque.
bloque de organización
Parámetros de Parámetros cuyos valores escribe el Funciones y bloques de
Output
salida bloque. función
El bloque lee el valor de estos
Parámetros de parámetros al efectuar la llamada y lo Funciones y bloques de
InOut
entrada/salida vuelve a escribir en ellos tras la función
ejecución.

Datos locales que sirven para almacenar resultados intermedios:

Tipo Denominación Función Disponible en


Variables que sirven para almacenar
Funciones, bloques de
Datos locales resultados intermedios temporales.
Temp función y bloques de
temporales Los datos temporales se conservan
organización
solo durante un ciclo.
Variables que sirven para almacenar
resultados intermedios estáticos en
Datos locales el bloque de datos de instancia. Los
Static Bloques de función
estáticos datos estáticos se conservan hasta
que se vuelven a escribir, también a
lo largo de varios ciclos.

Nota: Las Funciones FC o Bloques de Función FB con parámetros, que se pueden llamara varias
veces en nuestro programa se les denomina plantillas.

Precauciones y restricciones usando plantillas de funciones FC:

 Si se utiliza enclavamiento bien con puertas lógicas o Set y Reset en sus diferentes
formas, la marca o salida a utilizar debe ser un parámetro InOut en la función.

Autómatas Programables S7-1200 65


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 En el uso de flancos, la marca de flancos debe ser un parámetro InOut.

 Si se utilizan temporizadores o contadores deben ser parámetros InOut pero además se


deben crear los bloques de datos individuales previamente, se crearán tantos DBs como
temporizadores o contadores se necesiten.

Autómatas Programables S7-1200 66


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

6.3. BLOQUES DE DATOS GLOBALES

Al contrario que los bloques lógicos, los bloques de datos no contienen instrucciones,
sino que sirven para almacenar datos de usuario.
Por tanto, los bloques de datos contienen datos variables, con los que trabaja el
programa de usuario.
Los bloques de datos globales almacenan datos de usuario utilizables desde todos los
demás bloques.
El tamaño máximo de los bloques de datos varía en función de la CPU. La estructura de
bloques de datos globales puede definirse a discreción.
Algunos ejemplos de aplicación son:
 Guardar la información en un sistema de almacenamiento. "¿Dónde está cada
producto?"
 Guardar recetas de determinados productos.
Todo bloque de función, toda función o todo bloque de organización puede leer datos de
un bloque de datos global o escribir datos en él. Estos datos se conservan en el bloque de
datos incluso al cerrarlo.

6.4. BLOQUES DE DATOS DE INSTANCIAS Y MULTIINSTANCIAS


La llamada de un bloque de función FB se denomina instancia. A cada llamada de un
bloque de función con transferencia de parámetros se asigna un bloque de datos de
instancia que sirve de memoria de datos. En él se depositan los parámetros actuales y los
datos estáticos del bloque de función.
El tamaño máximo de los bloques de datos instancia varía en función de la CPU. Las
variables declaradas en el bloque de función determinan la estructura del bloque de datos de
instancia.
Un bloque de datos global y un bloque de datos de instancia pueden estar abiertos
simultáneamente.

Utilización de instancias individuales y multiinstancias:

Los bloques de datos de instancia pueden asignarse como se indica a continuación:


 Llamada como instancia individual: Un bloque de datos de instancia propio por
cada instancia de un bloque de función.
 Llamada como multiinstancia: Un bloque de datos de instancia para varias
instancias de uno o de varios bloques de función

Autómatas Programables S7-1200 67


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 INSTANCIAS INDIVIDUALES

Por instancia individual se entiende la llamada de un bloque de función FB al que está


asignado un bloque de datos de instancia propio.
Si se crea el bloque de función según las normas de los bloques estándar, dicho bloque
podrá ser llamado varias veces. No obstante, en cada llamada como instancia individual debe
asignar otro bloque de datos de instancia.

Ejemplo de instancias individuales:


La figura siguiente muestra el control de dos motores con un bloque de función FB10 y
dos bloques de datos diferentes:
Los diferentes datos de cada uno de los motores (p. ej. número de revoluciones, tiempo
de aceleración, tiempo total de servicio) se almacenan en los distintos bloques de datos de
instancia DB10 y DB11.

OB1

FC1
Llamada FC1 DB10
Llamada FB10 con
FB10 DB de instancia 1ª
instancia DB10
Motor 1 llamada datos
para el control del
motor 1.
motor 1.
Llamada FB10 con
instancia DB11 DB11
para el control del FB10 DB de instancia 2ª
motor 2. Motor 2
llamada datos
motor 2.

Nota: Algunos comandos como temporizadores y contadores se comportan como bloques de función.
Si son llamados, representan instancias y necesitan un área de memoria asignada, p. ej. en forma de
un bloque de datos de instancia.

 MULTIINSTANCIAS

Es posible que, debido al espacio de memoria de las CPU utilizadas, solo quiera o pueda
destinar una cantidad limitada de bloques de datos para datos de instancia.
Si en su programa de usuario, en un bloque de función son llamados otros bloques de
función, temporizadores, contadores, etc. ya existentes, entonces puede llamar a estos otros
bloques de función sin DB de instancia propios (es decir, adicionales).
Seleccione simplemente Multiinstancia en las opciones de llamada:
Autómatas Programables S7-1200 68
Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Notas: Las multiinstancias ofrecen a un bloque de función FB que ha sido llamado la posibilidad de
almacenar sus datos en el bloque de datos de instancia del bloque de función que llama.
El bloque que debe ser siempre un bloque de función FB.
Esto permite concentrar los datos de instancia en un bloque de datos de instancia y aprovechar mejor
el número de DBs disponibles.
Esto debe hacerse siempre que el bloque que llama deba seguir utilizándose como bloque estándar.

Ejemplo de multiinstancia:

La siguiente imagen muestra la llamada de un contador de tipo CTUD (contador


ascendente y descendente) que es llamado dos veces.
Los distintos datos de ambos contadores se guardan como multiinstancias diferentes en
el bloque de datos de instancia DB1 del bloque de función invocante FB1.

OB1
Llamada DB1
FB1
FB1 con DB de
Llamada
multiinstancia Contador 1
instancia Contador 1
para FB1. tipo CTUD.
DB1. como
Aquí están
multiinstancia.
disponibles el
contador 1 y el
Llamada Contador 2
contador 2 como
Contador 2 tipo CTUD.
multiinstancia.
como
multiinstancia.

Ejemplo de multiinstancia:
La figura siguiente muestra cómo varios bloques de función diferentes depositan sus
datos en un bloque invocante. El FB_pieza llama sucesivamente el FB_rejilla, el FB_troquel y el
FB_cinta. Los bloques llamados depositan sus datos en el DB_pieza, que es el bloque de datos
instancia del bloque que llama.

Autómatas Programables S7-1200 69


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Ejemplo de multiinstancia:

Un bloque de datos instancia para varias instancias de un bloque de función


La figura siguiente muestra cómo un bloque de función, que se llama en varias instancias,
deposita los datos de todas las instancias en un bloque de datos instancia.

El bloque de función FB_motores llama tres instancias del FB_motor. Las instancias son
"Motor_1", "Motor_2" y "Motor_3". Para cada llamada se utilizan diferentes datos de instancia.
Sin embargo, todos los datos de instancia se almacenan en un único bloque de datos instancia.

Autómatas Programables S7-1200 70


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Ejemplo de aplicación de una Plantilla de Función FC:


Vamos a definir una función “Matemática” que podemos utilizar todas las veces que
queramos. Tenemos dos números A y B, primero se suman después se multiplican por 10 y
finalmente se dividen por 2.
Pulsar en Agregar nuevo bloque en dispositivos.

Definimos las variables según la siguiente imagen:

Para hacer esta función vamos a utilizar las instrucciones matemáticas y trabajaremos con
enteros:
ADD (sumar), MUL (Multiplicar) y DIV (dividir).

Autómatas Programables S7-1200 71


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Una vez creada la función Matematica [FC1] vamos a Main (OB1) y la llamamos:

Introducimos las entradas y salidas, después la llamamos otra vez y hacemos lo mismo, es
decir trabajamos dos veces con esta función:

Autómatas Programables S7-1200 72


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

El reultado lo vemos, en la tabla de observación la hemos forzado MW0 a valor 100 y la MW2 a
200.

Autómatas Programables S7-1200 73


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Ejemplo de aplicación de una Plantilla de Bloque de Función FB:


Vamos a definir un bloque de función FB ‘Reloj de pulsos’ que me active un bit un tiempo ON
y desactive un tiempo OFF estos tiempos serán del valor que queramos.
Pulsar en Agregar nuevo bloque en dispositivos.

Definimos Variables en el FB:


Nombre Uso Tipo
Activar Input Bool
Tiempo_ON Input Time
Tiempo_OFF Input Time
Salida Output Bool

Autómatas Programables S7-1200 74


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

En temporizadores seleccionamos el TON. En la ventana del temporizador lo denominamos


Tempo_ON es una multiinstancia y pulsamos aceptar.

Creamos otro temporizador TON que lo llamaremos Tempo_OFF y asignamos las consignas
de tiempos a cada temporizador que son las variables declaradas tipo Time.

Autómatas Programables S7-1200 75


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

El programa a introducir en el FB es el siguiente:

Una vez creado el bloque de función FB vamos a Main (OB1) y lo llamamos:

Se creará el DB1 que es el Reloj_Pulsos_DB.

Autómatas Programables S7-1200 76


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Introducimos 1 segundo para Tiempo_On, 2 segundos para Tiempor_OFF, I0.0 para activar,
Q0.0 para salida por ejemplo. Así tendremos un reloj de pulsos Q0.0 se activa 1 segundo y
desactivada 2 segundos.

El bloque de función lo hemos llamado una vez, pero podemos llamarlo tantas veces como
queramos, cada vez que lo llamemos se creará un nuevo DB de datos.

Autómatas Programables S7-1200 77


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Ejemplo de aplicación de un Bloque de Datos Global DB:

Tenemos un proceso idéntico para realizar tres tipos de mezclas de dos productos.
En ese proceso, se hace una mezcla de una cantidad del producto A con otra cantidad de otro
producto B durante un tiempo determinado.
Al accionar un pulsador de inicio de mezcla se abren las dos electroválvulas A y B que dan
paso a los productos y se pone en marcha el mezclador. Según van pasando los tiempos, se
cierra la válvula A, se cierra la válvula B y se para el mezclador.

Mezcla 1 (DB1) Mezcla 2 (DB2) Mezcla 3 (DB3)


Tiempo producto A 5 segundos 7 segundos 8 segundos
Tiempo producto B 8 segundos 5 segundos 8 segundos
Tiempo Mezclador 12 segundos 10 segundos 15 segundos

Entradas Salidas
I0.0 S1 (NA) Selector Mezcla 1 Q0.0 Y1 Válvula A

I0.1 S2 (NA) Selector Mezcla 2 Q0.1 Y2 Válvula B

I0.2 S3 (NA) Selector Mezcla 3 Q0.2 KM1 Mezcladora

I0.3 S4 (NA) Pulsador Iniciar

Autómatas Programables S7-1200 78


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Para ello necesitamos crear los tres bloques de datos globales DB1, DB2 y DB3.

Autómatas Programables S7-1200 79


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Después creamos una función Mover_Datos [FC1] cargamos los datos de los temporizadores
de los tres DBs en tres dobles palabras MD100, MD104 y MD108 tipo time de 32 bits.

Autómatas Programables S7-1200 80


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

En el Main [OB1] llamamos a la FC1 y con el pulsador iniciar arrancamos los tres
temporizadores:

Autómatas Programables S7-1200 81


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Autómatas Programables S7-1200 82


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

7. CABLEADO DE ENTRADAS Y SALIDAS INTEGRADAS


El autómata S7-1214C integra 14 entradas digitales, 10 salidas digitales y 2 entradas
analógicas. Que se conectarán según el modelo de la CPU:

Conexión para Simular entradas:

En el siguiente esquema se muestra como conectar los interruptores a las entradas


digitales y un potenciómetro a la entrada analógica para simular en el autómata las entradas:

Autómatas Programables S7-1200 83


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

7.1. SENSORES DIGITALES

Se pueden clasificar, atendiendo al número de hilos de conexión que contienen:

Conexión a dos hilos:


Cuando el sensor se conecta en serie con la carga. Esta conexión presenta dos
problemas, en primer lugar, cuando está en reposo circula corriente residual para la
alimentación del detector, que también circula a través de la carga.
En segundo lugar, el detector provoca una caída de
tensión cuando se activa, lo que puede provocar que no le
llegue suficiente tensión a la carga.

Conexión a tres hilos:


En función del tipo de transistor utilizado existen dos grandes grupos:
 PNP que tienen salida positiva, carga entre salida y 0V
 NPN que tienen salida negativa, carga entre +V y salida.

Estos detectores se diferencian de los de dos hilos, en que la corriente de excitación del
sensor no pasa a través de la carga, y en la excitación, la caída de tensión del sensor no afecta
a la tensión de la carga. El más frecuente para detectores de CC.
Normalmente se utiliza la construcción PNP, pues en la NPN si se produce un fallo en el
cable de salida del detector hacia la carga, al hacer contacto con el armario eléctrico, activa la
carga sin encontrarse activado el detector.
Autómatas Programables S7-1200 84
Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Conexión a cuatro hilos:

Detectores de CC, donde emplean dos hilos para la


alimentación y otros dos para el control de la carga con un
contacto abierto y otro cerrado. Con salida por transistor (PNP o
NPN).

Conexión de sensores a 3 y 4 cuatro hilos al S7-1200:

8. SEÑALES ANALÓGICAS
Las tarjetas analógicas de S7 convierten:

 Para la lectura de entradas analógicas, un valor analógico procedente de un sensor o


transductor en un valor digital de 16 bits que se almacena en la periferia del S7.

 Para las salidas analógicas, un valor digital de 16 bits de la periferia de salidas en una
señal analógica mediante un conversor digital-analógico.

Existen dos parámetros que determinan una entrada o una salida analógica:

 El tipo de sonda (en el caso de entradas), o el tipo de actuador (en el caso de salidas),
a conectar (4-20 mA, 0-10 V, etc...).

 La resolución a alcanzar en la lectura o escritura. Cuanta mayor sea la resolución,


mayor será la exactitud de la lectura y menor el error entre el valor real y el almacenado
en el autómata. Por contra, también será mayor el tiempo de conversión analógico /
digital y por lo tanto las variaciones en el proceso tardarán más en reflejarse en el PLC.

Autómatas Programables S7-1200 85


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

8.1. DATOS DE ENTRADAS ANALÓGICAS INTEGRADAS

El autómata S7-1214C integra 2 entradas analógicas, con una resolución de 12 bits (11
bits + signo). Con las siguientes características.

En la tabla se reproducen los valores en función de la resolución de la tarjeta. Al ser de


11 bits + signo tendremos que las medidas se irán incrementando en valores de 16 unidades
(10 hex en hexadecimal). Esto es, los 32768 valores que admite el canal irán ‘saltando’ de 16
en 16 (total de 2048 valores posibles para 11 bits de resolución).

Autómatas Programables S7-1200 86


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

8.2. RANGOS DE MEDIDA DE ENTRADAS Y SALIDAS ANALÓGICAS


 ENTRADAS ANÁLOGICAS
Medidas de tensión:

La más utilizada en la industria es 0-10V. El inconveniente de este tipo de lectura es que


al ser una tensión, las distancias sin atenuación de la señal debido a caídas de tensión en el
cable son relativamente cortas, por lo que la sonda debe estar cerca del cuadro eléctrico donde
se encuentre el módulo analógico. Los límites de lectura son:

Medidas de intensidad:
Dentro de las medidas de intensidad se suelen utilizar principalmente dos tipos: 0-20 mA.
y 4-20 mA. Las medidas por intensidad es el más utilizado en la lectura analógica, ya que
permite grandes distancias al ser la lectura por corriente, y a la vez es fácil reconocer la rotura
del hilo, ya que por debajo de 4 mA indica el mal funcionamiento del sensor.

Autómatas Programables S7-1200 87


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Medidas con Termo Resistencias (PT100):

Las sondas PT100 se utilizan para la medida de la temperatura en procesos que oscilen
entre 850ºC y –200ºC. Una PT100 es una termo-resistencia que varía su resistividad en función
de la temperatura que exista en contacto con la misma. A través de dos hilos (1 canal del
módulo de entradas analógicas), se hace circular por la PT100 una corriente constante. Otros
dos hilos toman la medida de la resistencia en los extremos de la sonda, con lo que se obtiene
la variación de resistencia, y al ser conocida su linealidad con respecto a la temperatura en los
márgenes anteriormente citados, se obtiene ésta.

Medidas con Termopar:


Los termopares se forman por la unión de dos metales diferentes que se conectan
eléctricamente produciendo una tensión. La tensión generada es proporcional a la temperatura
de la unión. Se trata de una tensión pequeña; un microvoltio puede representar varios grados.
La medición de temperatura con termopares consiste en medir la tensión de un termopar,
compensar las uniones adicionales y linealizar posteriormente el resultado.

Autómatas Programables S7-1200 88


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 SALIDAS ANÁLOGICAS
Salida a tensión +/- 10 V:

Salida a corriente de 0 a 20 mA y de 4 a 20 mA:

Nota: Para otros sensores analógicos o digitales consultar el manual de producto A5E02486683-06
Manual de sistema S7 1200 y manual del sensor correspondiente.

8.3. CONEXIÓN DE ENTRADAS ANALÓGICAS


Existen dos partes en una lectura analógica: la parte correspondiente al módulo de
entradas analógicas del PLC, y la correspondiente al propio transductor o aparato de campo
que genera la magnitud.
Desde el punto de vista del módulo del PLC puede ser:

 Entrada analógica activa: es la que se encarga de dar la energía a la conexión entre la


transductor y la sonda, ya sea para que exista tensión (0-10 V) o corriente (4-20 mA).
Se denomina a estas configuraciones “dos hilos”.

 Entrada analógica pasiva: es la que no genera ni tensión ni corriente en sus extremos,


limitándose a recoger la medida esperada y convertirla a un valor digital. Se denomina a
estas configuraciones “a cuatro hilos”.

Autómatas Programables S7-1200 89


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 CONEXIÓN DE SENSORES ANALÓGICOS MÓDULOS EXTERNOS


Transductor de medida a 2 hilos para intensidad:
El transductor de medida a 2 hilos convierte entonces la
magnitud medida en una intensidad. Los transductores a 2 hilos
deben ser sensores de medida aislados.

Transductor de medida a 3 hilos para intensidad o tensión:

Transductor de medida a 4 hilos para intensidad o


tensión:

 CONEXIÓN DE TERMORRESISTENCIAS Y RESISTENCIAS

Al medir la resistencia, el módulo suministra una corriente constante a través de los


bornes I+ e I-. La corriente constante se conduce a través de la resistencia a medir. Dicha
corriente se mide luego como caída de tensión. Es importante que los conductores de corriente
constante conectados se enlacen directamente con la termorresistencia (RTD)/resistencia.

Autómatas Programables S7-1200 90


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Las mediciones con conexiones a 4 o 3 hilos parametrizadas compensan las resistencias


de potencia, alcanzando así una precisión mucho mayor que al medir con una conexión a 2
hilos. Las mediciones con conexión a 2 hilos captan no sólo la resistencia en sí, sino también
las resistencias de potencia.
Conexión de termo resistencias

Conexión de termopares con compensación interna

En la compensación interna es posible formar la unión fría en los bornes del módulo de
entradas analógicas. En este caso es necesario llevar los conductores de compensación hasta
el módulo analógico. El sensor de temperatura interno mide la temperatura del módulo y
genera una tensión de compensación adecuada. Con la compensación interna no se obtiene la
misma precisión que con la compensación externa. Es imprescindible conectar correctamente
la polaridad, pues de lo contrario se obtienen considerables resultados erróneos.

Autómatas Programables S7-1200 91


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

8.4. CONEXIÓN DE SALIDAS ANALÓGICAS

8.5. CONFIGURACIÓN DE LAS ENTRADAS Y SALIDAS ANALÓGICAS


 ENTRADAS ANALÓGICAS

En dispositivos y redes → seleccionar PLC_1 → Propiedades → Propiedades → AI2


(Entradas analógicas integradas en la CPU).

Autómatas Programables S7-1200 92


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Seleccionar tipo de integración para reducción del ruido y filtrado de la señal

Autómatas Programables S7-1200 93


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 SALIDAS ANALÓGICAS

En dispositivos y redes → seleccionar PLC_1 → Propiedades → Propiedades → AQ1


Signal Board por ejemplo (Salida analógica no integrada en la CPU).

Podemos seleccionar si queremos que la salida analógica sea en tensión o intensidad:

Autómatas Programables S7-1200 94


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Autómatas Programables S7-1200 95


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

8.6. INSTRUCIONES DE CONVERSIÓN

A las instrucciones de conversión podemos acceder en instrucciones básicas.

 CONVERTIR VALOR (CONVERT)


Lee el contenido de IN y lo convierte en otro tipo de datos en la salida OUT, según datos
que soporte instrucción.

 INSTRUCCIÓNES NORMALIZAR Y ESCALAR


En estas instrucciones utilizamos los siguientes parámetros:
EN: Cuando tengamos un 1 se ejecuta la función. Si hay un 0, la función es saltada (no se ejecuta).
VALUE: Valor de entrada.
MIN: Valor máximo.
MAX: Valor mínimo.
OUT: Valor de salida.
ENO: Devuelve el estado lógico "0" cuando se cumple una de las condiciones siguientes:

 La entrada de habilitación EN devuelve el estado lógico "0".

 El valor de la entrada MIN es mayor o igual al valor de la entrada MAX.

 El valor del número en coma flotante indicado está fuera del rango de los números normalizados.

 El valor de la entrada VALUE es NaN (resultado de una operación aritmética no válida).

Autómatas Programables S7-1200 96


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

NORMALIZAR

Normaliza el valor de la variable de entrada mapeándola en una escala lineal entre dos
valores comprendida en 0.0 y 1.0.

ESCALAR

La instrucción SCALE_X sirve para escalar el valor de una entrada o salida analógica
entre dos valores (máximo y mínimo). También podríamos escalar cualquier otro registro que
no sea una entrada analógica.

Ejemplo: Queremos controlar el valor de temperatura de una sonda que da 0 Voltios a 0ºC y
10 Voltios a 100ºC y queremos tener en MD80 el valor real de esa temperatura.

La entrada analógica IW64 se encuentra en el rango de valores válidos entre 0 y 27648.


Por tanto representa una temperatura en la que el valor 0 de la entrada analógica representa
0,0º C y 27648 representa 100,0º C.
Para transformar el valor analógico que es un entero en las correspondientes unidades
de ingeniería, se normaliza la entrada a un valor real (coma flotante) entre 0,0 y 1,0, a
continuación se escala entre 0,0 y 100,0. El valor resultante es la temperatura representada por
la entrada analógica en grados Celsius:

Por tanto 100.0 y 0.0 representan valores REALES de 32 bits.


En modo online tenemos los siguientes valores para 7,19 Voltios equivale a 71,91º C.

Autómatas Programables S7-1200 97


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

Gráficamente se podría representar (caso de 0-10V o 4-20mA): Para el caso de +/-10V (BIPOLAR)

Ejemplo: Queremos controlar la velocidad de un motor mediante un convertidor de frecuencia.


El variador tiene una consigna de 0-10 Voltios. Con 0 voltios, el motor ira a 0 rpm y con 10
voltios, ira a 1500 rpm. Iremos dando un valor a MD80 entre 0 y 1500, ese valor se convertirá
en un valor en la salida analógica entre 0 y 27648.
Para convertir las revoluciones de MD80 que se encuentra entre 0,0 y 1500,0 en un valor
para la salida analógica dentro del rango entre 0 y 27648, es necesario normalizar el valor
correspondiente a unidades de ingeniería en un valor entre 0,0 y 1,0, y a continuación escalarlo
al rango de la salida analógica, de 0 a 27648, así obtendremos a la salida una señal de 0-10 V.

En modo online forzamos MD80 a 1000 r.p.m. que es 6,67V.

Autómatas Programables S7-1200 98


Curso 14FP35CF165: Autómatas programables S7-1200 María C. Pérez Cabezas

 CONSIGNA DE MÁXIMO Y MÍNIMO DE UNA ENTRADA ANALÓGICA.


Sobre el ejemplo anterior, con una sonda de temperatura de 0 a 100 ºC que da una señal
de 0 a 10 V, se quiere tener una alarma de mínimo y una de máximo de una temperatura. La
temperatura la lee la entrada analógica IW64.

 Debe de activarse la alarma de máxima cuando el valor de la temperatura supere los 90ºC.
 Debe de activarse la alarma de mínima cuando el valor de la temperatura este por debajo de
40ºC.
 El I0.0 es el pulsador de enterado. Al accionarlo se borra la alarma de mínimo y de máximo (Las
alarmas de mínimo o máximo, no volverán a activarse hasta que su valor no suba (mínima) o
baje (máxima) del valor de la consigna y se den de nuevo las condiciones de activación de las
alarmas.

Autómatas Programables S7-1200 99

También podría gustarte