CPU otomatik kontrol sistemleri ve endüstriyel güvenlik. LabView'ı tanıma Laboratuvar görünümü

Merhaba meslektaşlarım!

Nispeten kısa bir yazıda LabVIEW programlama dilinden bahsetmek istiyorum. Oldukça ilgi çekici olan bu ürün ne yazık ki pek fazla rağbet görmüyor ve ben de bu boşluğu bir nebze olsun doldurmak isterim.

LabVIEW nedir?

LabVIEW, National Instruments'ın ana ürünlerinden biridir. Öncelikle şunu belirtelim ki LabVIEW, şu anlama gelen bir kısaltmadır: Laboratuvar hitabet V sanal BEN enstrümantasyon e mühendislik K orkbench. Zaten isminde laboratuvar araştırmalarına, ölçümlere ve veri toplamaya odaklanıldığı görülüyor. Aslında LabVIEW'da bir SCADA sistemi oluşturmak, "geleneksel" geliştirme araçlarını kullanmaktan biraz daha kolaydır. Bu yazıda LabVIEW'in olası kapsamının biraz daha geniş olduğunu göstermek istiyorum. Bu temelde farklı bir programlama dilidir veya isterseniz tam bir programlama "felsefesidir". Sizi biraz farklı düşünmeye zorlayan ve bazen geliştiriciye kesinlikle harika fırsatlar sunan işlevsel bir dil. LabVIEW bir programlama dili midir? Bu tartışmalı bir konu - burada örneğin ANSI C gibi bir standart yok. Dar geliştirici çevrelerinde "G" dilinde yazdığımızı söylüyoruz. Resmi olarak böyle bir dil mevcut değil, ancak bu geliştirme aracının güzelliği de budur: versiyondan versiyona, dile giderek daha fazla yeni yapı tanıtılmaktadır. C'nin bir sonraki reenkarnasyonunun örneğin for döngüsü için yeni bir yapıya sahip olacağını hayal etmek zor. Ve LabVIEW'da bu oldukça mümkün.
Ancak LabVIEW'in TIOBE programlama dili derecelendirmesinde yer aldığını ve şu anda Prolog ile Fortran arasında bir yerde otuzuncu sırada yer aldığını belirtmek gerekir.

NI LabVIEW - yaratılışın tarihi

National Instruments, 1976 yılında Jeff Kodosky, James Truchard ve Bill Nowlin adlı üç kurucu tarafından Austin, Teksas'ta kuruldu. Şirketin ana uzmanlığı şuydu: aletlerÖlçümler ve üretim otomasyonu için.
LabVIEW'in ilk versiyonu şirketin kurulmasından on yıl sonra, 1986'da piyasaya sürüldü. elma Mac'i). NI mühendisleri "geleneksel" programlama dillerine meydan okumaya karar verdi ve tamamen grafiksel bir geliştirme ortamı yarattı. Jeff, grafik yaklaşımın ana ideoloğu oldu. Her yıl yeni sürümler yayınlandı. İlk çapraz platform sürümü (Windows dahil), 1993'te piyasaya sürülen sürüm 3'tü. Mevcut sürüm, geçen yıl piyasaya sürülen 8.6'dır.

Şirketin merkez ofisi bugün hala Austin'de bulunuyor. Bugün şirketin neredeyse dört bin çalışanı var ve neredeyse kırk ülkede ofisleri var (Rusya'da da bir ofis var)

LabVIEW'a girişimim

LabVIEW ile tanışmam neredeyse on yıl önce gerçekleşti. Yeni bir sözleşme kapsamında çalışmaya başladım ve o zamanki patronum bana üzerinde "şimdi bunun üzerinde çalışacaksın" yazan bir yığın CD verdi. LabVIEW'i kurdum (beşinci versiyondu) ve bir süre oynadıktan sonra BUNA ciddi bir şey yapılamayacağını söyledim, bunu Delphi'de “eski moda şekilde” yapmayı tercih ederim... ben - sadece denemedin. Bir veya iki hafta çalışın. Bir süre sonra artık LabVIEW dışında hiçbir şeye yazı yazamayacağımı anlayacağım. "İlk görüşte aşk" olmasa da bu dile aşık oldum.

Genel olarak konuşursak, grafiksel ve metinsel programlama dillerini karşılaştırmak oldukça zordur. Bu belki de “PC” ile “MAC” veya “Windows” ile “Linux” gibi bir karşılaştırmadır - istediğiniz kadar tartışabilirsiniz, ancak argüman kesinlikle anlamsızdır - her sistemin var olma hakkı vardır ve her birinin hem destekçileri hem de rakipleri, Ayrıca her ürünün kendine ait bir nişi vardır. LabVIEW çok esnek olmasına rağmen sadece bir araçtır.

Peki LabVIEW nedir?

