Control Variador de frecuencia trifásico con Arduino

Buenos dias a todos, tengo pensado intentar controlar un variador de frecuencia trifásico (para controlar la velocidad de un motor trifásico asíncrono) mediante una tarjeta Arduino a partir de su puerto serie (RS232). No estoy muy experimentado en su uso y no sé si es posible poder realizar dicho conexionado (tarjeta Arduino-Variador de frecuencia) sin incluir ningún módulo aparte. Si alguno de ustedes conoce éste tema o ha trabajado con él le agradecería su ayuda. :slight_smile: :slight_smile:

Hola,
tendrías que especificar las características del variador en concreto. Por ejemplo, si ofrece posibilidad de comunicación por RS232

El variador trifásico que tengo pensado sería del fabricante ABB de la gama ACS350 de unos 5Kw, con un rango de tensión de 380V a 480V. En las especificaciones, concretamente en la parte de selección de bus de campo especifica lo siguiente: RS-485/Modbus. No especifica nada sobre comunicación mediante RS-232. Supongo que si mi idea es utilizar una tarjeta Arduino para realizar una comunicación entre ésta tarjeta y el variador de frecuencia...¿Debería utilizar un adaptador de RS-232 a RS-485 para poder realizar la comunicación?

Adjunto el catálogo de dónde he extraido ésta información por si deseas revisarlo.

Muchas gracias por tu respuesta.

es_acs350_generalmachinerydrives_catalog_revg.pdf (590 KB)

En el 99.90% de los casos, las soluciones mas sencillas con las que mejor funcionan...

¿Que exactamente necesitas controlar?
El Variador de frecuencia, tiene sus propias, entradas/salidas digitales, entradas/salidas analogicas, con las cuales puedes hacer lo que quieras de una manera super sencilla...

¿Debería utilizar un adaptador de RS-232 a RS-485 para poder realizar la comunicación?

No. El 485 solamente te funciona para paremetrizarlo usando la suite de ABB, el modbus es el que te sirve para el control en linea del mismo.

Saludos... =)

Básicamente mi idea es realizar lo siguiente (si fuera posible realizarlo mediante una tarjeta Arduino de una forma sencilla): A partir de un Joystick, o algo similar, conectado a la tarjeta Arduino, poder controlar la velocidad del motor interactuando desde el Variador de frecuencia. Es decir, la conexión quedaría, más o menos, así:

Joystick---> Tarjeta Arduino---> Variador de frecuencia---> Motor

Ya sé que los variadores de frecuencia pueden ser controlados de mcuhas formas. Pero, creo, que a un variador de frecuencia no se le puede conectar directamente un Joystick a modo de "mando". Con lo cual si realizo un programa con Arduino que me permita enviar unas órdenes al variador de frecuencia a partir del movimiento del Joystick, creo que sería una buena opción.

Mi idea es realizar ésta comunicación de la forma más sencilla posible y, creo, que la forma más sencilla de poder comunicar la tarjeta Arduino con el Variador de frecuencia es mediante el puerto serie (RS-232).

No estoy muy experimentado ni en VDF ni en Arduino, así que espero sus opiniones.

¡¡Gracias por tu respuesta!!

Ideas bueno,

Facil y sin arduino :stuck_out_tongue: :
Un joystick analogico, tiene un potenciometro verdad, bueno, ese potenciometro lo conectas a las entradas analogicas para potenciometro en el variador y en los parametros seleccionas el potenciometro como control de velocidad, programas la velocidad minima en hz y la maxima a la que se llegara y listo, cuando accionas el joy, mientras mas alejado de la posicion central lo muevas mas rapido ira el motor y al contrario cuando lo acerques.

Emprendedora con Arduino (sin usar RS323):. :
Programa en el variador una de las entradas digitales como control de velocidad, en los variadores funciona asi, eliges que cada vez que la entrada digital reciba 1 logico(generalmente 24VDC) suba la velocidad en 1hz(o como desees).

En el arduino, programa que X valor en la entrada analogica mande un pulso por una salida digital, y asi, pulsos de forma proporcional, usando la funcion map, luego con ellos accionas un rele, el cual manera los 24VDC para la entrada digital del variador.

