Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Проблема с подключением двух крейтов

Вы не вошли.

 Поиск | Регистрация | Вход 

03.08.2021 23:35:19
#1

Участник
Здесь с 09.12.2020
Сообщений: 30

Проблема с подключением двух крейтов

Добрый день!
Возникла такая проблема: Необходимо подключить два крейта одновременно. В Руководстве пользователя и описании каждого отдельного модуля описано, что в формате нескольких крейтов они могут работать при подаче на вход функций Open() серийного номера крейта, в котором уствновлен модуль.
Все выполнила по инструкции. Но не смотря на это, работает либо онин, либо другой крейт. В чем может быть ошибка?
Заранее спасибо!

И сопутствующий вопрос:
При попытке задать серийный номер крейта для модуля LTR27 в функции Open(UInt32 saddr, UInt16 sport, Char[] csn, Uint16 cc), на вход функции не получается подать номер крейта, подскажите, как это проавильно сделать? (ПО на LabVeiw, https://yadi.sk/i/XbJXs7HfOumOnw)

04.08.2021 14:50:09
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: Проблема с подключением двух крейтов

Добрый день.
Не до конца понял, в первой части вопроса Вы пробовали не из LabView? Если так, то тогда каким образом, без куска кода сложно сказать.
По поводу LabView, то в библиотеки для LabView может быть использовано два типа классов - старый вариант, где был отдельно класс _ltr27api и ltr27apiLabView, либо новый вариант через ltr27api (без подчеркивания вначале и без суффикса LabView - общий для .Net и Labview). В старом часть типов была описана либо в неудобном для использования виде (например строки через массивы байт, как в Вашем случае), также были местами не совсем корректные описания. Поэтому в старом варианте Вы не можете строку завести напрямую, если только ее преобразовать с помощью блока LabView в массив байт и добавить в конец вручную завершающий ноль и потом подать вместо константы. В новом варианте же строку можно подавать напрямую. Правда пока не написал пример для нового варианта, если актуально, то могу написать такой пример на новом классе в начале след. недели.

04.08.2021 16:15:33
#3

Участник
Здесь с 09.12.2020
Сообщений: 30

Re: Проблема с подключением двух крейтов

Алексей L Card пишет:

Добрый день.
Не до конца понял, в первой части вопроса Вы пробовали не из LabView? Если так, то тогда каким образом, без куска кода сложно сказать.
По поводу LabView, то в библиотеки для LabView может быть использовано два типа классов - старый вариант, где был отдельно класс _ltr27api и ltr27apiLabView, либо новый вариант через ltr27api (без подчеркивания вначале и без суффикса LabView - общий для .Net и Labview). В старом часть типов была описана либо в неудобном для использования виде (например строки через массивы байт, как в Вашем случае), также были местами не совсем корректные описания. Поэтому в старом варианте Вы не можете строку завести напрямую, если только ее преобразовать с помощью блока LabView в массив байт и добавить в конец вручную завершающий ноль и потом подать вместо константы. В новом варианте же строку можно подавать напрямую. Правда пока не написал пример для нового варианта, если актуально, то могу написать такой пример на новом классе в начале след. недели.


Последовательность проверки такая: для начала я подключила оба крейта через USB к программе LTR Manager, чтобы увидеть серийные номера крейтов. После чего с помощью написанной программы на LabView попыталась подключить оба крейта, используя в качестве параметра csn для каждого из модей серийные номера крейтов, в которых они установлены. С помощью этого ПО работает только один крейт из двух.

Пересмотрела сейчас ПО: при инициализации модулей во всех модулях кроме ltr27 используется ltrNapi, для ltr27 используется ltr27apiLabView.

05.08.2021 00:37:57
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,288

Re: Проблема с подключением двух крейтов

Ну в приведенном примере у Вас не получилось завести строку с серийным номером в Open и заработать ничего не могло (в начале следующей недели выложу пример с классом ltr27api). В остальных случаях насколько я понимаю вы уже нормально смогли подключить серийный номер к нужному параметру Open(). Вы работаете с двумя модулями из одной и той же программы? Если да, то Вы создаете для каждого модуля свой экземпляр класса? Можете кусок кода с открытием соединений с двумя модулями из разных крейтов выложить?

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск