Zentraler Steuerungsalgorithmus für ein 3-Achs-CNC-Bearbeitungszentrum mit Matlab/GUIDE: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 100: Zeile 100:


==Technischer Systementwurf==
==Technischer Systementwurf==
Der technische Systementwurf beschäftigt sich mit einer präzisen Darstellung, wie das genaue Vorgehen zur Lösung des Systems aussieht und welche Technologien und Funktionen verwendet wurden. Durch ihnen sollen auch Dritte die Architektur des Programmes erkennen und ggf. auf die erhaltenen Ergebnisse aufbauen.

Version vom 16. Januar 2020, 16:43 Uhr

Zurück zum übergeordneten Projekt: 3-D-Bearbeitungsmaschine (Projekt des Schwerpunkts GPE im Studiengang MTR)

Kategorie: 2019/ 2020_WS_MTR7_Praktikum_GPE

Autoren: Yannik Schäfer, Philipp Heer

Einleitung


Das Praktikum Produktionstechnik ist Teil des Studienschwerpunktes Globale Production Enginieering im Studiengang Mechatronik an der Hochschule Hamm-Lippstadt. Diese Veranstaltung wird im siebten Semester durchgeführt und steht unter der Leitung von Professor Dr.-Ing. Mirek Göbel. In diesem Modul sollen die Studierenden durch einzelne Projekte das Ziel verfolgen, eine Ansteuerung für eine 3D- Bearbeitungsmaschine zu entwickeln. Die Thematik des hier vorliegenden Artikels befasst sich mit der Erstellung eines zentralen Steuerungsalgorithmus mithilfe von [[Mat als Grundlage unterschiedlicher Ansteuerungsvarianten. Das Projekt des Steuerungsalgorithmus wurde von Yannik Schäfer und Philipp Heer(WS 19/20) bearbeitet und baut auf die Inhalte des Projektes „Zentraler Steuerungsalgorithmus für ein 3-Achs-CNC-Bearbeitungszentrum" der Studierenden Domenik Greune (WS16/17) und Robin Lehmann (WS16/17) auf.


Aufgabenstellung


Die Aufgabe des Steuerungsalgorithmus soll es sein, aus dem G-Code einer CAM-Textdatei die benötigten Informationen zu lesen, um damit die Sollbahnen des Fräsers zu generieren. Die erhaltenen Daten sollen in einen String eingetragen und über die RS232-Schnittstelle übergeben werden. Zur besseren Übersicht der Funktionen wurde die Aufgabenstellung in drei konkrete Projektanforderungen eingeteilt.


1) Einlesen der Cam-Textdatei

In der Aufgabe des Einlesens soll zunächst die txt. Datei in MatLab eingelesen werden. Danach wird der G-Code in die einzelnen Bestandteile (G;X;Y;Z) unterteilt und in eine Matrix geschrieben.

2) Umwandeln der Daten in Koordinaten

Diese Aufgabe beschäftigt sich damit, dass die in der Matrix eingetragenen Daten und Befehle ausgelesen und die Verfahrenskoordinaten berechnet werden. Aus diesen soll danach ein String generiert werden.

3) Koordinaten über Schnittstelle ausgeben

Die letzte Teilaufgabe befasst sich mit der Ausgabe der Strings über die zuvor initialisierte RS232 Schnittstelle.


MATLAB


MatLab ist ein Softwareprogramm des Unternehmens MathWorks um numerische Lösungen für wissenschaftliche Problemstellungen zu finden. Mithilfe dieser Software können unterschiedliche Anwendungen wie Programmierungen oder numerischer Berechnung durchgeführt werden. Im Weiteren dient MatLab zur Simulierung, Modellierung und auch Visualisierung. Durch das Einbinden zugehöriger Toolboxen ist der Funktionsumfang schnell erweiterbar und es besteht ein Zugriff auf eine große Anzahl an Programmbibliotheken.


Grafische Benutzeroberfläche mit MATLAB-Guide

Um die Steuerungssoftware übersichtlich und einfach bedienbar zu machen, wurde eine grafische Benutzeroberfläche (GUI) in MatLab verwendet. Diese wurde mithilfe eines Tools Namens „Graphical User Interface Development Environment“ oder kurz „guide“in MatLab erstellt. Geöffnet wird dieses indem man in dem Command Window den Befehl „guide“ eingibt und die Option „Blank GUI“ auswählt. Im Folgendem kann man einzelne Funktionen aus dem linken Reiter wählen und in dem rechten Fenster einfügen. Durch einen Doppelklick auf die ausgewählten Funktionen kann man einzelne Parameter, Größen und das Design verändern.

Die grafische Benutzeroberfläche öffnet sich nach dem Aufruf der Datei. Die GUI ist in drei Bereiche unterteilt.

• Im oberen Bereich (Kommunikation und Schnittstelle) befinden sich zwei Pushbutton zum Starten und Stoppen der seriellen Kommunikation.

• Im mittleren Bereich befinden sich zwei Slider für das Öffnen der Text-Datei und die Bearbeitung der Maschine. Bei dieser kann man zwischen dem Start einer Simulation, dem Start der Fräse oder auch einem Not-Aus wählen.

• Im unteren Bereich der GUI befindet sich ein weiterer Pushbutton, der bei einer Betätigung durch einen Mausklick die eingegebenen Referenzkoordinaten an die Achsen der Maschine sendet.

Bevor eine Koordinate eingestellt und zur Maschine geschickt werden kann, muss die serielle Kommunikation gestartet werden. Dazu genügt ein Mausklick auf die grüne Schaltfläche mit der Aufschrift „Start“. Nachdem die Koordinaten eingestellt sind, können mit einem Mausklick auf der blauen Schaltfläche mit der Aufschrift „Senden“ die Koordinaten an die Maschine verschickt werden.