Ahora, utilizando un puerto de comunicacion RS232/485, no se, se me ocurre una gran interrogante ¿Que mensajes se le mandaria al VDF via rs232 0 485? ¿Que se le puede decir para que entienda que necesitamos?

Saludos =)

Jsosa89 perfectas ambas soluciones. Me has aclarado bastantes cosas :smiley: :smiley:

Mirandolo de esa forma, veo que utilizar el puerto serie sería complicarse un poco más la vida. Por mi parte debo aclarar una cosa ya que no lo he especificado. Digamos que para alimentar el variador de frecuencia (que estará conectado al motor trifásico) utilizaré un alternador trifásico, el cual estará conectado a un motor de combustión que lo hará funcionar.

Dicho motor, para reducir su consumo, no estará funcionando al máximo de sus revoluciones sino que se irá regulando un servo que estará conectado donde se acelera el motor. Así en función del consumo que necesite el motor trifásico, a una determinada velocidad de rotación, se regulará la velocidad del motor de combustión para que pueda alimentar el alternador correctamente, sin excederse de la energia necesaria que necesite (que a su vez alimentará el VDF y éste al motor trifásico).

Es decir, la placa Arduino realizará éstas funciones:

1º- Debe tener conectada a una de sus entradas un Joystick que me permita regular la velocidad del motor eléctrico (como tu has dicho detectando la variación del potenciometro que tiene).

2º- Debe regular un servo en función de la velocidad que se desee en el motor eléctrico (en función del Joystick) para que regule las revoluciones del motor de combustión y se alimente correctamente el alternador (sin excederse de la energia que necesita el motor eléctrico, así se ahorra combustible).

3º- Debe tener conectada una (o no sé cuantas se necesitan) de sus salidas al VDF, para que me permita subir, bajar, parar o darle marcha atrás al motor eléctrico.

Creo que para regular la velocidad del motor eléctrico y la velocidad del motor de combustión (en función del consumo del motor eléctrico a una cierta velocidad) se debería realizar una "tabla" en la programación Arduino en la que se indiquen que a cierta velocidad del motor eléctrico "X rpm" se consume "Y w" y se necesita mover el servo "Z grados" para que acelere el motor de combustión a una cierta velocidad.

No sé si se entiende la idea. Espero que todo ésto se pueda realizar con una tarjeta Arduino sin que la programación sea exesivamente complicada. ¡Gracias de nuevo por tu respuesta!

Creo que para regular la velocidad del motor eléctrico y la velocidad del motor de combustión (en función del consumo del motor eléctrico a una cierta velocidad) se debería realizar una "tabla" en la programación Arduino en la que se indiquen que a cierta velocidad del motor eléctrico "X rpm" se consume "Y w" y se necesita mover el servo "Z grados" para que acelere el motor de combustión a una cierta velocidad.

.

Si, esa idea funcionaria muy bien,... Por lo que veo , el generador electrico es artesanal, y no cuenta con un circuito gobernador, el cual se encarga de hacer esa tarea, midiendo el consumo de corriente, pero bien podrias tu armartelo con el arduino, eso si, necesitas aprender varias cosas, como por ejemplo(cosas que ya mencionas):

  • Encuentra una funcion matematica que te permita calcular cuanto consume el motor, dependiendo de la frecuencia en Hz que este mandando el VDF, supongo que sera una curva, mira cuanto consume un 20hz,30hz,40hz,50hz,60hz.

-(Esta se sale de mi alcance :~) calcular cual es la velocidad en la que el consumo de combustible es el minimo necesario para suplir la demanda del motor, y ver cuanto es necesario mover la palanquita del acelerador del motor de combustion, para poder suplir la potencia requerrida por el motor.

Aprenderas muchisimo haciendo esto.

3º- Debe tener conectada una (o no sé cuantas se necesitan) de sus salidas al VDF, para que me permita subir, bajar, parar o darle marcha atrás al motor eléctrico.

