FC kodları aşağıdadır. Yalnız hazırladığınız devrenin zamanlayıcı resetinde bir sorun var gibi bu yüzden aşağıdaki devrede zamanlayıcı reseti yerine m0.0 yazarsanız devre çalışacaktır.
FUNCTION FC1 :void
VAR_INPUT
sensor:BOOL;
mytime : TIMER;
initialvalue : S5TIME ;
END_VAR
VAR_OUTPUT
motor_start:BOOL;
END_VAR
VAR
PE:BOOL; //kenar kontrolu için kullanıcaz
basla : BOOL ;
reset : BOOL ;
bcdvalue : s5time;
binvalue : WORD ;
END_VAR
BEGIN
bcdvalue := S_PEXT (T_NO := mytime,
S := basla ,
TV := initialvalue ,
R := not motor_start ,
BI := binvalue ,
Q := motor_start) ;
IF sensor=1 AND PE=0 THEN
PE:=1;
END_IF;
IF sensor=true AND PE=true THEN
basla:=1;
PE:=0;
END_IF;
IF motor_start=true THEN
basla:=false;
END_IF;
END_FUNCTION
FUNCTION FC1 :void
VAR_INPUT
sensor:BOOL;
mytime : TIMER;
initialvalue : S5TIME ;
END_VAR
VAR_OUTPUT
motor_start:BOOL;
END_VAR
VAR
PE:BOOL; //kenar kontrolu için kullanıcaz
basla : BOOL ;
reset : BOOL ;
bcdvalue : s5time;
binvalue : WORD ;
END_VAR
BEGIN
bcdvalue := S_PEXT (T_NO := mytime,
S := basla ,
TV := initialvalue ,
R := NOT sensor AND NOT motor_start ,
BI := binvalue ,
Q := motor_start);
IF sensor=true AND PE=false THEN
PE:=true;
END_IF;
IF sensor=true AND PE=true THEN
basla:=true;
PE:=false;
ELSE
basla:=false;
END_IF;
END_FUNCTION
LABEL
Write_register;
END_LABEL
IF in_Write AND NOT EMWrite
THEN EMWrite := in_Write; GOTO Write_register;
ELSE EMWrite := in_Write;
END_IF;
RETURN;
[B]
Write_register:[/B]
DB3.Data[4]:= DB3.Data[3];
DB3.Data[3]:= DB3.Data[2];
DB3.Data[2]:= DB3.Data[1];
DB3.Data[1]:= in_new_DATA;
in_Write :=FALSE;
RETURN;
ileride sağlam bır otomasyoncu olmak ıcın calısmalara nerden baslamalı bı ınsan. en 0 nokta ve gelısme basamaklarını hangı dallara bakabılıcegımızı acaba yazarmısınız abilerim