bit çıkış aktif etme

ANTONİAS

Üye
Katılım
5 Mar 2008
Mesajlar
53
Puanları
1
Yaş
39
mrb arkadaşlar şöyle bir sorum var sizlere;
bir plc'nin
a,b,c,d,e,f,g,h,i,j dijital girişleri olsun
a,b,c,d,e,f,g,h,i,j dijital çıkışları olsun

girişlerin hepsı aynı anda aktif ise
çıkışlar sırayla 15 saniye arlıklarla aktif olup ring yapsın
şayet girişlerden bazıları aktif ise
örneğin;
a,b,c,g,j aktif ise
yalnızca ilgi çıkışları 15 er saniye aralıklarla aktif edib tekrar başa dönüp bir döngü şeklinde aktif olsun

bu programı CFC dilinde veya diğer bir şekilde nasıl yazabilirim.
Herkeze sonsuz saygılarımla
 
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.
PROGRAM PLC_PRG
VAR
input_array: ARRAY[1..9] OF BOOL;
output_array: ARRAY[1..9] OF BOOL;
index: INT;
index1: INT:=1;
control: BOOL;
SecimYapildi:BOOL;
BeklemeTime:TON;
END_VAR


BeklemeTime(IN:=control , PT:=t#5000ms , Q=> , ET=> );

IF control=FALSE AND SecimYapildi THEN
IF index1>9 THEN
index1:=1;
END_IF
FOR index:=index1 TO 9 BY 1 DO
IF input_array[index]=TRUE THEN
control:=TRUE;
index1:=index+1;
EXIT;
END_IF
END_FOR
END_IF





IF control=TRUE AND BeklemeTime.Q=FALSE THEN
output_array[index]:=TRUE;
END_IF

IF control=TRUE AND BeklemeTime.Q THEN
FOR index:=1 TO 9 BY 1 DO
output_array[index]:=FALSE;
END_FOR
control:=FALSE;
END_IF
 
PROGRAM PLC_PRG
VAR
input_array: ARRAY[1..9] OF BOOL;
output_array: ARRAY[1..9] OF BOOL;
index: INT;
index1: INT:=1;
control: BOOL;
SecimYapildi:BOOL;
BeklemeTime:TON;
END_VAR


BeklemeTime(IN:=control , PT:=t#5000ms , Q=> , ET=> );

IF control=FALSE AND SecimYapildi THEN
IF index1>9 THEN
index1:=1;
END_IF
FOR index:=index1 TO 9 BY 1 DO
IF input_array[index]=TRUE THEN
control:=TRUE;
index1:=index+1;
EXIT;
END_IF
END_FOR
END_IF





IF control=TRUE AND BeklemeTime.Q=FALSE THEN
output_array[index]:=TRUE;
END_IF

IF control=TRUE AND BeklemeTime.Q THEN
FOR index:=1 TO 9 BY 1 DO
output_array[index]:=FALSE;
END_FOR
control:=FALSE;
END_IF
 

Hocam Sanırım Ben sorumu yanlış sordum ve tekrar sorumu şu şekilde düzenlemek istiyorum

10 adet girişlerden gelen analog değer olsun bunlar her biri bir deger ile belirli bir sayı ile karşılaştırılsın büyük,küçük şeklinde.
her bir değerin sonucu Bool olarak gelsin
a
b
c
d
e
f
g
h
j
k
Benim istediğim bir fonksiyon bloğu bu çıkışlardan hangisi true ise her 15 saniyede sırasıyla döngü şeklinde çıkış verib belirtecek.
örneğin;
b
d
h
k bunlar true ise 15 saniye aralıklarla döngü şeklinde çıkış versin

saygılarımla
 
Tmm karsilastirmayi sen yap input array in bool degerlerine sirayla ata outputtan donguyu alirsin bu yazilim input array de ki true olan bool degerlerini output array de ring yapar simule et anlarsin programi
 
Tmm karsilastirmayi sen yap input array in bool degerlerine sirayla ata outputtan donguyu alirsin bu yazilim input array de ki true olan bool degerlerini output array de ring yapar simule et anlarsin programi

Hocam programı denedim ancak program çalışıyor ancak simule etmeyi başaramadım
birde çıkışları string olarak nasıl alabilirim?
 

Forum istatistikleri

Konular
127,956
Mesajlar
913,904
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Çevrimiçi üyeler

Geri
Üst