Monitorizar inyectora indrustrial - pasar a 3,3V señales de 24V

Buenos días a todos!

Antes de nada, presentarme. Soy un informático de una empresa de inyección de plástico. Llevaba un tiempo dándole vueltas a crear una especie de panel de control en el cual viéramos el estatus de cada máquina (si está en marcha, parada etc), pero siempre pensé y cada vez que preguntaba en empresas parecidas a la nuestra me lo confirmaban, la idea que tenía era costosa, claro, hablábamos de PLC... Bien, de rebote he descubierto el mundo Arduino y la verdad es que estoy ilusionadísimo! He hecho algunas pruebas y estoy alucinando con las posibilidades que ofrece... tan solo me lamento de mi nulo conocimiento electrónico, pero que bueno, más o menos me estoy apañando!

De momento, he hecho varias pruebas (aparte de las típicas de encender un led etc... jejeje) y ya estoy avanzando en el tema, pero todo esto casi que lo explico en el apartado de proyectos... porque lo estoy planteando la comunicación mediante malla de Xbee (alguna duda tengo...) y Arduino FIOs y monitorización con PHP y tal...

Bueno, el problema que tengo ahora es en como reducir el voltaje de las señales que envía el PLC de la inyectora. Es una señal de 24V para cada evento, o sea utilizaría una entrada del FIO para cada señal... claro, después de reducirla. Entiendo que las señales de 24V del PLC son estabilizadas (no se si se dice así), sin picos ni nada, por lo que después de leer y releer por ahí había pensado en una resistencia para reducir el voltaje? Sería correcto? También podría usar un regulador de tensión, pero valen bastante más y mi idea es dejar preparadas las 12 entradas del FIO para que en un momento dado podamos ir añadiendo señales y tan solo tenga que configurar el PHP para que sepa lo que significa cada señal. Y claro, si cada regulador cuesta 2€ pues en cada arduino me gasto 24€ (más que el FIO!) y si añadimos el xbee... pues eso. Además estamos hablando de cerca de 25 inyectoras. Para el cálculo de la resistencia, como lo tendría que hacer? Yo he calculado una resistencia de 420 ohm... pero no si estara bien...

Cuando tenga un rato, describo el proyecto completo, a ver que os parece!

Muchas gracias de antemano.

Hablas de señales digitales de entrada, entiendo.

Un divisor de tensión con resistencias sería suficiente, aunque también tiene su truco (ni muy alta impedancia, ni muy baja impendacia ...).

Yo, por mi estabilizado que estuviese la señal, usaría un optoacoplador (como el PC817/847). Así te desacoplas hasta de la masa ...

Si, las señales de entrada en el FIO serán las digitales, de hecho el PLC o envía 24 o no envía nada...

Miraré lo del optoacoplador, pero entiendo que debería de poner uno por cada entrada, no? Cuanto suelen costar estos optos?

Son realmente baratos.

Yo he encontrado esto.... http://www.bricogeek.com/shop/herramientas-de-prototipado/408-placa-optoacoplador-ild213t.html

Pero deduzco por el precio que no puede ser...

Acabo de encontrar estos.... http://www.diotronic.com/optoelectronica/optoacopladores/optoacopladores_p_76.aspx
Que el precio me gusta más! jejeje! Supongo que serán estos. Tendré averiguar de que tipo tendrían que ser y demás.

Alguna otra sugerencia?

efectivamente tienes que usar optoacopladores, por costo te recomensaria los que dijo ADLC o los CNY74-4 que traen 4 en el mismo encapsulado y te reduce el numero de chips en placa.
A mi entender no necesitas de alta velocidad porque conque lo leas cada 1 segundo o menos te sobra.
Yo lo haria asi:
Entrda optoacoplada con o sin led de estatus + un latch. De esta forma memorizas el estado de todas las entradas para despues recorrerlas y mostrarlas en pantalla como quieras en el tiempo que quieras. Ademas usando latch podes aumentar el numero de entradas usando solo 1 puerto de 8 a 32,64 o mas.
Tambien puedes usar expansores con i2c que de entrada te dan 16 cada uno y podes tener hasta 64 o en spi muchos mas

Hola a todos, otra vez!

