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.
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.
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.
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)
-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.
[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
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
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.