TM_100ms_FB

Zeitgeber zur Zeitbasis 0,1s einschaltverzögert (0 bis 3276,7s)

Dieser Zeitgeber mit der Zeitbasis von 0,1s arbeitet als Einschaltverzögerung (0 bis 3276,7s). Ist die Eingangsbedingung start des Zeitgeberbausteins erfüllt, wird die programmierte Zeit SV (Set value = Sollwert) gestartet. Nach Ablauf der Zeit schaltet der zugehörige Zeitgeberkontakt T ein.

Parameter

Eingang

start (BOOL)

Startsignal

bei jeder steigenden Flanke wird der Sollwert SV auf den Istwert EV kopiert und der Zeitgeber gestartet

SV, (INT, WORD)

Sollwert

hier definieren Sie die Einschaltverzögerungszeit (0 bis 3276,7s)

Ausgang

T (BOOL)

Zeitgeberkontakt

wird gesetzt, wenn die an SV definierte Zeitspanne abgelaufen ist, d.h., wenn der Istwert EV den Wert 0 erreicht hat

EV (INT, WORD)

Istwert

ist der Zählwert, der bei laufendem Zeitgeber alle 0,1s um 1 verringert wird

Der Wert kann während des Zählens geändert werden, indem aus dem Programmiereditor heraus in die Variable geschrieben wird.

Anmerkungen

  • Die Anzahl der verfügbaren Zeitgeber ist von den Einstellungen in den Systemregistern 5 und 6 abhängig.

  • Für die Zeitgeber-Funktionsbausteine vergibt der Compiler an jede FB-Instanz automatisch eine NUM*-Adresse. Die Vergabe erfolgt abwärts zählend beginnend mit der höchstmöglichen Adresse.

Zeitdiagramm

  1. Im PROG-Modus übertragen

  2. RUN-Modus

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		Alarm_Control: TM_100ms_FB;
		Start_Contact: BOOL:=FALSE;
		Alarm_Relay_1: BOOL:=FALSE;
		Alarm_Relay_2: BOOL:=FALSE;
	END_VAR

In diesem Beispiel werden Variablen verwendet. Sie können als Eingangsvariable auch eine Konstante verwenden.

POE-Rumpf

Sobald die Variable Start_contact gesetzt wird (Status = TRUE), wird der Zeitgeber Alarm_control gestartet. Die Variable EV des Zeitgebers wird auf den Wert von SV gesetzt. Solange Start_contact den Zustand TRUE behält, wird alle 100ms der Wert 1 von EV abgezogen. Erreicht EV den Wert 0 (nach 10 Sekunden, da SV = 100 mit Zeitgeber-Typ TM_100ms_FB), wird Alarm_Relay_2 auf TRUE gesetzt.

Sobald der Wert der Variable EV des Zeitgebers kleiner oder gleich 50 ist (nach 5 Sekunden) und EV nicht 0 ist, wird Alarm_Relay_1 auf TRUE gesetzt.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,Start_contact,8,3,10,5,);
B(B_VARIN,,100,8,4,10,6,);
B(B_VAROUT,,Alarm_Relay_2,18,3,20,5,);
B(B_FB,TM_100ms_FB!,Alarm_control,10,2,18,6,,?Bstart?BSV?AT?AEV);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_F,@LE-2!,Instance,11,0,16,3,,?D?D?C);
B(B_VARIN,,Alarm_control.EV,9,0,11,2,);
B(B_VARIN,,50,9,1,11,3,);
B(B_F,@NE!,Instance,11,5,16,8,,?D?D?C);
B(B_VARIN,,0,9,6,11,8,);
B(B_VARIN,,Alarm_control.EV,9,5,11,7,);
B(B_F,@AND-2!,Instance,20,2,25,5,,?D?D?C);
B(B_VAROUT,,Alarm_Relay_1,25,2,27,4,);
L(16,1,17,1);
L(17,1,17,3);
L(17,3,20,3);
L(17,4,20,4);
L(17,4,17,6);
L(16,6,17,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

Alarm_Control( start:= Start_Contact ,
        SV:= 100,
        T=> Alarm_Relay_2 ,
        EV=> Alarm_Control.EV );
(*The ON-delay time is 10s*)
Alarm_Relay_1:= Alarm_Control.EV <= 50 & Alarm_Control.EV <> 0;
(*Alarm_Relay_1 is set to TRUE after 5s*)

AWL-Rumpf

Wenn Sie den Funktionsbaustein in einer Anweisungsliste aufrufen möchten, geben Sie folgendes ein:

CAL

Alarm_control (start:=Start_contact,

SV:= 100 ,

T:= Alarm_Relay_2)

LD

Alarm_control.EV

LE

50

AND(

Alarm_control.EV

NE

0

)

ST

Alarm_Relay_1

Letzte Änderung am: 2021-09-27Feedback zu dieser SeitePanasonic Hotline