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

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

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Simple-Scada

Страницы: 1 2 [3] 4 5 ... 213
31
Новости / Обновление до версии 2.7.2.0
« : 05 Августа 2025, 10:12:29 »
Это обновление включает важные невизуальные изменения, увеличивающие производительность редактора и сервера при работе с большими проектами, а также несколько новых опций. См. полный список изменений ниже.

Изменения:
  • значительно ускорена загрузка и сохранение больших проектов в редакторе и на сервере;
  • значительно ускорено выполнение большого количества разных скриптов, вызванных в пределах одной секунды;
  • можно выполнять до 100 тысяч скриптов в секунду не переполняя очередь скриптов;
  • редактор скриптов: значительно улучшена производительность фильтрации в списке методов, когда в проекте более 200 тысяч объектов;
  • десктоп клиенты: добавлена опция для снижения частоты отрисовки (FPS). Позволяет снизить нагрузку на видеокарту на слабых ПК;
  • web: значительно улучшена производительность перехода на страницы (и в окна) с временными трендами;
  • в меню "Вид" добавлена опция "Показать связи". Позволяет отобразить иконку связи объекта с основной/доп.переменной/скриптом;
  • отправка e-mail и telegram теперь доступна в версии Standard;
  • в меню просмотра сообщений теперь можно задать диапазон времени с точностью до минут;
  • группам пользователей добавлено право "Можно авторизоваться через". Позволяет запретить авторизацию через десктоп / web клиенты;
  • если один из выделенных объектов связан со скриптом, то в инспекторе объектов (на вкладке "События") отображается иконка треугольника;
  • добавлена возможность отправки HTTP PUT запросов с данными в формате JSON;
  • при вставке объектов через контекстное меню их копия располагается по координатам мыши;
  • архивация v2: если в "Текст сообщений о действиях оператора" задать значение "%ignore_actions%", то действия не будут автоматически добавляться в группу "Действия оператора". Их можно будет добавить только через скрипты;
  • сообщения с пустым текстом (созданные в редакторе сообщений) теперь не учитываются во время работы проекта;
  • уменьшен минимально допустимый размер окон / шаблонов;
  • импорт переменных и сообщений: исправлена ошибка импорта при вложенности групп более 3;
  • web: исправлено нарушение работы подписок после попытки перехода к несуществующей группе трендов;
  • web: исправлена смена размера изображений;
  • web: в меню просмотра сообщений исправлена загрузка новой порции сообщений при перемещении скролла;
  • десктоп клиенты: исправлено отображение последней точки у ступенчатых трендов, когда значение не превысило зону нечувствительности;
  • десктоп клиенты: цвет плохого качества имеет приоритет над цветом аварии/предупреждения;
  • исправлена работа активных сообщений о нарушении границ с мертвой зоной. Сообщение меняет статус (либо удаляется) только при выходе за пределы зоны + зона нечувствительности;
  • исправлена работа функции IsFirstChange в скриптах с типом "Нарушена граница";
  • исправлено наследование времени бездействия пользователя у групп: берётся наибольшее время;
  • исправлена работа комбинации "Shift + Tab" в редакторе скриптов;
  • исправлена ошибка редактора при удалении участка линии/трубопровода во время перемещения;
  • исправление: при изменении профиля пользователя через десктоп-клиент, в списке действий формировалось два одинаковых сообщения;
  • исправление: авто обновление трендов не мешает выбору даты через раскрывающуюся часть календаря;
Резервная копия:
Мы всегда тестируем новые версии ПО на совместимость, но, несмотря на это, рекомендуем сделать резервную копию проекта перед обновлением.

Процесс обновления:
Для обновления достаточно установить новую версию поверх старой, оставив те же пути установки. Установщик заменит только системные файлы скады, не затронув папку с пользовательскими данными. После обновления откройте свой проект в редакторе и пересохраните его.

32
Здравствуйте.

Если нужно выполнить несколько операций после if..then, заключайте их в блок "begin..end;", иначе условие будет применено только к первой строке после if..then.
Код: (delphi)
begin
  if arch.AsBool then
  begin
    // несколько операций здесь
  end else
    begin
      // несколько операций здесь
    end;
end.

Но гораздо лучше упростить код так:
Код: (delphi)
var
  aValue: Boolean;
begin
  aValue := arch.AsBool;
  vrValue_1.Archiving := aValue;
  vrValue_2.Archiving := aValue;
  vrValue_3.Archiving := aValue;
  vrValue_4.Archiving := aValue;
  vrValue_5.Archiving := aValue;
  vrValue_6.Archiving := aValue;
  vrValue_7.Archiving := aValue;
  vrValue_8.Archiving := aValue;
  vrValue_9.Archiving := aValue;
  vrValue_10.Archiving := aValue;
  vrValue_11.Archiving := aValue;
  vrValue_12.Archiving := aValue;
  vrValue_13.Archiving := aValue;
  vrValue_14.Archiving := aValue;
  vrValue_15.Archiving := aValue;
  vrValue_16.Archiving := aValue;
  vrValue_17.Archiving := aValue;
  vrValue_18.Archiving := aValue;
  vrValue_19.Archiving := aValue;
  vrValue_20.Archiving := aValue;
  vrValue_21.Archiving := aValue;
end.

Или так:
Код: (delphi)
var
  I: Integer;
  aValue: Boolean;
  aVar: TM_Variable;
begin
  aValue := arch.AsBool;
  for I := 1 to 21 do
  begin
    aVar := GetVariableByName('vrValue_' + IntToStr(I));
    if aVar <> nil then
      aVar.Archiving := aValue;
  end;
