This is topic Double Float 2 in forum Редактор проекта TRACE MODE 6 / at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/32/t/000095.html

Posted by Путинцев Н.В. (Участник № / Member № 1093) on :
 
Ниже, в теме «Double Float», Вы отвечали: «Принято к рассмотрению - похоже, что это несоответствие форматов при вводе значения, оно интерпретируется как Float а не Double». В новом релизе 6.04 похоже ничего не изменилось, вывести на экран 12 цифр тоже не возможно. [Недоумение / Confused] В справке записано: «LREAL (double) – вещественное число (8 байт) (максимальное значение 1.7976931348623158e+308)». Объясните, пожалуйста, как это число вывести на экран? [Неодобрение / Frown] Пользователи! Кто нибудь работает с большими числами? Как вы их выводите на экран? [prey / молящийся]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вывод 12 и больше цифр осуществляется даже при нескольких аргументах.
При преобразовании числа в экспоненциальную форму представления может возникнуть некоторая погрешность отображения.
Есть некоторая порешность в функции ввода с клавиатуры. Но это отдельный вопрос.
Мы готовы проверить Ваш проект, если Вы пришлете его с комментариями на адрес техподдержки.
 
Posted by Путинцев Н.В. (Участник № / Member № 1093) on :
 
Ошибка аргументов LREAL касается прошлого релиза, в 6.04 этого эффекта нет. А вот как вы выводите 12 цифр не знаю. Если поставить ГЭ «Текст» формат Float, то выводится 12 цифр, но округление происходит на 8 цифре. Если поставить формат «По умолчанию» - округление происходит уже на 7 цифре. Я думаю Вы понимаете, что нам надо не просто выводить цифры на экран, а выводить их с точностью до 12 знака (реально надо больше). Ввод с клавиатуры обладает теми же погрешностями, что и вывод. Поэтому в тестовом проекте число 123456789.123 формируется в программе и передается в канал Double_FLOAT. Реальное значение этого канала выводится на экран. Все очень просто. На экране мы видим число –
1.234568е+008 (формат По умолчанию) или 123456792.000 (формат float). На всякий случай высылаю проект на адрес техподдержки.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Речь идёт о том, что есть погрешность ввода с клавиатуры. Эта погрешность будет исправлена в ближайшем релизе. Вывод же осуществляется корректно (если не задавать значение с клавиатуры). Это можно проверить создав генератор сигнала и разделив его выходное значение на 10 в 12-ой степени.
 
Posted by Путинцев Н.В. (Участник № / Member № 1093) on :
 
Не совсем понятно, как это у Вас "Вывод же осуществляется корректно". Я Вам привел конкретный пример, где нет ввода с клавиатуры, выслал проект. Разве корректно вместо одного значения выводить другое? Я сомневаюсь, что у Вас на экране в предложенном примере выводится именно число 123456789.123. Так в чем же дело?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Да, действительно, существует погрешность в отображении (и в вводе) больших чисел.
Ошибка внесена в базу исправлений и будет исправлена к следующему релизу.
Спасибо.
 
Posted by Путинцев Н.В. (Участник № / Member № 1093) on :
 
Обнаружено еще одно тонкое место. Оказывается, «большие числа» (333333.333) не только не выводятся на экран, но и не проходят между каналами. Причем между каналами Duoble_FLOAT! Это происходит и в контроллерах WinCon и в RTM. При привязке каналов Реальное_канал_1 –> Входное_канал_2 во второй канал попадает не точное значение (333333.344). Если передачу данных между каналами осуществлять при помощи программы, то этого не происходит. Все мониторы 6.04.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Спасибо за информацию. Каналами DF планируем занятся комплексно.
 
Posted by Путинцев Н.В. (Участник № / Member № 1093) on :
 
Похоже, в новом релизе Вы победили вывод чисел двойной точности (LREAL) на экране РТМ. Причем сейчас данные не только выводятся на экран, но и приходят с микро РТМ без искажений! Однако появилась (или осталась?) проблема с выводом таких чисел на экране микро РТМ. Если на графической панели микро РТМ ГЭ «Текст» задать формат «по умолчанию», то число выводится в экспоненциальной форме. Если же выбрать любой другой формат (например %.3f), то выводится абсолютно другое значение, хотя в РТМ приходит то, что нужно. Все РТМ – 6.05!
 
Posted by Путинцев Н.В. (Участник № / Member № 1093) on :
 
Уважаемая AdAstra, есть ли какие-нибудь соображения по упомянутой проблеме?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Действительно, подтверждаю наличие данной ошибки с выводом на графическую панель подобного числа. Будем исправлять.
 
Posted by Путинцев Н.В. (Участник № / Member № 1093) on :
 
Опять обнаружились проблемы с Duoble_FLOAT. Значения каналов, связанных с нулевым источником, выводятся на экран как REAL. Это, скорее всего, связано с тем, что атрибут «Значение» нулевого источника, к которому привязан канал, имеет тип REAL. Изменить его нельзя. Привязка к нулевому источнику тоже нужна для синхронизации каналов резервного узла. Значит опять «прощай Duoble_FLOAT»? Резервирование узлов контроллеров в ТМ6 на данный момент не работает (будет ли когда- нибудь работать не знаю), поэтому пока можно отключить нулевой источник. А как быть, если резервирование будет исправлено?
 
Posted by Майборода Алексей (Участник № / Member № 1701) on :
 
Что скажите по данному вопросу?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В диагностике Вы правы.
Пока ошибка не будет исправлена, можно порекомендовать не использовать атрибут ВХОД у этих каналов, работать только через РЕАЛЬНОЕ значение (например, использовать процедуру трансляции, которая не использовала бы атрибуты ВХОД и АППРАТНОЕ).
Можно также убрать подключение к "0-му Источнику". Но тогда при организации синхронизации надо управлять ПОДКЛЮЧЕНИЕМ этих каналов с помощью Вашей прикладной программы.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2