PDA

Просмотр полной версии : Опрос ТРМ 202



Олег_Хабаровск
24.06.2009, 12:00
Здравствуйте.
При опросе прибора ТРМ202 возникла следующая проблема
Посылаем запрос #GKHGROTVUMPS
(0 4 1 0 B 8 D F E 6 9 C)
B8DF – Измеренное значение входной величины или код ошибки ( PV)
E69C – CRC
Получаем ответ #GKGJROTVKHKOGGKTNJ
( 0 4 0 3 B 8 D F 4 1 4 8 0 0 4 D 7 3)
0 4 – старшая часть адреса узла сети
0 3 – младшая часть адреса узла сети
B 8 D F – локальный идентификатор
4 1 4 8 0 0 – поле данных уровня представления
4 D 7 3 – контрольная сумма CRC
Расчёт ведём по формуле , приведённой в документации . Знак значения совпадает. Само значение при расчёте тоже изменяется , но в другой пропорции
температура,С° на приборе Ответы, полученные с прибора Результаты полученные по формулам описанным в протоколе
-50С° #GKGJRILNSIKOHQVNQN расчет=-14,953С°
-40С° #GKGJRILNSIIGJJKTRL расчет=-13,9315С°
-30С° #GKGJRILNSHUVQKHIJI расчет=-12,6884С°
-20С° #GKGJRILNSHPVVQTTUM расчет=-10,649С°
-10С° #GKGJRILNSHIGHPPMRP расчет=-7,3753С°
0С° #GKGJRILNRSTGVIGVRJ расчет=-839,922С°
10С° #GKGJRILNKHIGQKOVQH расчет=7,3892С°
20С° #GKGJRILNKHQGHTGJPK расчет=10,6525С°
30С° #GKGJRILNKHVGRHKRMT расчет=12,7153С°
40С° #GKGJRILNKIHVUOOSSO расчет=13,924С°
50С° #GKGJRILNKIKOITJTMK расчет=14,9549С°
60С° #GKGJRILNKIMVTPUSMK расчет=15,9705С°
70С° #GKGJRILNKIOSGUPPMQ расчет=16,6926С°
80С° #GKGJRILNKIQGGNRTIV расчет=17,2039С°
90С° #GKGJRILNKIRKGGJNGT расчет=17,7152С°
100С° #GKGJRILNKISOGLOPLK расчет=18,2277С°
Может кто-нибудь сталкивался с данной проблемой. Помогите рассчитать . Хотя бы одну строку из таблицы.
Заранее спасибо.

Дмитрий Егоренков
24.06.2009, 15:12
интересно, что это за документация. можно делать так (для x86):



void unpackFloat24(unsigned char* data, size_t dataSize, float* value)
{
unsigned char* p = (unsigned char*)(value);

assert(data);
assert(dataSize == 3);
assert(value);

p[0] = 0;
p[1] = data[2];
p[2] = data[1];
p[3] = data[0];
}


PS в трм202 используется 5.1.1 Формат числа с плавающей точкой, а не 5.1.2 Знаковое число с односторонней десятичной точкой

Valeno
17.07.2009, 05:33
Полностью согласен

erquelle
15.02.2011, 17:38
Я работаю с прибором ТРМ 202 по протоколу ОВЕН. Реализация протокола была взята http://owen.ru/forum/showpost.php?p=35715&postcount=1. При установке значений прибор работает нормально, но при запросе значений параметра прибор не отвечает. Работоспособность прибора проверялась при помощи конфигуратора - прибор исправен. Пример запроса чтения скорости протокола "#GGHGRNMGUPJH\xD" .
Address = 0, Addrlen=8, dataSize=0, hash=0xb760, request=1.
Подскажите, пожалуйста, почему прибор может не отвечать!

Илья Глан
21.02.2011, 16:30
если адрес правильный, прибор должен лампочкой моргнуть и что-нибудь ответить, хотя бы ошибкой. Не понятно, как запись работает, а чтение нет. Может, вы сначала скорость меняет, а потом пытаетесь ее считать? Расскажите, что вы делаете и в какой последовательности.

erquelle
09.03.2011, 13:36
Адрес правильный и прибор моргает лампочкой, но не отвечает. Скорость не изменяется. Последовательность действий... формируется запрос на чтение скорости протокола и отправляется прибору
name2id("bPS ", 4, id);
hash = id2hash(id);

pf.address = 0;
pf.addrLen = 8;
pf.dataSize = 0;
pf.hash = hash;
pf.data[0]=0;
pf.request = 1;

frameSize = packFrame(&pf, frame, maxFrameSize);

packFrameToAscii(frame, frameSize, frameAscii, maxAsciiFrameSize);


write(fd, frameAscii, strlen(frameAscii));

Предварительно никакой инициализации не проводиться!!! (нигде не написано, что она нужна)

В качестве эксперимента прибор был подключен к конфигуратору - прибор работал. Далее конфигуратор был запущен с этими же параметрами, а порт, на который отправлялись данные, прослушивался программой. Были сняты следующие данные "..рр......яє°°±°Ж°Ж°°°°±°І°°°±°Г.є°°±°Ж°Ж°°°°±°І°° °±°Г.є°°±°Ж°Ж°°°°±°І°°°±°Г..#G GHGTMOHIHIM.#GGHGTMOHIHIM.#GGHGTMOHIHIM.#GGHGTMOHI HIM.. "
При отправки этих данных через программу прибор не ответил!!!

Подскажите, пожалуйста, почему прибор может отвечать на запросы конфигуратора и не отвечает на запросы программы!!!

erquelle
09.03.2011, 13:42
Прибор работает через конфигуратор, только в режиме "преобразование интерфейса" - Авто. Нигде не удалось найти, что это значит и может ли это как-нибудь повлиять на работу программы?

Илья Глан
11.03.2011, 12:14
Преобразователь интерфейса авто - это автоматическое опознавание режима прием-передача. Типично для всех современных преобразователей rs-485. Ранее использовались преобразователи, в которых надо было переключать линию с помощью сигналов DTR или RTS.
а какой преобразователь rs-485 у вас?

Илья Глан
11.03.2011, 13:04
может быть у вас по в качестве основного протокола стоит модбас? Конфигуратор с этим разбирается и переключает прибор на ОВЕН.