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

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

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

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


Сообщения - Simple_Scada

Страницы: [1] 2 3 ... 92
1
Ваши вопросы / Re: Цветовая схема
« : 05 Марта 2026, 21:53:37 »
Здравствуйте.

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

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

Ранее Вы уже задавали подобный вопрос в другой теме. Архивные данные накапливаются в оперативной памяти и периодически сбрасываются в БД. Чем реже меняется значение переменной, тем реже данные сбрасываются в БД. Это необходимо для оптимизации и быстродействия. При архивации "по изменению", новое значение переменной будет добавляться в архив, если оно отклонилось от предыдущего на величину "Зоны нечувствительности". Если требуется получать из БД текущие значения переменных, например в стороннее приложение, то см. статью по ссылке.

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

Пришлите на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и подробно опишите, какую именно задачу Вы пытаетесь решить. Переменные внешние (с OPC-сервера) или внутренние?

4
В проекте есть скрипт Nasos1 типа Таймер, который срабатывает раз в секунду.
Код: (delphi)
begin
  i.Value:=(i.Value+1)mod 100;
  Pump_Frequency.Value:=i.Value;
end.
Как его запустить по нажатию кнопки в обработчике OnClick?
1. Скрипт с типом события "Таймер" будет выполняться периодически, с заданным интервалом сразу после запуска проекта.
2. При работе со значением переменной, рекомендуем использовать явное приведение к нужному типу, например .AsInt, .AsBool и так далее. Также, использование свойства ".Value" в условиях может приводить к некорректной работе – подробнее см. по ссылке.

Если требуется, чтобы код выполнялся по дополнительным условиям, то такие условия нужно добавить в скрипт. Например, чтобы код скрипта выполнялся после нажатия на кнопку необходимо:
1. Создать переменную с типом данных "Boolean", например с именем "vrStart".
2. Связать кнопку с данной переменной.
3. Изменить код скрипта следующим образом:
Код: (delphi)
begin
  if vrStart.AsBool then   // если значение переменной vrStart равно True, то
  begin
    i.Value := (i.AsInt + 1) mod 100;
    Pump_Frequency.Value := i.AsInt;
  end;
end.

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

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

Через скрипты завершить работу проекта или сервера Simple-Scada нельзя. Если в проекте используются только десктоп-клиенты, то в настройках сервера Simple-Scada можно включить опцию "Деактивировать проект, если у него нет клиентов", создать кнопку для выхода из клиента и с помощью процедуры "CloseApplicationAll" завершать работу всех клиентов. Тогда после отключения всех клиентов, сервер Simple-Scada будет деактивировать проект.

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

Спасибо за информацию о проблеме. Добавили исправление в версию 2.7.4.0. Скачайте её по прежним ссылкам и установите повторно. После этого ошибка не должна возникать.

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

Цитировать
Есть шаблонные окна. Информация отображаемая в окне берется из таблицы. Таблица заполняется из базы данных. Информация заполняется скриптом, вызываемым событием OnShow окна.
Учитывайте, что описанный Вами способ может некорректно работать в проектах с несколькими клиентами. Все объекты проекта существуют в единственном экземпляре и изменение их свойств будет отображаться на всех клиентах одновременно. Поэтому, если несколько пользователей будут одновременно открывать указанные окна, то могут увидеть в них не то содержимое, которое ожидалось (т.к. содержимое может замениться при открытии окна другим пользователем).

Цитировать
Есть ли какая то возможность понять отображается где-то шаблонное окно или нет
Может быть можно как то скриптом перебрать все отображаемые в данный момент окна, и вызвать для них нужное событие?
Такой возможности нет.

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

Пример автоматического формирования отчёта рассмотрен по ссылке. Аналогично можно формировать отчёт после закрытия партии. Если время запуска/остановки партии известно заранее, то используйте его в качестве времени начала/конца отчета. Если время запуска/остановки партии неизвестно, то при запуске партии записывайте текущее время в переменную начала отчета, при остановке партии записывайте текущее время в переменную конца отчета и затем формируйте требуемый отчет.

Отчёты можно открывать для просмотра, распечатывать, сохранять на клиентских ПК или на сервере, отправлять по E-mail или Telegram - подробнее см. по ссылке. Пример вывода трендов в отчёт см. по ссылке.

Цитировать
в течении которой каждые 5 мин. происходит запись значения датчиков температур, и положения вентиляционных заслонок
Если речь о штатной системе архивации, то рекомендуем ознакомиться с описанием типов архивации по ссылке. В Simple-Scada все доступные типы архивации основаны на изменении значения переменной. Если переменная не меняла свое значение, то новая точка тренда не будет создана/записана в БД независимо от типа архивации (это позволяет экономить место в БД). Точки трендов создаются только при изменении переменной. Например, даже если установить тип архивации "По времени" и задать интервал в 5 мин, то новое значение переменной будет записано в архив только при изменении значения переменной, если прошло больше времени (от последней добавленной в архив точки), чем указано в параметре "Интервал архивации". Если в отчете необходимо формировать строки с интервалом 5 мин., то используйте периодический отчет с интервалом 300 сек.

9
Ваши вопросы / Re: Видимость для шаблонов
« : 08 Февраля 2026, 22:48:20 »
Здравствуйте.

Возможности управлять видимостью шаблонов нет и добавление такого функционала не планируется.

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

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

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

