Ana içeriğe atla

Codesys Yıldız-Üçgen, İleri-Geri Yol Verme

 _

Codesys için kullanılabilir bir Fonksiyon Bloğu


//////
FUNCTION_BLOCK YidizUcgenIG_FB
VAR_INPUT
	xAcilStop:BOOL;
	xTermikAriza:BOOL;
END_VAR
VAR_OUTPUT
	xAnaKontaktorIleri:BOOL;
	xAnaKontaktorGeri:BOOL;
	xUcgenKontaktor:BOOL;
	xYildizKontaktor:BOOL;
END_VAR
VAR
	xintStarDelta_Case10: BOOL;
	xintStarDelta_Case20: BOOL;
	T_xYildizKontaktor: TON;
	T_xintStarDelta_Case20: TON;
	intStarDelta: INT;
END_VAR

VAR_IN_OUT
	ixStartIleri: BOOL;
	ixStartGeri:BOOL;
END_VAR
//////////

IF (NOT (ixStartIleri XOR ixStartGeri)) OR (NOT (xAnaKontaktorIleri XOR xAnaKontaktorGeri)) OR  NOT xAcilStop OR NOT xTermikAriza OR(xYildizKontaktor AND xUcgenKontaktor) THEN
	xAnaKontaktorIleri	:= FALSE;
	xAnaKontaktorGeri	:= FALSE;
	xYildizKontaktor	:= FALSE;
	xUcgenKontaktor		:= FALSE;
	
	xintStarDelta_Case10:= FALSE;
	xintStarDelta_Case20:= FALSE;
	
	intStarDelta:=0;
	
END_IF

IF 
 NOT xAcilStop OR NOT xTermikAriza OR(xYildizKontaktor AND xUcgenKontaktor) THEN
	ixStartIleri		:= FALSE;
	ixStartGeri			:= FALSE;
		intStarDelta:=0;
END_IF

T_xYildizKontaktor(IN:=xYildizKontaktor,PT:=T#10S);
T_xintStarDelta_Case20(IN:=xintStarDelta_Case20,PT:=T#100MS);

CASE intStarDelta OF
	0:
		IF ixStartIleri XOR ixStartGeri THEN
			IF ixStartIleri AND NOT ixStartGeri THEN
				xAnaKontaktorIleri	:=TRUE;
				xAnaKontaktorGeri	:=FALSE;
			END_IF
			IF ixStartGeri AND NOT ixStartIleri THEN
				xAnaKontaktorGeri	:=TRUE;
				xAnaKontaktorIleri	:=FALSE;
			END_IF
			IF xAnaKontaktorIleri XOR xAnaKontaktorGeri THEN
				xYildizKontaktor	:= TRUE;
				intStarDelta		:= 10;
			END_IF
			ELSE
				xAnaKontaktorIleri	:=FALSE;
				xAnaKontaktorGeri	:=FALSE;
				xYildizKontaktor	:=FALSE;
				xUcgenKontaktor		:= FALSE;
				xintStarDelta_Case10:= FALSE;
				xintStarDelta_Case20:= FALSE;
		END_IF	
	10:
		IF T_xYildizKontaktor.Q THEN
			xintStarDelta_Case10 :=TRUE;
			intStarDelta			:= 20;
		END_IF
	20:
		IF xintStarDelta_Case10 THEN
			xYildizKontaktor:=FALSE;
			xintStarDelta_Case20:=TRUE;
			xintStarDelta_Case10:=FALSE;
			intStarDelta		:= 30;
		END_IF
	30:
		IF T_xintStarDelta_Case20.Q THEN
			xUcgenKontaktor	:= TRUE;
			xintStarDelta_Case20:=FALSE;
		END_IF
END_CASE

Yorumlar

Bu blogdaki popüler yayınlar

deneme deneme deneme

Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu bir deneme yazısıdır. Merhaba bu...

Lorem ipsum

  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec porttitor eros a nunc vulputate accumsan. Donec suscipit neque vel ipsum commodo feugiat. Etiam venenatis elit id eros lacinia cursus. Etiam quam leo, volutpat vel lorem ac, ultrices semper ipsum. Nulla sed viverra metus. Cras fringilla eget est non placerat. Vestibulum eget neque feugiat leo ornare hendrerit. Donec suscipit tortor id laoreet mollis. Pellentesque non metus orci. Sed eget vestibulum diam, vel convallis neque. Morbi volutpat mauris orci, vehicula semper quam ornare eu. Integer tempus nibh sed eros pulvinar, gravida fermentum nisi tincidunt. Nunc eget commodo erat. Duis venenatis arcu nec turpis gravida, in egestas tortor vestibulum. Mauris dictum quam eget turpis pharetra, ac sollicitudin felis vehicula. Vestibulum volutpat dui vel erat sollicitudin rutrum. Aliquam volutpat massa neque, non hendrerit massa feugiat vel. Aenean erat odio, dictum eget sapien at, fringilla pellentesque diam. Nullam lacus an...