Hallo,
ich benötige Eure Hilfe:
ich habe einen alten ABB Roboter mit S4C+ Steuerung, den ich zu einem 3D-Drucker umgebaut habe.
Ich habe aktuell das Problem, dass ich nur kleine Programme mit max. 3.000 Zeilen laden kann.
Bis vor Kurzem konnte ich aber noch Programme mit bis zu 10.000 Zeilen laden. In der Zwischenzeit habe ich keine Änderungen an der Steuerung vorgenommen, daher vermute ich, dass der RAM-Speicher irgendwie halb kaputt gegangen ist oder ich aus Versehen Programmspeicher dauerhaft belegt habe (wenn das überhaupt geht).
Beim Laden größerer Programme bekomme ich die Fehlermeldung:
"Fehler 40701 Programmspeicher voll
Die Task hat nur 1010280 freie Bytes im Anwenderspeicher
Einige Module entfernen und erneut versuchen."
Wenn ich unter Service/ System Infos/ Programm Resourcen gucke, steht dort:
Gesamter Programmspeicher: 6030kB
verfügbarer Programmspeicher 986kB
Ich kann aber ein Testprogramm mit nur 772kB (mit ca 5000 Zeilen) schon nicht mehr laden.
Ich habe auch schon die RAM-Speicherkarte ausgetauscht gegen eine andere...keine Änderung.
Ich habe die Speicherkarte auf einen anderen Steckplatz gesteckt...auch keine Änderung.
Meine Frage:
1.) Was kann die Ursache sein? Wenn es (anscheinend) nicht der RAM-Speicher ist, könnte irgendetwas auf dem Motherboard kaputt sein?
2.) Kann ich Softwareseitig irgendwas verändert haben, so dass plötzlich weniger Speicher für Anwenderdaten zur Verfügung steht?
3.) Kann ich irgendwie noch mehr RAM-Speicherplatz für meinen Programmspeicher freigeben?
4.) Im Handbuch steht, der RAM-Speicher wird fürs Betriebssystem und Anwenderdaten verwendet, wobei Anwenderdaten ca 5,5MB groß sein können. Passt ja ganz gut mit der Angabe meiner Steuerung "Gesamter Programmspeicher: 6030kB". Aber warum ist der nicht voll verfügbar? Wodurch kann der noch belegt werden?
4.) Kann ich grundsätzlich noch mehr RAM-Speicher einbauen als nur die eine Speicherkarte (es sind ja 3 Steckplätze vorhanden) oder kann die Steuerung das nicht verarbeiten? Im Handbuch steht, dass der "DRAM" 32MB hat. Ich habe eine 64MB Speicherkarte verbaut, wird davon schon nur die Hälfte genutzt und mehr geht nicht?
5.) Noch ein anderer Gedanke: Ich arbeite viel mit load/ unload von Programmmodulen. Ich habe öfter mal Programme abgebrochen bevor Sie sauber zu Ende gelaufen sind. Dadurch kann es durchaus sein, dass ein Programmmodul zwar geladen wurde, aber nicht sauber entladen wurde (mit unload). Bleiben diese Programmmodule vielleicht im RAM-Speicher und werden beim nächsten Anschalten des Roboters auch wieder dort hineingeladen (beim Anschalten werden ja immer die letzten Programmdateien wieder geladen), obwohl sie nicht mehr benötigt werden? Und kann ich mir dadurch meinen RAM-Speicher vollmüllen? Und falls ja, gibt es eine Möglichkeit, alle Module im RAM-Speicher zu löschen? Entweder über einen Befehl RAM-Speicher löschen oder über den UNLOAD-Befehl mit Unload alles (ich weiß natürlich nicht mehr die genauen Dateinamen der eventuell noch vorhandenen Module)?
Oder ist dafür einfach der P-Start gedacht? Die Doku sagt: "After restart the system’s state will be resumed except for manually loaded programs and modules. Static and semistatic tasks are started from the beginning, not from the state they had when the system was stopped.
Modules will be installed and loaded in accordance with the set configuration. System parameters will not be affected."
Ich hab den P-Start noch nicht ausprobiert, da ich vorher lieber noch eine Sicherheitskopie der Festplatte/ Flashdisk machen wollte. Wenn ich irgendwas falsch lösche und alles neu aufsetzen muss, wird das bestimmt viel Arbeit. Oder ist der P-Start harmlos und ich kann das einfach mal ausprobieren?
Für Eure Hilfe wäre ich sehr dankbar. Schon die urspünglichen maximal 10.000 Zeilen sind für 3D-Druck sehr wenig und ich arbeite viel mit load/ unload, das Geesamtprogramm ist schnell mal 100.000 Zeilen lang.
Mit nur 3.000 ZEilen wird es nicht besser...
Gruß und Danke,
Ascan