Umbau der Steuerung auf LinuxCNC + EtherCAT

More
06 Jun 2025 16:29 - 06 Jun 2025 16:33 #329824 by UweSauter
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/
Last edit: 06 Jun 2025 16:33 by UweSauter. Reason: Details hinzugefügt

Please Log in or Create an account to join the conversation.

More
07 Jun 2025 09:40 #329870 by WKS-3D
Replied by WKS-3D on topic Umbau der Steuerung auf LinuxCNC + EtherCAT
Hallo Uwe,

ich kann dir leider nichts zu Ethercat sagen, davon habe ich keine Ahnung, aber ein Laptop ist denkbar schlecht für LinuxCNC da es auf Stromsparen getrimmt ist und es somit zu Problemen mit LinuxCNC kommen kann. Man sollte nach der Installation immer den Latency-Test machen um zu sehen ob das System den Anforderungen gerecht wird. Ich selber habe 3 PCs ausprobiert, bis ich einen hatte wo der Latency-Test in Ordnung war.
Es kommt auch sehr auf die verbaute Netzwerkkarte an, es gibt Chipsätze welche mehr oder weniger gut funktionieren.
Wie es mit einem Raspi und LinuxCNC aussieht, kann ich für eine Fräsmaschine nicht sagen, aber ein Freund hat eine Drehmaschine (2 Achsen und die Spindel) und er hat einen Pi5 im Einsatz und es funktioniert.

Viele Grüße
Olli

Please Log in or Create an account to join the conversation.

More
07 Jun 2025 11:28 - 07 Jun 2025 11:29 #329873 by juliankoenig87
Replied by juliankoenig87 on topic Umbau der Steuerung auf LinuxCNC + EtherCAT
Ja auf jeden Fall. Kein Laptop.

Thinkcentre tinys, Fujitsu esprimos, einiege Intel NUCs und wie erwähnt Raspberries sind geeignet.

Je nach gui reicht nen 4er raspi nicht mehr so richtig und es sollte ein 5er sein.

Ethercat oder nicht ist für die hardware (leistungsmäßig) quasi egal. Jitter ist bei 1ms Servothread gut in den Griff zu kriegen mit allen genannten obigen Rechnern. Man muss aber schon wissen was man macht.

Netzwerkgeschwindigkeit wie sonst für Mesakarten ist dir ja in deiner Konfiguration egal. Ich bin bei ethercat nicht fit, aber Guido hat in seinem Git was online was läuft...

github.com/GuiHue/EtherCAT-CNC-HMI
Last edit: 07 Jun 2025 11:29 by juliankoenig87.

Please Log in or Create an account to join the conversation.

More
07 Jun 2025 15:03 - 07 Jun 2025 15:15 #329881 by UweSauter
Replied by UweSauter on topic Umbau der Steuerung auf LinuxCNC + EtherCAT
Euch beiden vielen Dank schon mal.

Ich möchte die Frage nach dem Steuerungsrechner jetzt aber erst einmal in den Hintergrund stellen. Es macht für den Anfang keinen Unterschied, ob ich jetzt meinem Laptop oder den Raspi für die Einrichtung verwende. Und sobald ich eine lauffähige Konfiguration gefunden habe ist diese auch schnell auf einen anderen Rechner umgezogen.

Wahrscheinlich habe ich mir schlecht ausgedrückt aber mein primäres Problem besteht gerade darin, dass mir noch nicht klar ist, womit ich meine ganzen Ein- und Ausgänge verbinden muss. Ich kann mir mit "halrun: show pin" für die EtherCAT Komponenten und das Handrad die entspechenden Ein- und Ausgänge anzeigen lassen. Aber ich habe noch nirgends gefunden, wie ich mir die Ein- und Ausgänge des Regelungsthreads oder der Pfadberechnung anzeigen lassen kann. Damit ich eben für die ganzen anzulegenden Signalpfade (oder wie übersetzt ihr das "net"?) finde.
Gleiches gilt auch für die grafischen Oberflächen. Soweit ich verstanden habe, stellen die GUIs ja auch Pins zur Verfügung, um z.B. den Status eines Eingangssignals einzeigen lassen zu können.

Ein Beispiel anhand eines der Servos. Ich stelle mir den Regelkreis gerade so vor:
                    
    ┌───► Servo─────┐    
    │               │    
    │               ▼    
 lcec              lcec  
    ▲               │    
    │               │    
    │               ▼    
cia402             cia402
    ▲               │    
    │               │    
    │               │    
  pid(?)            │    
    ▲               │    
    └───motion ◄────┘    
                 

Mir verschließt sich aber noch, wie ich das miteinander verbinde…

Schöne Pfingsten,

Uwe
Last edit: 07 Jun 2025 15:15 by UweSauter. Reason: Codeblock eingefügt, Typo

Please Log in or Create an account to join the conversation.

Time to create page: 0.067 seconds
Powered by Kunena Forum