Протокол СТАРТ

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
AlexOskar
user
user
Сообщения: 95
Зарегистрирован: 05 июл 2016, 21:02
Репутация: 0
Версия LabVIEW: 12
Контактная информация:

Протокол СТАРТ

Сообщение AlexOskar »

Привет всем!
Снова попался прибор со своим собственным протоколом обмена. Устройство Сириус-2-В от Радиус Автоматика.
Обмен осуществляется через RS-485 по протоколу СТАРТ. И все с ним вроде хорошо, и работает стабильно, но столкнулся с одной проблемой - не могу правильно перевести значение из hex-строки ответа.
На дисплее прибора показывается значение мощности Р = 250 (колеблется вверх-вниз разумеется), кусок посылки от прибора, содержащий значение мощности такой: 56DO FFFF. Тоже самое для Q = 29 - СFF9 FFFF.
Все остальные значения переводятся нормально - соответствуют индикации прибора. В описании протокола указано, что это значение состоит из 4 байт, ответы подаются младшим битом вперед (описание протокола прилагаю). Опрос производится в режиме "Мониторинг".
Очень нужна помощь знатоков - мозг плавится!)) И что это за FFFF такие?
Вложения
Протокол Старт Сириус-2-В.doc
(506.5 КБ) 119 скачиваний

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3508
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Протокол СТАРТ

Сообщение dadreamer »

Как-то странно они пишут в своём мануале. В 5 определили посылку в 10 бит, в 6 обзывают то ли посылки, то ли блоки байтами. 1 байт >= 10 бит? :shok: Ну да ладно. Покажите полную команду и ответ. Полагаю, вы шлёте команду выполнения мониторинга (06 63 08 02 20 6D)?..

AlexOskar
user
user
Сообщения: 95
Зарегистрирован: 05 июл 2016, 21:02
Репутация: 0
Версия LabVIEW: 12
Контактная информация:

Re: Протокол СТАРТ

Сообщение AlexOskar »

ОК, все будет

AlexOskar
user
user
Сообщения: 95
Зарегистрирован: 05 июл 2016, 21:02
Репутация: 0
Версия LabVIEW: 12
Контактная информация:

Re: Протокол СТАРТ

Сообщение AlexOskar »

Прикладываю фрагмент
Length 6: 06 63 01 03 20 73
Length 100: 64 63 01 03 20 41 00 42 00 41 00 01 00 CE 02 6E 02 6E 02 6C 02 35 04 38 04 31 04 04 00 08 00 36 04 3A 04 49 04 00 00 D3 FF D1 FF EE FF 40 00 3F 00 EF FF 5A 01 06 02 15 01 D3 FD 95 FD 2F 00 45 00 33 04 80 03 A4 FD 3B FC 29 FE 68 00 31 04 7C 03 9B FD 1C FC 34 FE 9D FF 9B FF FE D0 FF FF 49 F7 FF FF 75

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3508
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Протокол СТАРТ

Сообщение dadreamer »

Скажу честно, я пытался, но у меня ничего не получилось. :cry: Видимо, здесь есть какая-то особенность. Или я что-то упустил. Кроме того, мне не совсем понятно до сих пор, какое должно в итоге получиться число. Какой диапазон мощности измеряет прибор? Я к тому, достаточно ли U/I16 (Word, 2 байта) или всё же нужен U/I32 (Int, 4 байта). Да и целое ли число? Есть ли знаки после запятой, сколько? Single/Double? Кроме того, мощность может быть и отрицательной.

Насчёт стартовых-стоповых битов можно не париться, полагаю. Это для работы UART требуется. В приёмник эти биты не попадают, так что то, что пришло ("нормальные" байты по 8 бит) - это вся необходимая информация.

Можете, конечно, снять несколько "снимков" показаний - значения на дисплее + содержимое посылки. Точно надо снять P=0, Q=0, дальше как получится. Хотелось бы верхние крайние, но не представляю, как это сделать. Ну, или можем подождать, пока кто-нибудь ещё из форумчан отпишется. Производителю также напишите.

Ответить

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