PLC’de Rising Edge veya Falling Edge algılama kullanılmadığında, buton girişi her tarama döngüsünde sürekli okunur. Bu, buton fiziksel olarak basılı kaldığı sürece PLC’nin girişi her döngüde “ON” olarak görmesine ve komutu tekrar tekrar tetiklemesine neden olur; bu da butona sürekli basılı gibi tepki vermesine yol açar.
PLC’de Rising Edge ve Falling Edge Kullanılmazsa Buton Neden Sürekli Basılı Gibi Davranır? Nedir?
Endüstriyel otomasyon sistemlerinde, bir operatörün bir butona basması genellikle tek bir olayı veya komutu tetiklemek içindir. Örneğin, bir motoru çalıştırmak, bir valfi açmak veya bir sayıcıyı artırmak gibi. Ancak Programlanabilir Mantık Denetleyicileri (PLC) bu fiziksel eylemi doğrudan “tek bir olay” olarak algılamaz. PLC’ler, belirli bir tarama döngüsü içinde, tüm girişlerini okur, program mantığını işler ve çıkışlarını günceller. Eğer bir buton girişi için Rising Edge (yükselen kenar) veya Falling Edge (düşen kenar) algılama komutları kullanılmazsa, PLC, buton fiziksel olarak basılı kaldığı sürece, her tarama döngüsünde bu girişi “aktif” (ON) olarak okur. Bu durum, PLC’nin sanki butona her tarama döngüsünde yeniden basılıyormuş gibi algılamasına ve ilgili komutu sürekli olarak tekrarlamasına yol açar. Bu da istenmeyen sürekli çalışma, hatalı sayımlar veya sistem kararsızlıkları gibi problemlere neden olur.
Çalışma Prensibi ve Teknik Veriler
Bir PLC’nin temel çalışma prensibi, sürekli bir döngü içinde girişleri okumak, program mantığını yürütmek ve çıkışları güncellemektir. Bu döngüye tarama döngüsü (scan cycle) denir. Tarama döngüsü genellikle mili saniyeler mertebesindedir ve bir PLC’nin hızı, bu döngünün süresiyle doğru orantılıdır. Bir buton fiziksel olarak basıldığında, bu genellikle insan tepki süresiyle ölçülen (örneğin 100 ms – 1 saniye) bir süre boyunca basılı kalır. Bu süre zarfında, bir PLC yüzlerce, hatta binlerce tarama döngüsü tamamlayabilir.
Eğer programda bir buton girişi (örneğin I0.0) doğrudan bir çıkışı (örneğin Q0.0) veya bir sayıcıyı (CTU) tetiklemek için kullanılıyorsa, ve bu tetikleme için kenar algılama (Rising Edge veya Falling Edge) kullanılmazsa, PLC her tarama döngüsünde I0.0’ın durumunu kontrol eder. Buton basılı olduğu sürece, I0.0 girişi “TRUE” (mantıksal 1) olarak okunur. Bu durumda, PLC programındaki ilgili mantık, her tarama döngüsünde yeniden yürütülür. Örneğin, bir sayıcı komutu varsa, buton basılı kaldığı sürece sayıcı her tarama döngüsünde bir artar. Bir motor start komutu varsa, motor her döngüde “start” sinyali almaya devam eder, bu da bazen motorun titremesine veya beklenmedik davranışlara yol açabilir.
Rising Edge (Yükselen Kenar) algılama, bir girişin durumunun “OFF”dan “ON”a geçtiği anı (yani bir darbenin başlangıcını) sadece bir tarama döngüsü boyunca “TRUE” olarak algılar. Bu, butona fiziksel olarak ne kadar süre basılırsa basılsın, ilgili komutun sadece bir kez, basılma anında tetiklenmesini sağlar. Benzer şekilde, Falling Edge (Düşen Kenar) algılama, bir girişin durumunun “ON”dan “OFF”a geçtiği anı (yani bir darbenin bitişini) sadece bir tarama döngüsü boyunca “TRUE” olarak algılar. Bu mekanizmalar, PLC’nin dahili belleğinde özel bir kenar bayrağı (edge flag) kullanarak, bir önceki tarama döngüsündeki giriş durumu ile mevcut tarama döngüsündeki giriş durumunu karşılaştırarak çalışır. Bu sayede, anlık olayları güvenilir bir şekilde yakalamak mümkün olur.
| Parametre | Değer/Açıklama |
|---|---|
| PLC Tarama Döngüsü Süresi | Tipik olarak 1 ms ile 100 ms arasında değişir. Hızlı PLC’lerde daha kısadır. |
| Giriş Okuma Yöntemi | Her tarama döngüsünde tüm dijital girişler eş zamanlı olarak okunur ve Giriş Görüntü Belleği (Input Image Table) güncellenir. |
| Kenar Algılama Mekanizması | Mevcut döngüdeki giriş durumu ile bir önceki döngüdeki kaydedilmiş giriş durumu karşılaştırılarak anlık değişim (OFF->ON veya ON->OFF) saptanır. |
| Rising Edge Komutu Örneği | Siemens S7: P (Positive Edge), Allen-Bradley: ONS (One-Shot), Omron: DIFU (Differentiate Up). |
| Falling Edge Komutu Örneği | Siemens S7: N (Negative Edge), Allen-Bradley: ONSF (One-Shot Falling), Omron: DIFD (Differentiate Down). |
| Kenarsız Tetikleme Sonucu | Buton basılı kaldığı sürece ilgili komut her tarama döngüsünde tekrarlanır (örneğin, sayıcı her döngüde artar). |
| Kenarlı Tetikleme Sonucu | Buton basılsa veya bırakılsa dahi ilgili komut sadece bir kez, durum değiştiği anda tetiklenir (örneğin, sayıcı butona her basıldığında sadece bir kez artar). |

Sahada Dikkat Edilmesi Gerekenler
- Doğru Algılama Mekanizması Seçimi: Her buton için kenar algılama kullanmak zorunlu değildir. Örneğin, bir mandallı (kalıcı) buton ile bir motoru başlatıp durduruyorsanız (Set/Reset mantığıyla), butonun sürekli “ON” veya “OFF” durumunu okumak yeterli olabilir. Ancak, bir sayıcıyı artırmak, bir darbe sinyali göndermek veya bir sıralı adımı tetiklemek gibi anlık olaylar için mutlaka kenar algılama kullanılmalıdır. Yanlış seçim, sistemin öngörülemez davranışlar sergilemesine yol açar.
- Hızlı Tarama Döngüsü Etkisi: Modern PLC’ler çok hızlı tarama döngülerine sahiptir (bazı durumlarda mikrosaniyeler). Kenar algılama kullanılmadığında, bu hız, buton basılı kaldığı kısa süre içinde bile yüzlerce, hatta binlerce kez komutun tetiklenmesine neden olabilir. Bu durum, özellikle yüksek hızlı makinelerde ciddi senkronizasyon ve kontrol problemlerine yol açar. Örneğin, bir hidrolik valfin anlık açılıp kapanması gereken bir uygulamada, kenar algılamasız bir buton valfin sürekli titreşmesine ve erken yıpranmasına neden olabilir.
- Program Karmaşıklığı ve Hata Ayıklama: Kenar algılama kullanılmadığında, program mantığını doğru bir şekilde tasarlamak ve hata ayıklamak zorlaşır. Bir durumun neden sürekli tetiklendiğini veya bir sayıcının neden beklenenden fazla arttığını anlamak, kenar algılama mekanizmasının eksikliği nedeniyle zaman alıcı ve karmaşık hale gelebilir. Kenar algılama, program akışını daha net, okunabilir ve yönetilebilir kılar.
- Güvenlik Kritik Uygulamalar: Acil durdurma butonları veya güvenlik kapısı sensörleri gibi güvenlik kritik uygulamalarda, yanlış veya sürekli algılama ciddi tehlikelere yol açabilir. Örneğin, bir güvenlik kapısı açıldığında bir makinenin hemen ve sadece bir kez durması gerekirken, kenar algılamasız bir sensör, kapı açık kaldığı sürece makineyi sürekli durdurma komutuyla bombardımana tutabilir veya daha kötüsü, yanlış bir mantıkla makinenin tekrar çalışmasına neden olabilir. Bu tür uygulamalarda, güvenlik standartlarına uygun (örn. EN ISO 13849) ve güvenilir algılama yöntemleri esastır.
- Bellek ve İşlemci Kaynakları: Kenar algılama komutları, PLC’nin dahili belleğinde bir veya daha fazla bit (kenar bayrağı) kullanır. Bu, programcı tarafından manuel olarak bir bellekteki bitin durumunu kaydetmeye çalışmaktan daha verimli ve hatasızdır. Manuel olarak durum takibi yapmak, hem daha fazla programlama çabası gerektirir hem de hata yapma olasılığını artırır. Modern PLC’lerde bu bellek kullanımı genellikle ihmal edilebilir düzeydedir.

