TIA S7-1513 Read/Write Datablock Speicherzeiten und Frage zum Pointer

herrwernersens

Level-2
Beiträge
44
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

zu S7 Classic Zeiten haben wir unsere Format-DB's (Rezepte) aus Platzgründen auf die Speicherkarte auslagern müssen, da die S7 315-2 PN/DP nicht ausreichend Speicher hatte. Bei der neuen S7-1513 haben wir das gleiche Problem, so dass ich die Funktion aus dem Classic Projekt migriert habe. Was nun auffällt, ist Folgendes: Die Zeit zum Speichern auf die Speicherkarte ist um ein vielfaches länger als bei der alten Steuerung. Die Format-DBs sind als unlinked gekennzeichnet, so dass sie auf der Karte abgelegt werden. Die DB's selbst haben auf dem Ladespeicher eine Länge von 2890 Bytes.
In der Funktion in der das Write Datablock aufgerufen wird, ist noch die Logik um den Pointer zu beschreiben ähnlich wie in diesem Beitrag: http://www.sps-forum.de/simatic/719...baustein-einem-fc-als-pointer-uebergeben.html
Wenn ich in den jeweiligen Referenzhandbüchern nachschaue, wird der Pointer bei der 315er als Any angegeben, bei der 1500er als Variant. Z. Zt. nutze ich immer noch den Any-Pointer, die Steuerung hat scheinbar kein Problem damit, aber kann das ein Grund für die lange Speicherdauer sein? Also wir reden hier nicht von ms sondern das busy ist tatsächlich mehrere Sekunden gesetzt, was beim Anstossen eines Formatwechsels für echte Verwirrung gesorgt hat.
Hier wird das alte Format einmal abgesichert, bevor das neue geladen wird. Apropos geladen, dieses funktioniert in der 1500er wohl ebenso schnell wie vorher.

Ist evtl. das RecipeExport/Import eine Alternative? Habe noch nicht viel darüber gefunden, ausser einem Beitrag vom 15.7 ---- ohne Antwort.

Edit: Wir nutzen TIA V13 Update 2


Gruß Werner


TIA - jeden Tag ein neues Phänomen.....:rolleyes:
 
Zuletzt bearbeitet:
Hallo Werner

bei 1200 und 1500 wurden bei allen Siemens-Bausteinen die ANY zu Variant. PUT und GET haben für den ANY auf der anderen Seite einen neuen Typ bekommen, der sich REMOTE nennt. Aber faktisch ist das ein ANY. Endlich hat S gelernt, dass es Blödsinn war zu versuchen aus eine Adresse auf einer anderen Maschine ein Symbol auf dieser Maschine zu machen. Zurück zu deinem Problem.

Bisher konnte ich keine Performance-Nachteile durch Variant feststellen. Eher im Gegenteil, ich habe ein paar alte AWL Bausteine von Step7 V5 auf V12 und nun auf V13 rübergezogen und aus dem ANY dort einen Variant gemacht. Das hat die Laufzeit des Bausteins gedrittelt. In AWL mit ANY und viel AR2 Gehampel brauchte er und sein Aufrufer 700µs auf einer 1516. Immer noch in AWL aber mit Variant an der Schnittstelle und statt dessen mit VariantGet und VariantPut brauchen die beiden nur noch 250µs. Dann habe ich das auf SCL umgeschrieben, was nochmals etwas mehr als 50µs eingespart hat. Damit liegen die beiden jetzt bei grob 190µs.

Ich habe da eher den Zugriff auf die Speicherkarte in Visier. Bei der 1516 ist mir aufgefallen, dass die kleinen Karten viel langsamer schreiben als die großen. Also je voller die Karte, desto länger dauert das. Also wenn nur noch 10% frei sind, verdreifacht sich die Zeit im Vergleich zu einer nur halb vollen Karte. Lesen ist vom Füllstand unabhängig. Hier leidet das eben an den Eigenschaften dieser FLASH Technologie. Das ist bei USB-Sticks auch nicht anders, es fällt erst bei vollen Sticks auf und einen GB Stick bekommt man nicht so schnell voll wie diese schweine-teuren S-Kärtchen im MB Bereich.

Während die 1518 ja grob 10 mal so schnell ist, wie eine 1516, schreibt meine aber nicht wirklich schneller auf die Karte. Eigentlich kann ich da gar keinen Unterschied feststellen. :confused: Aber 4K brauchen keine Sekunden. Mit einer 1513 habe ich das noch nie probiert -- falls ich mal wieder Zeit zu spielen habe ...


Tips:
Wie voll ist die Karte? Wenn sie mehr als 50% voll ist, dann eine größere nehmen.
Wenn sie nur 10% voll ist, aber trotzdem so zäh ist, dann gibt es noch einen Trick, den ich vom MP3-Player meiner Tochter gelernt habe: Die Karte im PC/Laptop mit Windows 7 leeren und dort eine halbe Stunde leer stecken lassen. Dann das Programm wieder zurück schieben.

Hintergrund: Je öfter man auf die Karte schreibt und wieder löscht und wieder schreibt und wieder löscht, desto fragmentierter ist diese. Die Controller in den Memorysticks sorgen im Hintergrund dafür, dass das FLASH wieder defragmentiert wird. Deswegen sollte man den Stick ja auch nicht einfach rausziehen, sondern immer vorher abmelden. Wenn du den Stick krumm erwischt, dann kann ein halb durchgeführtes Schreiben für das Defragmentieren denselben endgültig schrotten. Jetzt reden wir hier aber nicht von Memorysticks sondern von SD-Karten. Soweit ich weiß haben die aber keinen fetten Controller. Die müssen durch das Gerät in dem sie stecken defragmentiert werden. Und eine Siemens CPU scheint das nicht im Hintergrund zu machen. Sondern nur wenn es ganz dringend gebraucht wird. Also beim Programm Laden, wenn es uns am meisten stört :sad:.
Wenn du jetzt das Programm von der SD Karte auf deine Festplatte sicherst, auf der Karte löscht, und dann dem Windows viel Zeit gibst, dann scheint dieses im Hintergrund die Karte "zu putzen". Beim Zurückschreiben von der Platte zur Karte liegen dann alle Teile schön hintereinander in der Karte und danach ist viel freier Platz. Damit sollten dann Schreibvorgänge wieder flotter gehen.

Auf keinen Fall solltest du die Karte von Windows formatieren lassen. Da ging früher was kaputt und diese Karten wurden nicht mehr von Simatic akzeptiert. Ich weiß nicht ob das immer noch so ist.

Bin ja mal gespannt ob das hilft.

'n schön' Tach auch
HB
 
Zurück
Oben