ST yazım desteği

Katılım
8 Haz 2017
Mesajlar
51
Puanları
1
Merhaba.
Resimdeki ladder diyagramını ST dilinde nasıl yazabilriim?
Diyagramda DokAğzıAçık ve TestModeAktif bitleri fiziksel girişten alınıyor o nedenle bunları yükselen kenar kullanmak zorundayım.
60795
 
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.
Yazımızda endüstrinin can damarı sayılabilecek PLC’yi inceleyeceğiz.
Mitsubishi Plc için şu şekilde yazabiliriz

Kod:
R_TRIG_DokAgziAcik(CLK:= DokAgziAcik);
R_TRIG_p_Otomatik_2(CLK:= p_Otomatik_2);
R_TRIG_TestModeAktif(CLK:= TestModeAktif);
R_TRIG_YuksekBasinc(CLK:= YuksekBasinc);
R_TRIG_YuksekSicaklik(CLK:= YuksekSicaklik);

SET((p_Manuel_1 AND R_TRIG_DokAgziAcik.Q) OR R_TRIG_p_Otomatik_2.Q OR R_TRIG_TestModeAktif.Q , FrenleriAc);

RST(R_TRIG_YuksekBasinc.Q OR (TrotAktif AND R_TRIG_YuksekSicaklik.Q) , FrenleriAc);
 
Mitsubishi Plc için şu şekilde yazabiliriz

Kod:
R_TRIG_DokAgziAcik(CLK:= DokAgziAcik);
R_TRIG_p_Otomatik_2(CLK:= p_Otomatik_2);
R_TRIG_TestModeAktif(CLK:= TestModeAktif);
R_TRIG_YuksekBasinc(CLK:= YuksekBasinc);
R_TRIG_YuksekSicaklik(CLK:= YuksekSicaklik);

SET((p_Manuel_1 AND R_TRIG_DokAgziAcik.Q) OR R_TRIG_p_Otomatik_2.Q OR R_TRIG_TestModeAktif.Q , FrenleriAc);

RST(R_TRIG_YuksekBasinc.Q OR (TrotAktif AND R_TRIG_YuksekSicaklik.Q) , FrenleriAc);
merhabalar.
Öncelikle cevap için teşekkür ederim.
Ben Delta 15MC için yazmaya çalışıyorum ama help dosyasından ve editörden gördüğüm kadarıyla SET ve RESET komutları ST dili için mevcut değil.
O nednele daha farklı bir yol bulmaya çalışıyorum.
 
merhabalar.
Öncelikle cevap için teşekkür ederim.
Ben Delta 15MC için yazmaya çalışıyorum ama help dosyasından ve editörden gördüğüm kadarıyla SET ve RESET komutları ST dili için mevcut değil.
O nednele daha farklı bir yol bulmaya çalışıyorum.

Delta'da yazmadım ama şu şekilde olması gerek

Kod:
R_TRIG_DokAgziAcik(CLK:= DokAgziAcik);
R_TRIG_p_Otomatik_2(CLK:= p_Otomatik_2);
R_TRIG_TestModeAktif(CLK:= TestModeAktif);
R_TRIG_YuksekBasinc(CLK:= YuksekBasinc);
R_TRIG_YuksekSicaklik(CLK:= YuksekSicaklik);

IF ((p_Manuel_1 AND R_TRIG_DokAgziAcik.Q) OR R_TRIG_p_Otomatik_2.Q OR R_TRIG_TestModeAktif.Q) THEN
    FrenleriAc := TRUE;
END_IF;

IF (R_TRIG_YuksekBasinc.Q OR (TrotAktif AND R_TRIG_YuksekSicaklik.Q)) THEN
    FrenleriAc := FALSE;
END_IF;
 
Bu şekilde de olabilir.

Kod:
R_TRIG_A(CLK:= A);

IF R_TRIG_A.Q THEN
    IF B THEN
        Deger := Deger1;
    ELSIF C THEN
        Deger := Deger2;
    ELSIF D THEN
        Deger := Deger3;
    ELSIF E THEN
        Deger := Deger4;
    END_IF;
END_IF;

Biraz geç olduğu için kusura bakmayın. İyi çalışmalar.
 

Forum istatistikleri

Konular
128,126
Mesajlar
915,243
Kullanıcılar
449,839
Son üye
Qkay

Yeni konular

Geri
Üst