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

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

Автор Тема: Архивация v2. Переход  (Прочитано 2277 раз)

Серега

  • Старожил
  • ****
  • Сообщений: 285
    • Просмотр профиля
Архивация v2. Переход
« : 10 Июня 2022, 15:16:11 »
Добрый день!
По привычке прежде чем вносить изменения на "боевой" системе, решил на тестовой проверить переход на архивацию версии 2. Версия ПО 2.6.1.0
Согласно инструкции в проекте
1. в настройках выбрал версию 2.
2. Таблицы не создались. Но через пункт "Создать..." все создалось
3. Проверил связь - связь есть в сервере
4. Настройки опроса и т.п. не трогаем, сохраняем проект.
5. Запускаем и ... связь есть. Но данные почему то не архивируются.
6. В настройках для базы данных выбираем "Очистить все таблицы". Но тут ... что-то не очищается.
Далее по разборке ситуации.
1. В элементе Поле при нажатии правой клавиши вижу что значение переменной скачет  0, затем 25, опять 0 и далее 26, 0 и 27 и т.д.
2. Данная переменная (допустим connect_1) изменяется в скрипте по изменению переменной generation, то есть
Код
connect_1.value := generation.value;
3. Сама generation формируется в односекундном тренде
Код
begin
 if generation .Value < 100 then
    generation .Value := generation .Value + 1
 else
    generation .Value := 0;
end.
4. connect_1 стоит на архивирование, но в архиве данных нет
5. Делаю новый 1сек-скрипт и переменную
Код
begin
test_int.Value := test_int.Value + 1;
if test_int.AsInt > 100 then test_int.Value := 0;
end.
и все работает. И архивирование и построение тренда.
6. Переделываю все на старый скрипт - опять все работает.
В общем получается как-то странно. То ли старые переменные не подхватываются, то ли старые скрипты.
Кроме таблиц самой скады, создали свои таблицы. Могут ли они помешать?
Может подскажите куда копать?
Жду вопросов и предложений!



Серега

  • Старожил
  • ****
  • Сообщений: 285
    • Просмотр профиля
Re: Архивация v2. Переход
« Ответ #1 : 10 Июня 2022, 15:22:00 »
Вдогонку. Походу внутренние переменные скады архивируются, а связанные с ОРС нет.
Правильно или нет?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Архивация v2. Переход
« Ответ #2 : 10 Июня 2022, 16:52:22 »
Здравствуйте.

Цитировать
Походу внутренние переменные скады архивируются, а связанные с ОРС нет.
Архивируются все переменные у которых включена архивация, кроме переменных типа string и массивов. В этом плане две версии системы архивации работают абсолютно одинаково. У Вас связь с OPC-сервером была в момент теста? Если нет, то внешние переменные с этого сервера не будут архивироваться. В старых версиях скады архивировалась прямая линия и нулевое значение при отсутствии связи. В этом нет смысла, поэтому в новых версиях архивация начинается после установки соединения с OPC-сервером.

Цитировать
1. в настройках выбрал версию 2.Таблицы не создались. Но через пункт "Создать..." все создалось
Верно, таблицы и БД не создаются когда Вы меняете систему архивации, данная опция только выбирает систему архивации, никаких других действий не выполняется. Создавать таблицы через редактор, или выполнять какие-либо другие действия не обязательно, сервер автоматически создаст БД и таблицы при запуске проекта, если они не созданы.

Цитировать
В настройках для базы данных выбираем "Очистить все таблицы". Но тут ... что-то не очищается.
Что конкретно происходит? Какое-то сообщение при этом выводится? Если да, то нужно знать какое, чтобы понять причину. Какая используется СУБД (нужно знать название СУБД и её версию).

Цитировать
connect_1 стоит на архивирование, но в архиве данных нет
В первую очередь нужно проверять журнал сервера скады на наличие ошибок работы с БД, ошибок в скриптах, сбоев работе с OPC-серверами и т.д. Если они есть, то нужно их устранить. Если connect_1 - внешняя переменная, то проверьте связь с OPC-сервером.

Цитировать
Переделываю все на старый скрипт - опять все работает. В общем получается как-то странно. То ли старые переменные не подхватываются, то ли старые скрипты.
Для таких чудес всегда есть примитивная причина. Скада являясь скомпилированной программой при каждом запуске будет выполнять абсолютно одинаковые действия и разный результат можно получить только при наличии ошибок в скриптах и т.п. Наличие явных ошибок можно проверить через журнал сервера во время работы проекта. Другой вариант - скрипты написаны так, что допускают разный результат (например не учитывается их последовательность, неправильно обрабатывается результат асинхронных функций и т.п.). Если разобраться не получается, то пришлите проект для проверки на support@simple-scada.com. Также не забывайте перезапускать проект на сервере после внесения изменений, т.к. часто пользователи работают со старой версией проекта (забыв перезапустить проект после изменения) и делают неправильные выводы.

Цитировать
Кроме таблиц самой скады, создали свои таблицы. Могут ли они помешать?
Скада никогда не обращается сама к другим таблицам и никогда не узнает об их существовании, если не обращаться к ним через скрипты. Поэтому наличие других таблиц в БД никак не может влиять на работу скады.