Получение данных

<< 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. Список кодов приведён в формате запросов и ответов.

Ошибка отдельного элемента CreateMonitoredDataItems возвращается в items[].statusCode; общий code при этом может остаться равным 0.

Во всех методах, кроме CreateDataSubscription, отсутствующий или неизвестный subscriptionId даёт OpcUa_BadSubscriptionIdInvalid.

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

Поле

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

Описание

code

всегда

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

serverTime

обработчик метода был вызван

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

hex

ошибка сформирована обработчиком или шлюзом

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

codeDescription

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

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

errorText

запрос отклонён шлюзом до вызова метода

Текст ошибки JSON, сессии или другого раннего этапа обработки

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

1.Вызвать CreateDataSubscription.

2.Добавить параметры через CreateMonitoredDataItems.

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

4.Удалять ненужные параметры через DeleteMonitoredDataItems.

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