G-Code: Wo sinnvoll und wo nicht?

Nein, die Anzahl verschiedener Teile ist unbegrenzt? Wir verkaufen ja diese Maschinen. Man soll so jedes x-beliebige Teil bearbeiten können. Was entscheidet der Kunde. Ziel ist einfach: überall gleiche Schichtdicke (gemäss Rezept).
Und wie komplex sind die Bewegungen des Endeffektors? Beschichtet ihr das Teil vollflächig und gleichmäßig oder sind besondere Bahnen abzufahren, weil bspw. auftragsabhängig Bereiche ausgespart werden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und wie komplex sind die Bewegungen des Endeffektors? Beschichtet ihr das Teil vollflächig und gleichmäßig oder sind besondere Bahnen abzufahren, weil bspw. auftragsabhängig Bereiche ausgespart werden?
Schlussendlich sollen sie beliebig komplex werden können. Deshalb wollen sie Richtung G-Code gehen.
Ich kann mir das Ganze halt noch nicht recht vorstellen, da ja der Transporteur während dem Beschichten gestoppt und wieder gestartet werden kann (mit einer Rampe). Muss dazu dann sofort wieder ein neuer G-Code berechnet und in die Steuerung geladen werden? Oder wie macht man sowas? Das Programm, das den G-Code berechnet, ist ja ausserhalb der PLC und wird wahrscheinlich eingekauft. Vielleicht aber auch nicht. Man will so vor allem Flexibilität gewinnen und möglichst wenig in der PLC machen.
 
Der G oder M Code ruft doch eigentlich nur ein Unterprogramm auf. Das müsstet Ihr ja vorher auch programmieren. Da kann man es auch gleich FC oder FB nennen.
 
Das würde für mich bedeuten, dass alle Achspositionier- und Regelaufgaben mit G-Code gelöst werden können, es sich vom Aufwand her aber nicht immer lohnt, da es auch einfacher ohne ging.
Regelaufgaben eher nein. Die fallen ganz nebenbei beim Abarbeiten des G-Codes an und um die will man sich gar nicht kümmern müssen.
Dann wäre es also z. Bsp. möglich, eine Regelung für ein inverses Pendel mit G-Code zu machen?
Wahrscheinlich bin ich zu altmodisch, um mir unter einem inversen Pendel etwas vorstellen zu können, dessen Regelung ich per G-Code realisieren würde.
Mit G-Code werden BahnBewegungen vorgegeben, also eher gesteuert als geregelt. Die Umsetzung des G-Code in die BahnBewegungen hat aber i.A. sehr viel mit Regelungen diverser Parameter (Positionen, Drehzahlen, Geschwindigkeiten, Beschleunigungen, ...) diverser Achsen zu tun.
Oder einen Roboter der Tischtennis spielt?
Hmmm. Schnelles Reagieren auf bewegte Objekte, deren Bahnen erst noch ermittelt und ausgewertet werden müssten, dann auch noch entscheiden, nach welcher Strategie man das Beste oder zumindest das kleinste Übel daraus machen könnte, daraus eine Handvoll G-Code-Zeilen generieren, mit denen man die nächsten ms oder s überbrücken könnte?
Ist es aber auch sinnvoll, dies per G-Code zu machen?
Tja. Ist es denn sinnvoll, einen Roboter mit TischTennisSpielen zu beschäftigen?
Ich denke, das Wissen und die Erfahrung derer zu nutzen, die dafür sorgen, dass CNCs das tun, was die diversen G-Code-Programme vorgeben, kann sicherlich nicht schaden. Das erforderliche KnowHow könnte man sicherlich zum grossen Teil übernehmen. Ob dann aber etwas von dem übrigbleibt, was wir als G-Code kennen? G-Code hat für mich den unverkennbaren Duft der Programmierung per LochStreifen.
Ich kann mir eigentlich nicht vorstellen, dass heutzutage jemand eine ProgrammierSprache erfinden würde, in der alle Operanden und Operationen aus maximal einem einzigen Buchstaben (oder KlammerAffen), gefolgt von diversen Ziffern bestehen.
Das ist eine Notation für extrem Schreibfaule. Durchaus praktisch, aber alles andere als "zeitgemäss" und mehr als gewöhnungsbedürftig.
Nun ja. Versuche, dem G-Code ein neueres Gewand überzuziehen, gibt es schon länger. CL800 u.s.w..
Aber, ich denke, wir sind uns darüber im Klaren, dass in diesem Thread mit G-Code nicht so sehr eine bestimmte ProgrammierSprache gemeint ist, sondern eher die GedankenWelt der CNC-Programmierung.
Wir beschichten Teile im Durchlauf. ... Sprühpistolen ... Bewegen der Pistolen gibt es Hubwagen, die die Auf- und Abbewegung steuern und Verschiebewagen, die die Pistole zum Teil hin oder von ihm weg bewegen.
Gewisse Ähnlichkeiten mit dem Auftragen von Material per 3-D-Druck sind sicherlich gegeben bzw. erkennbar.
Gewisse Unterschiede aber wohl genauso. Ob der FunktionsUmfang heutiger CNCs bereits alle Wünsche beim Beschichten erfüllen kann, weiss ich nicht. Ich könnte mir aber sehr gut vorstellen, dass der eine oder andere Hersteller von CNCs hier aktiv wird oder schon geworden ist. Wer SpezialVersionen für Fräs- oder Dreh- oder Schleif-Maschinen anbieten kann, kann sicherlich auch eine Version z.B. für Lackieren noch hinzufügen.
Die Idee ist nun, dass das Teil, wie oben beschrieben, erkannt wird, und daraus mit einem externen Programm "G-Code" erzeugt wird. Dieses File wird dann in unsere NC geladen und ausgeführt.
Einen Generator für G-Code habe ich selbst schon programmiert (in G-Code!). Nichts ist unmöglich. Kann man machen.
Das heisst, diesbezüglich müssen wir in der PLC fast nichts mehr programmieren.
Die PLC einer CNC-Maschine beinhaltet eigentlich das BetriebsSystem der CNC-Maschine, sofern nicht CNC-interne Angelegenheiten betroffen sind. Der Hersteller der CNC-Maschine passt damit die CNC an die Maschine an.
Für den Anwender der CNC-Maschine gibt's in der PLC (normalerweise) nix zu programmieren, für den Hersteller der Maschine sehr wohl.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Was meinst Du genau mit "die komplette Kinematik und Steuerung" selbst entwickelt?
Na ja, die Anlage war ein Pototyp, die Achsen nicht XYZ und nicht Delta, kein H oder ähnlich. Also musste die Berechnung der Motordaten zu XYZ Daten selber gemacht werden. Ich meine da wurde LinuxCNC (EMC²) für missbraucht. Dazu war halt auch nötig den G-Code zu erzeugen... auch das wurde selber entwickelt... Aber einmal gestartet wurde da das Programm abgespult und fertig. Man kann den G-Gode aber auch Stoppen und wieder starten. Problem kann es halt da mit den Referenzen geben. Aber ihr könnt das ganze ja im Modell testen, gibt ja etliches an Möglichkeiten seit die 3D Drucker auf dem markt sind. GRBL oder eben LinuxCNC...
 
