Nicht zu viel auf den Flash-Speicher schreiben. Wieso?

Pitsch
2011-12-02
2011-12-06
  • Pitsch - 2011-12-02

    Hallo
    Ueberall hört man, das man bei einer SPS-Steuerung, den Flash-Speicher, nicht zu viel nutzen soll, weil der damit beschädigt werde.
    Wieso ist das so? Was ist dann mit einer Computer-Festplatte auf Flash-Speicherbasis oder der Ram-Speicher?
    Geht der auch kaputt, wenn er gebraucht wird?

    Mit freundlichen Grüssen! Pitsch

     
  • RolandWagner

    RolandWagner - 2011-12-02

    Natürlich kann man den Flash-Speicher nutzen, um Daten (insbesondere nicht-flüchtige) zu speichern.

    Auszug aus Wikipedia:
    "Flash-Speicher haben eine begrenzte Lebensdauer, die in einer maximalen Anzahl an Lösch-Zyklen angegeben wird (10.000 bis 100.000 Zyklen für NOR-Flash und bis zu zwei Millionen für NAND-Flash)".

    Im Vergleich dazu sind Festplatten und RAM deutlich länger haltbar. Sprich Flash geht deutlich schneller kaputt, insbesondere wenn permanent auf die gleiche Stelle geschrieben wird.

    Was man deswegen nicht empfehlen kann: eine Variable, die im 1ms-Takt geschrieben wird, im Flash abzulegen. Da kann man sich leicht ausrechnen, wie lange es dauern wird, bis solch eine Speicherstelle kaputt ist.

     
  • Pitsch - 2011-12-03

    Hallo

    Danke für die Antwort!

    Gibt es den heutzutage noch nichts besseres. Besser formuliert,-> Ist das der Stand der Technik, dass Flash-Speicher das Beste für diese Anwendung, auf der Technologie-Pallette ist.

    PS: Ich hoffe, dass ich Niemandem, mit solchen Fragen auf die Nerven gehe. Doch das Wissen über solche Details, interresiert mich nun mal.

    Mit freundlichen Grüssen! Pitsch

     
  • gravieren - 2011-12-03

    Hi

    Pitsch hat geschrieben:
    Hallo
    Danke für die Antwort!
    Gibt es den heutzutage noch nichts besseres. Besser formuliert,-> Ist das der Stand der Technik, dass Flash-Speicher das Beste für diese Anwendung, auf der Technologie-Pallette ist.
    PS: Ich hoffe, dass ich Niemandem, mit solchen Fragen auf die Nerven gehe. Doch das Wissen über solche Details, interresiert mich nun mal.

    Warum soll es NICHT gut sein.

    Du kannst ja beliebig auf den RAM schreiben.
    Der Inhalt des RAMs ist halt nach Spannungsausfall verloren.

    Informationen die das überstehen sollen, werden halt z.b. bei Änderungen in das Flash geschrieben.

    Fortwährende Berechnungen, Zwischenergebnisse --> RAM.
    Zeitprogramm-Infos werden bei jeder Änderung in den Flash geschrieben.

    Beim Hochlauf der SPS wird halt diese Info vom FLASH in den Ram kopiert.

    P.S:
    Bitte suche dir mal Infos zu den Unterschied von RAM und FLASH im Internet.

    Gruß Karl

     
  • RolandWagner

    RolandWagner - 2011-12-05

    Hi,

    noch einmal von meiner Seite:
    Wenn ein Flash-Speicher 100.000 Zugriffe bis zum Defekt der Speicherstelle hat und Du 5 am Tag Deine Daten darauf wegsicherst (und ansonsten im RAM arbeitest), dann geht der Flash-Speicher (theoretisch) frühestens erst in 54 Jahren kaputt . Das ist schon ein guter Wert.
    Alternativ könntest Du Deinen RAM mit Batterien puffern, so dass Du bei Ausfall die Daten immer noch zur Verfügung hast. Die Batterien muss man aber in der Regel nach einigen Jahren wechseln (ich habe da was von 3 Jahren im Kopf), und das kostet einfach viel mehr Geld und Aufwand, vor allem wenn der Speicher in einer SPS irgendwie im Schaltschrank verbaut ist (wer macht das dann??).
    Eine Festplatte ist dagegen ein Teil mit einer mechanischen Drehung, das ist also immer auch mit Fehleranfälligkeit behaftet (frage mal jemanden, der Maschinen per Schiff ausliefert). D.h. die mechanische Fehleranfälligkeit ist um ein vielfaches höher als beim Flash (ich habe schon ein paar Mal USB-Sticks in der Waschmaschine durchgewaschen und sie gehen noch, bei der Festplatte sehe ich da keine Chance ) Dafür hält die Festplatte bezogen auf die Schreibzugriffe in der Regel zwar deutlich länger, aber eben auch nicht ewig. Dafür ist der Preis pro GByte unschlagbar niedrig.

    Oder kurz zusammengefasst: die eierlegende Wollmilchsau gibt es auch bei den Speichern bislang nicht
    Und das heitz für die Praxis: Man muss überlegen, was man mit dem Speicher machen will und dann den richtigen dafür auswählen.

     
  • Pitsch - 2011-12-05

    Hallo

    Erstmal Danke für die Erklärungen. Das leuchtet mir auch ein.
    Eine Frage hätte ich dennoch. Wo befinden sich denn nun 'Retain' oder 'Persistente' Variablen? Sind diese nun im Ram, in einem speziellen Adressbereich und werden mit dem GoldCap, oder wenn vorhanden mit einer Pufferbatterie gepuffert, oder befinden diese sich auf dem Flash-Speicher? Bei Letzterem, sehe ich da auch ein kleines Problem. Ein Zähler, der Impulse zählt, könnte ganz gut im 1 Sekunden-Takt oder noch schneller hochgezählt werden. Mit den entsprechenden Folgen!

    Mit freundlichen Grüssen! Pitsch

     
  • Oberchefe - 2011-12-05

    Zitat:
    Oder kurz zusammengefasst: die eierlegende Wollmilchsau gibt es auch bei den Speichern bislang nicht

    Aber die (Nicht-Codesys-) Konkurrenz macht's teilweise intelligenter: Werte bleiben im RAM und werden nach Spannungsausfall mit Hilfe eines Gold-Caps in den Flash gespeichert.

     
  • RolandWagner

    RolandWagner - 2011-12-06

    Zitat:
    Eine Frage hätte ich dennoch. Wo befinden sich denn nun 'Retain' oder 'Persistente' Variablen? Sind diese nun im Ram, in einem speziellen Adressbereich und werden mit dem GoldCap, oder wenn vorhanden mit einer Pufferbatterie gepuffert, oder befinden diese sich auf dem Flash-Speicher? Bei Letzterem, sehe ich da auch ein kleines Problem. Ein Zähler, der Impulse zählt, könnte ganz gut im 1 Sekunden-Takt oder noch schneller hochgezählt werden. Mit den entsprechenden Folgen!

    Wo und wie die Daten abgelegt werden, obliegt letztlich dem Hersteller der Steuerung. Von CoDeSys aus kann das der Geräte-Hersteller, der das Laufzeitsystem (CoDeSys SP bzw. CoDeSys Control) auf seiner Hardware implementiert, nahezu beliebig konfigurieren, ggf. mit eigenen Treibern. Für alles gibt es da entsprechende Schnittstellen.
    Für unsere SoftSPS legen wir die Retain und persistenen Variablen standardmäßig auf die Festplatte, aber auch das kann man konfigurieren und an eine Adresse im Speicher ablegen, wo z.B. ein Flash oder ein batteriegepuffertes RAM liegt.

    Zitat:
    Aber die (Nicht-Codesys-) Konkurrenz macht's teilweise intelligenter: Werte bleiben im RAM und werden nach Spannungsausfall mit Hilfe eines Gold-Caps in den Flash gespeichert.

    Aus oben genannten Grund hat das erst einmal nichts mit CoDeSys an sich zu tun, sondern wie das der Geräte-Hersteller umsetzt. Da gibt es ganz unterschiedliche Lösungen, je nach Speicherausbau der SPS. Das CoDeSys Laufzeitsystem kann ja erst einmal gar nicht wissen, welchen Speicher das Gerät eingebaut hat und bietet deswegen nur die Schnittstellen, damit man es so realisieren kann, wie man das möchte. Der Geräte-Hersteller kann dann die Schnittstellen bedienen, z.B. kann er bei Erkennung eines Spannungsausfalls sämtliche Daten ins Flash schieben, oder auf die Festplatte. Aber da muss er natürlich die entsprechende Hardware vorgesehen haben und die Funktion ins Laufzeitsystem einbauen.

    Dass es da bestimmt intelligentere und weniger intelligente, oder sagen wir doch lieber elegantere und einfachere Lösungen gibt, mag ich somit durchaus hinnehmen .

     

Log in to post a comment.