LabVIEW platformlar arasıdır grafik ortamı uygulama geliştirme. LabVIEW prensip olarak evrensel bir programlama dilidir. Bu ürün bazen National Instruments donanımıyla yakından ilişkili olsa da yine de belirli bir makineyle ilişkili değildir. Windows, Linux, MacOS için versiyonları var. Kaynak metinler taşınabilir ve programlar tüm sistemlerde aynı görünecektir. LabVIEW tarafından oluşturulan kod aynı zamanda çalıştırılabilir. Windows Mobil veya PalmOS (adil olmak gerekirse, PalmOS desteğinin durdurulduğuna dikkat edilmelidir, ancak burada Palm'ın kendisi daha çok suçludur). Bu dil oluşturmak için başarıyla kullanılabilir. büyük sistemler, metinleri, görüntüleri işlemek ve veritabanlarıyla çalışmak için.

LabVIEW çok üst düzey bir dildir. Ancak sizi LabVIEW programlarına “düşük seviyeli” modülleri dahil etmekten alıkoyan hiçbir şey yoktur. Çevirici eklentilerini kullanmak isteseniz bile bu da mümkündür; yalnızca bir DLL oluşturmanız ve koda çağrılar eklemeniz yeterlidir. Öte yandan, yüksek seviyeli bir dil, verilerle çok önemsiz olmayan işlemleri kolayca gerçekleştirmenize olanak tanır; normal bir dilde birçok satır (onlarca satır olmasa da) kod alabilir. Ancak adil olmak gerekirse, düşük seviyeli dillerin bazı işlemlerinin (örneğin, işaretçilerle çalışmak) "yüksek seviyeli" doğası nedeniyle LabVIEW'da uygulanmasının o kadar kolay olmadığını belirtmek gerekir. Tabii ki LabVIEW dili “geleneksel” dillerde benzerleri olan temel kontrol yapılarını içerir:

  • değişkenler (yerel veya küresel)
  • dallanma (vaka yapısı)
  • For – tamamlanma kontrolü olan ve olmayan döngüler.
  • While döngüleri
  • Operasyonların gruplandırılması.

LabVIEW - program ve dil yetenekleri

LabVIEW'da geliştirilmekte olan yazılım modüllerine “Sanal Araçlar” veya kısaca VI adı verilmektedir. *.vi uzantılı dosyalara kaydedilirler. VI'lar LabVIEW programını oluşturan yapı taşlarıdır. Her LabVIEW programı en az bir VI içerir. C dili açısından, oldukça güvenli bir şekilde bir fonksiyonla bir benzetme yapabilirsiniz; LabVIEW'deki tek fark, bir fonksiyonun tek bir dosyada bulunmasıdır (aynı zamanda araç kütüphaneleri de oluşturabilirsiniz). Bir VI'nın diğer bir VI'dan çağrılabileceğini söylemeye gerek yok. Prensip olarak her VI iki bölümden oluşur: Blok Şema ve Ön Panel. Blok diyagram bir program kodudur (veya daha doğrusu görsel bir koddur) grafik gösterimi kodu) ve Ön Panel arayüzdür. İşte klasik bir Merhaba Dünya örneği şöyle görünür:

LabVIEW, veri akışı paradigmasına dayanmaktadır. Yukarıdaki örnekte sabit ve gösterge terminali birbirine bir hat ile bağlanmıştır. Bu hatta Tel denir. Buna “tel” diyebilirsiniz. Teller verileri bir elemandan diğerine iletir. Bütün bu kavrama Veri Akışı denir. Blok Diyagramın özü düğümlerdir, bazı düğümlerin çıktıları diğer düğümlerin girişlerine bağlanır. Düğüm yalnızca işlem için gerekli tüm veriler geldiğinde yürütmeye başlayacaktır. Yukarıdaki diyagramda iki düğüm vardır. Bunlardan biri sabittir. Bu düğüm bağımsızdır; hemen çalışmaya başlar. İkinci düğüm bir göstergedir. Sabitin ilettiği verileri gösterecektir (ancak hemen değil, ancak veriler sabitten gelir gelmez).

İşte biraz daha karmaşık bir örnek: iki sayıyı toplamak ve çarpmak. Geleneksel dillerde şöyle bir şey yazardık:

Int a, b, toplam, mul;
//...
toplam = a + b;
mül = a * b;

LabVIEW'da şöyle görünüyor:

Toplama ve çarpmanın otomatik olarak paralel olarak gerçekleştirildiğini unutmayın. Çift işlemcili bir makinede her iki işlemci de otomatik olarak kullanılacaktır.

Ve bu while/gibi görünüyor döngüler için ve if/then/else yapısı:

Daha önce de belirtildiği gibi, tüm öğeler paralel olarak yürütülecektir. Bir görevi birden çok işlemcide paralel olarak yürütülebilecek birden çok iş parçacığına nasıl paralelleştireceğinizi düşünmenize gerek yok. İÇİNDE en son sürümler Belirli bir while döngüsünün hangi işlemcide yürütülmesi gerektiğini açıkça belirleyebilirsiniz. Artık metin dilleri için çok işlemcili sistemlere kolayca destek sağlamanıza olanak tanıyan eklentiler var, ancak bu muhtemelen LabVIEW'deki kadar kolay hiçbir yerde uygulanmıyor. (eh, yine de metin dilleriyle karşılaştırmaya girdim). Zaten çoklu iş parçacıklarından bahsediyorsak, geliştiricinin iş parçacıklarını senkronize etmek için geniş bir araç yelpazesine sahip olduğunu da not etmeliyiz - semaforlar, kuyruklar, buluşma vb.

LabVIEW, kullanıcı arayüzleri oluşturmaya yönelik zengin öğe kümeleri içerir. Arayüzler Delphi'de hızlı bir şekilde oluşturuldu, ancak LabVIEW'da bu süreç daha da hızlı gerçekleşiyor.

LabVIEW'in standart teslimatı ayrıca ini dosyalarıyla çalışmaya yönelik blokları, kayıt defterini, ikili dosyalar ve test dosyalarıyla çalışmaya yönelik işlevleri, matematiksel işlevleri, çizim için güçlü araçları (ve bu olmadan laboratuvarda nerede olurdunuz) içerir. Bahsedilen DLL'leri çağırma yeteneği LabVIEW, ActiveX bileşenleri ve .net ile çalışmanıza olanak tanır. Sekizinci versiyondan itibaren LabVIEW'a sınıf desteği eklendi; dil nesne yönelimli hale geldi. Uygulanan desteğin eksiksiz olduğu söylenemez, ancak nesne yönelimli dillerin temel özellikleri - kalıtım ve polimorfizm - mevcuttur. Ayrıca dilin işlevselliği, görüntü işleme ve bilgisayarlı görme ve diğerleri için örneğin NI Vision Toolkit gibi ek modüllerle genişletilebilir. Uygulama Oluşturucu modülünü kullanarak yürütülebilir bir exe dosyası oluşturabilirsiniz. İnternet Araç Setini kullanarak çalışabilirsiniz ftp sunucuları, Veritabanı Bağlantısı Araç Takımı'nı kullanarak - veritabanları vb. ile

Grafik kodun okunmasının zor olduğu fikrini sıklıkla duyabilirsiniz. Gerçekten de alışkanlıktan dolayı ikonların ve şeflerin bolluğu biraz şok edici. Acemi geliştiriciler ayrıca "sayfa" programları ve "spagetti" programları da oluştururlar. Ancak deneyimli bir LabVIEW geliştiricisi, program yüzlerce modülden oluşsa bile asla ekran boyutundan daha büyük diyagramlar oluşturmayacaktır. İyi tasarlanmış bir program, zaten grafiksel bir gösterime dayalı olduğundan etkili bir şekilde "kendi kendini belgelemektedir".

Yeterli uzun zamandır LabVIEW'da programlama yaparken LabVIEW'in bir yorumlayıcı olduğundan ve blok diyagramların çekirdek tarafından sürekli olarak yorumlandığından tamamen emindim. NI mühendisleriyle konuştuktan sonra durumun böyle olmadığı ortaya çıktı. LabVIEW bir derleyicidir (ancak kod oluşturma kalitesi arzu edilenden çok uzaktır). Ancak derleme "anında" gerçekleşir - geliştirme sırasında herhangi bir zamanda program her zaman çalışmaya hazırdır. LabVIEW kodu ayrıca LabVIEW kurulu olmayan bir bilgisayarda çalıştırılabilen tam teşekküllü bir yürütülebilir dosya halinde derlenebilir (LabVIEW Çalışma Zamanı gerektirmesine rağmen). Ayrıca bir kurulum paketi de oluşturabilirsiniz. üçüncü taraf yardımcı programları InstallShield türü gerekli değildir.

Paketin yeteneklerinin daha ayrıntılı ve daha ayrıntılı bir açıklaması bu makalenin kapsamı dışındadır, ancak sadece denemenizi öneririm (bağlantılar aşağıda verilmiştir). Büyüklerin dediği gibi "... tek yol yeni bir programlama diline hakim olun ve bu dilde programlar yazın.” Deneyimli programcılar kazandıkları bilgileri kendi ihtiyaçlarına göre değerlendirebileceklerdir.

Merhaba meslektaşlarım!

Nispeten kısa bir yazıda LabVIEW programlama dilinden bahsetmek istiyorum. Oldukça ilgi çekici olan bu ürün ne yazık ki pek fazla rağbet görmüyor ve ben de bu boşluğu bir nebze olsun doldurmak isterim.

LabVIEW nedir?

LabVIEW, National Instruments'ın ana ürünlerinden biridir. Öncelikle şunu belirtelim ki LabVIEW, şu anlama gelen bir kısaltmadır: Laboratuvar hitabet V sanal BEN enstrümantasyon e mühendislik K orkbench. Zaten isminde laboratuvar araştırmalarına, ölçümlere ve veri toplamaya odaklanıldığı görülüyor. Aslında LabVIEW'da bir SCADA sistemi oluşturmak, "geleneksel" geliştirme araçlarını kullanmaktan biraz daha kolaydır. Bu yazıda LabVIEW'in olası kapsamının biraz daha geniş olduğunu göstermek istiyorum. Bu temelde farklı bir programlama dilidir veya isterseniz tam bir programlama "felsefesidir". Sizi biraz farklı düşünmeye zorlayan ve bazen geliştiriciye kesinlikle harika fırsatlar sunan işlevsel bir dil. LabVIEW bir programlama dili midir? Bu tartışmalı bir konu - burada örneğin ANSI C gibi bir standart yok. Dar geliştirici çevrelerinde "G" dilinde yazdığımızı söylüyoruz. Resmi olarak böyle bir dil mevcut değil, ancak bu geliştirme aracının güzelliği de budur: versiyondan versiyona, dile giderek daha fazla yeni yapı tanıtılmaktadır. C'nin bir sonraki reenkarnasyonunun örneğin for döngüsü için yeni bir yapıya sahip olacağını hayal etmek zor. Ve LabVIEW'da bu oldukça mümkün.
Ancak LabVIEW'in TIOBE programlama dili derecelendirmesinde yer aldığını ve şu anda Prolog ile Fortran arasında bir yerde otuzuncu sırada yer aldığını belirtmek gerekir.

NI LabVIEW - yaratılışın tarihi

National Instruments, 1976 yılında Jeff Kodosky, James Truchard ve Bill Nowlin adlı üç kurucu tarafından Austin, Teksas'ta kuruldu. Şirketin ana uzmanlığı ölçüm araçları ve üretim otomasyonuydu.
LabVIEW'ın ilk sürümü, şirketin kurulmasından on yıl sonra, 1986'da yayınlandı (Apple Mac için bir sürümdü). NI mühendisleri "geleneksel" programlama dillerine meydan okumaya karar verdi ve tamamen grafiksel bir geliştirme ortamı yarattı. Jeff, grafik yaklaşımın ana ideoloğu oldu. Her yıl yeni sürümler yayınlandı. İlk çapraz platform sürümü (Windows dahil), 1993'te piyasaya sürülen sürüm 3'tü. Mevcut sürüm, geçen yıl piyasaya sürülen 8.6'dır.

Şirketin merkez ofisi bugün hala Austin'de bulunuyor. Bugün şirketin neredeyse dört bin çalışanı var ve neredeyse kırk ülkede ofisleri var (Rusya'da da bir ofis var)

LabVIEW'a girişimim

LabVIEW ile tanışmam neredeyse on yıl önce gerçekleşti. Yeni bir sözleşme kapsamında çalışmaya başladım ve o zamanki patronum bana üzerinde "şimdi bunun üzerinde çalışacaksın" yazan bir yığın CD verdi. LabVIEW'i kurdum (beşinci versiyondu) ve bir süre oynadıktan sonra BUNA ciddi bir şey yapılamayacağını söyledim, bunu Delphi'de “eski moda şekilde” yapmayı tercih ederim... ben - sadece denemedin. Bir veya iki hafta çalışın. Bir süre sonra artık LabVIEW dışında hiçbir şeye yazı yazamayacağımı anlayacağım. "İlk görüşte aşk" olmasa da bu dile aşık oldum.

Genel olarak konuşursak, grafiksel ve metinsel programlama dillerini karşılaştırmak oldukça zordur. Bu belki de “PC” ile “MAC” veya “Windows” ile “Linux” gibi bir karşılaştırmadır - istediğiniz kadar tartışabilirsiniz, ancak argüman kesinlikle anlamsızdır - her sistemin var olma hakkı vardır ve her birinin hem destekçileri hem de rakipleri, Ayrıca her ürünün kendine ait bir nişi vardır. LabVIEW çok esnek olmasına rağmen sadece bir araçtır.

Peki LabVIEW nedir?

LabVIEW, platformlar arası bir grafik uygulama geliştirme ortamıdır. LabVIEW prensipte evrensel bir programlama dilidir. Bu ürün bazen National Instruments donanımıyla yakından ilişkili olsa da yine de belirli bir makineyle ilişkili değildir. Windows, Linux, MacOS için versiyonları var. Kaynak kodu taşınabilirdir ve programlar tüm sistemlerde aynı görünecektir. LabVIEW tarafından oluşturulan kod Windows Mobile veya PalmOS'ta da çalıştırılabilir (adil olmak gerekirse, PalmOS desteğinin durdurulduğuna dikkat edilmelidir, ancak burada Palm'ın kendisi daha çok suçludur). Bu dil, metinleri, görüntüleri işlemek ve veritabanlarıyla çalışmak için büyük sistemler oluşturmak için başarıyla kullanılabilir.

LabVIEW çok üst düzey bir dildir. Ancak sizi LabVIEW programlarına “düşük seviyeli” modülleri dahil etmekten alıkoyan hiçbir şey yoktur. Çevirici eklentilerini kullanmak isteseniz bile bu da mümkündür; yalnızca bir DLL oluşturmanız ve koda çağrılar eklemeniz yeterlidir. Öte yandan, yüksek seviyeli bir dil, verilerle çok önemsiz olmayan işlemleri kolayca gerçekleştirmenize olanak tanır; normal bir dilde birçok satır (onlarca satır olmasa da) kod alabilir. Ancak adil olmak gerekirse, düşük seviyeli dillerin bazı işlemlerinin (örneğin, işaretçilerle çalışmak) "yüksek seviyeli" doğası nedeniyle LabVIEW'da uygulanmasının o kadar kolay olmadığını belirtmek gerekir. Tabii ki LabVIEW dili “geleneksel” dillerde benzerleri olan temel kontrol yapılarını içerir:

  • değişkenler (yerel veya küresel)
  • dallanma (vaka yapısı)
  • For – tamamlanma kontrolü olan ve olmayan döngüler.
  • While döngüleri
  • Operasyonların gruplandırılması.

LabVIEW - program ve dil yetenekleri

LabVIEW'da geliştirilmekte olan yazılım modüllerine “Sanal Araçlar” veya kısaca VI adı verilmektedir. *.vi uzantılı dosyalara kaydedilirler. VI'lar LabVIEW programını oluşturan yapı taşlarıdır. Her LabVIEW programı en az bir VI içerir. C dili açısından, oldukça güvenli bir şekilde bir fonksiyonla bir benzetme yapabilirsiniz; LabVIEW'deki tek fark, bir fonksiyonun tek bir dosyada bulunmasıdır (aynı zamanda araç kütüphaneleri de oluşturabilirsiniz). Bir VI'nın diğer bir VI'dan çağrılabileceğini söylemeye gerek yok. Prensip olarak her VI iki bölümden oluşur: Blok Şema ve Ön Panel. Blok şeması program kodudur (daha doğrusu kodun görsel grafiksel temsili) ve Ön Panel arayüzdür. İşte klasik bir Merhaba Dünya örneği şöyle görünür:

LabVIEW, veri akışı paradigmasına dayanmaktadır. Yukarıdaki örnekte sabit ve gösterge terminali birbirine bir hat ile bağlanmıştır. Bu hatta Tel denir. Buna “tel” diyebilirsiniz. Teller verileri bir elemandan diğerine iletir. Bütün bu kavrama Veri Akışı denir. Blok Diyagramın özü düğümlerdir, bazı düğümlerin çıktıları diğer düğümlerin girişlerine bağlanır. Düğüm yalnızca işlem için gerekli tüm veriler geldiğinde yürütmeye başlayacaktır. Yukarıdaki diyagramda iki düğüm vardır. Bunlardan biri sabittir. Bu düğüm bağımsızdır; hemen çalışmaya başlar. İkinci düğüm bir göstergedir. Sabitin ilettiği verileri gösterecektir (ancak hemen değil, ancak veriler sabitten gelir gelmez).

İşte biraz daha karmaşık bir örnek: iki sayıyı toplamak ve çarpmak. Geleneksel dillerde şöyle bir şey yazardık:

Int a, b, toplam, mul;
//...
toplam = a + b;
mül = a * b;

LabVIEW'da şöyle görünüyor:

Toplama ve çarpmanın otomatik olarak paralel olarak gerçekleştirildiğini unutmayın. Çift işlemcili bir makinede her iki işlemci de otomatik olarak kullanılacaktır.

Ve while/for döngüleri ve if/then/else yapısı şöyle görünür:

Daha önce de belirtildiği gibi, tüm öğeler paralel olarak yürütülecektir. Bir görevi birden çok işlemcide paralel olarak yürütülebilecek birden çok iş parçacığına nasıl paralelleştireceğinizi düşünmenize gerek yok. En son sürümlerde, belirli bir while döngüsünün hangi işlemcide yürütülmesi gerektiğini açıkça belirtebilirsiniz. Artık metin dilleri için çok işlemcili sistemlere kolayca destek sağlamanıza olanak tanıyan eklentiler var, ancak bu muhtemelen hiçbir yerde LabVIEW'deki kadar kolay uygulanmıyor. (eh, yine de metin dilleriyle karşılaştırmaya girdim). Zaten çoklu iş parçacıklarından bahsediyorsak, geliştiricinin iş parçacıklarını senkronize etmek için geniş bir araç yelpazesine sahip olduğunu da not etmeliyiz - semaforlar, kuyruklar, buluşma vb.

LabVIEW, kullanıcı arayüzleri oluşturmaya yönelik zengin öğe kümeleri içerir. Arayüzler Delphi'de hızlı bir şekilde oluşturuldu, ancak LabVIEW'da bu süreç daha da hızlı gerçekleşiyor.

LabVIEW'in standart teslimatı ayrıca ini dosyalarıyla çalışmaya yönelik blokları, kayıt defterini, ikili dosyalar ve test dosyalarıyla çalışmaya yönelik işlevleri, matematiksel işlevleri, çizim için güçlü araçları (ve bu olmadan laboratuvarda nerede olurdunuz) içerir. Bahsedilen DLL'leri çağırma yeteneği LabVIEW, ActiveX bileşenleri ve .net ile çalışmanıza olanak tanır. Sekizinci versiyondan itibaren LabVIEW'a sınıf desteği eklendi; dil nesne yönelimli hale geldi. Uygulanan desteğin eksiksiz olduğu söylenemez, ancak nesne yönelimli dillerin temel özellikleri - kalıtım ve polimorfizm - mevcuttur. Ayrıca dilin işlevselliği, görüntü işleme ve bilgisayarlı görme ve diğerleri için örneğin NI Vision Toolkit gibi ek modüllerle genişletilebilir. Uygulama Oluşturucu modülünü kullanarak yürütülebilir bir exe dosyası oluşturabilirsiniz. İnternet Araç Kitini kullanarak ftp sunucularıyla, Veritabanı Bağlantısı Araç Setini kullanarak veritabanlarıyla vb. çalışabilirsiniz.

Grafik kodun okunmasının zor olduğu fikrini sıklıkla duyabilirsiniz. Gerçekten de alışkanlıktan dolayı ikonların ve şeflerin bolluğu biraz şok edici. Acemi geliştiriciler ayrıca "sayfa" programları ve "spagetti" programları da oluştururlar. Ancak deneyimli bir LabVIEW geliştiricisi, program yüzlerce modülden oluşsa bile asla ekran boyutundan daha büyük diyagramlar oluşturmayacaktır. İyi tasarlanmış bir program, zaten grafiksel bir gösterime dayalı olduğundan etkili bir şekilde "kendi kendini belgelemektedir".

LabVIEW'da programlama yaparken oldukça uzun bir süre LabVIEW'in bir yorumlayıcı olduğuna ve blok diyagramların çekirdek tarafından sürekli olarak yorumlandığına tamamen güvendim. NI mühendisleriyle konuştuktan sonra durumun böyle olmadığı ortaya çıktı. LabVIEW bir derleyicidir (ancak kod oluşturma kalitesi arzu edilenden çok uzaktır). Ancak derleme "anında" gerçekleşir - geliştirme sırasında herhangi bir zamanda program her zaman çalışmaya hazırdır. LabVIEW kodu ayrıca LabVIEW kurulu olmayan bir bilgisayarda çalıştırılabilen tam teşekküllü bir yürütülebilir dosya halinde derlenebilir (LabVIEW Çalıştırma Zamanı gerektirmesine rağmen). Ayrıca bir yükleyici kurulum paketi de oluşturabilirsiniz; InstallShield gibi üçüncü taraf yardımcı programlara gerek yoktur.

Paketin yeteneklerinin daha ayrıntılı ve daha ayrıntılı bir açıklaması bu makalenin kapsamı dışındadır, ancak sadece denemenizi öneririm (bağlantılar aşağıda verilmiştir). Büyüklerin dediği gibi, "... yeni bir programlama diline hakim olmanın tek yolu, o dilde programlar yazmaktır." Deneyimli programcılar kazandıkları bilgileri kendi ihtiyaçlarına göre değerlendirebileceklerdir.

İster amatör ister profesyonel olsun, hemen hemen tüm mikrodenetleyici cihaz geliştiricilerinin er ya da geç bir mikrodenetleyici cihazını "ağabeyine", yani bir PC'ye bağlaması gerekir. İşte o zaman şu soru ortaya çıkıyor: Mikrodenetleyiciyle alışveriş yapmak, ondan alınan verileri analiz etmek ve işlemek için hangi yazılımı kullanmalıyım? Çoğu zaman, MK'yi bir bilgisayarla değiştirmek için RS232 arayüzünü ve protokolünü kullanırlar - eski güzel COM bağlantı noktasışu veya bu uygulamada.

Bilgisayar tarafında yüzlerce tane olmak üzere çeşitli terminal programları kullanılmaktadır. Ancak bu programlar yalnızca bilginin alınmasını ve iletilmesini sağlar. Bunu bir şekilde işlemek ve görsel bir biçimde görselleştirmek zordur.

Bazıları bu tür yazılımları bağımsız olarak bazı programlama dillerinde (Delphi, C++) yazarak gerekli işlevselliği sağlar. Ancak bu görev kolay değil; dilin yanı sıra cihazı da bilmeniz gerekiyor. işletim sistemi, iletişim bağlantı noktalarıyla çalışma yöntemleri, asıl şeyden dikkati dağıtan diğer birçok teknik incelik - program algoritmasının uygulanması. Genel olarak aynı zamanda Windows/Unix programcısı olmak.

Sanal araçlar kavramı (vi) bu yaklaşımlardan oldukça farklıdır. Bu makalede Nationals Instruments'ın LabView yazılım ürünü tartışılacaktır. Bu harika üründe ustalaşmaya yeni başlıyorum, bu yüzden yanlışlıklar ve hatalar yapabilirim. Uzmanlar sizi düzeltecektir :-)) LabView tam olarak nedir?

LabView, yazılmış programları çalıştırmak için bir geliştirme ortamı ve platformudur. grafik dili National Instruments'tan "G" programı.

Konuşuyorum basit bir dille, LabView - Bu, çeşitli cihazlardan, laboratuvar kurulumlarından vb. bilgi toplama, işleme, görselleştirme görevleri için uygulamalar oluşturmaya yönelik bir ortamdır. Ve ayrıca yönetim için teknolojik süreçler ve cihazlar. Ancak LabView'ı kullanarak oldukça sıradan bir uygulama yazılımı oluşturabilirsiniz. Bu ürünü anlatmak ve detaylı olarak çalışmak gibi bir niyetim yok. LabView'da binlerce sayfalık mükemmel belgeler ve yazılmış yüzlerce kitap bulunmaktadır. İnternet, tüm sorularınızın yanıtlarını alabileceğiniz LabView'e ayrılmış kaynaklarla doludur.

Makalenin amacı, bir PC için uygulama oluşturmanın geleneksel programlamaya kıyasla ne kadar basit ve kullanışlı olduğunu ve LabView'in ne gibi bir güç taşıdığını göstermektir. (Aslında tartışmalıdır, çünkü geleneksel programlamada bunu Delphi'de yapmak daha zor değildir. Ve verimlilik açısından daha iyi olmasa da pek kötü değildir. Ancak bunun için Delphi'yi çok daha uzun süre incelemeniz gerekir. Her şey hızlıdır. ve kenevir serasının sulama ve ısıtma kontrolünü her türlü PID kontrol cihazıyla birlikte teknisyenimizin bulunduğu laboratuvar standına getirdim ve bu cehennem gibi üniteyi çalıştırdım. hata ayıklama olmadan, hadron çarpıştırıcısının tüm ekipmanı LabView'da çalışır ve ayrıca birçok bilimsel ekipman yaklaşık olarak DI HALT'ta çalışır. Sonuçta PC programlama çoğu elektronik mühendisine yabancıdır, değil mi? Düzeltmeye çalışacağımız şey bu. Küresel vakum atlarını incelememek için kendimize basit bir görev belirleyip uygulayacağız. Görev gerçekten basittir, ancak buna dayanarak LabView'da programlamanın temel ilkelerini anlayabilirsiniz. LabView 2010 sürümünü kullanacağız. Diğer sürümlerde farklar minimum düzeyde olacaktır.

Görev
bir ücretimiz var AVR mikrodenetleyici RS232 ile bilgisayara bağlanılıyor. Denetleyici, denetleyicinin ADC girişlerinden birindeki voltaj değerini ölçtüğü ve ADC kodunu (0'dan 1023'e kadar) bir seri kanal aracılığıyla bilgisayara ilettiği ürün yazılımı ile yüklenir. ADC'den veri akışı alacak, ADC kodunu görüntüleyecek, ADC kodunu volt cinsinden gerilim değerine dönüştürecek, gerilim değerini volt cinsinden görüntüleyecek ve zaman içindeki gerilim değişimini çizecek bir PC programı yazmak gerekir.

Muhtemelen şarkı sözleri yeter, haydi başlayalım!

Peki başlamak için neye ihtiyacımız var:

  • Aslında LabView'ın kendisi. Deneme sürümünü NI web sitesinden indirebilirsiniz: http://www.ni.com/trylabview/. Korsan sürüm de sorunsuz bir şekilde Google'da aratılabilir. Bu arada, rutracker.org'da bir ton korsan sürüme ek olarak, Linux için kayıt gerektirmeyen bir sürüm de var. NI açık kaynakla yarı yolda buluşmaya mı karar verdi?
  • NI VISA bileşenini indirmek de gereklidir. Bu program olmadan LabView bilgisayardaki COM bağlantı noktasını "görmeyecektir". VISA, iletişim portlarıyla çalışmaya yönelik işlevler ve çok daha fazlasını içerir. joule.ni.com adresinden indirebilirsiniz. LabView ve VISA'yı yükleyin. Bu yazılımın kurulumu standarttır ve herhangi bir özel özelliği yoktur.

Öncelikle VISA'nın sistemde bir COM portu bulduğundan ve onunla doğru şekilde çalıştığından emin olmamız gerekiyor. Bunu şu şekilde kontrol edebilirsiniz: Ölçüm ve Otomasyon programını başlatın. LabView ile birlikte gelir. Kurulu değilse manuel olarak kurabilirsiniz. Disktedir (LabView'lı görüntü).

Pencerenin sol tarafında sistemde tespit edilen ekipmanları görüyoruz. Diğer şeylerin yanı sıra COM bağlantı noktamızı da buluyoruz. Sağda Visa test panelini aç düğmesi var. Bunu kullanarak seçilen cihazı test edebilirsiniz. COM bağlantı noktası durumunda, varsayılan veya rastgele bir karakter dizisi gönderebilir veya alabilirsiniz. Bağlantı noktasında her şey yolundaysa doğrudan programımızı oluşturmaya devam edebiliriz.

LabView'ı başlatın. Yeni bir sanal cihaz oluşturmak için Başlarken penceresinde Boş Vi öğesini seçin.

Bunun gibi bir şey elde ediyoruz:

Peki neyimiz var? Çalışma alanı iki büyük panelden oluşur: Ön Panel ve Blok Diyagram. Ön panelde Kontroller panelindeki kontrolleri kullanarak programımızın arayüzünü oluşturacağız. Bu elemanlar tanıdık değişken direnç düğmeleri, LED'ler, düğmeler, işaretçi araçları, osiloskop ekranı vb.'dir. Programa bilgi girmeye ve yürütme sonuçlarını göstermeye yararlar. Blok Diyagramı paneli program kodunun kendisini içerir. Burada biraz geriye çekilip LabView'da programlamanın prensibini açıklamamız gerekiyor. Küçük bir örnek. Bir program üzerinde çalışmaya arayüzü tasarlayarak ve ardından algoritmayı bir blok diyagram üzerinde uygulayarak başlamak gelenekseldir. İki sayıyı çarpmak için basit bir program yapalım. Bunu yapmak için ön panele üç kontrolü sürükleyerek yerleştireceğiz, örneğin sonucu görüntülemek için Düğme ve Sayısal Gösterge öğelerini.

Arayüzü dilediğiniz gibi oluşturalım, örneğin şu şekilde:

Tamam, şimdi gerçek çarpma işlemini uygulamamız gerekiyor. Blok diyagram paneline gidiyoruz ve kontrollerimizin her biri için karşılık gelen bir simgenin oluşturulduğunu görüyoruz. Görüntüleme modunu hemen terminallere değiştirmek en iyisidir. Diyagram bu kadar karmaşık olmayacak. Ek olarak terminaller, belirli bir kontrolün üzerinde çalıştığı veri türünü görüntüler. Bunu yapmak için simgeye sağ tıklayın ve Simge olarak görüntüle seçeneğinin işaretini kaldırın. Ekranın üst kısmında terminal şeklinde, alt kısmında ve sağ tarafında ise simge şeklinde bir kontrol bulunmaktadır. Blok şemasının varsayılan görünümünü terminaller olarak yapılandırmak için, Araçlar->Seçenekler menü öğesini seçmeniz, soldaki Blok şeması seçeneğini seçmeniz ve Ön panel terminallerini simge olarak yerleştir seçeneğinin işaretini kaldırmanız gerekir. Bağlamsal yardımın görüntülenmesi çok faydalıdır. Ctrl+H kombinasyonunu kullanarak görüntüleyebilirsiniz. Bu pencere, imlecin o anda yerleştirildiği nesneyle ilgili bilgileri görüntüler. Çok kullanışlı bir şey.

Şimdi blok diyagrama bir çarpma fonksiyonu eklememiz gerekiyor. Blok diyagrama sağ tıklayın ve Sayısal paletten Çarpma işlevini seçin. Diyagrama koyalım. LabView'ın oldukça büyük bir fonksiyon setine sahip olduğunu belirtmekte fayda var. Buna çeşitli matematik, istatistik, sinyal analizi, PID düzenlemesi, video, ses ve görüntü işleme dahildir. Her şeyi listeleyemezsiniz.

LabView programlamadaki en önemli kavram DataFlows kavramıdır. Ana fikir şudur: İfadelerin sırayla yürütüldüğü zorunlu programlama dillerinin aksine, LabView'de işlevler yalnızca tüm işlev girişlerinin bilgiye sahip olması durumunda çalışır (her işlevin giriş ve çıkış değerleri vardır). Ancak o zaman fonksiyon kendi algoritmasını uygular ve sonuç başka bir fonksiyon tarafından kullanılabilecek çıktıya gönderilir. Böylece tek bir sanal cihazda işlevler birbirinden bağımsız olarak çalışabilir.

Şimdi örneğimizi canlandırmak için bu konsepti takip edip kontrollerle ayarladığımız sayısal değerleri fonksiyon girişine besleyip çıktıdan sonucu alıp görüntülememiz gerekiyor.

Bir blok diyagramdaki öğeleri bağlamak için Araçlar panelindeki Kabloyu Bağla aracını kullanın. Onu seçin ve bağlantılarımızı çizin.

Hepsi bu, döngüsel yürütme için bu aptal programı çalıştırabilir ve çarpma sonucunu gözlemleyerek düğmeleri çevirebilirsiniz.

Gördüğünüz gibi karmaşık bir şey yok gibi görünüyor. Ancak aynı zamanda LabView her türlü karmaşıklığı çözmenize de olanak tanır! Lanet olsun, TANK kontrol sistemi bunun üzerinde yapıldı! Böylece.

Peki, şimdi daha fazlasını yapalım ilginç şeyler yani en başta bahsettiğim en basit voltmetremizi yapalım.

Peki ne yapmamız gerekiyor? Öncelikle yapılandırmanız ve başlatmanız gerekir seri port. Sonsuz bir döngü başlatın. Döngüde porttan okuma fonksiyonunu kullanırız ve bilgiyi alırız. Grafikte görüntülenecek bilgileri dönüştürüyoruz, ADC kodunu volt cinsinden bir voltaj değerine yeniden hesaplıyoruz. Döngüden çıkarken bağlantı noktasını kapatın.
Yani programımızın arayüzünde Durdur butonu dışında hiçbir kontrol elemanı olmayacak, sadece sonucun görüntülenmesi olacak. Bunu yapacağız: önce bir blok diyagram oluşturacağız, sonra eksik elemanları öne ekleyeceğiz. panel. Her ne kadar tam tersini yapmanız gerekse de! Ancak bu durumda daha uygundur.

