NI Ürünleri İle İlgili Tartışmalar

cancel
Showing results for 
Search instead for 
Did you mean: 

Stepper Motor

Solved!
Go to solution

Merhaba arkadaşlar,

Elimde thorlabs'a ait BSC201 1Channel stepper motor var. Bu cihazı http://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=APT linkinden idirebileceğiniz program ile kontrol edebiliyorum. Ancak yapmak istediğim işlemlerde bu prgram yetersiz kaldığı için üretici firmanın tarifi üzerine labview programını yazdım. Fakat stepper motor vi kontrolü activex ile olduğundan kontrolde sınırlamalar olmakta. Örneğin girilecek değer front diagramda bulunan MG17Motor üzerindeki "enter position" kısmından giriş yapılabiliyor. Ancak ben bu değeri controller ekleyerek yapmak istiyorum. Sanırım bu durum invoke node ile olacak ama ben yapamadım. Bu sorun karşısında bilgisi olan arkadaşlardan yardımlarını bekliyorum. Gerekli dosyalar ektedir.

 

Teşekkürler... 

0 Kudos
Message 1 of 8
(6,967 Views)
Solution
Accepted by topic author erdmirci

Merhabalar;

 

 

Maalesef ilgili firmaya özel ActiveX denetimleri elimizde olmadan programınıza yardımcı olabilmek pek mümkün değil.

Uygulamanızdaki pfPosition indikatörünün yanısısını (lokal değişkeni) kullanarak aynı isimdeki metoda (invoke node) yazmaya çalışıyor gibi gözüküyorsunuz. Bu lokal değişkenin yerine normal bir kontrol kullanmayı deneyebilir misiniz ? 

 

Üretici firmanın web sitesinde ilgili step sürücünün kontrolü için seri iletişim komutları da mevcut. Belki bunların kullanılması ile de birşeyler yapılabilir ancak ActiveX denetimlerinden daha kolay olmayabilir.

 

Kolaylıklar dilerim.

 

(Bay) Candan CANER
National Instruments Türkiye
0 Kudos
Message 2 of 8
(6,960 Views)

Yardımınız için teşekkürler Candan Bey,üretici firmadan activex ile alakalı destek istedim ancak pek yardımcı olamadılar. pfP position lokal variable kısmını loop dışında controller ekledim ancak yine kontrol edemedim. Sanırım bu şekilde çözüm olmayacak. Peki front panelde MG17Motor olarak çıkan kısım üzerinde "settings" menüsünde bazı değişiklikler yaptıktan sonra programı kapat aç yaptığımda bu değişiklikler kayboluyor, yani data operations menüsünde "Make Current Value Default" yapılamıyor. Bunun hakkında bilginiz varsa paylaşırsanız seviniriz. 

0 Kudos
Message 3 of 8
(6,957 Views)

Kontrolü döngü içersine yerleştirmeniz daha doğru olacak. Döngü dışındaki kontroller sadece 1 defaya mahsus okunurlar. 

Acaba "GetPosition" metodunun çıkışındaki pfPosition indikatöründe pozisyon geri beslemesini alabiliyor musunuz ? Yani ActiveX denetimleri çalışıyor mu çalışmıyor mu bundan emin misiniz acaba ? Error Out çıkışında bir hata olup olmadığı da yardımcı olabilir.

 

ActiveX denetimlerinin (sizin örneğinizde MG17Motor görseli sanırsam, ancak bu görsel aynı ActiveX denetimi bizlerde bulunmadığı için gözükmemektedir) default değerlerini LabVIEW'den değiştirmek pek mümkün gözükmüyor. En azından "Make Current Value Default" seçeneği diğer ActiveX denetimlerinde de kullanılabilir değil. Belki ActiveX denetimleri bir şekilde offline olarak açılıp farklı kaydet yapılması denenebilinir ancak elinizdeki denetimler için bunun nasıl yapılabileceğini bilemiyorum.

 

Kolaylıklar dilerim.

 

(Bay) Candan CANER
National Instruments Türkiye
0 Kudos
Message 4 of 8
(6,950 Views)

