TIA FB mit inegriertem (TON) mehrfach aufrufen

Boeby

Level-1
Beiträge
105
Reaktionspunkte
11
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes Forum,

ich stehe hier gerade etwas auf dem Schlauch...

Ich habe einen FB geschrieben, in dem eine IEC (TON) - Zeit aufgerufen wird. Diese ist auch
in den lokalen VAR unter "STATIC" abgelegt. Den Eingang "VALUE" habe ich als TIME-Variable als INPUT deklariert und verschaltet.

Nun rufe ich diesen FB mehrfach, mit dem jeweiligen IDB auf.
Schreibe ich nun z.B. an den ersten Aufruf an meine Inputvariable : T#5s läuft das auch super...
An den zweiten Aufruf (anderer IDB) habe ich T#10s geschrieben, dies interessiert die Steuerung jedoch
nicht und es wird weiter mit den 5s gearbeitet. Die Timer liegen doch aber in völlig unterschiedlichen IDB`s...???
In Codesys ist das überhaupt kein Problem...

CPU: S7-1215

Ich fürchte ich seh grad den Wald vor Bäumen nicht, hoffe es kann jemand weiter helfen!!

Vielen Dank!
 
Zuletzt bearbeitet:
Hallo,
ich muss nun zugeben, dass ich selber nicht mit der S7-1200 arbeite - ich kann mir aber beim besten Willen nicht vorstellen, dass das bei der Steuerung nicht gehen sollte.
Wie wäre es, wenn du mal ein paar signifikante Codepassagen postest ...? Vielleicht läßt sich dann mehr sagen ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du den Wald vor lauter Bäumen nicht siehst,
wie sollen wir dann ahnen wo dein Wald steht, ohne was zu sehen?

Vom Prinzip her hört sich das was du schreibst schon mal nicht falschen an, aber ...
 
Hi!

Hast du denn den TON im FB als Multiinstanz deklariert?
Sieht für mich so aus, als hättest du für den TON einmal einen globalen IDB erzeugt und du greifst dann im FB auf diesen zu.


Gruß,

Ottmar
 
Hallo Leute,

vielen Dank erstmal für die Antworten...
Kann ich denn bei den IEC-Timern mit Multi-Instanzen arbeiten?
Zur Not muss ich mit den "normalen" Siemens-TON mit Multi-Instanz verwenden...

Hier mal die Screenshots:

OB1.JPGDB7.JPGFB1.JPG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich seh nicht woher die Deklaration IEC_TIMER kommt. normalerweise wenn man einen IEC Timer in der Schnittstelle deklariert heisst der TON oder TOF oder TP.
Die IEC timer sind natürlich Multiinstanzfähig. Genau dafür sind sie ja da.

mfG René
 
Moin Vollmi,

ich vermute du sprichst über die 300er Familie?
Bei der 1200 verhält sich der (TON) irgendwie anders...mehr Codesys-like.
Nur die Funktion haut nicht sio hin, wie ich es gewohnt bin!

1215.JPG
315.JPG
 
Zuletzt bearbeitet:
So,

ich habs jetzt wie im Screenshot gelöst!
Allerdings sind die neuen (TON) immer noch ein Mysterium für mich...

FB1_2.JPG
 
Eigentlich sollte sich da schon was ändern, weil dein 2ter FB-Aufruf auf die gleichen temporären Variablen wie im 1ten Aufruf zugreift.
Funktioniert es immer noch nicht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich seh nicht woher die Deklaration IEC_TIMER kommt. normalerweise wenn man einen IEC Timer in der Schnittstelle deklariert heisst der TON oder TOF oder TP.
Wenn der Timer im Static steht, ist er als Multiinstanz deklariert. Ansonsten hat er einen separaten DB, was dann am Timer stehen würde. Das war doch auch bei S7 schon so, oder?

Die Timer werden im Static nur nicht mehr als TON, TOF ... deklariert, sondern nur noch als IEC-Timer. Die Funktion legt der Baustein fest und lässt sich an diesem auch noch nachträglich ändern. Danach muss nur noch die Instanz aktualisiert werden.
 
Das merkwürdige ist ja nur:
die Timer sind im STATIC deklariert und müssten somit ja in dem jeweiligen IDB gespeichert werden.
1.Aufruf -> DB1
2.Aufruf -> DB2
usw.

Warum werden sie dann aber dennoch überschrieben?
Ich habe leider gerade keine CPU zur Hand...habe das nur so programmiert, wie ich es von Codesys kenne!
Leider beschrieb mir mein Kunde den Fehler so... muss ich mal vor Ort drauf schauen!
 
Du versteifst dich zu sehr auf einen Timer-Fehler. In Wirklichkeit ist es aber so, dass der 1te FB-Aufruf z.B. deinen "Merker Motor" setzt und dein 2ter FB-Aufruf eben genau den gleichen Zustand annimmt, da er auf die gleichen lokalen bzw. temporären Variablen zugreift.
Also kannst du das momentan nicht testen? Ich behaupte trotzdem, dass nach dem verschieben deiner S/R-Glieder in den STAT-Bereich deine Timer korrekt ablaufen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok ok...

ich halt mich jetzt erstmal zurück, bis ich es testen konnte!
Die S/R habe ich bereits verschoben (s. letzten Screenshot)!
Dies war klar ein Flüchtigkeitsfehler meinerseits!

Ich werde dann berichten!
 
Hallo Boeby,
Hihi .......Ich habe das gleiche Problem und finde keine Lösung. Hast du eine Lösung gefunden? Ich dreh mich zur Zeit auch im Kreis

Gruß Jörg
 
Zurück
Oben