Возникла необходимость строить ВАХ диодов, для чего потребовался достаточно мощный программируемый блок питания. Прикупил вот эту китайскую поделку.
Посидев с прилагаемым к этой железяке софтом и сниффером, был проанализирован протокол обмена.
Похоже на урезанный ModBUS (адрес, код команды, стартовый регистр, количество регистров, количество байт, сами данные и CRC) но суть не в этом.
Для OS Windows это обычный последовательный порт (USB-->COM на чипе CH340) При написании своего софта возник вопрос в грамотной настройке VISA.
Команду на чтение посылаю каждые 500 mS. Timeout в VISA установлен 2 сек. Все работает, ошибки никакой не возникает. Но в сниффере творится что то непонятное,
после запроса на чтение регистров и до получения ответа, вылетает более сотни таймаутов!
Ставлю задержку после запроса - в сниффере красота. Правильно ли я понимаю, что эти таймауты связаны с опросом периферии самой OS (каждую 1mS кажись), или нужно еще
где то что то настроить?
Настройка VISA
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Настройка VISA
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!
So far, the Universe is winning!
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Настройка VISA
>> Правильно ли я понимаю, что эти таймауты связаны с опросом периферии самой OS (каждую 1mS кажись), или нужно еще где то что то настроить?
Полагаю, связано с этим:
>> Вызов VISA Read обычно не отнимает много ресурсов у системы, хотя и работает в асинхронном режиме по умолчанию (опрос устройства производится с интервалом в 1 мс, пока не получено запрашиваемое количество данных). Если переживаете за производительность, попробуйте поменять режим работы на синхронный (ПКМ по -> Synchronous I/O Mode).
Хотел ещё ссылку кинуть на тему, где я это расписывал более подробно, но из-за глюков форума сообщения пропали. В общем, пройдитесь сниффером при синхронном режиме выполнения VISA Read. Если я прав, то таймаут будет возникать только по истечении времени, заданного для VISA Configure Serial Port.
Полагаю, связано с этим:
>> Вызов VISA Read обычно не отнимает много ресурсов у системы, хотя и работает в асинхронном режиме по умолчанию (опрос устройства производится с интервалом в 1 мс, пока не получено запрашиваемое количество данных). Если переживаете за производительность, попробуйте поменять режим работы на синхронный (ПКМ по -> Synchronous I/O Mode).
Хотел ещё ссылку кинуть на тему, где я это расписывал более подробно, но из-за глюков форума сообщения пропали. В общем, пройдитесь сниффером при синхронном режиме выполнения VISA Read. Если я прав, то таймаут будет возникать только по истечении времени, заданного для VISA Configure Serial Port.
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Настройка VISA
Вы правы! В синхронном режиме работает замечательно!
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!
So far, the Universe is winning!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 2 Ответы
- 648 Просмотры
-
Последнее сообщение Artem.spb
-
- 11 Ответы
- 1960 Просмотры
-
Последнее сообщение Borjomy_1
-
- 2 Ответы
- 662 Просмотры
-
Последнее сообщение Borjomy_1
-
- 4 Ответы
- 244 Просмотры
-
Последнее сообщение Embedder74