end.

33
Здравствуйте.

Цитировать
Хотелось бы иметь возможность обрабатывать эти евенты, например, журналировать или выполнять скрипты.
К сожалению, нельзя отследить события OPC-сервера, можно только подписаться на изменения переменных, импортировав переменную с UA-сервера.

1. В Windows 10 если панель задач расположена слева, то иногда при переключении между приложениями и возврате назад к редактору или клиенту позиция курсора мыши теряется. Клик мыши сдвигается по горизонтали на ширину панели задач вправо. Пример на скриншоте (пытался выделить прямоугольную область мышью).
Спасибо за информацию, добавим исправление в одном из ближайших обновлений.

34
Ошибки / Re: Календарь в трендах
« : 16 Июля 2025, 11:17:15 »
Здравствуйте.

Добавили исправление, будет доступно в ближайшем обновлении. Сейчас, перед выбором даты в календаре, нужно отключить кнопку "онлайн обновление трендов", либо менять дату путём ввода значения с клавиатуры.

35
Здравствуйте.

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

36
Ваши вопросы / Re: Мигание фона текста
« : 19 Июня 2025, 11:14:16 »
Здравствуйте.

Нужно разместить на фоне текста компонент "Фигура" и включить мигание у него.

37
Спасибо за информацию. Постараемся в ближайшее обновление добавить отправку PUT запросов.

UPD: поддержка PUT запросов добавлена в обновлении 2.7.2.0

38
Цитировать
Полное описание сервиса отсутствует.
А откуда Вы взяли информацию о PUT? Если тот же запрос выполнить через POST (либо даже GET), то HTTP-сервер не отвечает?

39
Цитировать
можно ли настроить папку для резервных копий проекта на удаленный ресурс (яндекс диск или сетевой диск организации).
Важно не синхронизировать папку "..\Simple-Scada 2\Projects\" с облачными хранилищами, т.к. это может привести к порче файлов проекта во время сохранения проекта. Вот правильная последовательность:
1. Создать отдельную (!) собственную папку, которая синхронизируется с облачным хранилищем (Яндекс.Диск, Google.Drive, DrobBox, OneDrive и т.п.), например "С:\SCADABackup\";
2. Периодически копировать в неё новые версии проектов из папки "..\Simple-Scada 2\Projects\" и т.п..

40
Здравствуйте.

Спасибо, предложения рассмотрим.

Цитировать
Стрелка занимает место, и как бы указывает на то, что можно выбирать, хотя это не предусмотрено изначально.
Возможно для этого лучше подойдёт компонент "Кнопка" с выключенным свойством "Доступен".

41
Конечно будет работать, т.к. причина точно не в версии скады, а в чем-то другом. Если возникнут какие-либо проблемы, то отправьте нам лог сервера для проверки, чтобы можно было увидеть содержание ошибок.

42
Здравствуйте.

Цитировать
отрисовывается постоянный рост до введённого значения ниже зоны.
Да, если последнее значение (перед выключением сервера / остановкой проекта) было в пределах зоны нечувствительности, то для трендов (со ступенчатой отрисовкой) ступенька не формируется и отрисовывается диагональная линия между двумя последними точками. Добавим исправление в ближайшее обновление.

43
Возможные причины перечислены в нашем сообщении выше. Нужно выявить откуда в скаду приходят некорректные значения и устранить причину. Сама скада, как и СУБД, такие значения никогда не создаёт. Если у Вас не получается самостоятельно выявить откуда приходят эти значения, то со стороны скады Вы можете только попытаться отфильтровать их, как описано выше.

44
Здравствуйте.

Если переменная на OPC-сервере является одномерным массивом, то её можно импортировать в скаду и использовать для чтения (внешние переменные являющиеся массивами  доступны только для чтения). См. описание и пример этой ссылке.

Вышеописанное касается только массивов, которые читаются с OPC-серверов. С массивами объявленными в скриптах можно работать как угодно (читать, записывать, менять размерность и т.п.).

Цитировать
может все таки есть способ написать это как то более элегантно?
Не совсем понятно зачем вообще нужен локальный массив в Вашем коде, когда можно просто пройти по переменным А1..А120 в цикле. Например:
Код: (delphi)
  // проходим по переменным А1..А120
  for i := 1 to 120 do
  begin
    aVar := GetVariableByName('A' + IntToStr(i));
    // здесь работаем c переменной
  end;

Пример для Вашего кода:
Код: (delphi)
var
  aQuery: string;
  aVar: TM_Variable;
begin
  count := 1;
  aQuery := 'DELETE FROM table_report; ';
  for i := 1 to 120 do
  begin
    aVar := GetVariableByName('A' + IntToStr(i));
    if (aVar.AsInt > 0) then
    begin
      Insert('INSERT INTO `table_report` (id, adr, vs) VALUES ( ' + IntToStr(count) + ' , ' + IntToStr(aVar.AsInt)  + ', ' + IntToStr(voltArray[i])  + ' );', aQuery, 99999);
      count := count + 1;
    end;
  end;
end.

45
Ваши вопросы / Re: Шкалы переменных
« : 24 Апреля 2025, 09:51:39 »
Цитировать
не хватает только редактирования шкал через скрипты
Да, планируем добавить возможность редактирования шкал через скрипты, но точный срок добавления назвать не можем. Есть множество более популярных задач, которые решаются в первую очередь.

Страницы: 1 2 [3] 4 5 ... 213