CPU avtomatlaşdırılmış idarəetmə sistemləri və sənaye təhlükəsizliyi. LabView Lab görünüşü ilə tanış olmaq

Salam həmkarlar!

Nisbətən qısa bir məqalədə LabVIEW proqramlaşdırma dili haqqında danışmaq istərdim. Bu çox maraqlı məhsul, təəssüf ki, geniş populyarlıq qazanmır və mən bu boşluğu müəyyən qədər doldurmaq istərdim.

LabVIEW nədir?

LabVIEW Milli Alətlərin əsas məhsullarından biridir. Əvvəla, qeyd etmək lazımdır ki, LabVIEW qısaltmasıdır Laboratoriya natiqlik V virtual I alətlər E mühəndislik W orkbench. Artıq adda laboratoriya tədqiqatlarına, ölçmələrə və məlumatların toplanmasına diqqəti görmək olar. Həqiqətən, LabVIEW-də SCADA sistemi qurmaq “ənənəvi” inkişaf alətlərindən istifadə etməkdən bir qədər asandır. Bu yazıda LabVIEW-in mümkün əhatə dairəsinin bir qədər daha geniş olduğunu göstərmək istərdim. Bu, kökündən fərqli bir proqramlaşdırma dilidir və ya istəsəniz, proqramlaşdırmanın bütöv bir “fəlsəfəsidir”. Sizi bir az fərqli düşünməyə məcbur edən və bəzən tərtibatçı üçün tamamilə fantastik imkanlar təqdim edən funksional dil. LabVIEW ümumiyyətlə proqramlaşdırma dilidirmi? Bu mübahisəli məsələdir - burada standart yoxdur, məsələn, ANSI C. Dar tərtibatçı dairələrində biz “G” dilində yazdığımızı deyirik. Formal olaraq belə bir dil mövcud deyil, lakin bu inkişaf alətinin gözəlliyi budur: versiyadan versiyaya qədər dilə daha çox yeni konstruksiyalar daxil edilir. Təsəvvür etmək çətindir ki, C-nin növbəti reenkarnasiyası, məsələn, for loopu üçün yeni bir quruluş təqdim edəcək. LabVIEW-də isə bu tamamilə mümkündür.
Bununla belə, qeyd etmək lazımdır ki, LabVIEW TIOBE proqramlaşdırma dili reytinqinə daxildir, hazırda otuzuncu yeri tutur - Proloq və Fortran arasında bir yerdə.

NI LabVIEW - yaranma tarixi

National Instruments 1976-cı ildə Texas ştatının Ostin şəhərində üç təsisçi, Jeff Kodosky, James Truchard və Bill Nowlin tərəfindən təsis edilmişdir. Şirkətin əsas ixtisası bu idi alətlərölçmələr və istehsalın avtomatlaşdırılması üçün.
LabVIEW-in ilk versiyası şirkət qurulduqdan on il sonra - 1986-cı ildə buraxıldı (bu, Apple Mac). NI mühəndisləri “ənənəvi” proqramlaşdırma dillərinə meydan oxumaq qərarına gəldilər və tamamilə qrafik inkişaf mühiti yaratdılar. Jeff qrafik yanaşmanın əsas ideoloqu oldu. İlbəil yeni versiyalar buraxıldı. İlk çarpaz platforma versiyası (Windows daxil olmaqla) 1993-cü ildə buraxılmış 3-cü versiya idi. Cari versiya keçən il buraxılmış 8.6-dır.

Şirkətin baş ofisi bu gün də Ostində yerləşir. Bu gün şirkətdə təxminən dörd min nəfər işləyir və demək olar ki, qırx ölkədə ofisləri var (Rusiyada da ofis var)

LabVIEW-ə giriş

LabVIEW ilə tanışlığım təxminən on il əvvəl baş verdi. Mən yeni müqavilə əsasında işləməyə başladım və o vaxtkı müdirim mənə “indi bunun üzərində işləyəcəksən” sözləri yazılmış bir yığın CD verdi. LabVIEW-i quraşdırdım (beşinci versiya idi) və bir müddət oynadıqdan sonra dedim ki, BU ilə ciddi bir şey etmək olmaz, Delphidə bunu “köhnə üsulla” etməyi üstün tuturam... mən - sadəcə sınamamısan. Bir-iki həftə işləyin. Bir müddət sonra başa düşəcəyəm ki, daha LabVIEW-dən başqa heç nə yaza bilməyəcəm. “İlk baxışdan sevgi” olmasa da, bu dilə sadəcə aşiq oldum.

Ümumiyyətlə, qrafik və mətn proqramlaşdırma dillərini müqayisə etmək olduqca çətindir. Bu, bəlkə də, “PC” ilə “MAC” və ya “Windows” və “Linux” kimi bir müqayisədir – istədiyiniz qədər mübahisə edə bilərsiniz, lakin mübahisə tamamilə mənasızdır – hər bir sistemin mövcud olmaq hüququ var və hər birinin həm tərəfdarları, həm də əleyhdarları, Bundan əlavə, hər bir məhsulun öz yuvası var. LabVIEW çox çevik olsa da, sadəcə bir vasitədir.

Beləliklə, LabVIEW nədir?

LabVIEW çarpaz platformadır qrafik mühit tətbiqin inkişafı. LabVIEW, prinsipcə, universal proqramlaşdırma dilidir. Bu məhsul bəzən National Instruments avadanlığı ilə sıx əlaqəli olsa da, buna baxmayaraq, konkret maşınla əlaqəli deyil. Windows, Linux, MacOS üçün versiyalar var. Mənbə mətnləri portativdir və proqramlar bütün sistemlərdə eyni görünəcək. LabVIEW tərəfindən yaradılan kod da icra edilə bilər Windows Mobile və ya PalmOS (ədalət naminə qeyd etmək lazımdır ki, PalmOS-a dəstək dayandırılıb, lakin burada Palm-ın özü daha çox günahkardır). Bu dil yaratmaq üçün uğurla istifadə edilə bilər böyük sistemlər, mətnləri, şəkilləri emal etmək və verilənlər bazası ilə işləmək üçün.

LabVIEW çox yüksək səviyyəli bir dildir. Bununla belə, LabVIEW proqramlarına “aşağı səviyyəli” modulları daxil etməyə heç nə mane olmur. Assembler əlavələrindən istifadə etmək istəsəniz belə, bu da mümkündür, sadəcə olaraq DLL yaratmaq və koda zənglər daxil etmək lazımdır. Digər tərəfdən, yüksək səviyyəli dil verilənlərlə çox qeyri-trivial əməliyyatları asanlıqla yerinə yetirməyə imkan verir ki, bu da adi bir dildə bir çox sətir (onlarla sətir olmasa da) kod tuta bilər. Bununla belə, ədalətli olmaq üçün qeyd etmək lazımdır ki, aşağı səviyyəli dillərin bəzi əməliyyatlarını (məsələn, göstəricilərlə işləmək) "yüksək səviyyəli" təbiətinə görə LabVIEW-də həyata keçirmək o qədər də asan deyil. Əlbəttə ki, LabVIEW dilinə “ənənəvi” dillərdə analoqları olan əsas idarəetmə konstruksiyaları daxildir:

  • dəyişənlər (yerli və ya qlobal)
  • budaqlanma (iş quruluşu)
  • For – tamamlama yoxlanışı olan və yoxlanılan döngələr.
  • while - döngələr
  • Əməliyyatların qruplaşdırılması.

LabVIEW - proqram və dil imkanları

LabVIEW-də hazırlanmış proqram modulları “Virtual Alətlər” və ya sadəcə VI adlanır. Onlar *.vi uzantılı fayllarda saxlanılır. VI-lər LabVIEW proqramını təşkil edən tikinti bloklarıdır. Hər bir LabVIEW proqramında ən azı bir VI var. C dili baxımından, siz kifayət qədər təhlükəsiz bir funksiya ilə bənzətmə çəkə bilərsiniz, yeganə fərq LabVIEW-də bir funksiyanın bir faylda olmasıdır (həmçinin alətlər kitabxanalarını yarada bilərsiniz). Sözsüz ki, bir VI-nı digərindən VI adlandırmaq olar. Prinsipcə, hər bir VI iki hissədən ibarətdir - Blok Diaqram və Ön Panel. Blok diaqramı proqram kodudur (daha doğrusu vizual qrafik təsvir kodu) və Ön Panel interfeysdir. Klassik Hello, World! nümunəsi necə görünür:

LabVIEW məlumat axını paradiqmasına əsaslanır. Yuxarıdakı misalda sabit və göstərici terminalı bir-birinə bir xətt ilə bağlıdır. Bu xətt Wire adlanır. Siz onu "tel" adlandıra bilərsiniz. Tellər məlumatları bir elementdən digərinə ötürür. Bütün bu konsepsiya Data Flow adlanır. Blok diaqramının mahiyyəti qovşaqlardır, bəzi qovşaqların çıxışları digər qovşaqların girişləri ilə əlaqələndirilir. Düyün yalnız əməliyyat üçün lazım olan bütün məlumatlar gəldikdən sonra icraya başlayacaq. Yuxarıdakı diaqramda iki qovşaq var. Onlardan biri sabitdir. Bu node müstəqildir - dərhal icra etməyə başlayır. İkinci node bir göstəricidir. Sabitin ötürdüyü məlumatları göstərəcək (lakin dərhal deyil, məlumat sabitdən gələn kimi).

Budur bir az daha mürəkkəb bir nümunə: iki ədədi toplamaq və vurmaq. Ənənəvi dillərdə belə bir şey yazardıq

Int a, b, cəmi, mul;
//...
cəm = a + b;
mul = a * b;

LabVIEW-də belə görünür:

Qeyd edək ki, toplama və vurma avtomatik olaraq paralel olaraq həyata keçirilir. İki prosessorlu maşında hər iki prosessor avtomatik olaraq istifadə olunacaq.

Bu isə / kimi görünür döngələr üçün və if/then/else quruluşu:

Artıq qeyd edildiyi kimi, bütün elementlər paralel olaraq yerinə yetiriləcəkdir. Bir tapşırığı birdən çox prosessorda paralel olaraq yerinə yetirilə bilən bir neçə mövzuya necə paralelləşdirmək barədə düşünməyə ehtiyac yoxdur. IN son versiyalar Siz hətta konkret while dövrəsinin hansı prosessorda icra olunacağını açıq şəkildə təyin edə bilərsiniz. İndi çoxprosessorlu sistemlər üçün asanlıqla dəstəyi əldə etməyə imkan verən mətn dilləri üçün əlavələr var, lakin bu, çox güman ki, LabVIEW-də olduğu kimi heç bir yerdə asanlıqla həyata keçirilmir. (yaxşı, mən hələ də mətn dilləri ilə müqayisədə sürüşdüm). Əgər biz artıq çox iş parçacığı haqqında danışırıqsa, onda onu da qeyd etməliyik ki, tərtibatçının sərəncamında olan ipləri sinxronlaşdırmaq üçün geniş alət seçimi var - semaforlar, növbələr, görüşlər və s.

