Задержка при закрытии vi

Простейшие вопросы в области инженерной разработки

Задержка при закрытии vi

Postby Select on 02 Aug 2019, 23:06

Всем привет,
покритикуйте пожалуйста мой код в целом, видимая проблема в задержке при закрытии :vi:
Attachments
P001.png
LabView 18
User avatar
Select
assistant
assistant
 
Posts: 142
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Задержка при закрытии vi

Postby IvanLis on 03 Aug 2019, 00:03

Select wrote:видимая проблема в задержке при закрытии :vi:

На мой взгляд проблема не только в этом, но и в неоднозначной последовательности записи и чтения.

Что касается задержки, то ...
чтение окончится по одному из трех тригеров:
1. timeout (10sec)
2. набрано в буфер 1000 byte
3. принят termination char

например у Вас устройство не отвечает, 2 и 3 отбрасываем
остается задержка 10 сек
User avatar
IvanLis
professor
professor
 
Posts: 4802
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 762
hardware VIP bloggers teachers

Re: Задержка при закрытии vi

Postby Select on 03 Aug 2019, 12:51

Select wrote:Всем привет,
покритикуйте пожалуйста мой код в целом, видимая проблема в задержке при закрытии :vi:
Логика заключается в передаче из стринга из п.2, что открывает в устройстве команду на передачу данных - считывание в буфер.
Насколько верно я понял совет:
Attachments
P002.png
LabView 18
User avatar
Select
assistant
assistant
 
Posts: 142
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Задержка при закрытии vi

Postby Select on 04 Aug 2019, 11:32

В принципе разобрался
Attachments
P003.png
LabView 18
User avatar
Select
assistant
assistant
 
Posts: 142
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Задержка при закрытии vi

Postby Borjomy_1 on 12 Aug 2019, 22:47

Неправильно. Использование Bytes at Port это как использование goto в C.
Во-первых. при инициализации вы указали по умолчанию терминальный символ. Он там действительно есть?
Во-вторых. если при вычислении Bytes at Port, еще не пришла вся посылка, то вы некорректно ее примете. И дальше будет ерунда. Вам это надо???
Если используется терминальный символ, то для Visa Read указывается максимальный размер строки. Но приоритет за терминальным символом. Т.е функция читает строками и предварительно смотреть размер принятой посылки нет никакой необходимости. Просто указываете максимально возможный размер плюс запас, тогда гарантировано будет возвращена строка до терминального символа.
Borjomy_1
expert
expert
 
Posts: 1892
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 327
VIP


Return to Для чайников

Who is online

Users browsing this forum: Google, Yandex and 10 guests

cron