Grundlagen mach4 (und Abgrenzung zu mach3)

Steuerungssoftware, CAM, 2D/3D CAD, G-Code Editoren
Antworten
django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Grundlagen mach4 (und Abgrenzung zu mach3)

Beitrag von django013 » 05.04.2018, 09:56

Moin moin,

motiviert durch diesen Fred möchte ich den Aufbau von mach4 erläutern. Denn nicht alles, was bei der Verwendung von mach4 schief gehen kann, liegt auch an artsoft.

Deshalb sollte man sich mit dem Aufbau und der Funktionsweise von mach4 vertraut machen, bevor man mach4 als fehlerhaft bezeichnet (nicht dass mach4 fehlerfrei wäre, aber das ist eine andere Geschichte).

Auch wenn mach3 und mach4 das Anwendungskonzept teilen, ist der Unterschied zwischen mach3 und mach4 ungefär so, als würde man einen Golf GTI erster Generation mit einem aktuellen Maserati vergleichen. Beides sind Autos und beide werden von einem Verbrennungsmotor angetrieben. Schaut man genauer hin, werden sich kaum Ähnlichkeiten zeigen.
mach3 und mach4 sind beides CNC-Steuerungen und beide erlaube es dem Anwender, sich seine eigene Oberfläche zu erstellen (meiner Ansicht nach der Punkt, der die Anwendungen so attraktiv macht).
mach3 verwendet einen Basic-Dialekt für Benutzer-Erweiterungen, während mach4 auf lua setzt.
mach3 benötigt eine separate Anwendung, um eine Oberfläche zu bearbeiten. Bester (so rein subjektiv) Screen-Designer ist MachScreen von Klaus Dietz - und das ist (meiner Ansicht nach) der einzige Vorteil von mach3: Klaus Dietz ist ein sehr hilfsbereiter Mensch, der auch schnell in der Fehlerbehebung ist. Wenn man ihm also einen Fehler meldet, dauert es nicht lange, bis der behoben ist.
Das sieht bei mach4 leider ganz anders aus.

Bei mach4 ist der screen-Designer Teil der Anwendung. Kommt also von artsoft.
So wie es sich mir darstellt, wird die Entwicklung von mach4 durch industrielle Kunden voran getrieben. Das Produkt für die Hobbyanwender ist mehr oder weniger ein Abfallprodukt der Industrievariante. Industrielle Kunden setzen sich nicht hin und ändern sich selbst die Oberfläche. Dort heißt es dann, so soll die Oberfläche für uns aussehen, was kostet uns das?
Damit ist die Motivation für artsoft, Fehler im Screen-Designer zu beheben klein bis eben nicht vorhanden. Auch wenn sie noch so oft beteuern, dass ihnen die Hobbykunden wichtig sind. Die Realität spricht eine andere Sprache.
Trotzdem halte ich mach4 für ein phantastisches Produkt!
Und was meiner Ansicht nach die Waagschale völlig zu Gunsten von mach4 kippt: bei mach3 gibt es viele "Vielleicht"-Funktionen, was bedeutet, dass ein Knopf mal funktionieren kann und ein anderes Mal eben nicht funktioniert.
Sowas gibt es bei mach4 nicht. Die Anwendung ist zuverlässig. Ein Fehler ist reproduzierbar und etwas was funktioniert, funktioniert immer.

Bei der Installation gibt es nicht viele Anpassungsmöglichkeiten. Einfach alles installieren und nachher aussieben, bzw. aufräumen.

Unter dem Verzeichnis "Mach4Hobby" gibt es div. Unterverzeichnisse.
Das wichtigste ist das Verzeichnis "Profiles" - denn das Profil ist Aufrufparameter für mach4.
Unter Profiles/<Profilbezeichnung> werden die Anwendungseinstellungen gespeichert.
In "FixtureTables" liegen die Werte für die div. Koordinatensysteme (G54 und Co).
Unter "Macros" können M## Befehlen eigene Makros zugeordnet werden, wie z.B. M6 für einen Wechsler ...
In "ToolLife" werden Einsatzzeiten der Werkzeuge verwaltet (nicht in der Hobby-Variante verfügbar).
In "ToolTables" liegt die Liste der Werkzeuge (sollte nicht direkt bearbeitet werden. mach4 bietet eine Oberfläche zur Verwaltung der Werkzeuge an).
Im Profil-Verzeichnis gibt es eine Datei "Machine.ini". Auch diese Datei sollte als nicht-editierbar angesehen werden. Sie enthält Einstellungen für mach4 und wird beim Start gelesen und beim Beenden geschrieben.
Als reine Textdatei kann sie aber problemlos gelesen werden.
Die ersten beiden Zeilen sind die wichtigsten:

