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

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

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

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


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

Страницы: [1] 2 3 ... 20
1
Ваши вопросы / Re: Вопрос по отчётам
« : 11 Июня 2026, 11:30:58 »
Здравствуйте.

1. Если требуется сформировать список с интервалами, в которых переменная (бит переменной) = 0, то это можно реализовать через сообщения, по аналогии с описанием из этой темы.
2. Если требуется сформировать отчет с общим временем простоя агрегата за необходимый интервал, то можно использовать периодический источник данных, в который нужно добавить переменную с типом обработки "время выкл.". Если используется целочисленная внешняя переменная, в которой хранятся значения битов, то эту переменную необходимо разбить на отдельные переменные, как описано в руководстве, и работать с каждым битом переменной отдельно.
3. Если способы, указанные выше, не подходят, то используя SQL-запросы, Вы можете записывать необходимую информацию в свою таблицу БД (примеры работы с БД см. по ссылке) и далее, используя пользовательский источник данных (пример см. по ссылке), строить отчет на основании накопленных в таблице данных.

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

Цитировать
я еще не опытный пользователь, подскажите - есть ли возможность или функция "скопировать формат"? или "групповое редактирование"?
Грубо говоря - есть 10 однотипных полей, и возникло желание их "перекрасить", через стандартный интерфейс тыкать в несколько полей - это очень долго и непродуктивно.
1. Поддерживается групповое редактирование свойств однотипных объектов и свойств переменных. Для этого выделите нужные объекты или переменные – теперь при изменении свойств они будут применяться для всех выделенных объектов. Чтобы выделить несколько объектов, можно зажать клавишу "Shift" и кликать ЛКМ по нужным объектам. Ознакомиться с другими горячими клавишами можно в руководстве по ссылке.
2. Для создания однотипных объектов, окон, страниц и сообщений в Simple-Scada можно использовать систему шаблонов. Для работы с шаблонами необходимо использовать однотипные имена переменных, тогда для создания шаблонного объекта можно будет указать, например, только одну цифру. Для быстрого редактирования свойств множества переменных можно использовать групповое редактирование или возможности импорта / экспорта переменных в файл Excel. Рекомендуем изучить статьи, которые относятся к работе с шаблонами – это значительно упростит разработку проекта и поиск допущенных ошибок.

Цитировать
Хотелось бы (по возможности) увидеть функционал типа "равномерные интервалы между объектами"
Цитировать
не хватает только возможности включить фильтр по найденым значениям. чтобы отображались ТОЛЬКО попадающие под условия поиска, те которые выделяются цветом.
Пожелания обязательно учтем и рассмотрим.

Для быстрого редактирования свойств множества переменных также можно использовать импорт / экспорт переменных в файл Excel. В Excel можно сортировать данные по заданным условиям. Но следует учитывать, что через импорт/экспорт из файла не получится изменить имя переменной, т.к. при импорте имя используется как ключевой параметр.

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

Чтобы вернуть изначальный цвет объекта, можно использовать процедуру "SetInitialColor".
Код: (delphi)
begin
  if Sender is TM_Image then    // проверяем, что Sender это изображение
    with Sender as TM_Image do  // приводим Sender к типу "TM_Image"
      if AsBool then            // если значение переменной изображения равно True/1, то
        Color := clRed          // изменить цвет изображения на красный
      else                      // иначе
        SetInitialColor;        // вернуть изначальный цвет
end.

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

Если в процедуру необходимо передавать переменные в качестве параметра, то для этого переменные необходимо объявлять как класс "TM_Variable":
Код: (delphi)
procedure GomControlPumpRun(AMqttPumpRun, APumpRun, AStatePump: TM_Variable; bit: Byte);
begin
  if AMqttPumpRun.AsBool then
    if not GetBit(AStatePump.AsInt, bit) then
      APumpRun.Value := AMqttPumpRun.AsBool
    else
    begin
      APumpRun.Value := False;
      AMqttPumpRun.Value := False;
    end;
end;
Вызов процедуры:
Код: (delphi)
GomControlPumpRun(mqtt_Gom_Run_pump5, drskGom_SN5_Run, drskGom_State_Pump57, 2);

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

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

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

Такой возможности нет. Можно открыть в браузере требуемую ссылку используя процедуру GoToLinkClient.

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

Если переменная на ПЛК/устройстве может принимать только отрицательные значения, например от 0 до -100, то у переменной можно задать шкалу от 0 до -100, а визуальную шкалу в режиме масштабирования установить 0-100. Тогда значения переменной будут автоматически преобразовываться из шкалы 0 .. -100 в шкалу 0 .. 100.

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

Для этого можно использовать фильтр по переменной.
1. Создайте внутреннюю переменную с типом Boolean (например, с именем "vrBool") и включите у нее архивацию по изменению.
2. Создайте скрипт с типом события "Изменились переменные" и добавьте в него переменную, по которой необходимо выводить среднее в отчет (в примере скрипта это "vrMyVar").
3. Для скрипта используйте следующий код:
Код: (delphi)
begin
  vrBool.Value := (vrMyVar.AsInt >= 10);
end.
4. Готово. Теперь переменную, созданную на первом этапе, можно использовать в отчете как фильтр.
5. При необходимости у источника данных можно включить отображение пустых строк.

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

