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

- Сообщения: 4
- Зарегистрирован: 22 апр 2014, 12:12
- Версия LabVIEW: 2013
- Контактная информация:
Проблема подключения АЦП QMB
Добрый вечер!
Столкнулся с задачей АЦП, для оцифровки проводимых измерений и хранения этих измерений в электронном виде (на данный момент все хранится в бумажном виде). Так как я думал, что задача АЦП решается давно и примеров решений и применений вроде масса, то я смогу изучив их с задачей справиться, обладая мягко сказать необширными знаниями в программировании. Так как имеет место прибор, то и программу хотелось сделать на LabVIEW, привлекла возможность создания лицевой панели, как копии оригинала.
И вот есть у меня АЦП QMBox15 в комплекте с ним драйвера и программа, все работает, но программа в комплекте моим потребностям не особо удовлетворяет, что вроде мной подразумевалось и было желание сделать под себя, но в использование LabVIEW столкнулся с трудностями, в общем там АЦП так просто, как рисовалось в воображении, не определяется.
Поиском наткнулся на ваш форум, как я понимаю т.к. готовых решений нет, то с помощью dll и CLF надо создать библиотеку функций или возможны какие другие варианты.
И вот не могу я создать никак, какую-нибудь vi на подобии тех, которые есть в примерах для других АЦП от сторонних производителей( типа QMX_GetConfiguration или еще какой, но чтоб в результате хоть увидеть что АЦП подключилось).
В описании есть вот такое: перед началом работы с аппаратурой приложение должно запустить программу сервера данных (qmbox_ds.exe) Перед непосредственной работой с системой QMBox программа должна ее обнаружить и получить ее дескриптор. Для этого используется функция базовой библиотеки QMX_CircBufAttach.
Подскажите как реализовать CLF?
Понимаю что начал я изучение явно не с низов так сказать, но так хочется увидеть уже хоть небольшой результат, так же возникает вопрос о реализации всех нужных функций dll и не будет ли уж очень сложно выполнимой задачей?
Столкнулся с задачей АЦП, для оцифровки проводимых измерений и хранения этих измерений в электронном виде (на данный момент все хранится в бумажном виде). Так как я думал, что задача АЦП решается давно и примеров решений и применений вроде масса, то я смогу изучив их с задачей справиться, обладая мягко сказать необширными знаниями в программировании. Так как имеет место прибор, то и программу хотелось сделать на 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
- VIP

- Сообщения: 986
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 18 раз
Re: Проблема подключения АЦП QMB
Да уж, неподъемную задачку вы себе взяли. С ней и профессионалу надо возиться не один день, а начинающий может и месяцы разбираться.
Если уж собрались программировать на LabView, то и АЦП надо было выбирать с поддержкой LabView, то есть такой модуль сбора данных у которого разработчики написали драйвер и выпустили примеры на LabView. Самый лучший вариант - DAQ модули от NI, так как они идеально интегрируются с LabView. Под них и начинающий напишет программу.
Написание корректного драйвера под LabView - одна из самых сложных задач и она уж точно не для начинающего.
У вашего модуля есть и драйвер и примеры на Си, так что и саму программу лучше всего писать на Си. В крайнем случае на Windows CVI.
Если уж собрались программировать на LabView, то и АЦП надо было выбирать с поддержкой LabView, то есть такой модуль сбора данных у которого разработчики написали драйвер и выпустили примеры на LabView. Самый лучший вариант - DAQ модули от NI, так как они идеально интегрируются с LabView. Под них и начинающий напишет программу.
Написание корректного драйвера под LabView - одна из самых сложных задач и она уж точно не для начинающего.
У вашего модуля есть и драйвер и примеры на Си, так что и саму программу лучше всего писать на Си. В крайнем случае на Windows CVI.
-
dadreamer
- professor

