Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 9 von 9

Thema: Daten spannungsausfallsicher ablegen

  1. #1
    Registriert seit
    09.09.2010
    Beiträge
    106
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forenmitglieder,

    möchte bei einer Anwendung mit dem CP6607 von Beckhoff (128MB RAM 32 MB Flash) Rezepte spannungsausfallsicher ablegen.

    Bisher habe ich die Daten in das NOVRAM abgelegt. Jedoch ist es mir bei der Inbetriebnahme schon passiert (ONLINE Reset usw) das diese Daten gelöscht wurden.

    Welche Möglichkeiten gibt es diese Rezepte spannungsausfallsicher abzulegen ?

    mfg.

    mkersch
    Zitieren Zitieren Daten spannungsausfallsicher ablegen  

  2. #2
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard

    Hallo,

    du kannst sie in eine Datei schreiben oder in eine XML (kostet Lizenzgebühren).

    siehe: FB_FileWrite http://infosys.beckhoff.com/content/..._filewrite.htm

  3. #3
    mkersch ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.09.2010
    Beiträge
    106
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Vielen Dank für die Info

    Wird diese Datei in meinen 32MB On-Board-Flash geschrieben ?
    Oder benötige ich hierfür eine externe Compact Flash Karte ?


    Die Rezeptdaten möchte ich in einen Zweidimensionalen Array halten. Um jedoch diese Daten vernünftig in eine Datei ablegen zu können, muss dieses Array vorher in "String Zeilen" (je Datensatz eine Zeile) gewandelt und entsprechen abgelegt werden.

    Gibt es eine Art Datenbankfunktion um diese Werte ohne großen Aufwand geordnet in eine Datei zu speichern bzw. zu lesen ?

    mfg.

    mkersch

  4. #4
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard

    Hallo,

    der interne Speicehr müsste für diese Zwecke ausreichen.

    Warum willst du es in einen String wandeln?

    Du kannst das Array auch direkt in eine Datei schreiben und später wieder einlesen. Das Problem an der Sache, man kann die Daten nicht im Klartext sehen und man sollte die Daten auch nicht ändern. Aber zur Rezepturverwaltugn sollte das OK sein.

  5. #5
    mkersch ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.09.2010
    Beiträge
    106
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke für die Info,

    habe es natürlich gleich ausprobiert.

    Zuerst habe ich einen String mit 20 Bytes in das File geschrieben.
    In der Datei steht dieser String korrekt.

    Danach habe ich versucht ein Array mit 10 Elementen vom Typ INT (20 Bytes) in ein File zu schreiben (File wurde im Binärmodus geöffnet).
    Mit dem Hex-Editor kontrollierte ich den Inhalt.
    Obwohl die Länge (laenge) bem Schreiben (20 Bytes) korrekt war, habe ich 40 Bytes in meinem Binärfile.

    0000010002000300040005000600070008000900
    0000000000000000000000000000000000000000

    a_rezept[0] := 0
    a_rezept[1] := 1
    .
    .
    a_rezept[9] := 9

    Was mich wundert ist, das im Binärfile 0000,0100,0200,0300, .. usw steht.

    Nachdem ich mein Binärfile wieder in das Array zurückgelesen haben, ist der Inhalt der Arrayelemente 0.

    Was mache ich falsch ?


    laenge := SIZEOF(a_rezept);
    M_FB_FileWrite(
    sNetId:= '127.255.255.1.1.1' ,
    hFile:=fh,
    pWriteBuff:= ADR(a_rezept[0]),
    cbWriteLen:= laenge,
    bExecute:= TRUE,
    tTimeout:= t#1000ms,
    bBusy=> bB,
    bError=> bE,
    nErrId=>err ,
    cbWrite=>flen );

    mfg

    mkersch

  6. #6
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard

    Hallo,

    versuch mal die Datei zu löschen, neu zu schreiben und dannach wieder einlesen.

    Das mit den 40 Bytes kommt wahrscheinlich davon das du zweimal in die Datei geschrieen hast?

    Alternativ hier mal meine 2 Bausteine im Anhang
    Angehängte Dateien Angehängte Dateien
    Geändert von bonatus (10.09.2010 um 08:03 Uhr)

  7. #7
    Registriert seit
    29.09.2006
    Beiträge
    368
    Danke
    0
    Erhielt 41 Danke für 38 Beiträge

    Standard

    Nun, dafür sollten persistente Daten auch ausreichen. Ganz spannungssicher ist aber beides nicht, wenn direkt beim Schreiben die Spannung ausfällt! NovRam ist da besser.

  8. #8
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard

    Hallo,

    NovRam ist nur sicher wenn man ihn über Bausteine schreibt, also mit dem FB_NovRamReadWriteEx. Wenn man den NovRam direkt über den Manager verknüpft kann es passieren, das die Daten weg sind z.B.: Über Online Reset.

  9. #9
    mkersch ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.09.2010
    Beiträge
    106
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nochmals vielen Dank für Eure schnelle und kompetente Hilfe.

    Es funktioniert.
    Mein Fehler war das ich nach dem Öffnen und Schreiben meines Arrays in die Datei den Dateizeiger nicht wieder auf den Dateianfang gesetzt habe.

    Wenn ich mit folgender Sequenz arbeite ist die Dateilänge auch 40 obwohl ich nur 20 Bytes schreibe

    -fopen
    -fwrite
    -fread
    -fclose

    Setze ich den Dateizeiger auf 0 ist die Datei auch korrekt 20 Bytes lang und der Arrayinhalt ist auch wieder korrekt gefüllt

    ==> korrekt
    -fopen
    -fwrite
    - fseek (Dateizeiger auf den Anfang setzen)
    -fread
    -fclose


    ===========

    Thema NOVRAM

    Ich habe mir auch überlegt die Daten im NOVRAM abzulegen, jedoch will ich den Anwender die Möglichkeit schaffen über BACKUP bzw. RESTORE
    diese Daten noch zusätzlich in eine Datei abzulegen.

    Euer Hinweis die Daten mittels Programm ins NOVRAM zu schreiben werde ich noch testen. Da ich beim verknüfen mit den Manager bereis negative Erfahrungen (wie ONLINE RESET) gesammelt habe.

    mfg.

    mkersch

    PS.
    Wo kann ich die Bewertung (Danke) im Forum abgeben ?

Ähnliche Themen

  1. Parameterwert in DB ablegen
    Von selly im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 29.03.2010, 15:59
  2. SPS-daten in datenbank ablegen
    Von Ray-Banton im Forum Hochsprachen - OPC
    Antworten: 12
    Letzter Beitrag: 16.11.2008, 21:03
  3. String in DB ablegen
    Von SPS_BOB im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 02.05.2007, 14:33
  4. Antworten: 6
    Letzter Beitrag: 07.10.2005, 12:35
  5. Antworten: 1
    Letzter Beitrag: 22.02.2005, 10:22

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •