COM-USB

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
serg_si
beginner
beginner
Сообщения: 41
Зарегистрирован: 24 фев 2014, 10:19
Версия LabVIEW: 7.1
Контактная информация:

COM-USB

Сообщение serg_si »

Добрый день!
Сталкивался кто с такой штукой?
Ведется последовательный опрос 10 датчиков через COM-порт. Время цикла выполнения программы произвольное, все работает нормально.
Меняю COM-порт на виртуальный (через USB), начинаются проблемы с циклом выполнения программы. Со временем цикла программы от 6 сек и выше
еще работает более-менее нормально. А от 5 сек. и ниже программа работает в цикле где-то 10 сек. Попробовал убрать функцию закрывания COM-порта
немного помогло, но меньше 2 сек. цикл программы отказывается работать.
Ничего не меняю и не трогаю (настройки остаются), а вот такая штука. И не поймешь сразу.
Суда по миганию лампочки на виртуальном COM-порте, он сам отрабатывает нормально, но в программе не могу додумать, что делать.
Работаю с фирмой ICPDAS.
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: COM-USB

Сообщение Vitekkz88 »

Выкладывайте исходники или скрин исходников. Будет проще помогать.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: COM-USB

Сообщение Borjomy_1 »

Чтобы дать адекватный ответ необходимо:
Наименование модуля USB, с которым работаете,
Наименование датчиков и протокол обмена.
Настройки портов, включая низкоуровневые. Ну и программа...
Еще почитайте тему http://labviewportal.org/viewtopic.php?f=22&t=6130
serg_si
beginner
beginner
Сообщения: 41
Зарегистрирован: 24 фев 2014, 10:19
Версия LabVIEW: 7.1
Контактная информация:

Re: COM-USB

Сообщение serg_si »

Здравствуйте! Вот инфа.
Оба модуля преобразуют RS485 в RS232.
Предвидя, что структуру программы можно было бы сделать и получше, соглашусь.
Но, опрос такого количества подпрограммок (опрос COM-порта), не должен так критично сказываться на времени выполнения,
даже, если каждый раз открывать-закрывать COM-порт.
Вложения
COM-порт в While Loop
COM-порт в While Loop
Опрос COM-порта
Опрос COM-порта
7520 7563.docx
Краткое описание модулей
(305.03 КБ) 167 скачиваний
serg_si
beginner
beginner
Сообщения: 41
Зарегистрирован: 24 фев 2014, 10:19
Версия LabVIEW: 7.1
Контактная информация:

Re: COM-USB

Сообщение serg_si »

Может, у кого программуля есть подобная, кинули бы, я бы посмотрел в чем разница, да подправил свою.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: COM-USB

Сообщение Borjomy_1 »

Открывать порт надо только ОДИН раз перед началом работы. И закрывать тоже.
Опрос делать в цикле, изменяя адрес, используя массив текстовых констант
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: COM-USB

Сообщение IvanLis »

serg_si писал(а):Предвидя, что структуру программы можно было бы сделать и получше, соглашусь.
Но, опрос такого количества подпрограммок (опрос COM-порта), не должен так критично сказываться на времени выполнения,
даже, если каждый раз открывать-закрывать COM-порт.
У Вас в подпрограмме считывание идет по 1 байту, при этом, за каждую итерацию несколько раз обращается к локальным переменным. В крайнем случае используйте сдвиговые регистры, но я советую использовать терминатор, тем более он у вас используется, только через "нето" место, это позволит вообще убрать цикл.

Я так понимаю, что порт используется один для всех подпрограмм, по этому в основной программе все запросы выполняются по очереди, а не параллельно и каждый из них тормозит (см. выше). При этом каждый раз открывается и закрывается сессия. Все эти запросы можно сделать в одной сессии, используя цикл.

Если подразумевается многократный опрос, то делайте открытие сессии вначале, а закрытие при остановке программы, по ходу работы контролируйте ошибку, и только в случае нарушения связи делайте реконект.
serg_si
beginner
beginner
Сообщения: 41
Зарегистрирован: 24 фев 2014, 10:19
Версия LabVIEW: 7.1
Контактная информация:

Re: COM-USB

Сообщение serg_si »

Ок! Буду оптимизировать.
А какие мысли, насчет, того, что даже при таком алгоритме обычный COM-порт (шнурок 9-pin) успевает отрабатывать.
А виртуальный, просто, на порядок начинает тормозить.
Все же затык в LabVIEW 7.1 (может разработчики не сильно заморачивались с USB, USB только распространялось).
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: COM-USB

Сообщение IvanLis »

serg_si писал(а):А какие мысли, насчет, того, что даже при таком алгоритме обычный COM-порт (шнурок 9-pin) успевает отрабатывать.
А виртуальный, просто, на порядок начинает тормозить.
Все же затык в LabVIEW 7.1 (может разработчики не сильно заморачивались с USB, USB только распространялось).
Можно поставить и 1Mbps, только ошибок много будет.
Тут больше наверное зависит не от программной, а от аппаратной реализации. Здесь все определяется неточностью тактирования на устройстве, какие провода используются и их длина.
Т.е. для каждого конкретного случая нужно конкретно и разбираться.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: COM-USB

Сообщение Borjomy_1 »

Виртуальный тормозит потому что открытие виртуального порта требует больших временных ресурсов. А вы это делаете каждый вызов. Не говоря уже о том, что сам драйвер чипа Prolific (на котором построены изделия ICPCON) не только тормознутый в этом плане, он еще и глючный.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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