- Сообщения: 3997
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 9
- Версия LabVIEW: 2.5 — 2025
- Благодарил (а): 14 раз
- Поблагодарили: 147 раз
Re: Проблема подключения АЦП QMB
Так вам нужно вызвать эту функцию вmaxsr писал(а):В описании есть вот такое: перед началом работы с аппаратурой приложение должно запустить программу сервера данных (qmbox_ds.exe) Перед непосредственной работой с системой QMBox программа должна ее обнаружить и получить ее дескриптор. Для этого используется функция базовой библиотеки QMX_CircBufAttach.
Подскажите как реализовать CLF?
-
maxsr
- interested

- Сообщения: 4
- Зарегистрирован: 22 апр 2014, 12:12
- Версия LabVIEW: 2013
- Контактная информация:
Re: Проблема подключения АЦП QMB
Добрый день!
Спасибо за Ваши ответы, АЦП какой есть, теперь то я бы конечно подошел к выбору АЦП с более широким предложением драйверов и примеров в различных средах. Длительность по изучению этой темы особо не пугает, буду разбираться, но начать пришлось сразу с такого т.к. прикладная часть задачи актуальна, параллельно буду и в СИ разбираться, т.к. начинающий я на всех языках. Хотелось вопрос про Windows CVI это я так понимаю что-то среднее?
Про эту функции QMX_CircBufAttach , ее я привел потому, что она начальная, и обнаруживает qmbox, а по описанию не могу понять каким образом ее вызвать в
правильно? Ну и на примере ее продвинуться дальше к другим функциям QMX_GetConfiguration и далее...
Спасибо за Ваши ответы, АЦП какой есть, теперь то я бы конечно подошел к выбору АЦП с более широким предложением драйверов и примеров в различных средах. Длительность по изучению этой темы особо не пугает, буду разбираться, но начать пришлось сразу с такого т.к. прикладная часть задачи актуальна, параллельно буду и в СИ разбираться, т.к. начинающий я на всех языках. Хотелось вопрос про Windows CVI это я так понимаю что-то среднее?
Про эту функции QMX_CircBufAttach , ее я привел потому, что она начальная, и обнаруживает qmbox, а по описанию не могу понять каким образом ее вызвать в
-
dadreamer
- professor

- Сообщения: 3997
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 9
- Версия LabVIEW: 2.5 — 2025
- Благодарил (а): 14 раз
- Поблагодарили: 147 раз
Re: Проблема подключения АЦП QMB
Размещаете узел вызова библиотек (CLFN) на диаграмме, заходите в его свойства:maxsr писал(а):QMX_CircBufAttach
Вкладка "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 в мануале я не нашёл. По другим функциям - спрашивайте в теме, если непонятно.
В LabWindows/CVI есть те же графические элементы (фронтальная панель, контролы, индикаторы, графики), что и вmaxsr писал(а):Хотелось вопрос про Windows CVI это я так понимаю что-то среднее?
-
maxsr
- interested

- Сообщения: 4
- Зарегистрирован: 22 апр 2014, 12:12
- Версия LabVIEW: 2013
- Контактная информация:
Re: Проблема подключения АЦП QMB
Спасибо за такое подробное описание, я в принципе так и делал, но вопрос получается как просмотреть результат функции т.е. в случае успешного выполнения выдает дескриптор в случае ошибки NULL как организовать индикацию, если просто индикатор, то там постоянно 0? и на виртуал какой-то контрол надо, по умолчанию при запуске qmbox_ds.exe ставит вроде 0?
QMX_GetConfiguration эту функцию я нашел в заголовках qmx.h и понял, что она как то связана с крейтом QMX_CONFIG в котором типа вся информация будет про контроллер? в описании ее нет, а вызвать ее бы хотелось с результатом
QMX_GetConfiguration эту функцию я нашел в заголовках qmx.h и понял, что она как то связана с крейтом QMX_CONFIG в котором типа вся информация будет про контроллер? в описании ее нет, а вызвать ее бы хотелось с результатом
- Вложения
-
dll.rar- (55.97 КБ) 89 скачиваний
-
dadreamer
- professor

