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

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

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

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


Сообщения - Simple_Scada

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

Через таймерные процедуры нельзя запустить обратный отсчет. Это можно реализовать используя скрипт с типом события "Таймер" и методы для работы с датой/временем. Например, чтобы уменьшить время на 1 секунду, можно использовать функцию "IncSecond" с параметром -1. Пример проекта во вложении.

2
Ваши вопросы / Re: Отчет
« : 11 Декабря 2025, 17:48:02 »
Здравствуйте.

Цитировать
Необходимо, чтобы при построении отчета, например с 10 минутным интервалом, все данные отображались, но если вдруг было аварийное сообщение, то оно отображалось своевременно? (10:00 данные, 10:10 данные, 10:13 аварийное сообщение, 10:20 данные и т.д.)
К сожалению, такой возможности нет. Совместить периодический источник с источником по сообщениям не получится.

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

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

4
Ваши вопросы / Re: Запись в 2 бита
« : 11 Декабря 2025, 17:32:06 »
Здравствуйте.

Можно удалить внешнюю переменную из свойства "Переменная", указать её в свойстве "Доп. переменная" и на событие "OnClick" кнопки использовать следующий код:
Код: (delphi)
var
  aVar : Int64;
  aSost: Boolean;
begin
  if Sender is TM_Button then
    with Sender as TM_Button do
    begin
      aSost := (GetBit(VariableEx.AsInt, Tag)) and (GetBit(VariableEx.AsInt, Tag + 2));  // получаем текущее состояние нужных битов переменной
      aVar := VariableEx.AsInt64;                         // записываем в локальную переменную значение битовой переменной
      aVar := SetBit(aVar, Tag, not aSost);               // изменяем бит указанный в свойстве "Тег"
      aVar := SetBit(aVar, Tag + 2, not aSost);           // изменяем другой необходимый бит
      VariableEx.Value := aVar;                           // записываем в битовую переменную полученное значение
    end;
end.
Первый номер бита указывается в свойстве кнопки "Тег", второй вычисляется относительно первого.

5
Цитировать
был в формате не целого числа а с двумя знаками после запятой.
Для этого переменной необходимо задать вещественный тип и настроить нужный формат. Также, в скрипте нужно использовать приведение значения переменной к вещественному типу (AsSingle).

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

Вообще, подобные вычисления следует производить на контроллере и передавать в скада-систему готовое значение, без необходимости его корректировки.

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

Для подключения к серверу Simple-Scada не требуется ничего особенного. Главное, чтобы между сервером и клиентом была связь и чтобы ничего не блокировало ее. Длина линии Ethernet не имеет значения. Можно подключиться к нашему демонстрационному web-серверу, который может находиться в тысячах километров от Вас. Со стороны скада-системы описанную проблему решить не получится. Причину проблемы следует искать в сети, либо настройках ПО, которое может влиять на работу по сети (брандмауэр, файрволл и т.д.) и в настройках сетевого оборудования (аппаратный файрволл и т.д.).

Для теста можно соединить несколько ПК в новую отдельную сеть (не связанную с сетью, в которой наблюдается проблема) и протестировать работу. Если в новой тестовой сети все работает корректно, то нужно искать отличия в настройках сети с проблемой.

Повторите описанную проблему, после чего пришлите на support@simple-scada.com целиком папку с логами "..\Simple-Scada 2\Logs" с ПК-сервера и ПК-клиента, а также укажите время возникновения проблемы. На всякий случай проверим логи.

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

Создавать объекты мнемосхемы через скрипты нельзя. Создание мнемосхем возможно только через редактор.

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

Можно только указать необходимую информацию в названии тренда:
1. Если серийный номер датчика постоянный, то можно добавить его в название тренда.
2. Можно менять название тренда через скрипты – см. процедуры "SetTrendAll" и "SetTrendClient". Например:
Код: (delphi)
begin
  // заменить на всех клиентах, в группе с ID=1 второй тренд
  // на тренд переменной MyVar и описанием 'Температура котла. Серийный номер датчика:' + значение переменной vrSNom
  SetTrendAll(1, 2, MyVar.ID, 'Температура котла. Датчик №: ' + vrSNom.AsStr);
end.

9
Ваши вопросы / Re: Масштабирование шаблона
« : 04 Декабря 2025, 11:37:37 »
Здравствуйте.

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

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

1. На Linux возможны проблемы при работе с OPC DA-серверами. В Linux рекомендуется использовать OPC UA-серверы. MasterOPC может работать в режиме UA-сервера. Также, MasterOPC может быть установлен напрямую в Linux (не в Wine) - подробнее см. по ссылке. Возможность корректной работы MasterOPC через Wine рекомендуем уточнить в техподдержке Insat.
2. При работе с локальным OPС DA-сервером, настройка DCOM не требуется. Она нужна только для работы с удаленным DA-сервером.
3. Возможно на ПК не установлены компоненты OPC Core Components, необходимые для работы с DA-серверами - скачать можно по ссылке. Если используется версия MasterOPC x86, то нужно установить компоненты x86. Если используется версия MasterOPC x64, то нужно установить компоненты x64.
4. Для Linux рекомендуем перейти на использование UA-сервера. Корректная работа с DA-серверами не гарантируется.

12
Ваши вопросы / Re: Помощь по скриптам
« : 19 Ноября 2025, 23:25:20 »
Здравствуйте.

1. Самым лучшим вариантом будет проверять нужные условия на ПЛК и записывать результат в отдельную переменную, по которой затем в скада-системе можно будет выдавать аварию.
2. Если требуется выдавать разное сообщение для каждой переменной, то используйте штатную систему сообщений. Для создания однотипных сообщений можно использовать шаблонные сообщения.
3. Если нужно формировать одно и то же сообщение при изменении любой переменной на 2, 3 или 4, то можно создать скрипт с типом "Изменились переменные", добавить в список скрипта требуемые переменные и использовать следующий код:
Код: (delphi)
begin
  // пропускаем первое изменение, чтобы сообщения не выдавались при перезапусках проекта
  if IsFirstChange then Exit;

  // выдаем сообщение если переменная изменилась на 2-4
  if (Variable.AsInt <= 4) and (Variable.AsInt >= 2) then
    AddMessage(Now, mkAlarm, 'Авария!', True, False);
end.

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

В отчетах нет функционала для решения описанной задачи. Рекомендуем использовать способ указанный выше.

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

Проще всего это можно реализовать через сообщения, по аналогии с описанием из этой темы.

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

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

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