MMKS – Integration & Steuerung (Dosierung)

Eine Kühlung / Schmierung beim Fräsen bestimmter Materialien erhöht nicht nur die Oberflächenqualität, sondern auch die Standzeit des Werkzeugs. Häufig wird bei Portalfräsen dafür eine MMKS eingesetzt. Ein günstiges Selbstbausystem ist beispielsweise unter dem Begriff „Bambusbuster“ im Internet zu finden. Das Prinzip ist simpel: Das Kühlschmiermittel wird mittels Druckluft aus dem Vorratsbehälter bis unmittelbar an die Austrittsdüse befördert und von dort mittels Druckluft bis zum Fräsbereich transportiert, ohne dass es hier zu einer starken „Vernebelung“ des Kühlschmiermittels kommt. Die Dosierung des Kühlschmiermittels erfolgt meist mit einem Nadelventil und zusätzlicher Einstellung des Drucks im Vorratstank.  Dies ist jedoch manchmal nicht einfach. Aus diesem Grund hat fraeserbruch seit kurzem eine Modifikation einer MMKS erfolgreich getestet: Anstatt mit Druckluft befördert eine von einem Schrittmotor angetriebene Peristaltikpumpe das Kühlschmiermittel vom Vorratstank zur Düse. Über die  grundsätzlichen Funktionsweise hinaus mussten auch folgende Anforderungen abgebildet werden:

  • Bedienung über die GUI (Gmoccapy)
  • separate Einstellmöglichkeit der Dosierung für Fräs- und Bohroperationen
  • Kalibrierfunktion für Fördermenge
  • automatische Auswahl der Fördermenge bei Zyklusausführung

Diese modifizierte MMKS wird im weiteren PMMKS genannt.

Benötigte Hardware

Benötigt werden

  • eine Peristaltikpumpe,
  • ein Schrittmotor + Treiber-Endstufe.

Die Komponenten für den Aufbau einer MMKS werden hier nicht separat betrachtet. Verwendet wurde eine gebrauchte Peristaltikpumpe aus dem Medizinbereich, die z.B. bei üblichen Online-Auktionshäusern zu finden ist. Der Schrittmotor ist gemäß NEMA23-Standard und hat ein Haltemoment von  2NM.

Konfiguration – Linuxcnc

Schritt 1: Einbindung eines weiteren Schrittmotors

Im Gegensatz zu den Antriebsmotoren der Fräse kommt es bei dem Antriebsmotor für die Peristaltikpumpe nicht auf eine exakte Positionierung an, sondern auf eine exakte Steuerung der Umdrehungsgeschwindigkeit. LinuxCNC bietet hierfür die Möglichkeit, Schrittmotoren im „position-mode“ (p) oder im „velocity-mode“ (v) ansteuern zu können. Letzteres ist die richtige Ansteuerungsart für den Antriebsmotor der Peristaltikpumpe.

Folgende Eintragungen sind hierfür erforderlich:

Einbinden eines 4. Takt-Generators für den zusätzlichen Schrittmotor im velocity Modus durch folgende Anpassung der Datei [MASCHINE].HAL:

loadrt stepgen ctrl_type=p,p,p,v step_type 0,0,0,0

Konfiguration des 4. Schrittmotors:

setp stepgen.3.position-scale[PMMKS]PMMKS_SCALE
setp stepgen.3. steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold {2800}
setp stepgen.3.dirsetup {2800}
setp stepgen.3.maxaccel [PMMKS]STEPGEN_MAXACCEL
setp stepgen.3.maxvel [PMMKS]STEPGEN_MAXVEL
net pmmks-step stepgen.3.step => parport.0.pin-08-out
net pmmks-dir stepgen.3.dir => parport.0.pin-09-out
setp parport.0.pin-08-out-reset 1

Hinweis: Die LPT-Port-Pins müssen den eigenen Gegebenheiten angepasst werden und sind hier nur beispielhaft als Pin 08 und 09 aufgeführt. Die Werte in {} müssen passend zu eigenen Steuerung angepasst werden.

 