Blok diyagram panelinde Yapılar paletinden While Döngüsü öğesini yerleştiriyoruz, bu bizim sonsuz döngümüzdür. Algoritmanın içine sığacak kadar geniş bir alanın etrafına döngü çerçevesi çiziyoruz. Sağ alt köşede kırmızı bir nokta var, üzerine sağ tıklayın ve Kontrol Oluştur seçeneğini seçin. Hemen ön panelde bir Durdurma düğmemiz olacak. Üzerine tıkladığınızda programımız sona erecektir.

Şimdi döngünün dışına, bağlantı noktasını başlatma ve kapatma işlevlerini yerleştirmeliyiz. Solda başlatma, sağda kapanış var. Tekrar sağ tıklayıp Bağlantı Noktasını Yapılandır, Oku ve Kapat işlevlerini seçin. Bu işlevler Enstrüman G/Ç -> Seri paletinde bulunur. Okuma fonksiyonunu döngünün içine yerleştiriyoruz. Fonksiyonların çıkışlarını ve girişlerini bir kablo bobini kullanarak bağlarız. Read fonksiyonu için alacağı byte sayısını belirtmemiz gerekmektedir. Okuma fonksiyonunun ortadaki girişine sağ tıklayın ve Oluştur->Sabit seçeneğini seçin, bir değer girin örneğin 200. Bu aşamada ekran görüntüsündeki gibi görünmelidir.

Bağlantı noktası başlatma işlevi için kontroller oluşturmanız gerekir. Bizim için iki tane yeterli - port hızı ve port adı. Tıpkı okuma fonksiyonu için bir sabit oluşturduğumuz gibi, kontroller de oluşturuyoruz. Başlatma fonksiyonunun ve öğesinin gerekli girişlerinde PCM

Oluştur->Kontrol.

İki girdiyle ilgileniyoruz: Vize kaynağı adı Ve Baud Hızı(varsayılan 9600). Şimdi ön panele gidip gerekli bileşenleri yani grafik çizim ekranını ve ADC kodunu ve voltajı volt olarak görüntülemek için etiketleri ekleyelim.
Buna göre bunlar, Grafik paletindeki Waweform Grafiği öğeleri ve Sayısal paletteki iki Sayısal Gösterge öğesidir.

Blok diyagrama dönelim ve döngünün içinde görünen elemanları hareket ettirelim. Tamamlanmaya yaklaşıyoruz! Tek şey, Read fonksiyonunun çıktısından gelen karakter dizisini göstergelerimizin sindirebileceği bir formata dönüştürmemiz gerektiğidir. Ayrıca ADC kodunu volta dönüştürmek için en basit matematiği uygulayın. Aşağıda bu aşamadaki ön panel ve blok şemalarının ekran görüntüleri bulunmaktadır:

Bir dizeyi dönüştürmek için, Dize paletindeki Dizeden tara işlevini kullanacağız. Döngünün içine yerleştiriyoruz. Şimdi matematik için. ADC kodunu volt cinsinden bir voltaj değerine dönüştürmek için, kodu referans voltajın değeriyle çarpmanız (benim durumumda beş volttur) ve ortaya çıkan değeri 1023'e bölmeniz gerekir (ADC'nin 10 değeri olduğundan) -bit genişliği). Gerekli çarpma ve bölme fonksiyonlarını ve sabitleri (5 ve 1023) bir döngüye yerleştireceğiz. Zaten çok fazla resim olduğu için her bağlantının ekran görüntüsünü almayacağım. Tüm bağlantıların son ekran görüntüsünü vereceğim. Orada her şey son derece basit.

Sanırım her şey açık, herhangi bir sorunuz varsa yorumlarda sorun. Hadi birlikte çözelim :-))) Bu arada program hazır.

Arayüzümüze gidip grafiği biraz kuralım. Y ekseni boyunca alt değeri seçip 0'a ayarlayın. Üst değeri seçip 5'e ayarlayın. Böylece Y ekseni boyunca ölçeğimiz 0-5 volt aralığında olur. Peki, COM bağlantı noktasını seçiyoruz, baud hızını giriyoruz, ok düğmesini kullanarak programımızı başlatıyoruz ve çalışmamızın sonucunu ekranda özgürce gözlemlerken karttaki direnci öfkeyle çeviriyoruz. Programı durdurmak için Durdur düğmesine tıklayın.

Gördüğünüz gibi her şey oldukça basit. Bu örnek Bu, LabView'in tüm yeteneklerinin yalnızca küçük bir kısmıdır. Bu makalenin birine faydası olursa çok sevinirim. Yorumlarda bana çok sert vurmayın, ben profesyonel değilim. Başka bir küçük numara. Diyagram Cthulhu'ya benziyorsa Temizleme Diyagramı düğmesini kullanmayı deneyebilirsiniz. Diyagramı az çok ilahi bir forma sokacaktır, ancak dikkatli kullanılmalıdır. İşte çalışmasının sonucu

Diyagramı karmaşıklaştırmamak için parçaları işlevsel bloklar halinde de birleştirebilirsiniz.

İster amatör ister profesyonel olsun, hemen hemen tüm mikrodenetleyici cihaz geliştiricilerinin er ya da geç bir mikrodenetleyici cihazını "ağabeyine", yani bir PC'ye bağlaması gerekir. İşte o zaman şu soru ortaya çıkıyor: Mikrodenetleyiciyle alışveriş yapmak, ondan alınan verileri analiz etmek ve işlemek için hangi yazılımı kullanmalıyım? Çoğu zaman, MK'yi bir bilgisayarla değiştirmek için RS232 arayüzünü ve protokolünü kullanırlar - şu veya bu uygulamada eski güzel COM bağlantı noktası.

Bilgisayar tarafında yüzlerce tane olmak üzere çeşitli terminal programları kullanılmaktadır. Ancak bu programlar yalnızca bilginin alınmasını ve iletilmesini sağlar. Bunu bir şekilde işlemek ve görsel bir biçimde görselleştirmek zordur.

Bazıları bu tür yazılımları bağımsız olarak bazı programlama dillerinde (Delphi, C++) yazarak gerekli işlevselliği sağlar. Ancak bu görev kolay değil; dilin kendisine ek olarak, işletim sisteminin yapısını, iletişim bağlantı noktalarıyla nasıl çalışılacağını ve asıl şeyden - programın uygulanmasından - uzaklaşan diğer birçok teknik inceliği bilmeniz gerekir. algoritma. Genel olarak aynı zamanda Windows/Unix programcısı olmak.

Sanal araçlar kavramı (vi) bu yaklaşımlardan oldukça farklıdır. Bu makalede Nationals Instruments'ın LabView yazılım ürünü tartışılacaktır. Bu harika üründe ustalaşmaya yeni başlıyorum, bu yüzden yanlışlıklar ve hatalar yapabilirim. Uzmanlar sizi düzeltecektir :-)) LabView tam olarak nedir?

LabView, National Instruments grafik programlama dili G'de yazılmış programları çalıştırmak için bir geliştirme ortamı ve platformdur.

Basit bir ifadeyle LabView, çeşitli cihazlardan, laboratuvar kurulumlarından vb. bilgi toplama, işleme, görselleştirme görevleri için bir uygulama oluşturma ortamıdır. Ve ayrıca teknolojik süreçleri ve cihazları kontrol etmek için. Ancak LabView'ı kullanarak oldukça sıradan bir uygulama yazılımı oluşturabilirsiniz. Bu ürünü anlatmak ve detaylı olarak çalışmak gibi bir niyetim yok. LabView'da binlerce sayfalık mükemmel belgeler ve yazılmış yüzlerce kitap bulunmaktadır. İnternet, tüm sorularınızın yanıtlarını alabileceğiniz LabView'e ayrılmış kaynaklarla doludur.

Makalenin amacı, bir PC için uygulama oluşturmanın geleneksel programlamaya kıyasla ne kadar basit ve kullanışlı olduğunu ve LabView'in ne gibi bir güç taşıdığını göstermektir. (Aslında tartışmalıdır, çünkü geleneksel programlamada bunu Delphi'de yapmak daha zor değildir. Ve verimlilik açısından daha iyi olmasa da pek kötü değildir. Ancak bunun için Delphi'yi çok daha uzun süre incelemeniz gerekir. Her şey hızlıdır. ve kenevir serasının sulama ve ısıtma kontrolünü her türlü PID kontrol cihazıyla birlikte teknisyenimizin bulunduğu laboratuvar standına getirdim ve bu cehennem gibi üniteyi çalıştırdım. hata ayıklama olmadan, hadron çarpıştırıcısının tüm ekipmanı LabView'da çalışır ve ayrıca birçok bilimsel ekipman yaklaşık olarak DI HALT'ta çalışır. Sonuçta PC programlama çoğu elektronik mühendisine yabancıdır, değil mi? Düzeltmeye çalışacağımız şey bu. Küresel vakum atlarını incelememek için kendimize basit bir görev belirleyip uygulayacağız. Görev gerçekten basittir, ancak buna dayanarak LabView'da programlamanın temel ilkelerini anlayabilirsiniz. LabView 2010 sürümünü kullanacağız. Diğer sürümlerde farklar minimum düzeyde olacaktır.

Görev
RS232 üzerinden bilgisayara bağlanan AVR mikrodenetleyicili bir kartımız var. Denetleyici, denetleyicinin ADC girişlerinden birindeki voltaj değerini ölçtüğü ve ADC kodunu (0'dan 1023'e kadar) bir seri kanal aracılığıyla bilgisayara ilettiği ürün yazılımı ile yüklenir. ADC'den veri akışı alacak, ADC kodunu görüntüleyecek, ADC kodunu volt cinsinden gerilim değerine dönüştürecek, gerilim değerini volt cinsinden görüntüleyecek ve zaman içindeki gerilim değişimini çizecek bir PC programı yazmak gerekir.

Muhtemelen şarkı sözleri yeter, haydi başlayalım!

