PDA

Просмотр полной версии : Вопросы по передаче/приёму через ОВЕН



Коротенко
28.08.2008, 01:53
Создаю ПО в LabVIEW для работы с МВА8 по протоколу ОВЕН:)

А можно ли снимать оцифрованное число с АЦП в МВА8 вместо уже обработанного значения, допустим, той же самой температуры?

Коротенко
29.08.2008, 06:51
попробовал отправить запрос #HGHGONOKVKHN<CR>
HG - на 16 порт
H 1-й вход МВА,+ бит запроса
G - поле данных уровня представления пустое (МОЖЕТ ТАМ ЧТО_ТО ДОЛЖНО БЫТЬ?)
ONOK - HASH код команды rEAD (8784)
VKHN - crc

на приём пришло #HGGMONOKKHSONKRMUMQIOTNU<CR> которое гласит:
HG - с 16-го порта
G с 1-го входа МВА, без бита запроса
M - поле данных уровня представления содержит 6 байт (Т.Е. ВСЁ-ТАКИ Я ПРАВИЛЬНО ПОСЛАЛ ЗАПРОС, ВЕДЬ 4+2=ВЕЛИЧИНА+ВРЕМЯ)
ONOK - HASH код команды rEAD
KHSONKRMUMQI - данные из МВА
OTNU - crc

KHSONKRM - это величина тепературы, помогите её правильно дешифровать, должно быть около 23,... градусов
UMQI - относительное время измерения, делим на 100 и получаем время в секундах до сотых долей

подскажите перевод KHSONKRM в численное значение:eek:
KHSONKRM разбиваем на KH SO NK RM, первая пара - целое значение, вторая - дробное значение
K H , S O из посылки
0100 0001 , 1100 1000 BIN
4 1 , С 8 HEX
65 , 200 DEC


НУ В УПОР НЕ ВИЖУ ГДЕ ЗДЕСЬ ДВАДЦАТЬ С ЛИШНИМ ГРАДУСОВ :confused: :confused: :confused:

PC_DOS
29.08.2008, 10:16
Температура передается в формате float, а не с фиксированной точкой.

Ваш ответ в ASCII "KH SO NK RM" содержит 4 байта "41 C8 74 B6", которые соответствуют температуре ~25.057 градусов.

прикрепляю пример перевода чисел на LabView

Коротенко
02.09.2008, 06:06
За программу большой сенкс, закинул к себе даже без обработки, всё классно!

Но есть ЕЩЁ проблема.
через конфигуратор настроил первый и четвёртый вход на датчик температуры, поставил два одинаковых, считывание температуры в конфигураторе и скаде идёт нормально с обоих датчиков,
через LabVIEW только с первого входа, с чётвёртого - НИЧЕГО, судя по поведению LabVIEW запрос уходит - А НАЗАД НИЧЕГО, как-будто в сети нет девайса на который идёт запрос

вот запрос на первый вход (пробелы - чисто условные и не привожу символов начала и конца) HG H G ONOK VKHN

вот запрос на четвёртый вход HG N G ONOK LPOP

разница в запросах только в третьем символе и CRC
H=000 1 - первый вход (индексация с нуля) + бит запроса
N=011 1 - четвёртый вход + бит запроса

попробовал поменять 8-битный адрес на 11-битный - не помогло
попробовал добавить номер входа в базовый адрес - не помогло

Мож я где-то ошибся, что-то упустил?

PC_DOS
02.09.2008, 09:58
Для запроса температуры с 4 входа посылка должна выглядеть вот так #HJHGONOKRRHL.

Коротенко
03.09.2008, 01:52
#HJHGONOKRRHL.ТОЧНО!
уже под конец рабочего дня наконецто поставил СОМ PORT МОНИТОР и увидел это!
как оказалось у меня была путанница которую нельзя заметить при работе только с первым входом МВА
я считал что за номер входа отвечает "МЛ.часть аздеса узла сети", а оказалось что "номер входа нужно прибавлять к "СТ. части адреса узла сети" "

Филоненко Владислав
03.09.2008, 09:47
Не так. Просто адрес может быть 11 и 8 битным, у Вас 8 битный, и три младших байта не используются

Коротенко
05.09.2008, 13:01
Не так. Просто адрес может быть 11 тибитным и три младших байта не используются
а когда используются?
и в принципе для чего? ведь RS485 держит только 32 девайса:confused:

Филоненко Владислав
05.09.2008, 14:30
Бывают ещё и RS485 усилители