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