S7 300 FB, FC kullanımı hk.?

husso35

Üye
Katılım
11 Mar 2008
Mesajlar
194
Puanları
1
Merhabalar,programlamada yeniyim,ladder programlamada FC ve FB leri OB içerisinde nasıl organize edeceğim
konusunda yardım bekliyorum.
FC ve FB leri OB içerisinde birbiri ile çakışmadan düzenli olarak çalışması için yapmam gerekenler nelerdir,
örneğin,ladder da FC yi bir kontakla devre dışı bıraktığım zaman,o anda FC bir çıkışı çalıştırıyorsa o şekilde kalıyor,yada bir FC de kullandığım çıkışı başka bir FC nin çıkışında kullanamıyorum.
Yardmcı olursanız sevinirim,sayglar.
 
Bir FC'nin çağrılmasını durdurduğunuzda o FC içinde kullanılmış çıkışlara artık o FC'nin bir etkisi yoktur. Yani FC nin son çalışmasında SET ettiğiniz bir çıkış SET kalacaktır.

"yada bir FC de kullandığım çıkışı başka bir FC nin çıkışında kullanamıyorum" demişsiniz. Problemi çok net anlatmamışsınız. Bir çıkışı istediğiniz kadar FC de kullanırsınız. Bir sınırlama yok ama program çevrimin en sonuna yakın o çıkış için ne atamışsanız çıkışta onu görürsünüz.
 
Öncelikle büyük harfli başlık açtığım için özür dilerim sonradan farkettim.


Konuyu biraz daha açayım,ufak bir program tasarladım x ve y eksenli gezen,yukarı aşağı hareket eden bir kol var(gezer vinc benzeri),kolun ucunda bir tutma aparatı var,ben x ve y koordinatlarını girip start verince sırasıyla yapmasını istediğim işlemler;
objeyi alacak (sıfır noktasından),kaldıracak,girdiğim koordinata gidecek(counter ile sayacak),kol inecek,kutuyu bırakacak,tekrar referansa dönüp duracak
bu işlemler için 4 tane fonksiyon hazırladım
1-kutu al 2-koordinata git 3-kutu bırak 4- referansa dön

kolu aşağı indiren ve yukarı kaldıran motor rölesi,kutu alma ve kutu bırakma fc lerinin ikisininde çıkışında bağlı
fonksiyonlardan birini devre dışı bırakmazsam diğer fonksiyon röleyi çalıştırmıyor
yani her fonksiyonun işlem bitince kendini resetlemesi ve devre dışı bırakılmasımı gerekiyor?
 
Eğer anlayabildiysem örnekle açıklamaya çalışayım. Ben olsam programı farklı yazardım. Ama sizin yönteminizde şu şekilde yapabilirsiniz:

FC1 içinde
Q0.1=1
ve
FC2 içinde
Q0.1=0
yaptıysan ve
OB1 için

Network 10'da call FC1
Network 20'de call FC2 ise

Q0.1=0 olacaktır.
İhtiyaca göre şöyle bir şey yapılabilir:
FC1 içinde
M0.1 = 1
FC2 içinde
M1.0 = 0

OB 1 'de
Q0.1 = M0.1 AND M1.0
yapılabilir

veya

Q0.1 için FC1 deki kod çalışacaksa OB1 de FC2 çağrılmaz, FC2'deki kod çalışacaksa FC1 çağrılmaz.

Biliyorsunuzdur ama genel bilgi olsun PLC önce inputları okur, programı işletir, outputları verir ve tekrar inputları okur. Program işlemdikçe çıkış verilmez veya program işletim anında input okunmaz.
 
Reset diye bir FC oluşturup şarta bağlı çağrılmalarda ilgili şart oluştuğun anladığın anda(çıkan veya düşen kenarda) Reset içine giren bir prg. yaz ve kullandığın değişkenleri burada sıfırla...
 
Eğer anlayabildiysem örnekle açıklamaya çalışayım. Ben olsam programı farklı yazardım. Ama sizin yönteminizde şu şekilde yapabilirsiniz:

FC1 içinde
Q0.1=1
ve
FC2 içinde
Q0.1=0
yaptıysan ve
OB1 için

Network 10'da call FC1
Network 20'de call FC2 ise

Q0.1=0 olacaktır.
İhtiyaca göre şöyle bir şey yapılabilir:
FC1 içinde
M0.1 = 1
FC2 içinde
M1.0 = 0

OB 1 'de
Q0.1 = M0.1 AND M1.0
yapılabilir

veya

Q0.1 için FC1 deki kod çalışacaksa OB1 de FC2 çağrılmaz, FC2'deki kod çalışacaksa FC1 çağrılmaz.

Biliyorsunuzdur ama genel bilgi olsun PLC önce inputları okur, programı işletir, outputları verir ve tekrar inputları okur. Program işlemdikçe çıkış verilmez veya program işletim anında input okunmaz.


gayet güzel bir açıklama
 

Forum istatistikleri

Konular
129,867
Mesajlar
930,872
Kullanıcılar
452,732
Son üye
erencok

Yeni konular

Çevrimiçi üyeler

Geri
Üst