Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: AndreyShilov от 31 Июля 2025, 17:46:50

Название: Квитирование по кнопке в контроллер
Отправлено: AndreyShilov от 31 Июля 2025, 17:46:50
Добрый вечер, хочу, чтобы по нажатию кнопки "Подтвердить" квитировать сообщения и отправить сигнал квитирования в контроллер, как мне это можно сделать? К примеру активно сейчас сообщение "Авария насоса". Пользователь нажмет "Подтвердить" и в этот момент пропадет сообщение и одновременно отправится сигнал квитирования в контроллер. Возможно к этой кнопке можно как-то привязать сигнал bool значением которой управляла бы эта кнопка? 
Название: Re: Квитирование по кнопке в контроллер
Отправлено: Simple_Scada от 01 Августа 2025, 09:15:54
Здравствуйте.

Чтобы при подтверждении (квитировании) сообщения (https://simple-scada.com/help/manual/client.html?anchor=confbtn) в переменную, с которой связано сообщение, записывался ноль, можно использовать свойство сообщения "Сброс (https://clck.ru/3NQDzK)".

Если сигнал квитирования на ПЛК реализован через одну переменную, то вместо штатной панели сообщений можно создать свою (https://simple-scada.com/help/script/buttons-instead-pages.html?anchor=ex2). Кнопку подтверждения нужно связать с требуемой переменной и оставить у кнопки одно состояние со значением 0. Тогда при нажатии на нее в переменную будет записываться значение 0.
Название: Re: Квитирование по кнопке в контроллер
Отправлено: vba от 22 Января 2026, 11:57:09
Добрый день.
Похожая проблема с квитированием, не стал делать новую тему.
Алармы формируются в ПЛК, поэтому для ПЛК нужен признак квитирования каждого аларма в отдельности от scada. Изначально собрал алармы в word (биты 1-4). В свойствах сообщения взвел Сброс (Message 1 на скрине). Если алармы квитировать по одному, то все работает.
Если будут одновременно активны несколько алармов, и нажать Квитировать все, то у меня в слове алармов сбрасывается только один бит, самый старший по номеру из активных. Т.е. если биты 1 и 2 были в 1, то при нажатии Квитировать все, сбрасывается только бит 2. В ПЛК сделал логику в начале функционального блока по отлову и запоминанию падающего фронта битов алармов (запоминание факта квитирования от scada), дальше эти биты опять переписывается в 1, т.к. условия алармов еще активны.
Пробовал делать тестовый word, который не переписывается постоянно в ПЛК, привязывал алармы к его битам. Работало нормально, все биты сбрасывались при нажатии Квитировать все.
Пока остановился на варианте передачи алармов на scada отдельными битовыми переменными, не собранными в word (Message 2...5 на скрине). Так кнопка Квитировать все работает.
Было бы хорошо у сообщения иметь поле Квитировано, которое можно было бы привязать к параметру и передавать в ПЛК.
Название: Re: Квитирование по кнопке в контроллер
Отправлено: Simple-Scada от 27 Января 2026, 15:16:05
Здравствуйте.

Спасибо за информацию, причину выявили, добавим исправление в ближайшее обновление.
Название: Re: Квитирование по кнопке в контроллер
Отправлено: vba от 28 Января 2026, 08:14:18
Когда примерно выйдет обновление?
Надо решить как проект делать.
Название: Re: Квитирование по кнопке в контроллер
Отправлено: Simple-Scada от 28 Января 2026, 21:46:19
Включили исправление в обновление 2.7.4.0. Скачать можно по прежним ссылкам.

Цитировать
Надо решить как проект делать.
Рекомендуем работать с битами внешних переменных (получаемых с OPC-сервера) только на чтение (если ваш OPC-сервер и ПЛК не поддерживает прямую адресацию на уровне битов).

Для записи значений в биты переменной лучше всегда использовать отдельные Boolean переменные, вместо работы с битами. Это касается не только скады, но и любого другого ПО, которое может менять биты во внешней (опрашиваемой) переменной. Причина в следующем:
В результате всегда возможны конфликты:
Поэтому, менять биты должен только источник данных, все остальные должны только читать биты.
Название: Re: Квитирование по кнопке в контроллер
Отправлено: npp от 23 Мая 2026, 07:46:07
Частенько встречается этот вопрос на форумах, желаю поделиться своим мнением.
Для чего вообще отправлять в ПЛК сигнал квитирования сообщения (аварии)?
Квитирование - это "подтверждение приёма-передачи структурной единицы информации". Т.е. квитирование требуется только в Скаде для гашения сообщения об произошедшем событии (ворнинге, аларме), а главное - для сохранения в логи факта подтверждения ознакомления оператора с данным событием. Чтобы впоследствии оператора можно было наказать по причине "знал и бездействовал" и прикрыть опу программиста.
А при возникновении условий, приведших к останову единицы оборудования, то бишь "аварии", взводить отдельный бит в ПЛК, блокирующий повторный запуск неисправного узла. Вот этот бит сбрасывать отдельной кнопкой "Сброс аварии" в Скаде. И у каждого исполнительного механизма должен быть такой персональный бит в ПЛК, персональный индикатор аварии и персональная кнопка в Скаде (наравне с прочими кнопками управления механизма).
Возлагать сброс бита аварии на кнопку "квитирование" - значит вводить действия, не согласующиеся с определением надписи на кнопке.
Разумеется, дополнительно можно нарисовать кнопки, квитирующие все сообщения разом и сбрасывающие все аварии всех узлов (и эти кнопки пользуются большой популярностью у операторов), но эти кнопки отдельные с соответствующими надписями.
И лучше применять однозначно понимаемое слово "Подтвердить" вместо "Квитировать" (от нем. quittieren).