Este es un programa en tiempo no-real escrito en Python para controlar VFDs de Mitsubishi.
Específicamente las series A500 F500 E500 A500 D700 E700 F700 - otras pueden funcionar.
mitsub_vfd soporta control serie usando el protocolo RS458.
La conversión de USB o puerto serie a RS458 requiere hardware especial.
|
Note
|
Ya que es un programa en tiempo no-real, puede verse afectado por carga y latencia de la computadora. Es posible perder el control de los VFDs. Es opcional configurar el VFD para que se detenga si pierde comunicación, si es deseable. Uno debería tener siempre un circuito Estop que corte la energía a la unidad en caso de emergencia. |
Este componente es cargado con el comando hal "loadusr":
loadusr -Wn coolant mitsub_vfd spindle=02 coolant=01
El comando anterior dice:
loadusr, espera a que los pines de refrigerante estén listos, componente mitsub_vfd, con 2 esclavos nombrados husillo (esclavo #2) y refrigerante (esclavo #1)
1. Opciones de la línea de comandos
Las opciones de línea de comandos son:
-
-b or --baud <tasa> : establece la velocidad en baudios - todos los VFDs en red deben usar la misma
-
-p or --port <ruta del dispositivo> : configura el puerto as usar, como /dev/ttyUSB0
-
<nombre>=<#esclavo> : configura el componente HAL/nombre de pin y número de esclavo.
La depuración puede alternarse estableciendo el pin de depuración en Verdadero.
|
Note
|
El activar la depuración resultará en un aluvión de texto en la terminal. |
2. Pines
Donde <n> es mitsub_vfd o el nombre proporcionado durante la carga.
-
<n>.fwd (bit, in) Verdadero señala movimiento hacia adelante, Falso lo hace en reversa.
-
<n>.run (bit, in) Verdadero pone el VFD en movimiento con base en el pin .fwd.
-
<n>.debug (bit, in) Imprime información de depuración en la terminal.
-
<n>.alarm (bit, out) Señala un estado de alarma del VFD.
-
<n>.up-to-speed (bit, out) Cuando el controlador está a la velocidad ordenada (la tolerancia de velocidad es configurada en el vfd)
-
<n>.monitor (bit, in) Algunos modelos (p. ej. E500) no pueden monitorear estado (se establece el pin de monitor en Falso) y en este caso los pines como up-to-speed, amps, alarm y status-bit no son actualizados.
-
<n>.motor-cmd (float, in) Velocidad ordenada al VFD (escalada a hertz predeterminadamente).
-
<n>.motor-fb (float, out) Velocidad de retroalimentación del VFD (escalada a hertz predeterminadamente).
-
<n>.motor-amps (float, out) Amperaje de salida actual del motor.
-
<n>.motor-power (float, out) Potencia de salida actual del motor.
-
<n>.scale-cmd (float, in) Escala el pin motor-cmd a unidades arbitrarias. Predeterminado a 1 = Hertz.
-
<n>.scale-fb (float, in) Escala el pin motor-fb a unidades arbitrarias. Predeterminado a 1 = Hertz.
-
<n>.scale-amps (float, in) Escala el pin motor-amps a unidades arbitrarias. Predeterminado a 1 = amps.
-
<n>.scale-power (float, in) Escala el pin motor-power a unidades arbitrarias. Predeterminado a 1 = .
-
<n>.estop (bit, in) Pone al VFD en estado de parada de emergencia.
-
<n>.status-bit-N (bit, out) N = 0 a 7, los bits de estado son configurables por el usuario en el VFD. El bit 3 debería configurarse a una velocidad y el bit 7 debería asignarse a una alarma. Otros son libres de asignación según se requiera.
3. Ejemplo HAL
#
# ejemplo de uso del controlador Mitsubishi VFD
#
loadusr -Wn coolant mitsub_vfd spindle=02 coolant=01
# **************** Spindle VFD setup slave 2 *********************
net spindle-vel-cmd spindle.motor-cmd
net spindle-cw spindle.fwd
net spindle-on spindle.run
net spindle-at-speed spindle.up-to-speed
net estop-out spindle.estop
# cmd scaled to RPM
setp spindle.scale-cmd .135
# feedback is in rpm
setp spindle.scale-fb 7.411
# allows us to see status
setp spindle.monitor 1
net spindle-speed-indicator spindle.motor-fb gladevcp.spindle-speed
# *************** Coolant vfd setup slave 3 ***********************
net coolant-flood coolant.run
net coolant-is-on coolant.up-to-speed gladevcp.coolant-on-led
net estop-out coolant.estop
# cmd and feedback scaled to hertz
setp coolant.scale-cmd 1
setp coolant.scale-fb 1
# command full speed
setp coolant.motor-cmd 60
# allows us to see status
setp coolant.monitor 1
4. Configuración del VFD Mitsubishi para uso en serie
4.1. Conexión del puerto serie
Los VFDs Mitsubishi tienen un conector RJ-45 para comunicación en serie.
Dado que usan el protocolo RS485, pueden ser conectados en red de punto a punto.
Este controlador ha sido probado con el AC7A de Opto22 para convertir de RS232 a RS485.
4.2. Configuración para Modbus
Manuales referenciados:
manual de referencia de opciones de comunicación y Manual técnico del A500 para serie 500.
Manual técnico de Fr-A700 F700 E700 D700 para la serie 700
El VFD debe tener configuraciones PR ajustadas manualmente para comunicación en serie.
Uno debe apagar y prender el VFD para que algunas de ellas sean registradas, p. ej. PR 79
-
PR 77 en 1 -para desbloquear otras modificaciones PR.
-
PR 79 en 1 o 0 -para que la comunicación sea por serie .
-
PR 117 entre 0 y 31 -número de esclavo, el controlador debe referenciar al mimo número.
-
PR 118 probado con 96 -velocidad de baudios (puede configurarse a 48, 96, 192) si el controlador también lo soporta.
-
PR 119 en 0 -longitud de bits de paro/datos (8 bits, dos de paro)
-
PR 120 en 0 -sin paridad
-
PR 121 de 1 a 10 -Con 10 (máximo) errores de comunicación el VFD falla.
-
PR 122 probado con 9999 -si se pierde la comunicación el VFD no emitirá error.
-
PR 123 en 9999 -no se agrega tiempo de espera a la trama de datos en serie.
-
PR 124 en 0 -sin retorno de carro al final de línea.