SCL ile Timer Olayı.

Açıkçası bende bu konuya 2 gündür eğiliyorum ve anlamaya çalışıyorum. İşe yarar örnekler oluşturabilirsem elbette paylaşırım.
 
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.
Arkadaşlar; SCL diliyle oluşturulan bir fonsiyon bloğumuz var ve biz gene SCL ile ana blok (OB1) oluşturmak ve aşağıdaki kodları OB1 içine SCL şeklinde yazmak istiyorum ne yapmam gerekir?


NETWORK 1
CALL FB 1 , DB2
NOP 0

NETWORK 2
A I 124.0
= DB2.DBX 44.0

NETWORK 3
A I 124.1
= DB2.DBX 44.1

NETWORK 4
A DB2.DBX 54.0
= Q 124.0

NETWORK 5
A DB2.DBX 54.1
= Q 124.1
 
Sayın Elektronikmuh. Arkadaşın vermiş olduğu örnek üzerinde çalışarak SCL diliyle oluşturulan FB yi gene SCL ile OB1 den çağırarak
gerçekleştirdiğim bir uygulamadır.



//I124.0=1 İSE GECIKMELI OLARAK Q124.0=1 OLSUN
//I124.1=1 İSE Q124.1 HEMEN 1 OLUP daha sonra I124.1=0 YAPILDIĞINDA
//GECIKMELI OLARAK Q124.1=0 yapan program

//*********FB1 DONGUSU **********
FUNCTION_BLOCK FB1
TITLE = ' TON ve TOFF Uygulaması '
VAR
On : TON;
Off : TOF;
END_VAR
VAR_INPUT
START1 : BOOL := FALSE;
START2 : BOOL := FALSE;
ZAMAN1 : TIME := T#20s;
ZAMAN2 : TIME := T#15s;
END_VAR
VAR_OUTPUT
CIKIS1 : BOOL := FALSE;
CIKIS2 : BOOL := FALSE;
END_VAR
BEGIN
//TON
On (
IN := Start1, //ZAMANLAYICI GİRİŞİ
PT := ZAMAN1); //SÜRE ATAMASI

CIKIS1 := On.Q;
//TOFF
Off (
IN := START2, //ZAMANLAYICI GİRİŞİ
PT := ZAMAN2); //SÜRE ATAMASI

CIKIS2 :=OFF.Q;
END_FUNCTION_BLOCK //FB1 SONU

//*********ORGANIZASYON BLOCK OB1 DONGUSU **********
ORGANIZATION_BLOCK OB1
VAR_TEMP
systemdata : ARRAY[0..20] OF BYTE; // Area for OB1
END_VAR
BEGIN
FB1.DB2(START1:=I124.0,START2:=I124.1);
Q124.0:=DB2.CIKIS1;
Q124.1:=DB2.CIKIS2;


END_ORGANIZATION_BLOCK //OB1 SONU
//********************************
 
Arkadaşlar şu timerı kendi içerisinden 10 Sn. Bir çalışıp duracak şekilde restletip tekrar çalıştıramadım. Birkere çalıştıktan sonra bir türlü çıkış kontağını False yapamadım.Sizce ne yapmam lazım gelir.

SAyi := Sayici;
IF startTime= 1 AND start2=0 THEN
start2 := 1;
END_IF;
On ( //Start on delay
IN := Start2,
PT := Duration2);
Status2 := On.Q;
Tvalue2 := On.ET;


//*****************************************************************************
IF On.Q = 1 AND startTime = 1 THEN
GercekHiz := Sayi;
On.Q := 0;
Start2 := 0;
END_IF;
 
Ya bir türlü Timer yenilenmiyor. StartTime sinyali kesilene kadar sürekli dönmesini istiyorum ancak bir türlü olmuyor.
While Do döngüsüne soktum PLC Stop a geçti. Farklı kontak varyasyonlarını denedim olmadı. Status2 True oluyor sonra bişi yok.
 
Son düzenleme:
On delay timer ın tekrar start alabilmesi için "IN :=" girişinin kesilip tekrar verilmesi gerekir. "Start2 " değişkenin true yapınca, Duration2 süresi sonunda sürekli reset alıp tekrar çalışır.

Kod:
FUNCTION_BLOCK FB1
TITLE = 'SCL ve çeşitli zaman elemanlarıyla çalışma örnekleri '

VAR
   On        : TON;         
   Start2    : BOOL := FALSE;
   Tvalue2   : TIME := T#0s;
   Duration2 : TIME := T#1s;
   Status2   : BOOL := FALSE;
END_VAR

BEGIN
//*****************************************************************************
On    (      //Start on delay
  IN := [B](Start2 AND NOT Status2)[/B],
  PT := Duration2);
  
Status2 := On.Q;
Tvalue2 := On.ET;


//*****************************************************************************
END_FUNCTION_BLOCK
 
Son düzenleme:
Evet ElektronikMuh ustadın verdiği örneği şu şekilde değiştirerek kullandım ve şuanda istediğim gibi çalışıyor çok şükür.

IF startTime = 1 THEN
Start2 := 1;
Duration2 := T#10S;
ELSE;
Start2 := 0;
END_IF;


On ( //Start on delay
IN := (Start2 AND NOT Dur),
PT := Duration2);
Status2 := On.Q;
Tvalue2 := On.ET;


IF Status2 = 1 THEN
GercekHiz := Sayi;
Dur := 1;
ELSE;
Dur := 0;
END_IF;
 
arkadaşlar bana timer ile ilgili soru ve cevabı lazım. Pek birşey bilmiyorum bu plc ile ilgili dönem ödevim için yardım edin lütfen. cevaplarınızı en kısa zamanda bekliyorum. sadece 1 soru ve cevabı yeter. şimdiden teşekkür ediyorum.
 

Forum istatistikleri

Konular
128,815
Mesajlar
920,697
Kullanıcılar
450,907
Son üye
saitdemircigil

Yeni konular

Geri
Üst