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

Ergebnis 1 bis 4 von 4

Thema: Deklaration Konstanten PLC-Control

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

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich hätte da wieder einmal eine Frage an Euch. Eigentlich etwas ganz banales, aber offenbar doch nicht...

    Eine über VAR CONSTANT deklarierte Variable erhält ja den ihr im Code zugewiesenen Wert. Als ich später einmal im Code den Wert der Konstante änderte (das dachte ich zumindest), war das Erstaunen groß, dass der Inhalt der "Variablen" nachwievor der alte war. Ich musste die Steuerung zurücksetzen, damit der Wert des Codes übernommen wurde! Damit würde sich die Konstanten ja gleich verhalten wie eine "normale" Variable, die mit einem Startwert initialisert wird

    Kann mir das jemand erklären? (in der Doku finde ich weder bei Beckhoff noch bei 3S etwas darüber)

    Danke und schönen Abend!
    Zitieren Zitieren Deklaration Konstanten PLC-Control  

  2. #2
    Registriert seit
    19.11.2010
    Ort
    Dresden
    Beiträge
    45
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo Markus,

    laut meinem Verständnis für Konstanten behält diese den initialisierten Wert und kann nicht vom Code aus überschrieben werden.
    Eine normale Variable wird immer auf 0 initialisiert. Möchte man einen anderen Wert am Anfang in der Variable stehen haben muss man dies mit einer Initialisierung machen. Egal ob mit oder ohne eigener Initialisierung sind normale Variablen aber immer vom Code schreibbar.

    Grüße, Mario

  3. #3
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    749
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Bei der Standardeinstellung des Compilers werden Konstanten tatsächlich im Datenspeicher abgelegt. Es sind sozusagen initialisierte Variablen mit Schreibschutz. Merken tut man das manchmal, wenn man zu viele Online Changes gemacht hat und die Speicherbereiche nicht mehr richtig reorganisiert werden. Dann ändern sich auch schon mal die Werte von Konstanten.
    Um dies zu vermeiden, kannst Du im PLC Control unter "Projekt/Optionen/Übersetzungsoptionen" den Punkt "Konstanten ersetzen" einschalten. Dann schreibt der Compiler die Konstantenwerte direkt in das Programm. Hat ausserdem den Vorteil, dass man dann Konstanten als Bitselektor in Integervariablen verwenden kann (statt WordVar.5 WordVar.NameVonBit5).

  4. Folgende 2 Benutzer sagen Danke zu StructuredTrash für den nützlichen Beitrag:

    MarkusP (15.02.2011),Thomas_v2.1 (15.02.2011)

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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Mario_K Beitrag anzeigen
    Hallo Markus,
    laut meinem Verständnis für Konstanten behält diese den initialisierten Wert und kann nicht vom Code aus überschrieben werden.
    Ich meinte mit Code natürlich richtigerweise in der Variablendeklaration. Und das funktioniert dann nicht. Den Wert der Variable kann man jedoch jederzeit ändern. (z.B. in einer Watchliste)

    Ich werde einmal die Compiler Option wie von StructuredTrash beschrieben testen.

    Danke für Eure Antworten

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 20.06.2010, 22:58
  2. Konstanten redefinieren
    Von Majestic_1987 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 13.08.2009, 12:22
  3. Konstanten Deklarierung
    Von COOLT im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 01.08.2009, 00:37
  4. Unbekannte Deklaration
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 14.10.2005, 20:50
  5. TP170B Deklaration
    Von Holle6 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 09.09.2005, 12:12

Stichworte

Lesezeichen

Berechtigungen

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