CODESYS SoftMotion'da Elektronik Dişli: MC_GearIn ve MC_GearOut
Klasik makinelerde bir milin diğerine bağlı dönmesini sağlamak için dişliler, kayışlar veya kam mekanizmaları kullanılırdı. Bu mekanik çözümler işe yarar; ama aşınır, ayar gerektirir ve oranı değiştirmek istediğinizde donanımı sökmeniz gerekir. Elektronik dişli (electronic gearing) tam da bu noktada devreye girer: iki ekseni fiziksel bir bağlantı olmadan, yazılımla birbirine senkronize eder.
CODESYS SoftMotion, bu işlevi IEC 61131-3 standardına uygun hazır fonksiyon bloklarıyla sunar. Bu yazıda en çok kullanılan ikilisine bakacağız: MC_GearIn ve MC_GearOut.
Temel mantık: Master ve Slave
Elektronik dişlinin özünde iki eksen vardır:
Master (ana eksen): Referans hareketi üreten eksen. Genelde makinenin ana tahrik miline karşılık gelir.
Slave (bağımlı eksen): Master'ı belirli bir oranda takip eden eksen.
Slave, master'ın hızını (velocity) baz alarak hareket eder. Yani master ne kadar hızlı dönerse, slave de belirlenen orana göre o kadar hızlı döner. Bu oran, mekanik bir dişli kutusundaki diş sayısı oranının yazılımdaki karşılığıdır.
MC_GearIn: Bağlantıyı kurar
MC_GearIn, slave ekseni master'a kilitleyen bloktur. Öne çıkan parametreleri:
Master / Slave: İlgili eksen referansları.
RatioNumerator / RatioDenominator: Dişli oranını belirleyen pay ve payda. Örneğin 3 / 1, slave'in master'dan üç kat hızlı dönmesi anlamına gelir. Negatif değer ters yön demektir.
Acceleration / Deceleration / Jerk: Slave'in sıfır hızdan hedef orana ulaşırken izleyeceği rampa. Bu, kilitlenme anındaki sarsıntıyı önler.
InGear (çıkış): Slave, master'ı tam oranında takip etmeye başladığında TRUE olur. Senkronizasyonun tamamlandığını bu bitten anlarsınız.
Blok tetiklendiğinde slave hemen değil, rampalı biçimde hedef hıza çıkar. InGear sinyali gelene kadar sistem "yakalama" (catch-up) aşamasındadır.
MC_GearOut: Bağlantıyı çözer
MC_GearOut, slave'i master'dan ayırır. Bağlantı koptuğunda slave, ayrılma anındaki hızıyla serbest hale gelir; otomatik olarak durmaz. Bu yüzden pratikte MC_GearOut sonrasında genellikle bir MC_Stop veya MC_MoveVelocity bloğuyla slave'in ne yapacağı tanımlanır.
Nerede kullanılır?
Elektronik dişli, mekanik senkronizasyon gerektiren hemen her yerde iş görür:
Baskı ve etiketleme makinelerinde silindirlerin uyumlu dönmesi
Kesme bıçağının malzeme hızına eşitlenmesi (flying cutoff öncesi)
Konveyör hatlarında birden fazla motorun aynı tempoda çalışması
Sarma/çözme (winding) uygulamalarında hız oranı kontrolü
Küçük bir not: Hız mı, konum mu?
MC_GearIn hız bazlı senkronizasyon yapar; yani slave master'ın hızını takip eder ama iki eksenin konumları arasında belirli bir faz ilişkisi garanti etmez. Eğer eksenlerin belirli bir konumda, faz kaymasız hizalanması gerekiyorsa MC_GearInPos bloğuna bakmalısınız. O blok, senkronizasyona ek olarak konum eşlemesi de sağlar.
Özetle
Elektronik dişli, mekanik dişlilerin esnek ve aşınmasız yazılım karşılığıdır. CODESYS SoftMotion'da MC_GearIn ile bağlantıyı kurar, oranı pay/payda olarak tanımlar, InGear çıkışıyla senkronizasyonu doğrular ve işiniz bittiğinde MC_GearOut ile ayrılırsınız. Oranı bir satır kodla değiştirebilmek ise mekanik dünyada asla mümkün olmayan bir esneklik sunar.