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

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

Thema: Temp Flankenmerker

  1. #1
    Registriert seit
    25.05.2007
    Beiträge
    47
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    weiß jemand, warum ich in einem FB keine TEMP Variable als Flankenmerker nutzen kann? Flankenmerkerbit bleibt gesetzt. In PLCSIM funktioniert das ohne weiteres. Zielsystem ist eine S7315-2DP. Bei einem OB 35 kann ich es noch nachvollziehen. .Wurde hier auch schon einmal behandelt

    Gruß und Danke.
    Zitieren Zitieren Temp Flankenmerker  

  2. #2
    Registriert seit
    01.01.2009
    Ort
    Niedersachsen
    Beiträge
    813
    Danke
    180
    Erhielt 79 Danke für 75 Beiträge

    Standard

    Hallo,

    Temp-Variable sind nur für einen Zyklus da.
    Nimm eine statische Variable, dann sollte es gehen.

    Gruß Jan

  3. #3
    Registriert seit
    25.05.2007
    Beiträge
    47
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Danke für die schnelle Antwort. Aber warum geht es im PLCSIM?

  4. #4
    Registriert seit
    01.01.2009
    Ort
    Niedersachsen
    Beiträge
    813
    Danke
    180
    Erhielt 79 Danke für 75 Beiträge

    Standard

    Bitte. Ich habe keine Ahnung, warum es da geht, evt. verhalten sich da die temporären Variablen anders. Vieleicht kann DIr da einer der Profis eine Antwort drauf geben.

  5. #5
    Registriert seit
    06.10.2003
    Beiträge
    3.408
    Danke
    449
    Erhielt 502 Danke für 406 Beiträge

    Standard

    Hallo baalrok,

    Zitat Zitat von baalrok Beitrag anzeigen
    ..weiß jemand, warum ich in einem FB keine TEMP Variable als Flankenmerker nutzen kann?..
    Such doch mal nach dem Wortlaut "undefinierten Zustand".


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

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

    Standard

    Eine Tempvariable liegt auf dem lokalen Stack. Wenn du nur einen Baustein laufen hast, wird das evtl. gehen, das Bit wird ja von keinem anderen Baustein überschrieben. Wenn aber viele Bausteine in der SPS sind, nutzt jeder den lokalen Stack.

    Start Baustein 1
    Baustein 1 packt 10 Byte auf den lokalen Stack
    ...
    Baustein 1 nimmt 10 Byte auf den lokalen Stack (natürlich bleiben Stackbyte Stackbyte, aber der Zeiger auf das Ende des Stack wandert wieder nach unten!)
    Ende Baustein 1

    Start Baustein 2
    Baustein 2 packt 8 Byte auf den lokalen Stack
    ...
    Baustein 2 nimmt 8 Byte auf den lokalen Stack
    Ende Baustein 2

    Wenn jetzt wieder Baustein 1 an der Reihe ist, wird und den Stack benutzt (Temp-Var!), dann wurden die ersten 8 Byte verändert, da die ja von Baustein 2 auch genutzt wurden. Byte 9 und 10 sind noch im alten Zustand und "könnten" als Flankenmerker noch funktionieren.

    PS: PLSSIM simuliert eine SPS, intern macht es sicher nicht komplett alles genauso, wie eine reale SPS.
    Geändert von Ralle (18.03.2009 um 21:41 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

  7. #7
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    274
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    Zitat Zitat von baalrok Beitrag anzeigen
    Danke für die schnelle Antwort. Aber warum geht es im PLCSIM?
    Das ist Zufall.
    Es kann unter best. Umständen auch auf einer CPU "zufällig" funktionieren.
    Und zwar genau dann wenn der von Dir verwendete Bereich auf dem L-Stack
    nicht vom Rest des Programms überschrieben wird.

    Für jeden Baustein wird auf dem L-Stack ein Bereich reserviert, der nach
    Abarbeitung des Bausteins wieder freigegeben wird.
    Dieser Bereich wird aber nicht "genullt", sondern bleibt im gleichen Zustand, bis anderer Baustein den Bereich belegt und Lokaldaten zuweist.

    Hoffe es ist einigermassen verständlich.

    Nimm es einfach als gegeben hin:
    TEMP-Variablen (=Lokaldaten auf dem L-Stack) müssen bevor sie gelesen werden können, im gleichen Bausteinaufruf erst zugewiesen werden.

    Übrigens hat jeder OB (=Prioritätsklasse) einen eigenen L-Stack.
    => d.h. falls du im OB35 nur einen FC genau einmal aufrufst hättest du den
    Sonderfall das die Flankenauswertung im OB35 "zufällig" funktionieren würde, da diese Lokaldaten vom OB35 L-Stack nur von diesem FC beschrieben werden.

  8. #8
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    274
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    Ralle war schneller

  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

    die einfachste erklärung: er hatte nur den einen baustein geladen! ... im OB1 funktionieren flanken btw auch mit temp
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    Registriert seit
    06.02.2009
    Beiträge
    28
    Danke
    3
    Erhielt 6 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Und warum funktionieren Flanken mit Temp- Varaiblen in einem FC hier auf der Steuerung???

    Ich sitze als Inbetriebnehmer vor einer Sinumerik 840D mit einer S7-319 Steuerung. Diese hat m.E. über 9000 MByte. Trotzdem verwendet der Hersteller zum Resourcensparen fast nur Lokalvariablen (es wird nur 300 MByte verwendet....). Es gibt 50-100 FC (und 50FB) und in den FC wird oft eine Flanke mit Temp- Variablen gebildet oder die Temp- Flanke setzt eine SR- Box mit Temp- Variablen (Die nach meinem Verständnis im nächsten Zyklus wahrscheinlich wieder 0 sein muss) .

    Eigentlich eine Todsünde, hier TEMP- Variablen zu verwenden, aber es funktioniert an 20 baugleichen Werkzeugmaschinen. Ist hier eine Einstellung geändert oder warum klappt das hier?

    Danke schon mal für Auskunft!
    Ritterlicher Verfechter der nachvollziehbaren und übersichtlichen Programmierung

    >>> Das Problem steht zu 95% vor der Maschine

    Meine Umgebung (meistens): Win XP, S7 V5.4 SP5, 840D sl, Transline

  11. Folgender Benutzer sagt Danke zu Pittie für den nützlichen Beitrag:

    jack911 (06.03.2012)

Ähnliche Themen

  1. Flankenmerker von Struktur erzeugen
    Von NeuSim im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.08.2010, 23:36
  2. Flankenmerker
    Von Manfred Stangl im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 24.03.2009, 08:31
  3. Flankenmerker in FB immer TRUE
    Von Reto im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 08.10.2006, 02:41
  4. Variablen als Flankenmerker
    Von blackball83 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 04.08.2006, 14:42
  5. Pointer auf Flankenmerker
    Von MEMO - Matthias im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 28.07.2005, 23:10

Lesezeichen

Berechtigungen

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