HEX команда

Простейшие вопросы в области инженерной разработки
Ответить
Filato
interested
interested
Сообщения: 4
Зарегистрирован: 14 май 2016, 19:20
Версия LabVIEW: 11
Контактная информация:

HEX команда

Сообщение Filato »

Добрый день!

Прошу Вашей помощи.

Есть "самодельный" прибор с которого надо считать данные. Прибор подключен через Nport 5450I. При работе через программу .exe производителя все работает.
Сom-порты от Nportа также видно в NIMAX. Необходимо установить связь с данным "самодельным" прибором через COM1. Для этого требуется подать следующую команду на прибор, состоящую из 13 байтов: 0с 81 00 00 00 11 00 00 00 00 01 00 00 . После чего необходимо получить ответное сообщение такой же длины в течение не более 100 мсек.

Что-то явно делаю не так.

Заранее благодарю за помощь!
Вложения
1
1
Аватара пользователя
dadreamer

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

Re: HEX команда

Сообщение dadreamer »

 
Вложения
2016-05-14_21-51-23.jpg
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: HEX команда

Сообщение Blackman »

... требуется подать следующую команду на прибор, состоящую из 13 байтов: 0с 81 00 00 00 11 00 00 00 00 01 00 00 . После чего необходимо получить ответное сообщение такой же длины в течение не более 100 мсек.
Вложения
VISA Instrument Response.PNG
VISA Instrument Response.PNG (9.15 КБ) 4200 просмотров
Filato
interested
interested
Сообщения: 4
Зарегистрирован: 14 май 2016, 19:20
Версия LabVIEW: 11
Контактная информация:

Re: HEX команда

Сообщение Filato »

dadreamer и blackman спасибо за ответы!

dadreamer, данные манипуляции с выбором HEX были проведены до момента введения и подаванния команды (см. рисунок 1, приложенный к предыдущему моему сообщению). Возможно я что-то еще забыл?

Blackman, спасибо, немного модифицировал программу. Ответное сообщение должно прийти быстрее 100 мсек, поэтому задержку не ставил. Однако внесенные данные изменения не принесли пока результата (см. рисунок 2).
РИсунок 2
РИсунок 2
Рисунок 2.1
Рисунок 2.1
Безымянный3.png (5.27 КБ) 4186 просмотров
Только что нашел в программе производителя дампы, которые подаются и приходят в ответ (см. рисунок 3). Может быть я как-то не правильно формирую команду в HEX? В дампах команда разделена по двум числам, в то время как подаваемая мной команда по четырем.
Рисунок 3
Рисунок 3
Безымянный1.png (7.42 КБ) 4186 просмотров
Аватара пользователя
dadreamer

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

Re: HEX команда

Сообщение dadreamer »

Filato, есть несколько вопросов:
1) какой терминатор используется в протоколе и верно ли он настроен в вашей программе?
2) в дампе строка 12 байт, а не 13... так и должно быть?..
3) команда, отправляемая вами, и команды в дампе отличаются; верно ли соблюдена последовательность "общения" с прибором?
Filato
interested
interested
Сообщения: 4
Зарегистрирован: 14 май 2016, 19:20
Версия LabVIEW: 11
Контактная информация:

Re: HEX команда

Сообщение Filato »

dadreamer, заранее прошу прощения за неточности в первичном описании и мою неосведомленность.

1. подскажите, пожалуйста, что такое терминатор? если речь идет о настройках интерфейса, то тут дело следующее. Исходя из краткого описания работы "самодельного" устройства: "обмен между ПК и устройствами осуществляется пакетами переменной длины по шине RS485". Для интерфейса rs485 необходимы следующие настройки: "скорость - 57600, бит - 8, контроль четности - нет, стоповые биты - 2, управление потоком - нет, представление информации - безнаковое 8-ми разрядное число". Следует еще раз отметить, что сам прибор подключается по следующей через Ethernet -> Nport (определяемый Com-портом) - > прибор. Программа производителя работает по такой схеме без сбоев.

2. Все верно, ошибка в описании.

3. Команды на рисунках 2.1 и 3 совпадают, поэтому вероятнее всего последовательность мною выполнена верна. Полный скрин обмена данных через программу производителя прилагаю (рисунок 4).
Безымянный_4.png
Безымянный_4.png (10.87 КБ) 4180 просмотров
Аватара пользователя
dadreamer

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

Re: HEX команда

Сообщение dadreamer »

Filato писал(а):подскажите, пожалуйста, что такое терминатор?
Терминатор (терминальный байт) - символ, благодаря которому драйвер VISA определяет конец строки. Может использоваться как для приёма данных, так и для отправки. Использование терминального символа облегчает работу по последовательному интерфейсу, так как не приходится периодически проверять количество байт в порту, считывать эти байты и "склеивать" результирующие данные.
Вам нужно уточнить, поддерживается ли вашим устройством работа по терминатору, и если да, то чему он соответствует (по умолчанию для VISA Configure Serial Port терминатор активирован и равен 0xA = \n = Line Feed = LF).
Filato писал(а):Для интерфейса rs485 необходимы следующие настройки: "скорость - 57600, бит - 8, контроль четности - нет, стоповые биты - 2, управление потоком - нет
Почему же вы не выставили эти настройки для :vi: VISA Configure Serial Port?
Filato писал(а):Программа производителя работает по такой схеме без сбоев.
Тогда попробуйте сперва добиться получения ответа от прибора в терминале, например, NI MAX, а потом, когда всё получится, переходите в :labview: .
Filato
interested
interested
Сообщения: 4
Зарегистрирован: 14 май 2016, 19:20
Версия LabVIEW: 11
Контактная информация:

Re: HEX команда

Сообщение Filato »

dadreamer, большое вам спасибо за помощь и извините за глупость. все получилось после изменения скорости передачи данных и изменения стоповых бит.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: HEX команда

Сообщение Blackman »

Для виртуального COM-порта по шине RS485, согласно документации на терминал (NPort), требуется программное управление потоком XON/XOFF. Это хорошо видно из дампа данных обмена: 0B (11) - XON character, 0D (13) - XOFF character.
Ответить

Вернуться в «Для чайников»