Está en la página 1de 123

Guía Express

TIA Portal
PROGRAMACIÓN DE PLC
SIEMENS
CONTENIDO

CAP. 1 - HARDWARD SIMATIC S7-1200 ............................................................................................... 4


1.1 PARTES DEL SIEMENS S7-1200 ................................................................................................. 4
1.2 ENTRADAS Y SALIDAS DIGITALES INTEGRADAS (DI14/ DO10) 14 ENTRADAS DIGITALES ... 6
10 SALIDAS DIGITALES .......................................................................................................................... 6
1.3 ENTRADAS ANALÓGICAS INTEGRADAS (AI2)2 ENTRADAS ANALÓGICAS............................. 6
1.4 SIGNAL BOARDS Y COMMUNICATION BOARDS ....................................................................... 7
POR EJEMPLO SB ANALÓGICA (AQ1): ................................................................................................. 7
1.5 ELEMENTOS IMPORTANTES DE LA CPU ................................................................................... 7
1.6 ESTADOS OPERATIVOS DE LA CPU ............................................................................................... 8
1.7 CONFIGURAR LOS PARÁMETROS DE ARRANQUE ..................................................................... 10
1.8 CABLEADO DE ENTRADAS Y SALIDAS INTEGRADAS ............................................................ 11
1.9 CONEXIÓN PARA SIMULAR ENTRADAS: ...................................................................................... 12
1.10 SENSORES DIGITALES .............................................................................................................. 12
CONEXIÓN A DOS HILOS: .................................................................................................................... 12
CONEXIÓN A TRES HILOS: .................................................................................................................. 12
CONEXIÓN A CUATRO HILOS: ............................................................................................................ 13
CONEXIÓN DE SENSORES A 3 Y 4 CUATRO HILOS AL S7-1200: ..................................................... 13
CAP. 2 - PUESTA DE OPRACIÓN DE SOFTWARE ............................................................................. 14
2.1 ABRIR EL TIA PORTAL ................................................................................................................... 14
2.2 CREAR NUEVO PROYECTO .......................................................................................................... 15
2.3 UTILIZACIÓN DE LAS AYUDAS DEL SOFTWARE ......................................................................... 19
2.4 CONFIGURACIÓN DE LA VISTA DEL PROYECTO ........................................................................ 22
2.5 CONFIGURAR LA RED.................................................................................................................... 24
2.6 PUERTO PROFINET ................................................................................................................... 25
2.7 TECNOLOGÍA INTEGRADA Y DIAGNÓSTICO ........................................................................... 17
CONTADORES ALTA VELOCIDAD (HSC) ............................................................................................ 17
GENERADORES DE IMPULSOS (PTO/PVM) ....................................................................................... 17
SERVIDOR WEB ................................................................................................................................... 18
RELOJ EN TIEMPO REAL ..................................................................................................................... 18
CONTROL DE MOVIMIENTO ................................................................................................................ 19
CONTROL PID ....................................................................................................................................... 19
ONLINE Y DIAGNÓSTICO ..................................................................................................................... 20
CAP. 3 - PROGRAMA DE USUARIO .................................................................................................... 21
3.1. EJECUCIÓN DEL PROGRAMA................................................................................................... 21
TIEMPO DE CICLO O CICLO DE SCAN: ............................................................................................... 21
SECUENCIA EN LA EJECUCIÓN DEL PROGRAMA USUARIO: .......................................................... 22
3.2. BLOQUES DE PROGRAMA ........................................................................................................ 22
3.3. TIPO DE ESTRUCTURA DEL PROGRAMA DE USUARIO ......................................................... 24
ESTRUCTURA LINEAL ESTRUCTURA MODULAR .............................................................................. 25
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
CAP. 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
NORMA IEC 1131-3 (COMITÉ INTERNACIONAL ELÉCTRICO): .......................................................... 32
NORMA ALEMANA: ............................................................................................................................... 32
4.3 BITS DE ENTRADAS (I) Y SALIDAS (Q) ..................................................................................... 33
ESTRUCTURA DE OPERANDO ............................................................................................................ 33
CONSIDERACIONES: ........................................................................................................................... 33
BYTES ................................................................................................................................................... 34
DOBLES PALABRAS (DWORDS).......................................................................................................... 34
4.4 ACCEDER A MEMORIA DE DATOS LOCALES Y TEMPORALES.............................................. 35
4.5 ACCEDER A MEMORIA DE DATOS DBS ................................................................................... 36
4.6 DIRECCIONAMIENTO ................................................................................................................ 36
4.7 TIPOS DE DATOS ....................................................................................................................... 37
ENTERO ................................................................................................................................................ 37
FECHA Y HORA .................................................................................................................................... 38
ARRAY ................................................................................................................................................... 38
DATOS PLC ........................................................................................................................................... 39
DATOS DE PUNTERO ........................................................................................................................... 39
CAP. 5 - PROGRAMACIÓN BÁSICA .................................................................................................... 40
5.1 LENGUAJES DE PROGRAMACIÓN ........................................................................................... 40
5.2 INSTRUCCIONES LÓGICAS CON BITS ..................................................................................... 41
Contacto normalmente abierto ---| |--- .............................................................................................. 41
Contacto normalmente cerrado ---| / |--- ................................................................................................. 41
Asignación ---( )--- .............................................................................................................................. 41
Programas de ejemplo: .......................................................................................................................... 42
Invertir RLO --|NOT|-- ......................................................................................................................... 42
Contactos en serie (AND) (Función Y).................................................................................................... 43
Contactos en paralelo (OR) (FUNCIÓN O) ............................................................................................. 43
Duplicación de salidas: ........................................................................................................................... 43
Las funciones AND y OR, así como las salidas en paralelo pueden combinarse. ............................... 43
ENCLAVAMIENTOS .............................................................................................................................. 45
Activar salida: SET ---( S )---................................................................................................................... 45
Desactivar salida: RESET ---( R )--- ....................................................................................................... 45
Activar mapa de bits ---( SET_BF )--- .................................................................................................... 45
Desactivar mapa de bits ---( RESET_BF )--- ..................................................................................... 45
Flipflop de activación/desactivación SR .................................................................................................. 45
Flipflop de desactivación/activación RS .................................................................................................. 45
Otros ejemplos: ...................................................................................................................................... 46
Consultar flanco de señal ascendente de un operando --|P|-- ................................................................ 49
Consultar flanco de señal descendente de un operando --|N|-- .............................................................. 49
Activar operando con flanco de señal ascendente --(P)-- ....................................................................... 51
Activar operando con flanco de señal descendente --(N)-- ..................................................................... 51
Consultar flanco de señal ascendente del RLO P_TRIG......................................................................... 51
Consultar flanco de señal descendente del RLO N_TRIG ...................................................................... 51
CAP. 6 – TEMPORIZADORES Y COMPARADORES ........................................................................... 53
6.1 TEMPORIZADORES ................................................................................................................... 53
TEMPORIZADOR DE IMPULSO TP ................................................................................................... 54
Arrancar temporizador como impulso ---( TP )---............................................................................. 54
TEMPORIZADOR DE RETARDO AL CONECTAR TON ..................................................................... 55
Arrancar temporizador como retardo a la conexión ---( TON )---......................................................... 56
TEMPORIZADOR DE RETARDO AL DESCONECTAR TOF ............................................................. 56
Arrancar temporizador como retardo a la desconexión ---( TOF )--- ................................................ 57
TEMPORIZADOR DE ACUMULADOR DE TIEMPO TONR ................................................................... 59
Arrancar acumulador de tiempo ---( TONR )--- ....................................................................................... 59
Inicializar temporizador ---( RT )--- .................................................................................................... 59
Cargar tiempo ---( PT )---.................................................................................................................... 60
6.2 CONTADORES ........................................................................................................................... 61
CONTADOR ASCENDENTE CTU ......................................................................................................... 61
CONTADOR DESCENDENTE CTD ....................................................................................................... 62
CONTADOR ASCENDENTE-DESCENDENTE CTUD ........................................................................... 63
CAP. 7 – INSTRUCCIONES AVANZADAS ........................................................................................... 65
7.1 COMPARACIÓN.......................................................................................................................... 65
7.2 TRANSFERENCIA ...................................................................................................................... 66
7.3 FUNCIONES MATEMÁTICAS ..................................................................................................... 67
SUMAR (ADD) ....................................................................................................................................... 67
RESTAR (SUB) ........................................................................................................................... 67
Ejemplo: ................................................................................................................................................. 68
DECREMENTAR (DEC) ......................................................................................................................... 69
7.4 FUNCIONES, BLOQUES DE FUNCIÓN Y BLOQUES DE DATOS.............................................. 70
FUNCIONES FC .................................................................................................................................... 70
BLOQUES DE FUNCIÓN FB.................................................................................................................. 70
Instancias de bloques de función:........................................................................................................... 71
TIPOS DE PARAMETROS ..................................................................................................................... 71
Parámetros de bloque que forman la interfaz del bloque para la llamada en el programa: ..................... 72
Precauciones y restricciones usando plantillas de funciones FC: ........................................................... 72
BLOQUES DE DATOS GLOBALES ....................................................................................................... 74
BLOQUES DE DATOS DE INSTANCIAS Y MULTIINSTANCIAS ........................................................... 74
Utilización de instancias individuales y multiinstancias: .......................................................................... 74
INSTANCIAS INDIVIDUALES ................................................................................................................ 75
Ejemplo de instancias individuales: ........................................................................................................ 75
MULTIINSTANCIAS ............................................................................................................................... 75
Ejemplo de multiinstancia: ...................................................................................................................... 76
Ejemplo de multiinstancia: ...................................................................................................................... 76
Ejemplo de multiinstancia: ...................................................................................................................... 77
Ejemplo de aplicación de una Plantilla de Función FC:........................................................................... 78
Ejemplo de aplicación de una Plantilla de Bloque de Función FB: .......................................................... 81
Ejemplo de aplicación de un Bloque de Datos Global DB: ...................................................................... 85
7.5 SEÑALES ANALÓGICAS ............................................................................................................ 90
DATOS DE ENTRADAS ANALÓGICAS INTEGRADAS ......................................................................... 91
RANGOS DE MEDIDA DE ENTRADAS Y SALIDAS ANALÓGICAS ...................................................... 92
Medidas de tensión: ............................................................................................................................... 92
Medidas de intensidad:........................................................................................................................... 92
Medidas con Termo Resistencias (PT100): ............................................................................................ 93
Medidas con Termopar: .......................................................................................................................... 93
SALIDAS ANÁLOGICAS ........................................................................................................................ 94
Salida a corriente de 0 a 20 mA y de 4 a 20 mA: .................................................................................... 94
CONEXIÓN DE ENTRADAS ANALÓGICAS .......................................................................................... 94
CONEXIÓN DE SENSORES ANALÓGICOS MÓDULOS EXTERNOS .................................................. 95
Transductor de medida a 3 hilos para intensidad o tensión: ................................................................... 95
CONEXIÓN DE TERMORRESISTENCIAS Y RESISTENCIAS .............................................................. 95
Conexión de termo resistencias.............................................................................................................. 96
CONEXIÓN DE SALIDAS ANALÓGICAS............................................................................................... 97
CONFIGURACIÓN DE LAS ENTRADAS Y SALIDAS ANALÓGICAS .................................................... 97
ENTRADAS ANALÓGICAS .................................................................................................................... 97
SALIDAS ANALÓGICAS ........................................................................................................................ 99
INSTRUCIONES DE CONVERSIÓN .................................................................................................... 101
CONVERTIR VALOR (CONVERT) ....................................................................................................... 101
INSTRUCCIÓNES NORMALIZAR Y ESCALAR ................................................................................... 101
NORMALIZAR ...................................................................................................................................... 102
ESCALAR ............................................................................................................................................ 102
CONSIGNA DE MÁXIMO Y MÍNIMO DE UNA ENTRADA ANALÓGICA. ............................................. 104

