PLC'de durum makinesi tasarlama: adımlar, geçişler ve arıza durumları
Beceri rehberi

PLC'de durum makinesi tasarlama: adımlar, geçişler ve arıza durumları

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 6 dk okuma

PLC'de sıralı kontrol için durum makinesi tasarımı: durum ve geçiş tablosu, adım değişkeni, ladder ve SFC uygulaması, zaman aşımı, hata durumu ve test.

Durum makinesi neden gerekir?

Makineler sıklıkla belirli bir sırayı izleyerek çalışır: bekle, hazırlan, doldur, karıştır, boşalt, bekle. Bu tür sıralı süreçleri düz ladder mantığıyla, her adım için ayrı kendini tutma devreleri ve karşılıklı kilitlemelerle yazmak mümkündür. Ancak adım sayısı büyüdükçe program okunmaz hale gelir; hangi adımın neden etkin olduğu anlaşılmaz, bir adım ekleyince diğerleri bozulur.

Durum makinesi (state machine) bu sorunu yapıyla çözer. Makinenin her anında yalnızca bir durumda olduğu kabul edilir. Her durumun ne yaptığı (çıkışlar), hangi koşulda başka bir duruma geçeceği (geçişler) ve hata anında nereye düşeceği açıkça tanımlanır. Bu sayede program, makinenin davranışını anlatan bir tabloya dönüşür.

Bu yaklaşımın somut yararları: • Aynı anda birden fazla adımın yanlışlıkla etkin olması engellenir. • Her adımda hangi çıkışın çalıştığı tek yerde görülür. • Yeni adım eklemek, mevcut adımlara dokunmadan yapılabilir. • Bakım ekibi "makine şu anda hangi adımda ve neyi bekliyor" sorusunu bir değişkene bakarak yanıtlar.

Önce kâğıtta tasarlayın: durum ve geçiş tablosu

Tasarım programdan önce yapılır. Şunları yazın: durumların listesi, her durumdaki çıkışlar ve her durumdan çıkış koşulları. Örnek olarak kurgusal bir tank doldurma ve karıştırma makinesini ele alalım.

Durumlar: Bekleme, Dolum, Karıştırma, Boşaltma, Arıza.

Bir tablo oluşturun: • Bekleme: tüm çıkışlar kapalı. Başlat komutu ve alt seviye sensörü koşulları sağlanırsa Dolum'a geçer. • Dolum: dolum valfi açık. Üst seviye sensörü görülünce Karıştırma'ya geçer; belirlenen sürede seviye gelmezse Arıza'ya geçer. • Karıştırma: karıştırıcı motor çalışır. Karıştırma süresi dolunca Boşaltma'ya geçer. • Boşaltma: boşaltma valfi açık. Tank boşalınca Bekleme'ye döner. • Arıza: tüm çıkışlar güvenli duruma alınır. Operatör onayı ve koşulların normale dönmesiyle Bekleme'ye dönülür.

Tabloyu yazarken şu soruları sorun: Her durumdan acil durumda nereye gidilir? Güç geldiğinde makine hangi durumdan başlar? Operatör herhangi bir adımda iptal edebilir mi? Bu sorular programın yarısını belirler.

Uygulama yöntemleri: adım değişkeni, ladder ve SFC

Durum makinesini PLC'de kurmanın yaygın yolları vardır.

Adım değişkeni yöntemi: Bir tam sayı değişkeni, o anki durumu tutar. Her durumun karşılığı, kodda adı anlamlı bir sabittir. Yapılandırılmış metinde durumlar bir seçim yapısıyla (CASE) ayrılır:

CASE adim OF ADIM_BEKLE: IF baslat AND alt_seviye THEN adim := ADIM_DOLDUR; END_IF; ADIM_DOLDUR: dolum_valfi := TRUE; IF ust_seviye THEN adim := ADIM_KARISTIR; END_IF; END_CASE;

Sabitleri sayıyla değil adla kullanmak, programı okunur kılar.

