2008-10-22 28 views
8

Bir cihazı RS-232 portu üzerinden kontrol eden bağımsız bir uygulama yazdım ve bazı müşteriler cihazı LabVIEW ile kullanmak isteyebiliyorlar. LabVIEW'ı kullanmayı öğrendiğimde nereden başlayacağınızı anlatan bazı konular gördüm, ama merak ediyorum ki kimse herhangi bir eklenti/sürücü (bu doğru kelime mi?) Yazma deneyimi var mı ve belki de bana doğru yönde işaret ediyor. yerine seri port haberleşme şeyler sözdizimi ve protokol bilmek zorunda -LabVIEW "sürücü" - Başlarken

mevcut uygulama insanların üst düzey kavramları cihazı kontrol etmenizi sağlar GUI. Kullanıcıların sadece bir şeyi LabVIEW'a bağlayabilmeleri için de bunu soyutlamak istiyorum ve sanırım cihazın manipüle edilmesine ve istemcilere veri sağlamasına olanak tanıyan bazı fiil ve yöntemleri ortaya koyar.

Ben LabVIEW bir seri port arabirimi olduğunu düşünüyorum, ama bu cihazı kullanan kişi aygıtla iletişim kurmak için kod (ayrıştırıcıları vb) yazmak zorunda kalmak istemiyoruz eminim.

cevap

3

Yapmaya çalıştığınız şey için iki seçenek vardır.

  • bir DLL oluşturma o cihazınızdan yapabilirsiniz call from LabVIEW kullanıcıları.

  • Uygulamanızı yeniden LabVIEW olarak yazın.

sizin için en iyi çözüm olacağı potansiyel müşteri olası en büyük sayı, opsiyon 1. ulaşmak için. Müşterileriniz özellikle bir LabVIEW sürücüsü soruyorsa, # 2 seçeneği muhtemelen bu belirli müşteri için en az güçlük olacaktır. Bunun nedeni, LabVIEW'ın bir niş dilidir (otomasyon ve veri toplama için) ve birçok LabVIEW geliştiricisi için bildiği tek dildir (ya da iyi bildikleri tek şey).

2

LabVIEW programcıları için en iyi kaynak National Instruments Knowledge Base'dur. LabVIEW yalnızca küçük bir segmentte popüler olduğu için, orada başka bir çok web kaynağı yok. Ben LabVIEW'deki programlanmış zaman geri okumak

Bir kitap LabVIEW Power Programming oldu. Çok iyi bir örnek kodu vardır ve doğru şekilde hatırlarsam C++ ile yazılan 3. parti DLL'leri nasıl kullanacağınızı gösterir. Ne de olsa , bu DLL'leri nasıl yazacağınızı göstermiyor.

+0

Evet - bulduğum sorun budur. Bu sitede daha fazla bilgi aramaya çalışacağım. – Tim

3

LabVIEW küçük sorunlar ile RS232 iletişimini idare edebilir - sadece müşterinin, aygıtın kullandığı komutların ve sözdiziminin bir listesini ve temel işlevselliği olan küçük bir çerçeve veya örnek VI ile sağlamanız gerekir.

Kullanıcının kendi komutlarını ayrıştırmasını gerektirmeyen daha sağlam bir sürücü sağlamak istediğiniz için sizi alkışlıyorum; Çoğu satıcı tarafından genellikle LabVIEW 'sürücüsü' olarak adlandırılan şey, basit bir GUI'de bulunan birkaç komuttan ('init', 'read') biraz daha fazladır.

Başlamak için

sadece kendi başlamak için yeterli onlara, sizin komple uygulama yeniden gerekmez =), muhtemelen VISA in LabVIEW kullanmak isteyecektir. Eğer LabVIEW'deki programlamak öğrenme içine biraz zaman yatırım yapmaya hazırsanız

+0

teşekkürler - rs232 desteğine sahip LV'yi anlıyorum ve söylediğin gibi, cihazı kullanmayı çok basit istiyorum. (Ben cihaz mnfgr değilim - sadece (küçük) ihtiyacı olan bir geliştirici) – Tim

8

bir enstrüman sürücü geliştirmek için nasıl ilgili bilgi here ve here bulunabilir.Temel olarak, cihazınız tarafından desteklenen çeşitli işlemleri gerçekleştiren bir dizi VI (LabVIEW kodu birimi) sağlamanız gerekir. LabVIEW programcıları VISA kaynağını (yani seri port) ve VI'larınızın sağlaması gereken giriş/çıkış terminallerini kullanarak bunların bir dizisini zincirleyecektir. Örnek için ikinci bağlantıya bakın.

Bunu düzgün bir şekilde yapmayı öğrenmek istemiyorsanız - ikinci postanız bunu önermez - sonra gerekli işlevleri ortaya çıkaran bir DLL oluşturun veya sürücüyü sizin için yazmak üzere bir LabVIEW programlayıcısını çalıştırın. . Protokolünüzün yeterli dokümantasyonunu sağlayabiliyorsanız ve bu durum çok karmaşık değilse, o zaman onları öğleden sonra almalısınız. LabVIEW'a ilgi duyan kullanıcılarınız varsa, bunlardan biri uygun bir indirim veya teşvik için sizin için işi yapmaktan memnun olabilir. LabVIEW'da yetkin olan herkes için gerçekten zor değil ve zaten ellerinde olanlar var. cihazınızda ve ne yaptığını anlayın. Öncelikle, kendi yaptığınız işin kalitesini değerlendirecek bir konumda olmayacağınız için, sonucu önce diğer LabVIEW kullanıcılarınızla beta testi yapmak isteyebilirsiniz.

DLL yoluna giderseniz, gereksinim duyduğunuz parametrelerin LabVIEW veri türleriyle uyumlu olduğunu kontrol etmeniz gerekir. Ben bir C/C++ programcısı değilim, bu yüzden bunun ne anlama geldiğini ayrıntılı olarak söyleyemiyorum ama this yardımcı olabilir (Rolf Kalbermatter, harici kod ile LabVIEW arabiriminde guru).

Eğer bir LabVIEW programcısı bulmak istiyorsanız, o zaman Ulusal Enstrümanlar sizi bir müttefiklik şeması aracılığıyla birine yönlendirebilir.

+0

Teşekkürler. Buna ulaşmak için zamanımız olduğunda kesinlikle doğru yolu yapacağım. Bu çalışmayı yapmanın oldukça kolay olacağını düşündüm. – Tim

0

Müşteriniz LabVIEW ile kodunuzu kullanmak istediği (LabVIEW için yazma dll LAVA forumu yayına bağlantı eklemek Düzenlendi). Bu, LabVIEW kodunu yazmanız gerektiği anlamına gelmez.

LabVIEW DLL ile etkileşebilir. Buradaki hile, daha karmaşık veri yapılarından kaçınmaktır. Temel veri türlerinin değerini geçmeye devam ederseniz, sorun yaşamayacaksınız. LabVIEW, dizilerle ve DLL'lerle de çalışabilir. Yapılara işaretçiler veya işaretçiler için göstericilerden kaçının.

LabVIEW ayrıca .NET derlemeleriyle de etkileşime girebilir. TCP/IP üzerinden istemci/sunucu modelini kullanmanızın engellenmesi gereken bir şey de yoktur.