Цитата Сообщение от Димон_11 Посмотреть сообщение
Добрый день, я новичок в MasterScada, есть такая задача:
1) У некоторых объектов есть параметр Работа(bool), который генерируется в MasterOPC по своим законам и со своими зависимостями.
2) В MasterScada настроены 2 кнопки для влияния на этот параметр: "Старт" и "Стоп" (для удобства).
3) Пользователь, когда кнопки "Старт" и "Стоп" разблокированы может на них нажимать и соответственно значение должно приходить в OPC. При этом OPC может отвергнуть это значение по своим условиям или при выборе определённой предустановки выставить нужное значение.
4) В Masterscada для управления реализовано 2 параметра: "работа" и "уставка работы". При нажатии нужной кнопки в действиях по клику мыши происходит установка параметра "уставка работы" в true или false соответственно. Параметр "работа" используется для подсветки текущего состояния.
5) В итоге, если пользователь нажал кнопку стоп -> "уставка работы" перешла в false -> данные передались в OPC -> а дальше два варианта, алгоритмом в OPC разрешено в данный момент выставить false или не разрешено -> так вот, если не разрешено, то он обратно выставляет true.

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

Как возможно это победить или оптимизировать?


P. S.
Пробовал писать fbd скрипт с таймером tonof который каждые 3 секунды по переднему фронту ставит значение из параметра "работа" в параметр "уставка работы", но при этом кнопки перестают нормально работать-> начинают по 5 раз пытаться менять значение и в итоге ничего не выходит. Да и к тому же это изначально проигрышный вариант.

Кто, что посоветует?)
Есть в протоколах параметр "Способ записи" - попробуйте поставить вместо значения по умолчанию "По изменению" значение "По изменению времени". Тогда отправка команды записи будет производиться даже если само значение не изменилось, а поменялась только метка времени значения на выходе
изображение_2025-07-02_233902292.png

С таймерами я тоже сначала пробовал - ненадёжный вариант