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

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