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.

Anmerkung
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.

Anmerkung
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 (bit, in) True setzt Bewegung vorwärts, False setzt Bewegung rückwärts.

  • <n>.run (bit, in) True setzt den VFD basierend auf dem .fwd-Pin in Bewegung.

  • <n>.debug (bit, in) Gibt Debug-Informationen auf dem Terminal aus.

  • <n>.alarm (bit, out) signalisiert einen Alarmzustand des VFD.

  • <n>.up-to-speed (bit, out) wenn der Antrieb die Solldrehzahl erreicht hat (die Drehzahltoleranz ist im VFD eingestellt)

  • <n>.monitor (bit, in) einige Modelle (z.B. E500) können den Status nicht überwachen - setzen Sie den Monitor-Pin auf false in diesem Fall werden Pins wie Up-to-Speed, Ampere, Alarm und Statusbits nicht aktualisiert.

  • <n>.motor-cmd (float, in) dem VFD befohlene Geschwindigkeit (standardmäßig in Hertz skaliert).

  • <n>.motor-fb (float, out) Rückgemeldete Gschwindigkeit vom VFD (standardmäßig auf Hertz skaliert).

  • <n>.motor-amps (float, out) Aktuelle Stromstärke des Motors.

  • <n>.motor-power (float, out) Aktuelle Ausgangsleistung des Motors.

  • <n>.scale-cmd (float, in) Skaliert den Motor-Cmd-Pin auf beliebige Einheiten. Voreinstellung 1 = Hertz.

  • <n>.scale-fb (float, in) Skaliert den Motor-fb-Pin auf beliebige Einheiten. Voreinstellung 1 = Hertz.

  • <n>.scale-amps (float, in) Skaliert den Motor-Ampère-Pin auf beliebige Einheiten. Voreinstellung 1 = Ampere.

  • <n>.scale-power (float, in) Skaliert den Motor-Leistungs-Pin auf beliebige Einheiten. default 1 = .

  • <n>.estop (bit, in) versetzt den VFD in den Notaus-Status.

  • <n>.status-bit-N (bit, out) N = 0 bis 7, Statusbits sind auf dem VFD vom Benutzer konfigurierbar. Bit 3 sollte auf "Geschwindigkeit erreicht" (engl. at speed) und bit 7 auf "Alarm" gesetzt werden. Andere können nach Bedarf gesetzt werden.

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.