pfPosition indikatöründe pozisyon geri beslemesi alabiliyorum yani activeX çalışıyor. Bendeki programı http://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=APT linkinden indirebilirsiniz. Bu arada invoke node özellğinden step kısmını halletim ancak hala jog butonuna basmak zorundayım. Yine set jog ile alakalı invoke node kullanmam gerekiyor sanırım. Fakat invoke node tam hakim olamadığım için bağlantıyı düzgün bir şekilde yapamıyor olabilirim. 

 

Teşekkürler,

Erdem.

0 Kudos
Message 5 of 8
(6,948 Views)

Aslında Invoke Node'lar ile ilgili fazla birşey pek yok. Kullanımları oldukça sadedir. Kanımca sizi zorlayan konu, hangi ActiveX denetiminin nasıl kullanılacağıdır. 

 

Belirttiğiniz adresten kurulum dosyasını indirince tüm ActiveX denetimleri ortaya çıkıyor. Ancak ActiveX aktivasyonunu gerçekleştiremediğimiz için Front Panel'deki görseller açılmıyor. Yine de kurulum ile birlikte gelen APTServer.chm yardım dosyasında her bir ActiveX denetimi güzel bir şekilde açıklanmış. Bu yardım dosyasındaki MoveJog komutunu (metodu) kullanarak basit bir kod parçası oluşturdum, ekte VI Snippet'ini bulabilirsiniz. Tabii bu kod parçasını mevcut VI'ınızın içersine yerleştirmek ve Invoke Node'lara Motor referansını bağlamak size kalıyor 🙂

 

Deneyip sonucu paylaşırsanız sevinirim.

 

Kolaylıklar dilerim.

 

(Bay) Candan CANER
National Instruments Türkiye
0 Kudos
Message 6 of 8
(6,942 Views)

Invoke Node' lar gerçekten kolaymış ancak hangisini kullanacağımızı seçmek biraz uğraştırıyor. Ben buradaki sorunu MoveAbsoluteRot ile çözdüm,yardımcı olduğunuz için çok teşekkür ederim Candan Bey. MOudan bağımsız olarak bir sorum daha olacaktı, bu stepper motoru kontrol için küçük bir sequence yazdım ancak labview tecrübem çok yeterince olmadığı için tam istedğim gibi çalıştıramadım. Sorun şu ki, while loop'un içinde 1 den 5 e kadar olan bir döngü ve ardından 2,-2,2 ve 0 ile sonuçlanan başka bir döngü bulunmaktadır. Bu vi çalıştırdığımda ilk olarak 1-5 arası döngü oluyor ardından ikinci döngü başlıyor. Ancak benim amacım ilk olarak 1 olsun sonra ikinci döngü (2den -2 sonra 2 ve 0 ile sonuçlanan) işlesin, daha sonra 1 olan sonuç 2 olsun ve yine ikinci döngü işlesin vs.. Bu durum ilk döngünün 5 olması ile sonbulduktan sonra kapanması. Her nekadar karmaşık gibi görünsede eminim kolay bir yolu vardır. Yazmış olduğum vi ekte bulunmaktadır, bun problemde de çözümünüz varsa sanırım bu başlığı kapatabiliriz :).

Teşekkür ederim,

Erdem.

0 Kudos
Message 7 of 8
(6,931 Views)

Açıkçası yapmak istediğinizi tam olarak anlayabildiğimi söyleyemeyeceğim.

Belirtmiş olduğunuz adımları ve kodu incelediğimde zannedersem iç içe iki adet döngü kullanılması sorununuzu çözecekmiş gibi duruyor. Diğer yandan State Machine uyarlaması da derli toplu bir kod ortaya çıkarabilir.

Koddaki döngülerin durma koşulu ne ile bağlıdır acaba ?

Diğer bir soru ise bahsi geçen 0'dan 5'e ve -2'den 2'ye kadar olan adım bilgileri nerede tanımlanacaktır ?

 

Eğer program kodu yazarak bu problemi daha kolay çözebiliyorsanız, küçük bir tiyo paylaşabilirim. Algoritmanızı "Formula Node" ya da "MathScript Node" içersinde ilgili program kodlamasıyla da yazarak LabVIEW'e taşıyabilirisiniz.

 

Kolaylıklar dilerim.

 

(Bay) Candan CANER
National Instruments Türkiye
0 Kudos
Message 8 of 8
(6,923 Views)