Настройка VISA

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 345
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

Настройка VISA

Сообщение taras_33 »

Возникла необходимость строить ВАХ диодов, для чего потребовался достаточно мощный программируемый блок питания. Прикупил вот эту китайскую поделку.
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 КБ) 907 просмотров
При написании своего софта возник вопрос в грамотной настройке VISA.
Команду на чтение посылаю каждые 500 mS. Timeout в VISA установлен 2 сек. Все работает, ошибки никакой не возникает. Но в сниффере творится что то непонятное,
после запроса на чтение регистров и до получения ответа, вылетает более сотни таймаутов!
Timeout request.PNG
Timeout respond.PNG
Ставлю задержку после запроса - в сниффере красота.
Delay.PNG
Delay.PNG (3.19 КБ) 907 просмотров
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!

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3508
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

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

Сообщение dadreamer »

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

Хотел ещё ссылку кинуть на тему, где я это расписывал более подробно, но из-за глюков форума сообщения пропали. В общем, пройдитесь сниффером при синхронном режиме выполнения VISA Read. Если я прав, то таймаут будет возникать только по истечении времени, заданного для VISA Configure Serial Port.

Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 345
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Репутация: 0
Версия LabVIEW: 2019
Контактная информация:

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

Сообщение taras_33 »

Вы правы! В синхронном режиме работает замечательно!
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!

Ответить

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