Sık Karşılaşılan Sorunlar ve Çözümleri
Endüstriyel otomasyonda, kenar algılama kullanılmamasından kaynaklanan birçok yaygın sorunla karşılaşılır. Bu sorunlar, genellikle sistemin kararsız çalışmasına, hatalı üretim verilerine ve hatta ekipman arızalarına yol açabilir.
- Sorun: Çıkışın Sürekli Açılıp Kapanması veya Açık Kalması
Senaryo: Bir butona basıldığında bir motorun veya valfin bir kez çalışıp sonra durması beklenirken, buton basılı kaldığı sürece motor titriyor veya valf sürekli açılıp kapanıyor ya da motor durması gerekirken sürekli çalışıyor.
Çözüm: Motoru veya valfi çalıştırmak için butonun yükselen kenarını (Rising Edge) kullanın. Durdurmak için ise, eğer ayrı bir durdurma butonu varsa onun yükselen kenarını veya aynı butonun düşen kenarını (Falling Edge) kullanarak bir Set/Reset (Latch/Unlatch) mantığı uygulayın. Bu, butonun fiziksel olarak basılı kalma süresinden bağımsız olarak, komutun yalnızca bir kez tetiklenmesini sağlar.
- Sorun: Sayıcıların Yanlış Sayması
Senaryo: Bir butona bir kez basıldığında sayıcının bir artması beklenirken, her basışta sayıcı beklenenden çok daha fazla (örneğin 10-20 kez) artıyor.
Çözüm: Sayıcı (Counter) komutunun tetikleyici girişine (CU veya CTUD) butonun yükselen kenarını (Rising Edge) bağlayın. Bu, sayıcının butonun her basılma olayında yalnızca bir kez artmasını garanti eder, butonun basılı kalma süresinden etkilenmez.
- Sorun: Tek Seferlik Komutların Tekrarlanması
Senaryo: Bir alarmı sıfırlama, bir hafıza bitini ayarlama veya bir veri bloğuna tek seferlik bir yazma işlemi gibi sadece bir kez gerçekleşmesi gereken bir eylem, buton basılı kaldığı sürece tekrar tekrar yürütülüyor.
Çözüm: Bu tür tek seferlik eylemleri tetiklemek için butonun yükselen kenarını (Rising Edge) kullanın. Bu, komutun yalnızca butonun aktif hale geldiği ilk tarama döngüsünde yürütülmesini sağlar ve istenmeyen tekrarları engeller.
- Sorun: Sistem Kilitlenmeleri veya Beklenmedik Mantıksal Hatalar
Senaryo: Bir sıralı kontrol sisteminde, bir adımın tamamlanmasıyla diğerinin başlaması gerekirken, sistem beklenmedik bir şekilde takılıyor, adımlar atlıyor veya yanlış sırayla ilerliyor.
Çözüm: Adım geçişlerini veya sıralı mantık tetikleyicilerini, ilgili sensör veya buton girişlerinin yükselen veya düşen kenarları (Rising/Falling Edge) ile ilişkilendirin. Bu, her adımın doğru bir olayla tek seferlik tetiklenmesini sağlar ve mantıksal akışın tutarlı kalmasına yardımcı olur. Özellikle bir adımın tamamlandığını gösteren bir sensörün kenarını kullanmak, sonraki adıma geçişi daha güvenilir hale getirir.
Uzman Tavsiyesi
PLC programlamasında Rising Edge ve Falling Edge komutlarının kullanımı, sadece bir programlama “inceliği” değil, aynı zamanda güvenilir, stabil ve öngörülebilir endüstriyel otomasyon sistemleri tasarlamanın temel bir gerekliliğidir. Bir butonun fiziksel eylemini, PLC’nin dijital dünyasında tek bir, net bir olaya dönüştürmek, sistemin karmaşıklığını azaltır, hata ayıklama süreçlerini basitleştirir ve en önemlisi, beklenmedik davranışların önüne geçer. Saha tecrübelerimiz göstermektedir ki, bu temel ilkenin göz ardı edilmesi, sayıcıların yanlış değerler göstermesinden, motorların titremesine, valflerin sürekli açılıp kapanmasından, hatta güvenlik sistemlerinde ciddi açıklara kadar geniş bir yelpazede sorunlara yol açabilmektedir.
Uzman tavsiyesi olarak, her zaman bir buton veya sensör girişini bir olayı tetiklemek için kullandığınızda, programlama pratiğinizde ilk düşünmeniz gereken şeyin kenar algılama olması gerektiğini unutmayın. Bu, özellikle operatör etkileşimli kontrol panelleri, parça sayma sistemleri, sıralı makineler ve herhangi bir “tek darbe” mantığı gerektiren uygulamalar için hayati öneme sahiptir. Programınızı tasarlarken, hangi girişlerin sürekli durum bilgisi (örneğin bir tank seviyesi sensörü) ve hangilerinin anlık olay bilgisi (örneğin bir acil durdurma butonu) gerektirdiğini net bir şekilde ayırın. Bu ayrım, daha verimli, daha güvenli ve daha kolay bakımı yapılabilen otomasyon çözümleri geliştirmenizi sağlayacaktır. PLC programlamasında “less is more” ilkesi geçerlidir; karmaşık ve hataya açık manuel durum takipleri yerine, PLC’nin yerleşik ve optimize edilmiş kenar algılama fonksiyonlarını kullanarak programınızı sadeleştirin ve sağlamlaştırın.

