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

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

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

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


Сообщения - Simple_Scada

Страницы: 1 2 3 [4] 5 6 ... 93
46
Здравствуйте.

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

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

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

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

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-серверами не гарантируется.

49
Ваши вопросы / 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.

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

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

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

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

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

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

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

За это отвечает опция "Выделять мышью активные объекты". Вы можете отключить данную опцию и перезапустить десктоп-клиент.

54
Ваши вопросы / Re: Скрипты
« : 29 Октября 2025, 20:17:50 »
Здравствуйте.

Цитировать
Каким образом возможно создать тумблер трёх позиционный, где среднее положение нейтральное положение, крайнее левое - выбран "Насос 1" и соответственно крайнее правое - "Насос 2"? Или каким образом возможно заменить тумблер на что-то подобное с возможностью выбора из списка ?
Для этого можно использовать компонент "Список", тогда можно будет выбирать требуемое положение из выпадающего списка. Или можно создать "Кнопку" с тремя состояниями, тогда при каждом нажатии на кнопку будет изменяться положение, например: "Насос 1" -> "нейтральное" -> "Насос 2". Еще один вариант, это создать три кнопки с одним состоянием, тогда при нажатии на кнопку, в переменную будет записываться фиксированное значение, например нажали "Насос 1", в переменную записалось значение 1, нажали "нейтральное" записалось 2, нажали "Насос 2" записалось 3. Ознакомиться с примерами использования кнопок можно по ссылке.

Цитировать
Возможно ли задавать два двух ламп один и тот же скрип на зажигание от одной переменной? Т.е. лампа с отвечающая за то, что включен "Насос 2" и при должна этом загораться лампа "Работа основного насоса" и при аварии эти обе  лампы должны будут затухать и загораться лампа "Авария Цеха".
Да, это возможно.
1. Чтобы не писать отдельные скрипты для каждого объекта, необходимо использовать универсальные скрипты.
2. Примеры наиболее часто используемых скриптов можно посмотреть по ссылке. Примеры скриптов для изменения цвета объекта можно найти по ссылке.
3. Для индикации работы насоса можно использовать изображение с насосом и компонент "Текст", в который выводится информация о состоянии насоса. Далее можно менять их цвет в зависимости от состояния насоса – см. пример в демо-проекте (который доступен в любой версии Simple-Scada) на странице "Шаблоны".

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

55
Цитировать
1С-ник в конце смены запускает обработку
В этом случае необходимо создать в БД свою таблицу и записывать в нее значения нужных переменных. Пример передачи текущих значений из скада-системы в сторонние приложения через БД доступен по ссылке. Далее, из 1С можно читать данные из полученной таблицы.

Другие возможные варианты передачи данных в 1С рассмотрены по ссылке.

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

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

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

Цитировать
Как можно "зафорсить" запись в БД последнего считанного значения за смену?
Опишите подробно, для чего это требуется? Какую именно задачу Вы пытаетесь решить?

Если нужно вычислить количество деталей произведенных за смену, как разницу между значением на начало смены и значением на конец смены, то в случае отчета можно использовать периодический источник данных с типом обработки -> "разница". Если данные необходимо выводить на мнемосхему, то можно использовать процедуру ArchiveValueByTime и вычислять разницу между двух значений за необходимый интервал времени. Пример использования процедуры ArchiveValueByTime с подробным описанием можно найти в руководстве по ссылке.

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

57
Ваши вопросы / Re: Инициализация таблицы
« : 01 Октября 2025, 22:31:29 »
Здравствуйте.