LabVIEW istifadəçi interfeyslərinin qurulması üçün zəngin element dəstlərini ehtiva edir. İnterfeyslər Delphi-də tez yaradılmışdır, lakin LabVIEW-də bu proses daha da sürətlə baş verir.

LabVIEW-in standart çatdırılmasına həmçinin ini faylları ilə işləmək üçün bloklar, reyestr, binar və test faylları ilə işləmək funksiyaları, riyazi funksiyalar, plan qurmaq üçün güclü alətlər (və laboratoriyada bu olmadan harada olardın) və əlavə olaraq daxildir. Qeyd olunan DLL-lərə zəng etmək imkanı, LabVIEW ActiveX komponentləri və .net ilə işləməyə imkan verir. Səkkizinci versiyadan başlayaraq LabVIEW-ə siniflər üçün dəstək əlavə edildi - dil obyekt yönümlü oldu. Həyata keçirilən dəstəyi tam adlandırmaq olmaz, lakin obyekt yönümlü dillərin əsas xüsusiyyətləri - irsiyyət və polimorfizm mövcuddur. Həmçinin, dilin funksionallığı əlavə modullarla genişləndirilə bilər, məsələn, NI Vision Toolkit - təsvirin işlənməsi və kompüter görməsi üçün və s. Proqram qurucusu modulundan istifadə edərək icra edilə bilən exe faylı yarada bilərsiniz. İnternet alət dəstindən istifadə edərək işləyə bilərsiniz ftp serverləri, Database Connectivity Toolkit istifadə edərək - verilənlər bazası ilə və s.

Qrafik kodun çətin oxunması fikrini tez-tez eşidə bilərsiniz. Həqiqətən, adətdən kənar, nişanlar və dirijorların bolluğu bir qədər şok edicidir. Təcrübəsiz tərtibatçılar həmçinin “vərəq” proqramları və “spagetti” proqramları yaradırlar. Bununla belə, təcrübəli LabVIEW tərtibatçısı, proqram yüzlərlə moduldan ibarət olsa belə, heç vaxt ekran ölçüsündən böyük diaqramlar yaratmayacaq. Yaxşı tərtib edilmiş proqram effektiv şəkildə “özünü sənədləşdirir”, çünki o, artıq qrafik təsvirə əsaslanır.

Yetər uzun müddətə LabVIEW-də proqramlaşdırarkən mən tam əmin idim ki, LabVIEW tərcüməçidir və blok diaqramlar daim nüvə tərəfindən şərh olunur. NI mühəndisləri ilə söhbətdən sonra məlum oldu ki, belə deyil. LabVIEW kompilyatordur (kod generasiyasının keyfiyyəti, lakin çox arzuolunmazdır). Ancaq tərtib "tezliklə" baş verir - inkişaf zamanı istənilən vaxt proqram həmişə işə hazırdır. LabVIEW kodu həmçinin LabVIEW quraşdırılmamış kompüterdə işlədilə bilən tam hüquqlu icra edilə bilən faylda tərtib edilə bilər (baxmayaraq ki, LabVIEW Run-Time tələb olunur). Siz həmçinin quraşdırma paketi yarada bilərsiniz, üçüncü tərəfin kommunal xidmətləri InstallShield növü tələb olunmur.

Paketin imkanlarının daha ətraflı təsviri bu məqalənin əhatə dairəsi xaricindədir, lakin mən sadəcə onu sınamağı təklif edirəm (linklər aşağıda verilmişdir). Böyüklərin dediyi kimi “... yeganə yol yeni proqramlaşdırma dilini mənimsəmək – onda proqramlar yazmaq”. Yaxşı, təcrübəli proqramçılar əldə etdikləri bilikləri öz ehtiyaclarına görə ekstrapolyasiya edə biləcəklər.

Salam həmkarlar!

Nisbətən qısa bir məqalədə LabVIEW proqramlaşdırma dili haqqında danışmaq istərdim. Bu çox maraqlı məhsul, təəssüf ki, geniş populyarlıq qazanmır və mən bu boşluğu müəyyən qədər doldurmaq istərdim.

LabVIEW nədir?

LabVIEW Milli Alətlərin əsas məhsullarından biridir. Əvvəla, qeyd etmək lazımdır ki, LabVIEW qısaltmasıdır Laboratoriya natiqlik V virtual I alətlər E mühəndislik W orkbench. Artıq adda laboratoriya tədqiqatlarına, ölçmələrə və məlumatların toplanmasına diqqəti görmək olar. Həqiqətən, LabVIEW-də SCADA sistemi qurmaq “ənənəvi” inkişaf alətlərindən istifadə etməkdən bir qədər asandır. Bu yazıda LabVIEW-in mümkün əhatə dairəsinin bir qədər daha geniş olduğunu göstərmək istərdim. Bu, kökündən fərqli bir proqramlaşdırma dilidir və ya istəsəniz, proqramlaşdırmanın bütöv bir “fəlsəfəsidir”. Sizi bir az fərqli düşünməyə məcbur edən və bəzən tərtibatçı üçün tamamilə fantastik imkanlar təqdim edən funksional dil. LabVIEW ümumiyyətlə proqramlaşdırma dilidirmi? Bu mübahisəli məsələdir - burada standart yoxdur, məsələn, ANSI C. Dar tərtibatçı dairələrində biz “G” dilində yazdığımızı deyirik. Formal olaraq belə bir dil mövcud deyil, lakin bu inkişaf alətinin gözəlliyi budur: versiyadan versiyaya qədər dilə daha çox yeni konstruksiyalar daxil edilir. Təsəvvür etmək çətindir ki, C-nin növbəti reenkarnasiyası, məsələn, for loopu üçün yeni bir quruluş təqdim edəcək. LabVIEW-də isə bu tamamilə mümkündür.
Bununla belə, qeyd etmək lazımdır ki, LabVIEW TIOBE proqramlaşdırma dili reytinqinə daxildir, hazırda otuzuncu yeri tutur - Proloq və Fortran arasında bir yerdə.

NI LabVIEW - yaranma tarixi

National Instruments 1976-cı ildə Texas ştatının Ostin şəhərində üç təsisçi, Jeff Kodosky, James Truchard və Bill Nowlin tərəfindən təsis edilmişdir. Şirkətin əsas ixtisası ölçmə alətləri və istehsalın avtomatlaşdırılması idi.
LabVIEW-in ilk versiyası şirkət qurulduqdan on il sonra - 1986-cı ildə buraxıldı (bu, Apple Mac üçün versiya idi). NI mühəndisləri “ənənəvi” proqramlaşdırma dillərinə meydan oxumaq qərarına gəldilər və tamamilə qrafik inkişaf mühiti yaratdılar. Jeff qrafik yanaşmanın əsas ideoloqu oldu. İlbəil yeni versiyalar buraxıldı. İlk çarpaz platforma versiyası (Windows daxil olmaqla) 1993-cü ildə buraxılmış 3-cü versiya idi. Cari versiya keçən il buraxılmış 8.6-dır.

Şirkətin baş ofisi bu gün də Ostində yerləşir. Bu gün şirkətdə təxminən dörd min nəfər işləyir və demək olar ki, qırx ölkədə ofisləri var (Rusiyada da ofis var)

LabVIEW-ə giriş

LabVIEW ilə tanışlığım təxminən on il əvvəl baş verdi. Mən yeni müqavilə əsasında işləməyə başladım və o vaxtkı müdirim mənə “indi bunun üzərində işləyəcəksən” sözləri yazılmış bir yığın CD verdi. LabVIEW-i quraşdırdım (beşinci versiya idi) və bir müddət oynadıqdan sonra dedim ki, BU ilə ciddi bir şey etmək olmaz, Delphidə bunu “köhnə üsulla” etməyi üstün tuturam... mən - sadəcə sınamamısan. Bir-iki həftə işləyin. Bir müddət sonra başa düşəcəyəm ki, daha LabVIEW-dən başqa heç nə yaza bilməyəcəm. “İlk baxışdan sevgi” olmasa da, bu dilə sadəcə aşiq oldum.

Ümumiyyətlə, qrafik və mətn proqramlaşdırma dillərini müqayisə etmək olduqca çətindir. Bu, bəlkə də, “PC” ilə “MAC” və ya “Windows” və “Linux” kimi bir müqayisədir – istədiyiniz qədər mübahisə edə bilərsiniz, lakin mübahisə tamamilə mənasızdır – hər bir sistemin mövcud olmaq hüququ var və hər birinin həm tərəfdarları, həm də əleyhdarları, Bundan əlavə, hər bir məhsulun öz yuvası var. LabVIEW çox çevik olsa da, sadəcə bir vasitədir.

Beləliklə, LabVIEW nədir?

LabVIEW çarpaz platformalı qrafik proqram inkişaf mühitidir. LabVIEW, prinsipcə, universal proqramlaşdırma dilidir. Bu məhsul bəzən National Instruments avadanlığı ilə sıx əlaqəli olsa da, buna baxmayaraq, konkret maşınla əlaqəli deyil. Windows, Linux, MacOS üçün versiyalar var. Mənbə kodu portativdir və proqramlar bütün sistemlərdə eyni görünəcək. LabVIEW tərəfindən yaradılan kod Windows Mobile və ya PalmOS-da da icra edilə bilər (ədalət naminə qeyd etmək lazımdır ki, PalmOS-a dəstək dayandırılıb, lakin burada Palm-ın özü daha çox günahkardır). Bu dildən mətnlərin, şəkillərin emalı və verilənlər bazası ilə işləmək üçün böyük sistemlər yaratmaq üçün uğurla istifadə oluna bilər.

LabVIEW çox yüksək səviyyəli bir dildir. Bununla belə, LabVIEW proqramlarına “aşağı səviyyəli” modulları daxil etməyə heç nə mane olmur. Assembler əlavələrindən istifadə etmək istəsəniz belə, bu da mümkündür, sadəcə olaraq DLL yaratmaq və koda zənglər daxil etmək lazımdır. Digər tərəfdən, yüksək səviyyəli dil verilənlərlə çox qeyri-trivial əməliyyatları asanlıqla yerinə yetirməyə imkan verir ki, bu da adi bir dildə bir çox sətir (onlarla sətir olmasa da) kod tuta bilər. Bununla belə, ədalətli olmaq üçün qeyd etmək lazımdır ki, aşağı səviyyəli dillərin bəzi əməliyyatlarını (məsələn, göstəricilərlə işləmək) "yüksək səviyyəli" təbiətinə görə LabVIEW-də həyata keçirmək o qədər də asan deyil. Əlbəttə ki, LabVIEW dilinə “ənənəvi” dillərdə analoqları olan əsas idarəetmə konstruksiyaları daxildir:

  • dəyişənlər (yerli və ya qlobal)
  • budaqlanma (iş quruluşu)
  • For – tamamlama yoxlanışı olan və yoxlanılan döngələr.
  • while - döngələr
  • Əməliyyatların qruplaşdırılması.

