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

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

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

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


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

Страницы: [1] 2 3 ... 21
1
Ваши вопросы / Re: Работа с таблицей
« : 01 Октября 2026, 10:50:38 »
Цитировать
в таблице в СКАДА будут выводится только 8192 строки.
На десктоп-клиентах в таблице нельзя отобразить более 8192 строк, в web-клиентах – не более 2048 ячеек.
 
Цитировать
Это какие строки - первые или последние?
Таблица заполняется сверху вниз, соответственно, строки выходящие за указанный лимит отображаться не будут.

Не рекомендуем выполнять выборку всех данных из таблицы в БД, так как в этом нет никакого смысла. Например, если Вам достаточно выводить в таблицу последние 100 строк, то делайте выборку только этих данных – это будет в сотни раз производительней, чем выполнять выборку всех данных. Например:
Код: (delphi)
var
  aQuery: string;
begin
  aQuery := 'SELECT * FROM `my_table` ORDER BY `id` DESC LIMIT 100';
  Table1.RunSQL(aQuery, tsAll);
end.
Если Вам требуется анализировать эти данные в больших объемах, то вместо вывода их в таблицу на мнемосхему проекта рекомендуем использовать отчеты. См. пример создания отчета из своего источника данных по ссылке.

2
Ваши вопросы / Re: Работа с таблицей
« : 30 Сентября 2026, 18:41:15 »
Здравствуйте.

Цитировать
Каким образом можно перейти к последней строчке, чтобы была видна последняя запись сразу же после добавления и не нужно было пользоваться скролингом?
Такой возможности нет. При необходимости в SQL-запросе можно выполнить сортировку данных по убыванию (т.е. чтобы новые значения были сверху) — для этого используется конструкция ORDER BY с ключевым словом DESC.

3
Ваши вопросы / Re: Вопрос по пингу
« : 30 Сентября 2026, 10:32:51 »
Здравствуйте.

1. См. описание процедуры "StartPing". Пинг будет работать до остановки проекта или остановки его через процедуры "StopPing" и "StopPingByObject"
2. См. описание события "Изменился пинг" и свойств параметра "PingData".

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

Если требуется перепривязывать пинг разных хостов к одному и тому же объекту, то перед привязкой необходимо остановить пинг предыдущего хоста и запустить пинг нового.

4
Ваши вопросы / Re: DataSet и временные метки
« : 22 Сентября 2026, 10:37:42 »
Здравствуйте.

1. Не нужно переносить задачи СУБД в скада-систему. Преобразовать данные к нужному формату можно сразу в SQL-запросе.
2. У компонента "Таблица" есть свой внутренний метод RunSQL, который удобно использовать для того, чтобы отобразить результат выполнения SQL-запроса в таблице.

Пример скрипта, который без дополнительного разбора позволяет отобразить данные в нужном формате сразу в таблице "Table1" :
Код: (delphi)
var
  aQuery: string;
begin
  // формируем запрос к БД на выборку данных из таблицы `my_table`
  aQuery := 'SELECT CONCAT_WS('' - '', DATE_FORMAT(t1, ''%Y.%m.%d %H:%i:%s''), DATE_FORMAT(t2, ''%Y.%m.%d %H:%i:%s'')) AS range_datetime, m FROM my_table';

  // выполнить запрос и заполнить таблицу результатом выполнения
  Table1.RunSQL(aQuery, tsAll);
end.

5
Ваши вопросы / Re: Связь с переменными
« : 17 Сентября 2026, 13:51:39 »
Здравствуйте.

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

6
Ваши вопросы / Re: Отчет по нагрузкам
« : 14 Сентября 2026, 11:44:17 »
Здравствуйте.

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

Цитировать
Проблема в том, что на текущий момент данных нет и посмотреть как выглядит отчет сложно.
Для тестирования проекта/отчета можно использовать запуск проекта в режиме отладки с эмуляцией работы OPC-сервера.

7
Ваши вопросы / Re: Отчет по нагрузкам
« : 09 Сентября 2026, 10:48:41 »
Здравствуйте.

Да, такой отчет можно создать штатными средствами. Если у Вас имеются переменные, в которых накапливается потребление электроэнергии (у этих переменных необходимо включить архивацию "по-изменению"), то Вы можете создать отчет с периодическим источником данных и на шаге добавления переменных в источник выбрать тип обработки "разница" (см. пример создания периодического отчета по ссылке). Для переменной интервала "Данные_Интервал" нужно задать значение, равное 0 (тогда вычисления будут производиться для всего периода от "Данные_Начало" до "Данные_Конец", без разбивки на интервалы).

Далее, используя доступные компоненты, нужно самостоятельно создать необходимую форму отчета и вывести соответствующие переменные в свои поля. Чтобы получить "Общее потребление", "Итог по нагрузке 1" и т.д., нужно сложить соответствующие переменные. Например:
Код
{Данные.vrPowerF1 + Данные.vrPowerF4}
Если при создании отчета возникнут вопросы, то пришлите на support@simple-scada.com текущую версию проекта, укажите отчет, который нужно проверить и опишите, что именно не получается.

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

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

UPD: проект проверили, сообщения отправляются строго в соответствии с условиями скрипта. Скрипт написан некорректно, что приводит к постоянному дублированию сообщений. Рекомендации по исправлению скрипта направили на почту.

9
Ваши вопросы / Re: Тренды и биты
« : 02 Сентября 2026, 16:09:27 »
Здравствуйте.