Peki başlamak için neye ihtiyacımız var:

  • Aslında LabView'ın kendisi. Deneme sürümünü NI web sitesinden indirebilirsiniz: http://www.ni.com/trylabview/. Korsan sürüm de sorunsuz bir şekilde Google'da aratılabilir. Bu arada, rutracker.org'da bir ton korsan sürüme ek olarak, Linux için kayıt gerektirmeyen bir sürüm de var. NI açık kaynakla yarı yolda buluşmaya mı karar verdi?
  • NI VISA bileşenini indirmek de gereklidir. Bu program olmadan LabView bilgisayardaki COM bağlantı noktasını "görmeyecektir". VISA, iletişim portlarıyla çalışmaya yönelik işlevler ve çok daha fazlasını içerir. joule.ni.com adresinden indirebilirsiniz. LabView ve VISA'yı yükleyin. Bu yazılımın kurulumu standarttır ve herhangi bir özel özelliği yoktur.

Öncelikle VISA'nın sistemde bir COM portu bulduğundan ve onunla doğru şekilde çalıştığından emin olmamız gerekiyor. Bunu şu şekilde kontrol edebilirsiniz: Ölçüm ve Otomasyon programını başlatın. LabView ile birlikte gelir. Kurulu değilse manuel olarak kurabilirsiniz. Disktedir (LabView'lı görüntü).

Bunun gibi bir şey elde ediyoruz:


Peki neyimiz var? Çalışma alanı iki büyük panelden oluşur: Ön Panel ve Blok Diyagram. Ön panelde Kontroller panelindeki kontrolleri kullanarak programımızın arayüzünü oluşturacağız. Bu elemanlar tanıdık değişken direnç düğmeleri, LED'ler, düğmeler, işaretçi araçları, osiloskop ekranı vb.'dir. Programa bilgi girmeye ve yürütme sonuçlarını göstermeye yararlar. Blok Diyagramı paneli program kodunun kendisini içerir. Burada biraz geriye çekilip LabView'da programlamanın prensibini açıklamamız gerekiyor. Küçük bir örnek. Bir program üzerinde çalışmaya arayüzü tasarlayarak ve ardından algoritmayı bir blok diyagram üzerinde uygulayarak başlamak gelenekseldir. İki sayıyı çarpmak için basit bir program yapalım. Bunu yapmak için ön panele üç kontrolü sürükleyerek yerleştireceğiz, örneğin sonucu görüntülemek için Düğme ve Sayısal Gösterge öğelerini.

Tamam, şimdi gerçek çarpma işlemini uygulamamız gerekiyor. Blok diyagram paneline gidiyoruz ve kontrollerimizin her biri için karşılık gelen bir simgenin oluşturulduğunu görüyoruz. Görüntüleme modunu hemen terminallere değiştirmek en iyisidir. Diyagram bu kadar karmaşık olmayacak. Ek olarak terminaller, belirli bir kontrolün üzerinde çalıştığı veri türünü görüntüler. Bunu yapmak için simgeye sağ tıklayın ve Simge olarak görüntüle seçeneğinin işaretini kaldırın. Ekranın üst kısmında terminal şeklinde, alt kısmında ve sağ tarafında ise simge şeklinde bir kontrol bulunmaktadır. Blok şemasının varsayılan görünümünü terminaller olarak yapılandırmak için, Araçlar->Seçenekler menü öğesini seçmeniz, soldaki Blok şeması seçeneğini seçmeniz ve Ön panel terminallerini simge olarak yerleştir seçeneğinin işaretini kaldırmanız gerekir. Bağlamsal yardımın görüntülenmesi çok faydalıdır. Ctrl+H kombinasyonunu kullanarak görüntüleyebilirsiniz. Bu pencere, imlecin o anda yerleştirildiği nesneyle ilgili bilgileri görüntüler. Çok kullanışlı bir şey.

LabView programlamadaki en önemli kavram DataFlows kavramıdır. Ana fikir şudur: İfadelerin sırayla yürütüldüğü zorunlu programlama dillerinin aksine, LabView'de işlevler yalnızca tüm işlev girişlerinin bilgiye sahip olması durumunda çalışır (her işlevin giriş ve çıkış değerleri vardır). Ancak o zaman fonksiyon kendi algoritmasını uygular ve sonuç başka bir fonksiyon tarafından kullanılabilecek çıktıya gönderilir. Böylece tek bir sanal cihazda işlevler birbirinden bağımsız olarak çalışabilir.

Şimdi örneğimizi canlandırmak için bu konsepti takip edip kontrollerle ayarladığımız sayısal değerleri fonksiyon girişine besleyip çıktıdan sonucu alıp görüntülememiz gerekiyor.

Bir blok diyagramdaki öğeleri bağlamak için Araçlar panelindeki Kabloyu Bağla aracını kullanın. Onu seçin ve bağlantılarımızı çizin.

Gördüğünüz gibi karmaşık bir şey yok gibi görünüyor. Ancak aynı zamanda LabView her türlü karmaşıklığı çözmenize de olanak tanır! Lanet olsun, TANK kontrol sistemi bunun üzerinde yapıldı! Böylece.

Şimdi daha ilginç şeyler yapalım yani en başta bahsettiğim en basit voltmetremizi yapalım.

Peki ne yapmamız gerekiyor? Öncelikle seri bağlantı noktasını yapılandırmanız ve başlatmanız gerekir. Sonsuz bir döngü başlatın. Döngüde porttan okuma fonksiyonunu kullanırız ve bilgiyi alırız. Grafikte görüntülenecek bilgileri dönüştürüyoruz, ADC kodunu volt cinsinden bir voltaj değerine yeniden hesaplıyoruz. Döngüden çıkarken bağlantı noktasını kapatın.
Yani programımızın arayüzünde Durdur butonu dışında hiçbir kontrol elemanı olmayacak, sadece sonucun görüntülenmesi olacak. Bunu yapacağız: önce bir blok diyagram oluşturacağız, sonra eksik elemanları öne ekleyeceğiz. panel. Her ne kadar tam tersini yapmanız gerekse de! Ancak bu durumda daha uygundur.

Blok diyagram panelinde Yapılar paletinden While Döngüsü öğesini yerleştiriyoruz, bu bizim sonsuz döngümüzdür. Algoritmanın içine sığacak kadar geniş bir alanın etrafına döngü çerçevesi çiziyoruz. Sağ alt köşede kırmızı bir nokta var, üzerine sağ tıklayın ve Kontrol Oluştur seçeneğini seçin. Hemen ön panelde bir Durdurma düğmemiz olacak. Üzerine tıkladığınızda programımız sona erecektir.

Bağlantı noktası başlatma işlevi için kontroller oluşturmanız gerekir. Bizim için iki tane yeterli - port hızı ve port adı. Tıpkı okuma fonksiyonu için bir sabit oluşturduğumuz gibi, kontroller de oluşturuyoruz. Başlatma fonksiyonunun ve öğesinin gerekli girişlerinde PCM

Oluştur->Kontrol.

Oluştur->Kontrol.

İki girdiyle ilgileniyoruz: Vize kaynağı adı Ve Baud Hızı(varsayılan 9600). Şimdi ön panele gidip gerekli bileşenleri yani grafik çizim ekranını ve ADC kodunu ve voltajı volt olarak görüntülemek için etiketleri ekleyelim.
Buna göre bunlar, Grafik paletindeki Waweform Grafiği öğeleri ve Sayısal paletteki iki Sayısal Gösterge öğesidir.

Blok diyagrama dönelim ve döngünün içinde görünen elemanları hareket ettirelim. Tamamlanmaya yaklaşıyoruz! Tek şey, Read fonksiyonunun çıktısından gelen karakter dizisini göstergelerimizin sindirebileceği bir formata dönüştürmemiz gerektiğidir. Ayrıca ADC kodunu volta dönüştürmek için en basit matematiği uygulayın. Aşağıda bu aşamadaki ön panel ve blok şemalarının ekran görüntüleri bulunmaktadır:



Bir dizeyi dönüştürmek için, Dize paletindeki Dizeden tara işlevini kullanacağız. Döngünün içine yerleştiriyoruz. Şimdi matematik için. ADC kodunu volt cinsinden bir voltaj değerine dönüştürmek için, kodu referans voltajın değeriyle çarpmanız (benim durumumda beş volttur) ve ortaya çıkan değeri 1023'e bölmeniz gerekir (ADC'nin 10 değeri olduğundan) -bit genişliği). Gerekli çarpma ve bölme fonksiyonlarını ve sabitleri (5 ve 1023) bir döngüye yerleştireceğiz. Zaten çok fazla resim olduğu için her bağlantının ekran görüntüsünü almayacağım. Tüm bağlantıların son ekran görüntüsünü vereceğim. Orada her şey son derece basit.


Sanırım her şey açık, herhangi bir sorunuz varsa yorumlarda sorun. Hadi birlikte çözelim :-))) Bu arada program hazır.

Arayüzümüze gidip grafiği biraz kuralım. Y ekseni boyunca alt değeri seçip 0'a ayarlayın. Üst değeri seçip 5'e ayarlayın. Böylece Y ekseni boyunca ölçeğimiz 0-5 volt aralığında olur. Peki, COM bağlantı noktasını seçiyoruz, baud hızını giriyoruz, ok düğmesini kullanarak programımızı başlatıyoruz ve çalışmamızın sonucunu ekranda özgürce gözlemlerken karttaki direnci öfkeyle çeviriyoruz. Programı durdurmak için Durdur düğmesine tıklayın.

Diyagramı karmaşıklaştırmamak için parçaları işlevsel bloklar halinde de birleştirebilirsiniz.



NI LabVIEW akışlı bir grafik programlama ortamıdır. LabVIEW'da bir program yazarken kullanıcı, bir blok diyagram kullanarak veri akışı dönüştürme işlemlerinin sırasını tanımlar. Görüntüler blok diyagrama yerleştirilir fonksiyonel birimler Veri akışının bir düğümden diğerine geçtiği iletkenlerle birbirine bağlanır. Ayrıca LabVIEW, paradigmaları kıran bir dizi araca sahiptir. akış programlama ancak içinde geliştirilen uygulamaların işlevselliğini önemli ölçüde genişletmenize olanak tanır.

Programlama tekniği nedir

