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
 
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
129,903
Mesajlar
931,173
Kullanıcılar
452,789
Son üye
yigitt.m

Çevrimiçi üyeler

Geri
Üst