LinuxCNC Documentation

Dies ist ein nicht-Echtzeit-HAL-Programm, geschrieben in Python, zur Steuerung von VFDs von Mitsubishi.
Speziell die A500 F500 E500 A500 D700 E700 F700 Serie - andere können funktionieren.
mitsub_vfd unterstützt die serielle Steuerung über das RS485-Protokoll.
Die Konvertierung von USB oder serieller Schnittstelle zu RS485 erfordert spezielle Hardware.

Note
Da es sich um ein nicht-Echtzeit-Programm handelt, kann es durch Computerbelastung und Latenzzeiten beeinträchtigt werden. Es ist möglich, die Kontrolle über die VFDs zu verlieren. Es ist optional möglich, den VFD so einzustellen, dass er bei Verlust der Kommunikation stoppt, falls dies gewünscht wird. Es sollte immer eine Notaus-Schaltung vorhanden sein, die im Notfall die Stromzufuhr zum Gerät unterbricht.

Diese Komponente wird mit dem halcmd-Befehl "loadusr" geladen:

loadusr -Wn coolant mitsub_vfd spindle=02 coolant=01

Der obige Befehl lautet:
loadusr, warten bis Kühlmittelpins bereit sind, Komponente mitsub_vfd, mit 2 Slaves namens Spindel (Slave #2) und Kühlmittel (Slave #1)

1. Kommandozeilen-Optionen

Die Kommandozeilenoptionen sind:

  • -b oder --baud <rate> : die Baudrate einstellen - muss für alle vernetzten VFDs gleich sein

  • -p oder --port <device path> : legt den zu verwendenden Anschluss fest, z. B. /dev/ttyUSB0

  • <name>=<slave#> : setzt den Namen der HAL-Komponente/des Pins und die Slave-Nummer.

Das Debugging kann durch Setzen des Debug-Pins auf true umgeschaltet werden.

Note
Das Einschalten der Fehlersuche (engl. debugging) führt zu einer Flut von Text im Terminal.

2. Pins

Dabei steht <n> für mitsub_vfd oder den beim Laden vergebenen Namen.

  • <n>.fwd (bool, in) True sets motion forward, False sets reverse.

  • <n>.run (bool, in) True sets the VFD in motion based on the .fwd pin.

  • <n>.debug (bool, in) Prints debug info to the terminal.

  • <n>.alarm (bool, out) signals an alarm state of VFD.

  • <n>.up-to-speed (bool, out) when drive is at commanded speed (speed-tolerance is set on vfd)

  • <n>.monitor (bool, in) some models (eg E500) cannot monitor status - set the monitor pin to false in this case pins such as up-to-speed, amps, alarm and status bits are not updated.

  • <n>.motor-cmd (real, in) commanded speed to the VFD (scaled to hertz by default).

  • <n>.motor-fb (real, out) feedback speed from the VFD (scaled to hertz by default).

  • <n>.motor-amps (real, out) Current amperage output of motor.

  • <n>.motor-power (real, out) Current power output of motor.

  • <n>.scale-cmd (real, in) Scales the motor-cmd pin to arbitrary units. default 1 = Hertz.

  • <n>.scale-fb (real, in) Scales the motor-fb pin to arbitrary units. default 1 = Hertz.

  • <n>.scale-amps (real, in) Scales the motor-amps pin to arbitrary units. default 1 = amps.

  • <n>.scale-power (real, in) Scales the motor-power pin to arbitrary units. default 1 = .

  • <n>.estop (bool, in) puts the VFD into emergency-stopped status.

  • <n>.status-bit-N (bool, out) N = 0 to 7, status bits are user configurable on the VFD. Bit 3 should be set to at speed and bit 7 should be set to alarm. Others are free to be set as required.

3. HAL-Beispiel

#
# Beispiel für die Verwendung des Mitsubishi VFD-Treibers
#
loadusr -Wn coolant mitsub_vfd spindle=02 coolant=01

**************** Spindle VFD setup slave 2 *********************
net spindel-vel-cmd spindel.motor-cmd
net spindel-cw spindel.fwd
net spindel-on spindel.run
net spindel-at-speed spindel.up-to-speed
net estop-out spindel.estop
# cmd skaliert auf RPM
setp spindel.scale-cmd .135
# Rückmeldung erfolgt in U/min
setp spindel.scale-fb 7.411
# ermöglicht es uns, den Status zu sehen
setp spindel.monitor 1

net spindle-speed-indicator spindle.motor-fb        gladevcp.spindle-speed

*************** Kühlmittel 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 und Rückmeldung skaliert auf Hertz
setp coolant.scale-cmd 1
setp coolant.scale-fb
# Befehl volle Geschwindigkeit
setp coolant.motor-cmd 60
# ermöglicht die Anzeige des Status
setp coolant.monitor 1

4. Konfigurieren des Mitsubishi VFD für die serielle Nutzung

4.1. Anschließen der seriellen Schnittstelle

Die Mitsubishi VFDs haben eine RJ-45-Buchse für die serielle Kommunikation.
Da sie das RS485-Protokoll verwenden, können sie Punkt-zu-Punkt miteinander vernetzt werden.
Dieser Treiber wurde mit dem Opto22 AC7A getestet, um von RS232 auf RS485 zu konvertieren.

4.2. Modbus-Einrichtung

Referenzhandbücher:

Referenzhandbuch für Kommunikationsoptionen" und "Technisches Handbuch A500" für die Serie 500.
Technisches Handbuch "Fr-A700 F700 E700 D700" für die Serie 700

Die PR-Einstellungen des VFD müssen für die serielle Kommunikation manuell angepasst werden.
Man muss den VFD einschalten, damit einige dieser Einstellungen registriert werden, z. B. PR 79

  • PR 77 auf 1 gesetzt -um andere PR-Änderungen freizuschalten.

  • PR 79 auf 1 oder 0 gesetzt '-für die Kommunikation über die serielle Schnittstelle '

  • PR 117 auf 0-31 gesetzt -Slave-Nummer, Treiber muss auf dieselbe Nummer verweisen.

  • PR 118 getestet mit 96 -Baudrate (kann auf 48,96,192 eingestellt werden), wenn auch der Treiber eingestellt ist.

  • PR 119 auf 0 gesetzt -Stoppbit/Datenlänge (8 Bits, zwei Stopps)

  • PR 120' auf 0 gesetzt -keine Parität

  • PR 121 eingestellt auf 1-10 '-wenn 10 (maximal) COM-Fehler, dann VFD-Fehler '

  • PR 122 getestet mit 9999 '-wenn die Kommunikation verloren geht, hat der VFD keinen Fehler '

  • PR 123 auf 9999 eingestellt -dem seriellen Datenrahmen wird keine Wartezeit hinzugefügt.

  • PR 124 auf 0 gesetzt -kein Zeilenumbruch am Ende der Zeile.