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

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

Thema: Problem mit Multiinstanz und SFB4

  1. #1
    Registriert seit
    04.11.2010
    Beiträge
    8
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen

    Ich bin leider ein Multiinstanz-Neuling
    Ich habe jedoch eine Aufgabenstellung bekommen, bei welcher ich, soviel ich bis jetzt erkannt habe, wohl um den Einsatz von Multiinstanzen nicht herum komme.

    Ich muss ein Programm erstellen, welches Zusatzfunktionen für eine Torsteuerung mit 12 Toren beinhaltet.

    Ich verwenden eine CPU 314 mit Step 7 V5.4.

    Ich möchte zwei FB’s anlegen einen Haupt-FB (FB1) und einen Steuerungs-FB (FB4).
    Im Steueungs-FB erstelle ich das ganze Programm.
    Im FB1 möchte ich dann den FB4 für jedes Tor aufrufen und mit den entsprechenden Ein. Und Ausgängen beschalten.

    Das Programm im FB4 beinhaltet auch drei Einschaltverzögerungen. Zuerst benutzte ich normale „S_EVERZ“ , bis ich merkte, dass diese nicht verwendet werden können bei mehrfachen Aufrufen. Also habe ich diese durch SFB4 ersetzt. Dazu habe ich bei Schnittstellen/STAT die drei Timer mit dem Datentyp SFB4 deklariert und diese im Programm eingefügt. Für den FB4 habe ich eine Instanz-DB FB104 erstellt.

    Wenn ich nun im FB1den FB4 für nur ein Tor aufrufe, funktioniert alles einwandfrei. Sobald ich den FB4 aber für mehre Tore aufrufe, funktioniert das mit den Timern nicht mehr so toll.

    Evtl. habe ich das mit den Multiinstanzen noch nicht ganz begriffen. Muss ich im FB1 für jeden FB4-Aufruf einen eigenen Instanz-DB erstellen oder kann ich einfach überall den FB104 eintragen? Ich habe schon beides versucht à Fehlanzeige. Was mache ich falsch?

    Ich hoffe, ihr konntet meinen Neuling-Erklärungen folgen und würde michfreuen, etwas dazulernen zu dürfen.
    Zitieren Zitieren Problem mit Multiinstanz und SFB4  

  2. #2
    Registriert seit
    22.01.2008
    Ort
    Allgäu, da wo die Kühe schöner sind als die Mädels
    Beiträge
    1.775
    Danke
    51
    Erhielt 731 Danke für 436 Beiträge

    Standard

    Du musst den FB4 im Stat Teil des FB 1 so offt deklarieren, wie du ihn brauchst.

    Dann die einzelnen Multiinstanzen aufrufen

    Im OB1 ruftst du den FB1 auf und gibst ihm einen DB

    Fertig

    btw. dies wäre auch mit timern gegangen, du musst nur die timernummern, die verwendet werden sollen dem fb4 übergeben
    Gruss Audsuperuser

    Herzlich Willkommen im Chat:
    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

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

    shephard (04.11.2010)

  4. #3
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    673
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    Hi,

    jeder FB, der nicht im ihn Aufrufenden FB als STAT deklariert ist benötigt einen eigenen Instanz DB.
    Ebenso wie jeder FB, der in einem Baustein aufgerufen wird, der keine STAT Variablen hat.

    Es mag Gründe geben, weshalb man einen FB mehrmals mit gleichem IDB aufruft, aber das ist eine seltene Ausnahme und trifft bei dir sicher nicht zu...

    Micha
    "arbeite klug, nicht hart" - deutsches Sprichwort

  5. Folgender Benutzer sagt Danke zu SPSKILLER für den nützlichen Beitrag:

    shephard (04.11.2010)

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

    Standard

    Um AUDSUPERUSERs Post etwas anschaulicher zu machen:

    Code:
    NAME            DATENTYP
    Tor_1            FB4
    Tor_2            FB4
    So die Schnittstelle

    Code:
     
    CALL #Tor_1
     
    CALL #Tor_2
    So die Aufrufe

    hoffe geholfen haben zu können!
    Das Grauen lauert in der Zwischenablage !!

  7. Folgender Benutzer sagt Danke zu dtsclipper für den nützlichen Beitrag:

    shephard (04.11.2010)

  8. #5
    shephard ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.11.2010
    Beiträge
    8
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank euch allen. Das hat mir scho sehr geholfen und ich konnte viele Instan-DB's killen.

    Das Problem besteht aber leider immer noch. Mitlerweile denke ich, dass es etwas mit den "P: Flanke 0->1 abfragen"-Gliedern zu tun hat, welche ich auch im FB4 werwende um ein SR-Flipflop anzusteuerun. Irgenwie schient dieses P-Glied einfach durchzuschalten anstatt nur die pos. Flanke auszuwerten. Wie muss ich mit diesen Flankengleidern im FB4 verfahren, dass es mit mehreren Bausteinaufrufen funktioniert?
    Zitieren Zitieren "P: Flanke 0->1 abfragen"-Glied schuld?  

  9. #6
    Registriert seit
    03.04.2008
    Beiträge
    6.206
    Danke
    237
    Erhielt 818 Danke für 692 Beiträge

    Standard

    Zitat Zitat von shephard Beitrag anzeigen
    Vielen Dank euch allen. Das hat mir scho sehr geholfen und ich konnte viele Instan-DB's killen.

    Das Problem besteht aber leider immer noch. Mitlerweile denke ich, dass es etwas mit den "P: Flanke 0->1 abfragen"-Gliedern zu tun hat, welche ich auch im FB4 werwende um ein SR-Flipflop anzusteuerun. Irgenwie schient dieses P-Glied einfach durchzuschalten anstatt nur die pos. Flanke auszuwerten. Wie muss ich mit diesen Flankengleidern im FB4 verfahren, dass es mit mehreren Bausteinaufrufen funktioniert?
    Du musst für jeden Aufruf eine eigene Flanke generieren und diese im STAT Teil des FB deklarieren.
    Dann klappt es auch bei mehrmals Aufrufen


    bike

  10. Folgender Benutzer sagt Danke zu bike für den nützlichen Beitrag:

    shephard (04.11.2010)

  11. #7
    Registriert seit
    02.10.2010
    Beiträge
    453
    Danke
    62
    Erhielt 87 Danke für 69 Beiträge

    Standard

    Zitat Zitat von shephard Beitrag anzeigen
    Das Problem besteht aber leider immer noch. Mitlerweile denke ich, dass es etwas mit den "P: Flanke 0->1 abfragen"-Gliedern zu tun hat, welche ich auch im FB4 werwende um ein SR-Flipflop anzusteuerun. Irgenwie schient dieses P-Glied einfach durchzuschalten anstatt nur die pos. Flanke auszuwerten.
    Kann es sein, daß Du die Flankenauswertung mit temporären Variablen statt mit statischen durchführst?
    Wenn ja, dann klappt so nicht. Temporäre Variablen behalten nur für einen
    Bearbeitungszyklus die ihnen angedachte Funktion, bei Mehrfach-Aufrufen in FB's werden sie im Programmzyklus vom nächsten aufgerufenen FB kaputtgeschrieben. Darum statische nehmen, die behalten ihren Zustand.

    Gruß
    Corosop15

  12. Folgender Benutzer sagt Danke zu Corosop15 für den nützlichen Beitrag:

    shephard (04.11.2010)

  13. #8
    shephard ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.11.2010
    Beiträge
    8
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Du musst für jeden Aufruf eine eigene Flanke generieren und diese im STAT Teil des FB deklarieren.
    Dann klappt es auch bei mehrmals Aufrufen

    bike
    Danke für Eure Antworten. Das Probelm hat sicher damit zu tun, dass ich temporäre Variablen verwendet habe. Wie meinst du dass genau, dass ich für jeden Aufruf eine eigene Flanke definieren muss? Meinst du im FB4 oder im FB1?

    Ich habe nun mal eine STAT-Variable für die Flanke (Flanke des Schliessimpulses) verwendet. Dies bewirkt nun, das wenigstens etwas funktioniert. Jedoch wird der Impuls immer für alle Tore gleichzeigtig erzeugt und nicht für jedes einzeln...

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

    Standard

    Zitat Zitat von shephard Beitrag anzeigen
    Danke für Eure Antworten. Das Probelm hat sicher damit zu tun, dass ich temporäre Variablen verwendet habe. Wie meinst du dass genau, dass ich für jeden Aufruf eine eigene Flanke definieren muss? Meinst du im FB4 oder im FB1?

    Ich habe nun mal eine STAT-Variable für die Flanke (Flanke des Schliessimpulses) verwendet. Dies bewirkt nun, das wenigstens etwas funktioniert. Jedoch wird der Impuls immer für alle Tore gleichzeigtig erzeugt und nicht für jedes einzeln...
    Du wirst pro Tor eine eigene Flanke brauchen, also noch elf baugleich zu der die Du bereits editiert hast.
    Die Flanken im FB1 schreiben und als "IN" an den FB 4 übergeben.

    Der Weg sieht doch schon gut aus!
    Geändert von dtsclipper (04.11.2010 um 15:28 Uhr)
    Das Grauen lauert in der Zwischenablage !!

  15. Folgender Benutzer sagt Danke zu dtsclipper für den nützlichen Beitrag:

    shephard (04.11.2010)

  16. #10
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von dtsclipper Beitrag anzeigen
    Du wirst pro Tor eine eigene Flanke brauchen
    [OT] Wenn ich das doch nur beim Fussball auch könnte [/OT]

    Tschuldige musste sein
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

Ähnliche Themen

  1. Multiinstanz mit SFB4
    Von Dabbes vorm Herrn im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 07.12.2017, 10:02
  2. Multiinstanz Problem - FB Mittelwertbildung
    Von Da_Basco im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 24.10.2011, 14:07
  3. SFB4 (TON) in SCL
    Von Gerri im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 06.10.2009, 21:11
  4. Multiinstanz Problem
    Von Beren im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 13.05.2009, 12:42
  5. SFB4 als Multiinstanz
    Von Anonymous im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 01.09.2008, 18:46

Lesezeichen

Berechtigungen

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