1.新增服务端UI界面,显示服务基础信息。2.修改设备显示配置。3.监控页面储能系统显示储能模式,模式设置新增'手动'

This commit is contained in:
lixiaoyuan
2025-09-25 19:20:25 +08:00
parent d7888c2be4
commit 8aba56f47d
39 changed files with 2954 additions and 408 deletions

View File

@@ -0,0 +1,36 @@
{
"debug":0,
"windowEnabled": 1,
"launchdate": "2025-09-01",
"weburl": "http://127.0.0.1:19601/",
"exportpath": "D:/Programs/openresty-1.27.1.1-win64/zdownload",
"database": {"host": "localhost", "port": 3306, "user": "root", "passwd": "jsyh@2025", "dbname": "ess"},
"http": {"token":0, "port": 19800, "encryption":0, "encryptKey":""},
"mqtt": {"host":"mqtt://118.195.161.113:8883","username":"admin","password":"jsyh@2025", "interval": 120},
"topic": {
"EMS_YX": {"deviceType":101, "polling":0, "enabled": 1},
"EMS_YC": {"deviceType":101, "polling":0, "enabled": 1},
"EMS_YT": {"deviceType":101, "polling":0, "enabled": 1},
"PCS_YX": {"deviceType":102, "polling":1, "enabled": 1},
"PCS_YC": {"deviceType":102, "polling":1, "enabled": 1},
"PCU_YX": {"deviceType":103, "polling":0, "enabled": 1},
"PCU_YC": {"deviceType":103, "polling":0, "enabled": 1},
"BMS_YX": {"deviceType":104, "polling":0, "enabled": 1},
"BMS_YC": {"deviceType":104, "polling":0, "enabled": 1},
"BCU_YC": {"deviceType":105, "polling":1, "enabled": 1},
"BCU_YX": {"deviceType":105, "polling":1, "enabled": 1},
"MEM_YC": {"deviceType":3, "polling":0, "enabled": 1},
"TH_YC": {"deviceType":10, "polling":1, "enabled": 1},
"Fire40_YX": {"deviceType":7, "polling":1, "enabled": 1},
"Cooling_YC": {"deviceType":14, "polling":1, "enabled": 1},
"Cooling_YX": {"deviceType":14, "polling":1, "enabled": 1},
"Gateway_YX": {"deviceType":15, "polling":1, "enabled": 1},
"Gateway_YC": {"deviceType":15, "polling":1, "enabled": 1},
"Charger_YC": {"deviceType":106, "polling":0, "enabled": 1}
},
"view": {"latitude":0,"longitude":0,"altitude":0},
"video": {
"1":{"host":"", "port":9000, "user":"", "passwd":""}
},
"statistics": {"enabled": 1, "interval": 60}
}

View File

@@ -0,0 +1,109 @@
{
"EMS":{
"deviceType":101,
"addr_YC":[
["A相电压", "0x107E", "0.0", " V", "1"],
["A相电流", "0x1084", "0.0", " A"],
["B相电压", "0x1080", "0.0", " V", "1"],
["B相电流", "0x1086", "0.0", " A"],
["C相电压", "0x1082", "0.0", " V", "1"],
["C相电流", "0x1088", "0.0", " A"]
],
"addr_YX": [ ]
},
"PCS":{
"deviceType":102,
"addr_YC":[
["A相电压", "0x0010", "0.0", " V", "1"],
["A相电流", "0x0019", "0.0", " A"],
["B相电压", "0x0011", "0.0", " V", "1"],
["B相电流", "0x001A", "0.0", " A"],
["C相电压", "0x0011", "0.0", " V", "1"],
["C相电流", "0x001B", "0.0", " A"]
],
"addr_YX": [ ]
},
"PCU":{
"deviceType":103,
"addr_YC":[
["A相电压", "0x0013", "0.0", " V", "1"],
["A相电流", "0x001C", "0.0", " A"],
["B相电压", "0x0014", "0.0", " V", "1"],
["B相电流", "0x001D", "0.0", " A"],
["C相电压", "0x0015", "0.0", " V", "1"],
["C相电流", "0x001E", "0.0", " A"]
],
"addr_YX": [ ]
},
"BMS":{
"deviceType":104,
"addr_YC":[
["SOC", "0x0001", "0", " %", "0.1"],
["SOH", "0x0002", "0", " %", "0.1"],
["电压", "0x0003", "0.0", " V", "0.1"],
["电流", "0x0005", "0.0", " A", "0.1"],
["单体最大电压", "0x0021", "0.0", " V", "0.1"],
["单体最小电压", "0x0024", "0.0", " V", "0.1"],
["单体最大温度", "0x0029", "0.0", " ℃", "0.1"],
["单体最小温度", "0x002C", "0.0", " ℃", "0.1"]
],
"addr_YX": [ ]
},
"BCU":{
"deviceType":105,
"addr_YC":[
["簇电压", "0x0003", "0.0", " V", "0.1"],
["簇电流", "0x0005", "0", " A", "0.1"],
["簇温度", "0x0007", "0.0", " ℃", "0.1"],
["簇电阻", "0x0009", "0.0", " Ω"],
["簇SOC", "0x000B", "0", " %", "0.1"],
["簇SOH", "0x000C", "0", " %", "0.1"]
],
"addr_YX": [ ]
},
"MEM":{
"deviceType":3,
"addr_YC":[
["A相电压", "0x000B", "0.0", " V"],
["A相电流", "0x000D", "0.0", " A"],
["B相电压", "0x000F", "0.0", " V"],
["B相电流", "0x0011", "0.0", " A"],
["C相电压", "0x0013", "0.0", " V"],
["C相电流", "0x0015", "0.0", " A"]
],
"addr_YX": [ ]
},
"TH": {
"deviceType":10,
"addr_YC":[
["温度", "0x0003", "0.0", " ℃", "0.1"],
["湿度", "0x0004", "0.0", " %", "0.1"]
],
"addr_YX": [ ]
},
"Cooling": {
"deviceType":14,
"addr_YC":[
["开关", "0x1003", "0", "", "1"],
["采样模式", "0x1004", "0", "", "1"],
["制冷状态", "0x1005", "0", "", "1"],
["制热状态", "0x1006", "0", "", "1"],
["高温告警", "0x1007", "0", "", "1"],
["低温告警", "0x1008", "0", "", "1"],
["高压告警", "0x1009", "0", "", "1"],
["低压告警", "0x100A", "0", "", "1"]
]
},
"Charger": {
"deviceType":106,
"addr_YC":[
["需求电压", "31071", "0.0", " V"],
["需求电流", "31073", "0.0", " A"],
["需求功率", "31075", "0.0", " kW"],
["功率限值", "31077", "0.0", " kW"],
["输出电压", "31079", "0.0", " V"],
["输出电流", "31081", "0.0", " A"],
["输出功率", "31083", "0.0", " kW"]
]
}
}

View File

@@ -0,0 +1,61 @@
from openpyxl import load_workbook
def read_cell(sheet, row, col):
val = str(sheet.cell(row, col).value)
if val == "None":
val = ""
return val.strip()
def read_sheet(wb, topic, sht_name):
sheet = wb[sht_name]
text = ""
for i in range(2, sheet.max_row+1):
# print(str(sheet.cell(i, 1).value))
addr = read_cell(sheet, i, 8)
name = read_cell(sheet,i, 2)
datatype = read_cell(sheet,i, 4)
unit = read_cell(sheet, i, 5)
is_alert = (read_cell(sheet, i, 7) == "告警")
remark = read_cell(sheet, i, 6)
if (len(addr) <= 6 and len(addr) >=2 and addr != "寄存器地址"):
if (len(unit)>0):
remark += '(' + unit + ')'
if (len(text)>0):
text += ',\n'
text += '\t\t\t{"key": "%s", "datatype": "%s", "alert": %d, "name":"%s", "remark": "%s"}' % (addr, datatype, is_alert, name, remark.replace("\n", ""))
if (len(text)>0):
text = "\n" + text + "\n\t\t"
text = '\t"%s":{\n\t\t"addr":[%s]\n\t}' % (topic, text)
return text
wb = load_workbook('EMU对外通信点表最终修改1版_v9.xlsx', data_only=True)
text = ""
text = read_sheet(wb, "EMS_YT", "EMS遥调")
text += ',\n' + read_sheet(wb, "EMS_YX", "EMS遥信")
text += ',\n' + read_sheet(wb, "EMS_YC", "EMS遥测")
text += ',\n' + read_sheet(wb, "PCU_YC", "PCU遥测")
text += ',\n' + read_sheet(wb, "PCU_YX", "PCU遥信")
text += ',\n' + read_sheet(wb, "PCS_YC", "PCS遥测")
text += ',\n' + read_sheet(wb, "PCS_YX", "PCS遥信")
text += ',\n' + read_sheet(wb, "BMS_YC", "BMS电池堆遥测")
text += ',\n' + read_sheet(wb, "BCU_YC", "BCU电池簇遥测")
text += ',\n' + read_sheet(wb, "BCU_YX", "BCU电池簇遥信")
# text += ',\n' + read_sheet(wb, "AirC_YC", "空调遥测")
# text += ',\n' + read_sheet(wb, "AirC_YX", "空调遥信")
text += ',\n' + read_sheet(wb, "MEM_YC", "多功能电表遥测")
text += ',\n' + read_sheet(wb, "TH_YC", "温湿度状态遥测")
text += ',\n' + read_sheet(wb, "Fire40_YX", "消防4.0遥信")
text += ',\n' + read_sheet(wb, "Cooling_YC", "冷机遥测")
text += ',\n' + read_sheet(wb, "Cooling_YX", "冷机遥信")
text += ',\n' + read_sheet(wb, "Gateway_YC", "网关遥测")
text += ',\n' + read_sheet(wb, "Gateway_YX", "网关遥信")
text += ',\n' + read_sheet(wb, "Charger_YC", "充电桩遥测")
with open('regaddrs.json', 'w', encoding='utf-8') as f:
f.write("{\n" + text + "\n}")

View File

