LabVIEW портал

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта
LabVIEW уроки
В этом разделе ты найдёшь уроки как для начинающих так и для продвинутых пользователей LabVIEW.

Уроки разделены по тематике и по возрастающей сложности (см. меню слева). Для просмотра видеоуроков требуется плагин Adobe Flash Player, который можно бесплатно скачать с сайта Adobe: Get Adobe Flash Player

Если у тебя возникли какие либо вопросы или предложения по уроку, то можно задать этот вопрос в коментарии к уроку.

Приятного просмотра!

Классификация моделей

Классификация моделей

На форуме постоянно появляются темы с формулировкой "модель", но при этом пользователи не могут объяснить какая модель им необходима, что вызывает непонимание и раздражение как у обратившихся за помощью, так и у тех, кто пытается хоть как то помочь.

Это связано, во первых очередь с достаточно расплывчатой формулировкой понятия «модель», а во вторых с отсутствием знаний или нежеланием их получить у самих пользователей.

Если обратиться к всеми любимой Wikiedia (http://ru.wikipedia.org), то можно прочесть следующее:

Моде́ль (фр. modèle, от лат. modulus — «мера, аналог, образец») — некоторый материальный или мысленно представляемый объект или явление, являющийся упрощённой версией моделируемого объекта или явления (прототипа) и в достаточной степени повторяющий свойства, существенные для целей конкретного моделирования (опуская несущественные свойства, в которых он может отличаться от прототипа).

Модели обычно применяются для нужд познания (созерцания, анализа и синтеза) и конструирования. В качестве модели может выступать отображение, схема, копия, макет, изображение.

Моделью может быть серийный повторяемый проект, имеющий набор определённых, свойственных только данной модели параметров и характеристик. Это делается даже в одном ряду изделий (проектов). Модель решений может иметь несколько версий или вариантов, что является моделированием деятельности, проектирования, управления большими проектами и т. п.

Процесс создания модели называется моделированием. Любая мыслительная деятельность представляет собой оперирование моделями (образами). Модели бывают натурные, макеты, информационные, логические, образные, и т. п.

Достаточно подробно и доступно классификация моделей описана в книге: Бусленко Н.П. Моделирование сложных систем (Главная редакция физико-математической литературы изд-ва «Наука», М. , 1968, 356 стр.)

Не открою ни для кого тайн, все известно и доступно для ознакомления. Назначение данного материала - шпаргалка. Для того кто не знает - ознакомиться, а кто знает - вспомнить.

 

Парсинг XML файлов в LabVIEW используя регулярные выражения (Regular Expressions, RegExp)

Парсинг XML файлов в LabVIEW используя регулярные выражения (Regular Expressions, RegExp)

 

Ранее мы уже рассмотрели структуру и основы парсинга XML документов. По этому не будем повторяться, а если кто-то захочет то обратитесь к уроку «Парсинг XML файлов в LabVIEW (XML-Parse)». Ранее мы использовали встроенный «процессор» LabVIEW, т. е. его синтаксический анализ и представление его в виде модели DOM, в этом уроке мы рассмотрим как можно выудить необходимую информацию из XML документа используя «Регулярные выражения».

И так, «Регулярные выражения – Regular Expression», их механизм достаточно мощен, но вместе с тем и зачастую непонятен. Цель урока, это не научить Вас синтаксису RegExp, а научиться использовать для парсинга XML-файлов в LabVIEW, которая имеет собственную функцию «Match Regular Expression Function» рис. 1. Тем более, что в Internet информации по RegExp предостаточно, а ознакомиться с основами синтаксиса можно и в LabVIEW – «Special Characters for Match Regular Expression».

 

Match_Regular_Expression_Function

Рис 1. Match Regular Expression Function

 

Парсинг XML файлов в LabVIEW (XML-Parse)

Парсинг XML файлов в LabVIEW (XML-Parse)

Я не претендую на написание пособия по XML парсингу в LabVIEW, по этому и не стремлюсь описать все методы и функции присутствующие в данном языке программирования и предназначенные для работы с XML форматом.

Поступим наоборот, попытаемся получить информацию из XML файла минимальной «кровью».

Если Вы обратились к этой странице, скорее всего в этом возникла необходимость и что такое XML и как он организован вы уже знаете, или по крайней мере имеете хоть малейшее представление. Именно по этому опустим прелюдии и описания XML, тем более информации можно найти бесконечное множество, так как формат и все спецификации открыты.

На рис .1 и рис. 2 изображены структуры вариантов XML файлов, это соответственно данные о погоде для конкретного города взятого с http://informer.gismeteo.ru/xml/27906_1.xml, и данные о котировка металлов за определенный период времени (взято, на сколько помню с Лондонской биржи драг. металлов). Но в данном случае нас не интересует смысловая нагрузка информации, которую несут эти файлы.

вложение XML файлы


MMWeather-element

Рис. 1 – Файл XML — данные о погоде

 

Создание инсталятора для программы

Иногда, хочется сделать так, чтобы инсталлятор явно не выдавал язык, на котором напсиана программа. Поэтому, у меня родилась, как сделать так , чтобы полльзователь, устанавливающий программу себе на компьютер не догадался, что она написана на LabView . На форуме встречал подобные вопросы, но они были без ответов. (или я просто не нашёл)
Во первых, внешний вид вашей програмки не должен "выдавать" себя (отсутствие кнопок run и т.п.) - убирается всё в customizer (тут уже каждый настраиват что хочет видеть).
После того, как внешний вид приведён к должному виду необходимо откомпилировать приложение.

Это подготовка была.

Дальше понадобится программка для создания инсталляторов. Я использовал [url=http://ru.sminstall.com/]Smart Install Maker[/url], потому что она мелка, удобная и РУССКАЯ (sim). В вообще, подобных программ достаточно много.

Rроме sim понадобится RTE той версии , в которой была откомпилирована ваша программа.

Итак, теперь по пунктам::
1. распаковываем содержимое архива RTE в

папку, под именем RTE-Driver, например

 

(ссылка на картинку: http://labviewportal.eu/download/file.php?id=7408&mode=view)

1 2. Заходим на сайт NI, а именно вот сюда: http://digital.ni.com/public.nsf/allkb/188FE05BA8933F4486256BC300708527, внимательно изучаем что там, нам предстоит создать батник.

3. Для его создания добавляем в папке RTE-Driver новый текстовый файл, в нём прописываем

LV900runtime.msi /q REBOOT=Suppress

 где LV900runtime.msi - исполняемый файл
/q - ключ того, что не будет использован интерфейс (вылазить окно MS-DOS)
REBOOT=Suppress - чтобы компьютер не перезагружался после установки
После этого меняем расширение с txt на cmd и у нас получается файлик ( см картинку выше - он называется setup.cmd)
То есть, для установки RTE нам не придётся нажимать далее и соглашаться с лицензионным соглашением. это всё произойдёт в тихом режиме от глаз рядового пользователя.
4. В инсталляторе в файлах мы добавляем наш setup.cmd и прописываем для него команды (запускается после распаковки архива, в каком режиме запускается ( я ставлю скрытым, таким образом, ничего не видно получается).

 

 

(ссылка на картинку : http://labviewportal.eu/download/file.php?id=7410&mode=view)

2


5. Настраиваем инсталяшку под свой вкус и компилируем

Вот где видно, что программа написано в LabView, ещё в Programm Files  есть папка от NI.

 

 (ссылка на картинку: http://labviewportal.eu//download/file.php?id=7411&mode=view)

1

А вот и сама инсталляшка. кстати, посмотрите её, особенно у кого нет LabView  2009, я у себя на двух компьютерах пробовал, работает, даже LabView  специально удалял.

 

 

 

 

Создание DLL и вызов в LabVIEW

1. Для начала скачиваем и инсталлируем Qt

Кстати можно использовать и MS Visual Studio или ещё какой нибудь IDE, но Qt бесплатный и мой выбор пал именно на него.

2. Открываем Qt и создаём новый пустой проект

CreateProject

 

Создание прошивки для LPC2368

В данной статье покажу как можно создать прошивку для мигания светодиодом (самое простое) и программу для управления рулевой машинкой (демострация работы PWM порта).

Для этого нам понадобится микроконтроллер LPC2368 со всем необходимым для его прошивки и выводами с ножек. Я использовал для этого отладочную плату на основе LPC2368 http://starterkit.ru/html/index.php?name=shop&op=view&id=9 чтобы сосредоточиться на программной чатсти, а не на аппаратной. Кроме железа понадобится софт - LabView 8.6  и Embedded Development Module.

 После того, как железяки собраны в кучу, можно заняться программированием. Начнём с мигания светодиодом.

 

 

Мигание светодиодом. 

Сначала необходимо создать проект, в настройках необходимо выбрать тот микроконтроллер, с которым будем работать. Рисуем простейшую программу для мигания светодиодом.

 

 

Интерпретатор или компилятор?

Здравствуйте, коллеги!
Сегодня — несколько слов о внутреннем устройстве файлов LabVIEW, плюс парочка "хакерских" упражнений.
Много лет назад, только начиная работать с LabVIEW, я был абсолютно уверен в том, что LabVIEW — интерпретатор, в чём-то отчасти похожий на Basic. Блок-диаграмма наверняка представлена в виде некоего дерева, которое интерпретируется средой выполнения. В пользу этого также говорило наличие увесистой Run-Time Engine, необходимой для запуска "скомпилированного" приложения, возможность "подсветки" кода при выполнении, наличие файлов VI "как есть" внутри скомпилированного приложения, ну и малая скорость выполнения по сравнению с компиляторами типа С или Delphi (впрочем и сегодня оставляющая желать много лучшего). Однако моя уверенность значительно пошатнулась после прочтения любопытной статьи, в которой был продемонстрирован ассемблерный листинг простенького цикла:
Но даже увидев реальный код, я был уверен, что код этот — результат работы классного интерпретатора, выдернутый из памяти приложения. Я даже попытался сбросить память LabVIEW-программы в дамп и деассемблировать его, да ничего хорошего из этого не вышло.
Желающим повозиться самостоятельно скажу сразу, что пытаться деассемблировать скомпилированную LabVIEW программу "в лоб", равно как и отдельные SubVI смысла не имеет.
Однако как любому ребёнку хочется заглянуть внутрь любимой игрушки, так и мне никак не давал покоя вопрос — как же всё-таки устроен VI и где же код?
Что ж, давайте набросаем простенький код, например тот, который был приведён в статье выше:

и заглянем внутрь обычным hex-просмотрщиком (я использую обыкновенный Far):
 

Об автоматической обработке ошибок

В LabVIEW есть пара опций, которые обычно отключают (хотя они включены по умолчанию):

Суть автоматической обработки ошибок заключается в том, что при возникновении ошибки на выходе VI исполнение программы может быть остановлено (за диалог отвечает как раз вторая опция):

В вышеприведённом примере мы создаём новую папку, но такая папка уже существует, что и вызывает ошибку 10 (если у вас нет папки Windows на диске с:\ просто запустите этот пример дважды). Поскольку выход примитива CreateFolder не подсоединён, то возникающая ошибка вызывает прерывание выполнения программы.

В следующем примере это дилоговое окно не появится:

В ряде случаев подобные сообщения мешают. Например в вышеприведённом примере теоретически надо проверять код возврата для того, чтобы выяснить причину ошибки — либо папка уже существует, либо её создание невозможно по каким-либо причинам (например, недопустимая буква диска, либо нет прав на создание, либо недопустимые символы в имени и т.п.). При "первых набросках" или прототипировании программы проще отключить мешающие сообщения и не проверять ошибки типа описанной выше (большинство программистов — оптимисты и считают, что после вызова CreateFolder требуемая папка непременно будет создана если её ещё не существует).

Однако на заключительном этапе имеет смысл включить эту опцию и вычистить участки кода,  вызывающие "оборванные" ошибки (ну или как минимум обратить внимание на такие места).

Важно также не лениться (вы, конечно, можете просто соединить выход с блишайшей границей цикла или последовательности). Если вы не готовы принять решение о логике обработки какой-то конкретной ошибки немедленно, то лучше сделать SubVI со входом ошибки и подосединить его к выходу ошибки в "проблемном" месте. Внутри этого SubVI вы можете организовать запись в лог-файл или в лог отладки (более детально мы это рассмотрим в другом параграфе). Таким образом вы всегда сможете найти места в программе, где проблема пока не устранена (кстати, это будет работать и в исполняемом приложении).

Первоисточник:

http://labview-rus.blogspot.com/2010/01/2.html

 

Как убрать рамку кластера/массива

При оформлении лицевой панели у начинающих программистов LabVIEW возможно возникает проблема с рамкой элементов кластера, массива и прочих индикаторов. Как же обесцветить рамку, чтобы индикатор "вписывался" в лицевую панель? Ведь обычной "покраской" в прозрачный "цвет" рамка элементов не красится...

Cluster0

 

Среда разработки LabVIEW

В этом уроке я представлю вам среду разработки LabVIEW.

После старта программы на экране появится стартовое окно загрузки (Splash Screen) среды разработки. Здесь думаю пояснения не требуются.

SredaRazrabotki1

 


Страница 1 из 2