События и сообщения

<< Click to Display Table of Contents >>

Navigation:  API MasterSCADA 4D > Подключение к исполнительной системе по JSON > HTTP API MasterPLC >

События и сообщения

Методы этого раздела создают подписки на события, настраивают выборки и фильтры, выдают накопившиеся уведомления, квитируют сообщения и читают архив событий. Отдельный метод возвращает пользовательские настройки журнала ИБ.

Общий контракт

Все методы вызываются POST-запросом с JSON-объектом в теле.

Для всех методов нужна действующая сессия. В примерах sessionId передаётся в JSON; FastCGI также сначала проверяет CGI-переменную HTTP_SESSION_ID, соответствующую HTTP-заголовку Session-Id.

Прикладной результат возвращается с HTTP-статусом 200, в том числе при ненулевом code.

Успешный ответ содержит code: 0 и serverTime — время сервера в миллисекундах с начала Unix-эпохи.

Если обработчик вернул ошибку, общая инфраструктура добавляет числовой code, строковый hex и локализованное codeDescription. Ошибки JSON или сессии, перехваченные раньше в mplc_fcgi, используют errorText и не содержат serverTime. Список кодов приведён в формате запросов и ответов.

Ошибки отдельных выборок CreateMonitoredEvents возвращаются в items[].statusCode, а результаты отдельных квитирований — в recsStatus[]; корневой code при этом может остаться равным 0.

Методы CreateMonitoredEvents, DeleteMonitoredEvents, PublishEvents и RefreshEvents требуют существующий subscriptionId. Отсутствующий, неположительный или неизвестный идентификатор даёт OpcUa_BadSubscriptionIdInvalid.

При переходе контроллера в резервное состояние четыре метода подписки из предыдущего пункта возвращают OpcUa_BadShutdown. Создание и явное удаление подписки этой проверкой не блокируются.

Общие поля ответа:

Поле

Когда присутствует

Описание

code

всегда

Числовой прикладной результат; 0 означает успех

serverTime

обработчик дошёл до общей финализации

Время сервера, Unix time в миллисекундах

hex

ненулевой результат

Тот же код в шестнадцатеричном виде

codeDescription

обработчик вернул ошибочный OPC UA status

Локализованное описание кода

errorText

шлюз или прикладной обработчик сформировал пояснение

Текст ошибки JSON, сессии, прав или конфигурации

Рекомендуемый жизненный цикл подписки:

1.Вызвать CreateEventSubscription.

2.Добавить выборки через CreateMonitoredEvents.

3.При необходимости вызвать RefreshEvents, чтобы поставить в очередь снимок активных сообщений.

4.Периодически вызывать PublishEvents, подтверждая последний обработанный sequenceNumber.

5.Квитировать сообщения через AcknowledgeEvents.

6.Удалять ненужные выборки через DeleteMonitoredEvents.

7.Перед отключением вызвать DeleteEventSubscription.