Добрый день!
С labview знаком не очень хорошо и надеюсь на вашу помощь.
У меня стоит задача реализовать в одной программе одновременное считывание данных с датчика и отправка управляющего сигнала на блок управления, который согласно этому сигналу выдает нужное напряжение. Для блока управления уже была программа, которая поставлялась вместе с ним. Сделав программу для считывания данных с датчика я попытался совместить эти программы в одну. И при включении она выдает ошибку. И данные с датчика не считываются, а с блоком управления можно работать.
Подскажите пожалуйста в чем моя ошибка.
Ошибка при передаче
-
Oleg B.
- leader
- Сообщения: 674
- Зарегистрирован: 25 сен 2011, 11:30
- Награды: 2
- Версия LabVIEW: 5 .. 2021
- Откуда: Israel
- Контактная информация:
Re: Ошибка при передаче
Во-первых - через какие СОМ порты вы разговариваете с приборами?
По умолчанию оба установлены на СОМ1, а с учетом того, что Контроль одного из них находится вне видимой части лицевой панели, вы
просто не обращаете на это внимание.
Как Контроль оказался вне поля зрения - очень просто.
Когда вам потребовался еще один СОМ порт ( для датчика), Вы сделали Copy -> Paste Терминалу на блок-диаграмме, а не собственно Контролю на лицевой панели.
Во-вторых.
Меня всегда уверяют, что программисты, в основном, очень ленивы.
Вы, видимо, нет.
Это кусок вашего кода. Для примера - эквивалентный код.
По умолчанию оба установлены на СОМ1, а с учетом того, что Контроль одного из них находится вне видимой части лицевой панели, вы
просто не обращаете на это внимание.
Как Контроль оказался вне поля зрения - очень просто.
Когда вам потребовался еще один СОМ порт ( для датчика), Вы сделали Copy -> Paste Терминалу на блок-диаграмме, а не собственно Контролю на лицевой панели.
Во-вторых.
Меня всегда уверяют, что программисты, в основном, очень ленивы.
Вы, видимо, нет.
Это кусок вашего кода. Для примера - эквивалентный код.
veni, vidi, phallomorphi
-
- interested
- Сообщения: 3
- Зарегистрирован: 22 ноя 2012, 10:56
- Версия LabVIEW: 11
- Контактная информация:
Re: Ошибка при передаче
Я через разные com порты общаюсь с ними. Просто пишу программу на одном ПК, а пробую на другом, где стенд стоит. И там я увидел, что com уехал и поправил его.
А тот кусок программы, что вы скинули писал не я. Я об этом упоминал в первом сообщении.
А тот кусок программы, что вы скинули писал не я. Я об этом упоминал в первом сообщении.
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: Ошибка при передаче
Способ с 50мс интервалом открывать и конфигурировать порт в Datchik.vi является неудачным. Надо один раз порт открыть и сконфигурировать.
Какую ошибку выдает-то? Код укажите и какой из терминалов ее выдает. Проще всего перенести код из Datchik.vi в основную программу, а Case заменить на цикл While, который у Вас вызывает эту функцию. Плюс ко всему надо убрать таймер на 50мс. Достаточно того, что вы забираете 10байт. Заберёт посылку, уйдет на новый цикл. Иначе, если частота следования данных чаще, будет забиваться входной буфер.
Какую ошибку выдает-то? Код укажите и какой из терминалов ее выдает. Проще всего перенести код из Datchik.vi в основную программу, а Case заменить на цикл While, который у Вас вызывает эту функцию. Плюс ко всему надо убрать таймер на 50мс. Достаточно того, что вы забираете 10байт. Заберёт посылку, уйдет на новый цикл. Иначе, если частота следования данных чаще, будет забиваться входной буфер.
-
- interested
- Сообщения: 3
- Зарегистрирован: 22 ноя 2012, 10:56
- Версия LabVIEW: 11
- Контактная информация:
Re: Ошибка при передаче
В общем сам нашел свою ошибку. Оказалось, что я просто невнимателен.
За это спасибо. Помогло тоже. :)Плюс ко всему надо убрать таймер на 50мс. Достаточно того, что вы забираете 10байт. Заберёт посылку, уйдет на новый цикл. Иначе, если частота следования данных чаще, будет забиваться входной буфер.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение