Mach4’te takım numarası, park konumu ve makine ayarlarını kalıcı olarak hafızada tutmak için Persistent Register‘lar kullanılır. Bu register’lar, makine kapatılıp açıldığında bile değerlerini koruyan, Mach4 profilinde depolanan özel değişkenlerdir. Lua scriptleri aracılığıyla mc.mcCntlSetPRegister() ve mc.mcCntlGetPRegister() fonksiyonları ile kolayca okunup yazılabilir, böylece makine durumu her zaman güncel kalır.
Mach4’te Persistent Register ile Takım Numarası, Park Konumu ve Makine Ayarları Nasıl Hafızada Tutulur? Nedir?
Endüstriyel otomasyon ve CNC kontrol sistemlerinde, makine durumunun ve belirli operasyonel verilerin sistem kapatılıp açıldığında bile korunması kritik öneme sahiptir. Mach4, bu ihtiyacı karşılamak için Persistent Register (Kalıcı Kayıt Defterleri) adı verilen özel bir mekanizma sunar. Persistent Register’lar, standart değişkenlerin aksine, Mach4 yazılımı kapatıldığında veya bilgisayar yeniden başlatıldığında dahi değerlerini kaybetmeyen, non-volatile (kalıcı) bellek bölgeleridir. Bu register’lar, Mach4’ün yapılandırma dosyası (genellikle profilin XML veya INI dosyası) içerisinde saklanır ve bir sonraki başlatılışta aynı değerlerle yüklenir.
Bu kalıcı depolama yeteneği sayesinde, operatörlerin her seferinde manuel olarak girmesi gereken bilgiler (örneğin, en son kullanılan takım numarası, makinenin güvenli park konumu, belirli bir iş parçasına ait ofsetler veya özelleştirilmiş besleme hızı ayarları) otomatik olarak hatırlanır. Bu durum, hem operasyonel verimliliği artırır hem de insan hatası riskini minimize eder. Özellikle çok vardiyalı üretim ortamlarında veya sık sık makine kapatma/açma işlemleri gerektiren durumlarda Persistent Register’ların kullanımı vazgeçilmezdir.
Mach4’ün Lua betik dili entegrasyonu, Persistent Register’lara erişimi son derece kolaylaştırır. Geliştiriciler ve operatörler, özel M-kodları, ekran düğmeleri veya otomatik kapanış/başlangıç betikleri aracılığıyla bu register’lara veri yazabilir ve okuyabilirler. Bu esneklik, Mach4’ü çeşitli endüstriyel uygulamalara uyarlanabilir ve kullanıcı dostu bir CNC kontrol sistemi haline getirir.
Çalışma Prensibi ve Teknik Veriler
Mach4’teki Persistent Register’lar, dahili bir indeksleme sistemi kullanarak tanımlanır ve yönetilir. Genellikle 0’dan başlayarak belirli bir aralığa (örneğin, 0-999) kadar numaralandırılmış yüzlerce hatta binlerce register kullanılabilir. Her bir register, tek bir sayısal değeri (genellikle kayan noktalı sayı veya tam sayı) depolayabilir. Bu register’lara erişim, Mach4’ün yerleşik Lua API’si aracılığıyla sağlanır.

Lua Fonksiyonları ile Erişim
-
mc.mcCntlSetPRegister(index, value): Bu fonksiyon, belirtilenindexnumaralı Persistent Register’avaluedeğerini yazar.Örnek Kullanım:
mc.mcCntlSetPRegister(1000, mc.mcToolGetToolNumber(0)) -- Mevcut takım numarasını 1000 numaralı register'a kaydet.mc.mcCntlSetPRegister(1001, mc.mcAxisGetMachinePos(mc.X_AXIS)) -- X ekseni makine pozisyonunu kaydet. -
mc.mcCntlGetPRegister(index): Bu fonksiyon, belirtilenindexnumaralı Persistent Register’ın mevcut değerini okur ve döndürür.Örnek Kullanım:
local lastTool = mc.mcCntlGetPRegister(1000) -- 1000 numaralı register'dan son takım numarasını oku.local parkX = mc.mcCntlGetPRegister(1001) -- X ekseni park pozisyonunu oku.

