Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Flan Cos
Flan Cos
TIA Portal
PROGRAMACIÓN DE PLC
SIEMENS
CONTENIDO
3
CAP. 1 - HARDWARD SIMATIC S7-1200
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.
5
para una sustitución simple
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
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):
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.
① Conexión de alimentación.
7
La tarjeta de memoria/Memory Card (MC) SIMATIC almacena programas, datos, datos
de sistema, archivos y proyectos. Puede utilizarse para:
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.
9
1.7 CONFIGURAR LOS PARÁMETROS DE 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:
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
13
CAP. 2 - PUESTA DE OPRACIÓN DE SOFTWARE
2.1 ABRIR EL TIA PORTAL
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”.
15
Se abrirán las opciones de Primeros pasos e Inicio. Allí se presentan las siguientes opciones:
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
dispositivo”.
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.
17
Se abrirá la ventana principal del proyecto.
18
2.3 UTILIZACIÓN DE LAS AYUDAS DEL SOFTWARE
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.
20
Esto abrirá automáticamente la ventana de ayudas, donde se verá información
mucho más ampliada de la 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”.
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.
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:
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 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.
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.
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:
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.
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.
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.
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.
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".
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.
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
42
Estructura Lineal Estructura Modular
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.
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.
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.
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.
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).
Duración del pulso (s) 0,1 0,2 0,4 0,5 0,8 1 1,6 2,0
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
✓ 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)
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
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)
Estructura de operando
% I 0. 2
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”:
PALABRAS (WORDS)
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
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….
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.
4.6 DIRECCIONAMIENTO
54
4.7 TIPOS DE DATOS
BOOL, BYTE, WORD Y DWORD
ENTERO
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
58
KOP FUP SCL
INSTRUCCIONES LÓGICAS
59
Programas de ejemplo:
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).
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.
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
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:
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.
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).
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:
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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
Ejemplo: Acumulador de tiempo si mantenemos a la I0.0 hasta que pasen los diez segundos.
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.
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.
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
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.
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).
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.
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
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.
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
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)
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.
88
Instancias de bloques de función:
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
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:
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.
• 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.
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.
92
INSTANCIAS INDIVIDUALES
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.
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:
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:
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.
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.
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:
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.
Entradas Salidas
I0.0 S1 (NA) Selector Mezcla 1 Q0.0 Y1 Válvula A
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
• 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...).
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.
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.
111
SALIDAS ANÁLOGICAS
Salida a tensión +/- 10 V:
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.
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.
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
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
115
Seleccionar tipo de integración para reducción del ruido y filtrado de la señal
116
SALIDAS ANALÓGICAS
117
118
INSTRUCIONES DE CONVERSIÓN
• El valor del número en coma flotante indicado está fuera del rango de los números normalizados.
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:
120
Gráficamente se podría representar (caso de 0-10V o 4-20mA): Para el caso de +/-10V (BIPOLAR)
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