Nach erstellen der GUI erstellt das Matlab Tool den entsprechenden Code zum Interface. Hier als Beispiel ein Code-Ausschnitt in dem die Funktion des "Öffnen" Buttons implementiert wird.

% --- Executes on button press in Oeffnen.
function Oeffnen_Callback(hObject, eventdata, handles)
% hObject    handle to Oeffnen (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% Display surf plot of the currently selected data.
global Daten;                                                                 % "Daten" als global definieren
[Daten.Probe.Dateiname, Daten.Probe.Dateipfad] = uigetfile('*.txt; *.ngc');   % Öffne Dialog zur Dateiauswahl
if  Daten.Probe.Dateiname ~= 0                                                % Überprüfung, ob Dateiname = 0 (wenn Benutzer auf Abbrechen drückt)
        Daten.Dateiname = Daten.Probe.Dateiname;                              % auf "Probe" überschreiben
        Daten.Dateipfad = Daten.Probe.Dateipfad;                              % auf "Probe" überschreiben
        Daten.Matrix = Auslesen (Daten.Dateiname);                            % Matrix mit Daten aus ausgelesen Dateiname beschreiben
        
        Daten.l = length(Daten.Matrix);                                       % Länge der Matrix speichern
end

G-Code


Der im CAM-Programm erstellte G-Code ist eine allgemeine Programmiersprache für numerische Steuerungen und wird primär für die computergestützte Steuerung von automatisierten Werkzeugmaschinen verwendet. Die verschiedenen Befehle der Maschinensprache sind bei der Verwendung für CNC-Maschine größtenteils identisch. Der G-Code besteht aus Funktionsbefehlen, der der Maschine die als nächstes zu bearbeitenden Schritten übermittelt. Es gibt G-Funktionen und M-Funktionen. Die G-Funktionen sind Beispielsweise für die Verfahrwege, die Zyklen, Bahnkorrekturen, oder zur Ebenenauswahl zuständig. Die M- Funktionen regeln, Beispielsweise, das An- und Abschalten des Kühlwassers, werden aber auch für Werkzeugwechselfunktionen benötigt. Für das durchgeführte Projekt wurde entschieden, zuerst nur die Funktionen G00, G01 und G02 umzusetzen, da die meisten CAM-Softwares sich auf diese Grundfunktionen beschränken. Im Folgendem werden die G-Befehle erläutert:


G00: Die G00-Funktion ist die Funktion für das reine Verfahren der Werkzeugspindel um schnell von einem zum anderen Punkt zu gelangen. Da diese Verfahrensweise im Eilgang vollzogen wird ist es zu empfehlend diese Funktion nur zum Positionieren und nicht zum Fräsen zu benutzen. →Benutzung: G00(X,Y,Z); Beispiel: G00(5,5,0.5) Die Übergabeparameter sind die Absolutkoordinaten in X-Richtung, Y-Richtung und Z-Richtung. Diese Parameter werden aus der Matrix gelesen.


G01: Die G01-Funktion ist die Funktion um die Spindel im gewünschten Vorschub (F) von einem zum anderen Punkt zu fahren. Diese Funktion ist zum Fräsen gedacht, wo der Fräser gerade Strecken abfahren soll. Es ist empfohlen, um den Fräser zu schützen, eine maximale Frästiefe von 1mm nicht zu überschreiten. Sollte tiefer gefräst werden muss so ist es ratsam mehrfach diese Stelen zu überfahren. →Benutzung: G01(X,Y,Z,F); Beispiel: G01(5,5,0.5,30) Die Übergabeparameter sind die Absolutkoordinaten in X-Richtung, Y-Richtung und Z-Richtung. Zusätzlich wird jetzt aber noch der Vorschubwert in mm/min angegeben. (F = 1000 entspräche dem Eilgang). Diese Parameter werden aus der Matrix gelesen.

G02: Die G02-Funktion ist die Funktion um einen Radius im Uhrzeigersinn abzufahren. Es ist empfohlen, um den Fräser zu schützen, eine maximale Frästiefe von 1mm nicht zu überschreiten. Sollte tiefer gefräst werden, so ist es ratsam in mehreren Durchläufen diese Stelen zu überfahren.

→Benutzung G02 (X,Y,Z,I,J); Beispiel: G02(5,3,0.5,3,-2.5) Die Übergabeparameter sind die Absolutkoordinaten in X-Richtung, Y-Richtung und Z-Richtung. Zusätzlich werden jetzt in I und J die Koordinaten des Mittelpunktes des Kreises festgelegt. Wichtig ist hier zu beachten, dass bei dieser Funktion die Werte von I und J immer relativ zum aktuellen Fräserstandort angegeben werden müssen.

Funktionaler Systementwurf

Der funktionale Systementwurf beschäftigt sich mit den Nutzungsanforderungen des Systems. Er gibt eine wesentliche Beschreibung über den Ablauf des Programms und die vorhandenen Schnittstellen der Komponenten. Es soll eine vereinfachte und übersichtliche Darstellung zur Lösung der Aufgabe verdeutlicht werden.

Technischer Systementwurf

Der technische Systementwurf beschäftigt sich mit einer präzisen Darstellung, wie das genaue Vorgehen zur Lösung des Systems aussieht und welche Technologien und Funktionen verwendet wurden. Durch ihnen sollen auch Dritte die Architektur des Programmes erkennen und ggf. auf die erhaltenen Ergebnisse aufbauen.