16 244
правки
м (→Описание: Поправил) |
м (→WB-MAP3H: WB-MAP3H → WB-MAP3E) |
||
Строка 732: | Строка 732: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== WB- | === WB-MAP3E === | ||
Устройство [[WB- | Устройство [[WB-MAP3E_Power_Meter|WB-MAP3E]] — трехканальный счетчик электроэнергии. Он измеряет большое количество параметров электрической сети. Поскольку опрос всех регистров такого устройства может занять достаточно много времени, есть несколько шаблонов, содержащих оптимальный набор параметров для решения текущей задачи. Мы рассмотрим шаблон из поставки драйвера. | ||
<syntaxhighlight lang="JSON"> | <syntaxhighlight lang="JSON"> | ||
{ | { | ||
"device_type": "WB-MAP3E fw2", | |||
"device": { | |||
"name": "WB-MAP3E fw2", | |||
"id": "wb-map3e", | |||
"max_read_registers": 60, | |||
"response_timeout_ms": 1, | |||
"frame_timeout_ms": 15, | |||
"channels": [ | |||
{ | |||
"name": "L1", | |||
"id": "", | |||
"device_type": "phase L1" | |||
}, | |||
{ | |||
"name": "L2", | |||
"id": "", | |||
"device_type": "phase L2", | |||
"stride": 1 | |||
}, | |||
{ | |||
"name": "L3", | |||
"id": "", | |||
"device_type": "phase L3", | |||
"stride": 2 | |||
}, | |||
{ | |||
"name": "Total P", | |||
"reg_type": "input", | |||
"address": "0x1300", | |||
"type": "power", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Total Q", | |||
"reg_type": "input", | |||
"address": "0x1308", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Total S", | |||
"reg_type": "input", | |||
"address": "0x1310", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Total PF", | |||
"reg_type": "input", | |||
"address": "0x10bc", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.001, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Total AP energy", | |||
"reg_type": "input", | |||
"address": "0x1200", | |||
"type": "power_consumption", | |||
"format": "u64", | |||
"scale": 1e-05, | |||
"round_to": 1e-06, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "Total RP energy", | |||
"reg_type": "input", | |||
"address": "0x1220", | |||
"type": "value", | |||
"format": "u64", | |||
"scale": 1e-05, | |||
"round_to": 1e-06, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "Frequency", | |||
"reg_type": "input", | |||
"address": "0x10f8", | |||
"type": "value", | |||
"format": "u16", | |||
"scale": 0.01, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Uptime", | |||
"reg_type": "input", | |||
"address": 104, | |||
"format": "u32", | |||
"enabled": false | |||
}, | |||
{ | |||
"name": "Supply voltage", | |||
"reg_type": "input", | |||
"address": 121, | |||
"scale": 0.001, | |||
"type": "voltage", | |||
" | "enabled": false | ||
} | |||
], | |||
"subdevices": [ | |||
{ | |||
"device_type": "phase L1", | |||
"device": { | |||
"parameters": { | |||
"turns": { | |||
"title": "Turns", | |||
"order": 1, | |||
"address": "0x1460", | |||
"min": 0 | |||
}, | |||
"phi": { | |||
"title": "Phi", | |||
"order": 2, | |||
"address": "0x1463", | |||
"min": 0 | |||
} | |||
}, | |||
"channels": [ | |||
{ | |||
"name": "Urms", | |||
"id": "Urms L1", | |||
"reg_type": "input", | |||
"address": "0x1410", | |||
"type": "voltage", | |||
"format": "u32", | |||
"scale": 1.52588e-07, | |||
"round_to": 0.001 | |||
}, | |||
{ | |||
"name": "Upeak", | |||
"id": "Upeak L1", | |||
"reg_type": "input", | |||
"address": "0x1810", | |||
"type": "voltage", | |||
"format": "s32", | |||
"scale": 0.01, | |||
"round_to": 0.01, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "Voltage angle", | |||
"id": "Voltage angle L1", | |||
"reg_type": "input", | |||
"address": "0x10fd", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.1, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Irms", | |||
"id": "Irms L1", | |||
"reg_type": "input", | |||
"address": "0x1416", | |||
"type": "value", | |||
"format": "u32", | |||
"scale": 2.44141e-07, | |||
"round_to": 0.0001 | |||
}, | |||
{ | |||
"name": "Ipeak", | |||
"id": "Ipeak L1", | |||
"reg_type": "input", | |||
"address": "0x1818", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.016, | |||
"round_to": 0.01, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "P", | |||
"id": "P L1", | |||
"reg_type": "input", | |||
"address": "0x1302", | |||
"type": "power", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Q", | |||
"id": "Q L1", | |||
"reg_type": "input", | |||
"address": "0x130a", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "S", | |||
"id": "S L1", | |||
"reg_type": "input", | |||
"address": "0x1312", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "PF", | |||
"id": "PF L1", | |||
"reg_type": "input", | |||
"address": "0x10bd", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.001, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "AP energy", | |||
"id": "AP energy L1", | |||
"reg_type": "input", | |||
"address": "0x1204", | |||
"type": "power_consumption", | |||
"format": "u64", | |||
"scale": 1e-05, | |||
"round_to": 1e-06, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "RP energy", | |||
"id": "RP energy L1", | |||
"reg_type": "input", | |||
"address": "0x1224", | |||
"type": "value", | |||
"format": "u64", | |||
"scale": 1e-05, | |||
"round_to": 1e-06, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "Phase angle", | |||
"id": "Phase angle L1", | |||
"reg_type": "input", | |||
"address": "0x10f9", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.1, | |||
"round_to": 0.01 | |||
} | |||
] | |||
} | |||
}, | |||
{ | |||
"device_type": "phase L2", | |||
"device": { | |||
"parameters": { | |||
"turns": { | |||
"title": "Turns", | |||
"order": 1, | |||
"address": "0x1460", | |||
"min": 0 | |||
}, | |||
"phi": { | |||
"title": "Phi", | |||
"order": 2, | |||
"address": "0x1463", | |||
"min": 0 | |||
} | |||
}, | |||
"channels": [ | |||
{ | |||
"name": "Urms", | |||
"id": "Urms L2", | |||
"reg_type": "input", | |||
"address": "0x1410", | |||
"type": "voltage", | |||
"format": "u32", | |||
"scale": 1.52588e-07, | |||
"round_to": 0.001 | |||
}, | |||
{ | |||
"name": "Upeak", | |||
"id": "Upeak L2", | |||
"reg_type": "input", | |||
"address": "0x1810", | |||
"type": "voltage", | |||
"format": "s32", | |||
"scale": 0.01, | |||
"round_to": 0.01, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "Voltage angle", | |||
"id": "Voltage angle L2", | |||
"reg_type": "input", | |||
"address": "0x10fd", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.1, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Irms", | |||
"id": "Irms L2", | |||
"reg_type": "input", | |||
"address": "0x1416", | |||
"type": "value", | |||
"format": "u32", | |||
"scale": 2.44141e-07, | |||
"round_to": 0.0001 | |||
}, | |||
{ | |||
"name": "Ipeak", | |||
"id": "Ipeak L2", | |||
"reg_type": "input", | |||
"address": "0x1818", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.016, | |||
"round_to": 0.01, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "P", | |||
"id": "P L2", | |||
"reg_type": "input", | |||
"address": "0x1302", | |||
"type": "power", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Q", | |||
"id": "Q L2", | |||
"reg_type": "input", | |||
"address": "0x130a", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "S", | |||
"id": "S L2", | |||
"reg_type": "input", | |||
"address": "0x1312", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "PF", | |||
"id": "PF L2", | |||
"reg_type": "input", | |||
"address": "0x10bd", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.001, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "AP energy", | |||
"id": "AP energy L2", | |||
"reg_type": "input", | |||
"address": "0x1204", | |||
"type": "power_consumption", | |||
"format": "u64", | |||
"scale": 1e-05, | |||
"round_to": 1e-06, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "RP energy", | |||
"id": "RP energy L2", | |||
"reg_type": "input", | |||
"address": "0x1224", | |||
"type": "value", | |||
"format": "u64", | |||
"scale": 1e-05, | |||
"round_to": 1e-06, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "Phase angle", | |||
"id": "Phase angle L2", | |||
"reg_type": "input", | |||
"address": "0x10f9", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.1, | |||
"round_to": 0.01 | |||
} | |||
] | |||
} | |||
}, | |||
{ | |||
"device_type": "phase L3", | |||
"device": { | |||
"parameters": { | |||
"turns": { | |||
"title": "Turns", | |||
"order": 1, | |||
"address": "0x1460", | |||
"min": 0 | |||
}, | |||
"phi": { | |||
"title": "Phi", | |||
"order": 2, | |||
"address": "0x1463", | |||
"min": 0 | |||
} | |||
}, | |||
"channels": [ | |||
{ | |||
"name": "Urms", | |||
"id": "Urms L3", | |||
"reg_type": "input", | |||
"address": "0x1410", | |||
"type": "voltage", | |||
"format": "u32", | |||
"scale": 1.52588e-07, | |||
"round_to": 0.001 | |||
}, | |||
{ | |||
"name": "Upeak", | |||
"id": "Upeak L3", | |||
"reg_type": "input", | |||
"address": "0x1810", | |||
"type": "voltage", | |||
"format": "s32", | |||
"scale": 0.01, | |||
"round_to": 0.01, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "Voltage angle", | |||
"id": "Voltage angle L3", | |||
"reg_type": "input", | |||
"address": "0x10fd", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.1, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Irms", | |||
"id": "Irms L3", | |||
"reg_type": "input", | |||
"address": "0x1416", | |||
"type": "value", | |||
"format": "u32", | |||
"scale": 2.44141e-07, | |||
"round_to": 0.0001 | |||
}, | |||
{ | |||
"name": "Ipeak", | |||
"id": "Ipeak L3", | |||
"reg_type": "input", | |||
"address": "0x1818", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.016, | |||
"round_to": 0.01, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "P", | |||
"id": "P L3", | |||
"reg_type": "input", | |||
"address": "0x1302", | |||
"type": "power", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "Q", | |||
"id": "Q L3", | |||
"reg_type": "input", | |||
"address": "0x130a", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "S", | |||
"id": "S L3", | |||
"reg_type": "input", | |||
"address": "0x1312", | |||
"type": "value", | |||
"format": "s32", | |||
"scale": 0.00512, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "PF", | |||
"id": "PF L3", | |||
"reg_type": "input", | |||
"address": "0x10bd", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.001, | |||
"round_to": 0.01 | |||
}, | |||
{ | |||
"name": "AP energy", | |||
"id": "AP energy L3", | |||
"reg_type": "input", | |||
"address": "0x1204", | |||
"type": "power_consumption", | |||
"format": "u64", | |||
"scale": 1e-05, | |||
"round_to": 1e-06, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "RP energy", | |||
"id": "RP energy L3", | |||
"reg_type": "input", | |||
"address": "0x1224", | |||
"type": "value", | |||
"format": "u64", | |||
"scale": 1e-05, | |||
"round_to": 1e-06, | |||
"word_order": "little_endian" | |||
}, | |||
{ | |||
"name": "Phase angle", | |||
"id": "Phase angle L3", | |||
"reg_type": "input", | |||
"address": "0x10f9", | |||
"type": "value", | |||
"format": "s16", | |||
"scale": 0.1, | |||
"round_to": 0.01 | |||
} | |||
] | |||
} | |||
} | |||
] | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 1148: | Строка 1289: | ||
Также показательным является параметр, описывающий накопленную реактивную энергию по фазе L1: | Также показательным является параметр, описывающий накопленную реактивную энергию по фазе L1: | ||
<syntaxhighlight lang="JSON"> | <syntaxhighlight lang="JSON"> | ||
{ | |||
"name": "RP energy", | |||
"id": "RP energy L1", | |||
"reg_type": "input", | |||
"address": "0x1224", | |||
"type": "value", | |||
"format": "u64", | |||
"scale": 1e-05, | |||
"round_to": 1e-06, | |||
"word_order": "little_endian" | |||
}, | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Здесь стоит обратить внимание на то, что адрес регистра может задаваться и в шестнадцатеричном виде: <code>"address": "0x1224"</code>, вещественный коэффициент масштабирования можно задавать в экспоненциальной записи: <code>"scale": | Здесь стоит обратить внимание на то, что адрес регистра может задаваться и в шестнадцатеричном виде: <code>"address": "0x1224"</code>, вещественный коэффициент масштабирования можно задавать в экспоненциальной записи: <code>"scale": 1e-05</code>, при считывании значения округлять его до нужного порядка: <code>"round_to": 1e-06</code>, а также учитывать, что число в modbus-регистрах хранится в порядке от младшего к старшему: <code>"word_order": "little_endian"</code>. | ||
Форматы хранения для 16-битных modbus-регистров описываются следующим образом: | Форматы хранения для 16-битных modbus-регистров описываются следующим образом: | ||
<pre> | <pre> |