@@ -0,0 +1,890 @@
{
"EMS_YT":{
"addr":[
{"key": "0x0001", "datatype": "uint16", "remark": "EMS工作模式0:无效1:本地控制模式, EMS不接受平台调控2:平台控制模式, EMS接收平台调控指令(-)"},
{"key": "0x0002", "datatype": "int16", "remark": "有功功率并网恒功率模式下交流侧功率值:<0: 充电功率0: 静置>0: 放电功率(kW)"},
{"key": "0x0003", "datatype": "uint16", "remark": "PCS开关机0: 关机1: 开机(-)"},
{"key": "0x0004", "datatype": "uint16", "remark": "主控对象储能遥控对象0无效1华云2轻舟"},
{"key": "0x0005", "datatype": "int16", "remark": "A相有功功率(1kW)"},
{"key": "0x0006", "datatype": "int16", "remark": "B相有功功率(1kW)"},
{"key": "0x0007", "datatype": "int16", "remark": "C相有功功率(1kW)"},
{"key": "0x0008", "datatype": "int16", "remark": "三相总有功功率(1kW)"},
{"key": "0x0009", "datatype": "int16", "remark": "A相无功功率(1kVar)"},
{"key": "0x000A", "datatype": "int16", "remark": "B相无功功率(1kVar)"},
{"key": "0x000B", "datatype": "int16", "remark": "C相无功功率(1kVar)"},
{"key": "0x000C", "datatype": "int16", "remark": "三相总无功功率(1kVar)"},
{"key": "0x000D", "datatype": "int16", "remark": "A相电流(0.01A)"},
{"key": "0x000E", "datatype": "int16", "remark": "B相电流(0.01A)"},
{"key": "0x000F", "datatype": "int16", "remark": "C相电流(0.01A)"},
{"key": "0x0010", "datatype": "uint16", "remark": "A相电压(1V)"},
{"key": "0x0011", "datatype": "uint16", "remark": "B相电压(1V)"},
{"key": "0x0012", "datatype": "uint16", "remark": "C相电压(1V)"},
{"key": "0x0013", "datatype": "int16", "remark": "A相交流功率因数(0.01)"},
{"key": "0x0014", "datatype": "int16", "remark": "B相交流功率因数(0.01)"},
{"key": "0x0015", "datatype": "int16", "remark": "C相交流功率因数(0.01)"},
{"key": "0x0016", "datatype": "int16", "remark": "A相视在功率(1kVA)"},
{"key": "0x0017", "datatype": "int16", "remark": "B相视在功率(1kVA)"},
{"key": "0x0018", "datatype": "int16", "remark": "C相视在功率(1kVA)"},
{"key": "0x0019", "datatype": "int16", "remark": "正向总有功总需量(1kW)"},
{"key": "0x001A", "datatype": "int16", "remark": "数据有效性0无效 1有效"},
{"key": "0x001B", "datatype": "uint16", "remark": "EMS工作模式0:无效1:本地控制模式, EMS不接受平台调控2:平台控制模式, EMS接收平台调控指令(-)"},
{"key": "0x001C", "datatype": "uint16", "remark": "有功功率并网恒功率模式下交流侧功率值:功率绝对值 没有正负(kW)"},
{"key": "0x001D", "datatype": "uint16", "remark": "充放电类型0: 关机1: 充电2:放电3:待机(-)"},
{"key": "0x001E", "datatype": "uint16", "remark": "最大SOC"},
{"key": "0x001F", "datatype": "uint16", "remark": "最小SOC"},
{"key": "0x0020", "datatype": "uint16", "remark": "自动并离网0手动1自动"},
{"key": "0x0021", "datatype": "uint16", "remark": "并网离网0并网1离网"}
]
},
"EMS_YX":{
"addr":[
{"key": "0x2001", "datatype": "uint16", "remark": "BMS(电池堆)通信状态0正常1故障"},
{"key": "0x2002", "datatype": "uint64", "remark": "BCU(电池簇)通信状态0正常1故障"},
{"key": "0x2006", "datatype": "uint16", "remark": "PCU(主控)通信状态0正常1故障"},
{"key": "0x2007", "datatype": "uint64", "remark": "PCS(模块)通信状态0正常1故障"},
{"key": "0x200B", "datatype": "uint16", "remark": "电表总接点通信状态0正常1故障"},
{"key": "0x200C", "datatype": "uint32", "remark": "电表通信状态0正常1故障"},
{"key": "0x200E", "datatype": "uint16", "remark": "消防通信状态0正常1故障"},
{"key": "0x200F", "datatype": "uint16", "remark": "UPS通信状态0正常1故障"},
{"key": "0x2010", "datatype": "uint16", "remark": "温湿度总接点通信状态0正常1故障"},
{"key": "0x2011", "datatype": "uint32", "remark": "温湿度通信状态0正常1故障"},
{"key": "0x2013", "datatype": "uint16", "remark": "空调总接点通信状态0正常1故障"},
{"key": "0x2014", "datatype": "uint32", "remark": "空调通信状态0正常1故障"},
{"key": "0x2016", "datatype": "uint16", "remark": "控制干接点(配电系统)状态0开路1闭合"},
{"key": "0x2017", "datatype": "uint16", "remark": "状态干接点(配电系统)状态0开路1闭合"},
{"key": "0x2018", "datatype": "uint16", "remark": "BCU总通信状态0正常 1告警 2故障"},
{"key": "0x2019", "datatype": "uint16", "remark": "PCU总通信状态0正常 1告警 2故障"},
{"key": "0x201A", "datatype": "uint16", "remark": "电表总通信状态0正常 1告警 2故障"},
{"key": "0x201B", "datatype": "uint16", "remark": "消防总通信状态0正常 1告警 2故障"},
{"key": "0x201C", "datatype": "uint16", "remark": "UPS总通信状态0正常 1告警 2故障"},
{"key": "0x201D", "datatype": "uint16", "remark": "温湿度总通信状态0正常 1告警 2故障"},
{"key": "0x201E", "datatype": "uint16", "remark": "空调总通信状态0正常 1告警 2故障"},
{"key": "0x201F", "datatype": "uint16", "remark": "EMU通信状态0正常 1告警 2故障"},
{"key": "0x2020", "datatype": "uint16", "remark": "冷机总通信状态0正常 1告警 2故障"},
{"key": "0x2021", "datatype": "uint16", "remark": "冷机总接点通信状态0正常1故障"},
{"key": "0x2022", "datatype": "uint16", "remark": "冷机通信状态0正常1故障"},
{"key": "0x207A", "datatype": "uint16", "remark": "判断总表的三相总有功 < -5.0fkW 充电 >5.0fkW放电 否则停机0:充电 1:放电 2:停机"}
]
},
"EMS_YC":{
"addr":[
{"key": "0x1001", "datatype": "uint16", "remark": "BMS(电池堆)个数1"},
{"key": "0x1002", "datatype": "uint16", "remark": "BCU通道个数1~2"},
{"key": "0x1003", "datatype": "uint16", "remark": "BCU(电池簇)个数1~40"},
{"key": "0x1004", "datatype": "uint16", "remark": "PCU(主控)个数1~4"},
{"key": "0x1005", "datatype": "uint16", "remark": "PCU通道个数1~4"},
{"key": "0x1006", "datatype": "uint16", "remark": "PCS(模块)个数1~40"},
{"key": "0x1007", "datatype": "uint16", "remark": "电表通道个数1"},
{"key": "0x1008", "datatype": "uint16", "remark": "电表个数1~10"},
{"key": "0x1009", "datatype": "uint16", "remark": "消防通道个数1~10"},
{"key": "0x100A", "datatype": "uint16", "remark": "消防个数1~10"},
{"key": "0x100B", "datatype": "uint16", "remark": "UPS通道个数1~10"},
{"key": "0x100C", "datatype": "uint16", "remark": "UPS个数1~10"},
{"key": "0x100D", "datatype": "uint16", "remark": "温湿度通道个数1"},
{"key": "0x100E", "datatype": "uint16", "remark": "温湿度个数1~10"},
{"key": "0x100F", "datatype": "uint16", "remark": "空调通道个数1"},
{"key": "0x1010", "datatype": "uint16", "remark": "空调个数1~10"},
{"key": "0x1011", "datatype": "uint16", "remark": "控制干接点(配电系统)个数16"},
{"key": "0x1012", "datatype": "uint16", "remark": "状态干接点(配电系统)个数16"},
{"key": "0x1072", "datatype": "uint32", "remark": "系统最大可充电功率(1KW)"},
{"key": "0x1074", "datatype": "uint32", "remark": "系统最大可放电功率(1KW)"},
{"key": "0x1076", "datatype": "uint32", "remark": "储能母线电压(0.1V)"},
{"key": "0x1078", "datatype": "int32", "remark": "储能母线电流(0.1A)"},
{"key": "0x107A", "datatype": "uint16", "remark": "储能系统SOC(0.1)"},
{"key": "0x107B", "datatype": "uint16", "remark": "储能系统SOH(0.1)"},
{"key": "0x107C", "datatype": "uint16", "remark": "电流变比"},
{"key": "0x107D", "datatype": "uint16", "remark": "电压变比"},
{"key": "0x107E", "datatype": "uint32", "remark": "A相电压(1V)"},
{"key": "0x1080", "datatype": "uint32", "remark": "B相电压(1V)"},
{"key": "0x1082", "datatype": "uint32", "remark": "C相电压(1V)"},
{"key": "0x1084", "datatype": "int32", "remark": "A相电流(1A)"},
{"key": "0x1086", "datatype": "int32", "remark": "B相电流(1A)"},
{"key": "0x1088", "datatype": "int32", "remark": "C相电流(1A)"},
{"key": "0x108A", "datatype": "uint32", "remark": "AB相电压(1V)"},
{"key": "0x108C", "datatype": "uint32", "remark": "BC相电压(1V)"},
{"key": "0x108E", "datatype": "uint32", "remark": "CA相电压(1V)"},
{"key": "0x1090", "datatype": "int32", "remark": "A相有功功率(1kW)"},
{"key": "0x1092", "datatype": "int32", "remark": "B相有功功率(1kW)"},
{"key": "0x1094", "datatype": "int32", "remark": "C相有功功率(1kW)"},
{"key": "0x1096", "datatype": "int32", "remark": "三相总有功功率(1kW)"},
{"key": "0x1098", "datatype": "int32", "remark": "当前控制功率(0.1kW)"},
{"key": "0x109A", "datatype": "uint32", "remark": "负荷率(0.01)"},
{"key": "0x109C", "datatype": "uint32", "remark": "三相不平衡度(0.01)"},
{"key": "0x109E", "datatype": "uint32", "remark": "功率因素比率(0.01)"},
{"key": "0x10A0", "datatype": "int32", "remark": "进线开关柜功率(1kW)"},
{"key": "0x10A2", "datatype": "int32", "remark": "用户关口表功率(1kW)"},
{"key": "0x1104", "datatype": "int32", "remark": "正向总有功总需量(1kW)"},
{"key": "0x1106", "datatype": "uint32", "remark": "尖段电价(1RMB)"},
{"key": "0x1108", "datatype": "uint32", "remark": "峰段电价(1RMB)"},
{"key": "0x110A", "datatype": "uint32", "remark": "平段电价(1RMB)"},
{"key": "0x110C", "datatype": "uint32", "remark": "谷段电价(1RMB)"},
{"key": "0x110E", "datatype": "uint32", "remark": "日充电电量(1kWh)"},
{"key": "0x1110", "datatype": "uint32", "remark": "日放电电量(1kWh)"},
{"key": "0x1112", "datatype": "uint32", "remark": "日充电费用(1RMB)"},
{"key": "0x1114", "datatype": "uint32", "remark": "日放电费用(1RMB)"},
{"key": "0x1116", "datatype": "int32", "remark": "日收益(1RMB)"},
{"key": "0x1118", "datatype": "uint32", "remark": "日正向尖有功电能(1kWh)"},
{"key": "0x111A", "datatype": "uint32", "remark": "日正向峰有功电能(1kWh)"},
{"key": "0x111C", "datatype": "uint32", "remark": "日正向平有功电能(1kWh)"},
{"key": "0x111E", "datatype": "uint32", "remark": "日正向谷有功电能(1kWh)"},
{"key": "0x1120", "datatype": "uint32", "remark": "日正向总有功电能(1kWh)"},
{"key": "0x1122", "datatype": "uint32", "remark": "日反向尖有功电能(1kWh)"},
{"key": "0x1124", "datatype": "uint32", "remark": "日反向峰有功电能(1kWh)"},
{"key": "0x1126", "datatype": "uint32", "remark": "日反向平有功电能(1kWh)"},
{"key": "0x1128", "datatype": "uint32", "remark": "日反向谷有功电能(1kWh)"},
{"key": "0x112A", "datatype": "uint32", "remark": "日反向总有功电能(1kWh)"},
{"key": "0x112C", "datatype": "uint32", "remark": "总充电电量(1kWh)"},
{"key": "0x112E", "datatype": "uint32", "remark": "总放电电量(1kWh)"},
{"key": "0x1130", "datatype": "uint32", "remark": "总充电费用(1RMB)"},
{"key": "0x1132", "datatype": "uint32", "remark": "总放电费用(1RMB)"},
{"key": "0x1134", "datatype": "int32", "remark": "总收益(1RMB)"},
{"key": "0x1136", "datatype": "uint32", "remark": "总正向尖有功电能(1kWh)"},
{"key": "0x1138", "datatype": "uint32", "remark": "总正向峰有功电能(1kWh)"},
{"key": "0x113A", "datatype": "uint32", "remark": "总正向平有功电能(1kWh)"},
{"key": "0x113C", "datatype": "uint32", "remark": "总正向谷有功电能(1kWh)"},
{"key": "0x113E", "datatype": "uint32", "remark": "总正向总有功电能(1kWh)"},
{"key": "0x1140", "datatype": "uint32", "remark": "总反向尖有功电能(1kWh)"},
{"key": "0x1142", "datatype": "uint32", "remark": "总反向峰有功电能(1kWh)"},
{"key": "0x1144", "datatype": "uint32", "remark": "总反向平有功电能(1kWh)"},
{"key": "0x1146", "datatype": "uint32", "remark": "总反向谷有功电能(1kWh)"},
{"key": "0x1148", "datatype": "uint32", "remark": "总反向总有功电能(1kWh)"},
{"key": "0x11AE", "datatype": "int16", "remark": "交流A相电压(1V)"},
{"key": "0x11AF", "datatype": "int16", "remark": "交流B相电压(1V)"},
{"key": "0x11B0", "datatype": "int16", "remark": "交流C相电压(1V)"},
{"key": "0x11B1", "datatype": "int16", "remark": "交流A相频率(1Hz)"},
{"key": "0x11B2", "datatype": "int16", "remark": "交流B相频率(1Hz)"},
{"key": "0x11B3", "datatype": "int16", "remark": "交流C相频率(1Hz)"},
{"key": "0x11B4", "datatype": "int32", "remark": "总直流功率(1kW)"},
{"key": "0x11B6", "datatype": "uint32", "remark": "总直流电压(0.1V)"},
{"key": "0x11B8", "datatype": "int32", "remark": "总直流电流(0.1A)"},
{"key": "0x121B", "datatype": "int16", "remark": "储能系统温度(0.1℃)"},
{"key": "0x121C", "datatype": "uint16", "remark": "储能充放电时段hh(时)"},
{"key": "0x121D", "datatype": "uint16", "remark": "储能充放电时段mm(分)"},
{"key": "0x121E", "datatype": "uint16", "remark": "储能充放电时段ss(秒)"}
]
},
"PCU_YC":{
"addr":[
{"key": "0x0001", "datatype": "uint16", "remark": "所属通道号1~4"},
{"key": "0x0002", "datatype": "uint32", "remark": "充电功率最大许可(1KW)"},
{"key": "0x0004", "datatype": "uint32", "remark": "放电功率最大许可(1KW)"},
{"key": "0x0006", "datatype": "uint32", "remark": "交流日总充电量(1KWh)"},
{"key": "0x0008", "datatype": "uint32", "remark": "交流日总放电量(1KWh)"},
{"key": "0x000A", "datatype": "uint32", "remark": "交流总充电量(1KWh)"},
{"key": "0x000C", "datatype": "uint32", "remark": "交流总放电量(1KWh)"},
{"key": "0x000E", "datatype": "int16", "remark": "有功功率期望值(1KW)"},
{"key": "0x000F", "datatype": "int16", "remark": "无功功率期望值(1kVar)"},
{"key": "0x0010", "datatype": "int16", "remark": "PCS侧线电压VAB(1v)"},
{"key": "0x0011", "datatype": "int16", "remark": "PCS侧线电压VBC(1v)"},
{"key": "0x0012", "datatype": "int16", "remark": "PCS侧线电压VCA(1v)"},
{"key": "0x0013", "datatype": "int16", "remark": "PCS侧线A相电压(1v)"},
{"key": "0x0014", "datatype": "int16", "remark": "PCS侧线B相电压(1v)"},
{"key": "0x0015", "datatype": "int16", "remark": "PCS侧线C相电压(1v)"},
{"key": "0x0016", "datatype": "int16", "remark": "PCS侧A相频率(1Hz)"},
{"key": "0x0017", "datatype": "int16", "remark": "PCS侧B相频率(1Hz)"},
{"key": "0x0018", "datatype": "int16", "remark": "PCS侧C相频率(1Hz)"},
{"key": "0x0019", "datatype": "int16", "remark": "PCS侧功率因数A(1)"},
{"key": "0x001A", "datatype": "int16", "remark": "PCS侧功率因数B(1)"},
{"key": "0x001B", "datatype": "int16", "remark": "PCS侧功率因数C(1)"},
{"key": "0x001C", "datatype": "int16", "remark": "PCS侧相电流A(1A)"},
{"key": "0x001D", "datatype": "int16", "remark": "PCS侧相电流B(1A)"},
{"key": "0x001E", "datatype": "int16", "remark": "PCS侧相电流C(1A)"},
{"key": "0x001F", "datatype": "int16", "remark": "PCS侧有功功率A(1kW)"},
{"key": "0x0020", "datatype": "int16", "remark": "PCS侧有功功率B(1kW)"},
{"key": "0x0021", "datatype": "int16", "remark": "PCS侧有功功率C(1kW)"},
{"key": "0x0022", "datatype": "int16", "remark": "PCS侧无功功率A(1kVar)"},
{"key": "0x0023", "datatype": "int16", "remark": "PCS侧无功功率B(1kVar)"},
{"key": "0x0024", "datatype": "int16", "remark": "PCS侧无功功率C(1kVar)"},
{"key": "0x0025", "datatype": "int16", "remark": "PCS侧视在功率A(1kVar)"},
{"key": "0x0026", "datatype": "int16", "remark": "PCS侧视在功率B(1kVar)"},
{"key": "0x0027", "datatype": "int16", "remark": "PCS侧视在功率C(1kVar)"},
{"key": "0x0028", "datatype": "int16", "remark": "PCS侧三相总有功功率(1kW)"},
{"key": "0x0029", "datatype": "int16", "remark": "PCS侧三相总无功功率(1kVar)"},
{"key": "0x002A", "datatype": "int16", "remark": "PCS侧三相总视在功率(1kVA)"},
{"key": "0x002B", "datatype": "int16", "remark": "PCS侧三相总功率因数(1)"},
{"key": "0x002C", "datatype": "int16", "remark": "PCU模块温度(1℃)"},
{"key": "0x002D", "datatype": "int16", "remark": "外部温度NTC1(1℃)"},
{"key": "0x002E", "datatype": "int16", "remark": "外部温度NTC2(1℃)"},
{"key": "0x002F", "datatype": "int16", "remark": "外部温度NTC3(1℃)"},
{"key": "0x0030", "datatype": "int16", "remark": "台区负载侧A相电流(1A)"},
{"key": "0x0031", "datatype": "int16", "remark": "台区负载侧B相电流(1A)"},
{"key": "0x0032", "datatype": "int16", "remark": "台区负载侧C相电流(1A)"},
{"key": "0x0033", "datatype": "int16", "remark": "台区负载侧A相有功功率(1kW)"},
{"key": "0x0034", "datatype": "int16", "remark": "台区负载侧B相有功功率(1kW)"},
{"key": "0x0035", "datatype": "int16", "remark": "台区负载侧C相有功功率(1kW)"},
{"key": "0x0036", "datatype": "int16", "remark": "台区负载侧总有功功率(1kW)"},
{"key": "0x0037", "datatype": "int16", "remark": "台区负载侧A相无功功率(1kVar)"},
{"key": "0x0038", "datatype": "int16", "remark": "台区负载侧B相无功功率(1kVar)"},
{"key": "0x0039", "datatype": "int16", "remark": "台区负载侧C相无功功率(1kVar)"},
{"key": "0x003A", "datatype": "int16", "remark": "台区负载侧总无功功率(1kVar)"},
{"key": "0x003B", "datatype": "int16", "remark": "台区负载侧A相视在功率(1kVA)"},
{"key": "0x003C", "datatype": "int16", "remark": "台区负载侧B相视在功率(1kVA)"},
{"key": "0x003D", "datatype": "int16", "remark": "台区负载侧C相视在功率(1kVA)"},
{"key": "0x003E", "datatype": "int16", "remark": "台区负载侧总视在功率(1kVA)"},
{"key": "0x003F", "datatype": "int16", "remark": "台区负载侧A相功率因数(1)"},
{"key": "0x0040", "datatype": "int16", "remark": "台区负载侧B相功率因数(1)"},
{"key": "0x0041", "datatype": "int16", "remark": "台区负载侧C相功率因数(1)"},
{"key": "0x0042", "datatype": "int16", "remark": "台区负载侧总功率因数(1)"},
{"key": "0x0043", "datatype": "int16", "remark": "负载侧线电压AB(1V)"},
{"key": "0x0044", "datatype": "int16", "remark": "负载侧线电压BC(1V)"},
{"key": "0x0045", "datatype": "int16", "remark": "负载侧线电压CA(1V)"},
{"key": "0x0046", "datatype": "int16", "remark": "负载侧相电压AN(1V)"},
{"key": "0x0047", "datatype": "int16", "remark": "负载侧相电压BN(1V)"},
{"key": "0x0048", "datatype": "int16", "remark": "负载侧相电压CN(1V)"},
{"key": "0x0049", "datatype": "int16", "remark": "负载侧A功率因素(1)"},
{"key": "0x004A", "datatype": "int16", "remark": "负载侧B功率因素(1)"},
{"key": "0x004B", "datatype": "int16", "remark": "负载侧C功率因素(1)"},
{"key": "0x004C", "datatype": "int16", "remark": "负载侧A视在功率(1kVA)"},
{"key": "0x004D", "datatype": "int16", "remark": "负载侧B视在功率(1kVA)"}
]
},
"PCU_YX":{
"addr":[
{"key": "0x1001", "datatype": "uint16", "remark": "所属通道号1~4"},
{"key": "0x1002", "datatype": "uint16", "remark": "故障状态1故障0正常"},
{"key": "0x1003", "datatype": "uint16", "remark": "告警状态1告警0正常"},
{"key": "0x1004", "datatype": "uint16", "remark": "设备在线1在线0无效"},
{"key": "0x1005", "datatype": "uint16", "remark": "本地远程1本地0远程"},
{"key": "0x1006", "datatype": "uint16", "remark": "启停状态1开机0关机"},
{"key": "0x1007", "datatype": "uint16", "remark": "电网状态1离网0并网"},
{"key": "0x1008", "datatype": "uint16", "remark": "模块状态1开机0待机"},
{"key": "0x1009", "datatype": "uint16", "remark": "EPO急停1故障0正常"},
{"key": "0x100A", "datatype": "uint16", "remark": "防雷器异常1告警0正常"},
{"key": "0x100B", "datatype": "uint16", "remark": "负载电压反序1故障0正常"},
{"key": "0x100C", "datatype": "uint16", "remark": "市电电压反序1故障0正常"},
{"key": "0x100D", "datatype": "uint16", "remark": "输出相反序1故障0正常"},
{"key": "0x100E", "datatype": "uint16", "remark": "过载告警1告警0正常"},
{"key": "0x100F", "datatype": "uint16", "remark": "过载超时1故障0正常"},
{"key": "0x1010", "datatype": "uint16", "remark": "交流过流保护1故障0正常"},
{"key": "0x1011", "datatype": "uint16", "remark": "逆变电压异常1故障0正常"},
{"key": "0x1012", "datatype": "uint16", "remark": "内部串口异常1故障0正常"},
{"key": "0x1013", "datatype": "uint16", "remark": "485通信故障1故障0正常"},
{"key": "0x1014", "datatype": "uint16", "remark": "CAN通信故障1故障0正常"},
{"key": "0x1015", "datatype": "uint16", "remark": "E2PROM故障1故障0正常"},
{"key": "0x1016", "datatype": "uint16", "remark": "电网过压1故障0正常"},
{"key": "0x1017", "datatype": "uint16", "remark": "电网欠压1故障0正常"},
{"key": "0x1018", "datatype": "uint16", "remark": "电网过频1故障0正常"},
{"key": "0x1019", "datatype": "uint16", "remark": "电网欠频1故障0正常"},
{"key": "0x101A", "datatype": "uint16", "remark": "电网快检综合异常1故障0正常"},
{"key": "0x101B", "datatype": "uint16", "remark": "电网幅值快检异常1故障0正常"},
{"key": "0x101C", "datatype": "uint16", "remark": "电网拖尾异常1故障0正常"},
{"key": "0x101D", "datatype": "uint16", "remark": "消防输入信号NO1闭合0断开"},
{"key": "0x101E", "datatype": "uint16", "remark": "急停按钮信号NC1急停0正常"},
{"key": "0x101F", "datatype": "uint16", "remark": "避雷器NC1故障0正常"},
{"key": "0x1020", "datatype": "uint16", "remark": "避雷器断路器NC1故障0正常"},
{"key": "0x1021", "datatype": "uint16", "remark": "PCS总断路器NC1闭合0断开"},
{"key": "0x1022", "datatype": "uint16", "remark": "电操状态NO1闭合0断开"},
{"key": "0x1023", "datatype": "uint16", "remark": "远程关机NO1开机0无效"},
{"key": "0x1024", "datatype": "uint16", "remark": "远程开机NO1开机0无效"},
{"key": "0x1025", "datatype": "uint16", "remark": "BA故障信号NO1故障0正常"},
{"key": "0x1026", "datatype": "uint16", "remark": "PCS_01状态1在线0掉线"},
{"key": "0x1027", "datatype": "uint16", "remark": "PCS_02状态1在线0掉线"},
{"key": "0x1028", "datatype": "uint16", "remark": "PCS_03状态1在线0掉线"},
{"key": "0x1029", "datatype": "uint16", "remark": "PCS_04状态1在线0掉线"},
{"key": "0x102A", "datatype": "uint16", "remark": "PCS_05状态1在线0掉线"},
{"key": "0x102B", "datatype": "uint16", "remark": "PCS_06状态1在线0掉线"},
{"key": "0x102C", "datatype": "uint16", "remark": "PCS_07状态1在线0掉线"},
{"key": "0x102D", "datatype": "uint16", "remark": "PCS_09状态1在线0掉线"},
{"key": "0x102E", "datatype": "uint16", "remark": "PCS_10状态1在线0掉线"},
{"key": "0x102F", "datatype": "uint16", "remark": "PCS_01下发设置1故障0正常"},
{"key": "0x1030", "datatype": "uint16", "remark": "PCS_02下发设置1故障0正常"},
{"key": "0x1031", "datatype": "uint16", "remark": "PCS_03下发设置1故障0正常"},
{"key": "0x1032", "datatype": "uint16", "remark": "PCS_04下发设置1故障0正常"},
{"key": "0x1033", "datatype": "uint16", "remark": "PCS_05下发设置1故障0正常"},
{"key": "0x1034", "datatype": "uint16", "remark": "PCS_06下发设置1故障0正常"},
{"key": "0x1035", "datatype": "uint16", "remark": "PCS_07下发设置1故障0正常"},
{"key": "0x1036", "datatype": "uint16", "remark": "PCS_08下发设置1故障0正常"},
{"key": "0x1037", "datatype": "uint16", "remark": "PCS_09下发设置1故障0正常"},
{"key": "0x1038", "datatype": "uint16", "remark": "PCS_10下发设置1:故障0正常"},
{"key": "0x1039", "datatype": "uint16", "remark": "内部DSP通信故障1:故障0正常"},
{"key": "0x103A", "datatype": "uint16", "remark": "BMS CAN通信故障1:故障0正常"}
]
},
"PCS_YC":{
"addr":[
{"key": "0x0001", "datatype": "uint16", "remark": "所属主控号1~4"},
{"key": "0x0002", "datatype": "uint16", "remark": "所属PCS号1~40"},
{"key": "0x0003", "datatype": "uint32", "remark": "总充电量(1kWh)"},
{"key": "0x0005", "datatype": "uint32", "remark": "总放电量(1kWh)"},
{"key": "0x0007", "datatype": "int16", "remark": "散热器温度(1℃)"},
{"key": "0x0008", "datatype": "int16", "remark": "内部温度(1℃)"},
{"key": "0x0009", "datatype": "int16", "remark": "最大允许充电功率(0.1kW)"},
{"key": "0x000A", "datatype": "int16", "remark": "最大允许放电功率(0.1kW)"},
{"key": "0x000B", "datatype": "int16", "remark": "有功功率期望(1kWh)"},
{"key": "0x000C", "datatype": "int16", "remark": "无功功率期望(1kVar)"},
{"key": "0x000D", "datatype": "int16", "remark": "AB线电压(1V)"},
{"key": "0x000E", "datatype": "int16", "remark": "BC线电压(1V)"},
{"key": "0x000F", "datatype": "int16", "remark": "CA线电压(1V)"},
{"key": "0x0010", "datatype": "int16", "remark": "A相电压(1V)"},
{"key": "0x0011", "datatype": "int16", "remark": "B相电压(1V)"},
{"key": "0x0012", "datatype": "int16", "remark": "C相电压(1V)"},
{"key": "0x0013", "datatype": "int16", "remark": "A相频率(1Hz)"},
{"key": "0x0014", "datatype": "int16", "remark": "B相频率(1Hz)"},
{"key": "0x0015", "datatype": "int16", "remark": "C相频率(1Hz)"},
{"key": "0x0016", "datatype": "int16", "remark": "A相功率因数(1)"},
{"key": "0x0017", "datatype": "int16", "remark": "B相功率因数(1)"},
{"key": "0x0018", "datatype": "int16", "remark": "C相功率因数(1)"},
{"key": "0x0019", "datatype": "int16", "remark": "A相电流(1A)"},
{"key": "0x001A", "datatype": "int16", "remark": "B相电流(1A)"},
{"key": "0x001B", "datatype": "int16", "remark": "C相电流(1A)"},
{"key": "0x001C", "datatype": "int16", "remark": "A相有功功率(1kW)"},
{"key": "0x001D", "datatype": "int16", "remark": "B相有功功率(1kW)"},
{"key": "0x001E", "datatype": "int16", "remark": "C相有功功率(1kW)"},
{"key": "0x001F", "datatype": "int16", "remark": "A相无功功率(1kVar)"},
{"key": "0x0020", "datatype": "int16", "remark": "B相无功功率(1kVar)"},
{"key": "0x0021", "datatype": "int16", "remark": "C相无功功率(1kVar)"},
{"key": "0x0022", "datatype": "int16", "remark": "A相视在功率(1kVA)"},
{"key": "0x0023", "datatype": "int16", "remark": "B相视在功率(1kVA)"},
{"key": "0x0024", "datatype": "int16", "remark": "C相视在功率(1kVA)"},
{"key": "0x0025", "datatype": "int16", "remark": "三相总有功功率(1kW)"},
{"key": "0x0026", "datatype": "int16", "remark": "三相总无功功率(1kVar)"},
{"key": "0x0027", "datatype": "int16", "remark": "三相总视在功率(1kVA)"},
{"key": "0x0028", "datatype": "int16", "remark": "三相总功率因数(1)"},
{"key": "0x0029", "datatype": "int16", "remark": "直流功率(1kW)"},
{"key": "0x002A", "datatype": "int16", "remark": "直流电压(1V)"},
{"key": "0x002B", "datatype": "int16", "remark": "直流电流(1A)"},
{"key": "0x002C", "datatype": "int16", "remark": "充电功率(1kW)"},
{"key": "0x002D", "datatype": "int16", "remark": "放电功率(1kW)"},
{"key": "0x002E", "datatype": "int16", "remark": "PF值(1)"},
{"key": "0x002F", "datatype": "int16", "remark": "UV线/U相电网计量线电压(1V)"},
{"key": "0x0030", "datatype": "int16", "remark": "VW线/V相电网计量线电压(1V)"},
{"key": "0x0031", "datatype": "int16", "remark": "WU线/W相电网计量线电压(1V)"},
{"key": "0x0032", "datatype": "int16", "remark": "U相电网计量电流(1A)"},
{"key": "0x0033", "datatype": "int16", "remark": "V相电网计量电流(1A)"},
{"key": "0x0034", "datatype": "int16", "remark": "W相电网计量电流(1A)"},
{"key": "0x0035", "datatype": "int16", "remark": "正母线电压(1V)"},
{"key": "0x0036", "datatype": "int16", "remark": "可用功率(1kVA)"},
{"key": "0x0037", "datatype": "int16", "remark": "负母线电压(1V)"},
{"key": "0x0038", "datatype": "int16", "remark": "A相IGBT温度(1℃)"},
{"key": "0x0039", "datatype": "int16", "remark": "B相IGBT温度(1℃)"},
{"key": "0x003A", "datatype": "int16", "remark": "C相IGBT温度(1℃)"},
{"key": "0x003B", "datatype": "int16", "remark": "逆变侧AB线电压(1V)"},
{"key": "0x003C", "datatype": "int16", "remark": "逆变侧BC线电压(1V)"},
{"key": "0x003D", "datatype": "int16", "remark": "逆变侧CA线电压(1V)"},
{"key": "0x003E", "datatype": "int16", "remark": "逆变侧A相电压(1V)"},
{"key": "0x003F", "datatype": "int16", "remark": "逆变侧B相电压(1V)"},
{"key": "0x0040", "datatype": "int16", "remark": "逆变侧C相电压(1V)"},
{"key": "0x0041", "datatype": "int16", "remark": "逆变侧A相电流(1A)"},
{"key": "0x0042", "datatype": "int16", "remark": "逆变侧B相电流(1A)"},
{"key": "0x0043", "datatype": "int16", "remark": "逆变侧C相电流(1A)"},
{"key": "0x0044", "datatype": "int16", "remark": "逆变侧A相电流直流分量(1A)"},
{"key": "0x0045", "datatype": "int16", "remark": "逆变侧B相电流直流分量(1A)"},
{"key": "0x0046", "datatype": "int16", "remark": "逆变侧C相电流直流分量(1A)"},
{"key": "0x0047", "datatype": "int16", "remark": "离网频率(1Hz)"},
{"key": "0x0048", "datatype": "int16", "remark": "A相负载量(1)"},
{"key": "0x0049", "datatype": "int16", "remark": "B相负载量(1)"},
{"key": "0x004A", "datatype": "int16", "remark": "C相负载量(1)"},
{"key": "0x004B", "datatype": "int16", "remark": "总负载量(1)"},
{"key": "0x004C", "datatype": "int16", "remark": "逆变侧AB线电压直流分量(1A)"},
{"key": "0x004D", "datatype": "int16", "remark": "逆变侧BC线电压直流分量(1A)"},
{"key": "0x004E", "datatype": "int16", "remark": "逆变侧CA线电压直流分量(1A)"},
{"key": "0x004F", "datatype": "int16", "remark": "在线数量"}
]
},
"PCS_YX":{
"addr":[
{"key": "0x1001", "datatype": "uint16", "remark": "所属主控号1~4"},
{"key": "0x1002", "datatype": "uint16", "remark": "所属PCS号1~40"},
{"key": "0x1003", "datatype": "uint16", "remark": "故障状态1故障0正常"},
{"key": "0x1004", "datatype": "uint16", "remark": "告警状态1告警0正常"},
{"key": "0x1005", "datatype": "uint16", "remark": "设备在线1在线0无效"},
{"key": "0x1006", "datatype": "uint16", "remark": "禁止充电1禁止0无效"},
{"key": "0x1007", "datatype": "uint16", "remark": "禁止放电1禁止0无效"},
{"key": "0x1008", "datatype": "uint16", "remark": "运行状态1开机0关机"},
{"key": "0x1009", "datatype": "uint16", "remark": "充放状态0待机,1充电,2放电,3搁置"},
{"key": "0x100A", "datatype": "uint16", "remark": "电网状态1离网0并网"},
{"key": "0x100B", "datatype": "uint16", "remark": "逆变供电0禁止1使能"},
{"key": "0x100C", "datatype": "uint16", "remark": "缓启动完成0禁止1使能"},
{"key": "0x100D", "datatype": "uint16", "remark": "主机标志0禁止1使能"},
{"key": "0x100E", "datatype": "uint16", "remark": "并离网状态0并网, 1离网"},
{"key": "0x100F", "datatype": "uint16", "remark": "同步请求标志0无效1动作"},
{"key": "0x1010", "datatype": "uint16", "remark": "绝缘故障1:故障0正常"},
{"key": "0x1011", "datatype": "uint16", "remark": "漏电保护1:故障0正常"},
{"key": "0x1012", "datatype": "uint16", "remark": "直流过压1:故障0正常"},
{"key": "0x1013", "datatype": "uint16", "remark": "市电幅值异常1:故障0正常"},
{"key": "0x1014", "datatype": "uint16", "remark": "市电相序异常1:故障0正常"},
{"key": "0x1015", "datatype": "uint16", "remark": "温度开关异常1:故障0正常"},
{"key": "0x1016", "datatype": "uint16", "remark": "市电频率异常1:故障0正常"},
{"key": "0x1017", "datatype": "uint16", "remark": "IGBT过温1:故障0正常"},
{"key": "0x1018", "datatype": "uint16", "remark": "交流接地故障1:故障0正常"},
{"key": "0x1019", "datatype": "uint16", "remark": "逆变过流异常1:故障0正常"},
{"key": "0x101A", "datatype": "uint16", "remark": "直流缓起故障1:故障0正常"},
{"key": "0x101B", "datatype": "uint16", "remark": "直流主继电器故障1:故障0正常"},
{"key": "0x101C", "datatype": "uint16", "remark": "风机异常1:故障0正常"},
{"key": "0x101D", "datatype": "uint16", "remark": "主接触器异常1:故障0正常"},
{"key": "0x101E", "datatype": "uint16", "remark": "均浮充切换超时1:故障0正常"},
{"key": "0x101F", "datatype": "uint16", "remark": "硬件故障1:故障0正常"},
{"key": "0x1020", "datatype": "uint16", "remark": "机内过温1:故障0正常"},
{"key": "0x1021", "datatype": "uint16", "remark": "软启动故障1:故障0正常"},
{"key": "0x1022", "datatype": "uint16", "remark": "触摸屏通讯故障1:故障0正常"},
{"key": "0x1023", "datatype": "uint16", "remark": "防雷器故障1:故障0正常"},
{"key": "0x1024", "datatype": "uint16", "remark": "急停故障1:故障0正常"},
{"key": "0x1025", "datatype": "uint16", "remark": "BMS系统故障1:故障0正常"},
{"key": "0x1026", "datatype": "uint16", "remark": "BMS通讯故障1:故障0正常"},
{"key": "0x1027", "datatype": "uint16", "remark": "BMS干接点通讯故障1:故障0正常"},
{"key": "0x1028", "datatype": "uint16", "remark": "远程通讯故障1:故障0正常"},
{"key": "0x1029", "datatype": "uint16", "remark": "门禁告警1:故障0正常"},
{"key": "0x102A", "datatype": "uint16", "remark": "锁相异常1:故障0正常"},
{"key": "0x102B", "datatype": "uint16", "remark": "IGBT过温告警1:故障0正常"},
{"key": "0x102C", "datatype": "uint16", "remark": "硬件过流保护1:故障0正常"},
{"key": "0x102D", "datatype": "uint16", "remark": "驱动故障1:故障0正常"},
{"key": "0x102E", "datatype": "uint16", "remark": "ID冲突1:故障0正常"},
{"key": "0x102F", "datatype": "uint16", "remark": "电池过压1:故障0正常"},
{"key": "0x1030", "datatype": "uint16", "remark": "电池欠压1:故障0正常"},
{"key": "0x1031", "datatype": "uint16", "remark": "直流过流保护1:故障0正常"},
{"key": "0x1032", "datatype": "uint16", "remark": "输出电压异常1:故障0正常"},
{"key": "0x1033", "datatype": "uint16", "remark": "离网输出电压不符合1:故障0正常"},
{"key": "0x1034", "datatype": "uint16", "remark": "输出过载保护1:故障0正常"},
{"key": "0x1035", "datatype": "uint16", "remark": "输出短路保护1:故障0正常"},
{"key": "0x1036", "datatype": "uint16", "remark": "并机通信异常1:故障0正常"},
{"key": "0x1037", "datatype": "uint16", "remark": "电池保险异常1:故障0正常"},
{"key": "0x1038", "datatype": "uint16", "remark": "电池重载低压1:故障0正常"},
{"key": "0x1039", "datatype": "uint16", "remark": "电池低压告警1:故障0正常"},
{"key": "0x103A", "datatype": "uint16", "remark": "一拖二压差过大1:故障0正常"},
{"key": "0x103B", "datatype": "uint16", "remark": "电池反接故障1:故障0正常"},
{"key": "0x103C", "datatype": "uint16", "remark": "电池电压异常1:故障0正常"},
{"key": "0x103D", "datatype": "uint16", "remark": "过载告警1:故障0正常"},
{"key": "0x103E", "datatype": "uint16", "remark": "外部接触器异常1:故障0正常"},
{"key": "0x103F", "datatype": "uint16", "remark": "IGBT温度传感器异常1:故障0正常"},
{"key": "0x1040", "datatype": "uint16", "remark": "整机温度传感器异常1:故障0正常"},
{"key": "0x1041", "datatype": "uint16", "remark": "市电CT异常1:故障0正常"},
{"key": "0x1042", "datatype": "uint16", "remark": "逆变电流三相不平衡1:故障0正常"},
{"key": "0x1043", "datatype": "uint16", "remark": "逆变电流直流分量异常1:故障0正常"},
{"key": "0x1044", "datatype": "uint16", "remark": "母线不平衡1:故障0正常"},
{"key": "0x1045", "datatype": "uint16", "remark": "逆变电压直流分量异常1:故障0正常"},
{"key": "0x1046", "datatype": "uint16", "remark": "主接触器控制异常1:故障0正常"},
{"key": "0x1047", "datatype": "uint16", "remark": "逆变电压控制异常1:故障0正常"},
{"key": "0x1048", "datatype": "uint16", "remark": "直流霍尔异常1:故障0正常"},
{"key": "0x1049", "datatype": "uint16", "remark": "电池单体过压1:故障0正常"},
{"key": "0x104A", "datatype": "uint16", "remark": "电池单体欠压1:故障0正常"},
{"key": "0x104B", "datatype": "uint16", "remark": "电网过压1:故障0正常"},
{"key": "0x104C", "datatype": "uint16", "remark": "电网欠压1:故障0正常"},
{"key": "0x104D", "datatype": "uint16", "remark": "电网过频1:故障0正常"},
{"key": "0x104E", "datatype": "uint16", "remark": "电网欠频1:故障0正常"},
{"key": "0x104F", "datatype": "uint16", "remark": "市电不平衡1:故障0正常"},
{"key": "0x1050", "datatype": "uint16", "remark": "参数设置不匹配1:故障0正常"},
{"key": "0x1051", "datatype": "uint16", "remark": "SPI通信异常1:故障0正常"},
{"key": "0x1052", "datatype": "uint16", "remark": "SCI通信异常1:故障0正常"},
{"key": "0x1053", "datatype": "uint16", "remark": "IIC通信异常1:故障0正常"},
{"key": "0x1054", "datatype": "uint16", "remark": "Xintf通信异常1:故障0正常"},
{"key": "0x1055", "datatype": "uint16", "remark": "零偏校准异常1:故障0正常"},
{"key": "0x1056", "datatype": "uint16", "remark": "烟雾告警1:故障0正常"},
{"key": "0x1057", "datatype": "uint16", "remark": "无电池组故障1异常0正常"},
{"key": "0x1058", "datatype": "uint16", "remark": "环温降频1异常0正常"},
{"key": "0x1059", "datatype": "uint16", "remark": "交流过载1异常0正常"},
{"key": "0x105A", "datatype": "uint16", "remark": "采样异常1异常0正常"},
{"key": "0x105B", "datatype": "uint16", "remark": "24V辅源故障1异常0正常"},
{"key": "0x105C", "datatype": "uint16", "remark": "直流欠压异常1异常0正常"},
{"key": "0x105D", "datatype": "uint16", "remark": "散热器过温1异常0正常"},
{"key": "0x105E", "datatype": "uint16", "remark": "CAN配置故障1异常0正常"},
{"key": "0x105F", "datatype": "uint16", "remark": "3.3V辅源故障1异常0正常"},
{"key": "0x1060", "datatype": "uint16", "remark": "环境过温1异常0正常"},
{"key": "0x1061", "datatype": "uint16", "remark": "A相IGBT逆变过流1异常0正常"},
{"key": "0x1062", "datatype": "uint16", "remark": "B相IGBT逆变过流1异常0正常"}
]
},
"BMS_YC":{
"addr":[
{"key": "0x0001", "datatype": "uint16", "remark": "SOC(0.1)"},
{"key": "0x0002", "datatype": "uint16", "remark": "SOH(0.1)"},
{"key": "0x0003", "datatype": "uint32", "remark": "电压(0.1V)"},
{"key": "0x0005", "datatype": "int32", "remark": "电流(0.1A)"},
{"key": "0x0007", "datatype": "uint32", "remark": "可充电量(1kWh)"},
{"key": "0x0009", "datatype": "uint32", "remark": "可放电量(1kWh)"},
{"key": "0x000B", "datatype": "uint32", "remark": "单次可充电量(1kWh)"},
{"key": "0x000D", "datatype": "uint32", "remark": "单次可放电量(1kWh)"},
{"key": "0x000F", "datatype": "int32", "remark": "堆功率(1kW)"},
{"key": "0x0011", "datatype": "uint32", "remark": "充电量累加(1kWh)"},
{"key": "0x0013", "datatype": "uint32", "remark": "放电量累加(1kWh)"},
{"key": "0x0015", "datatype": "uint16", "remark": "簇最大SOC(0.1)"},
{"key": "0x0016", "datatype": "uint16", "remark": "簇最小SOC(0.1)"},
{"key": "0x0017", "datatype": "uint16", "remark": "簇最大SOC号"},
{"key": "0x0018", "datatype": "uint16", "remark": "簇最小SOC号"},
{"key": "0x0019", "datatype": "uint16", "remark": "簇SOC差值(0.1)"},
{"key": "0x001A", "datatype": "uint16", "remark": "簇最大电压(0.1V)"},
{"key": "0x001B", "datatype": "uint16", "remark": "簇最小电压(0.1V)"},
{"key": "0x001C", "datatype": "uint16", "remark": "簇最大电压号"},
{"key": "0x001D", "datatype": "uint16", "remark": "簇最小电压号"},
{"key": "0x001E", "datatype": "uint16", "remark": "簇电压差值(0.1V)"},
{"key": "0x001F", "datatype": "uint16", "remark": "单体最大电压簇号"},
{"key": "0x0020", "datatype": "uint16", "remark": "单体最大电压节号"},
{"key": "0x0021", "datatype": "uint16", "remark": "单体最大电压(mV)"},
{"key": "0x0022", "datatype": "uint16", "remark": "单体最小电压簇号"},
{"key": "0x0023", "datatype": "uint16", "remark": "单体最小电压节号"},
{"key": "0x0024", "datatype": "uint16", "remark": "单体最小电压(mV)"},
{"key": "0x0025", "datatype": "uint16", "remark": "单体平均电压(mV)"},
{"key": "0x0026", "datatype": "uint16", "remark": "单体电压差(mV)"},
{"key": "0x0027", "datatype": "uint16", "remark": "单体最大温度簇号"},
{"key": "0x0028", "datatype": "uint16", "remark": "单体最大温度节号"},
{"key": "0x0029", "datatype": "int16", "remark": "单体最大温度(0.1℃)"},
{"key": "0x002A", "datatype": "uint16", "remark": "单体最小温度簇号"},
{"key": "0x002B", "datatype": "uint16", "remark": "单体最小温度节号"},
{"key": "0x002C", "datatype": "int16", "remark": "单体最小温度(0.1℃)"},
{"key": "0x002D", "datatype": "int16", "remark": "单体平均温度(0.1℃)"},
{"key": "0x002E", "datatype": "int16", "remark": "单体温度差(0.1℃)"},
{"key": "0x002F", "datatype": "uint16", "remark": "最大内阻簇号"},
{"key": "0x0030", "datatype": "uint16", "remark": "最大内阻节号"},
{"key": "0x0031", "datatype": "uint16", "remark": "最大内阻(mΩ)"},
{"key": "0x0032", "datatype": "uint16", "remark": "最小内阻簇号"},
{"key": "0x0033", "datatype": "uint16", "remark": "最小内阻节号"},
{"key": "0x0034", "datatype": "uint16", "remark": "最小内阻(mΩ)"},
{"key": "0x0035", "datatype": "uint16", "remark": "单体平均内阻(mΩ)"},
{"key": "0x0036", "datatype": "uint16", "remark": "单体内阻差(mΩ)"},
{"key": "0x0037", "datatype": "uint16", "remark": "单体最大SOH簇号"},
{"key": "0x0038", "datatype": "uint16", "remark": "单体最大SOH节号"},
{"key": "0x0039", "datatype": "uint16", "remark": "单体最大SOH(0.001)"},
{"key": "0x003A", "datatype": "uint16", "remark": "单体最小SOH簇号"},
{"key": "0x003B", "datatype": "uint16", "remark": "单体最小SOH节号"},
{"key": "0x003C", "datatype": "uint16", "remark": "单体最小SOH(0.001)"},
{"key": "0x003D", "datatype": "uint16", "remark": "单体最大SOc簇号"},
{"key": "0x003E", "datatype": "uint16", "remark": "单体最大SOc节号"},
{"key": "0x0040", "datatype": "uint16", "remark": "单体最大Soc(0.001)"},
{"key": "0x0041", "datatype": "uint16", "remark": "单体最小SOc簇号"},
{"key": "0x0042", "datatype": "uint16", "remark": "单体最小SOc节号"},
{"key": "0x0043", "datatype": "uint16", "remark": "单体最小SOc(0.001)"},
{"key": "0x0043", "datatype": "uint32", "remark": "系统剩余最大可充电功率(1KW)"},
{"key": "0x0045", "datatype": "uint32", "remark": "系统剩余最大可放电功率(1KW)"},
{"key": "0x0047", "datatype": "uint16", "remark": "可充电状态"},
{"key": "0x0048", "datatype": "uint16", "remark": "可放电状态"},
{"key": "0x0049", "datatype": "uint16", "remark": "运行状态"}
]
},
"BCU_YC":{
"addr":[
{"key": "0x0001", "datatype": "uint16", "remark": "所属通道号1~4"},
{"key": "0x0002", "datatype": "uint16", "remark": "所属BCU号1~40"},
{"key": "0x0003", "datatype": "uint32", "remark": "簇电压(0.1V)"},
{"key": "0x0005", "datatype": "int32", "remark": "簇电流(0.1A)"},
{"key": "0x0007", "datatype": "int32", "remark": "簇温度(0.1℃)"},
{"key": "0x0009", "datatype": "uint32", "remark": "簇电阻(1mΩ)"},
{"key": "0x000B", "datatype": "uint16", "remark": "簇SOC(0.1)"},
{"key": "0x000C", "datatype": "uint16", "remark": "簇SOH(0.1)"},
{"key": "0x000D", "datatype": "uint32", "remark": "簇正绝缘电阻(1kΩ)"},
{"key": "0x000F", "datatype": "uint32", "remark": "簇负绝缘电阻(1kΩ)"},
{"key": "0x0011", "datatype": "int32", "remark": "簇允许最大充电电流(0.1A)"},
{"key": "0x0013", "datatype": "int32", "remark": "簇允许最大放电电流(0.1A)"},
{"key": "0x0015", "datatype": "uint32", "remark": "簇允许最大充电功率(1kW)"},
{"key": "0x0017", "datatype": "uint32", "remark": "簇允许最大放电功率(1kW)"},
{"key": "0x0019", "datatype": "uint32", "remark": "簇可充容量(0.1Ah)"},
{"key": "0x001B", "datatype": "uint32", "remark": "簇可放容量(0.1Ah)"},
{"key": "0x001D", "datatype": "uint32", "remark": "簇单次累计充容量(0.1Ah)"},
{"key": "0x001F", "datatype": "uint32", "remark": "簇单次累计放容量(0.1Ah)"},
{"key": "0x0021", "datatype": "uint32", "remark": "簇总累计充容量(0.1Ah)"},
{"key": "0x0023", "datatype": "uint32", "remark": "簇总累计放容量(0.1Ah)"},
{"key": "0x0025", "datatype": "uint32", "remark": "簇可充电量(1kWh)"},
{"key": "0x0027", "datatype": "uint32", "remark": "簇可放电量(1kWh)"},
{"key": "0x0029", "datatype": "uint32", "remark": "簇单次充电量(1kWh)"},
{"key": "0x002B", "datatype": "uint32", "remark": "簇单次放电量(1kWh)"},
{"key": "0x002D", "datatype": "uint32", "remark": "簇累计充电量(1kWh)"},
{"key": "0x002F", "datatype": "uint32", "remark": "簇累计放电量(1kWh)"},
{"key": "0x0031", "datatype": "uint32", "remark": "pack累计簇总压(0.1V)"},
{"key": "0x0033", "datatype": "uint32", "remark": "簇与pack压差(0.1V)"},
{"key": "0x0035", "datatype": "uint32", "remark": "簇与PCS压差(0.1V)"},
{"key": "0x0037", "datatype": "uint16", "remark": "簇中BMU个数"},
{"key": "0x0038", "datatype": "uint16", "remark": "簇中BMU中单体个数"},
{"key": "0x0039", "datatype": "uint16", "remark": "簇中BMU中温度个数"},
{"key": "0x003A", "datatype": "uint16", "remark": "簇中单体个数"},
{"key": "0x003B", "datatype": "uint16", "remark": "簇中温度个数"},
{"key": "0x003C", "datatype": "uint16", "remark": "单体最高SOC节号"},
{"key": "0x003D", "datatype": "uint16", "remark": "单体最高SOC(0.1)"},
{"key": "0x003E", "datatype": "uint16", "remark": "单体最低SOC节号"},
{"key": "0x003F", "datatype": "uint16", "remark": "单体最低SOC(0.1)"},
{"key": "0x0040", "datatype": "uint16", "remark": "单体最高SOH节号"},
{"key": "0x0041", "datatype": "uint16", "remark": "单体最高SOH(0.1)"},
{"key": "0x0042", "datatype": "uint16", "remark": "单体最低SOH节号"},
{"key": "0x0043", "datatype": "uint16", "remark": "单体最低SOH(0.1)"},
{"key": "0x0044", "datatype": "uint16", "remark": "单体最高电压节号"},
{"key": "0x0045", "datatype": "uint16", "remark": "单体最高电压(mV)"},
{"key": "0x0046", "datatype": "uint16", "remark": "单体最低电压节号"},
{"key": "0x0047", "datatype": "uint16", "remark": "单体最低电压(mV)"},
{"key": "0x0048", "datatype": "uint16", "remark": "单体电压差(mV)"},
{"key": "0x0049", "datatype": "uint16", "remark": "单体平均电压(mV)"},
{"key": "0x004A", "datatype": "uint16", "remark": "单体最高温度节号"},
{"key": "0x004B", "datatype": "int16", "remark": "单体最高温度(0.1℃)"},
{"key": "0x004C", "datatype": "uint16", "remark": "单体最低温度节号"},
{"key": "0x004D", "datatype": "int16", "remark": "单体最低温度(0.1℃)"},
{"key": "0x004E", "datatype": "int16", "remark": "单体温度差(0.1℃)"},
{"key": "0x004F", "datatype": "int16", "remark": "单体平均温度(0.1℃)"},
{"key": "0x0050", "datatype": "uint16", "remark": "单体最高内阻节号"},
{"key": "0x0051", "datatype": "uint16", "remark": "单体最高内阻(mΩ)"},
{"key": "0x0052", "datatype": "uint16", "remark": "单体最低内阻节号"},
{"key": "0x0053", "datatype": "uint16", "remark": "单体最低内阻(mΩ)"},
{"key": "0x0054", "datatype": "uint16", "remark": "单体内阻差(mΩ)"},
{"key": "0x0055", "datatype": "uint16", "remark": "单体平均内阻(mΩ)"}
]
},
"BCU_YX":{
"addr":[
{"key": "0xA001", "datatype": "uint16", "remark": "所属通道号1~4"},
{"key": "0xA002", "datatype": "uint16", "remark": "所属BCU号1~40"},
{"key": "0xA003", "datatype": "uint16", "remark": "蓄电池充放电状态0x11开路0x22待机0x33充电0x44放电"},
{"key": "0xA004", "datatype": "uint16", "remark": "电池组运行状态0x11跳机 0x22待机 0x33放空 0x44充满 0x55预警 0x66正常"},
{"key": "0xA005", "datatype": "uint16", "remark": "簇DO1状态1断开 2闭合"},
{"key": "0xA006", "datatype": "uint16", "remark": "簇DO2状态1断开 2闭合"},
{"key": "0xA007", "datatype": "uint16", "remark": "继电器总正0:断开 1闭合 2粘连"},
{"key": "0xA008", "datatype": "uint16", "remark": "继电器总负0:断开 1闭合 2粘连"},
{"key": "0xA009", "datatype": "uint16", "remark": "继电器预充0:断开 1闭合 2粘连"},
{"key": "0xA00A", "datatype": "uint16", "remark": "继电器bmu供电0:断开 1闭合 2粘连"},
{"key": "0xA00B", "datatype": "uint16", "remark": "整簇总电压过高告警0正常 1告警"},
{"key": "0xA00C", "datatype": "uint16", "remark": "整簇总电压过低告警0正常 1告警"},
{"key": "0xA00D", "datatype": "uint16", "remark": "整簇中单体电压过高告警0正常 1告警"},
{"key": "0xA00E", "datatype": "uint16", "remark": "整簇中单体电压过低告警0正常 1告警"},
{"key": "0xA00F", "datatype": "uint16", "remark": "整簇中单体电压偏差过大告警0正常 1告警"},
{"key": "0xA010", "datatype": "uint16", "remark": "整簇中单体温度偏差过大告警0正常 1告警"},
{"key": "0xA011", "datatype": "uint16", "remark": "整簇中单体温度过高告警0正常 1告警"},
{"key": "0xA012", "datatype": "uint16", "remark": "整簇中单体温度过低告警0正常 1告警"},
{"key": "0xA013", "datatype": "uint16", "remark": "整簇总充电电流过高告警0正常 1告警"},
{"key": "0xA014", "datatype": "uint16", "remark": "整簇总放电电流过高告警0正常 1告警"},
{"key": "0xA015", "datatype": "uint16", "remark": "整簇总SOC过高告警0正常 1告警"},
{"key": "0xA016", "datatype": "uint16", "remark": "整簇总SOC过低告警0正常 1告警"},
{"key": "0xA017", "datatype": "uint16", "remark": "高压盒主正接触器粘连告警0正常 1告警"},
{"key": "0xA018", "datatype": "uint16", "remark": "高压盒主正接触器不能吸合告警0正常 1告警"},
{"key": "0xA019", "datatype": "uint16", "remark": "高压盒主负接触器粘连告警0正常 1告警"},
{"key": "0xA01A", "datatype": "uint16", "remark": "高压盒主负接触器不能吸合告警0正常 1告警"},
{"key": "0xA01B", "datatype": "uint16", "remark": "高压盒预充接触器粘连告警0正常 1告警"},
{"key": "0xA01C", "datatype": "uint16", "remark": "高压盒预充接触器不能吸合告警0正常 1告警"},
{"key": "0xA01D", "datatype": "uint16", "remark": "预充失败告警0正常 1告警"},
{"key": "0xA01E", "datatype": "uint16", "remark": "BCU电压检测模块出现问题告警0正常 1告警"},
{"key": "0xA01F", "datatype": "uint16", "remark": "BCU温度检测模块出现问题告警0正常 1告警"},
{"key": "0xA020", "datatype": "uint16", "remark": "BCU电流检测模块出现问题告警0正常 1告警"},
{"key": "0xA021", "datatype": "uint16", "remark": "BCU绝缘检测模块出现问题告警0正常 1告警"},
{"key": "0xA022", "datatype": "uint16", "remark": "高压盒内总压检测模块出现问题告警0正常 1告警"},
{"key": "0xA023", "datatype": "uint16", "remark": "高压盒外总压检测模块出现问题告警0正常 1告警"},
{"key": "0xA024", "datatype": "uint16", "remark": "PCS-CAN通信故障告警0正常 1告警"},
{"key": "0xA025", "datatype": "uint16", "remark": "高压盒供电电压过高告警0正常 1告警"},
{"key": "0xA026", "datatype": "uint16", "remark": "绝缘正极故障告警0正常 1告警"},
{"key": "0xA027", "datatype": "uint16", "remark": "绝缘负极故障告警0正常 1告警"},
{"key": "0xA028", "datatype": "uint16", "remark": "绝缘中间侧故障告警0正常 1告警"},
{"key": "0xA029", "datatype": "uint16", "remark": "绝缘故障告警0正常 1告警"},
{"key": "0xA02A", "datatype": "uint16", "remark": "BMU中电压采样线开路告警0正常 1告警"},
{"key": "0xA02B", "datatype": "uint16", "remark": "BMU中NTC采样线短开路告警0正常 1告警"},
{"key": "0xA02C", "datatype": "uint16", "remark": "BMU中采样芯片故障告警0正常 1告警"},
{"key": "0xA02D", "datatype": "uint16", "remark": "BMU中电池温度升高过快告警0正常 1告警"},
{"key": "0xA02E", "datatype": "uint16", "remark": "BMU中电池内部短路告警0正常 1告警"},
{"key": "0xA02F", "datatype": "uint16", "remark": "BMU充电均衡模块出现故障告警0正常 1告警"},
{"key": "0xA030", "datatype": "uint16", "remark": "BMU放电均衡模块出现故障告警0正常 1告警"},
{"key": "0xA031", "datatype": "uint16", "remark": "BMU通信故障告警0正常 1告警"},
{"key": "0xA032", "datatype": "uint16", "remark": "单体内阻过大告警0正常 1告警"},
{"key": "0xA033", "datatype": "uint16", "remark": "单体内阻过小告警0正常 1告警"},
{"key": "0xA034", "datatype": "uint16", "remark": "单体内阻阻差过大告警0正常 1告警"},
{"key": "0xA035", "datatype": "uint16", "remark": "簇内阻过大告警0正常 1告警"},
{"key": "0xA036", "datatype": "uint16", "remark": "簇内阻过小告警0正常 1告警"},
{"key": "0xA037", "datatype": "uint16", "remark": "SOC初始化无效告警0正常 1告警"},
{"key": "0xA038", "datatype": "uint16", "remark": "充电时soc降低故障告警0正常 1告警"},
{"key": "0xA039", "datatype": "uint16", "remark": "放电时soc升高告警0正常 1告警"},
{"key": "0xA03A", "datatype": "uint16", "remark": "静止时SOC跳变告警0正常 1告警"},
{"key": "0xA03B", "datatype": "uint16", "remark": "整簇总电压过高保护0正常 1保护"},
{"key": "0xA03C", "datatype": "uint16", "remark": "整簇总电压过低保护0正常 1保护"},
{"key": "0xA03D", "datatype": "uint16", "remark": "整簇中单体电压过高保护0正常 1保护"},
{"key": "0xA03E", "datatype": "uint16", "remark": "整簇中单体电压过低保护0正常 1保护"},
{"key": "0xA03F", "datatype": "uint16", "remark": "整簇中单体电压偏差过大保护0正常 1保护"},
{"key": "0xA040", "datatype": "uint16", "remark": "整簇中单体温度偏差过大保护0正常 1保护"},
{"key": "0xA041", "datatype": "uint16", "remark": "整簇中单体温度过高保护0正常 1保护"},
{"key": "0xA042", "datatype": "uint16", "remark": "整簇中单体温度过低保护0正常 1保护"},
{"key": "0xA043", "datatype": "uint16", "remark": "整簇总充电电流过高保护0正常 1保护"},
{"key": "0xA044", "datatype": "uint16", "remark": "整簇总放电电流过高保护0正常 1保护"},
{"key": "0xA045", "datatype": "uint16", "remark": "整簇总SOC过高保护0正常 1保护"},
{"key": "0xA046", "datatype": "uint16", "remark": "整簇总SOC过低保护0正常 1保护"},
{"key": "0xA047", "datatype": "uint16", "remark": "高压盒主正接触器粘连保护0正常 1保护"},
{"key": "0xA048", "datatype": "uint16", "remark": "高压盒主正接触器不能吸合保护0正常 1保护"},
{"key": "0xA049", "datatype": "uint16", "remark": "高压盒主负接触器粘连保护0正常 1保护"},
{"key": "0xA04A", "datatype": "uint16", "remark": "高压盒主负接触器不能吸合保护0正常 1保护"},
{"key": "0xA04B", "datatype": "uint16", "remark": "高压盒预充接触器粘连保护0正常 1保护"},
{"key": "0xA04C", "datatype": "uint16", "remark": "高压盒预充接触器不能吸合保护0正常 1保护"},
{"key": "0xA04D", "datatype": "uint16", "remark": "预充失败保护0正常 1保护"},
{"key": "0xA04E", "datatype": "uint16", "remark": "BCU电压检测模块出现问题保护0正常 1保护"},
{"key": "0xA04F", "datatype": "uint16", "remark": "BCU温度检测模块出现问题保护0正常 1保护"},
{"key": "0xA050", "datatype": "uint16", "remark": "BCU电流检测模块出现问题保护0正常 1保护"},
{"key": "0xA051", "datatype": "uint16", "remark": "BCU绝缘检测模块出现问题保护0正常 1保护"},
{"key": "0xA052", "datatype": "uint16", "remark": "高压盒内总压检测模块出现问题保护0正常 1保护"},
{"key": "0xA053", "datatype": "uint16", "remark": "高压盒外总压检测模块出现问题保护0正常 1保护"},
{"key": "0xA054", "datatype": "uint16", "remark": "PCS-CAN通信故障保护0正常 1保护"},
{"key": "0xA055", "datatype": "uint16", "remark": "高压盒供电电压过高保护0正常 1保护"},
{"key": "0xA056", "datatype": "uint16", "remark": "绝缘正极故障保护0正常 1保护"},
{"key": "0xA057", "datatype": "uint16", "remark": "绝缘负极故障保护0正常 1保护"},
{"key": "0xA058", "datatype": "uint16", "remark": "绝缘中间侧故障保护0正常 1保护"},
{"key": "0xA059", "datatype": "uint16", "remark": "绝缘故障保护0正常 1保护"},
{"key": "0xA05A", "datatype": "uint16", "remark": "BMU中电压采样线开路保护0正常 1保护"},
{"key": "0xA05B", "datatype": "uint16", "remark": "BMU中NTC采样线短开路保护0正常 1保护"},
{"key": "0xA05C", "datatype": "uint16", "remark": "BMU中采样芯片故障保护0正常 1保护"},
{"key": "0xA05D", "datatype": "uint16", "remark": "BMU中电池温度升高过快保护0正常 1保护"},
{"key": "0xA05E", "datatype": "uint16", "remark": "BMU中电池内部短路保护0正常 1保护"},
{"key": "0xA05F", "datatype": "uint16", "remark": "BMU充电均衡模块出现故障保护0正常 1保护"},
{"key": "0xA060", "datatype": "uint16", "remark": "BMU放电均衡模块出现故障保护0正常 1保护"},
{"key": "0xA061", "datatype": "uint16", "remark": "BMU通信故障保护0正常 1保护"},
{"key": "0xA062", "datatype": "uint16", "remark": "单体内阻过大保护0正常 1保护"},
{"key": "0xA063", "datatype": "uint16", "remark": "单体内阻过小保护0正常 1保护"},
{"key": "0xA064", "datatype": "uint16", "remark": "单体内阻阻差过大保护0正常 1保护"},
{"key": "0xA065", "datatype": "uint16", "remark": "簇内阻过大保护0正常 1保护"},
{"key": "0xA066", "datatype": "uint16", "remark": "簇内阻过小保护0正常 1保护"},
{"key": "0xA067", "datatype": "uint16", "remark": "SOC初始化无效保护0正常 1保护"},
{"key": "0xA068", "datatype": "uint16", "remark": "充电时soc降低故障保护0正常 1保护"},
{"key": "0xA069", "datatype": "uint16", "remark": "放电时soc升高保护0正常 1保护"},
{"key": "0xA06A", "datatype": "uint16", "remark": "静止时SOC跳变保护0正常 1保护"}
]
},
"MEM_YC":{
"addr":[
{"key": "0x0001", "datatype": "uint16", "remark": "所属通道号1"},
{"key": "0x0008", "datatype": "uint16", "remark": "电表类型0储能站总表1逆变前侧电表2逆变后侧电表3配电柜电表4并网口电表"},
{"key": "0x0009", "datatype": "uint16", "remark": "电流变比"},
{"key": "0x000A", "datatype": "uint16", "remark": "电压变比"},
{"key": "0x000B", "datatype": "uint32", "remark": "A相电压(1V)"},
{"key": "0x000D", "datatype": "uint32", "remark": "B相电压(1V)"},
{"key": "0x000F", "datatype": "uint32", "remark": "C相电压(1V)"},
{"key": "0x0011", "datatype": "int32", "remark": "A相电流(1A)"},
{"key": "0x0013", "datatype": "int32", "remark": "B相电流(1A)"},
{"key": "0x0015", "datatype": "int32", "remark": "C相电流(1A)"},
{"key": "0x0017", "datatype": "uint32", "remark": "AB相电压(1V)"},
{"key": "0x0019", "datatype": "uint32", "remark": "BC相电压(1V)"},
{"key": "0x001B", "datatype": "uint32", "remark": "CA相电压(1V)"},
{"key": "0x001D", "datatype": "int32", "remark": "A相有功(1kW)"},
{"key": "0x001F", "datatype": "int32", "remark": "B相有功(1kW)"},
{"key": "0x0021", "datatype": "int32", "remark": "C相有功(1kW)"},
{"key": "0x0023", "datatype": "int32", "remark": "三相总有功(1kW)"},
{"key": "0x0025", "datatype": "int32", "remark": "正向总有功总需量(1kW)"},
{"key": "0x0027", "datatype": "uint32", "remark": "尖段电价(1RMB)"},
{"key": "0x0029", "datatype": "uint32", "remark": "峰段电价(1RMB)"},
{"key": "0x002B", "datatype": "uint32", "remark": "平段电价(1RMB)"},
{"key": "0x002D", "datatype": "uint32", "remark": "谷段电价(1RMB)"},
{"key": "0x002F", "datatype": "uint32", "remark": "日充电电量(1kWh)"},
{"key": "0x0031", "datatype": "uint32", "remark": "日放电电量(1kWh)"},
{"key": "0x0033", "datatype": "uint32", "remark": "日充电费用(1RMB)"},
{"key": "0x0035", "datatype": "uint32", "remark": "日放电费用(1RMB)"},
{"key": "0x0037", "datatype": "int32", "remark": "日收益(1RMB)"},
{"key": "0x0039", "datatype": "uint32", "remark": "日正向尖有功电能(1kWh)"},
{"key": "0x003B", "datatype": "uint32", "remark": "日正向峰有功电能(1kWh)"},
{"key": "0x003D", "datatype": "uint32", "remark": "日正向平有功电能(1kWh)"},
{"key": "0x003F", "datatype": "uint32", "remark": "日正向谷有功电能(1kWh)"},
{"key": "0x0041", "datatype": "uint32", "remark": "日正向总有功电能(1kWh)"},
{"key": "0x0043", "datatype": "uint32", "remark": "日反向尖有功电能(1kWh)"},
{"key": "0x0045", "datatype": "uint32", "remark": "日反向峰有功电能(1kWh)"},
{"key": "0x0047", "datatype": "uint32", "remark": "日反向平有功电能(1kWh)"},
{"key": "0x0049", "datatype": "uint32", "remark": "日反向谷有功电能(1kWh)"},
{"key": "0x004B", "datatype": "uint32", "remark": "日反向总有功电能(1kWh)"},
{"key": "0x004D", "datatype": "uint32", "remark": "总充电电量(1kWh)"},
{"key": "0x004F", "datatype": "uint32", "remark": "总放电电量(1kWh)"},
{"key": "0x0051", "datatype": "uint32", "remark": "总充电费用(1RMB)"},
{"key": "0x0053", "datatype": "uint32", "remark": "总放电费用(1RMB)"},
{"key": "0x0055", "datatype": "int32", "remark": "总收益(1RMB)"},
{"key": "0x0057", "datatype": "uint32", "remark": "总正向尖有功电能(1kWh)"},
{"key": "0x0059", "datatype": "uint32", "remark": "总正向峰有功电能(1kWh)"},
{"key": "0x005B", "datatype": "uint32", "remark": "总正向平有功电能(1kWh)"},
{"key": "0x005D", "datatype": "uint32", "remark": "总正向谷有功电能(1kWh)"},
{"key": "0x005F", "datatype": "uint32", "remark": "总正向总有功电能(1kWh)"},
{"key": "0x0061", "datatype": "uint32", "remark": "总反向尖有功电能(1kWh)"},
{"key": "0x0063", "datatype": "uint32", "remark": "总反向峰有功电能(1kWh)"},
{"key": "0x0065", "datatype": "uint32", "remark": "总反向平有功电能(1kWh)"},
{"key": "0x0067", "datatype": "uint32", "remark": "总反向谷有功电能(1kWh)"},
{"key": "0x0069", "datatype": "uint32", "remark": "总反向总有功电能(1kWh)"}
]
},
"TH_YC":{
"addr":[
{"key": "0x0001", "datatype": "uint16", "remark": "所属通道号1"},
{"key": "0x0002", "datatype": "uint16", "remark": "所属温湿度号1~10"},
{"key": "0x0003", "datatype": "int16", "remark": "温度(0.1℃)"},
{"key": "0x0004", "datatype": "int16", "remark": "湿度(0.1℃)"}
]
},
"Fire40_YX":{
"addr":[
{"key": "0x0001", "datatype": "uint16", "remark": "所属通道号1~10"},
{"key": "0x0002", "datatype": "uint16", "remark": "主控数量1"},
{"key": "0x0003", "datatype": "uint16", "remark": "主控ID1"},
{"key": "0x0004", "datatype": "uint16", "remark": "主控状态0正常 1预警 2火警"},
{"key": "0x0005", "datatype": "uint32", "remark": "主控硬件版本"},
{"key": "0x0007", "datatype": "uint32", "remark": "主控软件版本"},
{"key": "0x0009", "datatype": "uint16", "remark": "主电状态0使用市电 1使用备电"},
{"key": "0x000A", "datatype": "uint32", "remark": "备电电流(0.1A)"},
{"key": "0x000C", "datatype": "uint32", "remark": "备电电压(0.1V)"},
{"key": "0x000E", "datatype": "uint32", "remark": "可用容量(0.01Ah)"},
{"key": "0x0010", "datatype": "uint32", "remark": "可充放容量(0.01Ah)"},
{"key": "0x0012", "datatype": "uint16", "remark": "警铃是否使用"},
{"key": "0x0013", "datatype": "uint16", "remark": "警铃状态0无效 1掉线 2正常 3启动"},
{"key": "0x0014", "datatype": "uint16", "remark": "瓶头阀是否使用"},
{"key": "0x0015", "datatype": "uint16", "remark": "瓶头阀状态0无效 1掉线 2正常 3启动"},
{"key": "0x0016", "datatype": "uint16", "remark": "手报是否使用"},
{"key": "0x0017", "datatype": "uint16", "remark": "手报状态0无效 1掉线 2正常 3启动"},
{"key": "0x0018", "datatype": "uint16", "remark": "簇控制器数量"},
{"key": "0x0019", "datatype": "uint16", "remark": "复合探测器总数量"},
{"key": "0x001A", "datatype": "uint16", "remark": "烟雾探测器总数量"},
{"key": "0x001B", "datatype": "uint16", "remark": "压力探测器总数量"},
{"key": "0x001C", "datatype": "uint16", "remark": "吸气式探测器总数量"},
{"key": "0x001D", "datatype": "uint16", "remark": "PACK探测器总数量"},
{"key": "0x001E", "datatype": "uint16", "remark": "电池总数量"}
]
},
"Cooling_YC":{
"addr":[
{"key": "0x0001", "datatype": "uint16", "remark": "所属通道号1"},
{"key": "0x0002", "datatype": "uint16", "remark": "所属冷机号1~10"},
{"key": "0x0003", "datatype": "int16", "remark": "制冷点(0.1℃)"},
{"key": "0x0004", "datatype": "int16", "remark": "制冷偏差(0.1℃)"},
{"key": "0x0005", "datatype": "int16", "remark": "高温告警值(0.1℃)"},
{"key": "0x0006", "datatype": "int16", "remark": "低温告警值(0.1℃)"},
{"key": "0x0007", "datatype": "int16", "remark": "制热点(0.1℃)"},
{"key": "0x0008", "datatype": "int16", "remark": "制热偏差(0.1℃)"},
{"key": "0x0009", "datatype": "int16", "remark": "电芯温度(0.1℃)"},
{"key": "0x000A", "datatype": "int16", "remark": "环境湿度(0.1℃)"},
{"key": "0x000B", "datatype": "int16", "remark": "吸气温度(0.1℃)"},
{"key": "0x000C", "datatype": "int16", "remark": "排气温度(0.1℃)"},
{"key": "0x000D", "datatype": "int16", "remark": "进水温度/供液温度(0.1℃)"},
{"key": "0x000E", "datatype": "int16", "remark": "出水温度/回液温度(0.1℃)"},
{"key": "0x000F", "datatype": "int16", "remark": "进水压力/供液压力(0.1)"},
{"key": "0x0010", "datatype": "int16", "remark": "出水压力/回液压力(0.1)"},
{"key": "0x0011", "datatype": "int16", "remark": "高压压力(0.1)"},
{"key": "0x0012", "datatype": "int16", "remark": "低压压力(0.1)"},
{"key": "0x0013", "datatype": "int16", "remark": "循环水泵转速"},
{"key": "0x0014", "datatype": "int16", "remark": "压缩机频率"},
{"key": "0x0015", "datatype": "int16", "remark": "室外风机转速"}
]
},
"Cooling_YX":{
"addr":[
{"key": "0x1001", "datatype": "uint16", "remark": "所属通道号1"},
{"key": "0x1002", "datatype": "uint16", "remark": "所属冷机号1~10"},
{"key": "0x1003", "datatype": "uint16", "remark": "开关0关机1开机"},
{"key": "0x1004", "datatype": "uint16", "remark": "采样模式(0-出水温度 1-电芯温度)"},
{"key": "0x1005", "datatype": "uint16", "remark": "制冷状态0关闭,1启动"},
{"key": "0x1006", "datatype": "uint16", "remark": "制热状态0关闭,1启动"},
{"key": "0x1007", "datatype": "uint16", "remark": "高温告警0正常1告警"},
{"key": "0x1008", "datatype": "uint16", "remark": "低温告警0正常1告警"},
{"key": "0x1009", "datatype": "uint16", "remark": "高压告警0正常1告警"},
{"key": "0x100A", "datatype": "uint16", "remark": "低压告警0正常1告警"},
{"key": "0x100B", "datatype": "uint16", "remark": "进水温度传感器0正常1告警"},
{"key": "0x100C", "datatype": "uint16", "remark": "出水温度传感器0正常1告警"},
{"key": "0x100D", "datatype": "uint16", "remark": "进水压力传感器0正常1告警"},
{"key": "0x100E", "datatype": "uint16", "remark": "出水压力传感器0正常1告警"}
]
},
"Gateway_YC":{
"addr":[
{"key": "40001", "datatype": "uint16", "remark": "模式"},
{"key": "40002", "datatype": "uint16", "remark": "峰谷时间段"},
{"key": "40021", "datatype": "uint16", "remark": "自定时间段"},
{"key": "40038", "datatype": "uint16", "remark": "其他参数"}
]
},
"Charger_YC":{
"addr":[
{"key": "11", "datatype": "uint16", "remark": "枪1:状态"},
{"key": "12", "datatype": "uint16", "remark": "枪1:需求电压"},
{"key": "13", "datatype": "uint16", "remark": "枪1:需求电流"},
{"key": "14", "datatype": "uint16", "remark": "枪1:需求功率"},
{"key": "15", "datatype": "uint16", "remark": "枪1:输出电压"},
{"key": "16", "datatype": "uint16", "remark": "枪1:输出电流"},
{"key": "17", "datatype": "uint16", "remark": "枪1:输出功率"},
{"key": "18", "datatype": "uint16", "remark": "枪1:功率限值"},
{"key": "21", "datatype": "uint16", "remark": "枪2:状态"},
{"key": "22", "datatype": "uint16", "remark": "枪2:需求电压"},
{"key": "23", "datatype": "uint16", "remark": "枪2:需求电流"},
{"key": "24", "datatype": "uint16", "remark": "枪2:需求功率"},
{"key": "25", "datatype": "uint16", "remark": "枪2:输出电压"},
{"key": "26", "datatype": "uint16", "remark": "枪2:输出电流"},
{"key": "27", "datatype": "uint16", "remark": "枪2:输出功率"},
{"key": "28", "datatype": "uint16", "remark": "枪2:功率限值"}
]
}
}

