2. CURSO PROGRAMACIÓN PLC
CON TIA PORTAL
PRESENTACIÓN
0
Enlace Instagram 👈
Enlace TikTok 👈 Enlace LinkedIn 👈
Enlace Facebook 👈
Canal de YouTube!! 👈
Aprende más en mi WEB!! 👈
3. Pelecero, antes de empezar el curso, decirte que con un software de simulación de PLC
en 3D, puedes practicar tu programación, mejorando y agilizando tu aprendizaje, además
de poder ponerte retos alucinantes y de pasártelo mejor
que un niño con su juguete preferido.
Conozco dos opciones: Machines Simulator y Factory I/O
Ambos son software de simulación donde puedes crear tus propias fábricas virtuales y
comunicarlas con tu PLC, ya sea real o simulado.
En mi web tengo reviews de ambos software, por si quieres echarles una ojeada,
probablemente te sirvan! (Yo personalmente, prefiero Machines Simulator,
le da mil patadas a Factory I/O, pero te dejo ambas review para
que los analices por ti mismo)
AGILIZA TU APRENDIZAJE
Review Machines Simulator
Review Factory I/O
4. ¿De que trata el curso?
• Saber los fundamentos de programación y lógica con bits.
• Aprender a estructurar un programa según la instalación y premisas del
cliente.
• Configuración del PLC y sus posibles módulos (Hardware)
• Aprender que es y como se programa un PLC.
• En definitiva, aprender a como automatizar una planta industrial o máquina
controlada por PLC.
• Herramientas de control para señales físicas (PID)
Enlace al vídeo AQUÍ 👈
5. ¿A quién va dirigido este curso?
• No se requieren conocimientos previos, aunque nunca está de más empezar el
curso con nociones básicas.
• Es un curso de cero a profesional, es decir, al terminar el curso, tendrás los
conocimientos necesarios para poder realizar automatizaciones industriales
con PLC (concretamente, con TIA Portal).
• A personas que quieran aprender a programar PLC, es decir, a quienes
quieran aprender a automatizar industrias o bien máquinas controladas
mediante PLC.
Enlace al vídeo AQUÍ 👈
6. ¿Qué software necesitaremos?
• Factory I/O – OPCIONAL, aunque recomendable.
Windows 7 o superior.
Se recomienda NVIDIA desde 2006 (GeForce 8), AMD desde 2006 (Radeon HD
2000), Intel desde 2012 (HD 4000 / IvyBridge).
• TIA Portal (versión 14 o superior) – IMPRESCINDIBLE.
Windows 7 o superior.
Se recomienda 8Gb de RAM.
7. ¿Qué sabré hacer al terminar el curso?
• Configurar por completo un proyecto TIA Portal y manejar el software con soltura.
• Añadir y configurar por completo un PLC y sus posibles módulos (cartas E/S, IM…)
• Programar un PLC con cualquiera de sus lenguajes (Ladder o KOP, SCL y AWL)
• La utilización de la gran mayoría de herramientas y funciones que nos provee TIA
Portal.
• Administración de archivos de descripción de dispositivos (GSD)
• Complementos al curso:
Metodología GRAFCET
Regulación de una señal física (temperatura, caudal…) con PID
Uso del software Factory I/O como apoyo a las simulaciones offline
8. TEMARIO DEL CURSO
1. Introducción
2. Primeros pasos con TIA Portal
3. Fundamentos básicos
Sistema binario y puertas lógicas
Ejecución del programa en el PLC y direcciones
Simulación del PLC con PLCSIM
Uso de tablas de observación
Tipos de datos (bool, byte, int…)
Array
Struct
Tipo de dato PLC (UDT)
Lenguajes del PLC (LD o KOP, SCL y AWL)
4. Programación con Ladder (KOP), SCL y AWL:
Lógica con bits
Bloques de programación en TIA Portal
Bloques de Organización (OB)
Bloques de Datos (DB)
Funciones (FC)
Bloques de Función (FB)
Temporizadores
Contadores
Comparadores
Funciones matemáticas
Conversión de valores
Ejercicio cámara de refrigeración
5. Metodología GRAFCET
6. Ejercicios prácticos con Factory I/O
7. Configuración Hardware (PLC y sus posibles módulos)
8. Escalar valores (SCALE_X y NORM_X)
9. Programación avanzada:
Control del flujo del programa (bucles, saltos)
Movimiento de datos entre DB
Acceso a bloques de datos (DB) y bloques de instancia (DI)
Puntero ANY
Acumuladores en AWL
10. Ejercicios prácticos con Factory I/O
11. Control PID
Explicación del PID
Como usarlo en TIA Portal (CONT_C)
Personalización del PID con bloque propio
12. Ejercicio práctico con Factory I/O
13. Comunicaciones
Enlaces S7 con GET/PUT
Modbus TCP/IP (MB_Server, MB_Client)
14. Administración de archivos de descripción de
dispositivos (GSD)
Enlace al vídeo AQUÍ 👈
9. Posibles preguntas
• ¿Es un curso homologado? No, no lo es. Es un curso
publicado en youtube, sin acreditación alguna y sin
animo de lucro, basado en mis conocimientos y
experiencia.
• ¿Al terminar el curso, tendré los conocimientos
necesarios para poder vivir de esto? Ya lo creo que sí.
Durante estos años, he tenido que tocar muchos
programas ajenos y te puedo asegurar que lo que
enseño en este curso te va a convertir en un gran
profesional.
• ¿En este curso vamos a aprender a programar HMI o
SCADA? No, este curso es únicamente para programar
PLC. Tengo en mente, al finalizar este curso, crear un
curso completo de HMI con TIA Portal y otro de
SCADA con WinCC Explorer. Poco a poco.
• ¿Qué hago en caso de tener dudas? Si tienes dudas
sobre algún apartado o ejercicio, simplemente envíame
un comentario en el mismo vídeo donde se originó tu
duda y lo contestaré sin problemas.
Enlace Curso HMI👈
10. Posibles preguntas
• ¿De cuanto es la duración del curso? El curso tiene más
de 60 vídeos, con una duración aproximada por vídeo
de entre 5 – 30 minutos.
• ¿Cuál va a ser la metodología del curso? El curso es
80% práctico, mientras que si que tendrá un 20% de
teoría (sobre todo al principio).
La parte teórica se apoyará de la presentación PP,
mientras que la explicación del código, así como los
ejemplos, se harán con TIA Portal (a veces usando
Factory I/O como complemento), que así es como se
aprende.
11. Un poco sobre tu profesor…
• Graduado en Ingeniería Electrónica Industrial y Automática.
• Máster en Automática e Informática Industrial.
• Diploma de especialización en instalación, configuración y
programación de sistemas de automatización industrial.
• 2 años de experiencia en el sector industrial programando
PLC, HMI y SCADA de diferentes marcas, pero
principalmente con Siemens.
12. Agradecimientos
• A ti, que estas viendo ahora mismo este vídeo. A ti, que has
decidido usar parte de tu tiempo en formarte con este curso
que con gran esmero y esfuerzo hago. A ti, en querer adquirir
mis conocimientos obtenidos por experiencias pasadas.
GRACIAS !!!
15. 1.1 - ¿Porqué es importante la automatización en la industria?
• Aumenta enormemente la producción para poder satisfacer la gran demanda por parte de los
consumidores.
• Abarata los costes de producción, generando un mayor beneficio.
• Disminuye el error en el proceso de producción, aumentando la calidad del producto y la
disminución de merma.
• Fomenta la investigación de nuevas tecnologías para aportar nuevas soluciones y/o mejorar
soluciones existentes dentro de la industria.
16. 1.2 - ¿Qué ramas abarca la automatización en la industria?
• Ingenieros mecánicos
Diseño de las piezas y maquinaria (AutoCAD, SolidWorks…)
Dirección del montaje mecánico por los operarios.
• Ingenieros de proceso
Diseñan toda la estructura de un proceso, es decir, donde va colocado qué y como (válvulas,
depósitos, tuberías…) para optimizar los recursos y el tiempo.
• Ingenieros eléctricos
Diseño de los esquemas eléctricos (Eplan…)
Dirección del montaje de los cuadros por parte de los montadores eléctricos.
• Ingenieros de control
Se encargan del control automático de la planta.
Su función es programar el/los PLC junto con HMI y SCADA (si procede) y asegurarse del
correcto funcionamiento.
Desarrollo offline
Puesta en marcha in situ (o en remoto)
Atención al cliente post puesta en marcha
17. 1.3 – Y entonces, ¿Qué es un PLC?
• El PLC (Programmable Logic Controller) es un dispositivo con una CPU incorporada (como si de
un ordenador se tratase) que permite crearle y modificarle instrucciones (código) para que las
ejecute y pueda, de este modo, controlar X elementos.
• El PLC recibe señales de entrada las cuales le proporcionan información del estado de los
elementos:
Sensores de posición (detección de cajas, finales de carrera de válvulas…)
Sensores de temperatura o presión
Lectura de la corriente o rpm de un motor
Sistemas de visión para obtener la temperatura
• El PLC actúa sobre señales de salida para activarlas o desactivarlas (en función de lo que nosotros
hayamos programado), según el estado actual de las señales de entrada:
Motores (marcha/paro, inversión de giro)
Válvulas (abrir/cerrar)
Compresores (marcha/paro)
Puertas (abrir/cerrar)
Pistones (subir/bajar)
18. 1.3 – Y entonces, ¿Qué es un PLC?
• Ejemplo comparativo con llenado de agua:
• Persona:
Para llenar un vaso de agua, abrimos el grifo
(válvula) hasta que el vaso se llene.
Para saber si el vaso está lleno, utilizamos nuestra
visión, es decir, los ojos.
Por lo tanto, tenemos que:
Señal de entrada, es decir, la que nos
proporciona la información del vaso:
Ojos
Señal de salida, es decir, la que
manipulamos para añadir agua:
Grifo
Sistema de control, es decir, qué controla el
grifo según lo que nos proporcionan los
ojos:
Cerebro
• PLC:
Para llenar un vaso de agua, abrimos la válvula
hasta que el vaso se llene.
Para saber si el vaso está lleno, utilizamos un
sensor de detección.
Por lo tanto, tenemos que:
Señal de entrada, es decir, la que nos
proporciona la información del vaso:
Sensor
Señal de salida, es decir, la que
manipulamos para añadir agua:
Válvula
Sistema de control, es decir, qué controla la
válvula según lo que nos proporciona el
sensor:
El PLC (su cpu interna)
Enlace al vídeo AQUÍ 👈
19. 1.3 – Y entonces, ¿Qué es un PLC?
• A nivel visual, siguiendo con el ejemplo del llenado de agua, tendríamos lo siguiente:
• Sensor de nivel: 0 si no detecta agua, 1 si detecta agua
• Válvula: Abierta si recibe corriente (1), cerrada si no recibe corriente (0)
• Si el PLC recibe “0” en su entrada digital donde está conectado el sensor, manda “1” a
la salida digital donde está conectada la válvula para que se abra. En caso contrario, es
decir, si recibe “1” por parte del sensor, mandará un “0” a la válvula para que se
cierre.
20. 1.4 – Diferentes marcas de PLC y software
Siemens Schneider Electric Omron
Serie 200 Serie TSX Micro, Modicon
Premium
CS1, CJ1, CJ2
Serie 300/400 TSX Quantum, Premium,
M340, M580
Serie NJ
Serie 1200/1500 Modicon M221, M241
Step7
TIA Portal
PL7 Pro
Unity Pro
SoMachine
CX-Programmer
Sysmac Studio
MicroWin
21. 1.4 – Diferentes marcas de PLC y software
Otras marcas:
• Allen bradley
• Mitsubishi
• Hitachi
• Festo
• Beckhoff
• Unitronics
22. 1.5 – ¿Porqué trabajaremos con TIA Portal?
• Es un Software muy demandado por las empresas de automatización y, a veces, hasta por el propio cliente.
• Ofrece una gran cantidad de recursos para el programador, y su optimización es aceptable.
• Permite una programación bastante estructurada, basándose en la famosa POO (Programación Orientada a Objetos)
que podemos encontrar en lenguajes como C++, C#, Java…
• Es bastante intuitivo, con un buen diseño de interfaz y visual.
• La conexión con otros dispositivos de Siemens (HMI, SCADA, Variadores, IM…) se realiza de manera bastante
sencilla gracias al famoso “enlace S7” o “enlace SIMATIC 7”.
• Permite realizar simulaciones de una manera bastante intuitiva y sencilla con el software de apoyo PLCSIM.
• El software de las HMI está integrado dentro del propio TIA Portal, es decir, no se requiere de un software externo.
24. 2.0 – ¿Qué vamos a ver en está sección?
1. Breve explicación de qué es TIA Portal y sus versiones.
2. Instalación del programa y activación del mismo.
3. Creación de nuestro primer proyecto.
4. Explicación del entorno de TIA Portal (todo lo que nos ofrece el software).
5. Como añadir un dispositivo (PLC, HMI) al proyecto.
6. Como guardar el proyecto y abrir uno existente.
7. Archivar/Desarchivar un proyecto existente.
25. 2.1 – ¿Qué es TIA Portal?
• TIA Portal (Totally Integrated Automation Portal) es un software de Siemens para programar PLC de la serie 1200
y 1500.
• Tiene bastantes versiones, en este orden:
V11, V12, V13, V13 SP1, V13 SP2, V14, V14 SP1, V15, V15.1 y V16
• La diferencia más relevante sucede a partir de la v14, donde TIA Portal permite utilizar diferentes lenguajes de
programación dentro de una misma función, o incluso dentro del propio main.
• La mejor versión hasta la fecha, en cuanto a estabilidad y robustez, la V15.1
• En este curso utilizamos la V14 para poder migrar los proyectos a versiones superiores en caso de necesitarlo.
26. 2.2 – Instalación del programa
• Web de descarga (desde la página oficial de siemens) – IMPORTANTE REGISTRARSE
https://support.industry.siemens.com/cs/document/109740158/descarga-del-simatic-step-7-(tia-portal)-v14-
trial?dti=0&lc=es-VE
• Descargar el software SIM EKB:
https://mega.nz/file/klEUGYIR#5caYPr-Ss3YO2v1mu5415ElrypuB2IR1Gm6V5rF4FWI
Enlace al vídeo de Instalación v14, v15 y v16 AQUÍ 👈
Enlace al vídeo de Instalación v14 SP1 AQUÍ 👈
Enlace al vídeo de Instalación v17 AQUÍ 👈
40. 2.3 – Mi primer proyecto TIA Portal
1. Crear proyecto
2. Explicación de lo que nos ofrece TIA Portal
3. Adición de nuevo dispositivo
4. Guardar/Abrir proyecto
5. Archivar/Desarchivar proyecto
Vídeo Primeros Pasos AQUÍ 👈
Vídeo Archivar/Desarchivar AQUÍ 👈
42. 3.0 – ¿Qué vamos a ver en está sección?
1. Lógica binaria y puertas lógicas
2. Simulación y tablas de observación
3. Variables y tipos de datos
4. Saltos automáticos en las direcciones
5. Direcciones de memoria
6. Orden de ejecución del programa
7. Lenguajes del PLC
Vídeo de Introducción AQUÍ 👈
43. 3.1 – Lógica binaria y puertas lógicas
El lenguaje binario se basa en 0 y 1, es decir, es un lenguaje donde todo es expresado con
ceros y unos. Representa el paso de corriente (1) o el bloqueo de la corriente o ausencia de la
misma (0).
En dicho lenguaje, toda secuencia tiene un significado, donde dichas secuencias pueden ser
diferentes, tal que:
001
111
011100110011
00001111
1100110011110011111110001
Existe la denominada “tabla binaria”, donde se puede realizar la conversión de binario a
número decimal, y la cual se lee de derecha a izquierda, estipulada de la siguiente manera:
0000 = 0 0101 = 5 1010 = 10 1111 = 15
0001 = 1 0110 = 6 1011 = 11
0010 = 2 0111 = 7 1100 = 12
0011 = 3 1000 = 8 1101 = 13
0100 = 4 1001 = 9 1110 = 14
La tabla es infinita, al igual que los números. Vídeo AQUÍ 👈
44. 3.1 – Lógica binaria y puertas lógicas
En el lenguaje binario existen operaciones, concretamente la suma y la multiplicación, pero
es ligeramente distinto al sistema decimal, de tal manera que:
SUMA PRODUCTO
0 + 0 = 0 0 · 0 = 0
0 + 1 = 1 0 · 1 = 0
1 + 0 = 1 1 · 0 = 0
1 + 1 = 1 1 · 1 = 1
Es importante entender esto, dado que es la base del funcionamiento de un PLC.
45. 3.1 – Lógica binaria (booleana) y puertas lógicas
• ¿Qué son las puertas lógicas? Simplemente son funciones que nos permiten saber el
estado de un circuito electrónico (se basan en la suma y la multiplicación)
• Existen diferentes tipos de puertas lógicas, donde vamos a ver concretamente:
AND
OR
NOT
NAND
NOR
• Insisto, es muy importante entender esta parte para saber programar un PLC.
46. 3.1 – Lógica binaria (booleana) y puertas lógicas
SÍMBOLO PUERTA LÓGICA ESQUEMA ELÉCTRICO
AND
OR
NOT
NAND
NOR
A
B
A·
B
A B
A
B
A+B A
B
A A
A
A
B
A·
B
A
B
A+B
A B
47. 3.1 – Lógica binaria (booleana) y puertas lógicas
• Leyes de Morgan:
A+B = A · B
A · B = A + B
48. 3.2 – Simulación y tablas de observación
• Uso de PLCSIM, integrado en TIA Portal
Vídeo AQUÍ 👈
49. 3.3 – Variables y tipos de datos
• Una variable es un espacio de memoria donde:
Se le asigna un nombre cualquiera para poder referenciarlo en el programa
Se le asigna un tipo de dato
Se le asigna una dirección del PLC acorde a su tipo de dato
50. 3.3 – Variables y tipos de datos
• Tipos de datos más usados:
Bool: Representa 1 bit. Su valor puede ser 0 o 1
Ejemplo de dirección de memoria: %M6.4 (solo ocupa el bit 4 del byte 6)
Byte: Representa 8 bits. Su valor puede ser:
Binario: 00000000 hasta 11111111
Decimal: 0 hasta 255
Hexadecimal: 16#00 hasta 16#FF
Ejemplo de dirección de memoria: %MB6 (ocupa todo el byte 6)
Int/Word: Representan 2 bytes (16 bits). Su valor puede ser:
Binario: 0000000000000000 hasta 1111111111111111
Decimal: 32767
Hexadecimal: 16#7FFF
Ejemplo de dirección de memoria: %MW6 (ocupa el byte 6 y 7)
Son valores enteros (sin decimales)
Dint/Dword: Representan 4 bytes (32 bits)
Ejemplo de dirección de memoria: %MD6 (ocupa el byte 6, 7, 8 y 9)
Son valores enteros (sin decimales)
Real: Representa 4 bytes (32 bits)
Ejemplo de dirección de memoria: %MD6 (ocupa el byte 6, 7, 8 y 9)
Son valores con decimales
Vídeo BOOL, BYTE y WORD
AQUÍ 👈
Vídeo DWORD, REAL AQUÍ 👈
51. 3.3 – Variables y tipos de datos
• Tipos de datos más usados:
Date: Representa 2 bytes, como un Word. Se usa para establecer la fecha
Ejemplo de dirección de memoria: %MW6 (ocupa el byte 6 y 7)
Formato D#AAAA-MM-DD
Time: Representa 4 bytes, como un DWord. Se usa para dar valor a temporizadores (lo veremos más adelante)
Ejemplo de dirección de memoria: %MD6 (ocupa el byte 6, 7, 8 y 9)
Formato T#xS, T#xMS… (x = valor deseado, S = segundos, MS = milisegundos)
Vídeo DATE y TIME AQUÍ 👈
52. 3.3 – Variables y tipos de datos
• Tipos especiales:
Array: Colección de elementos de un mismo tipo de dato, separados por “casillas” o “posiciones”,
empezando por la posición 0.
Vídeo Array AQUÍ 👈
53. 3.3 – Variables y tipos de datos
• Tipos especiales:
Array: Colección de elementos de un mismo tipo de dato, separados por “casillas” o “posiciones”,
empezando por la posición 0.
Ejemplos:
o Array de 6 bool:
o Array de 4 Real
o Array de 5 Int
0 0 1 0 1 0
0 1 2 3 4 5
24,2 12,0 128,4
8
59,17
0 1 2 3
Posició
n
Posició
n
0 1 2 3
Posició
n
2 12 68 159 78
4
55. 3.3 – Variables y tipos de datos
• Tipos especiales:
Struct: Colección de elementos de diferentes tipos.
En una variable Struct puede haber cualquier cosa, desde variables bool, byte, int o real, hasta arrays o
incluso otras variables Struct.
Ejemplo:
Int Int Array de 8
bool
Real Struct Bool
Vídeo Struct AQUÍ 👈
56. 3.3 – Variables y tipos de datos
• Tipos especiales:
UDT: Permite crear un tipo de dato propio, almacenando en él cualquier tipo de dato. Es exactamente igual
que un Struct, pero la diferencia reside en que es un tipo de dato definido y usable en todo el programa.
Vídeo UDT AQUÍ 👈
57. VÍDEOS DE INTERÉS
Consejos Peleceros👈
Experiencias de un Programador👈
(tómate un descansito!!)
Shorts de PLC!👈
58. 3.4 – Salto automático en las direcciones
Vídeo AQUÍ👈
59. 3.5 – Direcciones de memoria
• Las direcciones de memoria son porciones de la memoria de la CPU donde se almacenan datos, para de esta manera
poder clasificarla según tamaño.
• En TIA Portal, existen diferentes tipos de direcciones ya determinadas, de las cuales vamos a ver, por ahora, 3 tipos:
Direcciones %I (entradas digitales)
Direcciones %Q (salidas digitales)
Direcciones %M (marcas)
Vídeo AQUÍ👈
60. 3.5 – Direcciones de memoria
• Direcciones de entradas digitales (%I)
%I0.0, %I0.1, %I0.2, %I0.3, %I0.4, %I0.5, %I0.6, %I0.7, %I1.0, %I1.1, %I1.2, %I1.3, %I1.4, %I1.5, %I1.6, %I1.7, %I2.0….
En cada dirección (bit) va cableado un elemento físico que proporciona información al PLC proporcionándole dos valores
posibles, 0 o 1 lógico.
Sensores de detección, detección de avería (térmicos o disyuntores), detección de encendido/apagado…
• Direcciones de salidas digitales (%Q)
%Q0.0, %Q0.1, %Q0.2, %Q0.3, %Q0.4, %Q0.5, %Q0.6, %Q0.7, %Q1.0, %Q1.1, %Q1.2, %Q1.3, %Q1.4, %Q1.5, %Q1.6,
%Q1.7, %Q2.0….
En cada dirección (bit) va cableado un elemento físico al cual el PLC le proporciona dos valores posibles, 0 o 1 lógico.
Si el PLC le proporciona un 0 lógico, corta el paso de corriente por esa salida, impidiendo que se accione el elemento.
Si el PLC le proporciona un 1 lógico, permite el paso de corriente por esa salida, accionando el elemento.
Motores, válvulas, pistones…
• Direcciones auxiliares (%M)
%M0.0, %M0.1, %M0.2, %M0.3, %M0.4, %M0.5, %M0.6, %M0.7, %M1.0, %M1.1, %M1.2, %M1.3, %M1.4, %M1.5,
%M1.6, %M1.7, %M2.0….
Se utilizan para almacenar datos temporales (y para ser usados) en nuestro código durante su ejecución.
62. 3.6 – Orden de ejecución del programa
El programa de un PLC se ejecuta de arriba hacia abajo, empezando por arriba y terminando
por abajo.
En el PLC, se producen varias etapas durante la ejecución del programa:
1. Se leen todas las entradas (tanto digitales como analógicas)
2. La información de las entradas, se trasladan a la memoria del PLC, concretamente a unas direcciones
“espejo” o “imagen”, llamadas con la nomenclatura %I para las digitales, y %PEW para las analógicas.
3. Se ejecuta todo el código existente en el OB principal, llamado Main, desde arriba hasta abajo
(existen otros OB con ejecuciones independientes, pero lo veremos a lo largo del curso)
4. Al finalizar la ejecución del Main, el PLC escribe en las salidas físicas reales el valor de las direcciones
imagen de las salidas, llamadas con la nomenclatura %Q para las digitales, y %PAW para las analógicas.
La duración de todo este proceso, se le denomina “ciclo de scan”, es decir, todo el tiempo que tarda el
PLC en ejecutar el programa, desde la lectura de las entradas y ejecución del código, hasta la escritura en
las salidas físicas.
Vídeo AQUÍ👈
63. Lectura entrada
física real
3.6 – Orden de ejecución del programa
%I (digital)
%PEW(analógica)
(Direcciones del PLC)
Ejecución del OB MAIN
(Dentro del código podemos escribir en las direcciones imagen de las salidas del PLC )
%Q = salidas digitales %PAW = salidas analógicas
%Q (digital)
%PAW(analógica)
(Direcciones del PLC)
Escritura salida
física real
64. 3.7 – Lenguajes del PLC
• Diagrama de contactos (Ladder, LD o KOP)
Está basado en los esquemas eléctricos.
Muy visual y fácil de entender.
Algo tedioso a la hora de trabajar con bucles y saltos.
Coste computacional medio
Limitado a la hora de mover datos
Suele ser el más amado por los programadores dado su gran facilidad de uso
• FUP:
Basado en las puertas lógicas
No es muy visual y tampoco fácil de entender si el código es complejo
Tedioso a la hora de trabajar con bucles y saltos
Coste computacional medio/alto
Limitado a la hora de mover datos
Apenas es usado por los programadores
Vídeo AQUÍ👈 Parodia 👈
65. 3.7 – Lenguajes del PLC
• AWL
Es el lenguaje que entiende el PLC
No es muy visual y tampoco fácil de entender
Es el mejor lenguaje a la hora de trabajar con bucles y saltos.
Coste computacional bajo (es el más óptimo)
No tiene limitaciones a la hora de mover datos y trabajar con ellos
Suele ser el más odiado por los programadores dada su dificultad, pero un programador de PLC jamás
será experto si no domina este lenguaje.
Hay un dicho tal que dice así “Lo que no se pueda programar en AWL, es que no se puede programar
en el PLC”
• SCL:
Lenguaje de alto nivel basado en Pascal y C
Nivel visual medio (según la dificultad del código) con sentencias bastante simples de entender
Sencillo a la hora de trabajar con bucles y saltos
Coste computacional alto
Factible a la hora de mover datos, pero tiene sus limitaciones.
Es bastante usado por los programadores y bastante querido por aquellos a los que no les gusta el AWL.
66. 3.7 – Lenguajes del PLC
• GRAFCET
Visual y medianamente fácil de entender
Pésimo lenguaje para realizar bucles y saltos
Coste computacional alto
No esta hecho ni pensado para mover datos
Se suele utilizar para realizar secuencias
67. 3.7 – Lenguajes del PLC
• ¿Con qué lenguajes trabajaremos en este curso?
Trabajaremos con KOP, SCL y AWL. Según vayamos aprendiendo herramientas de programación, iremos
usándolas en los diferentes lenguajes para ver las diferencias y dificultades.
69. 4.0 – ¿Qué vamos a ver en está sección?
1. Lógica con bits
Diferencia entre contacto y bobina
Contacto negado y bobina negada
Sentencia NOT
Uso de AND y OR
Ejercicios
Set y Reset
Flanco ascendente y descendente
Ejercicios
RLO
Falta grave: repetición de bobinas
El lenguaje principal será en diagrama de contactos (KOP). Utilizaremos SCL y AWL para
ver como se implementa lo aprendido en KOP en dichos lenguajes.
2. Tipos de bloques
Bloques de Organización (OB)
Bloques de Datos (DB)
Funciones (FC)
Bloques de Función (FB)
70. 4.0 – ¿Qué vamos a ver en está sección?
3. Temporizadores
¿Qué son los temporizadores y para que se usan?
TP
TON
TOFF
TONR
4. Contadores
¿Qué son los contadores y para que se usan?
CTU
CTD
CTUD
5. Comparadores
¿Qué són los comparadores y para que sirven?
=, >, <, >=, <= , <>
Otros…
71. 4.0 – ¿Qué vamos a ver en está sección?
6. Funciones matemáticas
¿Qué son y para que sirven?
Funciones simples: sumar, restar, multiplicar y dividir
Definición de ecuación en KOP: Función Calculate
Obtención del resto de una división: Función Mod
Obtener resultado negado: Función Neg
Incrementos y decrementos
Obtener valor absoluto: Función Abs
7. Conversión de valores
¿Qué es la conversión de valores?
Convert
Round
Ceil
Floor
Trunc
72. 4.1 – Lógica con Bits
• ¿Qué és un contacto en KOP?
Un contacto en KOP representa un interruptor de un circuito eléctrico.
A un contacto se le puede asignar una variable del tipo bool.
Si la variable asignada a dicho contacto tiene el valor 0, NO dejará pasar corriente por el contacto
Si la variable asignada a dicho contacto tiene el valor 1, SI dejará pasar corriente por el contacto
• ¿Qué és una bobina en KOP?
Una bobina en KOP representa una bombilla de un circuito eléctrico.
A una bobina se le puede asignar una variable del tipo bool.
Si la variable asignada a dicha bobina se le proporciona el valor 0, la bobina estará apagada
Si la variable asignada a dicha bobina se le proporciona el valor 1, la bobina estará encendida
• ¿Qué és un contacto negado en KOP?
Un contacto negado en KOP representa un interruptor de un circuito eléctrico, pero con el valor invertido.
A un contacto negado se le puede asignar una variable del tipo bool.
Si la variable asignada a dicho contacto negado tiene el valor 0, SI dejará pasar corriente por el contacto
Si la variable asignada a dicho contacto negado tiene el valor 1, NO dejará pasar corriente por el contacto
• ¿Qué és una bobina negada en KOP?
Una bobina negada en KOP representa una bombilla de un circuito eléctrico, pero con su valor invertido.
A una bobina negada se le puede asignar una variable del tipo bool.
Si la variable asignada a dicha bobina negada se le proporciona el valor 0, la bobina estará encendida
Si la variable asignada a dicha bobina negada se le proporciona el valor 1, la bobina estará apagada
74. 4.1 – Lógica con Bits
• Sentencia NOT
Invierte el valor resultante existente previo a su llamada.
Vídeo 👈
75. 4.1 – Lógica con Bits
• AND
KOP AWL SCL
AND
(X·Y = Z)
U X
U Y
= Z
IF(X AND Y)
THEN
Z = TRUE;
ELSE
Z = FALSE;
END_IF;
X Y Z
Vídeo 👈
76. 4.1 – Lógica con Bits
• OR
KOP AWL SCL
OR
(X+Y = Z)
U X
O Y
= Z
IF(X OR Y) THEN
Z = TRUE;
ELSE
Z = FALSE;
END_IF;
X
Y
Z
Vídeo 👈
77. 4.1 – Lógica con Bits
• AND y OR
Ejercicio 1: Implementa las siguientes sentencias en KOP y AWL
1. X = A·B·C·(D+E)
2. X = (A+B+C)·D·E
3. X = (A+B+C)·D·E
4. X = ( (A·B)+(C·D) ) · E
Ejercicio – Parte 1 👈 Ejercicio – Parte 2 👈
78. 4.1 – Lógica con Bits
• SET y RESET
Set: Proporciona el valor booleano “1” a una variable de manera indefinida. No cambiará su
valor hasta que se modifique en sentencias posteriores a su Set.
Reset: Proporciona el valor booleano “0” a una variable de manera indefinida. No cambiará su
valor hasta que se modifique en sentencias posteriores a su Reset.
• Alternativa al SET y RESET: Realimentación del estado
Permite mantener una variable activa realimentándola a si misma con una sentencia OR,
condicionando a la misma con la condición que la desactive.
Vídeo👈 Ejercicio👈
79. 4.1 – Lógica con Bits
• Flanco ascendente/Descendente
El flanco es una herramienta que nos permite cambiar el valor de una variable justo en el
instante donde se produce el cambio de la variable la cual está asignada al flanco.
Flanco ascendente: Cuando la variable asignada a dicho flanco cambia su estado de 0 a 1,
permite la ejecución de las siguientes sentencias.
Flanco descendente: Cuando la variable asignada a dicho flanco cambia su estado de 1 a 0,
permite la ejecución de las siguientes sentencias.
El flanco requiere de una variable auxiliar para almacenar el valor de la variable asignada al
flanco del ciclo de scan anterior.
Vídeo👈
80. 4.1 – Lógica con Bits
• RLO
• El RLO es el estado (0 o 1) resultante de las operaciones que hay desde la primera condición hasta la condición
deseada.
• Aunque existe, solo es mostrado de manera directa en AWL (en KOP de manera indirecta iluminando el contacto)
Vídeo👈
81. 4.1 – Lógica con Bits
• Falta grave: Repetición de bobinas
• Si se declara la misma variable en 2 o más bobinas, el programa fallará en algún momento. A esto se le denomina
“repetición de bobinas”.
• Solución y buena práctica: Declarar la bobina una única vez y añadir en el segmento todas las condiciones que
activan/desactivan dicha bobina.
Vídeo👈
82. 4.2 – Tipos de bloques
• Tenemos 4 tipos de bloques en TIA Portal:
Bloques de Organización (OB)
Bloques de datos (DB)
Funciones (FC)
Bloques de función (FB)
• OB (Bloque de organización)
Es un bloque lógico donde se puede programar código dentro de él.
Según el tipo de OB se puede procesar a cada ciclo de scan, la primera vez que se pone el PLC en modo run,
al haber un fallo en el PLC…
El OB principal del PLC (donde va todo nuestro código, principalmente) es el Main
Como un OB no es una función, ningún OB puede ser llamado dentro de otro OB. Cada OB es
independiente de los demás OB.
Es IMPORTANTE llamar a los OB de errores (por lo general, no se programa nada en ellos) para que, en
caso de saltar algún error en pleno funcionamiento (hablamos de errores no críticos), la CPU no pase a stop y
se paralice toda la fábrica.
Vídeo👈
83. 4.2 – Tipos de bloques
• DB (Bloque de Datos)
Sirve para almacenar datos, es decir, variables
Puede almacenar cualquier tipo de dato, incluido arrays, structs, date…
Existen DB Globales (no pertenecen a ningún FB) y los DB de Instancia (pertenecen a su respectiva instancia
de su respectivo FB)
Se le debe asignar un número de referencia
Ocupa un espacio de memoria equivalente al volumen total de datos que almacena
Optimización de bloque
Datos remanentes
Valores de arranque, instancia actual de valores…
Vídeo👈
84. 4.2 – Tipos de bloques
• FC (Función)
• Sirve para encapsular porciones de código reutilizables
• Se puede llamar en cualquier punto del programa, donde ejecutará el código que lleve dentro
• Al finalizar la ejecución de su código, las variables propias de la FC no almacenan su último valor, es decir,
lo pierden
• No almacena datos ni tiene un DB propio
TIPO DE VARIABLE DESCRIPCIÓN
Input Lee las variables de entrada a la FC
Output Escribe en variables de salida de la FC
InOut Variables externas que pueden leerse y
escribirse
Temp
Variables internas de la FC usadas para
programar el código (estas variables NO
guardan su valor al terminar la ejecución de
la FC)
Constant Variables con valor constante
Vídeo👈
85. 4.2 – Tipos de bloques
• FB (Bloque de Función)
• Sirve para encapsular porciones de código reutilizables
• Se puede llamar en cualquier punto del programa, donde ejecutará el código que lleve dentro
• Al finalizar la ejecución de su código, las variables propias de la FB pueden almacenar (o no) su último valor.
• Generan un DB propio, donde almacenan todos los datos (excepto los temporales)
TIPO DE VARIABLE DESCRIPCIÓN
Input Lee las variables de entrada a la FB
Output Escribe en variables de salida de la FB
InOut Variables externas que pueden leerse y
escribirse
Static
Variables internas de la FB usadas para
programar el código (estas variables SI
guardan su valor al terminar la ejecución de
la FB)
Temp
Variables internas de la FB usadas para
programar el código (estas variables NO
guardan su valor al terminar la ejecución de
la FB)
Vídeo👈
86. 4.3 – Funciones matemáticas
• Se utilizan para realizar operaciones.
OPERACIÓN DESCRIPCIÓN
ADD
Suma entre dos variables numéricas (pueden
ser de diferente tipo siempre y cuando sean
convertibles entre ellas)
SUB
Resta entre dos variables numéricas (pueden
ser de diferente tipo siempre y cuando sean
convertibles entre ellas)
MUL
Producto entre dos variables numéricas
(pueden ser de diferente tipo siempre y
cuando sean convertibles entre ellas)
DIV
Dvisión entre dos variables numéricas
(pueden ser de diferente tipo siempre y
cuando sean convertibles entre ellas)
MOD Obtiene el resto de una división
INC/DEC Incrementa o decrementa en una unidad
ABS Obtiene el valor absoluto de un número
Vídeo👈
87. 4.4 – Comparadores
• Su función es la de comparar si una variable es igual o diferente a otra.
• Si las variables son iguales, devuelve 1 lógico.
• Si las variables son diferentes, devuelve 0 lógico.
• Las variables deben ser del mismo tipo.
• En KOP y AWL se leen de arriba hacia abajo, en SCL de izquierda a derecha.
COMPARADORES DESCRIPCIÓN
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
== Igual
<> Diferente
Vídeo👈
88. 4.5 – Temporizadores
• El temporizador es una herramienta que se utiliza para ejecutar o mantener ejecutada una
acción durante un periodo de tiempo definido, antes o después de que ocurra una acción.
• Necesita de una o varias condiciones que lo activen y lo desactiven
TEMPORIZADOR DESCRIPCIÓN
TP
Tras ser activado, mantiene su salida activa
durante el tiempo estipulado.
No necesita que lo mantengan activo una
vez ha sido activado.
TON
Tras ser activado, empieza a contar. Tras
finalizar el conteo, activa su salida.
Necesita que lo mantengan activo durante el
conteo.
TOFF
Tras ser activado, activa su salida sin
empezar el conteo. Cuando se deja de
activarlo, empieza el conteo y, tras finalizar,
desactiva su salida
TONR
Ligeramente diferente al TON, pero con la
opción de poder pararlo y congelar el
Vídeo👈
89. 4.6 – Contadores
• El contador se utiliza para incrementar o decrementar en una unidad a una variable hasta
un máximo/mínimo establecido.
• El contador contabiliza cuando las acciones a su entrada proporcionan un 1 lógico.
CONTADOR DESCRIPCIÓN
CTU
Al activarlo, incrementa en una unidad a la
variable asignada. Cuando llega a su
máximo, deja de contabilizar. Se puede
resetear.
CTD
Al activarlo, decrementa en una unidad a la
variable asignada. Cuando llega a su
mínimo, deja de contabilizar. Se puede
recargar.
CTUD
Posee una activación para incrementar y otra
para decrementar. Contiene reset y recarga.
Vídeo👈
90. 4.7 – Conversión de valores
• Se utilizan para redondear valores o bien para transformarlos en otros tipos de datos.
• Tratamos con números (int, real, dint…)
FUNCIÓN DESCRIPCIÓN
ROUND Redondea el valor, eliminando decimales.
Devuelve el valor entero al que más se
acercaba el valor decimal
CEIL Devuelve el valor entero superior,
eliminando los decimales.
FLOOR Devuelve el valor entero inferior, eliminando
los decimales.
TRUNC Devuelve el mismo entero, eliminando la
parte decimal
Vídeo👈
91. 4.8 – Ejercicio Práctico
• Control de temperatura de una cámara de refrigeración
La cámara tiene 4 evaporadores, cada uno controlado con un motor con arrancador
Cada evaporador tiene un disyuntor de protección en el cuadro eléctrico
Cada evaporador dispone de su selector auto/manual
Hay un térmico de protección general para todos los evaporadores
Cada evaporador tiene cerca una sonda de temperatura, donde marca los grados.
Evaporador
Nº1
Evaporador
Nº2
Evaporador
Nº3
Evaporador
Nº4
Proyecto 👈
92. • Control de temperatura de una cámara de refrigeración. Tareas a realizar:
Crear una FB evaporador, donde:
o Se tenga en cuenta las señales de entrada (térmico y disyuntor). No tendremos confirmación de marcha. Se
tendrá una señal de auto/manual.
o Se tenga en cuenta las señales de salida (marcha).
o Se deberá contabilizar los segundos, minutos y horas de funcionamiento.
Crear una FC Control de la temperatura de la cámara, donde:
o La temperatura oscilará entre 0 y 5ºC
o Según la temperatura, dará permiso a los evaporadores
o Trabajar siempre con la media de las sondas disponibles
o Modo simulación Tº:
La Tº global subirá 0,1ºC cada 1s si el evaporador está parado
La Tº global bajará 0,1ºC cada 1s si el evaporador está en marcha
o Crear una UDT Termostato para almacenar todas las variables
4.8 – Ejercicio Práctico
Proyecto 👈
93. • Control de temperatura de una cámara de refrigeración. Tareas a realizar:
Crear una FC Cámara Refrigeración para almacenar:
Los evaporadores de la cámara
La FC Control Temperatura
Crear una DB Global para FC Cámara Refrigeración para almacenar:
UDT Termostato
Variables auxiliares (si cabe)
4.8 – Ejercicio Práctico
Proyecto 👈
94. • Control de temperatura de una cámara de refrigeración. BONUS EXTRA:
Modificar el código existente dado que el cliente va a añadir 2 cámaras nuevas, donde:
La primera cámara de refrigeración nueva (será la segunda) dispone de:
o 3 evaporadores, con 1 motor con arrancador cada uno.
o Cada evaporador dispone de su disyuntor en el cuadro
o Cada evaporador dispone de su selector auto/manual
o Los evaporadores tienen en común un diferencial de protección
o La cámara dispone de 2 sondas
o La temperatura debe oscilar entre 0 y 2ºC
La segunda cámara de refrigeración (será la tercera) dispone de:
2 evaporadores, con 1 motor con arrancador cada uno.
o Cada evaporador dispone de su disyuntor en el cuadro
o Cada evaporador dispone de su selector auto/manual
o Los evaporadores tienen en común un diferencial de protección
o La cámara dispone de 1 sonda de temperatura
o La cámara dispone de un detector de NH3 en caso de fuga. Debe parar los evaporadores.
o La temperatura debe oscilar entre -20 y 0ºC
Además, el cliente quiere poder cambiar los valores de consigna de las temperaturas de cada cámara:
Se deberá añadir, para cada cámara, una consigna de marcha y una histéresis de paro.
4.8 – Ejercicio Práctico
Proyecto 👈
95. Consigna de paro: Valor en el cual el elemento en cuestión debe parar para no sobrepasar el valor.
4.8 – Ejercicio Práctico
Histéresis de marcha: Su valor es sumado (o restado) al de la consigna de paro para determinar cuando
debe ponerse en marcha el elemento en cuestión para volver al valor deseado.
10º
C
ºC
15º
C
0ºC
Histéresis de marcha =
3ºC
13º
C
Consigna de paro + Histéresis de
marcha
Consigna de
paro
Proyecto 👈
96. VÍDEOS DE INTERÉS
Consejos Peleceros👈
Experiencias de un Programador👈
(tómate un descansito!!)
Shorts de PLC!👈
98. 5.0 – ¿Qué vamos a ver en está sección?
1. Que es la metodología GRAFCET
Etapa
Transición
Acción
2. Bifurcaciones
OR
AND
3. Ejercicio teórico
4. Ejercicio práctico
Vídeo 👈
99. 5.1 – ¿Qué es GRAFCET?
• Es un diagrama funcional que describe los procesos a ser automatizados.
• Tiene en cuenta los procesos intermedios y las condiciones que deben cumplirse para
ejecutar las acciones correspondientes.
• Un GRAFCET está compuesto de:
Etapa: Define el estado en el que se encuentra el PLC. Se definen con un cuadrado, siendo la
etapa inicial un doble cuadrado.
Acción asociada: Define la acción que va a realizar el PLC en la etapa donde se encuentre.
Transición: Condiciones necesarias para pasar a la siguiente etapa.
100. 5.1 – ¿Qué es GRAFCET?
• Un GRAFCET está compuesto de:
Etapa: Define el estado en el que se encuentra el PLC.
Acción asociada: Define la acción que va a realizar el PLC en la etapa donde se encuentre.
Transición: Condiciones necesarias para pasar a la siguiente etapa.
0
1
Transici
ón
Transici
ón
ACCIÓN
ACCIÓN
101. 5.2 – Bifurcaciones
• Bifurcación en OR
0
4
Transici
ón
Transici
ón
1
Transici
ón
2
Transici
ón
3
Transici
ón
Transici
ón
Transici
ón
A
A A A
A
102. 5.2 – Bifurcaciones
• Bifurcación en AND
0
4
Transici
ón
1
Transici
ón
2 3
Transici
ón
A
A A A
A
103. 5.2 – Bifurcaciones
• Bifurcación en AND
0
4
Transició
n
1
Transici
ón
2 3
Transició
n
A
A A A
A
Transició
n
1.1 2.1 3.1
A A A
1.2 2.2 3.2
A A A
Transició
n
Transició
n
Transició
n
Transició
n
Transició
n
104. 5.3 – Ejercicio
S1 S2 S3
C
1
C
2
C
3
C
4
C
5
LL TP
Marcha Paro
A
1
A
2
El agarrador A1 tiene un sensor interno,
llamado SA1
El agarrador A2 tiene un sensor interno,
llamado SA2
El entaponador TP tiene un sensor interno
de fin de rosca, llamado STP
LR
105. 5.3 – Ejercicio
S1 S2 S3
C
1
C
2
C
3
C
4
C
5
LL TP
Marcha Paro
A
1
A
2
El agarrador A1 tiene un sensor interno,
llamado SA1
El agarrador A2 tiene un sensor interno,
llamado SA2
El entaponador TP tiene un sensor interno
de fin de rosca, llamado STP
LR
106. 5.3 – Ejercicio
S1 S2 S3
C
1
C
2
C
3
C
4
C
5
LL TP
Marcha Paro
A
1
A
2
El agarrador A1 tiene un sensor interno,
llamado SA1
El agarrador A2 tiene un sensor interno,
llamado SA2
El entaponador TP tiene un sensor interno
de fin de rosca, llamado STP
LR
107. 5.3 – Ejercicio
S1 S2 S3
C
1
C
2
C
3
C
4
C
5
LL TP
Marcha Paro
A
1
A
2
El agarrador A1 tiene un sensor interno,
llamado SA1
El agarrador A2 tiene un sensor interno,
llamado SA2
El entaponador TP tiene un sensor interno
de fin de rosca, llamado STP
LR
108. 5.3 – Ejercicio
S1 S2 S3
C
1
C
2
C
3
C
4
C
5
LL TP
Marcha Paro
A
1
A
2
El agarrador A1 tiene un sensor interno,
llamado SA1
El agarrador A2 tiene un sensor interno,
llamado SA2
El entaponador TP tiene un sensor interno
de fin de rosca, llamado STP
LR
109. 5.3 – Ejercicio
S1 S2 S3
C
1
C
2
C
3
C
4
C
5
LL TP
Marcha Paro
A
1
A
2
El agarrador A1 tiene un sensor interno,
llamado SA1
El agarrador A2 tiene un sensor interno,
llamado SA2
El entaponador TP tiene un sensor interno
de fin de rosca, llamado STP
LR
110. 5.3 – Ejercicio
Marcha Paro
S1 S2 S3
C
1
C
2
C
3
C
4
C
5
LL TP
A
1
A
2
El agarrador A1 tiene un sensor interno,
llamado SA1
El agarrador A2 tiene un sensor interno,
llamado SA2
El entaponador TP tiene un sensor interno
de fin de rosca, llamado STP
LR
112. 5.3 – Ejercicio
Marcha Paro
S1 S2 S3
C
1
C
2
C
3
C
4
C
5
LL TP
A
1
A
2
El agarrador A1 tiene un sensor interno,
llamado SA1
El agarrador A2 tiene un sensor interno,
llamado SA2
El entaponador TP tiene un sensor interno
de fin de rosca, llamado STP
TRAMO
1
TRAMO
2
TRAMO 3
TRAMO
4
TRAMO 5
LR
Vídeo 👈 Ejercicio TIA Portal 👈 Simulación PLCSIM👈 Simulación FactoryIO👈
117. 7.0 – ¿Qué vamos a ver en está sección?
1. Como asignar dirección IP
Interfaz Profinet
Identificar el dispositivo deseado
2. Tiempo de ciclo
Arranque
WatchDog
Carga de comunicación
Visualizar ciclo de Scan en tiempo
“real”
3. Marcas del sistema
4. Marcas de ciclo
5. Configuración Fecha/hora
6. Recursos de conexión
7. Diagnóstico del Sistema
9. Memoria del PLC
Carga
Trabajo
Remanente
10. Cartas de E/S Digitales
11. Cartas de E/S Analógicas
12. Sondas de 2, 3 y 4 hilos
13. Módulos de comunicación
CP
CM
IM (Periferia descentralizada)
14. GSD
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
119. 8.0 – ¿Qué vamos a ver en está sección?
1. Saltos en AWL
2. Bucles en AWL
3. Movimiento de Datos (Áreas de
memoria)
1. Peek/Poke
2. Move_BLK
3. BLKMOV
4. Acceso a DB y DI en AWL
5. Acumuladores en AWL
6. Registros (AR1, AR2)
7. Puntero ANY
8. Lectura/Escritura Fecha y Hora PLC
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
Vídeo 👈
131. 10.1 – Controlador PID
ECUACIÓN PID
Acción
Proporcional
Acción
Integral
Acción
Derivada
Actúa en función
del error en el instante
actual
Actúa en función
del error pasado
Actúa en función
del error futuro
(predicción según
tendencia)
132. 10.1 – Controlador PID
10ºC
8ºC
12ºC
Acción Proporcional
(P)
e e e
e e e
e
ºC
t
137. 10.1 – Controlador PID
Acción Proporcional-Derivada (PD)
10ºC
8ºC
12ºC
8º
C
ºC
t
SP
PV
Ruido
inestable
+
SP
PV +
Ruido
estable
10ºC
8ºC
12ºC
8º
C
ºC
t
138. 10.1 – Controlador PID
10ºC
¿Lo normal? Utilizar un PI o un PID,
normalmente suele bastar con un PI
8ºC
12ºC
8º
C
ºC
t
139. 10.4 – Ejercicio PID
SP = 50%
PV = 60%
-> SP – PV = error; error = 50% - 60% = -10%
Acción de Control = Kp · error
+ -
-
; AC = 1 · -10% = -10%
El actuador que disminuye el Nv del tanque es la Válvula de
Vaciado
SP = 50%
PV = 40% -> SP – PV = error; error = 50% - 40% = 10%
Acción de Control = Kp · error
+ +
+
; AC = 1 · 10% = 10%
El actuador que aumenta el Nv del tanque es la Válvula de
Llenado
140. 10.4 – Ejercicio PID
1. Un error positivo (PV por debajo del SP) implica una acción
de control entre el 0 y el 100%
2. Un error positivo implica que se necesita llenar el tanque
3. El PID que controla la Válvula de Llenado tendrá una
Acción de control de 0 a +100%
----------------------------------------------------------------------------------
1. Un error negativo (PV por encima del SP) implica una acción
de control entre el 0 y el -100%
2. Un error negativo implica que se necesita disminuir el tanque
3. El PID que controla la Válvula de Vaciado tendrá una Acción
de control de 0 a -100%