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

Ergebnis 1 bis 9 von 9

Thema: Codesys bzw. TwinCAT PLC-Control

  1. #1
    Registriert seit
    13.01.2007
    Beiträge
    304
    Danke
    35
    Erhielt 29 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Abend!

    Ich arbeite nun schon geraume Zeit (nun genau 1 Jahr) mit TwinCAT PLC-Control und habe auch schon etliche Projekte realisiert. Je mehr ich damit arbeite und die vielfältigen Möglichkeiten langsam zu realisieren beginne, bewahrheitet sich aber auch gleichzeit für mich der Satz: "Ich weiss, dass ich nichts weiss".

    Nun doch zu meinem aktuellen Problem und Frage. Ich hoffe es kann mir jemand weiterhelfen.

    Ich arbeite sehr viel mit Strukturen. Die instanzierten Variablen werden dann einem zugehörigen FB z.B. als Eingangsvariablen mitgegeben. Dies hat für mich einfach den Vorteil, dass der Baustein nich x-Eingangs- oder Ausgangsvariablen hat. Da ich aber nicht allwissend bin, passiert es natürlich, dass die Struktur um Variablen erweitert werden muss.

    Dabei ist mir öfters aufgefallen, dass danach die Werte der Variablen in der Struktur "weg" waren. Mir wurde daraufhin gesagt, dies sei ein normales Verhalten, da ja das dann eine "NEUE" Variable sei, die dann initialisiert wird.

    Ich habe das jetzt nachgestellt (allerdings nur mit einer handvoll Strukturelemten) und auch nach Änderung, also hinzufügen, ja sogar löschen von Strukturelementen, waren die Werte der Variablen nicht weg, alle hatten ihren richtigen Wert, wie vor der Änderung.

    Sind hier bestimmte Regeln zu beachten?

    Weiters ist mir aufgefallen dass auch nach einem Online-Change manchmal der Inhalt von Variablen verloren geht. Ist so ein Verhalten TwinCAT-spezifisch oder liegt das Problem (wenn es eines gibt) bei Codesys?

    Für weiterführende Hilfe wäre ich sehr dankbar,

    LG

    MarkusP.
    Zitieren Zitieren Codesys bzw. TwinCAT PLC-Control  

  2. #2
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard

    Hallo Markus,

    beim Online Change müssen natürlich alle alten Variablenwerte erhalten bleiben und alle neuen Variablen initialisiert werden. Das gilt auch für Strukturen. Wenn du eine Struktur um eine Komponente erweiterst, dann werden alle Variablen von diesem Typ umkopiert. Die alten Komponenten behalten ihren Wert, die neuen werden initialisiert.
    Jetzt kann ich natürlich mit Deinem "manchmal geht der Inhalt von Variablen verloren" wenig anfangen. Ich kann dir nur sagen, so sollte es nicht sein.
    Grundsätzlich ist das Verhalten beim Online Change in Twincat und Codesys das gleiche.

    Bernhard

  3. #3
    MarkusP ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2007
    Beiträge
    304
    Danke
    35
    Erhielt 29 Danke für 25 Beiträge

    Standard

    Danke für die beruhigende Antwort! Aufgrund eines älteren Beitrages schließe ich darauf, dass Sie von 3S sind?!

    Kann es doch einen Grund geben (Fehler meinerseits), dass Daten irgendwie "verloren" gehen?

    Zitat: Wenn man vergisst das Bootprojekt zu erzeugen, dann hast du in den persistenten Daten die neuen Strukturen und beim nächsten Hochstart mit dem alten Bootprojekt passen diese nicht zusammen und werden verworfen...

    Das wäre für mich eventuell schon eine Erklärung. (Fehler meinerseits)

    Kann beim Umkopieren der Strukturelemente in die neuen Elemente ein Fehler passieren? Bei einem Freund von mir gab es nach einem Online-Change offenbar sogar Überlappungen mit Hardwareadressen. Dies war aber auch nicht mehr nachvollziehbar.

    Villeicht ist es auch bloß eine Einstellungssache...

    Ich muss dazu sagen, dass wir in den Projekten einige hunderte (wenn nicht tausende) Variablen haben, und dieses Problem "mit verloren gegangenen" Variableninhalten erst einige male bei vereinzelten Variablen aufgetreten ist, und die Ursache für für mich nicht nachvollziehbar war bzw. reproduzierbar ist. Es verunsichert mich halt nur ein bißchen und ich kenne ja den genauen Mechanismus des ONLINE-Changes nicht. Zudem könnte ich aber auch nicht immer alle Variablen kontrollieren.

    Vielen Dank nochmal!

    LG

    Markus.

  4. #4
    MarkusP ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2007
    Beiträge
    304
    Danke
    35
    Erhielt 29 Danke für 25 Beiträge

    Standard

    Zitat Zitat von Werner29 Beitrag anzeigen
    beim Online Change müssen natürlich alle alten Variablenwerte erhalten bleiben und alle neuen Variablen initialisiert werden. Das gilt auch für Strukturen. Wenn du eine Struktur um eine Komponente erweiterst, dann werden alle Variablen von diesem Typ umkopiert. Die alten Komponenten behalten ihren Wert, die neuen werden initialisiert.
    Jetzt kann ich natürlich mit Deinem "manchmal geht der Inhalt von Variablen verloren" wenig anfangen. Ich kann dir nur sagen, so sollte es nicht sein.
    Grundsätzlich ist das Verhalten beim Online Change in Twincat und Codesys das gleiche.
    Bernhard
    Hatte gerade gestern wieder das Phänomen, dass nach einer Strukturerweiterung alle Variablen in allen Instanzen initialisiert, also Null waren . Ich hatte eine Variable mitten in der Struktur hinzugefügt, und dachte dass dies vielleicht der Grund sein könnte. Habe heute versucht das hier im Büro nachzustellen, aber es ist nach Hinzufügen der Variable kein Datenverlust festzustellen, d.h. die Strukturen wurden brav umkopiert. (wie von Dir beschrieben) Was läuft hier nur schief . Vielleicht kann mir wer weiterhelfen.

    Schönen Abend noch!

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

    Standard

    Ich hatte auch schon einige seltsame Effekte mit PLC Control, aber es hat mich ehrlich gesgt bisher nie gestört.
    Man weiß leider nicht genau, wie TwinCAT intern die Speicherbelegung organisiert. Es wird ja ein Byte-Alignment verwendet.
    Wenn eine Struktur erweitert wird, muss auch der Arbeitsspeicher neu organisiert werden. Zudem werden, glaube ich, intern für Strukturen und sonstige Variablen (Byte / Boolsche Variablen) jeweils separate "IndexGroups" genutzt (ADS).
    Mag sein, dass es damit was zu tun hat...

  6. #6
    MarkusP ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2007
    Beiträge
    304
    Danke
    35
    Erhielt 29 Danke für 25 Beiträge

    Standard

    Hast Du Deine "seltsamen Effekte" jemals (z.B. bei Beckhoff) hinterfragt? Für mich ist nämlich Datenverlust so ziemlich das schlimmste. Wir haben uns zwar einen DataLoader (C##) programmiert, aber das ist erstens bei 1000en Variablen zeitaufwendig und zweitens will ich das eigentlich nicht. Weiters hasse ich nichts mehr, als wenn etwas nicht mehr nachvollziehbar bzw. reproduzierbar ist.

  7. #7
    Registriert seit
    14.08.2003
    Beiträge
    53
    Danke
    3
    Erhielt 6 Danke für 2 Beiträge

    Standard

    Wie sind deine Variablen denn deklariert?

    VAR_GLOBAL:
    - nicht remanent, behalten bei Programmdownload ihren Wert nicht

    VAR_GLOBAL RETAIN
    - remanent, behalten bei Programmdownload ihren Wert nicht

    VAR_GLOBAL PERSISTENT
    - nicht remanent, behalten ihren Wert bei Programmdownload

    VAR_GLOBAL RETAIN PERSISTENT
    - remanent, behalten ihren Wert bei Programmdownload

    Bitte schau dir das mal im Handbuch an!
    Geändert von Techniker (16.03.2008 um 08:09 Uhr)

  8. #8
    MarkusP ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2007
    Beiträge
    304
    Danke
    35
    Erhielt 29 Danke für 25 Beiträge

    Standard

    Habe das Problem jetzt mit dem Support der Firma Beckhoff auflösen können. Wenn ein Programm eingeloggt wird, bei dem kein Online-Change mehr möglich ist (steht bei Dialog in Klammer), dann werden alle geänderten Datentypen neu initialisiert! Dieses Verhalten finde zurzeit aber nicht einmal in der Doku. Da ich sehr viel Offline also im Büro arbeite, kann das durchaus passiert sein. Das Problem lässt sich auch leicht jederzeit nachvollziehen: Ausloggen, Struktur ändern, Einloggen und danach aber <Alles Laden> wählen. Dies verhält sich genauso als wie ein Einloggen, bei dem ein Online-Change nicht möglich ist. Also Vorsicht beim Einloggen von Programmen. Ich wollte euch diese Info nicht vorenthalten.

  9. #9
    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
    Danke!
    Gut zuwissen!

Ähnliche Themen

  1. Tastenkombination TwinCAT PLC Control
    Von HK09 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 26.07.2016, 10:52
  2. TwinCAT PLC COntrol VISU
    Von Pinmaster im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 24.08.2011, 10:47
  3. Codesys Control Win V3 - Prozessdaten Archivierung
    Von PLEL im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 01.03.2011, 10:58
  4. TwinCat PLC Control 2.11.0
    Von jusi im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 14.01.2010, 21:30
  5. Variablenübergabe C++ - TwinCat PLC Control
    Von AndiM im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 22.06.2009, 14:23

Lesezeichen

Berechtigungen

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