PDA

Просмотр полной версии : Квитирование



a_gricaj
06.06.2015, 11:04
Здравствуйте,
посмотрел видео по сообщениям вроде все получается но есть вопрос:
Допустим активируется аварийный сигнал через триггер, вываливается окно сообщений с соответствующим аварийным сигналом, далее после обнуления условия аварии на входе триггера нужно сбросить этот тригер, это можно сделать с помощью кнопки "квитировать" в окне сообщений? Или может у меня вообще логика установки и сброса аварийных сигналов неправильна?
Пробывал скрипт (квитирование) но не получись. Объясните на пальцах пожалуйста как правильно этот момент делать, заранее спс!

SCADAMaster
06.06.2015, 12:27
Квитирование это не сброс аварии - это подтверждение того, что оператор увидел аварию, подтвердил ее и принял меры к ее устранению.
Зачем вы используете триггер нам не понятно.

Василий Кашуба
06.06.2015, 12:32
Здравствуйте,
посмотрел видео по сообщениям вроде все получается но есть вопрос:
Допустим активируется аварийный сигнал через триггер, вываливается окно сообщений с соответствующим аварийным сигналом, далее после обнуления условия аварии на входе триггера нужно сбросить этот тригер, это можно сделать с помощью кнопки "квитировать" в окне сообщений? Или может у меня вообще логика установки и сброса аварийных сигналов неправильна?
Пробывал скрипт (квитирование) но не получись. Объясните на пальцах пожалуйста как правильно этот момент делать, заранее спс!
Вам что одной темы мало, что вы их несколько создали? Если не получается через квитирование, сделайте через "reset".

a_gricaj
06.06.2015, 12:53
Триггер использую, что бы "засетить" аварийную ситуацию, что бы механизм не запустился при наличии аварийной ситуации. Сбросить его можно конечно используя кнопку без фиксации например, но это не удобно так как нужно квитировать сообщение в окне сообщений и потом нажать выше указаную кнопку.... Вот и хочу чтобы активному сообщению сбрасывать триггер.Плюс при большом количестве аварий нужно либо делать кнопку на каждую аварию либо одной сбрасывать все аварии, что тоже плохо...

SCADAMaster
06.06.2015, 16:17
Можно отслеживать с помощью скрипта. Пример в приложении.

Pimpl
04.02.2016, 11:06
Скажите пожалуйста, а как можно организовать всё следующим образом...Есть например отдельный экран с аварийными сигналами (каждому АС соответствующий блинкер, который мигает красным при аварии). Квитирование происходит нажатием диспетчером на данный блинкер. и при этом чтобы данное действие отображалось в журнале. Спасибо.

SCADAMaster
04.02.2016, 11:35
То есть нужно квитировать определенное сообщение нажатием кнопки?

Pimpl
04.02.2016, 14:25
По сути да. Мне просто нужно это всё сделать именно в таком графическом виде. нажимаешь блинкер , он перестаёт мигать. если авария висит то он просто горит. при этом по нажатию квитируется соответствующее этому блинкеру сообщение.

SCADAMaster
04.02.2016, 15:12
Данную задачу можно решить, но нужно использовать скрипты.
В приложении проект с различными скриптами работы с сообщениями.
Вам нужно скрипты из объектов Квитирование конкретного сообщения и Квитировать сообщение, объеденить в один - чтобы один скрипт мог отслеживать конкретное сообщение, и мог его квитировать.

Pimpl
05.02.2016, 08:07
Буду пробовать. Спасибо

energvk
04.04.2017, 11:01
Добрый день! Разбираю пример скрипта синхронизации квитирования с вашего http://blog.insat.ru/2016/08/c-masterscada_16.html. Возникает некоторое непонимание. Взвод бита переменной FromPLC квитирует сообщение, с этим всё нормально. Но вот в обратную сторону не работает. То есть квитирование сообщение в журнале не меняет переменную ToPLC, к тому же она остается неподсвеченная, то есть из этого получается, что к ней обращения не проиходило. Что я делаю не так?

И ещё вопрос. Как поступить, если бит FromPLC не соответствует текущему биты переменной, как в этом случае поступить? Т.е. для понимания Тэг Alarm-->Тэг FromPLC (0-->1, 1-->0, 8-->8, 10-->10, 11-->11). Соответственно это касается и битов ToPLC. То есть у меня одна общая переменная в ПЛК, отвечающая за квитирование и в ПЛК и в АРМ

SCADAMaster
05.04.2017, 08:33
Все должно работать корректно - данный пример используется в реальном проекте.
Цепляйтесь в студии отладчиком и смотрите что не срабатывает.
http://blog.insat.ru/2016/10/script-csharp8.html

energvk
05.04.2017, 11:05
Сейчас проверил на другом компьютере. Скрипт вроде заработал, кроме сброса первого бита. Т.е. квитирование (Alarm & 2), (Alarm & 4) и т.п. меняет переменную ToPLC, а (Alarm & 1) не реагирует. VisualStudio пока не ставил. Попытаюсь разобраться почему этот скрипт на рабочем компе не отрабатывал.

energvk
05.04.2017, 12:35
В общем на рабочем компе переустановил версию мастерскады на последнюю бету (стояла 3.8.1.57479 17Mar05(Demo)_17_03_05_03_00) (на домашнем ПК, где скрипт заработал, стояла версия 3.8.1.57719Mar18(Demo)_17_03_18_13_09). Скрипт заработал нормально.


Т.е. квитирование (Alarm & 2), (Alarm & 4) и т.п. меняет переменную ToPLC, а (Alarm & 1) не реагирует

Поменял название события с "Событие F" на "Событие 0" - стало правильно работать. (1 - стал отправляться в тэг ToPLC). Догадался выполнить такую манипуляцию, проверив "Объект 2", т.к. там стояло именно такое название и всё работало.