Настройка VISA

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

Настройка VISA

Postby taras_33 on 07 Jan 2020, 16:32

Возникла необходимость строить ВАХ диодов, для чего потребовался достаточно мощный программируемый блок питания. Прикупил вот эту китайскую поделку.
https://www.amazon.com/gp/product/B07PY ... 9EFM&psc=1
Посидев с прилагаемым к этой железяке софтом и сниффером, был проанализирован протокол обмена.
Похоже на урезанный ModBUS (адрес, код команды, стартовый регистр, количество регистров, количество байт, сами данные и CRC) но суть не в этом.
Для OS Windows это обычный последовательный порт (USB-->COM на чипе CH340)
Device Manager.PNG
Device Manager.PNG (4.98 KiB) Viewed 224 times
При написании своего софта возник вопрос в грамотной настройке VISA.
Команду на чтение посылаю каждые 500 mS. Timeout в VISA установлен 2 сек. Все работает, ошибки никакой не возникает. Но в сниффере творится что то непонятное,
после запроса на чтение регистров и до получения ответа, вылетает более сотни таймаутов!
Timeout request.PNG
Timeout respond.PNG

Ставлю задержку после запроса - в сниффере красота.
Delay.PNG
Delay.PNG (3.19 KiB) Viewed 224 times
CommunicationOK.PNG
Правильно ли я понимаю, что эти таймауты связаны с опросом периферии самой OS (каждую 1mS кажись), или нужно еще
где то что то настроить?
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
User avatar
taras_33
professional
professional
 
Posts: 321
Joined: 31 Oct 2009, 18:25
Medals: 1
Activity (1)
LabVIEW Version: 2019
Karma: 139
CLD VIP

Re: Настройка VISA

Postby dadreamer on 07 Jan 2020, 16:44

>> Правильно ли я понимаю, что эти таймауты связаны с опросом периферии самой OS (каждую 1mS кажись), или нужно еще где то что то настроить?
Полагаю, связано с этим:
>> Вызов VISA Read обычно не отнимает много ресурсов у системы, хотя и работает в асинхронном режиме по умолчанию (опрос устройства производится с интервалом в 1 мс, пока не получено запрашиваемое количество данных). Если переживаете за производительность, попробуйте поменять режим работы на синхронный (ПКМ по :vi: -> Synchronous I/O Mode).

Хотел ещё ссылку кинуть на тему, где я это расписывал более подробно, но из-за глюков форума сообщения пропали. В общем, пройдитесь сниффером при синхронном режиме выполнения VISA Read. Если я прав, то таймаут будет возникать только по истечении времени, заданного для VISA Configure Serial Port.
User avatar
dadreamer
professor
professor
 
Posts: 3376
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 853
I/O VIP vision internet

Re: Настройка VISA

Postby taras_33 on 07 Jan 2020, 17:11

Вы правы! В синхронном режиме работает замечательно!
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
User avatar
taras_33
professional
professional
 
Posts: 321
Joined: 31 Oct 2009, 18:25
Medals: 1
Activity (1)
LabVIEW Version: 2019
Karma: 139
CLD VIP


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

Who is online

Users browsing this forum: No registered users and 2 guests

cron