Kleine Schrittmotor-Maschinen lassen sich oft schon durch die Pins des Parallelports steuern. Größere Maschinen mit Servomotoren, Quadraturencodern, Ventilen, und mehr benötigen einerseits mehr Anschlüsse am PC und andererseits andere Eigenschaften der Anschlüsse. Insbesondere sind das kompatible Spannungen und Leistungen um z.B. Relais oder Ventile zu schalten.
Die Firma Mesa Electronics bietet hier diverse Karten die je nach Anwendungsfall kombiniert werden können um die richtige Anzahl und Eigenschaften der benötigten Anschlüsse zu erhalten. In Deutschland haben wir und unsere Kunden ausgesprochen gute Erfahrungen mit den folgenden Shops gemacht und können diese uneingeschränkt weiter empfehlen:
Eusurplus (Portugal/DHL Express)
LinuxCNC unterstützt dabei eine ganze Reihe verschiedener Karten. Die bekanntesten sind die 5i20 und 6i25 + entsprechende Breakout und Daughter Boards. Um den Rahmen nicht zu sprengen möchten ich hier aber nur auf eine Kartenkombination eingehen, die vor allen Dingen Vorteile im Bezug auf den Preis, die Verfügbarkeit und die Verdrahtung mit sich bringt.
Die Kombination dieses Artikels besteht aus einer 5i25 (PCI) oder 6i25 (PCIe) und einer 7i77. Um weitere Ein- oder Ausgänge zu erhalten kann die Kombination um eine 7i74 und bis zu 8 7i70 / 7i71 / 7i84 ergänzt werden.
Karte | Funktion | Preis (Stand 2021) |
6i25 | PCI Express Steckkarte | 149,00€ * |
7i77 | 5 Servo/Encoder, 1 Spindel/Encoder, 32 Eingänge (5-32V), 16 Ausgänge (5-28V/300mA), | 279,00€ * |
7i74 | 8 Kanal Erweiterungskarte | 99,00€ * |
7i71 | 48 Ausgänge (5-28V/300mA) für 7i74 | 169,00€ * |
7i70 | 48 Eingänge (5-32V) für 7i74 | 109,00€ * |
7i84 | 16 Ausgänge / 32 Eingänge (5-32V) für 7i74 | 109,00€ * |
DB25 Kabel - Stecker Stecker | Verbindung für 5i25/6i25 und 7i77/7i74 | 6,00€ |
DB25 Kabel - Stecker Buchse | Verlängerung | 3,30€ |
DB25 Slotblende Stecker | Verbindung für 5i25/6i25 und 7i74 | 2,19€ |
Die 5i25 und 6i25 unterscheiden sich ausschließlich durch den Stecksockel, Linux und Mesa intern werden beide Karten als 5i25 "behandelt". Treiber und firmware bezeichnungen können daher auch bei der 6i25 den Begriff 5i25 enthalten.
Für die Softwareseitige konfiguration von LinuxCNC macht es sinn mit einer Beispielkonfiguration zu starten, die im Anwendungsmenü von Linux zu finden sind.
Hardwareseitig gibt es ebenso einige Punkte zu beachten. Um die Verdrahtung der 7i77 und 7i74 zu vereinfachen empfiehlt es sich die Jumper W1 und W2 wie im Bild nach oben zu setzen um die 5V Spannung des PCs für den Logic Teil zu nutzen.
P3 wird mit einem Standard DB25 Kabel (Stecker/Stecker) mit der 7i77 verbunden, während P2 über eine standard DB25 Slotblende und ein standard DB25 Kabel (Buchse/Stecker) optional mit einer 7i74 verbunden werden kann.
Damit alle Karten von LinuxCNC erkannt werden sollte die passende Firmware auf die 5i25/6i25 aufgespielt werden.
Dazu muss die Karte im LinuxCNC PC eingesetzt werden und folgende Schritte ausgeführt werden:
sudo mesaflash --device 5I25 --write 5i25_7i77_7i74.BIT
Auch hier nochmal der Hinweis die 6i25 wird hier ebenso als 5i25 beizeichnet. Falls keine 7i74 verwedet wird kann die Firmware trotzdem ohne Fehler genutzt werden. Erfahrungsgemäß können bei der Eingabe von Pfaden und Dateinamen leicht fehler passieren. Falls der Terminal einen Fehler ausgibt, das die Datei nicht gefunden wurde, dann kann die Datei alternativ in ein Terminal hineingezogen werden um den Dateipfad einzufügen.
Die 7i77 ist für die Regelung von Servo Antrieben oder Spindeln ausgelget und bietet daher bereits Anschlüsse für 6 Quadratur Encoder sowie 6 analoge Ausgänge mit einer Spannung von -10 bis +10 Volt.
Mindestens einer der analogen Ausgänge ist für die Drehzahlsteuerung der Spindeln einer CNC Fräse vorgesehen, die zugehörigen Encoder werden dagegen oft nicht benötigt.
Die Jumper der Karte sollten wie im nebenstehenden Bild gesetzt werden. Speziell der Jumper W5 muss in die linken Position gesetzt werden um die 5V Logik Spannung des PCs zu nutzten.
WICHTIG: Ist der Jumper Links darf die 5V Klemme der Karte nicht mit einer externen Spannungsquelle verbunden werden, da die Karte sonst zerstört wird !
Darüber hinaus wird die Karte beim starten der LinuxCNC Konfiguration nur erkannt, wenn die Spannungsversorgung an TB2 rechtzeitig anliegt.
Die Jumper W2-W3 und W6-W22 dienen der Wahl für "single ended" (links) oder "differential" (rechts) Inputs der Encoder Signale. "single ended" bedeutet dabei das ein Signal aus einer positiven Spannung und der GND Spannung oder 0V besteht. Das GND Potential ist überall auf den elektronischen Komponenten vorhanden und untereinander verbunden was dazu führt das Störungen sich wesentlich deutlicher auf die positive Spannung des Encoders auswirken als auf das GND Potential. Störungen in Form einer Anhebung der Spannung werden so ggf. als Impuls gewertet und führt zu einer falschen Position.
Beim "differential" Eingang sind die beiden Encoder Leitungen unabhängig vom GND potential, so dass Störungen eine Anhebung auf beiden Leitungen verursachen. Misst die Mesakarte nun den SpannungsUNTERSCHIED der Encoder Leitungen bleibt dieser auch mit der Störung annähernd gleich und minimiert daher das Risiko eines falsch ermittelten Impulses durch Störungen.
Der Vorteil bei der "differential" Methode liegt also in der geringen Empfindlichkeit gegenüber Störungen. In der Praxis sind uns bisher bei beiden Methoden keine Störungeneinwirkungen aufgefallen, die Wahl kann hier also relativ entspannt selbst getroffen werden.
Die Encoder der 7i77 bieten jeweils 6 Eingänge: QA, QB und IDX und die zugehörigen invertierten Eingänge /QA, /QB und /IDX. LinuxCNC nutzt dabei im Normalfall nur die einfachen Eingangssignale.
Auf der Encoderseite werden die Signale QA und QB oft mit A und B bezeichnet. Die Signale enthalten dabei Informationen über die zurückgelegte Entfernung und Richtung der Achse.
Der IDX Eingang der 7i77 dient zum Anschluss des so genannten Index Signals. Das Indexsignal wird einmal pro Encoderumdrehung ausgegeben. Bei der Referenzfahrt kann dann der Schaltpunkt des Referenzschalters oder das Indexsignal des Encoders genutzt werden. Das Indexsignal ist dabei theoretisch präziser. In der Praxis ergeben sich durch qualitativ hochwertige Referenzschalter im Normalfall jedoch keine störenden Unterschiede. Das Indexsignal wird auf der Encoderseite oft mit Z bezeichnet.
Laut der Unterlagen der 7i77 können Eingänge generell mit 5-32V betrieben werden. Für die Encoder Eingänge gilt dies nicht!
Die Encoder Eingänge sind auf eine Spannung von 5V ausgelegt je nach Jumperstellung und Encoder kann die Spannung jedoch höher ausfallen. Bei Encodern mit einen Spannungsbereich von 10-30V ist unsere Empfehlung: Wählen Sie den "Single Ended" Mode mit den zugehörigen Jumpern, schließen Sie nur die einfachen Signale A,B und ggf. (Z) an und nutzen Sie eine Spannungsversorgung von maximal 12V für die Encoder.
Wenn es bei den digitalen Ein- oder Ausgängen der 7i77 eng wird, ist eine günstige und Schrittweise erweiterbare Lösung die 7i74 und die 7i70 (48 Eingänge) oder die 7i71 (48 Ausgänge).
Die Jumper der Karten sollten wie im nebenstehenen Bild gesetzt werden. Der Jumper W1 der 7i74 kann für eine Versorgung der 5V Logik Spannung vom PC nach oben gesetzt werden.
WICHTIG: Wie auch bei der 7i77 darf bei einer Versorgung durch den PC keine externen Spannungsquelle mit der 5V Klemme verbunden werden, da die Karte sonst zerstört wird !
Und ebenfalls muss die Spannung an TB1 rechtzeitig anliegen damit die Karte beim starten von LinuxCNC erkannt wird.
Für die Verbindung der 7i70/1 mit der 7i74 kann ein standard CAT 5 LAN Kabel genutzt werden.
Passen alle Komponenten zusammen und sind richtig konfiguriert, sollten die grünen Leds der 7i77 und der 7i70 / 7i71 nach dem Starten der LinuxCNC Konfiguration im sekunden Takt blinken.
Die Karten benötigen für die Initialisierung beim starten von LinuxCNC einen Konfigurationsstring der in der [HOSTMOT2] Rubrik der INI aufgeführt ist.
Konfigurations-String für 5i25 / 6i25 + 7i77:
CONFIG="num_encoders=6 num_pwmgens=6 sserial_port_0=000xxx"
Konfigurations-String für 5i25 / 6i25 + 7i77 + 7i74 + 7i70 / 7i71
CONFIG="num_encoders=6 num_pwmgens=6 sserial_port_0=000xxx sserial_port_1=000xxx"
Fehler | Ursache | Lösung |
Rote Led auf der 7i77 | Probleme mit der "Field" Spannung an TB2 | Prüfen sie die Polung, die Position von W1 und die Klemmbelegung (siehe Bilder) |
Rote Led auf der 7i70 / 7i71 | Probleme mit der "Field" Spannung an TB1 | Prüfen sie die Polung, die Position von W1 und die Klemmbelegung (siehe Bilder) |
Keine Gelben Leds auf der 7i77 | Probleme mit der Logik Spannung | Prüfen sie die Jumper W1 und W2 der 5i25 / 6i25 sowie W5 auf der 7i77 |
LinuxCNC Fehlermeldung | Die Ursache kann dem Debug Absatz im oberen Teil entnommen werden | Prüfen sie den Konfigurationsstring der INI |
Grüne Leds blinken unregelmäßig beim start von LinuxCNC danach erscheinen viele Fehlermeldungen in der LinuxCNC Benutzeroberfläche. | Inkompatibles Mainboard; Mainboard erfüllt nicht die Timing Vorraussetungen um mit den Karten zu arbeiten | Hier hilft nach unserem Kenntnisstand leider nur ein neues Mainboard oder neuer PC |