Макросы в панелях DOP. программные конструкции

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Макросы в панелях DOP. программные конструкции

Сообщение tvent »

bayk писал(а):
18 июл 2021, 17:48
Ну весь код работал просто на if. Оно закоментровано. В есть него добавлена предложенная вами конструкция.
Предлагаете в ciclle macro это все перенести??
Или тут оставить?? В цикл много кода? Вроде же совсем немного...
Ну или как отработать. Кусок кода по сигналу из контроллера более красиво??
Изначально речь шла макросе для одного бита! Маленький макрос превратился в монстра. Чем больше размер cycle/background макросов, тем больше они мешают работе Панели в целом.((

Background macro is a program that is executed repeatedly during the operation of the HMI with one line or several lines being executed at a time (not finished after executing once). It will be executed once again at the end of the last line. To define the number of lines for each Background Macro execution, go to [Options] > [Configuration] to set the Background macro update cycle with a maximum of 512 lines.

Clock Macro will be executed repeatedly in the process of the HMI operation. Unlike Background Macro, Clock Macro executes its commands all at once rather than one line or several lines at a time. Similar to Screen Cycle macro, the Clock Macro is executed repeatedly according to the
set macro delay time. You can go to [Options] > [Configuration] to set the Clock Macro Delay Time. At the end of each Clock Macro execution, it will resume its execution according to the set delay time. The default is 100 ms and the maximum is 65535 ms.

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: Макросы в панелях DOP. программные конструкции

Сообщение bayk »

По факту у меня панель вообще ничего не делает, кроме обслуживания этих макросов. Там 5 кнопок и 1 число. Да вы сами видели.
Но у меня на серваке вылезает ошибка записи параметров по рс485. Это, как мне кажется, как раз следствие попытки повторного прохода инициализациоггого условия.
Но по прежнему у меня нет других вариантов. Надо воевать с тем что есть.

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Макросы в панелях DOP. программные конструкции

Сообщение tvent »

bayk писал(а):
18 июл 2021, 19:27
Но по прежнему у меня нет других вариантов. Надо воевать с тем что есть.
Единственно, что могу посоветовать:
- Перенести макросы из Background в Cycle. Потому, как макросы в них могут выполняться параллельно.
- Убрать из макросов Delay. Если нужно что то синхронизировать - делайте это через переменные $.
- Разбить If-ы на Submacro. Этим сэкономите время на отладку и, как не странно, сократится время выполнения Cycle Macro.
Удачи!

Ответить