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
130,116
Mesajlar
933,272
Kullanıcılar
453,179
Son üye
canerakdeniiz

Yeni konular

Çevrimiçi üyeler

Geri
Üst