---
name: "mitsub_vfd"
section: "1"
platform: "linux"
package: "linuxcnc-uspace"
version: "1:2.9.4-2+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mitsub_vfd"
---

# mitsub\_vfd(1)

HAL non-realtime component for Mitsubishi A500 F500 E500 A500 D700 E700 F700-series VFDs (others may work) This uses the COMPUTER LINK protocol \_not\_ MODBUS. The connection is made through the PU connector.

## NAME

mitsub\_vfd - HAL non-realtime component for Mitsubishi A500 F500 E500 A500 D700 E700 F700-series VFDs (others may work) This uses the COMPUTER LINK protocol \_not\_ MODBUS. The connection is made through the PU connector.

## SYNOPSIS

**loadrt mitsub\_vfd \[--baud 4800\] \[--port /dev/ttyUSB0\] name1=number1\[,name2=numer2...\]**\
 **name1** is user selectable (usually a description of the controlled device).\
 **number1** is the slave number that was set on the VFD. Must be two digits (Parameter 117).\
 **name=number** can be repeated for multiple VFD's connected together.\
 **--baud** is optional as it defaults to 9600, all networked vfds must be set to the same baudrate.\
 **--port** is optional as it defaults to ttyS0.

## DESCRIPTION

The mitsub\_vfd component interfaces a Mitsubishi VFD to LinuxCNC. The VFD is connected via RS-485 serial to the computer's USB or serial port using a RS-232/RS-485 converter.

## HARDWARE SETUP

reference manual 'communication option reference manual' and A500 technical manual for 500 series. Fr-A700 F700 E700 D700 technical manual for the 700 series.\
 The inverter must be set manually for communication (you may have to set PR 77 to 1 to unlock PR modification).\
 You must power cycle the inverter for some of these, e.g. 79.

- **VFD INTERNAL PARAMETERS:**

  **PARAMETER 79** - 1 or 0

  **PARAMETER 117** station number - 1\
   (can be optionally set 0 - 31) if component is also set

  **PARAMETER 118** communication speed 96\
   (can be optionally set 48,96,192 if component is also set)

  **PARAMETER 119** stop bit/data length - 1   \
   (8 bits, two stop - don't change)

  **PARAMETER 120** parity - 0\
   (no parity - don't change)

  **PARAMETER 121** COM tries - 10\
   (if maximum 10 COM errors then inverter faults- can change.)

  **PARAMETER 122** COM check time interval 9999\
   (never check - if communication is lost inverter will not know (can change))

  **PARAMETER 123** wait time - 9999\
   No wait time is added to the serial data frame (don't change).

  **PARAMETER 124** CR selection - 0\
   don't change

  **PARAMETER 549** communication protocol - 0\
   computer link protocol - don't change - (not all VFDs have this)

## This driver assumes certain other VFD settings:

\-That the motor frequency status is set to show Hertz. \
 \-That the status bit 3 is up to speed\
 \-That the status bit 7 is alarm

some models (eg E500) cannot monitor status.\
 You must set set the monitor pin to false.\
 In this case pins such as up-to-speed, amps, alarm and status bits are not useful.

## PINS

**\[VFD NAME\].fwd** (bit, in)::\
       forward/reverse pin\
 **\[VFD NAME\].run** (bit, in)::\
       run/stop pin\
 **\[VFD NAME\].debug** (bit, in)::\
       set debug mode pin\
\
       This will print many messages to the terminal\
 **\[VFD NAME\].monitor** (bit, in)::\
       set monitor mode pin\
       If false request-status command will not be sent to VFD. Status, amps, power, motor-feedback, and alarm would then not be useful.\
 **\[VFD NAME\].estop** (bit, in)::\
       set E-stop mode pin\
\
       This will stop the VFD. Restarting requires the run pin to cycle.

**\[VFD NAME\].fwd** (bit, out)::\
       up-to-speed status pin\
       Motor is at requested speed within VFD's settings tolerance.\
 **\[VFD NAME\].alarm** (bit, out)::\
       alarm status pin\

**\[VFD NAME\].motor-cmd** (float, in)::\
       The requested motor speed, is Hertz\

**\[VFD NAME\].motor-fb** (float, out)::\
       The motor feedback speed (from VFD) in Hertz (Hz)\
 **\[VFD NAME\].motor-amps** (float, out)::\
       The motor current, in amps\
 **\[VFD NAME\].motor-power** (float, out)::\
       The motor power\

**\[VFD NAME\].scale-cmd** (float, in)::\
       Motor command's scale setting defaults to 1\
 **\[VFD NAME\].scale-cmd** (float, in)::\
       Motor command's scale setting defaults to 1\
 **\[VFD NAME\].scale-cmd** (float, in)::\
       Motor command's scale setting defaults to 1\

**\[VFD NAME\].stat-bit-0** (bit, out)::\
       raw status bit\
 **\[VFD NAME\].stat-bit-1** (bit, out)::\
       raw status bit\
 **\[VFD NAME\].stat-bit-2** (bit, out)::\
       raw status bit\
 **\[VFD NAME\].stat-bit-3** (bit, out)::\
       raw status bit\
       set the VFD so this is motor-at-speed status\
 **\[VFD NAME\].stat-bit-4** (bit, out)::\
       raw status bit\
 **\[VFD NAME\].stat-bit-5** (bit, out)::\
       raw status bit\
 **\[VFD NAME\].stat-bit-6** (bit, out)::\
       raw status bit\
 **\[VFD NAME\].stat-bit-7** (bit, out)::\
       raw status bit\
       Set the VFD so this in the alarm bit

## SAMPLE HAL

loadusr -Wn coolant mitsub\_vfd --port /dev/ttyUSB0 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 (belt/gearbox driven)\
 setp spindle.scale-cmd .135\
 \#       feedback is in rpm (recipicale of command)\
 setp spindle.scale-fb 7.411\
 \#       turn on monitoring so feedback works\
 setp spindle.monitor 1\
 net spindle-speed-indicator spindle.motor-fb\
 \# \*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Coolant VFD setup slave 1 \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\
 net coolant-flood                         coolant.run\
 net coolant-is-on              coolant.up-to-speed\
 \#       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\
 net estop-out                     coolant.estop

## ISSUES

Some models, e.g. E500, cannot monitor status, so set the monitor pin to false. In this case, pins such as up-to-speed, amps, alarm and status bits are not useful.
