Düşen - yükselen kenar nedir?

Yükselen kenar (rising edge), dijital bir sinyalin 0'dan 1'e; düşen kenar (falling edge) ise 1'den 0'a geçişidir. PLC programında bu geçişler, bir işlemi sinyalin değiştiği anda bir kez tetiklemek için kullanılır. Kenar, sinyalin sürekli durumu değil, durum değişikliğidir.
Seviye ile kenar arasındaki fark: Bir BOOL değişkeni TRUE kaldığı sürece seviye koşulu her çağrıda sağlanır. Yükselen kenar algılaması ise önce FALSE, sonra TRUE görüldüğünde olay üretir. Örneğin sensör önünde duran ürün için seviye uzun süre TRUE olabilir; ürünün ilk algılanması tek bir yükselen kenardır. Bir durumun devam etmesiyle yeni bir olayın oluşmasını ayırın.
Butona basmak her zaman yükselen kenar mıdır? Hayır. Bu, fiziksel bağlantıya ve programdaki sinyal eşlemesine bağlıdır. Basıldığında giriş FALSE oluyorsa düşen kenar oluşur. Giriş/çıkış modülleri üzerindeki elektriksel seviye ile yazılımda kullanılan mantıksal değer birlikte değerlendirilir. Önce butonun veya sensörün hangi durumda TRUE verdiğini belirleyin.
PLC kenarı nasıl algılar? PLC programlama içinde yazılım, mevcut sinyali önceki çağrıda saklanan değerle karşılaştırır. Önceki FALSE ve mevcut TRUE ise yükselen; önceki TRUE ve mevcut FALSE ise düşen kenar vardır. İki değer aynıysa yeni kenar yoktur. Yazılımın algıladığı değişim, okuyabildiği örnekler arasındaki değişimdir.
R_TRIG ve F_TRIG nedir? IEC 61131-3 tabanlı ortamlarda yaygın kullanılan fonksiyon blokları arasında R_TRIG yükselen, F_TRIG düşen kenarı algılar. CODESYS gibi ortamlarda CLK izlenen sinyali, Q ise kenar sonucunu temsil eder. Farklı programlama yazılımları başka komut adları veya kullanım kuralları sunabilir. Blok adını, girişlerini ve ilk çağrı davranışını kullanılan kütüphaneden kontrol edin.
Ladder, FBD ve ST'de kullanım: Ladder Diagram içinde kenar kontağı veya tek atımlık komut, FBD içinde bir tetikleme bloğu, Structured Text içinde blok çağrısı veya karşılaştırma mantığı kullanılabilir. SFC geçişlerinde de olay bilgisi değerlendirilebilir. Normal veya ters kontak, tek başına kenar algılaması değildir. Kontak seviyeyi; kenar algılayıcı önceki duruma göre değişimi değerlendirir.
“Bir çevrimlik darbe” ne kadar sürer? Düzenli olarak görev başına bir kez çağrılan kenar bloğunda Q, kenarın algılandığı çağrıda TRUE olur; sonraki çağrıda yeni kenar yoksa FALSE olur. Süre, görev zamanlaması ve çağrı düzenine bağlıdır. Bu yazılım olayı, sabit süreli bir fiziksel çıkış darbesi anlamına gelmez. Başka bir görevin veya cihazın bu kısa TRUE durumunu mutlaka göreceğini varsaymayın.
Önceki durum neden saklanır? Kenar algılayıcı, çağrılar arasında önceki değeri bellekte tutmalıdır. Her bağımsız sinyal için ayrı blok örneği veya ayrı önceki durum değişkeni kullanılır. Aynı örneği farklı sinyaller için kullanmak, geçmiş bilgilerini karıştırır. Sonucu bir kez hesaplayıp gerekli yerlerde kullanın; önceki durumu her çağrının başında sıfırlamayın.
Bloğu koşullu çağırmak neyi değiştirir? Blok çağrılmadığında giriş geçmişi ve Q güncellenmez. Sinyal bu sırada değişip eski durumuna dönebilir veya Q beklenenden uzun süre TRUE kalabilir. Kenar bloğunu düzenli çağırıp sonucunu gerekli izinlerle değerlendirmek daha açık bir yapı sağlar. Örneğin yalnızca giriş TRUE iken çağırmak, aradaki FALSE durumunun kaydedilmesini engelleyebilir.
Başlangıçta ne olur? PLC CPU RUN'a geçtiğinde giriş zaten TRUE olabilir. İlk çağrının olay üretip üretmeyeceği; komuta, kütüphaneye ve başlangıç belleğine bağlıdır. Aşağıdaki eğitim örneği ilk okumayı başlangıç kabul eder ve ilk çağrıda iki kenarı da üretmez. Enerji verme ve yeniden RUN'a geçme davranışını projede ayrıca tanımlayın.
Basit ST örneği: Signal, her çağrıdan önce güncel giriş değeriyle beslenen BOOL değişkenidir. Previous ve FirstCall çağrılar arasında saklanır. RisingPulse ve FallingPulse, önceki değer güncellenmeden önce hesaplanır. Bu program parçasının değişken yerleşimini ve giriş eşlemesini hedef yazılımda düzenleyin.
VAR
Signal : BOOL;
Previous : BOOL;
RisingPulse : BOOL;
FallingPulse : BOOL;
FirstCall : BOOL := TRUE;
END_VAR
IF FirstCall THEN
RisingPulse := FALSE;
FallingPulse := FALSE;
FirstCall := FALSE;
ELSE
RisingPulse := Signal AND NOT Previous;
FallingPulse := NOT Signal AND Previous;
END_IF;
Previous := Signal;
Örnek nasıl okunur? Signal sırayla 0, 0, 1, 1, 0 olarak okunursa ilk çağrı başlangıç değerini kaydeder; üçüncü çağrıda RisingPulse, beşinci çağrıda FallingPulse TRUE olur. Diğer çağrılarda ikisi de FALSE kalır. FirstCall başlangıçta TRUE olacak şekilde ayarlanır. Değişkenin başlangıç değeri, her STOP–RUN geçişinde otomatik yeniden uygulanmayabilir; istenen yeniden başlangıç için uygun başlangıç işlemini kullanın.
Kısa darbeler kaçırılabilir mi? Evet. Program sinyali 0 ve 10 ms anlarında okurken darbe 3–5 ms arasında oluşup biterse iki okumada da FALSE görülebilir. R_TRIG veya F_TRIG, hiç okunmamış bir değişimi geri getiremez. Hızlı sayıcı, donanımsal darbe yakalama veya kesme destekleri uygulamaya göre gerekebilir. Özellikle enkoder darbelerinde kanalın frekans ve minimum darbe süresi sınırlarını kontrol edin.
Kontak sıçraması ve giriş filtresi: Mekanik bir buton, tek basışta kısa süreli birden fazla geçiş oluşturabilir. Uygun filtreleme veya sıçrama giderme, bunların ayrı olaylar sayılmasını önlemeye yardımcı olur. Ancak uzun bir filtre süresi geçerli kısa darbeleri de silebilir. Donanımsal darbe yakalama da giriş filtresinden etkilenebilir. Filtreyi, gerçek sinyal süresi ve donanım özellikleriyle birlikte seçin.
HMI ve ağ üzerinden gelen olaylar: HMI, SCADA veya uzak I/O güncellemeleri PLC göreviyle aynı anda gerçekleşmeyebilir. Haberleşme üzerinden gönderilen kısa bir TRUE darbesi, alıcı okumadan önce sona erebilir. Önemli komutlarda alındı onayıyla tutulan istek veya sıra numarası gibi bir aktarım yöntemi kullanılabilir. Kenar algılamayı, olayın karşı cihaza ulaştığını doğrulayan bir yöntem olarak değerlendirmeyin.
Ürün sayma ve işlem başlatma: Yükselen kenar, yeni ürün algılandığında sayımı artırmak veya bir kez veri kaydetmek için kullanılabilir. Düşen kenar, ürün algılama alanından çıktığında sonraki işlemi tetikleyebilir. Olayın anlamı, sensörün yerleşimi ve süreç mantığıyla belirlenir. Sensör TRUE kaldığında tekrar işlem istenip istenmediğini ve aynı ürünün yeniden algılanma ihtimalini değerlendirin.
Hata ayıklamada ne izlenir? Hata ayıklama sırasında mevcut giriş, önceki durum ve kenar sonucu birlikte incelenir. Bir çağrılık TRUE değeri yavaş güncellenen ekranda görünmeyebilir; olay sayacı veya uygun izleme kaydı kullanılabilir. İlk çağrı, uzun basış, bırakma, hızlı tekrar ve yeniden başlatma durumlarını kontrol edin. Ekranda darbe görülmemesi, olayın programda hiç oluşmadığını tek başına kanıtlamaz.
Kenar algılama ve durdurma: Bir motor sürücüsüne başlatma isteği tek bir olayla verilebilir; çalışma izni ve duruş koşulları ise gerekli süre boyunca değerlendirilir. Bir izin kaybını yalnızca düşen kenarda işlemek, ilk çağrıdaki geçersiz durumu gözden kaçırabilir. Makine güvenliği için uygun mimari ve gerektiğinde güvenlik rölesi veya güvenlik PLC'si kullanılır. Kenar komutu, sürekli izlenmesi gereken bir izin veya güvenlik fonksiyonunun yerine geçmez.