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
 
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.
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,125
Mesajlar
915,240
Kullanıcılar
449,837
Son üye
betül hüsrevoğlu

Yeni konular

Çevrimiçi üyeler

Geri
Üst