Ax2000 İçin State Maschine

ms_cikar

Üye
Katılım
14 Nis 2011
Mesajlar
26
Puanları
1
Yaş
36
Slm Ustalar

Okulda Yaptigimiz bir Proje icin Ax2000 serisini kullaniyoruz.
bir State Machine programlamamiz lazim.
Arkadaslarla elimizden geldigi kadar acemice birtane yaptik, ama problem var ve problemin tam olarak nerden kaynaklandigini bulamiyoruz :(

Umarim siz Tecrübeli Ustalarimiz bize yardim edebilirsiniz.

Almanyadan Selamlar.

(*++++FPGA_Drive_State control+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*)

IF ((wAx_Status AND 16#000F) <> 16#0008) THEN
sys_cycle_cnt := sys_cycle_cnt +1;
IF (sys_cycle_cnt > Lim_2s) THEN
sys_cycle_cnt := 0;
IF En_Drive = TRUE THEN
IF ((wAx_Status AND 16#00FF) = 16#0060) THEN
wAx_Control := 16#0006; (*Init*)
ELSIF ((wAx_Status AND 16#00FF) = 16#0040) THEN
wAx_Control := 16#0006; (*PreCharge*)
ELSIF ((wAx_Status AND 16#00FF) = 16#0021) THEN
wAx_Control := 16#0907; (*PreRun, change to Opmode 9 => v/f - control*)
ELSIF ((wAx_Status AND 16#00FF) = 16#0023) THEN
wAx_Control := 16#090F; (*RuN*)
ELSIF ((wAx_Status AND 16#00FF) = 16#0027) THEN
U_cmd := U_cmd_percent;
speed_cmd := speed_cmd_rpm;
END_IF
ELSE
wAx_Control := 16#0000;
U_cmd := 0;
speed_cmd := 0;
END_IF;
END_IF;
ELSE (*Drive_Error*)
sys_cycle_cnt := 0;
En_Drive := FALSE; (* Disable on Error *)
U_cmd := 0;
speed_cmd := 0;
END_IF;


IF ( Clr_Fault = TRUE ) THEN
IF ((wAx_Status AND 16#000F) = 16#0008) THEN
wAx_Control := 16#0080; (*reset Error*)
END_IF
Clr_Fault := FALSE ;
END_IF

SysTime(timeLoDW => NewSysTime);
CycTime := (NewSysTime - OldSysTime)/10; (* cycle time in [µs]*)
IF (CycTime = 0) THEN
CycTime := 1000;
END_IF


OldSysTime := NewSysTime;
Lim_2s := 2000000 / CycTime;
(*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*)


STATE MASCHINE

Beckhoff Information System - German
 
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
bir END_IF fazla diye düşünmüştüm ama bir daha bakınca fazla olmadığını fark ettim. Mesajı siliyorum:)
 

Forum istatistikleri

Konular
128,119
Mesajlar
915,160
Kullanıcılar
449,824
Son üye
Lecterer

Yeni konular

Geri
Üst