scada:events

Це стара версія документу!


Логування подій керування (MWJ Audit Service)

Служба логування подій керування (вхід/вихід операторів, запис тегів) для проєкту UA_Energy_Demo_23_04.

Складається з двох частин:

  • mwj_audit_service.py — Python-скрипт, сканує журнал подій AlarmServer і віддає їх у JSON на ``127.0.0.1:5005/events``. Запускається через Task Scheduler.
  • mwj_events.aspx — сторінка на WebHMI-сервері, яка проксіює цей JSON у браузер клієнта.

Розмістити ``mwj_audit_service.py`` на сервері (наприклад, ``C:\python_portable\mwj_audit_service.py``) і зареєструвати запуск через Task Scheduler (див. інструкцію встановлення Python).

Перед запуском замінити в коді шлях до журналу під конкретний проєкт:

JOURNAL_DIR = r"C:\ProgramData\Schneider Electric\Power Operation\v2024\Data\UA_Energy_Demo_23_04\c1.AlarmServer1\Database\Journal\JnI00000"
PORT = 5005
DAYS_BACK = 7
POLL_SEC = 1
  • ``UA_Energy_Demo_23_04`` — замінити на назву поточного проєкту (частина шляху до Journal).
  • ``PORT`` — залишити 5005, якщо не зайнятий іншим сервісом.

Файл ``mwj_events.aspx`` вставити за шляхом:

C:\Program Files (x86)\Schneider Electric\Power Operation\v2024\Applications\Web\WebHmi

Код без змін (порт 5005 має співпадати з портом у Python-скрипті):

<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Clear();
        Response.ContentType = "application/json; charset=utf-8";
        Response.AppendHeader("Access-Control-Allow-Origin", "*");
 
        try
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://127.0.0.1:5005/events");
            request.Method = "GET";
            request.Timeout = 4000;
 
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    string json = reader.ReadToEnd();
                    Response.Write(json);
                }
            }
        }
        catch (Exception ex)
        {
            Response.StatusCode = 500;
            Response.Write("{\"error\": \"" + ex.Message.Replace("\"", "\\\"") + "\"}");
        }
        Response.End();
    }
</script>

Перевірка: ``https://<адреса_webhmi>/mwj_events.aspx`` має віддавати той самий JSON, що й ``http://127.0.0.1:5005/events`` на сервері.

  • scada/events.1787903354.txt.gz
  • Востаннє змінено: 2026/08/28 10:49
  • повз scada