# SFB4 (TON) in SCL



## Gerri (6 Oktober 2009)

Hallo,
kann mir jemand dabei helfen den SFB 4 in einem FB (SCL Quelle) zu verwenden.

Ich finde nichts darüber in der Hilfe über dei Deklaration und die I/O Signale des SFB.


----------



## Larry Laffer (6 Oktober 2009)

Hallo Gerri,
solche Sachen gehen am Einfachsten mit "Einfügen-Bausteinaufruf" und dann den gewünschten Baustein auswählen.
Dadurch erhälst du dann auch automatisch die korrekte Schreibweise der Schnittstelle der jeweiligen Bausteine ...

Gruß
LL


----------



## Gerri (6 Oktober 2009)

Alles klar, nur was kann ich mit dem DBxxx anstellen.
Dieser Timer ist ein "FB" im Prinzip u braucht seinen DB.

Ich finde es nur unschön jeden Timer mit einem anderen DB anzulegen.


----------



## Larry Laffer (6 Oktober 2009)

... genau wie in AWL ...
Du legst dir im STAT-Bereich eine Variable an vom Typ SFB4 und statt dem Aufruf trägst du den "Variablen-Namen" ein. Also :
	
	



```
myTimer : SFB4 ;
 
und dann 
 
myTimer  (IN:= myStart ,
            PT:= myZeit ) ;
```
Gruß
LL


----------



## Bernard (6 Oktober 2009)

Folgendes Beispiel hat den SFB 4 als Multinstanz integriert und erzeugt
den Instanz DB111 für FB999

FUNCTION_BLOCK FB999
VAR_INPUT
Start:BOOL;//Timer Starten
Laufzeit_soll:TIME;// Laufzeit des Timers
END_VAR
VAR_OUTPUT
TIMER_Q:BOOL;//Timerausgang bool
Laufzeit_Ist:TIME;//Laufende Zeit des Timers
END_VAR
VAR_TEMP
END_VAR
VAR
sfb4_1:sfb4; // Multiinstanz SFB 4
END_VAR
BEGIN 
sfb4_1 (in:=Start,PT:=Laufzeit_soll);
TIMER_Q:=sfb4_1.Q;
Laufzeit_Ist:=sfb4_1.ET;
END_FUNCTION_BLOCK
DATA_BLOCK DB111 FB999//Multiinstanz DB bezogen auf FB999
BEGIN
END_DATA_BLOCK


----------



## Ralle (6 Oktober 2009)

Bernard schrieb:


> Folgendes Beispiel hat den SFB 4 als Multinstanz integriert und erzeugt
> den Instanz DB111 für FB999
> 
> FUNCTION_BLOCK FB999
> ...



Schön, aber es wäre megasuper, wenn du mal die Code-Tags nutzen würdest, dann bleiben auch Einrückungen erhalten und man kann das 10x besser lesen. 

Siehe Larrys Post!


----------



## Bernard (6 Oktober 2009)

*Schön, aber es wäre megasuper, wenn du mal die Code-Tags nutzen würdest*

Tut mir Leid,dies ist mein erster Chat,habe keine Ahnung wie man code-Tags einpflegt


----------



## Ralle (6 Oktober 2009)

Bernard schrieb:


> Tut mir Leid,dies ist mein erster Chat,habe keine Ahnung wie man code-Tags einpflegt




```
sfb4_1 (in:=Start,PT:=Laufzeit_soll);
TIMER_Q:=sfb4_1.Q;
Laufzeit_Ist:=sfb4_1.ET;
```


PS: Kann sein, daß du in deinem Kontrollzentrum den erweiterten Editor wählen mußt.


----------



## Bernard (6 Oktober 2009)

*Versuch`s mal mit Code-Tags*


```
FUNCTION_BLOCK FB999
VAR_INPUT
Start:BOOL;//Timer Startten
Laufzeit_soll:TIME;// Laufzeit des Timers
END_VAR
VAR_OUTPUT
TIMER_Q:BOOL;//Timerausgang bool
Laufzeit_Ist:TIME;//Laufende Zeit des Timers
END_VAR
VAR_TEMP
   END_VAR
VAR
  sfb4_1:TON; // Multiinstanz SFB 4
END_VAR
BEGIN 
sfb4_1 (in:=Start,PT:=Laufzeit_soll);
TIMER_Q:=sfb4_1.Q;
Laufzeit_Ist:=sfb4_1.ET;
END_FUNCTION_BLOCK
DATA_BLOCK DB111 FB999//Multiinstanz DB bezogen auf FB999
BEGIN
END_DATA_BLOCK
```
Vielen Dank Bernard


----------