LabVIEW - proqram və dil imkanları

LabVIEW-də hazırlanmış proqram modulları “Virtual Alətlər” və ya sadəcə VI adlanır. Onlar *.vi uzantılı fayllarda saxlanılır. VI-lər LabVIEW proqramını təşkil edən tikinti bloklarıdır. Hər bir LabVIEW proqramında ən azı bir VI var. C dili baxımından, siz kifayət qədər təhlükəsiz bir funksiya ilə bənzətmə çəkə bilərsiniz, yeganə fərq LabVIEW-də bir funksiyanın bir faylda olmasıdır (həmçinin alətlər kitabxanalarını yarada bilərsiniz). Sözsüz ki, bir VI-nı digərindən VI adlandırmaq olar. Prinsipcə, hər bir VI iki hissədən ibarətdir - Blok Diaqram və Ön Panel. Blok diaqramı proqram kodudur (daha doğrusu kodun vizual qrafik təsviri), Ön Panel isə interfeysdir. Klassik Hello, World! nümunəsi necə görünür:

LabVIEW məlumat axını paradiqmasına əsaslanır. Yuxarıdakı misalda sabit və göstərici terminalı bir-birinə bir xətt ilə bağlıdır. Bu xətt Wire adlanır. Siz onu "tel" adlandıra bilərsiniz. Tellər məlumatları bir elementdən digərinə ötürür. Bütün bu konsepsiya Data Flow adlanır. Blok diaqramının mahiyyəti qovşaqlardır, bəzi qovşaqların çıxışları digər qovşaqların girişləri ilə əlaqələndirilir. Düyün yalnız əməliyyat üçün lazım olan bütün məlumatlar gəldikdən sonra icraya başlayacaq. Yuxarıdakı diaqramda iki qovşaq var. Onlardan biri sabitdir. Bu node müstəqildir - dərhal icra etməyə başlayır. İkinci node bir göstəricidir. Sabitin ötürdüyü məlumatları göstərəcək (lakin dərhal deyil, məlumat sabitdən gələn kimi).

Budur bir az daha mürəkkəb bir nümunə: iki ədədi toplamaq və vurmaq. Ənənəvi dillərdə belə bir şey yazardıq

Int a, b, cəmi, mul;
//...
cəm = a + b;
mul = a * b;

LabVIEW-də belə görünür:

Qeyd edək ki, toplama və vurma avtomatik olaraq paralel olaraq həyata keçirilir. İki prosessorlu maşında hər iki prosessor avtomatik olaraq istifadə olunacaq.

Və burada while / for döngələri və if / then / else strukturu belə görünür:

Artıq qeyd edildiyi kimi, bütün elementlər paralel olaraq yerinə yetiriləcəkdir. Bir tapşırığı birdən çox prosessorda paralel olaraq yerinə yetirilə bilən bir neçə mövzuya necə paralelləşdirmək barədə düşünməyə ehtiyac yoxdur. Ən son versiyalarda siz hətta konkret while dövrəsinin hansı prosessorda icra olunacağını açıq şəkildə təyin edə bilərsiniz. İndi çoxprosessorlu sistemlər üçün asanlıqla dəstəyi əldə etməyə imkan verən mətn dilləri üçün əlavələr var, lakin bu, çox güman ki, LabVIEW-də olduğu kimi heç bir yerdə asanlıqla həyata keçirilmir. (yaxşı, mən hələ də mətn dilləri ilə müqayisədə sürüşdüm). Əgər biz artıq çox iş parçacığı haqqında danışırıqsa, onda onu da qeyd etməliyik ki, tərtibatçının sərəncamında olan ipləri sinxronlaşdırmaq üçün geniş alət seçimi var - semaforlar, növbələr, görüşlər və s.

LabVIEW istifadəçi interfeyslərinin qurulması üçün zəngin element dəstlərini ehtiva edir. İnterfeyslər Delphi-də tez yaradılmışdır, lakin LabVIEW-də bu proses daha da sürətlə baş verir.

LabVIEW-in standart çatdırılmasına həmçinin ini faylları ilə işləmək üçün bloklar, reyestr, binar və test faylları ilə işləmək funksiyaları, riyazi funksiyalar, plan qurmaq üçün güclü alətlər (və laboratoriyada bu olmadan harada olardın) və əlavə olaraq daxildir. Qeyd olunan DLL-lərə zəng etmək imkanı, LabVIEW ActiveX komponentləri və .net ilə işləməyə imkan verir. Səkkizinci versiyadan başlayaraq LabVIEW-ə siniflər üçün dəstək əlavə edildi - dil obyekt yönümlü oldu. Həyata keçirilən dəstəyi tam adlandırmaq olmaz, lakin obyekt yönümlü dillərin əsas xüsusiyyətləri - irsiyyət və polimorfizm mövcuddur. Həmçinin, dilin funksionallığı əlavə modullarla genişləndirilə bilər, məsələn, NI Vision Toolkit - təsvirin işlənməsi və kompüter görməsi üçün və s. Proqram qurucusu modulundan istifadə edərək icra edilə bilən exe faylı yarada bilərsiniz. İnternet Alətlər dəstindən istifadə etməklə siz ftp serverləri ilə, Verilənlər Bazası Bağlantısı Alət dəstindən istifadə etməklə - verilənlər bazası ilə və s. işləyə bilərsiniz.

Qrafik kodun çətin oxunması fikrini tez-tez eşidə bilərsiniz. Həqiqətən, adətdən kənar, nişanlar və dirijorların bolluğu bir qədər şok edicidir. Təcrübəsiz tərtibatçılar həmçinin “vərəq” proqramları və “spagetti” proqramları yaradırlar. Bununla belə, təcrübəli LabVIEW tərtibatçısı, proqram yüzlərlə moduldan ibarət olsa belə, heç vaxt ekran ölçüsündən böyük diaqramlar yaratmayacaq. Yaxşı tərtib edilmiş proqram effektiv şəkildə “özünü sənədləşdirir”, çünki o, artıq qrafik təsvirə əsaslanır.

Uzun müddət LabVIEW-də proqramlaşdırma zamanı mən tam əmin idim ki, LabVIEW tərcüməçidir və blok diaqramlar daim nüvə tərəfindən şərh olunur. NI mühəndisləri ilə söhbətdən sonra məlum oldu ki, belə deyil. LabVIEW kompilyatordur (kod generasiyasının keyfiyyəti, lakin çox arzuolunmazdır). Ancaq tərtib "tezliklə" baş verir - inkişaf zamanı istənilən vaxt proqram həmişə işə hazırdır. LabVIEW kodu həmçinin LabVIEW quraşdırılmamış kompüterdə işlədilə bilən tam hüquqlu icra edilə bilən faylda tərtib edilə bilər (baxmayaraq ki, LabVIEW Run-Time tələb olunur). Siz həmçinin quraşdırıcı quraşdırma paketini yığa bilərsiniz; InstallShield kimi üçüncü tərəfin yardım proqramları tələb olunmur.

Paketin imkanlarının daha ətraflı təsviri bu məqalənin əhatə dairəsi xaricindədir, lakin mən sadəcə onu sınamağı təklif edirəm (linklər aşağıda verilmişdir). Böyüklərin dediyi kimi, “... yeni proqramlaşdırma dilini mənimsəməyin yeganə yolu onda proqramlar yazmaqdır”. Yaxşı, təcrübəli proqramçılar əldə etdikləri bilikləri öz ehtiyaclarına görə ekstrapolyasiya edə biləcəklər.

Mikrokontroller cihazlarının demək olar ki, bütün tərtibatçıları, istər həvəskarlar, istərsə də peşəkarlar, gec-tez mikrokontroller cihazını "böyük qardaşına", yəni PC-yə qoşmalıdırlar. Bu zaman sual yaranır: mikrokontroller ilə mübadilə etmək, ondan alınan məlumatları təhlil etmək və emal etmək üçün hansı proqram təminatından istifadə etməliyəm? Çox vaxt MK-ni kompüterlə dəyişdirmək üçün RS232 interfeysindən və protokoldan istifadə edirlər - köhnə yaxşı COM portu bu və ya digər icrada.

Kompüter tərəfində müxtəlif terminal proqramları istifadə olunur, onlardan yüzlərlədir. Amma bu proqramlar yalnız məlumatların qəbulunu və ötürülməsini təmin edir. Onu hansısa şəkildə emal etmək və vizual formada vizuallaşdırmaq çətindir.

Bəziləri bu cür proqramı müstəqil olaraq hansısa proqramlaşdırma dilində (Delphi, C++) yazır, lazımi funksionallığı təmin edir. Ancaq bu iş asan deyil, dilin özündən əlavə cihazı bilmək lazımdır əməliyyat sistemi, rabitə portları ilə işləmə üsulları, əsas şeydən yayındıran bir çox digər texniki incəliklər - proqram alqoritminin həyata keçirilməsi. Ümumiyyətlə, eyni zamanda Windows/Unix proqramçısı olmaq.

Virtual alətlər (vi) anlayışı bu yanaşmalardan kəskin şəkildə fərqlənir. Bu məqalə Nationals Instruments-dan LabView proqram məhsulunu müzakirə edəcək. Mən bu gözəl məhsulu yenicə mənimsəməyə başlayıram, ona görə də qeyri-dəqiqliklər və səhvlər edə bilərəm. Mütəxəssislər sizi düzəldəcəklər :-)) LabView tam olaraq nədir?

LabView, yazılmış proqramları işə salmaq üçün inkişaf mühiti və platformadır qrafik dili National Instruments-dan "G" proqramlaşdırması.

Danışan sadə dildə, LabView - Bu, müxtəlif alətlərdən, laboratoriya qurğularından və s.-dən məlumatların toplanması, emalı, vizuallaşdırılması tapşırıqları üçün proqramlar yaratmaq üçün bir mühitdir. Həm də idarəetmə üçün texnoloji proseslər və cihazlar. Bununla belə, LabView-dən istifadə edərək olduqca adi proqram təminatı yarada bilərsiniz. Bu məhsulu ətraflı təsvir etmək və onunla işləmək fikrim yoxdur. LabView-də yazılmış minlərlə səhifəlik əla sənədlər və yüzlərlə kitab var. İnternet LabView-ə həsr olunmuş resurslarla doludur, burada bütün suallarınıza cavab ala bilərsiniz.

