Guía completa: Cómo elegir un controlador industrial
Un PLC basado en Arduino controla un variador de frecuencia (VFD) de una de dos maneras: con señales cableadas o por un bus de campo. Con señales cableadas, una salida analógica de 0-10 V del PLC da la consigna de velocidad a la entrada de tensión del variador, y dos salidas digitales dan las órdenes de marcha adelante y marcha atrás. En un M-Duino 21+, la salida analógica A0_7 fija la velocidad (8 bits, analogWrite() de 0 a 255 para 0 a 10 V), y Q0_0 y Q0_1 activan las entradas FWD y REV del variador. El variador debe estar configurado para tomar la orden de marcha de los bornes y la frecuencia de la entrada de tensión. Para leer también la velocidad real, la corriente o los códigos de fallo, usa Modbus RTU por RS-485.
Esta guía muestra el cableado y un sketch de Arduino para arrancar, parar, invertir el giro y cambiar la velocidad de un motor trifásico desde el monitor serie. La prueba se hizo con un variador Fuji FRENIC-Multi (FRN0.75E1S-7E, 0,75 kW, alimentación monofásica de 200 V) y un M-Duino 21+.
Qué necesitas
| Elemento | Usado en esta guía | Qué importa |
|---|---|---|
| PLC | M-Duino 21+ | 3 salidas analógicas/PWM de 0-10 V (8 bits) y 5 salidas digitales optoaisladas, de 5 a 24 Vdc |
| Variador | Fuji FRENIC-Multi FRN0.75E1S-7E | Una entrada de tensión de 0-10 V para la frecuencia y entradas de marcha FWD/REV |
| Motor | Motor de inducción trifásico | Tensión y potencia nominales que encajen con la salida del variador |
| Fuente de alimentación | 24 Vdc | Alimenta el PLC y sus salidas digitales |
Cómo cablear el PLC al variador
| PLC | Borne del variador (FRENIC-Multi) | Función |
|---|---|---|
| A0_7 (0-10 V) | [12] entrada de tensión | Consigna de velocidad |
| GND | [11] común analógico | Referencia de la consigna |
| Q0_0 | [FWD] | Marcha adelante |
| Q0_1 | [REV] | Marcha atrás |
| GND (COM-) | [CM] | Común de las entradas digitales |
| - | L1/L, L2/N y PE | Alimentación de red del variador |
| - | U, V, W y PE | Motor |
- Alimenta las salidas digitales. Las salidas Q0.x del M-Duino toman la tensión de los bornes de alimentación de salidas, así que cablea 24 Vdc y COM(-) del grupo de salidas.
- Modo SOURCE en el variador. Una salida activa del M-Duino da 24 V, así que las entradas digitales del variador deben trabajar en modo SOURCE. En el FRENIC-Multi es el interruptor SW1; el manual de Fuji indica SOURCE como ajuste de fábrica de los modelos para la UE.
- Entrada de tensión, no de corriente. En el FRENIC-Multi, el borne [C1] es una entrada de corriente de 4-20 mA por defecto, y el manual advierte de no aplicarle 7,5 V o más en ese modo. Conecta la consigna de 0-10 V a [12], o configura [C1] con su función de tensión (V2) mediante los interruptores y códigos de función que describe el manual.