View File

@@ -0,0 +1,901 @@
{
"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正常"}
]
},
"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": ""}
]
}
}

View File

@@ -0,0 +1,157 @@
{
"EMS":{
"deviceType":101,
"addrYC":[
["A相电压", "0x107E", "0.0", " V", "1"],
["A相电流", "0x1084", "0.0", " A"],
["B相电压", "0x1080", "0.0", " V", "1"],
["B相电流", "0x1086", "0.0", " A"],
["C相电压", "0x1082", "0.0", " V", "1"],
["C相电流", "0x1088", "0.0", " A"],
["总有功功率", "0x1096", "0.0", " kW"]
],
"addrCurve": ["0x107E", "0x1084", "0x1096"]
},
"PCS":{
"deviceType":102,
"addrYC":[
["充放状态", "0x1009", "--", ""],
["电网状态", "0x100A", "--", ""],
["A相电压", "0x0010", "0.0", " V", "1"],
["A相电流", "0x0019", "0.0", " A"],
["B相电压", "0x0011", "0.0", " V", "1"],
["B相电流", "0x001A", "0.0", " A"],
["C相电压", "0x0011", "0.0", " V", "1"],
["C相电流", "0x001B", "0.0", " A"],
["总有功功率", "0x0025", "0.0", " kW"]
],
"addrCurve": ["0x0010", "0x0019", "0x0025"]
},
"PCU":{
"deviceType":103,
"addrYC":[
["电网状态", "0x1007", "--", ""],
["启停状态", "0x1006", "--", ""],
["有功功率期望值","0x000E", "0.0", " KW"],
["无功功率期望值","0x000F", "0.0", " kVar"],
["A相电压", "0x0013", "0.0", " V", "1"],
["A相电流", "0x001C", "0.0", " A"],
["B相电压", "0x0014", "0.0", " V", "1"],
["B相电流", "0x001D", "0.0", " A"],
["C相电压", "0x0015", "0.0", " V", "1"],
["C相电流", "0x001E", "0.0", " A"],
["总有功功率", "0x0028", "0.0", " kW"]
],
"addrCurve": ["0x0013", "0x001C", "0x0028"]
},
"BMS":{
"deviceType":104,
"addrYC":[
["充放状态", "0x004A", "--", ""],
["堆功率", "0x000F", "0.0", " kW"],
["SOC", "0x0001", "0", " %", "0.1"],
["SOH", "0x0002", "0", " %", "0.1"],
["电压", "0x0003", "0.0", " V", "0.1"],
["电流", "0x0005", "0.0", " A", "0.1"],
["单体最电压", "0x0021", "0.0", " V", "0.1"],
["单体最小电压", "0x0024", "0.0", " V", "0.1"],
["单体最大温度", "0x0029", "0.0", " ℃", "0.1"],
["单体最小温度", "0x002C", "0.0", " ℃", "0.1"]
],
"addrCurve": ["0x0003", "0x0005", ""]
},
"BCU":{
"deviceType":105,
"addrYC":[
["充放状态", "0xA003", "--", ""],
["运行状态", "0xA004", "--", ""],
["簇可充容量", "0x0019", "0.0", " Ah", "0.1"],
["簇可放容量", "0x001B", "0.0", " Ah", "0.1"],
["簇SOC", "0x000B", "0", " %", "0.1"],
["簇SOH", "0x000C", "0", " %", "0.1"],
["簇电压", "0x0003", "0.0", " V", "0.1"],
["簇电流", "0x0005", "0", " A", "0.1"],
["簇温度", "0x0007", "0.0", " ℃", "0.1"],
["簇电阻", "0x0009", "0.0", " Ω"]
],
"addrCurve": ["0x0003", "0x0005", ""]
},
"MEM":{
"deviceType":3,
"addrYC":[
["日充电电量", "0x002F", "0", " kWh"],
["日放电电量", "0x0031", "0", " kWh"],
["总充电电量", "0x004D", "0", " kWh"],
["总放电电量", "0x004F", "0", " kWh"],
["日充电费用", "0x0033", "0", " 元"],
["日放电费用", "0x0035", "0", " 元"],
["总充电费用", "0x0051", "0", " 元"],
["总放电费用", "0x0053", "0", " 元"],
["日收益", "0x0037", "0", " 元"],
["总收益", "0x0055", "0", " 元"],
["日正向尖电能", "0x0039", "0", " kWh"],
["日正向峰电能", "0x003B", "0", " kWh"],
["日正向平电能", "0x003D", "0", " kWh"],
["日正向谷电能", "0x003F", "0", " kWh"],
["日正向总电能", "0x0041", "0", " kWh"],
["日反向尖电能", "0x0043", "0", " kWh"],
["日反向峰电能", "0x0045", "0", " kWh"],
["日反向平电能", "0x0047", "0", " kWh"],
["日反向谷电能", "0x0049", "0", " kWh"],
["日反向总电能", "0x004B", "0", " kWh"],
["总正向尖电能", "0x0057", "0", " kWh"],
["总正向峰电能", "0x0059", "0", " kWh"],
["总正向平电能", "0x005B", "0", " kWh"],
["总正向谷电能", "0x005D", "0", " kWh"],
["总正向总电能", "0x005F", "0", " kWh"],
["总反向尖电能", "0x0061", "0", " kWh"],
["总反向峰电能", "0x0063", "0", " kWh"],
["总反向平电能", "0x0065", "0", " kWh"],
["总反向谷电能", "0x0067", "0", " kWh"],
["总反向总电能", "0x0069", "0", " kWh"],
["A相电压", "0x000B", "0.0", " V"],
["A相电流", "0x0011", "0.0", " A"],
["B相电压", "0x000D", "0.0", " V"],
["B相电流", "0x0013", "0.0", " A"],
["C相电压", "0x000F", "0.0", " V"],
["C相电流", "0x0015", "0.0", " A"],
["总有功总需量", "0x0025", "0.0", " kW"]
],
"addrCurve": ["0x000B","0x0011","0x0023"]
},
"TH": {
"deviceType":10,
"addrYC":[
["温度", "0x0003", "0.0", " ℃", "0.1"],
["湿度", "0x0004", "0.0", " %", "0.1"]
]
},
"Cooling": {
"deviceType":14,
"addrYC":[
["开关", "0x1003", "0", "", "1"],
["采样模式", "0x1004", "0", "", "1"],
["制冷状态", "0x1005", "0", "", "1"],
["制热状态", "0x1006", "0", "", "1"],
["高温告警", "0x1007", "0", "", "1"],
["低温告警", "0x1008", "0", "", "1"],
["高压告警", "0x1009", "0", "", "1"],
["低压告警", "0x100A", "0", "", "1"]
]
},
"Charger": {
"deviceType":106,
"addrYC":[
["工作状态", "11", "空闲", ""],
["需求电压", "12", "0.0", " V", "0.1"],
["需求电流", "13", "0.0", " A", "0.01"],
["需求功率", "14", "0.0", " kW", "0.1"],
["输出电压", "15", "0.0", " V", "0.1"],
["输出电流", "16", "0.0", " A", "0.01"],
["输出功率", "17", "0.0", " kW", "0.1"],
["功率限值", "18", "0.0", " kW", "0.1"]
],
"addrCurve": ["15", "16", "17"]
}
}

