Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Daten auch nach erneuter Übertragung des Programms behalten

Matze001
2009-02-17
2020-04-24
  • Matze001 - 2009-02-17

    Guten Tag,

    ich habe eine Aufgabe bekommen bei der 4 Werte (Real zwischen 1 und 60) in jedem Fall gespeichert bleiben müssen, sei es bei Netzausfall, erneuten Übertragen des Programms, ...

    Da diese jedoch vom Kunden frei änderbar sein sollen, und nicht nach jedem Netzausfall oder jeder Programmänderung neu eingeplegt werden sollen (bei 4 Werten zwar nicht schlimm, trotzdem Arbeit die ja vielleicht nicht sein muss) würde ich gern eine Möglichkeit wissen wie man diese "schützen" kann. Init kommt nicht in Frage, da sie wie gesagt über die Visu änderbar sein sollen.

    Ich freue mich über jeden Vorschlag.

    MfG

    Marcel

     
  • gravieren - 2009-02-17

    Hi

    Hast du einen Controller mit "File-System" ?

     
  • Matze001 - 2009-02-17

    Oh nicht erwähnt peinlich

    ne Wago 750-841 ... also hab ich eins

    MfG

    Marcel

    Dann glaubig ich weis ich deinen Ansatz. In eine Datei schreiben, von dort immer auslesen... werd mir dafür mal nen Sample suchen, verwende ich zum ersten Mal.

     
  • gravieren - 2009-02-17

    Hi

    Dann glaubig ich weis ich deinen Ansatz.

    In eine Datei schreiben, von dort immer auslesen...

    Ja, das meinte ich.

    werd mir dafür mal nen Sample suchen

    , verwende ich zum ersten Mal.

    Schau doch mal auf die Wago-Homepage.

    Oder

    Nimm den Code hier,

    läuft auf einigen Systemen (Portabel auf Filesystem-Controller)

    http://www.magnia.de/index.php?option=c ... &Itemid=53

    Download --> Bibliotheken --> Daiteihandling.

    Example und Lib vorhanden (Beides im Quellcode )

    Meine Empfehlung:

    Code von w www.magnia.de w laden, probieren, selbst schreiben.

     
  • gravieren - 2009-02-17

    P.S.

    Kannst dich bei mir Rühren, dann sende ich dir beide Dateien.

    Oder Registriere dich und lade dir beide selbst runter.

     
  • Matze001 - 2009-02-17

    Hallo,

    danke für die Hilfe!

    Habe mich registriert und die Dateien herruntergeladen.

    Ich brauche ja eigentlich nur den Baustein

    "GK_FileWrite_String"

    An den ich den Enable gebe, den Inhalt der geschrieben werden soll und den Namen der Zieldatei.

    Nun werfen sich mir fragen auf, die ich aufgrund einer fehlenden Test-SPS nicht so einfach beantworten kann.

    1. Muss ich die Datei nicht erst einmal erstellen wenn es sie nicht gibt?

    2. Würde der Inhalt der Datei mit jedem neuen Eintrag überschrieben oder würden die Einträge immer hintereinander weg geschrieben?

    3. Wie lese ich den Inhalt wieder aus?

    Wäre nett wenn Du mir das nochmal erläutern könntest.

    MfG

    Marcel

     
  • gravieren - 2009-02-17

    Hi

    Habe mich registriert und die Dateien herruntergeladen.

    Ich brauche ja eigentlich nur den Baustein "GK_FileWrite_String"

    Nimm die LIB --> öffnen --> und mit "Copy und Paste"

    Kopiere dir das Moul in deine Anwendung"

    An den ich den Enable gebe, den Inhalt der geschrieben werden soll und >den Namen der Zieldatei.

    Nun werfen sich mir fragen auf,

    die ich aufgrund einer fehlenden Test-SPS

    nicht so einfach beantworten kann.

    O.K.

    1. Muss ich die Datei nicht erst einmal erstellen wenn es sie nicht gibt?

    Nein, macht diese LIB (Module) alleine.

    1. Würde der Inhalt der Datei mit jedem neuen Eintrag überschrieben

    oder würden die Einträge immer hintereinander weg geschrieben?

    Wie du willst.

    Mit dem Appendmodus hängt die neuen Texte hintereinander an.

    Ansonsten kannst du die Datei immer neu schreiben/erzeugen wie du willst.

    1. Wie lese ich den Inhalt wieder aus?

    Schau dir das Example an.

    Ich glaube, dass hier auch auslesen drinnen war/ist ?

    Einfach mal experimieren.

    Schau doch mal hier:

    http://www.magnia.de/index.php?option=c ... &Itemid=44

    hiermit kannst du die Datei "sehen" editieren . . .

     
  • Matze001 - 2009-02-17

    Hallo,

    danke für deine Antwort.

    Werd es testen sobald ich ne Steuerung zur Hand habe.

    Es ist leider kein Beispiel fürs auslesen dabei, nur wie man das Änderungsdatum etc. anzeigt.

    MfG

    Marcel

     
  • gravieren - 2009-02-17

    Werd es testen sobald ich ne Steuerung zur Hand habe.

    O.K.

    Es ist leider kein Beispiel fürs auslesen dabei,

    nur wie man das Änderungsdatum etc. anzeigt.

    Lesen funktioniert wie das Schreiben".

    Such doch mal auf deinem Rechner die Datei:

    syslibfile.chm und syslibfile.pdf

    Da kannst du alles nachlesen.

    (Standardfunktionen von CoDeSys, damit du Portabel bleibst)

    Bei Systemwechsel hat man sonst erhebliche Probleme.

    TIP: Ich verwende die OSCAT-Lib für CoDeSys und Step 7

    Ich kann auch bei Gelegenheit mal das "Example" erweitern.

    Bei Fragen:

    Rühr dich einfach nochmals.

    Ich bin auch öfter im OSCAT-Forum zu finden.

     
  • hugo - 2009-02-18

    einfach geht es auch ohne file system mit var remanent und persistent

    die iec hat diese beiden dinge genau zu deinem zweck erfunden

    erhalt von daten über spannungsausfall und softwareupdate und oder reset

    lies doch einfach mal die beiden begriffe remanent und persistent in der hilfe nach

     
  • Matze001 - 2009-02-18

    Hallo,

    habe endlich eine SPS zur Hand, und werde den letzten Tip einmal testen, da es absolut KEINE Arbeit macht die Deklaration anzupassen.

    Falls es dennoch nicht klappen sollte greife ich auf das File-System zurück.

    Ich werde berichten.

    MfG

    Marcel

    Edit:

    Um nen Doppelpost zu vermeiden:

    Die Variablen entsprechend zu deklarieren klappt wunderbar.

    Manchmal ist die Lösung halt simpel und effektiv!

    Danke für die Hilfe!

     
  • aieser - 2020-04-24

    Does anyone have the SysLibFile.lib file to share?

     

Log in to post a comment.