TIA Daten-Arbeitsspeicher fast voll - Erweiterung möglich?

uweschwarz

Level-2
Beiträge
309
Reaktionspunkte
19
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wir arbeiten mit einer CPU 1516-3 PN/DP V2.9 mit TIA V17. Der Daten-Arbeitsspeicher ist bereits über 80% ausgelastet. Kann ich den irgendwie erhöhen oder ist eine neue CPU fällig?
Herzliche Grüße
Uwe
1760088212862.png
 
Kann nicht erweitert werden.
Ist wirklich 5 MB Daten-Arbeitsspeicher notwendig ?
Hat es mit Datenlogs oder Rezepturen zu tun ? Kann man diese in eine andere Weise verlagern ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also bei 80% würde ich mir keine Gedanken machen... Wenn absehbar ist das weitere DB's erforderlich werden die dann den Rahmen sprengen wird eine andere CPU fällig. Die neuen V4.0 haben doppelten Speicher...

Alternativ mal die Programmierung überdenken: Warum reichen einem 5MB an Daten nicht? Ist das wirklich nötig?
 
Und WENN 5MB notwendig sind, sind das ja meist Daten, die wichtige Informationen enthalten (Positionswerte der Fächer bei einem Hochregallager o.ä.). Dann frage ich mich, warum nur 1,55MB der Daten remanent sind?
 
Im Wesentlichen hat es wohl mit der Wahl der Library for Basic Processes von Siemens zu tun. Ich habe keine eigene Bibliothek und brauchte schnell etwas, was einigermaßen funktioniert. Mir war damals klar, dass das keine speicherschonende Lösung ist, wusste aber auch keinen besseren Weg.
Ich habe schon wie wild gelöscht und sicher ist mein Programmierstil auch nicht gerade speicherschonend. Bin halt nur ein angelernter SPS-Programmierer :(.
Wir haben ca. 150 Messstellen und etwa 200 Aktoren und einen recht großen Parameterdatensatz für unsere Forschungsanlage.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wir haben ca. 150 Messstellen und etwa 200 Aktoren und einen recht großen Parameterdatensatz für unsere Forschungsanlage.
Dafür braucht man keine 4 MB Datenspeicher. Oder macht das Programm ein Logging oder eine Archivierung von Daten in der SPS?
Die Datenspeicherbelegung wächst normalerweise auch nicht im Betrieb, da brauchst du nicht nervös werden - oder wächst die Größe bei dir mit der Zeit?
Oder wie/womit willst du die momentan noch freien 1 MB Datenspeicher "vollballern"?
 
Im Wesentlichen hat es wohl mit der Wahl der Library for Basic Processes von Siemens zu tun
Die Library for Basic Processes unterstützt bei der Visualisierung von verschiedenen Funktionen.
Vorteile der Bibliothek:
• Einheitliches Design
• Weniger Engineering-Aufwand
In vielen Projekten gibt es die gleichen Elemente, die visualisiert werden müssen.Beispiele dafür sind Motoren, Analogwerte und Ventile.
Meine Güte. Bin nicht sicher dass dies überhaupt etwas 'vereinfacht'.
Ein Bibliotek der fast wie eine neue Programmiersprache ist.
Erinnert mich nach diese XKCD:

Wir haben ca. 150 Messstellen und etwa 200 Aktoren und einen recht großen Parameterdatensatz für unsere Forschungsanlage.
Diese Anzahl wäre eine mittelgrosse Anlage für mich.
Hast du ein Beispiel von diese Parameterdatensätze ?
Bei total 350 Objekte, wird pro Objekt ungf. 10 kB Daten verschwendet ?
 
Zuletzt bearbeitet:
Hallo JesperMP,

hier ein Beispiel für eine analoge Messstelle.
Die Bausteine möchte ich jetzt nicht mehr anfassen und auf eine neue Bibliothek kann ich, zumindest für diese Anlage, auch nicht mehr umstellen.
Ich kann den restlichen Programmcode an der einen oder anderen Stelle sicher noch etwas optimieren, aber das geht in der Regel auch Lasten der Lesbarkeit oder Verständlichkeit.
Der Aufwand wäre jedenfalls recht groß und das Risiko Funktionalität zu verschlechtern, Querverbindungen zu übersehen etc. steht in keinem guten Verhältnis zu den 3-5% Speicherplatz, die ich dadurch eventuell sparen würde.


1760444079242.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das sind ungf. 240 Bytes.
Ist mir eine Rätsel wie du auf durchschnittlich 10 kB pro Objekt kommt.
Ich wurde es näher analysieren.
In das TIA Projekt kannst du über die Menüleiste .. Tools .. Ressources den Speicherbedarf in Detail analysieren. Du siehst auch welche Bausteine die Speicherfresser sind.
Eventuell kannst du ein Bild davon posten.
 
Auf ein Bild habe ich es nicht rauf bekommen
:)

