CPU automatizované riadiace systémy a priemyselná bezpečnosť. Spoznajte LabView Lab View

Ahojte kolegovia!

V pomerne krátkom článku by som rád hovoril o programovacom jazyku LabVIEW. Tento veľmi zaujímavý produkt sa, žiaľ, neteší veľkej obľube a rád by som do určitej miery zaplnil existujúcu medzeru.

Čo je LabVIEW?

LabVIEW je jedným z vlajkových produktov spoločnosti National Instruments. V prvom rade treba poznamenať, že LabVIEW je skratka, ktorá znamená Lab oratórium V virtuálne ja prístrojové vybavenie E inžinierstvo W orkbench. Už v názve možno vysledovať orientáciu na laboratórny výskum, merania a zber dát. Vytvorenie SCADA systému v LabVIEW je skutočne o niečo jednoduchšie ako používanie „tradičných“ vývojových nástrojov. V tomto článku by som chcel ukázať, že možný rozsah LabVIEW je o niečo širší. Ide o zásadne odlišný programovací jazyk, alebo ak chcete celú „filozofiu“ programovania. Funkčný jazyk, ktorý vás núti myslieť inak a niekedy poskytuje úplne fantastické príležitosti pre vývojárov. Je LabVIEW vôbec programovací jazyk? Toto je kontroverzná otázka – neexistuje tu žiadny štandard, ako napríklad ANSI C. V úzkych kruhoch vývojárov hovoríme, že píšeme v jazyku „G“. Formálne takýto jazyk neexistuje, ale toto je krása tohto vývojového nástroja: od verzie k verzii sa do jazyka zavádza stále viac nových konštruktov. Je ťažké si predstaviť, že napríklad pri ďalšej reinkarnácii C sa objaví nová štruktúra for-loop. A v LabVIEW je to celkom možné.
Treba však podotknúť, že LabVIEW je zaradené do rebríčka programovacích jazykov TIOBE, momentálne zaberá tridsiate miesto – niekde medzi Prologom a Fortranom.

NI LabVIEW - história stvorenia

National Instruments založili v roku 1976 traja zakladatelia – Jeff Kodosky, James Truchard a Bill Nowlin v americkom meste Austin v Texase. Hlavnou špecializáciou spoločnosti boli nástrojov pre meranie a automatizáciu výroby.
Prvá verzia LabVIEW bola vydaná desať rokov po založení spoločnosti – v roku 1986 (išlo o verziu pre Apple Mac). Inžinieri NI sa rozhodli spochybniť „tradičné“ programovacie jazyky a vytvorili plne grafické vývojové prostredie. Jeff sa stal hlavným ideológom grafického prístupu. Rok čo rok vychádzajú nové verzie. Prvá multiplatformová verzia (vrátane Windowsu) bola verzia 3 vydaná v roku 1993. Aktuálna verzia je 8.6, ktorá bola vydaná minulý rok.

Spoločnosť má sídlo v Austine dodnes. Dnes spoločnosť zamestnáva takmer štyritisíc ľudí a kancelárie sa nachádzajú v takmer štyridsiatich krajinách (pobočka je aj v Rusku)

Môj úvod do LabVIEW

Moje predstavenie LabVIEW sa stalo takmer pred desiatimi rokmi. Začal som pracovať na novú zmluvu a môj vtedajší šéf mi odovzdal balíček cédečiek so slovami „teraz budeš pracovať na tomto“. Nainštaloval som LabVIEW (bola to piata verzia) a po chvíli hrania som si povedal, že na TOM sa nedá nič vážne robiť, je lepšie použiť Delphi „staromódnym spôsobom“ ... Na čo mi povedal - len si neochutnal. Práca na týždeň alebo dva. Po chvíli pochopím, že nebudem môcť písať na ničom inom ako v LabVIEW. Tento jazyk som si jednoducho zamiloval, hoci to nebola „láska na prvý pohľad“.

Vo všeobecnosti je pomerne ťažké porovnávať grafické a textové programovacie jazyky. Toto je možno porovnanie z kategórie "PC" proti "MAC" alebo "Windows" proti "Linuxu" - argumentovať môžete koľko chcete, ale argument je absolútne nezmyselný - každý systém má právo na existenciu a každý bude mať priaznivcov aj odporcov, okrem toho každý produkt má svoje vlastné miesto. LabVIEW je len nástroj, aj keď veľmi flexibilný.

Čo je teda LabVIEW?

LabVIEW je multiplatformný grafické prostredie vývoj aplikácií. LabVIEW je v podstate univerzálny programovací jazyk. A hoci je tento produkt niekedy úzko spojený s hardvérom National Instruments, nie je spojený s konkrétnym strojom. Existujú verzie pre Windows, Linux, MacOS. Zdrojové texty prenosné a programy budú vyzerať rovnako na všetkých systémoch. Kód vygenerovaný pomocou LabVIEW je možné spustiť aj v Windows Mobile alebo PalmOS (v úprimnosti treba poznamenať, že podpora pre PalmOS bola ukončená, ale viac si tu môže na vine samotný Palm). Tento jazyk sa dá úspešne použiť na tvorbu veľké systémy, pre spracovanie textu, obrázky a databázy.

LabVIEW je jazyk na veľmi vysokej úrovni. Nič vám však nebráni zaradiť „nízkoúrovňové“ moduly do programov LabVIEW. Aj keď chcete použiť vložky assembleru – aj to je možné, stačí si vygenerovať DLL a vložiť volania do kódu. Na druhej strane jazyk na vysokej úrovni vám umožňuje ľahko vykonávať veľmi netriviálne operácie s údajmi, ktoré v bežnom jazyku môžu zabrať veľa riadkov (ak nie desiatky riadkov) kódu. V záujme spravodlivosti je však potrebné poznamenať, že niektoré operácie jazykov na nízkej úrovni (napríklad práca s ukazovateľmi) nie je také ľahké implementovať v LabVIEW kvôli jeho „vysokej úrovni“. Jazyk LabVIEW samozrejme obsahuje základné riadiace konštrukcie, ktoré majú analógy v „tradičných“ jazykoch:

  • premenné (miestne alebo globálne)
  • vetvenie (štruktúra prípadu)
  • Pre - slučky s a bez kontroly ukončenia.
  • zatiaľ čo slučky
  • Zoskupovacie operácie.

LabVIEW - programové a jazykové vlastnosti

V LabVIEW sa softvérové ​​moduly, ktoré sú vyvinuté, nazývajú „Virtual Instruments“ (Virtual Instruments) alebo jednoducho VI. Sú uložené v súboroch *.vi. VI sú stavebné bloky, ktoré tvoria program LabVIEW. Každý program LabVIEW obsahuje aspoň jedno VI. Z hľadiska jazyka C môžete celkom bezpečne nakresliť analógiu s funkciou, len s tým rozdielom, že v LabVIEW je jedna funkcia obsiahnutá v jednom súbore (môžete vytvárať aj knižnice nástrojov). Je samozrejmé, že jeden VI možno volať z iného VI. V podstate každé VI pozostáva z dvoch častí – blokového diagramu a predného panela. Bloková schéma je programový kód (presnejšie vizuál grafické znázornenie kód) a predný panel je rozhranie. Takto vyzerá klasický príklad Hello, World!:

Srdcom LabVIEW je paradigma toku údajov. Vo vyššie uvedenom príklade sú konštanta a svorka indikátora spojené vedením. Táto linka sa nazýva Wire. Môžete to nazvať „drôt“. Drôty prenášajú údaje z jedného prvku do druhého. Celý tento koncept sa nazýva Data Flow. Podstatou Blokového diagramu sú uzly (uzly), výstupy niektorých uzlov sú prepojené so vstupmi iných uzlov. Uzol sa začne vykonávať až vtedy, keď prídu všetky údaje potrebné na prácu. Vo vyššie uvedenom diagrame sú dva uzly. Jedna z nich je stálica. Tento uzol je sebestačný – okamžite sa začne vykonávať. Druhý uzol je indikátor. Zobrazí údaje, ktoré konštanta prejde (nie však okamžite, ale hneď ako údaje z konštanty prídu).

Tu je trochu zložitejší príklad: sčítanie a násobenie dvoch čísel. V tradičných jazykoch by sme napísali niečo ako

int a, b, suma, mul;
//...
súčet = a + b;
mul = a*b;

Takto to vyzerá v LabVIEW:

Všimnite si, že sčítanie a násobenie sa vykonáva automaticky paralelne. Na dvojprocesorovom stroji budú oba procesory automaticky povolené.

A takto vyzerá štruktúra while / for a if / then / else:

Ako už bolo uvedené, všetky prvky sa budú vykonávať paralelne. Nemusíte premýšľať o tom, ako paralelizovať úlohu do viacerých vlákien, ktoré môžu bežať paralelne na viacerých procesoroch. AT najnovšie verzie dokonca môžete explicitne určiť, na ktorom z procesorov sa má vykonať táto alebo tá slučka while. Teraz existujú doplnky pre textové jazyky, ktoré vám umožňujú jednoducho dosiahnuť podporu pre viacprocesorové systémy, ale pravdepodobne to nie je nikde implementované tak jednoducho ako v LabVIEW. (no, stále som skĺzol do porovnávania s textovými jazykmi). Ak už hovoríme o multithreadingu, treba tiež poznamenať, že vývojár má široký výber nástrojov na synchronizáciu vlákien - semafory, fronty, stretnutia atď.

