Sichere Datenarchivierung

Anonymous
2010-03-15
2010-04-14
  • Anonymous - 2010-03-15

    Originally created by: softwareheini

    Hallo zusammen,

    bin gerade dabei ein SPS Programm zu entwickeln bei dem sechs

    Schrittketten teils parallel - teils nacheinander ablaufen.

    Bei verlassen eines Schrittes sollen sämtliche Analogwerte in eine

    MySQL Datenbank geschrieben werden.

    Mein Problem ist jetzt nur, wenn zwei Ketten gleichzeitig einen Schritt

    verlassen, wie speichere ich dann die Werte ab?

    Hat jemand so etwas schon mal gemacht.

    Würdet ihr es mit einer Art Zwischenpuffer lösen?

    Bin für jeden Wink in die richtige Richtung dankbar!

    Ups. hab was vergessen...

    Das ganze läuft auf einem Wago 750-841 ...sorry

    mfg

    Daniel

     
  • Blitzy - 2010-04-06

    Habe sowas mit einem Array geloest, welches die Zwischenwerte speichert. Das Array selbst wird dann in einer anderen Task wieder ausgelesen und in die Datei (bei mir eine lokale Textdatei) geschrieben.

    Problem ist, dass ich die entsprechende Quelle zwar geben koennte, aber die Kommentierung auf Norwegisch ist. Bist Du trotzdem noch interessiert?

     
  • McNugget2000 - 2010-04-06

    Moin.

    Ich antworte mal frecherweise.

    Sämtliche Quellen, die sich auf Datenarchivierung beziehen sind willkommen, selbst , wenn sie in esperanto erstellt sind..

    Gruss

    McNugget

     
  • Pitsch - 2010-04-11

    Hallo

    Warum benutzst Du nicht eine globale Boolsche Variable (Sperrvariable), die Du in die Bedingung, um den Schritt zu verlassen einbaust. Wenn jetzt in einer Schrittkette (egal welche) die Speicherung beginnt, setzt Du diese Variable auf TRUE. Somit kann die Andere Schrittkette den Schritt nicht verlassen, bis die erste Schrittkette mit dem Speichern fertig ist und die Sperrvariable wieder auf FALSE gesetzt hat. Das machst Du mit jeder Schrittkette so. Du setzst eben Diese eine Variable auf TRUE, wenn der Speichervorgang beginnt und setzst sie wieder auf FALSE, wenn der Speichervorgang beendet ist.

    Zwei Schrittketten, können niemals gleichzeitig einen Schritt beenden. Eine ist immer, wenn auch nur einen Zyklus voraus, oder sogar innerhalb eines Zyklus kommt immer eins nach dem Anderen. Die schnellere Schrittkette, setzt die Variable und die Anderen müssen einfach warten, bis der Sattel wieder frei ist.

    Wenn Du nicht irgendwelche zeitkritischen Abläufe hast, sollte es so auch keine Probleme geben. Andernfalls, kommst Du ums Zwischenspeichern in einem Array nicht herum.

    mit freundlichen Grüssen! Pitsch

     
  • Anonymous - 2010-04-14

    Originally created by: softwareheini

    Hallo zusammen,

    erstmal Danke an euch alle!

    @ Blitzy

    Wäre toll von dir wenn du hier was einstellen könntest.

    @ Pitsch

    Danke für den Vorschlag. Klingt logisch und einfach.

    Man (also ich) denkt einfach immer zu kompliziert

    Aber wie du schon sagst, bei zeitkritischen Anwendungen wirds

    schwierig.

    Grüße

    Daniel

     

Log in to post a comment.