View File

@@ -0,0 +1,128 @@
{
"103":{
"addr":[
{"key": "0x1009", "datatype": "uint16", "remark": "EPO急停1故障0正常"},
{"key": "0x100A", "datatype": "uint16", "remark": "防雷器异常1告警0正常"},
{"key": "0x100B", "datatype": "uint16", "remark": "负载电压反序1故障0正常"},
{"key": "0x100C", "datatype": "uint16", "remark": "市电电压反序1故障0正常"},
{"key": "0x100D", "datatype": "uint16", "remark": "输出相反序1故障0正常"},
{"key": "0x100E", "datatype": "uint16", "remark": "过载告警1告警0正常"},
{"key": "0x100F", "datatype": "uint16", "remark": "过载超时1故障0正常"},
{"key": "0x1010", "datatype": "uint16", "remark": "交流过流保护1故障0正常"},
{"key": "0x1011", "datatype": "uint16", "remark": "逆变电压异常1故障0正常"},
{"key": "0x1012", "datatype": "uint16", "remark": "内部串口异常1故障0正常"},
{"key": "0x1013", "datatype": "uint16", "remark": "485通信故障1故障0正常"},
{"key": "0x1014", "datatype": "uint16", "remark": "CAN通信故障1故障0正常"},
{"key": "0x1015", "datatype": "uint16", "remark": "E2PROM故障1故障0正常"},
{"key": "0x1016", "datatype": "uint16", "remark": "电网过压1故障0正常"},
{"key": "0x1017", "datatype": "uint16", "remark": "电网欠压1故障0正常"},
{"key": "0x1018", "datatype": "uint16", "remark": "电网过频1故障0正常"},
{"key": "0x1019", "datatype": "uint16", "remark": "电网欠频1故障0正常"},
{"key": "0x101A", "datatype": "uint16", "remark": "电网快检综合异常1故障0正常"},
{"key": "0x101B", "datatype": "uint16", "remark": "电网幅值快检异常1故障0正常"},
{"key": "0x101C", "datatype": "uint16", "remark": "电网拖尾异常1故障0正常"},
{"key": "0x101E", "datatype": "uint16", "remark": "急停按钮信号NC1急停0正常"},
{"key": "0x101F", "datatype": "uint16", "remark": "避雷器NC1故障0正常"},
{"key": "0x1020", "datatype": "uint16", "remark": "避雷器断路器NC1故障0正常"},
{"key": "0x102F", "datatype": "uint16", "remark": "PCS_01下发设置1故障0正常"},
{"key": "0x1030", "datatype": "uint16", "remark": "PCS_02下发设置1故障0正常"},
{"key": "0x1031", "datatype": "uint16", "remark": "PCS_03下发设置1故障0正常"},
{"key": "0x1032", "datatype": "uint16", "remark": "PCS_04下发设置1故障0正常"},
{"key": "0x1033", "datatype": "uint16", "remark": "PCS_05下发设置1故障0正常"},
{"key": "0x1034", "datatype": "uint16", "remark": "PCS_06下发设置1故障0正常"},
{"key": "0x1035", "datatype": "uint16", "remark": "PCS_07下发设置1故障0正常"},
{"key": "0x1036", "datatype": "uint16", "remark": "PCS_08下发设置1故障0正常"},
{"key": "0x1037", "datatype": "uint16", "remark": "PCS_09下发设置1故障0正常"},
{"key": "0x1038", "datatype": "uint16", "remark": "PCS_10下发设置1:故障0正常"},
{"key": "0x1039", "datatype": "uint16", "remark": "内部DSP通信故障1:故障0正常"},
{"key": "0x103A", "datatype": "uint16", "remark": "BMS CAN通信故障1:故障0正常"}
]
},
"104":{
"addr":[
{"key": "0x1010", "datatype": "uint16", "remark": "绝缘故障1:故障0正常"},
{"key": "0x1011", "datatype": "uint16", "remark": "漏电保护1:故障0正常"},
{"key": "0x1012", "datatype": "uint16", "remark": "直流过压1:故障0正常"},
{"key": "0x1013", "datatype": "uint16", "remark": "市电幅值异常1:故障0正常"},
{"key": "0x1014", "datatype": "uint16", "remark": "市电相序异常1:故障0正常"},
{"key": "0x1015", "datatype": "uint16", "remark": "温度开关异常1:故障0正常"},
{"key": "0x1016", "datatype": "uint16", "remark": "市电频率异常1:故障0正常"},
{"key": "0x1017", "datatype": "uint16", "remark": "IGBT过温1:故障0正常"},
{"key": "0x1018", "datatype": "uint16", "remark": "交流接地故障1:故障0正常"},
{"key": "0x1019", "datatype": "uint16", "remark": "逆变过流异常1:故障0正常"},
{"key": "0x101A", "datatype": "uint16", "remark": "直流缓起故障1:故障0正常"},
{"key": "0x101B", "datatype": "uint16", "remark": "直流主继电器故障1:故障0正常"},
{"key": "0x101C", "datatype": "uint16", "remark": "风机异常1:故障0正常"},
{"key": "0x101D", "datatype": "uint16", "remark": "主接触器异常1:故障0正常"},
{"key": "0x101E", "datatype": "uint16", "remark": "均浮充切换超时1:故障0正常"},
{"key": "0x101F", "datatype": "uint16", "remark": "硬件故障1:故障0正常"},
{"key": "0x1020", "datatype": "uint16", "remark": "机内过温1:故障0正常"},
{"key": "0x1021", "datatype": "uint16", "remark": "软启动故障1:故障0正常"},
{"key": "0x1022", "datatype": "uint16", "remark": "触摸屏通讯故障1:故障0正常"},
{"key": "0x1023", "datatype": "uint16", "remark": "防雷器故障1:故障0正常"},
{"key": "0x1024", "datatype": "uint16", "remark": "急停故障1:故障0正常"},
{"key": "0x1025", "datatype": "uint16", "remark": "BMS系统故障1:故障0正常"},
{"key": "0x1026", "datatype": "uint16", "remark": "BMS通讯故障1:故障0正常"},
{"key": "0x1027", "datatype": "uint16", "remark": "BMS干接点通讯故障1:故障0正常"},
{"key": "0x1028", "datatype": "uint16", "remark": "远程通讯故障1:故障0正常"},
{"key": "0x1029", "datatype": "uint16", "remark": "门禁告警1:故障0正常"},
{"key": "0x102A", "datatype": "uint16", "remark": "锁相异常1:故障0正常"},
{"key": "0x102B", "datatype": "uint16", "remark": "IGBT过温告警1:故障0正常"},
{"key": "0x102C", "datatype": "uint16", "remark": "硬件过流保护1:故障0正常"},
{"key": "0x102D", "datatype": "uint16", "remark": "驱动故障1:故障0正常"},
{"key": "0x102E", "datatype": "uint16", "remark": "ID冲突1:故障0正常"},
{"key": "0x102F", "datatype": "uint16", "remark": "电池过压1:故障0正常"},
{"key": "0x1030", "datatype": "uint16", "remark": "电池欠压1:故障0正常"},
{"key": "0x1031", "datatype": "uint16", "remark": "直流过流保护1:故障0正常"},
{"key": "0x1032", "datatype": "uint16", "remark": "输出电压异常1:故障0正常"},
{"key": "0x1033", "datatype": "uint16", "remark": "离网输出电压不符合1:故障0正常"},
{"key": "0x1034", "datatype": "uint16", "remark": "输出过载保护1:故障0正常"},
{"key": "0x1035", "datatype": "uint16", "remark": "输出短路保护1:故障0正常"},
{"key": "0x1036", "datatype": "uint16", "remark": "并机通信异常1:故障0正常"},
{"key": "0x1037", "datatype": "uint16", "remark": "电池保险异常1:故障0正常"},
{"key": "0x1038", "datatype": "uint16", "remark": "电池重载低压1:故障0正常"},
{"key": "0x1039", "datatype": "uint16", "remark": "电池低压告警1:故障0正常"},
{"key": "0x103A", "datatype": "uint16", "remark": "一拖二压差过大1:故障0正常"},
{"key": "0x103B", "datatype": "uint16", "remark": "电池反接故障1:故障0正常"},
{"key": "0x103C", "datatype": "uint16", "remark": "电池电压异常1:故障0正常"},
{"key": "0x103D", "datatype": "uint16", "remark": "过载告警1:故障0正常"},
{"key": "0x103E", "datatype": "uint16", "remark": "外部接触器异常1:故障0正常"},
{"key": "0x103F", "datatype": "uint16", "remark": "IGBT温度传感器异常1:故障0正常"},
{"key": "0x1040", "datatype": "uint16", "remark": "整机温度传感器异常1:故障0正常"},
{"key": "0x1041", "datatype": "uint16", "remark": "市电CT异常1:故障0正常"},
{"key": "0x1042", "datatype": "uint16", "remark": "逆变电流三相不平衡1:故障0正常"},
{"key": "0x1043", "datatype": "uint16", "remark": "逆变电流直流分量异常1:故障0正常"},
{"key": "0x1044", "datatype": "uint16", "remark": "母线不平衡1:故障0正常"},
{"key": "0x1045", "datatype": "uint16", "remark": "逆变电压直流分量异常1:故障0正常"},
{"key": "0x1046", "datatype": "uint16", "remark": "主接触器控制异常1:故障0正常"},
{"key": "0x1047", "datatype": "uint16", "remark": "逆变电压控制异常1:故障0正常"},
{"key": "0x1048", "datatype": "uint16", "remark": "直流霍尔异常1:故障0正常"},
{"key": "0x1049", "datatype": "uint16", "remark": "电池单体过压1:故障0正常"},
{"key": "0x104A", "datatype": "uint16", "remark": "电池单体欠压1:故障0正常"},
{"key": "0x104B", "datatype": "uint16", "remark": "电网过压1:故障0正常"},
{"key": "0x104C", "datatype": "uint16", "remark": "电网欠压1:故障0正常"},
{"key": "0x104D", "datatype": "uint16", "remark": "电网过频1:故障0正常"},
{"key": "0x104E", "datatype": "uint16", "remark": "电网欠频1:故障0正常"},
{"key": "0x104F", "datatype": "uint16", "remark": "市电不平衡1:故障0正常"},
{"key": "0x1050", "datatype": "uint16", "remark": "参数设置不匹配1:故障0正常"},
{"key": "0x1051", "datatype": "uint16", "remark": "SPI通信异常1:故障0正常"},
{"key": "0x1052", "datatype": "uint16", "remark": "SCI通信异常1:故障0正常"},
{"key": "0x1053", "datatype": "uint16", "remark": "IIC通信异常1:故障0正常"},
{"key": "0x1054", "datatype": "uint16", "remark": "Xintf通信异常1:故障0正常"},
{"key": "0x1055", "datatype": "uint16", "remark": "零偏校准异常1:故障0正常"},
{"key": "0x1056", "datatype": "uint16", "remark": "烟雾告警1:故障0正常"},
{"key": "0x1057", "datatype": "uint16", "remark": "无电池组故障1异常0正常"},
{"key": "0x1058", "datatype": "uint16", "remark": "环温降频1异常0正常"},
{"key": "0x1059", "datatype": "uint16", "remark": "交流过载1异常0正常"},
{"key": "0x105A", "datatype": "uint16", "remark": "采样异常1异常0正常"},
{"key": "0x105B", "datatype": "uint16", "remark": "24V辅源故障1异常0正常"},
{"key": "0x105C", "datatype": "uint16", "remark": "直流欠压异常1异常0正常"},
{"key": "0x105D", "datatype": "uint16", "remark": "散热器过温1异常0正常"},
{"key": "0x105E", "datatype": "uint16", "remark": "CAN配置故障1异常0正常"},
{"key": "0x105F", "datatype": "uint16", "remark": "3.3V辅源故障1异常0正常"},
{"key": "0x1060", "datatype": "uint16", "remark": "环境过温1异常0正常"},
{"key": "0x1061", "datatype": "uint16", "remark": "A相IGBT逆变过流1异常0正常"},
{"key": "0x1062", "datatype": "uint16", "remark": "B相IGBT逆变过流1异常0正常"}
]
}
}

