Scl dilinde eklemeli sistem

Aslnfkrt

Üye
Katılım
29 Ağu 2019
Mesajlar
90
Puanları
1
Merhabalar scl dilinde gelen sinyalin üzerine birer birer sayacak durumu yazmam lazım fakat saymayı sayıcı kullanmadan yapmam gerekiyor. Bunu nasıl yapabilirim fikri olan var mı? Örneğin random bir sayı geldi 5 bunun üzerine bir bir durmadan sayacak
 
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.
Kod:
PROGRAM PLC_PRG
VAR
    setvalue:INT:=0;     (*Degeri degistirilen deger ben INT aldim, REAL veya baska bisi olabilir *)
    reset:BOOL:=FALSE;   (*Degerin degistigini anladiktan sonra  tekrar kurmak için reset girisi *)
    oldvalue:INT;        (*Bir önceki set degeri tuttugumuz ara degisken *)
    changed:BOOL;        (*Degerin degistigini isaret eden bit! *)
    RandomSayi: REAL;
END_VAR

Kod:
    IF setvalue <> oldvalue THEN  (* giris ile bir önceki deger karsilastirilir *)
       RandomSayi := setvalue;
       changed:=TRUE;                   (* Deger degisti bilgisi setleniyor *)
       oldvalue:=setvalue;              (* yeni deger eski degere aktariliyor *)
    ELSIF reset THEN                    (* Reset sartina bakiliyor *)
       changed:=FALSE;                  (* Reset varsa RandomSayi Saymayi durdurur *)
       reset := FALSE;
    END_IF;                       

    IF changed THEN             (* Deger değiştiyse reset gelene kadar Say *)
        RandomSayi := RandomSayi + 1;
    END_IF

https://www.kontrolkalemi.com/forum...7-scl-programlama-dili.1047/page-2#post-67777
 
Son düzenleme:
Kod:
PROGRAM PLC_PRG
VAR
    setvalue:INT:=0;     (*Degeri degistirilen deger ben INT aldim, REAL veya baska bisi olabilir *)
    reset:BOOL:=FALSE;   (* Degerin degistigini anladiktan sonra  tekrar kurmak için reset girisi *)
    oldvalue:INT;        (*Bir önceki set degeri tuttugumuz ara degisken *)
    changed:BOOL;        (*Degerin degistigini isaret eden bit! *)
    RandomSayi: REAL;
END_VAR

Kod:
   IF setvalue <> oldvalue THEN  (* giris ile bir önceki deger karsilastirilir *)
       RandomSayi := setvalue;
       changed:=TRUE;                   (*  Deger degisti bilgisi setleniyor *)
       oldvalue:=setvalue;              (* yeni deger eski degere aktariliyor *)
    ELSIF reset THEN                    (* Reset sartina bakiliyor *)
       changed:=FALSE;                  (* Reset varsa RandomSayi Saymayi durdurur *)
       reset := FALSE;
    END_IF;                            

    IF changed THEN             (* Say *)
        RandomSayi := RandomSayi + 1;
    END_IF

https://www.kontrolkalemi.com/forum...7-scl-programlama-dili.1047/page-2#post-67777
Kod:
PROGRAM PLC_PRG
VAR
    setvalue:INT:=0;     (*Degeri degistirilen deger ben INT aldim, REAL veya baska bisi olabilir *)
    reset:BOOL:=FALSE;   (*Degerin degistigini anladiktan sonra  tekrar kurmak için reset girisi *)
    oldvalue:INT;        (*Bir önceki set degeri tuttugumuz ara degisken *)
    changed:BOOL;        (*Degerin degistigini isaret eden bit! *)
    RandomSayi: REAL;
END_VAR

Kod:
   IF setvalue <> oldvalue THEN  (* giris ile bir önceki deger karsilastirilir *)
       RandomSayi := setvalue;
       changed:=TRUE;                   (* Deger degisti bilgisi setleniyor *)
       oldvalue:=setvalue;              (* yeni deger eski degere aktariliyor *)
    ELSIF reset THEN                    (* Reset sartina bakiliyor *)
       changed:=FALSE;                  (* Reset varsa RandomSayi Saymayi durdurur *)
       reset := FALSE;
    END_IF;                          

    IF changed THEN             (* Say *)
        RandomSayi := RandomSayi + 1;
    END_IF

https://www.kontrolkalemi.com/forum...7-scl-programlama-dili.1047/page-2#post-67777
Hocam elinize beyninize sağlık Scl de simülasyonu yaparken sadece INT e bit atamam gerekir yanlış mı anladım yoksa
 
Gelen değeri 1 bir arttırmak istiyorsan setvalue := gelen_deger olmalı(yani aynı tipte) ki arttırma işlemi gerçekleşebilsin, kısaca bit olmaz!
 

Forum istatistikleri

Konular
128,119
Mesajlar
915,160
Kullanıcılar
449,824
Son üye
Lecterer

Yeni konular

Geri
Üst