Sigo dándole vueltas al tema del optoacoplador... No termino de entender como funciona ni de que tipo ahí. Por lo que veo, el opto no me reduce la tensión, no? si entran 24 en el opto, salen 24, no? Luego me tendría que encargar de reducirlo? Es que en ningún sitio veo que se refieran a los voltajes de salida de los optos... así como los reguladores si que son de 3.3v, por ejemplo.

Luego si he visto que puede haber optos "multiples" que tienen varias entradas y varias salidas, pero entiendo que el funcionamiento será igual... pero no termino de entender el montaje.

He estado buscando en google y no lo pillo, tampoco en youtube...

A ver si alguien me ilumina!

Un optoacoplador es un led y un fototransistor. Para señales digitales, por un lado se enciende el led, y por otro el fototransistor entra en saturación (actuando como una especie de interruptor).

Aunque se llama optoacoplador, quizás debería llamarse optoisolador, porque lo que hace es que las dos parte del circuito no necesiten compartir "electrones".
Un pico de tensión en un lado del circuito no se va a propagar al otro lado de este.

ADLC:
Un optoacoplador es un led y un fototransistor. Para señales digitales, por un lado se enciende el led, y por otro el fototransistor entra en saturación (actuando como una especie de interruptor).

Aunque se llama optoacoplador, quizás debería llamarse optoisolador, porque lo que hace es que las dos parte del circuito no necesiten compartir "electrones".
Un pico de tensión en un lado del circuito no se va a propagar al otro lado de este.

Gracias! Aunque esa parte si que la había entendido... Pero entiendo que aisla un circuito de otro, pero no cambia su voltaje, no? O sí? O sea, si entran 24V... salen 24, no? Luego tendré que poner las resistencias que correspondan (aquí tengo un problmea, que no se el amperaje que dan los 24V...).

A ver si mi planteamiento es correcto... luego ya veremos a ver como lo montamos, que ese es otro tema!!

Digamos que ... es bastante incorrecto. Estás mezclando voltios con amperios con fotones ...

No necesitas divisores de tensión con resistencia: necesitarás una resistencia limitadora para controlar la corriente que pase por el LED y una resistencia de pull-up (o pull-down) en la parte del transistor para poder leer el valor. Posiblemente ocn una resistencia de 10K en cada lado te funcione ...

http://www.renesas.com/products/opto/technology/usage/index.jsp

aca tenes como hacer un divisor para hacer tus pruebas, si mides con un multimetro veras que no te da los 5v o los 3v3 sino un poco antes, es para tener un poco de seguridad por alguna fluctuacion en la fuente, pero dentro de los valores de tension logicos para 1.
si no estan muy seguro de tensiones primero mide con multimetros, despues lo conectas a arduino. sino se puede quemar y no tiene arreglo.

divisor.png

Los divisores de tensión sólo los necesitarías si no usas optoacopladores.

Gracias por la ayuda!!

Si, lo de los divisores ya se que es sin optos... pero se agradece la puntualización, que lo mismo la lío.

De momento probaré con los divisores, a modo de prueba a ver que tal va durante un tiempo en un único FIO y según los resultados pues lo hago así o intento hacerlo con optos...

Muchas gracias por vuestra ayuda!

PD: a ver si luego hago un par de preguntar sobre los xbee...

Hola a todo el foro,bueno yo te dejo mi humilde aportacion para el tema de aislar la entrada del ARDUINO,comobien te han aconsejado,deberias aislar las señales procedentes de tu PLC antes de insertarlas en el ARDUINO,con esto te aseguras no achicharrar el pin correspondiente por esos 24v y ademas y creo que tambien es importante el ruido electrico que te puede dar algun fallo(hablo por experiencia con un automata que hice con un PIC).

Si quieres hacer pruebas en casa y no dispones de un optoacoplador,puedes usar un divisor de tension(en el libro Arduino cooking capitulo 5.11 pag 162 te enseña a calcularlo y tienes unos ejemplos) o puedes reducir esos 24v con un diodo zener de 5v1...yo te recomiendo el uso de optoacopladores.

Te dejo un esquema de como conectar un optoacoplador

4N25.pdf (146 KB)

optoacoplador.pdf (17.7 KB)

esdrufao:
Hola a todo el foro,bueno yo te dejo mi humilde aportacion para el tema de aislar la entrada del ARDUINO,comobien te han aconsejado,deberias aislar las señales procedentes de tu PLC antes de insertarlas en el ARDUINO,con esto te aseguras no achicharrar el pin correspondiente por esos 24v y ademas y creo que tambien es importante el ruido electrico que te puede dar algun fallo(hablo por experiencia con un automata que hice con un PIC).

