TIA Frage zu Rezepturen auf Speicherkarte

MichaelScz

Level-2
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe da mal eine Frage... Gibt es die Möglichkeit Rezepturdaten auf einer Speicherkarte zu speichern?

Meine Konfiguration
SPS 1214C
KTP 700

Ich wollte dies erst über die Standard HMI-Rezepturverwaltung lösen. Allerdings stoße ich hier beim Übersetzen auf die Meldung: "Die Anzahl von XXX Zugriffen auf Elemente des Variablen-Arrays überschreitet die Systemgrenze von 100." Zudem habe ich für das HMI-System wahrscheinlich sowieso zu viele Variablen/Datensätze die ich mittels dieser Rezepturverwaltung nicht realisiert bekomme.

Mein nächster Gedankengang war in einem Global DB ein Array mit eigenem PLC-Datentypen anzulegen indem alle Rezeptdaten gespeichert sind. Haken an der ganzen Sache: Ich liege derzeit bei folgender Speicherauslastung: 36% Ladespeicher, 97% Arbeitsspeicher und 51% Remanenzspeicher. Die Realisierung überstieg die Auslastung.

Nun hatte ich noch etwas von CSV-Dateien auf externer Speicherkarte gelesen. Ich habe aber eher den Eindruck, dass dies nicht für eine Rezeptverwaltung gedacht ist. Sondern nur zum speichern von "Festwerten". Oder irre ich mich hier? Kann man Rezepturen in Form von mehreren CSV-Dateien abspeichern?

Habt ihr eine Idee wie ich dies lösen könnte ohne an der Anlage alle Werte händisch ändern zu müssen?

Danke für eure Rückmeldung.


Gruß Michael
 
Meine Konfiguration
SPS 1214C
KTP 700


Mein nächster Gedankengang war in einem Global DB ein Array mit eigenem PLC-Datentypen anzulegen indem alle Rezeptdaten gespeichert sind. Haken an der ganzen Sache: Ich liege derzeit bei folgender Speicherauslastung: 36% Ladespeicher, 97% Arbeitsspeicher und 51% Remanenzspeicher. Die Realisierung überstieg die Auslastung.

Selbe Konfiguration verwenden wir auch oft.
Hatten auch ursprünglich das gleiche Problem.

Dein grundsätzlicher Gedankengang ist äh lich wie wir es gemacht haben.

Einen PLC-Datentypen anzulegen indem alle Rezeptdaten eines Rezepts gespeichert. (Eigener DB muss aber nicht)

Ein DB angegen allerdings bei Attribute bei "nur im Ladespeicher ablegen" einen hacken setzen. Dann wird der nur auf der Speicerkarte der SPS abgelegt.
Dann ein Array mit eigenem PLC-Datentypen anzulegen indem alle Rezeptdaten gespeichert sind.

Auf den DB kannst du dann über READ_DBL bzw. WRIT_DBL zugreifen. Dann über den Array-index auf die gewünschte Rezeptur zugreifen.

Hoffe du kommst mit dem Arbeitsspeicher zurecht.

Gruß
Martin
 
Mit mehr als 100 Einträge pro Record, dann hat man vermutlich das Problem dass man das Rezeptsystem nicht verwenden kann, egal wie man die Rezepte verlagert.
Da musst du vermutlich deine eigene Rezeptsystem basteln.
Oder .. kann 2 Rezepte dieselbe Rezeptnummer teilen ? Sprich ein Art Master-Slave Rezeptur. Nur eine Idée.

N.B. Bei 97% Auslastung von die Arbeitsspeicher ist die Steuerung zu klein ! Ich wurde nie so eng an die Grenze gehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke da ist die Lösung von @d Martin besser. Nur hierzu habe ich noch eine Frage. Die ganzen im DB gespeicherten Rezepte kann ich per Momentanaufnahme im DB dann zumindest kopieren und sichern. Live Anpassen per Online draufschalten geht allerdings wegen "nur im Ladespeicher ablegen" nicht und ich vermute es gibt keine Alternative oder?

@JesperMP Das Programm ist leider im Laufe der Zeit immer größer geworden, weil immer noch was dazu gewünscht wurde. Kennst du Tipps und Tricks die Speichergrößen zu minimieren? Verwende schon extra kleinere Datentypen wo möglich.
 
Kennst du Tipps und Tricks die Speichergrößen zu minimieren? Verwende schon extra kleinere Datentypen wo möglich.
Eigentlich nicht.
Die Tendenz ist, wähle eine CPU der reichlich stark für die Aufgabe ist, und erstelle dann das Program so dass es am stabilsten läuft und es leicht zu warten ist.
Ich habe die S5 Zeiten erlebt. Damals musste man viel trixen um Speicher zu sparen und die Performance zu bekommen. Dies habe ich Heute abgelernt. Z.B., ich wähle für Zähler immer ein DINT obwohl en INT oder sogar ein BYTE genug wäre. Für Zahlenwerte immer ein REAL obwohl man es mit ein INT machen konnte. Standardbaustine mit viele unbenutzte Daten anstatt einzel programmierte 'custom' Bausteine. Usw..

Die einzigste Abhile den ich empfehlen wurde ist eine grössere CPU zu wählen.

N.B. Du verwendest schon nur optimierte Daten ? Mit dies kann man eine wesentliche Speicherreducktion erhalten.
 
Zurück
Oben