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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 38

Thema: Beckhoff Retain wirklich so umständlich?

  1. #1
    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 zusammen,

    ich bin gerade dabei ein neues Projekt mit Beckhoff CX90xx umzusetzen.
    Bin seither von CoDeSys basierten Steuerungen (ja ich weiß Twincat und CoDeSys sehen nur ähnlich aus..) im Bezug auf Retain, Persistent, Retain Persistent,..... Var gewohnt diese einfach in der Var-Tabelle zu deklarieren und gut.
    Bei Beckhoff habe ich aber bis jetzt nur gefunden, dass man die Retain Var über FB´s ins NOVRAM schreiben/lesen muss.
    Ist das wirklich so umständlich zu machen oder stell ich mich doof an?

    Ein Array mit n paar hundert Var auf ein Schlag zu schreiben und zu lesen is ja nicht das Ding.
    Aber eigentlich gefällt mir das nicht wenn meine Retain-Var dann alle gleiche Namen tragen und sich nur im Index unterscheiden.
    Da kennt sich ja kein Mensch mehr aus im Prog. und wenn dann noch zwischendrin Var nicht mehr benötigt werden, hat man x Lücken die verschwendet werden.
    Gibt es nicht wenigstens die Möglichkeit die "ganz normal" deklariereten Retain-Var über einen FB zu sichern/Lesen??

    Vielen Dank für jede Antwort!

    Gruß L.T.
    Zitieren Zitieren Beckhoff Retain wirklich so umständlich?  

  2. #2
    Registriert seit
    19.05.2008
    Beiträge
    651
    Danke
    118
    Erhielt 136 Danke für 105 Beiträge

    Idee

    Hallo L.T. ,

    als ich das erste mal drauf gestoßen bin, war ich auch nicht begeistert.
    Man kann sich aber gut helfen. Sieh mal hier...

    Wenn du nicht sehr viele Variablen hast (<200) und deine SPS- Zykluszeit eher gemütlich ist (>=20ms) dann sollte "Variante 3" ausreichen.
    Ansonsten musst du den Aufwand von "Variante 2" einmal betreiben und kannst künftig die Funktionen von Projekt zu Projekt übernehmen...

    Gruß
    Chräshe
    Geändert von Chräshe (03.06.2012 um 17:03 Uhr)

  3. Folgender Benutzer sagt Danke zu Chräshe für den nützlichen Beitrag:

    L.T. (04.06.2012)

  4. #3
    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 Chräshe,

    vielen Dank für die Antwort.
    Werde es mir die Tage mal anschauen und dann im Zweifelsfall nochmal auf Dich zurückkommen.

    Gruß L.T.

  5. #4
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Wenn ein NOVRAM vorhanden ist, kann man dieses auch mittels FBs beschreiben. Dann entfällt das Performance-fressende, zyklische kopieren:

    http://infosys.beckhoff.com/index.ph...x.htm&id=12776
    Beachte dazu:
    http://infosys.beckhoff.com/index.ph...o.htm&id=12777

  6. Folgender Benutzer sagt Danke zu trinitaucher für den nützlichen Beitrag:

    L.T. (05.06.2012)

  7. #5
    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 trinitaucher,

    danke für die Links.
    Aber das ist ja genau das was ich mit umständlich gemeint habe.
    Entweder ich kopiere jede Var Einzeln mit dem verlinkten Baustein ins NOVRAM.
    (Dann hab ich aber 150 FB Aufrufe nur für das Speichern von ein paar Retain Daten hätte aber für jede Retain Var ein ordentliche Bezeichnug (z.B. MD_1515_Setpoint_ValueA)
    Vorteil:
    - Jede Var ist am Namen zu bestimmen
    - Gelöschte Var werden beim kompilieren angemeckert und können gelöscht werden
    Nachteil:
    - Wahnsinns Aufwand
    - werden Var gelöscht muss die Lücke händisch im NOVRAM neu belegt werden (Index der Speicherbelegung muss ja durch den Nutzer bestimmt werden)

    Oder ich würde ein Array anlegen und das dann mit einem FB-Aufruf ins NOVRAM kopieren.
    Dann hätte ich aber als einzigen Unterschied bei den ganzen Var im Programm nur den Index meines Array (z.B. Retain_Elemente[1]).
    Vorteil:
    - alle Retain werden auf einen Schwung gesichert
    Nachteil:
    - keiner kennt sich im Programm aus da die Var nicht an der Bezeichnung zu erkennen ist
    - werden nachträglich Var im Prog. gelöscht bleiben im Array Lücken die fast nicht mehr zu finden sein dürften
    somit wird Speicherplatz verschenkt

    Gruß L.T.

  8. #6
    Registriert seit
    19.05.2008
    Beiträge
    651
    Danke
    118
    Erhielt 136 Danke für 105 Beiträge

    Standard

    Hallo L.T. ,

    lege doch deine Variablen an wo du willst. Gib ihnen die Namen die du willst.
    Wenn du jetzt diese Variablen direkt mit dem NOVRAM verknüpfst, hast du doch was du willst.

    Nur übertreiben solltest du das nicht, weil es Ressourcen frisst.

    Wen du viele Variablen hast, die sich aber selten ändern, dann ist das Beispiel mit Variante 2 das richtige.

    Gruß
    Chräshe

  9. #7
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    773
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    Du kannst deine Daten auf in den Flash schreiben. Da muss man nur bei jedem Flashspeichern den FB aufrufen. Der spiechert dann alle Retain/ Persistent variablen im Flash.
    Da bei sehr häufigen peichern der Flash aber kaputt gehen kann würde ich das speichern über eine USV oder wenn möglich als zusätzliche Anforderung bei bestimmten Tasten der HMI senden.

    Bei relativ kleinen Programmen kommt man damit recht gut über die runden.
    irgendetwas ist ja immer...
    ING. Gerald Miedler
    Zitieren Zitieren FLash  

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

    L.T. (05.06.2012)

  11. #8
    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 Gerri,

    mit Flash meinst du jetzt aber ja jetzt wieder nicht das NOVRAM, oder?
    Welche FB´s regeln lesen/Schreiben vom Flash-speicher?

    Danke!

    Gruß Lars

  12. #9
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    773
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    nein, das ist wirklich das Hard Disk laufewerk. unter TwinCAT/Boot siehst du das
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  13. #10
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von L.T. Beitrag anzeigen
    Hallo trinitaucher,

    danke für die Links.
    Aber das ist ja genau das was ich mit umständlich gemeint habe.
    Entweder ich kopiere jede Var Einzeln mit dem verlinkten Baustein ins NOVRAM.
    (Dann hab ich aber 150 FB Aufrufe nur für das Speichern von ein paar Retain Daten hätte aber für jede Retain Var ein ordentliche Bezeichnug (z.B. MD_1515_Setpoint_ValueA)
    Vorteil:
    - Jede Var ist am Namen zu bestimmen
    - Gelöschte Var werden beim kompilieren angemeckert und können gelöscht werden
    Nachteil:
    - Wahnsinns Aufwand
    - werden Var gelöscht muss die Lücke händisch im NOVRAM neu belegt werden (Index der Speicherbelegung muss ja durch den Nutzer bestimmt werden)

    Oder ich würde ein Array anlegen und das dann mit einem FB-Aufruf ins NOVRAM kopieren.
    Dann hätte ich aber als einzigen Unterschied bei den ganzen Var im Programm nur den Index meines Array (z.B. Retain_Elemente[1]).
    Vorteil:
    - alle Retain werden auf einen Schwung gesichert
    Nachteil:
    - keiner kennt sich im Programm aus da die Var nicht an der Bezeichnung zu erkennen ist
    - werden nachträglich Var im Prog. gelöscht bleiben im Array Lücken die fast nicht mehr zu finden sein dürften
    somit wird Speicherplatz verschenkt

    Gruß L.T.
    Vielleicht Variante 2, aber mit Strukturen? So hab ich's immer gemacht. Aufruf ist dann einfach per MyStruct.VarName möglich.

    Es gibt bei den PC-basierten Steuerungen nur diese vier Wege für remanente Daten:
    1. Automatisches Speichern der RETAIN oder PERSISTENT Variablen (bei Shutdown des Rechners) => evtl. USV erforderlich (ggf. 1 Sek-USV)
    2. Speichern der RETAIN oder PERSISTENT Variablen per FB.
    3. NOVRAM mit zyklischem Schreiben => frisst Performance, je nach Zykluszeit.
    4. NOVRAM mit Schreiben bei Bedarf => aufwändiger zu programmieren, schont aber Ressourcen

    Für Variante 3 könnte man zum Schonen der Ressourcen auch eine langsame Task anlegen und damit das NOVRAM beschreiben.

Ä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
  •