<?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="uk">Документи/Як/Сформувати порушеннÑ, Ñигналізацію та ÑповіщеннÑ</h1> </div><div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="uk"><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=uk" 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> • ‎<a class="mw-pt-progress mw-pt-progress--complete" href="../ru/How_to_Violations.html" title="Документы/Как/Сформировать нарушениÑ, Ñигнализацию и ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ (100% translated)">mRussian</a> • ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">УкраїнÑька</span></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>Почергово, з виÑлуховуваннÑм</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/uk">Documents/How_to/Violations,_alarms_and_notifications/uk</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>