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

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
AlexChas
interested
interested
Сообщения: 9
Зарегистрирован: 14 дек 2010, 11:35
Версия LabVIEW: 2010
Откуда: Муром
Контактная информация:

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

Сообщение AlexChas »

С внешнего прибора поступает ацп...я его считываю и вот что в результате

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

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

Сообщение avnnn »

Viktor, большое спасибо! Убрал autoscale, всё стало нормально. А что такое контекстное меню, как его вызвать? И ещё попробовал протестировать vi, который Вы прикрепили, не смог его даже запустить. У меня в предыдущих программах всегда были настройки номера порта и baudrate. В ADAM_visa_send стоит порт COM1 и меняться не хочет. И что за address и command? Вижу, что на схеме прикручен значок каретки, наверное, должно бы мне как раз это помочь.
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение Viktor »

А что такое контекстное меню, как его вызвать?
Меню, вызываемое правой кнопкой мыши.
В ADAM_visa_send стоит порт COM1 и меняться не хочет.
ADAM_visa_send - это подпрограммка.
Вот пример:
ADAM.zip
(28.56 КБ) 421 скачивание
example.PNG
И что за address и command?
это адрес модуля ADAM и команда, посылаемая ему (протокол Advantech)
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение Viktor »

Ещё раз хочу подчеркнуть, что этот пример для протокола Advantech
avnnn
beginner
beginner
Сообщения: 37
Зарегистрирован: 24 сен 2010, 16:50
Версия LabVIEW: 2009
Контактная информация:

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

Сообщение avnnn »

Классно! Действительно, передает все с каретками. Я, правда, не знаком с этим интерфейсом, почитал про него немного, но до конца не понял. Тем не менее, данные передаются, это видно на графике. Неужели такой настройки (перевод каретки) нет для стандартного протокола?
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение Viktor »

Тебе нужно знать протокол для своего АЦП :dntknw:
avnnn
beginner
beginner
Сообщения: 37
Зарегистрирован: 24 сен 2010, 16:50
Версия LabVIEW: 2009
Контактная информация:

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

Сообщение avnnn »

RS-232 ))
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение Viktor »

RS-232 - это интерфейс,
а есть описание протокола обмена?
avnnn
beginner
beginner
Сообщения: 37
Зарегистрирован: 24 сен 2010, 16:50
Версия LabVIEW: 2009
Контактная информация:

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

Сообщение avnnn »

Добрый день! Мой протокол обменая называется USART/UART (я лично передаю, не тактируя). Но вообще я запутался , в чем отличие от RS-232. Практически всегда между этими понятиями стоит знак равенства. Или RS-232 - это железо, а протокол - это только к софту относится? Но ведь RS-232 тоже определяет порядок обмена... :think:
avnnn
beginner
beginner
Сообщения: 37
Зарегистрирован: 24 сен 2010, 16:50
Версия LabVIEW: 2009
Контактная информация:

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

Сообщение avnnn »

Ну вот, про меня забыли(( Victor, у меня практически всё получилось, помогите последними советами, тема не перестала быть актуальной. Спасибо!
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

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

Сообщение mzu2006 »

avnnn писал(а): Или RS-232 - это железо, а протокол - это только к софту относится?
В общих чертах, да. В идеале, железная имплементация не зависит от высокоуровнего протокола обмена и наоборот. Например, по RS232 можно пустить TCP/IP: http://en.wikibooks.org/wiki/Serial_Pro ... onnections .

Для сетевых коммуникаций ситуация с многоуровневостью подробно описана здесь: http://en.wikipedia.org/wiki/OSI_model

Резюме: да, протокол - это порядок обмена. Но есть протоколы нескольких уровней и все должны работать для обеспечения связи. т.е. RS232 - это протокол, обеспечивающий (в данном случае) связь 2-х RS232 устройств друг с другом. По RS232 теперь можно передавать команды. Совокупность этих команд - это протокол обмена следующего уровня. Вот этот то протокол нам и нужен.

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

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

Сообщение avnnn »

Да, спасибо, вроде понятно. Но остаётся главный вопрос, который я задавал. Мне нужна программа, которая передавала бы сообщения, проставляя в конце каретки. Программа Viktor'a - это практически готовый вариант того, что мне нужно. В ней надо поменять (как я понимаю) только один узел - ADAM_visa_port_open. Я, к сожалению, так и не понимаю, как это сделать. Я почему запутался с этими протоколами: в сети очень много программ для тестирования COM-порта, различные терминалы, простенькие программки, написанные для личного пользования ну и т.д. Практически все они делают то, что мне требуется, за исключением того, что почему-то ни одна из них не может проставить этот самый знак каретки. Если я пишу \r или OD, то сообщение просто так и передаётся (комбинация не воспринимается, как команда). При этом нигде авторы не пишут, что там за протокол используется. Повторюсь, я использовал USART - он посылает сообщения аналогично этим программам (к ним, кстати, относится и терминал Windows). Я всегда думал, что RS-232 и USART - это синонимы (поэтому-то последняя новость меня очень обескуражила=). В программе Victor'a по всей видимости надо поменять просто какие-то цифры для Visa-serial, потому что протокол этот (Advantage), действительно, довольно серьёзно отличается от USART. То есть на принимающей программе из сабжа я вижу, что данные передаются, но передаются они очень странно. Это пока за гранью моего понимания.
PS: Ещё раз благодарю за помощь.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

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

Сообщение mzu2006 »

Давай проясним терминологию. USART - universal synchronous-asynchronous receiver-transmitter - это микросхема реализующая RS232. RS232 - это название для набора стандартов описывающих передачу данных.

Если взглянуть на ADAM.vi и все подприборы, то там всё стандартно. для правильной записи может помочь, например, установка параметра VISA сессии Serial Settings:End Mode for Writes в "TermChar". ADAM_visa_send - добавляет не только /r но и $ в начае строки. Что именно нужно нужно добавлять - определяется высокоуровневым протоколом обмена.
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение Viktor »

Практически все они делают то, что мне требуется, за исключением того, что почему-то ни одна из них не может проставить этот самый знак каретки.
Чтобы не запутаться, включи Display style:
Display style.png
И, конечно, нужно правильно настроить конфигурацию порта (baud rate, termination char, parity, stop bits, flow control ит. д.)
avnnn
beginner
beginner
Сообщения: 37
Зарегистрирован: 24 сен 2010, 16:50
Версия LabVIEW: 2009
Контактная информация:

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

Сообщение avnnn »

Ох-хох. Конечно, надо мне сидеть, читать про каждый элемент и разбираться подробнее.
Victror, у Вас на картинке другой vi, нежели в старом приложении (ADAM). Я прикрепил скрины, такое впечатление, что на вашей схеме SubVi SEND заменён на свою схему. Но при этом, в нём пытаюсь найти свойство Display Styleю его там просто нет (см. скрин).
mzu2006, нажимаю на любую из сессий VISA (open, close и т.д.), в свойствах стоит только label. Где есть доступ к параметрам?
Вложения
ADAM.JPG
Display Style.JPG
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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