Entwicklung eines offenen CNC-Systems auf Basis einer Bewegungssteuerungskarte
2026-02-21 14:08:20··#1
Zusammenfassung: Dieser Artikel untersucht die Architektur einer offenen CNC-Systemplattform auf Basis von Bewegungssteuerungskarten und PCs. Er stellt die Hardwareprinzipien und die COM-basierte modulare Softwarestruktur vor und entwickelt darauf aufbauend ein CNC-System für die Bewegungssteuerungskarte GT400-SV. Die Praxis hat gezeigt, dass dieses System deutliche Leistungs- und Kostenvorteile bietet und die Offenheit von Hardware und Software sowie die binäre Wiederverwendung von CNC-Modulen ermöglicht. 1 Einleitung Seit den 1990er Jahren ist die Offenheit von CNC-Systemen ein wichtiger Entwicklungsschwerpunkt der CNC-Technologie. Einerseits verhinderte die geschlossene Architektur bisheriger CNC-Systeme die Anwendung neuester Computertechnologien und behinderte so die Weiterentwicklung der CNC-Technologie erheblich. Andererseits steigen aufgrund der Diversifizierung und Spezialisierung der Bearbeitung die Anforderungen an eine „personalisierte“ Bearbeitung stetig. Die Frage, wie die umfangreichen Softwareressourcen, die hohe Rechenleistung und die einheitliche Mensch-Maschine-Schnittstelle von PCs effektiv genutzt werden können, um ein professionelles, kostengünstiges, hochpräzises und leicht erweiterbares offenes CNC-System zu realisieren, ist zum zentralen Forschungs- und Entwicklungsfeld für zukünftige CNC-Systeme geworden. Unter dem gängigen PC-Betriebssystem MS Windows gibt es zwei Methoden zur digitalen Steuerung: Zum einen den Standalone-Modus, bestehend aus einem Computer und einigen I/O-Modulen. Dieser Modus ist hardwareseitig relativ kostengünstig, softwareseitig jedoch sehr komplex, da er Modifikationen an Windows (z. B. die Integration eines Echtzeitbetriebssystems) erfordert, um die Echtzeit-Steuerungsleistung des Systems zu gewährleisten. Dies ist eine wichtige Entwicklungsrichtung für zukünftige CNC-Systeme, wird aber aufgrund der aktuellen Nicht-Open-Source-Natur von Windows nur schwer und wenig praktikabel umgesetzt. Zum anderen den parallelen Dual-CPU-Kommunikationsmodus. Dieser Modus bietet vergleichsweise hohe Flexibilität und Praktikabilität und basiert auf einer umfassenden offenen Architektur, die sich leicht an den Benutzer anpassen lässt. Das in diesem Beitrag vorgestellte CNC-System, das die in einen PC integrierte Bewegungssteuerungskarte GT400-SV verwendet, zeichnet sich durch einen kurzen Entwicklungszyklus, hohe Geschwindigkeit, hohe Steuerungsgenauigkeit und niedrige Kosten aus und ist repräsentativ für den zweiten Modus. 2 Hardware-Systemprinzipien und -struktur2.1 Merkmale der Googol GT400-SV Motion-Control-Karte Die Googol GT400-SV ist eine leistungsstarke Servo-Motion-Control-Karte, die vier Bewegungsachsen synchron steuern und so komplexe, mehrachsige, koordinierte Bewegungen realisieren kann. Ihre Kernkomponenten sind der digitale Signalprozessor ADSP2181 und ein FPGA. Die Harvard-Architektur und die MAC-Einheit des ADSP2181 eignen sich hervorragend zur Implementierung komplexer Motion-Control-Algorithmen, während das FPGA für Dekodierung, Frequenzvervielfachung, Impulsverteilung, Timing und Zählfunktionen zuständig ist. Die Motion-Control-Karte wird über einen ISA-Bus mit dem PC verbunden. Der Datenaustausch zwischen Host- und Slave-Computer erfolgt über Dual-Port-RAM. Dual-Port-RAM ist ein spezieller Typ von Arbeitsspeicher mit zwei Daten- und Adressbussen. Bei konfliktfreien Adressen können die beiden Busgruppen parallel auf unterschiedliche Speicherzellen zugreifen. Diese einzigartige Dual-Port-RAM-Struktur ermöglicht einen schnellen, umfangreichen Datenaustausch zwischen Host- und Slave-Computern. Dadurch werden die parallelen Verarbeitungskapazitäten von Host und DSP-Bewegungssteuerungskarte deutlich verbessert und der Kommunikationsengpass zwischen den CPUs in herkömmlichen Master-Slave-Systemen beseitigt. Abbildung 1 veranschaulicht den Datenaustausch zwischen Master- und Slave-Mikroprozessoren über Dual-Port-RAM. Die Bewegungssteuerungskarte GT400-SV bietet einen auf Dual-Port-RAM basierenden Puffermechanismus. Benutzer können Bewegungssteuerungsbefehle zunächst in einem ringförmigen Befehlspuffer innerhalb der Bewegungssteuerung speichern, bevor sie Ausführungsbefehle senden. Während die Bewegungssteuerung die im Puffer gespeicherten Bewegungsbefehle ausführt, kann der Host-Computer weiterhin Bewegungsbefehle in den Puffer laden. Dies reduziert die Echtzeitanforderungen an die Host-Kommunikation zusätzlich. Gleichzeitig kann die Bewegungssteuerung durch die Vorverarbeitung von Trajektorieninformationen in mehreren Puffersegmenten optimale Bewegungseigenschaften erzielen, wodurch die Trajektorie kontinuierlicher und gleichmäßiger wird. 2.2 Struktur der Versuchsplattform (siehe Abbildung 2) Abbildung 2: Struktur der Versuchsplattform 3 Planung und Implementierung der Software-Systemstruktur 3.1 Gesamthierarchie der Software Das CNC-System kann normal betrieben werden. Seine Systemsoftware umfasst die CNC-Benutzeranwendung auf dem Host-Rechner und den Kommunikationstreiber für die Kommunikation zwischen Host- und Slave-Rechnern. Die Entwicklung des Kommunikationsprogramms ist der arbeitsintensivste, schwierigste und fachlich anspruchsvollste Teil und erfordert ein umfassendes Verständnis der Kommunikationsstruktur des Slave-Rechners sowie von Microsoft WDM. Das GT400-SV wird mit einem Gerätetreiber (PHDIO.SYS) für Win98/2000 und einer Funktionsbibliothek (GTSVDLL.DLL) für Bewegungssteuerungskarten geliefert. Benutzer können die entsprechenden Bibliotheksfunktionen über das Host-Programm aufrufen, um relevante Parameter und Bewegungstrajektorienbeschreibungen an den Bewegungscontroller zu übergeben und so effektiv Bewegungssteuerungsbefehle auszugeben. Der Bewegungscontroller führt automatisch komplexe Berechnungen wie Trajektorienplanung, Sicherheitsprüfung und Servo-Aktualisierung gemäß den Anforderungen des Hosts durch. Die Berechnungsergebnisse werden in analoge Spannungen oder Impulse umgewandelt, um die Motorbewegung zu steuern. Anwender müssen keine Kommunikationsprogramme schreiben und sind nicht mehr an die 32-Bit-Treiberbibliothek gebunden. Dadurch können sie sich voll und ganz auf die Definition und Entwicklung ihrer eigenen CNC-Systemanwendungen konzentrieren. Die Softwarehierarchie dieses Systems ist in Abbildung 3 dargestellt. Die Offenheit des Systems zeigt sich vor allem in zwei Aspekten: Erstens ist der Kern der Steuerkarte für externe Systeme zugänglich. Systementwickler können die Bewegungssteuerungsalgorithmen der Steuerkarte verbessern und diese mithilfe eines Programmier- und Downloadprogramms in den K2ROM der Steuerkarte laden, um die Algorithmen für spezifische Steuerungsobjekte zu optimieren und die Systemleistung zu verbessern. Zweitens ist die CNC-Plattform des Host-Computers für die Steuerkarte, CAD/CAM-Systeme und CNC-Werkzeugmaschinen offen. Die Offenheit der Steuerkarte zeigt sich hauptsächlich in der Kontrolle über die zugrundeliegenden Leistungsmerkmale der Steuerkarte, die auf deren physischer Struktur (E2ROM) basiert. Die Offenheit der CNC-Plattform zeigt sich in ihrer Kompatibilität, Vielseitigkeit und Anpassbarkeit mit Hardwaregeräten, ihrer Anbindungsfähigkeit an CAD/CAM-Software und der Wiederverwendbarkeit verschiedener Funktionsmodule. Dies wird hauptsächlich durch eine sinnvolle Planung der Softwarefunktionen und die Auswahl einer fortschrittlichen Softwarearchitektur erreicht. Microsofts COM und DCOM sind etablierte und weit verbreitete Schnittstellenstandards für Komponenten. Durch die Definition einheitlicher Betriebsspezifikationen interagieren Benutzer nicht mehr direkt mit den Funktionen von Softwaremodulen. Die COM-Spezifikation fungiert als Vermittler, der die internen Eigenschaften des Moduls abschirmt und so die Interaktion zwischen Modulen auf Binärebene ermöglicht. Konkret wird COM durch definierte virtuelle Funktionstabellen (Vtables) und Dualzeiger implementiert. Diese Methode bietet eine hervorragende Wiederverwendbarkeit der Software auf Binärebene, eine hohe Sprachunabhängigkeit und ermöglicht die Interoperabilität von Komponenten über verschiedene Prozesse, Plattformen und sogar Netzwerke hinweg. In diesem Beitrag werden erste Ansätze zur Verwendung der COM-Spezifikation zur Definition und Entwicklung von CNC-Systemsoftwaremodulen auf Basis von Bewegungssteuerungskarten vorgestellt, wobei COM als zugrundeliegende Struktur für die Software dient. Die Softwarestruktur ist in Abbildung 4 dargestellt. Abbildung 4: Softwarestruktur 3.2 Definition der Datenstrukturen zwischen den Hauptmodulen3.2.1 CNC-Codeinformationen Definiert alle CNC-Informationen. Positionsinformationen, Bewegungsinformationen und E/A-Daten, die aus CNC-Programmsegmenten extrahiert werden, werden in diese Struktur eingefügt. typedef struct { CString title; // Programmname int Num; // Programmsegmentnummer int GG00; // G-Code Gruppe 00 ... int GG15; // G-Code Gruppe 15 int GM00; // M-Code Gruppe 00 ... int GM10; // M-Code Gruppe 10 int T; // Werkzeugnummer double S; // Spindeldrehzahl double F; // Vorschubgeschwindigkeit double R; // Radius der Kreisinterpolation, fester Zyklusparameter double Q; // Fester Zyklusparameter double P; // Fester Zyklusparameter double X; // Grundabmessung double Y; double Z; double I; // Koordinaten des Kreisinterpolationsmittelpunkts (relativ) double J; double K; } CODEINFO; 3.2.2 Die Informationen der Bewegungssteuerungskarte definieren hauptsächlich die Parameter des konfigurierbaren Teils der Bewegungssteuerungskarte. tvoedef struct { double RefPointX; // Systemreferenzpunkt double RefPointY; double RefPointZ; double RefPointA; double ServoCycle; // Servozyklus AxisMapX; // Achsenbelegung AxisMapY; AxisMapZ; AxisMapA; unsigned short LimitSense; // Grenzwert unsigned short DSns; // Encoderrichtung unsigned long iN; // Interruptnummer unsigned long PortBase; structAxislnfo // Achsenparameter { double AxisMap[5]; unsigned short Kx[5]; unsigned short ILmt; unsigned short MtrLmt; short MtrBias; unsigned short PosErr; double AccLnt; }Axis[4]; }CARDINFO. 3.2.3 Die CNC-Systeminformationen definieren hauptsächlich die Strukturparameter des CNC-Systems, die unterstützte CNC-Codetabelle und die tatsächlichen Ansteuerungsfunktionen. Diese Struktur liefert Regeln für das Dekodierungsmodul und das Funktionsaufrufmodul der Steuerkarte. Das Dekodierungsmodul füllt die CNC-Codeinformationsstruktur gemäß den Systeminformationen und den Dekodierungsregeln aus und gibt Fehlerinformationen aus. typedef struct { bool G00, G01, G02, G03, ..., G99; // Unterstützte G-Codes bool M00, M01, M02, M03, ..., M99; // Unterstützte M-Codes double Xmin, Xmax, Ymin, Ymax, Zmin, Zmax; // Plattformstrukturparameter (Soft Limits) double Smin, Smax; // Spindeldrehzahlbegrenzung double Fmin, Fmax; // Vorschubbegrenzung double FF; // Eilgangbegrenzung int plusEqual; // Äquivalenter Antriebsmotorimpuls double synAcc; // Synthetische Bewegungsgeschwindigkeitsbegrenzung double ServoCycle; // Servozyklus int AxisNm; // Anzahl der Achsen struct Tool // Werkzeugparameter { double Länge; double Verhältnis; int Index; } tool[20]; } CODEPERMIT; 3.2.4 Fehlermeldungen typedef struct { Cstring Titel; // Programmname UINT Zeile; // Fehlersegment UINT Fehlertyp; // Fehlernummer } ERROR; // Fehler bei der CNC-Codeinterpretation festgestellt 3.3 CNC-Ablaufanalyse Aus Platzgründen wird die Implementierung jedes Moduls nicht detailliert beschrieben. Im Folgenden wird lediglich der Hauptprogrammablauf des CNC-Programms und seine Implementierung allgemein erläutert. 3.3.1 Systemkonfigurationsmodul Das Systemkonfigurationsmodul umfasst die Konfiguration der Parameter der Bewegungssteuerkarte und der Werkzeugmaschinenparameter. Erstere beinhaltet die Einstellungen von Parametern wie Servofilterung, Achsenbelegung, Encoder, Grenzwert und Fehlergrenze der Steuerkarte. Diese Parameter befinden sich auf der untersten Ebene und bestimmen direkt die Systemleistung. Letztere definiert die Strukturparameter der Werkzeugmaschine, die Werkzeugparameter und die unterstützten CNC-Befehlssätze und umfasst somit alle Eigenschaften der Werkzeugmaschine. Diese Parameter beeinflussen hauptsächlich den nachfolgenden CNC-Dekodierungsprozess. Benutzer legen die oben genannten Parameter über die Benutzeroberfläche fest. Dabei werden die Konfigurationsdateien card.ini und sys.ini erstellt, die auf der Festplatte gespeichert und beim Systemstart automatisch geladen werden. Abbildung 5 Systemparameterkonfiguration Abbildung 6 Konfiguration der Steuerkartenparameter 3.3.2 Dekodierungsmodul Das Dekodierungsmodul übersetzt den Befehlstext gemäß den allgemeinen Regeln der CNC-Codes und den Eigenschaften der Werkzeugmaschine in einen CNC-Informationsfluss. Dies umfasst im Wesentlichen die Gruppierung und Verarbeitung von G- und M-Code, die Verarbeitung von Modalcodes und die Anpassung von CNC-Code-Regeln. Bei der nachfolgenden Werkzeugkompensation müssen die Koordinaten der beiden oben genannten Codeabschnitte angegeben werden, um das Problem der erhöhten Interpolationssegmente während der C-Werkzeugkompensation zu lösen. Da das CNC-Programm keine feste Länge hat, wird ein dynamisches Array zur Speicherung der CODEINFO-Struktur benötigt. Hierfür wird die MFC-Klasse CArray verwendet, die die Verwaltung und Manipulation von Array-Elementen vereinfacht. Die Definition lautet wie folgt: CArray InfoArray; Das Hauptmodul fügt diesem Array dynamisch die CODEINFO-Struktur basierend auf dem Ergebnis der CNC-Textdekodierung hinzu, wie unten dargestellt: CODEINFO m-temp; Translate(CNCString, m-temp, ErrorInfo); // Pseudocode InfoArray.Add(m-temp). Nach der Dekodierung wird das Array an das nächste Verarbeitungsmodul übergeben. 3.3.3 Hauptmodul Das Hauptmodul ist der Kern des gesamten Systems. Während der Systemstartphase liest dieses Modul die Konfigurationsdatei, um die Bewegungssteuerungskarte zu initialisieren und die CODEPERMIT-Struktur mit Werkzeugmaschineninformationen zu füllen. Im Ausführungszustand ruft das Hauptmodul die Dekodierungs-, Interpolations- und andere Modulfunktionen auf, um den CNC-Informationsfluss zu bilden, und tritt schließlich in die Bewegungsfunktions-Schleife ein. In dieser Schleife überwacht das Hauptmodul den Befehlspuffer der Steuerkarte, das Koordinatensystemstatusregister und das Befehlsstatusregister. Basierend auf dem Pufferstatus synthetisiert das Modul den CNC-Informationsfluss in den Funktionsablauf der Steuerkarte und sendet ihn kontinuierlich an den Befehlspuffer. Dabei werden der Befehlsausführungsstatus, die Systemkoordinaten und weitere Statussignale zur Echtzeitanzeige auf der Mensch-Maschine-Schnittstelle zurückgemeldet. Wird der Betrieb aufgrund der Befehlsausführung unterbrochen oder vom Bediener gestoppt, wechselt das Hauptmodul in den Stoppzustand. Wählt der Bediener eine Pause, speichert das Modul die aktuelle Befehlsnummer im Puffer und wartet auf die Wiederaufnahme der Ausführung. Da Windows nachrichtenorientiert arbeitet, erfolgen die Übergänge und Sperrungen der verschiedenen Systembetriebszustände über Nachrichten und nicht sequenziell wie oben beschrieben. 4. Hauptfaktoren, die die Systemleistung beeinflussen: Diese Bewegungssteuerkarte verwendet einen Hochgeschwindigkeits-DSP-Prozessor zur Datenverarbeitung. Wie bereits erwähnt, gibt es keine Rechenengpässe bei der CNC-Bahnplanung, Interpolationsberechnung, Positions- und Geschwindigkeitsregelung. Die Hauptfaktoren, die die Systemleistung einschränken, sind: 4.1 Kontinuität der Steuerbefehle: Leere Befehlspuffer müssen vermieden werden. Die Steuerkarte verarbeitet mehrere Trajektoriensegmente anhand des Befehlspuffers vor. Der Puffermechanismus gewährleistet, dass Geschwindigkeit und Beschleunigung der einzelnen Trajektoriensegmente nicht wesentlich schwanken, wodurch die Bearbeitungsqualität verbessert wird. Entscheidend hierfür ist die effektive Überwachung des Pufferstatus und die rationale Planung der Bewegungsbefehle. 4.2 Servo-Nullpunktdrift: Im Systembetrieb zeigte sich, dass ohne die von der Bewegungssteuerkarte bereitgestellte Nullpunktdrift-Eliminierungsfunktion ein allgemeiner Fehler von 13–15 Impulsen auftritt. Bei einer Impulsdichte von 2000 Impulsen/mm erreicht der Fehler 6,5–7,5 µm, wodurch die Bearbeitungsgenauigkeit nicht mehr gewährleistet werden kann. Durch periodische Erfassung und dynamische Anpassung des Nullpunktdriftwerts während des Betriebs lässt sich die Nullpunktdrift eliminieren. 4.3 PID-Parametereinstellung des Systems: Der PID-Regelalgorithmus ist ausgereift und weit verbreitet, die Parametereinstellung erfordert jedoch umfangreiche praktische Erfahrung. Ein optimal eingestelltes System zeichnet sich durch gute dynamische und statische Eigenschaften, hohe Bearbeitungsgenauigkeit und geringe Betriebsgeräusche aus. In praktischen Anwendungen lassen sich optimale PID-Parameter mithilfe eines Testprogramms ermitteln und anschließend über das Systemkonfigurationsprogramm anpassen. Eine zukünftige Entwicklungsrichtung für die Parameterkonfiguration ist die automatische Online-Prüfung und -Anpassung. Dies ist besonders praktisch für den Einsatz des Systems an verschiedenen Werkzeugmaschinen und unter unterschiedlichen Betriebsbedingungen und bietet zudem Verbesserungspotenzial. Abbildung 7: Hauptschnittstelle des CNC-Systems . 5: Hauptschnittstelle der Systembedienung.6: Fazit. In diesem Beitrag wird eine offene CNC-Plattform in Form eines Master-Slave-Computers am Beispiel der Googol GT400-SV Motion-Control-Karte vorgestellt. Sie bietet eine gewisse Vielseitigkeit für offene CNC-Systeme auf Basis von Motion-Control-Karten. Das System nutzt eine leistungsstarke Motion-Control-Karte zur Ausführung von Echtzeitaufgaben wie Interpolationsberechnungen, Positions- und Drehzahlregelung. Ein PC ermöglicht eine benutzerfreundliche Mensch-Maschine-Schnittstelle, eine flexible Systemkonfiguration und erweiterte externe Softwareschnittstellen. Es wird eine COM-basierte modulare Softwarestruktur verwendet. Die Praxis hat gezeigt, dass dieses System eine hohe Regelgenauigkeit aufweist, die Offenheit von Hard- und Software sowie die binäre Wiederverwendung von Modulen ermöglicht und sich für den Aufbau verschiedener allgemeiner und spezieller CNC-Systeme eignet. Eine modifizierte Version dieses Systems wurde in einer Leiterplattenbohrmaschine eingesetzt.