Si quieres hacer pruebas en casa y no dispones de un optoacoplador,puedes usar un divisor de tension(en el libro Arduino cooking capitulo 5.11 pag 162 te enseña a calcularlo y tienes unos ejemplos) o puedes reducir esos 24v con un diodo zener de 5v1...yo te recomiendo el uso de optoacopladores.

Te dejo un esquema de como conectar un optoacoplador

Hola,

Gracias por el esquema! Cuando lo he visto creía tenerlo todo más claro, pero... mi poco conocimiento sobre el tema me está jugando malas pasadas! Llevo toda la mañana intentando poner en marcha el optoacoplador y no hay manera!!! Vamos a ver si consigo explicar lo que he hecho y veo a ver donde estoy fallando...

  • Pin 1: La salida del PLC 24 V + resistencia de 1K (ahora mismo estoy probando con la salida de un arduino UNO, o sea 5V)
  • Pin 2: GND del PLC (ahora mismo el GND del Arduino UNO)
  • Pin 3: vacío
  • Pin 4: 3V3 del Arduino FIO + resistencia de 1K
  • Pin 5: entrada D4 del Arduino FIO
  • Pin 6: GND del Arduino FIO

Pues no hay manera... algo no estoy entendiendo bien. Yo si quiero que cuando en el pin1-2 hay 24V (en este caso 5V) en el pin 5-6 haya 3V3, debería ser así, no? Ando a vueltas con el voltímetro, midiendo aquí y allí y no saco nada en claro... Por ejemplo, entre el pin 4-6, con la resistencia hay 0.78V y entre 5-6 0.03V... pero que en los pines 1-2 haya o no 5V no implica nada, vamos que siempre hay el mismo voltaje! No se, estoy hecho un lio!

De todas formas, muchas gracias por la paciencia que estáis teniendo...

Hola,

Como te han recomendado, lo mejor es optoacoplar... pero si quieres conectarlo directo, para una señal digital, no necesitas divisor de tensión.
Pon una resistencia muy grande entre la salida digital y tu entrada del Arduino.

¿por qué puedo hacerlo?
El micro tiene en todas sus entradas unos "clamp diodes".

La corriente debe ser menor de 1mA para no cargártelos. Si tienes curiosidad, tienes una nota de aplicación de Atmel que hacen un detector de paso por cero conectando directamente la señal de red eléctrica (http://www.eetasia.com/ARTICLES/2003APR/A/2003APR25_EMS_MPR_AN08.PDF?SOURCES=DOWNLOAD).

Pero la mejor opción es optoacoplar :wink:

Saludos,

Igor R.

Gracias, pero sigo sin poder conectar el opto en condiciones...

Tengo claro que lo quiero hacer con un opto, creo que será la mejor soución,pero después de pasar otra mañana entera pelándome con ello... sigo en el mismo punto. Creo entender la lógica y dedmás, pero no soy capaz de desarrollarlo correctamente...

A ver si alguien me ilumina con una "guía de conexión de optoacopladores para tontos"...

Hola Gandalf,te dejo un video y te explico como funciona un optoacoplador para que lo entiendas mejor.

Entre los pines 1 y 2 tenemos un diodo led(interno) y entre los pines 4,5 y 6 un fototransistor.Bien cuando yo le doy tension al led interno,este me hace conducir el fototransistor,no puedes tener tension entre los pines 4 y 5 porque son el emisor y el colector respectivamente,el pin 6 es la base que generalmente nunca se usa.

en este caso la union emisor y colector actuan como un interruptor,si tu excitas el led interno conduce el fototransistor y se cierra el circuito si dejas de excitar el led interno se abre el circuito,lo que vas a conseguir en la entrada de tu arduino seran 0 ó 1 segun tengas la configuracion (pull-up o pull-down) no una tension variable.Esto explicado asi a grosomodo para que lo entiendas sin entrar en tecnicismos.

primero que nada hay que saber que opto estas queriendo usas.

Puedes usar fritzing Download Fritzing, ahi puedes ver como conectarlo a un protoboard.

Nunca me contestaste al mensaje privado

Gracias a ambos! Ya lo he resuelto... el video ha sido de gran ayuda!