27 Nisan 2010 Salı

B100D Deney programı, yeni DLL ve B değişkeni içeriği

İlk çıkarttığımız açık kaynak kodlu B100D_Ornek kartın yeteneklerini gösterme açısından güzel bir bir program olsa da üzerinde deneme yapmak için çok da uygun değil.

Yeni yazdığım B100D_Deney çok daha sade. Öte yandan, home stratejisi geliştirildi ve bazı ufak eklentiler le B100D.DLL de yenilendi. B100D_Ornek programını kullanmaya devam edecekseniz o programla verilen B100D.DLL ve B100D_Card dosyalarını saklayınız. Yapılan değişikliklerden dolayı yeni dll dosya B100D_Ornek ile calısmayacak.

B100D_Ornek programını, yeni sürümü çıkartılan dll dosyaya ile kullanmak istiyorsanız programda değişiklikler yapmanız gerekecek ve bunu sizlere bırakıyorum.

Yeni uygulamalarınızı B100D_Deney kodları üzerinde geliştiriniz.

B100D_Deney kodları: http://bikomak.com/B100-D/B100D_Deney.rar
Yeni programın unit1 içeriği http://bikomak.com/B100-D/Unit1.txt

Yeni tanımlanan B structure değişkeni aşağıdaki üye değişkenleri içerir.

Xpos:integer; // X eksen motorunun pozisyonu
YPos:integer; // Y eksen motorunun pozisyonu
ZPos:integer; // Z eksen motorunun pozisyonu
Gonderilen:integer; // Karta verilmiş görevlerin (komutların) sayısı
Bitenler:integer; // Kartın yerine getirdiği görevlerin (komutların) sayısı
Hata:Byte; // Kartın karşılaştığı hatanın kodu Not1
Status:Byte; // Kartın o anki durumuna ilişkin bilgiler Not2
HomeFlag:Byte; // Home işleminin durumu Not3
Imza:word; // Not4
AcilSp:boolean; // Acil Stop butonunun konumu
ExtSw1:boolean; // External 1 butonunun konumu
ExtSw2:boolean; // External 2 butonunun konumu

Örneğin X motorunun herhangi bir andaki pozisyonunu B.XPos olarak öğrenebilirsiniz.

Bu veriler, işletim sisteminin gecikmeli yapısından dolayı gerçek zamanlı değerleri içermez.

Not1: Hata

Bit 0: Home Sw (Home Sw nin aktif olması hata olarak değerlendirilir)
Bit 1: Acil Stop 
Bit 2: Dairesel veri hatası
Bit 3: Interrupt   (Kullanıcıyı ilgilendirmiyor)

Not2: Status

Bu değişken kullanıcıyı ilgilendirmemektedir. User interface prrogramında kullanmayınız. Debug amaçlıdır. DLL rutinleri kullanmaktadır.

Bit 7:  Problem tespit edildi
Bit 6:  Hareket var
Bıt 5:  Buffer dolu
Bıt 4:  Check Sum Hatası
Bit 3:  Ext2 sw
Bit 2:  Ext1 sw
Bit 1:  Acil sw
Bit 0:  Home sw

Not3: Home Flag

Bit 0=1 Home X yapılmış, 0 ise Home X işlemi yapılmalı
Bit 1=1 Home Y yapılmış, 0 ise Home Y işlemi yapılmalı
Bit 2=1 Home Z yapılmış, 0 ise Home Z işlemi yapılmalı

Not4: Imza

B100D kartına peşpeşe komutlar gönderildikten sonra imza komutu işletilirse, kart imza komutunu gördüğü anda daha önce verilmiş tüm görevlerin bitmesini bekler ve ardından imzayı tastikler. İmzanın tastiklenip tastiklenmediğini B.Imza içeriğini Imza komutu ile gönderdiğiniz imzanızı karşılaştırarak anlayabilirsiniz.

Bu özellik, kart ile ana programı senkronlamak için eklenmiştir. Kullanım şekli aşağıdaki gibidir.

Imza(1234); // en son gönderdiğimiz komutu imzalama işlemi
.......
.......
if B.Imza=1234 then // imzalanan komut işlenmişmi?
begin
end;

B100D Kartını tanıyalım.

B100D, mekatroniks uygulamaları için geliştirilmiş hareket denetleme kartıdır. Usb kablo ile bilgisayara bağlanır ve enerjisini PC den alır. Motor sürücülerinize Clk ve Dir sinyalleri ile hükmeder.

Görsel dillerle yazılım geliştirme imkanı sunar.

Uygulama alanları: 2.5 ve 3 eksen cnc makineler, Robot kolu projeleri, Deney seti


B100D, Usb konnektörü haricinde 16 adet pine sahiptir. Kartin temel özellikleri, 3 Eksen için clk dir çıkışları, spindle motor için pwm hız kontrol çıkışı, home switch, acil stop ve 2 adet harici buton girişi, max 40Khz adımlama frekansı, dairesel ve doğrusal interpolasyon, programlanabilir hız profili, programlanabilir clk ve dir polaritesi, usb 2.0 interface. Açık kaynak yazılım örnekleri.

Bu devreyi B100D ile gerçekleştireceğiniz projelerde spindle motor devir sayısını yazılımla kontrol etmek için kullanabilirsiniz.

Blog Arşivi

Bu karta sahip olmak isterminiz

Bu Blogda Ara