- Сообщения: 3997
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 9
- Версия LabVIEW: 2.5 — 2025
- Благодарил (а): 14 раз
- Поблагодарили: 147 раз
Re: Проблема подключения АЦП QMB
Выход Return из CLFN - это возвращаемый функцией результат. Создаёте индикатор для этого выхода и смотрите. NULL - это просто символическое название 0. Вам бы для начала проmaxsr писал(а):как просмотреть результат функции
Чтобы её вызвать, нужно сначала создать вmaxsr писал(а):а вызвать ее бы хотелось с результатом
-
maxsr
- interested

- Сообщения: 4
- Зарегистрирован: 22 апр 2014, 12:12
- Версия LabVIEW: 2013
- Контактная информация:
Re: Проблема подключения АЦП QMB
Извините возможно не правильно выражаю свои мысли, и про NULL написал текстом т.к. скопировал из описания, у меня получается на выходе всегда 0, а ведь я так понимаю при подключении и запущенном qmbox_ds.exe он мне должен выдать что-то другое?
-
dadreamer
- professor

- Сообщения: 3997
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 9
- Версия LabVIEW: 2.5 — 2025
- Благодарил (а): 14 раз
- Поблагодарили: 147 раз
Re: Проблема подключения АЦП QMB
maxsr, ну, по описанию должен выдать дескриптор, о чём вы писали уже. То есть, некоторое целое число, хэндл. VirtualSlot верно передаёте? Я толком не знаю ваше оборудование, поэтому подсказать трудно.
-
dadreamer
- professor

- Сообщения: 3997
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 9
- Версия LabVIEW: 2.5 — 2025
- Благодарил (а): 14 раз
- Поблагодарили: 147 раз
Re: Проблема подключения АЦП QMB
Сделал вам вызов этой функции, проверяйте.
У вас там всё-таки stdcall везде используется, так что учтите это. Для вызова функции, скорее всего, справедливо то же, что и для QMX_Prepare():
Ну, и сперва нужно добиться успеха с QMX_CircBufAttach(), а потом вызывать всё остальное.До вызова функции хотя бы один модуль системы должен быть объявлен активным с помощью функции QMX_MOD_SetActive.
-
dadreamer
- professor

- Сообщения: 3997
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 9
- Версия LabVIEW: 2.5 — 2025
- Благодарил (а): 14 раз
- Поблагодарили: 147 раз
Re: Проблема подключения АЦП QMB
Пользователь RooneyFord задал мне в ЛС вопрос про QMBox QMS17, но ответить ему я не могу:
, хотя у меня такого прибора нет в наличии. Однако, боюсь, тема с USB3000 тут не подойдет, для QMB другое API используется. Была немного другая тема. Не знаю, получилось ли у автора реализовать управление в итоге. Там есть пример вызова функции QMX_GetConfiguration, можно с этого начать. Остальные функции нужно будет реализовать по аналогии, их описания есть в руководстве по программированию (QMBox Programming Guide_rev_4_1). Да, qmx.dll только 32-битная, так что и
тоже должен быть 32 бита. Windows 7 - оптимальный вариант, в более поздних (10, 11) могут быть заморочки с цифровой подписью драйвера. Начните с простых функций, например QMX_CircBufAttach, если будут вопросы, можете писать здесь в теме или в ЛС.
Поэтому размещу свой ответ здесь.Некоторые пользователи не могут быть добавлены, так как они отключили получение личных сообщений.
Приветствую. Действительно, когда-то ради интереса помогал подключать прибор USB3000 вRooneyFord писал(а): 25 янв 2026, 14:58Здравствуйте, подскажите пожалуйста. Имею АЦП R-tech QMBOX QMS17, хочу ПО свое попробовать сделать, чтоб кое-чего автоматизировать. В языках программирования не сильно силен, с labview все гораздо лучше. Думал, что нет библиотек для этого прибора, а тут вижу, что имеется) Вот тема viewtopic.php?t=9993&start=15 . Вы в ней принимали активное участие.
Т.е. скорее всего, можно будет работать с этой АЦП в лабвью и сигналы сохранять?) Я так понял лучше иметь win7 и 32 bit labview и пользоваться штатными библиотеками. Спасибо.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение