Step 7 Mehrere Timer in einem FB verwenden, so das sie nur in dem FB laufen

Itschi77

Level-1
Beiträge
31
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und guten Morgen,
folgendes Problem. Ich habe eine Funktion die unter anderem aus mehreren Timern besteht. Diese Funktion brauche ich immer wieder.
Also habe ich mir einen FB erstellt mit allen In, Out, usw die ich benötige. Wie muss ich die Timer in dem FB deklarieren damit ich später in einem FC den FB mehrmals verwenden kann und nicht immer die Timer Bezeichnugnen ändern muss. Verständlich was ich meine. Eine Anlage hat zb 10 Laufkontrollen und ich habe 10 solcher Anlagen. Jetzt möchte ich einen FB in dem die Timer und Merker usw für eine Anlage sind und ich dann nur außen die Ein und Ausgänge zuweisen muss. Aber wenn ich jetzt einen FC erstelle NW1 Anlage 1 den FB rein. NW2 Anlage 2 den FB rein. Dann kommen sich die Timer immer in den Weg. Eingänge Ausgänge Merker das funktioniert alles.

Ich hoffe man versteht mich, vielen Dank schon mal für die Hilfe

Michael
 
Aus der Standard Library aus den System Function Blocks den SFB4 und den SFB5 im statischen Bereich der Schnittstelle deklarieren, und schon ist er Multiinstanzfähig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und guten Morgen,
folgendes Problem. Ich habe eine Funktion die unter anderem aus mehreren Timern besteht. Diese Funktion brauche ich immer wieder.
Also habe ich mir einen FB erstellt mit allen In, Out, usw die ich benötige. Wie muss ich die Timer in dem FB deklarieren damit ich später in einem FC den FB mehrmals verwenden kann und nicht immer die Timer Bezeichnugnen ändern muss.

Zu dem was Manfred gesagt hat, noch eine zusätzliche Anmerkung.

Deine FBs solltest du nicht in einem FC aufrufen. Mehr sinn macht es Deine FBs in einem FB aufzurufen und diese ebenfalls im Statbereich des Aufrufenden FBs zu deklarieren.
Dann musst du für deine FBs nicht 10 Instanzdbs aktuell halten sondern nur noch einen.

mfG René
 
Moin Manfred,

Danke für den Hinweis. Auf die beiden bin ich zum Ende der Nachtschicht auch noch gestoßen.
Aber ich muss wohl etwas beim deklarieren falsch gemacht haben.
Gibt es noch einen Haken oder so den man setzten muss damit die multiinstanz sind oder sind die das quasi Prinzip bedingt und ich raffe es nicht.



Gesendet von meinem iPhone mit Tapatalk
 
Gehe jetzt erstmal schlafen. Vielleicht klappt es frisch ausgeruht dann besser.
Dann lese ich den Post von René wohl auch noch ein zweites Mal.


Gesendet von meinem iPhone mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du deklarierst nim STAT-Bereich deines FB eine Variable (z.B. meinTimer) vom Typ SFB4 (oder SFB3 oder SFB5 - je nachdem, welchen du brauchst).
Wenn du dies nun im Code verwenden willst dann rufst du es auch einfach so auf (also "call meinTimer"). Nun noch die IN's davon korrekt beschalten.
Mehr mußt du dazu nicht tun.
Wenn du weiterhin Probleme hast dann solltest du deinen erstellten Code hier posten ...

Gruß
Larry
 
Nachsatz noch dazu :
Wenn du mehrere Timer benötigst dann mußt du natürlich auch mehrere Timer deklarieren (also z.B. meinTimer1, meinTimer2 ...) von dem entsprechend gewünschten Typ ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Funktioniert! Ich hatte den Fehler gemacht das ich auf den SFB4 nicht mit rechts geklickt habe und dann den Multiinstanzaufruf gemacht habe. Jetzt klappt es. Vielen Dank schon mal.

Noch eine Frage.
Jetzt habe ich den FB erstellt und verwende ihn 10 mal.
Wenn ich den FB nun ändere muss ich ihn ja über all wo er verwendet wird "aktualisieren" wie macht man das?
 
TIA macht das automatisch.

Bei Step7 am besten über Rechtsklick auf Bausteinordner -> Bausteinkonsistens prüfen.
Oder im aufrufenden Baustein "Datei" -> Zugriffe prüfen und aktualisieren

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zu dem was Manfred gesagt hat, noch eine zusätzliche Anmerkung.

Deine FBs solltest du nicht in einem FC aufrufen. Mehr sinn macht es Deine FBs in einem FB aufzurufen und diese ebenfalls im Statbereich des Aufrufenden FBs zu deklarieren.
Dann musst du für deine FBs nicht 10 Instanzdbs aktuell halten sondern nur noch einen.

mfG René

Danke für den Tipp. Sieht gleich übersichtlicher aus.
 
Zurück
Oben