F118_UDC

Vor- und Rückwärtszähler

Der Zähler zählt rückwärts, wenn der Trigger UpDirection auf FALSE gesetzt wird. Der Zähler zählt vorwärts, wenn der Trigger UpDirection auf TRUE gesetzt wird.

Parameter

Eingang

UpDirection (BOOL)

Setzt Zähler auf Aufwärts- (ON) oder Abwärtszählen (OFF)

CountTrigger (BOOL)

Startet Zähler

Reset_Preset (BOOL)

Setzt Zähler zurück

s_PresetValue (WORD, INT, UINT)

16-Bit-Bereich oder äquivalente Konstante für voreingestellten Wert des Zählers

Ausgang

d (WORD, INT, UINT)

16-Bit-Bereich für Istwert des Zählers

Anmerkungen

  • Das Speicherregister für den Istwert d wird 0, wenn die steigende Flanke des Trigger ermittelt wird (FALSE ® TRUE). Der Wert im Speicherregister s_PresetValue wird nach d übertragen, wenn eine fallende Flanke des Trigger ermittelt wird (TRUE® FALSE).

  • Die Variablen s_PresetValue und d müssen vom gleichen Datentyp sein.

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
		up: BOOL:=FALSE;
			(*declares, if the counter
counts up or down*)
		count: BOOL:=FALSE;
			(*at a rising edge on count
the counter counts*)
		reset: BOOL:=FALSE;
			(*resets the counter to 
set_value if TRUE*)
		set_value: INT:=0;
			(*the starting value*)
		output_value: INT:=0;
			(*the actual value*)
	END_VAR

POE-Rumpf

Wenn am Eingang Count_Trigger eine steigende Flanke anliegt, wird der Zähler ausgeführt. Die Zählrichtung wird am Eingang UpDirection gesetzt (TRUE bedeutet vorwärtszählen, FALSE rückwärtszählen). Wenn am Eingang Reset_Preset TRUE anliegt, wird der Zähler auf den Anfangswert zurückgesetzt.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_F,F118_UDC!,Instance,8,0,17,6,,?DUpDirection?DCountTrigger?DReset_Preset?Ds_PresetValue?Cd);
B(B_VARIN,,up,6,1,8,3,);
B(B_VARIN,,count,6,2,8,4,);
B(B_VARIN,,reset,6,3,8,5,);
B(B_VARIN,,set_value,6,4,8,6,);
B(B_VAROUT,,output_value,17,1,19,3,);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

output_value:=F118_UDC( UpDirection:= up, Count_Trigger:= count, Reset_Preset:= reset, s_PresetValue:= set_value);
(* output_value contains the count value *)

Letzte Änderung am: 2021-07-28Feedback zu dieser SeitePanasonic Hotline