OtoBlog

PLC’de Rising Edge Kullanılmazsa Tek Buton Basışı Neden Birden Fazla İşlem Yapar?

12 dk okuma Mermak CNC Teknik İçerik
PLC’de Rising Edge Kullanılmazsa Tek Buton Basışı Neden Birden Fazla İşlem Yapar?
İçindekiler
  1. PLC’de Rising Edge Kullanılmazsa Tek Buton Basışı Neden Birden Fazla İşlem Yapar? Nedir?
  2. Çalışma Prensibi ve Teknik Veriler
  3. Sahada Dikkat Edilmesi Gerekenler
  4. Sık Karşılaşılan Sorunlar ve Çözümleri
  5. Uzman Tavsiyesi

PLC’de Rising Edge (Pozitif Kenar Tetikleme) kullanılmadığında, tek bir buton basışı PLC’nin hızlı tarama döngüsü nedeniyle giriş sinyalini birden fazla kez “aktif” olarak algılar ve bu da istenmeyen çoklu işlemleri tetikler. Mekanik butonların doğasındaki sekme (bounce) olayı da bu durumu pekiştirir.

PLC’de Rising Edge Kullanılmazsa Tek Buton Basışı Neden Birden Fazla İşlem Yapar? Nedir?

 

Endüstriyel otomasyon sistemlerinde, operatörlerin bir makineyi başlatmak, durdurmak veya belirli bir işlevi tetiklemek için kullandığı butonlar, genellikle PLC (Programlanabilir Mantık Denetleyicisi) dijital girişlerine bağlanır. Bu butonlar fiziksel cihazlar olup, basıldıklarında veya bırakıldıklarında elektrik sinyali üretirler. Ancak, bu basit gibi görünen işlem, PLC programlama prensipleri doğru uygulanmadığında karmaşık ve hatalı sonuçlar doğurabilir. Temel sorun, PLC’nin çalışma biçimi ve mekanik butonların fiziksel özellikleri arasındaki uyumsuzluktan kaynaklanır.

Bir PLC, sürekli olarak belirli bir döngü içinde çalışır. Bu döngüye tarama döngüsü (scan cycle) denir ve genellikle milisaniyeler mertebesindedir. Her tarama döngüsünde PLC sırasıyla şu adımları gerçekleştirir:

  1. Tüm fiziksel girişlerin durumunu okur ve bunları hafızasına yazar.
  2. Kullanıcı tarafından yazılan programı (mantık, hesaplamalar, zamanlayıcılar vb.) bu giriş değerlerine göre yürütür.
  3. Programın sonucunda belirlenen çıkış değerlerini fiziksel çıkışlara yazar.

Bu döngü, PLC’nin enerjisi kesilene kadar kesintisiz devam eder. Bir operatör bir butona bastığında, bu buton fiziksel olarak kapanır ve PLC girişine bir sinyal (genellikle +24V) gönderir. Eğer programda bu girişin “yüksek” (ON) olması durumunda bir işlem tetiklenecek şekilde bir mantık kurulmuşsa ve Rising Edge (Pozitif Kenar Tetikleme) komutu kullanılmamışsa, PLC butona basılı kaldığı sürece bu girişi her tarama döngüsünde “yüksek” olarak algılayacaktır. Örneğin, bir buton basışı bir sayıcıyı artıracaksa, buton basılı kaldığı her tarama döngüsünde sayıcı bir kez artırılacaktır. Bu da tek bir fiziksel basışa karşılık sayıcının onlarca, hatta yüzlerce kez artması anlamına gelir. Bu durum, motorların gereksiz yere birden fazla kez çalışıp durmasına, valflerin tekrar tekrar açılıp kapanmasına veya herhangi bir otomasyon sürecinin beklenenden farklı davranmasına yol açabilir.

Ek olarak, mekanik butonlar basıldığında veya bırakıldığında anlık olarak birkaç milisaniye süren sekme (contact bounce) adı verilen bir fenomen sergilerler. Bu, metal kontakların birbirine değdiğinde tam olarak oturmadan önce kısa süreli açılıp kapanmasıdır. Bu sekme süresi boyunca PLC girişi “yüksek” ve “düşük” arasında hızlı bir şekilde gidip gelebilir. Rising Edge kullanılmadığında, PLC bu anlık değişimlerin her birini ayrı bir “yüksek” sinyal olarak algılayabilir ve bu da sorunu daha da kötüleştirerek istenmeyen çoklu tetiklemelere neden olabilir. İşte bu nedenle, tek bir olayı (buton basımı gibi) güvenilir bir şekilde algılamak için Rising Edge (Pozitif Kenar Tetikleme) veya Falling Edge (Negatif Kenar Tetikleme) gibi kenar tetikleme komutları hayati öneme sahiptir.

