BONUS : PLC Programlamada Pozitif Kenar Tetikleme Komutları: --|P|--, --(P)--, P_TRIG, R_TRIG Arasındaki Farklar ve Kullanım Senaryoları
Siemens TIA Portal’da Pozitif Kenar Algılama Komutları
Siemens TIA Portal’da PLC (Programlanabilir Lojik Kontrolör) programlamada pozitif sinyal kenarını algılamak için kullanılan --|P|--, --(P)--, P_TRIG ve R_TRIG komutları, benzer işlevlere sahip gibi görünse de farklı kullanım senaryolarına hitap eder. Bu komutlar, özellikle S7-1200 ve S7-1500 serisi PLC’lerde sıkça kullanılır ve genellikle yeni başlayanlar tarafından karıştırılır. Bu makalede, her bir komutun çalışma mantığını, aralarındaki farkları, hangi durumlarda kullanılması gerektiğini ve pratik örnekleri detaylı bir şekilde ele alacağız. Tüm bilgiler Siemens Industry Online Support’tan doğrulanmıştır.
1. Pozitif Kenar Algılama Komutları Nedir?
Pozitif kenar algılama, bir sinyalin "0"dan "1"e geçişini (yükselen kenar) tespit etmek için kullanılan bir yöntemdir. Siemens PLC’lerde bu işlem için dört temel yapı bulunur:
- --|P|-- (Positive Edge Contact): Bir operandın yükselen kenarını algılar ve bir kontak gibi çalışır.
- --(P)-- (Positive Edge Coil): Yükselen kenarda bir çıkışı bir tarama döngüsü boyunca aktif eder.
- P_TRIG (Positive Transition Trigger): RLO’da yükselen kenarı algılar ve durumu bir bellek bitinde saklar.
- R_TRIG (Rising Edge Trigger): P_TRIG ile aynı işlevi görür, ancak durumu bir instance veri bloğunda (DB) saklar.
Bu komutlar, buton tetikleme, sensör algılama veya süreç başlatma gibi senaryolarda kullanılır. Ancak her birinin farklı bir yaklaşımı ve kullanım alanı vardır.
2. Komutların Detaylı Açıklamaları
Her bir komutun çalışma mantığını ve özelliklerini ayrı ayrı inceleyelim:
2.1. --|P|-- (Positive Edge Contact)
Bu yapı, bir operandın (örneğin bir giriş veya bellek biti) "0"dan "1"e geçişini algılar ve yalnızca bu geçiş anında bir tarama döngüsü boyunca iletim sağlar. Ladder diyagramında bir kontak gibi kullanılır.
---[P I0.0]----( )----(Q0.0)
Açıklama: I0.0 sinyali 0’dan 1’e geçtiğinde Q0.0 bir tarama döngüsü boyunca enerjilenir.
2.2. --(P)-- (Positive Edge Coil)
Bu yapı, bir sinyalin yükselen kenarında bir çıkışı (bobin) bir tarama döngüsü boyunca aktif eder. Çıkış tarafında kullanılır.
---[I0.0]----(P)----(M0.0)
Açıklama: I0.0 sinyali 0’dan 1’e geçtiğinde M0.0 bir tarama döngüsü boyunca 1 olur.
2.3. P_TRIG (Positive Transition Trigger)
P_TRIG, RLO’da (Result of Logic Operation) "0"dan "1"e yükselen kenarı algılar ve durumu bir bellek bitinde (M) saklar. Üç parametresi vardır: CLK (giriş), Operand (bellek biti) ve Q (çıkış).
---[P_TRIG]----(Q0.0) CLK: I0.0 Operand: M0.0
Açıklama: I0.0 yükselen kenarında Q0.0 bir tarama döngüsü boyunca 1 olur.
2.4. R_TRIG (Rising Edge Trigger)
R_TRIG, P_TRIG ile aynı işlevi görür, ancak durumu bir instance veri bloğunda (DB) saklar. Bu, birden fazla R_TRIG kullanımında çakışmayı önler. Dört parametresi vardır: EN, ENO, CLK ve Q.
---[R_TRIG]----(Q0.0) CLK: I0.0 InstanceDB: "EdgeDB1"
Açıklama: I0.0 yükselen kenarında Q0.0 bir tarama döngüsü boyunca 1 olur.
3. Aralarındaki Farklar
Bu komutlar arasındaki temel farklar, kullanım yerleri, bellek yönetimi ve karmaşıklık düzeyleridir. Aşağıdaki tablo bu farkları özetler:
Özellik | --|P|-- | --(P)-- | P_TRIG | R_TRIG |
---|---|---|---|---|
Kullanım Yeri | Kontak | Bobin | Fonksiyon Bloğu | Fonksiyon Bloğu |
Bellek Yönetimi | Yok | Yok | Manuel (M biti) | Otomatik (Instance DB) |
Çoklu Kullanım | Riskli | Riskli | Riskli | Güvenli |
Karmaşıklık | Düşük | Düşük | Orta | Yüksek |
Örnek Senaryo | Tek buton | Tek çıkış | Orta ölçekli proje | Büyük ölçekli proje |
Detaylı Farklar:
- --|P|-- ve --(P)--: Bellek yönetimi yoktur, bu nedenle aynı operandın birden fazla yerde kullanılması çakışmaya neden olabilir. Küçük projelerde hızlı ve basittir.
- P_TRIG: Bellek biti (Operand) ile önceki durumu saklar. Ancak her P_TRIG için benzersiz bir bellek biti tanımlanmazsa çakışma riski vardır.
- R_TRIG: Instance DB ile çalışır, bu da birden fazla R_TRIG kullanımında çakışmayı önler. Büyük projelerde daha güvenlidir, ancak DB oluşturma gerektirir.
4. Hangi Komut Ne Zaman Kullanılmalı?
Her komutun kullanım alanı, projenin ölçeğine ve gereksinimlerine göre değişir:
- Basit Tetiklemeler İçin (--|P|-- ve --(P)--): Küçük projelerde, tek bir sinyalin yükselen kenarını algılamak için idealdir. Örneğin, bir start butonuna basıldığında motoru çalıştırmak.
- Orta Ölçekli Projeler İçin (P_TRIG): Birden fazla tetikleyici varsa ve bellek bitlerini yönetebiliyorsanız P_TRIG kullanın. Örneğin, üç farklı sensörden gelen sinyalleri sayma.
- Büyük Ölçekli Projeler İçin (R_TRIG): Çoklu tetikleyicilerde çakışma riskini önlemek için R_TRIG ve Instance DB kullanın. Örneğin, bir fabrika otomasyonunda 10 farklı makinenin durum takibi.
5. Pratik Örnekler
Bu komutların kullanımını daha iyi anlamak için aşağıdaki senaryoları inceleyelim:
Örnek 1: Tek Butonla Sayıcı Artırma (--|P|--)
Senaryo: I0.0 butonuna her basıldığında bir sayıcıyı (C1) artır.
---[P I0.0]----(CTU)----(C1)
Açıklama: I0.0 her yükselen kenarda C1 sayacı bir artırılır.
Örnek 2: Çıkış Tetikleme (--(P)--)
Senaryo: I0.1 sensörü aktif olduğunda M0.1 bir tarama döngüsü için 1 olsun.
---[I0.1]----(P)----(M0.1)
Açıklama: I0.1 yükselen kenarda M0.1 bir döngü için 1 olur.
Örnek 3: Çoklu Sensörlerde Tetikleme (P_TRIG)
Senaryo: Üç sensör (I0.2, I0.3, I0.4) yükselen kenarında Q0.2’yi bir döngü için aktif et.
---[P_TRIG]----(M1.0) CLK: I0.2 Operand: M0.2 ---[P_TRIG]----(M1.1) CLK: I0.3 Operand: M0.3 ---[P_TRIG]----(M1.2) CLK: I0.4 Operand: M0.4 ---[M1.0]---[M1.1]---[M1.2]----( )----(Q0.2)
Açıklama: Her sensörün yükselen kenarında Q0.2 bir döngü için 1 olur.
Örnek 4: Büyük Ölçekli Sistemde Motor Kontrolü (R_TRIG)
Senaryo: Beş motorun her biri için ayrı kenar tetikleyici kullan.
// Motor 1 ---[R_TRIG]----(Q0.5) CLK: I0.5 InstanceDB: "Motor1_DB" // Motor 2 ---[R_TRIG]----(Q0.6) CLK: I0.6 InstanceDB: "Motor2_DB"
Açıklama: Her motor için ayrı bir R_TRIG ve DB kullanılarak çakışma önlenir.
Örnek 5: Kombine Sinyal Tespiti (R_TRIG)
Senaryo: TagIn_1 ve TagIn_2 sinyalleri AND ile birleştiğinde veya TagIn_3 aktif olduğunda TagOut_Q bir döngü için 1 olsun.
---[TagIn_1]---[TagIn_2]--+---[R_TRIG]----(TagOut_Q) | CLK: CombinedSignal ---[TagIn_3]-------------+ InstanceDB: "R_TRIG_DB"
STL Kodu:
A "TagIn_1"; A "TagIn_2"; O "TagIn_3"; = "CombinedSignal"; CALL "R_TRIG_Instance" EN := TRUE, CLK := "CombinedSignal", ENO => "ENO_Status", Q => "TagOut_Q";
Açıklama: Kombine sinyal yükseldiğinde TagOut_Q bir döngü için 1 olur.
6. Avantajlar
Her komutun kendine özgü avantajları vardır:
- --|P|-- ve --(P)--: Basit ve hızlıdır, küçük projelerde etkilidir.
- P_TRIG: Bellek bitiyle durum takibi yapar, orta ölçekli projelerde kullanışlıdır.
- R_TRIG: Instance DB ile çakışma riskini ortadan kaldırır, büyük projelerde güvenilirdir.
7. Dikkat Edilmesi Gerekenler
Bu komutları kullanırken sık yapılan hatalar ve çözümleri şunlardır:
- Bellek Çakışması: Aynı M biti birden fazla P_TRIG’de kullanılırsa tetikleme bozulur. Çözüm: Her P_TRIG için benzersiz M bitleri tanımlayın veya R_TRIG kullanın.
- Instance DB Eksikliği: R_TRIG kullanırken DB oluşturulmazsa hata oluşur. Çözüm: TIA Portal’da otomatik DB oluşturma seçeneğini aktif edin.
- Yanlış Kontak/Bobin Seçimi: --(P)-- yerine --|P|-- kullanmak sinyali doğru tetiklemez. Çözüm: Tetikleme mantığınıza göre kontak veya bobin seçin.
- Döngü Bağımlılığı: Komutun her tarama döngüsünde çalışması için OB1 gibi döngüsel bloklarda kullanın.
8. Yeni Başlayanlar İçin İpuçları
Bu komutları etkili kullanmak için:
- Simülasyon: TIA Portal PLCSIM ile sinyal geçişlerini test edin.
- DB İsimlendirme: R_TRIG için anlamlı isimler kullanın (örneğin, "Motor1_EdgeDB").
- Başlangıç Reset: OB100’de bellek bitlerini sıfırlayın.
- Dokümantasyon: Kodları yorum satırlarıyla açıklayın.
- Debounce: Buton titreşimlerini önlemek için 100-200ms zamanlayıcı ekleyin.
9. Sonuç
Siemens TIA Portal’da pozitif kenar algılama için kullanılan --|P|--, --(P)--, P_TRIG ve R_TRIG komutları, farklı ihtiyaçlara yönelik çözümler sunar. Küçük projelerde --|P|-- ve --(P)-- ile hızlı sonuçlar alınabilirken, orta ölçekli projelerde P_TRIG, büyük ölçekli projelerde ise R_TRIG tercih edilmelidir. Bu komutlar arasındaki farkları anlamak, PLC programlamada hatasız ve verimli sistemler tasarlamanın anahtarıdır. Bu rehberdeki örnekler ve ipuçlarıyla, projelerinizde doğru komutu seçerek güvenilir otomasyon sistemleri oluşturabilirsiniz! Görüşlerinizi yorumlarda paylaşabilirsiniz.
Yorumlar
Yorum Gönder