Bilgisayar tabanlı servo motor kontrolü

Profesyonel ve hassas bir makina üreteceksen motion kart kullanmanızı tavsiye ederim.
iki veya 3 eksen için belki kendiniz interpolasyon yapabilirsiniz ancak 8 servo için senkronize(interpolatin)yapmak oldukca zor.
Eger amacınız düzdün bir daire çizmek degilde sadece belirli hedeflere göndermekse istediginiz kadar ekseni pc ile kontrol edebilirsiniz,Ancak motorlar arasında senkronizasyon gerekli ise dedigim gibi hazır kartlardan kullanmakta fayda var.
amacım son derece profesyonel ve hassas bir yazılım yapmak, ben servoları kontrol edebildiğim takdirde hassas olmamasının bir sebebi var mı ? şuan için sadece lineer interpolasyon yapabiliyorum ama benim gcode dosyam yuvarlak çizdiğinde bile g1 kodlarıyla çiziyor, dolayısıyla şuan lineer interpolasyonla yapamayacağım bir şey yok gibi (2 eksende) yanılıyor muyum ?
 
İki ay önce xp ile kontrol edilen bir cnc’nin panosunu revize ettik, üç servo sürücüye bağlı olan kartlar görseli aşağıda, programı c++ ile yazılmış, fikir verecekse programın exe sinide atabilirim. Kaynak kodları yok yalınız.
 

Ekli dosyalar

  • AE961E7A-E43E-41EC-A779-81013B6EDF48.jpeg
    AE961E7A-E43E-41EC-A779-81013B6EDF48.jpeg
    475.2 KB · Görüntüleme: 60
  • F04F17FA-5146-40FB-9799-FAB97A6F4B0F.jpeg
    F04F17FA-5146-40FB-9799-FAB97A6F4B0F.jpeg
    216.1 KB · Görüntüleme: 55
İki ay önce xp ile kontrol edilen bir cnc’nin panosunu revize ettik, üç servo sürücüye bağlı olan kartlar görseli aşağıda, programı c++ ile yazılmış, fikir verecekse programın exe sinide atabilirim. Kaynak kodları yok yalınız.
***@*** mail atarsanız çok sevinirim.
 
Moderatör tarafında düzenlendi:
amacım son derece profesyonel ve hassas bir yazılım yapmak, ben servoları kontrol edebildiğim takdirde hassas olmamasının bir sebebi var mı ? şuan için sadece lineer interpolasyon yapabiliyorum ama benim gcode dosyam yuvarlak çizdiğinde bile g1 kodlarıyla çiziyor, dolayısıyla şuan lineer interpolasyonla yapamayacağım bir şey yok gibi (2 eksende) yanılıyor muyum ?
G-code dosyasında adımları yeterince küçük atarsanız sadece g0 komutları ile de bir cnc yi çalıştırabilirsiniz.
G2-3 ile çizdiğiniz bir çember parçası tek satırla ifade edilebilirken sizin g0/1 destekleyen g-code dosyanız mega byte boyutunda olabilir. Sıkıntısı g-code'u kontrolcüye aktarmak için gereken ekstra zaman.

Asıl sorun veya benim anlamadığım kısım herhangi bir donanım kullanmaksızın farklı motorları, aynı seri ağ üzerinde, seri iletişim kullanıp nasıl senkronlayacağınız.

Hassas yazılımın istenen sonucu verebilmesi için mili hatta mikro saniye mertebelerinde motorların tam olarak istenen anda senkron bir şekilde adım atmaları gerekir.

Can bus yanlış hatırlamıyorsam 1Mhz lik bir iletişim hızına sahip.
Can frame 2 byte header + 8 byte'a kadarda komut destekli. Toplam 3 byte lık frame kullansanız, komutlar arası idle süresi vs. de hesaplarsanız saniyede kaç komut gönderebileceğiniz, cnc nin max hızı, eksenlerdeki min-max koordinat hataları gibi şeyleri hesaplayıp son derece profesyonel olup olmayacağına karar verebilirsiniz.

Şahsi fikrim özel bir kontrolcü donanım olmadanda çalışabileceği ama profesyonel olmayacağı şeklinde.
Olmazsa, yaptığınız çalışmanın motor kontrol, enterpolasyon vs. kısımlarını bir mikrodenetleyiciye taşımakta gayet mümkün. u-phyton destekli bare metal ortamlarda var.
 
Amacım reklam değil, fikir verme açısından paylaşıyorum.

 
G-code dosyasında adımları yeterince küçük atarsanız sadece g0 komutları ile de bir cnc yi çalıştırabilirsiniz.
G2-3 ile çizdiğiniz bir çember parçası tek satırla ifade edilebilirken sizin g0/1 destekleyen g-code dosyanız mega byte boyutunda olabilir. Sıkıntısı g-code'u kontrolcüye aktarmak için gereken ekstra zaman.

