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

shox

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

 
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.

 
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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…