Code: Alles auswählen

Profile=Mach4_fuer_mich
Screen=meinScreen01.set
Die Screen-Datei findet man unter "Mach4Hobby/Screens/<Datei>".

Die Screen-Datei ist ein Zip-Archiv, bei dem die Endung "zip" gegen "set" getauscht wurde. Sie kann also mit jedem Werkzeug für Zip-Archive angeschaut werden.
Der Aufbau ist einfach: es gibt eine Datei "screen.xml" und ein Verzeichnis "images". In images liegen alle Bilder, die in der Oberfläche verwendet werden und screen.xml ist eine Textdatei, die mit gängigen XML-Editoren angeschaut werden kann.
mach4 kann in den Screen-Designer-Modus wechseln und schreibt dann diese Screen-Datei.

Schließlich ist noch das Verzeichnis "Mach4Hobby/Lang" interessant. Hier liegen die übersetzten Texte nach dem gettext-Standard. Unter "Mach4Hobby/Lang/de" finden sich die deutschen Texte. Wer also irgendwelche Texte ändern will, sollte hier schauen. Dateien mit der Endung "po" sind die editierbaren Texte, die Dateien mit Endung "mo" sind die komprimierten Übersetzungen, die mach4 verwendet.
Leider ist die Verwendung von gettext in mach4 nicht einheitlich und so kommt es vor, dass viele Texte direkt in der screen.xml Datei stehen, oder direkt in Makros fest einprogrammiert sind.

Was also ist mach4?
mach4 ist eine kleine unsichtbare Anwendung, welche eine Oberfläche erzeugen und mit Funktion belegen kann.
Hauptfunktionalität ist die Abarbeitung von GCode-Dateien, wie sie beispielsweise von einem CAM erzeugt werden.
GCode kann aus Bewegungsbefehlen und Konfigurationsbefehlen bestehen. Erstere bewegen das Werkzeug, letztere verändern die Einstellung der Maschine.
Viele Funktionen verändern den Maschinenstatus und viele Funktionen hängen vom Maschinenstatus ab, was bedeutet, dass sie nur in einem speziellen Maschinenstatus funktionieren.

Um aus Bewegungsbefehlen (und ggf. aus Konfigurationsbefehlen) die elektrischen Impulse zu erzeugen, die letztlich die Motoren bewegen (oder auch Relais schalten), benutzt mach4 andere, die die (Schritt-)Signale erzeugen. Die Schnittstelle dazu nennt sich Plugin.

Im einfachsten Falle wird das Plugin für die parallele Schnittstelle verwendet. Bei diesem Plugin läuft die Schritterzeugung im PC ab. Die parallele Schnittstelle ist nur mäßig schnell, weshalb mit diesem Plugin keine Höchstleistungen möglich sind.
Alle anderen Plugins erfordern zusätzliche Hardware, die über USB oder Ethernet angesteuert wird. Bei diesen Varianten wird die Schritterzeugung an die externe Hardware ausgelagert. Um den Vorteil der externen Hardware auszureizen, wird zu der Steuerungshardware nur die Bahninformation (des Werkzeug-Verfahrweges) übermittelt. Die Steuerungshardware erzeugt aus den Bahninformationen dann die Motorimpulse.

Dieser Verarbeitungsweg zeigt auch das Problem mit günstiger Steuerungshardware, wie z.B. dem ESS:
da mach4 nur ganze Bahnen an die Steuerung übermittelt, kann während der Abarbeitung der Bahn keine Beeinflussung durch mach4 erfolgen. Das bedeutet, dass Geschwindigkeitsregler, die an mach4 angeschlossen sind, die Bahn nicht während der Fahrt beeinflussen können.
Die Geschwindigkeitsregelung während der Fahrt funktioniert nur bei Steuerungen, die einen Eingang für die Geschwindigkeitsregler haben und diese selbst auswerten. ESS hat nur eine digitale Schnittstelle, kann dies also nicht bieten. Die meisten Steuerungen für's Hobbybudget können dies nicht.
Zu Pokeys gibt es widersprüchliche Aussagen, weshalb ich hier keine definitive Aussage machen kann.

Laut artsoft-Entwickler gibt es Steuerungen von Galil und Vital Systems, die Geschwindigkeitsregulierung während der Bewegung erlauben. Bei Galil muss man wohl den Kontroller noch selbst programmieren, um diese Funktionalität zu erreichen.
Wie auch immer - beide Varianten liegen preislich deutlich im 4stelligen Bereich - meiner Ansicht nach damit außerhalb eines üblichen Hobbybudgets.

interner Aufbau:
mach4 ist eine multithread-Anwendung, was bedeutet, dass die Anwendung aus mehreren Teilen besteht, die kwasi gleichzeitig laufen. Das hat natürlich Auswirkung auf die Makroprogrammierung.
Unter "Mach4Hobby/Modules" liegen Anwendungsteile/Bibliotheken, die von mach4 verwendet werden. So eine Bibliothek kann viele unabhängige Funktionen enthalten und es ist nicht vorhersehbar, in welchem Thread die Funktion mal zur Anwendung kommt. Wenn also Daten zwischen Funktionen ausgetauscht werden sollen, müssen die zentral abgelegt werden. mach4 bietet dazu Funktionen an (siehe Programmierhandbuch). Wenn man dran denkt, dann klappt es auch mit dem Nachbar :)

Schauen wir mal etwas genauer in die Datei screen.xml:
Anfangs kommen einige Property-Einträge:
"Refresh Interval" bezieht sich auf die Oberfläche und "PLC Interval" auf die interne Verarbeitung von Signalen. Die Einheit ist Millisekunde, d.h. nach Vorgabe laufen die Teile alle 50 Millisekunden einmal.
Schnellste Signalverarbeitung ist demnach ein Durchlauf pro Millisekunde - was natürlich bedeutet, dass die Laufzeit des "PLC Script" unter einer Millisekunde liegen muss.
Nach den Property-Einträgen kommen die Event-Einträge. Event heißt Ereignis.
Das erste Ereignis ist das Erzeugen des Bildschirmes Screen Load Script.
Dieses Skript wird beim Start der Anwendung einmalig ausgeführt und zwar im Oberflächen-Thread. Globale Variablen die hier geladen und vorbelegt werden, sind später für die Funktionen der Oberflächen-Elemente verfügbar.

Zweites Ereignis-Skript ist das Zerstören und Entladen des Bildschirmes Screen Unload Script, wird also beim Beenden von mach4 ausgeführt. In diesem Skript können Zustände für den nächsten Anwendungsstart gesichert werden. Benutzt man die Funktionen von mach4 um Register als globale Variable zu verwenden, dann kümmert sich mach4 um das Speichern und Wiederherstellen der Register-Einträge.

Drittes Ereignis-Skript nennt sich PLC Script und dient der Verarbeitung von Signalen. Wie bereits erwähnt wird dieses Skript zyklisch in einem eigenen Thread ausgeführt (Vorgabe: alle 50ms einmal). Globale Variablen aus dem "Screen Load Script" sind verfügbar.

Mit mcPage beginnt die Beschreibung der Oberfläche. Wer sich also über die Nickligkeiten des Screen-Editors grün und blau ärgert, kann auch einen XML-Editor verwenden.
Wer sorgfältig arbeitet, kann dies auch mit einem ganz normalen Editor tun. Ich verwende z.B. vi und habe keine Probleme mit der screen-Datei.

Wer ein Werkzeug hat, welches Zip-Archive bearbeiten kann, kann die screen.set Datei auch damit bearbeiten. Beispielsweise könnte mit solchen Werkzeugen viele Bilder gleichzeitig ins "image"-Verzeichnis kopiert werden oder die screen.xml Datei kann überschrieben werden.

Muss ich erwähnen, dass mach4 für eine geänderte Screen.set Datei neu gestartet werden muss?

Was tun, wenn's nicht läuft wie gewünscht?
Als erstes mal nachdenken - in welche Ecke gehört der Fehler, bzw. wer ist an dieser Stelle verantwortlich?
Hängt es mit der Oberfläche, bzw. einer Benutzeraktion zusammen, wäre die Screen.set Datei die erste Anlaufstelle.
Hängt es mit Signalen zusammen - dann erstmal schauen, wie die Signale aus Sicht von mach4 aussehen (es gibt eine Übersichtsseite mit allen Signalen).
Kommt ein geändertes Signal nicht an der Hardware an, könnte es auch an der Einstellung im Plugin liegen. Also hier mal nach dem Rechten schauen.

Wenn man nichts findet, was weiter helfen könnte, wäre die erste Anlaufstelle das mach4 Support Forum von artsoft. Das ist ein internationales Forum, also Englisch als Sprache.

Alternativ hier eine Anfrage starten. Dabei möglichst nicht mit Schuldzuweisungen starten (mach4 ist fehlerhaft), sondern das Problem so gut wie möglich beschreiben. Dann ist die Motivation zum Helfen auch größer.


Vielleicht hilft dem einem oder anderen mein Gesabbel ja.

Gruß Reinhard

django013
Beiträge: 1706
Registriert: 18.01.2016, 17:12

Re: Grundlagen mach4 (und Abgrenzung zu mach3)

Beitrag von django013 » 05.04.2018, 15:14

Moin moin,

kann den ersten Beitrag nicht mehr ändern, deshalb hier noch eine Ergänzung.

mach4 verwendet wxWindows für die Oberfläche. In der Hobbyversion werden nicht alle Steuerungselemente der Industrievariante unterstützt. Dafür gibt es das Element "LuaPanel". Das ist ein Panel von der lua-Variante von wxWindows. In dem Panel können alle Controls aus wxWindows verwendet werden.
Als ich meine Screens baute, gab es keine Auswahl-Schaltflächen (neudeutsch Radiobuttons). So habe ich mir die Auswahl über lua und wxLua erstellt. Funktioniert einwandfrei.
Im Screeneditor von mach4 ist das LuaPanel nur eine blaue Fläche - es gibt also keine Vorschau wie beim Rest von mach4.
Dafür kann der GUI-Editor wxformbuilder von wxWindows verwendet werden. Der ist ganz schick - man kann sich die Controls mit der Maus zurecht schubsen und der GUI-Editor spukt dann den Lua-Code aus, den man per copy und Paste nach mach4 importieren kann.

Was ich noch nicht geschafft habe, ist, den mediaplayer in einem LuaPanel zum Laufen zu bringen.
Da muss ich wohl nochmal wieder ran. Allerdings erst, wenn ich wieder ne größere Zeitscheibe für mich habe.

Gruß Reinhard

Oli81
Beiträge: 16
Registriert: 06.03.2022, 21:43

Re: Grundlagen mach4 (und Abgrenzung zu mach3)

Beitrag von Oli81 » 06.03.2022, 21:56

Hallo Reinhard

Dein Beitrag hier ist zwar schon „etwas“ älter aber war sehr informativ und hat mir geholfen.

Bist du immer noch mit Mach4 unterwegs?

Gruss
Oli

Olli-CNC
Beiträge: 674
Registriert: 01.01.2018, 12:13

Re: Grundlagen mach4 (und Abgrenzung zu mach3)

Beitrag von Olli-CNC » 06.03.2022, 22:24

Hallo Namensvetter,

Reinhard war das letzte Mal im März 2021 hier aktiv, deshalb glaube ich, dass von ihm keine Antwort kommen wird.

Hast du eine bestimmte Frage zu Mach4 ?


Gruß
Olli

Oli81
Beiträge: 16
Registriert: 06.03.2022, 21:43

Re: Grundlagen mach4 (und Abgrenzung zu mach3)

Beitrag von Oli81 » 07.03.2022, 10:45

Ja Hallo Namensvetter ;)

Na gut dann wird denke ich wirklich nicht mehr viel kommen:)

Fragen zu Mach4, ja da hätte ich einige🙈

Darf ich da dich fragen?

Gruss

Oli

Olli-CNC
Beiträge: 674
Registriert: 01.01.2018, 12:13

Re: Grundlagen mach4 (und Abgrenzung zu mach3)

Beitrag von Olli-CNC » 07.03.2022, 11:01

Ja, leg los ;)

Oli81
Beiträge: 16
Registriert: 06.03.2022, 21:43

Re: Grundlagen mach4 (und Abgrenzung zu mach3)

Beitrag von Oli81 » 07.03.2022, 14:49

Hallo Olli

Na gut. 😊

Ich arbeite schon seit paar Jahren mit Mach3 und war eigentlich immer sehr zufrieden, viel selbst gemacht und klar Mach3 hatte Fehler, doch das war zu handeln. Alle meine Maschinen, die ich gebaut habe und bei mir laufen, liefen bis jetzt mit ESS und Mach3. Das einzige was mich immer störte war, dass es nicht «wirklich» so zuverlässig ist wie ich es mir gewünscht hätte. Durch auch noch verschiedene andere Gründe wollte ich umsteigen auf Mach4 da es einiges mehr bietet und auch im Punkto Zuverlässigkeit besser ist.

Habe mir die Hobby Lizenz gekauft und mal losgelegt mit Einstelle und alles konfigurieren. Hat Spass gemacht und muss sagen, ich finde den Aufbau viel besser als bei Mach3 und ist auch großartig, dass es ganz anders ist und man merkt, dass nur ganz wenige Dinge gleich sind wie in Mach3.

Konnte auch alles einstellen, dass Spindel Motoren Sensoren alles läuft und soweit alles klar ist.

Ich habe halt bei Dingen die ich baue und damit arbeite immer gerne wenn ich verstehe wie es aufgebaut ist und wie es funktioniert, daher auch kein grosser Fan von einfach schreiben «ja habe folgendes Problem bitte helfen» und dann einfach copy paste was machen aber keine Ahnung haben was das nun genau macht.

Habe daher auch nun angefangen Lua zu lernen, damit ich selber Dinge machen kann und auf meiner kleinen «Experimentierfräse» auf dem Tisch testen kann ob das auch so funktioniert wie ich das will 😊

So, sorry für den kurzen Ausflug und nun zu meinen Fragen.

Eine Frage habe ich bezüglich der Speicherung der Maschinenkoordinaten. Ich habe wo gelesen, dass es so ein wirte out file gibt, dass steuert was nach dem Runterfahren von Mach4 gespeichert wird. Mir ist einfach aufgefallen, dass wohl die Arbeitskoordinaten gespeichert werden und beim Neustart wieder da sind, nicht aber die Maschinenkoordinaten. Bei Mach3 blieb immer beides gespeichert. Ist das durch dieses File zu lösen was ich oben erwähnt habe oder gibt es da eine andere Lösung?

Dann noch eine Frage zum Motortuning, auf 2 meiner Fräsen habe ich für die Y-Achse 2 Motoren mit Zahnriemen gekoppelt und habe dann im Motortuning die steps/unit so angegeben, wie ich diese kenne. Beim Joggen ist mir dann sofort aufgefallen, dass die Geschwindigkeit der Y-Achse doppelt so schnell ist wie die der X und Z, obwohl alles die gleichen Motoren sind. Ich habe dann die steps/unit bei der Y-Achse um die Hälfte reduziert und nun laufen sie richtig im Joggen so wie auch bei der Messung in der Kalibration der Verfahrwege. Ich habe in den Einstellungen einfach die A Achse als Slave Motor genommen für Y und meine einzige Erklärung dafür war, dass Mach4, da ich 2 Motoren angegeben habe, die doppelte Anzahl steps/unit ausgibt. Keine Ahnung ob das richtig ist. Meine Frage daher ist, ist meine Einstellung einfach die steps/unit zu halbieren richtig oder habe ich da wo ein Denkfehler drin?

Dann habe ich noch eine Frage zu den Makros. Ich wollte mir eigentlich anschauen wie das M6 Makro gemacht ist, da ich ein Video von Mach4 gesehen habe, mit einem einfach M6 Makro. Das hier:
https://www.youtube.com/watch?v=6-4JkDv9AgM
nun ich dachte, dass ist super auch um anzufangen Lua zu lernen und damit zu experimentieren.
Und M6 brauche ich sowieso dauernd, daher wollte ich das auch zuerst angehen. Ist es so, dass wenn ich ein neues Profil erstelle, der Ordner Makros bis au ein Lua Makro leer ist? Also muss man sich sämtliche Makros selbst schreiben? Also wäre kein Problem, wollte es nur wissen.:)



Dann habe ich noch eine Frage zu einem Problem, dass ich noch nicht ganz verstehe. Ich war begeistert, als ich die Probing Seite gesehen habe und freute mich, dass die ganzen Probearten, welche ich auch in Mach3 hatte, vorhanden sind plus noch mehr. Da ich viel mit mehrere Aufspannungen arbeite sind die für mich sehr wichtig. Ich habe mir dann auch die Videos von Mach4 zur Kalibrierung angeschaut, dass mit der XY und zirkularen Kalibrierung des Tasters und versucht das auch so zu machen.
Nun ja, so wie im Video ging das bei mir nicht. Habe in den Settings alles so eingestellt wie verlangt, meine Wireless 3D Probe angeschlossen, alles auf dem Diagnostic Screen auf Funktion geprüft, XY in der Mitte der Bohrung auf 0 gestellt und wollte loslegen. Naja 😊 Bei mir passiert Folgendes: egal ob XY oder Kreis Kalibrierung, ich klicke Start, die Z Achse fährt kurz bisschen hoch, dann langsam so 4-5 mm runter (Setting 5mm) bleibt stehe und die Meldung Error: No contact with probe popt auf. Egal was ich mache, ist immer dasselbe. Die Z Probe Kalibration funktioniert jedoch tip top.
Was genau im Verlauf steht ist folgendes:
ESS starting Probe 0
ESS Failure! Probe0 never hi tot he allowed distance was traveled. Switching from PROBING to NORMAL state.
Error: No contact with probe

Ich dachte eigentlich so vom Lesen her und Video schauen, dass das von Anfang an laufen sollte.
Ist das in dem Fall nicht so, oder mache ich ein Fehler?

O Gott gerade selbst gemerkt wie lange der Text ist🙈, hoffe ist nicht zu viel.

Eventuell kannst du mir bei ein oder anderem ein Tipp geben.

LG

Oli

Olli-CNC
Beiträge: 674
Registriert: 01.01.2018, 12:13

Re: Grundlagen mach4 (und Abgrenzung zu mach3)

Beitrag von Olli-CNC » 08.03.2022, 09:33

Hallo Oli,
zu der Speicherung der Maschinenkoordinaten und den 2 Motoren für eine Achse kann ich dir leider nichts sagen, brauchte ich bisher nicht.

Zum M6 und den Macros, ja, musst du selbst erstellen, macht ja auch Sinn weil Maschinenspezifisch.

Zur Probing Seite, damit hatte ich bzw. habe ich stellenweise immer noch so meine Probleme.
Um Z anzutasten musst du auf jeden Fall im PLUS stehen, sonst gibt das nichts, dann kommt genau deine beschriebene Fehlermeldung.
Wichtig ist auch, zum antasten, dass für den Taster die richtige Länge in der Werkzeugtabelle eingetragen ist und diese auch mit G43 Hxx aufgerufen wird, sonst wird das nicht verrechnet.
Wenn du einen Kreis antasten möchtest solltest du schon mal grob die Mitte anfahren und dort auch NULLEN,
das gleiche gilt auch wenn man die Mitte von 2 gegenüberliegenden Kanten antasten möchte, oder auch bei einem Eckpunkt.
Mach4 weiß ja erst mal gar nicht wo dein Teil liegt, also muss grob beschrieben werden wo es ist.

Ich hoffe das hilft dir jetzt schon mal ein wenig weiter


Gruß
Olli

Oli81
Beiträge: 16
Registriert: 06.03.2022, 21:43

Re: Grundlagen mach4 (und Abgrenzung zu mach3)

Beitrag von Oli81 » 08.03.2022, 12:21

Hallo Olli

Danke für deine Inputs, werde es probieren.:)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 21 Gäste