Uygulama Alanları ve Mekanizmalar
1. Takım Numarası Hafızası:
Bir iş parçası üzerinde çalışırken veya bir program durdurulduğunda, en son kullanılan takım numarasının kaydedilmesi, bir sonraki seans başladığında veya program devam ettiğinde doğru takımın otomatik olarak seçilmesini sağlar. Bu, genellikle bir takım değiştirme M-kodu (örneğin, M6) makrosunun sonuna veya makine kapatma prosedürüne eklenen bir Lua komutuyla yapılır. Başlangıçta ise, Mach4 açıldığında veya bir başlatma makrosu (M30 gibi) çalıştırıldığında bu değer okunarak makinenin takım bilgisi güncellenebilir.
2. Park Konumu Kaydetme:
Güvenli bir park konumu (genellikle X, Y ve Z eksenleri için belirli koordinatlar), işleme bittiğinde veya makine kapatılmadan önce takımın ve iş parçasının çarpışma riskini ortadan kaldırır. Bu koordinatlar, ayrı ayrı Persistent Register’lara kaydedilebilir (örneğin, PRegister 1001 için X, 1002 için Y, 1003 için Z). Makine kapatılmadan önce otomatik olarak bu register’lara mevcut makine koordinatları yazılabilir veya özel bir “Park Et” makrosu bu işlemi gerçekleştirebilir. Makine tekrar açıldığında veya operatör “Park Konumuna Git” düğmesine bastığında, bu kaydedilmiş değerler okunur ve makine bu konuma hareket ettirilir.
3. Makine Ayarları ve Ofsetler:
Mach4, birçok makine ayarını ve ofseti (örneğin, G54-G59 iş ofsetleri, takım uzunluğu ofsetleri, besleme hızı override yüzdeleri, iş mili hızı override yüzdeleri, özel kalibrasyon değerleri) dahili olarak yönetir. Ancak, kullanıcı tanımlı veya geçici olarak değiştirilen ayarların kalıcı hale getirilmesi için Persistent Register’lar kullanılabilir. Örneğin, bir operatörün sıkça kullandığı bir besleme hızı override yüzdesi, bir Persistent Register’a kaydedilerek her başlatmada otomatik olarak uygulanabilir. Benzer şekilde, özel jig ofsetleri veya sıfır noktası ayarları, bu register’lar aracılığıyla kalıcı hale getirilebilir.

Teknik Detaylar ve Depolama
Persistent Register’lar, Mach4 profil dosyası içerisinde depolanır. Mach4, genellikle bir XML tabanlı profil (.xml) kullanır. Bu dosya, makineye özel tüm yapılandırma bilgilerini, ekran düzenlerini, makro tanımlarını ve Persistent Register değerlerini içerir. Bu nedenle, profil dosyasının düzenli olarak yedeklenmesi, olası veri kaybını önlemek için kritik öneme sahiptir.
Veri tipi açısından, Persistent Register’lar genellikle kayan noktalı sayıları (float) depolayabilir, bu da ondalık hassasiyet gerektiren koordinatlar, ofsetler veya yüzdeler için idealdir. Tam sayı değerleri de sorunsuz bir şekilde depolanabilir.
| Parametre | Değer/Açıklama |
|---|---|
| Depolama Tipi | Kalıcı (Non-Volatile) |
| Depolama Yeri | Mach4 Profil Dosyası (.xml veya .ini) |
| Erişim Metodu | Lua Script Fonksiyonları |
| Yazma Fonksiyonu | mc.mcCntlSetPRegister(index, value) |
| Okuma Fonksiyonu | mc.mcCntlGetPRegister(index) |
| Veri Tipi | Sayısal (Float veya Integer) |
| Kullanım Alanları | Takım Numarası, Park Konumu, Ofsetler, Ayarlar, Durum Bilgileri |
| Register Aralığı | Genellikle 0-999 (yapılandırmaya göre değişebilir) |

Sahada Dikkat Edilmesi Gerekenler
- Kapsamlı Dokümantasyon: Hangi Persistent Register’ın ne amaçla kullanıldığını ve hangi değer aralıklarını depoladığını gösteren detaylı bir dokümantasyon oluşturun. Karmaşık sistemlerde, farklı register’ların çakışmasını veya yanlış kullanılmasını önlemek için bu çok önemlidir. Örneğin, register 1000’i takım numarası için, 1001-1003’ü park konumu için ayırdığınızı açıkça belirtin.
-
Profil Yedeklemesi ve Versiyonlama: Mach4 profil dosyası (genellikle
.xmluzantılı), tüm Persistent Register değerlerini içerir. Bu dosyanın düzenli olarak yedeklenmesi, donanım arızası veya yanlış yapılandırma durumunda veri kaybını önler. Ayrıca, önemli değişiklikler yapıldığında profilin versiyonlanması, geri dönüş noktaları oluşturmanıza olanak tanır. - Kapanış ve Başlangıç Prosedürleri: Persistent Register’lara veri yazma işlemleri, genellikle makine kapatılmadan hemen önce veya program sonlandığında (M30 gibi) bir makro içerisinde gerçekleştirilmelidir. Okuma işlemleri ise, Mach4 başlatıldığında veya bir program başlatılmadan önce yapılmalıdır. Bu, verilerin tutarlılığını sağlar. Ani kapanmaların (elektrik kesintisi vb.) veri kaybına yol açabileceği unutulmamalıdır, bu nedenle kritik veriler için ek önlemler (örneğin, kesintisiz güç kaynağı) düşünülmelidir.
- Hata Yönetimi ve Validasyon: Persistent Register’lardan okunan değerlerin geçerliliğini kontrol eden mekanizmalar ekleyin. Örneğin, okunan takım numarasının makinenin desteklediği takım aralığında olup olmadığını veya park konumunun makine limitleri dahilinde olup olmadığını doğrulayın. Geçersiz bir değer okunursa, varsayılan güvenli bir değerin atanması veya operatöre uyarı verilmesi önemlidir.
- Performans ve Sıklık: Persistent Register’lara çok sık veri yazmak veya okumak, sistem performansı üzerinde küçük bir etkiye sahip olabilir, özellikle de bu işlemler kritik çevrim süreleri içinde yapılıyorsa. Genellikle, bu register’lar yalnızca durum değiştiğinde (örneğin, takım değiştiğinde) veya makine kapanıp açıldığında güncellenir/okunur. Gereksiz yere sürekli yazmaktan kaçının.
- Güvenlik ve Yetkilendirme: Bazı kritik makine ayarlarının Persistent Register’larda saklanması durumunda, bu register’lara yetkisiz erişimi veya yanlışlıkla yapılan değişiklikleri önlemek için güvenlik önlemleri alınmalıdır. Mach4’ün kullanıcı yetkilendirme sistemi veya özel ekran kilitleri bu amaçla kullanılabilir.
- Modüler ve Yeniden Kullanılabilir Kod: Persistent Register’ları kullanan Lua scriptlerini modüler bir yapıda yazın. Belirli bir işlev için (örneğin, takım bilgilerini kaydetme) ayrı bir fonksiyon veya makro oluşturmak, kodun okunabilirliğini, bakımını ve yeniden kullanılabilirliğini artırır.

