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

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

Thema: Funktionsbausteine Ausgangsparameter

  1. #1
    Registriert seit
    13.11.2014
    Ort
    Paderborn
    Beiträge
    190
    Danke
    15
    Erhielt 13 Danke für 12 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich wollte mir einen Funktionsbaustein erstellen und verwendet werden IN, OUT, STAT Variablen, allerdings habe ich damit noch nicht viel gearbeitet.
    Jetzt die Fragen:

    Wenn ich in diesem FB eine OUT Variable über eine PF Setze, ist diese dann Dauerhaft gesetzt oder verhält sich diese wie eine TEMP Variable und hat einen undefinierten Zustand sobald ich den FB verlasse? Oder muss ich eine STAT Variable über die PF setzen und damit die OUT Variable setzen?

    Angenommen Sie bleibt dauerhaft gesetzt, wie kann ich diese OUT Variable zurücksetzen?
    über eine extra IN Variable mit einem extra NW im FB, wo diese OUT Variable zurückgesetzt wird oder direkt auf den Instanz DB die OUT Variable zurücksetzen?
    Zitieren Zitieren Funktionsbausteine Ausgangsparameter  

  2. #2
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Den FB rufts Du regelmässig auf, nach dem Verlassen des FB stehen in den Out Variablen die Werte, die Du reingeschrieben hast. Diese Werte bleiben GARANTIERT erhalten, bis Du das nächste mal in den FB einsteigst. Wenn der Compiler es überhaupt zulässt, dass Du aussrhalb des FB auf diese Variablen schreibst, ist er schwach, zumindest sollte er warnen.

    Innerhalb des FB schreibst Du die Out Variablen. Wenn Du nicht schreibst, könntest Du ein Problem bekommen, das Verhalten ist dann wohl NICHT GARANTIERT. Wenn Du liest, bevor Du schreibst, sollte der Compiler ebenfalls warnen.

    Lesen nach schreiben und wiederum schreiben sollte innerhalb des FB zulässig sein, ist aber "schlechter Stil", d.h. in unserer Firma spätestens beim Review durchgefallen.
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Nicht alles ist vom Verhalten definiert.  

  3. #3
    Avatar von Junge
    Junge ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.11.2014
    Ort
    Paderborn
    Beiträge
    190
    Danke
    15
    Erhielt 13 Danke für 12 Beiträge

    Standard

    d.h. einmal den FB aufgerufen und eine OUT Variable hat den Status TRUE , bleibt diese Variable solange auf True bis ich den FB erneut aufrufe und die Variable durch die Verknüpfung den Status False bekommt. Daraus schließt sich aber auch, dass ich diese OUT Variable dann auch nur innerhalb des FB´s zurück setzen kann.

    Also die OUT Variable verhält sich ähnlich wie die STAT Variable bzgl. des Status.

    Ok, Danke. Denke das hat mir weitergeholfen.

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

    Standard

    Bei Step7 muß man einem FB-OUT nicht bei jedem Aufruf etwas zuweisen. Ohne Zuweisung behalten die OUT ihren Wert - sie verhalten sich wie STAT.

    Allerdings können die OUT-Parameter von außerhalb des FB direkt beschrieben werden - deshalb ist es NICHT garantiert, daß sie beim nächsten FB-Aufruf noch den Wert vom vorherigen Aufruf haben. Und deshalb warnt der TIA-Compiler, wenn ein FB-OUT innerhalb des FB gelesen wird.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Paul (11.03.2016)

  6. #5
    Registriert seit
    03.12.2008
    Beiträge
    654
    Danke
    160
    Erhielt 185 Danke für 113 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    .... und deshalb warnt der TIA-Compiler, wenn ein FB-OUT innerhalb des FB gelesen wird.
    Das ist also der Hintergrund für diese BLÖDEN NERVIGEN Warnungen, die an dieser Stelle immer aufpoppen.
    Da muss man erst mal drauf kommen.

    Typisch TIA. Für jeden der halbwegs weiß was er macht sind diese "Verbesserungen" einfach nur lästig.

  7. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.223
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Ja, ich hab gestern auch versucht, die Warnungen wegzubekommen, indem ich Temp-oder Star-Variablen nutze und am Ende erst auf OUT schreiben. Aber das sind rel. viele und irgednwie sah das auch nicht so toll aus, am Anfang ein par Variablen lesen, am Ende schreiben, muß eigentlich nicht sein.
    Noch nerviger sind die Warnungen "Diese Variable ist evtl. nicht initialisiert". Die kann man teilweise gar nicht umgehen. Wenn ich am Ende eines FB einen SFC/SFB (z.B. für TCP/IP) aufrufe und der hat eine Fehlermeldung als OUT, dann lege ich die auf eine Stat-Var, werte die nach dem SFC/SFB aus und gebe einen Fehler aus. Aber natürlich wird die Stat-Var erstmals erst am Ende des FB geschrieben. Frage ich diese Stat-Vat aber am Anfang ab, wo z.. in einer Case-Anweisung in Schrift xy der Start für den SFC/SFB drinsteht, gibt es o.g. Meldung. Initialisieren direkt am Anfang des FB geht nicht, dann überschreibe ich die Fehlermeldung, in einer IF ... Then -Anweisung mit einer extra INIT-Flanke geht zwar, aber auch hier gibts eine Warnung. Wie löst ihr das? Ignorieren? Denn der FB funktioniert, es geht ja nur darum, in Fehlerfall keinen Start zu geben.
    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

  8. #7
    Registriert seit
    03.12.2008
    Beiträge
    654
    Danke
    160
    Erhielt 185 Danke für 113 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    ... Wie löst ihr das? Ignorieren?
    Ignorieren, Augen zu und durch.

    Mistgelumpp, verrecktes.

  9. #8
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Also eine OUT-Variable ausserhalb eines FB's zu beschreiben stellt- ich sage mal einen zumindest- problematischen Umgang dar.
    Mag sein, dass es Fälle gibt wo man das machen muss, mir fällt gerade keiner ein.

  10. #9
    Registriert seit
    03.12.2008
    Beiträge
    654
    Danke
    160
    Erhielt 185 Danke für 113 Beiträge

    Standard

    Und außerdem gibt es ja auch noch INOUT.

  11. #10
    Avatar von Junge
    Junge ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.11.2014
    Ort
    Paderborn
    Beiträge
    190
    Danke
    15
    Erhielt 13 Danke für 12 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... hätte da nochmal eine Frage.

    Zu meinen erstellten FB100 habe ich mir einen Instanz DB100 erstellt.

    Wenn ich jetzt nun meinen FB100 z.B. 5 mal in einem Funktionsbaustein Aufrufe, muss ich dann jeweils einen eigenen Instanz DB dafür erstellen oder Kann ich jedesmal den gleichen DB100 verwenden?

Ähnliche Themen

  1. Funktionsbausteine
    Von redscorpion im Forum Simatic
    Antworten: 140
    Letzter Beitrag: 09.02.2014, 17:26
  2. Funktionsbausteine
    Von redscorpion im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.08.2011, 12:42
  3. Funktionsbausteine
    Von Blade im Forum PC- und Netzwerktechnik
    Antworten: 23
    Letzter Beitrag: 22.02.2008, 22:04
  4. Ein-/Ausgangsparameter einer FC in GRAPH
    Von derbenny im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 22.10.2007, 10:34
  5. Scl - Ausgangsparameter
    Von kpeter im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 26.02.2007, 20:48

Lesezeichen

Berechtigungen

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