Cómo configurar el variador
Dos ajustes le dicen al variador de dónde vienen sus órdenes. En el FRENIC-Multi son los códigos de función F01 (orden de frecuencia) y F02 (método de operación):
- Orden de frecuencia: la entrada de tensión [12].
- Orden de marcha: las señales externas en [FWD] y [REV].
Comprueba el valor de cada opción, la frecuencia máxima y los tiempos de aceleración y deceleración en el manual de tu variador. Cuando el variador está configurado para que 10 V den la frecuencia máxima, cada uno de los 255 pasos de la salida de 8 bits es 1/255 de ella: unos 0,2 Hz con un máximo de 50 Hz.
Sketch de Arduino: velocidad y sentido desde el monitor serie
Elige el M-Duino 21+ en el IDE de Arduino con las placas de Industrial Shields. Abre el monitor serie a 9600 baudios y envía un número: 0 para, 1 marcha adelante, 2 marcha atrás, y 3, 4 y 5 fijan el 20, el 50 y el 100 % de la frecuencia máxima.
// Speed and direction of a variable frequency drive (VFD) from an M-Duino 21+
// A0_7 -> voltage input [12] of the drive (0-10 V speed setpoint)
// Q0_0 -> FWD input, Q0_1 -> REV input
// Commands from the serial monitor: 0 stop, 1 forward, 2 reverse, 3/4/5 speed 20/50/100 %
const uint8_t SPEED_OUT = A0_7;
const uint8_t FWD_OUT = Q0_0;
const uint8_t REV_OUT = Q0_1;
int speedPercent = 20; // speed setpoint in % of the maximum frequency of the drive
char direction = 'S'; // S = stop, F = forward, R = reverse
void applyOutputs() {
// Never switch FWD and REV on at the same time
digitalWrite(FWD_OUT, LOW);
digitalWrite(REV_OUT, LOW);
if (direction == 'F') digitalWrite(FWD_OUT, HIGH);
if (direction == 'R') digitalWrite(REV_OUT, HIGH);
// 8-bit analog output: 0 = 0 V, 255 = 10 V
int value = (direction == 'S') ? 0 : map(speedPercent, 0, 100, 0, 255);
analogWrite(SPEED_OUT, value);
Serial.print("Direction: ");
Serial.print(direction);
Serial.print(" speed: ");
Serial.print(speedPercent);
Serial.print(" % analog value: ");
Serial.println(value);
}
void printMenu() {
Serial.println("0 = stop, 1 = forward, 2 = reverse");
Serial.println("3 = 20 %, 4 = 50 %, 5 = 100 % of the maximum frequency");
}
void setup() {
Serial.begin(9600);
pinMode(FWD_OUT, OUTPUT);
pinMode(REV_OUT, OUTPUT);
pinMode(SPEED_OUT, OUTPUT);
applyOutputs();
printMenu();
}
void loop() {
if (Serial.available()) {
char c = Serial.read();
switch (c) {
case '0': direction = 'S'; break;
case '1': direction = 'F'; break;
case '2': direction = 'R'; break;
case '3': speedPercent = 20; break;
case '4': speedPercent = 50; break;
case '5': speedPercent = 100; break;
default: return; // ignore line endings and other characters
}
applyOutputs();
}
}
El sketch nunca activa FWD y REV a la vez, y pone la consigna a 0 V cuando el motor está parado. El variador aplica sus propias rampas de aceleración y deceleración, así que un cambio de sentido frena el motor antes de que gire al otro lado.
El sketch compila y enlaza para el M-Duino 21+ con el paquete de placas AVR 1.2.1 de Industrial Shields (6046 bytes). No se ha probado con un variador para este artículo. Antes de mover un motor, revisa el cableado y los ajustes del variador, y deja la parada de emergencia de la máquina en un circuito de seguridad cableado.
¿Señales analógicas o Modbus RTU?
| Elemento | Señales de 0-10 V y digitales | Modbus RTU por RS-485 |
|---|---|---|
| Cableado | Un cable por señal | Un par trenzado para varios variadores |
| Resolución de la consigna | Salida de 8 bits en el M-Duino 21+ | La resolución del registro del variador |
| Realimentación | Solo con salidas analógicas o digitales extra del variador | Velocidad real, corriente y códigos de fallo en registros |
| Configuración | Dos códigos de función en el variador | Dirección, velocidad de comunicación y mapa de registros del variador |
La PLC Solution Library tiene un ejemplo de Modbus RTU que controla dos variadores desde un M-Duino, con marcha y paro, una consigna de RPM y la velocidad real leída de vuelta.
Preguntas frecuentes sobre el control de un variador con un PLC basado en Arduino
¿Puede una salida de 0-10 V de un PLC controlar la velocidad de cualquier variador?
La mayoría de variadores tienen una entrada de tensión de 0-10 V para la consigna de frecuencia. Comprueba el borne y el ajuste en el manual de tu variador: algunas entradas son de corriente (4-20 mA) por defecto.
¿Por qué el motor no arranca cuando la salida FWD está activa?
Normalmente el variador aún toma la orden de marcha del teclado, o sus entradas están en modo SINK mientras la salida del PLC da 24 V. Revisa el ajuste del método de operación y el interruptor SINK/SOURCE.
¿Qué pasa si FWD y REV están activas a la vez?
En la mayoría de variadores el motor se para o no arranca. El sketch evita ese estado por software.
¿Puede un PLC controlar varios variadores?
Sí. Con señales analógicas, cada variador necesita sus propias salidas. Con Modbus RTU, varios variadores comparten un bus RS-485, cada uno con su dirección.
¿Puedo programar el control del variador en lógica ladder?
Sí, con un entorno IEC 61131-3. Mira la guía de OpenPLC para PLC industriales.
Más sobre el control de motores con PLC
- Control de motor paso a paso con un ESP32 PLC
- Cómo elegir un controlador industrial
- Aplicaciones industriales: 50 ejemplos reales por sector
- Guía de Modbus TCP y RTU para PLC Raspberry Pi
Mira todos los PLC basados en Arduino.
Llévalo a la práctica
Variadores de frecuencia con un PLC en la práctica: un lazo de velocidad de una cinta en un caso real y el control de dos variadores por Modbus RTU en código.
Caso de estudio
El PLC fija la velocidad. El variador mueve la cinta.
Un M-Duino 42+ gobierna el lazo de velocidad con señales analógicas de velocidad y corriente, y un Panel PC da las funciones al operario.
Lee el caso de estudio
PLC Solution Library
Control de RPM de variador de frecuencia por Modbus RTU
Marcha y paro en un registro, una consigna de RPM en otro y la velocidad real leída de vuelta, con dos variadores en el mismo bus RS485.
Ver el ejemplo