Hi,


für den ersten Versuch liefert die Maschine schon ganz zufriedenstellende Resultate. Das Proggi zum gravieren hat ca. 8000 Zeilen NC-Code der via DNC eingespielt wird.

Dabei ergaben sich ein paar Probleme/Herausforderungen:
Nach ca. 10 Zeilen Kode lief der Stack über.
Die Datenübertragung haperte nach etwa 100 Zeilen und lief nicht mehr weiter.
Die Achsen verfahren nicht exact syncron.
Nach der Abarbeitung eines kürzeren NC-Programms war das UI eingefroren.
Daraufhin hab ich die Logikpfade des Kodes noch einmal genauer unter die Lupe genommen um die Zeitlichen Abfolgen besser abschätzen zu können.
Dabei fiel mir auf dass zwei Strukturen, die aktuelle Zustände des NC-Dispatchers und der seriellen Nachladelogik halten, nicht "volatile" deklariert waren. Das muss natürlich so deklariert werden, da bei DNC Nachladebetrieb massiv parallel gearbeitet wird. Es werden gleichzeitig Daten in den seriellen Puffer geladen, die ASCII Daten werden dann Geparst und in interne strukturen überführt und danach abgearbeitet.
Um mehr SRAM frei zu bekommen habe ich dann noch eine Optimaliserungsrunde auf den Kode losgelassen und ca 250 Byte SRAM Speicher eingespart durch auslagern aller Textkonstanten ins FLASH.
Der NC-Dispatcher syncronisiert die Achsen noch nicht tollerierbar genau miteinender da noch keine Endlagenkontrolle vorgesehen war.

Der Erfolg der Oprtimalisierung ist jetzt:
Bis auf die Fehler beim Anzeigen auf dem Terminal geht die Chose jetzt ganz ordentlich, kein Hängen mehr, kein Stack überlauf mehr.

Bei der Gravur liefen alle 8000 Zeilen ohne weitere Probleme durch.


Gruss,

Olli