View File

@@ -0,0 +1,77 @@
import re
import json
def parse_datatype(text):
datatypes = ["int16", "uint16", "int32", "uint32", "int64", "uint64"]
for index, datatype in enumerate(datatypes):
left, separator, right = text.partition(datatype)
if len(separator) != 0:
return datatype, left + right
return "", text
def parse_from_file(filename):
data = ""
with open(filename, "r", encoding='utf-8') as f: # 打开文件
linedata = ""
for line in f: # 行遍历
line = line.strip()
#linedata = f.readline() # 读取文件的一行
flag = bool(re.search(r'0x[0-9A-Fa-f]{4}', line))
linedata += line.strip()
if flag:
# print(linedata)
# left, separator, right = linedata.partition("0x")
parts = re.split(r'(0x[0-9A-Fa-f]{4})', linedata)
linedata = ""
key = parts[1]
datatype, remark = parse_datatype(parts[0].strip())
remark = remark.replace("\t", " ").replace("\"", "")
item = {}
item["key"] = key
item["datatype"] = datatype
item["remark"] = remark
if len(data) > 0:
data += ",\n"
data += ("\t\t\t" + json.dumps(item, ensure_ascii=False))
return data
addritems = {}
addritems["EMS_YT"] = ["EMS遥调.txt", 1]
addritems["BCU_YX"] = ["BCU电池簇遥信.txt", 1]
addritems["BCU_YC"] = ["BCU电池簇遥测.txt", 1]
addritems["BMS_YC"] = ["BMS电池堆遥测.txt", 1]
addritems["EMS_YX"] = ["EMS遥信.txt", 1]
addritems["EMS_YC"] = ["EMS遥测.txt", 1]
addritems["EMS_YT"] = ["EMS遥调.txt", 1]
addritems["PCS_YX"] = ["PCS遥信.txt", 1]
addritems["PCS_YC"] = ["PCS遥测.txt", 1]
addritems["PCU_YX"] = ["PCU遥信.txt", 1]
addritems["PCU_YC"] = ["PCU遥测.txt", 1]
addritems["MEM_YC"] = ["多功能电表遥测.txt", 1]
addritems["TH_YC"] = ["温湿度状态遥测.txt", 1]
addritems["Fire40_YX"] = ["消防4.0遥信.txt", 1]
addritems["Cooling_YX"] = ["冷机遥信.txt", 1]
addritems["Cooling_YC"] = ["冷机遥测.txt", 1]
with open('registeraddr.json', 'w', encoding='utf-8') as f:
f.write("{")
index = 0
for key in addritems:
filename = addritems[key][0]
count = addritems[key][1]
print("parse: ", key, filename)
data = parse_from_file(filename)
if len(data) > 0:
data = "\n" + data + "\n\t"
if index != 0:
f.write(",")
f.write("\n\t\"" + key + "\": {\n\t\t\"count\":" + str(count) + ",\n\t\t\"addr\":[" + data + "\t]\n\t}")
index+=1
f.write("\n}")

View File

@@ -6,7 +6,7 @@
"exportpath": "D:/Programs/openresty-1.27.1.1-win64/zdownload", "exportpath": "D:/Programs/openresty-1.27.1.1-win64/zdownload",
"database": {"host": "localhost", "port": 3306, "user": "root", "passwd": "123456", "dbname": "ess"}, "database": {"host": "localhost", "port": 3306, "user": "root", "passwd": "123456", "dbname": "ess"},
"http": {"token":0, "port": 19801, "encryption":0, "encryptKey":""}, "http": {"token":0, "port": 19801, "encryption":0, "encryptKey":""},
"mqtt": {"host":"mqtt://118.195.161.113:8883","username":"admin","password":"jsyh@2025", "interval": 120}, "mqtt": {"host":"mqtt://118.195.161.113:8883","username":"admin","password":"jsyh@2025", "interval": 0},
"topic": { "topic": {
"EMS_YX": {"deviceType":101, "polling":0, "enabled": 1}, "EMS_YX": {"deviceType":101, "polling":0, "enabled": 1},
"EMS_YC": {"deviceType":101, "polling":0, "enabled": 1}, "EMS_YC": {"deviceType":101, "polling":0, "enabled": 1},
@@ -32,5 +32,5 @@
"video": { "video": {
"1":{"host":"", "port":9000, "user":"", "passwd":""} "1":{"host":"", "port":9000, "user":"", "passwd":""}
}, },
"statistics": {"enabled": 1, "interval": 120} "statistics": {"enabled": 1, "interval": 60}
} }

View File

@@ -18,8 +18,6 @@
"addrYC":[ "addrYC":[
["充放状态", "0x1009", "--", ""], ["充放状态", "0x1009", "--", ""],
["电网状态", "0x100A", "--", ""], ["电网状态", "0x100A", "--", ""],
["总充电量", "0x0003", "0.0", " kWh"],
["总放电量", "0x0005", "0.0", " kWh"],
["A相电压", "0x0010", "0.0", " V", "1"], ["A相电压", "0x0010", "0.0", " V", "1"],
["A相电流", "0x0019", "0.0", " A"], ["A相电流", "0x0019", "0.0", " A"],
["B相电压", "0x0011", "0.0", " V", "1"], ["B相电压", "0x0011", "0.0", " V", "1"],
@@ -34,11 +32,9 @@
"deviceType":103, "deviceType":103,
"addrYC":[ "addrYC":[
["电网状态", "0x1007", "--", ""], ["电网状态", "0x1007", "--", ""],
["模块状态", "0x1008", "--", ""], ["启停状态", "0x1006", "--", ""],
["日充电量", "0x0006", "0.0", " kWh"], ["有功功率期望值","0x000E", "0.0", " KW"],
["日放电量", "0x0008", "0.0", " kWh"], ["无功功率期望值","0x000F", "0.0", " kVar"],
["总充电量", "0x000A", "0.0", " kWh"],
["总放电量", "0x000C", "0.0", " kWh"],
["A相电压", "0x0013", "0.0", " V", "1"], ["A相电压", "0x0013", "0.0", " V", "1"],
["A相电流", "0x001C", "0.0", " A"], ["A相电流", "0x001C", "0.0", " A"],
["B相电压", "0x0014", "0.0", " V", "1"], ["B相电压", "0x0014", "0.0", " V", "1"],
@@ -94,11 +90,31 @@
["总放电费用", "0x0053", "0", " 元"], ["总放电费用", "0x0053", "0", " 元"],
["日收益", "0x0037", "0", " 元"], ["日收益", "0x0037", "0", " 元"],
["总收益", "0x0055", "0", " 元"], ["总收益", "0x0055", "0", " 元"],
["日正向尖电能", "0x0039", "0", " kWh"],
["日正向峰电能", "0x003B", "0", " kWh"],
["日正向平电能", "0x003D", "0", " kWh"],
["日正向谷电能", "0x003F", "0", " kWh"],
["日正向总电能", "0x0041", "0", " kWh"],
["日反向尖电能", "0x0043", "0", " kWh"],
["日反向峰电能", "0x0045", "0", " kWh"],
["日反向平电能", "0x0047", "0", " kWh"],
["日反向谷电能", "0x0049", "0", " kWh"],
["日反向总电能", "0x004B", "0", " kWh"],
["总正向尖电能", "0x0057", "0", " kWh"],
["总正向峰电能", "0x0059", "0", " kWh"],
["总正向平电能", "0x005B", "0", " kWh"],
["总正向谷电能", "0x005D", "0", " kWh"],
["总正向总电能", "0x005F", "0", " kWh"],
["总反向尖电能", "0x0061", "0", " kWh"],
["总反向峰电能", "0x0063", "0", " kWh"],
["总反向平电能", "0x0065", "0", " kWh"],
["总反向谷电能", "0x0067", "0", " kWh"],
["总反向总电能", "0x0069", "0", " kWh"],
["A相电压", "0x000B", "0.0", " V"], ["A相电压", "0x000B", "0.0", " V"],
["A相电流", "0x000D", "0.0", " A"], ["A相电流", "0x0011", "0.0", " A"],
["B相电压", "0x000F", "0.0", " V"], ["B相电压", "0x000D", "0.0", " V"],
["B相电流", "0x0011", "0.0", " A"], ["B相电流", "0x0013", "0.0", " A"],
["C相电压", "0x0013", "0.0", " V"], ["C相电压", "0x000F", "0.0", " V"],
["C相电流", "0x0015", "0.0", " A"], ["C相电流", "0x0015", "0.0", " A"],
["总有功总需量", "0x0025", "0.0", " kW"] ["总有功总需量", "0x0025", "0.0", " kW"]
], ],

View File

@@ -87,6 +87,7 @@ ADD_SOURCE_GROUP(protocol)
#ADD_SOURCE_GROUP(pv) #ADD_SOURCE_GROUP(pv)
#ADD_SOURCE_GROUP(pv/pages) #ADD_SOURCE_GROUP(pv/pages)
ADD_SOURCE_GROUP(qt) ADD_SOURCE_GROUP(qt)
ADD_SOURCE_GROUP(qt/widgets)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)
add_executable(${PROJECT_NAME} ${SOURCE_FILE} "resource.rc") add_executable(${PROJECT_NAME} ${SOURCE_FILE} "resource.rc")

View File

@@ -195,19 +195,17 @@ bool AppData::initFromDB()
auto station = this->getStation(stationId); auto station = this->getStation(stationId);
if (station) if (station)
{ {
station->storageIn = fields.get<double>(DMStatStation::STORAGE_ELECT_IN); //station->storageIn = fields.get<double>(DMStatStation::STORAGE_ELECT_IN);
station->storageOut = fields.get<double>(DMStatStation::STORAGE_ELECT_OUT); //station->storageOut = fields.get<double>(DMStatStation::STORAGE_ELECT_OUT);
//station->storageNumIn = fields.getFloat(DMStatStation::STORAGE_NUM); //station->storageNumIn = fields.getFloat(DMStatStation::STORAGE_NUM);
//station->storageNumOut = fields.getFloat(DMStatStation::STORAGE_NUM); //station->storageNumOut = fields.getFloat(DMStatStation::STORAGE_NUM);
station->storageNumErr = fields.get<int>(DMStatStation::STORAGE_NUM_ERR); //station->storageNumErr = fields.get<int>(DMStatStation::STORAGE_NUM_ERR);
//station->solarGen = fields.get<double>(DMStatStation::SOLAR_ELECT_GEN);
station->solarGen = fields.get<double>(DMStatStation::SOLAR_ELECT_GEN); //station->solarGrid = fields.get<double>(DMStatStation::SOLAR_ELECT_GRID);
station->solarGrid = fields.get<double>(DMStatStation::SOLAR_ELECT_GRID); //station->solarNumErr = fields.get<int>(DMStatStation::SOLAR_NUM_ERR);
station->solarNumErr = fields.get<int>(DMStatStation::SOLAR_NUM_ERR); //station->chargeElect = fields.get<double>(DMStatStation::CHARGE_ELECT);
//station->chargeNum = fields.get<int>(DMStatStation::CHARGE_NUM);
station->chargeElect = fields.get<double>(DMStatStation::CHARGE_ELECT); //station->chargeNumErr = fields.get<int>(DMStatStation::CHARGE_NUM_ERR);
station->chargeNum = fields.get<int>(DMStatStation::CHARGE_NUM);
station->chargeNumErr = fields.get<int>(DMStatStation::CHARGE_NUM_ERR);
} }
else else
{ {
@@ -216,30 +214,38 @@ bool AppData::initFromDB()
} }
} }
{ // 初始化场站设备的历史监测数据 { // 初始化场站设备的历史监测数据(当天)
vector<Fields> result; vector<Fields> result;
DAO::queryRuntimeData(dao, Utils::dateStr(), result); DAO::queryRuntimeDataHistory(dao, Utils::dateStr(), result);
for (auto& item : result) for (auto& item : result)
{ {
int stationId = item.get<int>("station_id"); int stationId = item.get<int>("station_id");
int deviceId = item.get<int>("device_id"); int deviceId = item.get<int>("device_id");
int datatype = item.get<int>("datatype");
auto device = this->getDevice(stationId, deviceId); auto device = this->getDevice(stationId, deviceId);
if (device) if (device)
{ {
int datatype = item.get<int>("datatype");
std::string value = item.value("value"); std::string value = item.value("value");
std::vector<float> vd;
njson json; JSON::parseArray(value, vd);
if (JSON::parse(value, json)) device->setCache(datatype, vd);
{ }
std::vector<double> vecVal(json.size()); }
for (int i=0; i<json.size(); ++i) }
{ { // 初始化预测数据源的历史数据(当天)
vecVal[i] = JSON::get<double>(json[i]); vector<Fields> result;
} DAO::queryPredictHistory(dao, Utils::dateStr(), result);
device->setCache(datatype, vecVal); for (auto& item : result)
} {
int stationId = item.get<int>("station_id");
int datatype = item.get<int>("datatype");
auto station = this->getStation(stationId);
if (station)
{
std::string value = item.value("value");
std::vector<float> vd;
JSON::parseArray(value, vd);
station->setCache(datatype, vd);
} }
} }
} }

View File

@@ -98,12 +98,13 @@ void Application::runThreadMain()
} }
static TimeTick ttMqttPolling; // 召测 static TimeTick ttMqttPolling; // 召测
if (!Config::option.mqtt.host.empty() && ttMqttPolling.elapse(10)) int mqttInterval = Config::option.mqtt.interval;
if (!Config::option.mqtt.host.empty() && mqttInterval > 0 && ttMqttPolling.elapse(10))
{ {
for (auto& item : appdata.mapStation) for (auto& item : appdata.mapStation)
{ {
auto& station = item.second; auto& station = item.second;
if (Utils::time() - station->getPollingTS() > Config::option.mqtt.interval) if (Utils::time() - station->getPollingTS() > mqttInterval)
{ {
item.second->polling(); item.second->polling();
} }

View File

@@ -187,22 +187,9 @@ void Device::getCachePower(std::vector<std::string>& vec)
} }
} }
int64_t GetCurrentTimePos(int step) void Device::setCache(int datatype, std::vector<float>& vd)
{ {
auto tp = chrono::system_clock::now(); std::map<int, float>* mapptr = NULL;
int64_t tTime = chrono::time_point_cast<chrono::seconds>(tp).time_since_epoch().count();
std::time_t t = chrono::system_clock::to_time_t(tp);
std::tm* tmlocal = localtime(&t);
tmlocal->tm_hour = 0;
tmlocal->tm_min = 0;
tmlocal->tm_sec = 0;
int64_t tDate = chrono::time_point_cast<chrono::seconds>(chrono::system_clock::from_time_t(mktime(tmlocal))).time_since_epoch().count();
return (tTime - tDate) / step;
}
void Device::setCache(int datatype, std::vector<double>& vec)
{
std::map<int, double>* mapptr = NULL;
if (datatype == 1) { mapptr = &mapCacheVoltage; } if (datatype == 1) { mapptr = &mapCacheVoltage; }
else if (datatype == 2) { mapptr = &mapCacheCurrent; } else if (datatype == 2) { mapptr = &mapCacheCurrent; }
else if (datatype == 3) { mapptr = &mapCachePower; } else if (datatype == 3) { mapptr = &mapCachePower; }
@@ -211,12 +198,12 @@ void Device::setCache(int datatype, std::vector<double>& vec)
{ {
const int step = 600; const int step = 600;
const int N = 86400/step; const int N = 86400/step;
int64_t tsSeconds = Utils::timeDaySeconds();
int n = GetCurrentTimePos(step); int npos = tsSeconds / step;
for (int i = 0; i<N; ++i) for (int i = 0; i<N; ++i)
{ {
if (i < vec.size()) { (*mapptr)[i] = vec[i]; } if (i < vd.size()) { (*mapptr)[i] = vd[i]; }
else if (i <= n) { (*mapptr)[i] = 0; } else if (i <= npos) { (*mapptr)[i] = 0; }
} }
} }
} }
@@ -402,10 +389,10 @@ void Device::getRuntimeParams(std::vector<std::pair<std::string, std::string>>&
if (v == "0") v = "并网"; if (v == "0") v = "并网";
else if (v == "1") v = "离网"; else if (v == "1") v = "离网";
} }
if (item.addr == "0x1008") // 模块状态 R uint16 1开机0机 0x1008 if (item.addr == "0x1006") // 启停状态 R uint16 1开机0机 0x1008
{ {
if (v == "0") v = "开机"; if (v == "1") v = "开机";
else if (v == "1") v = ""; else if (v == "0") v = "";
} }
} }
else if (type == int(EDeviceType::PCS)) else if (type == int(EDeviceType::PCS))
@@ -466,7 +453,7 @@ void Device::setBCUUnit(std::string k, int pos, int v, int count)
if (k == "0x0056") { bcuUnit[0] = float(v) * 0.1f; } if (k == "0x0056") { bcuUnit[0] = float(v) * 0.1f; }
else if (k == "0x043E") { bcuUnit[1] = float(v) * 0.1f; } else if (k == "0x043E") { bcuUnit[1] = float(v) * 0.1f; }
else if (k == "0x0826") { bcuUnit[2] = float(v) * 0.001f; } else if (k == "0x0826") { bcuUnit[2] = float(v) * 0.001f; }
else if (k == "0x0C0E") { bcuUnit[3] = float(v); } // * 0.01f else if (k == "0x0C0E") { bcuUnit[3] = float(v) * 0.01f; } // * 0.01f
else if (k == "0x0FF6") { bcuUnit[4] = float(v); } else if (k == "0x0FF6") { bcuUnit[4] = float(v); }
} }
} }

View File

@@ -47,7 +47,7 @@ public:
void getCachePower(std::vector<std::string>& vec); void getCachePower(std::vector<std::string>& vec);
// int datatype: 1: 电压2电流3功率 // int datatype: 1: 电压2电流3功率
void setCache(int datatype, std::vector<double>& vec); void setCache(int datatype, std::vector<float>& vec);
bool cache(int npos); bool cache(int npos);
void storeDB(int npos); void storeDB(int npos);
@@ -87,9 +87,9 @@ public:
std::shared_ptr<CommEntity> commEntity; std::shared_ptr<CommEntity> commEntity;
int64_t tsDataDate {}; int64_t tsDataDate {};
std::map<int, double> mapCacheVoltage; std::map<int, float> mapCacheVoltage;
std::map<int, double> mapCacheCurrent; std::map<int, float> mapCacheCurrent;
std::map<int, double> mapCachePower; std::map<int, float> mapCachePower;
std::map<std::string, std::string> mapParams; std::map<std::string, std::string> mapParams;
std::map<std::string, DeviceParamAddr*> mapMyParams; std::map<std::string, DeviceParamAddr*> mapMyParams;

View File

@@ -203,6 +203,19 @@ void Station::setGarewayWorkMode()
mqttCli->publish("Gateway_YT", text); mqttCli->publish("Gateway_YT", text);
} }
string Station::getGatewayMode()
{
// 0手动1峰谷套利2增网配容3应急供电4并网保电5自定时段
if (workModeGateway == 0) { return "手动"; }
else if (workModeGateway == 1) { return "峰谷套利"; }
else if (workModeGateway == 2) { return "增网配容"; }
else if (workModeGateway == 3) { return "应急供电"; }
else if (workModeGateway == 4) { return "并网保电"; }
else if (workModeGateway == 5) { return "自定时段"; }
else { return "--"; };
}
void Station::checkDevice() void Station::checkDevice()
{ {
for (auto& item: mapDevice) for (auto& item: mapDevice)
@@ -331,6 +344,7 @@ void Station::readCoolingData(int deviceNo, string addr, int val)
void Station::readGatewayMode(int mode) void Station::readGatewayMode(int mode)
{ {
this->workModeGateway = mode;
if (mode != this->workMode) if (mode != this->workMode)
{ {
//this->setGarewayWorkMode(); //this->setGarewayWorkMode();
@@ -363,20 +377,61 @@ void Station::readGatewayStatus(int cdzStatus, int emuStatus)
} }
} }
static std::string MapValueToJson(int npos, std::map<int, double>& mapV) static std::string MapValueToJson(int npos, std::map<int, float>& mapV)
{ {
njson jsonarray = njson::array(); njson jsonarray = njson::array();
for (int i = 0; i<=npos; i++) for (int i = 0; i<=npos; i++)
{ {
jsonarray.push_back(mapV[i]); jsonarray.push_back(int(mapV[i]));
} }
return jsonarray.dump(); return jsonarray.dump();
} }
void Station::setCache(int datatype, std::vector<float>& vd)
{
std::map<int, float>* mapptr = NULL;
if (datatype == 1) { mapptr = &mapCacheElectIn; }
else if (datatype == 2) { mapptr = &mapCacheElectOut; }
else if (datatype == 3) { mapptr = &mapCacheElectCharger; }
if (mapptr)
{
const int step = 600;
const int N = 86400/step;
int64_t tsSeconds = Utils::timeDaySeconds();
int npos = tsSeconds / step;
for (int i = 0; i<N; ++i)
{
if (i < vd.size()) { (*mapptr)[i] = vd[i]; }
else if (i <= npos) { (*mapptr)[i] = 0; }
}
}
}
void Station::cache()
{
int64_t tDaySeconds = Utils::timeDaySeconds();
int npos = tDaySeconds / 600;
int offset = tDaySeconds % 600;
bool save = false;
if (offset >= (600-180) && npos + 1 < 144)
{
npos += 1;
save = true;
}
else if (offset <= 180 && posCache < npos)
{
save = true;
posCache = npos;
}
if (save)
{
mapCacheElectIn[npos] = Utils::random(100, 800); // dayElectIn
mapCacheElectOut[npos] = Utils::random(100, 800); // dayElectOut
mapCacheElectCharger[npos] = Utils::random(100, 800); // 暂无数据源
}
}
void Station::writeStatistic() void Station::writeStatistic()
{ {
auto dao = DaoEntity::create("history_day"); auto dao = DaoEntity::create("history_day");
std::string dt = Utils::dateStr(); std::string dt = Utils::dateStr();
int64_t tTime = Utils::time(); int64_t tTime = Utils::time();
int64_t tDate = Utils::date(); int64_t tDate = Utils::date();
@@ -386,7 +441,7 @@ void Station::writeStatistic()
for (auto iter = mapDevice.begin(); iter!=mapDevice.end(); ++iter) for (auto iter = mapDevice.begin(); iter!=mapDevice.end(); ++iter)
{ {
auto device = iter->second; auto device = iter->second;
if (device->cache(npos) && device->type == int(EDeviceType::BMS)) if (device->cache(npos))
{ {
Fields fields; Fields fields;
fields.set("dt", dt); fields.set("dt", dt);
@@ -407,7 +462,7 @@ void Station::writeStatistic()
} }
} }
if (statData.ts != 0) if (statData.ts > 0)
{ {
Fields fields; Fields fields;
fields.set("dt", Utils::dateStr(statData.ts)); fields.set("dt", Utils::dateStr(statData.ts));
@@ -437,15 +492,14 @@ void Station::writeStatistic()
}; };
dao->duplicateUpdate(fields, vecKeys); dao->duplicateUpdate(fields, vecKeys);
{ { // stat_day
Fields fields; Fields fields;
fields.set("dt", Utils::dateStr(statData.ts)); fields.set("dt", Utils::dateStr(statData.ts));
fields.set("station_id", this->stationId); fields.set("station_id", this->stationId);
fields.set("device_id", 0);
fields.set("storage_elect_in", statData.dayElectIn); fields.set("storage_elect_in", statData.dayElectIn);
fields.set("storage_elect_out", statData.dayElectOut); fields.set("storage_elect_out", statData.dayElectOut);
fields.set("income_elect", statData.dayIncome); fields.set("income_elect", statData.dayIncome);
DAO::insertStatStation(dao, fields); DAO::insertStatDay(dao, fields);
} }
{ {
Fields fields; Fields fields;
@@ -458,4 +512,25 @@ void Station::writeStatistic()
} }
} }
{
// 预测数据源记录
dao->setTableName("predict_day");
Fields fields;
fields.set("dt", dt);
fields.set("station_id", stationId);
fields.set("datatype", 1); // 1储能充电2储能放电3充电桩充电4发电
fields.set("value", MapValueToJson(npos, mapCacheElectIn));
dao->duplicateUpdate(fields, {"value"});
fields.set("datatype", 2); // 1储能充电2储能放电3充电桩充电4发电
fields.set("value", MapValueToJson(npos, mapCacheElectOut));
dao->duplicateUpdate(fields, {"value"});
fields.set("datatype", 3); // 1储能充电2储能放电3充电桩充电4发电
fields.set("value", MapValueToJson(npos, mapCacheElectCharger));
dao->duplicateUpdate(fields, {"value"});
}
} }