Utiliza relays, ya que las entradas digitales del VDF son de 24vdc.
Si utilizas la configuracion 2-wire control (por defecto en este modelo de VDF), solo necesitas de un contacto NO para hacer stop y run del motor.[Conectas el comun del contacto al terminal de 24VDC del VDF y la terminal DI1 la conestas al contacto NO] de esta forma ya tienes run/stop con solo encender o apagar el relay.

Para el cambio de giro, igual, un contacto NO, con el comun al terminal de 24VDC y la otra conexion del contacto a la terminal DI2 del VDF, al estar cerrado el contacto el motor gira en un sentio y al estar abierto en otro sentido.

Para el control de velocidad, conecta un potenciometro de 10Kohm asi:
La patilla central al terminal AI1 del VDF, una patita a la terminal +10VDC y la otra a GND, si ves que el contro esta al contrario de como te gustaria, solo intercambias las patillas GND y +10VDC.

Saludos,... Gran proyecto

Buenos días, ante todo Jsosa89 muchas gracias por tus respuestas me están ayudando a tirar hacia adelante con éste pequeño proyecto.

Respecto al conexionado que mencionas, si mi idea es que el cambio de sentido se realize desde el mismo Joystick (en vez de empujar la palanca en un sentido la empujo en sentido contrario, para que el motor giro del motor cambie de sentido) , ¿no sería posible entonces realizarlo de ésta manera, no? Necesitaría un contacto que me premitiera cerrar/abrir el terminal DI2 del VDF, como mencionas.

Después, cuando mencionas conectar un potenciómetro en las entradas descritas del VDF te refieres a los terminales del Joystick, ¿no?

Mi idea es utilizar algun panel así bonito que venda alguna empresa y que tenga incluido el Joystick y algunos botones a modo de contacto, para apagar/encender el VDF (para que apague el motor o lo encienda), apague/encienda el motor de combustión y pueda regular la velocidad y el giro con Joystick (aunque, por lo que mencionas, necesitaré algun boton para el cambio de giro del motor eléctrico)

También quería comentarte que todo lo que voy a realizar en éste pequeño proyecto será teórico. No tengo aceso a VDF reales, ni a motores reales, etc. (No sé si es una locura realizar ésto teoricamente pero mi idea es implementarlo en cuanto pueda tener todo el material)

Con lo cual tengo que buscarme la vida para saber más o menos la conexión de todo y las características del motor de combustión.

Respecto al motor de combustión, estube hablando con la empresa y es difícil saber cuanto hay que tirar de la palanca del acelerador del motor para ponerlo a una cierta velocidad. Creo que se podría armar un pequeño control (o no tan pequeño) sobre ésto con Arduino ¿no? Es decir, poner algun tipo de sensor en el motor de combustión y otro sensor supongo que en el alternador para saber que a cierta velocidad "y rmp"con el motor de combustión estoy proporcionando "x W" con el alternador y, claro, saber luego que a cierta velocidad para el motor eléctrico necesito proporcionar tantos wattios.

¿Cómo ves ésto? ¿Se complica la cosa?

¡Saludos!

Hola, buen dia...
Alli vamos barajando el tema juntos...

quote]¿no sería posible entonces realizarlo de ésta manera, no? Necesitaría un contacto que me premitiera cerrar/abrir el terminal DI2 del VDF, como mencionas. [/quote]....
Hay dos formas en este modelo de VDF en especifico:

  1. Con un joystick normal... Se programa el control de velocidad y giro dependiente de la entrada analogica AI1, y el funcionamiento te queda asi:
    Cuando el joystick esta en la posicion central, el motor esta detenido, cuando comienzas a mover el joystick hacia un lado, el motor comienza a girar hacia un sentido, y mientras mas distante este el joystick del centro, mas rapido girara el motor en ese sentido; y lo mismo para si mueves el joystick hacia el lado contrario, solo que el motor gira en el sentido inverso.

  2. Con un joystick como los de play, que cuando lo presionas tiene un click, ese podria ser el contacto para hacer el cambio de giro.

Después, cuando mencionas conectar un potenciometro en las entradas descritas del VDF te refieres a los terminales del Joystick, ¿no?

