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

Ergebnis 1 bis 2 von 2

Thema: MW als Persistente Variablen vor OnlineChange / Restart sichern

  1. #1
    Registriert seit
    24.06.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin, moin,

    folgendes Problem:
    Bei einer Steuerung (TwinCat) liegen Konfigurationsdaten im Merkerbereich. Es werden über ModBus Daten in die Merker geschrieben und von dem SPS Programm als Konfiguration genutzt.

    Das Problem liegt darin das Variablen die mit AT deklariert sind nicht als VAR PERSISTENT gesetzt werden dürfen.

    Erste Idee war mit der FB_Exit Methode die Daten in ein Struct zu kopieren welches Persistent ist und dann mit FB_Init nach dem Neustart wieder in die Merker zu schreiben.

    Geht aber nicht. Werden mit FB_Exit die Daten in das Struct kopiert sind diese trotzdem "verloren".

    Gibt es eine Methode/Pragma die genutzt werden kann die Daten zu kopieren bevor die Persistenten Variablen geschrieben werden?

    Danke und Ahoi,

    Mark
    Zitieren Zitieren MW als Persistente Variablen vor OnlineChange / Restart sichern  

  2. #2
    Markarndt ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.06.2015
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Anbei des Rätsels Lösung - oder ein Workaround:
    Zu dem Zeitpunkt wenn die FB_Init Methode aufgerufen wird, scheinen die Persistenten Daten noch nicht geladen zu sein. Also gibt es auch nichts was sinnvoll kopiert werden könnte.
    Um das zu umgehen habe ich folgendes Umgesetzt:
    - einen FB erstellt der nur eine Variable hat (bInit), diese wird durch die FB_Init/FB_Reinit Methode auf True gesetzt. bInit kann über eine Property gelesen/geschrieben werden
    - in Main wird nach dem Aufruf vom UPS-Baustein dann der Zustand von bInit abgefragt (zu dem Zeitpunkt läuft das Programm ja bereits und die persistenten Daten sind geladen)
    - ist bInit TRUE werden die persisten Daten in den Arbeitsbereich kopiert (der ja auf dem Merkerbereich liegt) - danach wird bIint auf FALSE gesetzt
    - ist bInit FALSE dann werden die Daten aus dem Arebitsbereich in den persistenten Bereich kopiert
    Eigentlich ganz einfach.
    Vielleicht hilft es ja noch mal jemanden.
    Ahoi,
    Mark

Ähnliche Themen

  1. Antworten: 24
    Letzter Beitrag: 14.10.2016, 09:30
  2. XML Data Server vs. persistente Variablen
    Von tom_x im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 28.04.2011, 07:53
  3. PERSISTENTe Variablen
    Von gamble im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 26.04.2011, 08:50
  4. Werte von Variablen auslesen und im Quellcode sichern
    Von CST-LS im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 05.07.2010, 10:46
  5. Daten sichern als xxx.csv
    Von Moroso im Forum HMI
    Antworten: 3
    Letzter Beitrag: 06.04.2009, 18:43

Lesezeichen

Berechtigungen

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