Как обеспечить работу нескольких com-portов в одной программе?

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
vits1223
interested
interested
Сообщения: 5
Зарегистрирован: 05 авг 2021, 11:03
Версия LabVIEW: 2018
Контактная информация:

Как обеспечить работу нескольких com-portов в одной программе?

Сообщение vits1223 »

Здравствуйте, подскажите как можно обеспечить работу нескольких Ардуино в одной программе :labview: . Накидал небольшую программу, просто выводит данные, отправленные Ардуиной. Когда подключаю одну - работает, подключаю вторую - сыпется, причем работает или одна из них или никто.
Может кто показать где я что-то не так делаю? И что исправит?
labview.jpg
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Как обеспечить работу нескольких com-portов в одной программе?

Сообщение Kosist »

Попробуйте разнести чтение с каждого COM порта в отдельные циклы.
Мы делили апельсин - много наших полегло...
vits1223
interested
interested
Сообщения: 5
Зарегистрирован: 05 авг 2021, 11:03
Версия LabVIEW: 2018
Контактная информация:

Re: Как обеспечить работу нескольких com-portов в одной программе?

Сообщение vits1223 »

К сожалению делал - результат тот же, отклеивается один или оба...
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Как обеспечить работу нескольких com-portов в одной программе?

Сообщение dadreamer »

vits1223 писал(а): 05 авг 2021, 11:11И что исправит?
Вложения
2021-08-05_15-57-29.jpg
2021-08-05_15-57-29.jpg (11.01 КБ) 2359 просмотров
vits1223
interested
interested
Сообщения: 5
Зарегистрирован: 05 авг 2021, 11:03
Версия LabVIEW: 2018
Контактная информация:

Re: Как обеспечить работу нескольких com-portов в одной программе?

Сообщение vits1223 »

Его в loop после "VISA Configure Serial Port" или до loop после "VISA Configure Serial Port"?
Аватара пользователя
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-portов в одной программе?

Сообщение IvanLis »

vits1223 писал(а): 05 авг 2021, 16:17 Его в loop после "VISA Configure Serial Port" или до loop после "VISA Configure Serial Port"?
Перед VISA Configure Serial Port.
Сперва открываем, потом конфигурируем.
vits1223
interested
interested
Сообщения: 5
Зарегистрирован: 05 авг 2021, 11:03
Версия LabVIEW: 2018
Контактная информация:

Re: Как обеспечить работу нескольких com-portов в одной программе?

Сообщение vits1223 »

Тааак... Сделал, теперь как и раньше работают по одному, оба вместе не работают постоянно первый отклеивается...
labview2.jpg
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Как обеспечить работу нескольких com-portов в одной программе?

Сообщение Kosist »

Конфигурировать нужно один раз, перед циклом.
И свойство Baud - это скорость коммуникации, но никак не количество байтов, которое нужно вычитать. Для этого есть свойсво VISA Bytes at Port.
И не нужно читать данные с двох портов в одном цикле. Я уже писал - разнесите их в разные циклы. Тем более, если скорость коммуникации у них разная. Открытие порта, и конфигурация - перед циклом; в цикле чтение.
И в цикл добавьте задержку, хотя бы несколько миллисекунд. Вы гоняете цикл очень быстро, это не нужно.
Мы делили апельсин - много наших полегло...
vits1223
interested
interested
Сообщения: 5
Зарегистрирован: 05 авг 2021, 11:03
Версия LabVIEW: 2018
Контактная информация:

Re: Как обеспечить работу нескольких com-portов в одной программе?

Сообщение vits1223 »

Всем огромное спасибо! Теперь все работает отлично!
labview3.jpg
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Как обеспечить работу нескольких com-portов в одной программе?

Сообщение Kosist »

vits1223 писал(а): 10 авг 2021, 08:13 Всем огромное спасибо! Теперь все работает отлично!
Зачем Вы конфигурируете порт в цикле? Вы не читаете, что Вам здесь пишут? Конфигурация делается перед циклом, один раз.
Мы делили апельсин - много наших полегло...
Borjomy_1

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

Re: Как обеспечить работу нескольких com-portов в одной программе?

Сообщение Borjomy_1 »

Мало того, baud это скорость порта, а никак не количество байт в буфере. Bytes as port использовать не рекомендую. Заказывайте лучше конкретное число, например кратное посылке. А ещё лучше передавать ваши числа с терминальным символом. Так вы избавитесь от детских багов, когда запуск программы попадает в момент передачи посылки. И когда рассинхронизация с источником приведет к получению двух посылок одновременно со смещением.
Ответить

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