Добрый день!

Уважаемые профи, нужна ваша помощь в решение задачи, реализовать нужно на delphi.

Задача такая:

Программа работает через COM-порт с расходомером.

После запроса в ответ приходит набор байт.

В HEX ответ выглядит так: BB D2 C5 3E 14 5E 26 3E 78 42 43 00 FE 7A 08 00 03 00 55 F9

Нужно раскодировать этот ответ и получить значения расхода, объема и времени.

В идеале должны быть всего одна функция, которая будет возвращать необходимые значения

Нужна только расшифровка ответа!

Пишите по срокам и стоимости работы.

Из документации от производителя расходомера есть только это:

запрос текущих значений у прибора ЭХО-Р 02: AA 02

ответ: 04 47 3C 3E 13 A1 AF 3C 00 46 04 00 E0 7E 00 00 02 00 FF DD

значение расхода занимает с 5 по 8 байты: 13 A1 AF 3C

поскольку многобайтные коды передаются младшим байтом вперед, то переводим ответ в нормальную последовательность: 3C AF A1 13

в двоичном виде: 0011 1100 1010 1111 1010 0001 0001 0011

вычисляем мантиссу: 010 1111 1010 0001 0001 0011 / 111 1111 1111 1111 1111 1111 111 = 0,047

показатель степени: 111 1001 - 111 1111 = -6

расход: 2 ^ -6 * (1+0,047) = 0,0163 куб.м/сек или 58,68 куб.м/час

значение объема занимает с 9 по 12 байты: 00 46 04 00, множитель находится в 17 байте: 02

поскольку многобайтные коды передаются младшим байтом вперед, то переводим ответ в нормальную последовательность: 00 04 46 00

в десятичном виде: 280064

множитель: 10 ^ (02 - 3) = 0,1

объем: 280064 * 0,1 = 28006,4

значение времени учета занимает с 13 по 16 байты: E0 7E 00 00

поскольку многобайтные коды передаются младшим байтом вперед, то переводим ответ в нормальную последовательность: 00 00 7E E0

в десятичном виде: 32480 мин или 541 час 20 мин

код неисправности находится в 18 байте: 00,

что говорит об исправном приборе. Расшифровка кодов неисправности приведена в руководстве по эксплуатации.

15 лет назад
ITProf
38 лет
18 лет в сервисе
Был
11 лет назад

Выбранный исполнитель

ascar
Аскар 
45 лет
19 лет в сервисе
Был
12 лет назад
15 лет назад
$50
5 дней
Аскар - профи, быстро и качественно сделал нужную функцию, выражаю ему огромную благодарность.
Задача поставленна корректо. Оплату получил оперативно. Всем советую!

Заявки фрилансеров

ascar
Аскар 
45 лет
19 лет в сервисе
Был
12 лет назад
15 лет назад