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

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

Автор Тема: Копирование окон  (Прочитано 4064 раз)

vladka767

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Копирование окон
« : 22 Июля 2021, 17:18:58 »
Добрый день.
Имеется проект с одной страницей мнемосхемы ( ~ 100 объектов) и десятком скриптов, которые привязаны к этим объектам, проект работает с переменными с 1го ПЛК.

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

Вопрос : как лучше организовать копирование?
Пока на уме только вручную переписывать скрипты, но возможно есть какой-то более элегантный и автоматизированный споссоб?

metamorphogenesis

  • Пользователь
  • **
  • Сообщений: 58
    • Просмотр профиля
Re: Копирование окон
« Ответ #1 : 25 Июля 2021, 17:41:38 »
Разработать и применить систему именования переменных и объектов, которая позволит использовать поиск по имени, подставив какой-то уникальный префикс, идентифицирующий источник данных, к заранее определённому имени, говорящему о назначении переменной/объекта, и пользоваться функциями getByName(). Например, у вас есть переменная count. Для одного плк этого достаточно, но если она будет хотя бы на двух и более, назовите их PLC1_count, PLC2_count, mainPLC_count, и для присвоения значения напишите такую процедуру:

Код: (delphi)
procedure setCount(const PLCName: string; const number: integer);
begin
    getVariableByName(PLCName + '_count').Value := number;
end.

Затем, вместо
Код: (delphi)
count.Value := number;

используйте вашу процедуру:
Код: (delphi)
setCount('PLC1', 4);
setCount('mainPLC', 0);

Точно так же можно поступить и с объектами. Вообще это просто общая идея, чтобы решить конкретную задачу, нужно конкретную задачу и поставить :)
« Изменён: 25 Июля 2021, 17:47:59 от metamorphogenesis »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Копирование окон
« Ответ #2 : 25 Июля 2021, 21:55:44 »
Здравствуйте.

Лучший вариант для тиражирования однотипных объектов или окон - это использовать систему шаблонов (примеры здесь) и универсальные скрипты (при необходимости, примеры здесь). Собственную систему скриптов, как описал metamorphogenesis мы рекомендовали бы использовать только в крайнем случае, когда другие варианты не подходят.


vladka767

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Копирование окон
« Ответ #3 : 03 Августа 2021, 14:56:39 »
Спасибо за советы, но они будут работать если изначально задумываться о том что нужно делать однотипные объекты.
А я уже сделал законченный объект (как я думал) а потом заказчик решил завести на скаду несколько шкафов...
Вот я и задался вопросом как это максимально автоматизировано сделать.
С учетом того что к объектам на окнах привязано достаточно много скриптов придется все переписывать руками...

Кстати, шаблоны крутая штука, скорей всего буду применять их в дальнейшем, как-то я и не обращал на них внимания!
Но было бы неплохо добавить шаблон всей страницы!