Ir al contenido

Cómo usar un variador de frecuencia con un PLC industrial basado en Arduino

Cableado y código de Arduino para arrancar, parar, invertir y fijar la velocidad de un motor trifásico con un variador y un PLC M-Duino
13 de febrero de 2019 por
Cómo usar un variador de frecuencia con un PLC industrial basado en Arduino
Bernat Garcia

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

ElementoUsado en esta guíaQué importa
PLCM-Duino 21+3 salidas analógicas/PWM de 0-10 V (8 bits) y 5 salidas digitales optoaisladas, de 5 a 24 Vdc
VariadorFuji FRENIC-Multi FRN0.75E1S-7EUna entrada de tensión de 0-10 V para la frecuencia y entradas de marcha FWD/REV
MotorMotor de inducción trifásicoTensión y potencia nominales que encajen con la salida del variador
Fuente de alimentación24 VdcAlimenta el PLC y sus salidas digitales

Cómo cablear el PLC al variador

PLCBorne del variador (FRENIC-Multi)Función
A0_7 (0-10 V)[12] entrada de tensiónConsigna de velocidad
GND[11] común analógicoReferencia 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 PEAlimentación de red del variador
-U, V, W y PEMotor
  • 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.
Esquema de cableado: una fuente de 24 V alimenta un PLC M-Duino cuyas salidas A0_7, Q0_1 y Q0_0 van a los bornes C1, REV y FWD de un variador Fuji; el variador toma L y N de la red y alimenta U, V y W de un motor trifásico
Cableado de la prueba original. Muestra la consigna en el borne C1; con el variador en sus ajustes por defecto, usa la entrada de tensión [12] como en la tabla de arriba.

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?

ElementoSeñales de 0-10 V y digitalesModbus RTU por RS-485
CableadoUn cable por señalUn par trenzado para varios variadores
Resolución de la consignaSalida de 8 bits en el M-Duino 21+La resolución del registro del variador
RealimentaciónSolo con salidas analógicas o digitales extra del variadorVelocidad real, corriente y códigos de fallo en registros
ConfiguraciónDos códigos de función en el variadorDirecció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.

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.

Buscar en nuestro blog

Cómo usar un variador de frecuencia con un PLC industrial basado en Arduino
Bernat Garcia 13 de febrero de 2019
Compartir esta publicación
Etiquetas

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.

Comparativa de PLCs