Çalışma Prensibi ve Teknik Veriler

PLC’nin çalışma prensibi olan tarama döngüsü, girişlerin okunması, programın işlenmesi ve çıkışların güncellenmesi aşamalarından oluşur. Bu döngü süresi, kullanılan PLC modeline, programın karmaşıklığına ve CPU hızına bağlı olarak 1 milisaniyeden 100 milisaniyeye kadar değişebilir. Modern PLC’lerde bu süre genellikle birkaç milisaniye civarındadır. Bir operatör bir butona bastığında, bu fiziksel eylem, butonun kontaklarının kapanmasına neden olur. Ancak, bu kapanma anlık ve mükemmel değildir. Mekanik kontakların doğası gereği, temas noktasında sekme (bounce) adı verilen bir durum oluşur. Bu sekme, kontakların birkaç milisaniye boyunca hızlıca açılıp kapanmasıyla karakterizedir. Tipik bir butonun sekme süresi 5 ila 20 milisaniye arasında değişebilir.

Eğer PLC programında bir butona basıldığında (yani giriş sinyali “ON” olduğunda) belirli bir işlem tetiklenecek şekilde basit bir mantık (örneğin, IF Input_Button THEN Output_Motor_Start;) kullanılırsa ve Rising Edge komutu eklenmezse, PLC, buton basılı kaldığı ve girişi “ON” olarak algıladığı her tarama döngüsünde bu işlemi tekrar tekrar tetikleyecektir. Örneğin, 10 milisaniyelik bir tarama döngüsüne sahip bir PLC’de, bir buton 500 milisaniye boyunca basılı tutulursa, PLC bu girişi yaklaşık 50 kez “ON” olarak okuyacak ve buna bağlı olarak tanımlanan işlemi 50 kez tekrarlayacaktır. Bu durum, özellikle sayıcılar, tetikleyiciler veya durum makineleri için büyük sorunlara yol açar.

İşte tam bu noktada Rising Edge (Pozitif Kenar Tetikleme) komutu devreye girer. Bir Rising Edge (genellikle R_TRIG veya P_TRIG olarak adlandırılır) komutu, bir giriş sinyalinin durumunun “OFF”dan “ON”a geçtiği anı, yani sinyalin yükselen kenarını sadece bir tarama döngüsü boyunca algılar. Bu sayede, buton ne kadar süre basılı tutulursa tutulsun veya sekme olayı ne kadar yaşanırsa yaşansın, ilgili işlem yalnızca bir kez, butonun ilk basıldığı anda tetiklenir. Benzer şekilde, Falling Edge (Negatif Kenar Tetikleme) komutu (F_TRIG veya N_TRIG), sinyalin “ON”dan “OFF”a geçtiği anı, yani düşen kenarını tek bir tarama döngüsü boyunca algılar. Bu kenar tetikleme komutları, programın olay tabanlı (event-driven) çalışmasını sağlayarak, giriş sinyallerindeki anlık değişimleri güvenilir bir şekilde yakalamak ve istenmeyen çoklu tetiklemeleri engellemek için vazgeçilmezdir.

Bazı PLC’ler veya dijital giriş modülleri, donanımsal düzeyde debounce (sekme giderme) özelliğine sahip olabilir. Bu özellik, giriş sinyalinin belirli bir süre (örneğin 5-10 ms) boyunca stabil kalmasını bekleyerek sekme olaylarını filtreler. Ancak, bu donanımsal filtreleme bile yazılımsal Rising Edge kullanımının yerini almaz, çünkü PLC’nin bir girişi “ON” olarak algılaması ile bu “ON” durumunun kaç tarama döngüsü boyunca devam ettiği arasındaki farkı yönetmek için yazılımsal kenar tetikleme gereklidir.

