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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: statische und temporäre Lokalvariblen

  1. #1
    Registriert seit
    23.02.2008
    Beiträge
    45
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich habe schon 3 SPS Bücher durchgearbeitet (Vogel Fachbücher),
    aber nie wurde wirklich genau erklärt was der unterschied zwischen einer
    temporären und statischen Lokalvariablen ist. Oder was überhaubt der Vorteil eines FB's gegenüber eines FC's ist.
    Wenn mir da jemand helfen könnte wäre ich sehr dankbar.
    Zitieren Zitieren statische und temporäre Lokalvariblen  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Sieh mal hier:
    http://www.sps-forum.de/showthread.p...Unterschied+FB

    Immer zuerst im Forum die Suchfunktion nutzen.

    Ansonsten nochmal ganz kurz, Statische Variable werden in Instanz-DB des FB abgelegt und sind immer gültig. Im prinzip, kann man auf sie auch aus anderen Bausteinen heraus zugegriffen werden (über den Instanz-DB, auch wenn das von den meisten Programmierern zu Recht als unsauberer Programmierstil angesehen wird). Bis zum ersten Beschreiben haben sie ihren Defaultwert aus dem DB, danach den Wert, mit welchem sie beschrieben wurden. Temporäre Variablen sind nur innerhalb ihres FB/FC gültig und zwar von dem Moment an, wo sie einen Wert zugewiesen bekommen, bis zum Ende des FB/FC. Im nächsten SPS-Zyklus können sie einen völlig unbestimmten Wert haben! Daher eignen sich Temp. Variablen z.Bsp. um Zwischenergebnisse von Berechnungen zu speichern, welche innerhalb eines FB/FC und innerhalb eines Zyklus abgeschlossen werden. Temp. Variablen werden auf dem Lokaldaten-Stack abgelegt, diesen benutzen alle Bausteine.
    Geändert von Ralle (24.02.2008 um 10:58 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    Registriert seit
    23.02.2008
    Beiträge
    45
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die schnelle Antwort, ich hätte noch eine Frage, verliert dann ein RS-Speicher als temporäre Variable nach jedem Zyklus auch seinen Wert.
    Zitieren Zitieren temporäre und statische Lokalvariablen  

  4. #4
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Ja, der RS-Speicher verliert als TEMP-Variable nach jedem Zyklus seinen Wert. Daher muss man bei einem RS-Speicher immer mit einer STAT-Variablen arbeiten.

    Gruß Kai

  5. #5
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Kai Beitrag anzeigen
    Ja, der RS-Speicher verliert als TEMP-Variable nach jedem Zyklus seinen Wert...

    Gruß Kai
    Auch in dem anderen Thread wird gesagt: Nach jedem Zyklus. Das ist NICHT richtig. Der Wert ist nur während eines einzigen Aufrufs GÜLTIG. Das bedeutet, bei mehreren Aufrufen desselben Bausteins in demselben Zyklus ist der Wert ebenfalls nicht mehr GÜLTIG!
    Ferner "finde" ich den Ausdruck "verlieren" hier unglücklich: Der Bereich der Lokalvariablen wird möglicherweise überschrieben, möglicherweise auch nicht, das hängt von der Position im Stack und der Stacktiefe nachfolgender Bausteine ab. Auch hat ein überschriebenes Bit mit 50% Wahrscheinlichkeit immer noch denselben Wert...

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

    Ganz (28.02.2008),Perfektionist (26.02.2008),Question_mark (25.02.2008),vierlagig (25.02.2008)

  7. #6
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Reden

    Hallo Zottel,

    treffender hätte man es nicht beschreiben können ...



    Aber durch die unsachgemässe Verwendung von temporären Variablen kann man dann eben ganz leicht die Funktion "Randomize" ersetzen ..

    Gruß

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren Ersatz für randomize  

  8. #7
    Registriert seit
    06.10.2003
    Beiträge
    3.403
    Danke
    447
    Erhielt 502 Danke für 406 Beiträge

    Standard

    Zitat Zitat von Zottel Beitrag anzeigen
    ..Der Bereich der Lokalvariablen wird möglicherweise überschrieben, möglicherweise auch nicht..
    Man muss also davon ausgehen dass der Wert verloren geht! Ich finde den Begriff sehr passend!


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  9. #8
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Onkel Dagobert Beitrag anzeigen
    Man muss also davon ausgehen dass der Wert verloren geht! Ich finde den Begriff sehr passend!
    Gruß, Onkel
    Ich finde ihn deshalb unpassend, weil es für jemand, der die Sache nicht verstanden hat, naheliegend wäre, es einfach zu probieren. Dann hat er bei einer Bit-Variablen eine Chance von mehr als 50% (50%, daß die Variable mit demselben Wert überschrieben wird plus die Hälfte der Wahrscheinlichkeit, daß sie in seiner speziellen Konstellation garnicht überschrieben wird), daß er den selben Wert vorfindet. Da mochte er denken: Juchhu, der Wert ist nicht verloren, da ist er ja noch!
    Alltagslogik: Was noch da ist, ist nicht verloren.
    Aber er ist nicht mehr gültig, soll heißen, (ausschließlich) durch die beabsichtigte Programmlogik bestimmt.

  10. #9
    Registriert seit
    23.02.2008
    Beiträge
    45
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, in dem SPS Buch Aufbaukurs (Vogelverlag) werden aber temporäre Variablen als Hilfsmerker verwendet (RS-Operation). Und es funktioniert.
    Ist da irgendetwas besonderes mit den HM.

  11. #10
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Wolflesch Beitrag anzeigen
    Hallo, in dem SPS Buch Aufbaukurs (Vogelverlag) werden aber temporäre Variablen als Hilfsmerker verwendet (RS-Operation). Und es funktioniert.
    Ist da irgendetwas besonderes mit den HM.
    Setz doch mal ein Beispiel rein, wo das vorkommt.

Ähnliche Themen

  1. Temporäre möglichst universelle Fernwartung
    Von SPSSchlumpf im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 27.01.2011, 12:11
  2. Zugriff auf temporäre Daten in OB
    Von Holger Levetzow im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 11.05.2010, 09:48
  3. Temporäre Variable Laden
    Von Bensen83 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 11.01.2010, 08:51
  4. temporäre Lokalvariablen
    Von Earny im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 08.12.2009, 08:48
  5. Temporäre Variablen in einem FB
    Von CanYouHelpMe im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.10.2008, 11:24

Lesezeichen

Berechtigungen

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