3
CAP. 1 - HARDWARD SIMATIC S7-1200

1.1 PARTES DEL SIEMENS 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 paracontrolar 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).

4
 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


5

5
para una sustitución simple

1.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

1.3 ENTRADAS ANALÓGICAS INTEGRADAS

(AI2)2 Entradas Analógicas


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

6
1.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

1.5 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.

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 conpaneles
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).

7
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.6 ESTADOS OPERATIVOS DE LA CPU

La CPU tiene los tres siguientes estados operativos:

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


un proyecto.
1.5.2 En el estado operativo STARTUP la CPU efectúa un arranque.
1.5.3 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.

8
El LED de estado RUN/STOP de la parte delantera de la CPU indica el estado
operativoactual de la CPU a través del color.
Adicionalmente están también los LED ERROR para indicar averías, y
MAINT paraindicar 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).

9
1.7 CONFIGURAR LOS PARÁMETROS DE ARRANQUE

En las propiedades de la CPU se puede configurar cómo debe arrancar tras


desconectary 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.
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".

10
1.8 CABLEADO DE ENTRADAS Y SALIDAS INTEGRADAS
El autómata S7-1214C integra 14 entradas digitales, 10 salidas digitales y 2
entradasanalógicas. Que se conectarán según el modelo de la CPU:

