Подключение к более чем одному модулю одновременно

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Sergey Puzanov
assistant
assistant
Сообщения: 113
Зарегистрирован: 05 ноя 2020, 08:26
Версия LabVIEW: 18, 20.0f1
Благодарил (а): 23 раза
Поблагодарили: 3 раза
Контактная информация:

Подключение к более чем одному модулю одновременно

Сообщение Sergey Puzanov »

Добрый день. У меня есть крейт e8408a, в который установлены два измерительных модуля hpe1419a и управляющий модуль EX2500A. Подключаюсь к крейту по LAN кабелю через управляющий модуль. При подключении и работе с одним модулем всё хорошо - инициализация модуля, работа с ним, закрытие соединения, всё отлично работает. Но при попытке подключить одновременно второй модуль, возникает ошибка. Программы, написанные на С, работают с несколькими модулями, но там свои методы, здесь же драйвер для управления устройством был создан LabVIEW автоматически на основе файла с расширением .fp. Собственно вопрос - как сделать возможным работу и опрос 2+ модулей одновременно? Спасибо.
1.png
Сам драйвер тоже прикладываю.
Вложения
VT1419A.rar
Драйвер
(439.96 КБ) 102 скачивания
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Подключение к более чем одному модулю одновременно

Сообщение dadreamer »

Sergey Puzanov писал(а): 10 дек 2020, 14:18Собственно вопрос - как сделать возможным работу и опрос 2+ модулей одновременно?
Попробовать поменять тип всех CLFN в обёртках на Run In Any Thread (жёлтый цвет) и надеяться, что это сработает (если разрабы дровины предусмотрели реентерантность в коде).
Вложения
2020-12-10_17-27-26.jpg
2020-12-10_17-31-54.jpg
Sergey Puzanov
assistant
assistant
Сообщения: 113
Зарегистрирован: 05 ноя 2020, 08:26
Версия LabVIEW: 18, 20.0f1
Благодарил (а): 23 раза
Поблагодарили: 3 раза
Контактная информация:

Re: Подключение к более чем одному модулю одновременно

Сообщение Sergey Puzanov »

dadreamer писал(а): 10 дек 2020, 15:32 Попробовать поменять тип всех CLFN в обёртках на Run In Any Thread (жёлтый цвет) и надеяться
Поменял - не помогло. Я так понимаю, это единственный способ что-то сделать? Потому что всё ещё есть надежда, что раз в программе на C это возможно, значит и здесь это как-то можно сделать.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Подключение к более чем одному модулю одновременно

Сообщение Artem.spb »

Sergey Puzanov писал(а): 10 дек 2020, 14:18. Но при попытке подключить одновременно второй модуль, возникает ошибка.
Банально, но порой и такое бывает.
Адрес точно верный? Оба модуля по-одиночке работают?

При создании драйвера нет каких-то настроек, вкл/выкл одновременную работу?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Подключение к более чем одному модулю одновременно

Сообщение dadreamer »

Sergey Puzanov писал(а): 10 дек 2020, 15:53Я так понимаю, это единственный способ что-то сделать?
Нет, но дальше может быть сложнее. Надо найти исходники hpe1419_*.dll и изучить их, чтобы понять, что там не позволяет обеспечить многопоточность. Я что-то сходу не смог их найти. Если есть, скиньте сюда в тему.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Подключение к более чем одному модулю одновременно

Сообщение Borjomy_1 »

Скорее всего Handle соединения (а также его дополнительные параметры) внутри библиотеки один на всю dll.
Как вариант, сделать дубликат dll, с другим именем, для второго потока.
Sergey Puzanov
assistant
assistant
Сообщения: 113
Зарегистрирован: 05 ноя 2020, 08:26
Версия LabVIEW: 18, 20.0f1
Благодарил (а): 23 раза
Поблагодарили: 3 раза
Контактная информация:

Re: Подключение к более чем одному модулю одновременно

Сообщение Sergey Puzanov »

Artem.spb писал(а): 10 дек 2020, 17:55
Адрес точно верный? Оба модуля по-одиночке работают?
Да, по одиночке всё работает, все измерения проводятся. Я даже использовал flat sequence и попробовал поочерёдно подключиться к модулям, то есть открыть соединение - послать *idn? - закрыть соединение, всё получилось.
dadreamer писал(а): 10 дек 2020, 18:11 Если есть, скиньте сюда в тему.
Самой библиотеки не было, поэтому пришлось использовать LabVIEW Import Wizard для 2019 версии, и там это делать с помощью файла с расширением .fp, папку с ним отправил.
Вложения
HPE1419.rar
(309.24 КБ) 99 скачиваний
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Подключение к более чем одному модулю одновременно

Сообщение dadreamer »

Код слишком большой, тяжело разобраться. Но глобальных переменных я не нашёл. Попробуйте совет Borjomy_1, это будет самое простое в данной ситуации. Если не поможет, надо ставить LabWindows/CVI 6.0 или 5.5 и пытаться скомпилить исходники.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»