ParametreDeğer/Açıklama
PLC Tarama Döngüsü (Scan Cycle)Tipik olarak 1 ms – 100 ms arası. Modern PLC’lerde genellikle 2-20 ms.
Mekanik Buton Sekme SüresiGenellikle 5 ms – 20 ms. Yüksek kaliteli butonlarda daha kısa olabilir.
Rising Edge (R_TRIG/P_TRIG)Giriş sinyalinin “OFF”dan “ON”a geçtiği tek bir tarama döngüsünü algılar.
Falling Edge (F_TRIG/N_TRIG)Giriş sinyalinin “ON”dan “OFF”a geçtiği tek bir tarama döngüsünü algılar.
Donanımsal DebounceGiriş modüllerinde sinyal stabilitesi için fiziksel filtreleme (örneğin, 5 ms gecikme).
Yazılımsal DebounceRising Edge/Falling Edge komutları veya zamanlayıcılarla programatik filtreleme.
Ortalama Buton Basılı Kalma SüresiOperatöre bağlı olarak 100 ms – 1000 ms (0.1 sn – 1 sn) veya daha uzun.
PLC’de Rising Edge Kullanılmazsa Tek Buton Basışı Neden Birden Fazla İşlem Yapar?

Sahada Dikkat Edilmesi Gerekenler

  • Doğru Giriş Filtreleme ve Debounce Uygulaması: PLC girişlerinde hem donanımsal hem de yazılımsal debouncing yöntemleri kullanılabilir. Donanımsal debounce, giriş modülünün kendi içinde sinyal gürültüsünü filtrelemesidir ve genellikle ayarlanabilir bir gecikme süresi sunar. Yazılımsal debounce ise Rising Edge (R_TRIG) veya Falling Edge (F_TRIG) komutları kullanılarak ya da zamanlayıcılarla (TON, TOF) sinyal kararlılığı kontrol edilerek yapılır. Sahada, her iki yöntemin de doğru bir şekilde uygulandığından emin olunmalıdır. Özellikle hızlı tepki gerektiren uygulamalarda, donanımsal filtreleme süresinin PLC tarama döngüsü ile uyumlu olması ve R_TRIG/F_TRIG kullanımının atlanmaması kritik önem taşır.
  • PLC Tarama Süresi Optimizasyonu ve Etkisi: PLC’nin tarama süresi, programın ne kadar hızlı çalıştığını ve giriş sinyallerini ne sıklıkla okuduğunu doğrudan etkiler. Daha kısa tarama süreleri, PLC’nin olaylara daha hızlı tepki vermesini sağlar, ancak bu aynı zamanda Rising Edge kullanılmadığında çoklu tetikleme riskini de artırır. Programlama yaparken, gereksiz kod bloklarından kaçınarak ve optimize edilmiş algoritmalar kullanarak tarama süresini mümkün olduğunca düşük tutmak önemlidir. Ancak bu optimizasyon, Rising Edge gibi kenar tetikleme komutlarının kullanımını asla ihmal etmemelidir.
  • Program Mantığı Tasarımı ve Olay Tabanlı Yaklaşım: PLC programlarını tasarlarken, giriş sinyallerinin bir “durum”dan ziyade bir “olay” olarak ele alınması gereken durumlar için mutlaka kenar tetikleme (edge detection) kullanılmalıdır. Örneğin, bir butona basıldığında bir motorun “bir kez” çalışmaya başlaması veya bir sayıcının “bir kez” artması isteniyorsa, bu bir olaydır ve Rising Edge ile tetiklenmelidir. Eğer motorun buton basılı kaldığı sürece çalışması isteniyorsa, bu bir durumdur ve doğrudan giriş sinyaliyle ilişkilendirilebilir. Bu ayrımı doğru yapmak, programın güvenilirliğini ve öngörülebilirliğini artırır.
  • HMI ve SCADA Entegrasyonunda Sinyal Doğruluğu: Operatör HMI (İnsan Makine Arayüzü) veya SCADA (Denetleyici Kontrol ve Veri Toplama) sistemleri üzerinden de PLC’ye komutlar gönderebilir. Bu komutlar genellikle yazılımsal butonlar aracılığıyla gönderilir ve fiziksel sekme sorunu olmasa da, PLC tarafında yine de Rising Edge kullanımı önerilir. Çünkü HMI’dan gelen bir sinyal, operatörün butona ne kadar süre bastığına bakılmaksızın, PLC tarafında bir olayı tek seferlik tetiklemelidir. Bu, operatörün yanlışlıkla butona uzun süre basılı tutması durumunda bile istenmeyen çoklu işlemleri engeller ve kullanıcı deneyimini iyileştirir.
  • Güvenlik Uygulamalarında Tekil Aktivasyonun Önemi: Acil durdurma butonları veya güvenlik kapısı sensörleri gibi kritik güvenlik uygulamalarında, her aktivasyonun tek ve net bir olaya karşılık gelmesi hayati öneme sahiptir. Yanlışlıkla birden fazla tetikleme, güvenlik sistemlerinin doğru çalışmamasına veya beklenmedik reaksiyonlara neden olabilir. Bu tür uygulamalarda, Rising Edge gibi komutlar, güvenlik fonksiyonlarının yalnızca bir kez, kasıtlı bir eylemle tetiklenmesini sağlayarak sistem güvenliğini artırır. Gerekirse, güvenlik PLC’leri veya özel güvenlik röleleri ile birlikte bu prensiplerin uygulanması, en üst düzeyde koruma sağlar.