Die Werte für Parameter in eckigen Klammern  (s.o.) werden in der Datei [MASCHINE].INI-Datei in einer neuen Sektion [PMMKS] hinterlegt:

[PMMKS]
STEPGEN_MAXACCEL 750
STEPGEN_MAXVEL 400
PMMKS_SCALE 1

Schritt 3: Funktionen und GUI

Die manuelle Steuerung der PMMKS erfolgt unter Verwendung der beiden vorhandenen Gmoccapy-Buttons für „mist-“ & „flood-cooling“ gemäß der folgenden Darstellung:

PMMKS Ein/AUS

Der Button „PMMKS Ein/AUS“ muss hierfür in der [MASCHINE].HAL mit dem ENABLE-Signal des hierfür eingebundenen Antriebsmotors vernetzt werden:

net PMMKS-ENABLE <= iocontrol.0.coolant-mist => stepgen.3.enable 

Optional: Wenn bei Aktivierung der PMMKS zeitgleich das Ventil für die zugehörige Druckluft geschaltet werden soll, ist folgende Zeile zusätzlich hinzuzufügen (hier Beispielhaft an LPT-Port-Pin 17):

net PMMKS-ENABLE => parport.0.pin-17-out 

Hinweis: Die LPT-Port-Pin 17 muss den eigenen Gegebenheiten angepasst werden und ist hier nur beispielhaft aufgeführt. Diese Angabe ist optional, wenn die Druckluft anderweitig (z.B. manuell) aktiviert wird.

Fördermenge einstellen

Die Fördermenge wird anhand zweier zusätzlicher Schieberegler eingestellt, die in der Gmoccapy-GUI als „User-Tab“ eingebunden werden. Die Installation dieser Erweiterung erfolgt in 2 Schritten:

Kopieren der Dateien fbde.hal und fbde.glade (DOWNLOAD) in das LinuxCNC-Config-Verzeichnis.

Anpassen der Datei [MASCHINE].INI in der [DISPLAY]-Sektion:

[DISPLAY]:
EMBED_TAB_NAME = fbde
EMBED_TAB_LOCATION = ntb_preview
EMBED_TAB_COMMAND = gladevcp -x {XID} -H fbde.hal fbde.glade

Anschließend ist in der GUI ein zusätzlicher TAB sichtbar, der die Schieberegler zu Einstellung der normalen und erhöhten Fördermenge anzeigt:

[BILD-GUI]

Automatische Wahl der Fördermenge

Die Auswahl der Fördermenge unterliegt grundsätzlich folgender Logik.

  1. Wenn PMMKS-eingeschaltet => normale Fördermenge
  2. Wenn zusätzlich „erhöhte Fördermenge“ in GUI aktiviert wurde => dauerhaft erhöhte Fördermenge
  3. Wenn im GCode Bohroperationen (G81) ausgeführt werden => automatisch „erhöhte Fördermenge“
  4. Wenn im GCode normale Fräsoperation ausgeführt wird => „normale Fördermenge“

Logik 1 und 2 werden manuell über Buttons in der GUI erfüllt. Nr 3 und 4 enthalten eine Abhängigkeit vom aktuell ausgeführten GCode. Hierfür bietet LinuxCNC über einen kleinen aber simplen Umweg eine einfache Lösung an. Die folgenden 2 Funktionen von LinuxCNC werden hierfür herangezogen:

M62-65  / Digital IN-/Outputs in HAL via GCode

Mit den Befehlen M62-M65 können im GCode HAL-Signale gesetzt werden, welche wiederum von LinuxCNC während der Zykluslaufzeit verarbeitet werden.

Der GCode-Befehl M62 P0 setzt den HAL-PIN motion.digital-output-00 auf high, ein M63 P0 setzt den Wert (zurück) auf „low“. Sind diese Befehle im GCode eingebunden, so können während der Zyklus-Laufzeit HAL-Pins gesetzt werden.

