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

Ergebnis 1 bis 10 von 10

Thema: Temp Variablen

  1. #1
    Registriert seit
    09.04.2008
    Beiträge
    50
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dass Temp Variablen temporär sind ist mir natürlich schon klar, weswegen ich sie in meinen FC/FBs auch erst mal besschreibe bevor ich sie lese oder rausschreibe. Nun bin ich aber gad auf was gestossen was ich gerne wüsste.

    Ist der temporäre Stack einer Funktion beim Aufruf mit Nullen voll oder steht da undefiniertes von den vorherigen Funktionen drin. Bis gestern hätte ich gesagt es ist undefiniert, aber bin grad auf eine Funktion einer bestehenden Anlage gestossen die davon ausgeht dass Nullen drinstehen... Dieser FC ist nun seid über über zwei Jahren schon im Einsatz. Hab mal zu dem thema schon gegoogelt und ein wenig in der Hilfe gelesen, aber nichts eindeutiges gefunden. Hat da jemand ne genauere Info?
    Zitieren Zitieren Temp Variablen  

  2. #2
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Genau weiß ich es auch nicht, aber Sicherheitshalber gehe ich von undefinierten Zuständen aus.
    Das Grauen lauert in der Zwischenablage !!

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

    Die Zustände der Temp-Variablen sind absolut zufällig.
    Wenn die Funktion seit 2 Jahren funktioniert dann ist das pures Glück.

    Der Stack wird ja mehr oder weniger dynamisch aufgeteilt, bei entsprechend sparsamen Einsatz,
    der Temp-Variablen könnte es sogar sein, das jeder FB/FC seinen eigenen Bereich im Stack abbekommt.

    Gnade nur demjenigen Gott, der eine Funktion oder FB mit Temp-Variablen nachrüstet,
    und dann genau solche Bausteine von solchen Trotteln nicht mehr funktionieren,
    und man sich dabei nen Wolf sucht ...

    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).

  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

    ich frag mich grad, wie es aussieht, dass er von null ausgeht ... wie ist das umgesetzt?
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    Standard

    Zitat Zitat von MSB Beitrag anzeigen
    Die Zustände der Temp-Variablen sind absolut zufällig.
    Wenn die Funktion seit 2 Jahren funktioniert dann ist das pures Glück.

    Der Stack wird ja mehr oder weniger dynamisch aufgeteilt, bei entsprechend sparsamen Einsatz,
    der Temp-Variablen könnte es sogar sein, das jeder FB/FC seinen eigenen Bereich im Stack abbekommt.

    Gnade nur demjenigen Gott, der eine Funktion oder FB mit Temp-Variablen nachrüstet,
    und dann genau solche Bausteine von solchen Trotteln nicht mehr funktionieren,
    und man sich dabei nen Wolf sucht ...

    Mfg
    Manuel

    das bedeutet dass wenn man eine temporäre variable nicht beschreibt bevor man sie in z.B. einer Und verknüpfung verwendet, diese irgeneinen wert haben könnte?
    Ich setzte temporärer variablen prinzipiell zu beginn eines FC auf 0 weil mir das mal jemand empfohlen hat. Eine Erklärung hab ich bis heute noch nicht gefunden (weil mir das auch noch nie passiert ist).
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  6. #6
    Registriert seit
    03.11.2006
    Ort
    Niedersachsen
    Beiträge
    1.126
    Danke
    170
    Erhielt 303 Danke für 259 Beiträge

    Standard

    der Zustand der Temp-Variablen ist undefiniert weil in dem Speicherbereich
    der benutzt wird der ganze müll von vorherigen Bausteinen die die
    Temp-Variablen benutzen drin steht.
    somit ist der zustand der Temp-Var rein zufällig.
    wenn man davon ausgeht daß die auf null sind und es funktioniert ist das glückssache.
    bei der nächsten programmänderung kann es dann schon vorbei sein mit dem glück.
    also immer erst beschreiben.
    so ist es ja auch von S empfohlen.
    Gruß
    crash

    Ich bin nicht bekloppt,
    ich bin verhaltensoriginell!

  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

    Der Punkt von Vierlagig ist da in dem Spielchen auch noch ein höchst interessanter.

    Eigentlich gibt es 2 Möglichkeiten was in den Temp-Vars stehen kann:
    Der Wert vom letzten Zyklus des entsprechenden FC/FB (z.B. funktionieren in kleinen Programmen Befehle ala FP/FN mit Temp-Merkern)
    ODER halt eben irgend einen zufälligen Wert, aus irgend welchen anderen FC's/FB's ...

    Ergo, das diese Temp-Vars "exakt" den Wert null haben ist dann endgültig absoluter Zufall ...

    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
    09.04.2008
    Beiträge
    50
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Schön dass ihr der gleichen Ansicht seid wie ich, das ganze war so aufgebaut:

    Im Temp Bereich eine Integer definiert.

    Code wardann folgendermasen aufgebaut:

    Vergleiche In Variable auf Grenzwerte
    Springe wenn ausserhalb nach Ende:

    Rumrechnerrei nach einem bestimmten Rechenalgorithmus, und das Ergebnis in die Temp rein.

    Ende : Nehme die Temp Variable und lege sie auf den Ausgang


    Aus dem Kommentar im Bausteinkopf ist zu lesen dass der Augang Null wird wenn der Wert ausserhalb der Grenzwerte.

    Dass ich die Funktion dementsprechend geändert habe ist klar, ich stellte mir eben dadurch die oben gestellte Frage.

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

    verstehe ich deine beschreibung richtig, dass die berechnung übersprungen wurde, wenn außerhalb der grenzwerte?

    also kein
    IF <Grenzwerte>
    THEN <berechne>
    ELSE <0>
    ausgang:=temp

    sondern nur ein
    IF <Grenzwerte>
    THEN <berechne>
    ausgang:=temp

    dann stimme ich dir zu ... aber mit code hätte man es leichter nachvollziehen können
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    Registriert seit
    09.04.2008
    Beiträge
    50
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @vierlagig: Jep genauso war es, und so wie du hab ich es auch abgeändert.

    OK das nächste mal gibts dann auch Code

    Frohes schaffen noch!!!

Ähnliche Themen

  1. TEMP Variablen (Step7)
    Von Rüdiger im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 28.10.2010, 21:00
  2. IN Variablen nach TEMP
    Von neuer_user im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 06.10.2006, 16:26
  3. auf TEMP Variablen zugreifen
    Von serdnar im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.10.2006, 14:07
  4. Temp-Variablen bei FCs
    Von !Chris! im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 25.04.2006, 21:48
  5. Stat und Temp Variablen
    Von Anonymous im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 13.07.2004, 11:20

Lesezeichen

Berechtigungen

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