s7-1200 "case of" Kullanımı

rotsis

Üye
Katılım
7 Ağu 2011
Mesajlar
736
Puanları
6
Yaş
39
iyi günler
8.png

case of ile atlamaya çalıştım ama doğru mu yaptım emin olamadım
 
kusura bakma kardeş ama ben burda hiç bişey anlamadım.
1- step değişkenini 10 yapan nedir. ilk değer 10 olmadığı için hiç bir case'e girmez.0dan başlatmalısın.
2- encoder değerin 200ün üzerinde olursa bir o case bir bu case yapıp durur programın.öylesine yaptım desen bile biraz daha dikkat etmen gerekir.zira hatanı göremezsin.

bence ilk defa case kullanıyorsun. bir örnek yazayım hemen.
CASE step OF
0:
IF encoder.mm >=100 AND encoder.mm<=200 then
step:=1;
END_IF;
1:
IF encoder.mm >200 then
step:=2;
END_IF;
2:
test2:=true;
END_CASE;
 
yaz özelden napmışın gene paskal dili çökmüş :oops:
 
genç22 ilk defa scl projem bitti yolluyorum begencen mi bakalım:)
hadi hayırlısı

Kod:
CASE "step" OF
    0:
[INDENT]        IF "sensorICERIDE" = 0 AND "sensorALT" = 1 AND "kaliciKONV" = 0 AND "kaliciZINCIR_UP"=0 AND "kaliciZINCIR_DOWN"=0 AND "baba".ZINCIR.PULSLER."1.kat".tamam = 1 THEN
            "kaliciPISTON" := 1;
        END_IF;
        IF "sensorICERIDE" = 1 THEN
            "step" := 5;
        END_IF;                                         //ICERI[/INDENT]
     
     
    5:
[INDENT]        IF ("sensorGIRIS" = 1 AND "sensorICERIDE"=1 AND "sensorALT" = 1 AND "baba".ZINCIR.PULSLER."1.kat".tamam=1) OR "baba".panel.buton.DEVAM=1 THEN
            "kaliciKONV" := 1;
        END_IF;
        IF "baba".KONVEYOR.ENKODER.mm >= "baba".panel.deger.KONVEYOR THEN
            "kaliciKONV" := 0;
        END_IF;
        IF "kaliciKONV"=0 AND "baba".KONVEYOR.ENKODER.mm>="baba".panel.deger.KONVEYOR THEN
            "step" := 10;
        END_IF;                                       //KONVEYOR[/INDENT]
     
    10:
[INDENT]        IF "kaliciKONV" = 0 AND "baba".ZINCIR.PULSLER."1.kat".tamam=1   THEN
            "kaliciPISTON":=0;
            "baba".KONVEYOR.ENKODER.reset := 1;
        END_IF;
        IF "sensorDISARIDA"=1 AND "kaliciKONV"=0 THEN
            "baba".KONVEYOR.ENKODER.reset := 0;
            "step" := 15;
        END_IF;                                       //DISARI[/INDENT]
     
     
    15:
[INDENT]        IF ("sensorDISARIDA"=1 AND "baba".ZINCIR.PULSLER."1.kat".tamam=1) OR "baba".panel.buton.DEVAM=1 THEN
            "kaliciZINCIR_UP" := 1;
        END_IF;
        IF "baba".ZINCIR.ENKODER.mm >= 150 THEN
            "kaliciZINCIR_UP" := 0;
        END_IF;
        IF "baba".ZINCIR.PULSLER."1.kat".kalkma = 1 THEN
            "baba".ZINCIR.HIZ.panel := 1;
        END_IF;
        IF "baba".ZINCIR.PULSLER."1.kat".normal = 1  THEN
            "baba".ZINCIR.HIZ.panel := 5;
        END_IF;
        IF "baba".ZINCIR.PULSLER."1.kat".durma = 1  THEN
            "baba".ZINCIR.HIZ.panel := 1;
        END_IF;
        IF "kaliciZINCIR_UP"=0 AND "baba".ZINCIR.ENKODER.mm >= 150 THEN
            "step" := 0;
            "baba".ZINCIR.ENKODER.deger := 0;
        END_IF;                                       //YUKARI
END_CASE
[/INDENT]
 
Moderatör tarafında düzenlendi:

Forum istatistikleri

Konular
129,867
Mesajlar
930,872
Kullanıcılar
452,732
Son üye
erencok

Yeni konular

Geri
Üst