ST dilindeki IF-ELSIF-ELSE yapısı hakkında soru?

shox

Katılımcı Üye
Katılım
4 Tem 2007
Mesajlar
968
Puanları
56
Resimde görülen Ladder diyagramı ST ile nasıl yazabilirim? ( if,then, elsif v.s gibi)
Teşekkürler.

44.jpg
 
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
if- elsif-else yapısında öncelikli sorgulama sırasını bilmek çok önemlidir birçok kişi bu konuda hata yapabilir. Örneğin
Kod:
if   A=true   then      (* 1nci öncelikli sorgulama *) (* expression -1 *)
     islem := islem +1; (* 1nci Öncelikli işlem     *) (* Statement-1   *)
elsif B= true then      (* 2nci öncelikli sorgulama *) (* expression -2 *)
     islem := islem +2; (* 2nci öncelikli işlem     *) (* Statement-2   *)
else
     islem := 0;        (*yukarıdaki sorgulama sonuçları true degil ise *) (*Default statement *)
end_if

(islem :INT, A ve B: BOOL tipinde değişkenler olsun)
Şimdi yukarıdaki örnekte Sadece A=true ise islem sonucu birer birer artar.
Sadece B=true ise islem sonucu 2 şer ikişer artar.
A ve B aynı anda TRUE olursa, islem sonucu birer birer artar.(Burası çok önemli) if -elsif-else komutunda
en üstteki if satır sorguları altındakilerine baskındır, önceliklidir(!).
Else koşulu üstteki sorgulama sonuçlarından herhangi biri true degilse islem sonucu sıfırlanır.

if -elsif-else yapısının akış diyagramı aşağıdaki gibidir.

else-if-else-ladder-in-C-Programming-language.jpg
 
Son düzenleme:
Kod:
if(A or (B and C) or (D and E)) THEN
    Z:=TRUE;
ELSE
    Z:=FALSE;
END_IF;
@hkn_blt peki bu yazımda (A=True or (B=True and C=True) or (D=True and E=True)) şeklinde değişkenin TRUE olma şartını belirtmek gerekmiyor mu?

@elektronikmuh bilgi için teşekkür ederim. Gerçekten önemli bir durum. insana saç baş yolduracak cinsten :)
 
Hayır gerekmez içine yazdığınız da default olarak TRUE demektir zaten.
 

Yeni mesajlar

Forum istatistikleri

Konular
128,190
Mesajlar
915,724
Kullanıcılar
449,960
Son üye
katzeimar

Yeni konular

Çevrimiçi üyeler

Geri
Üst