Asıl sorun veya benim anlamadığım kısım herhangi bir donanım kullanmaksızın farklı motorları, aynı seri ağ üzerinde, seri iletişim kullanıp nasıl senkronlayacağınız.

Hassas yazılımın istenen sonucu verebilmesi için mili hatta mikro saniye mertebelerinde motorların tam olarak istenen anda senkron bir şekilde adım atmaları gerekir.

Can bus yanlış hatırlamıyorsam 1Mhz lik bir iletişim hızına sahip.
Can frame 2 byte header + 8 byte'a kadarda komut destekli. Toplam 3 byte lık frame kullansanız, komutlar arası idle süresi vs. de hesaplarsanız saniyede kaç komut gönderebileceğiniz, cnc nin max hızı, eksenlerdeki min-max koordinat hataları gibi şeyleri hesaplayıp son derece profesyonel olup olmayacağına karar verebilirsiniz.

Şahsi fikrim özel bir kontrolcü donanım olmadanda çalışabileceği ama profesyonel olmayacağı şeklinde.
Olmazsa, yaptığınız çalışmanın motor kontrol, enterpolasyon vs. kısımlarını bir mikrodenetleyiciye taşımakta gayet mümkün. u-phyton destekli bare metal ortamlarda var.
İsmail bey tam olarak kafamı kurcalayan soruları sormuşsunuz, şuan bunlar üzerinde araştırma yapıyorum ama burda biraz sürücü devreye giriyor, sürücü ne kadar yetenekliyse o oranda işim kolaylaşır.
farklı motorları canopen üzerinden farklı node oluşturarak haberleştiricem ve zaten lineer interpolasyon kısmı hazır. Yani ben 1.motora hız, ivme ve pozisyon bilgisi girip 2.motora sadece pozisyon bilgisi girdikten sonra kendisi hız ve ivme değerlerini hesaplıyor. Yani iki motor aynı anda harekete başlayıp bitiriyor (threading yaparak aynı anda başlatıcam, teoride olur gibi ama pratikte denemediğim için bilemiyorum).
mikrodenetleyici için ise şuan bi şey diyemiyorum dediğim gibi sürücünün yetenekleri biraz devereye giriyor, ben 10000 satırlık bir gcodeu sürücüye gönderdiğimde sürücü 1.pozisyonlamayı bitirmeden 2. 3. ve 4-5.. pozisyonlara gidiyorsa sıkıntı olur, ama ilk pozisyonu bitirdikten sonra 2.yi 3.yü devreye alırsa herhangi bir problem oluşur mu ?
 
aslında cnc yazılımını baştan sona ben yapmak istiyorum, bunu da python kullanarak yapıcam (codesys bilmiyorum). Dolayısıyla herhangi bir lisans alıp kimseye bağlı kalmak istemiyorum. herhangi bir marka (mitsubishi, delta, panasonic vs vs ) servo takımları canopen haberleşerek sürmek istiyorum, bu noktada performans önemli olduğundan dolayı 8-10 servoyu aynı anda birbirinden bağımsız kontrol edip edemeyeceğimi bilmiyordum, siz de yapabileceğimi söylüyosunuz. Bu konuda aklıma şu geliyor, gördüğüm hemen hemen bütün cnc makineleri bir kontrolcüye bağlı yapılıyor ( genelde pci kart ya da fpga görüyorum). Mademki bu makineler doğrudan bilgisayara bağlı servolarla yapılabiliyor, neden herkes tonlarca para olan bu kartları alıyor? Yani bu konuda benim gözden kaçırdığım bir şey var mı ?
Linuxcnc sizin için çok uygun Python ile cnc kontrolü açık kapalı servo motor kontrolü vb. Sonsuz uygulama.
amacım son derece profesyonel ve hassas bir yazılım yapmak, ben servoları kontrol edebildiğim takdirde hassas olmamasının bir sebebi var mı ? şuan için sadece lineer interpolasyon yapabiliyorum ama benim gcode dosyam yuvarlak çizdiğinde bile g1 kodlarıyla çiziyor, dolayısıyla şuan lineer interpolasyonla yapamayacağım bir şey yok gibi (2 eksende) yanılıyor muyum ?
Yapmak istedikleriniz zaten yapılmış hem de ücretsiz. Projenin Adı: Linuxcnc
 
Linuxcnc sizin için çok uygun Python ile cnc kontrolü açık kapalı servo motor kontrolü vb. Sonsuz uygulama.

Yapmak istedikleriniz zaten yapılmış hem de ücretsiz. Projenin Adı: Linuxcnc
yapıldığının zaten farkındayım, fakat linuxcnc'yi istekleriniz doğrultusunda özelleştiremiyorsunuz. ben kendi projemi yapmak istiyorum.
 

Forum istatistikleri

Konular
130,124
Mesajlar
933,344
Kullanıcılar
453,198
Son üye
Emre0686

Yeni konular

Geri
Üst