Проблема подключения АЦП QMB

Простейшие вопросы в области инженерной разработки
Ответить
maxsr
interested
interested
Сообщения: 4
Зарегистрирован: 22 апр 2014, 12:12
Версия LabVIEW: 2013
Контактная информация:

Проблема подключения АЦП QMB

Сообщение maxsr »

Добрый вечер!

Столкнулся с задачей АЦП, для оцифровки проводимых измерений и хранения этих измерений в электронном виде (на данный момент все хранится в бумажном виде). Так как я думал, что задача АЦП решается давно и примеров решений и применений вроде масса, то я смогу изучив их с задачей справиться, обладая мягко сказать необширными знаниями в программировании. Так как имеет место прибор, то и программу хотелось сделать на LabVIEW, привлекла возможность создания лицевой панели, как копии оригинала.
И вот есть у меня АЦП QMBox15 в комплекте с ним драйвера и программа, все работает, но программа в комплекте моим потребностям не особо удовлетворяет, что вроде мной подразумевалось и было желание сделать под себя, но в использование LabVIEW столкнулся с трудностями, в общем там АЦП так просто, как рисовалось в воображении, не определяется.

Поиском наткнулся на ваш форум, как я понимаю т.к. готовых решений нет, то с помощью dll и CLF надо создать библиотеку функций или возможны какие другие варианты.
И вот не могу я создать никак, какую-нибудь vi на подобии тех, которые есть в примерах для других АЦП от сторонних производителей( типа QMX_GetConfiguration или еще какой, но чтоб в результате хоть увидеть что АЦП подключилось).

В описании есть вот такое: перед началом работы с аппаратурой приложение должно запустить программу сервера данных (qmbox_ds.exe) Перед непосредственной работой с системой QMBox программа должна ее обнаружить и получить ее дескриптор. Для этого используется функция базовой библиотеки QMX_CircBufAttach.
Подскажите как реализовать CLF?

Понимаю что начал я изучение явно не с низов так сказать, но так хочется увидеть уже хоть небольшой результат, так же возникает вопрос о реализации всех нужных функций dll и не будет ли уж очень сложно выполнимой задачей?
Вложения
QMBox Programming Guide_rev_4_1.pdf
описания функций
(586.76 КБ) 83 скачивания
QMS15 Programming Guide_rev_1_1.pdf
(233.01 КБ) 73 скачивания
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 986
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 18 раз

Re: Проблема подключения АЦП QMB

Сообщение Andrew Lunev »

Да уж, неподъемную задачку вы себе взяли. С ней и профессионалу надо возиться не один день, а начинающий может и месяцы разбираться.
Если уж собрались программировать на LabView, то и АЦП надо было выбирать с поддержкой LabView, то есть такой модуль сбора данных у которого разработчики написали драйвер и выпустили примеры на LabView. Самый лучший вариант - DAQ модули от NI, так как они идеально интегрируются с LabView. Под них и начинающий напишет программу.

Написание корректного драйвера под LabView - одна из самых сложных задач и она уж точно не для начинающего.
У вашего модуля есть и драйвер и примеры на Си, так что и саму программу лучше всего писать на Си. В крайнем случае на Windows CVI.
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3997
Зарегистрирован: 17 фев 2013, 16:33
Награды: 9
Версия LabVIEW: 2.5 — 2025
Благодарил (а): 14 раз
Поблагодарили: 147 раз

Re: Проблема подключения АЦП QMB

Сообщение dadreamer »

maxsr писал(а):В описании есть вот такое: перед началом работы с аппаратурой приложение должно запустить программу сервера данных (qmbox_ds.exe) Перед непосредственной работой с системой QMBox программа должна ее обнаружить и получить ее дескриптор. Для этого используется функция базовой библиотеки QMX_CircBufAttach.
Подскажите как реализовать CLF?
Так вам нужно вызвать эту функцию в :labview: или что-то ещё? Вы как-то расплывчато обрисовали ситуацию, непонятно, что именно требуется сделать. Добавьте больше конкретики.
maxsr
interested
interested
Сообщения: 4
Зарегистрирован: 22 апр 2014, 12:12
Версия LabVIEW: 2013
Контактная информация:

Re: Проблема подключения АЦП QMB

Сообщение maxsr »

Добрый день!