PLC’de Rising Edge Kullanılmazsa Tek Buton Basışı Neden Birden Fazla İşlem Yapar?

Sık Karşılaşılan Sorunlar ve Çözümleri

PLC programlamasında Rising Edge (Pozitif Kenar Tetikleme) kullanılmadığında veya yanlış uygulandığında ortaya çıkan sorunlar, otomasyon sistemlerinin güvenilirliğini ve verimliliğini ciddi şekilde etkileyebilir. İşte sık karşılaşılan bazı sorunlar ve bu sorunlara yönelik çözümler:

  • Sorun: Bir butona basıldığında motorun birden fazla kez çalışıp durması veya bir silindirin tekrar tekrar hareket etmesi.

    Açıklama: Operatör “Başlat” butonuna bastığında motor anlık olarak birden fazla kez çalışıp duruyor veya bir pnömatik silindir olması gerekenden fazla ileri-geri hareket ediyor. Bu durum, PLC’nin butonun “ON” sinyalini, buton basılı kaldığı her tarama döngüsünde yeni bir tetikleme olarak algılamasından kaynaklanır.

    Çözüm: İlgili buton girişine mutlaka bir Rising Edge (R_TRIG veya P_TRIG) komutu ekleyin. Bu komut, giriş sinyalinin “OFF”dan “ON”a geçtiği anı yalnızca bir tarama döngüsü boyunca algılayarak, motorun veya silindirin tek bir buton basışı ile bir kez tetiklenmesini sağlar.

  • Sorun: Hızlı ardışık buton basışlarının veya kısa süreli sensör sinyallerinin algılanmaması.

    Açıklama: Operatör çok hızlı bir şekilde iki kez butona basıyor, ancak PLC sadece bir basışı algılıyor veya bir ürün sensörü çok kısa süreli sinyal verse de PLC bunu gözden kaçırıyor. Bu durum genellikle PLC’nin giriş modülündeki donanımsal debounce süresinin çok uzun ayarlanması veya PLC tarama döngüsünün sinyalden daha uzun olmasıyla ilişkilidir.

    Çözüm: Öncelikle PLC giriş modülünüzün donanımsal debounce (filtreleme) ayarlarını kontrol edin. Hızlı olayları yakalamak için bu süreyi mümkün olduğunca düşürün (örneğin 1-2 ms). Eğer donanımsal ayar yoksa veya yetersizse, PLC tarama döngüsünü optimize ederek program karmaşıklığını azaltın. Ayrıca, çok hızlı olaylar için özel yüksek hızlı sayıcı girişleri (HSC) kullanmayı düşünebilirsiniz. R_TRIG kullanmak bu sorunu çözmez, çünkü R_TRIG zaten bir sinyalin bir kez algılanmasını sağlar, sorun sinyalin hiç algılanmamasıdır.

  • Sorun: Analog sensörlerden gelen sinyallerdeki anlık dalgalanmaların yanlış tetiklemelere yol açması.

    Açıklama: Bir seviye sensörü veya basınç sensörü belirli bir eşik değeri geçtiğinde bir işlem tetiklenmesi gerekirken, sinyaldeki küçük dalgalanmalar nedeniyle işlem tekrar tekrar tetikleniyor.

    Çözüm: Analog sinyaller için Rising Edge doğrudan uygulanmaz. Bunun yerine, eşik değeri aşıldığında bir dijital bayrak (flag) set edilebilir ve bu bayrağın Rising Edge’i kullanılabilir. Ayrıca, analog giriş sinyallerine hysteresis (histerezis) eklemek önemlidir. Yani, sinyal bir eşiği yukarı yönde geçerken (örneğin 10 bar) bir işlemi tetiklerken, aynı işlemi durdurmak için daha düşük bir eşiğin (örneğin 8 bar) altına düşmesini beklemek, anlık dalgalanmaların neden olduğu yanlış tetiklemeleri engeller. Gerekirse, sinyal kararlılığını sağlamak için analog girişlere ortalama alma (averaging) filtreleri de uygulanabilir.

  • Sorun: Programın karmaşıklaşması ve hata ayıklamanın zorlaşması nedeniyle hataların gözden kaçması.

    Açıklama: Rising Edge gibi temel komutların sürekli olarak unutulması veya yanlış kullanılması, program mantığını içinden çıkılmaz hale getirir, beklenmedik davranışlar ortaya çıkar ve arıza tespiti (troubleshooting) çok zaman alır.

    Çözüm: Modüler programlama prensiplerini benimseyin. Her bir buton veya sensör girişi için standartlaştırılmış fonksiyon blokları (FB) veya fonksiyonlar (FC) oluşturarak kenar tetikleme mantığını bu blokların içine entegre edin. Bu, kodun tekrar kullanılabilirliğini artırır, hata yapma olasılığını azaltır ve hata ayıklamayı kolaylaştırır. Ayrıca, programlama standartlarına uymak ve kod yorumlarını (comments) bolca kullanmak, programın anlaşılırlığını artırır.