Ladder yöntemi: ladder'da her durum için bir bit kullanmaktır (adım bitleri). Bir adım biti, bir önceki adımın bitiyle geçiş koşulunun birleşiminden kurulur, bir sonraki adım kurulunca sıfırlanır. Ladder ortamında çalışan bakım ekipleri için görünürlük avantajı yüksektir, ama adım sayısı arttıkça sıkıcı hale gelir.

SFC yöntemi: IEC dillerinden sıralı fonksiyon şemasını (SFC, GRAFCET ile aynı mantık) kullanmaktır. Adımlar kutular, geçişler aralarındaki çizgiler olarak çizilir. Hangi adımın etkin olduğu çevrimiçi izlemede görülür. Platformun SFC desteği ve lisans durumu üreticiden üreticiye değişir; kullanacağınız ortamda bulunup bulunmadığını önceden kontrol edin.

Zaman aşımı, hata durumu ve güvenli başlangıç

Gerçek dünyada makinenin her adımı beklenen sürede bitmez. Valf takılır, sensör arızalanır, operatör kapıyı açar. Bu nedenle her adım için bir gözetim zamanlayıcısı kurun: adım başlarken zamanlayıcı da başlar, adım değişince sıfırlanır, süre dolarsa Arıza durumuna geçilir. Böylece makine "beklediği şeyi sonsuza dek bekleyen" hale gelmez.

Arıza durumu, sıradan bir durum gibi tasarlanmalıdır, bir istisna gibi değil. İçinde: • Hangi adımda, hangi nedenle arızaya düşüldüğünün kaydı (arıza kodu). • Çıkışları güvenli konuma alan mantık. • Operatör onayı ve normal koşulların doğrulanması. • Devamı için hangi durumdan yeniden başlanacağının kuralı: sıfırdan mı, kaldığı yerden mi?

Güç geldiğinde ya da PLC yeniden çalışmaya başladığında adım değişkeninin nerede olduğu da tasarım kararıdır. Başlangıçta güvenli bir bekleme durumuna dönmek, kaldığı adımdan devam etmeye göre genellikle daha güvenlidir. Bazı süreçlerde (kimyasal reaksiyon, ısıtma) ise adımı korumak gerekebilir; bu durumda adım değişkeninin hafızada tutulması ve devam koşullarının ayrıca denetlenmesi şarttır.

Otomatik ve manuel mod ile geçişlerin kurulması

Bazı makinelerde operatör, bir adımı elle denemek ister. Bu, durum makinesinin içine karmaşık istisnalar sokmanın en kolay yoludur. Daha temiz çözüm, otomatik ve manuel modu ayrı tutmaktır: manuel modda sıralı program durur, çıkışlar yalnızca emniyet kilitlemeleri sağlandığında elle sürülür. Otomatiğe dönüşte makine güvenli başlangıç durumuna alınır ya da operatör hangi adımdan devam edileceğini seçer.

Geçiş koşullarında dikkat edilecek ayrıntılar: • Geçiş koşulunu bir sensörün seviyesine bağlıyorsanız, titreşimle yanlış tetiklenmemesi için kısa bir süzme gerekebilir. • Bir geçiş yalnızca bir döngüde gerçekleşmelidir; adım değişkenini aynı döngüde birden fazla kez değiştiren kodlar, adımların atlanmasına yol açar. • Geçiş koşulları ve çıkışlar aynı yerde değil, ayrı bölümlerde olursa program daha okunur olur: önce geçişleri değerlendirin, ardından o anki adıma göre çıkışları yazın. • Tüm acil durum ve emniyet mantığı, durum makinesinden bağımsız çalışmalıdır; durum makinesi hatalı olsa bile emniyet çıkışları kapanabilmelidir.

Bu ayrım, programı hem test etmeyi hem de sahadaki değişiklikleri güvenle yapmayı kolaylaştırır.

Sık yapılan hatalar ve test yöntemi

Durum makinesi yazarken sık düşülen tuzaklar şunlardır: • Çıkışları adım koduna dağıtmak ve aynı çıkışı birden fazla adımda yazmak; adım değişince çıkışın kapanmayacağı yerler doğar. Çözüm: çıkışları adım değişkeninden türeten ayrı bir bölüm. • Geçişte önceki adımın çıkışlarını kapatmayı unutmak. • Hata durumunu tanımlamamak; "böyle bir şey olmaz" varsayımı. • Adım değişkenine program içinde farklı yerlerden yazmak. Adım değişkeni yalnızca durum makinesi bölümünde değişmelidir. • Adımlara anlamsız ya da sadece sayılı adlar vermek. Sabitler görev adını taşımalıdır. • Test etmeden devreye almak.

