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

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

Thema: MicroWIN - TEMP Variablen und OUT Ausgänge - SIEMENS Hinweis.

  1. #1
    Registriert seit
    21.08.2014
    Beiträge
    42
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPS Forum Mitglieder,

    Ich bin zurzeit beim Programmieren von einer SPS S7-200. Habe schon ganz viel über die TEMP Variablen in den SBRs gelesen und im Internet recherchiert. Es kam aus, dass am bestens die TEMP überhaupt nicht verwenden und eine STAT Variablen einsetzen. Auf die Weise habe ich über V Variablen einige, für mich so genante, interne Merkers erzeugt - zum beispiel Int_M_01 --> V1000.0 und mittels der Int Merkers die Netzwerke in SBR verknüpft. Nun bin ich an folgenden Hinweis von SIEMENS gestoßen - sehe LINK: https://support.industry.siemens.com...wende?lc=de-WW

    Wie ich das verstanden habe, angeblich es können auch einige Probleme bei den internen L Variablen von OUT auftreten. Nach SIEMENS Empfehlung man sollte am Anfang des OBs eine Subroutine einsetzen die die alle Ls auf gewissen Stand setzt - vorzugsweise auf FALSE meiner Meinung nach - sehe auch die Bilder. Eventuell alle über IN/OUT durchlassen.

    SPS-01.PNG

    SPS-02.jpg

    Könnte mir jemand das klären, ob die alle OUTs am Anfang auf FALSE bzw. TRUE gesetzt werden sollen ?

    Was mit den TEMP Variablen gibt es ein gewissen Beispiel wo man die einsetzen könnte ?

    MfG,

    T-Mack
    Zitieren Zitieren MicroWIN - TEMP Variablen und OUT Ausgänge - SIEMENS Hinweis.  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Die Outs der SBRs verhalten sich wie Temps.
    Das heisst, sie müssen in jedem Zyklus als erstes (neu) beschrieben werden, bevor man lesend auf sie zugreift. Egal, ob innerhalb oder außerhalb der SBR. Ansonsten ist ihr Zustand undefiniert. Das kann unter gewissen Umständen wie im Zyklus vorher sein, muss aber nicht.
    S(et) und R(eset) z.B. schreiben nicht jeden Zyklus. Daher muss dort entweder InOut oder eine globale Variable verwendet werden.

  3. #3
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Temps kann man problemlos für Zwischenergebnisse verwenden.
    Also in jedem Zyklus der Temp erst einen Wert zuweisen und mit diesem Wert noch im gleichen Aufruf der SBR weiter arbeiten funktioniert.
    Erfolgt jedoch eine Beendigung der SBR, in der die Temp deklariert ist, so wird sie wieder zum Überschreiben frei gegeben und somit ist ihr Wert bis zum nächsten Aufruf der SBR bzw. genauer bis zum nächsten Beschreiben der Temp undefiniert.

  4. #4
    Registriert seit
    21.08.2014
    Beiträge
    42
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Hucki,

    Danke für deinen Aufklärung.

    Könntest du sich bitte die folgende Bilder anschauen, und eventuell beurteilen ob diese SBR korrekt gemacht wurde ?


    SPS-3.PNG

    SPS-4.PNG


    Ich möchte noch was fragen:

    Also wenn ich es gut verstanden habe, ein Zyklus innerhalb der SBR bedeutet der Programmablauf in diesem Fall von Netzwerk #1 bis Netzwerk #2, und anschließend wieder alles von Vorn, heißt Zyklus #2, #3, usw. ... ???

    Die SBR wird permanent aufgerufen mit SM0.0, also TEMPS behalten ihre Zustände. Wenn wir nun den SM0.0 rausnehmen würden, dann werden die TEMPS verloren gehen, heißt möglicherweise überschrieben von einer anderen SBR ???

    MfG,

    T-Mack
    Geändert von thomasdeldiaz (24.04.2015 um 09:30 Uhr)

  5. #5
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Die Temp-Variable in Bild 1 ist richtig verwendet, weil sie zuerst (im NW1) beschrieben und danach erst (NW2) gelesen wird. Dabei spielt es keine Rolle, ob die SBR in jedem Zyklus oder nur bei Bedarf aufgerufen wird.

    Stell Dir folgenden Ablauf vor:
    1. Alle Eingänge der SPS erfassen
    2. Den Programmzettel Main abarbeiten
    3. Alle Ausgänge lt. Programm setzen

    In 2. steht bei Dir - SBR aufrufen
    Mit dem Aufruf werden alle lokalen Variablen der SBR angelegt, dann deren Netzwerke abgearbeitet und zum Schluss die Ergebnisse an die (In-)Out-Variablen, die am Aufruf der SBR angegeben sind, übergeben. Danach wird die SBR beendet und es werden alle! lokalen Variablen der SBR zum Überschreiben frei gegeben. Wenn jetzt also noch was im Main folgt, sind diese also nicht mehr verfügbar. Auch wenn Du die SBR im gleichen Zyklus noch ein 2. mal aufrufst, müssen alle Variablen der SBR neu geschrieben werden.

    Also auch wenn Du die SBR mit dem SM0.0 in jedem Zyklus aufrufst, wird sie trotzdem jedesmal neu gestartet und wieder beendet.

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von thomasdeldiaz Beitrag anzeigen
    Die SBR wird permanent aufgerufen mit SM0.0, also TEMPS behalten ihre Zustände.
    Nein, TEMPs behalten ihren Zustand NICHT!, weil sie nach Abarbeitung dieser SBR auch in anderen SBR für andere Zwecke benutzt werden (können), was diese SBR aber nicht weiß. Deshalb bei jedem Durchlauf davon ausgehen, daß völlig unbekanntes/unvorhersehbares in den TEMPs steht und zuerst unbedingt selber etwas bestimmtes in die TEMPs schreiben.
    Ob andere SBR die TEMPs benutzen ist völlig unabhängig davon, ob diese SBR aufgerufen wird. Umgekehrt kann diese SBR nicht wissen, wie die TEMPs von anderen SBR benutzt wurden.

    Die als IN oder IN_OUT bezeichneten Variablen müssen nicht auf TEMP-Variablen umkopiert werden. Die werden bei jedem Aufruf der SBR erneut mit den außen angelegten Werten beschrieben und können in der SBR sofort gelesen/benutzt werden.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #7
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.733
    Danke
    317
    Erhielt 1.522 Danke für 1.283 Beiträge

    Standard

    Wofür überhaupt der Aufwand?

    Du beschreibst im Baustein das V0.0 als absolute Adresse.
    Das wiederum schließt eine Mehrfach-Verwendung des Bausteins aus, und somit braucht man auch keine Schnittstelle.
    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
    21.08.2014
    Beiträge
    42
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Hucki und PN/DP,

    Es ist nun bisschen mehr klar geworden.

    Was passiert mit OUT Variablen, ist das OK wie ich es auf dem Bild 1 zugeordnet habe ?

    Danke,

    T-Mack

  9. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Ja, das ist okay.

    Um den von MSB angesprochenen Mangel zu beheben, musst Du noch eine INOUT-Variable anlegen, diese am Flipflop im NW2 verwenden und den V0.0 dann beim Aufruf der SBR an den neuen Schnittstellenparameter legen.
    Somit hast Du die globale Speicherung aus der SBR heraus geführt, was die SBR mehrfach nutzbar macht.

  10. #10
    Registriert seit
    21.08.2014
    Beiträge
    42
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Hucki,

    Diese Problem haben wir auf dem Forum schon berührt.

    Es lässt sich leide nicht auf die Weise lösen - über IN/OUT Variable - sehe Bilder.

    SPS-5.PNG

    SPS-6.PNG

    Es lässt sich zwar eine V Variable an die IN/OUT Schnittstelle zu zuweisen, aber in der SBR tritt ein Fehler auf - roter Kreis.

    Man muss unter die Umstände direkte Adressierung vornehmen.

    MfG,

    T-Mack

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 11.03.2014, 10:04
  2. Antworten: 6
    Letzter Beitrag: 12.11.2013, 14:32
  3. Wago 841 - Ausgänge und Variablen (Problem bei mehreren Zugriffen)
    Von Anwender01 im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 29.05.2012, 16:35
  4. Temp Variablen
    Von centrox im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 23.02.2009, 16:05
  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
  •