В отчетах для трендов не работает логорифмическая шкала. Или как отобразить тренд в логорифмическом виде?
В Simple-Scada используется система отчетов Stimulsoft Reports. К сожалению, в данной системе отчетов есть ряд ограничений, связанных с отображением логарифмических шкал в диаграммах, а именно:
1. Логарифмическая шкала работает только в диаграммах с типом "Точечная"(см. скриншот во вложении), для остальных типов включение опции не даст результата.
2. На одной диаграмме нельзя разместить логарифмический тренд и обычный.  Все тренды в диаграмме должны быть либо логарифмическими, либо обычными (без смешивания).
3. Работать как логарифмическая может только левая шкала Y. Правая шкала Y может отображаться как логарифмическая, но она не влияет на отображение самого тренда.

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

Цитировать
Возникла вот какая задача: по дискретной переменной, которая соответствует режиму работы агрегата (1 - в работе, 0 - простаивает), необходимо формировать периодический отчёт о времени его работы (время начала и окончания отчёта задаётся пользователем), только не во всём диапазоне заданного времени, а также с интервалами, задаваемыми пользователем. Например, в период с 01.04.2026 8:00 по 08.04.2026 8:00 сформировать время работы агрегата в интервале 8:00-12:00 и 16:00-20:00 ежедневно.
Периодический источник данных, может разбивать данные только на равные промежутки времени. Например, для указанного Вами диапазона, источник данных можно разбить на интервалы по 4 часа и, используя "Фильтр", скрыть ненужные промежутки. Например, используя выражение:
Код: (c#)
(Источник1.Время.Hour == 12 && Источник1.Время.Minute == 0) ||
(Источник1.Время.Hour == 20 && Источник1.Время.Minute == 0)
В отчете останутся только данные за промежутки 8:00-12:00 и 16:00-20:00.

Цитировать
Кроме времени работа, также необходимо рассчитывать КИО (время работы агрегата делить на полное время заданных интервалов)
Например, в бенд данных можно добавить компонент "Текст" со следующим выражением:
Код: (c#)
{((Источник1.vrBool).TotalHours) / 4}
При необходимости в выражениях можно использовать переменные из скада системы. См. пример проекта во вложении.

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

Цитировать
Нужно посчитать удельник, тоесть: расход газа / (отпущенная тепловая энергия ТС + отпущенная тепловая энергия СН)
Код: (c#)
{Данные.Расход_газа_м3_ч / (Данные.Отпущ__тепл__энергия_СН * 0.2388 + Данные.Отпущ__тепл__энергия_ТС * 0.2388)}

Если не разберётесь, то пришлите для проверки на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите отчет, который нужно проверить.

Цитировать
Так же хотел узнать, будет ли отличаться формула для разных отчетов, по типу часовой/суточный/месячный
Отличий не будет.

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

Не совсем понятно, что Вы имеете в виду.
1. Если Вы переустановили сервер Simple-Scada на другой ПК и требуется перенести архивные данные с одного ПК на другой, то следуйте инструкции по ссылке. Время создания резервной копии и время восстановления из резервной копии напрямую зависит от размера БД и производительности ПК.
2. Если Вы подключаетесь к серверу Simple-Scada с другого ПК, то удаленный клиент будет получать все данные с сервера.

Если имеется в виду что-то другое, то опишите более подробно, что именно требуется.

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

К сожалению, средствами скада-системы такой график создать не получится, но его можно создать, используя систему отчетов(полноценная система отчетов доступна в версии Professional). Пример создания X/Y тренда в отчете см. по ссылке.

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

1. В любых непонятных ситуациях нужно в первую очередь проверить журнал сервера скады. С большой вероятностью в нем будут содержаться ошибки или предупреждения, которые укажут, в чем именно проблема.
2. В примере по ссылке описано, как сохранять значение требуемой переменной с заданной периодичностью в свою таблицу БД. Если строго следовать руководству, то проблем быть не должно. Убедитесь, что в проекте настроено подключение к БД и в указанной БД создана таблица "my_archive".
3. Какая версия Simple-Scada используется? Возможно, Вы используете версию с ограничением на выполнение SQL-запросов – это версии Minimal и Demo-64.
4. Если требуется архивация переменных, то в этом случае использовать скрипты не требуется. Для этого нужно у требуемых переменных настроить архивацию – описание доступных способов архивации и их настроек доступно по ссылке. Тогда, после запуска проекта переменные, у которых включена архивация будут архивироваться в БД и можно будет работать с архивными данными этих переменных, например просмотреть тренды, создать отчет и т.д.

Если самостоятельно разобраться не получится, то пришлите на support@simple-scada.com целиком папку с логами "..\Simple-Scada 2\Logs", текущую версию проекта из директории "..\Simple-Scada 2\Projects\" и укажите проблемный скрипт. Также, пришлите скриншот вкладки "Состояние сервера".

15
Ваши вопросы / Re: Время, таймер и так далее
« : 18 Февраля 2026, 10:52:37 »
Здравствуйте.

Цитировать
Timer:TDateTime;
Timer := SecondsBetween(StrToTime(tblSchedule.GetCell(4, 1).Text), StrToTime(tblSchedule.GetCell(2, 1).Text));
См. описание функции "SecondsBetween" – она возвращает целое число, а вы пытаетесь записать его в переменную TDateTime.

Цитировать
tblSchedule.GetCell(5, 2).Text := TimeToStr(Timer); // не работает, выводит только нули
Чтобы преобразовать секунды в строку, необходимо использовать функцию "SecondsToStr".

Страницы: [1] 2 3 ... 20