View File

@@ -115,6 +115,8 @@ public:
void setGarewayWorkMode(); void setGarewayWorkMode();
void checkDevice(); void checkDevice();
string getGatewayMode();
void readAlert(std::shared_ptr<Device> device, std::string addr, int v, std::string text); void readAlert(std::shared_ptr<Device> device, std::string addr, int v, std::string text);
void readRuntimeData(int deviceNo, string addr, int val); void readRuntimeData(int deviceNo, string addr, int val);
void readTHData(int deviceNo, string addr, int val); void readTHData(int deviceNo, string addr, int val);
@@ -123,6 +125,10 @@ public:
void readGatewayMode(int mode); void readGatewayMode(int mode);
void readGatewayStatus(int cdzStatus, int emuStatus); void readGatewayStatus(int cdzStatus, int emuStatus);
void setCache(int datatype, std::vector<float>& vd);
void cache();
int posCache {0};
void writeStatistic(); void writeStatistic();
int posDayStat {0}; int posDayStat {0};
@@ -138,6 +144,7 @@ public:
bool isConnected {false}; bool isConnected {false};
int workMode {}; // 运行模式 int workMode {}; // 运行模式
int workModeGateway { -1 }; // 运行模式
int runPolicyId {}; // 运行策略 int runPolicyId {}; // 运行策略
/////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////
@@ -158,23 +165,19 @@ public:
/////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////
/// === 日统计 === /// === 日统计 ===
double storageIn {}; // 储能充电电量 //double storageIn {}; // 储能充电电量
double storageOut {}; // 储能放电电量 //double storageOut {}; // 储能放电电量
//int storageNumIn {}; // 储能充电次数
int storageNumIn {}; // 储能电次数 //int storageNumOut {}; // 储能电次数
int storageNumOut {}; // 储能放电次数 //int storageNumErr {}; // 储能故障次数
int storageNumErr {}; // 储能故障次数 //double solarGen {}; // 光伏发电电量
//double solarGrid {}; // 光伏入网电量
double solarGen {}; // 光伏发电电量 //int solarNumErr {}; // 光伏故障次数
double solarGrid {}; // 光伏入网电量 //double chargeElect {}; // 充电设备充电电量
int solarNumErr {}; // 光伏故障次数 //int chargeNum {}; // 充电设备充电次数
//int chargeNumErr {}; // 充电设备故障次数
double chargeElect {}; // 充电设备充电电量 //double incomeElect {}; // 发电收益金额
int chargeNum {}; // 充电设备充电次数 //double incomeCharge {}; // 充电收益金额
int chargeNumErr {}; // 充电设备故障次数
double incomeElect {}; // 发电收益金额
double incomeCharge {}; // 充电收益金额
/////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////
/// === 环境 === /// === 环境 ===
@@ -200,7 +203,6 @@ public:
std::unordered_map<int, std::shared_ptr<Device>> mapDevice; std::unordered_map<int, std::shared_ptr<Device>> mapDevice;
std::map<int, std::map<std::string, std::shared_ptr<Device>>> mapDeviceGroup; std::map<int, std::map<std::string, std::shared_ptr<Device>>> mapDeviceGroup;
// 温湿度信息 // 温湿度信息
std::map<int, TempHumUnit> mapTempHumUnit; std::map<int, TempHumUnit> mapTempHumUnit;
// 消防4.0信息 // 消防4.0信息
@@ -269,4 +271,14 @@ public:
int emuStatus {-1}; int emuStatus {-1};
std::map<std::string, int64_t> mapAlertCache; std::map<std::string, int64_t> mapAlertCache;
///////////////////////////////////////////////////////////////////////////////////////////////
/// 说明从电表中读取对应数据每间隔600秒10分钟缓存一个点位存储到数据库用于绘制一天的电曲线
// 储能充电量缓存key位置索引0->144val电量
std::map<int, float> mapCacheElectIn;
// 储能放电量缓存key位置索引0->144val电量
std::map<int, float> mapCacheElectOut;
// 充电桩充电量缓存key位置索引0->144val电量
std::map<int, float> mapCacheElectCharger;
}; };

View File

@@ -64,15 +64,6 @@ std::string JSON::readStr(njson& json, std::string k)
return v; return v;
} }
void JSON::parse(std::string jsonstr, std::vector<std::string>& vd)
{
njson jsonroot;
if (JSON::parse(jsonstr, jsonroot))
{
vd = jsonroot.get<std::vector<std::string>>();
}
}
std::string JSON::toStr(njson& json) std::string JSON::toStr(njson& json)
{ {
std::string v; std::string v;
@@ -92,4 +83,6 @@ std::string JSON::toStr(njson& json)
break; break;
} }
return v; return v;
} }

View File

@@ -90,10 +90,19 @@ public:
} }
static std::string readStr(njson& json, std::string k); static std::string readStr(njson& json, std::string k);
static void parse(std::string jsonstr, std::vector<std::string>& vd);
static std::string toStr(njson& json); static std::string toStr(njson& json);
template <typename T>
static void parseArray(std::string jsonstr, std::vector<T>& vd)
{
njson json;
if (JSON::parse(jsonstr, json))
{
try { vd = json.get<std::vector<T>>(); }
catch (const nlohmann::detail::exception& e) { Spdlogger::info("JSON read error: err={}, json={}", e.what(), json.dump()); }
}
}
}; };

View File

