|
<< Click to Display Table of Contents >> Navigation: API MasterSCADA 4D > Подключение к исполнительной системе по JSON > HTTP API MasterPLC > Получение данных > /Methods/CreateDataSubscription |
Создаёт пустую подписку и возвращает её subscriptionId. Параметры добавляются отдельным вызовом CreateMonitoredDataItems.
HTTP: POST /Methods/CreateDataSubscription
{
"sessionId": 123456789,
"requestedPublishingInterval": 1000,
"requestedLifetimeInterval": 60000,
"maxNotificationsPerPublish": 100,
"maxSize": 1048576
}
Поле |
Тип |
Обязательное |
По умолчанию |
Описание |
|---|---|---|---|---|
sessionId |
integer |
условно |
— |
Нужен, если сессия не передана заголовком Session-Id |
requestedPublishingInterval |
integer |
нет |
1000 |
Запрошенный период публикации, мс |
requestedLifetimeInterval |
integer |
нет |
60000 |
Допустимое время без обращений к подписке, мс; значение 0 заменяется на 60000 |
maxNotificationsPerPublish |
integer |
нет |
0 |
Максимум записей в одном пакете; при 0 сервер вычисляет лимит из допустимого размера ответа |
maxSize |
integer |
нет |
лимит ответа |
Запрошенный предел размера ответа PublishData, байт |
{
"subscriptionId": 1,
"revisedPublishingInterval": 1000,
"revisedLifetimeInterval": 60000,
"serverTime": 1710000000123,
"code": 0
}
Поле |
Тип |
Описание |
|---|---|---|
subscriptionId |
integer |
Идентификатор созданной подписки; используется во всех следующих вызовах |
revisedPublishingInterval |
integer |
Принятый сервером период публикации, мс |
revisedLifetimeInterval |
integer |
Принятый сервером период неактивности, мс |
serverTime |
integer |
Время сервера, Unix time в миллисекундах |
code |
integer |
0 при успешном создании |
•Неактивные подписки проверяются раз в 10 секунд, поэтому фактическое удаление может произойти позднее revisedLifetimeInterval, но не более чем примерно на один период проверки.
•В текущей реализации requestedPublishingInterval сохраняется и возвращается клиенту, но не запускает серверный таймер публикации: частоту вызовов PublishData задаёт клиент.
•maxSize сохраняется в подписке, но при формировании ответа PublishData пока не используется.
•Диапазоны числовых настроек подписки не проверяются; клиент должен передавать неотрицательные значения.
•Подписка хранится в памяти процесса и не привязана к создавшей её HTTP-сессии. Текущая реализация разрешает обратиться к ней из другой действующей сессии, если известен subscriptionId.
•При резервном состоянии контроллера метод возвращает OpcUa_BadShutdown.