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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 38

Thema: Beckhoff Retain wirklich so umständlich?

  1. #11
    L.T. ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.06.2008
    Beiträge
    182
    Danke
    15
    Erhielt 25 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Trinitaucher,

    ich kann das gerade leider nicht testen, aber was passiert wenn ich in MyStruct eine Var lösche?
    Kann die Steuerung die restlichen Var beim Einschalten, laden, schreiben noch zuordnen oder geschieht die Zuordnung nicht über Name sondern über ID?
    Wenn die Var dann noch gelesen werden könnten wär das wohl meine Wahl.
    Dann werden Retain-Var eben nicht in den Globalen Var deklariert sondern im Datentyp. Könnt ich (gut)mit leben....

    Gruß L.T.

  2. #12
    Registriert seit
    12.08.2010
    Beiträge
    234
    Danke
    57
    Erhielt 116 Danke für 56 Beiträge

    Standard

    Zitat Zitat von L.T. Beitrag anzeigen
    ich kann das gerade leider nicht testen, aber was passiert wenn ich in MyStruct eine Var lösche?
    Hallo LT,

    probiere das doch einfach aus – im schlimmsten Fall lernst du was...

    LG Cassandra

  3. #13
    L.T. ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.06.2008
    Beiträge
    182
    Danke
    15
    Erhielt 25 Danke für 22 Beiträge

    Standard

    Hallo Cassandra,

    vielen Dank für den Vorschlag.
    Aber ich hätte sagen sollen, dass die SPS im Augenblick noch sehr virtuell ist (um nicht zu sagen bei Beckhoff lötet da noch jemand dran rum )
    Oder anders gesagt, ich hab sie noch nicht auf dem Tisch....

    Gruß L.T.

  4. #14
    Registriert seit
    19.05.2008
    Beiträge
    648
    Danke
    117
    Erhielt 136 Danke für 105 Beiträge

    Idee

    Zitat Zitat von L.T. Beitrag anzeigen
    Aber ich hätte sagen sollen, dass die SPS im Augenblick noch sehr virtuell ist (um nicht zu sagen bei Beckhoff lötet da noch jemand dran rum )
    Oder anders gesagt, ich hab sie noch nicht auf dem Tisch....
    Hallo L.T. ,

    das könntest du sehr wohl testen. Internet-Anschluss und einen PC scheinst du ja zu haben.
    TwinCAT kannst du hier runter laden.

    Die Funktion WritePersistentData funktioniert auf jedem PC, auf dem du TwinCAT installiert bekommst.
    Das Beispiel IPC_X86.zip ist bereits eine fertige Vorlage.

    Zum testen am lokalen PC oder Notebook einfach im System-Manager eine leere Konfiguration aktivieren. Schon kann das Programm hochgeladen werden.

    Ich würde erwarten, dass die Persistenten Daten verloren gehen, wenn man den Datentyp ändert. Für den Fall dass die Entwickler von Beckhoff im Hintergrund mit XML-Dateien arbeiten, könnte das sogar ohne Datenverlust möglich sein.
    Viel Erfolg...

    Gruß
    Chräshe

  5. #15
    Registriert seit
    07.06.2012
    Beiträge
    20
    Danke
    0
    Erhielt 14 Danke für 9 Beiträge

    Standard

    Hallo zusammen,

    hier ein paar weiterführende Details:
    1.Was sind die Unterschiede zwischen persistenten und retain Variablen?
    1.1 Retain:
    - Retain Variablen werden durch das Schlüsselwort RETAIN gekennzeichnet.
    - Retain Variablen liegen in einem speziellen Speichersegment
    - Beim Shutdown von TwinCAT wird der Inhalt des Speichersegments binäre 1:1 auf die
    Festplatte geschrieben (TwinCAT\Boot\TCPLC_R_x.wbp, x=1..4 Nummer LZS)
    Vorteil
    - Laden und Speichern geht sehr schnell.
    Nachteile
    - Wenn Bootprojekt und Retain-Datei nicht 100% zusammenpassen, dann kann das
    TwinCAT System nicht starten!
    Hinweis:
    !! Wegen der Nachteile wird die Verwendung nicht empfohlen!!
    1.2 Persistent:
    -Persistente Variablen werden durch das Schlüsselwort PERSISTENT gekennzeichnet.
    - Persistente Variablen liegen an ganz unterschiedlichen Stellen im Speicher.
    - Beim Shutdown von TwinCAT werden die markierten Variablen gesammelt und in eine
    strukturierte binäre Datei geschrieben (TwinCAT\Boot\TCPLC_T_x.wbp, x=1..4). Name
    und Pfad, Größe und Wert der Variablen werden gespeichert .
    Vorteil
    - Beim Aufstarten werden alle Variablen geprüft. Wenn die Variablen entsprechende
    Pendants im Projekt haben werden die Werte geladen. Wenn nicht, dann nicht.
    Nachteile
    - Laden und Speichern dauert etwas länger.
    - Die persistent Variablendatei ist etwas größer.
    Hinweis:
    -Soll eine Variable einer Instanz eines FB oder einer Struktur gespeichert werden,
    so wird die gesamte Struktur gespeichert.
    - Bei XP/Win7 embedded : Der Ordner für die remanenten Daten darf nicht
    von einem EWF oder FBWF geschützt sein!

    2. Persistente Variablen können aus der Applikation geschrieben werden.
    - Baustein FB_WritePersistentData
    Hinweis:
    - Es werden nicht automatisch auch Backups der Dateien angelegt!

    3. Speicherung der Dateien: TwinCAT\Boot
    - Retain: TCPLC_R_n.wbp (Backup mit ~)
    - Persistent: TCPLC_T_n.wbp (Backup mit ~)
    Aufstart-Sequenz:
    - System Service startet PLC Server
    - PLC startet mit Initialwerten
    - PLC lädt persistente Variablen
    - Wenn eine persistente Variable zu einer Variablen des Bootprojektes passt, dann
    wird der Wert der Variablen geladen. Initialwert wird überschrieben.
    - Wenn eine persistente Variable nicht zu einer Variablen aus dem Bootprojekt passt,
    passiert gar nichts.
    - Wenn das Laden beendet ist, werden die Daten als Backup kopiert.
    Das erfolgreiche Laden der remanten Daten kann aus der Applikation geprüft werden.
    Dazu gibt es in der System Info Struktur die Variable bootdata:
    Bit Nummer Beschreibung
    0 RETAIN variables: LOADED (without error)
    1 RETAIN variables: INVALID (the back-up copy was loaded, since no valid
    data was present)
    2 RETAIN variables: REQUESTED (RETAIN variables should be loaded, a
    setting in TwinCAT System Control)
    3 reserved
    4 PERSISTENT variables: LOADED (without error)
    5 PERSISTENT variables: INVALID (the back-up copy was loaded, since
    no valid data was present)
    6 reserved
    7 reserved

    Was ist zu tun bzw. Was macht TwinCAT automatisch, wenn die remanenten Variablen
    nicht geladen werden können?
    - Default-Reaktion: Die Backup-Dateien werden geladen!
    - Sollte das nicht die richtige Reaktion für die Applikation sein, dann kann in der Registry
    umgestellt werden:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Beckhoff\TwinCAT\Plc]
    "ClearInvalidRetainData"=dword:00000000
    "ClearInvalidPersistentData"=dword:00000000
    Hinweis:
    - Der Wert von "ClearInvalidRetainData" oder von "ClearInvalidPersistentData" muss
    dann auf 1 gesetzt werden. Die Standardeinstellung ist 0 für XP und 1 für CE.
    - Sollte die Einstellung bei einem CE System im System Manager oder in der
    Registry geändert werden ? Shutdown notwendig (ansonsten werden die Daten
    nicht gespeichert)

    4. NOVRAM
    Variablen können auch im sogenannten non-volatile-RAM (Novram) gespeichert werden
    Novram ist verfügbar auf verschiedenen CPUs:
    - Standard PC: mit optionalem Novram auf einer Feldbuskarte (z.B. FC31xx), oder
    einer optionalen Mini-PCI-Karte mit Novram
    - CX10xx: 8kB
    - CX90xx: 128kB
    - EL6080: 128kB
    Novram als Standard-I/O:
    - Bedeutet: in jedem Zyklus werden die verknüpften Variablen in das Novram kopiert
    - Hinweis: Beim Stopp der Task (BP oder Stop der SPS) werden die Variablen auf
    Null gesetzt!
    - Flag „Auto Init linked PLC Variables“ sollte im System Manager gesetzt werden.
    - Novram direkt aus der Applikation genutzt:
    - FB_NovRamReadWriteEx aus der TcIoFunctions.lib zum Lesen und Schreiben von
    Variablen ins Novram
    Hinweis:
    - Beim Spannungsausfall während des Kopiervorgangs muss der Speicher in
    Bereiche geteilt werden und auf Konsistenz geprüft werden.

    5. Was passiert beim Spannungsausfall?
    5.1 Ohne USV
    - Kein TwinCAT Shutdown.
    - Bedeutet: Kein Speichern von Retain und/oder Persistent Daten.
    - Nach Neustart werden die Variablen entweder initialisiert oder das letzte Backup
    wird geladen. Das Verhalten ist einstellbar!
    5.2 Mit Standard-USV
    - Im Falle einer Spannungsunterbrechung wird von der USV wird ein Signal an den
    TwinCAT System Service gesendet.
    - Der TwinCAT System Service leitet den Shutdown von TwinCAT ein (Stoppen aller
    Tasks usw.) und speichert die remanenten Variablen..
    - Wenn alle Daten geschrieben sind, leitet der TwinCAT System Service den
    Betriebssystem Shutdown ein.

    6. Unterschied zwischen einer Standard-USV und einer 1-s-USV?
    6.1 Standard UPS
    - Erstens: TwinCAT Shutdown mit Speichern der remanenten Variablen
    - Zweitens: Betriebssystem Shutdown
    - Konfiguration über das Betriebssystem Power Management im Control Panel
    6.2 CX1190-USV (CX1100-0900..-0930)
    - Erstens: TwinCAT Shutdown mit Speichern der remanenten Variablen
    - Zweitens: Betriebssystem Shutdown
    - Konfiguration via System Manager, aus der Applikation via FB_CxSimpleUPS
    6.3 1-s-UPS CX80x0 und CX50x0
    - Erstens: FB_S_UPS / FB_S_UPS_EX (BIOS-API) schreiben die persistenten
    variablen (kein TwinCAT Shutdown, keine Retain Daten)
    - Zweitens: FB_S_UPS / FB_S_UPS_EX leitet einen Stopp des IPC ein
    - Keine Konfiguration nötig, S-UPS muss allerdings im BIOS aktiv sein

    Grüße
    Thomas

  6. Folgende 6 Benutzer sagen Danke zu Thomas64 für den nützlichen Beitrag:

    biocontroller (17.12.2013),cas (07.06.2012),IBFS (08.06.2012),L.T. (08.06.2012),mike_roh_soft (07.06.2012),StructuredTrash (08.06.2012)

  7. #16
    L.T. ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.06.2008
    Beiträge
    182
    Danke
    15
    Erhielt 25 Danke für 22 Beiträge

    Standard

    Hallo Thomas,

    super! Vielen Dank für die genau Auflistung!
    Kannst du mir noch was zu "Retain Persistent" bzw. "Persistent Retain" sagen?
    Werden diese Var "atuomatisch" wie Persistent Variablen behandelt was die Speichermethode betrifft oder macht das bei Beckhoff keinen Unterschied?

    Bei Wago, ELAU.... ist das ja nochmal ein unterschied im Lade-/Initialisierung-/Löschverhalten.

    Gruß L.T.

  8. #17
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von Thomas64 Beitrag anzeigen
    .....
    hier ein paar weiterführende Details:
    .....
    Das war ja mal ein richtig guter Einstandsbeitrag

    Gruß

    Frank
    Grüße Frank

  9. #18
    Registriert seit
    07.06.2012
    Beiträge
    20
    Danke
    0
    Erhielt 14 Danke für 9 Beiträge

    Standard

    Hallo L.T.,

    der Compiler lässt es zu beides - Retain und Persistent - in einer Zeile zu nutzen, dies macht jedoch keinen Sinn. Es werden beide Files angelegt, TCPLC_R_n.wbp und TCPLC_T_n.wbp. Vorrang hat jedoch immer Persistent, jedenfalls bei Beckhoff. Also, die Retaindaten werden von den Persistdaten überschrieben. Retain ist aufgrund der Nachteile (keine Prüfung ob die Daten zum Bootprojekt passen, da die Variablenbezeichnung fehlt) ein Auslaufmodell und sollte nicht mehr genutzt werden. Wenn eine 1-sek USV genutzt wird, werden hier nur persistente Daten genutzt, Retain funktioniert nicht. Also klare Empfehlung: kein Retaindaten nutzen!

    Gruß
    Thomas

  10. Folgender Benutzer sagt Danke zu Thomas64 für den nützlichen Beitrag:

    L.T. (08.06.2012)

  11. #19
    Registriert seit
    21.09.2009
    Beiträge
    42
    Danke
    5
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Habe mir gerade mal den Beitrag durchgelesen.
    Ich arbeite auf einem CX8031 und rufe die Funktion FB_S_UPS im Hauptprogramm auf.
    Außerdem habe ich 2 Integervariablen als Persistent deklariert.
    Leider werden die Daten bei einem Powerfehler aber nicht gespeichert.
    Was mache ich hier noch falsch.
    Aufgefallen ist mir das der Ausgang bPowerFailDetect der Funktion FB_S_UPS nicht gesetzt wird, wenn die Spannung weg ist.
    Kann es damit Zusammenhängen was Thomas geschrieben hat:
    Keine Konfiguration nötig, S-UPS muss allerdings im BIOS aktiv sein
    Hoffe ihr könnt mir weiterhelfen.

    Gruß snej

  12. #20
    Registriert seit
    07.06.2012
    Beiträge
    20
    Danke
    0
    Erhielt 14 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo snej,

    mit der FB_S_UPS geht das nicht. Du benötigst den Baustein FB_S_UPS_CX80xx aus der System-Lib des CX8000 - TcSystemCX80xx.lib. Dieses ist in der Doku enthalten. Da der CX noch den Vorserienstatus inne hat, ist diese noch nicht frei verfügbar, daher die Lib als Anhang.

    Gruß
    Thomas
    Angehängte Dateien Angehängte Dateien

  13. Folgender Benutzer sagt Danke zu Thomas64 für den nützlichen Beitrag:

    snej (04.09.2012)

Ähnliche Themen

  1. Antworten: 24
    Letzter Beitrag: 14.10.2016, 09:30
  2. Wirklich Totally Integrated Automation oder was?
    Von rostiger Nagel im Forum Simatic
    Antworten: 49
    Letzter Beitrag: 24.02.2012, 18:23
  3. Wie lang halten die Pufferbatterien wirklich?
    Von thomass5 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 29.07.2011, 17:07
  4. Wieviel Steuern zahlt man wirklich?
    Von eYe im Forum Stammtisch
    Antworten: 8
    Letzter Beitrag: 25.01.2009, 14:56
  5. Ist Eplan wirklich Stand der Technik?
    Von exciter0816 im Forum E-CAD
    Antworten: 8
    Letzter Beitrag: 09.06.2005, 09:39

Lesezeichen

Berechtigungen

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