Məqalənin məqsədi ənənəvi proqramlaşdırma ilə müqayisədə kompüter üçün proqramlar yaratmağın nə qədər sadə və rahat olduğunu və LabView-in hansı gücü daşıdığını göstərməkdir. (Əslində bu mübahisəlidir, çünki ənənəvi proqramlaşdırmada bunu Delphi-də etmək daha çətin deyil. Səmərəlilik baxımından isə daha pis, hətta yaxşı deyil. Amma bunun üçün Delphi-ni daha uzun müddət öyrənmək lazımdır. Hər şey tezdir. və demək olar ki, dərhal təmizlədim.Bir neçə təlimatı öyrəndim və hər cür siferblatları hasarlamaq üçün irəli getdim.Deməli, proqramçılar üçün bu, itin beşinci ayağı kimidir, amma mənim kimi kompüterdən uzaq olan yoldaşlar üçün bu, sadəcə bir şeydir. bir dəfə, yarım saat ərzində, ilk dəfə LabView-u görəndə, çətənə istixanası üçün sulama və qızdırmaq üçün nazik əl idarəsindən istifadə edərək vəhşi sistem qurdum.Hər növ PID nəzarətçiləri ilə.Onu laboratoriyanın potensiometrlərinə və sensorlarına gətirdim. Texnikimizdə olan və bu cəhənnəm qurğusunu işə salan dəzgah.Və hər şey dərhal, sazlamadan işlədi.Yeri gəlmişkən, hadron kollayderinin bütün avadanlıqları LabView-də işləyir, eləcə də bir çox elmi avadanlıq.Qeyd: DI HALT) Axı, kompüter proqramlaşdırması əksər elektronika mühəndisləri üçün yaddır, elə deyilmi? Düzəltməyə çalışacağımız budur. Sferik vakuum atlarını öyrənməmək üçün özümüzə təyin edəcəyik və sadə bir vəzifə həyata keçirəcəyik. Tapşırıq həqiqətən sadədir, lakin onun əsasında LabView-də proqramlaşdırmanın əsas prinsiplərini başa düşə bilərsiniz. Biz LabView 2010 versiyasından istifadə edəcəyik. Digər versiyalar üçün fərqlər minimal olacaq.

Tapşırıq
Bizim haqqımız var AVR mikro nəzarət cihazı, RS232 vasitəsilə kompüterə qoşulur. Nəzarətçi proqram təminatı ilə yüklənir, ona görə nəzarətçi ADC girişlərindən birində gərginlik dəyərini ölçür və ADC kodunu (0-dan 1023-ə qədər) seriyalı kanal vasitəsilə kompüterə ötürür. ADC-dən məlumat axını qəbul edəcək, ADC kodunu ekrana çıxaracaq, ADC kodunu voltla gərginlik dəyərinə çevirəcək, gərginliyin dəyərini voltla göstərəcək və zamanla gərginliyin dəyişməsinin qrafikini çəkəcək bir PC proqramı yazmaq lazımdır.

Yəqin ki, sözlər kifayət qədərdir, başlayaq!

Beləliklə, iş üçün bizə nə lazımdır:

  • Əslində LabView özü. Sınaq versiyasını NI saytından yükləyə bilərsiniz: http://www.ni.com/trylabview/. Pirat versiya da heç bir problem olmadan google-da axtarıla bilər. Yeri gəlmişkən, rutracker.org saytında bir ton pirat versiyaya əlavə olaraq, Linux üçün qeydiyyata ehtiyac olmadığı bir versiya da var. NI açıq mənbə ilə yarı yolda görüşməyə qərar verdi?
  • Həmçinin NI VISA komponentini yükləmək lazımdır. Bu proqram olmadan, LabView kompüterdəki COM portunu "görməyəcək". VISA rabitə portları ilə işləmək üçün funksiyaları və daha çoxunu ehtiva edir. Siz onu joule.ni.com saytından yükləyə bilərsiniz. LabView və VISA quraşdırın. Bu proqram təminatının quraşdırılması standartdır və heç bir xüsusi funksiyaya malik deyil.

İlk növbədə, VISA-nın sistemdə COM portu tapdığından və onunla düzgün işlədiyinə əmin olmalıyıq. Bunu belə yoxlaya bilərsiniz: Ölçmə və Avtomatlaşdırma proqramını işə salın. LabView ilə gəlir. Quraşdırılmayıbsa, onu əl ilə quraşdıra bilərsiniz. Diskdədir (LabView ilə şəkil).

Pəncərənin sol tərəfində sistemdə aşkar edilmiş avadanlıqları görürük. Digər şeylər arasında COM portumuzu tapırıq. Sağ tərəfdə Visa test panelini açın düyməsi var. Bundan istifadə edərək seçilmiş cihazı sınaqdan keçirə bilərsiniz. COM portu vəziyyətində, siz standart və ya ixtiyari simvol ardıcıllığını göndərə və ya qəbul edə bilərsiniz. Limanla hər şey qaydasındadırsa, birbaşa proqramımızı yaratmağa davam edə bilərik.

LabView proqramını işə salın. Başlanğıc pəncərəsində yeni virtual cihaz yaratmaq üçün Blank Vi elementini seçin.

Bu kimi bir şey alırıq:

Bəs bizdə nə var? İş sahəsi iki böyük paneldən, Ön Paneldən və Blok Diaqramdan ibarətdir. Ön paneldə İdarəetmə panelindəki idarəetmə elementlərindən istifadə edərək proqramımızın interfeysini yaradacağıq. Bu elementlər tanış dəyişən rezistor düymələri, LED-lər, düymələr, göstərici alətlər, osiloskop ekranı və s. Onlar proqrama məlumat daxil etmək və icra nəticələrini göstərmək üçün xidmət edir. Blok diaqramı panelində proqram kodunun özü var. Burada bir az geri çəkilmək və LabView-də proqramlaşdırma prinsipini izah etmək lazımdır. Kiçik bir nümunə. Proqram üzərində işləməyə interfeysi tərtib etməklə, sonra isə alqoritmi blok-sxemdə tətbiq etməklə başlamaq adətdir. İki ədədi vurmaq üçün sadə proqram yaradaq. Bunu etmək üçün, nəticəni göstərmək üçün Düymə və Rəqəmsal Göstərici elementlərini deyək, onları sürükləməklə ön panelə üç idarəetmə elementi yerləşdirəcəyik.

İstədiyiniz kimi interfeys yaradaq, məsələn, bu kimi:

Yaxşı, indi faktiki vurmanı həyata keçirməliyik. Blok diaqramı panelinə gedirik və hər bir idarəetmə elementimiz üçün müvafiq işarənin yaradıldığını görürük. Ekran rejimini dərhal terminallara keçirmək yaxşıdır. Diaqram o qədər də qarışıq olmayacaq. Bundan əlavə, terminallar xüsusi idarəetmənin işlədiyi məlumat növünü göstərir. Bunu etmək üçün ikona sağ klikləyin və Simge kimi bax seçimindən işarəni çıxarın. Ekranın yuxarı hissəsində terminal şəklində, aşağıda və sağda ikon şəklində idarəetmə var. Blok diaqramının standart görünüşünü terminallar kimi konfiqurasiya etmək üçün siz Alətlər->Seçimlər menyu elementini seçmək, solda Blok diaqramı seçmək və Ön panel terminallarını nişanlar kimi yerləşdirmək seçimini silmək lazımdır. Kontekstli yardım göstərmək çox faydalıdır. Ctrl+H birləşməsindən istifadə edərək onu göstərə bilərsiniz. Bu pəncərədə kursorun hazırda yerləşdirildiyi obyekt haqqında məlumat göstərilir. Mega rahat şey.

İndi blok diaqrama vurma funksiyasını əlavə etməliyik. Blok diaqramına sağ klikləyin və Rəqəmsal palitradan Çoxaltma funksiyasını seçin. Gəlin onu diaqrama qoyaq. Qeyd etmək lazımdır ki, LabView sadəcə çoxlu funksiyalara malikdir. Buraya müxtəlif riyaziyyat, statistika, siqnal analizi, PID tənzimlənməsi, video, səs və təsvirin işlənməsi daxildir. Hər şeyi sadalaya bilməzsən.

LabView proqramlaşdırmasında ən vacib konsepsiya DataFlows konsepsiyasıdır. Əsas belədir: İfadələrin ardıcıllıqla yerinə yetirildiyi imperativ proqramlaşdırma dillərindən fərqli olaraq, LabView-də funksiyalar yalnız bütün funksiya girişlərində məlumat olduqda işləyir (hər bir funksiyanın giriş və çıxış qiymətləri var). Yalnız bundan sonra funksiya öz alqoritmini həyata keçirir və nəticə başqa funksiya tərəfindən istifadə oluna bilən çıxışa göndərilir. Beləliklə, bir virtual alət daxilində funksiyalar bir-birindən asılı olmayaraq işləyə bilər.

İndi nümunəmizi canlandırmaq üçün bu konsepsiyaya əməl etməli və funksiyanı idarəetmə ilə təyin etdiyimiz ədədi dəyərləri daxil etməli və nəticəni çıxışdan götürüb göstərməliyik.

Blok diaqramda elementləri birləşdirmək üçün Alətlər panelindəki Telləri birləşdirin alətindən istifadə edin. Onu seçin və əlaqələrimizi çəkin.

Hamısı budur, siz siklik icra üçün bu axmaq proqramı işlədə və vurmanın nəticəsini müşahidə edərək düymələri çevirə bilərsiniz.

Gördüyünüz kimi, mürəkkəb bir şey yoxdur. Ancaq eyni zamanda, LabView istənilən mürəkkəblikdəki problemləri həll etməyə imkan verir! Lənət olsun, TANK idarəetmə sistemi onun üzərində qurulub! Belə ki.

Yaxşı, indi daha çox şey edək maraqlı şeylər, yəni, əvvəldən danışdığım ən sadə voltmetrimizi edək.

Beləliklə, biz nə etməliyik. Əvvəlcə konfiqurasiya etməli və işə salmalısınız serial port. Sonsuz bir döngəyə başlayın. Döngüdə biz portdan oxu funksiyasından istifadə edirik və məlumat alırıq. Qrafikdə göstərmək üçün məlumatları çeviririk, ADC kodunu voltdakı bir gərginlik dəyərinə yenidən hesablayırıq. Döngədən çıxanda portu bağlayın.
Beləliklə, proqramımızın interfeysində Stop düyməsindən başqa heç bir idarəetmə elementi olmayacaq, ancaq nəticənin ekranı olacaq.Biz bunu edəcəyik: əvvəlcə blok-sxem yaradacağıq, sonra çatışmayan elementləri ön tərəfə əlavə edəcəyik. panel. Baxmayaraq ki, bunun əksini etmək lazımdır! Ancaq bu vəziyyətdə daha rahatdır.

Blok diaqram panelində Structures palitrasından While Loop elementini yerləşdiririk, bu bizim sonsuz döngəmizdir. Alqoritmin içərisinə sığmaq üçün kifayət qədər böyük bir sahənin ətrafında döngə çərçivəsi çəkirik. Aşağı sağ küncdə qırmızı nöqtə var, üzərinə sağ klikləyin və Nəzarət Yarat seçin. Dərhal ön paneldə Stop düyməsinə sahib olacağıq. Bunun üzərinə kliklədiyiniz zaman proqramımız bitəcək.

İndi loopdan kənarda biz portun işə salınması və bağlanması üçün funksiyaları yerləşdirməliyik. Solda başlanğıc, sağda isə bağlanır. Yenə, sağ klikləyin və Konfiqurasiya Portu, Oxu və Bağla funksiyalarını seçin. Bu funksiyalar Instrument I/O -> Serial palitrasında yerləşir. Oxu funksiyasını dövrə içərisinə yerləşdiririk. Bir tel bobinindən istifadə edərək funksiyaların çıxışlarını və girişlərini birləşdiririk. Oxu funksiyası üçün onun qəbul edəcəyi baytların sayını təyin etməliyik. Read funksiyasının orta girişinə sağ klikləyin və Create->Constant seçin, dəyər daxil edin, məsələn 200. Bu mərhələdə o, ekran görüntüsünə bənzəməlidir.

Siz portun işə salınması funksiyası üçün idarəetmə elementləri yaratmalısınız. Bizim üçün ikisi kifayətdir - port sürəti və port adı. Oxu funksiyası üçün sabit yaratdığımız kimi, biz də idarəetmə elementləri yaradırıq. Başlatma funksiyası və elementinin tələb olunan girişlərində PCM

Yarat-> Nəzarət.

Bizi iki giriş maraqlandırır: Viza resursunun adıBaud dərəcəsi(standart 9600). İndi ön panelə keçək və lazımi komponentləri, yəni ADC kodunu və voltdakı gərginliyi göstərmək üçün qrafik təsvir ekranını və etiketləri əlavə edək.
Müvafiq olaraq, bunlar Qrafik palitrasından Waweform Diaqram elementləri və Rəqəm palitrasından iki Rəqəm Göstərici elementləridir.

Qayıdaq blok-sxem və döngənin içərisində görünən elementləri hərəkət etdirək. Biz başa çatmaq üzrəyik! Yeganə odur ki, biz hələ də Read funksiyasının çıxışından gələn simvol sətirini göstəricilərimizin həzm edə biləcəyi formata çevirməliyik. Həm də ADC kodunu volta çevirmək üçün ən sadə riyaziyyatı həyata keçirin. Aşağıda ön panelin ekran görüntüləri və bu mərhələdə blok diaqramları verilmişdir:

Sətri çevirmək üçün String palitrasından Scan from string funksiyasından istifadə edəcəyik. Döngənin içərisinə yerləşdiririk. İndi riyaziyyat üçün. ADC kodunu voltdakı bir gərginlik dəyərinə çevirmək üçün kodu istinad gərginliyinin dəyərinə vurmalısınız (mənim vəziyyətimdə bu, beş voltdur) və nəticədə alınan dəyəri 1023-ə bölmək lazımdır (çünki ADC-də 10 var. - bit eni). Döngəyə lazımi vurma və bölmə funksiyalarını, həmçinin sabitləri (5 və 1023) yerləşdirəcəyik. Hər bir əlaqənin ekran görüntüsünü çəkməyəcəyəm, çünki artıq çoxlu şəkillər var. Bütün əlaqələrin son ekran görüntüsünü verəcəyəm. Orada hər şey son dərəcə sadədir.

Düşünürəm ki, hər şey aydındır, hər hansı bir sualınız varsa, şərhlərdə soruşun. Gəlin birlikdə anlayaq :-))) Bu arada proqram hazırdır.

Gəlin interfeysimizə keçək və diaqramı bir az quraq. Y oxu boyunca aşağı dəyəri seçin və onu 0-a qoyun. Üst dəyəri seçin və onu 5-ə qoyun. Beləliklə, Y oxu boyunca miqyamız 0-5 volt diapazonundadır. Yaxşı, COM portunu seçirik, ötürmə sürətini daxil edirik, ox düyməsini istifadə edərək proqramımızı işə salırıq və işimizin nəticəsini ekranda sərbəst müşahidə edərkən rezistoru lövhədəki qəzəblə bükürük. Proqramı dayandırmaq üçün Stop düyməsini basın.

Gördüyünüz kimi, hər şey olduqca sadədir. Bu misal Bu, bütün LabView imkanlarının yalnız kiçik bir hissəsidir. Bu məqalə kiməsə kömək etsə, şad olaram. Sadəcə şərhlərdə məni çox sərt vurmayın, mən peşəkar deyiləm. Başqa bir kiçik hiylə. Diaqram Cthulhu kimi görünürsə, Təmizləmə Diaqramı düyməsini istifadə etməyə cəhd edə bilərsiniz. O, diaqramı daha çox və ya daha az ilahi bir forma gətirəcək, lakin onu diqqətlə istifadə etmək lazımdır. Budur onun işinin nəticəsi

Siz həmçinin parçaları funksional bloklara birləşdirə bilərsiniz ki, onlar diaqramı qarışdırmasınlar.

İstər həvəskar, istərsə də peşəkar olsun, mikrokontroller cihazlarının demək olar ki, bütün tərtibatçıları gec-tez mikrokontroller cihazını “böyük qardaşına”, yəni PC-yə qoşmalıdırlar. Bu zaman sual yaranır: mikrokontroller ilə mübadilə etmək, ondan alınan məlumatları təhlil etmək və emal etmək üçün hansı proqram təminatından istifadə etməliyəm? Çox vaxt MK-ni kompüterlə mübadilə etmək üçün RS232 interfeysindən və protokolundan - bu və ya digər tətbiqdə köhnə yaxşı COM portundan istifadə edirlər.

Kompüter tərəfində müxtəlif terminal proqramları istifadə olunur, onlardan yüzlərlədir. Amma bu proqramlar yalnız məlumatların qəbulunu və ötürülməsini təmin edir. Onu hansısa şəkildə emal etmək və vizual formada vizuallaşdırmaq çətindir.

Bəziləri bu cür proqramı müstəqil olaraq hansısa proqramlaşdırma dilində (Delphi, C++) yazır, lazımi funksionallığı təmin edir. Ancaq bu iş asan deyil, dilin özündən əlavə, əməliyyat sisteminin strukturunu, rabitə portları ilə necə işləməyi və əsas şeydən - proqramın həyata keçirilməsindən yayındıran bir çox digər texniki incəlikləri bilməlisiniz. alqoritm. Ümumiyyətlə, eyni zamanda Windows/Unix proqramçısı olmaq.

Virtual alətlər (vi) anlayışı bu yanaşmalardan kəskin şəkildə fərqlənir. Bu məqalə Nationals Instruments-dan LabView proqram məhsulunu müzakirə edəcək. Mən bu gözəl məhsulu yenicə mənimsəməyə başlayıram, ona görə də qeyri-dəqiqliklər və səhvlər edə bilərəm. Mütəxəssislər sizi düzəldəcəklər :-)) LabView tam olaraq nədir?

LabView, National Instruments qrafik proqramlaşdırma dilində G-də yazılmış proqramları işlətmək üçün inkişaf mühiti və platformadır.

Sadə dillə desək, LabView müxtəlif alətlərdən, laboratoriya qurğularından və s. məlumatların toplanması, emalı, vizuallaşdırılması vəzifələri üçün proqram yaratma mühitidir. Həm də texnoloji proseslərə və cihazlara nəzarət etmək üçün. Bununla belə, LabView-dən istifadə edərək olduqca adi proqram təminatı yarada bilərsiniz. Bu məhsulu ətraflı təsvir etmək və onunla işləmək fikrim yoxdur. LabView-də yazılmış minlərlə səhifəlik əla sənədlər və yüzlərlə kitab var. İnternet LabView-ə həsr olunmuş resurslarla doludur, burada bütün suallarınıza cavab ala bilərsiniz.

Məqalənin məqsədi ənənəvi proqramlaşdırma ilə müqayisədə kompüter üçün proqramlar yaratmağın nə qədər sadə və rahat olduğunu və LabView-in hansı gücü daşıdığını göstərməkdir. (Əslində bu mübahisəlidir, çünki ənənəvi proqramlaşdırmada bunu Delphi-də etmək daha çətin deyil. Səmərəlilik baxımından isə daha pis, hətta yaxşı deyil. Amma bunun üçün Delphi-ni daha uzun müddət öyrənmək lazımdır. Hər şey tezdir. və demək olar ki, dərhal təmizlədim.Bir neçə təlimatı öyrəndim və hər cür siferblatları hasarlamaq üçün irəli getdim.Deməli, proqramçılar üçün bu, itin beşinci ayağı kimidir, amma mənim kimi kompüterdən uzaq olan yoldaşlar üçün bu, sadəcə bir şeydir. bir dəfə, yarım saat ərzində, ilk dəfə LabView-u görəndə, çətənə istixanası üçün sulama və qızdırmaq üçün nazik əl idarəsindən istifadə edərək vəhşi sistem qurdum.Hər növ PID nəzarətçiləri ilə.Onu laboratoriyanın potensiometrlərinə və sensorlarına gətirdim. Texnikimizdə olan və bu cəhənnəm qurğusunu işə salan dəzgah.Və hər şey dərhal, sazlamadan işlədi.Yeri gəlmişkən, hadron kollayderinin bütün avadanlıqları LabView-də işləyir, eləcə də bir çox elmi avadanlıq.Qeyd: DI HALT) Axı, kompüter proqramlaşdırması əksər elektronika mühəndisləri üçün yaddır, elə deyilmi? Düzəltməyə çalışacağımız budur. Sferik vakuum atlarını öyrənməmək üçün özümüzə təyin edəcəyik və sadə bir vəzifə həyata keçirəcəyik. Tapşırıq həqiqətən sadədir, lakin onun əsasında LabView-də proqramlaşdırmanın əsas prinsiplərini başa düşə bilərsiniz. Biz LabView 2010 versiyasından istifadə edəcəyik. Digər versiyalar üçün fərqlər minimal olacaq.

Tapşırıq
RS232 vasitəsilə kompüterə qoşulmuş AVR mikrokontrolleri olan lövhəmiz var. Nəzarətçi proqram təminatı ilə yüklənir, ona görə nəzarətçi ADC girişlərindən birində gərginlik dəyərini ölçür və ADC kodunu (0-dan 1023-ə qədər) seriyalı kanal vasitəsilə kompüterə ötürür. ADC-dən məlumat axını qəbul edəcək, ADC kodunu ekrana çıxaracaq, ADC kodunu voltla gərginlik dəyərinə çevirəcək, gərginliyin dəyərini voltla göstərəcək və zamanla gərginliyin dəyişməsinin qrafikini çəkəcək bir PC proqramı yazmaq lazımdır.

Yəqin ki, sözlər kifayət qədərdir, başlayaq!