GCode-Filter

LinuxCNC kann beim Laden von GCode diesen durch einen Filter schicken (hier ein Python-Skript) und den GCode manipulieren. Ein solcher Filter kann vor jeder Bohroperation (G81) einen oben erwähnten „M62 P0“-Befehl und am Ende einer Bohroperation (nach G80 – Ende Bohrzyklus) ein M63 P0 setzen. Nach Anwendung des Filters ist somit Bohroperationen aus der HAL heraus identifizierbar.

Das Skript wird durch Anpassung der [FILTER]-Sektion in der Datei [MASCHINE].INI als Filter eingebunden und beim Laden von GCode (hier mit der Endung .ngc) automatisch angewendet:

[FILTER]:
PROGRAM_EXTENSION = .ngc GCODE
ngc = [PFAD zur PY-Datei „pmmks.py“]

Das Skript pmmks.py wird als ausführbare Datei mit Namen im linuxcnc-Konfigurations-Ordner erstellt (DOWNLOAD):

Die Abbildung der eigentlichen Funktion erfolgt in einer Classicladder-Logik gemäß dem folgenden Schaubild:

%i0 => PMMKS Ein/Aus

%i1 => erhöhte Fördermenge manuell

%I2 => erhöhte Fördermenge automatisch

%QF0 => Ausgabewert der Fördermenge

%IF1 => Vorgabewert „normale Fördermenge“ (GUI-Schieberegler)

%IF0 => Vorgabewert „erhöhte Fördermenge“ (GUI-Schieberegler)

Einbindung Classicladder

Die Aktivierung von Classicladder und das Laden des oben gezeigten Programms in LinuxCNC geschieht durch Hinzufügen der folgenden Zeilen in der [MASCHINE].HAL Datei:

loadrt classicladder_rt
addf classicladder.0.refresh servo-thread
loadusr classicladder CL1.clp

Verbindung GUI -> Classicladder <-> HAL

Im letzten Schritt müssen die Ein- und Ausgänge des Classicladder-Programms noch mit den benötigten HAL-Signalen / -Pins des Antriebsmotors und der GUI vernetzt werden:

net PMMKS-ENABLE => classicladder.0.in-00
net PMMKS-MANUAL-FLOOD iocontrol.0.coolant-flood => classicladder.0.in-01
net PMMKS-AUTO-FLOOD Motion.digital-out-00 => classicladder.0.in-02
net PMMKS_SPD_IN_NORMAL => classicladder.0.floatin-01
net PMMKS_SPD_IN_FLOOD => classicladder.0.floatin-00
net PMMKS-SPEED classicladder.0.floatout-00 => stepgen.3.velocity-cmd

Bedienung

Aktivierung der PMMKS

Die PMMKS wird durch Betätigen des Buttons für „mist-cooling“ aktiviert und deaktiviert. Eine Aktivierung ist ebenso durch den GCode-Befehl M7, sowie ein Stopp durch den Befehl M9 möglich.

Aktivierung Modus „erhöhte Fördermenge“

Der Modus wird durch Betätigen des Buttons „Flood-cooling“ manuell aktiviert. Ebenso wird der Modus „erhöhte Fördermenge“ automatisch aktiviert, wenn eine Bohroperation durchgeführt wird (Siehe Filter und M62-65) und die PMMKS aktiviert ist. 

Einstellung der Fördermenge

Die Fördermenge wird durch betätigen der Schieberegler in der GUI-Erweiterung sowohl für den Normalbetrieb sowie für den Betrieb mit erhöhter Fördermenge eingestellt.

PMMKS kalibrieren

In der GUI einen Wert für die Fördermenge einstellen und die PMMKS für ca 10min aktivieren. Anschließend die Abweichung der geförderten Menge von der Vorgabe errechnen und mittels des Korrekturfaktor in der INI-Datei unter PMMKS_SCALE korrigieren.