11
1.9 Conexión para Simular entradas:

En el siguiente esquema se muestra como conectar los interruptores a


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

1.10 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

12
✓ 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 afectaa 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.

Conexión a cuatro hilos:

Detectores de CC, donde emplean dos hilos para


laalimentació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:

13
CAP. 2 - PUESTA DE OPRACIÓN DE SOFTWARE
2.1 ABRIR EL TIA PORTAL

Para abrir el programa hay 2 formas:

La primera de ellas es mediante el acceso directo en el escritorio. Ubique el acceso


directo llamado Totally Integrated Automation Portal.

Figura 1. Acceso directo del escritorio para TIA Portal V10

Figura 2. Acceso directo del escritorio para TIA Portal V11

Una vez abierto se verá así:

Figura 3. TIA Portal ejecutado

14
2.2 CREAR NUEVO PROYECTO

Para trabajar esta sección se recomienda tener abierto el programa TIA Portal,
esto se hizo en “ABRIR EL TIA PORTAL”

Una vez cuente con el programa TIA Portal abierto deberá hacer clic en el enlace “Crear
proyecto”.

Asigne un nombre al proyecto, una ruta para su almacenamiento y un autor. El


comentario es opcional.

Haga clic en el botón “Crear”.

Figura 4. Crear nuevo proyecto