1. В любых непонятных ситуациях нужно в первую очередь проверить журнал сервера Simple-Scada. С большой вероятностью в нем будут содержаться ошибки или предупреждения, которые укажут, в чем именно проблема.
2. Строки и столбцы таблицы нумеруются с 0. В коде скрипта "Table1.GetCell(4, i)" идёт обращение к пятому столбцу.
3. "Table1.VariableEx.AsInt" - здесь выполняется обращение к доп. переменной таблицы, а не ячейки.
4. Если ячейке назначена основная переменная, то не имеет смысла менять текст ячейки через скрипты, т.к. скада будет автоматически заменять текст на значение связанной с ячейкой переменной.
5. В Вашем случае, текст и цвет ячейки можно менять по изменению доп. переменной, связанной с ячейкой. Для этого необходимо использовать скрипт на событие таблицы OnCellDatachangeEx (изменилось значение доп. переменной ячейки). Пример скрипта:
Код: (delphi)
begin
  if Cell.VariableEx <> nil then  // если к ячейке привязана доп. переменная
    if GetBit(Cell.VariableEx.AsInt, Cell.Row) then
    begin
      Cell.Text := 'Вкл';
      Cell.Color := clGreen;
    end else
    begin
      Cell.Text := 'Выкл';
      Cell.Color := clRed;
    end;
end.
6. Если не разберетесь, то пришлите на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите скрипт, который нужно проверить.

58
Ваши вопросы / Re: Telegram уведомления
« : 18 Сентября 2025, 22:30:48 »
Цитировать
Есть один момент если я убираю данную строку то все работает нормально. Если снова ее прописываю то сообщения перестают отправляться, в чем может быть причина?
Назначение данной строки кода описано в комментарии скрипта выше. Функция IsFirstChange позволяет пропустить первое изменение переменной. Если убрать данную строку, то при каждом перезапуске проекта, либо при разрыве/восстановлении связи с OPC-сервером, будут отправляться сообщения. Т.е., несколько раз перезапустив проект, можно получить такое же количество одинаковых сообщений в Telegram.

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

59
Ваши вопросы / Re: Telegram уведомления
« : 18 Сентября 2025, 11:16:57 »
Здравствуйте.

1. Предварительно нужно настроить параметры отправки Telegram-сообщений, подробнее см. в разделе "Настройка Telegram".
2. Для отправки Telegram-сообщения нужно использовать процедуру "SendTelegram".
3. Если требуется отправить Telegram сообщение группе пользователей, то можно использовать метод SendTelegram для группы.
4. Примеры скриптов для отправки Telegram-сообщений можно найти здесь и здесь.

К примеру, можно создать скрипт с типом события "Изменились переменные", добавить в список скрипта переменные, по которым должны отправляться оповещения и написать следующий код:
Код: (delphi)
begin
  // пропускаем первое изменение переменной, чтобы скрипт не выполнялся при перезапусках проекта
  if not IsFirstChange then
  // при необходимости добавляем в сообщение нужную информацию, например имя или описание переменной
    case Variable.AsInt of
      128 : SendTelegram ('Активирован ручной режим ' + Variable.Description);
      129 : SendTelegram ('Активирован автоматический режим ' + Variable.Description);
      130 : SendTelegram ('Активирован дистанционный режим RS-485' + Variable.Description);
    end;
end.
Данный скрипт будет отправлять сообщения в Telegram при изменении переменных, добавленных в список скрипта. Первое изменение переменных будет пропущено, чтобы сообщения не отправлялись при перезапусках проекта.

Также комментарий по приведенному Вами коду скрипта: рекомендуем использовать универсальные скрипты, тогда не нужно будет писать отдельный скрипт для каждого объекта. Исправленный вариант скрипта:
Код: (delphi)
begin
  if Sender is TM_Text then   // проверяем, что Sender это текст
    with Sender as TM_Text do // приводим Sender к типу "TM_Text"
      case AsInt of
        128 : Text := 'Ручной';
        129 : Text := 'Автоматический';
        130 : Text := 'Дистанц.RS485';
      end;
end.
Данный скрипт можно назначить всем объектам, у которых текст должен меняться по таким условиям.

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

60
Добавление перемещения и масштабирования мнемосхемы проекта в клиенте - не планируется.

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