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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: temporäre Lokalvariablen

  1. #1
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo,
    behält eine temporäre Lokalvariable im OB1 ihren Wert von Basteinaufruf zu Bausteinaufruf?
    Konkret wurde im Programmcode am Ende des Zyklus die temporäre boolsche Lokalvariable "Var1" auf den Wert True gesetzt und dann in den ersten Anweisungen im OB1 abgefragt. Dabei zeigte sie immer noch den Wert True.
    Ich dachte, temporäre Lokalvariablen verlieren ihren Wert von einem Bausteinaufruf zum nächsten.

    Generell: Speichern temporäre Lokalvariablen im OB1 ihren Wert von Bausteinaufruf zu Bausteinaufruf, oder ist das hier mal zufällig so? Ich meine mal irgendwo gelesen zu haben, dass der Wert einer temp. Lokalvariable bei S7 nicht definiert ist, wenn noch kein Schreibbefehl erfolgte.


    Gruß
    Earny
    Zitieren Zitieren temporäre Lokalvariablen  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Earny Beitrag anzeigen
    behält eine temporäre Lokalvariable im OB1 ihren Wert von Basteinaufruf zu Bausteinaufruf?
    ja, im OB1 haben Temp-Variablen dieses verhalten und können hier, anders als in anderen baustein z.b. auch zur flankenauswertung benutzt werden.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Registriert seit
    13.10.2007
    Beiträge
    12.065
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Sie müssen ihren Wert nicht verlieren, können aber.
    Wenn du z.B. nur den OB1 hast und greifst nirgendwo anders
    auf Temponäre Var zu, kann es sein das diese Variable ihren
    zustand behält.

    Du solltest niemals in einer Lokalvariablen, Bausteinübergreifend
    einen Wert speichern, das geht in die hose.

    gruß helmut
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  4. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Helmut_von_der_Reparatur Beitrag anzeigen
    Sie müssen ihren Wert nicht verlieren, können aber.
    "können" nicht im OB1
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Na na ...
    Also erstmal muß auch im OB1 eine TEMP-Variable wenigstens ein Mal korrekt zugewiesen werden ... und dann, was ist, wenn ein Interrupt-OB aufgerufen wird ? Das mit der TEMP-Variablen funktioniert auch in einem FC wenn es davon nur einen Aufruf gibt - und dann baut einer einen 2. FC und ruft ihn auch auf ...!?
    Also ... ich sehe das wie Helmut und würde so einen Scheiß lassen ...

    Gruß
    LL

  6. #6
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... und dann, was ist, wenn ein Interrupt-OB aufgerufen wird ?
    alle OBs haben einen eigenen speicherbereich.

    aber warum probiert ihr es nicht einfach aus? bastelt einen sekundentakt zähler mit flankenauswertung über ein tempvariable und einen mit globalem merker und vergleicht die werte.

    habe ich recht, sind sie gleich - habt ihr recht, dann nicht...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.526 Danke für 1.286 Beiträge

    Standard

    Eigentlich hat es doch geheißen, das jede Prioritätsklasse Ihren eigenen Speicherbereich hat,
    d.h. für mich, das OB1 und alles was im selbigen aufgerufen wird sich diesen Stack teilen.

    Die von Larry beschriebene Interrupt-OB vermischung kann nicht vorkommen,
    das beeinflussen von OB1 Temp-Var mit Temp-Vars von anderen FC/FB die im OB1 aufgerufen imho aber schon.

    @vl
    Solange der Stack nur maßvoll verwendet ist, dürfte das immer funktionieren.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  8. #8
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard

    Zitat Zitat von MSB Beitrag anzeigen
    .....
    das beeinflussen von OB1 Temp-Var mit Temp-Vars von anderen FC/FB die im OB1 aufgerufen imho aber schon.
    .....
    Wie das? Das würde ja bedeuten, dass eine vor einem FC/FB-Aufruf bereits zugewiesene Tempvar nach dem Bausteinaufruf innerhalb des OB1 ihre Gültigkeit verloren haben könnte. Das ist aber definitiv nicht so.
    Geändert von OHGN (07.12.2009 um 13:24 Uhr)
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  9. #9
    Registriert seit
    13.10.2007
    Beiträge
    12.065
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    alle OBs haben einen eigenen speicherbereich.

    aber warum probiert ihr es nicht einfach aus? bastelt einen sekundentakt zähler mit flankenauswertung über ein tempvariable und einen mit globalem merker und vergleicht die werte.

    habe ich recht, sind sie gleich - habt ihr recht, dann nicht...
    ich hab es mal ausprobiert, in OB1 und OB35 eine Bolsche Variable als Bool
    20.0 eingebracht. Ich konnte Sie getrennt ansprechen und Sie haben ihre
    zustände gespeichert.

    Wieder etwas gelernt.
    Der Nachteil der Intelligenz besteht darin,
    das man ständig gezwungen ist dazuzulernen.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  10. #10
    Registriert seit
    24.05.2006
    Beiträge
    234
    Danke
    14
    Erhielt 77 Danke für 57 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es ist trotzdem Vorsicht angebracht, da es möglich ist, einen Anypointer auf die Lokaldaten des Vorgängerbausteins zusammenzubauen und sowohl lesend als auch schreibend zu verwenden.

Ähnliche Themen

  1. Lokalvariablen in Organisationsbausteinen
    Von Blueglasstalisman im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.08.2011, 14:33
  2. Zugriff auf temporäre Daten in OB
    Von Holger Levetzow im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 11.05.2010, 09:48
  3. Lokalvariablen im DB weg
    Von Wassermann im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 28.04.2010, 19:35
  4. Temporäre Variable Laden
    Von Bensen83 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 11.01.2010, 08:51
  5. Problem mit S7 Lokalvariablen
    Von mrcmm300 im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 26.11.2007, 23:12

Lesezeichen

Berechtigungen

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