Странное поведение LabView2017 + VISA + FTDI

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы

Странное поведение LabView2017 + VISA + FTDI

Postby rbl on 06 Dec 2018, 21:38

Имеем связку - LV2017 (sp1, patch3),VISA, FTDI(rs232, дефолтные настройки).
Цикл обмена состоит из Записи, и двух последовательных Чтений.
Проект не компилирован. Асинхронный режим.
Проблема - крайне редко (~1 раз 7-8 часов) LV застревает в функции Записи (не вываливается по таймауту), остановить программу невозможно (либо у меня не хватило терпения дождаться этого момента).
При переключении в синхронный режим зависания прекратились, из Чтения вываливается по Unknown Error, после чего можно возобновить обмен возможно пересозданием сессии (не выключая программу).

Кто нибудь с подобным сталкивался? Ума не приложу, что убивает визу...
rbl
assistant
assistant
 
Posts: 117
Joined: 09 Dec 2014, 10:14
Location: Санкт-Петербург
LabVIEW Version: 7-2015
Karma: 22

Re: Странное поведение LabView2017 + VISA + FTDI

Postby dadreamer on 07 Dec 2018, 11:07

rbl wrote:Кто нибудь с подобным сталкивался? Ума не приложу, что убивает визу...

Возможно, FTDI драйвер просто глючит временами. На D2XX Direct Drivers (не используя VISA) проверяли описанное событие?
User avatar
dadreamer
professor
professor
 
Posts: 3157
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 803
I/O VIP vision internet

Re: Странное поведение LabView2017 + VISA + FTDI

Postby rbl on 07 Dec 2018, 13:47

Через директ не пробовал. Скачал с их сайта пример под 7й LW, он пока просто отказывается работать. Может есть чтото более актуальное?
rbl
assistant
assistant
 
Posts: 117
Joined: 09 Dec 2014, 10:14
Location: Санкт-Петербург
LabVIEW Version: 7-2015
Karma: 22

Re: Странное поведение LabView2017 + VISA + FTDI

Postby dadreamer on 08 Dec 2018, 11:30

rbl wrote:Скачал с их сайта пример под 7й LW, он пока просто отказывается работать.

А в каком :labview: запускаете? В архивах есть как ftd2xx.dll, так и ftd2xx64.dll. Все обертки и примеры сделаны под LV 32 бита, в 64-битном LV они сходу вряд ли заработают - нужно менять представления хэндлов (FT_HANDLE) с U32 на (Un)signed Pointer-sized Integer. Может помочь заголовочный файл ftd2xx.h и D2XX Programmer's Guide. Примеры, конечно, очень примитивно сделаны, такое ощущение, что их автор открыл :labview: пару дней назад и не вполне врубается, какие вообще инструменты использовать. Так что надо там каждый блок перепроверять, следуя описаниям, и переписать пример по-человечески, без Sequence Structure, с обработкой ошибок, иконками и прочим.
User avatar
dadreamer
professor
professor
 
Posts: 3157
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 803
I/O VIP vision internet

Re: Странное поведение LabView2017 + VISA + FTDI

Postby rbl on 08 Dec 2018, 14:48

32 бита. Если честно, то изза цейтнота, потратил на тот пример буквально минут 5. Запустил, с ходу не заработало, посмотрел на инициализацию, увидел инициализацию по номеру девайса, ничего не понял, закрыл пример и пошел переписывать свою используя аналог визы (на портале есть ему посвященный топик). Вроде заработало, но лабвью с ним лабвью иногда банально крашится.
Вернулся обратно к визе и пишу костыли на оживление после ошибки...
rbl
assistant
assistant
 
Posts: 117
Joined: 09 Dec 2014, 10:14
Location: Санкт-Петербург
LabVIEW Version: 7-2015
Karma: 22

Re: Странное поведение LabView2017 + VISA + FTDI

Postby dadreamer on 08 Dec 2018, 17:27

rbl wrote:увидел инициализацию по номеру девайса, ничего не понял

FTDI API может открывать устройство тремя разными способами: по серийному номеру (например, "FT000001"), по описанию (например, "USB Serial Converter") и по идентификатору физического размещения на шине USB (например, 0x23). В примере на :labview: используется открытие по описанию: вызывается FT_ListDevices с параметрами FT_LIST_BY_INDEX и FT_OPEN_BY_DESCRIPTION для получения описания конкретного устройства (если оно подключено; индекс устройства = 0 означает, что нужно найти первое устройство) и затем FT_OpenEx с параметром FT_OPEN_BY_DESCRIPTION для открытия (на вход подаём описание, на выходе получаем хэндл открытого устройства). Так что COM-порт можно вообще не указывать. Если устройство одно подключено, то без разницы даже, какой способ подключения использовать. Если устройств несколько, то надёжнее будет сделать открытие по серийному номеру. Ну, понятное дело, для этого надо немного подправить узлы CLFN в ВИ-шках. В описании API, что я выше приводил, есть примеры на С к каждой функции, в них довольно просто разобраться.
User avatar
dadreamer
professor
professor
 
Posts: 3157
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 803
I/O VIP vision internet

Re: Странное поведение LabView2017 + VISA + FTDI

Postby rbl on 08 Dec 2018, 18:01

dadreamer wrote:
rbl wrote:увидел инициализацию по номеру девайса, ничего не понял

FTDI API может открывать устройство тремя разными способами: по серийному номеру (например, "FT000001"), по описанию (например, "USB Serial Converter") и по идентификатору физического размещения на шине USB (например, 0x23). В примере на :labview: используется открытие по описанию: вызывается FT_ListDevices с параметрами FT_LIST_BY_INDEX и FT_OPEN_BY_DESCRIPTION для получения описания конкретного устройства (если оно подключено; индекс устройства = 0 означает, что нужно найти первое устройство) и затем FT_OpenEx с параметром FT_OPEN_BY_DESCRIPTION для открытия (на вход подаём описание, на выходе получаем хэндл открытого устройства). Так что COM-порт можно вообще не указывать. Если устройство одно подключено, то без разницы даже, какой способ подключения использовать. Если устройств несколько, то надёжнее будет сделать открытие по серийному номеру. Ну, понятное дело, для этого надо немного подправить узлы CLFN в ВИ-шках. В описании API, что я выше приводил, есть примеры на С к каждой функции, в них довольно просто разобраться.


Спасибо за пояснения. Учту.

http://sine.ni.com/nips/cds/view/p/lang/ru/nid/212767#

А вот этот аддон Вам случайно не знаком? Имеет смысл пробовать его опробовать?
rbl
assistant
assistant
 
Posts: 117
Joined: 09 Dec 2014, 10:14
Location: Санкт-Петербург
LabVIEW Version: 7-2015
Karma: 22

Re: Странное поведение LabView2017 + VISA + FTDI

Postby dadreamer on 08 Dec 2018, 18:26

rbl wrote:А вот этот аддон Вам случайно не знаком? Имеет смысл пробовать его опробовать?

Не попадалось раньше. Но это для устройств с MPSSE (Multi-Protocol Synchronous Serial Engine) для конфигурирования по SPI и I2C, к примеру FT2232D, FT2232H или FT4232H. Для обычных USB-UART адаптеров вряд ли подойдёт. Ну, если только как пример хорошо выполненных :vi: -обёрток над драйверами D2XX / FT4222.
User avatar
dadreamer
professor
professor
 
Posts: 3157
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 803
I/O VIP vision internet


Return to Коммуникация с приборами

Who is online

Users browsing this forum: No registered users and 6 guests

cron