![]() |
Помогите преобразовать
Поставило руководство перед нами задачу сделать софт для учета отпущенных энер.ресурсов.
Подключение к Текону-17 -> разобрались. Опрос датчиков -> понятно сделали, Теперь конкретный пример: получить мгновенное значение с датчика ?3 посылаем команду 01 03 11, получаем ответ 84 5B 47 21 - это флоат формат,вот тут все и началось как мы его только не крутили не получается 11.4 градуса( а именно ее и показывает прога Телемост).Пробовали считывать разные показания ,они и близко рядом не стоят с тем что показывает Телемост. Вразумите пожалуйста. |
Помогите преобразовать
Формат представления плавающих чисел в ТЭКОН 10,17 описан в документе Теплоэнергоконтроллер ТЭКОН-17. Обмен по последовательному каналу. Руководство программиста.
T10.06.59 РД стр 56 р 6.2 Внутренний форматы данных ТЭКОН <A HREF="http://www.kreit.ru/files/t100659rd.pdf" TARGET="_blank">www.kreit.ru/files/t100659rd.pdf</A> |
Помогите преобразовать
srr, Есть у нас такая дока читали.
Вот мой пример согласно этой доки и разберем: имеем 845b4721 - 1 байт (84) порядок, убираем остается 5B4721 - 7 бит 2 байт знак числа, унас 5В это 01011101 - 7 бит равен нулю,значит число положительное. Преобразуем 5В4721 в десятичное (можно даже виндузным калькулятором) получаем 5981985 потом ставим порядок он равен 4 -> 5981.985 НУ БЛИЗКО к 11.4 градуса даже не подходит. |
Помогите преобразовать
К выше сказанному добавлю что для числа 11.4 до 11.5 должны получать с контроллера числа
XX116520 до XX118C30 судя по документации. |
Помогите преобразовать
Вы неверно интерпретирует термины "нормализования мантиса" и "порядок".
итак число в памяти представлено так: 84 5b 47 21 Тогда 5B4721h = 5981985(dec) =10110110100011100100001 - это дробная часть числа 0.10110110100011100100001 (bin) (23разряда) 0.10110110100011100100001 (bin) = (5981985(dec)) / (2 в 23 степени) = 5981985 / 8388608 = 0,71310818195343017578125 теперь перйдем к порядку - он равен 4h=84h-80h=4(dec) следовательно результат = 0,71310818195343017578125 * (2 в степени 4) = 0,71310818195343017578125 * 16= 11,4097309112548828125 |
Помогите преобразовать
srr, точно число как раз и было 11,409 .БОЛЬШОЕ СПАСИБО - смело ставлю себе и своим сослуживцам двойку по математике.
|
Текущее время: 07:10. Часовой пояс GMT +5. |
Powered by vBulletin® Version ?.?.?
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot