s7-200 plc'de fonksiyon yazıp sonra onu çağırabilirmiyiz? yani bir timer ve bir counter kullanarak bir fonksiyon oluşturup sonra bu fonksiyonu programın içinde bir çok kez ayrı ayrı kullanabilirmiyiz. her kullandığımız fonksiyon ayrı isimlendirildiği için ayrı sayıcı değerlerine sahip olabilir mi? teşekkürler..
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.
S7 200 de subrutin içinde lokal değşkenleri kullanarak FC oluşturabilirsin, ancak lokal değişkenler iile timer ve counter tanımlama imkanın yoktur dolayısıyla aynı bloğu farklı yerlerden çağırdığında blok içinde aynı timer ve counter çalışacağından sorun yaşarsın .
Belki pointer yöntemi kullanarak bişeyler yapılabilir.
Lütfen arka arkaya mesaj atmayınız forum kurallarını okuyunuz.
Düzenleme :Mustak
evet subroutine çağrıldığında aynı timer ve aynı counter değeri aktif oluyor. sonuçta iki farklı subroutine içinde geçsede timer aynı timer kabul ediliyor. sanırım subroutine benim sorum için çözüm olmayacak. subroutine ile sadece program cycle süresini kısaltmış ve gereksiz ise programın o bölümünü çağırmamış oluyoruz bu avantajı katıyor. bildiğiniz başka bir özelliği var mı subroutine'nin ?
Subroutine içersinde SMW 22 (Last Scan Time) 'daki zamanı kullanarak timer yapabilirsin. Her cycle'da bu değeri toplayıp subroutine den çıkmadan dışarda bir data alanına transfer edip, subroutine her çağrıldığında oradan tekrar okuyup SMW 22'yi eklersin. Daha sonra karşılaştırma komutu ile kontrol edersin. IN,OUT ve IN_OUT parametreleri ile yapılandırdığında istediğin kadar timer kullanabilirsin. (Tabi burada timer'ın hassasiyeti programın döngü süresi kadar olacaktır!) Counter'da aynı mantıkla yapılabilir. Tabi orada SMW 22'yi kullanmaya gerek yok.