Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Архивирование и точность  (Прочитано 317 раз)

Серега

  • Постоялец
  • ***
  • Сообщений: 249
    • Просмотр профиля
Архивирование и точность
« : 27 Января 2025, 15:12:58 »
Добрый день!

В настройках переменной есть понятие формат. В зависимости от настройки формата будет отображаться на клиенте, то значение которое надо. Т.е. если четыре 0 в формате указано, то 4 знака после запятой будет отображаться на клиенте.
Так же есть понятие зона нечувствительности, где как бы настраиваются пороги записи в архив.

В БД например при создании таблицы можно использовать команду DECIMAL(X,Y). жестко прописывая количество знаков после запятой, которые будут записаны в архив.

Теперь ситуация. Например есть скорость объекта, указанно 2 знака после запятой. На клиенте все замечательно показывает 2 знака после запятой.
Но вот в БД, так как переменная стоит на архивации по изменению, не настроена зона нечувствительности(можно указать на это и я соглашусь, но сейчас в целом и не об этом),  наблюдаются записи при изменении переменной в 4 знаке после запятой. Как бы скорость равна 0.00, объект не движется, но в архиве есть данные типа 0.00005, 0.00012 и т.д. Как бы дополнительная нагрузка (чтение\запись на диск, передача и т.д.). Про зону нечувствительности написал выше.
Вопрос. Можно как то указать средствами SCADA количество знаков после запятой именно для БД?
Предложение. Может быть  в будущем Вы сможете привязать формат переменной к формату данных записывающихся в БД?
Жду вопросов и предложений!

ZWolol

  • Пользователь
  • **
  • Сообщений: 51
    • Просмотр профиля
Re: Архивирование и точность
« Ответ #1 : 28 Января 2025, 06:16:35 »
Насколько я помню, то формат DECIMAL(X,Y) используется в DBF файлах.
Там все числа хранятся в текстовом виде.

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

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3156
    • Просмотр профиля
    • Simple-Scada
Re: Архивирование и точность
« Ответ #2 : 28 Января 2025, 12:54:35 »
Здравствуйте.

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