Сообщение создано: 19. 04. 2013 [12:54]
|
dell
Путин Краб
Создатель темы
Зарегистрирован(а) с: 09.04.2013
Сообщения: 28
|
Получаем данные по Modbus. Данные приходят в формате числа с плавающей запятой, 4 байта. Но при чтении с регистров, RI получаем на выходе неверные данные. Приходящие данные отслеживаем в отчетах. Например пришло число 16-ричное 43 1F D1 50, что соответствует 159,8 . Однако при выводе его без обработки элементом anShow (или же посмотрев значение атрибута параметра )число 17183. Как его преобразовать в 159,8? Можно это конечно сделать в обработке: разбить на биты, посчитать, но опять же как 17183 превратить в 16-ричное?
Пробовали с суффиксами, все равно не те данные.
|
Сообщение создано: 19. 04. 2013 [13:25]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"dell" wrote:
Данные приходят в формате числа с плавающей запятой, 4 байта. Но при чтении с регистров, RI получаем на выходе неверные данные. Приходящие данные отслеживаем в отчетах. Например пришло число 16-ричное 43 1F D1 50, что соответствует 159,8 .
Да, это стандартный формат IEEE. С суффиксом "_f" должно работать.
"dell" wrote:
Однако при выводе его без обработки элементом anShow (или же посмотрев значение атрибута параметра )число 17183. Как его преобразовать в 159,8? Можно это конечно сделать в обработке: разбить на биты, посчитать, но опять же как 17183 превратить в 16-ричное?
Из скрипта можно собрать функцией floatMergeWord(). У меня она для "43 1F D1 50" корректно работает.
"dell" wrote:
Пробовали с суффиксами, все равно не те данные.
Пробуйте ещё суффикс "_f" — должно работать. Например, порядок регистров поменяйте.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 22. 04. 2013 [06:42]
|
dell
Путин Краб
Создатель темы
Зарегистрирован(а) с: 09.04.2013
Сообщения: 28
|
Не работает. Вот взгляните, может где-то тут ошибка.
Запрос и ответ:
Ответ пришел "41 0e b6 70", что соответствует числу 8.9195, и является правильным, т.к. манометр показывает это число.
Запрос атрибута параметра:
Значение параметра:
Другое значение.
|
Сообщение создано: 22. 04. 2013 [06:58]
|
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
|
RI_f:1,0:r:press:press не пробовали? Ещё может быть R_f:1,0:r:press:press и R_f:0,1:r:press:press попробовать.
[Сообщение редактировалось 1 раз(а), в последний раз 22.04.2013 в 06:58.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Сообщение создано: 22. 04. 2013 [07:33]
|
dell
Путин Краб
Создатель темы
Зарегистрирован(а) с: 09.04.2013
Сообщения: 28
|
Спасибо! Получилось при RI_f:1,0:r:press:press.
|