Beləliklə, iş üçün bizə nə lazımdır:

  • Əslində LabView özü. Sınaq versiyasını NI saytından yükləyə bilərsiniz: http://www.ni.com/trylabview/. Pirat versiya da heç bir problem olmadan google-da axtarıla bilər. Yeri gəlmişkən, rutracker.org saytında bir ton pirat versiyaya əlavə olaraq, Linux üçün qeydiyyata ehtiyac olmadığı bir versiya da var. NI açıq mənbə ilə yarı yolda görüşməyə qərar verdi?
  • Həmçinin NI VISA komponentini yükləmək lazımdır. Bu proqram olmadan, LabView kompüterdəki COM portunu "görməyəcək". VISA rabitə portları ilə işləmək üçün funksiyaları və daha çoxunu ehtiva edir. Siz onu joule.ni.com saytından yükləyə bilərsiniz. LabView və VISA quraşdırın. Bu proqram təminatının quraşdırılması standartdır və heç bir xüsusi funksiyaya malik deyil.

İlk növbədə, VISA-nın sistemdə COM portu tapdığından və onunla düzgün işlədiyinə əmin olmalıyıq. Bunu belə yoxlaya bilərsiniz: Ölçmə və Avtomatlaşdırma proqramını işə salın. LabView ilə gəlir. Quraşdırılmayıbsa, onu əl ilə quraşdıra bilərsiniz. Diskdədir (LabView ilə şəkil).

Bu kimi bir şey alırıq:


Bəs bizdə nə var? İş sahəsi iki böyük paneldən, Ön Paneldən və Blok Diaqramdan ibarətdir. Ön paneldə İdarəetmə panelindəki idarəetmə elementlərindən istifadə edərək proqramımızın interfeysini yaradacağıq. Bu elementlər tanış dəyişən rezistor düymələri, LED-lər, düymələr, göstərici alətlər, osiloskop ekranı və s. Onlar proqrama məlumat daxil etmək və icra nəticələrini göstərmək üçün xidmət edir. Blok diaqramı panelində proqram kodunun özü var. Burada bir az geri çəkilmək və LabView-də proqramlaşdırma prinsipini izah etmək lazımdır. Kiçik bir nümunə. Proqram üzərində işləməyə interfeysi tərtib etməklə, sonra isə alqoritmi blok-sxemdə tətbiq etməklə başlamaq adətdir. İki ədədi vurmaq üçün sadə proqram yaradaq. Bunu etmək üçün, nəticəni göstərmək üçün Düymə və Rəqəmsal Göstərici elementlərini deyək, onları sürükləməklə ön panelə üç idarəetmə elementi yerləşdirəcəyik.

Yaxşı, indi faktiki vurmanı həyata keçirməliyik. Blok diaqramı panelinə gedirik və hər bir idarəetmə elementimiz üçün müvafiq işarənin yaradıldığını görürük. Ekran rejimini dərhal terminallara keçirmək yaxşıdır. Diaqram o qədər də qarışıq olmayacaq. Bundan əlavə, terminallar xüsusi idarəetmənin işlədiyi məlumat növünü göstərir. Bunu etmək üçün ikona sağ klikləyin və Simge kimi bax seçimindən işarəni çıxarın. Ekranın yuxarı hissəsində terminal şəklində, aşağıda və sağda ikon şəklində idarəetmə var. Blok diaqramının standart görünüşünü terminallar kimi konfiqurasiya etmək üçün siz Alətlər->Seçimlər menyu elementini seçmək, solda Blok diaqramı seçmək və Ön panel terminallarını nişanlar kimi yerləşdirmək seçimini silmək lazımdır. Kontekstli yardım göstərmək çox faydalıdır. Ctrl+H birləşməsindən istifadə edərək onu göstərə bilərsiniz. Bu pəncərədə kursorun hazırda yerləşdirildiyi obyekt haqqında məlumat göstərilir. Mega rahat şey.

LabView proqramlaşdırmasında ən vacib konsepsiya DataFlows konsepsiyasıdır. Əsas belədir: İfadələrin ardıcıllıqla yerinə yetirildiyi imperativ proqramlaşdırma dillərindən fərqli olaraq, LabView-də funksiyalar yalnız bütün funksiya girişlərində məlumat olduqda işləyir (hər bir funksiyanın giriş və çıxış qiymətləri var). Yalnız bundan sonra funksiya öz alqoritmini həyata keçirir və nəticə başqa funksiya tərəfindən istifadə oluna bilən çıxışa göndərilir. Beləliklə, bir virtual alət daxilində funksiyalar bir-birindən asılı olmayaraq işləyə bilər.

İndi nümunəmizi canlandırmaq üçün bu konsepsiyaya əməl etməli və funksiyanı idarəetmə ilə təyin etdiyimiz ədədi dəyərləri daxil etməli və nəticəni çıxışdan götürüb göstərməliyik.

Blok diaqramda elementləri birləşdirmək üçün Alətlər panelindəki Telləri birləşdirin alətindən istifadə edin. Onu seçin və əlaqələrimizi çəkin.

Gördüyünüz kimi, mürəkkəb bir şey yoxdur. Ancaq eyni zamanda, LabView istənilən mürəkkəblikdəki problemləri həll etməyə imkan verir! Lənət olsun, TANK idarəetmə sistemi onun üzərində qurulub! Belə ki.

Yaxşı, indi daha maraqlı şeylər edək, yəni ən əvvəl danışdığım ən sadə voltmetrimizi düzəldək.

Beləliklə, biz nə etməliyik. Əvvəlcə serial portunu konfiqurasiya etməli və işə salmalısınız. Sonsuz bir döngəyə başlayın. Döngüdə biz portdan oxu funksiyasından istifadə edirik və məlumat alırıq. Qrafikdə göstərmək üçün məlumatları çeviririk, ADC kodunu voltdakı bir gərginlik dəyərinə yenidən hesablayırıq. Döngədən çıxanda portu bağlayın.
Beləliklə, proqramımızın interfeysində Stop düyməsindən başqa heç bir idarəetmə elementi olmayacaq, ancaq nəticənin ekranı olacaq.Biz bunu edəcəyik: əvvəlcə blok-sxem yaradacağıq, sonra çatışmayan elementləri ön tərəfə əlavə edəcəyik. panel. Baxmayaraq ki, bunun əksini etmək lazımdır! Ancaq bu vəziyyətdə daha rahatdır.

Blok diaqram panelində Structures palitrasından While Loop elementini yerləşdiririk, bu bizim sonsuz döngəmizdir. Alqoritmin içərisinə sığmaq üçün kifayət qədər böyük bir sahənin ətrafında döngə çərçivəsi çəkirik. Aşağı sağ küncdə qırmızı nöqtə var, üzərinə sağ klikləyin və Nəzarət Yarat seçin. Dərhal ön paneldə Stop düyməsinə sahib olacağıq. Bunun üzərinə kliklədiyiniz zaman proqramımız bitəcək.

Siz portun işə salınması funksiyası üçün idarəetmə elementləri yaratmalısınız. Bizim üçün ikisi kifayətdir - port sürəti və port adı. Oxu funksiyası üçün sabit yaratdığımız kimi, biz də idarəetmə elementləri yaradırıq. Başlatma funksiyası və elementinin tələb olunan girişlərində PCM

Yarat-> Nəzarət.

Yarat-> Nəzarət.

Bizi iki giriş maraqlandırır: Viza resursunun adıBaud dərəcəsi(standart 9600). İndi ön panelə keçək və lazımi komponentləri, yəni ADC kodunu və voltdakı gərginliyi göstərmək üçün qrafik təsvir ekranını və etiketləri əlavə edək.
Müvafiq olaraq, bunlar Qrafik palitrasından Waweform Diaqram elementləri və Rəqəm palitrasından iki Rəqəm Göstərici elementləridir.

Qayıdaq blok-sxem və döngənin içərisində görünən elementləri hərəkət etdirək. Biz başa çatmaq üzrəyik! Yeganə odur ki, biz hələ də Read funksiyasının çıxışından gələn simvol sətirini göstəricilərimizin həzm edə biləcəyi formata çevirməliyik. Həm də ADC kodunu volta çevirmək üçün ən sadə riyaziyyatı həyata keçirin. Aşağıda ön panelin ekran görüntüləri və bu mərhələdə blok diaqramları verilmişdir:



Sətri çevirmək üçün String palitrasından Scan from string funksiyasından istifadə edəcəyik. Döngənin içərisinə yerləşdiririk. İndi riyaziyyat üçün. ADC kodunu voltdakı bir gərginlik dəyərinə çevirmək üçün kodu istinad gərginliyinin dəyərinə vurmalısınız (mənim vəziyyətimdə bu, beş voltdur) və nəticədə alınan dəyəri 1023-ə bölmək lazımdır (çünki ADC-də 10 var. - bit eni). Döngəyə lazımi vurma və bölmə funksiyalarını, həmçinin sabitləri (5 və 1023) yerləşdirəcəyik. Hər bir əlaqənin ekran görüntüsünü çəkməyəcəyəm, çünki artıq çoxlu şəkillər var. Bütün əlaqələrin son ekran görüntüsünü verəcəyəm. Orada hər şey son dərəcə sadədir.


Düşünürəm ki, hər şey aydındır, hər hansı bir sualınız varsa, şərhlərdə soruşun. Gəlin birlikdə anlayaq :-))) Bu arada proqram hazırdır.

Gəlin interfeysimizə keçək və diaqramı bir az quraq. Y oxu boyunca aşağı dəyəri seçin və onu 0-a qoyun. Üst dəyəri seçin və onu 5-ə qoyun. Beləliklə, Y oxu boyunca miqyamız 0-5 volt diapazonundadır. Yaxşı, COM portunu seçirik, ötürmə sürətini daxil edirik, ox düyməsini istifadə edərək proqramımızı işə salırıq və işimizin nəticəsini ekranda sərbəst müşahidə edərkən rezistoru lövhədəki qəzəblə bükürük. Proqramı dayandırmaq üçün Stop düyməsini basın.

Siz həmçinin parçaları funksional bloklara birləşdirə bilərsiniz ki, onlar diaqramı qarışdırmasınlar.



NI LabVIEW axın qrafik proqramlaşdırma mühitidir. LabVIEW-də proqram yazarkən istifadəçi blok-sxemdən istifadə etməklə məlumat axınının transformasiyası əməliyyatlarının ardıcıllığını müəyyən edir. Şəkillər blok diaqramda yerləşdirilir funksional vahidlər, məlumat axınının bir qovşaqdan digərinə keçdiyi keçiricilərlə bağlıdır. Həmçinin, LabVIEW-də bir sıra paradiqmanı pozan alətlər var axın proqramlaşdırması, lakin, onda hazırlanmış proqramların funksionallığını əhəmiyyətli dərəcədə genişləndirməyə imkan verir.

Proqramlaşdırma texnikası nədir

