Це стара версія документу!
Логування подій керування (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 у браузер клієнта.
1. Python-скрипт
Розмістити ``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, якщо не зайнятий іншим сервісом.
2. ASPX-міст
Файл ``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`` на сервері.