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

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

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

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


Сообщения - Simple_Scada

Страницы: 1 [2] 3 4 ... 92
16
Здравствуйте.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вместо нескольких отдельных переменных/битов, на ПЛК можно создать одну целочисленную переменную с нужными состояниями, например: 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" – это нужно для того, чтобы скрипт выполнялся по изменению двух переменных.
Пример проекта во вложении.

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

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

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

Если обязательно нужно две отдельных кнопки, то потребуется:
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" кнопок.

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

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

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

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

Скорее всего, 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-сервера.

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

Свяжите объекты с требуемой переменной и у каждого объекта в свойстве "Тэг" укажите номер бита, по которому должен меняться цвет (биты нумеруются с нуля). Далее, нужно написать один универсальный скрипт приведенный ниже и назначить его на событие OnDataChange требуемых объектов.
Код: (delphi)
begin
  if Sender is TM_Object then            // проверяем, что Sender это объект
    with Sender as TM_Object do          // приводим Sender к типу "TM_Object"
      if GetBit(AsInt, Tag) then         // если значение бита, указанного в свойстве "Тег" объекта равно True, то
        Color := clGreen                 // изменить цвет объекта на зеленый
      else                               // иначе
        Color := clRed;                  // изменить цвет объекта на красный
end.

26
Ваши вопросы / Re: Работа процедуры Dial
« : 15 Января 2026, 20:37:29 »
Скада-система лишь передает на модем AT-команду и далее всё зависит от модема. Если используемый модем возвращает какую-либо информацию о выполнении AT-команды, то можно вызвать звонок через RunAT и затем обработать ответ от модема в скрипте по событию "Ответ от GSM-модема".

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

Если при выполнении SQL-запроса возникнут проблемы, то СУБД вернет ошибку. Обработать ошибки в SQL-запросах можно в скрипе "Ошибка SQL-запроса".

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

1. Какой OPC-сервер используется на удаленном ПК, DA или UA?
2. Пришлите для проверки на support@simple-scada.com с ПК-сервера целиком папку с логами "..\Simple-Scada 2\Logs".

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

У объекта "Текст" перенос производится автоматически, в зависимости от ширины объекта. Можно написать требуемый текст и затем меняя ширину объекта добиться нужного отображения. Если текст заполняется из скрипта, то для переноса необходимо добавить в текст символ перехода на новую строку, например:
Код: (delphi)
begin
  Text1.Text := 'строка 1' + #13#10 + 'строка 2';
end.

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

Цитировать
Существует ли возможность переключения отображения активных, неподтверждённых сообщений в компоненте "список сообщений" для отдельных групп?
На данный момент вывести в список сообщений активные/неподтверждённые сообщения только из определённой группы нельзя. Постараемся добавить такую возможность в будущих обновлениях.

Возможно подойдет следующая настройка: если проектом управляют несколько операторов, то можно создать несколько групп пользователей и настроить им видимость необходимых страниц и групп сообщений. Тогда при просмотре групп "Активные сообщения" или "Неподтверждённые", каждая группа пользователей будет видеть активные/неподтверждённые сообщения только из доступных ей групп.

Цитировать
в штате 2 программиста. Могут ли они работать над одним проектом одновременно?
Вести одновременную разработку одного проекта на разных ПК возможности нет. В будущем мы планируем добавить функции импорта/экспорта между проектами – это один из популярных запросов. Но какой-то определенный срок появления такой возможности сейчас назвать сложно.

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