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

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

Thema: FB mehrfach aufrufen

  1. #1
    Registriert seit
    29.01.2008
    Beiträge
    100
    Danke
    139
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich möchte einen parametrierte Funktionsbaustein 6 mal aufrufen und nur die Flankenmerker als statische Werte zugehörig zu jedem Aufruf in einem DB ablegen. Die Flankenmerker möchte ich aber nicht als IN oder OUT vereinbaren.

    Geht das irgendwie ?

    MfG
    homei
    Zitieren Zitieren FB mehrfach aufrufen  

  2. #2
    Registriert seit
    27.08.2004
    Ort
    Bei Bremen
    Beiträge
    648
    Danke
    11
    Erhielt 12 Danke für 10 Beiträge

    Standard

    FB
    also ich würde im FB meine Hilfsmerker im Statbereich (genauer im InstanzDB ablegen

    FC
    die Hilfsmerker als InOut Variable definieren.
    Gruß
    Heinz
    Zitieren Zitieren FB oder FC  

  3. Folgender Benutzer sagt Danke zu Heinz für den nützlichen Beitrag:

    homei (05.03.2008)

  4. #3
    homei ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.01.2008
    Beiträge
    100
    Danke
    139
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Heinz Beitrag anzeigen
    FC
    die Hilfsmerker als InOut Variable definieren.
    Nein, das möchte ich auch nicht, mir geht es darum, dass die Hilfsmerker nicht beim Aufruf angegeben werden müssen.

    Eigentlich möchte ich so eine Art Multiinstanz, bei der nur die Flankenmerker statisch für den jeweiligen Aufruf sind. Ich möchte also nicht die Ein- und Ausgangsparameter einer Multiinstanz im DB ablegen.

    Ich weis aber nicht, ob und wie das geht


    MfG
    homei

  5. #4
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    Wenn Du normalerweise die FP/FN Funktion verwendest, will diese ja einen Hilfsmerker haben, in dem der letzte Zustand des Bits abgespeichert wird.
    Z.B.

    U E0.0
    FP M0.0
    = M1.0

    Ob Du nun dafür einen Merker verwendest, oder in einem FB ein Bit im "STAT" Bereich, ist völlig egal. Es ist auch egal, ob dieser FB als Multiinstanz aufgerufen wird.
    Im FB heißt es dann einfach

    U E_Irgendeiner
    FP MyStatVar
    = MyIrgendwas

  6. Folgender Benutzer sagt Danke zu Grubba für den nützlichen Beitrag:

    homei (05.03.2008)

  7. #5
    homei ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.01.2008
    Beiträge
    100
    Danke
    139
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke Grubba,

    aber ich habe mich sicherlich noch nicht richtig ausgedrückt. Vom Prinzip her will ich einen Multiinstanzaufruf machen, im "STAT" Bereich, also im DB möchte ich nur die zugehörigen Flankenmerker ablegen, keine IN- und OUT's.

    Geht das und wenn ja, wie ?

    MfG
    homei

  8. #6
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard

    Angenommen, Du hast 2 FBs, FB1 und FB2. In FB1 wird FB2 aufgerufen.

    Alles, was bei einem separatem Aufruf Deines FB2 in seinem eigenen InstanzDB steht, würde dann bei einem Multiinstanzaufruf mit in den InstanzDB von FB1 wandern.

    Aber so ganz verstehe ich Dein Problem aber immer noch nicht, glaube ich.

    Noch was:

    Es ist ja nicht so, das sich die Eingänge Deines FB2 am FB1 wiederfinden würden, falls Du das meinst....

  9. Folgender Benutzer sagt Danke zu Grubba für den nützlichen Beitrag:

    homei (05.03.2008)

  10. #7
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Zitat Zitat von homei Beitrag anzeigen
    Danke Grubba,

    aber ich habe mich sicherlich noch nicht richtig ausgedrückt. Vom Prinzip her will ich einen Multiinstanzaufruf machen, im "STAT" Bereich, also im DB möchte ich nur die zugehörigen Flankenmerker ablegen, keine IN- und OUT's.

    Geht das und wenn ja, wie ?

    MfG
    homei
    So wie Heinz bereits beschrieben hat, die Flankenhilfsmerker im stat-Bereich deklarieren- wo ist das Problem? Unter Objekteigenschaften musst du übrigen Multiinstanzfähigkeit ausgewählt haben, kontrollier das auch nochmal nach
    Geändert von kiestumpe (05.03.2008 um 15:39 Uhr) Grund: mmm
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)

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

    homei (05.03.2008)

  12. #8
    homei ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.01.2008
    Beiträge
    100
    Danke
    139
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Grubba Beitrag anzeigen
    Aber so ganz verstehe ich Dein Problem aber immer noch nicht, glaube ich.
    Ja, aber das liegt an mir. Ich sag nochmal was ich gemacht habe:

    -in einem FB2 habe ich IN und OUT vereinbart und unter STAT meine FLM's

    - in einem FB3 habe ich unter STAT 6 mal den Aufruf von FB2 vereinbart.

    - Im zugehörigen Instanz-DB 102 werden von allen Aufrufen die IN- und OUT-Parameter abgelegt sowie die Merker abgelegt.

    - Ich möchte aber nur die Merker im DB ablegen aus Platzgründen und diese dann immer aus dem DB lesen bzw den neuen Zustand reinschreiben.
    die IN und OUT bekomme ich ja immer aktuell aus dem Prozessabbild. Wozu sollen die noch im DB abgelegt werden.

    Ist damit jetzt was anzufangen?
    Wie kann man das programmieren?


    MfG
    homei

  13. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.709
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    ... ich glaube, ich habe die Frage jetzt verstanden ...

    Du kannst nicht verhindern, dass die IN's und OUT's deines FB's auch mit im Instanz-DB abgelegt werden. So blöde es klingt, aber das ist nun einmal so ...

  14. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    homei (06.03.2008)

  15. #10
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat von homei:

    "- Ich möchte aber nur die Merker im DB ablegen aus Platzgründen und diese dann immer aus dem DB lesen bzw den neuen Zustand reinschreiben.
    die IN und OUT bekomme ich ja immer aktuell aus dem Prozessabbild. Wozu sollen die noch im DB abgelegt werden."

    Dann gehe ich mal davon aus, das Du jede Menge Eingänge/Ausgänge hast, ansonsten würde ich mir über 100 Byte mehr oder weniger keine Gedanken machen.

    Wenn Du's aber kompliziert haben willst, gehts natürlich auch anders:

    Du könntest EINEN Eingang an Deinem FB definieren, an dem Du die Adresse Deinen Prozessabbildes einträgst. Dein FB müsste dann intern hingehen, und an dieser Adresse seine Daten abholen. (können theoretisch auch beliebig viele sein, setzt natürlich voraus, das Deine Daten irgendwie geordnet vorliegen. -> 1. Fb-Aufruf z.B. EW0 - EW10, 2. Fb-Aufruf z.B. EW11 - EW20 usw. Du übergibst dann halt jedesmal die Startadresse Deiner Daten.
    Ob das allerdings den Aufwand rechtfertigt, kannst nur Du beurteilen.
    Um wieviele Ein-Ausgänge reden wir denn pro Aufruf?

  16. Folgender Benutzer sagt Danke zu Grubba für den nützlichen Beitrag:

    homei (06.03.2008)

Ähnliche Themen

  1. SFC 12 - mehrfach aufrufen
    Von maweri im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 21.07.2009, 08:41
  2. FC mehrfach aufrufen
    Von settelma im Forum Simatic
    Antworten: 23
    Letzter Beitrag: 04.06.2008, 18:23
  3. FC mehrfach aufrufen
    Von Flo im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 03.04.2008, 13:33
  4. Timer mehrfach aufrufen
    Von DirkKuhn im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 11.07.2005, 15:23
  5. S7 200 Unterprogramme mit Timern mehrfach Aufrufen?
    Von plc_tippser im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 24.09.2004, 21:14

Lesezeichen

Berechtigungen

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