1. Описание свойств объектов можно посмотреть по ссылке. Описание свойств объектов доступных в скриптах по ссылке.
2. Свойство "Тэг" – это дополнительный параметр, который можно использовать как угодно, например для каких-либо условий и проверок в скриптах.
3. Свойство "Бит" имеется только у компонентов "Кнопка" и "Флажок". Обычно используется, когда необходимо управлять битом переменной (без использования скриптов).

Вы задавали похожий вопрос по работе с битами в этой теме.
Если требуется управлять значением или битом переменной, то используйте Кнопку или Флажок. Если нужно создать индикатор работы оборудования, то используйте Фигуру, Изображение или Текст.

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

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

Вместо нескольких отдельных переменных/битов, на ПЛК можно создать одну целочисленную переменную с нужными состояниями, например: 1 - работа, 2 - авария, 3 - пауза и затем использовать ее в скада-системе. Это самый лучший и простой способ.   

Судя по описанию, Вам необходимо создать индикатор состояния работы оборудования. Для этого можно использовать компоненты "Фигура", "Изображение" или "Текст". "Кнопка" это сложный компонент, состоящий из множества элементов. Рекомендуем использовать доступные компоненты по назначению. Если требуется управлять значением переменной, то используйте кнопку. Если нужно создать индикатор работы оборудования, то используйте Фигуру, Изображение или Текст.

Компонент "Текст" по внешнему виду можно настроить в точности как кнопку.

Чтобы написать универсальный скрипт для Вашей задачи, нужно:
1. Разместить на мнемосхеме компонент "Текст".
2. Разбить целочисленные внешние переменные на биты, как это описано по ссылке. Тогда с каждым битом переменной можно будет работать как с отдельной переменной.
3. Переменную бита аварии указать в свойстве "Переменная" объекта Текст.
4. Переменную бита работы указать в свойстве "Доп. переменная" объекта Текст.
5. Создать скрипт с типом события "Универсальный скрипт" и следующим кодом:
Код: (delphi)
begin
  if Sender is TM_Text then        // проверяем, что Sender это текст
    with Sender as TM_Text do      // приводим Sender к типу "Text"
    begin
      if AsBool then               // если основная переменная объекта = True, то
      begin
        Text := "Авария";
        Color := clRed;
      end else                     // иначе
        if VariableEx.AsBool then  // если доп. переменная объекта = True, то
        begin
          Text := "Работа";
          Color := clGreen;
        end else                   // в других случаях
        begin
          Text := "Пауза";
          Color := clGray;
        end;
   end;
end.
6. Данный скрипт назначить на два события объекта: "OnDataChange" и "OnDataChangeEx" – это нужно для того, чтобы скрипт выполнялся по изменению двух переменных.
Пример проекта во вложении.

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

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

Для описанной задачи проще всего использовать одну кнопку "с фиксацией" и двумя состояниями: Пуск и Стоп. См. пример в приложенном проекте.

Если обязательно нужно две отдельных кнопки, то потребуется:
1. Создать две кнопки с двумя состояниями.
2. Настроить требуемые цвета кнопки для каждого состояния и задать нужные значения. Например, у кнопки "ПУСК" для первого состояния задать значение 6 и серый цвет, для второго состояния задать значение 5 и зелёный цвет. По аналогии настроить кнопку "СТОП".
3. Создать универсальный скрипт для блокировки кнопки:
Код: (delphi)
begin
  if Sender is TM_Button then     // проверяем, что Sender это кнопка
    with Sender as TM_Button do   // приводим Sender к типу "TM_Button"
      // изменить доступ к кнопке в зависимости от значения переменной (сравниваем значение переменной со значением указанным в свойстве "Значение")
      Enabled := not (AsInt = States[0].Value);
end.
4. Назначить скрипт на событие "OnDataChange" кнопок.

Пример проекта во вложении.

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

Перед выполнением SQL-запроса на добавление рецепта, можно пройти по столбцу "Имя" таблицы рецептов и проверить уникальность введенного пользователем имени. Пример проекта во вложении - см. скрипт "OnDoneAddRecipeForm".

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

Скорее всего, OPC-сервер при потере связи с ПЛК/устройством записывает в переменные пустые значения, из-за чего вычисления работают некорректно. Вероятно в журнале сервера Simple-Scada имеются ошибки выполнения скрипта.

1. У некоторых OPC-серверов имеются параметры, позволяющие настроить поведение при отказах (в том числе обрыв связи с ПЛК/устройством), например записывать в переменные нули, оставлять последние достоверные значения или пустые значения. Такой параметр есть к примеру в OPC-сервере arOPC - см. скриншот во вложении. Проверьте, возможно подобные настройки имеются у Вашего OPC-сервера.
2. У Вас в скрипте при обращении к значению переменной используется свойство ".Value". Свойство ".Value" имеет тип Variant (неопределённый тип). Т.е., если переменная является строкой, то свойство ".Value" вернёт строку. Если переменная типа Boolean, то свойство ".Value" вернёт значение true или false и так далее. При вычислениях рекомендуем использовать явное приведение значения к нужному типу, например .AsInt, .AsBool и так далее. Это позволит избежать ошибок при недостоверных значениях, приходящих с OPC-сервера. Например, если переменные имеют тип "Integer", то используйте следующий код:
Код: (delphi)
begin
  Sum.Value := Configuration_PLC_P_1.AsInt + Configuration_PLC_P_2.AsInt + Configuration_PLC_P_3.AsInt;
end.

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

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