{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Continental Control Systems", "model": "WattNode WNC", "models": ["WattNode WNC"], "vendor_website": "ctlsys.com", "description": "3-phase energy meter, Modbus RTU/TCP. FC03/04 read, FC06/16 write. Basic FP (f32): energy kWh at 1000-1006, power W at 1008-1014, voltage V at 1016-1030, freq at 1032. Advanced FP: per-phase energy+reactive+apparent at 1100-1136, PF at 1138-1144, reactive/apparent power at 1146-1160, current A at 1162-1166, demand at 1168-1180. Integer equivalents (s32 energy, s16 power/volt/current) at 1200-1220 (basic) and 1300-1361 (advanced). Config at 1600-1622. Comms at 1650-1655. Diagnostics at 1700-1722.", "revision": 2, "source": "Omni Console device library (OmniCoreST), modbus-library/continental-wattnode-wnc.toml; Source: continental-wattnode-wnc-modbus-manual.pdf (pp. 32-50). Not verified against the manufacturer's documentation", "notes": [ "Continental Control Systems WattNode WNC.", "Converted automatically from the Omni Console device library (OmniCoreST).", "Not verified against the manufacturer's documentation.", "Corrections are welcome (CONTRIBUTING.md). Change x_status once this table has been checked against the manual.", "| Continental Control Systems WattNode WNC — 3-Phase Energy Meter (Modbus RTU/TCP)", "|", "| Source: continental-wattnode-wnc-modbus-manual.pdf (pp. 32-50)", "| Models: WNC-3Y-208-MB, WNC-3Y-400-MB, WNC-3Y-480-MB, WNC-3Y-600-MB,", "| WNC-3D-240-MB, WNC-3D-400-MB, WNC-3D-480-MB", "| Protocol: Modbus RTU or TCP; FC03/FC04 read (interchangeable), FC06/FC16 write", "| Baud: 9600 or 19200 (DIP switch); overridable via register 1652", "| Register numbering: source uses 1-based numbers; TOML addresses are 0-based (source - 1).", "| 32-bit values: low 16 bits at the listed address, high 16 bits at address+1 (little-endian words).", "| Floating point: IEEE 754 f32, low word first.", "| Integer energy (s32): units of 0.1 kWh, 0.1 kVARh, or 0.1 kVAh.", "| Integer power (s16): units of PowerIntScale watts (reg 1608, default auto).", "| Integer voltage (s16): units of 0.1 V.", "| Integer current (s16): scaled by CtAmps/CurrentIntScale." ], "byte_order": "big", "word_order": "big", "address_base": 0, "x_status": "unofficial", "x_origin": "omniconsole", "registers": [ {"name": "Dummy", "area": "holding", "address": 0, "type": "uint32", "access": "R"}, {"name": "EnergySum", "area": "holding", "address": 1000, "type": "float32", "access": "R"}, {"name": "EnergyPosSum", "area": "holding", "address": 1002, "type": "float32", "access": "R"}, {"name": "EnergySumNR", "area": "holding", "address": 1004, "type": "float32", "access": "R"}, {"name": "EnergyPosSumNR", "area": "holding", "address": 1006, "type": "float32", "access": "R"}, {"name": "PowerSum", "area": "holding", "address": 1008, "type": "float32", "access": "R"}, {"name": "PowerA", "area": "holding", "address": 1010, "type": "float32", "access": "R"}, {"name": "PowerB", "area": "holding", "address": 1012, "type": "float32", "access": "R"}, {"name": "PowerC", "area": "holding", "address": 1014, "type": "float32", "access": "R"}, {"name": "VoltAvgLN", "area": "holding", "address": 1016, "type": "float32", "access": "R"}, {"name": "VoltA", "area": "holding", "address": 1018, "type": "float32", "access": "R"}, {"name": "VoltB", "area": "holding", "address": 1020, "type": "float32", "access": "R"}, {"name": "VoltC", "area": "holding", "address": 1022, "type": "float32", "access": "R"}, {"name": "VoltAvgLL", "area": "holding", "address": 1024, "type": "float32", "access": "R"}, {"name": "VoltAB", "area": "holding", "address": 1026, "type": "float32", "access": "R"}, {"name": "VoltBC", "area": "holding", "address": 1028, "type": "float32", "access": "R"}, {"name": "VoltAC", "area": "holding", "address": 1030, "type": "float32", "access": "R"}, {"name": "Freq", "area": "holding", "address": 1032, "type": "float32", "access": "R"}, {"name": "EnergyA", "area": "holding", "address": 1100, "type": "float32", "access": "R"}, {"name": "EnergyB", "area": "holding", "address": 1102, "type": "float32", "access": "R"}, {"name": "EnergyC", "area": "holding", "address": 1104, "type": "float32", "access": "R"}, {"name": "EnergyPosA", "area": "holding", "address": 1106, "type": "float32", "access": "R"}, {"name": "EnergyPosB", "area": "holding", "address": 1108, "type": "float32", "access": "R"}, {"name": "EnergyPosC", "area": "holding", "address": 1110, "type": "float32", "access": "R"}, {"name": "EnergyNegSum", "area": "holding", "address": 1112, "type": "float32", "access": "R"}, {"name": "EnergyNegSumNR", "area": "holding", "address": 1114, "type": "float32", "access": "R"}, {"name": "EnergyNegA", "area": "holding", "address": 1116, "type": "float32", "access": "R"}, {"name": "EnergyNegB", "area": "holding", "address": 1118, "type": "float32", "access": "R"}, {"name": "EnergyNegC", "area": "holding", "address": 1120, "type": "float32", "access": "R"}, {"name": "EnergyReacSum", "area": "holding", "address": 1122, "type": "float32", "access": "R"}, {"name": "EnergyReacA", "area": "holding", "address": 1124, "type": "float32", "access": "R"}, {"name": "EnergyReacB", "area": "holding", "address": 1126, "type": "float32", "access": "R"}, {"name": "EnergyReacC", "area": "holding", "address": 1128, "type": "float32", "access": "R"}, {"name": "EnergyAppSum", "area": "holding", "address": 1130, "type": "float32", "access": "R"}, {"name": "EnergyAppA", "area": "holding", "address": 1132, "type": "float32", "access": "R"}, {"name": "EnergyAppB", "area": "holding", "address": 1134, "type": "float32", "access": "R"}, {"name": "EnergyAppC", "area": "holding", "address": 1136, "type": "float32", "access": "R"}, {"name": "PowerFactorAvg", "area": "holding", "address": 1138, "type": "float32", "access": "R"}, {"name": "PowerFactorA", "area": "holding", "address": 1140, "type": "float32", "access": "R"}, {"name": "PowerFactorB", "area": "holding", "address": 1142, "type": "float32", "access": "R"}, {"name": "PowerFactorC", "area": "holding", "address": 1144, "type": "float32", "access": "R"}, {"name": "PowerReacSum", "area": "holding", "address": 1146, "type": "float32", "access": "R"}, {"name": "PowerReacA", "area": "holding", "address": 1148, "type": "float32", "access": "R"}, {"name": "PowerReacB", "area": "holding", "address": 1150, "type": "float32", "access": "R"}, {"name": "PowerReacC", "area": "holding", "address": 1152, "type": "float32", "access": "R"}, {"name": "PowerAppSum", "area": "holding", "address": 1154, "type": "float32", "access": "R"}, {"name": "PowerAppA", "area": "holding", "address": 1156, "type": "float32", "access": "R"}, {"name": "PowerAppB", "area": "holding", "address": 1158, "type": "float32", "access": "R"}, {"name": "PowerAppC", "area": "holding", "address": 1160, "type": "float32", "access": "R"}, {"name": "CurrentA", "area": "holding", "address": 1162, "type": "float32", "access": "R"}, {"name": "CurrentB", "area": "holding", "address": 1164, "type": "float32", "access": "R"}, {"name": "CurrentC", "area": "holding", "address": 1166, "type": "float32", "access": "R"}, {"name": "Demand", "area": "holding", "address": 1168, "type": "float32", "access": "R"}, {"name": "DemandMin", "area": "holding", "address": 1170, "type": "float32", "access": "R"}, {"name": "DemandMax", "area": "holding", "address": 1172, "type": "float32", "access": "R"}, {"name": "DemandApp", "area": "holding", "address": 1174, "type": "float32", "access": "R"}, {"name": "DemandA", "area": "holding", "address": 1176, "type": "float32", "access": "R"}, {"name": "DemandB", "area": "holding", "address": 1178, "type": "float32", "access": "R"}, {"name": "DemandC", "area": "holding", "address": 1180, "type": "float32", "access": "R"}, {"name": "EnergySum integer", "area": "holding", "address": 1200, "type": "int32", "access": "R"}, {"name": "EnergyPosSum integer", "area": "holding", "address": 1202, "type": "int32", "access": "R"}, {"name": "EnergySumNR integer", "area": "holding", "address": 1204, "type": "int32", "access": "R"}, {"name": "EnergyPosSumNR integer", "area": "holding", "address": 1206, "type": "int32", "access": "R"}, {"name": "PowerSum integer", "area": "holding", "address": 1208, "type": "int16", "access": "R"}, {"name": "PowerA integer", "area": "holding", "address": 1209, "type": "int16", "access": "R"}, {"name": "PowerB integer", "area": "holding", "address": 1210, "type": "int16", "access": "R"}, {"name": "PowerC integer", "area": "holding", "address": 1211, "type": "int16", "access": "R"}, {"name": "VoltAvgLN integer", "area": "holding", "address": 1212, "type": "int16", "access": "R"}, {"name": "VoltA integer", "area": "holding", "address": 1213, "type": "int16", "access": "R"}, {"name": "VoltB integer", "area": "holding", "address": 1214, "type": "int16", "access": "R"}, {"name": "VoltC integer", "area": "holding", "address": 1215, "type": "int16", "access": "R"}, {"name": "VoltAvgLL integer", "area": "holding", "address": 1216, "type": "int16", "access": "R"}, {"name": "VoltAB integer", "area": "holding", "address": 1217, "type": "int16", "access": "R"}, {"name": "VoltBC integer", "area": "holding", "address": 1218, "type": "int16", "access": "R"}, {"name": "VoltAC integer", "area": "holding", "address": 1219, "type": "int16", "access": "R"}, {"name": "Freq integer", "area": "holding", "address": 1220, "type": "int16", "access": "R"}, {"name": "EnergyA integer", "area": "holding", "address": 1300, "type": "int32", "access": "R"}, {"name": "EnergyB integer", "area": "holding", "address": 1302, "type": "int32", "access": "R"}, {"name": "EnergyC integer", "area": "holding", "address": 1304, "type": "int32", "access": "R"}, {"name": "EnergyPosA integer", "area": "holding", "address": 1306, "type": "int32", "access": "R"}, {"name": "EnergyPosB integer", "area": "holding", "address": 1308, "type": "int32", "access": "R"}, {"name": "EnergyPosC integer", "area": "holding", "address": 1310, "type": "int32", "access": "R"}, {"name": "EnergyNegSum integer", "area": "holding", "address": 1312, "type": "int32", "access": "R"}, {"name": "EnergyNegSumNR integer", "area": "holding", "address": 1314, "type": "int32", "access": "R"}, {"name": "EnergyNegA integer", "area": "holding", "address": 1316, "type": "int32", "access": "R"}, {"name": "EnergyNegB integer", "area": "holding", "address": 1318, "type": "int32", "access": "R"}, {"name": "EnergyNegC integer", "area": "holding", "address": 1320, "type": "int32", "access": "R"}, {"name": "EnergyReacSum integer", "area": "holding", "address": 1322, "type": "int32", "access": "R"}, {"name": "EnergyReacA integer", "area": "holding", "address": 1324, "type": "int32", "access": "R"}, {"name": "EnergyReacB integer", "area": "holding", "address": 1326, "type": "int32", "access": "R"}, {"name": "EnergyReacC integer", "area": "holding", "address": 1328, "type": "int32", "access": "R"}, {"name": "EnergyAppSum integer", "area": "holding", "address": 1330, "type": "int32", "access": "R"}, {"name": "EnergyAppA integer", "area": "holding", "address": 1332, "type": "int32", "access": "R"}, {"name": "EnergyAppB integer", "area": "holding", "address": 1334, "type": "int32", "access": "R"}, {"name": "EnergyAppC integer", "area": "holding", "address": 1336, "type": "int32", "access": "R"}, {"name": "PowerFactorAvg integer", "area": "holding", "address": 1338, "type": "int16", "access": "R"}, {"name": "PowerFactorA integer", "area": "holding", "address": 1339, "type": "int16", "access": "R"}, {"name": "PowerFactorB integer", "area": "holding", "address": 1340, "type": "int16", "access": "R"}, {"name": "PowerFactorC integer", "area": "holding", "address": 1341, "type": "int16", "access": "R"}, {"name": "PowerReacSum integer", "area": "holding", "address": 1342, "type": "int16", "access": "R"}, {"name": "PowerReacA integer", "area": "holding", "address": 1343, "type": "int16", "access": "R"}, {"name": "PowerReacB integer", "area": "holding", "address": 1344, "type": "int16", "access": "R"}, {"name": "PowerReacC integer", "area": "holding", "address": 1345, "type": "int16", "access": "R"}, {"name": "PowerAppSum integer", "area": "holding", "address": 1346, "type": "int16", "access": "R"}, {"name": "PowerAppA integer", "area": "holding", "address": 1347, "type": "int16", "access": "R"}, {"name": "PowerAppB integer", "area": "holding", "address": 1348, "type": "int16", "access": "R"}, {"name": "PowerAppC integer", "area": "holding", "address": 1349, "type": "int16", "access": "R"}, {"name": "CurrentA integer", "area": "holding", "address": 1350, "type": "int16", "access": "R"}, {"name": "CurrentB integer", "area": "holding", "address": 1351, "type": "int16", "access": "R"}, {"name": "CurrentC integer", "area": "holding", "address": 1352, "type": "int16", "access": "R"}, {"name": "Demand integer", "area": "holding", "address": 1353, "type": "int16", "access": "R"}, {"name": "DemandMin integer", "area": "holding", "address": 1354, "type": "int16", "access": "R"}, {"name": "DemandMax integer", "area": "holding", "address": 1355, "type": "int16", "access": "R"}, {"name": "DemandApp integer", "area": "holding", "address": 1356, "type": "int16", "access": "R"}, {"name": "DemandA integer", "area": "holding", "address": 1357, "type": "int16", "access": "R"}, {"name": "DemandB integer", "area": "holding", "address": 1358, "type": "int16", "access": "R"}, {"name": "DemandC integer", "area": "holding", "address": 1359, "type": "int16", "access": "R"}, {"name": "IoPinState", "area": "holding", "address": 1360, "type": "uint16", "access": "R"}, {"name": "PulseCount", "area": "holding", "address": 1361, "type": "uint16", "access": "R"}, {"name": "ConfigPasscode", "area": "holding", "address": 1600, "type": "uint32", "access": "R"}, {"name": "CtAmps", "area": "holding", "address": 1602, "type": "uint16", "access": "R"}, {"name": "CtAmpsA", "area": "holding", "address": 1603, "type": "uint16", "access": "R"}, {"name": "CtAmpsB", "area": "holding", "address": 1604, "type": "uint16", "access": "R"}, {"name": "CtAmpsC", "area": "holding", "address": 1605, "type": "uint16", "access": "R"}, {"name": "CtDirections", "area": "holding", "address": 1606, "type": "uint16", "access": "R"}, {"name": "Averaging", "area": "holding", "address": 1607, "type": "uint16", "access": "R"}, {"name": "PowerIntScale", "area": "holding", "address": 1608, "type": "uint16", "access": "R"}, {"name": "DemPerMins", "area": "holding", "address": 1609, "type": "uint16", "access": "R"}, {"name": "DemSubints", "area": "holding", "address": 1610, "type": "uint16", "access": "R"}, {"name": "GainAdjustA", "area": "holding", "address": 1611, "type": "uint16", "access": "R"}, {"name": "GainAdjustB", "area": "holding", "address": 1612, "type": "uint16", "access": "R"}, {"name": "GainAdjustC", "area": "holding", "address": 1613, "type": "uint16", "access": "R"}, {"name": "PhaseAdjustA", "area": "holding", "address": 1614, "type": "int16", "access": "R"}, {"name": "PhaseAdjustB", "area": "holding", "address": 1615, "type": "int16", "access": "R"}, {"name": "PhaseAdjustC", "area": "holding", "address": 1616, "type": "int16", "access": "R"}, {"name": "CreepLimit", "area": "holding", "address": 1617, "type": "uint16", "access": "R"}, {"name": "PhaseOffset", "area": "holding", "address": 1618, "type": "uint16", "access": "R"}, {"name": "ZeroEnergy", "area": "holding", "address": 1619, "type": "uint16", "access": "R"}, {"name": "ZeroDemand", "area": "holding", "address": 1620, "type": "uint16", "access": "R"}, {"name": "CurrentIntScale", "area": "holding", "address": 1621, "type": "uint16", "access": "R"}, {"name": "IoPinMode", "area": "holding", "address": 1622, "type": "uint16", "access": "R"}, {"name": "ApplyComConfig", "area": "holding", "address": 1650, "type": "uint16", "access": "R"}, {"name": "Address", "area": "holding", "address": 1651, "type": "uint16", "access": "R"}, {"name": "BaudRate", "area": "holding", "address": 1652, "type": "uint16", "access": "R"}, {"name": "ParityMode", "area": "holding", "address": 1653, "type": "uint16", "access": "R"}, {"name": "ModbusMode", "area": "holding", "address": 1654, "type": "uint16", "access": "R"}, {"name": "ReplyDelay", "area": "holding", "address": 1655, "type": "uint16", "access": "R"}, {"name": "SerialNumber", "area": "holding", "address": 1700, "type": "uint32", "access": "R"}, {"name": "UptimeSecs", "area": "holding", "address": 1702, "type": "uint32", "access": "R"}, {"name": "TotalSecs", "area": "holding", "address": 1704, "type": "uint32", "access": "R"}, {"name": "Model", "area": "holding", "address": 1706, "type": "uint16", "access": "R"}, {"name": "Version", "area": "holding", "address": 1707, "type": "uint16", "access": "R"}, {"name": "Options", "area": "holding", "address": 1708, "type": "uint16", "access": "R"}, {"name": "ErrorStatus", "area": "holding", "address": 1709, "type": "uint16", "access": "R"}, {"name": "PowerFailCount", "area": "holding", "address": 1710, "type": "uint16", "access": "R"}, {"name": "CrcErrorCount", "area": "holding", "address": 1711, "type": "uint16", "access": "R"}, {"name": "FrameErrorCount", "area": "holding", "address": 1712, "type": "uint16", "access": "R"}, {"name": "PacketErrorCount", "area": "holding", "address": 1713, "type": "uint16", "access": "R"}, {"name": "OverrunCount", "area": "holding", "address": 1714, "type": "uint16", "access": "R"} ] }