plc egitimi ile ilgili guzel bir alistirma sorusu

gezer77

Yönetici
Yönetici
Yönetici
Katılım
14 Kas 2006
Mesajlar
1,589
Puanları
73
Yaş
55
forumumuz uyeside olan degerli bir hocamizin kitabindan alinti yaparak asagiya aldigim soru gercekten plc icin guzel bir alistirma sorusu.hocamiza tesekkurler
bir otoparkta havalandirma maksadiyla 4 adet fan bulunmaktadir.bunlar hava kalite kontrol sistemleriyle kontrol edilmektedir.calisip calismadiklari ise plc yardimiyla kontrol edilmektedir.eger fanlarin 4veya 3 tanesi calisiyorsa yesil isik yanmalidir.eger fanlarda iki tanesi calisiyorsa sari isik ve 1tanesi veya hicbiri calismiyorsa kirmizi isik yanmalidir.bununla ilgili ladder diyagramini ciziniz.
 
Devre zipli dosyada ladder diyagramı.
 

Ekli dosyalar

  • FC1.rar
    14 KB · Görüntüleme: 195
ladder diyagramı ektedir fatek plc için yazdım şöyleki
çalışan motorları counter ile saydırdım
çalışmayanlarıda counter ile saydırdım fakat başlangıçta hiç bir motor çalışmadığı için çalışmayanları sayan counterin değeri 4 olması gerektiği halde 0 olduğu için bir toplama fonk ile çalışmayanları sayan counterin değerini 4 ile topladım
sonra çalışanlar- çalışmayanlar dedim ve çıkan sonucu compare fonksiyonu ile karşılaştırıp ilgili çıkışları verdim umarım açıklayıcı olmuştur
 

Ekli dosyalar

  • ladder.rar
    35 KB · Görüntüleme: 81

enexs arkadasim bu soruda bence counter kullanmaya gerek yok.cok daha basit bir sekilde cozulebilir soru.
 
arkadaslar 4 adet motor olduguna gore iki uzeri dorten 16 farkli durum meydena gelir vede buna gore tablo hazirlarsak soruyu bence daha kolay cozebiliriz
 

Ekli dosyalar

  • Motor 4.rar
    8.2 KB · Görüntüleme: 87
Son düzenleme:
cevabını çok merak ediyorum ama bende malesef word2007 yok 2007 i 2003 şeklinde kaydedip gönderirsen çok sevinecem
 
Sayın gezer77 affınıza sıgınarak ben konuya biraz degisik bir boyut vermek istiyorum.
Bence bu program parcasını ladder degilde istiyen arkadas istedigi dille koysun ki
böylece LADDER,STL,ST,CFC,SFC arasındaki farkları görmekte kolaylasır.Bu soru tam bu iş icin bicilmis kaftan.

Ben Programı ST dilide codesys de oluşturdum!Her yigitin yogurt yemesi
farklıdır. Bu benimki:

Kod:
PROGRAM PLC_PRG
VAR
	Fan_1: BOOL;
	Fan_2: BOOL;
	Fan_3: BOOL;
	Fan_4: BOOL;
	Yesil: BOOL;
	Sari: BOOL;
	Kirmizi: BOOL;
	Referans_Sonuc: BYTE;
	Fan_4_Byte: BYTE;
	Fan_1_Byte: BYTE;
	Fan_2_Byte: BYTE;
	Fan_3_Byte: BYTE;
END_VAR

(*Byte cinsinden Alim*)
Fan_1_Byte:=BOOL_TO_BYTE(Fan_1);
Fan_2_Byte:=BOOL_TO_BYTE(Fan_2);
Fan_3_Byte:=BOOL_TO_BYTE(Fan_3);
Fan_4_Byte:=BOOL_TO_BYTE(Fan_4);

(*Referans toplami*)
Referans_Sonuc:= Fan_1_Byte + Fan_2_Byte + Fan_3_Byte + Fan_4_Byte;

(*Lambaların calismasi*)

(*Yesil*)
IF Referans_Sonuc = 3 OR Referans_Sonuc = 4  THEN
Yesil:=1;
ELSE
Yesil:=0;
END_IF