LabVIEW obsahuje bohatú sadu prvkov na vytváranie používateľských rozhraní. Rozhrania v Delphi boli rýchlo „útočené“ na čo av LabVIEW je tento proces ešte rýchlejší.

Súčasťou štandardnej dodávky LabVIEW sú aj bloky pre prácu s ini súbormi, register, funkcie pre prácu s binárnymi a testovacími súbormi, matematické funkcie, výkonné nástroje na vykresľovanie (a kde bez neho v laboratóriu) a okrem už spomínanej možnosti DLL volaní vám LabVIEW umožňuje pracovať s komponentmi ActiveX a .net. Počnúc ôsmou verziou bola do LabVIEW pridaná podpora tried – jazyk sa stal objektovo orientovaným. Implementovanú podporu nemožno nazvať úplnou, ale sú prítomné hlavné črty objektovo orientovaných jazykov - dedičnosť a polymorfizmus. Funkcionalitu jazyka je možné rozšíriť aj o ďalšie moduly, ako napríklad NI Vision Toolkit – pre spracovanie obrazu a strojové videnie a iné. A pomocou modulu Application Builder môžete vygenerovať spustiteľný exe súbor. S Internet Toolkit môžete pracovať ftp servery, pomocou Database Connectivity Toolkit - s databázami atď.

Často môžete počuť názor, že grafický kód je zle čitateľný. Skutočne, zo zvyku je množstvo ikon a dirigentov trochu šokujúce. Tiež začínajúci vývojári vytvárajú "listové" programy a "špagetové" programy. Skúsený vývojár LabVIEW však nikdy nevytvorí diagramy väčšie ako je veľkosť obrazovky, aj keď program pozostáva zo stoviek modulov. Dobre navrhnutý program je vlastne „samodokumentačný“, pretože je už založený na grafickom znázornení.

Dosť na dlhú dobu Pri programovaní v LabVIEW som bol plne presvedčený, že LabVIEW je interpret a blokové diagramy sú neustále interpretované jadrom. Po rozhovore s inžiniermi NI sa ukázalo, že to tak nebolo. LabVIEW je kompilátor (kvalita generovania kódu však ponecháva veľa požiadaviek). Kompilácia ale prebieha „za behu“ – kedykoľvek počas vývoja je program vždy pripravený na spustenie. Kód LabVIEW je tiež možné skompilovať do plnohodnotného spustiteľného súboru, ktorý je možné spustiť na počítači bez nainštalovaného LabVIEW (hoci vyžaduje LabVIEW Run-Time). Môžete tiež skompilovať inštalačný balík, nástroje tretích strán typ InstallShield sa nevyžaduje.

Ďalší a podrobnejší popis funkcií balíka je nad rámec tohto článku, ale odporúčam ho vyskúšať (odkazy sú uvedené nižšie). Ako povedali velikáni: "... jediný spôsob, ako sa naučiť nový programovací jazyk, je písať v ňom programy." Skúsení programátori budú môcť získané znalosti extrapolovať pre svoje potreby.

Ahojte kolegovia!

V pomerne krátkom článku by som rád hovoril o programovacom jazyku LabVIEW. Tento veľmi zaujímavý produkt sa, žiaľ, neteší veľkej obľube a rád by som do určitej miery zaplnil existujúcu medzeru.

Čo je LabVIEW?

LabVIEW je jedným z vlajkových produktov spoločnosti National Instruments. V prvom rade treba poznamenať, že LabVIEW je skratka, ktorá znamená Lab oratórium V virtuálne ja prístrojové vybavenie E inžinierstvo W orkbench. Už v názve možno vysledovať orientáciu na laboratórny výskum, merania a zber dát. Vytvorenie SCADA systému v LabVIEW je skutočne o niečo jednoduchšie ako používanie „tradičných“ vývojových nástrojov. V tomto článku by som chcel ukázať, že možný rozsah LabVIEW je o niečo širší. Ide o zásadne odlišný programovací jazyk, alebo ak chcete celú „filozofiu“ programovania. Funkčný jazyk, ktorý vás núti myslieť inak a niekedy poskytuje úplne fantastické príležitosti pre vývojárov. Je LabVIEW vôbec programovací jazyk? Toto je kontroverzná otázka – neexistuje tu žiadny štandard, ako napríklad ANSI C. V úzkych kruhoch vývojárov hovoríme, že píšeme v jazyku „G“. Formálne takýto jazyk neexistuje, ale toto je krása tohto vývojového nástroja: od verzie k verzii sa do jazyka zavádza stále viac nových konštruktov. Je ťažké si predstaviť, že napríklad pri ďalšej reinkarnácii C sa objaví nová štruktúra for-loop. A v LabVIEW je to celkom možné.
Treba však podotknúť, že LabVIEW je zaradené do rebríčka programovacích jazykov TIOBE, momentálne zaberá tridsiate miesto – niekde medzi Prologom a Fortranom.

NI LabVIEW - história stvorenia

National Instruments založili v roku 1976 traja zakladatelia – Jeff Kodosky, James Truchard a Bill Nowlin v americkom meste Austin v Texase. Hlavnou špecializáciou spoločnosti boli nástroje na meranie a automatizáciu výroby.
Prvá verzia LabVIEW bola vydaná desať rokov po založení spoločnosti – v roku 1986 (bola to verzia pre Apple Mac). Inžinieri NI sa rozhodli spochybniť „tradičné“ programovacie jazyky a vytvorili plne grafické vývojové prostredie. Jeff sa stal hlavným ideológom grafického prístupu. Rok čo rok vychádzajú nové verzie. Prvá multiplatformová verzia (vrátane Windowsu) bola verzia 3 vydaná v roku 1993. Aktuálna verzia je 8.6, ktorá bola vydaná minulý rok.

Spoločnosť má sídlo v Austine dodnes. Dnes spoločnosť zamestnáva takmer štyritisíc ľudí a kancelárie sa nachádzajú v takmer štyridsiatich krajinách (pobočka je aj v Rusku)

Môj úvod do LabVIEW

Moje predstavenie LabVIEW sa stalo takmer pred desiatimi rokmi. Začal som pracovať na novú zmluvu a môj vtedajší šéf mi odovzdal balíček cédečiek so slovami „teraz budeš pracovať na tomto“. Nainštaloval som LabVIEW (bola to piata verzia) a po chvíli hrania som si povedal, že na TOM sa nedá nič vážne robiť, je lepšie použiť Delphi „staromódnym spôsobom“ ... Na čo mi povedal - len si neochutnal. Práca na týždeň alebo dva. Po chvíli pochopím, že nebudem môcť písať na ničom inom ako v LabVIEW. Tento jazyk som si jednoducho zamiloval, hoci to nebola „láska na prvý pohľad“.

Vo všeobecnosti je pomerne ťažké porovnávať grafické a textové programovacie jazyky. Toto je možno porovnanie z kategórie "PC" proti "MAC" alebo "Windows" proti "Linuxu" - argumentovať môžete koľko chcete, ale argument je absolútne nezmyselný - každý systém má právo na existenciu a každý bude mať priaznivcov aj odporcov, okrem toho každý produkt má svoje vlastné miesto. LabVIEW je len nástroj, aj keď veľmi flexibilný.

Čo je teda LabVIEW?

LabVIEW je multiplatformové prostredie na vývoj grafických aplikácií. LabVIEW je v podstate univerzálny programovací jazyk. A hoci je tento produkt niekedy úzko spojený s hardvérom National Instruments, nie je spojený s konkrétnym strojom. Existujú verzie pre Windows, Linux, MacOS. Zdrojový kód je prenosný a programy budú vyzerať rovnako na všetkých systémoch. Kód generovaný LabVIEW je možné spustiť aj na Windows Mobile alebo PalmOS (aby sme boli spravodliví, podpora PalmOS bola zrušená, aj keď je tu viac na vine samotný Palm). Tento jazyk je možné úspešne použiť na vytváranie veľkých systémov, na spracovanie textov, obrázkov a prácu s databázami.

LabVIEW je jazyk na veľmi vysokej úrovni. Nič vám však nebráni zaradiť „nízkoúrovňové“ moduly do programov LabVIEW. Aj keď chcete použiť vložky assembleru – aj to je možné, stačí si vygenerovať DLL a vložiť volania do kódu. Na druhej strane jazyk na vysokej úrovni vám umožňuje ľahko vykonávať veľmi netriviálne operácie s údajmi, ktoré v bežnom jazyku môžu zabrať veľa riadkov (ak nie desiatky riadkov) kódu. V záujme spravodlivosti je však potrebné poznamenať, že niektoré operácie jazykov na nízkej úrovni (napríklad práca s ukazovateľmi) nie je také ľahké implementovať v LabVIEW kvôli jeho „vysokej úrovni“. Jazyk LabVIEW samozrejme obsahuje základné riadiace konštrukcie, ktoré majú analógy v „tradičných“ jazykoch:

  • premenné (miestne alebo globálne)
  • vetvenie (štruktúra prípadu)
  • Pre - slučky s a bez kontroly ukončenia.
  • zatiaľ čo slučky
  • Zoskupovacie operácie.

