3 мая 2009 г.

Мой дипломный проект

Тема: Разработка автоматизированной измерительной системы на базе АЦП E-440 средствами LabVIEW.

Когда-то, давным-давно, была разработана система сбора, хранения и анализа экспериментальных данных: всяких аналоговых и цифровых сигналов. Работало все вокруг платы Advantech PCL-818L. Плата со стандартной начинкой: 12-битный АЦП (40кГц), ЦАП, цифровые входы и выходы. Основное отличие данной системы состояло в том, что экспериментальные данные хранились в реляционной базе данных, а не в куче двоичных фалов. Получилась такая распределенная лаборатория:

Сама система была разработана NI LabWindows – это такая специализированная среда разработки приложений для сбора данных.

Но захотели люди регистрировать быстроменяющиеся процессы. Купили модуль L-Card E-440: 14-битный АЦП (400кГц), ЦАП, цифровые входы и выходы.

И досталась эта тема мне в качестве выпускной работы бакалавра. Было предложено разработать аналогичную систему на базе модуля E-440 в LabVIEW. Я тогда как раз интересовался железом и LabVIEW, ну и я взялся за эту работу. В рамках бакалаврской работы я реализовал только базовые возможности системы. А сейчас уже довожу ее до ума. В том числе делаю дистрибутив.

Начну сначала. Как потом оказалось, LabVIEW в качестве инструмента разработки был выбран зря… Модуль E-440 хоть и умел с ним работать, но через одно место. А имя этому месту – Code Interface Node (CIN). CIN – это специальный блок для вызова пользовательских программ на языке Си. Эти программы нужно предварительно собирать компилятором командной строки – nmake. А потом загружать в CIN. При этом разработчик лишается всей радости отладки, так как CIN работает как черный ящик, а при загрузке программ в CIN, LabVIEW периодически без предупреждения завершается.

Значительным преимуществом LabVIEW, перед скажем C++ или Java, в этой ситуации была простая поддержка многопоточности. Многопоточность в LabVIEW реализуется, чуть ли не на подсознательном (интуитивном) уровне! Разработчик может даже не догадываться, что его программа распаралелена. Примерно так:

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

Компоненты. Что-что а разработанный в LabVIEW интерфейс пользователя заточен под сбор и обработку данных. Прежде всего это Chart-ы, Graph-ы, Array-контролы. Все что душе захочется.

Математические функции. Не буду приводить рекламных заявлений National Instruments по поводу поддержки огромного числа метематических функций средой LabVIEW, но их действительно очень много. Задачи вычисления спектральных характеристик, аппроксимации кривых и прочего анализа сигналов в LabVIEW решаются очень просто.
 
Ах, да! Базы данных! Для работы с базами данных предусмотрена специальная библиотека – LabVIEW Database Connectivity Toolset. Продается отдельно и стоит порядка 1000$. Впрочем, она достойна отдельной статьи и я расскажу о ней позднее.

Резюме. Основные требования к системе:
• Сбор аналоговых сигналов по 8-ми каналам на частоте 400кГц;
• Сбор данных и одновременная визуализация сигналов;
• Запись сигналов в базу данных (ее структура задана).
 

Комментариев нет:

Отправить комментарий