Для этого целочисленную переменную, в которой хранятся значения битов, необходимо разбить на отдельные переменные в ПЛК, на OPC-сервере или в скада-системе, как описано в руководстве. Далее у полученных переменных нужно настроить архивацию и вывести их в тренды.

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

К объекту можно привязать только две переменные (основная и доп. переменная) и отслеживать их изменение. Отслеживать изменение более двух переменных можно только в скрипте с типом события "Изменились переменные".

Самый простой и правильный способ для описанной задачи – это создать на ПЛК отдельную Boolean переменную, которая будет менять свое значение в зависимости от значений указанных трех переменных. Затем использовать полученную переменную в скада-системе для изменения видимости объекта.

Если на ПЛК это сделать не получается, то можно попробовать реализовать то же самое в скада-системе через скрипт "Изменились переменные" и затем использовать полученную переменную для изменения видимости объекта.

Для этого необходимо создать скрипт с типом события "Изменились переменные", добавить в него переменные "tag1", "tag2", "tag3" и использовать следующий код:
Код: (delphi)
begin
  vrBlink.Value := (tag1.AsBool) and (tag2.AsBool) and (tag3.AsBool);
end.
Далее переменную "vrBlink" нужно связать с требуемым объектом и на событие "OnDataChange" использовать скрипт:
Код: (delphi)
begin
  if Sender is TM_Object then    // проверяем, что Sender это объект
    with Sender as TM_Object do  // приводим Sender к типу "TM_Object"
      Visible := AsBool;         // изменить видимость объекта в зависимости от значения связанной с ним переменной
end.

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

Какого-либо штатного функционала для описанной задачи нет.

В данном случае можно изначально разбить данные на четыре отдельных источника данных, создать в отчете четыре диаграммы и связать каждую диаграмму со своим источником. Далее в скрипте для формирования отчета задавать необходимые интервалы времени (методы для работы с датой/временем описаны по ссылке) для каждого источника. Например:
Код: (delphi)
var
  aReport: TM_Report;
begin
  // задаем период для первого источника данных
  vrTimeBeginChart1.Value := vrTimeBegin.AsDateTime;
  vrTimeEndChart1.Value := IncHour(vrTimeBegin.AsDateTime, 6);

  // задаем период для второго источника данных
  vrTimeBeginChart2.Value := vrTimeEndChart1.AsDateTime;
  vrTimeEndChart2.Value := IncHour(vrTimeEndChart1.AsDateTime, 6);

  // и т.д.

  aReport := ReportBuild('Отчет');
  aReport.View(GetClientName);
end.
, где "vrTimeBegin" – начало периода времени, за который требуется сформировать отчёт, "vrTimeBeginChart1" – начало периода времени для первого источника данных, "vrTimeEndChart1" – конец периода времени для первого источника данных и т.д.

Также, для страницы отчета можно использовать альбомную ориентацию, что позволит увеличить доступную область для размещения диаграммы. 

12
Ваши вопросы / Re: Графики за время
« : 06 Августа 2026, 11:50:50 »
Здравствуйте.

Компонент "Временные тренды" накапливает данные по трендам в оперативной памяти и не использует архивные данные. Поэтому, после перезапуска проекта накопление данных во "Временных трендах" начнется сначала. Максимальный интервал времени для временных трендов = 60 минут. Соответственно, данный компонент Вам не подойдет в любом случае.

Чтобы была возможность просматривать данные за необходимые промежутки времени, необходимо настроить подключение к БД и включить архивацию у нужных переменных. Тогда можно будет просматривать архивные данные через тренды или строить отчеты.

Для архивации и просмотра трендов нужно:
1. Установить и настроить подключение к СУБД – пример для MySQL.
2. У необходимых переменных включить архивацию.
3. Добавить нужные переменные в тренды.
4. Сохранить проект и перезапустить его на сервере Simple-Scada.
5. Перейти к просмотру трендов и просматривать тренды за требуемые интервалы времени.

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

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

Цитировать
Это норма для сообщений, добавленных через скрипт?
Да, для сообщений, которые формируются через скрипты, колонки "Завершено" и "Длительность" не заполняются.

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

Да, это возможно. Подробное руководство по отчетам можно найти в дистрибутиве любой версии Simple-Scada или по ссылке. Если мы правильно поняли, то у Вас с расходомера приходит накопленный расход (т.е. значение переменной постоянно растет). В этом случае Вам подойдет пример построения "Периодического отчета" с использованием типа обработки "разница".

Подробнее:
1. Включите архивацию "по-изменению" у переменной "Объем".
2. Создайте новый отчет. Создайте в отчете источник данных с типом "Периодический".
3. Значение переменной-интервала выставьте в соответствии с необходимым интервалом(например 3600 – это 1 час в секундах). Как изменить значение для переменной интервала, можно посмотреть в примере по ссылке.
4. Добавьте в источник данных переменную "Объем" с типом обработки "разница".
5. Перетяните источник данных на страницу отчета.
Готово. Теперь в отчете будет отображаться таблица, в каждой строке которой будет объем воды за указанный интервал. Остаётся только задать время начала и конца и построить отчет. Принцип отчета и процесс его создания такой же, как в этой статье руководства.

15
Ваши вопросы / Re: Вопрос по отчётам
« : 11 Июня 2026, 11:30:58 »
Здравствуйте.

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

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