Классификация моделей
На форуме постоянно появляются темы с формулировкой "модель", но при этом пользователи не могут объяснить какая модель им необходима, что вызывает непонимание и раздражение как у обратившихся за помощью, так и у тех, кто пытается хоть как то помочь.
Это связано, во первых очередь с достаточно расплывчатой формулировкой понятия «модель», а во вторых с отсутствием знаний или нежеланием их получить у самих пользователей.
Если обратиться к всеми любимой Wikiedia (http://ru.wikipedia.org), то можно прочесть следующее:
Моде́ль (фр. modèle, от лат. modulus — «мера, аналог, образец») — некоторый материальный или мысленно представляемый объект или явление, являющийся упрощённой версией моделируемого объекта или явления (прототипа) и в достаточной степени повторяющий свойства, существенные для целей конкретного моделирования (опуская несущественные свойства, в которых он может отличаться от прототипа).
Модели обычно применяются для нужд познания (созерцания, анализа и синтеза) и конструирования. В качестве модели может выступать отображение, схема, копия, макет, изображение.
Моделью может быть серийный повторяемый проект, имеющий набор определённых, свойственных только данной модели параметров и характеристик. Это делается даже в одном ряду изделий (проектов). Модель решений может иметь несколько версий или вариантов, что является моделированием деятельности, проектирования, управления большими проектами и т. п.
Процесс создания модели называется моделированием. Любая мыслительная деятельность представляет собой оперирование моделями (образами). Модели бывают натурные, макеты, информационные, логические, образные, и т. п.
Достаточно подробно и доступно классификация моделей описана в книге: Бусленко Н.П. Моделирование сложных систем (Главная редакция физико-математической литературы изд-ва «Наука», М. , 1968, 356 стр.)
Не открою ни для кого тайн, все известно и доступно для ознакомления. Назначение данного материала - шпаргалка. Для того кто не знает - ознакомиться, а кто знает - вспомнить.
Парсинг 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».

Рис 1. Match Regular Expression Function
Парсинг XML файлов в LabVIEW (XML-Parse)
Я не претендую на написание пособия по XML парсингу в LabVIEW, по этому и не стремлюсь описать все методы и функции присутствующие в данном языке программирования и предназначенные для работы с XML форматом.
Поступим наоборот, попытаемся получить информацию из XML файла минимальной «кровью».
Если Вы обратились к этой странице, скорее всего в этом возникла необходимость и что такое XML и как он организован вы уже знаете, или по крайней мере имеете хоть малейшее представление. Именно по этому опустим прелюдии и описания XML, тем более информации можно найти бесконечное множество, так как формат и все спецификации открыты.
На рис .1 и рис. 2 изображены структуры вариантов XML файлов, это соответственно данные о погоде для конкретного города взятого с http://informer.gismeteo.ru/xml/27906_1.xml, и данные о котировка металлов за определенный период времени (взято, на сколько помню с Лондонской биржи драг. металлов). Но в данном случае нас не интересует смысловая нагрузка информации, которую несут эти файлы.
вложение XML файлы

Рис. 1 – Файл XML — данные о погоде
12.03.2011 17:21
Сергей Иванов
Иногда, хочется сделать так, чтобы инсталлятор явно не выдавал язык, на котором напсиана программа. Поэтому, у меня родилась, как сделать так , чтобы полльзователь, устанавливающий программу себе на компьютер не догадался, что она написана на 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)
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)

5. Настраиваем инсталяшку под свой вкус и компилируем
Вот где видно, что программа написано в LabView, ещё в Programm Files есть папка от NI.
(ссылка на картинку: http://labviewportal.eu//download/file.php?id=7411&mode=view)

А вот и сама инсталляшка. кстати, посмотрите её, особенно у кого нет LabView 2009, я у себя на двух компьютерах пробовал, работает, даже LabView специально удалял.
1. Для начала скачиваем и инсталлируем Qt
Кстати можно использовать и MS Visual Studio или ещё какой нибудь IDE, но Qt бесплатный и мой выбор пал именно на него.
2. Открываем Qt и создаём новый пустой проект

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

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

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

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

В ряде случаев подобные сообщения мешают. Например в вышеприведённом примере теоретически надо проверять код возврата для того, чтобы выяснить причину ошибки — либо папка уже существует, либо её создание невозможно по каким-либо причинам (например, недопустимая буква диска, либо нет прав на создание, либо недопустимые символы в имени и т.п.). При "первых набросках" или прототипировании программы проще отключить мешающие сообщения и не проверять ошибки типа описанной выше (большинство программистов — оптимисты и считают, что после вызова CreateFolder требуемая папка непременно будет создана если её ещё не существует).
Однако на заключительном этапе имеет смысл включить эту опцию и вычистить участки кода, вызывающие "оборванные" ошибки (ну или как минимум обратить внимание на такие места).
Важно также не лениться (вы, конечно, можете просто соединить выход с блишайшей границей цикла или последовательности). Если вы не готовы принять решение о логике обработки какой-то конкретной ошибки немедленно, то лучше сделать SubVI со входом ошибки и подосединить его к выходу ошибки в "проблемном" месте. Внутри этого SubVI вы можете организовать запись в лог-файл или в лог отладки (более детально мы это рассмотрим в другом параграфе). Таким образом вы всегда сможете найти места в программе, где проблема пока не устранена (кстати, это будет работать и в исполняемом приложении).
Первоисточник:
http://labview-rus.blogspot.com/2010/01/2.html
15.04.2010 16:36
Евгений Граф
При оформлении лицевой панели у начинающих программистов LabVIEW возможно возникает проблема с рамкой элементов кластера, массива и прочих индикаторов. Как же обесцветить рамку, чтобы индикатор "вписывался" в лицевую панель? Ведь обычной "покраской" в прозрачный "цвет" рамка элементов не красится...

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

|
|