Si, a las terminales del joystick, que son las terminales del potenciometro que tiene dentro

Respecto al motor de combustión, estube hablando con la empresa y es difícil saber cuanto hay que tirar de la palanca del acelerador del motor para ponerlo a una cierta velocidad. Creo que se podría armar un pequeño control (o no tan pequeño) sobre ésto con Arduino ¿no? Es decir, poner algun tipo de sensor en el motor de combustión y otro sensor supongo que en el alternador para saber que a cierta velocidad "y rmp"con el motor de combustión estoy proporcionando "x W" con el alternador y, claro, saber luego que a cierta velocidad para el motor eléctrico necesito proporcionar tantos wattios.

¿Cómo ves ésto? ¿Se complica la cosa?

.... Genial, si se complica un poquito pero alli juntos con ideas lo sacamos...
Vamos a ver algo de teoría sobre generadores... Cuando a un generador electrico le exiges mas, el campo magnetico contrario aumenta el par, razon por la cual la velocidad del motor de combustion bajara en funcion del par, por lo cual la frecuencia de salida en hz de tu generador AC bajara.... Entonces se debe de controlar la velocidad, de manera que siempre se mantengan lo hz de salida, en el caso de America es de 60hz

  1. Un generador, normalmente para la potencia que necesitas es de 4 polos, por lo cual el eje deberia girar a unos 1800 rpm en el caso perfecto, para tener unos 60hz en la salida, en la practica debe ser un poco mas rapido... Entonces, se necesita como minimo lo siguiente:

1.1 Controlar siempre la velocidad de salida del motor de combustion interna:
-Un encoder de esos hechos con un fototransistor y un diodo ir, los cuales estan colocados uno en frente de otro y tienen una ranurita por la cual pasa un disco con agujeros, cuando hay un agujero manda un 1 y cuando no un 0, en disco con agujeros deberia estar en el eje de, luego debes saber cuantos 1 forman una vuelta completa, y asi calcular a que velocidad esta girando el eje en todo momento.

-Ahora, debes saber a cuantas rpm girando el motor, te da la frecuencia en hz que necesitas en la salida, para esto necesitas 1 tacometro y un frecuencimetro y vas ajustando las rpm tirando de la palanquita, hasta que tengas los hz deseados.

Ya tienes, con el encoder como medir las rpm y cual deberia ser la velocidad para mantener los Hz que necesitas.

Ahora un poco de complicacion:
Desarrollar un PID(no se si con esta parte complico mas la cosa, pero cualquier dura a la orden) con el Arduino, cuya salida sea un servomotor(el cual movera la palanquita del motor de combustion), la entrada seran las rpm que este midiendo el encoder, y tu setpoint, sera las rpm que mediste con el tacometro, en las cuales tenias los Hz deseados. Ahora, vendria la sintonizacion del PID, moviendo sus parametros, para ello, lo primero que debes calibrar es que sin nada de carga, la velocidad del motor se regule hasta las rpm que te den lo Hz deseados. Luego debes demandarle potencia al motor, poco a poco y ver el comportamiento de tu PID,... Lo complicado es estabilizar el PID, pero para empezar intenta con valor de tu banda proporcional de un 30% y alli haces los ajustes (sintonizar mallas de control no es algo que haga seguido...)
Pero en fin, el control por velocidad es el mas simple que hay de implementar en generadores AC, y el mas barato, por lo que es el mas utilizado en la industria.

Juntos ya le vamos dando forma al tema verdad

Saludos...

¡¡Hola de nuevo!! Estos dias he estado un poco ocupado y no he podido responder tan rápido como yo quisiera...pero ¡¡aya vamos!! Tus ideas son muy buenas y estoy mirando a ver como podría programar todo eso en Arduino. Pero bueno primero me gustaría que me revisaras un poco para ver si he acabado de asimilar todo lo que me dijiste en el último post:

1º- La idea para saber la velocidad del motor de combustión (que se conectará posteriormente al alternador) sería utilizar un encoder conectado en el eje de giro del motor de combustión (conectando, como tu dices, el diodo IR y el disco con los agujeros para saber la velocidad).

