Hallo miteinander,
ich habe mir vor einigen Jahren eine Portalfräse in XXYZ Konfiguration selbst gebaut. Damals hatte ich mich für eine Steuerung entschieden, die auf der Software Syntheos G2 [1] und CNCjs [2] aufbaut. Als Hardware dazu dient ein Arduino Due mit einer selbst entworfenen Platine, um an all die Ausgänge zu kommen.
Meine Achsen werden von JMC iHSV57-30-18-36 Servos angetrieben, meine Spindel ist eine Mafell FM1000PV. Außerdem ist ein Pilz PNOZ X3 Sicherheitsgerät verbaut, dass bei Nothalt u.a. die Spannungsversorgung von Spindel und Servos unterbricht.
Aus mehreren Gründen möchte ich jetzt meine Steuerung umbauen. Der wichtigste davon ist, dass die Steuerung manchmal ohne ersichtlichen Grund mitten im Programm stecken bleibt, die Spindel dann aber weiter läuft… keine gute Situation, da sie einem das Werkstück versauen kann.
Für meine neue Steuerung habe ich mich dazu entschieden, LinuxCNC einzusetzen und auf EtherCAT als etablierten Industriebus zu setzen. Seit einiger Zeit gibt es die JMC Servos auch in einer EtherCAT Variante, sodass ich auf Schnittstellenkarten zur Erzeugung von Schritt- und Richtungspulsen verzichten kann. Zusätzlich möchte ich meine Achsen noch mit einem zweiten Limit-Switch ausstatten und ein XHC WHB04b-6 Handrad hinzufügen.
Es steht allerdings noch die Entscheidung aus, ob ich einen Laptop (Thinkpad T400 oder T430) oder einen Raspberry Pi 4 oder 5 als Fräsrechner verwende.
Bevor ich jetzt allerdings meine funktionierende Fräse auseinander nehme möchte ich die neue Steuerung in einem Testaufbau in Betrieb nehmen.
Dank der guten Beschreibung hier im Forum hatte ich kein Problem, die grundsätzliche EtherCAT Funktionalität einzurichten. Ich sehe alle Schnittstellenkarten und Servos und kann den Status der Ein- und Ausgänge auslesen. Allerdings fehlt mir irgendwie noch ein kleines, aber entscheidendes Stück Verständnis, wie die INI und HAL Dateien aufzubauen sind… vielleicht wäre jemand so hilfsbereit und würde eine funktionierende Konfiguration veröffentlichen? Natürlich nur als Spickzettel, um daraus zu lernen.
Es folgt eine Detailübersicht über den aktuellen Aufbau der Steuerung:
1 Laptop oder Raspi, mit USB Empfänger für das XHC WHB04b-6 Handrad, verbunden mit
2 Beckhoff EK1100 Buskoppler
3 Beckhoff EL1018 8-fach Digitaleingangskarte 10µs
4 Beckhoff EL1018 8-fach Digitaleingangskarte 10µs
5 Beckhoff EL2008 8-fach Digitalausgangskarte 0,5A
6 Beckhoff EL2008 8-fach Digitalausgangskarte 0,5A
7 Beckhoff EL2024 4-fach Digitalausgangskarte 2,0A
8 Beckhoff EL4104 4-fach Analogausgangskarte 0-10V
9 Beckhoff EK1122 2-fach EtherCAT Abzweig
10 JMC iHSV57-30-18-36-EC für X1-Achse
11 JMC iHSV57-30-18-36-EC für X2-Achse
12 JMC iHSV57-30-18-36-EC für Y-Achse
13 JMC iHSV57-30-18-36-EC für Z-Achse
Die Ein- und Ausgänge sind wie folgt belegt:
3.1 Limit-Switch X1 Min+Referenz
3.2 Limit-Switch X1 Max
3.3 Limit-Switch X2 Min+Referenz
3.4 Limit-Switch X2 Max
3.5 Limit-Switch Y Min+Referenz
3.6 Limit-Switch Y Max
3.7 Limit-Switch Z Min+Referenz
3.8 Limit-Switch Z Max
4.1 Werkzeuglängensensor
4.2 Erkennung Nothalt (von Ausgang Sicherheitsgerät)
4.3 Überwachung Spannungsversorgung Servos
4.4 - 4.8 zur Zeit nicht belegt
5.1 - 5.8 zur Zeit nicht belegt
6.1 - 6.8 zur Zeit nicht belegt
7.1 Ansteuerung Spannungsversorgung Frässpindel
7.2 Ansteuerung Spannungsversorgung Absaugung
7.3 - 7.4 zur Zeit nicht belegt
8.1 Drehzahlsteuerung Frässpindel
8.2 - 8.4 zur Zeit nicht belegt
Für die Konfiguration der Servos habe ich hier im Forum letztlich zwei unterschiedliche Möglichkeiten gefunden. Zum einen als "normales" CIA402 kompatibles Gerät oder, indem man die Konfiguration über PDOs selber macht. Gibt es dazu Empfehlungen? Ich hänge mal beide XML dazu an.
Ich würde mich über jeden Schubs in die richtige Richtung und über jede Hilfe freuen.
Da ich mir sicher bin, dass ich nicht alle notwendigen Informationen hier im ersten Post mitgeliefert habe, lasst mich wissen, was noch fehlt. Bei Interesse mache ich auch gerne Bilder von Fräse und Testaufbau.
Vielen Dank für die Unterstützung,
Uwe
[1]
github.com/synthetos/g2
[2]
cnc.js.org/