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.

44.jpg
 
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.
 

Forum istatistikleri

Konular
130,123
Mesajlar
933,344
Kullanıcılar
453,199
Son üye
matrix43

Yeni konular

Geri
Üst