15
Se abrirán las opciones de Primeros pasos e Inicio. Allí se presentan las siguientes opciones:

Configurar un dispositivo: Se utiliza para añadir un PLC o una pantalla (HMI)


al proyecto recientemente creado. Se debe iniciar por allí.

Crear un programa PLC: Se utiliza esta opción cuando ya se ha añadido por lo menos

un PLC. Configurar una imagen HMI: Se utiliza cuando ya se ha añadido una pantalla

(HMI) al proyecto. Por lo tanto se recomienda empezar con la opción “Configurar un

dispositivo”.

Figura 5. Configurar un dispositivo para el proyecto

16
Se muestra la lista de dispositivos. Si se selecciona PLC se mostrarán todas las
referencias de PLC compatibles con este software. Si se cuenta con la versión TIA
Portal V11 Professional entonces se podrían configurar PLCs de la gama S7-300, 400
y 1200 y pantallas para estas gamas. Dado que la versión es Basic, entonces
únicamente se permite trabajar con S7-1200 y sus respectivas pantallas.

Se recomienda siempre seleccionar la ruta PLC🡪SIMATIC S7-


1200🡪CPU🡪CPU1200 sin especificar. Esto permite añadir la CPU pero no
especificar todavía su referencia y módulos adicionales.

Haga clic izquierdo sobre la leyenda 6ES7 2XX-XXXX-XXXX y luego en el botón


