Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: troynik77 от 25 Апреля 2020, 00:10:47

Название: Экспоненциальное отображение малых величин
Отправлено: troynik77 от 25 Апреля 2020, 00:10:47
Доброго времени суток! Не могу победить проблему отображения малых величин в экспоненциальном виде:
имеется аналоговый вход, на который приходит 0-10В значения вакуума. После логарифмического преобразования
получается цифры в диапазоне от 1000 до 0.000000000001 (Торр). Естественно, такие малые величины проще для восприятия
в экспоненциальном виде, например 6.7Е-09 . Но выходит, что до порядка Е-05 этот вариант отображения переменной
происходит нормально,а ниже (Е-06) происходит округление, вплоть до потери экспоненты (значение 0.00000001 уже отображается как 0Е00). Подскажите,пожалуйста решение отображения этих насущных в нашей отрасли цифр >:(
Название: Re: экспоненциальное отображение малых величин
Отправлено: Simple-Scada от 27 Апреля 2020, 09:48:32
Здравствуйте.

Возможно Вам не хватает точности типа данных Single. Используйте тип Double, у него точность выше. Во вложении пример отображения в научном формате.
Название: Re: экспоненциальное отображение малых величин
Отправлено: troynik77 от 27 Апреля 2020, 23:53:06
Нет, Double не спасает. Тот же single отображается в обычном выражении до 0.00000000001,т.е. 1Е-11, видимо что-то с функцией, которая позволяет перевести формат в "научный", ограничена 8ю цифрами. На фото красным обведены 2 окна, в них две равные друг другу переменные одного формата, просто в одном включено преобразование, в другом нет.
Название: Re: экспоненциальное отображение малых величин
Отправлено: pan2000 от 28 Апреля 2020, 03:58:03
    Здравствуйте!

  Так и не удалось заставить Ваш пример некорректно отображать число в экспоненциальной форме. Точность данных, равно как и тип (за исключением данных с фиксированным форматированием - DateTime и String) для переменной, используемой только для связи с объектом, не имеет никакого значения. В примере из вложения одна из переменных имеет тип Boolean, а другая - Byte (так делать не следует, но для иллюстрации сгодится).

Кроме того в примере приведен скрипт для отображения числа в экспоненциальной форме. Скрипт позволяет выводить число в изменяющемся формате - для величин более 0.1 в обычном формате с фиксированным числом значащих цифр, а менее в экспоненциальной. Возможно такая форма вывода будет более удобна.

Название: Re: экспоненциальное отображение малых величин
Отправлено: Simple-Scada от 28 Апреля 2020, 10:10:18
troynik77, у нас тоже не получилось воспроизвести проблему. Используя код из приведённого Вами скрина, тип данных Single, формат переменной "#.#E-00" и степень 1.21, получаем результат как на скрине во вложении. Округления до 2 не происходит. Вы используете одну из последних версий скады (2.3.6.0 и выше)? Вышлите текущую версию проекта на support@simple-scada.com, мы проверим и возможно выявим почему в этом проекте происходит округление.
Название: Re: экспоненциальное отображение малых величин
Отправлено: troynik77 от 28 Апреля 2020, 22:45:45
pan2000, спасибо,опробую ваш вариант. Администратор, я отправил на почту сжатый проект,скада 2.3.6.3, спасибо за поддержку!
Название: Re: Экспоненциальное отображение малых величин
Отправлено: troynik77 от 02 Мая 2020, 00:19:47
Вобщем действительно, после обновления до 2.3.6.11 проблема исчезла,также загадочно,как и появилась. Всем спасибо!