|
<< 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.