Ob eine Maschine G-Code versteht ist das eine, das andere ist aber wie bzw. wo der G-Code erzeugt wird.
Klar wird er bei CNC-Anlagen und 3D-Druck verwendet. Aber kaum ein Mensch schreibt heute noch wirkliche G-Code-Programme.
Du erstellst das Teil in einem CAD-Programm und dann geht es in CAD-CAM-Programm oder beim 3D-Druck in einen Slicer.
Dort wird dann automatisch der G-Code für die entsprechende Maschine aus den CAD-Daten erzeugt.
Wenn es nur um verschiedene Teile geht, dann erfüllt CSV oder JSON genauso den Zweck.
 
Ich versteh die Diskussion ehrlich gesagt nicht .
Ein NC Programm in G-Code , kann man doch nicht mit einem SPS Programm vergleichen.
der G-Code wird von der NC übersetzt und gibt das was er so gefunden hat an Antrieb und die SPS weiter .

der G -Code für NC ist genormt DIN66025 oder so . G01 X 100 F500 sollte jede NC verstehen.
und es gibt auch Anwender die den ganzen Tag an einer CNC Fräse / Drehe stehen und G-Code Programme erstellen.
Komplexe Bauteile werden dann im CAD / CAM gemacht , aber ich dürfte auch schon NC Programmierer kennenlernen die Achsvektoren mal so eben im Kopf nachgerechnet haben


@Markus sollten es noch mal zu 'nem Treffen in Ostrach kommen halte ich freiwillig einen Vortag CNC versus TCPU .-)
 
Dann wäre es also z. Bsp. möglich, eine Regelung für ein inverses Pendel mit G-Code zu machen?
Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

einfach mal versuchen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kann mir eigentlich nicht vorstellen, dass heutzutage jemand eine ProgrammierSprache erfinden würde, in der alle Operanden und Operationen aus maximal einem einzigen Buchstaben (oder KlammerAffen), gefolgt von diversen Ziffern bestehen.

Ist halt die IT-Steinzeit. Der gleiche Grund warum beim ZX81 die Basic Anweisungen nicht über Text sondern über Tastenkombinationen eingegeben wurden. Das benötigt ein "GOSUB" eben nur ein Byte anstatt 5, außerdem braucht man für den Interpreter keinen Tokenizer mehr. Bei 1kByte RAM musste man schon sparsam sein.
 
Wir beschichten Teile im Durchlauf. Bei einer Erkennung wird ein zu beschichtendes Teil mit Hilfe von Lichtleisten oder eines 3D-Scanners erkannt, per Taktabbild verfolgt und wenn es dann bei unseren Sprühpistolen angekommen ist, gemäss der erkannten Form "besprüht"

Bei uns im Betrieb wird auch per kontinuierlichem Vorschub ein oder mehrere Werkstücke nebeneinander im Einlauf vermessen und im Durchlauf von oben mit Lack besprüht.

Das hat aber mit G-Code überhaupt nichts am Hut.

