<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> <html class="client-nojs" dir="ltr" lang="en"> <head> <meta charset="UTF-8" /> <title>Документы/Как/Сформировать нарушениÑ, Ñигнализацию и ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ - OpenSCADAWiki</title> <meta content="MediaWiki 1.26.4" name="generator" /> <link href="https://www.gnu.org/copyleft/fdl.html" rel="copyright" /> <link href="../en/files/doc.css" rel="stylesheet" /></head> <body><div class="floatright"><a href="index.html"><img alt="OpenSCADA" src="../en/files/index.png" /></a></div><div id="mw_header"> <div class="mw-indicators"> </div> <h1 id="firstHeading" lang="ru">Документы/Как/Сформировать нарушениÑ, Ñигнализацию и уведомлениÑ</h1> </div><div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="ru"><div class="mw-pt-translate-header noprint" dir="ltr" lang="en">This page is a <span class="plainlinks"><a class="external text" href="http://oscada.org/wiki/index.php?title=Special:Translate&group=page-Documents%2FHow+to%2FViolations%2C+alarms+and+notifications&action=page&filter=&language=ru" rel="nofollow noreferrer noopener" target="_blank">translated version</a></span> of the page <a class="external" href="http://oscada.org/wiki/Documents/How_to/Violations,_alarms_and_notifications" title="Documents/How to/Violations, alarms and notifications">Documents/How to/Violations, alarms and notifications</a> and the translation is 100% complete.</div><hr /><div class="mw-pt-languages" dir="ltr" lang="en"><div class="mw-pt-languages-list autonym"><a class="mw-pt-languages-ui mw-pt-progress mw-pt-progress--complete" href="../en/How_to_Violations.html" title="Documents/How to/Violations, alarms and notifications (100% translated)">English</a> • ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">mRussian</span> • ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../uk/How_to_Violations.html" title="Документи/Як/Сформувати порушеннÑ, Ñигналізацію та ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ (100% translated)">УкраїнÑька</a></div></div> <div style="float:right; border:1px solid gray; width:300px; padding:2px; margin-left: 10pt; margin-bottom: 10pt;"> <ul><li> <b>Ðвтор:</b> <a class="external" href="http://oscada.org/wiki/User:RomanSavochenko" title="User:RomanSavochenko">Роман Савоченко</a></li></ul> </div> <p>ÐÐ°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ð¸ работа Ñ Ð½Ð¸Ð¼Ð¸ в OpenSCADA реализуетÑÑ Ð´Ð²Ð¾Ñко, что ÑвÑзано Ñо Ñтруктурой OpenSCADA, ÑпоÑобами её иÑпользованиÑ, а также Ñамой природой нарушений. </p><p>Первой Ñтороной нарушений, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ OpenSCADA работает изначально и ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ воÑтребована, ÑвлÑетÑÑ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ðµ различными ÑпоÑобами. ПоÑкольку уведомление Ñто чаÑÑ‚ÑŒ интерфейÑа Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ‚Ð¾ и реализованы они в движке визуализации <a href="Modules/VCAEngine.html" title="Special:MyLanguage/Modules/VCAEngine">UI.VCAEngine</a> и визуализаторах <a href="Modules/Vision.html" title="Special:MyLanguage/Modules/Vision">UI.Vision</a>, <a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">UI.WebVision</a>. Ðа данный момент, <a href="Modules/WebVision.html#Alarms" title="Special:MyLanguage/Modules/WebVision">механизм уведомлений о нарушениÑÑ…</a> реализует функции, чаÑÑ‚ÑŒ из которых ещё не реализована в <a href="Modules/WebVision.html" title="Special:MyLanguage/Modules/WebVision">UI.WebVision</a>: </p> <ul><li> Уведомление: <ul><li> <i>Визуально</i> — мигание цветом Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°, группы Ñигнализации и общего ÑтатуÑа.</li> <li> <i>Гудком</i> — выдача непрерывного Ñигнала, обычно на ÑиÑтемный "бузер" и незавиÑимо от нарушениÑ.</li> <li> <i>Звуком</i> — проигрывание звукового файла или Ñинтез речи из текÑта, ÑвÑзанного Ñ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸ÐµÐ¼.</li> <li> РаÑширенными оÑобыми ÑпоÑобами и через Ñпециальные механизмы уведомлениÑ.</li></ul></li> <li> Квитирование (утихомиривание) ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ нарушении: <ul><li> <i>ПолноÑтью</i> — по нажатию на цветной мигающий кружок ÑтатуÑа нарушений (Ñобытие "ws_alarmLev"), внизу Ñправа.</li> <li> <i>По ÑпоÑобу уведомлениÑ</i> — отдельно визуальную (Ñобытие "ws_alarmNtf0"), гудок (Ñобытие "ws_alarmNtf1"), звуковую (Ñобытие "ws_alarmNtf2") и раÑширенный (Ñообщение "ws_alarmNtf{N}"); по нажатию кнопки Ñ ÑоответÑтвующим изображением Ñнизу Ñправа или под кнопками видов отображениÑ.</li> <li> <i>По объекту нарушениÑ</i> — к образу визуального предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ добавлÑÑ‚ÑŒÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° квитации ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ð¾ÑредÑтвенно по нему.</li> <li> <i>Поочерёдно, c выÑлушиванием</i> — характерно Ð´Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ð¹ звуком, поÑкольку каждый объект Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ предоÑтавлÑÑ‚ÑŒ Ñвоё звуковое уведомление или Ñинтез речи.</li></ul></li></ul> <p>Ð’ Ñреде визуализации, при реализации уведомлений, нет уÑтановленного правила Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°ÐºÐ° нарушениÑ, поÑкольку нет однозначноÑти в разных ÑитуациÑÑ…. Ðа данный момент, на <a href="Libs_Main.html" title="Special:MyLanguage/Libs/Main">Ñтороне типизированных шаблонов иÑточника данных</a>, практикуетÑÑ ÑпоÑоб Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð° ошибки "err" Ñ ÐºÐ¾Ð´Ð°Ð¼Ð¸ и текÑтом нарушениÑ, а их обработка и формирование ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ÑущеÑтвлÑетÑÑ ÑƒÐ¶Ðµ в Ñамом визуальном образе объекта данных. Иногда обработка границ уÑтавок также оÑущеÑтвлÑетÑÑ Ð½ÐµÐ¿Ð¾ÑредÑтвенно в визуальном образе объекта данных. </p><p>ВпоÑледÑтвии возникла необходимоÑÑ‚ÑŒ протоколированиÑ, а также учёта актуальных на текущий момент нарушений. ЕÑли Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ñтаточно Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñообщений программы Ñ Ð¾Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ð¾Ð¹ категорией и форматом ÑообщениÑ, то Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð·Ð° текущими нарушениÑми необходим некий буфер. Такой буфер был добавлен, в виде надÑтройки над подÑиÑтемой Ñообщений, а адреÑÐ°Ñ†Ð¸Ñ Ðº нему оÑущеÑтвлÑетÑÑ Ð¸Ð½Ð²ÐµÑ€Ñией ÑƒÑ€Ð¾Ð²Ð½Ñ ÑообщениÑ. Так, запиÑÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ "-2" и категорией "TEST" помеÑтит Ñообщение в буфер нарушений и продублирует его в архиве Ñообщений. При запроÑе Ñообщений Ñ Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ уровнем, ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ братьÑÑ Ð¸Ð· буфера нарушений. Удаление-ÑнÑтие Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ð¾ÑущеÑтвлÑетÑÑ Ð·Ð°Ð¿Ð¸Ñью ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ð¹ же категорией "TEST" и неотрицательным уровнем. </p><p>Ð¢Ð°ÐºÐ°Ñ ÐºÐ¾Ð½Ñ†ÐµÐ¿Ñ†Ð¸Ñ ÑƒÑ‡Ñ‘Ñ‚Ð° активных нарушений позволÑет иÑпользовать Ñтандартные механизмы работы Ñ ÑообщениÑми: </p> <ul><li> РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ: <i>SYS.message("alCategory", -3, "Параметр: нарушение");</i></li> <li> СнÑтие нарушениÑ: <i>SYS.message("alCategory", 1, "Параметр: норма");</i></li> <li> Формирование ÑпиÑка активных нарушений: поÑредÑтвом примитива "Протокол" или "Документ", Ñ Ð¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼ уровнем, Ð´Ð»Ñ Ð²Ñех — "-1".</li></ul> <p>РегиÑтрацию нарушений лучше вÑего оÑущеÑтвлÑÑ‚ÑŒ на Ñтороне <a href="DAQ.html#LogicLev" title="Special:MyLanguage/Documents/DAQ">типизированных шаблонов иÑточника данных</a>, поÑредÑтвом Ñпециальной функции <b>SYS.DAQ["Modul"]["Controller"].<a href="User_API.html#SYS.DAQ" title="Special:MyLanguage/Documents/User API">alarmSet</a>(string mess, int lev = -5, string prm = "", bool force = false)</b> или её варіанта проÑтранÑтва параметра <b>SYS.DAQ["Modul"]["Controller"]["Parameter"].<a href="User_API.html#SYS.DAQ" title="Special:MyLanguage/Documents/User API">alarmSet</a>(string mess, int lev = -5, bool force = false)</b>, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑƒÐ½Ð¸Ñ„Ð¸Ñ†Ð¸Ñ€ÑƒÐµÑ‚ категорию. Ð”Ð»Ñ Ð²Ñ‹Ð·Ð¾Ð²Ð° Ñтих функций из контекÑта шаблона нужно добавить Ð’Ð’ "this" типа "Объект", поÑле чего уÑтановка Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ иметь вид <b>this.alarmSet("Параметр: нарушение", -5);</b>. Ð£ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ÑпользуетÑÑ Ð²Ð¾ многих модулÑÑ… иÑточников данных, Ð´Ð»Ñ ÑƒÑ‡Ñ‘Ñ‚Ð° глобальных нарушений объектов контроллеров. Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑтавлÑет контроль Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка Ñообщений к буферу Ñообщений, то еÑÑ‚ÑŒ вы можете Ñпокойно оÑущеÑтвлÑÑ‚ÑŒ повторную генерацию и очиÑтку нарушений Ñтой функцией без Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð° Ñообщений и что может быть полезным Ð´Ð»Ñ Ð¿ÐµÑ€Ð¸Ð¾Ð´Ð¸Ñ‡ÐµÑкой актуализации ÑоÑтоÑний нарушениÑ. </p><p>Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€ÑƒÐµÑ‚ нарушение Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸ÐµÐ¹ <b>al{ModId}:{CntrId}[.{PrmId}]</b> и текÑтом <b>{CntrNm} > {PrmNm}: {MessText}</b>, где: </p> <ul><li> <i>ModId</i> — идентификатор модулÑ;</li> <li> <i>CntrId</i> — идентификатор объекта контроллера;</li> <li> <i>PrmId</i> — идентификатор параметра, из аргумента <i>prm</i> в форме <b>{PrmId}\n{PrmNm}</b>;</li> <li> <i>CntrNm</i> — название объекта контроллера;</li> <li> <i>PrmNm</i> — название параметра, из аргумента <i>prm</i> в форме <b>{PrmId}\n{PrmNm}</b>;</li> <li> <i>MessText</i> — текÑÑ‚ ÑообщениÑ.</li></ul> <p>Формат текÑта Ñтой функцией не регламентируетÑÑ, но <a href="Program_manual.html#ArchMess" title="Special:MyLanguage/Documents/Program manual">еÑÑ‚ÑŒ практика Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑта нарушениÑ</a>, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ ÐºÐ°Ð´Ñ€Ð°Ð¼Ð¸ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚Ñ‡Ñ‘Ñ‚Ð½Ð¾Ð¹ документации вроде "<a href="Libs_Documents.html#docAlarmsRep" title="Special:MyLanguage/Libs/Documents">Протокол нарушений</a>", где применÑетÑÑ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚: <b>{PrmId}: {PrmName}: {Alarm}</b> и где дополнительно определено: </p> <ul><li> <i>PrmName</i> — Ð¸Ð¼Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°;</li> <li> <i>Alarm</i> — текÑÑ‚ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ "ÐОРМÐ" Ð´Ð»Ñ ÑнÑÑ‚Ð¸Ñ Ð½Ð°Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ.</li></ul> <p><a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../en/files/At.png" width="22" /></a> Ð’ целом нужно отметить, что ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ учёт нарушений Ñто разные механизмы, которые могут иÑпользоватьÑÑ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð¾ — Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑÑ‚Ñ‹Ñ… проектов или вмеÑте — Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ…-комплекÑных проектов. </p> </div><table style="border-top: dotted 2px #999999; margin-top: 20pt; color: gray;" width="100%"><tr><td style="text-align: left;" width="40%"><a href="http://oscada.org/wiki/Documents/How_to/Violations,_alarms_and_notifications/ru">Documents/How_to/Violations,_alarms_and_notifications/ru</a> - <a href="http://oscada.org/en/main/about-the-project/licenses/">GFDL</a></td><td style="text-align: center;">March 2025</td><td style="text-align: right;" width="40%">OpenSCADA 1+r3012</td></tr></table></body> </html>