Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Языки программирования в TRACE MODE 6 / Algorithm Programming Languages » Округление вещественного числа

   
Автор / Author Тема / Topic: Округление вещественного числа
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день, уважаемая техническая поддержка.
Возникли проблемы с вещественными числами.
Получаю данные в двух запросах CALL.ChGroupReq целую и дробную части. Объединение этих частей произвожу в программе путем сложения, но на выходе из программы данные искажаются.

Пример:
целая часть - 14098
дробная часть - 0,7398
после преобразования - 14098,7402

P.S. Тип целой части INT, а дробной и результата FLOAT.

Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
FLOAT по стандарту поддерживает только 6 значащих цифр.
Чтобы получить более высокую точность, надо использовать формат LREAL.
Такой результат можно сохранять в канале DFLOAT.

Надо иметь в виду, что архивирование такого канала будет осуществляться в формате FLOAT.

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Результат совсем не тот какой нужен.
 -

В программе пытался делать смещение дробной части умножением, но без успешно.
Может есть ещё какой нибудь способ объединить целую и дробную части числа?

Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Результат математически точен.

Формат его отображения в окне "Просмотр компонентов" жесткий.
Но на экране и в документе Вы можете задать нужный Вам формат.

Какими средствами Вы предполагаете получать исходные данные для программы?
Каковы метрологические характеристики источника данных и измерительного канала в целом?
Каким образом Вы собираетесь использовать результат "сложения"?
Насколько метрологически обосновано использование формата DFLOAT?

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Задал формат на экране и всё получилось.

Исходные данные получаю по ModBusRTU. Двумя функциями Rin_Word(4)(целая часть) и Rin_Float(4)(дробная часть).
Измерять собираюсь потребляемое тепло прибором ТСРВ-024М.
Для начала вывод полученного результата на экран АРМа, а в дальнейшем и запись в БД для анализа тепло потребления.
Коммерческий учет требует более точного измерения.

Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Тепловычислитель ТСРВ-024М, согласно его документации, измеряет количество теплоты с точностью +- 0.5%.
Это значит, что уже в целом числе 14098 погрешность составляет +- 70.
В этих условиях работать с "дробной частью" метрологически нет оснований.
При сдаче проекта метрологической экспертизе это будет признано некорректным.

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2