CNC Projekt

Als ich meine Teststücke gefräst habe, ist mir aufgefallen, das die Servomotoren sporadisch langsammer wurden, obwohl sie keinen Grund dazu hatten. Vorgestern habe ich Tests gemacht, und hatte Schwierigkeiten den Fehler kontrolliert zu reproduzieren.
Sobald ich Logfiles erstellt habe, trat der Fehler nicht mehr auf. Kaum war das Logfile zuende (größenbedingt) hatte ich das Problem wieder.
In meiner Not habe ich dann Logfiles erstellt, nachdem der Fehler aufgetreten war. Zusammen mit Basti, haben wir versucht aus den Files schlüssig zu werden. Wir hatten einen Ansatz, aber keine Codefehler entdeckt. Basti hat daraufhin Änderungen im Microkontrollerprogramm (Firmware) vorgenommen, und mehrere Sicherheitssperren eingebaut. Gestern dann mit der neuen Firmware, gelang mir das Logging im Fehlerfall. Das Fehlerbild hatte sich geändert. Nun wurden die Servos nicht langsammer, sondern blieben gleich ganz stehen. Die Logfiles, das heist die Regelwerte der Servos sahen ganz normal aus, und nichts deutete auf eine Fehlfunktion hin. Lediglich der „Du bist OK, mach Weiter“ Zustand wurde nicht weiterverarbeitet.
Masseproblem? Hardwarefehler? Alles nur das nicht, jetzt wo alles Fertig ist.
Basti vermutete zu diesem Zeitpunkt schon, das es daran liegen könnte, das der Microcontroller zu vollgestopft ist.
Am Abend entschlackte er das Programm, nahm Komponenten heraus, die vorgesehen waren, aber nicht genutzt wurden, und schrieb Teile des Programms nochmal um. Ich habe Abends noch das Tool zum erstellen der Logfiles geändert, um die Daten Störungsfreier auf die Festplatte zu streamen.
Heute dann die neue Firmware draufgespielt, kurzes zittern meinerseits. „Es müsste alles gehen!“ Hat er gesagt. Die Funktionen liefen alle. Nach dem Prüfen der Strom und Regelwerte, bin ich dann gleich zu den Tests übergegangen.
2,5 Stunden Achsen durchfahren, ohne jegliche Fehler. Anscheinend war es tatsächlich ein Stack oder Speicherproblem. Ich bin sehr zufrieden.
Die meisten würden es so lassen. Da ich aber nicht „die meisten“ bin, wird nun noch eine kleine Feinabstimmung in der Regelung vorgenommen. Testen werde ich diese morgen. Da die Änderung allerdings Basti gemacht hat, bin ich zuversichtlich, das alles wunderbar klappt.
Desweiteren habe ich die Kernkomponente zur Kommunikation mit der Steuerung neu programmiert.
Es ist nun möglich darüber die Verfahrgeschwindikeit vorzugeben. Desweiteren kann ich die Latenz zur Steuerung ermitteln, und mit einbeziehen. Error Timings für die Kommunikation sind auch enthalten. Als nächstes Programmiere ich die FiFo Komponente die darauf aufsetzt.

Gruß Steffen

Schreibe einen Kommentar