Mach4’te Servo Alarm Sinyali Geldiğinde Lua ile Makine Nasıl Güvenli Durdurulur?

📅 02 Eylül 2026⏱️ 18 dk okuma
HM12- 60 – V 400 Watt Servo Motor Bağlantı Seti BK12
📑 İçindekiler (Tıkla Aç)

Mach4’te servo alarm sinyali geldiğinde makineyi güvenli bir şekilde durdurmak için, servo sürücüsünden gelen alarm çıkışını Mach4’ün bir dijital girişine bağlamalı, bu girişi bir Mach4 sinyali olarak yapılandırmalı ve ardından bu sinyalin durumunu sürekli kontrol eden bir Lua scripti yazarak, alarm algılandığında acil durdurma (feedhold, E-stop, motor devreden çıkarma) komutlarını tetiklemelisiniz. Bu yöntem, ekipman hasarını önler ve operatör güvenliğini artırır.

Mach4’te Servo Alarm Sinyali Geldiğinde Lua ile Makine Nasıl Güvenli Durdurulur? Nedir?

 

Endüstriyel otomasyon sistemlerinde, özellikle CNC makinelerinde, servo motorlar hareket kontrolünün temelini oluşturur. Bu motorların ve sürücülerin beklenmedik bir hata durumuyla karşılaşması (örneğin, aşırı akım, aşırı voltaj, pozisyon hatası, enkoder arızası veya sürücü aşırı ısınması) hem makineye zarar verebilir hem de operatör güvenliğini tehlikeye atabilir. İşte bu noktada, Mach4 gibi gelişmiş CNC kontrol yazılımlarında, servo alarm sinyali geldiğinde makineyi otomatik ve güvenli bir şekilde durdurma yeteneği kritik önem taşır. Bu süreç, genellikle servo sürücüsünün bir hata durumunu bildiren dijital bir çıkış sinyali üretmesiyle başlar. Bu sinyal, Mach4 kontrolcüsünün (örneğin, Ethernet SmoothStepper, PoKeys veya diğer uyumlu kontrol kartları) bir dijital girişine bağlanır. Mach4 içinde bu giriş, belirli bir OEM Trigger veya özel bir giriş sinyali olarak yapılandırılır. Daha sonra, Lua programlama dili kullanılarak yazılan bir betik (script), bu sinyalin durumunu sürekli olarak izler. Sinyal aktif hale geldiğinde, yani bir servo alarmı algılandığında, Lua betiği otomatik olarak makineyi güvenli bir duruma getirecek bir dizi komutu tetikler. Bu komutlar arasında anında besleme durdurma (feedhold), mili kapatma, soğutmayı durdurma ve hatta motorları devre dışı bırakma gibi eylemler bulunabilir. Amaç, hatanın kaynağı belirlenip giderilene kadar makinenin hareketini tamamen durdurarak olası hasarları ve kazaları önlemektir. Bu mekanizma, modern CNC sistemlerinin temel bir güvenlik ve koruma özelliği olarak kabul edilir.

Çalışma Prensibi ve Teknik Veriler

Mach4 tabanlı bir CNC sisteminde servo alarm sinyalinin Lua ile yönetilerek makinenin güvenli bir şekilde durdurulması, birkaç temel teknik adımdan oluşan entegre bir süreçtir. Bu süreç, donanım katmanından yazılım katmanına kadar dikkatli bir planlama ve uygulama gerektirir.

1. Servo Alarm Entegrasyonu (Donanım Katmanı):
Her servo sürücü, genellikle bir hata durumunda aktif olan bir veya daha fazla dijital çıkışa sahiptir. Bu çıkışlar genellikle röle kontakları (NO/NC), açık kollektör çıkışları veya özel dijital sinyaller şeklinde olabilir. Bu çıkış, Mach4’ün kullandığı hareket kontrol kartının (örneğin, Ethernet SmoothStepper (ESS), PMDX-424, PoKeys57CNC veya diğer uyumlu I/O kartları) bir dijital girişine bağlanır. Kablolama sırasında, sinyal bütünlüğünü sağlamak için ekranlı kablolar kullanılması, gürültüden etkilenmeyi azaltmak ve topraklama döngülerini önlemek esastır. Girişin lojik seviyesi (genellikle 5V veya 24V) ve polaritesi (aktif yüksek veya aktif düşük) servo sürücü ve kontrol kartının gereksinimlerine göre ayarlanmalıdır. Çoğu durumda, güvenlik açısından fail-safe (arıza durumunda güvenli) bir tasarım tercih edilir; yani normalde kapalı (NC) bir kontak kullanılarak, kablo kopması durumunda dahi alarmın tetiklenmesi sağlanır.

2. Mach4 Giriş Sinyali Yapılandırması:
Fiziksel olarak bağlanan servo alarm sinyali, Mach4 yazılımı içinde tanımlanmalıdır. Bu işlem genellikle Mach4’ün “Configure -> Ports & Pins -> Input Signals” sekmesinden yapılır. Burada, kullanılan kontrol kartının ilgili giriş pini, bir Mach4 sinyaline atanır. Bu sinyal, genellikle bir OEM Trigger (Özel Ekipman Üreticisi Tetikleyicisi) veya genel amaçlı bir giriş (örneğin, Input #1, Input #2 vb.) olarak tanımlanabilir. Sinyalin aktif lojiği (Active High/Active Low) doğru bir şekilde ayarlanmalıdır. Örneğin, servo alarm çıkışı aktif düşük ise (alarm durumunda 0V), Mach4’te bu sinyal “Active Low” olarak işaretlenmelidir. Bu yapılandırma, Mach4’ün fiziksel girişin durumunu yazılımsal olarak algılamasını sağlar.

3. Lua Betiği ile Alarm İzleme ve Eylem (Yazılım Katmanı):
Mach4, Lua programlama dilini kullanarak gelişmiş özelleştirmelere ve otomasyona izin verir. Servo alarmını izlemek ve tepki vermek için bir Lua betiği yazılır. Bu betik, genellikle Mach4’ün bir “ekran yükleme betiği” (screen load script) veya “başlangıç betiği” (init script) olarak tanımlanır, böylece Mach4 başladığında veya belirli bir ekranda her zaman çalışır durumda olur.

Betiğin temel işlevi, belirli aralıklarla (örneğin, her 100 ms’de bir) Mach4’ün tanımladığı servo alarm sinyalinin durumunu kontrol etmektir. Bu kontrol için mc.mcCntlGetSignalState(mc.ISIG_INPUT1) veya atanan OEM Trigger sinyali için mc.mcCntlGetSignalState(mc.ISIG_OemTrigger1) gibi fonksiyonlar kullanılır. Eğer sinyal aktif (alarm durumu) olarak algılanırsa, betik aşağıdaki adımları içeren bir güvenli durdurma prosedürünü başlatır:

  • Anında Besleme Durdurma (Feedhold): mc.mcCntlFeedHold() fonksiyonu çağırılarak makinenin mevcut hareketini derhal durdurması sağlanır. Bu, takımın iş parçasına zarar vermesini veya tehlikeli bir pozisyonda kalmasını önler.
  • Mili Kapatma: mc.mcSpindleSetOn(0) komutu ile milin dönmesi durdurulur. Bu, özellikle kesici takımın dönmeye devam etmesini engelleyerek hem iş parçasını hem de takımı korur.
  • Soğutmayı Durdurma: Gerekirse, mc.mcCoolantSetOn(mc.M_COOLANT_OFF) gibi komutlarla soğutma sistemleri de kapatılır.
  • Motorları Devre Dışı Bırakma (Opsiyonel): Bazı durumlarda, daha ileri güvenlik için motorların tamamen devre dışı bırakılması gerekebilir. Bu, her eksen için mc.mcAxisSetMotorState(0, false) (Axis 0 için) gibi fonksiyonlarla yapılabilir. Bu, motorların tork üretmesini durdurur. Ancak, bu işlem dikkatli yapılmalı, çünkü motor frenleri veya kontrolsüz hareketler oluşabilir.
  • Kullanıcıya Bildirim: mc.mcCntlSetLastError("Servo Alarm: Makine Güvenli Duruma Alındı!") gibi bir komutla, operatöre ekran üzerinde bir hata mesajı gösterilir. Bu, operatörün durumu anlamasına ve gerekli müdahaleyi yapmasına yardımcı olur.
  • Yeniden Başlamayı Engelleme: Alarm durumu aktif olduğu sürece, makinenin yanlışlıkla yeniden başlatılmasını önlemek için ek mantık eklenebilir. Bu, bir bayrak (flag) değişkeni kullanılarak veya alarm sinyali temizlenene kadar belirli işlevleri kilitleyerek yapılabilir.

4. Alarmın Temizlenmesi ve Sistemi Resetleme:
Servo alarmının nedeni giderildikten sonra, servo sürücüsü üzerindeki alarmın manuel olarak temizlenmesi gerekir. Ardından, Mach4 içindeki alarm durumunun da sıfırlanması için özel bir Lua fonksiyonu veya Mach4’ün dahili reset mekanizması kullanılabilir. Örneğin, bir “Reset” butonu veya özel bir Lua betiği ile mc.mcCntlSetLastError("") ve mc.mcCntlReset() gibi komutlar çağrılarak sistem normal çalışma durumuna geri döndürülebilir. Ancak, sıfırlama işlemi yalnızca tüm güvenlik koşulları sağlandığında yapılmalıdır.

Parametre Değer/Açıklama
Servo Alarm Çıkış Tipi Röle Kontak (NO/NC), Açık Kollektör, Dijital Sinyal (TTL/CMOS). Tercihen NC (Normalde Kapalı) kontak ile fail-safe tasarım.
Mach4 Kontrol Kartı Girişi Ethernet SmoothStepper (ESS), PoKeys57CNC, PMDX-424, vb. Dijital giriş pinleri.
Mach4 Sinyal Tanımı Ports & Pins -> Input Signals altında OEM Trigger (örneğin, OemTrigger1-6) veya genel Input #N olarak atanır.
Lua Fonksiyonu (Sinyal Okuma) mc.mcCntlGetSignalState(mc.ISIG_OemTriggerX) veya mc.mcCntlGetSignalState(mc.ISIG_INPUTN).
Lua Fonksiyonu (Besleme Durdurma) mc.mcCntlFeedHold() – Makinenin mevcut hareketini anında durdurur.
Lua Fonksiyonu (Mil Durdurma) mc.mcSpindleSetOn(0) – Mili kapatır.
Lua Fonksiyonu (Hata Mesajı) mc.mcCntlSetLastError("Hata Mesajı") – Ekrana kullanıcı dostu bir hata mesajı gönderir.
Yanıt Süresi (Tipik) Donanım ve Lua döngü hızına bağlı olarak 10ms – 200ms arasında değişir. Kritik uygulamalarda daha hızlı yanıt için donanım tabanlı acil durdurma zincirleri tercih edilebilir.
Mach4’te Servo Alarm Sinyali Geldiğinde Lua ile Makine Nasıl Güvenli Durdurulur?

Sahada Dikkat Edilmesi Gerekenler

  • Doğru Kablolama ve Gürültü Azaltma: Servo sürücülerinden gelen alarm sinyalleri, genellikle düşük akım ve voltaj seviyelerinde çalışır. Bu sinyallerin endüstriyel ortamdaki elektromanyetik gürültüden (EMI/RFI) etkilenmemesi için ekranlı kablolar kullanılmalı ve ekranlar sadece tek bir noktadan (genellikle kontrol panosu tarafından) topraklanmalıdır. Kabloların güç kablolarından ayrı rotalardan geçirilmesi ve uygun ferrit boncukların kullanılması, yanlış tetiklemeleri önlemeye yardımcı olur. Topraklama döngüleri oluşturmaktan kaçınılmalıdır.
  • Sinyal Lojik ve Polarite Ayarı: Servo sürücüsünün alarm çıkışının lojik seviyesi (aktif yüksek veya aktif düşük) ve Mach4’teki giriş sinyalinin polarite ayarı (Active High/Active Low) birbiriyle eşleşmelidir. Yanlış polarite ayarı, alarmın hiç algılanmamasına veya sürekli alarm durumunda görünmesine neden olabilir. Özellikle fail-safe tasarım için normalde kapalı (NC) kontaklar tercih edildiğinde, Mach4’teki girişin bu duruma göre “Active Low” veya “Active High” olarak doğru ayarlandığından emin olunmalıdır.
  • Gecikme Süresi ve Güvenlik Zinciri: Servo alarmının oluşması ile Lua betiğinin tepki verip makineyi durdurması arasında bir gecikme süresi olacaktır. Bu gecikme, kontrol kartının tarama hızı, Lua betiğinin döngü süresi ve Mach4’ün dahili işlem gecikmelerinden etkilenir. Çok yüksek hızlı veya yüksek riskli uygulamalarda, sadece yazılım tabanlı bir durdurma yerine, servo alarm sinyalini doğrudan bir donanımsal acil durdurma (E-stop) devresine entegre etmek daha güvenli olabilir. Bu, yazılımın çökmesi veya donması durumunda dahi makinenin durmasını sağlar.
  • Kapsamlı Test ve Senaryo Analizi: Kurulum ve yapılandırma tamamlandıktan sonra, sistemin farklı senaryolarda nasıl tepki verdiğini görmek için kapsamlı testler yapılmalıdır. Gerçek bir servo alarmı tetikleyerek (örneğin, motoru elle zorlayarak veya sürücüye geçici bir hata vererek) sistemin doğru bir şekilde durup durmadığı, mesajların görüntülenip görüntülenmediği ve milin kapanıp kapanmadığı kontrol edilmelidir. Ayrıca, alarmın temizlenmesi ve sistemin güvenli bir şekilde sıfırlanması prosedürleri de test edilmelidir.
  • Operatör Eğitimi ve Dokümantasyon: Makine operatörleri, servo alarmının ne anlama geldiği, nasıl tetiklendiği ve alarm durumunda ne yapmaları gerektiği konusunda eğitilmelidir. Lua betiği, Mach4 yapılandırması, kablolama şemaları ve test prosedürleri detaylı bir şekilde belgelenmelidir. Bu dokümantasyon, gelecekteki sorun giderme ve bakım işlemleri için kritik öneme sahiptir.
  • Harici E-Stop ve Güvenlik Röleleri: Lua ile yapılan bu tür bir güvenlik durdurma, makinenin genel Acil Durdurma (E-Stop) zincirini ve donanımsal güvenlik rölelerini asla ikame etmemelidir. Bu, ek bir güvenlik katmanı olup, operatörün manuel E-stop düğmesine basması veya diğer kritik güvenlik sensörlerinin tetiklenmesi durumunda makinenin her koşulda durmasını sağlayan bağımsız bir sistem olmalıdır.
Mach4’te Servo Alarm Sinyali Geldiğinde Lua ile Makine Nasıl Güvenli Durdurulur?

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

Servo alarm sinyalinin Mach4 ve Lua ile entegrasyonunda karşılaşılabilecek bazı yaygın sorunlar ve bunların çözüm yöntemleri şunlardır:

  • Sorun: Servo alarmı tetiklendiğinde Mach4 tepki vermiyor veya algılamıyor.
    • Çözüm 1: Kablolama Kontrolü. Servo sürücüden Mach4 kontrol kartına giden kablonun fiziksel bağlantılarını kontrol edin. Gevşek bağlantılar, kopuk kablolar veya yanlış pin bağlantıları bu soruna neden olabilir. Kontrol kartı üzerindeki giriş pininin LED göstergesini (varsa) kontrol ederek sinyalin fiziksel olarak ulaşıp ulaşmadığını doğrulayın.
    • Çözüm 2: Mach4 Port & Pins Ayarları. Mach4’ün “Configure -> Ports & Pins -> Input Signals” bölümüne gidin. Servo alarm sinyalinin doğru giriş pinine atanıp atanmadığını ve “Active Low” veya “Active High” polarite ayarının servo sürücünün çıkış lojiğiyle eşleşip eşleşmediğini kontrol edin.
    • Çözüm 3: Lua Betiği Hatası. Lua betiğinizde sözdizimi hatası (syntax error) olup olmadığını kontrol edin. Betiğin doğru bir şekilde yüklenip yüklenmediğini ve sinyal okuma fonksiyonunun (mc.mcCntlGetSignalState()) doğru OEM Trigger veya Input sinyalini hedefleyip hedeflemediğini doğrulayın. Gerekirse betiğe print() fonksiyonları ekleyerek konsolda sinyal durumunu izleyin.
  • Sorun: Makine, servo alarmı tetiklendiğinde duruyor ancak mil dönmeye devam ediyor veya soğutma kapanmıyor.
    • Çözüm: Lua Betiği Komut Kontrolü. Lua betiğinizdeki güvenli durdurma prosedürünü inceleyin. mc.mcSpindleSetOn(0) komutunun doğru bir şekilde çağrıldığından ve milin kapatılması için gerekli diğer komutların (örneğin, G-kodu M-kodu gönderme) yer aldığından emin olun. Soğutma için de benzer şekilde mc.mcCoolantSetOn(mc.M_COOLANT_OFF) gibi komutların mevcut olup olmadığını kontrol edin.
  • Sorun: Makine, servo alarmı olmadan da rastgele alarm veriyor veya yanlış tetikleniyor.
    • Çözüm 1: Gürültü ve Topraklama. Bu durum genellikle elektromanyetik gürültüden kaynaklanır. Ekranlı kablo kullanıldığından, ekranın tek noktadan topraklanmış olduğundan ve güç kablolarından yeterince uzakta olduğundan emin olun. Gerekirse sinyal hattına RC filtreler veya optokuplörler ekleyerek sinyali izole edin.
    • Çözüm 2: Debounce Ayarı. Mach4’ün “Ports & Pins” ayarlarında ilgili giriş için “Debounce” (sekme önleme) değerini artırmayı deneyin. Bu, kısa süreli gürültü piklerinin yanlış alarm tetiklemesini önleyebilir.
    • Çözüm 3: Sinyal Lojiği. Sinyal lojiğinin (Active High/Active Low) doğru ayarlandığından bir kez daha emin olun. Ters lojik, normal çalışma durumunu alarm olarak algılamanıza neden olabilir.
  • Sorun: Servo alarmı giderildikten sonra Mach4 “Reset” edilemiyor veya alarm durumu kilitli kalıyor.
    • Çözüm 1: Servo Sürücü Reset. Öncelikle servo sürücüsü üzerindeki alarmın fiziksel olarak temizlendiğinden ve sürücünün normal çalışma durumuna geçtiğinden emin olun. Çoğu sürücü, alarmı manuel olarak temizlemek için bir düğmeye basılmasını veya güç döngüsü yapılmasını gerektirir.
    • Çözüm 2: Lua Betiği Reset Mantığı. Lua betiğinizde, alarm durumu temizlendiğinde Mach4’ün dahili hata durumunu sıfırlayan bir mantık olup olmadığını kontrol edin. Örneğin, bir “Reset” butonu tıklandığında mc.mcCntlReset() ve mc.mcCntlSetLastError("") komutlarının çağrıldığından emin olun.
    • Çözüm 3: Latching Alarm Mekanizması. Bazı durumlarda, alarmın kilitlenmesini sağlayan bir Lua değişkeni (flag) kullanılmış olabilir. Bu değişkenin, alarm temizlendiğinde ve resetleme yapıldığında doğru bir şekilde sıfırlandığından emin olun.
  • Sorun: Makine durduğunda kontrolsüz hareket ediyor veya yavaş duruyor.
    • Çözüm 1: Frenleme Dirençleri ve Dinamik Frenleme. Özellikle büyük ve ataletli motorlarda, besleme durdurma komutu verildiğinde motorların kinetik enerjisini hızla dağıtmak için uygun frenleme dirençleri ve sürücüde dinamik frenleme ayarlarının doğru yapıldığından emin olun.
    • Çözüm 2: E-Stop Devresi Entegrasyonu. Eğer Lua tabanlı durdurma yeterince hızlı değilse veya kontrolsüz hareketler devam ediyorsa, servo alarm sinyalini doğrudan makinenin ana E-Stop devresine (güvenlik röleleri aracılığıyla) entegre etmeyi düşünün. Bu, tüm motor güçlerini anında keserek daha hızlı ve güvenli bir duruş sağlar.

Uzman Tavsiyesi

Mach4 tabanlı CNC sistemlerinde servo alarm sinyalinin Lua ile güvenli bir şekilde yönetilmesi, modern otomasyonun vazgeçilmez bir parçasıdır. Bu mekanizma, sadece pahalı makine ekipmanlarını ve iş parçalarını olası hasarlardan korumakla kalmaz, aynı zamanda operatör güvenliğini en üst düzeye çıkarır. Endüstriyel otomasyon sektöründe bir uzman olarak, bu sistemin kurulumu ve yapılandırılması sırasında gösterilecek titizliğin, makinenizin uzun ömürlü ve sorunsuz çalışması için kritik olduğunu vurgulamak isterim.

Başlangıçta yapılan doğru kablolama, sinyal bütünlüğünü sağlama ve elektromanyetik gürültüye karşı önlemler alma, sistemin güvenilirliği için temel taşlardır. Mach4 içerisinde giriş sinyallerinin doğru yapılandırılması ve özellikle “Active Low” veya “Active High” polaritelerinin servo sürücü çıkışlarıyla uyumlu olduğundan emin olunması, yanlış alarm tetiklemelerini veya alarmın hiç algılanmamasını önler. Lua betiğinin yazımında, sadece alarmı algılamakla kalmayıp, makineyi kademeli ve güvenli bir şekilde durduracak (feedhold, mil kapatma, soğutma durdurma) komutların eksiksiz ve doğru bir sıralamayla yer alması hayati önem taşır. Ayrıca, operatöre açık ve anlaşılır hata mesajları sunmak, sorun giderme sürecini hızlandırır ve üretim kesintilerini minimize eder.

Unutulmamalıdır ki, Lua ile yazılım tabanlı bir güvenlik durdurma, makinenin genel donanımsal Acil Durdurma (E-Stop) zincirinin bir tamamlayıcısıdır, asla onun yerine geçmemelidir. En yüksek güvenlik seviyesi için, servo alarm sinyalini, Mach4’ün yazılım tabanlı tepkisinin yanı sıra, doğrudan makinenin ana güvenlik devresine (güvenlik röleleri aracılığıyla) entegre etmek her zaman uzman tavsiyesidir. Bu çift katmanlı yaklaşım, yazılım arızası veya donma gibi beklenmedik senaryolarda dahi makinenin güvenli bir duruma geçmesini garanti eder.

Son olarak, sistemin kurulumu tamamlandıktan sonra, gerçekçi senaryolar altında kapsamlı testler yapmak ve bu testlerin sonuçlarını belgelemek büyük önem taşır. Periyodik bakım ve testler, sistemin zamanla değişen koşullara adaptasyonunu ve sürekli güvenilirliğini sağlar. Operatörlerin bu güvenlik mekanizmasının işleyişi ve alarm durumunda atılması gereken adımlar konusunda iyi eğitimli olması, olası riskleri en aza indirerek verimli ve güvenli bir çalışma ortamı yaratacaktır. Bu detaylı yaklaşım, endüstriyel otomasyon sistemlerinizin hem performansını hem de güvenliğini artıracaktır.