PDA

Просмотр полной версии : сетевой протокол овен по Rs-485 получение значения регистра



Anatol_rus
20.10.2011, 16:17
Помогите не могу понять в чем косяк.
Имеется ПИД-регулятор ТРМ-101(адрес прибора в сети 164). Настройки и связь есть. Но возникает вот какая проблема:
Отсылаю ему запрос на чтение уставки SP,которая равна 7.86,(в руководстве - http://www.owen.ru/uploads/list_param_trm101_v02.0021.zip) адрес регистра - 9107, строка запроса такая :

#QKHGPHGNPPLL\r
В ответ приходит следующее :

#QKGJPHGNKGVROLTHIS\r

Переводя из символьного вида получаем(без начала и конца) :

A4 03 9107 40FB85 D12C

Откуда берем 3 байта данных, вот в этих 3 байтах данных и проблема, по формуле рассчета значения - (-1)^S * 10^(-Exponent) * Mantissa, мы не получим искомой величины 7.86.
Так как, число 7.86 в двоично-десятичном виде должно выглядеть, как :

0x100786, а в двоичной форме

0x1312.

Но при этом в конфигураторе, отображается нужная мне величина, вопрос, как он смог преобразовать
40FB85 в 7.86 преобразовать???

Вот лог запроса от конфигуратора к ПИД-регулятору :
http://rghost.ru/26380851/image.png

Вопрос также возникает, почему при чтении одного регистра, идет две операции записи/чтения в шину RS485?

EFrol
23.10.2011, 17:53
ТРМ101 - оперативный параметр SP* - HASH-код 9107 - тип данных F24
в конце таблицы смотрим, что "F24 – тип float 24 – 3 байта"

В официальном описании смотрим пункт 5.1.1:

5.1.1 Формат числа с плавающей точкой

Формат числа с плавающей точкой - это просто стандартное 4-байтовое плавающее число в IEEE-формате, или усеченное 3-х байтовое (PIC-формат) - то же, что и IEEE, но с отброшенным младшим байтом мантиссы. Если известно, что формат плавающий, то усеченный и полный IEEE-форматы можно различить по битам размера информационного поля. Внутренние поля представлены только в двоичном, но не в двоично-десятичном виде.

Остается выяснить что такое IEEE-формат! :D

Anatol_rus
14.11.2011, 10:19
ТРМ101 - оперативный параметр SP* - HASH-код 9107 - тип данных F24
в конце таблицы смотрим, что "F24 – тип float 24 – 3 байта"

В официальном описании смотрим пункт 5.1.1:

5.1.1 Формат числа с плавающей точкой

Формат числа с плавающей точкой - это просто стандартное 4-байтовое плавающее число в IEEE-формате, или усеченное 3-х байтовое (PIC-формат) - то же, что и IEEE, но с отброшенным младшим байтом мантиссы. Если известно, что формат плавающий, то усеченный и полный IEEE-форматы можно различить по битам размера информационного поля. Внутренние поля представлены только в двоичном, но не в двоично-десятичном виде.

Остается выяснить что такое IEEE-формат! :D
Давно уже все сам сделал, если что вот ссылка на стандарт float в русском переводе - http://www.softelectro.ru/ieee754.html