Program makineye sığmıyorsa ne yapılır?
NC programları kontrol ünitesinde saklanır, gerektiğinde NCK çalışma belleğine (RAM) indirilir ve orada çalıştırılır. Küçük programlarda bu sorunsuzdur.
Ama kalıp işlerinde CAM’den çıkan geometri programı 100 MB’a kadar ulaşabilir. Bu boyuttaki bir dosya NCK çalışma belleğine ne kaydedilebilir ne de oradan çalıştırılabilir. Çözüm, programı harici bir bellekte tutup satır satır okutmaktır.
Bu işi yapan komut EXTCALL‘dur. Bu sayfa hem komutun kendisini hem de etrafındaki program yönetimi mantığını anlatıyor.
EXTCALL sözdizimi ve kısa yol adları, SD42700 ile varsayılan yol ve arama sırası, yeniden yükleme belleği (FIFO) ve boyut sınırı, harici programda atlama komutu tuzağı, Reset ve POWER ON davranışı, USB ile ilgili Siemens uyarısı.Kalıp programının yapısı: teknoloji ayrı, geometri ayrı
Kalıp programları genelde ikiye bölünerek kurulur:
- Ana program — bütün teknoloji verilerini taşır: takım çağırma, devir, sıfır ofseti, tolerans ayarı (CYCLE832), soğutma.
- Alt programlar — sadece geometriyi taşır:
G90‘dan sonra binlerce koordinat satırı.
Takım değişimi, alt programlar arasındaki bölünmeyi belirler. Yani her takım için ayrı bir geometri dosyası olur.
Bu yapının faydası sadece bellek değildir: teknolojiyi geometriye dokunmadan değiştirebilirsin. Devir yetmediyse ana programdaki tek satırı değiştirirsin; 3 milyon satırlık geometri dosyasına hiç el sürmezsin.
Harici bellek olarak ne kullanılabilir?
| Kontrol | Kullanılabilen harici bellek |
|---|---|
| 840D sl | Yerel sürücü (local drive) · Ağ sürücüsü · USB sürücü |
| 828D | Kullanıcı CF kartı · Ağ sürücüsü · USB sürücü |
USB kullanılacaksa hangi arabirimin kullanılacağı da tanımlıdır: 840D sl’de operatör paneli önündeki veya TCU üzerindeki USB arabirimi, 828D’de yalnızca PPU ön yüzündeki USB arabirimi.
EXTCALL sözdizimi
Parantez içindeki ifade STRING tipinde bir sabit veya değişkendir.
- Yol mutlak veya göreli olabilir, isteğe bağlıdır.
- Program adı
_N_öneki olmadan yazılır. - Dosya uzantısı (
MPF,SPF) isteğe bağlıdır ve_veya.ile eklenebilir. Üçü de geçerlidir:"SHAFT","SHAFT_SPF","SHAFT.SPF".
Kısa yol adları
| Kısaltma | Anlamı | Geçerli |
|---|---|---|
LOCAL_DRIVE: | Yerel sürücü | 840D sl |
CF_CARD: | CF kartı | 840D sl (LOCAL_DRIVE ile değişmeli kullanılabilir) ve 828D (kullanıcı CF kartı) |
USB: | Operatör paneli önündeki USB sürücü | 840D sl ve 828D |
Örnek
PCALL tarzı parametre geçişi burada çalışmaz. Değer taşıman gerekiyorsa R parametresi veya GUD gibi ortak bir değişken kullanacaksın.Varsayılan yol: SD42700 ve arama sırası
Harici program dizininin yolu bir ayar datasıyla önceden tanımlanabilir:
Bu tanımlıyken ana programda sadece program adını yazarsın; kontrol tam yolu kendisi birleştirir.
$SC_ zaten bunu söyler: Setting data, Channel-specific. Makine datasıyla karıştırılmamalıdır.Yol verilmezse kontrol nereye bakar?
Göreli yolla ya da hiç yol vermeden EXTCALL yazıldığında arama sırası şöyledir:
- SD42700’de bir yol tanımlıysa, önce oradan başlanır. Tam yol şöyle birleştirilir: SD42700’deki varsayılan yol + ayırıcı
/+ EXTCALL komutundaki yol ve program adı. - Orada bulunamazsa kullanıcı belleğinin dizinleri taranır.
Arama, alt program ilk bulunduğunda biter. Hiç bulunamazsa program çalışması EXTCALL satırında iptal edilir.
Mutlak yol verilmişse arama yapılmaz: alt program o yolda varsa çalışır, yoksa program yine iptal edilir.
Yeniden yükleme belleği (FIFO) — en sık gözden kaçan sınır
Harici bir alt programı çalıştırmak için kontrolün bir yeniden yükleme belleğine ihtiyacı vardır. Program buraya parça parça okunur, işlenir ve yerini bir sonraki parçaya bırakır.
- Varsayılan boyut: 30 KB.
- Bu boyut yalnızca makine üreticisi tarafından değiştirilebilir:
MD18360 MM_EXT_PROG_BUFFER_SIZE. - Paralel çalıştırılan harici alt programlar için ayrı bir yeniden yükleme belleği gerekir.
GOTOF, GOTOB, CASE, FOR, LOOP, WHILE, REPEAT, IF, ELSE, ENDIF gibi atlama komutları içeriyorsa, atlama hedeflerinin yeniden yükleme belleğinin içinde kalması zorunludur. Yani 30 KB’lık pencerenin dışına atlayan bir döngü harici programda çalışmaz. Kalıp geometrisi genelde düz koordinat satırlarından oluştuğu için bu sık sorun olmaz, ama döngü içeren bir alt programı EXTCALL ile çağırmaya kalkarsan ilk karşılaşacağın duvar budur.Reset, program sonu ve POWER ON’da ne olur?
- Reset ve POWER ON, harici alt program çağrılarını keser ve ilgili yükleme belleğini siler.
- Ancak “harici kaynaktan çalıştırma” için seçilmiş bir program, reset veya program sonundan sonra da seçili kalır. Davranış dahili seçilmiş programlardan farklı değildir — harici program belleği hâlâ erişilebilir olduğu sürece.
Pratik anlamı: Reset’e bastığında harici programın okuma sırası sıfırlanır. Kaldığın yere dönmek için blok arama yapman gerekir — ve bu, EXTCALL’lü programlarda kendine özgü bir konudur: gerçek kesme noktası ana programda değil, çağrılan alt programın içindedir.
Sık yapılan hatalar
USB bellekten seri kalıp işi çalıştırmak
Siemens bunu açıkça önermiyor. Bağlantı kesilirse işleme anında durur.
Ana program ve alt programları farklı klasörlere dağıtmak
Aynı klasörde değilse yol açıkça yazılmalıdır; yazılmazsa program EXTCALL satırında iptal olur.
Eski kopyayı silmemek
Arama ilk eşleşmede durur. SD42700 yolundaki eski dosya, kullanıcı belleğindeki güncel dosyanın önüne geçer.
Harici alt programa parametre geçirmeye çalışmak
Mümkün değildir. Değer taşımak için R parametresi veya GUD kullan.
Döngülü bir alt programı EXTCALL ile çağırmak
Atlama hedefleri yeniden yükleme belleğinin dışına çıkarsa çalışmaz.
828D’de CF kartındaki programı panelden düzenlemeye çalışmak
Harici bellekten çalıştırılan programlar panelden düzenlenemez. NCK belleğinden büyükse düzenleme harici olarak, örneğin PC’de yapılmalıdır.
Program adına _N_ öneki yazmak
EXTCALL’da program adı _N_ öneki olmadan yazılır.
Sık sorulan sorular
EXTCALL ile normal alt program çağırma arasındaki fark ne?
Normal alt program NCK belleğinde durur ve parametre alabilir. EXTCALL ile çağrılan program harici bellektedir, parça parça okunur ve parametre alamaz.
Uzantı yazmak zorunda mıyım?
Hayır, isteğe bağlıdır. "SHAFT", "SHAFT_SPF" ve "SHAFT.SPF" yazımlarının üçü de geçerlidir.
Yeniden yükleme belleğini büyütebilir miyim?
Kendin değiştiremezsin. MD18360 MM_EXT_PROG_BUFFER_SIZE yalnızca makine üreticisi tarafından değiştirilir.
Program çalışırken USB’yi çekersem ne olur?
İşleme anında durur ve takım veya iş parçası hasar görebilir. Siemens bu yüzden harici alt program çalıştırmak için USB bellek kullanılmamasını öneriyor.
Harici programda kaldığım yere nasıl dönerim?
Blok arama ile. Ancak dikkat: gerçek kesme noktası ana programda değil, çağrılan alt programın içindedir; arama işaretçisi iki seviyeyi de ister. En pratik yol hedef olarak kesme noktasını seçmektir.
Bu bilgiler 828D’de de geçerli mi?
EXTCALL sözdizimi, SD42700 ve parametre aktarılamaması her ikisinde de aynıdır. Fark harici bellek seçeneklerindedir: 840D sl’de yerel sürücü, 828D’de kullanıcı CF kartı kullanılır ve kısa yol adları buna göre değişir.
Kaynaklar
- Siemens AG — SINUMERIK 840D sl / 828D Job Planning, Programming Manual, 01/2015, doküman no 6FC5398-2BP40-5BA2: Bölüm 2.24.3.10 Harici alt program çalıştırma — 840D sl (s.190–192) ve 2.24.3.11 — 828D (s.193): sözdizimi, kısa yol adları, SD42700 $SC_EXT_PROG_PATH, arama sırası, yeniden yükleme belleği ve MD18360, atlama komutu kısıtı, ShopMill/ShopTurn notu, Reset/POWER ON davranışı ve USB uyarısı
- Siemens AG — SINUMERIK İleri Seviye CNC Kullanım & Programlama, 05/2010: Bölüm 2.8 Program veri aktarımı ve programların yönetilmesi (100 MB’lık geometri programı sorunu, harici bellek donanım seçenekleri), 2.10 Kalıp oluşturma için program yapısı (teknoloji/geometri ayrımı, CYCLE832 ve EXTCALL’lı ana program örneği, bütün programların aynı klasörde olması kuralı)