Спасибо за Ваши ответы, АЦП какой есть, теперь то я бы конечно подошел к выбору АЦП с более широким предложением драйверов и примеров в различных средах. Длительность по изучению этой темы особо не пугает, буду разбираться, но начать пришлось сразу с такого т.к. прикладная часть задачи актуальна, параллельно буду и в СИ разбираться, т.к. начинающий я на всех языках. Хотелось вопрос про Windows CVI это я так понимаю что-то среднее?

Про эту функции QMX_CircBufAttach , ее я привел потому, что она начальная, и обнаруживает qmbox, а по описанию не могу понять каким образом ее вызвать в :labview: правильно? Ну и на примере ее продвинуться дальше к другим функциям QMX_GetConfiguration и далее...
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3997
Зарегистрирован: 17 фев 2013, 16:33
Награды: 9
Версия LabVIEW: 2.5 — 2025
Благодарил (а): 14 раз
Поблагодарили: 147 раз

Re: Проблема подключения АЦП QMB

Сообщение dadreamer »

maxsr писал(а):QMX_CircBufAttach
Размещаете узел вызова библиотек (CLFN) на диаграмме, заходите в его свойства:
Вкладка "Function":
Library name or path - указываете путь к DLL
Function name - QMX_CircBufAttach
Thread - Run in UI thread (пока так)
Calling convention - неизвестно, полагаю, cdecl
Вкладка "Parameters":
Return - возвращаемое функцией значение, ставите Type = Numeric, Data Type = Unsigned 32-bit Integer
Добавляете первый (и единственный) параметр функции (кнопка "+").
Name - имя параметра - VirtualSlot
Type = Numeric
Data type = Unsigned 16-bit Integer
Pass = Value
Остальное остаётся по умолчанию. Подтверждаете изменения кнопкой ОК.

QMX_GetConfiguration в мануале я не нашёл. По другим функциям - спрашивайте в теме, если непонятно.
maxsr писал(а):Хотелось вопрос про Windows CVI это я так понимаю что-то среднее?
В LabWindows/CVI есть те же графические элементы (фронтальная панель, контролы, индикаторы, графики), что и в :labview: , но код для их работоспособности вам придётся писать в текстовом виде. LW имеет собственный компилятор ANSI C, к коду можно подключать готовые библиотеки и заголовочные файлы, правда есть ряд некоторых ограничений, насколько я знаю, не поддерживаются классы, работа с памятью (хотя нет, можно пользоваться стандартными malloc/free) и прочее. Более подробно читайте у NI в мануале (на русском).
maxsr
interested
interested
Сообщения: 4
Зарегистрирован: 22 апр 2014, 12:12
Версия LabVIEW: 2013
Контактная информация:

Re: Проблема подключения АЦП QMB

Сообщение maxsr »

Спасибо за такое подробное описание, я в принципе так и делал, но вопрос получается как просмотреть результат функции т.е. в случае успешного выполнения выдает дескриптор в случае ошибки NULL как организовать индикацию, если просто индикатор, то там постоянно 0? и на виртуал какой-то контрол надо, по умолчанию при запуске qmbox_ds.exe ставит вроде 0?

QMX_GetConfiguration эту функцию я нашел в заголовках qmx.h и понял, что она как то связана с крейтом QMX_CONFIG в котором типа вся информация будет про контроллер? в описании ее нет, а вызвать ее бы хотелось с результатом
Вложения
dll.rar
(55.97 КБ) 89 скачиваний
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3997
Зарегистрирован: 17 фев 2013, 16:33
Награды: 9
Версия LabVIEW: 2.5 — 2025
Благодарил (а): 14 раз
Поблагодарили: 147 раз

Re: Проблема подключения АЦП QMB

Сообщение dadreamer »

maxsr писал(а):как просмотреть результат функции
Выход Return из CLFN - это возвращаемый функцией результат. Создаёте индикатор для этого выхода и смотрите. NULL - это просто символическое название 0. Вам бы для начала про :labview: подробнее почитать, если задаёте такие вопросы. В частности про вызовы библиотек вот статья. Да и в поиске есть масса тем, руководств, мануалов, даже в хэлпе самого LV.
maxsr писал(а):а вызвать ее бы хотелось с результатом
Чтобы её вызвать, нужно сначала создать в :labview: кластер, соответствующий второму параметру с типом QMX_CONFIG. Есть для этого похожая тема, жаль, что картинки и вложения не работают. В принципе, все параметры, кроме двух последних, в структуре расписаны в qmx.h. Определение QMX_CIRC_BUF_CONFIG я нашёл тут. Получается, сначала надо создать кластер QMX_CIRC_BUF_CONFIG, потом вставить его в QMX_CONFIG. Полученный кластер передаётся в CLFN по ссылке (Adapt To Type, Handles By Value), на выходе он будет заполнен информацией. Можете попробовать выполнить всё это, если не получится, я завтра сделаю :vi: .
maxsr
interested
interested
Сообщения: 4
Зарегистрирован: 22 апр 2014, 12:12
Версия LabVIEW: 2013
Контактная информация:

