Timer in FB

Robot-Sun

Level-1
Beiträge
83
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!
Ich bin erst seit heute hier und bitte für „Dumme Fragen“ um Verständnis.
SPS-Programmierung ist für mich neu. Ich kann nur auf (geringe) Grundkenntnise zurückgreifen und soll auf Arbeit einige Programmänderungen durchführen.
Zeit für ein tiefgehendes Grundlagenstudium hab ich im Moment nicht. (wenig Zeit bis es das Projekt fertig sein soll).

Meine Frage:
Ich will einen FB aufrufen.
In diesem soll nach Ablauf einer Zeit X (ca 1000ms) ein Ausgang gesetzt werden.
Nun soll dieser FB im FC hintereinander max. 8 mal aufgerufen werden.
Was passiert nun mit dem Timer wenn der FB mit neuen Eingangsparametern geladen wird?
Ist der Timer nur temporär? Wird er sofort beim nächsten Aufruf überschrieben oder laufen dann zwischenzeitlich 8 Timer??
 
Zum Timer folgende Möglichkeiten:
- SFB4 im FB einbinden (im STAT-Bereich)
- Taktflanke z.B. 10Hz an den FB, und Register inkrementieren
- Timernr. von außen an den FB schreiben, also eine IN-Variable vom Typ Timer, Aufruf dann z.B. mit SE "Name_der_IN_Variable".

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider hab ich nich viel kappiert.
1. [SFB4 im FB einbinden (im STAT-Bereich)] - OK
-is sicher in STep7 zu finden
2. [Taktflanke]
a) -kann ich von meinem Taktmerker nehmen?
b) -"register inkremantieren" Was is das?
3. a) [- Timernr. von außen an den FB schreiben, also eine IN-Variable vom Typ Timer] OK
b) Aufruf dann z.B. mit SE "Name_der_IN_Variable".
Was heißt SE?
4.
Es handelt sich im FB nur um ca. 3 Netzwerke.
Ausgang 1 wird gesetzt und Ausgang2 ca. 1s später. Wer es günstger das 8mal im FC unter zubringen?
 
Leider hab ich nich viel kappiert.
1. [SFB4 im FB einbinden (im STAT-Bereich)] - OK
-is sicher in STep7 zu finden
2. [Taktflanke]
a) -kann ich von meinem Taktmerker nehmen?
b) -"register inkremantieren" Was is das?
3. a) [- Timernr. von außen an den FB schreiben, also eine IN-Variable vom Typ Timer] OK
b) Aufruf dann z.B. mit SE "Name_der_IN_Variable".
Was heißt SE?
4.
Es handelt sich im FB nur um ca. 3 Netzwerke.
Ausgang 1 wird gesetzt und Ausgang2 ca. 1s später. Wer es günstger das 8mal im FC unter zubringen?

1) SFB 4 ist ein IEC Timer und in der Bibliothek zu finden!
Im Prinzip brauchst du nur im STAT Bereich des FB eine Variable Anlegen zb. ZEIT1 mit den Datentype SFB4 und im Programm den Befehl CALL #ZEIT1 durchführen
Weitere Hilfe dazu findest du auch im Forum hier (Suchfunktion)

2)Ja kannst du deinen Taktmerker nehmen. Mit dem Taktmerker zählst du eine STAT - Variable hoch (inkrementieren) und vergleichst nachher die Variable mit einen fixen Wert (musst du dir ausrechnen, hängt vom Taktmerker und dem Zeitwert ab) und setzt damit den Ausgang.

3) Ja variable anlegen mit den Type Timer
SE heißt Einschaltverzögerung

4) ja du könntest das 8mal in einen FC unterbringen aber wenn da noch viel anderer Code drinnsteht würde ich das wegen der Übersichtlichkeit nicht machen!
Noch besser wäre den FC in einen FB umwandeln und den FB den du 8mal haben willst als Multiinstanz anlegst (einfach in den STAT Bereich 8 Variablen anlegen mit den TYP FB &Nummer, weitere information: Suche)

godi
 

Anhänge

  • FC100.pdf
    3,2 KB · Aufrufe: 518
  • FB110.pdf
    3 KB · Aufrufe: 481
Frage an Kai: Bei deinem Bsp. wird aber der Timer überschrieben oder??

Im FC100 wird der FB110 zweimal aufgerufen. Bei jedem Aufruf des FB110 wird an den FB110 ein anderer Timer übergeben. Der FB110 arbeitet also während des ersten Aufrufes mit dem Timer T1 und während des zweiten Aufrufes mit dem Timer T2.

Gruß Kai
 
Zurück
Oben