Multiinstanz mit SFB4

Beiträge
212
Reaktionspunkte
20
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Miteinander.

Eines vorneweg: Klasse Seite, hat mir schon oft geholfen.

In einem vorherigen Thema wurde beschrieben, dass Timer (z.B. SFB4) über eine Multiinstanz (in meinem Programm DB5) betrieben werden können.

Mein Problem ist folgendes (siehe vielleicht angehängtes Programm)-

Ich rufe im FB 11 2x den FB 10 auf. Im FB10 ist der Timer SFB4 hinterlegt.
Wenn ich beide Timer (Zeit_1 und Zeit_2) im FB 11 starte, laufen beide Zeiten erst dann los, wenn beide Kontakte ne "1" haben. Und leider auch nur mit EINER eingestellten Zeit.

Weiss einer evtl, wo ich mich verzottelt habe?

Über Antwort und vor allem Hilfe würde ich mich freuen.

Gruss Dabbes
 

Anhänge

  • Test_sfb4.zip
    217,9 KB · Aufrufe: 61
Du hast im FB10 am SFB4 einen Instanz-DB 4 stehen,
dieser muss auch im STAT-Bereich des FB10 deklariert werden,
wie du das im FB11 ja im Grunde hast.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
???

Ääääähhhh....
*überleg
*versuch.....

mit was für nen Datentyp kann ich denn eine DB in Stat im FB 10 deklarieren????

Da passt doch nix zum nem DB. Zumindest wird,egal was ich nehme, alles rot angezeigt.....:???:
 
Ääääähhhh....
*überleg
*versuch.....

mit was für nen Datentyp kann ich denn eine DB in Stat im FB 10 deklarieren????

Da passt doch nix zum nem DB. Zumindest wird,egal was ich nehme, alles rot angezeigt.....:???:

So nicht.
Du legst eine Statische Variable im FB 10 an

Name MyTimer, Typ SFC4

Dann brauchst du bei Aufruf des Timers keine DB angeben, sondern einfach

Call MyTimer

da der Instanz-DB dazu nicht extra erzeugt wird, sondern im Instanz-DB deines aufrufenden FB integriert ist. Voraussetzung ist, daß du bei deinen FB beim Erzeugen ein Häckchen bei "Multiinstanzfähig" machst.

Genauso der FB 10, Statische Variable im FB11

Name MyFB, Typ FB10, Aufruf Call FB10
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo allerseits!

Ich steige gerade um von Microwin (S7-200) zu Vipa-CPUs, zum programmieren verwende ich Win-SPS-S7 V6 (Professional).

Ich versuche gerade Multiinstanz-Zeitgeber zu erstellen.
Ich habe dazu eine neue FB erstellt (FB_TON, in der Symboltabelle so eingetragen; FB4). In meinem Stat-Bereich habe ich Ein- & Ausgänge definiert, im Netzwerk 1 den SFB4 reingezogen (FUP).

Hier fangen nun meine Probleme an: Ich kann die zugehörige Instanz-DB (DB_TON in der Symboltabelle; DB4), die ich explizit als Instanz-DB erzeugt habe, nicht eintragen am eingefügten SFB4. Die Meldung lautet "Der angegebene Datenbaustein ist der Instanzdatenbaustein von FB4".
Muß ich evtl einen anderen DI angeben/anlegen? Oder habe ich einen kapitalen Denkfehler??? Ich habe das Beispiel des Erstellers geladen und getestet, das funktioniert mit denselben Angaben einwandfrei.

Und wenn ich den var Mein_TON mit Typ SFB4 anlege, so wird der auch rot angezeigt: "Ungültiger Typ: Instanz-Typ identisch mit FB: Nicht erlaubt"

Ich bin grad echt verzweifelt...
 

Anhänge

  • DI FB4.GIF
    DI FB4.GIF
    31,9 KB · Aufrufe: 37
  • FB Multi-TON.jpg
    FB Multi-TON.jpg
    94,2 KB · Aufrufe: 43
Hi!

So hundert Prozent klar wird mir aus der Beschreibung und den Bildern zwar nicht, was du genau versucht hast, aber ja, ich glaube du hast einen Denkfehler :p

Ein Instanz-DB vom SFB4 ist keine Multiinstanz sondern halt eine ganz normaler Singleinstanz. Für Multiinstanz bei WinPLC: Einen FB anlegen und darin eine statische Variable vom Typ SFB4 erzeugen. Dann zumn Reiter Katalog wechseln und aus dem Ordner "Multiinstanzen" das Element "SFB,#MeineVariable" in ein Netzwerk des angelegten FBs ziehen (zumindest bei WinPLC V5 kann man nicht in AWL-Netzwerke ziehen und die Multiinstanz im Katalog erscheint manchmal erst, wenn man das Projekt schließt und neu öffnet). Abschließend einen normalen Instanz-DB für deinen FB erstellen und ganz normal aufrufen.
 
Ich habe den Fehler gefunden: Meine DB muß eine andere Nummer haben, also Instanz-DB für den SFB4 muß z.B. DB40 oder so haben, da der SFB4 intern selber eine DB4 anlegt. Ich habe zwecks besserer Zuordnung meine Instanz-DB auf die 40 gelegt, seitdem funktioniert das wie gewünscht. Vielen Dank nochmal!
 
Zurück
Oben