Re: Проблема подключения АЦП QMB

Сообщение maxsr »

Извините возможно не правильно выражаю свои мысли, и про NULL написал текстом т.к. скопировал из описания, у меня получается на выходе всегда 0, а ведь я так понимаю при подключении и запущенном qmbox_ds.exe он мне должен выдать что-то другое?
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3997
Зарегистрирован: 17 фев 2013, 16:33
Награды: 9
Версия LabVIEW: 2.5 — 2025
Благодарил (а): 14 раз
Поблагодарили: 147 раз

Re: Проблема подключения АЦП QMB

Сообщение dadreamer »

maxsr, ну, по описанию должен выдать дескриптор, о чём вы писали уже. То есть, некоторое целое число, хэндл. VirtualSlot верно передаёте? Я толком не знаю ваше оборудование, поэтому подсказать трудно.
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3997
Зарегистрирован: 17 фев 2013, 16:33
Награды: 9
Версия LabVIEW: 2.5 — 2025
Благодарил (а): 14 раз
Поблагодарили: 147 раз

Re: Проблема подключения АЦП QMB

Сообщение dadreamer »

Сделал вам вызов этой функции, проверяйте.
QMX_GetConfiguration.vi
lv2011
(26.44 КБ) 93 скачивания
У вас там всё-таки stdcall везде используется, так что учтите это. Для вызова функции, скорее всего, справедливо то же, что и для QMX_Prepare():
До вызова функции хотя бы один модуль системы должен быть объявлен активным с помощью функции QMX_MOD_SetActive.
Ну, и сперва нужно добиться успеха с QMX_CircBufAttach(), а потом вызывать всё остальное.
Аватара пользователя
dadreamer

Activity Professionalism Tutorials Gold Silver
Bronze Black Автор
professor
professor
Сообщения: 3997
Зарегистрирован: 17 фев 2013, 16:33
Награды: 9
Версия LabVIEW: 2.5 — 2025
Благодарил (а): 14 раз
Поблагодарили: 147 раз

Re: Проблема подключения АЦП QMB

Сообщение dadreamer »

Пользователь RooneyFord задал мне в ЛС вопрос про QMBox QMS17, но ответить ему я не могу:
Некоторые пользователи не могут быть добавлены, так как они отключили получение личных сообщений.
Поэтому размещу свой ответ здесь.
RooneyFord писал(а): 25 янв 2026, 14:58Здравствуйте, подскажите пожалуйста. Имею АЦП R-tech QMBOX QMS17, хочу ПО свое попробовать сделать, чтоб кое-чего автоматизировать. В языках программирования не сильно силен, с labview все гораздо лучше. Думал, что нет библиотек для этого прибора, а тут вижу, что имеется) Вот тема viewtopic.php?t=9993&start=15 . Вы в ней принимали активное участие.

Т.е. скорее всего, можно будет работать с этой АЦП в лабвью и сигналы сохранять?) Я так понял лучше иметь win7 и 32 bit labview и пользоваться штатными библиотеками. Спасибо.
Приветствую. Действительно, когда-то ради интереса помогал подключать прибор USB3000 в :labview: , хотя у меня такого прибора нет в наличии. Однако, боюсь, тема с USB3000 тут не подойдет, для QMB другое API используется. Была немного другая тема. Не знаю, получилось ли у автора реализовать управление в итоге. Там есть пример вызова функции QMX_GetConfiguration, можно с этого начать. Остальные функции нужно будет реализовать по аналогии, их описания есть в руководстве по программированию (QMBox Programming Guide_rev_4_1). Да, qmx.dll только 32-битная, так что и :labview: тоже должен быть 32 бита. Windows 7 - оптимальный вариант, в более поздних (10, 11) могут быть заморочки с цифровой подписью драйвера. Начните с простых функций, например QMX_CircBufAttach, если будут вопросы, можете писать здесь в теме или в ЛС.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»