TIA Arbeitsspeicherauslastung >90%

DCDCDC

Level-3
Beiträge
3.741
Reaktionspunkte
1.069
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

der Arbeitsspeicher meiner 1217C DC/DC/DC FW 4.6 ist aktuell bei 91%, der Ladespeicher bei 70%.. das bereitet mir ein bisschen Sorgen, da hier wohl noch einiges hinzukommt an Funktionen.

Screenshot 2023-10-26 161110.png

Es gibt noch Funktionen die kann ich aktuell "löschen", weil diese aktuell nicht gebraucht werden, das ist aber denke ich keine dauerhafte Lösung.

Habt ihr Tipps und Tricks wie man mit dem Arbeitsspeicher ressourcenschonender umgehen kann?

Eine größere CPU für das Projekt bekomme ich wohl nicht mehr, müsste ich aber ansprechen..

Danke!
 
effizienter programmieren?
nicht so viel zur Laufzeit berechnen, was schon zur Programmierzeit feststeht. Nur den Code der auch nötig ist, und nicht so viel "Allesmacher-Standard"-Bausteine
Programmteile auf eine zweite kleine CPU auslagern?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab jetzt mal vieles gelöscht was Thema "Komfort" war und was aktuell noch nicht benötigt wird an Funktionalität.

Die Bibliotheksbausteine von ifm verbrauchen richtig viel Speicher. (war fast die Hälfte vom Speicher von FBs).

Wollte viele Daten "schön" und "komfortabel" verwenden, aber dann muss eben an den Stellen wo's gebraucht wird konvertiert werden.

Generell ist das Projekt schon zwei Jahre am laufen, da wird nur noch wenig freigegeben werden.

Falls ich mal bei einem Projekt den Hut fürs Dimensionieren aufhabe, werde ich auch schauen, was größeres zu bekommen :)
 
Dann ist das ja Goldrichtig. Eventuell brauchst Du ja garnicht die supertollen Funktionen aus den ifm- Libs und kannst das effizienter lösen.
Wenn mir ein Hersteller für sein Subsystem die Bausteine zur Verfügung stellt, dann nehme ich diese gerne, bevor ich mir da was eigenes zusammenschustere. Hat eben wie auch alles sonst, Vor- und Nachteile.

Da waren auch tatsächlich keine super Funktionen drin, sondern nur die, welche operativ notwendig sind. (Programmnummerwechsel, Trigger, Ergebnisse auslesen etc.)
 
Ich glaube dass 'ENO automatisch für SCL Bausteine und SCL Netzwerke setzen' kostet relativ viel Code Speicher..
Wenn du den ENO nicht auswertet, dann kannst du es weck lassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Ladespeicher sollte <50% gefüllt sein.
Wenn es bei Änderungen, die mehr als 2-3 Codezeilen ausmachen dazu kommt, dass TIA alles neu laden will, dann muss die CPU in Stop gehen, damit geladen werden kann.
 
Zu wenig Ladespeicher: kann man mit größerer Speicherkarte leicht aufrüsten.
Zu wenig Arbeitsspeicher: kann man nur eine größere CPU einbauen oder Code reduzieren oder auf mehrere CPU verteilen.
 
Ungefähr 140kB für Code auf eine S7-1200, das ist doch ein bisschen viel. Wie ist die Zykluszeit ?
Ist das nur für die E/A in die S7-1200 ? Oder gibt es viele PN Geräte ?
In den letzten Fall wurde ich überlegen die S7-1200 für eine mittelgrosse S7-1500 zu tauschen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zu wenig Ladespeicher: kann man mit größerer Speicherkarte leicht aufrüsten.
Jep. Und 4MByte sind jetzt auch nicht so viel. Da kann man leicht mal in 12MByte investieren. Aber ich gebe zu, dass der Preisunterschied zwischen 4MByte (57,80€) und 12MByte (191,00€) schon beachtlich ist.
 
Ungefähr 140kB für Code auf eine S7-1200, das ist doch ein bisschen viel. Wie ist die Zykluszeit ?
Ist das nur für die E/A in die S7-1200 ? Oder gibt es viele PN Geräte ?
In den letzten Fall wurde ich überlegen die S7-1200 für eine mittelgrosse S7-1500 zu tauschen.
Screenshot 2023-10-27 110300.png

Die Hälfte vom FB-Speicher geht für den MQTT Baustein drauf, die Hälfte vom DB-Speicher für den IDB in dem ich alle anderen übergeordneten FBs aufrufe, habt ihr Erfahrungen damit bei einem DB das Attribut "nur im Ladespeicher" ablegen zu aktivieren?

Die Steuerung hatte bei einer Auslastung >90% eine Zykluszeit von 10-20ms
 
Zuviel Werbung?
-> Hier kostenlos registrieren
habt ihr Erfahrungen damit bei einem DB das Attribut "nur im Ladespeicher" ablegen zu aktivieren?
Das macht nur Sinn für Daten, die man nicht in jedem Zyklus braucht (z.B. Rezepturen oder Archive), und deshalb auslagern kann. Das Lesen aus dem Ladespeicher dauert mehrere bis viele Zyklen.
 
Das macht nur Sinn für Daten, die man nicht in jedem Zyklus braucht (z.B. Rezepturen oder Archive), und deshalb auslagern kann. Das Lesen aus dem Ladespeicher dauert mehrere bis viele Zyklen.
Schade, dann kann ich da meine MQTT Daten nicht hin auslagern, ich hab noch eine "doppelung" drin (serialisieren von ASCII zu UTF8), die kann ich mal rausnehmen. Dann war's das aber auch :D

Danke trotzdem!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hat sich was geändert zwischen das Bild in #1 und das Bild in #14 ?
Das Programmspeicher für FBs ist von 120kB auf 62kB gesunken.
Ist das Problem damit beseitigt ?

edit: Das hier ?
Schade, dann kann ich da meine MQTT Daten nicht hin auslagern, ich hab noch eine "doppelung" drin (serialisieren von ASCII zu UTF8), die kann ich mal rausnehmen. Dann war's das aber auch
 
Die Steuerung hatte bei einer Auslastung >90% eine Zykluszeit von 10-20ms
20ms ist auch ein bisschen hoch. Abtastung von diverse Impulsgeber wäre auf diesen Zykluszeit eventuell problematisch.

Nach die letzte Änderung, wobei den gesammte Arbeitspeicher auslastung von 232kB auf 131kB gesunken ist (von 90% auf 51%), ist die Zykluszeit auch verkürzt ?
 
20ms ist auch ein bisschen hoch. Abtastung von diverse Impulsgeber wäre auf diesen Zykluszeit eventuell problematisch.

Nach die letzte Änderung, wobei den gesammte Arbeitspeicher auslastung von 232kB auf 131kB gesunken ist (von 90% auf 51%), ist die Zykluszeit auch verkürzt ?
Komme erst wieder in 1-2 Wochen an die Steuerung, dann schau ich mal!

Hat sich was geändert zwischen das Bild in #1 und das Bild in #14 ?
Das Programmspeicher für FBs ist von 120kB auf 62kB gesunken.
Ist das Problem damit beseitigt ?

Das hier:
Die Bibliotheksbausteine von ifm verbrauchen richtig viel Speicher. (war fast die Hälfte vom Speicher von FBs).
 
Zurück
Oben