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