LabVIEW - programové a jazykové vlastnosti

V LabVIEW sa softvérové ​​moduly, ktoré sú vyvinuté, nazývajú „Virtual Instruments“ (Virtual Instruments) alebo jednoducho VI. Sú uložené v súboroch *.vi. VI sú stavebné bloky, ktoré tvoria program LabVIEW. Každý program LabVIEW obsahuje aspoň jedno VI. Z hľadiska jazyka C môžete celkom bezpečne nakresliť analógiu s funkciou, len s tým rozdielom, že v LabVIEW je jedna funkcia obsiahnutá v jednom súbore (môžete vytvárať aj knižnice nástrojov). Je samozrejmé, že jeden VI možno volať z iného VI. V podstate každé VI pozostáva z dvoch častí – blokového diagramu a predného panela. Blokový diagram je programový kód (presnejšie vizuálna grafická reprezentácia kódu), zatiaľ čo predný panel je rozhranie. Takto vyzerá klasický príklad Hello, World!:

Srdcom LabVIEW je paradigma toku údajov. Vo vyššie uvedenom príklade sú konštanta a svorka indikátora spojené vedením. Táto linka sa nazýva Wire. Môžete to nazvať „drôt“. Drôty prenášajú údaje z jedného prvku do druhého. Celý tento koncept sa nazýva Data Flow. Podstatou Blokového diagramu sú uzly (uzly), výstupy niektorých uzlov sú prepojené so vstupmi iných uzlov. Uzol sa začne vykonávať až vtedy, keď prídu všetky údaje potrebné na prácu. Vo vyššie uvedenom diagrame sú dva uzly. Jedna z nich je stálica. Tento uzol je sebestačný – okamžite sa začne vykonávať. Druhý uzol je indikátor. Zobrazí údaje, ktoré konštanta prejde (nie však okamžite, ale hneď ako údaje z konštanty prídu).

Tu je trochu zložitejší príklad: sčítanie a násobenie dvoch čísel. V tradičných jazykoch by sme napísali niečo ako

int a, b, suma, mul;
//...
súčet = a + b;
mul = a*b;

Takto to vyzerá v LabVIEW:

Všimnite si, že sčítanie a násobenie sa vykonáva automaticky paralelne. Na dvojprocesorovom stroji budú oba procesory automaticky povolené.

A takto vyzerá štruktúra while / for a if / then / else:

Ako už bolo uvedené, všetky prvky sa budú vykonávať paralelne. Nemusíte premýšľať o tom, ako paralelizovať úlohu do viacerých vlákien, ktoré môžu bežať paralelne na viacerých procesoroch. V nedávnych verziách môžete dokonca explicitne určiť, na ktorom z procesorov sa má vykonať táto alebo tá slučka while. Teraz existujú doplnky pre textové jazyky, ktoré vám umožňujú jednoducho dosiahnuť podporu pre viacprocesorové systémy, ale pravdepodobne to nie je nikde implementované tak jednoducho ako v LabVIEW. (no, stále som skĺzol do porovnávania s textovými jazykmi). Ak už hovoríme o multithreadingu, treba tiež poznamenať, že vývojár má široký výber nástrojov na synchronizáciu vlákien - semafory, fronty, stretnutia atď.

LabVIEW obsahuje bohatú sadu prvkov na vytváranie používateľských rozhraní. Rozhrania v Delphi boli rýchlo „útočené“ na čo av LabVIEW je tento proces ešte rýchlejší.

Súčasťou štandardnej dodávky LabVIEW sú aj bloky pre prácu s ini súbormi, register, funkcie pre prácu s binárnymi a testovacími súbormi, matematické funkcie, výkonné nástroje na vykresľovanie (a kde bez neho v laboratóriu) a okrem už spomínanej možnosti DLL volaní vám LabVIEW umožňuje pracovať s komponentmi ActiveX a .net. Počnúc ôsmou verziou bola do LabVIEW pridaná podpora tried – jazyk sa stal objektovo orientovaným. Implementovanú podporu nemožno nazvať úplnou, ale sú prítomné hlavné črty objektovo orientovaných jazykov - dedičnosť a polymorfizmus. Funkcionalitu jazyka je možné rozšíriť aj o ďalšie moduly, ako napríklad NI Vision Toolkit – pre spracovanie obrazu a strojové videnie a iné. A pomocou modulu Application Builder môžete vygenerovať spustiteľný exe súbor. Pomocou Internet Toolkit môžete pracovať s ftp servermi, pomocou Database Connectivity Toolkit - s databázami atď.

Často môžete počuť názor, že grafický kód je zle čitateľný. Skutočne, zo zvyku je množstvo ikon a dirigentov trochu šokujúce. Tiež začínajúci vývojári vytvárajú "listové" programy a "špagetové" programy. Skúsený vývojár LabVIEW však nikdy nevytvorí diagramy väčšie ako je veľkosť obrazovky, aj keď program pozostáva zo stoviek modulov. Dobre navrhnutý program je vlastne „samodokumentačný“, pretože je už založený na grafickom znázornení.

Počas programovania v LabVIEW som bol pomerne dlho úplne presvedčený, že LabVIEW je interpret a blokové diagramy sú neustále interpretované jadrom. Po rozhovore s inžiniermi NI sa ukázalo, že to tak nebolo. LabVIEW je kompilátor (kvalita generovania kódu však ponecháva veľa požiadaviek). Kompilácia ale prebieha „za behu“ – kedykoľvek počas vývoja je program vždy pripravený na spustenie. Kód LabVIEW je tiež možné skompilovať do plnohodnotného spustiteľného súboru, ktorý je možné spustiť na počítači bez nainštalovaného LabVIEW (hoci vyžaduje LabVIEW Run-Time). Môžete tiež zostaviť inštalačný balík inštalačných balíkov, nie sú potrebné nástroje tretích strán, ako napríklad InstallShield.

Ďalší a podrobnejší popis funkcií balíka je nad rámec tohto článku, ale odporúčam ho vyskúšať (odkazy sú uvedené nižšie). Ako povedali velikáni: "... jediný spôsob, ako sa naučiť nový programovací jazyk, je písať v ňom programy." Skúsení programátori budú môcť získané znalosti extrapolovať pre svoje potreby.

Takmer všetci vývojári zariadení na mikrokontroléroch, či už amatéri alebo profesionáli, skôr či neskôr potrebujú pripojiť mikrokontrolér k svojmu „veľkému bratovi“, teda k PC. Vtedy vyvstáva otázka, aký softvér použiť na výmenu s mikrokontrolérom, analýzu a spracovanie údajov z neho? Na výmenu MK s počítačom často používajú rozhranie a protokol RS232 - starý dobrý COM port v jednej alebo druhej implementácii.

Na strane počítača sa používajú rôzne terminálové programy, ktorých sú stovky. Ale tieto programy poskytujú iba príjem a prenos informácií. Je náročné ho spracovať a vizualizovať vo vizuálnej podobe.

Niektorí ľudia píšu takýto softvér sami v nejakom programovacom jazyku (Delphi, C ++), ktorý im dáva potrebnú funkčnosť. Táto úloha ale nie je jednoduchá, musíte poznať okrem samotného jazyka aj zariadenie operačný systém, spôsoby práce s komunikačnými portami, mnoho ďalších technických detailov, ktoré odvádzajú pozornosť od hlavnej veci - implementácie programového algoritmu. Vo všeobecnosti buďte programátorom Windows/Unix.

Na pozadí týchto prístupov sa koncept virtuálnych nástrojov (vi) výrazne líši. Tento článok sa zameria na softvérový produkt Nationals Instruments LabView. Práve začínam ovládať tento úžasný produkt, takže môžem robiť nepresnosti a chyby. Špecialisti opravia :-)) Čo je vlastne LabView?

LabView je vývojové prostredie a platforma pre spustenie programov napísaných v grafický jazyk programovanie "G" spoločnosti National Instruments.

rozprávanie jednoduchý jazyk, LabView - Toto je prostredie na vytváranie aplikácií pre úlohy zberu, spracovania, vizualizácie informácií z rôznych zariadení, laboratórnych zariadení atď. Aj na riadenie technologických procesov a zariadenia. S pomocou LabView však môžete vytvoriť celkom obyčajný aplikačný softvér. Nie je mojím cieľom podrobne popisovať tento produkt a pracovať s ním. LabView má tisíce strán vynikajúcej dokumentácie a stovky kníh. Internet je plný zdrojov súvisiacich s LabView, kde môžete nájsť odpovede na všetky svoje otázky.

Účelom článku je ukázať, ako jednoducho a pohodlne v porovnaní s tradičným programovaním môžete vytvárať aplikácie pre PC a aký výkon LabView nesie. (Vlastne je to diskutabilné, pretože v tradičnom programovaní na tom istom Delphi to nie je zložitejšie. A čo sa týka efektivity, je to sotva horšie, ak nie lepšie. Ale na to treba Delphi študovať oveľa dlhšie. Všetko je rychly a prehladny skoro hned Nastudoval som si par manualov a dopredu aby som si ohradil vselijake ciferniky.Takze pre programatorov je to ako psia piata noha,ale pre takych sudruhov daleko od pocitaca ako som ja to staci.Raz za pol roka hodinu, keď som prvýkrát videl LabView, postavil som brutálny systém pomocou tenkého manuálneho ovládania zavlažovania a vykurovania pre konopný skleník. So všetkými druhmi PID regulátorov. Priniesol som k potenciometrom a snímačom laboratórneho stojana, ktorý bol v našej technike a spustil túto pekelnou jednotku. A všetko fungovalo okamžite, bez ladenia. Mimochodom, všetko vybavenie hadrónového urýchľovača funguje na LabView, rovnako ako množstvo vedeckých zariadení. poznámka DI HALT) Koniec koncov, väčšine elektronických inžinierov je cudzie programovanie pre PC, však? Toto sa snažíme napraviť. Aby sme neštudovali sférické vákuové kone, stanovili sme si a implementovali jednoduchú úlohu. Úloha je naozaj jednoduchá, no na základe nej pochopíte základné princípy programovania v LabView. Použijeme LabView verzie 2010. Pre ostatné verzie budú rozdiely minimálne.

Úloha
Máme poplatok Mikrokontrolér AVR pripojený k počítaču cez RS232. V regulátore je nahraný firmvér, podľa ktorého regulátor meria hodnotu napätia na jednom zo vstupov ADC a prenáša kód ADC (od 0 do 1023) do počítača cez sériový kanál. Je potrebné napísať PC program, ktorý bude prijímať dátový tok z ADC, zobraziť kód ADC, previesť kód ADC na hodnotu napätia vo voltoch, zobraziť hodnotu napätia vo voltoch, vykresliť zmenu napätia v čase.

No, asi dosť textov, začnime snáď!

Čo teda potrebujeme k práci:

  • Vlastne samotný LabView. Skúšobnú verziu si môžete stiahnuť z webovej stránky NI: http://www.ni.com/trylabview/. Taktiež pirátska verzia sa dá ľahko vygoogliť. Mimochodom, na rutracker.org je okrem priepasti pirátskych aj linuxová verzia, na ktorú sa registrácia vraj vôbec nevyžaduje. NI sa rozhodla stretnúť s otvoreným zdrojom?
  • Musíte si tiež stiahnuť komponent NI VISA. Bez tohto programu LabView „neuvidí“ COM port na počítači. VISA obsahuje funkcie pre prácu s komunikačnými portami a mnohé ďalšie. Môžete si ho stiahnuť z joule.ni.com. Nainštalujte LabView a VISA. Inštalácia tohto softvéru je štandardná, nemá žiadne špeciálne funkcie.

V prvom rade sa musíme uistiť, že VISA našla v systéme COM port a správne s ním pracuje. Môžete to skontrolovať takto: spustite program Measurement & Automation. Dodáva sa s LabView. Ak nie je nainštalovaný, môžete ho nainštalovať manuálne. Na disku (obrázok s LabView ho má).

Na ľavej strane okna vidíme hardvér nájdený v systéme. Okrem iného tu nájdeme náš COM port. Na pravej strane je tlačidlo Open Visa test panel. Pomocou neho môžete otestovať vybrané zariadenie. V prípade portu COM tam môžete odosielať alebo prijímať predvolenú alebo ľubovoľnú sekvenciu znakov. Ak je s portom všetko v poriadku, môžete pristúpiť priamo k vytvoreniu nášho programu.

Spustíme LabView. V okne Začíname vyberte Blank Vi, čo znamená nový virtuálny nástroj.

Dostaneme niečo takéto:

Tak čo máme. Pracovný priestor tvoria dva veľké panely Predný panel a Blokový diagram. Na prednom paneli si poskladáme rozhranie nášho programu pomocou ovládacích prvkov z ovládacieho panela. Týmito prvkami sú rukoväte premenných rezistorov, ktoré sú nám známe, LED diódy, tlačidlá, ukazovacie zariadenia, obrazovka osciloskopu atď. Slúžia na zadávanie informácií do programu a zobrazenie výsledkov vykonávania. Na paneli Bloková schéma je priamo umiestnený programový kód. Tu musíme trochu ustúpiť a vysvetliť princíp programovania v LabView. Malý príklad. Je obvyklé začať pracovať na programe s návrhom rozhrania a potom implementáciou pracovného algoritmu na blokovom diagrame. Urobme si najjednoduchší program na násobenie dvoch čísel. Ak to chcete urobiť, umiestnime na predný panel potiahnutím troch ovládacích prvkov, povedzme prvky Knob a Numeric Indicator, aby sa zobrazil výsledok.

Vytvoríme rozhranie tak, ako si to naše srdce želá, napríklad takto:

Ok, teraz musíme implementovať skutočné násobenie. Prejdite na panel Bloková schéma a uvidíte, že pre každý z našich ovládacích prvkov bola vytvorená zodpovedajúca ikona. Najlepšie je okamžite prepnúť režim zobrazenia vo forme svoriek. Diagram nebude taký neprehľadný. Okrem toho je v termináloch viditeľný typ údajov, s ktorými ten či onen ovládač pracuje. Ak to chcete urobiť, kliknite pravým tlačidlom myši na ikonu a zrušte začiarknutie políčka Zobraziť ako ikonu. V hornej časti obrazovky je ovládanie vo forme terminálu, v spodnej časti a vpravo vo forme ikony. Ak chcete predvolene nakonfigurovať zobrazenie na blokovej schéme ako terminály, musíte vybrať položku ponuky Nástroje->Možnosti, vybrať položku Bloková schéma vľavo a zrušiť začiarknutie políčka Umiestniť terminály predného panela ako ikony. Veľmi užitočné na zobrazenie kontextovej pomoci. Môžete ho zobraziť kombináciou Ctrl + H. Toto okno zobrazuje informácie o objekte, na ktorom je aktuálne prekrytý kurzor. Mega šikovná vec.

Teraz musíme do blokovej schémy pridať funkciu násobenia. Kliknite pravým tlačidlom myši na blokovú schému a vyberte funkciu Násobiť z palety Numerické. Dajme si to na diagram. Stojí za zmienku, že LabView má len obrovskú sadu funkcií. To zahŕňa rôzne matematiky, štatistiky, analýzu signálov, PID reguláciu, spracovanie videa, zvuku a obrazu. Nemôžete vymenovať všetko.

Najdôležitejším konceptom v programovaní LabView je koncept DataFlow. Pointa je nasledovná: Na rozdiel od imperatívnych programovacích jazykov, kde sa príkazy vykonávajú v sekvenčnom poradí, funkcie v LabView fungujú iba vtedy, ak sú informácie o všetkých vstupoch funkcií (každá funkcia má vstupné a výstupné hodnoty). Až potom funkcia implementuje svoj algoritmus a výsledok sa odošle na výstup, ktorý môže použiť iná funkcia. V rámci toho istého VI teda môžu funkcie pracovať nezávisle od seba.

Teraz, aby sme oživili náš príklad, musíme nasledovať tento koncept a dať funkcii vstupu číselné hodnoty, ktoré sme nastavili ako ovládacie prvky, a získať výsledok z výstupu a zobraziť ho.

Na pripojenie prvkov v blokovej schéme použite nástroj Connect Wire z panela Nástroje. Vyberte ho a nakreslite naše spojenia.

To je všetko, môžete spustiť tento hlúpy program na cyklické vykonávanie a otáčať gombíkmi a sledovať výsledok násobenia.

Ako vidíte, zdá sa, že nie je nič zložité. Ale zároveň vám LabView umožňuje riešiť problémy akejkoľvek zložitosti! Ept, systém ovládania TANK je na ňom vyrobený! Takže to.

No a teraz urobme viac zaujímavé veci, konkrétne vyrobíme náš najjednoduchší voltmeter, o ktorom som hovoril na samom začiatku.

Čo teda musíme urobiť. Najprv musíte nakonfigurovať a inicializovať sériový port. Začnite nekonečnú slučku. V slučke používame funkciu na čítanie z portu a prijímanie informácií. Prevedieme info pre zobrazenie na grafe, prepočítajme ADC kód na hodnotu napätia vo voltoch. Pri výstupe zo slučky zatvoríme port.
Takže v rozhraní nášho programu nebudú okrem tlačidla Stop žiadne ovládacie prvky, ale bude tam len zobrazenie výsledku, urobíme toto: najprv vytvoríme blokovú schému a potom pridáme chýbajúce prvky do predný panel. Aj keď musíte urobiť pravý opak! Ale v tomto prípade je to pohodlnejšie.

