Простой пример работы с последовательным портом

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение Eugen Graf »

А ты лучше тогда используй Event Structure.

И да, ещё вопрос - как ты измеряешь время? Ты отсылаешь штемпель времени и сравниваешь с тем при получении?
Аватара пользователя
skyAlex
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 окт 2009, 11:13
Версия LabVIEW: 2009
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение skyAlex »

eg писал(а):А ты лучше тогда используй Event Structure.
Спасиб, будем пробовать
eg писал(а):И да, ещё вопрос - как ты измеряешь время? Ты отсылаешь штемпель времени и сравниваешь с тем при получении?
Время приёма чтоль? хех...+-1сек, считал вслух)))

вобщем у меня такое ощущение что инфа с начало пишется куда то в буфер винды, а потом уже сливается в ком порт...
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение Eugen Graf »

Нет, ещё раз повторяю, разберись с Termination Character.
Аватара пользователя
skyAlex
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 окт 2009, 11:13
Версия LabVIEW: 2009
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение skyAlex »

блин....Termination Character я так понял как флаг конца сообщения, правильно? может быть либо английской буквой от A до D, или цифры. Чтобы я не ставил, всё равно получается задержка.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение Eugen Graf »

Нет, нет, ты неправильно понял.
0x0A
0x0D
это значения "символов" конца строки по таблице ASCII.
Аватара пользователя
skyAlex
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 окт 2009, 11:13
Версия LabVIEW: 2009
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение skyAlex »

блин...это моя проблема, часто выражаю свои знания не полностью...да, про 0x0A,0x0D я понял...там это очевидно. я не понимаю как этот параметр может влиять на задержку приёма.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение Eugen Graf »

VISA Read считывает заданное количество байт (в нашем примере это 100) или же прекращает считывание раньше если в строке попадается Termination Character и выдаёт, всё считанное.
Или же третий вариант, но он нас пока не сильно интересует - это таймаут, указанный при конфигурации.
Confocal
assistant
assistant
Сообщения: 104
Зарегистрирован: 15 авг 2008, 11:55
Версия LabVIEW: 8.5
Откуда: Россия, Московская область
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение Confocal »

Вот тоже не до конца разобрался. Допустим нужно в цикле посылать последовательно в порт команды, но чтобы запись второй команды не происходила пока не считается ответная строка первой команды. Напрашивается ответ: фиксировать <CR> , но как? Или организовывать прерывания!?
Confocal
assistant
assistant
Сообщения: 104
Зарегистрирован: 15 авг 2008, 11:55
Версия LabVIEW: 8.5
Откуда: Россия, Московская область
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение Confocal »

По поводу flow control. Конфигурируется ли порт по DSR/DTR и RTS/CTS или только по отдельности?
avnnn
beginner
beginner
Сообщения: 37
Зарегистрирован: 24 сен 2010, 16:50
Версия LabVIEW: 2009
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение avnnn »

Уважаемый Eugen Graf!
Попробовал вашу программу (точнее, программы). Всё ок, всё работает. Но вот как только заменяю программу-генератор на другой "посыльщик" возникают проблемы. Объясню. В идеале мне нужна программа, которая будет рисовать график информации (если так можно выразиться), приходящей на com. В принципе, как раз то, что делает ваш "приёмщик". Но вот беда, пробовал подключать терминал: Graph почему-то вместо того, чтобы рисовать, начинает ещё вдобавок выдавать цифры (и это в том же окне!). Выглядит очень странно, через какое-то время вся картинка забивается цифрами и уже ничего не видно. Кроме того, развёртка в этом случае выглядит очень странно. В моём представлении, если я ничего не посылаю должен отображаться некий постоянный уровень, если послал - соответственно некоторый другой. В чём проблема? Настройки graph?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение Eugen Graf »

Скорее всего не совпадает формат отправляемых и принимаемых данных. В каком виде отправляются данные?
avnnn
beginner
beginner
Сообщения: 37
Зарегистрирован: 24 сен 2010, 16:50
Версия LabVIEW: 2009
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение avnnn »

В каком виде.. Хм. Ну просто включил на компьютере-посыльщике терминал (не виндосовский, но очень похож, просто чуть поудобнее) и посылаю автоматически какое-нибудь простое число (0, 1, 2) раз в одну ms. В принципе, всё нормально более или менее выводится, но эти цифры дурацкие лезут. И если вручную посылаю число (или автоматически, но с низкой частотой), то графика не видно :think:
avnnn
beginner
beginner
Сообщения: 37
Зарегистрирован: 24 сен 2010, 16:50
Версия LabVIEW: 2009
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение avnnn »

Я мог бы скрин выложить, но чего-то не соображу, как картинку прикрепить
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение alexander756 »

avnnn писал(а):Я мог бы скрин выложить, но чего-то не соображу, как картинку прикрепить
я делаю так: жму `предпросмотр`, а потом под окном ввода текста появляется вкладка `Добавить вложения` и вней уже выбираю файл
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Простой пример работы с последовательным портом

Сообщение Eugen Graf »

Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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