LabVIEW портал

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

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

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

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

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

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

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

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

 

 

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

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

 

В программе задаём номер порта, с которым будем работать. Заодно смотрим его физическое расположение на микроконтроллере, в данном случае : Р2.0

 

Ищем соответствующую ножку в даташите на наш микроконтроллер и подключаем туда светодиод (подключать надо через сопротивлерние (500-1000 Ом), а то порт может сгореть).

 

Нажимаем правой кнопкой мыши на application и выбираем properties. после чего убираем галочку с Enable debug

 

 

 

Нажимаем правой кнопкой мыши на application и выбираем build и ждём...

 

После мучительных ожиданий нажимаем правой кнопкой мыши на MCB2300 и выбираем show kei uVision

 

 

 Открывается Keil uVision. нажимаем на Option for target

 

Во вкладке device выбираем тип контроллера, который будет впоследствии прошиваться, во вкладке output ставим галочку напротив Creat HEX file, так же, нажав на select folder for object указываем путь, куда у нас всё сохранится

 

 

 

 Во вкладке target в окне operating system выбираем RTX Kernel. нажимаем ок

 

 

Осталось нажать на build target и немного подождать

 Получаем долгожданный HEX, который загружаем в микроконтроллер и любуемся миганием светодиода.

 Прошивать удобно с помощью Fkash Magic

 

 

Управление сервомашинкой.

Собственно, здесь демонстрируется работа PWM порта. Рулевая машинка используется такого вида: http://www.rcdesign.ru/articles/radio/servo_intro

На картинке снизу справа показаны настройки порта, кстати, используется тот, что использовался для мигания светодиодом (Р2.0)

 

 Видео работы машинки: http://www.youtube.com/watch?v=PhjKP1oEHkM

 

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

 

 

 

 

 

 

 

 

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

Здравствуйте, коллеги!
Сегодня — несколько слов о внутреннем устройстве файлов 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 из 3