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

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

Автор Тема: Тренды. Отрисовка  (Прочитано 2674 раз)

Серега

  • Старожил
  • ****
  • Сообщений: 285
    • Просмотр профиля
Тренды. Отрисовка
« : 24 Января 2020, 14:49:06 »
Добрый день!
Случайно заметили, начали разбираться и результат в трех картинках.
Провал.
Есть пила (TestCommunication) от 0 до 100, крутиться в одно секундном скрипте. Тип Integer.
Есть hearbit от скады для каждого объекта (hearbit_obj1, hearbit_obj2  и т.д.), которым в скрипте по изменению переменной TestCommunication присваивается всем hearbit текущее значение переменной TestCommunication. По данной пиле оператор типа контролирует наличие связи. От объектов приходят свои hearbitы подтверждая наличие связи.
Но на рисунке видно, что данные от ОРС идут, но почему то не меняется переменная внутренняя из скрипта.
Скачок.
Тут две ситуации.
1. Выход за пределы значения переменной. По логике работы скрипта 100 максимальное значение. Но там какое то астрономическое.
2. Артефакт отображения. Маленький отрезок вниз. На первом снапе он виден. Делаем приближение тренда - он уже пропал. При дальнейшем увеличении его не видно. Но решил проверить еще раз переписал в желтую ячейку артефакт виден всегда.
Проверьте у себя ну и задавайте вопросы.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1400
    • Просмотр профиля
Re: Тренды. Отрисовка
« Ответ #1 : 30 Января 2020, 22:56:00 »
Здравствуйте.

Скада-система это обычная скомпилированная программа, которая работает всегда одинаково. Она не может в произвольный момент времени сама по себе записывать какие-либо произвольные значения в случайные переменные, т.к. для этого нам пришлось бы написать такой алгоритм случайного присвоения значений. Можем со 100% уверенностью сказать, что любые провалы и скачки на трендах не случайны. Скада никогда просто так не будет записывать случайные значения в тренд. Если какое-то значение попало в тренд, значит значение переменной тренда на 100% в этот момент было равно этому значению. Тоже самое и со скриптами, они всегда выполняются одинаково, строго в соответствии с написанным в скрипте кодом. Если переменная не меняется из скрипта, значит в нем не выполняются описанные условия для изменения переменной или в нее записывается одно и тоже значение или скрипт вовсе не выполняется, потому что не происходит событие по которому он должен выполниться или может переменная перезаписывается из другого скрипта и т.д. Других причин быть не может. Также, просмотрите журнал сервера, возможно там имеются ошибки выполнения скриптов.

Цитировать
Выход за пределы значения переменной. По логике работы скрипта 100 максимальное значение. Но там какое то астрономическое.
Возможно в скрипте используются локальные переменные, для которых память выделяется динамически при каждом выполнении скрипта. А значит, они могут иметь произвольное значение в момент старта скрипта, что при вычислениях с такими переменными может приводить к "астрономическим" значениям. Поэтому локальные переменные нужно обязательно инициализировать перед использованием - подробнее об этом можно прочесть по ссылке. Если дело не в этом, то значит по логике работы скрипта переменная все же может принимать астрономические значения и нужно разбираться почему это происходит и искать ошибку в скрипте.



Серега

  • Старожил
  • ****
  • Сообщений: 285
    • Просмотр профиля
Re: Тренды. Отрисовка
« Ответ #2 : 11 Марта 2020, 17:22:02 »
Еще раз добрый день!
У меня тут опять непонятки. На принскринах видно как от масштаба периода появляются данные на тренде.
Решил посмотреть в базе данных. И вообще не понял ни чего. Период рассматриваем сегодня (2020.03.11) с 10.00 до 16.00
В trends_data данные только с определенного времени как на рисунке Начало.
В trends_day и trends_hour данные есть, но мало.
В trends_minute большего всего.
Понимая, что процесс формирования тренда несколько завуалированный процесс, можете направить куда копать?
При этом лог сервера в норме. Стандартный. Перезапустили с утра. Подключились такие орс, клиенты, база. Все отключились.
Вроде Вы уже где то писали на форуме по поводу формирования тренда. Но этой темы не нашел. Скиньте ссылку.
P.S. Тут еще коллега говорит. В 15.20 мы применили новую функцию Другие действия:Создать таблицу переменных.
Могу подозревать, что как то промазали мимо и нажали очистить базу. Но после создания таблицы у нас пропали данные походу. Но опять как то не все а выборочно.
Жду вопросов и предложений

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Тренды. Отрисовка
« Ответ #3 : 11 Марта 2020, 21:09:59 »
Здравствуйте.

По скринам очень похоже, что был удалён основной слой БД (он должен содержать больше всего данных). А когда Вы просматриваете большие диапазоны времени - используются прореженные слои - минутный, часовой, суточный. На скринах видно что эти слои работают правильно.

Цитировать
Тут еще коллега говорит. В 15.20 мы применили новую функцию Другие действия:Создать таблицу переменных.
Есть предположение, что при создании таблицы переменных (она сначала удаляется из БД, затем создаётся), из-за неправильной синхронизации потоков мог быть удалён основной слой, вместо таблицы переменных. Нам потребуется некоторое время, чтобы проверить это. Завтра мы напишем о результатах. Не используйте функцию создания таблицы переменных, пока мы не напишем о результатах.

Цитировать
Могу подозревать, что как то промазали мимо и нажали очистить базу.
Это маловероятно. Если выбрать пункт "очистить все таблицы", то сначала появится красное окно с предупреждением, которое нужно подтвердить. Его сложно проигнорировать.

Серега

  • Старожил
  • ****
  • Сообщений: 285
    • Просмотр профиля
Re: Тренды. Отрисовка
« Ответ #4 : 12 Марта 2020, 10:37:00 »
Добрый день!
Ждем

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Тренды. Отрисовка
« Ответ #5 : 13 Марта 2020, 17:41:33 »
Здравствуйте. Удалось повторить проблему, действительно удалился основной слой trends_data. Сейчас мы сделаем внеочередное обновление до версии 2.3.6.9 с исправлением.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Тренды. Отрисовка
« Ответ #6 : 13 Марта 2020, 21:53:43 »
Исправили ошибку в обновлении 2.3.6.9.