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

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

Автор Тема: Долгое сохранение проекта  (Прочитано 44803 раз)

Rolich

  • Пользователь
  • **
  • Сообщений: 86
    • Просмотр профиля
Долгое сохранение проекта
« : 27 Января 2026, 06:16:13 »
Доброго всем времени суток
После обновления версии до 2.7.4.0 стали очень долго сохраняться изменения в проекте, вне зависимости от масштаба изменений, проект сохраняется 5-7 минут
Сохранение проходит успешно, изменения применяются, но время ожидания запредельное
Что это может быть ?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3210
    • Просмотр профиля
    • Simple-Scada
Re: Долгое сохранение проекта
« Ответ #1 : 27 Января 2026, 09:15:42 »
Здравствуйте.

Долго сохраняется какой-то конкретный проект, или все проекты? Если это касается только одного проекта, то вышлите проект на для проверки на support@simple-scada.com.

Rolich

  • Пользователь
  • **
  • Сообщений: 86
    • Просмотр профиля
Re: Долгое сохранение проекта
« Ответ #2 : 27 Января 2026, 09:23:23 »
Один, проект отправил

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3210
    • Просмотр профиля
    • Simple-Scada
Re: Долгое сохранение проекта
« Ответ #3 : 27 Января 2026, 11:04:35 »
Проверили. Этот проект долго сохраняется в любых версиях скады. Например, в версии 2.7.2.0 от 05 Августа 2025 он сохраняется в точности за то же время, что и в версии 2.7.4.0. Видимо после обновления Вы добавили в проект новые скрипты.

Сам проект сохраняется за ~0.05 секунды, остальное время уходит на компиляцию жутких скриптов проекта и огромного количество бесполезного дублирующегося кода. Неудивительно, что добавление новых скриптов к уже имеющимся будет геометрически увеличивать время компиляции. Пример: скрипты в группе "Ошибки 10-45" с именами "Block_X_X" в сумме на 18270 строк кода, можно заменить одним скриптом не более чем на 500 строк и сократить время компиляции более чем в 20 раз. Это касается и другого кода который делает одно и то же для разных данных, в группам "LG", "PMM", "PT" и т.п. Вместо копирования кода напишите одну процедуру/функцию с нужными параметрами и вызывайте её одной строчкой кода с разными параметрами. Используйте циклы там, где нужно выполнить действия с итерацией, например, вместо 64 строк извлечения бита напишите 2 строки с циклом от 0 до 63 и т.д. Вместо переноса задач ПЛК на скаду, обработайте множество данных в ПЛК и передавайте в скаду только результат обработки (готовое значение, аварию, сообщение).


Rolich

  • Пользователь
  • **
  • Сообщений: 86
    • Просмотр профиля
Re: Долгое сохранение проекта
« Ответ #4 : 02 Февраля 2026, 06:13:39 »
Все доброго времени суток
Большое спасибо за потраченное время и предоставленные комментарии
В свою очередь, хотелось бы (не в плане подбрасывания говна на вентилятор, а для получения сатисфакции после окунания меня вами в это самое говно), парировать:
1. При компиляции ошибок не было, скрипты выполняются так, как задумано. Теперь понятно, что ваша система имеет ограничение по количеству строк кода, учту в будущих проектах
2. Присвоение значений переменным в цикле - дельный совет, а как насчёт реализации массивов ? С ними было бы гораздо проще
3. Выполнение расчётов в ПЛК, безусловно, правильное решение. Когда у вас есть исходный код для ПЛК, а сами проекты не запаролены
Предлагаю на этом тему закрыть, а вас прошу быть более терпимыми к своим пользователям, не все такие идеальные, как вы.
Спасибо.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3210
    • Просмотр профиля
    • Simple-Scada
Re: Долгое сохранение проекта
« Ответ #5 : 02 Февраля 2026, 16:35:29 »
для получения сатисфакции после окунания меня вами в это самое говно
Непонятно, что в нашем ответе Вас оскорбило? Вы задали вопрос: "почему проект сохраняется 5-7 минут". Мы ответили "время уходит на компиляцию жутких скриптов проекта и огромного количество бесполезного дублирующегося кода". Это главная причина долгого сохранения проекта и просто легко доказуемый факт. Как ещё объяснить причину, не называя её? Нет необходимости писать идеальный код, достаточно просто не дублировать один и тот же код более 60 раз. Это не только ускорит компиляцию и производительность, но и упростит добавление нового однотипного кода.

Цитировать
3. Выполнение расчётов в ПЛК, безусловно, правильное решение. Когда у вас есть исходный код для ПЛК, а сами проекты не запаролены
Если Вы планируете переносить функции ПЛК на скаду, то нужно ещё внимательнее отнестись к написанию скриптов и заранее попытаться максимально их оптимизировать, т.к. скада не предназначена для решения задач ПЛК. Иначе в какой-то момент проект перестанет не только компилироваться, но и запускаться.

Цитировать
1. При компиляции ошибок не было, скрипты выполняются так, как задумано.
Об ошибках не было и речи. Мы говорим только о дублирующемся коде.

Цитировать
2. Присвоение значений переменным в цикле - дельный совет, а как насчёт реализации массивов?
Можете объявить массивы, если нужно. Только непонятно зачем? Лучше сразу использовать наиболее простой и производительнный вариант: пройти в цикле напрямую и выполнить нужные действия с элементом.