Yav servet hoca hepsini yapıp dua alsana cuma günü. Zaten çoğunu yapmışsın.yav blokların st karşılığı var onları koyunca yerine oturur
zaten st dili yükselen kenara göre çalışır . bloğu tanımlayınca atama yapıyorsun hepsi o
mesela 1. satırı yapmaya çalışayım anladığımdan değilde hani yardımım dokunur belki .
tmr1: ton; // tmri tanımladık
tmr(in:=adim1, pt:=zaman1); // tmri çağırdık ama zaman 1i bir yerde zaman çevirmemiz lazım ;
zamançıkışı:=tmr.q ; /// zaman çıkışı boş sende zamançıkışı:bool; türkçe kullanma sen
sonra bloğu çağıracan ad koyacan bloğa
abs1:McMoweAbsulute;
abs1(aksis:=1, exetue:=tmr1 , positon:=abspositon2...
...
) böle böe atayacan
// Adım1'de bitsinmi Adım2'ye geçsinmi?
IF hmi_osA2_AbsPos = 0 THEN // Adım2 Pozisyon 0(Sıfır) kontrolü
osA1_Sonu := TRUE ;
osA2_Devam := FALSE ;
ELSE
osA1_Sonu := FALSE ;
osA2_Devam := TRUE ;
END_IF;
// Adım2'de bitsinmi Adım3'e geçsinmi?
IF hmi_osA3_AbsPos = 0 THEN // Adım3 Pozisyon 0(Sıfır) kontrolü
osA2_Sonu := TRUE ;
osA3_Devam := FALSE ;
ELSE
osA2_Sonu := FALSE ;
osA3_Devam := TRUE ;
END_IF;
osGecikme_tmr(EN:= TRUE, // Adım1 Gecikme
IN:= os_GecikmeStart,
PT:= osAdimGecikme,
);
CASE TimerAdim OF
10: //Adim1 Gecikme
IF EDGEPOS(osCalisma_Basladi) THEN
osAdimGecikme := osA1Gecikme ;
os_AbsPos := hmi_osA1_AbsPos ;
os_AbsVel := hmi_osA1_AbsVel ;
os_GecikmeStart := TRUE;
END_IF;
IF osAdim_Abs.Active THEN
os_GecikmeStart := FALSE ;
END_IF;
IF osAdim_Abs.Done AND osA2_Devam THEN
TimerAdim := 20 ;
END_IF;
IF osAdim_Abs.Done AND osA1_Sonu THEN
TimerAdim := 0 ;
os_BitisteBaslangiaGit := TRUE ;
os_UrunDon := FALSE ;
END_IF;
20: //Adim2 Gecikme
osAdimGecikme := osA2Gecikme ;
os_AbsPos := hmi_osA2_AbsPos ;
os_AbsVel := hmi_osA2_AbsVel ;
os_GecikmeStart := TRUE;
IF osAdim_Abs.Active THEN
os_GecikmeStart := FALSE ;
END_IF;
IF osAdim1_Abs.Done AND osA3_Devam THEN
TimerAdim := 30 ;
END_IF;
IF osAdim_Abs.Done AND osA2_Sonu THEN
TimerAdim := 0 ;
os_BitisteBaslangiaGit := TRUE ;
os_UrunDon := FALSE ;
END_IF;
END_CASE;
osAdim_Abs(EN:= TRUE, // Adım1 pozisyona git MC_MoveAbsolute
Axis:= 1,
Execute:= EDGEPOS(osGecikme_tmr.Q),
Position:= os_AbsPos,
Velocity:= os_AbsVel,
Acceleration:= osAbs_Acc,
Deceleration:= osAbs_Dec,
Jerk:= osAbs_Jerk,
Direction:= 1,
BufferMode:= 0,
);
arkadaş yanlış anlaşıldı sanırım parayla yazak demedik . para kazanacaksa yazak dedik .dersse az çalışsınDenemesini yapmadım sanırım aşağıdaki kod parası sorunuza yanıt verecektır.
Belki ufak tefek hatası olabilir ama genel hatlarıyla bu şekilde yazarsanız daha derli toplu olacaktır.
Kod:// Adım1'de bitsinmi Adım2'ye geçsinmi? IF hmi_osA2_AbsPos = 0 THEN // Adım2 Pozisyon 0(Sıfır) kontrolü osA1_Sonu := TRUE ; osA2_Devam := FALSE ; ELSE osA1_Sonu := FALSE ; osA2_Devam := TRUE ; END_IF; // Adım2'de bitsinmi Adım3'e geçsinmi? IF hmi_osA3_AbsPos = 0 THEN // Adım3 Pozisyon 0(Sıfır) kontrolü osA2_Sonu := TRUE ; osA3_Devam := FALSE ; ELSE osA2_Sonu := FALSE ; osA3_Devam := TRUE ; END_IF; osGecikme_tmr(EN:= TRUE, // Adım1 Gecikme IN:= os_GecikmeStart, PT:= osAdimGecikme, ); CASE TimerAdim OF 10: //Adim1 Gecikme IF EDGEPOS(osCalisma_Basladi) THEN osAdimGecikme := osA1Gecikme ; os_AbsPos := hmi_osA1_AbsPos ; os_AbsVel := hmi_osA1_AbsVel ; os_GecikmeStart := TRUE; END_IF; IF osAdim_Abs.Active THEN os_GecikmeStart := FALSE ; END_IF; IF osAdim_Abs.Done AND osA2_Devam THEN TimerAdim := 20 ; END_IF; IF osAdim_Abs.Done AND osA1_Sonu THEN TimerAdim := 0 ; os_BitisteBaslangiaGit := TRUE ; os_UrunDon := FALSE ; END_IF; 20: //Adim2 Gecikme osAdimGecikme := osA2Gecikme ; os_AbsPos := hmi_osA2_AbsPos ; os_AbsVel := hmi_osA2_AbsVel ; os_GecikmeStart := TRUE; IF osAdim_Abs.Active THEN os_GecikmeStart := FALSE ; END_IF; IF osAdim1_Abs.Done AND osA3_Devam THEN TimerAdim := 30 ; END_IF; IF osAdim_Abs.Done AND osA2_Sonu THEN TimerAdim := 0 ; os_BitisteBaslangiaGit := TRUE ; os_UrunDon := FALSE ; END_IF; END_CASE; osAdim_Abs(EN:= TRUE, // Adım1 pozisyona git MC_MoveAbsolute Axis:= 1, Execute:= EDGEPOS(osGecikme_tmr.Q), Position:= os_AbsPos, Velocity:= os_AbsVel, Acceleration:= osAbs_Acc, Deceleration:= osAbs_Dec, Jerk:= osAbs_Jerk, Direction:= 1, BufferMode:= 0, );
Kazdan yanık dumanı çıkıyor sankiarkadaş yanlış anlaşıldı sanırım parayla yazak demedik . para kazanacaksa yazak dedik .dersse az çalışsın![]()
Boyacıya evi bedava boyatabiliyor musunuzarkadaş yanlış anlaşıldı sanırım parayla yazak demedik . para kazanacaksa yazak dedik .dersse az çalışsın![]()