Na panel blokového diagramu umiestnime prvok Kým slučka z palety Štruktúry, toto je naša nekonečná slučka. Oblasť zakrúžkujeme rámom cyklu, ktorý je dostatočný na to, aby sa zmestil do algoritmu. V pravom dolnom rohu je červená bodka, kliknite na ňu pravým tlačidlom myši a vyberte položku Create Control. Na prednom paneli sa okamžite zobrazí tlačidlo Stop. Keď naň kliknete, náš program sa skončí.

Teraz, mimo slučky, musíme umiestniť funkcie na inicializáciu a zatvorenie portu. Inicializácia vľavo, zatváranie vpravo. Opäť kliknite pravým tlačidlom myši a vyberte funkcie Konfigurovať port, Čítať a Zavrieť. Tieto funkcie nájdete v palete Instrument I/O –> Serial. Funkcia čítania je umiestnená vo vnútri slučky. Výstupy a vstupy funkcií spájame pomocou cievky s vodičmi. Pre funkciu Read musíme určiť počet bajtov, ktoré bude akceptovať. Klikneme pravým tlačidlom myši na stredný vstup funkcie Read a vyberieme Create-> Constant, zadáme hodnotu, napríklad 200. V tejto fáze by to malo dopadnúť ako na snímke obrazovky.

Musíte vytvoriť ovládacie prvky pre funkciu inicializácie portu. Dva nám úplne stačia – rýchlosť portu a názov portu. Rovnakým spôsobom, ako sme vytvorili konštantu pre funkciu read, vytvoríme ovládacie prvky. RMB na požadovaných vstupoch inicializačnej funkcie a položky

Vytvoriť->Ovládanie.

Zaujímajú nás dva vstupy: Názov zdroja víz a prenosová rýchlosť(predvolená hodnota 9600). Teraz prejdeme na predný panel a pridáme potrebné komponenty, konkrétne obrazovku na kreslenie grafu a štítky na zobrazenie kódu ADC a napätia vo voltoch.
V súlade s tým sú to prvky Waveform Chart z palety Graph a dva prvky Numeric Indicator z palety Numeric.

Vráťme sa k blokovej schéme a presuňte prvky, ktoré sa objavili vo vnútri slučky. Blížime sa k dokončeniu! Jediná vec je, že stále musíme previesť reťazec znakov z výstupu funkcie Read do formátu, ktorý naše indikátory strávia. A tiež implementovať najjednoduchšiu matematiku na preklad kódu ADC do voltov. Nižšie sú uvedené snímky obrazovky predného panela a bloková schéma v tejto fáze:

Na konverziu reťazca použijeme funkciu Scan from string z palety String. Vložíme do slučky. Teraz matematika. Aby ste mohli previesť kód ADC na hodnotu napätia vo voltoch, musíte kód vynásobiť hodnotou referenčného napätia (v mojom prípade je to päť voltov) a výslednú hodnotu vydeliť číslom 1023 (keďže ADC má 10-bitová kapacita). Potrebné funkcie násobenia a delenia, ako aj konštanty (5 a 1023) budú umiestnené v slučke. Nebudem robiť screenshoty každého pripojenia, pretože tam sú už obrázky dofiga. Dám záverečnú obrazovku všetkých spojení. Všetko je tam mimoriadne jednoduché.

Myslím, že všetko je jasné, ak máte otázky, pýtajte sa v komentároch. Poďme na to spolu :-))) Medzitým je program pripravený.

Prejdime k nášmu rozhraniu a trochu upravíme graf. Vyberte spodnú hodnotu na osi Y a nastavte ju na 0. Vyberte hornú hodnotu a nastavte ju na 5. Naša stupnica na osi Y je teda v rozsahu 0-5 voltov. Vyberieme COM port, zadáme výmenný kurz, spustíme náš program pomocou tlačidla so šípkou a prudko otočíme rezistor na doske, pričom výsledok našej práce sledujeme na obrazovke. Kliknutím na tlačidlo Stop zastavíte program.

Ako vidíte, všetko je celkom jednoduché. Tento príklad toto je len malá časť všetkých možností LabView. Ak tento článok niekomu pomôže, budem rád. Len neudierajte tvrdo do komentárov, nie som profík. Ďalší malý trik. Ak diagram vyzerá ako Cthulhu, môžete skúsiť použiť tlačidlo CleanUp Diagram. Prinesie diagram do viac-menej božskej podoby, no treba ho používať opatrne. Tu je výsledok jej práce

A tiež môžete kúsky kombinovať do funkčných blokov, aby nezaťažovali obvod.

Takmer všetci vývojári zariadení na mikrokontroléroch, či už amatéri alebo profesionáli, skôr či neskôr potrebujú pripojiť mikrokontrolér k svojmu „veľkému bratovi“, teda k PC. Vtedy vyvstáva otázka, aký softvér použiť na výmenu s mikrokontrolérom, analýzu a spracovanie údajov z neho? Na výmenu MK s počítačom často používajú rozhranie a protokol RS232 - starý dobrý COM port v tej či onej implementácii.

Na strane počítača sa používajú rôzne terminálové programy, ktorých sú stovky. Ale tieto programy poskytujú iba príjem a prenos informácií. Je náročné ho spracovať a vizualizovať vo vizuálnej podobe.

Niektorí ľudia píšu takýto softvér sami v nejakom programovacom jazyku (Delphi, C ++), ktorý im dáva potrebnú funkčnosť. Táto úloha však nie je jednoduchá, musíte vedieť okrem samotného jazyka aj zariadenie operačného systému, ako pracovať s komunikačnými portami a mnoho ďalších technických jemností, ktoré odvádzajú pozornosť od hlavnej veci - implementácie programu. algoritmu. Vo všeobecnosti buďte programátorom Windows/Unix.

Na pozadí týchto prístupov sa koncept virtuálnych nástrojov (vi) výrazne líši. Tento článok sa zameria na softvérový produkt Nationals Instruments LabView. Práve začínam ovládať tento úžasný produkt, takže môžem robiť nepresnosti a chyby. Špecialisti opravia :-)) Čo je vlastne LabView?

LabView je vývojové prostredie a platforma na spúšťanie programov napísaných v grafickom programovacom jazyku G od National Instruments.

Zjednodušene povedané, LabView je prostredie na vytváranie aplikácií pre úlohy zberu, spracovania, vizualizácie informácií z rôznych prístrojov, laboratórnych nastavení atď. A tiež na riadenie technologických procesov a zariadení. S pomocou LabView však môžete vytvoriť celkom obyčajný aplikačný softvér. Nie je mojím cieľom podrobne popisovať tento produkt a pracovať s ním. LabView má tisíce strán vynikajúcej dokumentácie a stovky kníh. Internet je plný zdrojov súvisiacich s LabView, kde môžete nájsť odpovede na všetky svoje otázky.

