PLC Solution Library · Simulador de estación de montaje
Pon en marcha una estación de montaje: comprueba cada pieza y pasa el ciclo al robot
Una estación de montaje decide en cada pieza: ¿es buena y puede el robot hacer su trabajo ahora? En este simulador, un M-Duino 38R pesa la pieza, lee la fuerza de la prensa y mide una distancia con un láser. Compara cada valor con una ventana, envía un número de programa al robot y espera sus respuestas.
Elige una variante, arranca la estación o provoca un fallo. Mira las señales entre el PLC y el robot, los contadores OK y NOK y el registro de cada pieza.
Elige tu escenario
Intercambio de señales con el robot
Rearme del operario representa el botón de rearme del Panel PC. Si el robot está en fallo, el PLC también le envía un pulso de RESET.
Tus decisiones de diseño
Son decisiones que tomas en el programa de tu estación. Se explican más abajo.
Recetas de ejemplo
| Variante | Programa | Peso, kg | Fuerza, kN | Distancia, mm | Prensa, bar |
|---|---|---|---|---|---|
| A | 3 | 4,80 a 5,20 | 8 a 12 | 119,5 a 120,5 | 6,0 |
| B | 5 | 3,40 a 3,70 | 6 a 9 | 96,5 a 97,5 | 4,5 |
| C | 4 | 6,10 a 6,50 | 10 a 13 | 142,0 a 143,0 | 5,5 |
Valores de ejemplo para este simulador. A y B siguen los ejemplos del caso: las ventanas de A, el programa 3 a 6,0 V para la línea A y el programa 5 a 4,5 V para la línea B, con una consigna de 0-10 V para 0-10 bar. El caso las llama líneas; aquí son recetas de una estación. Tiempos máximos: de START a BUSY 2 s, de BUSY a DONE 10 s, DONE desactivado 1 s, sujeción 2 s, carrera de prensa 1,5 s. Tus ventanas salen de tus planos y de tu proceso.
Registro de la estación
| n | hora | variante | programa | peso, kg | fuerza, kN | distancia, mm | robot | resultado | motivo |
|---|
Una fila por pieza. Tu PLC escribe la fila en su tarjeta microSD con la hora de su reloj de tiempo real y la envía al Panel PC por Ethernet. NO EJEC. significa que el valor no se midió. No es un OK.
¿Qué hace la estación con cada pieza?
El PLC ejecuta los mismos siete pasos en cada pieza. La pieza sigue adelante solo si su peso, su fuerza máxima y su altura están dentro de sus ventanas.
- Pieza. Un sensor ve la pieza en el tope. El PLC espera la señal READY del robot.
- Peso. La pieza descansa libre sobre la báscula. El PLC espera 0,5 s a que se estabilice, lee la célula de carga y compara el peso con su ventana. Un peso incorrecto suele indicar un componente que falta o que no es el bueno. Entonces el PLC salta la sujeción, el robot y la prensa, y no se gasta un inserto en una pieza mala.
- Sujeción. El PLC cierra la sujeción y espera el sensor de sujeción cerrada, 2 s como máximo. La báscula tiene topes mecánicos de sobrecarga. Cuando la sujeción cierra, la pieza se apoya en los topes, así que la fuerza de la prensa va al bastidor y no a la célula de carga.
- Robot. El PLC envía el número de programa de la variante y arranca el robot. El robot coloca el inserto y responde DONE.
- Prensa. El PLC fija la presión de una válvula proporcional con una salida analógica e introduce el inserto. Guarda la fuerza más alta hasta que el vástago llega al sensor de prensa abajo, justo por encima de la posición asentada.
- Distancia. La prensa sube. Un láser mide una distancia en el conjunto, la altura del inserto sobre la base, que indica si el inserto ha quedado bien asentado.
- Resultado. OK abre el tope hacia la estación siguiente. NOK abre la compuerta de rechazo hacia la vía NOK. El PLC cuenta la pieza, escribe su registro y lo envía al Panel PC.
Ejecuta el escenario Fuera de ventana y compara cada NOK con el motivo del registro.
¿Cómo se pasan el ciclo el PLC y el robot?
Con un intercambio de señales: cada lado responde a cada cambio del otro antes del paso siguiente. El programa del robot se ejecuta en el controlador del robot. El PLC solo dice qué programa ejecutar y cuándo, y espera las respuestas.
- El robot da READY: está en modo automático y sin fallo.
- El PLC pone el número de programa en tres salidas, más un bit de paridad, y espera 100 ms para que todos los contactos estén estables.
- El PLC activa START y lo mantiene activado.
- El robot lee el programa y responde BUSY. Si BUSY no llega en 2 s, el PLC quita START y para con un fallo.
- El robot coloca el inserto, desactiva BUSY y activa DONE. Si DONE no llega en 10 s desde BUSY, el PLC para por tiempo máximo de ciclo del robot.
- El PLC ve DONE y quita START y el programa. El robot ve START desactivado y quita DONE. El intercambio queda cerrado y puede empezar el ciclo siguiente. Si DONE sigue activo más de 1 s después de quitar START, el PLC para con un fallo de intercambio.
La traza del panel muestra los últimos 15 s de estas señales. Cada cambio en un lado tiene una respuesta en el otro.
Con un pulso fijo de START, el PLC no sabe si el robot lo ha visto. Si el robot llega tarde a su punto de espera, el pulso ya ha terminado y el ciclo no arranca. Ejecuta el escenario Tiempos máximos del robot con un pulso de 300 ms y mira la pieza 1.
¿Cómo convierte el PLC una señal de 0-10 V en OK o NOK?
Convierte las cuentas de la entrada analógica en kg, kN o mm, y compara el valor con un mínimo y un máximo. Las entradas analógicas del M-Duino 38R leen de 0 a 10 V con 10 bits, así que 1 cuenta son unos 9,8 mV. El panel muestra los voltios y las cuentas junto a cada valor.
- Peso: una célula de carga da unos pocos milivoltios. Un transmisor de pesaje los convierte en 0-10 V. En el ejemplo, 0-10 V son 0-10 kg, así que 1 cuenta son unos 10 g.
- Fuerza máxima: un sensor de fuerza en el vástago de la prensa, con su amplificador, da 0-10 V para 0-20 kN. El PLC guarda la fuerza más alta hasta que el vástago llega al sensor de prensa abajo, colocado justo por encima de la posición asentada. Después, el cilindro se detiene contra la pieza y empuja con presión × área, igual en todas las piezas, así que esa fuerza no distingue un ajuste bueno de uno malo. Si el vástago no llega al sensor a tiempo, el inserto se ha atascado.
- Distancia: un sensor láser de distancia da 0-10 V para 50-150 mm. 1 cuenta son unos 0,1 mm, suficiente para una ventana de ±0,5 mm. Para ventanas más estrechas, usa un sensor con menos rango o con salida digital, por ejemplo RS-485.
Cada valor tiene un tiempo de estabilización y una media. La vibración del transportador, del robot y de la prensa llega a la báscula, y una sola lectura puede dejar una pieza buena fuera de su ventana. En el simulador, el PLC toma una muestra cada 20 ms, así que 16 muestras tardan unos 0,3 s. Pon Muestras por lectura en 1 muestra y deja la estación en marcha: algunas piezas buenas cerca del borde de una ventana salen NOK.
Con 0-10 V, un cable cortado también lee 0 V. El PLC trata 0 V con una pieza en la báscula como un fallo del sensor, no como una pieza ligera. Un transmisor de 4-20 mA muestra un cable cortado como menos de 4 mA.
La fuerza máxima no muestra toda la curva de inserción. Si tienes que comprobar la fuerza frente a la posición, lo hace un monitor de prensado, y el PLC lee su señal OK o NOK.
¿Qué debe hacer el PLC cuando el robot no responde?
Parar en un estado conocido: quitar START y el programa, mantener la pieza sujeta, mostrar el fallo y esperar al operario. Lo que pasa después depende de si el robot ha tocado la pieza.
- Sin BUSY tras START: el robot no se ha movido. Después del rearme, el PLC repite el paso del robot en la misma pieza.
- FAULT del robot antes de BUSY, por ejemplo un error de paridad: el robot tampoco se ha movido. El PLC repite el paso del robot después del rearme.
- FAULT del robot durante el ciclo, o sin DONE en 10 s: el inserto puede estar a medio colocar. El PLC marca la pieza como NOK y envía un pulso de RESET al robot con el rearme del operario. Espera READY, con el robot de vuelta en reposo, antes de abrir la sujeción y mover la pieza.
Pon cada tiempo máximo por encima de la respuesta normal más lenta, con margen. En el ejemplo, el ciclo de robot más lento dura 3,4 s y el tiempo máximo es de 10 s.
El intercambio de señales es lógica de proceso. La seguridad de las personas no está en este programa. Los resguardos, las cortinas fotoeléctricas y las funciones de seguridad del robot van a un relé o un controlador de seguridad, diseñados según ISO 10218-2 e ISO 13849-1. Ese circuito para el robot por sus entradas de seguridad y quita el aire de la prensa con una válvula de escape de seguridad, sin pasar por los relés del PLC. La parada de emergencia no depende del programa del PLC (IEC 60204-1, ISO 13850). El PLC lee el estado del circuito de seguridad en una entrada y para la secuencia. No lo sustituye. Mira cómo lee un PLC el estado de los enclavamientos y de la parada de emergencia.
Ejecuta el escenario Fallos del robot para ver un fallo durante el ciclo y un error de paridad.
Decisiones de diseño que tomas
1. START mantenido o pulso de START
Un START mantenido espera al robot. Un robot que llega tarde todavía ve la petición, y el robot quita DONE solo después de que el PLC quite START, así que ningún lado pierde un cambio. Un pulso es más simple, pero solo funciona si el robot siempre está esperando cuando llega el pulso.
2. Un bit de paridad en el número de programa
Un número de programa en contactos de relé puede llegar mal si un contacto no cierra. Con tres bits, un bit 0 abierto convierte el programa 3 en 2 y el programa 5 en 4. El programa 4 es un programa válido: solo el bit de paridad muestra que el número es incorrecto. El programa 4 no usa el bit 0, así que el fallo queda oculto hasta que una receta necesita ese bit. Un rearme no repara el relé: el fallo vuelve en cada pieza que usa el bit 0. Con un bit de paridad par, el robot ve que el número es incorrecto y no se mueve. Otra opción es el eco del programa: el robot devuelve el número y el PLC lo compara antes de START. Eso necesita tres entradas más. Un bus de campo entre el PLC y el controlador del robot también evita un cable por bit.
3. Cuándo para la estación
Una pieza NOK es un problema de la pieza. Varias piezas NOK seguidas suelen indicar el proceso: una herramienta de prensa gastada, un lote de insertos equivocado, un sensor que se ha movido. Parar tras 3 NOK seguidas evita que la estación llene la vía NOK. Tú eliges el número, o paras según la tasa de NOK de las últimas piezas.
4. Dónde viven las recetas
Las ventanas, el número de programa y la presión de cada variante pueden estar en el programa del PLC o llegar desde el Panel PC con cada orden. Guarda la variante en cada registro, para saber qué ventanas juzgaron cada pieza.
5. Salidas de relé para el intercambio
El M-Duino 38R tiene 16 salidas de relé. Sirven para señales que cambian pocas veces por ciclo, como START, los bits de programa y las válvulas. Un contacto de relé está libre de potencial, así que puede alimentar una entrada de 24 V del controlador del robot desde la fuente del robot. Para bobinas de válvula, añade un supresor dimensionado para la bobina, como una red RC. Cuenta las maniobras: con un ciclo cada 10 s, START conmuta unos 3 millones de veces al año. Comprueba la vida eléctrica de los relés en la guía de usuario frente a tu ciclo, o intercambia el programa y el estado por un bus de campo (mira la FAQ). Pon las señales del robot en relés cuyo común no se comparta con las válvulas.
El caso detrás de este simulador
Este simulador acompaña a nuestro caso sobre una línea de producción de automoción controlada por un M-Duino 38R. El caso describe la línea: estaciones que pesan, miden y prensan, robots y brazos que reciben órdenes del PLC, y un Panel PC con MQTT y Node-RED desde donde se gestiona. Este simulador se acerca a una estación y a su intercambio de señales con el robot.
Lee el caso de la línea de producción de automoción
Lo que ves aquí es un patrón general. Las variantes, las ventanas, los programas, los tiempos y los fallos son ejemplos, no datos de esa línea.
Para seguir una línea entera por MQTT, con paros y alarmas, prueba el simulador Machine Monitor.
Para probar cada unidad terminada al final de la línea, mira el simulador de prueba de fin de línea.
Aprende las piezas básicas
Estos tutoriales y ejemplos cubren las partes de esta estación en un PLC basado en Arduino.
- Lo básico de las entradas analógicas de un PLC industrial, para la célula de carga, el sensor de fuerza y el láser
- Cómo mejorar la lectura analógica, con medias y filtros
- Cómo activar una salida de relé con un PLC basado en Arduino, para START, los bits de programa y las válvulas
- Lo básico de las salidas analógicas de un PLC industrial, para la consigna de presión
- MQTT entre un PLC M-Duino y un Raspberry PLC, para enviar cada registro a un Panel PC
- LEDs de estado MQTT en un panel táctil con Node-RED (PLC Solution Library)
Más ejemplos: PLC Solution Library · todos los simuladores.
M-Duino 38R: las especificaciones que importan aquí
| Entradas | 12: 8 analógicas/digitales (0-10 V, 10 bits) y 4 digitales optoaisladas (5 a 24 Vdc), 4 con interrupción |
|---|---|
| Salidas | 22: 16 relés (230 Vac 4 A / 24 Vdc 2 A, carga resistiva) y 6 analógicas/digitales/PWM (0-10 V, 8 bits) |
| Comunicación | Ethernet W5500 10/100 Mbit (RJ45), RS-485, RS-232, serie TTL, I2C, SPI |
| Integrado | Reloj de tiempo real, ranura microSD, USB 2.0 tipo B |
| Controlador | Arduino Mega 2560 (ATmega2560, 16 MHz) |
| Alimentación | 12 a 24 Vdc, con fusible (2,5 A) y protección de polaridad |
| Entorno | 0 a 60 °C, humedad del 10 al 90 % sin condensación |
| Montaje | Carril DIN TS35, IP20, dentro de un armario |
| Programación | Arduino IDE con el paquete de placas de Industrial Shields |
E/S de ejemplo para esta estación
| Señal | E/S del PLC | Cantidad |
|---|---|---|
| READY, BUSY, DONE y FAULT del robot | Entradas digitales optoaisladas | 4 |
| Peso, fuerza y distancia, desde transmisores de 0-10 V | Entradas analógicas | 3 |
| Pieza presente, sujeción cerrada, prensa arriba, prensa abajo, circuito de seguridad OK (solo estado) | Entradas analógicas/digitales usadas como digitales | 5 |
| Bits de programa 0 a 2, paridad, START, RESET del robot | Salidas de relé | 6 |
| Válvula de sujeción, válvula de prensa, tope, compuerta de rechazo | Salidas de relé | 4 |
| Baliza: verde, ámbar, roja | Salidas de relé | 3 |
| Consigna de presión a una válvula proporcional | Salida analógica, 0-10 V | 1 |
| Panel PC: recetas, registros, rearme del operario | Ethernet | 1 |
Este ejemplo usa las 12 entradas, 13 de los 16 relés y 1 de las 6 salidas analógicas. Las señales del robot van a las entradas optoaisladas porque llegan de otro controlador con su propia fuente. La hoja de datos de la familia da de 0 a 24 Vdc para las entradas analógicas/digitales en modo digital, así que ahí se pueden conectar sensores de 24 V. La salida analógica tiene 8 bits: en una válvula de 0-10 bar, un paso son unos 0,04 bar. Para más señales, elige un M-Duino más grande o añade un segundo PLC por Ethernet. Comprueba tus cargas y niveles con la hoja de datos de la familia M-Duino. Especificaciones completas: M-Duino 38R · familia M-Duino.
FAQ
¿Qué debe hacer el PLC cuando el robot no responde a START?
Quitar START y el número de programa, mantener la pieza sujeta y parar con un fallo. El robot no se ha movido, así que después del rearme del operario el PLC puede repetir el paso del robot en la misma pieza. Usa un tiempo máximo más largo que la respuesta normal más lenta de tu robot, por ejemplo 2 s.
¿Por qué mantener START hasta DONE en lugar de enviar un pulso?
Con un START mantenido, cada lado responde a cada cambio del otro. Un pulso puede terminar antes de que el robot llegue a su punto de espera, y entonces el robot no arranca. Un START mantenido sigue ahí cuando llega un robot que va tarde. El robot quita DONE solo después de que el PLC quite START, así que el PLC tampoco pierde DONE.
¿Por qué enviar un bit de paridad con el número de programa?
Para detectar un número incorrecto antes de que el robot se mueva. Si un contacto de relé no cierra, el robot lee otro programa. Con un bit de paridad par, el robot ve que el número es incorrecto y pasa a fallo. Algunos fallos quedan ocultos: un bit 0 abierto no cambia el programa 4, así que prueba cada bit en la puesta en marcha de la estación. Un rearme no repara el relé.
¿Por qué la estación salta el robot cuando el peso está fuera de la ventana?
Un peso incorrecto suele indicar un componente que falta o que no es el bueno. Introducir un inserto en esa pieza gasta el inserto y un ciclo de robot, y la pieza es NOK igualmente. El registro muestra la fuerza y la distancia como no ejecutadas.
¿Por qué el PLC deja de juzgar la fuerza en el sensor de prensa abajo?
Porque a partir de ese punto una prensa neumática empuja con presión × área en todas las piezas. Cuando el inserto queda asentado, el cilindro se detiene contra la pieza y la fuerza sube a ese valor, sea bueno el ajuste o no. La fuerza útil es la de antes de la posición asentada: demasiado baja indica un inserto suelto. Un inserto que se atasca nunca llega al sensor, así que el PLC usa un tiempo máximo de carrera para detectarlo.
¿Cuántas muestras debe promediar el PLC antes de comparar un valor?
Las suficientes para quitar el ruido del transportador y de la báscula, y pocas para no alargar el tiempo de ciclo. En el simulador, el PLC toma una muestra cada 20 ms, así que 16 muestras tardan unos 0,3 s después de 0,5 s de estabilización. Compara el resultado con 1 muestra: algunas piezas buenas cerca del límite salen NOK.
¿Puede el M-Duino 38R hablar con el robot por un bus de campo en lugar de cables?
El M-Duino 38R tiene Ethernet, RS-485 y RS-232, y las librerías de Industrial Shields para Modbus TCP y Modbus RTU. Si el controlador de tu robot acepta Modbus TCP o Modbus RTU, el PLC puede intercambiar el número de programa y el estado como registros. Muchos controladores de robot usan otros buses de campo, como PROFINET o EtherNet/IP, así que revisa las opciones de tu controlador. La lógica del intercambio es la misma.
¿Tengo que escribir yo el programa de la estación?
El programa se escribe en C++ con el Arduino IDE. Las piezas básicas, como las entradas analógicas, las salidas de relé, la tarjeta SD y MQTT, tienen tutoriales públicos, enlazados más arriba. Un integrador también puede escribir el programa a partir de la descripción de tu estación.
Envíame esta arquitectura
Cuéntanos qué miden tus estaciones, qué robots mandan y cuántas variantes fabricas. Nuestro equipo te responde con una propuesta de arquitectura para tu línea. Los ajustes del simulador van con la solicitud.