“Programlama tekniği” terimi, farklı programlama dilleri, hesaplama modelleri, soyutlama düzeyleri, kodla çalışma yöntemleri ve algoritmaları temsil etme yöntemlerini birleştirir. Yıllar geçtikçe National Instruments, daha çeşitli programlama tekniklerine destek sağlamak için LabVIEW işlevselliğini geliştirdi.


G akış kodunun yanı sıra çeşitli teknikler kullanılarak yazılan kodu bir blok diyagram üzerinde sunabilirsiniz ve LabVIEW uygun hedef cihazlar (normal masaüstü bilgisayarlar, RTOS platformları, FPGA'ler, mobil cihazlar, ARM tabanlı gömülü cihazlar)

Şekil 1. LabVIEW'da çok çeşitli platformlar ve programlama teknikleri



Farklı yaklaşımlar kullanılarak yazılan kod bölümleri arasında veri aktarımı LabVIEW'da çok basit bir şekilde organize edilmiştir; veri akışı, farklı hesaplama modelleri ve diller arasındaki bağlantıdır. G dilinde bilgi girişi/çıkışı, özel bir kullanıcı arayüzü (ön panel), ağ arayüzleri, analiz kütüphaneleri, veritabanları ve diğer araçlar kullanılarak gerçekleştirilir.

G dilinde programlama
1986'da internet üzerinden yayın programlamanın ortaya çıkışı gerçekten yenilikçiydi. G dilindeki verilerle işlem yapma sırası, meydana gelme sırasına göre değil, bu düğümlerin girişlerindeki verilerin varlığına göre belirlenir. Bir veri akışıyla bağlı olmayan operatörler rastgele sırayla paralel olarak yürütülür.

Diyagramın düğümleri basit talimatları veya bunların kümelerini - işlevler, sanal cihazlar (VI) temsil eder. Düğüm talimatlarının yürütülmesi yalnızca veriler düğümün tüm giriş terminallerinde göründükten sonra gerçekleşir. Talimatlar yürütüldükten sonra sonucu, düğümün çıkış terminalleri aracılığıyla sonraki düğümlerin girişlerine iletilir.


İncir. 2. Bu örnek, A ve B'yi toplar, elde edilen toplamı C ile çarpar ve sonucu görüntüler


Şekil 2, G dilindeki bir matematiksel ifadenin örneğini göstermektedir. Diyagram iki düğümden (toplama ve çarpma) ve üç girişten (A, B ve C) oluşur. İlk olarak, A ve B'nin toplanması gerçekleşir. Çarpma düğümünün kodu, her iki giriş terminalinden veri alınana kadar yürütülmez ve bu nedenle toplama düğümünün sonucunu bekler. Çarpma düğümünün ilk girişine toplama sonucu ulaştığı anda (A+B)*C kodu çalıştırılacaktır.

G dili, veri tipini açıkça belirlemenize izin vermesine rağmen, bu dil ile diğerleri arasındaki önemli farklardan biri, değişkenlerin işlevlerini yerine getiren iletkenlerin varlığıdır. Veri aktarımı, işlevler arasında değişkenlerin aktarılması yerine kablolu bağlantılarla belirlenir. Öte yandan G, koşullu döngüler, sayaç döngüleri, seçim yapıları, geri çağırma işlevleri ve mantıksal işlevler gibi diğer dillerde standart olan yapıları da içerir.

Programlamanın temeli olarak etkileşimli konfigürasyon
2003 yılında National Instruments, uygulama algoritmaları geliştirme sürecini daha da basitleştirmek için tasarlanmış bir teknoloji olan Express Virtual Instruments (VII) teknolojisini tanıtan NI LabVIEW 7 Express'i piyasaya sürdü. Normal VI'lardan farklı olarak ekspres VI'lar, temel bir programlama tekniğini uygulayan soyut dil yapılarıdır. etkileşimli kurulum bileşenler.


Şek. 3. Express VI paleti, Express VI'yı bir blok şemaya yerleştirir ve Express VI'yı simge görünümünde görüntüler


Ekspres VP'yi normal VP'den büyük mavi simgeyle ayırt edebilirsiniz. Express VI'yı bir blok diyagrama ilk kez yerleştirdiğinizde, bir özelleştirme iletişim kutusu görünür. Konfigürasyon tamamlandıktan sonra LabVIEW, oluşturduğunuz Express VI konfigürasyonuna dayalı olarak kodu otomatik olarak üretir. Express VI simgesine çift tıklayarak iletişim kutusunu yeniden açarak bu kodu görüntüleyebilir ve düzenleyebilir veya Express VI'nın ayarlarını değiştirebilirsiniz.

Örnek olarak, bunları uygulamak için veri girme görevini düşünün program analizi. LabVIEW, binlerce aygıta yönelik sürücüleri içerdiğinden, çeşitli donanımlarla arayüz oluşturmayı çok kolaylaştırır. Veri toplama görevi yalnızca birkaç Başkan Yardımcısının tasarımıyla değil, aynı zamanda daha fazla Başkan Yardımcısının tasarımıyla da gerçekleştirilebilir. basit seçenek- VP'yi ifade edin.

DAQ Assistance Express VI ayarlarında okuma/yazma kanallarını belirlemek ve örnekleme hızı, ölçeklendirme, senkronizasyon ve tetikleyiciler gibi parametreleri yapılandırmak yeterlidir. Ek olarak Express VI, seçilen veri toplama ayarlarının doğru olduğunu doğrulamak için cihazdan önceden veri toplama olanağı sağlar.


Şekil 4. DAQ Assistant Express VI, tetikleme zamanlamasını ve kanal parametrelerini yapılandırmayı kolaylaştırır



Şekil 5. DAQ Assistant Express VI'ya eşdeğer G kodu


Tüm avantajlarına rağmen Express VI'lar, geleneksel sanal cihazlar kullanılarak uygulanan cihazın çalışma modunun düşük seviyeli kontrolü ve yapılandırılması olanağını sağlamaz. LabVIEW'da yeni olan kullanıcılar, önceden yapılandırılmış bir Express VI'yı bir dizi normal VI'ya dönüştüren yerleşik bir işlevi kullanabilir. Bu, yeni başlayanların düşük seviyeli kodu öğrenmesine yardımcı olabilir. Sadece Ön Paneli Aç satırını seçin içerik menüsü VI'yı blok diyagram üzerinde ifade edin. Herhangi bir Express VI'nın birkaç normal VI'nın bir kombinasyonu ile değiştirilebileceği ve LabVIEW Profesyonel Gelişim Sistemi sürümünün kendi Express VI'larınızı oluşturmanıza olanak sağladığı unutulmamalıdır.

scripts.m dosyaları için destek
LabVIEW MathScript RT modülüyle, geleneksel olarak matematiksel modelleme ve analizde, sinyal işlemede ve karmaşık matematiksel hesaplamalarda kullanılan *.m dosya komut dosyalarını içe aktarabilir, düzenleyebilir ve çalıştırabilirsiniz. Masaüstü veya gerçek zamanlı donanım için bağımsız uygulamalar oluşturmak amacıyla bunları G koduyla birlikte kullanabilirsiniz.

LabVIEW'da MathScript ile çalışmanın birkaç yolu vardır. Komut dosyalarıyla etkileşimli modda çalışmak için Şekil 2'de gösterilen MathScript penceresini kullanın. 6


Şekil 6. Etkileşimli geliştirme MathScript penceresindeki metin algoritması


Bir LabVIEW uygulamasında *.m komut dosyalarını kullanmak ve metin ile grafik programlama yeteneklerini birleştirmek için Şekil 7'de gösterilen MathScript düğümünü kullanmalısınız. MathScript düğümünü kullanmak, metin algoritmalarını VI koduna yerleştirmenize ve grafik yetenekleri senaryo parametrelerini (düğmeler, kaydırıcılar, düğmeler, grafikler ve diğer öğeler) yönetmek için arayüz.


Şekil 7. MathScript düğümü, G kodunda .m komut dosyalarının kullanımını kolaylaştırır


LabVIEW MathScript RT modülü kendi *.m komut dosyası motoruna sahiptir ve üçüncü taraf kurulumu gerektirmez yazılım. MathScript düğümünü kullanmak, metin tabanlı algoritmaların, LabVIEW'in yüksek derecede donanım entegrasyonunun, etkileşimli kullanıcı arayüzünün ve bu makalede tartışılan diğer programlama tekniklerinin faydalarını tek bir uygulamada birleştirmenize olanak tanır.

Nesne yönelimli programlama
Nesneye yönelik programlama en popüler programlama türlerinden biridir. Bu yaklaşım, bir programdaki birçok farklı bileşeni tek nesne sınıflarında birleştirmenize olanak tanır. Sınıf tanımı, bir nesnenin özelliklerini ve nesnenin gerçekleştirebileceği, genellikle özellikler ve yöntemler olarak adlandırılan eylemlerin açıklamasını içerir. Sınıflar, özellikleri ve yöntemleri devralan ve bunları geçersiz kılabilen veya yenilerini ekleyebilen alt öğelere sahip olabilir.


Şekil 8. Nesne yönelimli yaklaşım, VI'nın sınıflarına (resimdeki örnek) ve ilgili özellik ve işlevlere dayanmaktadır.


LabVIEW'da OOP kullanmak sürüm 8.2'den beri mümkün hale geldi

Bu yaklaşımın başlıca avantajları şunlardır:

  • . Kapsülleme: Kapsülleme, veri ve yöntemlerin yalnızca sınıfın üyesi olan VI'lar aracılığıyla erişilebilecek şekilde bir sınıf halinde gruplanmasıdır. Bu yaklaşım, kod bölümlerini ayırmanıza ve bunları değiştirmenin programın geri kalanındaki kodu etkilemeyeceğinden emin olmanıza olanak tanır.
  • . Kalıtım: Kalıtım, yeni sınıfları tanımlamak için mevcut sınıfları temel olarak kullanmanıza olanak tanır. Yeni bir sınıf oluşturulduğunda, sınıfın veri türlerini ve VI üyelerini devralır ve böylece ana sınıfın özelliklerini ve yöntemlerini uygular. Sınıfın işlevselliğini değiştirmek için kendi VI'larınızı da eklemeniz mümkündür.
  • . Dinamik dağıtım: Sınıf hiyerarşisinde aynı adı taşıyan birden fazla VI kullanılarak yöntemlerin tanımlanması mümkündür. Hangi VI'nın çağrılacağına karar programın yürütülmesi aşamasında verildiği için bu yönteme dinamik dağıtım adı verilir.
Bu OOP özellikleri, kodu daha anlaşılır ve ölçeklenebilir hale getirmenize ve ayrıca gerekirse VI'ya erişimi sınırlamanıza olanak tanır.

Modelleme ve simülasyon
Modelleme ve simülasyon fiziksel sistemler- diferansiyel denklemlerle tanımlanan sistemlerin geliştirilmesinde popüler bir yaklaşım. Modelin incelenmesi, dinamik sistemlerin özelliklerini belirlememize ve gerekli davranışa sahip bir kontrol ünitesi geliştirmemize olanak sağlar.

Şekil 9, LabVIEW'de yerleşik algoritmaları belirli bir süre boyunca gerçek zamanlı olarak kullanarak bir diferansiyel denklemi çözen Kontrol ve Simülasyon Döngüsünü göstermektedir. Bu programlama yaklaşımı da G dili gibi veri akışı tabanlıdır ancak genellikle sinyal akışı olarak adlandırılır. Şekil 9'da gösterildiği gibi matematiksel modelleme tekniklerini G Veri Akışları ve MathScript Düğümü gibi diğer tekniklerle birleştirebilirsiniz.


Pirinç. 9. Simülasyon diyagramı sinyal yayılımını, G/Ç donanımını ve MathScript düğümünü gösterir.


Kontrol ve Simülasyon Döngüsü, gerçek zamanlı bir işletim sistemi çalıştıran cihazlarda doğrusal sabit sistem modellerini uygulamak için kullanılan işlevleri destekler. Bir transfer fonksiyonu, sıfır kutup diyagramı ve diferansiyel denklem sistemi belirterek ayrık modelleri tanımlamak için bu fonksiyonları kullanabilirsiniz. Zaman adımı yanıtı veya Bode grafiği gibi zaman ve frekans alanı analiz araçları, açık ve kapalı döngü kontrol/simülasyonlarının davranışını etkileşimli olarak analiz etmenize olanak tanır. Ayrıca MathWorks, Inc. programlama ortamında geliştirilen yerleşik model dönüştürme araçlarını da kullanabilirsiniz. LabVIEW ortamında kullanılmalarına olanak sağlayacak Simulink®. Bu dinamik sistemler, kontrol sistemi prototipleri ve donanım yazılımı simülasyon uygulamaları geliştirmek için ideal olan LabVIEW Gerçek Zamanlı Modül kütüphanesinin işlevselliği sayesinde birden fazla program dönüştürme adımı gerektirmeden gerçek zamanlı işletim sistemi cihazlarına kurulabilir.

Durum diyagramları
NI LabVIEW Statechart modülü, geliştiriciye bir sistemin işlevselliğini durum diyagramlarını kullanarak mümkün olan en soyut şekilde tanımlama yeteneği sağlar. LabVIEW kodunu diyagram durumlarına entegre etmek, uygulamanın gerçek çalışma spesifikasyonunu oluşturmanıza olanak tanır. NI LabVIEW Statechart modülü, geleneksel durum çizelgelerinin işlevselliğine hiyerarşik yerleştirme ve paralel yürütme düzenleme yeteneği ekler. Durum diyagramlarının, bir sistemin olaylara nasıl tepki verdiğini tanımlamanıza izin verdiğine dikkat edilmelidir; bu da onları, gömülü cihazlar, kontrol sistemleri ve karmaşık kullanıcı arayüzleri gibi reaktif sistemleri geliştirmek için çok yararlı bir araç haline getirir.


Pirinç. 10. LabVIEW Durum Tablosu modülü, durum diyagramına dayalı bir sistemi tanımlar.


Çoğu zaman durum çizelgeleri, bir uygulamayı veri toplama, veri çıkışı, ağ iletişimi, veri kaydı ve kullanıcı arayüzü yönetimi gibi alt sistemlere bölmek için kullanılır. Bu durumda durum diyagramları, durumlar (alt sistemler) arasında hangi bilgilerin aktarıldığını ve bunların hangi sırayla çalıştığını tanımlar.

Statechart tabanlı uygulama mimarisi, karmaşık yazılım sistemlerini, özellikle de dinamik sistem denetleyicileri, karmaşık kullanıcı arayüzleri ve dijital iletişim protokolleri gibi olaya yanıt veren sistemleri daha verimli bir şekilde geliştirmenize olanak tanır.

FPGA için VHDL
LabVIEW FPGA modülü, FPGA kodunu yazmak için G dilini kullanmanızı sağlar. Ancak diğer geliştirme tekniklerinde olduğu gibi önceden yazılmış kodu kullanabilir veya sadece programın nasıl uygulanacağını seçme seçeneğine sahip olabilirsiniz. Çoğu FPGA, metin tabanlı akış programlama dili VHDL kullanılarak programlanır. Mevcut IP bloklarını G'de yeniden yazmak yerine, Bileşen Düzeyinde IP (CLIP) düğümü kullanarak VHDL kodunu içe aktarabilirsiniz. Genellikle blok diyagram elemanları arasındaki arayüzü yapılandırmak için bir CLIP XML dosyasına ihtiyacınız vardır, ancak LabVIEW'da bunu otomatik olarak yapmanıza izin veren bir CLIP İçe Aktarma Sihirbazı vardır. Şekil 2'de gösterildiği gibi fare ile blok diyagramına sürüklenebilen ve uygulamada kullanılabilen IP bloğunun giriş ve çıkışlarının bir listesini görüntüler. on bir.


Pirinç. on bir. KLİP düğümü.


NI, LabVIEW FPGA modülünde Xilinix FPGA'leri ve Xilinx yazılım araç setini kullandığından, uyumlu bir çekirdek oluşturmak için Xilinx çekirdek oluşturucusunu kullanabilirsiniz. Herhangi bir yazılım mikroişlemcisini oluşturmak için Xilinx Embedded Development Kit'i de kullanabilirsiniz. Ve son olarak birçok üçüncü taraf geliştiriciler sağlamak Çeşitli türler Veri yolu yönetimi, sinyal işleme ve belirli çekirdekler için IP blokları.

C benzeri kodun entegrasyonu
Sıralı metin kodunu blok diyagram VI'larınızda çeşitli şekillerde kullanabilirsiniz. İlk yol, değişken tanımları ve satır sonlarında noktalı virgülleri olan, C benzeri bir sözdizimini destekleyen Formül Düğümü'dür.

Satır İçi C Düğümü Formül Düğümüne benzer ve şunları sağlar: Ek özellikler prosedür çağrılarının gereksiz yükü olmadan düşük seviyeli programlama ve başlık dosyaları için destek. Satır İçi C Düğümünü, C kodunda sözdizimsel olarak parantez içine alınmış #defines ifadeleri de dahil olmak üzere herhangi bir C kodunu satır içi yapmak için kullanabilirsiniz.

Yürütülebilir dosyalarla etkileşim kurma
LabVIEW'da programlama yaparken, daha önce başka ortamlarda geliştirilmiş algoritmaları yeniden kullanmak için genellikle LabVIEW'da yazılmış bir uygulamadan derlenmiş dosyalara ve kitaplıklara erişmeniz gerekir. Ayrıca proje oluştururken LabVIEW'da yazılan uygulamalara diğer uygulamalardan erişmeniz gerekir.

LabVIEW bu sorunları çözmek için geniş bir yelpazede farklı araçlar sağlar. İlk olarak LabVIEW, DLL işlevlerini çağırabildiği gibi ActiveX ve .NET arayüzlerini de kullanabilir.

İkincisi, LabVIEW'da yazılan bir uygulama, işlevselliğini DLL olarak veya ActiveX araçlarını kullanan başka bir uygulamaya sunabilir.

LabVIEW uygulamanızda kullanmak istediğiniz C kaynak kodunuz olması durumunda derleyebilirsiniz. DLL ve Çağrı Kitaplığı İşlev düğümünü kullanarak bağlayın. Örneğin, organize edebilirsiniz paralel hesaplama C dilinde yazılmış algoritmalar kullanılacak, paralel iş parçacıklarının yönetimi ise LabVIEW dilinde yazılmış bir program tarafından gerçekleştirilecek. Harici kütüphanelerle çalışmayı kolaylaştırmak için LabVIEW, uygun kütüphaneleri (Windows . dll dosyası, Mac OS .framework dosyası veya Linux .so dosyası).

Ayrıca System Exec.vi'yi kullanarak arayüzü kullanabilirsiniz. Komut satırı işletim sistemi.

Çeşitli programlama tekniklerinin tek bir geliştirme ortamında birleştirilmesi, diğer dillerde geliştirilen algoritmaların yeniden kullanılmasını mümkün kılar. Ayrıca geliştirici, yüksek seviyeli ve düşük seviyeli işlemleri tek bir uygulamada birleştirerek kodu daha esnek ve görsel hale getirebilir. Çeşitli soyutlama seviyeleri, karmaşık algoritmaların görselleştirilmesine olanak tanırken aynı zamanda düşük seviyeli uygulama ve donanım kontrolüne de olanak tanır. Sıkı donanım entegrasyonuyla çok çekirdekli, FPGA ve gömülü işlemci platformlarındaki sinyalleri işlemek için her iki yaklaşımı da kullanabilirsiniz.

Sorunların genellikle birden fazla çözümü vardır ve LabVIEW programlama ortamı, ihtiyaçlarınıza en uygun çözümü seçmenize izin verecek kadar esnektir.

Simulink® The MathWorks, Inc.'in tescilli ticari markasıdır.

ARM, Keil ve µVision, ARM Ltd veya bağlı kuruluşlarının ticari markaları ve tescilli ticari markalarıdır.