@@ -400,6 +400,24 @@ string Utils::timeStrMS(std::string fmt /*= "%Y-%m-%dT%H:%M:%S"*/)
// return true; // return true;
//} //}
int64_t Utils::timeDaySeconds()
{
// 获取当前时间
auto tpNow = chrono::system_clock::now();
// 转换为time_t以便使用C库函数
std::time_t tsNow = std::chrono::system_clock::to_time_t(tpNow);
std::tm* tmLocal = std::localtime(&tsNow);
// 设置为今日0点
tmLocal->tm_hour = 0;
tmLocal->tm_min = 0;
tmLocal->tm_sec = 0;
// 转换回时间戳
std::time_t tsDay = std::mktime(tmLocal);
return tsNow - tsDay;
}
void Utils::sleep_ms(int ms) void Utils::sleep_ms(int ms)
{ {
// 计算时间间隔: // 计算时间间隔:

View File

@@ -60,6 +60,8 @@ public:
//static string time_to_string(int64_t dt, std::string fmt="%Y-%m-%d %H:%M:%S"); //static string time_to_string(int64_t dt, std::string fmt="%Y-%m-%d %H:%M:%S");
//static bool time_string_to_tm(string dt, std::tm& t); //static bool time_string_to_tm(string dt, std::tm& t);
static int64_t timeDaySeconds();
std::string duration_str(int64_t t) std::string duration_str(int64_t t)
{ {
auto h = t / 3600; auto h = t / 3600;

View File

@@ -440,8 +440,8 @@ Errcode DAO::queryDeviceList(std::shared_ptr<DaoEntity> dao, vector<Fields>& res
// 分页查询设备信息列表 // 分页查询设备信息列表
Errcode DAO::queryDeviceList(PageInfo& pageInfo, vector<Fields>& result) Errcode DAO::queryDeviceList(PageInfo& pageInfo, vector<Fields>& result)
{ {
std::string sqlFrom = "FROM " + DMDevice::TABLENAME; std::string sqlFrom = "FROM device d LEFT JOIN station s ON d.station_id =s.station_id";
return QueryPagination("*", sqlFrom, pageInfo, result); return QueryPagination("d.*, s.name station_name", sqlFrom, pageInfo, result);
} }
// 查询设备类型定义 // 查询设备类型定义
@@ -637,7 +637,7 @@ Errcode DAO::queryPolicyTypeDef(std::shared_ptr<DaoEntity> dao, vector<Fields>&
return DAO::exec(dao, sql, result); return DAO::exec(dao, sql, result);
} }
Errcode DAO::insertStatStation(std::shared_ptr<DaoEntity> dao, Fields& fields) Errcode DAO::insertStatDay(std::shared_ptr<DaoEntity> dao, Fields& fields)
{ {
// 根据主键dt、station_id、category写入或更新数据 // 根据主键dt、station_id、category写入或更新数据
if (!dao) { dao = DaoEntity::create("stat_day"); } if (!dao) { dao = DaoEntity::create("stat_day"); }
@@ -686,10 +686,18 @@ Errcode DAO::queryRuntimeData(std::shared_ptr<DaoEntity> dao, std::string dt, in
return Errcode(ret); return Errcode(ret);
} }
Errcode DAO::queryRuntimeData(std::shared_ptr<DaoEntity> dao, std::string dt, vector<Fields>& result) Errcode DAO::queryRuntimeDataHistory(std::shared_ptr<DaoEntity> dao, std::string dt, vector<Fields>& result)
{ {
if (!dao) { dao = DaoEntity::create("history_day"); } if (!dao) { dao = DaoEntity::create(""); }
std::string sql = "SELECT * FROM history_day WHERE dt='" + dt + "';"; std::string sql = "SELECT * FROM history_day WHERE dt='" + dt + "';";
int ret = dao->exec(sql, result); int ret = dao->exec(sql, result);
return Errcode(ret); return Errcode(ret);
}
Errcode DAO::queryPredictHistory(std::shared_ptr<DaoEntity> dao, std::string dt, vector<Fields>& result)
{
if (!dao) { dao = DaoEntity::create(""); }
std::string sql = "SELECT * FROM predict_day WHERE dt='" + dt + "';";
int ret = dao->exec(sql, result);
return Errcode(ret);
} }

View File

@@ -122,12 +122,14 @@ public:
static Errcode queryPolicyTypeDef(std::shared_ptr<DaoEntity> dao, vector<Fields>& result); static Errcode queryPolicyTypeDef(std::shared_ptr<DaoEntity> dao, vector<Fields>& result);
static Errcode insertStatStation(std::shared_ptr<DaoEntity> dao, Fields& fields); static Errcode insertStatDay(std::shared_ptr<DaoEntity> dao, Fields& fields);
/////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////
// === 设备历史监测数据管理 === // === 设备历史监测数据管理 ===
static Errcode insertRuntimeData(std::shared_ptr<DaoEntity> dao, Fields& fields); static Errcode insertRuntimeData(std::shared_ptr<DaoEntity> dao, Fields& fields);
static Errcode queryRuntimeData(std::shared_ptr<DaoEntity> dao, std::string dt, int stationId, int deviceId, vector<Fields>& result); static Errcode queryRuntimeData(std::shared_ptr<DaoEntity> dao, std::string dt, int stationId, int deviceId, vector<Fields>& result);
static Errcode queryRuntimeData(std::shared_ptr<DaoEntity> dao, std::string dt, vector<Fields>& result); static Errcode queryRuntimeDataHistory(std::shared_ptr<DaoEntity> dao, std::string dt, vector<Fields>& result);
static Errcode queryPredictHistory(std::shared_ptr<DaoEntity> dao, std::string dt, vector<Fields>& result);
}; };

View File

@@ -101,6 +101,7 @@ int MysqlClient::exec(std::string sql)
int MysqlClient::exec(std::string sql, vector<Fields>& result) int MysqlClient::exec(std::string sql, vector<Fields>& result)
{ {
if (!mysql_) { return 1; }
result.clear(); result.clear();
int err = MysqlQuery(mysql_, sql); int err = MysqlQuery(mysql_, sql);
if (err != 0) if (err != 0)

View File

@@ -657,6 +657,16 @@ Errcode HttpEntity::updateStation(const httplib::Request& req, njson& json, std:
} }
} }
} }
if (params.contains("station_id") && params.contains("work_mode"))
{
int stationId = params.get<int>("station_id");
int workmode = params.get<int>("work_mode");
auto station = Application::data().getStation(stationId);
if (station)
{
station->setGarewayWorkMode();
}
}
return err; return err;
}; };
@@ -702,6 +712,9 @@ Errcode HttpEntity::queryStationOverview(const httplib::Request& req, njson& jso
return Errcode(ret); return Errcode(ret);
} }
njson jsonStorage = njson::parse(R"({"category":1, "gateway":0, "count":0, "power":0.0})"); njson jsonStorage = njson::parse(R"({"category":1, "gateway":0, "count":0, "power":0.0})");
auto station = Application::data().getStation(Utils::toInt(stationId));
jsonStorage["workmode"] = station ? station->getGatewayMode() : "--";
njson jsonCharge = njson::parse(R"({"category":2, "count":0, "power":0.0})"); njson jsonCharge = njson::parse(R"({"category":2, "count":0, "power":0.0})");
njson jsonSolar = njson::parse(R"({"category":3, "count":0, "power":0.0})"); njson jsonSolar = njson::parse(R"({"category":3, "count":0, "power":0.0})");
njson jsonSecurity = njson::parse(R"({"category":4, "count":0, "power":0.0})"); njson jsonSecurity = njson::parse(R"({"category":4, "count":0, "power":0.0})");
@@ -1252,6 +1265,13 @@ Errcode HttpEntity::queryStatDayList(const httplib::Request& req, njson& json, s
if (!startDate.empty() && !endDate.empty()) if (!startDate.empty() && !endDate.empty())
{ {
std::map<std::string, Fields*> mapTemp;
for (auto& item: result)
{
auto& dt = item.value("dt");
mapTemp[dt] = &item;
}
int64_t t0 = Utils::time(startDate + " 00:00:00"); int64_t t0 = Utils::time(startDate + " 00:00:00");
int64_t t1 = Utils::time(endDate + " 00:00:00"); int64_t t1 = Utils::time(endDate + " 00:00:00");
int i = 0; int i = 0;
@@ -1262,11 +1282,9 @@ Errcode HttpEntity::queryStatDayList(const httplib::Request& req, njson& json, s
njson jsonrow; njson jsonrow;
std::string dt = Utils::dateStr(t); std::string dt = Utils::dateStr(t);
Fields* fields = NULL; Fields* fields = NULL;
if (i<result.size() && result[i].value("dt") == dt) auto iter = mapTemp.find(dt);
{ if (iter != mapTemp.end()) { fields = iter->second; }
fields = &(result[i]);
i++;
}
jsonrow["dt"] = dt.substr(5); jsonrow["dt"] = dt.substr(5);
jsonrow["storage_elect_in"] = fields ? fields->value("storage_elect_in") : "0"; jsonrow["storage_elect_in"] = fields ? fields->value("storage_elect_in") : "0";
jsonrow["storage_elect_out"] = fields ? fields->value("storage_elect_out") : "0"; jsonrow["storage_elect_out"] = fields ? fields->value("storage_elect_out") : "0";

View File

@@ -25,8 +25,7 @@ bool MqttClient::load(std::string filename)
std::map<std::string, TopicInfo> MqttClient::s_mapTopicInfo; std::map<std::string, TopicInfo> MqttClient::s_mapTopicInfo;
int MqttClient::init(string addr, string clientId, string username, string password) int MqttClient::init(string addr, string clientId, string username, string password)
{ { if (addr.empty())
if (addr.empty())
{ {
return MQTTASYNC_FAILURE; return MQTTASYNC_FAILURE;
} }
@@ -43,7 +42,7 @@ int MqttClient::init(string addr, string clientId, string username, string passw
int rc {0}; int rc {0};
// "tcp://localhost:1883" // "tcp://localhost:1883"
std::string str = "ESS-" + std::to_string(Utils::random(1000, 9999)) + "-" +clientId; std::string str = "ESS-" + clientId + "-" + std::to_string(Utils::time());
rc = MQTTAsync_create(&client, addr.c_str(), str.c_str(), MQTTCLIENT_PERSISTENCE_NONE, NULL); rc = MQTTAsync_create(&client, addr.c_str(), str.c_str(), MQTTCLIENT_PERSISTENCE_NONE, NULL);
if (rc != MQTTASYNC_SUCCESS) if (rc != MQTTASYNC_SUCCESS)
{ {
@@ -303,7 +302,10 @@ int MqttClient::onMessageArrived(char* topic, int topicLen, MQTTAsync_message* m
{ {
std::string key = item.key(); std::string key = item.key();
auto& val = item.value(); auto& val = item.value();
if (key == "40001") { station->readGatewayMode(val.get<int>()); } if (key == "40001")
{
station->readGatewayMode(val.get<int>());
}
//else if (key == "40002") { spdlog::info("[mqtt] read register addr: [{}]={}, {}", key, val.dump(), "峰谷时间段"); } //else if (key == "40002") { spdlog::info("[mqtt] read register addr: [{}]={}, {}", key, val.dump(), "峰谷时间段"); }
//else if (key == "40021") { spdlog::info("[mqtt] read register addr: [{}]={}, {}", key, val.dump(), "自定时间段"); } //else if (key == "40021") { spdlog::info("[mqtt] read register addr: [{}]={}, {}", key, val.dump(), "自定时间段"); }
//else if (key == "40038") { spdlog::info("[mqtt] read register addr: [{}]={}, {}", key, val.dump(), "其他参数"); } //else if (key == "40038") { spdlog::info("[mqtt] read register addr: [{}]={}, {}", key, val.dump(), "其他参数"); }
@@ -314,7 +316,7 @@ int MqttClient::onMessageArrived(char* topic, int topicLen, MQTTAsync_message* m
int cdzStatus = -1; int cdzStatus = -1;
int emuStatus = -1; int emuStatus = -1;
JSON::read(json, "cdz", cdzStatus); JSON::read(json, "cdz", cdzStatus);
JSON::read(json, "emu", cdzStatus); JSON::read(json, "emu", emuStatus);
station->readGatewayStatus(cdzStatus, emuStatus); station->readGatewayStatus(cdzStatus, emuStatus);
} }
else else
@@ -391,7 +393,11 @@ void MqttClient::ParseArrivedMessage(njson& json, string command, std::shared_pt
auto addr = iter->first; auto addr = iter->first;
auto& regUnit = iter->second; auto& regUnit = iter->second;
spdlog::debug("[mqtt] read [{}]={}, {}{}", addr, val, regUnit.name, regUnit.remark); spdlog::debug("[mqtt] read [{}]={}, {}{}", addr, val, regUnit.name, regUnit.remark);
if (command == "BCU_YC" || command == "BCU_YX")
{
//spdlog::info("[mqtt] read [{}]={}, {}{}", addr, val, regUnit.name, regUnit.remark);
}
if (regUnit.alert && val > 0) if (regUnit.alert && val > 0)
{ {
station->readAlert(device, addr, val, "[" + command + "]" + regUnit.name + "(" + addr + ")"); station->readAlert(device, addr, val, "[" + command + "]" + regUnit.name + "(" + addr + ")");

View File

@@ -1,35 +1,16 @@
#include "MainApp.h" #include "MainApp.h"
#include "common/Spdlogger.h" #include "common/Spdlogger.h"
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QWidget>
#include <QPalette>
#include <QGroupBox>
#include <QTableWidget>
#include <QHeaderView>
#include "app/Config.h" #include "app/Config.h"
#include "common/Utils.h" #include "common/Utils.h"
#include "QUI.h" #include "MyQUI.h"
#include "app/Application.h" #include "app/Application.h"
#include "app/AppData.h" #include "app/AppData.h"
#include "app/Station.h" #include "app/Station.h"
#include "protocol/MqttEntity.h" #include "protocol/MqttEntity.h"
static const std::string QSS_BTN_MENU =
"QPushButton {background:rgba(50,128,218,200);color:white;border-radius:5px;border:2px solid rgb(10,120,215);font:bold 18px;}"
"QPushButton:hover {background-color:rgb(32,164,128);}"
"QPushButton:pressed {border-width:3px 0 0 3px;background-color:rgb(1,32,54);border-style:inset;}"
"QPushButton:disabled {color:rgb(150,150,150);}";
static const std::string QSS_LINE =
"QLineEdit { background-color: rgb(14, 49, 66); color: #ffffff; border: 1px solid gray; border-radius: 5px; font: bold 13px; }";
MainApp::MainApp() MainApp::MainApp()
{ {
@@ -101,168 +82,8 @@ public:
QGridLayout layout; QGridLayout layout;
}; };
void PairLine(QWidget* parent, int x, int y, string k, string v)
{
auto key = new QLabel(parent);
key->setText(k.c_str());
key->setGeometry(x, y, 80, 26);
auto value = new QLineEdit(parent);
value->setText(v.c_str());
value->setGeometry(x+80, y, 260, 26);
value->setStyleSheet(QSS_LINE.c_str());
value->setReadOnly(true);
}
class MyWorkspace : public QWidget
{
public:
MyWorkspace(QWidget* parent) : QWidget(parent)
{
this->setObjectName("workspace");
this->setStyleSheet("#workspace { background-color:rgba(100,100,100,50); }");
int x=10, y=10;
{
this->groupSys = UI::GroupBox(this, x, y, 1190, 120, "系统");
auto pw = groupSys.get();
}
{
x = 10, y += 130;
this->groupHttp = UI::GroupBox(this, x, y, 390, 120, "HTTP");
auto pw = groupHttp.get();
PairLine(pw, 20, 20, "服务类型: ", "服务端");
PairLine(pw, 20, 50, "服务端口: ", Utils::toStr(Config::option.http.port));
PairLine(pw, 20, 80, "服务状态: ", "运行");
}
{
x += 400;
this->groupMqtt = UI::GroupBox(this, x, y, 390, 120, "MQTT");
auto pw = groupMqtt.get();
PairLine(pw, 20, 20, "服务类型: ", "客户端");
PairLine(pw, 20, 50, "服务地址: ", Config::option.mqtt.host);
PairLine(pw, 20, 80, "服务状态: ", "---");
}
{
x += 400;
this->groupDB = UI::GroupBox(this, x, y, 390, 120, "数据库");
auto pw = groupDB.get();
PairLine(pw, 20, 20, "数据库名: ", Config::option.database.dbname);
PairLine(pw, 20, 50, "主机地址: ", Config::option.database.host);
PairLine(pw, 20, 80, "用 户 名: ", Config::option.database.user);
const std::string QSS_TABLE = // 表格整体样式
"QTableWidget {"
" background-color: transparent;" // 背景色
" gridline-color: #C0C0C0;" // 网格线颜色
" border: 1px solid gray;" // 边框
" color: white;" // 文字颜色
"}"
// 表头样式
"QHeaderView::section {"
" background-color: #404040;" // 表头背景
" padding: 4px;" // 内边距
" border: 1px solid #505050;" // 边框
" min-height: 25px;" // 最小高度
"}"
// 单元格样式
"QTableWidget::item {"
" padding-left: 5px;"
" border-bottom: 1px solid gray;" // 底部边框
"}"
// 选中状态
"QTableWidget::item:selected {"
" background-color: #B8D6FF;" // 选中背景色
" color: black;" // 选中文字颜色
"}";
table = std::make_shared<QTableWidget>(this);
table->setGeometry(10, y += 130, 1190, 300);
table->setStyleSheet(QSS_TABLE.c_str());
table->horizontalHeader()->setStretchLastSection(true); // 最后一列占满
table->verticalHeader()->setVisible(false); // 不显示垂直表头
table->setEditTriggers(QAbstractItemView::NoEditTriggers); // 单元格不可编辑
table->setSelectionMode(QAbstractItemView::SingleSelection); // 设置为单选模式
table->setSelectionBehavior(QAbstractItemView::SelectRows); // 设置为整行选中
QTableWidgetItem* headerItem;
QStringList headerText_Row, headerText_Col;
headerText_Row << "站ID" << "站名称" << "站编号" << "站状态" << "MQTT状态" << "召测(秒)" << "说明";
// 设置为水平表头
table->setColumnCount(headerText_Row.size());
table->setHorizontalHeaderLabels(headerText_Row);
}
textLog = std::make_shared<QTextEdit>(this);
textLog->setGeometry(10, y += 310, 1190, 280);
textLog->setStyleSheet("background-color: transparent; border: 1px solid gray; font-weight: 400;");
textLog->setReadOnly(true);
{
// 第二个参数是方法函数名称,即调用 QTextEdit的appeng函数
auto qtSink = std::make_shared<spdlog::sinks::qt_sink_mt>(textLog.get(), "append");
spdlog::default_logger()->sinks().push_back(qtSink);
}
{
//qtSink = std::make_shared<QtTextSink>(textLog.get());
//connect(qtSink.get(), &QtTextSink::appendText, textLog.get(), &QTextEdit::append);
}
}
void setTableCell(int row, int col, std::string text, std::string style="")
{
auto item = table->item(row, col);
if (!item)
{
item = new QTableWidgetItem();
table->setItem(row, col, item);
}
item->setText(text.c_str());
if (style == "OK") { item->setForeground(QBrush(Qt::green)); }
else if (style == "ERR") { item->setForeground(QBrush(Qt::red)); }
}
void onTimer()
{
auto& appdata = Application().data();
int rowNo = 0;
int tsNow = Utils::time();
for (auto& item : appdata.mapStation)
{
auto& station = item.second;
if (rowNo >= table->rowCount())
{
table->insertRow(rowNo);
}
bool isOpen = station->status > 0;
bool isConnected = station->mqttCli->isConnected;
setTableCell(rowNo, 0, std::to_string(station->stationId));
setTableCell(rowNo, 0, std::to_string(station->stationId));
setTableCell(rowNo, 1, station->name);
setTableCell(rowNo, 2, station->code);
setTableCell(rowNo, 3, isOpen ? "启用" : "未启用", isOpen ? "OK" : "ERR");
setTableCell(rowNo, 4, isConnected ? "连接成功" : "未连接", isConnected ? "OK" : "ERR");
int tsPolling = station->getPollingTS();
setTableCell(rowNo, 5, tsPolling > 0 ? std::to_string(tsNow - tsPolling) + "/" + std::to_string(Config::option.mqtt.interval) : "--");
rowNo++;
}
}
// 创建自定义sink
std::shared_ptr<QtTextSink> qtSink;
std::shared_ptr<QGroupBox> groupSys;
std::shared_ptr<QGroupBox> groupHttp;
std::shared_ptr<QGroupBox> groupMqtt;
std::shared_ptr<QGroupBox> groupDB;
std::shared_ptr<QTableWidget> table {};
std::shared_ptr<QTextEdit> textLog;
};
void MainApp::setMyLayout() void MainApp::setMyLayout()
{ {
@@ -284,9 +105,9 @@ void MainApp::setMyLayout()
menu->setSizePolicy(sizePolicy); menu->setSizePolicy(sizePolicy);
layout.main->addWidget(menu, 0, 0, 1, 1); layout.main->addWidget(menu, 0, 0, 1, 1);
ui.workspace = std::make_shared<MyWorkspace>(this); ui.wigetHome = std::make_shared<QWHome>(this);
ui.workspace->setSizePolicy(sizePolicy); ui.wigetHome->setSizePolicy(sizePolicy);
layout.main->addWidget(ui.workspace.get(), 0, 1, 1, 1); layout.main->addWidget(ui.wigetHome.get(), 0, 1, 1, 1);
// 设置列宽和行高 // 设置列宽和行高
layout.main->setColumnMinimumWidth(0, 200); // 设置第0列的最小宽度为100像素 layout.main->setColumnMinimumWidth(0, 200); // 设置第0列的最小宽度为100像素
@@ -303,5 +124,5 @@ void MainApp::setMyLayout()
void MainApp::onTimer() void MainApp::onTimer()
{ {
ui.workspace->onTimer(); ui.wigetHome->onTimer();
} }

View File

@@ -1,10 +1,9 @@
#include <QMainWindow> #include <QMainWindow>
#include <QLabel> #include <QLabel>
#include <QPushButton> #include <QPushButton>
#include <QHBoxLayout>
#include <QTableWidget>
#include <QTimer> #include <QTimer>
#include <QTextEdit>
#include <string> #include <string>
using namespace std; using namespace std;
@@ -14,73 +13,8 @@ using namespace std;
#include <QTextEdit> #include <QTextEdit>
#include <mutex> #include <mutex>
class QtTextSink : public QObject, public spdlog::sinks::base_sink<std::mutex> #include "widgets/QWHome.h"
{
Q_OBJECT
public:
// 构造函数接收一个 QTextEdit*,但用 QPointer 来包装它
explicit QtTextSink(QTextEdit* textEdit, QObject* parent = nullptr)
: QObject(parent), textEdit(textEdit) {
}
signals:
// 定义一个信号,用于在主线程中追加文本
void appendText(const QString& message);
protected:
// 重写 sink_it_ 方法,处理每条日志
void sink_it_(const spdlog::details::log_msg& msg) override {
if (textEdit.isNull()) {
// 如果 QTextEdit 已经被删除,则忽略这条日志
return;
}
spdlog::memory_buf_t formatted;
formatter_->format(msg, formatted);
QString logMessage = QString::fromStdString(fmt::to_string(formatted));
// 发射信号通过Qt的事件循环在主线程中安全地更新UI
emit appendText(logMessage);
}
void flush_() override {}
private:
QPointer<QTextEdit> textEdit; // 关键:使用 QPointer
};
class LabelPair
{
public:
LabelPair(QWidget* parent, int x, int y, int w, int h)
{
title.setParent(parent);
value.setParent(&title);
title.setGeometry(x, y, w, h);
value.setGeometry(80, 0, w-80, h);
title.show();
value.show();
}
void setTitle(std::string text)
{
title.setText(text.c_str());
}
void setValue(std::string text)
{
value.setText(text.c_str());
}
QLabel title;
QLabel value;
};
class MyWorkspace;
class MainApp : public QWidget class MainApp : public QWidget
{ {
@@ -97,7 +31,7 @@ private slots:
public: public:
struct { struct {
std::shared_ptr<LabelPair> weburl {}; std::shared_ptr<LabelPair> weburl {};
std::shared_ptr<MyWorkspace> workspace; std::shared_ptr<MyWidget> wigetHome;
} ui; } ui;
struct { struct {

35
src/qt/MyQUI.cpp Normal file
View File

@@ -0,0 +1,35 @@
#include "MyQUI.h"
static const std::string QSS_GROUP =
"QGroupBox { border: 1px solid gray; margin-top: 8px; border-radius: 5px;}"
"QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; left:10px; margin-left: 0px; padding:0 1px; }";
static const std::string QSS_BTN_MENU =
"QPushButton {background:rgba(50,128,218,200);color:white;border-radius:5px;border:2px solid rgb(10,120,215);font:bold 18px;}"
"QPushButton:hover {background-color:rgb(32,164,128);}"
"QPushButton:pressed {border-width:3px 0 0 3px;background-color:rgb(1,32,54);border-style:inset;}"
"QPushButton:disabled {color:rgb(150,150,150);}";
static const std::string QSS_LINE =
"QLineEdit { background-color: rgb(14, 49, 66); color: #ffffff; border: 1px solid gray; border-radius: 5px; font: bold 13px; }";
std::shared_ptr<QGroupBox> MyQUI::GroupBox(QWidget* parent, int x, int y, int w, int h, std::string title)
{
auto groupBox = std::make_shared<QGroupBox>(title.c_str(), parent);
groupBox->setGeometry(x, y, w, h);
groupBox->setStyleSheet(QSS_GROUP.c_str());
return groupBox;
}
void MyQUI::PairLine(QWidget* parent, int x, int y, string k, string v)
{
auto key = new QLabel(parent);
key->setText(k.c_str());
key->setGeometry(x, y, 80, 26);
auto value = new QLineEdit(parent);
value->setText(v.c_str());
value->setGeometry(x+80, y, 260, 26);
value->setStyleSheet(QSS_LINE.c_str());
value->setReadOnly(true);
}

76
src/qt/MyQUI.h Normal file
View File

@@ -0,0 +1,76 @@
#pragma once
#include <QGroupBox>
#include <QMainWindow>
#include <QtWebEngineWidgets/QWebEngineView>
#include <QSplashScreen>
#include <QLabel>
#include <QPushButton>
#include <QHBoxLayout>
#include <QTextEdit>
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QWidget>
#include <QPalette>
#include <QGroupBox>
#include <QTableWidget>
#include <QHeaderView>
#include <string>
using namespace std;
extern const std::string QSS_GROUP;
extern const std::string QSS_BTN_MENU;
extern const std::string QSS_LINE;
class LabelPair
{
public:
LabelPair(QWidget* parent, int x, int y, int w, int h)
{
title.setParent(parent);
value.setParent(&title);
title.setGeometry(x, y, w, h);
value.setGeometry(80, 0, w-80, h);
title.show();
value.show();
}
void setTitle(std::string text)
{
title.setText(text.c_str());
}
void setValue(std::string text)
{
value.setText(text.c_str());
}
QLabel title;
QLabel value;
};
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget* parent) : QWidget(parent) {}
virtual void onTimer() {};
};
class MyQUI
{
public:
static std::shared_ptr<QGroupBox> GroupBox(QWidget* parent, int x, int y, int w, int h, std::string title);
static void PairLine(QWidget* parent, int x, int y, string k, string v);
};

View File

@@ -1,14 +0,0 @@
#include "QUI.h"
static const std::string QSS_GROUP =
"QGroupBox { border: 1px solid gray; margin-top: 8px; border-radius: 5px;}"
"QGroupBox::title { subcontrol-origin: margin; subcontrol-position: top left; left:10px; margin-left: 0px; padding:0 1px; }";
std::shared_ptr<QGroupBox> UI::GroupBox(QWidget* parent, int x, int y, int w, int h, std::string title)
{
auto groupBox = std::make_shared<QGroupBox>(title.c_str(), parent);
groupBox->setGeometry(x, y, w, h);
groupBox->setStyleSheet(QSS_GROUP.c_str());
return groupBox;
}

View File

@@ -1,10 +0,0 @@
#pragma once
#include <QGroupBox>
class UI
{
public:
static std::shared_ptr<QGroupBox> GroupBox(QWidget* parent, int x, int y, int w, int h, std::string title);
};

161
src/qt/widgets/QWHome.cpp Normal file
View File

@@ -0,0 +1,161 @@
#include "QWHome.h"
#include "common/Spdlogger.h"
#include "app/Config.h"
#include "common/Utils.h"
#include "app/Application.h"
#include "app/AppData.h"
#include "app/Station.h"
#include "protocol/MqttEntity.h"
QWHome::QWHome(QWidget* parent) : MyWidget(parent)
{
this->setObjectName("workspace");
this->setStyleSheet("#workspace { background-color:rgba(100,100,100,50); }");
int x = 10, y = 10;
{
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");
auto pw = groupHttp.get();
MyQUI::PairLine(pw, 20, 20, "服务类型: ", "服务端");
MyQUI::PairLine(pw, 20, 50, "服务端口: ", Utils::toStr(Config::option.http.port));
MyQUI::PairLine(pw, 20, 80, "服务状态: ", "运行");
}
{
x += 400;
this->groupMqtt = MyQUI::GroupBox(this, x, y, 390, 120, "MQTT");
auto pw = groupMqtt.get();
MyQUI::PairLine(pw, 20, 20, "服务类型: ", "客户端");
MyQUI::PairLine(pw, 20, 50, "服务地址: ", Config::option.mqtt.host);
MyQUI::PairLine(pw, 20, 80, "服务状态: ", "---");
}
{
x += 400;
this->groupDB = MyQUI::GroupBox(this, x, y, 390, 120, "数据库");
auto pw = groupDB.get();
MyQUI::PairLine(pw, 20, 20, "数据库名: ", Config::option.database.dbname);
MyQUI::PairLine(pw, 20, 50, "主机地址: ", Config::option.database.host);
MyQUI::PairLine(pw, 20, 80, "用 户 名: ", Config::option.database.user);
const std::string QSS_TABLE = // 表格整体样式
"QTableWidget {"
" background-color: transparent;" // 背景色
" gridline-color: #C0C0C0;" // 网格线颜色
" border: 1px solid gray;" // 边框
" color: white;" // 文字颜色
"}"
// 表头样式
"QHeaderView::section {"
" background-color: #404040;" // 表头背景
" padding: 4px;" // 内边距
" border: 1px solid #505050;" // 边框
" min-height: 25px;" // 最小高度
"}"
// 单元格样式
"QTableWidget::item {"
" padding-left: 5px;"
" border-bottom: 1px solid gray;" // 底部边框
"}"
// 选中状态
"QTableWidget::item:selected {"
" background-color: #B8D6FF;" // 选中背景色
" color: black;" // 选中文字颜色
"}";
table = std::make_shared<QTableWidget>(this);
table->setGeometry(10, y += 130, 1190, 300);
table->setStyleSheet(QSS_TABLE.c_str());
table->horizontalHeader()->setStretchLastSection(true); // 最后一列占满
table->verticalHeader()->setVisible(false); // 不显示垂直表头
table->setEditTriggers(QAbstractItemView::NoEditTriggers); // 单元格不可编辑
table->setSelectionMode(QAbstractItemView::SingleSelection); // 设置为单选模式
table->setSelectionBehavior(QAbstractItemView::SelectRows); // 设置为整行选中
table->horizontalHeader()->setFixedHeight(50);
table->horizontalHeader()->setDefaultSectionSize(60);
QTableWidgetItem* headerItem;
QStringList headerText_Row, headerText_Col;
headerText_Row << "ID" << "站名" << "编号" << "状态" << "MQTT状态" << "召测(秒)"
<< "日充电\n电量" << "日放电\n电量" << "总充电\n电量" << "总放电\n电量"
<< "日充电\n费用" << "日放电\n费用" << "总充电\n费用" << "总放电\n费用"
<< "日收益" << "总收益" << "--";
// 设置为水平表头
table->setColumnCount(headerText_Row.size());
table->setHorizontalHeaderLabels(headerText_Row);
table->setColumnWidth(0, 50);
table->setColumnWidth(1, 120);
table->setColumnWidth(2, 50);
table->setColumnWidth(4, 80);
}
textLog = std::make_shared<QTextEdit>(this);
textLog->setGeometry(10, y += 310, 1190, 280);
textLog->setStyleSheet("background-color: transparent; border: 1px solid gray; font-weight: 400;");
textLog->setReadOnly(true);
{
// 第二个参数是方法函数名称,即调用 QTextEdit的appeng函数
auto qtSink = std::make_shared<spdlog::sinks::qt_sink_mt>(textLog.get(), "append");
spdlog::default_logger()->sinks().push_back(qtSink);
}
}
void QWHome::setTableCell(int row, int col, std::string text, std::string style /*= ""*/)
{
auto item = table->item(row, col);
if (!item)
{
item = new QTableWidgetItem();
table->setItem(row, col, item);
}
item->setText(text.c_str());
if (style == "OK") { item->setForeground(QBrush(Qt::green)); }
else if (style == "ERR") { item->setForeground(QBrush(Qt::red)); }
}
void QWHome::onTimer()
{
auto& appdata = Application().data();
int rowNo = 0;
int tsNow = Utils::time();
for (auto& item : appdata.mapStation)
{
auto& station = item.second;
if (rowNo >= table->rowCount())
{
table->insertRow(rowNo);
}
bool isOpen = station->status > 0;
bool isConnected = station->mqttCli->isConnected;
setTableCell(rowNo, 0, std::to_string(station->stationId));
setTableCell(rowNo, 1, station->name);
setTableCell(rowNo, 2, station->code);
setTableCell(rowNo, 3, isOpen ? "启用" : "未启用", isOpen ? "OK" : "ERR");
setTableCell(rowNo, 4, isConnected ? "连接成功" : "未连接", isConnected ? "OK" : "ERR");
int tsPolling = station->getPollingTS();
setTableCell(rowNo, 5, tsPolling > 0 ? std::to_string(tsNow - tsPolling) + "/" + std::to_string(Config::option.mqtt.interval) : "--");
setTableCell(rowNo, 6, Utils::toStr(station->statData.dayElectIn, 0));
setTableCell(rowNo, 7, Utils::toStr(station->statData.dayElectOut, 0));
setTableCell(rowNo, 8, Utils::toStr(station->statData.totalElectIn, 0));
setTableCell(rowNo, 9, Utils::toStr(station->statData.totalElectOut, 0));
setTableCell(rowNo, 10, Utils::toStr(station->statData.dayFeeIn, 0));
setTableCell(rowNo, 11, Utils::toStr(station->statData.dayFeeOut, 0));
setTableCell(rowNo, 12, Utils::toStr(station->statData.totalFeeIn, 0));
setTableCell(rowNo, 13, Utils::toStr(station->statData.totalFeeOut, 0));
setTableCell(rowNo, 14, Utils::toStr(station->statData.dayIncome, 0));
setTableCell(rowNo, 15, Utils::toStr(station->statData.totalIncome, 0));
setTableCell(rowNo, 16, station->statData.ts > 0 ? Utils::timeStr(station->statData.ts) : "--");
rowNo++;
}
}

28
src/qt/widgets/QWHome.h Normal file
View File

@@ -0,0 +1,28 @@
#pragma once
#include "qt/MyQUI.h"
#include <spdlog/sinks/base_sink.h>
#include <QHBoxLayout>
#include <QTableWidget>
class QWHome : public MyWidget
{
Q_OBJECT
public:
QWHome(QWidget* parent);
// 创建自定义sink
//std::shared_ptr<QtTextSink> qtSink;
std::shared_ptr<QGroupBox> groupSys;
std::shared_ptr<QGroupBox> groupHttp;
std::shared_ptr<QGroupBox> groupMqtt;
std::shared_ptr<QGroupBox> groupDB;
std::shared_ptr<QTableWidget> table {};
std::shared_ptr<QTextEdit> textLog;
void onTimer() override;
void setTableCell(int row, int col, std::string text, std::string style = "");
};

View File

View File

View File

@@ -70,7 +70,7 @@ export default {
{ {
name: '储能系统', name: '储能系统',
titles: [ titles: [
{ v: '边缘网关编号', key: 'num' }, { v: '运行模式', key: 'workmode' },
{ v: '总有功功率(台区)', key: 'power', sufix: 'kW' } { v: '总有功功率(台区)', key: 'power', sufix: 'kW' }
], ],
power: 60, power: 60,
@@ -114,10 +114,10 @@ export default {
workMode: '', workMode: '',
workModes: [ workModes: [
// 0手动1峰谷套利2增网配容3应急供电4并网保电5自定时段 // 0手动1峰谷套利2增网配容3应急供电4并网保电5自定时段
// { {
// value: 0, value: 0,
// label: '手动' label: '手动'
// }, },
{ {
value: 1, value: 1,
label: '峰谷套利' label: '峰谷套利'
@@ -188,6 +188,7 @@ export default {
res.data.device_group.forEach((Element, index) => { res.data.device_group.forEach((Element, index) => {
this.systems[index].num = Element.count this.systems[index].num = Element.count
this.systems[index].power = Element.power this.systems[index].power = Element.power
this.systems[index].workmode = Element.workmode
}) })
this.workMode = res.data.work_mode this.workMode = res.data.work_mode
} catch (error) { } catch (error) {