# Timer in FB



## Robot-Sun (1 September 2007)

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??


----------



## MSB (1 September 2007)

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


----------



## Robot-Sun (1 September 2007)

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?


----------



## Kai (1 September 2007)

Robot-Sun schrieb:


> 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?


 
Auf jeden Fall im FC programmieren. Du sparst Dir damit 8 FBs mit 8 Instanz-DBs für praktisch keinen Programmcode.

Gruß Kai


----------



## godi (1 September 2007)

Robot-Sun schrieb:


> Leider hab ich nich viel kappiert.
> 1. [SFB4 im FB einbinden (im STAT-Bereich)] - OK
> -is sicher in STep7 zu finden
> 2. [Taktflanke]
> ...


 
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


----------



## Kai (1 September 2007)

Robot-Sun schrieb:


> 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.


 
Hier mal ein kurzes Programmbeispiel.

Gruß Kai


----------



## godi (1 September 2007)

Kai schrieb:


> Hier mal ein kurzes Programmbeispiel.
> 
> Gruß Kai


 
Naja da hättest es gleich als Multiinstanz auch machen können!  

godi


----------



## Kai (1 September 2007)

godi schrieb:


> Naja da hättest es gleich als Multiinstanz auch machen können!


 
Für einen Anfänger wollte ich das Programm so einfach wie möglich halten, daher keine Multiinstanz.  

Gruß Kai


----------



## Robot-Sun (4 September 2007)

Danke, euch allen. Hab mich für die Variante mit dem FC entschieden.
Frage an Kai: Bei deinem Bsp. wird aber der Timer überschrieben oder??
(sieht nich aus wie bei "MSB")


----------



## Kai (4 September 2007)

Robot-Sun schrieb:


> 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


----------



## Robot-Sun (9 September 2007)

Okay, alles klar ;o)
Danke


----------