Man taktet die vermessene Kontur z.B. als Bitfolge alle 10mm durch die Maschine. Taktung basierend per Drehgeber am Vorschub.
Bei unseren Anlagen verfährt ein Shuttle konstant immer von links nach rechts und zurück. Dabei wird bei erkanntem Material + "Überspritzen" die jeweiligen Pistolen geöffnet (bei uns 4 Stück je Shuttle).
Wenn man den Weg + Geschwindigkeit nicht immer konstant lässt, holt einen die Anwendungstechnik wieder ein. Das heißt, wenn der Shuttle nicht von fixem Ende zum andern Ende fährt ändert sich die Auftragsmenge je Fläche. Dann muss man im laufenden Prozess ziemlich viel rechnen und dann ist überhaupt nichts mehr "müssen wir in der PLC fast nichts mehr programmieren".
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das ist ja nur oben drüber gestülpt für die klickibunti Generation , am ende kommt G- Code raus
Wenn man G-Code kennt, dann schadet das nicht.
Beim Drehen sind die G-Code Programme ja auch noch recht einfach und nachvollziehbar.
Aber beim Fräsen sieht es schon wieder ganz anders aus.
Also ich empfinde da Klickibunti schon als riesen Fortschritt
 
So abwegig finde ich die Idee nicht, also eine Spritzpistole im Raum mittels g-code zu Bewegen. Ich kenne mich mit "Industrie Robotern" zu wenig aus, aber werden die nicht auch mit einer art G-Code bewegt.

Wenn ich die Anwendung richtig verstanden habe, ist das ein zwei Achsen System. Die dritte "Achse" scheint aber der Förderprozeß der Anlage zu sein. Ob das so dann noch alles Sinn macht und einfacher ist zu synchronisieren. Geht aber auch da man ja auch Spindel Synchron Gewinde schneiden kann...

Ob dann aber etwas von dem übrigbleibt, was wir als G-Code kennen? G-Code hat für mich den unverkennbaren Duft der Programmierung per LochStreifen.
Ich kann mir eigentlich nicht vorstellen, dass heutzutage jemand eine ProgrammierSprache erfinden würde, in der alle Operanden und Operationen aus maximal einem einzigen Buchstaben (oder KlammerAffen), gefolgt von diversen Ziffern bestehen.
Wieso nicht? Ist doch nett das man etwas im Raum mittels für den Menschen Recht verständlichen Code über Raum Koordinaten bewegen kann, und die Kinematik dahinter egal ist. Aber ja, etwas charme von Lochstreifen hat es...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So abwegig finde ich die Idee nicht, also eine Spritzpistole im Raum mittels g-code zu Bewegen. Ich kenne mich mit "Industrie Robotern" zu wenig aus, aber werden die nicht auch mit einer art G-Code bewegt.

Wenn ich die Anwendung richtig verstanden habe, ist das ein zwei Achsen System. Die dritte "Achse" scheint aber der Förderprozeß der Anlage zu sein. Ob das so dann noch alles Sinn macht und einfacher ist zu synchronisieren. Geht aber auch da man ja auch Spindel Synchron Gewinde schneiden kann...


Wieso nicht? Ist doch nett das man etwas im Raum mittels für den Menschen Recht verständlichen Code über Raum Koordinaten bewegen kann, und die Kinematik dahinter egal ist. Aber ja, etwas charme von Lochstreifen hat es...
Machbar ist viel :)
Du kannst eine fertige CNC-Steuerung nehmen und dann hast du bei den meisten die Möglichkeit G-Code zu verwenden.
Willst du aber G-Code auf ner normalen SPS mit ein einigen NC-Achsen verwenden, dann musst du dir erstmal nen G-CodeInterpreder bauen.
Ist machbar ... Aber wozu?
Wo liegt der Vorteil zur Lösung mit Rezepten?
Charme hin oder her
 
@Ralle
Ok, und was empfiehlst Du uns? Es mit G-Code zu machen, oder nicht? Und falls nicht, wieso nicht?
Also, wenn du ein Werkstück vermessen willst und dann danach die Kontur abfahren, dann wäre G-Code im Falle einer S7-1500T wahrscheinlich nicht unbedingt nötig, sondern dann kann man die Ergebnisse des Scans gleich in die Daten für die Kinematikbewegung umsetzten. Damit kann man Geraden, Kreise, Kreissegmente usw. abfahren. Der Umsetzer vom Scannen zu Geraden, Kreissegmenten, Geschwindigkiten etc., wird dabei ganz sicher die größte Herausforderung. Schau dir die von mir o.g. genannten Bibliotheken an oder macht einen Termin über euren Siemens-Dealer, die können euch das zeigen und vorführen. Wir haben mit einer Kinematik eine feste Klebekontur abgefahren, das geht sicher auch variabel.
 
Die Diskussion geht hier doch in die falsche Richtung.
Die frage ist doch nicht mach in das mit G-Code oder SPS .
Es geht doch um , kann einen T-CPU das verlangte leisten , muß ich dann in der SPS noch rum rechnen wie irre ,
oder kann ich das mit einer einfachen CNC erledigen die auch noch ne 1500 im Bauch hat.z.B (NCU 1720)
 
Zurück
Oben