(*Saril*)
IF Referans_Sonuc = 2  THEN
Sari:=1;
ELSE
Sari:=0;
END_IF


(*Kirmizi*)
IF Referans_Sonuc = 0 OR Referans_Sonuc = 1   THEN
Kirmizi:=1;
ELSE
Kirmizi:=0;
END_IF

Buda ikinci Yol

Kod:
PROGRAM caseli
VAR
	Fan_1: BOOL;
	Fan_2: BOOL;
	Fan_3: BOOL;
	Fan_4: BOOL;
	Yesil: BOOL;
	Sari: BOOL;
	Kirmizi: BOOL;
	Referans_Sonuc: BYTE;
	Fan_4_Byte: BYTE;
	Fan_1_Byte: BYTE;
	Fan_2_Byte: BYTE;
	Fan_3_Byte: BYTE;
END_VAR

(*Byte cinsinden Alim*)
Fan_1_Byte:=BOOL_TO_BYTE(Fan_1);
Fan_2_Byte:=BOOL_TO_BYTE(Fan_2);
Fan_3_Byte:=BOOL_TO_BYTE(Fan_3);
Fan_4_Byte:=BOOL_TO_BYTE(Fan_4);

(*Referans toplami*)
Referans_Sonuc:= Fan_1_Byte + Fan_2_Byte + Fan_3_Byte + Fan_4_Byte;
(*Yesil*)
CASE Referans_Sonuc OF
3..4:Yesil:=1;
ELSE
Yesil:=0;
END_CASE
(*Sari*)
CASE Referans_Sonuc OF
2:Sari:=1;
ELSE
Sari:=0;
END_CASE
(*Kirmizi*)
CASE Referans_Sonuc OF
0..1:Kirmizi:=1;
ELSE
Kirmizi:=0;
END_CASE
 
Son düzenleme:
arkadaslar hasanzincir uyemiz o konuda hakli vede ben daha plc ye yeni baslayan kisilerin ladder ile kolaylik olacagini dusunerek ladder olarak dusunmustum
 
Teskkür ederim sayın Gezer77 hazır gaza gelmişken son kodumu yolluyorum.
Artık yöntemleri karsılastırmak arkadaslara kalmış

Kod:
PROGRAM sa
VAR
	Fan_1: BOOL;
	Fan_2: BOOL;
	Fan_3: BOOL;
	Fan_4: BOOL;
	Yesil: BOOL;
	Sari: BOOL;
	Kirmizi: BOOL;

END_VAR

Yesil:=(Fan_1 AND Fan_2 AND Fan_3 AND Fan_4) OR
            (Fan_1 AND Fan_2 AND Fan_3) OR
            (Fan_2 AND Fan_3 AND Fan_4) OR
            (Fan_3 AND Fan_4 AND Fan_1) OR
            (Fan_4 AND Fan_1 AND Fan_2);

Sari:=(Fan_1 AND Fan_2)OR
           (Fan_1 AND Fan_3)OR
           (Fan_1 AND Fan_4)OR
           (Fan_2 AND Fan_3)OR
           (Fan_2 AND Fan_4)OR
           (Fan_3 AND Fan_4);

Kirmizi:=(Fan_1 AND NOT Fan_2 AND  NOT Fan_3 AND NOT Fan_4)OR
                (NOT Fan_1 AND  Fan_2 AND  NOT Fan_3 AND NOT Fan_4)OR
                (NOT Fan_1 AND NOT Fan_2 AND   Fan_3 AND NOT Fan_4)OR
                (NOT Fan_1 AND NOT Fan_2 AND  NOT Fan_3 AND  Fan_4)OR
                (NOT Fan_1 AND NOT Fan_2 AND  NOT Fan_3 AND NOT Fan_4);
 
cevabını çok merak ediyorum ama bende malesef word2007 yok 2007 i 2003 şeklinde kaydedip gönderirsen çok sevinecem
cozumu icin daha once gonderdigim tabloyu yeniledim vede umarim bu tabloda sorun yasamazsiniz.kod kiril alfebesiyle su an yurtdisinda oldugumdan dolayi
 

Ekli dosyalar

  • Безымянный.rar
    81.4 KB · Görüntüleme: 51
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…