Описание API nbfi_sender
Описание api представлено в таблице 1.
Таблица 1.
Описание |
URL |
Метод |
/nbfi_sender/api/version |
GET |
|
/nbfi_sender/api/uspd_meters |
GET |
В ответ на него придет json с версией ПО:
HTTP/1.1 200 OK Content-Type: application/json
{
"version": "1.1.0"
}
Запрос сохраненного списка устройств
При запросе сохраненного списка устройств в ответ на него придет ответ со списком устройств вида:
HTTP/1.1 200 OK Content-Type: application/json
{
"loaded_meters": [
{
"modem_id": "7898616",
"port": 58616
},
{
"modem_id": "8008474",
"port": 58474
},
{
"modem_id": "8424517",
"port": 54517
}
]
}
Описание API iec104
Данные запросы предназначены для настройки ПО iec_controller, которое осуществляет взаимодействие со SCADA-системой.
Описание api представлено в таблице 1.
Таблица 1.
Описание |
URL |
Метод |
/iec104/api/version |
GET |
|
/iec104/api/settings |
GET |
|
Установка списка ПУ, данные которых отправляются в SCADA (добавление, удаление, обновление параметров) |
/iec104/api/settings |
POST |
На запрос версии ПО в ответ на него придет json с версией:
HTTP/1.1 200 OK Content-Type: application/json
{
"version": "0.0.1"
}
Запрос списка ПУ, данные которых отправляются в SCADA
Вариант GET-запроса «/iec104/api/settings» предназначен для запроса всех устройств и их параметров, отправляемых в SCADA-систему.
В ответ на запрос приходит json вида:
HTTP/1.1 200 OK Content-Type: application/json
{
"meters": {
"7998610": {
"asdu_ca": 91002,
"meter_params": {
"0100010700FF": {
"b": 1,
"delta": 0.1,
"ioa": 101,
"is_send": true,
"k": 1,
"percent": 11,
"zero_left": -0.001,
"zero_right": 0.001
},
"0100010801FF": {
"b": 0,
"delta": 0,
"ioa": 188,
"is_send": false,
"k": 1,
"percent": 0,
"zero_left": -0.001,
"zero_right": 0.001
}
}
},
"7898694": {
"asdu_ca": 99142,
"meter_params": {
"0100010700FF": {
"b": 0,
"delta": 0,
"ioa": 101,
"is_send": true,
"k": 1,
"percent": 0,
"zero_left": -0.001,
"zero_right": 0.001
},
"0100030700FF": {
"b": 0,
"delta": 0,
"ioa": 103,
"is_send": true,
"k": 1,
"percent": 0,
"zero_left": -0.005,
"zero_right": 0.005
},
"0100090700FF": {
"b": 0,
"delta": 0,
"ioa": 109,
"is_send": true,
"k": 1.1,
"percent": 10,
"zero_left": -0.002,
"zero_right": 0.003
}
}
}
}
}
В котором находится список устройств со списком OBIS-кодов в hex-формате, которые отсылаются в SCADA-систему. Для каждого OBIS-кода существуют параметры, на основании которых OBIS-код отправляется в SCADA-систему.
Установка списка ПУ, данные которых отправляются в SCADA (добавление, удаление, обновление параметров)
Вариант POST-запроса «/iec104/api/settings» предназначен для настройки данных для отправки в SCADA-систему.
Content-Type запроса: application/json
В POST-запросе посылается json с параметрами.
Возможны пять вариантов настройки данных:
- Добавление устройства (с дефолтными параметрами или указанными параметрами);
- Удаление устройства;
- Удаление параметра;
- Изменение параметров существующего устройства;
- Изменение времени ожидания данных с ПУ.
Тип настройки задается в json в параметре «action_type».
Добавление устройства
Для добавления устройства с дефолтными параметрами в запросе нужно послать json вида:
POST http://10.1.108.8/iec104/api/settings Accept: application/json Cookie: WAVIOT_JWT="[JWT]" Content-Type: application/json; charset="UTF-8"
{ "meters": {
"8424517": {"action_type": "append", "station_id": 10808, "timestamp": 1627401753, "asdu_ca": 100500}
}
}
в разделе «meters» содержатся номера добавляемых устройств. В «action_type» должно быть «append». Перечислять OBIS-коды не нужно. В результате в SCADA-систему будут отправляться данные с указанных устройств - создается 24 дефолтных OBIS-кода.
Для добавления устройств с указанными параметрами в запросе нужно послать json вида:
POST http://10.1.108.8/iec104/api/settings Accept: application/json Cookie: WAVIOT_JWT="[JWT]" Content-Type: application/json; charset="UTF-8"
{
"meters": {
"7998610": {
"action_type": "append",
"station_id": 10808,
"timestamp": 1627401753,
"asdu_ca": 91002,
"meter_params": {
"0100010700FF": {
"b": 1,
"delta": 0.1,
"ioa": 101,
"is_send": true,
"k": 1,
"percent": 11,
"zero_left": -0.001,
"zero_right": 0.001
},
"0100010801FF": {
"b": 0,
"delta": 0,
"ioa": 188,
"is_send": false,
"k": 1,
"percent": 0,
"zero_left": -0.001,
"zero_right": 0.001
}
}
},
"7898694": {
"asdu_ca": 99142,
"meter_params": {
"0100010700FF": {
"b": 0,
"delta": 0,
"ioa": 101,
"is_send": true,
"k": 1,
"percent": 0,
"zero_left": -0.001,
"zero_right": 0.001
},
"0100030700FF": {
"b": 0,
"delta": 0,
"ioa": 103,
"is_send": true,
"k": 1,
"percent": 0,
"zero_left": -0.005,
"zero_right": 0.005
},
"0100090700FF": {
"b": 0,
"delta": 0,
"ioa": 109,
"is_send": true,
"k": 1.1,
"percent": 10,
"zero_left": -0.002,
"zero_right": 0.003
}
}
}
}
}
в разделе «meters» содержатся номера добавляемых устройств. В «action_type» должно быть «append». В разделе «meter_params» указываются OBIS-коды в hex-формате и их параметры (ioa, is_send...). При наличии указанных OBIS-кодов недостающие дефолтные OBIS-коды не создаются.
Удаление устройства
Для удаления устройства из списка отсылаемых в SCADA-систему в POST-запросе нужно послать json вида:
POST http://10.1.108.8/iec104/api/settings Accept: application/json Cookie: WAVIOT_JWT="[JWT]" Content-Type: application/json; charset="UTF-8"
{
"meters": {
"8424517": {
"action_type": "remove_meter",
"station_id": 10808,
"timestamp": 1627401753,
"asdu_ca": 100500
}
}
}
в разделе «meters» указан список устройств, которые нужно удалить. В разделе «action_type» должно быть указано «remove_meter».
Удаление параметра
Для удаления параметра в POST-запрос нужно передать json вида:
POST http://10.1.108.8/iec104/api/settings Accept: application/json Cookie: WAVIOT_JWT="[JWT]" Content-Type: application/json; charset="UTF-8"
{
"meters": {
"8424517": {
"action_type": "remove_setting",
"station_id": 10808,
"timestamp": 1627401753,
"asdu_ca": 100500,
"meter_params": {
"0100010700FF": {},
"0100030700FF": {},
"0100090700FF": {}
}
}
}
}
В «action_type» должно быть указано «remove_setting». В разделе «meter_params» указываются OBIS-коды в hex-формате, которые должны быть удалены. Параметры условия для отправки (delta, is_send и т.д.) указывать необязательно.
Изменение параметра
Для изменения параметра нужно в POST-запросе послать json вида:
POST http://10.1.108.8/iec104/api/settings Accept: application/json Cookie: WAVIOT_JWT="[JWT]" Content-Type: application/json; charset="UTF-8"
{
"meters": {
"8424517": {
"action_type": "update",
"station_id": 10808,
"timestamp": 1627401753,
"asdu_ca": 100500,
"meter_params": {
"0100010700FF": {
"b": 0,
"delta": 0,
"ioa": 101,
"is_send": true,
"k": 1,
"percent": 0,
"zero_left": -0.001,
"zero_right": 0.001
},
"0100030700FF": {
"b": 0,
"delta": 0,
"ioa": 103,
"is_send": true,
"k": 1,
"percent": 0,
"zero_left": -0.005,
"zero_right": 0.005
},
"0100090700FF": {
"b": 0,
"delta": 0,
"ioa": 109,
"is_send": true,
"k": 1.1,
"percent": 10,
"zero_left": -0.002,
"zero_right": 0.003
}
}
}
}
}
В разделе «meters» указываются номера устройств, для которого нужно изменить параметр, в разделе «action_type» должно быть «update», в разделе «meter_params» должны находиться OBIS-коды в hex-формате с новыми параметрами.
Изменение времени ожидания данных с ПУ
Для изменения времени ожидания данных с ПУ нужно в POST-запросе послать json вида:
{
"meter_timeout": 600
}
Время указывается в секундах.
Параметры OBIS-кода:
ioa - номер параметра в SCADA
is_send - признак того, передавать ли значение данного OBIS-кода в SCADA.
delta - параметр отправляется при абсолютном изменении на величину более заданной
percent - параметр отправляется при относительном изменении на величину более заданной
k и b - масштабные коэффициенты, результирующие значение параметра вычисляется по функции kx+b, где х - изначальное значение параметра
zero_left, zero_right - промежуток зануления параметра. Если, значение параметра находится в пределах от zerol_left до zero_right, то он равен 0.