2º- Para controlar la velocidad del motor de combustión utilizaríamos un control PID (con éste tipo de controles tengo algo de experiencia ya que trabajé con ellos hace algun tiempo, aunque debería refrescar algunos conceptos) para subministrar al motor eléctrico los wattios que necesite en cada momento (en función de la velocidad que le exigamos). El control PID nos servirá para controlar el servo que tira de la palanca de aceleración del motor de combustión.

3º- Digamos que la placa Arduino la utilizaremos solo para realizar el control PID.

Si alguna de éstas cosas no las he entendido bien ya me indicarás.

Respecto al control PID las muestras que le deberíamos entrar para que empezara a controlar serían la velocidad del motor de combustión y la velocidad a la que queremos que el motor eléctrico funcione ¿no? Si ésto es así, ¿Necesitaríamos encontrar la función que nos indicara que a cierta velocidad "x rpm" se consume "y rpm" en el motor eléctrico? (Ésto ya me lo indicaste pero quiero saber si es aquí dónde se debe utilizar).

Luego, respecto al alternador trifásico tenía pensado utilizar uno de 5Kw aproximadamente y 4 polos ya que el motor eléctrico (que sería de 4 polos) y su VDF son de 5Kw (o por lo menos de esa potencia nominal me gustaría utilizarlos). Con eso que me comentaste que había que mantener la frecuencia del alternador trifásico, yo creía que los alternadores mantenian su frecuencia de trabajo. Es decir si yo quiero que el alternador genere, en vez de 5Kw, 3Kw el motor de combustión que hace funcionar el alternador debería girar a menos revoluciones (ya que el par del alternador sería menor para esa potencia) pero el alternador debería seguir funcionando a su frecuencia de trabajo (por ejemplo, 50Hz o 60Hz). No sé si me he explicado correctamente. Ya me indicarás.

¡Un saludo y seguimos dandole forma al proyecto! :wink:

Hola que tal!!!

Empecemos:

1º- La idea para saber la velocidad del motor de combustión (que se conectará posteriormente al alternador) sería utilizar un encoder conectado en el eje de giro del motor de combustión (conectando, como tu dices, el diodo IR y el disco con los agujeros para saber la velocidad).

Aca hay un ejemplo, mejor de lo que podria explicarlo =)
http://www.nxtorm.es/analogicos/sa-o-encoder-para-NXT.html

2º- Para controlar la velocidad del motor de combustión utilizaríamos un control PID (con éste tipo de controles tengo algo de experiencia ya que trabajé con ellos hace algun tiempo, aunque debería refrescar algunos conceptos) para subministrar al motor eléctrico los wattios que necesite en cada momento (en función de la velocidad que le exigamos). El control PID nos servirá para controlar el servo que tira de la palanca de aceleración del motor de combustión.

No he realizado control de PID con arduino, sin embargo estuve buscando por la red, y baje algunos ejemplos que son adaptables, luego de testear, te dejo con este link: Arduino Playground - PIDLibrary en el cual hay ademas un ejemplo en github para descargar, el cual funciona muy bien!!

3º- Digamos que la placa Arduino la utilizaremos solo para realizar el control PID.

Si, el arduino se utilizara principalmente como el controlador PID para mantener la velocidad del generador

Si hay generadores como mencionas, estos generadores funcionan asi:
El generador gira a x velocidad
La salida luego es rectificada y mandada a un inversor, el cual regula el voltaje de salida y la frecuencia tambien, de esta manera no importa a que velocidad gire el generador, siempre estara la misma frecuencia en la salida, cuando se le demanda mas potencia al generador, este gira mas rapido.

Ahora un generador comun, compuesto por un nucleo magnetico o magnetizable, y bobinas en su estator, funcionan de la forma que explique anteriormente, debes mantenerlos girando a x velocidad donde x = RPM=(FrecuenciaDeseadaX60)/par de polos(para cuatro polos seria 2).

Saludos....

Gracias por las aclaraciones! Pues voy a ponerme manos a la obra y a ver si puedo hacer algo bueno. Las nuevas dudas que me salgan las dejaré posteadas.

Saludos!!