Test için simülasyon ortamında her geçişi sırayla zorlayın, ardından her adımda arıza koşulunu ve acil durumu deneyin. Adım değişkenini çevrimiçi izleyin; beklenmeyen bir adıma düşüldüğünde sebebi hemen görürsünüz. Makinenin gerçekten yapması gerekenleri bir test tablosuna yazın ve devreye almada tek tek işaretleyin.

Bu çalışmanın sonunda elinizde yalnızca çalışan bir program değil, makinenin davranışını anlatan bir belge de olur. Yeni gelen bir mühendis tabloyu okuyarak programı anlayabilir.

Bu beceriyi Mindset programlarında nerede çalışırsınız

"PLC Programlama (Siemens TIA Portal)" eğitiminin Sıralı Kontrol ve Makine Mantığı modülü, sıralı süreçleri yapılandırılmış biçimde kurmayı ele alır; Program Blokları ve Yapılandırılmış Kod modülü de bu mantığı yeniden kullanılabilir bloklara taşımaya yardım eder.

"PLC Programlama (Allen-Bradley)" eğitiminin Analog İşlemler ve Sıralı Kontrol ile Program Organizasyonu ve Yeniden Kullanım modülleri, Rockwell ortamında aynı konuları kapsar. Makine üreticileri ve fabrika bakım ekipleri, kendi platformlarına uygun eğitimi seçerek sıralı kontrol tasarımında ortak bir yöntem oluşturabilir.

İlgili Mindset programı

PLC Programlama (Siemens TIA Portal)

Sık sorulanlar

Sık sorulan sorular

Durum makinesi ile düz ladder mantığı arasındaki fark nedir?

Düz ladder'da her adım kendi kilitleme devreleriyle yazılır ve hangi adımın etkin olduğu dağınıktır. Durum makinesinde makine her an tek durumdadır, geçişler ve çıkışlar tablodan türer. Bu, büyük sıralı süreçlerde okunabilirliği, test edilebilirliği ve değişiklik güvenliğini belirgin biçimde artırır.

SFC (GRAFCET) kullanmak zorunda mıyım?

Hayır. Aynı mantığı adım değişkeni ve seçim yapısıyla ya da ladder'daki adım bitleriyle de kurabilirsiniz. SFC, adımların ve geçişlerin görsel izlenmesini sağlar ama platformun desteğine ve ekibin alışkanlığına bağlıdır. Önemli olan durumların, geçişlerin ve hata davranışının açıkça tanımlanmasıdır.

Makine arıza durumuna düşünce nasıl devam etmeli?

Tasarımda önceden karar verilmelidir. Genellikle çıkışlar güvenli konuma alınır, operatör arızayı onaylar ve makine güvenli bekleme durumundan yeniden başlar. Bazı süreçlerde kaldığı adımdan devam gerekebilir; bu durumda devam koşulları ayrıca denetlenmelidir.

Her adım için ayrı zamanlayıcı kullanmak gerekir mi?

Gerek yok. Adım başında yeniden başlatılan tek bir gözetim zamanlayıcı, adıma göre farklı hedef sürelerle çalışabilir. Bu hem kodu sadeleştirir hem de her adımda zaman aşımı korumasının kapsamını genişletir. Adım zamanlayıcılarının hedef süreleri bir değişken tablosunda tutulabilir.

Çıkışları adım kodunun içinde mi yazmalıyım?

Genellikle hayır. Çıkışları adım değişkeninden türeten ayrı bir bölümde toplamak, aynı çıkışın birden çok adımda çelişkili yazılmasını önler ve her adımda hangi çıkışın etkin olduğunu tek yerde gösterir. Böylece adım eklemek ya da değiştirmek diğer adımları etkilemez.

PLC Durum Makinesi Nasıl Tasarlanır: Sıralı Kontrol