“Agregar” en la parte inferior derecha, o simplemente doble clic sobre la leyenda. Se
añadirá el PLC sin especificar al proyecto.

Figura 6. Añadir CPU S7-1200 sin especificar

17
Se abrirá la ventana principal del proyecto.

Figura 7. Vista del proyecto

Se recomienda pasar a la sección “CONFIGURACIÓN DE LA VISTA DEL


PROYECTO” para simplificar la visualización de la ventana del proyecto.

Si ya sabe configurar la vista entonces se recomienda saltar a la sección


“CONFIGURAR EL HARDWARE DE UN PLC”.

18
2.3 UTILIZACIÓN DE LAS AYUDAS DEL SOFTWARE

Cuando se esté navegando entre las instrucciones de programación pueden


encontrarse algunas de las cuales se desconoce su uso. Por ejemplo suponga que se
desconoce el uso de la instrucción con símbolo “-|P|-“.

Figura 8. Listado de instrucciones

19
Debe poner el mouse sobre la instrucción, esperar a que aparezca un pequeño recuadro
amarillo y a continuación presionar la tecla F1. El recuadro amarillo debería volverse
más grande.

Figura 9. Abrir ayuda de instrucción

En este recuadro amarillo ampliado se podrá ver información rápida de la instrucción.


Si se desea se puede hacer clic en el hipervínculo azul subrayado que aparece en la
parte inferior del recuadro.

20
Esto abrirá automáticamente la ventana de ayudas, donde se verá información
mucho más ampliada de la instrucción.

Figura 10. Abrir ayuda de instrucción

Al lado izquierdo de la ventana de podrá navegar por todas las instrucciones si así se desea.

21
2.4 CONFIGURACIÓN DE LA VISTA DEL PROYECTO

Es indispensable tener un nuevo proyecto creado como se hizo en “CREAR NUEVO PROYECTO”.

Note que la ventana de “vista del proyecto” es visualmente muy congestionada o


cargada, esto la hace compleja y saturada. Sin embargo se puede modificar para
visualizar únicamente áreas de interés. En la vista del proyecto haga clic en
diferentes partes marcadas en la figura para ocultarlas.

Figura 11. Configurar la vista del proyecto

22
Una vez ocultadas se verá el área de interés en un espacio más grande. En la figura
únicamente se muestra el árbol del proyecto y la configuración de hardware del PLC,
esta última todavía con PLC sin configurar.

Figura 12. Vista del proyecto simplificada

Si se desean abrir nuevamente los menús ocultos simplemente se hace clic en el


mismo ícono que los ocultó.

El entorno TIA Portal está diseñado para que el área o espacio de trabajo sea
dinámico, de modo que se optimice el espacio. Si un programador mantiene todas las
opciones activas se verá enfrentado a un espacio muy limitado para cada función,
mientras que si oculta las que no necesita podrá disfrutar un amplio espacio de
trabajo.

23
2.5 CONFIGURAR LA RED

El computador puede comunicarse con el PLC vía Industrial Ethernet, el cual es el protocolo por
defecto que se utilizar para comunicarse con todos los S7-1200. Hay dos formas en que puede
realizarse la comunicación:

Punto a punto:

Figura 13. Comunicación punto a punto entre computador (PC) y el PLC

En esta comunicación punto a punto sólo pueden interactuar estos 2 dispositivos, y no puede
añadirse ningún otro equipo a la red. Se recomienda su uso cuando solamente se programará
el PLC y no hay otros dispositivos que requieran configuración.

