From 567966d4f12cc47f77f9f68e080338c8e0772196 Mon Sep 17 00:00:00 2001 From: lixiaoyuan Date: Sat, 11 Oct 2025 19:30:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BD=91=E5=85=B3=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E8=AE=BE=E7=BD=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/Release/assets/config/regaddrs-new.json | 49 +- .../assets/config/regaddrs-online.json | 902 ------------------ bin/Release/assets/config/regaddrsShow.json | 3 +- src/app/Config.h | 2 + src/app/Station.cpp | 94 +- src/app/Station.h | 9 + src/database/MysqlClient.cpp | 1 + src/protocol/HttpEntity.cpp | 4 +- src/protocol/MqttEntity.cpp | 2 +- src/qt/QWSwitch.cpp | 200 ++++ src/qt/QWSwitch.h | 74 ++ src/qt/widgets/QWHome.cpp | 24 +- 12 files changed, 408 insertions(+), 956 deletions(-) delete mode 100644 bin/Release/assets/config/regaddrs-online.json create mode 100644 src/qt/QWSwitch.cpp create mode 100644 src/qt/QWSwitch.h diff --git a/bin/Release/assets/config/regaddrs-new.json b/bin/Release/assets/config/regaddrs-new.json index 6e5358d..97e348e 100644 --- a/bin/Release/assets/config/regaddrs-new.json +++ b/bin/Release/assets/config/regaddrs-new.json @@ -278,30 +278,31 @@ {"key": "0x1022", "datatype": "uint16", "alert": 0, "name":"电操状态NO", "remark": "1闭合,0断开"}, {"key": "0x1023", "datatype": "uint16", "alert": 0, "name":"远程关机NO", "remark": "1开机,0无效"}, {"key": "0x1024", "datatype": "uint16", "alert": 0, "name":"远程开机NO", "remark": "1开机,0无效"}, - {"key": "0x1025", "datatype": "uint16", "alert": 0, "name":"BA故障信号NO", "remark": "1故障,0正常"}, - {"key": "0x1026", "datatype": "uint16", "alert": 0, "name":"PCS_01状态", "remark": "1在线,0掉线"}, - {"key": "0x1027", "datatype": "uint16", "alert": 0, "name":"PCS_02状态", "remark": "1在线,0掉线"}, - {"key": "0x1028", "datatype": "uint16", "alert": 0, "name":"PCS_03状态", "remark": "1在线,0掉线"}, - {"key": "0x1029", "datatype": "uint16", "alert": 0, "name":"PCS_04状态", "remark": "1在线,0掉线"}, - {"key": "0x102A", "datatype": "uint16", "alert": 0, "name":"PCS_05状态", "remark": "1在线,0掉线"}, - {"key": "0x102B", "datatype": "uint16", "alert": 0, "name":"PCS_06状态", "remark": "1在线,0掉线"}, - {"key": "0x102C", "datatype": "uint16", "alert": 0, "name":"PCS_07状态", "remark": "1在线,0掉线"}, - {"key": "0x102D", "datatype": "uint16", "alert": 0, "name":"PCS_09状态", "remark": "1在线,0掉线"}, - {"key": "0x102E", "datatype": "uint16", "alert": 0, "name":"PCS_10状态", "remark": "1在线,0掉线"}, - {"key": "0x102F", "datatype": "uint16", "alert": 1, "name":"PCS_01下发设置", "remark": "1故障,0正常"}, - {"key": "0x1030", "datatype": "uint16", "alert": 1, "name":"PCS_02下发设置", "remark": "1故障,0正常"}, - {"key": "0x1031", "datatype": "uint16", "alert": 1, "name":"PCS_03下发设置", "remark": "1故障,0正常"}, - {"key": "0x1032", "datatype": "uint16", "alert": 1, "name":"PCS_04下发设置", "remark": "1故障,0正常"}, - {"key": "0x1033", "datatype": "uint16", "alert": 1, "name":"PCS_05下发设置", "remark": "1故障,0正常"}, - {"key": "0x1034", "datatype": "uint16", "alert": 1, "name":"PCS_06下发设置", "remark": "1故障,0正常"}, - {"key": "0x1035", "datatype": "uint16", "alert": 1, "name":"PCS_07下发设置", "remark": "1故障,0正常"}, - {"key": "0x1036", "datatype": "uint16", "alert": 1, "name":"PCS_08下发设置", "remark": "1故障,0正常"}, - {"key": "0x1037", "datatype": "uint16", "alert": 1, "name":"PCS_09下发设置", "remark": "1故障,0正常"}, - {"key": "0x1038", "datatype": "uint16", "alert": 1, "name":"PCS_10下发设置", "remark": "1:故障,0正常"}, - {"key": "0x1039", "datatype": "uint16", "alert": 1, "name":"内部DSP通信故障", "remark": "1:故障,0正常"}, - {"key": "0x103A", "datatype": "uint16", "alert": 1, "name":"BMS CAN通信故障", "remark": "1:故障,0正常"}, - {"key": "0x103B", "datatype": "uint16", "alert": 1, "name":"下发设置失败", "remark": "1:故障,0正常"}, - {"key": "0x103C", "datatype": "uint16", "alert": 1, "name":"手动/自动并离网状态", "remark": "1:自动,0手动"} + {"key": "0x1025", "datatype": "uint16", "alert": 1, "name":"BA故障信号NO", "remark": "1故障,0正常"}, + {"key": "0x1026", "datatype": "uint16", "alert": 1, "name":"PCS_01状态", "remark": "1在线,0掉线"}, + {"key": "0x1027", "datatype": "uint16", "alert": 1, "name":"PCS_02状态", "remark": "1在线,0掉线"}, + {"key": "0x1028", "datatype": "uint16", "alert": 1, "name":"PCS_03状态", "remark": "1在线,0掉线"}, + {"key": "0x1029", "datatype": "uint16", "alert": 1, "name":"PCS_04状态", "remark": "1在线,0掉线"}, + {"key": "0x102A", "datatype": "uint16", "alert": 1, "name":"PCS_05状态", "remark": "1在线,0掉线"}, + {"key": "0x102B", "datatype": "uint16", "alert": 1, "name":"PCS_06状态", "remark": "1在线,0掉线"}, + {"key": "0x102C", "datatype": "uint16", "alert": 1, "name":"PCS_07状态", "remark": "1在线,0掉线"}, + {"key": "0x102D", "datatype": "uint16", "alert": 1, "name":"PCS_08状态", "remark": "1在线,0掉线"}, + {"key": "0x102E", "datatype": "uint16", "alert": 1, "name":"PCS_09状态", "remark": "1在线,0掉线"}, + {"key": "0x102F", "datatype": "uint16", "alert": 1, "name":"PCS_10状态", "remark": "1在线,0掉线"}, + {"key": "0x1030", "datatype": "uint16", "alert": 1, "name":"PCS_01下发设置", "remark": "1故障,0正常"}, + {"key": "0x1031", "datatype": "uint16", "alert": 1, "name":"PCS_02下发设置", "remark": "1故障,0正常"}, + {"key": "0x1032", "datatype": "uint16", "alert": 1, "name":"PCS_03下发设置", "remark": "1故障,0正常"}, + {"key": "0x1033", "datatype": "uint16", "alert": 1, "name":"PCS_04下发设置", "remark": "1故障,0正常"}, + {"key": "0x1034", "datatype": "uint16", "alert": 1, "name":"PCS_05下发设置", "remark": "1故障,0正常"}, + {"key": "0x1035", "datatype": "uint16", "alert": 1, "name":"PCS_06下发设置", "remark": "1故障,0正常"}, + {"key": "0x1036", "datatype": "uint16", "alert": 1, "name":"PCS_07下发设置", "remark": "1故障,0正常"}, + {"key": "0x1037", "datatype": "uint16", "alert": 1, "name":"PCS_08下发设置", "remark": "1故障,0正常"}, + {"key": "0x1038", "datatype": "uint16", "alert": 1, "name":"PCS_09下发设置", "remark": "1故障,0正常"}, + {"key": "0x1039", "datatype": "uint16", "alert": 1, "name":"PCS_10下发设置", "remark": "1:故障,0正常"}, + {"key": "0x103A", "datatype": "uint16", "alert": 1, "name":"内部DSP通信故障", "remark": "1:故障,0正常"}, + {"key": "0x103B", "datatype": "uint16", "alert": 1, "name":"BMS CAN通信故障", "remark": "1:故障,0正常"}, + {"key": "0x103C", "datatype": "uint16", "alert": 1, "name":"下发设置失败", "remark": "1:故障,0正常"}, + {"key": "0x103D", "datatype": "uint16", "alert": 0, "name":"手动/自动并离网状态", "remark": "1:自动,0手动"} ] }, "PCS_YC":{ diff --git a/bin/Release/assets/config/regaddrs-online.json b/bin/Release/assets/config/regaddrs-online.json deleted file mode 100644 index b6a9f1a..0000000 --- a/bin/Release/assets/config/regaddrs-online.json +++ /dev/null @@ -1,902 +0,0 @@ -{ - "EMS_YT":{ - "addr":[ - {"key": "0x0001", "datatype": "uint16", "alert": 0, "name":"EMS工作模式", "remark": "0:无效1:本地控制模式, EMS不接受平台调控2:平台控制模式, EMS接收平台调控指令(-)"}, - {"key": "0x0002", "datatype": "int16", "alert": 0, "name":"有功功率", "remark": "并网恒功率模式下交流侧功率值:<0: 充电功率0: 静置>0: 放电功率(kW)"}, - {"key": "0x0003", "datatype": "uint16", "alert": 0, "name":"PCS开关机", "remark": "0: 关机1: 开机(-)"}, - {"key": "0x0004", "datatype": "uint16", "alert": 0, "name":"主控对象", "remark": "储能遥控对象:0:无效1:华云2:轻舟"}, - {"key": "0x0005", "datatype": "int16", "alert": 0, "name":"A相有功功率", "remark": "(1kW)"}, - {"key": "0x0006", "datatype": "int16", "alert": 0, "name":"B相有功功率", "remark": "(1kW)"}, - {"key": "0x0007", "datatype": "int16", "alert": 0, "name":"C相有功功率", "remark": "(1kW)"}, - {"key": "0x0008", "datatype": "int16", "alert": 0, "name":"三相总有功功率", "remark": "(1kW)"}, - {"key": "0x0009", "datatype": "int16", "alert": 0, "name":"A相无功功率", "remark": "(1kVar)"}, - {"key": "0x000A", "datatype": "int16", "alert": 0, "name":"B相无功功率", "remark": "(1kVar)"}, - {"key": "0x000B", "datatype": "int16", "alert": 0, "name":"C相无功功率", "remark": "(1kVar)"}, - {"key": "0x000C", "datatype": "int16", "alert": 0, "name":"三相总无功功率", "remark": "(1kVar)"}, - {"key": "0x000D", "datatype": "int16", "alert": 0, "name":"A相电流", "remark": "(0.01A)"}, - {"key": "0x000E", "datatype": "int16", "alert": 0, "name":"B相电流", "remark": "(0.01A)"}, - {"key": "0x000F", "datatype": "int16", "alert": 0, "name":"C相电流", "remark": "(0.01A)"}, - {"key": "0x0010", "datatype": "uint16", "alert": 0, "name":"A相电压", "remark": "(1V)"}, - {"key": "0x0011", "datatype": "uint16", "alert": 0, "name":"B相电压", "remark": "(1V)"}, - {"key": "0x0012", "datatype": "uint16", "alert": 0, "name":"C相电压", "remark": "(1V)"}, - {"key": "0x0013", "datatype": "int16", "alert": 0, "name":"A相交流功率因数", "remark": "(0.01)"}, - {"key": "0x0014", "datatype": "int16", "alert": 0, "name":"B相交流功率因数", "remark": "(0.01)"}, - {"key": "0x0015", "datatype": "int16", "alert": 0, "name":"C相交流功率因数", "remark": "(0.01)"}, - {"key": "0x0016", "datatype": "int16", "alert": 0, "name":"A相视在功率", "remark": "(1kVA)"}, - {"key": "0x0017", "datatype": "int16", "alert": 0, "name":"B相视在功率", "remark": "(1kVA)"}, - {"key": "0x0018", "datatype": "int16", "alert": 0, "name":"C相视在功率", "remark": "(1kVA)"}, - {"key": "0x0019", "datatype": "int16", "alert": 0, "name":"正向总有功总需量", "remark": "(1kW)"}, - {"key": "0x001A", "datatype": "int16", "alert": 0, "name":"数据有效性", "remark": "0无效 1有效"}, - {"key": "0x001B", "datatype": "uint16", "alert": 0, "name":"EMS工作模式", "remark": "0:无效1:本地控制模式, EMS不接受平台调控2:平台控制模式, EMS接收平台调控指令(-)"}, - {"key": "0x001C", "datatype": "uint16", "alert": 0, "name":"有功功率", "remark": "并网恒功率模式下交流侧功率值:功率绝对值 没有正负(kW)"}, - {"key": "0x001D", "datatype": "uint16", "alert": 0, "name":"充放电类型", "remark": "0: 关机1: 充电2:放电3:待机(-)"}, - {"key": "0x001E", "datatype": "uint16", "alert": 0, "name":"最大SOC", "remark": ""}, - {"key": "0x001F", "datatype": "uint16", "alert": 0, "name":"最小SOC", "remark": ""}, - {"key": "0x0020", "datatype": "uint16", "alert": 0, "name":"自动并离网", "remark": "0:手动1:自动"}, - {"key": "0x0021", "datatype": "uint16", "alert": 0, "name":"并网离网", "remark": "0:并网1:离网"} - ] - }, - "EMS_YX":{ - "addr":[ - {"key": "0x2001", "datatype": "uint16", "alert": 0, "name":"BMS(电池堆)通信状态", "remark": "0:正常1:故障"}, - {"key": "0x2002", "datatype": "uint64", "alert": 0, "name":"BCU(电池簇)通信状态", "remark": "0:正常1:故障"}, - {"key": "0x2006", "datatype": "uint16", "alert": 0, "name":"PCU(主控)通信状态", "remark": "0:正常1:故障"}, - {"key": "0x2007", "datatype": "uint64", "alert": 0, "name":"PCS(模块)通信状态", "remark": "0:正常1:故障"}, - {"key": "0x200B", "datatype": "uint16", "alert": 0, "name":"电表总接点通信状态", "remark": "0:正常1:故障"}, - {"key": "0x200C", "datatype": "uint32", "alert": 0, "name":"电表通信状态", "remark": "0:正常1:故障"}, - {"key": "0x200E", "datatype": "uint16", "alert": 0, "name":"消防通信状态", "remark": "0:正常1:故障"}, - {"key": "0x200F", "datatype": "uint16", "alert": 0, "name":"UPS通信状态", "remark": "0:正常1:故障"}, - {"key": "0x2010", "datatype": "uint16", "alert": 0, "name":"温湿度总接点通信状态", "remark": "0:正常1:故障"}, - {"key": "0x2011", "datatype": "uint32", "alert": 0, "name":"温湿度通信状态", "remark": "0:正常1:故障"}, - {"key": "0x2013", "datatype": "uint16", "alert": 0, "name":"空调总接点通信状态", "remark": "0:正常1:故障"}, - {"key": "0x2014", "datatype": "uint32", "alert": 0, "name":"空调通信状态", "remark": "0:正常1:故障"}, - {"key": "0x2016", "datatype": "uint16", "alert": 0, "name":"控制干接点(配电系统)状态", "remark": "0:开路1:闭合"}, - {"key": "0x2017", "datatype": "uint16", "alert": 0, "name":"状态干接点(配电系统)状态", "remark": "0:开路1:闭合"}, - {"key": "0x2018", "datatype": "uint16", "alert": 0, "name":"BCU总通信状态", "remark": "0:正常 1:告警 2:故障"}, - {"key": "0x2019", "datatype": "uint16", "alert": 0, "name":"PCU总通信状态", "remark": "0:正常 1:告警 2:故障"}, - {"key": "0x201A", "datatype": "uint16", "alert": 0, "name":"电表总通信状态", "remark": "0:正常 1:告警 2:故障"}, - {"key": "0x201B", "datatype": "uint16", "alert": 0, "name":"消防总通信状态", "remark": "0:正常 1:告警 2:故障"}, - {"key": "0x201C", "datatype": "uint16", "alert": 0, "name":"UPS总通信状态", "remark": "0:正常 1:告警 2:故障"}, - {"key": "0x201D", "datatype": "uint16", "alert": 0, "name":"温湿度总通信状态", "remark": "0:正常 1:告警 2:故障"}, - {"key": "0x201E", "datatype": "uint16", "alert": 0, "name":"空调总通信状态", "remark": "0:正常 1:告警 2:故障"}, - {"key": "0x201F", "datatype": "uint16", "alert": 0, "name":"EMU通信状态", "remark": "0:正常 1:告警 2:故障"}, - {"key": "0x2020", "datatype": "uint16", "alert": 0, "name":"冷机总通信状态", "remark": "0:正常 1:告警 2:故障"}, - {"key": "0x2021", "datatype": "uint16", "alert": 0, "name":"冷机总接点通信状态", "remark": "0:正常1:故障"}, - {"key": "0x2022", "datatype": "uint16", "alert": 0, "name":"冷机通信状态", "remark": "0:正常1:故障"}, - {"key": "0x207A", "datatype": "uint16", "alert": 0, "name":"判断总表的三相总有功 < -5.0fkW 充电 >5.0fkW放电 否则停机", "remark": "0:充电 1:放电 2:停机"} - ] - }, - "EMS_YC":{ - "addr":[ - {"key": "0x1001", "datatype": "uint16", "alert": 0, "name":"BMS(电池堆)个数", "remark": "1"}, - {"key": "0x1002", "datatype": "uint16", "alert": 0, "name":"BCU通道个数", "remark": "1~2"}, - {"key": "0x1003", "datatype": "uint16", "alert": 0, "name":"BCU(电池簇)个数", "remark": "1~40"}, - {"key": "0x1004", "datatype": "uint16", "alert": 0, "name":"PCU(主控)个数", "remark": "1~4"}, - {"key": "0x1005", "datatype": "uint16", "alert": 0, "name":"PCU通道个数", "remark": "1~4"}, - {"key": "0x1006", "datatype": "uint16", "alert": 0, "name":"PCS(模块)个数", "remark": "1~40"}, - {"key": "0x1007", "datatype": "uint16", "alert": 0, "name":"电表通道个数", "remark": "1"}, - {"key": "0x1008", "datatype": "uint16", "alert": 0, "name":"电表个数", "remark": "1~10"}, - {"key": "0x1009", "datatype": "uint16", "alert": 0, "name":"消防通道个数", "remark": "1~10"}, - {"key": "0x100A", "datatype": "uint16", "alert": 0, "name":"消防个数", "remark": "1~10"}, - {"key": "0x100B", "datatype": "uint16", "alert": 0, "name":"UPS通道个数", "remark": "1~10"}, - {"key": "0x100C", "datatype": "uint16", "alert": 0, "name":"UPS个数", "remark": "1~10"}, - {"key": "0x100D", "datatype": "uint16", "alert": 0, "name":"温湿度通道个数", "remark": "1"}, - {"key": "0x100E", "datatype": "uint16", "alert": 0, "name":"温湿度个数", "remark": "1~10"}, - {"key": "0x100F", "datatype": "uint16", "alert": 0, "name":"空调通道个数", "remark": "1"}, - {"key": "0x1010", "datatype": "uint16", "alert": 0, "name":"空调个数", "remark": "1~10"}, - {"key": "0x1011", "datatype": "uint16", "alert": 0, "name":"控制干接点(配电系统)个数", "remark": "16"}, - {"key": "0x1012", "datatype": "uint16", "alert": 0, "name":"状态干接点(配电系统)个数", "remark": "16"}, - {"key": "0x1072", "datatype": "uint32", "alert": 0, "name":"系统最大可充电功率", "remark": "(1KW)"}, - {"key": "0x1074", "datatype": "uint32", "alert": 0, "name":"系统最大可放电功率", "remark": "(1KW)"}, - {"key": "0x1076", "datatype": "uint32", "alert": 0, "name":"储能母线电压", "remark": "(0.1V)"}, - {"key": "0x1078", "datatype": "int32", "alert": 0, "name":"储能母线电流", "remark": "(0.1A)"}, - {"key": "0x107A", "datatype": "uint16", "alert": 0, "name":"储能系统SOC", "remark": "(0.1)"}, - {"key": "0x107B", "datatype": "uint16", "alert": 0, "name":"储能系统SOH", "remark": "(0.1)"}, - {"key": "0x107C", "datatype": "uint16", "alert": 0, "name":"电流变比", "remark": ""}, - {"key": "0x107D", "datatype": "uint16", "alert": 0, "name":"电压变比", "remark": ""}, - {"key": "0x107E", "datatype": "uint32", "alert": 0, "name":"A相电压", "remark": "(1V)"}, - {"key": "0x1080", "datatype": "uint32", "alert": 0, "name":"B相电压", "remark": "(1V)"}, - {"key": "0x1082", "datatype": "uint32", "alert": 0, "name":"C相电压", "remark": "(1V)"}, - {"key": "0x1084", "datatype": "int32", "alert": 0, "name":"A相电流", "remark": "(1A)"}, - {"key": "0x1086", "datatype": "int32", "alert": 0, "name":"B相电流", "remark": "(1A)"}, - {"key": "0x1088", "datatype": "int32", "alert": 0, "name":"C相电流", "remark": "(1A)"}, - {"key": "0x108A", "datatype": "uint32", "alert": 0, "name":"AB相电压", "remark": "(1V)"}, - {"key": "0x108C", "datatype": "uint32", "alert": 0, "name":"BC相电压", "remark": "(1V)"}, - {"key": "0x108E", "datatype": "uint32", "alert": 0, "name":"CA相电压", "remark": "(1V)"}, - {"key": "0x1090", "datatype": "int32", "alert": 0, "name":"A相有功功率", "remark": "(1kW)"}, - {"key": "0x1092", "datatype": "int32", "alert": 0, "name":"B相有功功率", "remark": "(1kW)"}, - {"key": "0x1094", "datatype": "int32", "alert": 0, "name":"C相有功功率", "remark": "(1kW)"}, - {"key": "0x1096", "datatype": "int32", "alert": 0, "name":"三相总有功功率", "remark": "(1kW)"}, - {"key": "0x1098", "datatype": "int32", "alert": 0, "name":"当前控制功率", "remark": "(0.1kW)"}, - {"key": "0x109A", "datatype": "uint32", "alert": 0, "name":"负荷率", "remark": "(0.01)"}, - {"key": "0x109C", "datatype": "uint32", "alert": 0, "name":"三相不平衡度", "remark": "(0.01)"}, - {"key": "0x109E", "datatype": "uint32", "alert": 0, "name":"功率因素比率", "remark": "(0.01)"}, - {"key": "0x10A0", "datatype": "int32", "alert": 0, "name":"进线开关柜功率", "remark": "(1kW)"}, - {"key": "0x10A2", "datatype": "int32", "alert": 0, "name":"用户关口表功率", "remark": "(1kW)"}, - {"key": "0x1104", "datatype": "int32", "alert": 0, "name":"正向总有功总需量", "remark": "(1kW)"}, - {"key": "0x1106", "datatype": "uint32", "alert": 0, "name":"尖段电价", "remark": "(1RMB)"}, - {"key": "0x1108", "datatype": "uint32", "alert": 0, "name":"峰段电价", "remark": "(1RMB)"}, - {"key": "0x110A", "datatype": "uint32", "alert": 0, "name":"平段电价", "remark": "(1RMB)"}, - {"key": "0x110C", "datatype": "uint32", "alert": 0, "name":"谷段电价", "remark": "(1RMB)"}, - {"key": "0x110E", "datatype": "uint32", "alert": 0, "name":"日充电电量", "remark": "(1kWh)"}, - {"key": "0x1110", "datatype": "uint32", "alert": 0, "name":"日放电电量", "remark": "(1kWh)"}, - {"key": "0x1112", "datatype": "uint32", "alert": 0, "name":"日充电费用", "remark": "(1RMB)"}, - {"key": "0x1114", "datatype": "uint32", "alert": 0, "name":"日放电费用", "remark": "(1RMB)"}, - {"key": "0x1116", "datatype": "int32", "alert": 0, "name":"日收益", "remark": "(1RMB)"}, - {"key": "0x1118", "datatype": "uint32", "alert": 0, "name":"日正向尖有功电能", "remark": "(1kWh)"}, - {"key": "0x111A", "datatype": "uint32", "alert": 0, "name":"日正向峰有功电能", "remark": "(1kWh)"}, - {"key": "0x111C", "datatype": "uint32", "alert": 0, "name":"日正向平有功电能", "remark": "(1kWh)"}, - {"key": "0x111E", "datatype": "uint32", "alert": 0, "name":"日正向谷有功电能", "remark": "(1kWh)"}, - {"key": "0x1120", "datatype": "uint32", "alert": 0, "name":"日正向总有功电能", "remark": "(1kWh)"}, - {"key": "0x1122", "datatype": "uint32", "alert": 0, "name":"日反向尖有功电能", "remark": "(1kWh)"}, - {"key": "0x1124", "datatype": "uint32", "alert": 0, "name":"日反向峰有功电能", "remark": "(1kWh)"}, - {"key": "0x1126", "datatype": "uint32", "alert": 0, "name":"日反向平有功电能", "remark": "(1kWh)"}, - {"key": "0x1128", "datatype": "uint32", "alert": 0, "name":"日反向谷有功电能", "remark": "(1kWh)"}, - {"key": "0x112A", "datatype": "uint32", "alert": 0, "name":"日反向总有功电能", "remark": "(1kWh)"}, - {"key": "0x112C", "datatype": "uint32", "alert": 0, "name":"总充电电量", "remark": "(1kWh)"}, - {"key": "0x112E", "datatype": "uint32", "alert": 0, "name":"总放电电量", "remark": "(1kWh)"}, - {"key": "0x1130", "datatype": "uint32", "alert": 0, "name":"总充电费用", "remark": "(1RMB)"}, - {"key": "0x1132", "datatype": "uint32", "alert": 0, "name":"总放电费用", "remark": "(1RMB)"}, - {"key": "0x1134", "datatype": "int32", "alert": 0, "name":"总收益", "remark": "(1RMB)"}, - {"key": "0x1136", "datatype": "uint32", "alert": 0, "name":"总正向尖有功电能", "remark": "(1kWh)"}, - {"key": "0x1138", "datatype": "uint32", "alert": 0, "name":"总正向峰有功电能", "remark": "(1kWh)"}, - {"key": "0x113A", "datatype": "uint32", "alert": 0, "name":"总正向平有功电能", "remark": "(1kWh)"}, - {"key": "0x113C", "datatype": "uint32", "alert": 0, "name":"总正向谷有功电能", "remark": "(1kWh)"}, - {"key": "0x113E", "datatype": "uint32", "alert": 0, "name":"总正向总有功电能", "remark": "(1kWh)"}, - {"key": "0x1140", "datatype": "uint32", "alert": 0, "name":"总反向尖有功电能", "remark": "(1kWh)"}, - {"key": "0x1142", "datatype": "uint32", "alert": 0, "name":"总反向峰有功电能", "remark": "(1kWh)"}, - {"key": "0x1144", "datatype": "uint32", "alert": 0, "name":"总反向平有功电能", "remark": "(1kWh)"}, - {"key": "0x1146", "datatype": "uint32", "alert": 0, "name":"总反向谷有功电能", "remark": "(1kWh)"}, - {"key": "0x1148", "datatype": "uint32", "alert": 0, "name":"总反向总有功电能", "remark": "(1kWh)"}, - {"key": "0x11AE", "datatype": "int16", "alert": 0, "name":"交流A相电压", "remark": "(1V)"}, - {"key": "0x11AF", "datatype": "int16", "alert": 0, "name":"交流B相电压", "remark": "(1V)"}, - {"key": "0x11B0", "datatype": "int16", "alert": 0, "name":"交流C相电压", "remark": "(1V)"}, - {"key": "0x11B1", "datatype": "int16", "alert": 0, "name":"交流A相频率", "remark": "(1Hz)"}, - {"key": "0x11B2", "datatype": "int16", "alert": 0, "name":"交流B相频率", "remark": "(1Hz)"}, - {"key": "0x11B3", "datatype": "int16", "alert": 0, "name":"交流C相频率", "remark": "(1Hz)"}, - {"key": "0x11B4", "datatype": "int32", "alert": 0, "name":"总直流功率", "remark": "(1kW)"}, - {"key": "0x11B6", "datatype": "uint32", "alert": 0, "name":"总直流电压", "remark": "(0.1V)"}, - {"key": "0x11B8", "datatype": "int32", "alert": 0, "name":"总直流电流", "remark": "(0.1A)"}, - {"key": "0x121B", "datatype": "int16", "alert": 0, "name":"储能系统温度", "remark": "(0.1℃)"}, - {"key": "0x121C", "datatype": "uint16", "alert": 0, "name":"储能充放电时段hh", "remark": "(时)"}, - {"key": "0x121D", "datatype": "uint16", "alert": 0, "name":"储能充放电时段mm", "remark": "(分)"}, - {"key": "0x121E", "datatype": "uint16", "alert": 0, "name":"储能充放电时段ss", "remark": "(秒)"}, - {"key": "0x121F", "datatype": "int16", "alert": 0, "name":"储能系统各时段功率", "remark": "(1kW)"} - ] - }, - "PCU_YC":{ - "addr":[ - {"key": "0x0001", "datatype": "uint16", "alert": 0, "name":"所属通道号", "remark": "1~4"}, - {"key": "0x0002", "datatype": "uint32", "alert": 0, "name":"充电功率最大许可", "remark": "(1KW)"}, - {"key": "0x0004", "datatype": "uint32", "alert": 0, "name":"放电功率最大许可", "remark": "(1KW)"}, - {"key": "0x0006", "datatype": "uint32", "alert": 0, "name":"交流日总充电量", "remark": "(1KWh)"}, - {"key": "0x0008", "datatype": "uint32", "alert": 0, "name":"交流日总放电量", "remark": "(1KWh)"}, - {"key": "0x000A", "datatype": "uint32", "alert": 0, "name":"交流总充电量", "remark": "(1KWh)"}, - {"key": "0x000C", "datatype": "uint32", "alert": 0, "name":"交流总放电量", "remark": "(1KWh)"}, - {"key": "0x000E", "datatype": "int16", "alert": 0, "name":"有功功率期望值", "remark": "(1KW)"}, - {"key": "0x000F", "datatype": "int16", "alert": 0, "name":"无功功率期望值", "remark": "(1kVar)"}, - {"key": "0x0010", "datatype": "int16", "alert": 0, "name":"PCS侧线电压VAB", "remark": "(1v)"}, - {"key": "0x0011", "datatype": "int16", "alert": 0, "name":"PCS侧线电压VBC", "remark": "(1v)"}, - {"key": "0x0012", "datatype": "int16", "alert": 0, "name":"PCS侧线电压VCA", "remark": "(1v)"}, - {"key": "0x0013", "datatype": "int16", "alert": 0, "name":"PCS侧线A相电压", "remark": "(1v)"}, - {"key": "0x0014", "datatype": "int16", "alert": 0, "name":"PCS侧线B相电压", "remark": "(1v)"}, - {"key": "0x0015", "datatype": "int16", "alert": 0, "name":"PCS侧线C相电压", "remark": "(1v)"}, - {"key": "0x0016", "datatype": "int16", "alert": 0, "name":"PCS侧A相频率", "remark": "(1Hz)"}, - {"key": "0x0017", "datatype": "int16", "alert": 0, "name":"PCS侧B相频率", "remark": "(1Hz)"}, - {"key": "0x0018", "datatype": "int16", "alert": 0, "name":"PCS侧C相频率", "remark": "(1Hz)"}, - {"key": "0x0019", "datatype": "int16", "alert": 0, "name":"PCS侧功率因数A", "remark": "(1)"}, - {"key": "0x001A", "datatype": "int16", "alert": 0, "name":"PCS侧功率因数B", "remark": "(1)"}, - {"key": "0x001B", "datatype": "int16", "alert": 0, "name":"PCS侧功率因数C", "remark": "(1)"}, - {"key": "0x001C", "datatype": "int16", "alert": 0, "name":"PCS侧相电流A", "remark": "(1A)"}, - {"key": "0x001D", "datatype": "int16", "alert": 0, "name":"PCS侧相电流B", "remark": "(1A)"}, - {"key": "0x001E", "datatype": "int16", "alert": 0, "name":"PCS侧相电流C", "remark": "(1A)"}, - {"key": "0x001F", "datatype": "int16", "alert": 0, "name":"PCS侧有功功率A", "remark": "(1kW)"}, - {"key": "0x0020", "datatype": "int16", "alert": 0, "name":"PCS侧有功功率B", "remark": "(1kW)"}, - {"key": "0x0021", "datatype": "int16", "alert": 0, "name":"PCS侧有功功率C", "remark": "(1kW)"}, - {"key": "0x0022", "datatype": "int16", "alert": 0, "name":"PCS侧无功功率A", "remark": "(1kVar)"}, - {"key": "0x0023", "datatype": "int16", "alert": 0, "name":"PCS侧无功功率B", "remark": "(1kVar)"}, - {"key": "0x0024", "datatype": "int16", "alert": 0, "name":"PCS侧无功功率C", "remark": "(1kVar)"}, - {"key": "0x0025", "datatype": "int16", "alert": 0, "name":"PCS侧视在功率A", "remark": "(1kVar)"}, - {"key": "0x0026", "datatype": "int16", "alert": 0, "name":"PCS侧视在功率B", "remark": "(1kVar)"}, - {"key": "0x0027", "datatype": "int16", "alert": 0, "name":"PCS侧视在功率C", "remark": "(1kVar)"}, - {"key": "0x0028", "datatype": "int16", "alert": 0, "name":"PCS侧三相总有功功率", "remark": "(1kW)"}, - {"key": "0x0029", "datatype": "int16", "alert": 0, "name":"PCS侧三相总无功功率", "remark": "(1kVar)"}, - {"key": "0x002A", "datatype": "int16", "alert": 0, "name":"PCS侧三相总视在功率", "remark": "(1kVA)"}, - {"key": "0x002B", "datatype": "int16", "alert": 0, "name":"PCS侧三相总功率因数", "remark": "(1)"}, - {"key": "0x002C", "datatype": "int16", "alert": 0, "name":"PCU模块温度", "remark": "(1℃)"}, - {"key": "0x002D", "datatype": "int16", "alert": 0, "name":"外部温度NTC1", "remark": "(1℃)"}, - {"key": "0x002E", "datatype": "int16", "alert": 0, "name":"外部温度NTC2", "remark": "(1℃)"}, - {"key": "0x002F", "datatype": "int16", "alert": 0, "name":"外部温度NTC3", "remark": "(1℃)"}, - {"key": "0x0030", "datatype": "int16", "alert": 0, "name":"台区负载侧A相电流", "remark": "(1A)"}, - {"key": "0x0031", "datatype": "int16", "alert": 0, "name":"台区负载侧B相电流", "remark": "(1A)"}, - {"key": "0x0032", "datatype": "int16", "alert": 0, "name":"台区负载侧C相电流", "remark": "(1A)"}, - {"key": "0x0033", "datatype": "int16", "alert": 0, "name":"台区负载侧A相有功功率", "remark": "(1kW)"}, - {"key": "0x0034", "datatype": "int16", "alert": 0, "name":"台区负载侧B相有功功率", "remark": "(1kW)"}, - {"key": "0x0035", "datatype": "int16", "alert": 0, "name":"台区负载侧C相有功功率", "remark": "(1kW)"}, - {"key": "0x0036", "datatype": "int16", "alert": 0, "name":"台区负载侧总有功功率", "remark": "(1kW)"}, - {"key": "0x0037", "datatype": "int16", "alert": 0, "name":"台区负载侧A相无功功率", "remark": "(1kVar)"}, - {"key": "0x0038", "datatype": "int16", "alert": 0, "name":"台区负载侧B相无功功率", "remark": "(1kVar)"}, - {"key": "0x0039", "datatype": "int16", "alert": 0, "name":"台区负载侧C相无功功率", "remark": "(1kVar)"}, - {"key": "0x003A", "datatype": "int16", "alert": 0, "name":"台区负载侧总无功功率", "remark": "(1kVar)"}, - {"key": "0x003B", "datatype": "int16", "alert": 0, "name":"台区负载侧A相视在功率", "remark": "(1kVA)"}, - {"key": "0x003C", "datatype": "int16", "alert": 0, "name":"台区负载侧B相视在功率", "remark": "(1kVA)"}, - {"key": "0x003D", "datatype": "int16", "alert": 0, "name":"台区负载侧C相视在功率", "remark": "(1kVA)"}, - {"key": "0x003E", "datatype": "int16", "alert": 0, "name":"台区负载侧总视在功率", "remark": "(1kVA)"}, - {"key": "0x003F", "datatype": "int16", "alert": 0, "name":"台区负载侧A相功率因数", "remark": "(1)"}, - {"key": "0x0040", "datatype": "int16", "alert": 0, "name":"台区负载侧B相功率因数", "remark": "(1)"}, - {"key": "0x0041", "datatype": "int16", "alert": 0, "name":"台区负载侧C相功率因数", "remark": "(1)"}, - {"key": "0x0042", "datatype": "int16", "alert": 0, "name":"台区负载侧总功率因数", "remark": "(1)"}, - {"key": "0x0043", "datatype": "int16", "alert": 0, "name":"负载侧线电压AB", "remark": "(1V)"}, - {"key": "0x0044", "datatype": "int16", "alert": 0, "name":"负载侧线电压BC", "remark": "(1V)"}, - {"key": "0x0045", "datatype": "int16", "alert": 0, "name":"负载侧线电压CA", "remark": "(1V)"}, - {"key": "0x0046", "datatype": "int16", "alert": 0, "name":"负载侧相电压AN", "remark": "(1V)"}, - {"key": "0x0047", "datatype": "int16", "alert": 0, "name":"负载侧相电压BN", "remark": "(1V)"}, - {"key": "0x0048", "datatype": "int16", "alert": 0, "name":"负载侧相电压CN", "remark": "(1V)"}, - {"key": "0x0049", "datatype": "int16", "alert": 0, "name":"负载侧A功率因素", "remark": "(1)"}, - {"key": "0x004A", "datatype": "int16", "alert": 0, "name":"负载侧B功率因素", "remark": "(1)"}, - {"key": "0x004B", "datatype": "int16", "alert": 0, "name":"负载侧C功率因素", "remark": "(1)"}, - {"key": "0x004C", "datatype": "int16", "alert": 0, "name":"负载侧A视在功率", "remark": "(1kVA)"}, - {"key": "0x004D", "datatype": "int16", "alert": 0, "name":"负载侧B视在功率", "remark": "(1kVA)"}, - {"key": "0x004E", "datatype": "int16", "alert": 0, "name":"负载侧C视在功率", "remark": "(1kVA)"} - ] - }, - "PCU_YX":{ - "addr":[ - {"key": "0x1001", "datatype": "uint16", "alert": 0, "name":"所属通道号", "remark": "1~4"}, - {"key": "0x1002", "datatype": "uint16", "alert": 0, "name":"故障状态", "remark": "1故障,0正常"}, - {"key": "0x1003", "datatype": "uint16", "alert": 0, "name":"告警状态", "remark": "1告警,0正常"}, - {"key": "0x1004", "datatype": "uint16", "alert": 0, "name":"设备在线", "remark": "1在线,0无效"}, - {"key": "0x1005", "datatype": "uint16", "alert": 0, "name":"本地远程", "remark": "1本地,0远程"}, - {"key": "0x1006", "datatype": "uint16", "alert": 0, "name":"启停状态", "remark": "1开机,0关机"}, - {"key": "0x1007", "datatype": "uint16", "alert": 0, "name":"电网状态", "remark": "1离网,0并网"}, - {"key": "0x1008", "datatype": "uint16", "alert": 0, "name":"模块状态", "remark": "1开机,0待机"}, - {"key": "0x1009", "datatype": "uint16", "alert": 1, "name":"EPO急停", "remark": "1故障,0正常"}, - {"key": "0x100A", "datatype": "uint16", "alert": 1, "name":"防雷器异常", "remark": "1告警,0正常"}, - {"key": "0x100B", "datatype": "uint16", "alert": 1, "name":"负载电压反序", "remark": "1故障,0正常"}, - {"key": "0x100C", "datatype": "uint16", "alert": 1, "name":"市电电压反序", "remark": "1故障,0正常"}, - {"key": "0x100D", "datatype": "uint16", "alert": 1, "name":"输出相反序", "remark": "1故障,0正常"}, - {"key": "0x100E", "datatype": "uint16", "alert": 1, "name":"过载告警", "remark": "1告警,0正常"}, - {"key": "0x100F", "datatype": "uint16", "alert": 1, "name":"过载超时", "remark": "1故障,0正常"}, - {"key": "0x1010", "datatype": "uint16", "alert": 1, "name":"交流过流保护", "remark": "1故障,0正常"}, - {"key": "0x1011", "datatype": "uint16", "alert": 1, "name":"逆变电压异常", "remark": "1故障,0正常"}, - {"key": "0x1012", "datatype": "uint16", "alert": 1, "name":"内部串口异常", "remark": "1故障,0正常"}, - {"key": "0x1013", "datatype": "uint16", "alert": 1, "name":"485通信故障", "remark": "1故障,0正常"}, - {"key": "0x1014", "datatype": "uint16", "alert": 1, "name":"CAN通信故障", "remark": "1故障,0正常"}, - {"key": "0x1015", "datatype": "uint16", "alert": 1, "name":"E2PROM故障", "remark": "1故障,0正常"}, - {"key": "0x1016", "datatype": "uint16", "alert": 1, "name":"电网过压", "remark": "1故障,0正常"}, - {"key": "0x1017", "datatype": "uint16", "alert": 1, "name":"电网欠压", "remark": "1故障,0正常"}, - {"key": "0x1018", "datatype": "uint16", "alert": 1, "name":"电网过频", "remark": "1故障,0正常"}, - {"key": "0x1019", "datatype": "uint16", "alert": 1, "name":"电网欠频", "remark": "1故障,0正常"}, - {"key": "0x101A", "datatype": "uint16", "alert": 1, "name":"电网快检综合异常", "remark": "1故障,0正常"}, - {"key": "0x101B", "datatype": "uint16", "alert": 1, "name":"电网幅值快检异常", "remark": "1故障,0正常"}, - {"key": "0x101C", "datatype": "uint16", "alert": 1, "name":"电网拖尾异常", "remark": "1故障,0正常"}, - {"key": "0x101D", "datatype": "uint16", "alert": 0, "name":"消防输入信号NO", "remark": "1闭合,0断开"}, - {"key": "0x101E", "datatype": "uint16", "alert": 1, "name":"急停按钮信号NC", "remark": "1急停,0正常"}, - {"key": "0x101F", "datatype": "uint16", "alert": 1, "name":"避雷器NC", "remark": "1故障,0正常"}, - {"key": "0x1020", "datatype": "uint16", "alert": 1, "name":"避雷器断路器NC", "remark": "1故障,0正常"}, - {"key": "0x1021", "datatype": "uint16", "alert": 0, "name":"PCS总断路器NC", "remark": "1闭合,0断开"}, - {"key": "0x1022", "datatype": "uint16", "alert": 0, "name":"电操状态NO", "remark": "1闭合,0断开"}, - {"key": "0x1023", "datatype": "uint16", "alert": 0, "name":"远程关机NO", "remark": "1开机,0无效"}, - {"key": "0x1024", "datatype": "uint16", "alert": 0, "name":"远程开机NO", "remark": "1开机,0无效"}, - {"key": "0x1025", "datatype": "uint16", "alert": 0, "name":"BA故障信号NO", "remark": "1故障,0正常"}, - {"key": "0x1026", "datatype": "uint16", "alert": 0, "name":"PCS_01状态", "remark": "1在线,0掉线"}, - {"key": "0x1027", "datatype": "uint16", "alert": 0, "name":"PCS_02状态", "remark": "1在线,0掉线"}, - {"key": "0x1028", "datatype": "uint16", "alert": 0, "name":"PCS_03状态", "remark": "1在线,0掉线"}, - {"key": "0x1029", "datatype": "uint16", "alert": 0, "name":"PCS_04状态", "remark": "1在线,0掉线"}, - {"key": "0x102A", "datatype": "uint16", "alert": 0, "name":"PCS_05状态", "remark": "1在线,0掉线"}, - {"key": "0x102B", "datatype": "uint16", "alert": 0, "name":"PCS_06状态", "remark": "1在线,0掉线"}, - {"key": "0x102C", "datatype": "uint16", "alert": 0, "name":"PCS_07状态", "remark": "1在线,0掉线"}, - {"key": "0x102D", "datatype": "uint16", "alert": 0, "name":"PCS_09状态", "remark": "1在线,0掉线"}, - {"key": "0x102E", "datatype": "uint16", "alert": 0, "name":"PCS_10状态", "remark": "1在线,0掉线"}, - {"key": "0x102F", "datatype": "uint16", "alert": 1, "name":"PCS_01下发设置", "remark": "1故障,0正常"}, - {"key": "0x1030", "datatype": "uint16", "alert": 1, "name":"PCS_02下发设置", "remark": "1故障,0正常"}, - {"key": "0x1031", "datatype": "uint16", "alert": 1, "name":"PCS_03下发设置", "remark": "1故障,0正常"}, - {"key": "0x1032", "datatype": "uint16", "alert": 1, "name":"PCS_04下发设置", "remark": "1故障,0正常"}, - {"key": "0x1033", "datatype": "uint16", "alert": 1, "name":"PCS_05下发设置", "remark": "1故障,0正常"}, - {"key": "0x1034", "datatype": "uint16", "alert": 1, "name":"PCS_06下发设置", "remark": "1故障,0正常"}, - {"key": "0x1035", "datatype": "uint16", "alert": 1, "name":"PCS_07下发设置", "remark": "1故障,0正常"}, - {"key": "0x1036", "datatype": "uint16", "alert": 1, "name":"PCS_08下发设置", "remark": "1故障,0正常"}, - {"key": "0x1037", "datatype": "uint16", "alert": 1, "name":"PCS_09下发设置", "remark": "1故障,0正常"}, - {"key": "0x1038", "datatype": "uint16", "alert": 1, "name":"PCS_10下发设置", "remark": "1:故障,0正常"}, - {"key": "0x1039", "datatype": "uint16", "alert": 1, "name":"内部DSP通信故障", "remark": "1:故障,0正常"}, - {"key": "0x103A", "datatype": "uint16", "alert": 1, "name":"BMS CAN通信故障", "remark": "1:故障,0正常"}, - {"key": "0x103B", "datatype": "uint16", "alert": 1, "name":"下发设置失败", "remark": "1:故障,0正常"}, - {"key": "0x103D", "datatype": "uint16", "alert": 1, "name":"手动/自动并离网状态", "remark": "1:自动,0手动"} - ] - }, - "PCS_YC":{ - "addr":[ - {"key": "0x0001", "datatype": "uint16", "alert": 0, "name":"所属主控号", "remark": "1~4"}, - {"key": "0x0002", "datatype": "uint16", "alert": 0, "name":"所属PCS号", "remark": "1~40"}, - {"key": "0x0003", "datatype": "uint32", "alert": 0, "name":"总充电量", "remark": "(1kWh)"}, - {"key": "0x0005", "datatype": "uint32", "alert": 0, "name":"总放电量", "remark": "(1kWh)"}, - {"key": "0x0007", "datatype": "int16", "alert": 0, "name":"散热器温度", "remark": "(1℃)"}, - {"key": "0x0008", "datatype": "int16", "alert": 0, "name":"内部温度", "remark": "(1℃)"}, - {"key": "0x0009", "datatype": "int16", "alert": 0, "name":"最大允许充电功率", "remark": "(0.1kW)"}, - {"key": "0x000A", "datatype": "int16", "alert": 0, "name":"最大允许放电功率", "remark": "(0.1kW)"}, - {"key": "0x000B", "datatype": "int16", "alert": 0, "name":"有功功率期望", "remark": "(1kWh)"}, - {"key": "0x000C", "datatype": "int16", "alert": 0, "name":"无功功率期望", "remark": "(1kVar)"}, - {"key": "0x000D", "datatype": "int16", "alert": 0, "name":"AB线电压", "remark": "(1V)"}, - {"key": "0x000E", "datatype": "int16", "alert": 0, "name":"BC线电压", "remark": "(1V)"}, - {"key": "0x000F", "datatype": "int16", "alert": 0, "name":"CA线电压", "remark": "(1V)"}, - {"key": "0x0010", "datatype": "int16", "alert": 0, "name":"A相电压", "remark": "(1V)"}, - {"key": "0x0011", "datatype": "int16", "alert": 0, "name":"B相电压", "remark": "(1V)"}, - {"key": "0x0012", "datatype": "int16", "alert": 0, "name":"C相电压", "remark": "(1V)"}, - {"key": "0x0013", "datatype": "int16", "alert": 0, "name":"A相频率", "remark": "(1Hz)"}, - {"key": "0x0014", "datatype": "int16", "alert": 0, "name":"B相频率", "remark": "(1Hz)"}, - {"key": "0x0015", "datatype": "int16", "alert": 0, "name":"C相频率", "remark": "(1Hz)"}, - {"key": "0x0016", "datatype": "int16", "alert": 0, "name":"A相功率因数", "remark": "(1)"}, - {"key": "0x0017", "datatype": "int16", "alert": 0, "name":"B相功率因数", "remark": "(1)"}, - {"key": "0x0018", "datatype": "int16", "alert": 0, "name":"C相功率因数", "remark": "(1)"}, - {"key": "0x0019", "datatype": "int16", "alert": 0, "name":"A相电流", "remark": "(1A)"}, - {"key": "0x001A", "datatype": "int16", "alert": 0, "name":"B相电流", "remark": "(1A)"}, - {"key": "0x001B", "datatype": "int16", "alert": 0, "name":"C相电流", "remark": "(1A)"}, - {"key": "0x001C", "datatype": "int16", "alert": 0, "name":"A相有功功率", "remark": "(1kW)"}, - {"key": "0x001D", "datatype": "int16", "alert": 0, "name":"B相有功功率", "remark": "(1kW)"}, - {"key": "0x001E", "datatype": "int16", "alert": 0, "name":"C相有功功率", "remark": "(1kW)"}, - {"key": "0x001F", "datatype": "int16", "alert": 0, "name":"A相无功功率", "remark": "(1kVar)"}, - {"key": "0x0020", "datatype": "int16", "alert": 0, "name":"B相无功功率", "remark": "(1kVar)"}, - {"key": "0x0021", "datatype": "int16", "alert": 0, "name":"C相无功功率", "remark": "(1kVar)"}, - {"key": "0x0022", "datatype": "int16", "alert": 0, "name":"A相视在功率", "remark": "(1kVA)"}, - {"key": "0x0023", "datatype": "int16", "alert": 0, "name":"B相视在功率", "remark": "(1kVA)"}, - {"key": "0x0024", "datatype": "int16", "alert": 0, "name":"C相视在功率", "remark": "(1kVA)"}, - {"key": "0x0025", "datatype": "int16", "alert": 0, "name":"三相总有功功率", "remark": "(1kW)"}, - {"key": "0x0026", "datatype": "int16", "alert": 0, "name":"三相总无功功率", "remark": "(1kVar)"}, - {"key": "0x0027", "datatype": "int16", "alert": 0, "name":"三相总视在功率", "remark": "(1kVA)"}, - {"key": "0x0028", "datatype": "int16", "alert": 0, "name":"三相总功率因数", "remark": "(1)"}, - {"key": "0x0029", "datatype": "int16", "alert": 0, "name":"直流功率", "remark": "(1kW)"}, - {"key": "0x002A", "datatype": "int16", "alert": 0, "name":"直流电压", "remark": "(1V)"}, - {"key": "0x002B", "datatype": "int16", "alert": 0, "name":"直流电流", "remark": "(1A)"}, - {"key": "0x002C", "datatype": "int16", "alert": 0, "name":"充电功率", "remark": "(1kW)"}, - {"key": "0x002D", "datatype": "int16", "alert": 0, "name":"放电功率", "remark": "(1kW)"}, - {"key": "0x002E", "datatype": "int16", "alert": 0, "name":"PF值", "remark": "(1)"}, - {"key": "0x002F", "datatype": "int16", "alert": 0, "name":"UV线/U相电网计量线电压", "remark": "(1V)"}, - {"key": "0x0030", "datatype": "int16", "alert": 0, "name":"VW线/V相电网计量线电压", "remark": "(1V)"}, - {"key": "0x0031", "datatype": "int16", "alert": 0, "name":"WU线/W相电网计量线电压", "remark": "(1V)"}, - {"key": "0x0032", "datatype": "int16", "alert": 0, "name":"U相电网计量电流", "remark": "(1A)"}, - {"key": "0x0033", "datatype": "int16", "alert": 0, "name":"V相电网计量电流", "remark": "(1A)"}, - {"key": "0x0034", "datatype": "int16", "alert": 0, "name":"W相电网计量电流", "remark": "(1A)"}, - {"key": "0x0035", "datatype": "int16", "alert": 0, "name":"正母线电压", "remark": "(1V)"}, - {"key": "0x0036", "datatype": "int16", "alert": 0, "name":"可用功率", "remark": "(1kVA)"}, - {"key": "0x0037", "datatype": "int16", "alert": 0, "name":"负母线电压", "remark": "(1V)"}, - {"key": "0x0038", "datatype": "int16", "alert": 0, "name":"A相IGBT温度", "remark": "(1℃)"}, - {"key": "0x0039", "datatype": "int16", "alert": 0, "name":"B相IGBT温度", "remark": "(1℃)"}, - {"key": "0x003A", "datatype": "int16", "alert": 0, "name":"C相IGBT温度", "remark": "(1℃)"}, - {"key": "0x003B", "datatype": "int16", "alert": 0, "name":"逆变侧AB线电压", "remark": "(1V)"}, - {"key": "0x003C", "datatype": "int16", "alert": 0, "name":"逆变侧BC线电压", "remark": "(1V)"}, - {"key": "0x003D", "datatype": "int16", "alert": 0, "name":"逆变侧CA线电压", "remark": "(1V)"}, - {"key": "0x003E", "datatype": "int16", "alert": 0, "name":"逆变侧A相电压", "remark": "(1V)"}, - {"key": "0x003F", "datatype": "int16", "alert": 0, "name":"逆变侧B相电压", "remark": "(1V)"}, - {"key": "0x0040", "datatype": "int16", "alert": 0, "name":"逆变侧C相电压", "remark": "(1V)"}, - {"key": "0x0041", "datatype": "int16", "alert": 0, "name":"逆变侧A相电流", "remark": "(1A)"}, - {"key": "0x0042", "datatype": "int16", "alert": 0, "name":"逆变侧B相电流", "remark": "(1A)"}, - {"key": "0x0043", "datatype": "int16", "alert": 0, "name":"逆变侧C相电流", "remark": "(1A)"}, - {"key": "0x0044", "datatype": "int16", "alert": 0, "name":"逆变侧A相电流直流分量", "remark": "(1A)"}, - {"key": "0x0045", "datatype": "int16", "alert": 0, "name":"逆变侧B相电流直流分量", "remark": "(1A)"}, - {"key": "0x0046", "datatype": "int16", "alert": 0, "name":"逆变侧C相电流直流分量", "remark": "(1A)"}, - {"key": "0x0047", "datatype": "int16", "alert": 0, "name":"离网频率", "remark": "(1Hz)"}, - {"key": "0x0048", "datatype": "int16", "alert": 0, "name":"A相负载量", "remark": "(1)"}, - {"key": "0x0049", "datatype": "int16", "alert": 0, "name":"B相负载量", "remark": "(1)"}, - {"key": "0x004A", "datatype": "int16", "alert": 0, "name":"C相负载量", "remark": "(1)"}, - {"key": "0x004B", "datatype": "int16", "alert": 0, "name":"总负载量", "remark": "(1)"}, - {"key": "0x004C", "datatype": "int16", "alert": 0, "name":"逆变侧AB线电压直流分量", "remark": "(1A)"}, - {"key": "0x004D", "datatype": "int16", "alert": 0, "name":"逆变侧BC线电压直流分量", "remark": "(1A)"}, - {"key": "0x004E", "datatype": "int16", "alert": 0, "name":"逆变侧CA线电压直流分量", "remark": "(1A)"}, - {"key": "0x004F", "datatype": "int16", "alert": 0, "name":"在线数量", "remark": ""}, - {"key": "0x0050", "datatype": "int16", "alert": 0, "name":"逆变数量", "remark": ""} - ] - }, - "PCS_YX":{ - "addr":[ - {"key": "0x1001", "datatype": "uint16", "alert": 0, "name":"所属主控号", "remark": "1~4"}, - {"key": "0x1002", "datatype": "uint16", "alert": 0, "name":"所属PCS号", "remark": "1~40"}, - {"key": "0x1003", "datatype": "uint16", "alert": 0, "name":"故障状态", "remark": "1故障,0正常"}, - {"key": "0x1004", "datatype": "uint16", "alert": 0, "name":"告警状态", "remark": "1告警,0正常"}, - {"key": "0x1005", "datatype": "uint16", "alert": 0, "name":"设备在线", "remark": "1在线,0无效"}, - {"key": "0x1006", "datatype": "uint16", "alert": 0, "name":"禁止充电", "remark": "1禁止,0无效"}, - {"key": "0x1007", "datatype": "uint16", "alert": 0, "name":"禁止放电", "remark": "1禁止,0无效"}, - {"key": "0x1008", "datatype": "uint16", "alert": 0, "name":"运行状态", "remark": "1开机,0关机"}, - {"key": "0x1009", "datatype": "uint16", "alert": 0, "name":"充放状态", "remark": "0:待机,1:充电,2:放电,3:搁置"}, - {"key": "0x100A", "datatype": "uint16", "alert": 0, "name":"电网状态", "remark": "1离网,0并网"}, - {"key": "0x100B", "datatype": "uint16", "alert": 0, "name":"逆变供电", "remark": "0禁止,1使能"}, - {"key": "0x100C", "datatype": "uint16", "alert": 0, "name":"缓启动完成", "remark": "0禁止,1使能"}, - {"key": "0x100D", "datatype": "uint16", "alert": 0, "name":"主机标志", "remark": "0禁止,1使能"}, - {"key": "0x100E", "datatype": "uint16", "alert": 0, "name":"并离网状态", "remark": "0:并网, 1:离网"}, - {"key": "0x100F", "datatype": "uint16", "alert": 0, "name":"同步请求标志", "remark": "0:无效;1:动作"}, - {"key": "0x1010", "datatype": "uint16", "alert": 1, "name":"绝缘故障", "remark": "1:故障,0正常"}, - {"key": "0x1011", "datatype": "uint16", "alert": 1, "name":"漏电保护", "remark": "1:故障,0正常"}, - {"key": "0x1012", "datatype": "uint16", "alert": 1, "name":"直流过压", "remark": "1:故障,0正常"}, - {"key": "0x1013", "datatype": "uint16", "alert": 1, "name":"市电幅值异常", "remark": "1:故障,0正常"}, - {"key": "0x1014", "datatype": "uint16", "alert": 1, "name":"市电相序异常", "remark": "1:故障,0正常"}, - {"key": "0x1015", "datatype": "uint16", "alert": 1, "name":"温度开关异常", "remark": "1:故障,0正常"}, - {"key": "0x1016", "datatype": "uint16", "alert": 1, "name":"市电频率异常", "remark": "1:故障,0正常"}, - {"key": "0x1017", "datatype": "uint16", "alert": 1, "name":"IGBT过温", "remark": "1:故障,0正常"}, - {"key": "0x1018", "datatype": "uint16", "alert": 1, "name":"交流接地故障", "remark": "1:故障,0正常"}, - {"key": "0x1019", "datatype": "uint16", "alert": 1, "name":"逆变过流异常", "remark": "1:故障,0正常"}, - {"key": "0x101A", "datatype": "uint16", "alert": 1, "name":"直流缓起故障", "remark": "1:故障,0正常"}, - {"key": "0x101B", "datatype": "uint16", "alert": 1, "name":"直流主继电器故障", "remark": "1:故障,0正常"}, - {"key": "0x101C", "datatype": "uint16", "alert": 1, "name":"风机异常", "remark": "1:故障,0正常"}, - {"key": "0x101D", "datatype": "uint16", "alert": 1, "name":"主接触器异常", "remark": "1:故障,0正常"}, - {"key": "0x101E", "datatype": "uint16", "alert": 1, "name":"均浮充切换超时", "remark": "1:故障,0正常"}, - {"key": "0x101F", "datatype": "uint16", "alert": 1, "name":"硬件故障", "remark": "1:故障,0正常"}, - {"key": "0x1020", "datatype": "uint16", "alert": 1, "name":"机内过温", "remark": "1:故障,0正常"}, - {"key": "0x1021", "datatype": "uint16", "alert": 1, "name":"软启动故障", "remark": "1:故障,0正常"}, - {"key": "0x1022", "datatype": "uint16", "alert": 1, "name":"触摸屏通讯故障", "remark": "1:故障,0正常"}, - {"key": "0x1023", "datatype": "uint16", "alert": 1, "name":"防雷器故障", "remark": "1:故障,0正常"}, - {"key": "0x1024", "datatype": "uint16", "alert": 1, "name":"急停故障", "remark": "1:故障,0正常"}, - {"key": "0x1025", "datatype": "uint16", "alert": 1, "name":"BMS系统故障", "remark": "1:故障,0正常"}, - {"key": "0x1026", "datatype": "uint16", "alert": 1, "name":"BMS通讯故障", "remark": "1:故障,0正常"}, - {"key": "0x1027", "datatype": "uint16", "alert": 1, "name":"BMS干接点通讯故障", "remark": "1:故障,0正常"}, - {"key": "0x1028", "datatype": "uint16", "alert": 1, "name":"远程通讯故障", "remark": "1:故障,0正常"}, - {"key": "0x1029", "datatype": "uint16", "alert": 1, "name":"门禁告警", "remark": "1:故障,0正常"}, - {"key": "0x102A", "datatype": "uint16", "alert": 1, "name":"锁相异常", "remark": "1:故障,0正常"}, - {"key": "0x102B", "datatype": "uint16", "alert": 1, "name":"IGBT过温告警", "remark": "1:故障,0正常"}, - {"key": "0x102C", "datatype": "uint16", "alert": 1, "name":"硬件过流保护", "remark": "1:故障,0正常"}, - {"key": "0x102D", "datatype": "uint16", "alert": 1, "name":"驱动故障", "remark": "1:故障,0正常"}, - {"key": "0x102E", "datatype": "uint16", "alert": 1, "name":"ID冲突", "remark": "1:故障,0正常"}, - {"key": "0x102F", "datatype": "uint16", "alert": 1, "name":"电池过压", "remark": "1:故障,0正常"}, - {"key": "0x1030", "datatype": "uint16", "alert": 1, "name":"电池欠压", "remark": "1:故障,0正常"}, - {"key": "0x1031", "datatype": "uint16", "alert": 1, "name":"直流过流保护", "remark": "1:故障,0正常"}, - {"key": "0x1032", "datatype": "uint16", "alert": 1, "name":"输出电压异常", "remark": "1:故障,0正常"}, - {"key": "0x1033", "datatype": "uint16", "alert": 1, "name":"离网输出电压不符合", "remark": "1:故障,0正常"}, - {"key": "0x1034", "datatype": "uint16", "alert": 1, "name":"输出过载保护", "remark": "1:故障,0正常"}, - {"key": "0x1035", "datatype": "uint16", "alert": 1, "name":"输出短路保护", "remark": "1:故障,0正常"}, - {"key": "0x1036", "datatype": "uint16", "alert": 1, "name":"并机通信异常", "remark": "1:故障,0正常"}, - {"key": "0x1037", "datatype": "uint16", "alert": 1, "name":"电池保险异常", "remark": "1:故障,0正常"}, - {"key": "0x1038", "datatype": "uint16", "alert": 1, "name":"电池重载低压", "remark": "1:故障,0正常"}, - {"key": "0x1039", "datatype": "uint16", "alert": 1, "name":"电池低压告警", "remark": "1:故障,0正常"}, - {"key": "0x103A", "datatype": "uint16", "alert": 1, "name":"一拖二压差过大", "remark": "1:故障,0正常"}, - {"key": "0x103B", "datatype": "uint16", "alert": 1, "name":"电池反接故障", "remark": "1:故障,0正常"}, - {"key": "0x103C", "datatype": "uint16", "alert": 1, "name":"电池电压异常", "remark": "1:故障,0正常"}, - {"key": "0x103D", "datatype": "uint16", "alert": 1, "name":"过载告警", "remark": "1:故障,0正常"}, - {"key": "0x103E", "datatype": "uint16", "alert": 1, "name":"外部接触器异常", "remark": "1:故障,0正常"}, - {"key": "0x103F", "datatype": "uint16", "alert": 1, "name":"IGBT温度传感器异常", "remark": "1:故障,0正常"}, - {"key": "0x1040", "datatype": "uint16", "alert": 1, "name":"整机温度传感器异常", "remark": "1:故障,0正常"}, - {"key": "0x1041", "datatype": "uint16", "alert": 1, "name":"市电CT异常", "remark": "1:故障,0正常"}, - {"key": "0x1042", "datatype": "uint16", "alert": 1, "name":"逆变电流三相不平衡", "remark": "1:故障,0正常"}, - {"key": "0x1043", "datatype": "uint16", "alert": 1, "name":"逆变电流直流分量异常", "remark": "1:故障,0正常"}, - {"key": "0x1044", "datatype": "uint16", "alert": 1, "name":"母线不平衡", "remark": "1:故障,0正常"}, - {"key": "0x1045", "datatype": "uint16", "alert": 1, "name":"逆变电压直流分量异常", "remark": "1:故障,0正常"}, - {"key": "0x1046", "datatype": "uint16", "alert": 1, "name":"主接触器控制异常", "remark": "1:故障,0正常"}, - {"key": "0x1047", "datatype": "uint16", "alert": 1, "name":"逆变电压控制异常", "remark": "1:故障,0正常"}, - {"key": "0x1048", "datatype": "uint16", "alert": 1, "name":"直流霍尔异常", "remark": "1:故障,0正常"}, - {"key": "0x1049", "datatype": "uint16", "alert": 1, "name":"电池单体过压", "remark": "1:故障,0正常"}, - {"key": "0x104A", "datatype": "uint16", "alert": 1, "name":"电池单体欠压", "remark": "1:故障,0正常"}, - {"key": "0x104B", "datatype": "uint16", "alert": 1, "name":"电网过压", "remark": "1:故障,0正常"}, - {"key": "0x104C", "datatype": "uint16", "alert": 1, "name":"电网欠压", "remark": "1:故障,0正常"}, - {"key": "0x104D", "datatype": "uint16", "alert": 1, "name":"电网过频", "remark": "1:故障,0正常"}, - {"key": "0x104E", "datatype": "uint16", "alert": 1, "name":"电网欠频", "remark": "1:故障,0正常"}, - {"key": "0x104F", "datatype": "uint16", "alert": 1, "name":"市电不平衡", "remark": "1:故障,0正常"}, - {"key": "0x1050", "datatype": "uint16", "alert": 1, "name":"参数设置不匹配", "remark": "1:故障,0正常"}, - {"key": "0x1051", "datatype": "uint16", "alert": 1, "name":"SPI通信异常", "remark": "1:故障,0正常"}, - {"key": "0x1052", "datatype": "uint16", "alert": 1, "name":"SCI通信异常", "remark": "1:故障,0正常"}, - {"key": "0x1053", "datatype": "uint16", "alert": 1, "name":"IIC通信异常", "remark": "1:故障,0正常"}, - {"key": "0x1054", "datatype": "uint16", "alert": 1, "name":"Xintf通信异常", "remark": "1:故障,0正常"}, - {"key": "0x1055", "datatype": "uint16", "alert": 1, "name":"零偏校准异常", "remark": "1:故障,0正常"}, - {"key": "0x1056", "datatype": "uint16", "alert": 1, "name":"烟雾告警", "remark": "1:故障,0正常"}, - {"key": "0x1057", "datatype": "uint16", "alert": 1, "name":"无电池组故障", "remark": "1异常,0正常"}, - {"key": "0x1058", "datatype": "uint16", "alert": 1, "name":"环温降频", "remark": "1异常,0正常"}, - {"key": "0x1059", "datatype": "uint16", "alert": 1, "name":"交流过载", "remark": "1异常,0正常"}, - {"key": "0x105A", "datatype": "uint16", "alert": 1, "name":"采样异常", "remark": "1异常,0正常"}, - {"key": "0x105B", "datatype": "uint16", "alert": 1, "name":"24V辅源故障", "remark": "1异常,0正常"}, - {"key": "0x105C", "datatype": "uint16", "alert": 1, "name":"直流欠压异常", "remark": "1异常,0正常"}, - {"key": "0x105D", "datatype": "uint16", "alert": 1, "name":"散热器过温", "remark": "1异常,0正常"}, - {"key": "0x105E", "datatype": "uint16", "alert": 1, "name":"CAN配置故障", "remark": "1异常,0正常"}, - {"key": "0x105F", "datatype": "uint16", "alert": 1, "name":"3.3V辅源故障", "remark": "1异常,0正常"}, - {"key": "0x1060", "datatype": "uint16", "alert": 1, "name":"环境过温", "remark": "1异常,0正常"}, - {"key": "0x1061", "datatype": "uint16", "alert": 1, "name":"A相IGBT逆变过流", "remark": "1异常,0正常"}, - {"key": "0x1062", "datatype": "uint16", "alert": 1, "name":"B相IGBT逆变过流", "remark": "1异常,0正常"}, - {"key": "0x1063", "datatype": "uint16", "alert": 1, "name":"C相IGBT逆变过流", "remark": "1异常,0正常"} - ] - }, - "BMS_YC":{ - "addr":[ - {"key": "0x0001", "datatype": "uint16", "alert": 0, "name":"SOC", "remark": "(0.1)"}, - {"key": "0x0002", "datatype": "uint16", "alert": 0, "name":"SOH", "remark": "(0.1)"}, - {"key": "0x0003", "datatype": "uint32", "alert": 0, "name":"电压", "remark": "(0.1V)"}, - {"key": "0x0005", "datatype": "int32", "alert": 0, "name":"电流", "remark": "(0.1A)"}, - {"key": "0x0007", "datatype": "uint32", "alert": 0, "name":"可充电量", "remark": "(1kWh)"}, - {"key": "0x0009", "datatype": "uint32", "alert": 0, "name":"可放电量", "remark": "(1kWh)"}, - {"key": "0x000B", "datatype": "uint32", "alert": 0, "name":"单次可充电量", "remark": "(1kWh)"}, - {"key": "0x000D", "datatype": "uint32", "alert": 0, "name":"单次可放电量", "remark": "(1kWh)"}, - {"key": "0x000F", "datatype": "int32", "alert": 0, "name":"堆功率", "remark": "(1kW)"}, - {"key": "0x0011", "datatype": "uint32", "alert": 0, "name":"充电量累加", "remark": "(1kWh)"}, - {"key": "0x0013", "datatype": "uint32", "alert": 0, "name":"放电量累加", "remark": "(1kWh)"}, - {"key": "0x0015", "datatype": "uint16", "alert": 0, "name":"簇最大SOC", "remark": "(0.1)"}, - {"key": "0x0016", "datatype": "uint16", "alert": 0, "name":"簇最小SOC", "remark": "(0.1)"}, - {"key": "0x0017", "datatype": "uint16", "alert": 0, "name":"簇最大SOC号", "remark": ""}, - {"key": "0x0018", "datatype": "uint16", "alert": 0, "name":"簇最小SOC号", "remark": ""}, - {"key": "0x0019", "datatype": "uint16", "alert": 0, "name":"簇SOC差值", "remark": "(0.1)"}, - {"key": "0x001A", "datatype": "uint16", "alert": 0, "name":"簇最大电压", "remark": "(0.1V)"}, - {"key": "0x001B", "datatype": "uint16", "alert": 0, "name":"簇最小电压", "remark": "(0.1V)"}, - {"key": "0x001C", "datatype": "uint16", "alert": 0, "name":"簇最大电压号", "remark": ""}, - {"key": "0x001D", "datatype": "uint16", "alert": 0, "name":"簇最小电压号", "remark": ""}, - {"key": "0x001E", "datatype": "uint16", "alert": 0, "name":"簇电压差值", "remark": "(0.1V)"}, - {"key": "0x001F", "datatype": "uint16", "alert": 0, "name":"单体最大电压簇号", "remark": ""}, - {"key": "0x0020", "datatype": "uint16", "alert": 0, "name":"单体最大电压节号", "remark": ""}, - {"key": "0x0021", "datatype": "uint16", "alert": 0, "name":"单体最大电压", "remark": "(mV)"}, - {"key": "0x0022", "datatype": "uint16", "alert": 0, "name":"单体最小电压簇号", "remark": ""}, - {"key": "0x0023", "datatype": "uint16", "alert": 0, "name":"单体最小电压节号", "remark": ""}, - {"key": "0x0024", "datatype": "uint16", "alert": 0, "name":"单体最小电压", "remark": "(mV)"}, - {"key": "0x0025", "datatype": "uint16", "alert": 0, "name":"单体平均电压", "remark": "(mV)"}, - {"key": "0x0026", "datatype": "uint16", "alert": 0, "name":"单体电压差", "remark": "(mV)"}, - {"key": "0x0027", "datatype": "uint16", "alert": 0, "name":"单体最大温度簇号", "remark": ""}, - {"key": "0x0028", "datatype": "uint16", "alert": 0, "name":"单体最大温度节号", "remark": ""}, - {"key": "0x0029", "datatype": "int16", "alert": 0, "name":"单体最大温度", "remark": "(0.1℃)"}, - {"key": "0x002A", "datatype": "uint16", "alert": 0, "name":"单体最小温度簇号", "remark": ""}, - {"key": "0x002B", "datatype": "uint16", "alert": 0, "name":"单体最小温度节号", "remark": ""}, - {"key": "0x002C", "datatype": "int16", "alert": 0, "name":"单体最小温度", "remark": "(0.1℃)"}, - {"key": "0x002D", "datatype": "int16", "alert": 0, "name":"单体平均温度", "remark": "(0.1℃)"}, - {"key": "0x002E", "datatype": "int16", "alert": 0, "name":"单体温度差", "remark": "(0.1℃)"}, - {"key": "0x002F", "datatype": "uint16", "alert": 0, "name":"最大内阻簇号", "remark": ""}, - {"key": "0x0030", "datatype": "uint16", "alert": 0, "name":"最大内阻节号", "remark": ""}, - {"key": "0x0031", "datatype": "uint16", "alert": 0, "name":"最大内阻", "remark": "(mΩ)"}, - {"key": "0x0032", "datatype": "uint16", "alert": 0, "name":"最小内阻簇号", "remark": ""}, - {"key": "0x0033", "datatype": "uint16", "alert": 0, "name":"最小内阻节号", "remark": ""}, - {"key": "0x0034", "datatype": "uint16", "alert": 0, "name":"最小内阻", "remark": "(mΩ)"}, - {"key": "0x0035", "datatype": "uint16", "alert": 0, "name":"单体平均内阻", "remark": "(mΩ)"}, - {"key": "0x0036", "datatype": "uint16", "alert": 0, "name":"单体内阻差", "remark": "(mΩ)"}, - {"key": "0x0037", "datatype": "uint16", "alert": 0, "name":"单体最大SOH簇号", "remark": ""}, - {"key": "0x0038", "datatype": "uint16", "alert": 0, "name":"单体最大SOH节号", "remark": ""}, - {"key": "0x0039", "datatype": "uint16", "alert": 0, "name":"单体最大SOH", "remark": "(0.001)"}, - {"key": "0x003A", "datatype": "uint16", "alert": 0, "name":"单体最小SOH簇号", "remark": ""}, - {"key": "0x003B", "datatype": "uint16", "alert": 0, "name":"单体最小SOH节号", "remark": ""}, - {"key": "0x003C", "datatype": "uint16", "alert": 0, "name":"单体最小SOH", "remark": "(0.001)"}, - {"key": "0x003D", "datatype": "uint16", "alert": 0, "name":"单体最大SOc簇号", "remark": ""}, - {"key": "0x003E", "datatype": "uint16", "alert": 0, "name":"单体最大SOc节号", "remark": ""}, - {"key": "0x0040", "datatype": "uint16", "alert": 0, "name":"单体最大Soc", "remark": "(0.001)"}, - {"key": "0x0041", "datatype": "uint16", "alert": 0, "name":"单体最小SOc簇号", "remark": ""}, - {"key": "0x0042", "datatype": "uint16", "alert": 0, "name":"单体最小SOc节号", "remark": ""}, - {"key": "0x0043", "datatype": "uint16", "alert": 0, "name":"单体最小SOc", "remark": "(0.001)"}, - {"key": "0x0044", "datatype": "uint32", "alert": 0, "name":"系统剩余最大可充电功率", "remark": "(1KW)"}, - {"key": "0x0045", "datatype": "uint32", "alert": 0, "name":"系统剩余最大可放电功率", "remark": "(1KW)"}, - {"key": "0x0047", "datatype": "uint16", "alert": 0, "name":"可充电状态", "remark": ""}, - {"key": "0x0048", "datatype": "uint16", "alert": 0, "name":"可放电状态", "remark": ""}, - {"key": "0x0049", "datatype": "uint16", "alert": 0, "name":"运行状态", "remark": ""}, - {"key": "0x004A", "datatype": "uint16", "alert": 0, "name":"充放电状态", "remark": ""} - ] - }, - "BCU_YC":{ - "addr":[ - {"key": "0x0001", "datatype": "uint16", "alert": 0, "name":"所属通道号", "remark": "1~4"}, - {"key": "0x0002", "datatype": "uint16", "alert": 0, "name":"所属BCU号", "remark": "1~40"}, - {"key": "0x0003", "datatype": "uint32", "alert": 0, "name":"簇电压", "remark": "(0.1V)"}, - {"key": "0x0005", "datatype": "int32", "alert": 0, "name":"簇电流", "remark": "(0.1A)"}, - {"key": "0x0007", "datatype": "int32", "alert": 0, "name":"簇温度", "remark": "(0.1℃)"}, - {"key": "0x0009", "datatype": "uint32", "alert": 0, "name":"簇电阻", "remark": "(1mΩ)"}, - {"key": "0x000B", "datatype": "uint16", "alert": 0, "name":"簇SOC", "remark": "(0.1)"}, - {"key": "0x000C", "datatype": "uint16", "alert": 0, "name":"簇SOH", "remark": "(0.1)"}, - {"key": "0x000D", "datatype": "uint32", "alert": 0, "name":"簇正绝缘电阻", "remark": "(1kΩ)"}, - {"key": "0x000F", "datatype": "uint32", "alert": 0, "name":"簇负绝缘电阻", "remark": "(1kΩ)"}, - {"key": "0x0011", "datatype": "int32", "alert": 0, "name":"簇允许最大充电电流", "remark": "(0.1A)"}, - {"key": "0x0013", "datatype": "int32", "alert": 0, "name":"簇允许最大放电电流", "remark": "(0.1A)"}, - {"key": "0x0015", "datatype": "uint32", "alert": 0, "name":"簇允许最大充电功率", "remark": "(1kW)"}, - {"key": "0x0017", "datatype": "uint32", "alert": 0, "name":"簇允许最大放电功率", "remark": "(1kW)"}, - {"key": "0x0019", "datatype": "uint32", "alert": 0, "name":"簇可充容量", "remark": "(0.1Ah)"}, - {"key": "0x001B", "datatype": "uint32", "alert": 0, "name":"簇可放容量", "remark": "(0.1Ah)"}, - {"key": "0x001D", "datatype": "uint32", "alert": 0, "name":"簇单次累计充容量", "remark": "(0.1Ah)"}, - {"key": "0x001F", "datatype": "uint32", "alert": 0, "name":"簇单次累计放容量", "remark": "(0.1Ah)"}, - {"key": "0x0021", "datatype": "uint32", "alert": 0, "name":"簇总累计充容量", "remark": "(0.1Ah)"}, - {"key": "0x0023", "datatype": "uint32", "alert": 0, "name":"簇总累计放容量", "remark": "(0.1Ah)"}, - {"key": "0x0025", "datatype": "uint32", "alert": 0, "name":"簇可充电量", "remark": "(1kWh)"}, - {"key": "0x0027", "datatype": "uint32", "alert": 0, "name":"簇可放电量", "remark": "(1kWh)"}, - {"key": "0x0029", "datatype": "uint32", "alert": 0, "name":"簇单次充电量", "remark": "(1kWh)"}, - {"key": "0x002B", "datatype": "uint32", "alert": 0, "name":"簇单次放电量", "remark": "(1kWh)"}, - {"key": "0x002D", "datatype": "uint32", "alert": 0, "name":"簇累计充电量", "remark": "(1kWh)"}, - {"key": "0x002F", "datatype": "uint32", "alert": 0, "name":"簇累计放电量", "remark": "(1kWh)"}, - {"key": "0x0031", "datatype": "uint32", "alert": 0, "name":"pack累计簇总压", "remark": "(0.1V)"}, - {"key": "0x0033", "datatype": "uint32", "alert": 0, "name":"簇与pack压差", "remark": "(0.1V)"}, - {"key": "0x0035", "datatype": "uint32", "alert": 0, "name":"簇与PCS压差", "remark": "(0.1V)"}, - {"key": "0x0037", "datatype": "uint16", "alert": 0, "name":"簇中BMU个数", "remark": ""}, - {"key": "0x0038", "datatype": "uint16", "alert": 0, "name":"簇中BMU中单体个数", "remark": ""}, - {"key": "0x0039", "datatype": "uint16", "alert": 0, "name":"簇中BMU中温度个数", "remark": ""}, - {"key": "0x003A", "datatype": "uint16", "alert": 0, "name":"簇中单体个数", "remark": ""}, - {"key": "0x003B", "datatype": "uint16", "alert": 0, "name":"簇中温度个数", "remark": ""}, - {"key": "0x003C", "datatype": "uint16", "alert": 0, "name":"单体最高SOC节号", "remark": ""}, - {"key": "0x003D", "datatype": "uint16", "alert": 0, "name":"单体最高SOC", "remark": "(0.1)"}, - {"key": "0x003E", "datatype": "uint16", "alert": 0, "name":"单体最低SOC节号", "remark": ""}, - {"key": "0x003F", "datatype": "uint16", "alert": 0, "name":"单体最低SOC", "remark": "(0.1)"}, - {"key": "0x0040", "datatype": "uint16", "alert": 0, "name":"单体最高SOH节号", "remark": ""}, - {"key": "0x0041", "datatype": "uint16", "alert": 0, "name":"单体最高SOH", "remark": "(0.1)"}, - {"key": "0x0042", "datatype": "uint16", "alert": 0, "name":"单体最低SOH节号", "remark": ""}, - {"key": "0x0043", "datatype": "uint16", "alert": 0, "name":"单体最低SOH", "remark": "(0.1)"}, - {"key": "0x0044", "datatype": "uint16", "alert": 0, "name":"单体最高电压节号", "remark": ""}, - {"key": "0x0045", "datatype": "uint16", "alert": 0, "name":"单体最高电压", "remark": "(mV)"}, - {"key": "0x0046", "datatype": "uint16", "alert": 0, "name":"单体最低电压节号", "remark": ""}, - {"key": "0x0047", "datatype": "uint16", "alert": 0, "name":"单体最低电压", "remark": "(mV)"}, - {"key": "0x0048", "datatype": "uint16", "alert": 0, "name":"单体电压差", "remark": "(mV)"}, - {"key": "0x0049", "datatype": "uint16", "alert": 0, "name":"单体平均电压", "remark": "(mV)"}, - {"key": "0x004A", "datatype": "uint16", "alert": 0, "name":"单体最高温度节号", "remark": ""}, - {"key": "0x004B", "datatype": "int16", "alert": 0, "name":"单体最高温度", "remark": "(0.1℃)"}, - {"key": "0x004C", "datatype": "uint16", "alert": 0, "name":"单体最低温度节号", "remark": ""}, - {"key": "0x004D", "datatype": "int16", "alert": 0, "name":"单体最低温度", "remark": "(0.1℃)"}, - {"key": "0x004E", "datatype": "int16", "alert": 0, "name":"单体温度差", "remark": "(0.1℃)"}, - {"key": "0x004F", "datatype": "int16", "alert": 0, "name":"单体平均温度", "remark": "(0.1℃)"}, - {"key": "0x0050", "datatype": "uint16", "alert": 0, "name":"单体最高内阻节号", "remark": ""}, - {"key": "0x0051", "datatype": "uint16", "alert": 0, "name":"单体最高内阻", "remark": "(mΩ)"}, - {"key": "0x0052", "datatype": "uint16", "alert": 0, "name":"单体最低内阻节号", "remark": ""}, - {"key": "0x0053", "datatype": "uint16", "alert": 0, "name":"单体最低内阻", "remark": "(mΩ)"}, - {"key": "0x0054", "datatype": "uint16", "alert": 0, "name":"单体内阻差", "remark": "(mΩ)"}, - {"key": "0x0055", "datatype": "uint16", "alert": 0, "name":"单体平均内阻", "remark": "(mΩ)"} - ] - }, - "BCU_YX":{ - "addr":[ - {"key": "0xA001", "datatype": "uint16", "alert": 0, "name":"所属通道号", "remark": "1~4"}, - {"key": "0xA002", "datatype": "uint16", "alert": 0, "name":"所属BCU号", "remark": "1~40"}, - {"key": "0xA003", "datatype": "uint16", "alert": 0, "name":"蓄电池充放电状态", "remark": "0x11开路0x22待机0x33充电0x44放电"}, - {"key": "0xA004", "datatype": "uint16", "alert": 0, "name":"电池组运行状态", "remark": "0x11跳机 0x22待机 0x33放空 0x44充满 0x55预警 0x66正常"}, - {"key": "0xA005", "datatype": "uint16", "alert": 0, "name":"簇DO1状态", "remark": "1:断开 2:闭合"}, - {"key": "0xA006", "datatype": "uint16", "alert": 0, "name":"簇DO2状态", "remark": "1:断开 2:闭合"}, - {"key": "0xA007", "datatype": "uint16", "alert": 0, "name":"继电器总正", "remark": "0:断开 1:闭合 2:粘连"}, - {"key": "0xA008", "datatype": "uint16", "alert": 0, "name":"继电器总负", "remark": "0:断开 1:闭合 2:粘连"}, - {"key": "0xA009", "datatype": "uint16", "alert": 0, "name":"继电器预充", "remark": "0:断开 1:闭合 2:粘连"}, - {"key": "0xA00A", "datatype": "uint16", "alert": 0, "name":"继电器bmu供电", "remark": "0:断开 1:闭合 2:粘连"}, - {"key": "0xA00B", "datatype": "uint16", "alert": 1, "name":"整簇总电压过高告警", "remark": "0:正常 1:告警"}, - {"key": "0xA00C", "datatype": "uint16", "alert": 1, "name":"整簇总电压过低告警", "remark": "0:正常 1:告警"}, - {"key": "0xA00D", "datatype": "uint16", "alert": 1, "name":"整簇中单体电压过高告警", "remark": "0:正常 1:告警"}, - {"key": "0xA00E", "datatype": "uint16", "alert": 1, "name":"整簇中单体电压过低告警", "remark": "0:正常 1:告警"}, - {"key": "0xA00F", "datatype": "uint16", "alert": 1, "name":"整簇中单体电压偏差过大告警", "remark": "0:正常 1:告警"}, - {"key": "0xA010", "datatype": "uint16", "alert": 1, "name":"整簇中单体温度偏差过大告警", "remark": "0:正常 1:告警"}, - {"key": "0xA011", "datatype": "uint16", "alert": 1, "name":"整簇中单体温度过高告警", "remark": "0:正常 1:告警"}, - {"key": "0xA012", "datatype": "uint16", "alert": 1, "name":"整簇中单体温度过低告警", "remark": "0:正常 1:告警"}, - {"key": "0xA013", "datatype": "uint16", "alert": 1, "name":"整簇总充电电流过高告警", "remark": "0:正常 1:告警"}, - {"key": "0xA014", "datatype": "uint16", "alert": 1, "name":"整簇总放电电流过高告警", "remark": "0:正常 1:告警"}, - {"key": "0xA015", "datatype": "uint16", "alert": 1, "name":"整簇总SOC过高告警", "remark": "0:正常 1:告警"}, - {"key": "0xA016", "datatype": "uint16", "alert": 1, "name":"整簇总SOC过低告警", "remark": "0:正常 1:告警"}, - {"key": "0xA017", "datatype": "uint16", "alert": 1, "name":"高压盒主正接触器粘连告警", "remark": "0:正常 1:告警"}, - {"key": "0xA018", "datatype": "uint16", "alert": 1, "name":"高压盒主正接触器不能吸合告警", "remark": "0:正常 1:告警"}, - {"key": "0xA019", "datatype": "uint16", "alert": 1, "name":"高压盒主负接触器粘连告警", "remark": "0:正常 1:告警"}, - {"key": "0xA01A", "datatype": "uint16", "alert": 1, "name":"高压盒主负接触器不能吸合告警", "remark": "0:正常 1:告警"}, - {"key": "0xA01B", "datatype": "uint16", "alert": 1, "name":"高压盒预充接触器粘连告警", "remark": "0:正常 1:告警"}, - {"key": "0xA01C", "datatype": "uint16", "alert": 1, "name":"高压盒预充接触器不能吸合告警", "remark": "0:正常 1:告警"}, - {"key": "0xA01D", "datatype": "uint16", "alert": 1, "name":"预充失败告警", "remark": "0:正常 1:告警"}, - {"key": "0xA01E", "datatype": "uint16", "alert": 1, "name":"BCU电压检测模块出现问题告警", "remark": "0:正常 1:告警"}, - {"key": "0xA01F", "datatype": "uint16", "alert": 1, "name":"BCU温度检测模块出现问题告警", "remark": "0:正常 1:告警"}, - {"key": "0xA020", "datatype": "uint16", "alert": 1, "name":"BCU电流检测模块出现问题告警", "remark": "0:正常 1:告警"}, - {"key": "0xA021", "datatype": "uint16", "alert": 1, "name":"BCU绝缘检测模块出现问题告警", "remark": "0:正常 1:告警"}, - {"key": "0xA022", "datatype": "uint16", "alert": 1, "name":"高压盒内总压检测模块出现问题告警", "remark": "0:正常 1:告警"}, - {"key": "0xA023", "datatype": "uint16", "alert": 1, "name":"高压盒外总压检测模块出现问题告警", "remark": "0:正常 1:告警"}, - {"key": "0xA024", "datatype": "uint16", "alert": 1, "name":"PCS-CAN通信故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA025", "datatype": "uint16", "alert": 1, "name":"高压盒供电电压过高告警", "remark": "0:正常 1:告警"}, - {"key": "0xA026", "datatype": "uint16", "alert": 1, "name":"绝缘正极故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA027", "datatype": "uint16", "alert": 1, "name":"绝缘负极故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA028", "datatype": "uint16", "alert": 1, "name":"绝缘中间侧故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA029", "datatype": "uint16", "alert": 1, "name":"绝缘故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA02A", "datatype": "uint16", "alert": 1, "name":"BMU中电压采样线开路告警", "remark": "0:正常 1:告警"}, - {"key": "0xA02B", "datatype": "uint16", "alert": 1, "name":"BMU中NTC采样线短开路告警", "remark": "0:正常 1:告警"}, - {"key": "0xA02C", "datatype": "uint16", "alert": 1, "name":"BMU中采样芯片故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA02D", "datatype": "uint16", "alert": 1, "name":"BMU中电池温度升高过快告警", "remark": "0:正常 1:告警"}, - {"key": "0xA02E", "datatype": "uint16", "alert": 1, "name":"BMU中电池内部短路告警", "remark": "0:正常 1:告警"}, - {"key": "0xA02F", "datatype": "uint16", "alert": 1, "name":"BMU充电均衡模块出现故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA030", "datatype": "uint16", "alert": 1, "name":"BMU放电均衡模块出现故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA031", "datatype": "uint16", "alert": 1, "name":"BMU通信故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA032", "datatype": "uint16", "alert": 1, "name":"单体内阻过大告警", "remark": "0:正常 1:告警"}, - {"key": "0xA033", "datatype": "uint16", "alert": 1, "name":"单体内阻过小告警", "remark": "0:正常 1:告警"}, - {"key": "0xA034", "datatype": "uint16", "alert": 1, "name":"单体内阻阻差过大告警", "remark": "0:正常 1:告警"}, - {"key": "0xA035", "datatype": "uint16", "alert": 1, "name":"簇内阻过大告警", "remark": "0:正常 1:告警"}, - {"key": "0xA036", "datatype": "uint16", "alert": 1, "name":"簇内阻过小告警", "remark": "0:正常 1:告警"}, - {"key": "0xA037", "datatype": "uint16", "alert": 1, "name":"SOC初始化无效告警", "remark": "0:正常 1:告警"}, - {"key": "0xA038", "datatype": "uint16", "alert": 1, "name":"充电时soc降低故障告警", "remark": "0:正常 1:告警"}, - {"key": "0xA039", "datatype": "uint16", "alert": 1, "name":"放电时soc升高告警", "remark": "0:正常 1:告警"}, - {"key": "0xA03A", "datatype": "uint16", "alert": 1, "name":"静止时SOC跳变告警", "remark": "0:正常 1:告警"}, - {"key": "0xA03B", "datatype": "uint16", "alert": 0, "name":"整簇总电压过高保护", "remark": "0:正常 1:保护"}, - {"key": "0xA03C", "datatype": "uint16", "alert": 0, "name":"整簇总电压过低保护", "remark": "0:正常 1:保护"}, - {"key": "0xA03D", "datatype": "uint16", "alert": 0, "name":"整簇中单体电压过高保护", "remark": "0:正常 1:保护"}, - {"key": "0xA03E", "datatype": "uint16", "alert": 0, "name":"整簇中单体电压过低保护", "remark": "0:正常 1:保护"}, - {"key": "0xA03F", "datatype": "uint16", "alert": 0, "name":"整簇中单体电压偏差过大保护", "remark": "0:正常 1:保护"}, - {"key": "0xA040", "datatype": "uint16", "alert": 0, "name":"整簇中单体温度偏差过大保护", "remark": "0:正常 1:保护"}, - {"key": "0xA041", "datatype": "uint16", "alert": 0, "name":"整簇中单体温度过高保护", "remark": "0:正常 1:保护"}, - {"key": "0xA042", "datatype": "uint16", "alert": 0, "name":"整簇中单体温度过低保护", "remark": "0:正常 1:保护"}, - {"key": "0xA043", "datatype": "uint16", "alert": 0, "name":"整簇总充电电流过高保护", "remark": "0:正常 1:保护"}, - {"key": "0xA044", "datatype": "uint16", "alert": 0, "name":"整簇总放电电流过高保护", "remark": "0:正常 1:保护"}, - {"key": "0xA045", "datatype": "uint16", "alert": 0, "name":"整簇总SOC过高保护", "remark": "0:正常 1:保护"}, - {"key": "0xA046", "datatype": "uint16", "alert": 0, "name":"整簇总SOC过低保护", "remark": "0:正常 1:保护"}, - {"key": "0xA047", "datatype": "uint16", "alert": 0, "name":"高压盒主正接触器粘连保护", "remark": "0:正常 1:保护"}, - {"key": "0xA048", "datatype": "uint16", "alert": 0, "name":"高压盒主正接触器不能吸合保护", "remark": "0:正常 1:保护"}, - {"key": "0xA049", "datatype": "uint16", "alert": 0, "name":"高压盒主负接触器粘连保护", "remark": "0:正常 1:保护"}, - {"key": "0xA04A", "datatype": "uint16", "alert": 0, "name":"高压盒主负接触器不能吸合保护", "remark": "0:正常 1:保护"}, - {"key": "0xA04B", "datatype": "uint16", "alert": 0, "name":"高压盒预充接触器粘连保护", "remark": "0:正常 1:保护"}, - {"key": "0xA04C", "datatype": "uint16", "alert": 0, "name":"高压盒预充接触器不能吸合保护", "remark": "0:正常 1:保护"}, - {"key": "0xA04D", "datatype": "uint16", "alert": 0, "name":"预充失败保护", "remark": "0:正常 1:保护"}, - {"key": "0xA04E", "datatype": "uint16", "alert": 0, "name":"BCU电压检测模块出现问题保护", "remark": "0:正常 1:保护"}, - {"key": "0xA04F", "datatype": "uint16", "alert": 0, "name":"BCU温度检测模块出现问题保护", "remark": "0:正常 1:保护"}, - {"key": "0xA050", "datatype": "uint16", "alert": 0, "name":"BCU电流检测模块出现问题保护", "remark": "0:正常 1:保护"}, - {"key": "0xA051", "datatype": "uint16", "alert": 0, "name":"BCU绝缘检测模块出现问题保护", "remark": "0:正常 1:保护"}, - {"key": "0xA052", "datatype": "uint16", "alert": 0, "name":"高压盒内总压检测模块出现问题保护", "remark": "0:正常 1:保护"}, - {"key": "0xA053", "datatype": "uint16", "alert": 0, "name":"高压盒外总压检测模块出现问题保护", "remark": "0:正常 1:保护"}, - {"key": "0xA054", "datatype": "uint16", "alert": 0, "name":"PCS-CAN通信故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA055", "datatype": "uint16", "alert": 0, "name":"高压盒供电电压过高保护", "remark": "0:正常 1:保护"}, - {"key": "0xA056", "datatype": "uint16", "alert": 0, "name":"绝缘正极故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA057", "datatype": "uint16", "alert": 0, "name":"绝缘负极故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA058", "datatype": "uint16", "alert": 0, "name":"绝缘中间侧故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA059", "datatype": "uint16", "alert": 0, "name":"绝缘故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA05A", "datatype": "uint16", "alert": 0, "name":"BMU中电压采样线开路保护", "remark": "0:正常 1:保护"}, - {"key": "0xA05B", "datatype": "uint16", "alert": 0, "name":"BMU中NTC采样线短开路保护", "remark": "0:正常 1:保护"}, - {"key": "0xA05C", "datatype": "uint16", "alert": 0, "name":"BMU中采样芯片故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA05D", "datatype": "uint16", "alert": 0, "name":"BMU中电池温度升高过快保护", "remark": "0:正常 1:保护"}, - {"key": "0xA05E", "datatype": "uint16", "alert": 0, "name":"BMU中电池内部短路保护", "remark": "0:正常 1:保护"}, - {"key": "0xA05F", "datatype": "uint16", "alert": 0, "name":"BMU充电均衡模块出现故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA060", "datatype": "uint16", "alert": 0, "name":"BMU放电均衡模块出现故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA061", "datatype": "uint16", "alert": 0, "name":"BMU通信故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA062", "datatype": "uint16", "alert": 0, "name":"单体内阻过大保护", "remark": "0:正常 1:保护"}, - {"key": "0xA063", "datatype": "uint16", "alert": 0, "name":"单体内阻过小保护", "remark": "0:正常 1:保护"}, - {"key": "0xA064", "datatype": "uint16", "alert": 0, "name":"单体内阻阻差过大保护", "remark": "0:正常 1:保护"}, - {"key": "0xA065", "datatype": "uint16", "alert": 0, "name":"簇内阻过大保护", "remark": "0:正常 1:保护"}, - {"key": "0xA066", "datatype": "uint16", "alert": 0, "name":"簇内阻过小保护", "remark": "0:正常 1:保护"}, - {"key": "0xA067", "datatype": "uint16", "alert": 0, "name":"SOC初始化无效保护", "remark": "0:正常 1:保护"}, - {"key": "0xA068", "datatype": "uint16", "alert": 0, "name":"充电时soc降低故障保护", "remark": "0:正常 1:保护"}, - {"key": "0xA069", "datatype": "uint16", "alert": 0, "name":"放电时soc升高保护", "remark": "0:正常 1:保护"}, - {"key": "0xA06A", "datatype": "uint16", "alert": 0, "name":"静止时SOC跳变保护", "remark": "0:正常 1:保护"} - ] - }, - "MEM_YC":{ - "addr":[ - {"key": "0x0001", "datatype": "uint16", "alert": 0, "name":"所属通道号", "remark": "1"}, - {"key": "0x0008", "datatype": "uint16", "alert": 0, "name":"电表类型", "remark": "0:储能站总表1:逆变前侧电表2:逆变后侧电表3:配电柜电表4:并网口电表"}, - {"key": "0x0009", "datatype": "uint16", "alert": 0, "name":"电流变比", "remark": ""}, - {"key": "0x000A", "datatype": "uint16", "alert": 0, "name":"电压变比", "remark": ""}, - {"key": "0x000B", "datatype": "uint32", "alert": 0, "name":"A相电压", "remark": "(1V)"}, - {"key": "0x000D", "datatype": "uint32", "alert": 0, "name":"B相电压", "remark": "(1V)"}, - {"key": "0x000F", "datatype": "uint32", "alert": 0, "name":"C相电压", "remark": "(1V)"}, - {"key": "0x0011", "datatype": "int32", "alert": 0, "name":"A相电流", "remark": "(1A)"}, - {"key": "0x0013", "datatype": "int32", "alert": 0, "name":"B相电流", "remark": "(1A)"}, - {"key": "0x0015", "datatype": "int32", "alert": 0, "name":"C相电流", "remark": "(1A)"}, - {"key": "0x0017", "datatype": "uint32", "alert": 0, "name":"AB相电压", "remark": "(1V)"}, - {"key": "0x0019", "datatype": "uint32", "alert": 0, "name":"BC相电压", "remark": "(1V)"}, - {"key": "0x001B", "datatype": "uint32", "alert": 0, "name":"CA相电压", "remark": "(1V)"}, - {"key": "0x001D", "datatype": "int32", "alert": 0, "name":"A相有功", "remark": "(1kW)"}, - {"key": "0x001F", "datatype": "int32", "alert": 0, "name":"B相有功", "remark": "(1kW)"}, - {"key": "0x0021", "datatype": "int32", "alert": 0, "name":"C相有功", "remark": "(1kW)"}, - {"key": "0x0023", "datatype": "int32", "alert": 0, "name":"三相总有功", "remark": "(1kW)"}, - {"key": "0x0025", "datatype": "int32", "alert": 0, "name":"正向总有功总需量", "remark": "(1kW)"}, - {"key": "0x0027", "datatype": "uint32", "alert": 0, "name":"尖段电价", "remark": "(1RMB)"}, - {"key": "0x0029", "datatype": "uint32", "alert": 0, "name":"峰段电价", "remark": "(1RMB)"}, - {"key": "0x002B", "datatype": "uint32", "alert": 0, "name":"平段电价", "remark": "(1RMB)"}, - {"key": "0x002D", "datatype": "uint32", "alert": 0, "name":"谷段电价", "remark": "(1RMB)"}, - {"key": "0x002F", "datatype": "uint32", "alert": 0, "name":"日充电电量", "remark": "(1kWh)"}, - {"key": "0x0031", "datatype": "uint32", "alert": 0, "name":"日放电电量", "remark": "(1kWh)"}, - {"key": "0x0033", "datatype": "uint32", "alert": 0, "name":"日充电费用", "remark": "(1RMB)"}, - {"key": "0x0035", "datatype": "uint32", "alert": 0, "name":"日放电费用", "remark": "(1RMB)"}, - {"key": "0x0037", "datatype": "int32", "alert": 0, "name":"日收益", "remark": "(1RMB)"}, - {"key": "0x0039", "datatype": "uint32", "alert": 0, "name":"日正向尖有功电能", "remark": "(1kWh)"}, - {"key": "0x003B", "datatype": "uint32", "alert": 0, "name":"日正向峰有功电能", "remark": "(1kWh)"}, - {"key": "0x003D", "datatype": "uint32", "alert": 0, "name":"日正向平有功电能", "remark": "(1kWh)"}, - {"key": "0x003F", "datatype": "uint32", "alert": 0, "name":"日正向谷有功电能", "remark": "(1kWh)"}, - {"key": "0x0041", "datatype": "uint32", "alert": 0, "name":"日正向总有功电能", "remark": "(1kWh)"}, - {"key": "0x0043", "datatype": "uint32", "alert": 0, "name":"日反向尖有功电能", "remark": "(1kWh)"}, - {"key": "0x0045", "datatype": "uint32", "alert": 0, "name":"日反向峰有功电能", "remark": "(1kWh)"}, - {"key": "0x0047", "datatype": "uint32", "alert": 0, "name":"日反向平有功电能", "remark": "(1kWh)"}, - {"key": "0x0049", "datatype": "uint32", "alert": 0, "name":"日反向谷有功电能", "remark": "(1kWh)"}, - {"key": "0x004B", "datatype": "uint32", "alert": 0, "name":"日反向总有功电能", "remark": "(1kWh)"}, - {"key": "0x004D", "datatype": "uint32", "alert": 0, "name":"总充电电量", "remark": "(1kWh)"}, - {"key": "0x004F", "datatype": "uint32", "alert": 0, "name":"总放电电量", "remark": "(1kWh)"}, - {"key": "0x0051", "datatype": "uint32", "alert": 0, "name":"总充电费用", "remark": "(1RMB)"}, - {"key": "0x0053", "datatype": "uint32", "alert": 0, "name":"总放电费用", "remark": "(1RMB)"}, - {"key": "0x0055", "datatype": "int32", "alert": 0, "name":"总收益", "remark": "(1RMB)"}, - {"key": "0x0057", "datatype": "uint32", "alert": 0, "name":"总正向尖有功电能", "remark": "(1kWh)"}, - {"key": "0x0059", "datatype": "uint32", "alert": 0, "name":"总正向峰有功电能", "remark": "(1kWh)"}, - {"key": "0x005B", "datatype": "uint32", "alert": 0, "name":"总正向平有功电能", "remark": "(1kWh)"}, - {"key": "0x005D", "datatype": "uint32", "alert": 0, "name":"总正向谷有功电能", "remark": "(1kWh)"}, - {"key": "0x005F", "datatype": "uint32", "alert": 0, "name":"总正向总有功电能", "remark": "(1kWh)"}, - {"key": "0x0061", "datatype": "uint32", "alert": 0, "name":"总反向尖有功电能", "remark": "(1kWh)"}, - {"key": "0x0063", "datatype": "uint32", "alert": 0, "name":"总反向峰有功电能", "remark": "(1kWh)"}, - {"key": "0x0065", "datatype": "uint32", "alert": 0, "name":"总反向平有功电能", "remark": "(1kWh)"}, - {"key": "0x0067", "datatype": "uint32", "alert": 0, "name":"总反向谷有功电能", "remark": "(1kWh)"}, - {"key": "0x0069", "datatype": "uint32", "alert": 0, "name":"总反向总有功电能", "remark": "(1kWh)"} - ] - }, - "TH_YC":{ - "addr":[ - {"key": "0x0001", "datatype": "uint16", "alert": 0, "name":"所属通道号", "remark": "1"}, - {"key": "0x0002", "datatype": "uint16", "alert": 0, "name":"所属温湿度号", "remark": "1~10"}, - {"key": "0x0003", "datatype": "int16", "alert": 0, "name":"温度", "remark": "(0.1℃)"}, - {"key": "0x0004", "datatype": "int16", "alert": 0, "name":"湿度", "remark": "(0.1℃)"} - ] - }, - "Fire40_YX":{ - "addr":[ - {"key": "0x0001", "datatype": "uint16", "alert": 0, "name":"所属通道号", "remark": "1~10"}, - {"key": "0x0002", "datatype": "uint16", "alert": 0, "name":"主控数量", "remark": "1"}, - {"key": "0x0003", "datatype": "uint16", "alert": 0, "name":"主控ID", "remark": "1"}, - {"key": "0x0004", "datatype": "uint16", "alert": 0, "name":"主控状态", "remark": "0:正常 1:预警 2:火警"}, - {"key": "0x0005", "datatype": "uint16[2]", "alert": 0, "name":"主控硬件版本", "remark": "主控硬件版本"}, - {"key": "0x0007", "datatype": "uint16[2]", "alert": 0, "name":"主控软件版本", "remark": "主控软件版本"}, - {"key": "0x0009", "datatype": "uint16", "alert": 0, "name":"主电状态", "remark": "0:使用市电 1:使用备电"}, - {"key": "0x000A", "datatype": "uint32", "alert": 0, "name":"备电电流", "remark": "(0.1A)"}, - {"key": "0x000C", "datatype": "uint32", "alert": 0, "name":"备电电压", "remark": "(0.1V)"}, - {"key": "0x000E", "datatype": "uint32", "alert": 0, "name":"可用容量", "remark": "(0.01Ah)"}, - {"key": "0x0010", "datatype": "uint32", "alert": 0, "name":"可充放容量", "remark": "(0.01Ah)"}, - {"key": "0x0012", "datatype": "uint16", "alert": 0, "name":"警铃是否使用", "remark": ""}, - {"key": "0x0013", "datatype": "uint16", "alert": 0, "name":"警铃状态", "remark": "0:无效 1:掉线 2:正常 3:启动"}, - {"key": "0x0014", "datatype": "uint16", "alert": 0, "name":"瓶头阀是否使用", "remark": ""}, - {"key": "0x0015", "datatype": "uint16", "alert": 0, "name":"瓶头阀状态", "remark": "0:无效 1:掉线 2:正常 3:启动"}, - {"key": "0x0016", "datatype": "uint16", "alert": 0, "name":"手报是否使用", "remark": ""}, - {"key": "0x0017", "datatype": "uint16", "alert": 0, "name":"手报状态", "remark": "0:无效 1:掉线 2:正常 3:启动"}, - {"key": "0x0018", "datatype": "uint16", "alert": 0, "name":"簇控制器数量", "remark": ""}, - {"key": "0x0019", "datatype": "uint16", "alert": 0, "name":"复合探测器总数量", "remark": ""}, - {"key": "0x001A", "datatype": "uint16", "alert": 0, "name":"烟雾探测器总数量", "remark": ""}, - {"key": "0x001B", "datatype": "uint16", "alert": 0, "name":"压力探测器总数量", "remark": ""}, - {"key": "0x001C", "datatype": "uint16", "alert": 0, "name":"吸气式探测器总数量", "remark": ""}, - {"key": "0x001D", "datatype": "uint16", "alert": 0, "name":"PACK探测器总数量", "remark": ""}, - {"key": "0x001E", "datatype": "uint16", "alert": 0, "name":"电池总数量", "remark": ""} - ] - }, - "Cooling_YC":{ - "addr":[ - {"key": "0x0001", "datatype": "uint16", "alert": 0, "name":"所属通道号", "remark": "1"}, - {"key": "0x0002", "datatype": "uint16", "alert": 0, "name":"所属冷机号", "remark": "1~10"}, - {"key": "0x0003", "datatype": "int16", "alert": 0, "name":"制冷点", "remark": "(0.1℃)"}, - {"key": "0x0004", "datatype": "int16", "alert": 0, "name":"制冷偏差", "remark": "(0.1℃)"}, - {"key": "0x0005", "datatype": "int16", "alert": 0, "name":"高温告警值", "remark": "(0.1℃)"}, - {"key": "0x0006", "datatype": "int16", "alert": 0, "name":"低温告警值", "remark": "(0.1℃)"}, - {"key": "0x0007", "datatype": "int16", "alert": 0, "name":"制热点", "remark": "(0.1℃)"}, - {"key": "0x0008", "datatype": "int16", "alert": 0, "name":"制热偏差", "remark": "(0.1℃)"}, - {"key": "0x0009", "datatype": "int16", "alert": 0, "name":"电芯温度", "remark": "(0.1℃)"}, - {"key": "0x000A", "datatype": "int16", "alert": 0, "name":"环境湿度", "remark": "(0.1℃)"}, - {"key": "0x000B", "datatype": "int16", "alert": 0, "name":"吸气温度", "remark": "(0.1℃)"}, - {"key": "0x000C", "datatype": "int16", "alert": 0, "name":"排气温度", "remark": "(0.1℃)"}, - {"key": "0x000D", "datatype": "int16", "alert": 0, "name":"进水温度/供液温度", "remark": "(0.1℃)"}, - {"key": "0x000E", "datatype": "int16", "alert": 0, "name":"出水温度/回液温度", "remark": "(0.1℃)"}, - {"key": "0x000F", "datatype": "int16", "alert": 0, "name":"进水压力/供液压力", "remark": "(0.1)"}, - {"key": "0x0010", "datatype": "int16", "alert": 0, "name":"出水压力/回液压力", "remark": "(0.1)"}, - {"key": "0x0011", "datatype": "int16", "alert": 0, "name":"高压压力", "remark": "(0.1)"}, - {"key": "0x0012", "datatype": "int16", "alert": 0, "name":"低压压力", "remark": "(0.1)"}, - {"key": "0x0013", "datatype": "int16", "alert": 0, "name":"循环水泵转速", "remark": ""}, - {"key": "0x0014", "datatype": "int16", "alert": 0, "name":"压缩机频率", "remark": ""}, - {"key": "0x0015", "datatype": "int16", "alert": 0, "name":"室外风机转速", "remark": ""} - ] - }, - "Cooling_YX":{ - "addr":[ - {"key": "0x1001", "datatype": "uint16", "alert": 0, "name":"所属通道号", "remark": "1"}, - {"key": "0x1002", "datatype": "uint16", "alert": 0, "name":"所属冷机号", "remark": "1~10"}, - {"key": "0x1003", "datatype": "uint16", "alert": 0, "name":"开关", "remark": "0:关机,1:开机"}, - {"key": "0x1004", "datatype": "uint16", "alert": 0, "name":"采样模式", "remark": "(0-出水温度 1-电芯温度)"}, - {"key": "0x1005", "datatype": "uint16", "alert": 0, "name":"制冷状态", "remark": "0:关闭,1:启动"}, - {"key": "0x1006", "datatype": "uint16", "alert": 0, "name":"制热状态", "remark": "0:关闭,1:启动"}, - {"key": "0x1007", "datatype": "uint16", "alert": 0, "name":"高温告警", "remark": "0:正常,1:告警"}, - {"key": "0x1008", "datatype": "uint16", "alert": 0, "name":"低温告警", "remark": "0:正常,1:告警"}, - {"key": "0x1009", "datatype": "uint16", "alert": 0, "name":"高压告警", "remark": "0:正常,1:告警"}, - {"key": "0x100A", "datatype": "uint16", "alert": 0, "name":"低压告警", "remark": "0:正常,1:告警"}, - {"key": "0x100B", "datatype": "uint16", "alert": 0, "name":"进水温度传感器", "remark": "0:正常,1:告警"}, - {"key": "0x100C", "datatype": "uint16", "alert": 0, "name":"出水温度传感器", "remark": "0:正常,1:告警"}, - {"key": "0x100D", "datatype": "uint16", "alert": 0, "name":"进水压力传感器", "remark": "0:正常,1:告警"}, - {"key": "0x100E", "datatype": "uint16", "alert": 0, "name":"出水压力传感器", "remark": "0:正常,1:告警"} - ] - }, - "Gateway_YC":{ - "addr":[ - {"key": "40001", "datatype": "uint16", "alert": 0, "name":"模式", "remark": ""}, - {"key": "40002", "datatype": "uint16", "alert": 0, "name":"峰谷时间段", "remark": ""}, - {"key": "40021", "datatype": "uint16", "alert": 0, "name":"自定时间段", "remark": ""}, - {"key": "40038", "datatype": "uint16", "alert": 0, "name":"其他参数", "remark": ""} - ] - }, - "Gateway_YX":{ - "addr":[ - {"key": "cdz", "datatype": "uint16", "alert": 0, "name":"充电桩通讯状态", "remark": "1:在线,0:离线"}, - {"key": "emu", "datatype": "uint16", "alert": 0, "name":"储能通讯状态", "remark": "1:在线,0:离线"} - ] - }, - "Charger_YC":{ - "addr":[ - {"key": "11", "datatype": "uint16", "alert": 0, "name":"枪1:状态", "remark": ""}, - {"key": "12", "datatype": "uint16", "alert": 0, "name":"枪1:需求电压", "remark": ""}, - {"key": "13", "datatype": "uint16", "alert": 0, "name":"枪1:需求电流", "remark": ""}, - {"key": "14", "datatype": "uint16", "alert": 0, "name":"枪1:需求功率", "remark": ""}, - {"key": "15", "datatype": "uint16", "alert": 0, "name":"枪1:输出电压", "remark": ""}, - {"key": "16", "datatype": "uint16", "alert": 0, "name":"枪1:输出电流", "remark": ""}, - {"key": "17", "datatype": "uint16", "alert": 0, "name":"枪1:输出功率", "remark": ""}, - {"key": "18", "datatype": "uint16", "alert": 0, "name":"枪1:功率限值", "remark": ""}, - {"key": "21", "datatype": "uint16", "alert": 0, "name":"枪2:状态", "remark": ""}, - {"key": "22", "datatype": "uint16", "alert": 0, "name":"枪2:需求电压", "remark": ""}, - {"key": "23", "datatype": "uint16", "alert": 0, "name":"枪2:需求电流", "remark": ""}, - {"key": "24", "datatype": "uint16", "alert": 0, "name":"枪2:需求功率", "remark": ""}, - {"key": "25", "datatype": "uint16", "alert": 0, "name":"枪2:输出电压", "remark": ""}, - {"key": "26", "datatype": "uint16", "alert": 0, "name":"枪2:输出电流", "remark": ""}, - {"key": "27", "datatype": "uint16", "alert": 0, "name":"枪2:输出功率", "remark": ""}, - {"key": "28", "datatype": "uint16", "alert": 0, "name":"枪2:功率限值", "remark": ""} - ] - } -} \ No newline at end of file diff --git a/bin/Release/assets/config/regaddrsShow.json b/bin/Release/assets/config/regaddrsShow.json index d0872dd..370c7ba 100644 --- a/bin/Release/assets/config/regaddrsShow.json +++ b/bin/Release/assets/config/regaddrsShow.json @@ -71,7 +71,8 @@ "addrCurve": ["0x0013", "0x001C", "0x0028"], "valstr": { "0x1007": {"1":"离网","0":"并网"}, - "0x1008": {"1":"开机","0":"关机"} + "0x1006": {"1":"开机","0":"关机"}, + "0x103D": {"1":"自动","0":"手动"} } }, "BMS":{ diff --git a/src/app/Config.h b/src/app/Config.h index 88e8445..e778f00 100644 --- a/src/app/Config.h +++ b/src/app/Config.h @@ -19,6 +19,7 @@ struct AppOption } database; struct { + bool enabled {true}; int useToken {1}; int port {0}; int encryption {1}; @@ -26,6 +27,7 @@ struct AppOption } http; struct { + bool enabled {true}; std::string host; std::string username; std::string password; diff --git a/src/app/Station.cpp b/src/app/Station.cpp index 7c8dc99..9e4e8d7 100644 --- a/src/app/Station.cpp +++ b/src/app/Station.cpp @@ -15,6 +15,9 @@ Station::Station() : stationId(0) { mqttCli = std::make_shared(); + predictStorageIn = vector(144, 0); + predictStorageOut = vector(144, 0); + predictCharge = vector(144, 0); } void Station::setFields(Fields& fields) @@ -168,12 +171,9 @@ int64_t Station::getPollingTS() void Station::setGarewayWorkMode() { - if (!mqttCli) - { - return; - } - auto policy = Application::data().getPolicyByType(this->workMode); + if (!mqttCli) { return; } + auto policy = Application::data().getPolicyByType(this->workMode); njson json; json["ts"] = Utils::time(); json["no"] = 1; // 设备编号 @@ -193,15 +193,25 @@ void Station::setGarewayWorkMode() } } + std::string text = json.dump(); + spdlog::info("[station] set gateway workmode [Gateway_YT], stationId={}, text={}", stationId, text); + mqttCli->publish("Gateway_YT", text); +} + +void Station::setGarewayParams() +{ + if (!mqttCli) { return; } + njson json; + json["ts"] = Utils::time(); + json["no"] = 1; // 设备编号 json["40038"] = {gatewayParam.socMin, gatewayParam.socMax, gatewayParam.capacity, gatewayParam.powerSafe, gatewayParam.powerDischarge, gatewayParam.powerCharge}; json["40058"] = {gatewayParam.backflow, gatewayParam.overload}; std::string text = json.dump(); - spdlog::info(text); + spdlog::info("[station] set gateway params, stationId={}, text={}", stationId, text); mqttCli->publish("Gateway_YT", text); } - string Station::getGatewayMode() { // 0:手动,1:峰谷套利,2:增网配容,3:应急供电,4:并网保电,5:自定时段 @@ -336,7 +346,7 @@ void Station::readRuntimeData(int deviceNo, string addr, int val) { if (addr == "0x000B") { this->voltage = val; } // A相电压 R uint32 1V 0x000B if (addr == "0x0011") { this->current = val; } // A相电流 R int32 1A 0x0011 - if (addr == "0x0011") { this->power = val; } // 三相总有功 R int32 1kW 0x0023 + if (addr == "0x0023") { this->power = val; } // 三相总有功 R int32 1kW 0x0023 } else if (deviceNo == 2) { @@ -461,14 +471,10 @@ void Station::readGatewayMode(int deviceNo, int mode, string p1, string p2, stri device->online = true; device->ts = Utils::time(); } - this->gatewayParam.mode = mode; - this->gatewayParam.param1 = p1; - this->gatewayParam.param2 = p2; - this->gatewayParam.param3 = p3; - if (mode != this->workMode) - { - //this->setGarewayWorkMode(); - } + if (mode != -1) { this->gatewayParam.mode = mode; } + if (!p1.empty()) { this->gatewayParam.param1 = p1; } + if (!p2.empty()) { this->gatewayParam.param2 = p2; } + if (!p3.empty()) { this->gatewayParam.param3 = p3; } njson json; if (JSON::parse(gatewayParam.param3, json)) @@ -695,3 +701,59 @@ void Station::writeStatistic() dao->duplicateUpdate(fields, {"value"}); } } + + + +void Station::predict() +{ + int64_t tNow = Utils::time(); + + string dt1 = Utils::dateStr(tNow-86400*7); + string dt2 = Utils::dateStr(tNow-86400); + + /// 预测实现方案: + // 查询前7天的历史数据,根据历史数据计算今日数据,每10分钟一个数据,一天共144个数据点 + string sql = "SELECT * FROM predict_day pd WHERE pd.station_id='" + std::to_string(stationId) + + "'AND dt>='" + dt1 + "' AND dt<='" + dt2 + "'"; + vector result; + DAO::exec(NULL, sql, result); + + // 数据源的条数(1天的数据算作1条) + int countStorageIn = 0; + int countStorageOut = 0; + int countCharge = 0; + + for (int row=0; row* vdptr = NULL; + int datatype = fields.get("datatype"); // 1:储能充电,2:储能放电,3:充电桩充电,4:发电 + if (datatype == 1) + { + countStorageIn++; + vdptr = &predictStorageIn; + } + else if (datatype == 2) + { + countStorageOut++; + vdptr = &predictStorageOut; + } + else if (datatype == 3) + { + countCharge++; + vdptr = &predictCharge; + } + if (vdptr) + { + string& strval = fields.value("value"); + std::vector vec; + JSON::parseArray(strval, vec); + + for (int i = 0; isize() && i mapCacheElectOut; // 充电桩充电量缓存,key:位置索引(0->144),val:电量 std::map mapCacheElectCharger; + + /////////////////////////////////////////////////////////////////////////////////////////////// + /// 预测 + vector predictStorageIn; + vector predictStorageOut; + vector predictCharge; }; \ No newline at end of file diff --git a/src/database/MysqlClient.cpp b/src/database/MysqlClient.cpp index f22b201..4f74fad 100644 --- a/src/database/MysqlClient.cpp +++ b/src/database/MysqlClient.cpp @@ -92,6 +92,7 @@ static int MysqlQuery(MYSQL* mysql, const std::string& sql) int MysqlClient::exec(std::string sql) { + if (!mysql_) return 1; int err = MysqlQuery(mysql_, sql); // 确保读取并释放结果集,否则会产生 [2014,Commands out of sync;] 错误 MYSQL_RES* res = mysql_store_result(mysql_); diff --git a/src/protocol/HttpEntity.cpp b/src/protocol/HttpEntity.cpp index def9b46..dc30046 100644 --- a/src/protocol/HttpEntity.cpp +++ b/src/protocol/HttpEntity.cpp @@ -1667,7 +1667,7 @@ Errcode HttpEntity::updateGatewayParams(const httplib::Request& req, njson& json if (station) { - params.get("work_mode", station->workMode); + //params.get("work_mode", station->workMode); params.get("soc_min", station->gatewayParam.socMin); // 储能放电下限值 SOC 40038 (%, 0-99) params.get("soc_max", station->gatewayParam.socMax); // 储能充电上限值 SOC 40039 (%:1-100) params.get("capacity", station->gatewayParam.capacity); // 台区变压器容量 40040 (KVA 160-1600) @@ -1677,7 +1677,7 @@ Errcode HttpEntity::updateGatewayParams(const httplib::Request& req, njson& json params.get("backflow", station->gatewayParam.backflow); // 防逆流回差 40058(1KW 10-300) params.get("overload", station->gatewayParam.overload); // 防过载回差 40059(1KW 10-300) - station->setGarewayWorkMode(); + station->setGarewayParams(); return Errcode::OK; } return Errcode::ERR_PARAM; diff --git a/src/protocol/MqttEntity.cpp b/src/protocol/MqttEntity.cpp index 201ba35..7913f5f 100644 --- a/src/protocol/MqttEntity.cpp +++ b/src/protocol/MqttEntity.cpp @@ -297,7 +297,7 @@ int MqttClient::onMessageArrived(char* topic, int topicLen, MQTTAsync_message* m int mode = -1; std::string param1; std::string param2; - std::string param3 = json.dump(); + std::string param3; JSON::read(json, "40001", mode); if (json.contains("40002")) { param1 = json["40002"].dump(); } diff --git a/src/qt/QWSwitch.cpp b/src/qt/QWSwitch.cpp new file mode 100644 index 0000000..11bc1e9 --- /dev/null +++ b/src/qt/QWSwitch.cpp @@ -0,0 +1,200 @@ +#include "QWSwitch.h" + +#include + +QWSwitch::QWSwitch(QWidget* parent) + : QWidget {parent} +{ + +} + +bool QWSwitch::getSwitch() { + return mOnOff; +} + +void QWSwitch::setSwitch(bool onoff) { + if (mWaitSigModel) return; + /// 状态切换 + mOnOff = onoff; + /// 发送信号 + signalSwitchChanged(mOnOff); + /// 动画-背景颜色 + QPropertyAnimation* colorAnimation = new QPropertyAnimation(this, "pBackColor"); + colorAnimation->setDuration(mAnimationPeriod); + colorAnimation->setStartValue(mBackColor); + colorAnimation->setEndValue(mOnOff ? mBackOnColor : mBackOffColor); + colorAnimation->start(QAbstractAnimation::DeletionPolicy::DeleteWhenStopped); //停止后删除 + /// 动画-开关按钮位置 + QVariantAnimation* posAnimation = new QVariantAnimation(this); + posAnimation->setDuration(mAnimationPeriod); + posAnimation->setStartValue(mButtonRect.topLeft()); + posAnimation->setEndValue(mOnOff ? mRightPos : mLeftPos); + connect(posAnimation, &QPropertyAnimation::valueChanged, [=](const QVariant& value) { + mButtonRect.moveTo(value.toPointF()); + update(); + }); + posAnimation->start(QAbstractAnimation::DeletionPolicy::DeleteWhenStopped); //停止后删除 +} + +void QWSwitch::setSwitchForWaitModel(bool onoff) +{ + if (!mWaitSigModel) return; + if (mOnOff == onoff) { + /// 表示值未改变先运行按钮位置动画 + QVariantAnimation* posAnimation = new QVariantAnimation(this); + posAnimation->setDuration(mAnimationPeriod); + posAnimation->setStartValue(mOnOff ? mLeftPos : mRightPos); + posAnimation->setEndValue(mOnOff ? mRightPos : mLeftPos); + connect(posAnimation, &QVariantAnimation::valueChanged, [=](const QVariant& value) { + mButtonRect.moveTo(value.toPointF()); + update(); + }); + posAnimation->start(QAbstractAnimation::DeletionPolicy::DeleteWhenStopped); //停止后删除 + return; + } + /// 状态切换 + mOnOff = onoff; + /// 发送信号 + signalSwitchChanged(mOnOff); + /// 后运行背景颜色动画 + QPropertyAnimation* colorAnimation = new QPropertyAnimation(this, "pBackColor"); + colorAnimation->setDuration(mAnimationPeriod); + colorAnimation->setStartValue(mBackColor); + colorAnimation->setEndValue(mOnOff ? mBackOnColor : mBackOffColor); + colorAnimation->start(QAbstractAnimation::DeletionPolicy::DeleteWhenStopped); //停止后删除 + connect(colorAnimation, &QPropertyAnimation::valueChanged, [=](const QVariant& value) { + update(); + }); +} + +void QWSwitch::setEnabled(bool enable) { + QWidget::setEnabled(enable); + mEnable = enable; + emit signalEnableChanged(mEnable); + update(); +} + +bool QWSwitch::getEnabled() { + return mEnable; +} + +void QWSwitch::setAnimationPeriod(int period) { + mAnimationPeriod = period; +} + +void QWSwitch::setPrecisionClick(bool flag) { + mPrecisionClickFlagh = flag; +} + +void QWSwitch::setWaitModel(bool flag) +{ + mWaitSigModel = flag; +} + +void QWSwitch::setButtonColor(QColor color) { + mButtonColor = color; + update(); +} + +void QWSwitch::setBackOnColor(QColor color) { + mBackOnColor = color; + update(); +} + +void QWSwitch::setBackOffColor(QColor color) { + mBackOffColor = color; + update(); +} + +void QWSwitch::setEdgeColor(QColor color) { + mEdgeColor = color; + update(); +} + +void QWSwitch::paintEvent(QPaintEvent* event) { + Q_UNUSED(event) + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing, true); + painter.setPen(Qt::NoPen); + + /// 绘制边缘颜色 + QPainterPath path; + path.addRect(this->rect()); + path.addRoundedRect(this->rect(), mRadius, mRadius); + path.setFillRule(Qt::OddEvenFill); + painter.setBrush(mEdgeColor); + painter.drawPath(path); + + /// 绘制背景颜色 + painter.setBrush(mBackColor); + painter.drawRoundedRect(this->rect(), mRadius, mRadius); + + /// 绘制圆形按钮 + painter.setBrush(mButtonColor); + painter.drawEllipse(mButtonRect); + + /// 绘制按钮阴影 + painter.setBrush(Qt::NoBrush); + QColor color(Qt::black); + int count = (this->height() - mButtonRect.height())/2; + float stepColor = (0.15-0.0)/count; + for (int i = mButtonRect.height()/2 + 1; i < this->height()/2; i++) { + color.setAlphaF(0.15 - stepColor*(i - mButtonRect.height()/2)); + painter.setPen(color); + painter.drawEllipse(mButtonRect.center(), i, i); + } + + /// 失能显示,添加一层蒙层 + if (!mEnable) { + QColor disable(Qt::black); + disable.setAlphaF(0.5); + painter.setBrush(disable); + painter.drawRoundedRect(this->rect(), mRadius, mRadius); + } +} + +void QWSwitch::resizeEvent(QResizeEvent* event) { + Q_UNUSED(event) + /// 更新按钮大小、圆角大小、动画两个位置 + int size = qMin(this->width(), this->height()); + mRadius = size/2; + float width = size * 3 / 4; + float border = (size - width) / 2; + mLeftPos = QPoint(border+2, border); + mRightPos = QPoint(this->width() - border - width-2, border); + mButtonRect.setWidth(width); + mButtonRect.setHeight(width); + mButtonRect.moveTo(mOnOff ? mRightPos : mLeftPos); + mBackColor = mOnOff ? mBackOnColor : mBackOffColor; + update(); +} + +void QWSwitch::mouseReleaseEvent(QMouseEvent* event) { + if (mWaitSigModel) { + /// 先运行按钮位置动画 + QVariantAnimation* posAnimation = new QVariantAnimation(this); + posAnimation->setDuration(mAnimationPeriod); + posAnimation->setStartValue(mOnOff ? mRightPos : mLeftPos); + posAnimation->setEndValue(mOnOff ? mLeftPos : mRightPos); + connect(posAnimation, &QVariantAnimation::valueChanged, [=](const QVariant& value) { + mButtonRect.moveTo(value.toPointF()); + update(); + }); + posAnimation->start(QAbstractAnimation::DeletionPolicy::DeleteWhenStopped); //停止后删除 + return; + } + if (!mEnable) return; + if (mButtonRect.contains(event->pos()) || !mPrecisionClickFlagh) { + setSwitch(!mOnOff); + } +} + +void QWSwitch::enterEvent(QEvent* event) { + Q_UNUSED(event) + mHover = true; +} + +void QWSwitch::leaveEvent(QEvent* event) { + Q_UNUSED(event) + mHover = false; +} \ No newline at end of file diff --git a/src/qt/QWSwitch.h b/src/qt/QWSwitch.h new file mode 100644 index 0000000..e53e9d0 --- /dev/null +++ b/src/qt/QWSwitch.h @@ -0,0 +1,74 @@ +/* + * 继承自QWidget,拨动按钮,开关效果,将QWidget提升为此类即可使用 + * 最为美观 + */ +#ifndef SWITCHWIDGET_H +#define SWITCHWIDGET_H + +#include +#include +#include +#include +#include +#include + + /// + /// \brief 基础控件-Switch开关按钮 + /// +class QWSwitch : public QWidget +{ + Q_OBJECT +public: + Q_PROPERTY(QColor pBackColor MEMBER mBackColor) //新增背景颜色属性,用于动画 + + explicit QWSwitch(QWidget* parent = nullptr); + bool getSwitch(); /// 获取开关状态 + +public slots: + void setSwitch(bool onoff); /// 设置开关状态,default:0 + void setEnabled(bool enable); /// 设置使能状态,default:1 + bool getEnabled(); /// 获取使能状态 + void setAnimationPeriod(int period); /// 设置切换状态周期 + void setPrecisionClick(bool flag); /// 设置精确点击,即只有点中按钮的时候才开关 + void setWaitModel(bool flag); /// 设置等待模式,点击后不会主动切换开关,需要setSwitch + void setSwitchForWaitModel(bool onoff); /// 设置开关状态,default:0 + + void setButtonColor(QColor color); /// 设置开关(圆形按钮)颜色 + void setBackOnColor(QColor color); /// 设置背景颜色-开 + void setBackOffColor(QColor color); /// 设置背景颜色-关 + void setEdgeColor(QColor color); /// 设置边缘颜色,默认透明 + +signals: + void signalEnableChanged(bool enable); /// 使能状态变化信号 + void signalSwitchChanged(bool onoff); /// 开关状态变化信号 + +protected: + void paintEvent(QPaintEvent* event); + void resizeEvent(QResizeEvent* event); + void mouseReleaseEvent(QMouseEvent* event); + void enterEvent(QEvent* event); + void leaveEvent(QEvent* event); + +private: + bool mOnOff {0}; //开关状态 + bool mEnable {1}; //使能状态 + bool mPrecisionClickFlagh {0}; //精确点击标志位 + //bool mWaitSigModel{1}; //等待模式,点击后按钮位置会进行切换,但是颜色需要等待外部信号变动 + bool mWaitSigModel {0}; //非等待模式,点击后按钮位置会进行切换,颜色同时切换 + bool mAnimationOnOff {1}; //动画开关,default:1 + bool mHover {0}; + + QColor mButtonColor {Qt::white}; //开关(圆形按钮)颜色 + QColor mBackColor {Qt::red}; + QColor mEdgeColor {Qt::transparent}; //边缘颜色 + QRectF mButtonRect; //开关按钮rect + int mRadius {8}; // 开关外观边缘圆角 + + int mAnimationPeriod {200}; //动画周期 + QPointF mRightPos; // 动画位置-开 + QPointF mLeftPos; // 动画位置-关 + QColor mBackOnColor {Qt::green}; //背景颜色-开 + QColor mBackOffColor {Qt::darkGray}; //背景颜色-关 +}; + +#endif // SWITCHWIDGET_H \ No newline at end of file diff --git a/src/qt/widgets/QWHome.cpp b/src/qt/widgets/QWHome.cpp index 7c0a745..1c7698e 100644 --- a/src/qt/widgets/QWHome.cpp +++ b/src/qt/widgets/QWHome.cpp @@ -7,31 +7,34 @@ #include "app/Station.h" #include "protocol/MqttEntity.h" - - - +#include "qt/QWSwitch.h" QWHome::QWHome(QWidget* parent) : MyWidget(parent) { this->setObjectName("home"); this->setStyleSheet("#home { background-color:rgba(100,100,100,50); }"); + + int x = 10, y = 0; { - this->groupSys = MyQUI::GroupBox(this, x, y, 1190, 120, "系统"); - auto pw = groupSys.get(); + //this->groupSys = MyQUI::GroupBox(this, x, y, 1190, 120, "系统"); + //auto pw = groupSys.get(); } { - x = 10, y += 130; - this->groupHttp = MyQUI::GroupBox(this, x, y, 390, 120, "HTTP"); + x = 10; + this->groupHttp = MyQUI::GroupBox(this, x, y, 390, 200, "HTTP"); auto pw = groupHttp.get(); this->addPair("http-t", pw, 20, 20, "服务类型: ", "服务端"); this->addPair("http-p", pw, 20, 50, "服务端口: ", Utils::toStr(Config::option.http.port)); this->addPair("http-s", pw, 20, 80, "服务状态: ", "运行"); + + QWSwitch* switchBtn = new QWSwitch(this); + switchBtn->setGeometry(30, 110, 50, 20); } { x += 400; - this->groupMqtt = MyQUI::GroupBox(this, x, y, 390, 120, "MQTT"); + this->groupMqtt = MyQUI::GroupBox(this, x, y, 390, 200, "MQTT"); auto pw = groupMqtt.get(); this->addPair("mqtt-t", pw, 20, 20, "服务类型: ", "客户端"); this->addPair("mqtt-h", pw, 20, 50, "服务地址: ", Config::option.mqtt.host); @@ -39,7 +42,7 @@ QWHome::QWHome(QWidget* parent) : MyWidget(parent) } { x += 400; - this->groupDB = MyQUI::GroupBox(this, x, y, 390, 120, "数据库"); + this->groupDB = MyQUI::GroupBox(this, x, y, 390, 200, "数据库"); auto pw = groupDB.get(); this->addPair("db-n", pw, 20, 20, "数据库名: ", Config::option.database.dbname); this->addPair("db-h", pw, 20, 50, "主机地址: ", Config::option.database.host); @@ -51,7 +54,7 @@ QWHome::QWHome(QWidget* parent) : MyWidget(parent) << "日充电\n费用" << "日放电\n费用" << "总充电\n费用" << "总放电\n费用" << "日收益" << "总收益" << "--"; - table = MyQUI::TableWidget(this, 10, y += 130, 1190, 265); + table = MyQUI::TableWidget(this, 10, y += 210, 1190, 265); // 设置为水平表头 table->setColumnCount(headerTextList.size()); table->setHorizontalHeaderLabels(headerTextList); @@ -70,6 +73,7 @@ QWHome::QWHome(QWidget* parent) : MyWidget(parent) texteditLog->setGeometry(10, y += 30, 1190, 280); texteditLog->setStyleSheet("background-color: transparent; border: 1px solid gray; font-weight: 400;"); texteditLog->setReadOnly(true); + texteditLog->document()->setMaximumBlockCount(1000); { ////////////////////////////////////////////////////////////////////////////////////////