Как обеспечить работу нескольких com-portов в одной программе?
-
- interested
- Сообщения: 5
- Зарегистрирован: 05 авг 2021, 11:03
- Версия LabVIEW: 2018
- Контактная информация:
Как обеспечить работу нескольких com-portов в одной программе?
Здравствуйте, подскажите как можно обеспечить работу нескольких Ардуино в одной программе . Накидал небольшую программу, просто выводит данные, отправленные Ардуиной. Когда подключаю одну - работает, подключаю вторую - сыпется, причем работает или одна из них или никто.
Может кто показать где я что-то не так делаю? И что исправит?
Может кто показать где я что-то не так делаю? И что исправит?
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Как обеспечить работу нескольких com-portов в одной программе?
Попробуйте разнести чтение с каждого COM порта в отдельные циклы.
Мы делили апельсин - много наших полегло...
-
- interested
- Сообщения: 5
- Зарегистрирован: 05 авг 2021, 11:03
- Версия LabVIEW: 2018
- Контактная информация:
Re: Как обеспечить работу нескольких com-portов в одной программе?
К сожалению делал - результат тот же, отклеивается один или оба...
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Как обеспечить работу нескольких com-portов в одной программе?
- Вложения
-
- 2021-08-05_15-57-29.jpg (11.01 КБ) 2363 просмотра
-
- interested
- Сообщения: 5
- Зарегистрирован: 05 авг 2021, 11:03
- Версия LabVIEW: 2018
- Контактная информация:
Re: Как обеспечить работу нескольких com-portов в одной программе?
Его в loop после "VISA Configure Serial Port" или до loop после "VISA Configure Serial Port"?
-
IvanLis
- guru
- Сообщения: 5464
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Как обеспечить работу нескольких com-portов в одной программе?
Перед VISA Configure Serial Port.
Сперва открываем, потом конфигурируем.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- interested
- Сообщения: 5
- Зарегистрирован: 05 авг 2021, 11:03
- Версия LabVIEW: 2018
- Контактная информация:
Re: Как обеспечить работу нескольких com-portов в одной программе?
Тааак... Сделал, теперь как и раньше работают по одному, оба вместе не работают постоянно первый отклеивается...
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Как обеспечить работу нескольких com-portов в одной программе?
Конфигурировать нужно один раз, перед циклом.
И свойство Baud - это скорость коммуникации, но никак не количество байтов, которое нужно вычитать. Для этого есть свойсво VISA Bytes at Port.
И не нужно читать данные с двох портов в одном цикле. Я уже писал - разнесите их в разные циклы. Тем более, если скорость коммуникации у них разная. Открытие порта, и конфигурация - перед циклом; в цикле чтение.
И в цикл добавьте задержку, хотя бы несколько миллисекунд. Вы гоняете цикл очень быстро, это не нужно.
И свойство Baud - это скорость коммуникации, но никак не количество байтов, которое нужно вычитать. Для этого есть свойсво VISA Bytes at Port.
И не нужно читать данные с двох портов в одном цикле. Я уже писал - разнесите их в разные циклы. Тем более, если скорость коммуникации у них разная. Открытие порта, и конфигурация - перед циклом; в цикле чтение.
И в цикл добавьте задержку, хотя бы несколько миллисекунд. Вы гоняете цикл очень быстро, это не нужно.
Мы делили апельсин - много наших полегло...
-
- interested
- Сообщения: 5
- Зарегистрирован: 05 авг 2021, 11:03
- Версия LabVIEW: 2018
- Контактная информация:
Re: Как обеспечить работу нескольких com-portов в одной программе?
Всем огромное спасибо! Теперь все работает отлично!
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Как обеспечить работу нескольких com-portов в одной программе?
Зачем Вы конфигурируете порт в цикле? Вы не читаете, что Вам здесь пишут? Конфигурация делается перед циклом, один раз.
Мы делили апельсин - много наших полегло...
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Как обеспечить работу нескольких com-portов в одной программе?
Мало того, baud это скорость порта, а никак не количество байт в буфере. Bytes as port использовать не рекомендую. Заказывайте лучше конкретное число, например кратное посылке. А ещё лучше передавать ваши числа с терминальным символом. Так вы избавитесь от детских багов, когда запуск программы попадает в момент передачи посылки. И когда рассинхронизация с источником приведет к получению двух посылок одновременно со смещением.