Есть ли у вас какой-либо софт для подключения вашего осциллографа к LabView? Или, хотя бы DLL с минимально документрованным интерфесом? Очень хочется использовать этот осциллограф в учебном процессе.
сопряжения с LabView нет, за исключением варианта экспорта массива выборок в файл.
Oscilink.dll является частью ПО, но эта библиотека работает на низком уровне - ничего специфично осциллографического, только буферизация запросов/ответов, оборачивание их в заголовки протокола OBEX и прием/передача пакетов по интерфейсу. Благодаря этой dll - Oscill.exe освобожден от рутины: формирует название регистра и требуемое значение, и затем пробуждается ответом - в котором название регистра и реальное значение. Вся обработка производится в oscill.exe, поэтому большой помощи в сопряжении со сторонним ПО oscilink.dll не окажет - над ней всё равно потребуется громоздить еще одну dll, которая по сути будет практически тем же, что уже есть в виде oscill.exe. То есть, вполне достаточно вывести из oscill.exe несколько основных настроек (Fs и чувствительность) и вместо отображения осциллограммы - отдавать стороннему приложению массив выборок.
А чем для учебного процесса не подходит штатная оболочка?
сопряжения с LabView нет, за исключением варианта экспорта массива выборок в файл. ... А чем для учебного процесса не подходит штатная оболочка?
Для учебного процесса нужно НЕ ПОЛЬЗОВАТЬСЯ результатами измерений, а УЧИТЬСЯ обрабатывать данные. Т.е. надо овладевать тем, чем вы уже овладели, но что для подавляющей массы тайна за семью печатями. LabView предоставляет возможность учащемуся разложить весь процесс обработки по полочкам, но не требует умения программировать в классическом понимании. В настоящий момент я использую в LabView такое железо:
1. 10 разрядный логгер с интерфейсом по RS-232 на базе AVR Butterfly (ATMega169), но у него максимальная скорость менее 1Ksp/s и фиксированный диапазон 5V. Нет элементов защиты входа от дурака.
2. Микрофонный и линейный вход звуковой карточки компа. Но там нет постоянной составляющей, максимальная частота дискретизации 44Ks/s и, опять же - проблемы защиты входа.
Для проффесиональной разработки инструментов, типа вашего осциллографа, не очень подходит, но для обучения принципам и способам обработки очень не плох.
Наверное, мы говорим о разных дисциплинах. Большинству интересны сами сигналы (их количественное и визуальное представление), а не методы обработки данных от АЦП.
Вряд-ли oscill поможет в изучении принципа действия АЦП: протокол взаимодействия с девайсом очень накрученный, то есть автономно (без нашей оболочки) нормально работать с oscill не получится. Оптимальный вариант - управление из штатной оболочки, а обработка - полученного массива выборок - вашим софтом. Но следует учитывать, что часть обработки выполняется прошивкой, то есть наружу из oscill выходят уже усредненные данные (или минмаксы пикового детектора). Это единственно возможный вариант, учитывая малый объем ОЗУ и пропускную способность интерфейса. Хотя, для обучения ведь важен принцип. Следовательно, вполне возможно полторы тысячи уже усредненных выборок доусреднить в пятнадцать, или пропустить через пиковые детекторы. Меньше выборок - даже нагляднее.
Большинству интересны сами сигналы (их количественное и визуальное представление), а не методы обработки данных от АЦП.
Сначала учащемуся надо объяснить что такое частота дискретизации; что такое аллиасинг; зачем окно, и какое оно бывает; для чего фильтр. Большинство этого не представляет. Это можно объяснять на виртуальных моделях, но и восприятие получается виртуальное. Типа: если нажать на компе такую-то последовательность кнопочек, то результат удовлетворит преподавателя. Как этот результат соотносится с обработкой - дело десятое. Поэтому надо объяснять на реальных сигналах. А чтобы не было пренебрежительного отношения, на железе с приличными характеристиками.
Oscill wrote:
Вряд-ли oscill поможет в изучении принципа действия АЦП: протокол взаимодействия с девайсом очень накрученный, то есть автономно (без нашей оболочки) нормально работать с oscill не получится. Оптимальный вариант - управление из штатной оболочки, а обработка - полученного массива выборок - вашим софтом.
Если бы можно было задать режим постоянной выдачи в файл, или в буффер (например в клипборд) и отключить всю визуальную обработку, которая (к сожалению) жрет слишком много ресурсов, то, возможно, это было бы решение. В учебном процессе используются не самые шустрые компы, а для экспериментов с железом отдают самые старенькие (которые не жалко палить) - 500MHz и ниже. Поэтому ваша оболочка и LabView на медленном компе не уживутся.
Oscill wrote:
Хотя, для обучения ведь важен принцип. Следовательно, вполне возможно полторы тысячи уже усредненных выборок доусреднить в пятнадцать, или пропустить через пиковые детекторы. Меньше выборок - даже нагляднее.
Совершенно верно. Была бы DLL или описание работы с вашими DLL для формирования урезанного (учебного) обмена с жесткой настройкой на конкретный режим работы, было бы прекрасно. С таким, например, набором функций: - Инициализация, - Установка входного аттенюатора, - Установка частоты дискретизации, - Запросить пакет выборок (начать не ожидая событий тригера разветки), - Получить пакет выборок, - Закрыть. Этого, для учебных целей было бы достаточно. А вот когда учащийся попробуем САМ, хотя бы усреднить, то с большим уважением будет относиться к измерительному софту, и тем кто его разрабатывает.
Если бы можно было задать режим постоянной выдачи в файл, или в буффер (например в клипборд) и отключить всю визуальную обработку, которая (к сожалению) жрет слишком много ресурсов, то, возможно, это было бы решение.
именно к этому я и клоню - тут уже было похожее обсуждение. Вопрос только в том, как это сделать красиво - сохранение в файл не самый лучший вариант, а вот экспорт в буфер обмена будет сделан.
kvi wrote:
В учебном процессе используются не самые шустрые компы, а для экспериментов с железом отдают самые старенькие (которые не жалко палить) - 500MHz и ниже. Поэтому ваша оболочка и LabView на медленном компе не уживутся.
уживутся - в оболочке можно задать интервал времени между обменами с девайсом, и если отключить отображение - то сам обмен будет кушать совсем немного ресурсов: допустим, 5мс из 50мс, что даст 20 кадров в секунду и 90% свободного времени процессора.
kvi wrote:
Была бы DLL или описание работы с вашими DLL для формирования урезанного (учебного) обмена с жесткой настройкой на конкретный режим работы, было бы прекрасно. С таким, например, набором функций:
DLL есть, но она ведает только обменом настройками/командами/результатами. Формирование среды все равно лежит на верхнем софте, и там оно осуществляется путем согласования ряда настроек между собой - например, на самых быстрых развертках выходной массив ограничен 252мя выборками (и нет усреднения/пикового детектора, вернее есть - но только для периодич.сиг). На более медленных разверках появляется возможность удлинить массив выборок, то есть повысить разрешающую способность - но при этом частота дискретизации возрастает, что может сделать невозможным длинный буфер. С чувствительностью/смещением аналогично - в разных положениях аттенюатора различные возможности для оффсета... Громоздить всю эту логику (и средства управления ею) в DLL - мы получим ту же оболочку, что и сейчас - но без экрана и рюшечек (типа настроки цвета линии). Экран отключается, а рюшечки ресурсов почти не кушают. Поэтому, вариант настроек из оболочки и экспорта через буфер обмена (или другим способом) - оптимален по скорости и простоте достижения результата. Однако, если у Вас есть время разбираться в протоколе/регистрах, и библиотеку для LabView можно будет выложить для всех - то это будет стоить потраченного времени (черновики протоколов есть, но там не все понятно будет, наверное).
Была бы DLL или описание работы с вашими DLL для формирования урезанного (учебного) обмена с жесткой настройкой на конкретный режим работы, было бы прекрасно. С таким, например, набором функций:
DLL есть, но она ведает только обменом ... ... если у Вас есть время разбираться в протоколе/регистрах, и библиотеку для LabView можно будет выложить для всех - то это будет стоить потраченного времени (черновики протоколов есть, но там не все понятно будет, наверное).
Давайте попробуем. И мне и моим студентам будет полезно. Давайте сделаем такой набор функций:
kvi wrote:
- Инициализация, - Установка входного аттенюатора, - Установка частоты дискретизации, - Запросить пакет выборок (начать не ожидая событий тригера разветки), - Получить пакет выборок, - Закрыть.
Это не так просто: например, чтобы задать частоту дискретизации нужно сначала узнать возможности (запросить десяток регистров), а потом на их основании подобрать тактовую частоту и задать алгоритм оцифровки (количество клоков на одну выборку). Давайте постепенно: сначала оставим управление штатной оболочке, а пакет выборок будем отдавать внешенму приложению. Когда освоите его обработку/индикацию в разных форматах (пиковый/обычный/усреднение/hires) и разной длины массива - тогда можно будет приступить к управлению.
Давайте постепенно: сначала оставим управление штатной оболочке, а пакет выборок будем отдавать внешенму приложению. Когда освоите его обработку/индикацию в разных форматах (пиковый/обычный/усреднение/hires) и разной длины массива - тогда можно будет приступить к управлению.
Ну что ж, давйте так и сделаем. Надеюсь, через какое-то время, вернемся в форум с готовым драйвером для LabView.
Давайте постепенно: сначала оставим управление штатной оболочке, а пакет выборок будем отдавать внешенму приложению. Когда освоите его обработку/индикацию в разных форматах (пиковый/обычный/усреднение/hires) и разной длины массива - тогда можно будет приступить к управлению.
Ну что ж, давйте так и сделаем. Надеюсь, через какое-то время, вернемся в форум с готовым драйвером для LabView.
Первый блин для сопряжения Oscill с LabView готов! Надеюсь, скоро выложим в общий доступ.
Разработан виртуальный инструмент чтения файлов записи Oscill из LabView. Пакет демонстрационного графопостроителя выложен для пробного тестирования на http://vladimirkub.narod.ru/LabView/index.html Для работы необходима обновленная версия Oscill не ниже 1.2.4.
Пакет сопряжения Oscill с LabView доработан в части возможности управления фронтом и порогом синхронизации из LabView. Пакет выложен для пробного тестирования на http://vladimirkub.narod.ru/LabView/index.html Для работы необходима версия Oscill не ниже 1.2.4, а для расшифровки порога синхронизации при экспорте через клипборд - не ниже 1.2.6.
На странице http://vladimirkub.narod.ru/Oscill/Card … index.html добавлены материалы доклада "Программное обеспечение для электро-био-медицинского стенда на базе USB-осциллографа и инструментального пакета LabView" конференции "Электроника и нанотехнологии" в Киевском политехе (13-15 апреля 2010).