Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: vladka767 от 22 Июля 2021, 17:18:58

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

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

Вопрос : как лучше организовать копирование?
Пока на уме только вручную переписывать скрипты, но возможно есть какой-то более элегантный и автоматизированный споссоб?
Название: Re: Копирование окон
Отправлено: metamorphogenesis от 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);

Точно так же можно поступить и с объектами. Вообще это просто общая идея, чтобы решить конкретную задачу, нужно конкретную задачу и поставить :)
Название: Re: Копирование окон
Отправлено: Simple-Scada от 25 Июля 2021, 21:55:44
Здравствуйте.

Лучший вариант для тиражирования однотипных объектов или окон - это использовать систему шаблонов (примеры здесь (https://simple-scada.com/help/manual/template.html)) и универсальные скрипты (при необходимости, примеры здесь (https://simple-scada.com/help/script/sample-scripts.html)). Собственную систему скриптов, как описал metamorphogenesis мы рекомендовали бы использовать только в крайнем случае, когда другие варианты не подходят.

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

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