Uzman Tavsiyesi

Endüstriyel otomasyonun kalbinde yer alan PLC (Programlanabilir Mantık Denetleyicileri), sistemlerin güvenilir ve öngörülebilir bir şekilde çalışmasını sağlamak için hassas programlama yaklaşımları gerektirir. “PLC’de Rising Edge kullanılmazsa tek buton basışı neden birden fazla işlem yapar?” sorusunun cevabı, PLC’nin hızlı tarama döngüsü ile mekanik butonların fiziksel özellikleri, özellikle de sekme (contact bounce) fenomeni arasındaki temel uyumsuzlukta yatmaktadır. PLC, bir butona basıldığında giriş sinyalini, basılı kaldığı her tarama döngüsünde “ON” olarak algılar ve eğer programda bu duruma bağlı bir işlem tanımlanmışsa, bu işlemi her döngüde tekrarlar. Bu durum, sayıcıların yanlış artmasına, motorların anlamsızca çalışıp durmasına veya valflerin gereksiz yere açılıp kapanmasına yol açarak üretim süreçlerinde ciddi aksaklıklara neden olabilir.

Bu tür istenmeyen çoklu tetiklemelerin önüne geçmek için Rising Edge (Pozitif Kenar Tetikleme) ve Falling Edge (Negatif Kenar Tetikleme) komutları, PLC programcılığının temel taşlarından biridir. Bu komutlar, bir giriş sinyalinin durumunun “OFF”dan “ON”a (Rising Edge) veya “ON”dan “OFF”a (Falling Edge) geçtiği tek bir anı, yani sinyalin kenarını yakalayarak, ilgili işlemin yalnızca bir kez ve güvenilir bir şekilde tetiklenmesini sağlar. Bu, programın “durum tabanlı” olmaktan ziyade “olay tabanlı” çalışmasına olanak tanır ve sistemin öngörülebilirliğini artırır.

Saha tecrübesi, bu basit ama kritik prensibin önemini defalarca kanıtlamıştır. Bir otomasyon mühendisi veya teknisyeni olarak, sadece kod yazmak değil, aynı zamanda fiziksel giriş/çıkış cihazlarının davranışlarını, PLC’nin dahili çalışma mantığını ve tarama döngüsünün program üzerindeki etkilerini derinlemesine anlamak zorunludur. Doğru giriş filtreleme tekniklerini uygulamak, PLC tarama süresini optimize etmek ve program mantığını olay tabanlı bir yaklaşımla tasarlamak, yalnızca hataları azaltmakla kalmaz, aynı zamanda sistemin genel performansını ve güvenilirliğini de artırır. Özellikle güvenlik kritik uygulamalarda, her bir olayın tekil ve doğru bir şekilde algılanması, operatör ve ekipman güvenliği açısından hayati öneme sahiptir.

Uzman tavsiyesi olarak, her zaman için bir dijital girişin bir olayı (örneğin bir sayıcıyı artırmak, bir durumu değiştirmek) tetiklemesi istendiğinde Rising Edge veya Falling Edge komutlarını kullanmayı bir alışkanlık haline getirin. Bu, programlarınızın daha sağlam, hata ayıklanması daha kolay ve uzun vadede sürdürülebilir olmasını sağlayacaktır. Unutmayın, iyi bir PLC programı sadece çalışmakla kalmaz, aynı zamanda öngörülebilir, güvenilir ve kolayca anlaşılabilir olmalıdır. Mekanik butonlardan gelen sinyallerin doğasını anlamak ve bunları PLC mantığıyla doğru bir şekilde entegre etmek, başarılı endüstriyel otomasyon çözümlerinin temelini oluşturur.

⚙ Araçlar