“Proqramlaşdırma texnikası” termini müxtəlif proqramlaşdırma dillərinin seçimini, hesablama modellərini, abstraksiya səviyyələrini, kodla işləmə üsullarını və alqoritmləri təmsil edir. İllər ərzində National Instruments daha geniş çeşiddə proqramlaşdırma üsullarına dəstək vermək üçün LabVIEW funksionallığını inkişaf etdirmişdir.


Siz müxtəlif texnikalardan istifadə etməklə yazılmış kodu, eləcə də G axını kodunu blok diaqramda təqdim edə bilərsiniz və LabVIEW müvafiq hədəf qurğular (adi masaüstü kompüterlər, RTOS platformaları, FPGA-lar) üçün təlimatlar tərtib edəcək. mobil cihazlar, ARM əsaslı quraşdırılmış cihazlar)

Şəkil 1. LabVIEW-də geniş platformalar və proqramlaşdırma texnikaları



Fərqli yanaşmalardan istifadə etməklə yazılmış kod bölmələri arasında məlumatların ötürülməsi LabVIEW-də çox sadə şəkildə təşkil edilir - məlumat axını müxtəlif hesablama modelləri və dilləri arasında birləşdirici əlaqədir. G dilində məlumatın daxil/çıxışı xüsusi istifadəçi interfeysi (ön panel), şəbəkə interfeysləri, analiz kitabxanaları, verilənlər bazası və digər vasitələrdən istifadə etməklə həyata keçirilir.

G dilində proqramlaşdırma
1986-cı ildə axın proqramlaşdırmasının yaranması həqiqətən yenilikçi idi. G dilində verilənlərlə əməliyyatların yerinə yetirilməsi ardıcıllığı onların baş vermə ardıcıllığı ilə deyil, bu qovşaqların girişlərində verilənlərin olması ilə müəyyən edilir. Məlumat axını ilə əlaqəli olmayan operatorlar təsadüfi qaydada paralel olaraq icra edilir.

Diaqramın qovşaqları sadə təlimatları və ya onların dəstlərini - funksiyaları, virtual cihazları (VI) təmsil edir. Düyün təlimatlarının yerinə yetirilməsi yalnız qovşağın bütün giriş terminallarında məlumatlar göründükdən sonra baş verir. Təlimatlar yerinə yetirildikdən sonra onun nəticəsi qovşağın çıxış terminalları vasitəsilə aşağıdakı qovşaqların girişlərinə ötürülür.


Şəkil 2. Bu nümunə A və B-ni əlavə edir, nəticədə əldə edilən cəmini C-yə vurur və nəticəni göstərir


Şəkil 2-də G dilində riyazi ifadə nümunəsi göstərilir.Sxem iki qovşaqdan (toplama və vurma) və üç girişdən (A, B və C) ibarətdir. Birincisi, A və B-nin əlavə edilməsi baş verir.Vurma qovşağının kodu onun hər iki giriş terminalında məlumat alınmayana qədər yerinə yetirilmir və buna görə də əlavə qovşağının nəticəsini gözləyir. Əlavənin nəticəsi vurma düyününün ilk girişinə çatan kimi onun kodu (A+B)*C yerinə yetiriləcək.

G dilinin məlumat tipini açıq şəkildə təyin etməyə imkan verməsinə baxmayaraq, bu dil və digərləri arasında əhəmiyyətli fərqlərdən biri dəyişənlərin funksiyalarını yerinə yetirən dirijorların olmasıdır. Dəyişənləri funksiyalar arasında ötürmək əvəzinə, məlumat ötürülməsi tel bağlantıları ilə müəyyən edilir. Digər tərəfdən, G digər dillərdə standart olan konstruksiyaları da ehtiva edir, məsələn, şərti döngələr, əks döngələr, seçim strukturları, geri çağırış funksiyaları və məntiqi funksiyalar.

İnteraktiv konfiqurasiya proqramlaşdırmanın əsası kimi
2003-cü ildə National Instruments şirkəti tətbiqi alqoritmlərin işlənib hazırlanması prosesini daha da sadələşdirmək üçün nəzərdə tutulmuş Express Virtual Instruments (VII) texnologiyasını təqdim edən NI LabVIEW 7 Express-i buraxdı. Adi VI-lərdən fərqli olaraq, ekspres VI-lar əsaslanan proqramlaşdırma texnikasını həyata keçirən mücərrəd dil strukturlarıdır interaktiv quraşdırma komponentlər.


şək.3. Express VI palitrası, Express VI-nı blok diaqrama yerləşdirir və Express VI-nı ikon görünüşündə göstərir


Ekspress VP-ni adi VP-dən böyük mavi işarə ilə fərqləndirə bilərsiniz. Blok diaqramına Express VI-nı ilk dəfə yerləşdirdiyiniz zaman fərdiləşdirmə dialoq qutusu görünür. Konfiqurasiya tamamlandıqdan sonra LabVIEW avtomatik olaraq yaratdığınız Express VI konfiqurasiyası əsasında kodu yaradır. Siz bu kodu nəzərdən keçirə və redaktə edə və ya Express VI işarəsinə iki dəfə klikləməklə dialoq qutusunu yenidən açmaqla Express VI-nın parametrlərini dəyişə bilərsiniz.

Nümunə olaraq, onları həyata keçirmək üçün məlumatların daxil edilməsi vəzifəsini nəzərdən keçirin proqram təhlili. LabVIEW müxtəlif aparatlarla əlaqə qurmağı çox asanlaşdırır, çünki o, minlərlə cihaz üçün drayverləri ehtiva edir. Məlumatların toplanması vəzifəsi yalnız bir neçə VP-nin dizaynı ilə deyil, həm də daha çoxu tərəfindən həyata keçirilə bilər sadə variant- ekspress VP.

DAQ Assistance Express VI parametrlərində oxu/yazma kanallarını təyin etmək və seçmə sürəti, miqyaslama, sinxronizasiya və tetikleyiciler kimi parametrləri konfiqurasiya etmək kifayətdir. Bundan əlavə, Express VI seçilmiş məlumat toplama parametrlərinin düzgünlüyünü yoxlamaq üçün cihazdan əvvəlcədən məlumat toplamaq imkanı verir.


Şəkil 4. DAQ Assistant Express VI trigger vaxtını və kanal parametrlərini konfiqurasiya etməyi asanlaşdırır



Şəkil 5. DAQ Assistant Express VI-a ekvivalent olan G kodu


Bütün üstünlüklərinə baxmayaraq, Express VI-lər adi virtual cihazlardan istifadə etməklə həyata keçirilən cihazın iş rejiminə aşağı səviyyədə nəzarət və konfiqurasiya imkanlarını təmin etmir. LabVIEW-də yeni olan istifadəçilər əvvəllər konfiqurasiya edilmiş Express VI-nı müntəzəm VI ardıcıllığına çevirən daxili funksiyadan istifadə edə bilərlər. Bu, yeni başlayanlara aşağı səviyyəli kodu öyrənməyə kömək edə bilər. Sadəcə olaraq Açıq Ön Panel xəttini seçin kontekst menyusu Blok diaqramda VI ifadə edin. Qeyd etmək lazımdır ki, istənilən Express VI bir neçə adi VI-nin kombinasiyası ilə əvəz edilə bilər və LabVIEW Peşəkar İnkişaf Sistemi versiyası öz Express VI-larınızı yaratmağa imkan verir.

scripts.m faylları üçün dəstək
LabVIEW MathScript RT modulu ilə siz ənənəvi olaraq riyazi modelləşdirmə və təhlildə, siqnalların işlənməsi və mürəkkəb riyazi hesablamalarda istifadə olunan *.m fayl skriptlərini idxal edə, redaktə edə və işlədə bilərsiniz. Siz onları G kodu ilə masaüstü və ya real vaxt aparatları üçün müstəqil proqramlar yaratmaq üçün istifadə edə bilərsiniz.

LabVIEW-də MathScript ilə işləməyin bir neçə yolu var. İnteraktiv rejimdə skriptlərlə işləmək üçün Şəkil 1-də göstərilən MathScript pəncərəsindən istifadə edin. 6


Şəkil 6. İnteraktiv inkişaf MathScript pəncərəsində mətn alqoritmi


LabVIEW proqramında *.m skriptlərindən istifadə etmək və mətn və qrafik proqramlaşdırma imkanlarını birləşdirmək üçün siz Şəkil 7-də göstərilən MathScript qovşağından istifadə etməlisiniz. MathScript qovşağından istifadə mətn alqoritmlərini VI koda yerləşdirməyə və istifadə etməyə imkan verir qrafik imkanlar ssenari parametrlərini idarə etmək üçün interfeys (düymələr, sürgülər, düymələr, qrafiklər və digər elementlər).


Şəkil 7. MathScript qovşağı G kodunda .m skriptlərindən istifadə etməyi asanlaşdırır


LabVIEW MathScript RT modulunun öz *.m skript mühərriki var və üçüncü tərəfin quraşdırılmasını tələb etmir. proqram təminatı. MathScript qovşağından istifadə mətn əsaslı alqoritmlərin, LabVIEW-in yüksək dərəcədə aparat inteqrasiyasının, interaktiv istifadəçi interfeysinin və bu məqalədə müzakirə olunan digər proqramlaşdırma üsullarının üstünlüklərini bir tətbiqdə birləşdirməyə imkan verir.

Obyekt yönümlü proqramlaşdırma
Obyekt yönümlü proqramlaşdırma ən populyar proqramlaşdırma növlərindən biridir. Bu yanaşma proqramda bir çox fərqli komponentləri vahid obyekt siniflərində birləşdirməyə imkan verir. Sinif tərifi obyektin xüsusiyyətlərini və obyektin yerinə yetirə biləcəyi hərəkətlərin təsvirini ehtiva edir, adətən xassələr və metodlar adlanır. Siniflərdə xassələri və metodları miras alan və onları ləğv edə və ya yenilərini əlavə edə bilən uşaqlar ola bilər.


Şəkil 8. Obyekt yönümlü yanaşma siniflərə (şəkildəki nümunə) və VI-nın əlaqəli xassələrinə və funksiyalarına əsaslanır.


LabVIEW-də OOP-dan istifadə 8.2 versiyasından etibarən mümkün olmuşdur

Bu yanaşmanın əsas üstünlükləri bunlardır:

  • . İnkapsulyasiya: İnkapsulyasiya məlumatların və metodların sinifdə elə qruplaşdırılmasıdır ki, onlara yalnız sinfin üzvləri olan VI-lar vasitəsilə daxil olmaq olar. Bu yanaşma kodun bölmələrini təcrid etməyə və onların dəyişdirilməsinin proqramın qalan hissəsindəki koda təsir etməyəcəyinə əmin olmağa imkan verir.
  • . Vərəsəlik: Vərəsəlik, yeni sinifləri müəyyən etmək üçün mövcud siniflərdən əsas kimi istifadə etməyə imkan verir. Yeni sinif yaradıldıqda, o, məlumat növlərini və sinfin VI üzvlərini miras alır və beləliklə, ana sinfin xüsusiyyətlərini və metodlarını həyata keçirir. Sinfin funksionallığını dəyişdirmək üçün öz VI-larınızı əlavə etmək də mümkündür.
  • . Dinamik göndərmə: Sinif iyerarxiyasında eyni adlı bir neçə VI-dan istifadə etməklə metodların müəyyən edilməsi mümkündür. Bu üsul dinamik dispetçer adlanır, çünki VI-nın çağırılacağı barədə qərar proqramın icrası mərhələsində verilir.