Účelom článku je ukázať, ako jednoducho a pohodlne v porovnaní s tradičným programovaním môžete vytvárať aplikácie pre PC a aký výkon LabView nesie. (Vlastne je to diskutabilné, pretože v tradičnom programovaní na tom istom Delphi to nie je zložitejšie. A čo sa týka efektivity, je to sotva horšie, ak nie lepšie. Ale na to treba Delphi študovať oveľa dlhšie. Všetko je rýchly a prehľadný takmer okamžite "Naštudoval som si pár manuálov a dopredu na ohradenie všelijakých ciferníkov. Takže pre programátorov je to ako piata noha psa, ale pre takých súdruhov tak ďaleko od počítača, ako som ja, to je ono. Raz, za pol hodinu, keď som prvýkrát videl LabView, som postavil brutálny systém pomocou tenkého manuálneho Ovládanie zavlažovania a vykurovania pre konopný skleník.So všetkými druhmi PID regulátorov.Priniesol som k potenciometrom a snímačom laboratórneho stojana, ktorý bol v r. náš technik a spustil túto pekelnou jednotku. A všetko fungovalo okamžite, bez ladenia. Mimochodom, všetko vybavenie hadrónového urýchľovača funguje na LabView, rovnako ako množstvo vedeckých zariadení. poznámka DI HALT) Koniec koncov, väčšine elektronických inžinierov je cudzie programovanie pre PC, však? Toto sa snažíme napraviť. Aby sme neštudovali sférické vákuové kone, stanovili sme si a implementovali jednoduchú úlohu. Úloha je naozaj jednoduchá, no na základe nej pochopíte základné princípy programovania v LabView. Použijeme LabView verzie 2010. Pre ostatné verzie budú rozdiely minimálne.

Úloha
Máme dosku s mikrokontrolérom AVR pripojenú k počítaču cez RS232. V regulátore je nahraný firmvér, podľa ktorého regulátor meria hodnotu napätia na jednom zo vstupov ADC a prenáša kód ADC (od 0 do 1023) do počítača cez sériový kanál. Je potrebné napísať PC program, ktorý bude prijímať dátový tok z ADC, zobraziť kód ADC, previesť kód ADC na hodnotu napätia vo voltoch, zobraziť hodnotu napätia vo voltoch, vykresliť zmenu napätia v čase.

No, asi dosť textov, začnime snáď!

Čo teda potrebujeme k práci:

  • Vlastne samotný LabView. Skúšobnú verziu si môžete stiahnuť z webovej stránky NI: http://www.ni.com/trylabview/. Taktiež pirátska verzia sa dá ľahko vygoogliť. Mimochodom, na rutracker.org je okrem priepasti pirátskych aj linuxová verzia, na ktorú sa registrácia vraj vôbec nevyžaduje. NI sa rozhodla stretnúť s otvoreným zdrojom?
  • Musíte si tiež stiahnuť komponent NI VISA. Bez tohto programu LabView „neuvidí“ COM port na počítači. VISA obsahuje funkcie pre prácu s komunikačnými portami a mnohé ďalšie. Môžete si ho stiahnuť z joule.ni.com. Nainštalujte LabView a VISA. Inštalácia tohto softvéru je štandardná, nemá žiadne špeciálne funkcie.

V prvom rade sa musíme uistiť, že VISA našla v systéme COM port a správne s ním pracuje. Môžete to skontrolovať takto: spustite program Measurement & Automation. Dodáva sa s LabView. Ak nie je nainštalovaný, môžete ho nainštalovať manuálne. Na disku (obrázok s LabView ho má).

Dostaneme niečo takéto:


Tak čo máme. Pracovný priestor tvoria dva veľké panely Predný panel a Blokový diagram. Na prednom paneli si poskladáme rozhranie nášho programu pomocou ovládacích prvkov z ovládacieho panela. Týmito prvkami sú rukoväte premenných rezistorov, ktoré sú nám známe, LED diódy, tlačidlá, ukazovacie zariadenia, obrazovka osciloskopu atď. Slúžia na zadávanie informácií do programu a zobrazenie výsledkov vykonávania. Na paneli Bloková schéma je priamo umiestnený programový kód. Tu musíme trochu ustúpiť a vysvetliť princíp programovania v LabView. Malý príklad. Je obvyklé začať pracovať na programe s návrhom rozhrania a potom implementáciou pracovného algoritmu na blokovom diagrame. Urobme si najjednoduchší program na násobenie dvoch čísel. Ak to chcete urobiť, umiestnime na predný panel potiahnutím troch ovládacích prvkov, povedzme prvky Knob a Numeric Indicator, aby sa zobrazil výsledok.

Ok, teraz musíme implementovať skutočné násobenie. Prejdite na panel Bloková schéma a uvidíte, že pre každý z našich ovládacích prvkov bola vytvorená zodpovedajúca ikona. Najlepšie je okamžite prepnúť režim zobrazenia vo forme svoriek. Diagram nebude taký neprehľadný. Okrem toho je v termináloch viditeľný typ údajov, s ktorými ten či onen ovládač pracuje. Ak to chcete urobiť, kliknite pravým tlačidlom myši na ikonu a zrušte začiarknutie políčka Zobraziť ako ikonu. V hornej časti obrazovky je ovládanie vo forme terminálu, v spodnej časti a vpravo vo forme ikony. Ak chcete predvolene nakonfigurovať zobrazenie na blokovej schéme ako terminály, musíte vybrať položku ponuky Nástroje->Možnosti, vybrať položku Bloková schéma vľavo a zrušiť začiarknutie políčka Umiestniť terminály predného panela ako ikony. Veľmi užitočné na zobrazenie kontextovej pomoci. Môžete ho zobraziť kombináciou Ctrl + H. Toto okno zobrazuje informácie o objekte, na ktorom je aktuálne prekrytý kurzor. Mega šikovná vec.

Najdôležitejším konceptom v programovaní LabView je koncept DataFlow. Pointa je nasledovná: Na rozdiel od imperatívnych programovacích jazykov, kde sa príkazy vykonávajú v sekvenčnom poradí, funkcie v LabView fungujú iba vtedy, ak sú informácie o všetkých vstupoch funkcií (každá funkcia má vstupné a výstupné hodnoty). Až potom funkcia implementuje svoj algoritmus a výsledok sa odošle na výstup, ktorý môže použiť iná funkcia. V rámci toho istého VI teda môžu funkcie pracovať nezávisle od seba.

Teraz, aby sme oživili náš príklad, musíme nasledovať tento koncept a dať funkcii vstupu číselné hodnoty, ktoré sme nastavili ako ovládacie prvky, a získať výsledok z výstupu a zobraziť ho.

Na pripojenie prvkov v blokovej schéme použite nástroj Connect Wire z panela Nástroje. Vyberte ho a nakreslite naše spojenia.

Ako vidíte, zdá sa, že nie je nič zložité. Ale zároveň vám LabView umožňuje riešiť problémy akejkoľvek zložitosti! Ept, systém ovládania TANK je na ňom vyrobený! Takže to.

Teraz urobme zaujímavejšie veci, konkrétne urobíme náš najjednoduchší voltmeter, o ktorom som hovoril na samom začiatku.

Čo teda musíme urobiť. Najprv musíte nakonfigurovať a inicializovať sériový port. Začnite nekonečnú slučku. V slučke používame funkciu na čítanie z portu a prijímanie informácií. Prevedieme info pre zobrazenie na grafe, prepočítajme ADC kód na hodnotu napätia vo voltoch. Pri výstupe zo slučky zatvoríme port.
Takže v rozhraní nášho programu nebudú okrem tlačidla Stop žiadne ovládacie prvky, ale bude tam len zobrazenie výsledku, urobíme toto: najprv vytvoríme blokovú schému a potom pridáme chýbajúce prvky do predný panel. Aj keď musíte urobiť pravý opak! Ale v tomto prípade je to pohodlnejšie.

Na panel blokového diagramu umiestnime prvok Kým slučka z palety Štruktúry, toto je naša nekonečná slučka. Oblasť zakrúžkujeme rámom cyklu, ktorý je dostatočný na to, aby sa zmestil do algoritmu. V pravom dolnom rohu je červená bodka, kliknite na ňu pravým tlačidlom myši a vyberte položku Create Control. Na prednom paneli sa okamžite zobrazí tlačidlo Stop. Keď naň kliknete, náš program sa skončí.

Musíte vytvoriť ovládacie prvky pre funkciu inicializácie portu. Nám stačia dva – rýchlosť portu a názov portu. Rovnakým spôsobom, ako sme vytvorili konštantu pre funkciu read, vytvoríme ovládacie prvky. RMB na požadovaných vstupoch inicializačnej funkcie a položky

Vytvoriť->Ovládanie.

Vytvoriť->Ovládanie.

Zaujímajú nás dva vstupy: Názov zdroja víz a prenosová rýchlosť(predvolená hodnota 9600). Teraz prejdeme na predný panel a pridáme potrebné komponenty, konkrétne obrazovku na kreslenie grafu a štítky na zobrazenie kódu ADC a napätia vo voltoch.
V súlade s tým sú to prvky Waveform Chart z palety Graph a dva prvky Numeric Indicator z palety Numeric.

Vráťme sa k blokovej schéme a presuňte prvky, ktoré sa objavili vo vnútri slučky. Blížime sa k dokončeniu! Jediná vec je, že stále musíme previesť reťazec znakov z výstupu funkcie Read do formátu, ktorý naše indikátory strávia. A tiež implementovať najjednoduchšiu matematiku na preklad kódu ADC do voltov. Nižšie sú uvedené snímky obrazovky predného panela a bloková schéma v tejto fáze:



Na konverziu reťazca použijeme funkciu Scan from string z palety String. Vložíme do slučky. Teraz matematika. Aby ste mohli previesť kód ADC na hodnotu napätia vo voltoch, musíte kód vynásobiť hodnotou referenčného napätia (v mojom prípade je to päť voltov) a výslednú hodnotu vydeliť číslom 1023 (keďže ADC má 10-bitová kapacita). Potrebné funkcie násobenia a delenia, ako aj konštanty (5 a 1023) budú umiestnené v slučke. Nebudem robiť screenshoty každého pripojenia, pretože tam sú už obrázky dofiga. Dám záverečnú obrazovku všetkých spojení. Všetko je tam mimoriadne jednoduché.


Myslím, že všetko je jasné, ak máte otázky, pýtajte sa v komentároch. Poďme na to spolu :-))) Medzitým je program pripravený.

Prejdime k nášmu rozhraniu a trochu upravíme graf. Vyberte spodnú hodnotu na osi Y a nastavte ju na 0. Vyberte hornú hodnotu a nastavte ju na 5. Naša stupnica na osi Y je teda v rozsahu 0-5 voltov. Vyberieme COM port, zadáme výmenný kurz, spustíme náš program pomocou tlačidla so šípkou a prudko otočíme rezistor na doske, pričom výsledok našej práce sledujeme na obrazovke. Kliknutím na tlačidlo Stop zastavíte program.

A tiež môžete kúsky kombinovať do funkčných blokov, aby nezaťažovali obvod.



NI LabVIEW je streamingové grafické programovacie prostredie. Pri písaní programu v LabVIEW užívateľ špecifikuje postupnosť operácií na transformáciu dátového toku pomocou blokovej schémy. Obrázky sú umiestnené na blokovej schéme funkčné jednotky, prepojené vodičmi, ktorými prechádza dátový tok z jedného uzla do druhého. LabVIEW má tiež množstvo nástrojov na prelomenie paradigmy programovanie streamovania, čo však umožňuje výrazne rozšíriť funkčnosť aplikácií v ňom vyvinutých.

Čo je to programovacia technika

Pojem "technika programovania" zahŕňa výber rôznych programovacích jazykov, výpočtových modelov, úrovní abstrakcie, metód práce s kódom a reprezentujúcich algoritmov. V priebehu rokov spoločnosť National Instruments vyvinula funkčnosť LabVIEW na podporu viacerých programovacích techník.


Na blokovom diagrame môžete prezentovať kód napísaný pomocou rôznych techník, ako aj streamovanie G kódu a LabVIEW zostaví inštrukcie pre príslušné cieľové zariadenia (normálne stolné počítače, platformy RTOS, FPGA, mobilné zariadenia, vstavané zariadenia založené na ARM)

Obr.1. Široká škála platforiem a programovacích techník v LabVIEW



Prenos dát medzi časťami kódu napísanými rôznymi prístupmi je v LabVIEW organizovaný celkom jednoducho – dátový tok je prepojením medzi rôznymi výpočtovými modelmi a jazykmi. V jazyku G sa vstup/výstup informácií vykonáva pomocou špecializovaného používateľského rozhrania (predný panel), sieťových rozhraní, analytických knižníc, databáz a iných nástrojov.

G Programovanie
Príchod streamového programovania v roku 1986 bol skutočne inovatívny. Postupnosť vykonávania operácií s údajmi v jazyku G nie je určená poradím, v akom sa objavujú, ale prítomnosťou údajov na vstupoch týchto uzlov. Príkazy, ktoré nie sú spojené dátovým tokom, sa vykonávajú paralelne v ľubovoľnom poradí.

Uzly diagramu sú jednoduché inštrukcie alebo ich sady - funkcie, virtuálne nástroje (VI). Vykonanie inštrukcií uzla nastáva až po zobrazení údajov na všetkých vstupných svorkách uzla. Po vykonaní inštrukcií sa jej výsledok prenesie cez výstupné svorky uzla na vstupy nasledujúcich uzlov.


Obr.2. V tomto príklade sa A a B spočítajú, výsledný súčet sa vynásobí C a zobrazí sa výsledok


Obrázok 2 ukazuje príklad matematického výrazu v jazyku G. Diagram pozostáva z dvoch uzlov (sčítanie a násobenie) a troch vstupov (A, B a C). Najprv sa sčítajú A a B. Kód uzla násobenia sa nevykoná, kým oba jeho vstupné terminály neprijmú dáta, a preto čaká na výsledok uzla sčítania. Hneď ako výsledok sčítania príde na prvý vstup násobiaceho uzla, vykoná sa jeho kód (A+B)*C.

Hoci jazyk G umožňuje explicitne špecifikovať typ údajov, jedným z významných rozdielov tohto jazyka od ostatných je prítomnosť vodičov, ktoré vykonávajú funkcie premenných. Namiesto odovzdávania premenných medzi funkciami je odovzdávanie údajov definované pomocou drôtových spojení. Na druhej strane má jazyk G štandardné konštrukcie aj pre iné jazyky, ako sú podmienené cykly, počítadlá, výberové štruktúry, spätné volania a boolovské funkcie.

Interaktívne nastavenie ako základ programovania
V roku 2003 spoločnosť National Instruments uviedla na trh NI LabVIEW 7 Express, ktorý bol priekopníkom technológie Express VI, technológie navrhnutej na ďalšie zjednodušenie procesu vývoja aplikačných algoritmov. Na rozdiel od bežných VI sú expresné VI abstraktné jazykové štruktúry, ktoré implementujú programovaciu techniku ​​založenú na interaktívne nastavenie komponentov.


Obr.3. Paleta expresného VI, umiestnenie expresného VI do blokového diagramu a zobrazenie expresného VI v režime miniatúr


Expresného VP odlíšite od bežného VP podľa veľkej modrej ikony. Keď po prvýkrát umiestnite expresné VI do blokovej schémy, zobrazí sa príslušné dialógové okno nastavenia. Po dokončení prispôsobenia LabVIEW automaticky vygeneruje kód na základe vygenerovanej konfigurácie Express VI. Tento kód môžete zobraziť a upraviť alebo zmeniť nastavenia Express VI opätovným otvorením dialógového okna dvojitým kliknutím na ikonu Express VI.

Ako príklad zvážte úlohu zadávania údajov na ich implementáciu. analýza programu. LabVIEW veľmi uľahčuje interakciu s rôznym hardvérom, pretože obsahuje ovládače pre tisíce zariadení. Úlohu zberu údajov je možné realizovať nielen návrhom niekoľkých VI, ale aj jednoduchšou možnosťou - expresným VI.

Jednoducho zadajte kanály na čítanie/zápis v nastaveniach DAQ Assistance Express VI a nakonfigurujte parametre, ako je vzorkovacia frekvencia, škálovanie, časovanie a spúšťače. Express VI navyše poskytuje možnosť predbežného zberu údajov zo zariadenia na overenie správnosti zvolených nastavení zberu údajov.


Obr.4. DAQ Assistant Express VI výrazne zjednodušuje nastavenie časovania spúšťania a parametrov kanálov



Obr.5. G kód ekvivalentný DAQ Assistant Express VI


Napriek všetkým svojim výhodám expresné VI neposkytujú nízkoúrovňové riadenie a konfiguráciu režimu prevádzky zariadenia, ktorá je implementovaná pomocou konvenčných VI. Používatelia noví v LabVIEW môžu použiť vstavanú funkciu, ktorá konvertuje predtým nakonfigurované expresné VI na sekvenciu bežných VI. To môže pomôcť začiatočníkom naučiť sa kód nízkej úrovne. Stačí vybrať riadok Open Front Panel in obsahové menu vyjadrite VI na blokovom diagrame. Všimnite si, že akékoľvek Express VI môže byť nahradené kombináciou niekoľkých bežných VI a edícia LabVIEW Professional Development System vám umožňuje vytvoriť si vlastné Express VI.

Súbory Script support.m
S modulom LabVIEW MathScript RT môžete importovať, upravovať a spúšťať skripty súboru *.m, ktoré sa tradične používajú v matematickom modelovaní a analýze, spracovaní signálov a zložitých matematických výpočtoch. Môžete ich použiť s G kódom na vytváranie samostatných aplikácií pre desktop alebo hardvér v reálnom čase.

Existuje niekoľko spôsobov, ako pracovať s MathScriptom v LabVIEW. Na interaktívnu prácu so skriptami použite okno MathScript zobrazené na obr. 6


Obr.6. Interaktívny vývoj textové algoritmy v okne MathScript


Ak chcete použiť skripty *.m v aplikácii LabVIEW a spojiť silu textového a grafického programovania, použite uzol MathScript zobrazený na obrázku 7. Použitie uzla MathScript vám umožňuje vložiť textové algoritmy do kódu VI a použiť ich grafické možnosti rozhranie pre správu parametrov scenára (tlačidlá, posuvníky, ovládače, grafy a ďalšie prvky).


Obr.7. Uzol MathScript uľahčuje používanie skriptu scripts.m v kóde G


Modul LabVIEW MathScript RT má vlastný skriptovací stroj *.m a nevyžaduje inštaláciu tretej strany softvér. Použitie uzla MathScript vám umožňuje spojiť výhody textových algoritmov, vysoký stupeň integrácie LabVIEW s hardvérom, interaktívne používateľské rozhranie a ďalšie programovacie techniky, o ktorých sa hovorí v tomto článku, do jednej aplikácie.

Objektovo orientované programovanie
Objektovo orientované programovanie je jedným z najpopulárnejších typov programovania. Tento prístup vám umožňuje kombinovať mnoho rôznych komponentov v programe do jednotlivých tried objektov. Definícia triedy obsahuje charakteristiky objektu a popis akcií, ktoré môže objekt vykonávať, bežne označované ako vlastnosti a metódy. Triedy môžu mať potomkov, ktorí zdedia vlastnosti a metódy a môžu ich prepísať alebo pridať nové.


Obr.8. Objektovo orientovaný prístup je založený na triedach (príklad na obrázku) a pridružených vlastnostiach a funkciách VI


Používanie OOP v LabVIEW je možné od verzie 8.2

Hlavné výhody tohto prístupu sú:

  • . Zapuzdrenie: Zapuzdrenie je kombináciou údajov a metód v triede, takže k nim možno pristupovať iba prostredníctvom VI, ktoré sú členmi triedy. Tento prístup vám umožňuje izolovať časti kódu a zabezpečiť, aby ich zmena neovplyvnila kód zvyšku programu.
  • . Dedičnosť: Dedičnosť umožňuje použiť existujúce triedy ako základ pre popis nových tried. Keď sa vytvorí nová trieda, zdedí dátové typy a VI členov triedy a tak implementuje vlastnosti a metódy nadradenej triedy. Je tiež možné pridať vlastné VI na zmenu funkčnosti triedy.
  • . Dynamický dispečing: Metódy môžu byť definované pomocou niekoľkých VI s rovnakým názvom v hierarchii tried. Táto metóda sa nazýva dynamický dispečing, pretože rozhodnutie o tom, ktoré VI sa bude volať, sa robí v čase vykonávania programu.
Tieto funkcie OOP vám umožňujú urobiť kód zrozumiteľnejším a škálovateľnejším, ako aj v prípade potreby obmedziť prístup k VI.

Modelovanie a simulácia
Modelovanie a simulácia fyzické systémy- populárny prístup vo vývoji systémov, ktoré sú opísané diferenciálnymi rovnicami. Štúdium modelu umožňuje odhaliť charakteristiky dynamických systémov a vyvinúť riadiacu jednotku s požadovaným správaním.

Obrázok 9 zobrazuje Control & Simulation Loop, ktorý rieši diferenciálnu rovnicu pomocou algoritmov zabudovaných do LabVIEW v reálnom čase počas určitého časového obdobia. Tento programovací prístup je tiež založený na toku údajov, podobne ako jazyk G, ale bežne sa označuje ako tok signálu. Ako je znázornené na obrázku 9, techniky matematického modelovania môžete kombinovať s inými technikami, ako sú dátové toky G a uzol MathScript.


Ryža. 9. Simulačný diagram ukazuje šírenie signálu, I/O hardvér a uzol MathScript.


Control & Simulation Loop podporuje funkcie, ktoré sa používajú na implementáciu modelov lineárnych stacionárnych systémov na zariadeniach s nainštalovaným OS v reálnom čase. Tieto funkcie môžete použiť na definovanie diskrétnych modelov zadaním prenosovej funkcie, diagramu pól-nula a systému diferenciálnych rovníc. Nástroje na analýzu časovej a frekvenčnej oblasti, ako je odozva v časovom kroku alebo funkcie bodového grafu, vám umožňujú interaktívne analyzovať správanie otvorených a uzavretých riadiacich/simulačných slučiek. Môžete tiež použiť vstavané nástroje na konverziu modelov vyvinuté v programovacom prostredí The MathWorks, Inc. Simulink®, čo umožní ich použitie v prostredí LabVIEW. Tieto dynamické systémy je možné nainštalovať na zariadenia s OS v reálnom čase bez toho, aby museli prejsť rôznymi krokmi konverzie programu vďaka funkcionalite knižnice LabVIEW Real-Time Module, ktorá je skvelá pre vývoj prototypov riadiacich systémov a simulačných aplikácií.

Stavové diagramy
Modul NI LabVIEW Statechart Module poskytuje vývojárom možnosť opísať funkčnosť systému tým najabstraktnejším možným spôsobom pomocou stavových diagramov. Integrácia kódu LabVIEW do stavov diagramu vám umožňuje vytvoriť virtuálnu pracovnú špecifikáciu pre vašu aplikáciu. Modul NI LabVIEW Statechart Module pridáva ku konvenčným funkciám stavových diagramov hierarchické vnorenie a paralelné vykonávanie. Je potrebné poznamenať, že stavové diagramy vám umožňujú opísať reakciu systému na udalosti, čo z nich robí veľmi pohodlný nástroj na vývoj reaktívnych systémov, ako sú vstavané zariadenia, riadiace systémy a zložité používateľské rozhrania.


Ryža. desať. Modul LabVIEW Statechart popisuje systém založený na stavovom diagrame.


Pomerne často sa stavové diagramy používajú na rozdelenie aplikácie do podsystémov, ako je zber údajov, výstup údajov, sieťová komunikácia, zaznamenávanie údajov a správa používateľského rozhrania. V tomto prípade stavové diagramy určujú, aké informácie sa medzi stavmi (subsystémami) prenášajú a v akom poradí fungujú.

Aplikačná architektúra založená na stavových diagramoch umožňuje efektívnejší vývoj zložitých softvérových systémov, najmä systémov riadených udalosťami, ako sú dynamické systémové radiče, komplexné používateľské rozhrania a digitálne komunikačné protokoly.

VHDL pre FPGA
Modul LabVIEW FPGA umožňuje použiť jazyk G na písanie kódu pre FPGA. Rovnako ako pri iných vývojových technikách však môžete použiť vopred napísaný kód alebo si jednoducho vybrať spôsob implementácie programu. Väčšina FPGA je naprogramovaná pomocou textového programovacieho jazyka VHDL. Namiesto prepisovania existujúcich blokov G IP môžete importovať kód VHDL pomocou uzla Component-Level IP (CLIP). Na nastavenie rozhrania medzi prvkami blokového diagramu zvyčajne potrebujete súbor CLIP XML, ale LabVIEW poskytuje Sprievodcu importom CLIP, ktorý to urobí automaticky. Uvádza vstupy a výstupy bloku IP, ktoré možno myšou pretiahnuť na blokovú schému a použiť v aplikácii, ako je znázornené na obr. jedenásť.


Ryža. jedenásť. CLIP uzol.


Keďže NI používa Xilinix FPGA a Xilinx softvérovú súpravu v module LabVIEW FPGA, môžete použiť Xilinx Core Generator na vytvorenie kompatibilného jadra. Na vytvorenie ľubovoľného softvérového mikroprocesora môžete použiť aj Xilinx Embedded Development Kit. A nakoniec veľa vývojárov tretích strán poskytnúť odlišné typy IP bloky pre správu zberníc, spracovanie signálu a špecifické jadrá.

Integrácia kódu typu C
Sekvenčný textový kód vo svojich VI blokových diagramov môžete použiť niekoľkými spôsobmi. Prvým spôsobom je Formula Node, ktorý podporuje syntax podobnú C, s definíciami premenných a bodkočiarkami na konci riadkov.

Inline C Node je podobný uzlu Formula a poskytuje pridané vlastnosti nízkoúrovňové programovanie a podpora hlavičkových súborov bez réžie volaní procedúr. Inline C Node môžete použiť na vloženie akéhokoľvek C kódu vrátane príkazov #defines, ktoré sú v kóde C syntakticky uzavreté v zátvorkách.

Interakcia so spustiteľnými súbormi
Pri programovaní v prostredí LabVIEW je často potrebné pristupovať ku kompilovaným súborom a knižniciam z aplikácie napísanej v prostredí LabVIEW, aby bolo možné opätovne použiť algoritmy, ktoré boli predtým vyvinuté v iných prostrediach. Taktiež pri vytváraní projektu je potrebné pristupovať k aplikáciám napísaným v jazyku LabVIEW z iných aplikácií.

Na vyriešenie týchto problémov LabVIEW poskytuje širokú škálu rôznych nástrojov. Po prvé, LabVIEW môže volať funkcie DLL, ako aj používať rozhrania ActiveX a .NET.

Po druhé, aplikácia napísaná v jazyku LabVIEW môže poskytnúť svoju funkčnosť inej aplikácii ako DLL alebo pomocou nástrojov ActiveX.

V prípade, že máte zdrojový kód C, ktorý chcete použiť vo svojej aplikácii LabVIEW, môžete ho skompilovať DLL a pripojte ho pomocou uzla Funkcia knižnice hovorov. Môžete napríklad usporiadať paralelné počítanie pomocou algoritmov napísaných v C, zatiaľ čo program napísaný v LabVIEW bude riadiť paralelne bežiace vlákna. Na zjednodušenie práce s externými knižnicami má LabVIEW Sprievodcu importom zdieľanej knižnice, ktorý vám umožňuje automaticky vytvoriť alebo aktualizovať obal na volanie príslušných knižníc (Windows . dll súbor, súbor .framework pre Mac OS alebo súbor .so pre Linux).

Pomocou System Exec.vi môžete tiež použiť rozhranie príkazový riadok operačný systém.

Kombinácia niekoľkých programovacích techník v jednom vývojovom prostredí umožňuje opätovné použitie algoritmov vyvinutých v iných jazykoch. Okrem toho môže vývojár kombinovať operácie na vysokej a nízkej úrovni v jednej aplikácii, vďaka čomu je kód flexibilnejší a vizuálnejší. Rôzne úrovne abstrakcie umožňujú vizualizáciu zložitých algoritmov pri zachovaní nízkej úrovne kontroly aplikácií a hardvéru. Vďaka tesnej hardvérovej integrácii môžete použiť oba prístupy k spracovaniu signálu na platformách s viacjadrovými procesormi, FPGA a vstavanými procesormi.

Problémy majú zvyčajne viacero riešení a programovacie prostredie LabVIEW je dostatočne flexibilné, aby vám umožnilo vybrať si metódu riešenia, ktorá vám najlepšie vyhovuje.

Simulink® je registrovaná ochranná známka spoločnosti The MathWorks, Inc.

ARM, Keil a µVision sú ochranné známky a registrované ochranné známky spoločnosti ARM Ltd alebo jej dcérskych spoločností.