Sık Karşılaşılan Sorunlar ve Çözümleri
Persistent Register’lar güçlü bir araç olsa da, yanlış kullanıldığında veya beklenmedik durumlarla karşılaşıldığında bazı sorunlara yol açabilir. İşte sık karşılaşılan sorunlar ve çözüm önerileri:
-
Sorun: Makine kapatılıp açıldığında register değerleri kayboluyor veya eski değerler geri geliyor.
Çözüm: Bu durum genellikle, Persistent Register’a değer yazma işleminin Mach4 kapanmadan önce düzgün bir şekilde tamamlanmamasından kaynaklanır. Mach4’ün normal kapanış prosedüründe (örneğin, “File -> Exit” menüsü aracılığıyla) çalışan bir Lua makrosuna
mc.mcCntlSetPRegister()komutlarını eklediğinizden emin olun. Ayrıca, anlık elektrik kesintileri veya bilgisayarın ani kapanması durumunda veriler yazılmamış olabilir. Kritik uygulamalar için UPS (Kesintisiz Güç Kaynağı) kullanmayı düşünün. -
Sorun: Register’dan okunan değerler yanlış veya beklenenden farklı.
Çözüm: Öncelikle, doğru register indeksini (
index) kullandığınızdan emin olun. Birden fazla makro veya script aynı register indeksini kullanarak çakışmaya neden olabilir. Kodunuzdakimc.mcCntlSetPRegister()vemc.mcCntlGetPRegister()çağrılarını kontrol edin. Ayrıca, okuduğunuz değerin veri tipi dönüşümüne (örneğin, string’den sayıya) dikkat edin, ancak Mach4’ün Persistent Register’ları genellikle doğrudan sayısal değerlerle çalışır. Mach4’ün Lua konsolunu kullanarak register değerlerini manuel olarak okuyup yazarak test yapabilirsiniz. -
Sorun: Makine başlangıcında otomatik olarak bir ayar yüklenmiyor.
Çözüm: Persistent Register’dan okunan değerin makine ayarına uygulandığından emin olmak için, bu okuma ve uygulama kodunun Mach4 başlangıç makrosunda (genellikle M30 veya özel bir başlatma makrosu) veya Mach4 profilinin yüklenmesiyle tetiklenen bir script’te yer aldığından emin olun. Kodun doğru sırayla çalıştığını ve herhangi bir hatayla kesintiye uğramadığını kontrol edin.
-
Sorun: Mach4 profil dosyası bozuldu ve tüm Persistent Register değerleri kayboldu.
Çözüm: Bu, en ciddi sorunlardan biridir. Düzenli profil yedeklemesi bu durumun etkisini minimize eder. Bozuk profili, daha önce alınmış bir yedekle değiştirerek verileri geri yükleyebilirsiniz. Gelecekte bu tür sorunları önlemek için, profil dosyasını sık sık yedeklemeyi bir rutin haline getirin, özellikle önemli yapılandırma değişiklikleri yapmadan önce.
-
Sorun: Çok sayıda Persistent Register kullanmak sistem performansını etkiliyor.
Çözüm: Genellikle Persistent Register’lar performans üzerinde ihmal edilebilir bir etkiye sahiptir çünkü değerler diske yalnızca Mach4 kapatıldığında veya özel bir “kaydet” komutu verildiğinde yazılır. Ancak, eğer çok sık (örneğin, her milisaniyede bir) register’lara yazma veya okuma işlemi yapılıyorsa, bu durum teorik olarak performansı etkileyebilir. Kullanım sıklığını optimize edin ve yalnızca gerçekten kalıcı olması gereken veriler için Persistent Register’ları kullanın. Geçici veriler için standart Lua değişkenlerini tercih edin.
Uzman Tavsiyesi
Mach4’te Persistent Register’lar, endüstriyel otomasyon ve CNC operasyonlarında makine durumunun ve kritik ayarların kalıcı olarak hafızada tutulması için vazgeçilmez bir araçtır. Bu özellik, makine kapatılıp açıldığında dahi operasyonel sürekliliği sağlar, manuel veri girişini azaltır ve insan hatası riskini minimize eder. Özellikle takım numarası, güvenli park konumları ve özel makine ayarlarının otomatik olarak hatırlanması, üretim verimliliğini önemli ölçüde artırır.
Uzman bir saha mühendisi olarak tavsiyem, Persistent Register’ları kullanırken sistematiğe ve detaylı planlamaya önem vermenizdir. Öncelikle, hangi verilerin kalıcı olarak saklanması gerektiğini ve bu verilerin hangi register indekslerinde tutulacağını belirleyen açık bir dokümantasyon oluşturun. Bu dokümantasyon, zamanla sistem karmaşıklaştıkça veya farklı personel sisteme müdahale ettikçe olası çakışmaları ve yanlış anlamaları engelleyecektir. Lua scriptlerini yazarken, veri yazma ve okuma işlemlerinin makinenin kapanış ve başlangıç prosedürlerine entegre edildiğinden emin olun. Kapanışta verilerin doğru bir şekilde yazıldığından, başlangıçta ise doğru bir şekilde okunup uygulandığından emin olmak için testler yapın.
Ayrıca, Mach4 profil dosyasının düzenli olarak yedeklenmesi, olası bir sistem arızası veya veri bozulması durumunda hızlı bir şekilde kurtarma yapabilmek için hayati öneme sahiptir. Karmaşık sistemlerde, her önemli değişiklikten sonra profilin bir kopyasını almak, geri dönüş noktaları oluşturmanıza olanak tanır. Son olarak, Persistent Register’ları sadece gerçekten kalıcı olması gereken veriler için kullanın ve performansı etkileyecek aşırı veya gereksiz okuma/yazma işlemlerinden kaçının. Doğru planlama, uygulama ve bakım ile Mach4’teki Persistent Register’lar, CNC makine operasyonlarınızın güvenilirliğini ve verimliliğini önemli ölçüde artıracaktır.
