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
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
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
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);
cozumu icin daha once gonderdigim tabloyu yeniledim vede umarim bu tabloda sorun yasamazsiniz.kod kiril alfebesiyle su an yurtdisinda oldugumdan dolayicevabını çok merak ediyorum ama bende malesef word2007 yok 2007 i 2003 şeklinde kaydedip gönderirsen çok sevinecem
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?