rotsis
Üye
- Katılım
- 7 Ağu 2011
- Mesajlar
- 736
- Puanları
- 6
- Yaş
- 39
CASE "adim_giris" OF
//1
0:
IF ("giris_sensoru" = 1 OR "Ekran".BOSALT) AND "onzincir".Position = 0 AND "onzincir".StatusBits.Standstill=0 THEN
"otoGIRIS_1":= 1;
"adim_giris" := 3;
END_IF;
3:
IF "ekran".DEVAM = 1 THEN
"otoGIRIS_1" := 1;
END_IF;
IF "GIRIS_1_OK" = 1 THEN
"otoGIRIS_1" := 0;
"ekran".DEVAM := 0;
"adim_giris" := 5;
END_IF;
//YUKARI
5:
IF ("onzincir".Position = 0 AND "giris_sensoru" = 0 AND "motorGIRIS_rulo" = 0 AND "ekran".ariza_yok=0) OR
("ekran".DEVAM=1 AND "giris_sensoru" = 0 AND "motorGIRIS_rulo" = 0 AND "ekran".ariza_yok=0) THEN
"MC_MoveAbsolute_DB".Execute := 1;
"MC_MoveAbsolute_DB".Position := 500;
END_IF;
IF "onzincir".Position = 500 THEN
"MC_MoveAbsolute_DB".Execute := 0;
"adim_giris" := 10;
END_IF;
//2
10:
IF ("giris_sensoru" = 1 OR "ekran".BOSALT) AND "onzincir".Position = 500 AND "onzincir".StatusBits.Standstill = 0 THEN
"otoGIRIS_2" := 1;
"adim_giris" := 13;
END_IF;
13:
IF "ekran".DEVAM = 1 THEN
"otoGIRIS_2" := 1;
END_IF;
IF "GIRIS_2_OK" = 1 THEN
"otoGIRIS_2" := 0;
"ekran".DEVAM := 0;
"adim_giris" := 15;
END_IF;
.
.
.
.
program bu şekilde gidiyor.
yapmak istediğim :
"adim_giris" degerim 15 olduğunda sadece bir kereliğine 5e dönecek.
15e geldiğinde alt programdan çalışmaya başlayacak.
yani adimlar 0,3,5,10,15,5,10,15,20,25 şeklinde gidecek.
hangi komutla yapabilrim bu işlemi?
//1
0:
IF ("giris_sensoru" = 1 OR "Ekran".BOSALT) AND "onzincir".Position = 0 AND "onzincir".StatusBits.Standstill=0 THEN
"otoGIRIS_1":= 1;
"adim_giris" := 3;
END_IF;
3:
IF "ekran".DEVAM = 1 THEN
"otoGIRIS_1" := 1;
END_IF;
IF "GIRIS_1_OK" = 1 THEN
"otoGIRIS_1" := 0;
"ekran".DEVAM := 0;
"adim_giris" := 5;
END_IF;
//YUKARI
5:
IF ("onzincir".Position = 0 AND "giris_sensoru" = 0 AND "motorGIRIS_rulo" = 0 AND "ekran".ariza_yok=0) OR
("ekran".DEVAM=1 AND "giris_sensoru" = 0 AND "motorGIRIS_rulo" = 0 AND "ekran".ariza_yok=0) THEN
"MC_MoveAbsolute_DB".Execute := 1;
"MC_MoveAbsolute_DB".Position := 500;
END_IF;
IF "onzincir".Position = 500 THEN
"MC_MoveAbsolute_DB".Execute := 0;
"adim_giris" := 10;
END_IF;
//2
10:
IF ("giris_sensoru" = 1 OR "ekran".BOSALT) AND "onzincir".Position = 500 AND "onzincir".StatusBits.Standstill = 0 THEN
"otoGIRIS_2" := 1;
"adim_giris" := 13;
END_IF;
13:
IF "ekran".DEVAM = 1 THEN
"otoGIRIS_2" := 1;
END_IF;
IF "GIRIS_2_OK" = 1 THEN
"otoGIRIS_2" := 0;
"ekran".DEVAM := 0;
"adim_giris" := 15;
END_IF;
.
.
.
.
program bu şekilde gidiyor.
yapmak istediğim :
"adim_giris" degerim 15 olduğunda sadece bir kereliğine 5e dönecek.
15e geldiğinde alt programdan çalışmaya başlayacak.
yani adimlar 0,3,5,10,15,5,10,15,20,25 şeklinde gidecek.
hangi komutla yapabilrim bu işlemi?