Ich habe mir das schon angesehen und sehe nicht wo ich etwas löschen kann, ohne die Funktionalität zu beeinträchtigen. Es sind auch keine Dopplungen oder nennenswert toter Code zu finden. Die anderen Bibliotheksobjekte sind halt auch sehr speicherintensiv. Es ist rel. wenig selbst geschriebener Code, sondern hauptsächlich die Verknüpfung der Bibliotheksobjekte.


1760447859059.png1760447899879.png
 

Anhänge

Sind alle die DBs von das LBP Bibliotek abgeleitet ?
Ich habe das LBP Demo Projekt geladen, und die Bausteine sind nicht gerade klein, aber keine >100 kB.
Gibt es viele multi-Instanzen ?

Kannst du eine von die grösste DBs öffnen und zeigen ? Z.B. 500_Waermemanagement
 
Du musst selber dein Programm näher analysieren um zu verstehen warum es zum 4 MB kommt.

Z.B, die Datentyp LBP_AnaRead von Beitrag #8 beträgt ungf. 240 Bytes.
Wie wird das zu 869 kB in 102_Analog_Ein+Ausgaenge_DB ?
Mit 150 'Messstellen' sollte es max 150x240 = 36 kB betragen.

Und wie gefragt, was gibt es in 500_Waermemanagement ?
 
Und wie gefragt, was gibt es in 500_Waermemanagement ?
Sorry hatte ich übersehen. Hier mal eine Zusammenfassung von 500_Waermemanagement:

1760515884443.png


Z.B, die Datentyp LBP_AnaRead von Beitrag #8 beträgt ungf. 240 Bytes.
Wie hast du das so schnell herausgefunden? Das ist ja cool.
Wenn ich wüsste wieviel Speicherplatz die einzelnen Datentypen verbrauchen, könnte ich sicher ausrechnen wieviel Speicherbedarf von der LBP beansprucht werden und die Differenz zur gesamten Speicherbelegung ermitteln. Ich sehe noch nicht inwiefern das weiterhilft. Worauf willst du hinaus?
 
Zuletzt bearbeitet:
An den Eigenschaften eines FB oder eines selbst angelegten DB prüfen ob der Hacken bei "Optimierter Bausteinzugriff" gesetzt ist.

Bei einem Instanz-DB muss man dies in den Eigenschaften des FB einstellen:
1760517430257.png

Bei einem selbst angelegten normalen DB hier
1760517530198.png


Hier gibt es Unterschiede zwischen 1200/1500. Falls du jetzt 1024 Bits hintereinander hast und 1500ér optimiert dann kommst du auf 1 Kilobyte Speicherbedarf.

1760517687298.png


1760517648189.png
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Fast alle DB (2 oder 3 nicht) sind mit optimierten Bausteinzugriff, alle DB wurde im Zuge der Programmentwicklung erstellt und nicht aus alten Projekte übernommen. Aber wie überprüfe ich das mit den Bool Variablen und dem Byte?
Insbesondere:
die bei S7-1500 "optimiert" als ganzes Byte abgelegt werden
Ich glaube, ich habe den Hintergrund der Frage noch nicht richtig verstanden.
 
Wie hast du das so schnell herausgefunden? Das ist ja cool.
Einfach schnell im Kopf gezählt.
Die Variabeln betragen pro INT 2 bytes, pro REAL 4 bytes, pro TIME 4 bytes. Ein STRING das Anzahl von Charaktere + 2 Bytes usw.

Sorry hatte ich übersehen. Hier mal eine Zusammenfassung von 500_Waermemanagement:

1760515884443.png
Ich vermute die 350 kB verstecken sich in die 17 STRUCTs. Da muss man näher gehen.
Dasselbe mit der 102_Analog_Ein+Ausgaenge_DB.
 
Zurück
Oben