Bu OOP xüsusiyyətləri kodu daha başa düşülən və miqyaslana bilən etməyə imkan verir, həmçinin, zəruri hallarda VI-ya girişi məhdudlaşdırır.

Modelləşdirmə və simulyasiya
Modelləşdirmə və simulyasiya fiziki sistemlər- diferensial tənliklərlə təsvir olunan sistemlərin inkişafında məşhur yanaşma. Modelin öyrənilməsi dinamik sistemlərin xüsusiyyətlərini müəyyən etməyə və tələb olunan davranışa malik idarəetmə blokunu hazırlamağa imkan verir.

Şəkil 9-da müəyyən vaxt ərzində real vaxt rejimində LabVIEW-də qurulmuş alqoritmlərdən istifadə edərək diferensial tənliyi həll edən Control & Simulation Loop göstərilir. Bu proqramlaşdırma yanaşması da G dili kimi məlumat axınına əsaslanır, lakin buna adətən siqnal axını deyilir. Şəkil 9-da göstərildiyi kimi, siz riyazi modelləşdirmə üsullarını G Data Streams və MathScript Node kimi digər üsullarla birləşdirə bilərsiniz.


düyü. 9. Simulyasiya diaqramı siqnalın yayılmasını, giriş/çıxış aparatını və MathScript qovşağını göstərir.


Nəzarət və Simulyasiya Döngəsi real vaxt rejimində ƏS ilə işləyən cihazlarda xətti stasionar sistemlərin modellərini həyata keçirmək üçün istifadə edilən funksiyaları dəstəkləyir. Siz köçürmə funksiyasını, qütb-sıfır diaqramını və diferensial tənliklər sistemini təyin etməklə diskret modelləri müəyyən etmək üçün bu funksiyalardan istifadə edə bilərsiniz. Zaman-addım cavabı və ya Bode planı kimi vaxt və tezlik domeninin təhlili alətləri açıq və qapalı dövrə nəzarəti/simulyasiyalarının davranışını interaktiv şəkildə təhlil etməyə imkan verir. Siz həmçinin The MathWorks, Inc proqramlaşdırma mühitində hazırlanmış daxili model çevirmə alətlərindən istifadə edə bilərsiniz. Simulink® onları LabVIEW mühitində istifadə etməyə imkan verəcək. Bu dinamik sistemlər, idarəetmə sisteminin prototiplərinin və mikroproqram simulyasiya proqramlarının işlənib hazırlanması üçün ideal olan LabVIEW Real-Time Modul kitabxanasının funksionallığı sayəsində birdən çox proqram çevrilmə addımı tələb etmədən real vaxt rejimində ƏS cihazlarında quraşdırıla bilər.

Dövlət diaqramları
NI LabVIEW Statechart modulu tərtibatçıya vəziyyət diaqramlarından istifadə etməklə sistemin funksionallığını ən mücərrəd şəkildə təsvir etmək imkanı verir. LabVIEW kodunu diaqram vəziyyətlərinə inteqrasiya etmək sizə tətbiqin faktiki işləyən spesifikasiyasını yaratmağa imkan verir. NI LabVIEW Statechart modulu adi vəziyyət diaqramlarının funksionallığına iyerarxik yuva qurmağı və paralel icranı təşkil etmək imkanı əlavə edir. Qeyd etmək lazımdır ki, vəziyyət diaqramları sistemin hadisələrə necə reaksiya verdiyini təsvir etməyə imkan verir ki, bu da onları daxili qurğular, idarəetmə sistemləri və mürəkkəb istifadəçi interfeysləri kimi reaktiv sistemlərin inkişafı üçün çox faydalı alətə çevirir.


düyü. 10. LabVIEW Statechart modulu vəziyyət diaqramına əsaslanan sistemi təsvir edir.


Çox vaxt vəziyyət diaqramları tətbiqi məlumatların toplanması, məlumatların çıxışı, şəbəkə rabitəsi, məlumatların qeydiyyatı və istifadəçi interfeysinin idarə edilməsi kimi alt sistemlərə bölmək üçün istifadə olunur. Bu halda vəziyyət diaqramları dövlətlər (alt sistemlər) arasında hansı məlumatın ötürüldüyünü və onların hansı ardıcıllıqla işlədiyini müəyyən edir.

Statechart əsaslı proqram arxitekturası mürəkkəb proqram sistemlərini, xüsusən dinamik sistem nəzarətçiləri, mürəkkəb istifadəçi interfeysləri və rəqəmsal rabitə protokolları kimi hadisələrə cavab verən sistemləri daha səmərəli şəkildə inkişaf etdirməyə imkan verir.

FPGA üçün VHDL
LabVIEW FPGA modulu FPGA kodunu yazmaq üçün G dilindən istifadə etməyə imkan verir. Bununla belə, digər inkişaf üsullarında olduğu kimi, əvvəllər yazılmış koddan istifadə edə bilərsiniz və ya sadəcə proqramı necə həyata keçirəcəyinizi seçmək seçiminə sahib ola bilərsiniz. Əksər FPGA-lar mətn əsaslı axın proqramlaşdırma dili VHDL istifadə edərək proqramlaşdırılır. G-də mövcud IP bloklarını yenidən yazmaq əvəzinə, Komponent Səviyyəli IP (CLIP) qovşağından istifadə edərək VHDL kodunu idxal edə bilərsiniz. Blok diaqram elementləri arasında interfeysi konfiqurasiya etmək üçün adətən sizə CLIP XML faylı lazımdır, lakin LabVIEW-də bunu avtomatik etməyə imkan verən CLIP Import Wizard var. O, Şəkil 1-də göstərildiyi kimi, siçan ilə blok diaqrama sürüklənə və tətbiqdə istifadə edilə bilən IP blokunun giriş və çıxışlarının siyahısını göstərir. on bir.


düyü. on bir. CLIP qovşağı.


NI LabVIEW FPGA modulunda Xilinix FPGA və Xilinx proqram alət dəstindən istifadə etdiyinə görə, uyğun nüvə yaratmaq üçün Xilinx nüvə generatorundan istifadə edə bilərsiniz. İstənilən proqram mikroprosessorunu yaratmaq üçün Xilinx Embedded Development Kit-dən də istifadə edə bilərsiniz. Və nəhayət, çoxları üçüncü tərəf tərtibatçıları təmin etmək Müxtəlif növlər Avtobusun idarə edilməsi, siqnalın işlənməsi və xüsusi nüvələr üçün IP blokları.

C-yə bənzər kodun inteqrasiyası
VI blok diaqramınızda ardıcıl mətn kodunu bir neçə yolla istifadə edə bilərsiniz. Birinci yol, dəyişən tərifləri və sətirlərin sonunda nöqtəli vergülləri olan C-yə bənzər sintaksisi dəstəkləyən Formula Nodudur.

Inline C Node Formula Node-a bənzəyir və təmin edir əlavə funksiyalar aşağı səviyyəli proqramlaşdırma və lazımsız prosedur çağırışları olmadan başlıq faylları üçün dəstək. Siz C kodunda sintaktik olaraq mötərizə içərisində olan #defines ifadələri daxil olmaqla istənilən C kodunu daxil etmək üçün Inline C Node istifadə edə bilərsiniz.

İcra edilə bilən fayllarla qarşılıqlı əlaqə
LabVIEW-də proqramlaşdırarkən, əvvəllər başqa mühitlərdə hazırlanmış alqoritmlərdən təkrar istifadə etmək üçün LabVIEW-də yazılmış proqramdan tərtib edilmiş fayl və kitabxanalara tez-tez daxil olmaq lazımdır. Həmçinin, layihə yaratarkən LabVIEW-də yazılmış proqramlara başqa proqramlardan daxil olmalısınız.

LabVIEW bu problemləri həll etmək üçün geniş çeşidli müxtəlif alətlər təqdim edir. Birincisi, LabVIEW DLL funksiyalarını çağıra bilər, həmçinin ActiveX və .NET interfeyslərindən istifadə edə bilər.

İkincisi, LabVIEW-də yazılmış proqram öz funksionallığını DLL kimi və ya ActiveX alətlərindən istifadə edərək başqa proqrama təqdim edə bilər.

LabVIEW tətbiqinizdə istifadə etmək istədiyiniz C mənbə kodunuz varsa, tərtib edə bilərsiniz DLL və Zəng Kitabxanası Funksiya qovşağından istifadə edərək onu birləşdirin. Məsələn, təşkil edə bilərsiniz paralel hesablama C dilində yazılmış alqoritmlərdən istifadə etməklə, paralel mövzuların idarə edilməsi isə LabVIEW-də yazılmış bir proqram tərəfindən idarə olunacaq. Xarici kitabxanalarla işi asanlaşdırmaq üçün LabVIEW-ə uyğun kitabxanalara zəng etmək üçün avtomatik olaraq sarğı yaratmağa və ya yeniləməyə imkan verən Paylaşılan Kitabxana İdxal Sihirbazı daxildir (Windows . dll faylı, Mac OS .framework faylı və ya Linux .so faylı).

Həmçinin, System Exec.vi istifadə edərək, interfeysdən istifadə edə bilərsiniz komanda xəttiəməliyyat sistemi.

Bir inkişaf mühitində bir neçə proqramlaşdırma texnikasının birləşməsi digər dillərdə işlənmiş alqoritmlərdən təkrar istifadə etməyə imkan verir. Bundan əlavə, tərtibatçı yüksək səviyyəli və aşağı səviyyəli əməliyyatları bir tətbiqdə birləşdirərək kodu daha çevik və vizual edə bilər. Müxtəlif abstraksiya səviyyələri proqram və aparat üzərində aşağı səviyyəli nəzarəti saxlamaqla mürəkkəb alqoritmləri vizuallaşdırmağa imkan verir. Sıx aparat inteqrasiyası ilə çox nüvəli, FPGA və quraşdırılmış prosessor platformalarında siqnalları idarə etmək üçün hər iki yanaşmadan istifadə edə bilərsiniz.

Problemlərin adətən bir neçə həlli var və LabVIEW proqramlaşdırma mühiti ehtiyaclarınıza ən uyğun həlli seçməyə imkan verəcək qədər çevikdir.

Simulink® The MathWorks, Inc-in qeydə alınmış ticarət nişanıdır.

ARM, Keil və µVision ARM Ltd və ya onun törəmə şirkətlərinin ticarət nişanları və qeydə alınmış ticarət nişanlarıdır.