En topología estrella con suiche:

Figura 14. Comunicación entre equipos Ethernet con suiche

En esta conexión los datos no se envían directamente entre 2 equipos, sino que viajan a través
del suiche. Es este último el que se encarga de distribuir los paquetes enviados de un dispositivo
a otro. Así, se pueden conectar varios dispositivos a la red, en este caso 4 equipos ya que el
suiche tiene esa cantidad de puertos. Otros equipos podrían ser computadores, paneles de
operador, otros PLCs, etc.

En ambas conexiones se requiere que todos los equipos pertenezcan a la misma subred. No es la
finalidad de este tutorial explicar los conceptos de direccionamiento IP, pero por ahora se debe entender
que 2 equipos pertenecen a la misma subred cuando su dirección IP es cercana y la máscara de subred
es la misma.

Es común que los PLCs tengan la siguiente configuración:

Dirección IP: Desde 192.168.0.1 hasta 192.168.0.254

Máscara de subred: 255.255.255.0

24
Se requiere entonces que la dirección IP del computador pertenezca a la misma red, es decir, esté
dentro de estos mismos rangos. Se puede asignar cualquiera, siempre y cuando ningún otro
equipo en la subred tenga la misma dirección IP.

2.6 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:

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


2.6.2 Comunicación abierta entre usuarios –
TCP, ISOon 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.

25
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)

26
2. Seleccione las (Propiedades)" de "Protocolo de Internet (TCP/IPv4)" (→ Conexión
área local → Propiedades → Protocolo de Internet (TCP/IPv4) → Propiedades).

27
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)

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

29
30
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)

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

32
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).

33
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.

16

34
2.7 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.

17

35
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.

36
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.

37
 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

38
CAP. 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

39
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 aun
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 PLCen IPE


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

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. Noobstante,
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

40
❖ 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 datosalmacenados
en un DB no se borran cuando finaliza la ejecución del bloque lógico asociado.

41
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:

42
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.

43
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).

44
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.

45
✓ 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".

46
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”.

47
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”.

48
CAP. 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)

49
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.

50
4.3 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”.

51
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

52
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.4 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

53
4.5 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.6 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 cambiarseseleccionando 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 de2 (4 bytes).

54
4.7 TIPOS DE DATOS
BOOL, BYTE, WORD Y DWORD

ENTERO

REAL EN COMA FLOTANTE

55
FECHA Y HORA

CARÁCTER Y CADENA

ARRAY

56
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.

57
CAP. 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.

58
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 estadoló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á.

59
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

60
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.

61
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.

62
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).

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

63
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.

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

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

65
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, sinembargo, 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.0H1
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 yRESET
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.











66
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.

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.

67
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.

68
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 poneruna
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.

69
Ejemplo: Funciona como el anterior ejemplo.

70
CAP. 6 – TEMPORIZADORES Y COMPARADORES
6.1 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ónen
nuestro programa.

71
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.

72
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).

73
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.

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

74
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.

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

75
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.

76
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.

77
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.

78
6.2 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.

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.

79
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).

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.

80
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.

81
82
CAP. 7 – INSTRUCCIONES AVANZADAS

7.1 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.

83
7.2 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.

84
7.3 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)

85
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

86
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.

87
7.4 FUNCIONES, BLOQUES DE FUNCIÓN Y BLOQUES DE DATOS
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.

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.

88
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.

89
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.

90
• 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.

91
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.

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

92
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:

93
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
Contador 1
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.

94
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.

95
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).

96
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:

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

98
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

99
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.

100
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.

101
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.

102
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

85

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

86

104
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.

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

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

7.5 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 90

108
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).

109
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.

110
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.

111
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.

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”.

112
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.

113
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.

114
CONEXIÓN DE SALIDAS ANALÓGICAS

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).

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

116
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:

117
118
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).

119
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 queno 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.

120
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.

121
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.

122

También podría gustarte