mirror of
https://gitee.com/js-yhsec/energy_storage.git
synced 2026-05-27 18:59:26 +08:00
调试修改HTTP接口
This commit is contained in:
Binary file not shown.
BIN
bin/Release/ESS.exe
Normal file
BIN
bin/Release/ESS.exe
Normal file
Binary file not shown.
114
bin/Release/assets/config/BCU电池簇遥信.txt
Normal file
114
bin/Release/assets/config/BCU电池簇遥信.txt
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
所属通道号 R uint16 1~4 0xA001
|
||||||
|
所属BCU号 R uint16 1~40 0xA002
|
||||||
|
蓄电池充放电状态 R uint16 "0x11开路
|
||||||
|
0x22待机
|
||||||
|
0x33充电
|
||||||
|
0x44放电" 0xA003
|
||||||
|
电池组运行状态 R uint16 "0x11跳机
|
||||||
|
0x22待机
|
||||||
|
0x33放空
|
||||||
|
0x44充满
|
||||||
|
0x55预警
|
||||||
|
0x66正常" 0xA004
|
||||||
|
簇DO1状态 R uint16 1:断开 2:闭合 0xA005
|
||||||
|
簇DO2状态 R uint16 1:断开 2:闭合 0xA006
|
||||||
|
继电器总正 R uint16 0:断开 1:闭合 2:粘连 0xA007
|
||||||
|
继电器总负 R uint16 0:断开 1:闭合 2:粘连 0xA008
|
||||||
|
继电器预充 R uint16 0:断开 1:闭合 2:粘连 0xA009
|
||||||
|
继电器bmu供电 R uint16 0:断开 1:闭合 2:粘连 0xA00A
|
||||||
|
整簇总电压过高告警 R uint16 0:正常 1:告警 0xA00B
|
||||||
|
整簇总电压过低告警 R uint16 0:正常 1:告警 0xA00C
|
||||||
|
整簇中单体电压过高告警 R uint16 0:正常 1:告警 0xA00D
|
||||||
|
整簇中单体电压过低告警 R uint16 0:正常 1:告警 0xA00E
|
||||||
|
整簇中单体电压偏差过大告警 R uint16 0:正常 1:告警 0xA00F
|
||||||
|
整簇中单体温度偏差过大告警 R uint16 0:正常 1:告警 0xA010
|
||||||
|
整簇中单体温度过高告警 R uint16 0:正常 1:告警 0xA011
|
||||||
|
整簇中单体温度过低告警 R uint16 0:正常 1:告警 0xA012
|
||||||
|
整簇总充电电流过高告警 R uint16 0:正常 1:告警 0xA013
|
||||||
|
整簇总放电电流过高告警 R uint16 0:正常 1:告警 0xA014
|
||||||
|
整簇总SOC过高告警 R uint16 0:正常 1:告警 0xA015
|
||||||
|
整簇总SOC过低告警 R uint16 0:正常 1:告警 0xA016
|
||||||
|
高压盒主正接触器粘连告警 R uint16 0:正常 1:告警 0xA017
|
||||||
|
高压盒主正接触器不能吸合告警 R uint16 0:正常 1:告警 0xA018
|
||||||
|
高压盒主负接触器粘连告警 R uint16 0:正常 1:告警 0xA019
|
||||||
|
高压盒主负接触器不能吸合告警 R uint16 0:正常 1:告警 0xA01A
|
||||||
|
高压盒预充接触器粘连告警 R uint16 0:正常 1:告警 0xA01B
|
||||||
|
高压盒预充接触器不能吸合告警 R uint16 0:正常 1:告警 0xA01C
|
||||||
|
预充失败告警 R uint16 0:正常 1:告警 0xA01D
|
||||||
|
BCU电压检测模块出现问题告警 R uint16 0:正常 1:告警 0xA01E
|
||||||
|
BCU温度检测模块出现问题告警 R uint16 0:正常 1:告警 0xA01F
|
||||||
|
BCU电流检测模块出现问题告警 R uint16 0:正常 1:告警 0xA020
|
||||||
|
BCU绝缘检测模块出现问题告警 R uint16 0:正常 1:告警 0xA021
|
||||||
|
高压盒内总压检测模块出现问题告警 R uint16 0:正常 1:告警 0xA022
|
||||||
|
高压盒外总压检测模块出现问题告警 R uint16 0:正常 1:告警 0xA023
|
||||||
|
PCS-CAN通信故障告警 R uint16 0:正常 1:告警 0xA024
|
||||||
|
高压盒供电电压过高告警 R uint16 0:正常 1:告警 0xA025
|
||||||
|
绝缘正极故障告警 R uint16 0:正常 1:告警 0xA026
|
||||||
|
绝缘负极故障告警 R uint16 0:正常 1:告警 0xA027
|
||||||
|
绝缘中间侧故障告警 R uint16 0:正常 1:告警 0xA028
|
||||||
|
绝缘故障告警 R uint16 0:正常 1:告警 0xA029
|
||||||
|
BMU中电压采样线开路告警 R uint16 0:正常 1:告警 0xA02A
|
||||||
|
BMU中NTC采样线短开路告警 R uint16 0:正常 1:告警 0xA02B
|
||||||
|
BMU中采样芯片故障告警 R uint16 0:正常 1:告警 0xA02C
|
||||||
|
BMU中电池温度升高过快告警 R uint16 0:正常 1:告警 0xA02D
|
||||||
|
BMU中电池内部短路告警 R uint16 0:正常 1:告警 0xA02E
|
||||||
|
BMU充电均衡模块出现故障告警 R uint16 0:正常 1:告警 0xA02F
|
||||||
|
BMU放电均衡模块出现故障告警 R uint16 0:正常 1:告警 0xA030
|
||||||
|
BMU通信故障告警 R uint16 0:正常 1:告警 0xA031
|
||||||
|
单体内阻过大告警 R uint16 0:正常 1:告警 0xA032
|
||||||
|
单体内阻过小告警 R uint16 0:正常 1:告警 0xA033
|
||||||
|
单体内阻阻差过大告警 R uint16 0:正常 1:告警 0xA034
|
||||||
|
簇内阻过大告警 R uint16 0:正常 1:告警 0xA035
|
||||||
|
簇内阻过小告警 R uint16 0:正常 1:告警 0xA036
|
||||||
|
SOC初始化无效告警 R uint16 0:正常 1:告警 0xA037
|
||||||
|
充电时soc降低故障告警 R uint16 0:正常 1:告警 0xA038
|
||||||
|
放电时soc升高告警 R uint16 0:正常 1:告警 0xA039
|
||||||
|
静止时SOC跳变告警 R uint16 0:正常 1:告警 0xA03A
|
||||||
|
整簇总电压过高保护 R uint16 0:正常 1:保护 0xA03B
|
||||||
|
整簇总电压过低保护 R uint16 0:正常 1:保护 0xA03C
|
||||||
|
整簇中单体电压过高保护 R uint16 0:正常 1:保护 0xA03D
|
||||||
|
整簇中单体电压过低保护 R uint16 0:正常 1:保护 0xA03E
|
||||||
|
整簇中单体电压偏差过大保护 R uint16 0:正常 1:保护 0xA03F
|
||||||
|
整簇中单体温度偏差过大保护 R uint16 0:正常 1:保护 0xA040
|
||||||
|
整簇中单体温度过高保护 R uint16 0:正常 1:保护 0xA041
|
||||||
|
整簇中单体温度过低保护 R uint16 0:正常 1:保护 0xA042
|
||||||
|
整簇总充电电流过高保护 R uint16 0:正常 1:保护 0xA043
|
||||||
|
整簇总放电电流过高保护 R uint16 0:正常 1:保护 0xA044
|
||||||
|
整簇总SOC过高保护 R uint16 0:正常 1:保护 0xA045
|
||||||
|
整簇总SOC过低保护 R uint16 0:正常 1:保护 0xA046
|
||||||
|
高压盒主正接触器粘连保护 R uint16 0:正常 1:保护 0xA047
|
||||||
|
高压盒主正接触器不能吸合保护 R uint16 0:正常 1:保护 0xA048
|
||||||
|
高压盒主负接触器粘连保护 R uint16 0:正常 1:保护 0xA049
|
||||||
|
高压盒主负接触器不能吸合保护 R uint16 0:正常 1:保护 0xA04A
|
||||||
|
高压盒预充接触器粘连保护 R uint16 0:正常 1:保护 0xA04B
|
||||||
|
高压盒预充接触器不能吸合保护 R uint16 0:正常 1:保护 0xA04C
|
||||||
|
预充失败保护 R uint16 0:正常 1:保护 0xA04D
|
||||||
|
BCU电压检测模块出现问题保护 R uint16 0:正常 1:保护 0xA04E
|
||||||
|
BCU温度检测模块出现问题保护 R uint16 0:正常 1:保护 0xA04F
|
||||||
|
BCU电流检测模块出现问题保护 R uint16 0:正常 1:保护 0xA050
|
||||||
|
BCU绝缘检测模块出现问题保护 R uint16 0:正常 1:保护 0xA051
|
||||||
|
高压盒内总压检测模块出现问题保护 R uint16 0:正常 1:保护 0xA052
|
||||||
|
高压盒外总压检测模块出现问题保护 R uint16 0:正常 1:保护 0xA053
|
||||||
|
PCS-CAN通信故障保护 R uint16 0:正常 1:保护 0xA054
|
||||||
|
高压盒供电电压过高保护 R uint16 0:正常 1:保护 0xA055
|
||||||
|
绝缘正极故障保护 R uint16 0:正常 1:保护 0xA056
|
||||||
|
绝缘负极故障保护 R uint16 0:正常 1:保护 0xA057
|
||||||
|
绝缘中间侧故障保护 R uint16 0:正常 1:保护 0xA058
|
||||||
|
绝缘故障保护 R uint16 0:正常 1:保护 0xA059
|
||||||
|
BMU中电压采样线开路保护 R uint16 0:正常 1:保护 0xA05A
|
||||||
|
BMU中NTC采样线短开路保护 R uint16 0:正常 1:保护 0xA05B
|
||||||
|
BMU中采样芯片故障保护 R uint16 0:正常 1:保护 0xA05C
|
||||||
|
BMU中电池温度升高过快保护 R uint16 0:正常 1:保护 0xA05D
|
||||||
|
BMU中电池内部短路保护 R uint16 0:正常 1:保护 0xA05E
|
||||||
|
BMU充电均衡模块出现故障保护 R uint16 0:正常 1:保护 0xA05F
|
||||||
|
BMU放电均衡模块出现故障保护 R uint16 0:正常 1:保护 0xA060
|
||||||
|
BMU通信故障保护 R uint16 0:正常 1:保护 0xA061
|
||||||
|
单体内阻过大保护 R uint16 0:正常 1:保护 0xA062
|
||||||
|
单体内阻过小保护 R uint16 0:正常 1:保护 0xA063
|
||||||
|
单体内阻阻差过大保护 R uint16 0:正常 1:保护 0xA064
|
||||||
|
簇内阻过大保护 R uint16 0:正常 1:保护 0xA065
|
||||||
|
簇内阻过小保护 R uint16 0:正常 1:保护 0xA066
|
||||||
|
SOC初始化无效保护 R uint16 0:正常 1:保护 0xA067
|
||||||
|
充电时soc降低故障保护 R uint16 0:正常 1:保护 0xA068
|
||||||
|
放电时soc升高保护 R uint16 0:正常 1:保护 0xA069
|
||||||
|
静止时SOC跳变保护 R uint16 0:正常 1:保护 0xA06A
|
||||||
65
bin/Release/assets/config/BCU电池簇遥测.txt
Normal file
65
bin/Release/assets/config/BCU电池簇遥测.txt
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
所属通道号 R uint16 1~4 0x0001
|
||||||
|
所属BCU号 R uint16 1~40 0x0002
|
||||||
|
簇电压 R uint32 0.1V 0x0003
|
||||||
|
簇电流 R int32 0.1A 0x0005
|
||||||
|
簇温度 R int32 0.1℃ 0x0007
|
||||||
|
簇电阻 R uint32 1mΩ 0x0009
|
||||||
|
簇SOC R uint16 0.1 0x000B
|
||||||
|
簇SOH R uint16 0.1 0x000C
|
||||||
|
簇正绝缘电阻 R uint32 1kΩ 0x000D
|
||||||
|
簇负绝缘电阻 R uint32 1kΩ 0x000F
|
||||||
|
簇允许最大充电电流 R int32 0.1A 0x0011
|
||||||
|
簇允许最大放电电流 R int32 0.1A 0x0013
|
||||||
|
簇允许最大充电功率 R uint32 1kW 0x0015
|
||||||
|
簇允许最大放电功率 R uint32 1kW 0x0017
|
||||||
|
簇可充容量 R uint32 0.1Ah 0x0019
|
||||||
|
簇可放容量 R uint32 0.1Ah 0x001B
|
||||||
|
簇单次累计充容量 R uint32 0.1Ah 0x001D
|
||||||
|
簇单次累计放容量 R uint32 0.1Ah 0x001F
|
||||||
|
簇总累计充容量 R uint32 0.1Ah 0x0021
|
||||||
|
簇总累计放容量 R uint32 0.1Ah 0x0023
|
||||||
|
簇可充电量 R uint32 1kWh 0x0025
|
||||||
|
簇可放电量 R uint32 1kWh 0x0027
|
||||||
|
簇单次充电量 R uint32 1kWh 0x0029
|
||||||
|
簇单次放电量 R uint32 1kWh 0x002B
|
||||||
|
簇累计充电量 R uint32 1kWh 0x002D
|
||||||
|
簇累计放电量 R uint32 1kWh 0x002F
|
||||||
|
pack累计簇总压 R uint32 0.1V 0x0031
|
||||||
|
簇与pack压差 R uint32 0.1V 0x0033
|
||||||
|
簇与PCS压差 R uint32 0.1V 0x0035
|
||||||
|
簇中BMU个数 R uint16 0x0037
|
||||||
|
簇中BMU中单体个数 R uint16 0x0038
|
||||||
|
簇中BMU中温度个数 R uint16 0x0039
|
||||||
|
簇中单体个数 R uint16 0x003A
|
||||||
|
簇中温度个数 R uint16 0x003B
|
||||||
|
单体最高SOC节号 R uint16 0x003C
|
||||||
|
单体最高SOC R uint16 0.1 0x003D
|
||||||
|
单体最低SOC节号 R uint16 0x003E
|
||||||
|
单体最低SOC R uint16 0.1 0x003F
|
||||||
|
单体最高SOH节号 R uint16 0x0040
|
||||||
|
单体最高SOH R uint16 0.1 0x0041
|
||||||
|
单体最低SOH节号 R uint16 0x0042
|
||||||
|
单体最低SOH R uint16 0.1 0x0043
|
||||||
|
单体最高电压节号 R uint16 0x0044
|
||||||
|
单体最高电压 R uint16 mV 0x0045
|
||||||
|
单体最低电压节号 R uint16 0x0046
|
||||||
|
单体最低电压 R uint16 mV 0x0047
|
||||||
|
单体电压差 R uint16 mV 0x0048
|
||||||
|
单体平均电压 R uint16 mV 0x0049
|
||||||
|
单体最高温度节号 R uint16 0x004A
|
||||||
|
单体最高温度 R int16 0.1℃ 0x004B
|
||||||
|
单体最低温度节号 R uint16 0x004C
|
||||||
|
单体最低温度 R int16 0.1℃ 0x004D
|
||||||
|
单体温度差 R int16 0.1℃ 0x004E
|
||||||
|
单体平均温度 R int16 0.1℃ 0x004F
|
||||||
|
单体最高内阻节号 R uint16 0x0050
|
||||||
|
单体最高内阻 R uint16 mΩ 0x0051
|
||||||
|
单体最低内阻节号 R uint16 0x0052
|
||||||
|
单体最低内阻 R uint16 mΩ 0x0053
|
||||||
|
单体内阻差 R uint16 mΩ 0x0054
|
||||||
|
单体平均内阻 R uint16 mΩ 0x0055
|
||||||
|
单体SOC R uint16[1000] 0.1 0x0056~0x043D
|
||||||
|
单体SOH R uint16[1000] 0.1 0x043E~0x0825
|
||||||
|
单体电压 R uint16[1000] mV 0x0826~0x0C0D
|
||||||
|
单体温度 R int16[1000] 0.01℃ 0x0C0E~0x0FF5
|
||||||
|
单体内阻 R uint16[1000] mΩ 0x0FF6~0x13DD
|
||||||
63
bin/Release/assets/config/BMS电池堆遥测.txt
Normal file
63
bin/Release/assets/config/BMS电池堆遥测.txt
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
SOC R uint16 0.1 0x0001
|
||||||
|
SOH R uint16 0.1 0x0002
|
||||||
|
电压 R uint32 0.1V 0x0003
|
||||||
|
电流 R int32 0.1A 0x0005
|
||||||
|
可充电量 R uint32 1kWh 0x0007
|
||||||
|
可放电量 R uint32 1kWh 0x0009
|
||||||
|
单次可充电量 R uint32 1kWh 0x000B
|
||||||
|
单次可放电量 R uint32 1kWh 0x000D
|
||||||
|
堆功率 R int32 1kW 0x000F
|
||||||
|
充电量累加 R uint32 1kWh 0x0011
|
||||||
|
放电量累加 R uint32 1kWh 0x0013
|
||||||
|
簇最大SOC R uint16 0.1 0x0015
|
||||||
|
簇最小SOC R uint16 0.1 0x0016
|
||||||
|
簇最大SOC号 R uint16 0x0017
|
||||||
|
簇最小SOC号 R uint16 0x0018
|
||||||
|
簇SOC差值 R uint16 0.1 0x0019
|
||||||
|
簇最大电压 R uint16 0.1V 0x001A
|
||||||
|
簇最小电压 R uint16 0.1V 0x001B
|
||||||
|
簇最大电压号 R uint16 0x001C
|
||||||
|
簇最小电压号 R uint16 0x001D
|
||||||
|
簇电压差值 R uint16 0.1V 0x001E
|
||||||
|
单体最大电压簇号 R uint16 0x001F
|
||||||
|
单体最大电压节号 R uint16 0x0020
|
||||||
|
单体最大电压 R uint16 mV 0x0021
|
||||||
|
单体最小电压簇号 R uint16 0x0022
|
||||||
|
单体最小电压节号 R uint16 0x0023
|
||||||
|
单体最小电压 R uint16 mV 0x0024
|
||||||
|
单体平均电压 R uint16 mV 0x0025
|
||||||
|
单体电压差 R uint16 mV 0x0026
|
||||||
|
单体最大温度簇号 R uint16 0x0027
|
||||||
|
单体最大温度节号 R uint16 0x0028
|
||||||
|
单体最大温度 R int16 0.1℃ 0x0029
|
||||||
|
单体最小温度簇号 R uint16 0x002A
|
||||||
|
单体最小温度节号 R uint16 0x002B
|
||||||
|
单体最小温度 R int16 0.1℃ 0x002C
|
||||||
|
单体平均温度 R int16 0.1℃ 0x002D
|
||||||
|
单体温度差 R int16 0.1℃ 0x002E
|
||||||
|
最大内阻簇号 R uint16 0x002F
|
||||||
|
最大内阻节号 R uint16 0x0030
|
||||||
|
最大内阻 R uint16 mΩ 0x0031
|
||||||
|
最小内阻簇号 R uint16 0x0032
|
||||||
|
最小内阻节号 R uint16 0x0033
|
||||||
|
最小内阻 R uint16 mΩ 0x0034
|
||||||
|
单体平均内阻 R uint16 mΩ 0x0035
|
||||||
|
单体内阻差 R uint16 mΩ 0x0036
|
||||||
|
单体最大SOH簇号 R uint16 0x0037
|
||||||
|
单体最大SOH节号 R uint16 0x0038
|
||||||
|
单体最大SOH R uint16 0.10% 0x0039
|
||||||
|
单体最小SOH簇号 R uint16 0x003A
|
||||||
|
单体最小SOH节号 R uint16 0x003B
|
||||||
|
单体最小SOH R uint16 0.10% 0x003C
|
||||||
|
单体最大SOc簇号 R uint16 0x003D
|
||||||
|
单体最大SOc节号 R uint16 0x003E
|
||||||
|
单体最大Soc R uint16 0.10% 0x0040
|
||||||
|
单体最小SOc簇号 R uint16 0x0041
|
||||||
|
单体最小SOc节号 R uint16 0x0042
|
||||||
|
单体最小SOc R uint16 0.10% 0x0043
|
||||||
|
系统剩余最大可充电功率 R uint32 1KW 0x0043
|
||||||
|
系统剩余最大可放电功率 R uint32 1KW 0x0045
|
||||||
|
可充电状态 R uint16 1:可充电;0:不可充电 0x0047
|
||||||
|
可放电状态 R uint16 1:可放电;0:不可放电 0x0048
|
||||||
|
运行状态 R uint16 运行状态 0-正常 1-告警 2-保护 0x0049
|
||||||
|
充放电状态 R uint16 0-待机 1-充电 2-放电 0x004A
|
||||||
44
bin/Release/assets/config/EMS遥信.txt
Normal file
44
bin/Release/assets/config/EMS遥信.txt
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
BMS(电池堆)通信状态 R uint16 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~16 0x2001
|
||||||
|
BCU(电池簇)通信状态 R uint64 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~64 0x2002
|
||||||
|
PCU(主控)通信状态 R uint16 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~16 0x2006
|
||||||
|
PCS(模块)通信状态 R uint64 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~64 0x2007
|
||||||
|
电表总接点通信状态 R uint16 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~16 0x200B
|
||||||
|
电表通信状态 R uint32 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~32 0x200C
|
||||||
|
消防通信状态 R uint16 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~16 0x200E
|
||||||
|
UPS通信状态 R uint16 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~16 0x200F
|
||||||
|
温湿度总接点通信状态 R uint16 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~16 0x2010
|
||||||
|
温湿度通信状态 R uint32 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~32 0x2011
|
||||||
|
空调总接点通信状态 R uint16 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~16 0x2013
|
||||||
|
空调通信状态 R uint32 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~32 0x2014
|
||||||
|
控制干接点(配电系统)状态 R uint16 "0:开路
|
||||||
|
1:闭合" bit位从低到高分别对应1~16 0x2016
|
||||||
|
状态干接点(配电系统)状态 R uint16 "0:开路
|
||||||
|
1:闭合" bit位从低到高分别对应1~16 0x2017
|
||||||
|
BCU总通信状态 R uint16 0:正常 1:告警 2:故障 0x2018
|
||||||
|
PCU总通信状态 R uint16 0:正常 1:告警 2:故障 0x2019
|
||||||
|
电表总通信状态 R uint16 0:正常 1:告警 2:故障 0x201A
|
||||||
|
消防总通信状态 R uint16 0:正常 1:告警 2:故障 0x201B
|
||||||
|
UPS总通信状态 R uint16 0:正常 1:告警 2:故障 0x201C
|
||||||
|
温湿度总通信状态 R uint16 0:正常 1:告警 2:故障 0x201D
|
||||||
|
空调总通信状态 R uint16 0:正常 1:告警 2:故障 0x201E
|
||||||
|
EMU通信状态 R uint16 0:正常 1:告警 2:故障 0x201F
|
||||||
|
冷机总通信状态 R uint16 0:正常 1:告警 2:故障 0x2020
|
||||||
|
冷机总接点通信状态 R uint16 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~16 0x2021
|
||||||
|
冷机通信状态 R uint16 "0:正常
|
||||||
|
1:故障" bit位从低到高分别对应1~16 0x2022
|
||||||
|
预留 0x2023~0x2079
|
||||||
|
预留
|
||||||
|
判断总表的三相总有功 < -5.0fkW 充电 >5.0fkW放电 否则停机 R uint16 0:充电 1:放电 2:停机 储能状态 0x207A
|
||||||
|
After Width: | Height: | Size: 2.4 KiB |
111
bin/Release/assets/config/EMS遥测.txt
Normal file
111
bin/Release/assets/config/EMS遥测.txt
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
BMS(电池堆)个数 R uint16 1 0x1001
|
||||||
|
BCU通道个数 R uint16 1~2 0x1002
|
||||||
|
BCU(电池簇)个数 R uint16 1~40 0x1003
|
||||||
|
PCU(主控)个数 R uint16 1~4 0x1004
|
||||||
|
PCU通道个数 R uint16 1~4 0x1005
|
||||||
|
PCS(模块)个数 R uint16 1~40 0x1006
|
||||||
|
电表通道个数 R uint16 1 0x1007
|
||||||
|
电表个数 R uint16 1~10 0x1008
|
||||||
|
消防通道个数 R uint16 1~10 0x1009
|
||||||
|
消防个数 R uint16 1~10 0x100A
|
||||||
|
UPS通道个数 R uint16 1~10 0x100B
|
||||||
|
UPS个数 R uint16 1~10 0x100C
|
||||||
|
温湿度通道个数 R uint16 1 0x100D
|
||||||
|
温湿度个数 R uint16 1~10 0x100E
|
||||||
|
空调通道个数 R uint16 1 0x100F
|
||||||
|
空调个数 R uint16 1~10 0x1010
|
||||||
|
控制干接点(配电系统)个数 R uint16 16 0x1011
|
||||||
|
状态干接点(配电系统)个数 R uint16 16 0x1012
|
||||||
|
预留 0x1013~0x1071
|
||||||
|
预留
|
||||||
|
预留
|
||||||
|
预留
|
||||||
|
预留
|
||||||
|
预留
|
||||||
|
预留
|
||||||
|
预留
|
||||||
|
预留
|
||||||
|
系统最大可充电功率 R uint32 1KW Pcu数据 0x1072
|
||||||
|
系统最大可放电功率 R uint32 1KW 0x1074
|
||||||
|
储能母线电压 R uint32 0.1V 堆数据 0x1076
|
||||||
|
储能母线电流 R int32 0.1A 0x1078
|
||||||
|
储能系统SOC R uint16 0.1 0x107A
|
||||||
|
储能系统SOH R uint16 0.1 0x107B
|
||||||
|
电流变比 R uint16 电表总表数据 0x107C
|
||||||
|
电压变比 R uint16 0x107D
|
||||||
|
A相电压 R uint32 1V 0x107E
|
||||||
|
B相电压 R uint32 1V 0x1080
|
||||||
|
C相电压 R uint32 1V 0x1082
|
||||||
|
A相电流 R int32 1A 0x1084
|
||||||
|
B相电流 R int32 1A 0x1086
|
||||||
|
C相电流 R int32 1A 0x1088
|
||||||
|
AB相电压 R uint32 1V 0x108A
|
||||||
|
BC相电压 R uint32 1V 0x108C
|
||||||
|
CA相电压 R uint32 1V 0x108E
|
||||||
|
A相有功功率 R int32 1kW 0x1090
|
||||||
|
B相有功功率 R int32 1kW 0x1092
|
||||||
|
C相有功功率 R int32 1kW 0x1094
|
||||||
|
三相总有功功率 R int32 1kW 0x1096
|
||||||
|
当前控制功率 R int32 0.1kW 堆数据 0x1098
|
||||||
|
负荷率 R uint32 1% 台区控制策略数据 0不拿 大于0 默认拿第一个 0x109A
|
||||||
|
三相不平衡度 R uint32 1% 0x109C
|
||||||
|
功率因素比率 R uint32 1% 0x109E
|
||||||
|
进线开关柜功率 R int32 1kW 并网口电表 0x10A0
|
||||||
|
用户关口表功率 R int32 1kW 并网口电表 0x10A2
|
||||||
|
预留 0x10A4~0x1103
|
||||||
|
预留
|
||||||
|
正向总有功总需量 R int32 1kW 0x1104
|
||||||
|
尖段电价 R uint32 1RMB 0x1106
|
||||||
|
峰段电价 R uint32 1RMB 0x1108
|
||||||
|
平段电价 R uint32 1RMB 0x110A
|
||||||
|
谷段电价 R uint32 1RMB 0x110C
|
||||||
|
日充电电量 R uint32 1kWh 0x110E
|
||||||
|
日放电电量 R uint32 1kWh 0x1110
|
||||||
|
日充电费用 R uint32 1RMB 0x1112
|
||||||
|
日放电费用 R uint32 1RMB 0x1114
|
||||||
|
日收益 R int32 1RMB 0x1116
|
||||||
|
日正向尖有功电能 R uint32 1kWh 0x1118
|
||||||
|
日正向峰有功电能 R uint32 1kWh 0x111A
|
||||||
|
日正向平有功电能 R uint32 1kWh 0x111C
|
||||||
|
日正向谷有功电能 R uint32 1kWh 0x111E
|
||||||
|
日正向总有功电能 R uint32 1kWh 0x1120
|
||||||
|
日反向尖有功电能 R uint32 1kWh 0x1122
|
||||||
|
日反向峰有功电能 R uint32 1kWh 0x1124
|
||||||
|
日反向平有功电能 R uint32 1kWh 0x1126
|
||||||
|
日反向谷有功电能 R uint32 1kWh 0x1128
|
||||||
|
日反向总有功电能 R uint32 1kWh 0x112A
|
||||||
|
总充电电量 R uint32 1kWh 0x112C
|
||||||
|
总放电电量 R uint32 1kWh 0x112E
|
||||||
|
总充电费用 R uint32 1RMB 0x1130
|
||||||
|
总放电费用 R uint32 1RMB 0x1132
|
||||||
|
总收益 R int32 1RMB 0x1134
|
||||||
|
总正向尖有功电能 R uint32 1kWh 0x1136
|
||||||
|
总正向峰有功电能 R uint32 1kWh 0x1138
|
||||||
|
总正向平有功电能 R uint32 1kWh 0x113A
|
||||||
|
总正向谷有功电能 R uint32 1kWh 0x113C
|
||||||
|
总正向总有功电能 R uint32 1kWh 0x113E
|
||||||
|
总反向尖有功电能 R uint32 1kWh 0x1140
|
||||||
|
总反向峰有功电能 R uint32 1kWh 0x1142
|
||||||
|
总反向平有功电能 R uint32 1kWh 0x1144
|
||||||
|
总反向谷有功电能 R uint32 1kWh 0x1146
|
||||||
|
总反向总有功电能 R uint32 1kWh 0x1148
|
||||||
|
预留 0x114A~0x11AD
|
||||||
|
预留
|
||||||
|
预留
|
||||||
|
交流A相电压 R int16 1V 0x11AE
|
||||||
|
交流B相电压 R int16 1V 0x11AF
|
||||||
|
交流C相电压 R int16 1V 0x11B0
|
||||||
|
交流A相频率 R int16 1Hz 0x11B1
|
||||||
|
交流B相频率 R int16 1Hz 0x11B2
|
||||||
|
交流C相频率 R int16 1Hz 0x11B3
|
||||||
|
总直流功率 R int32 1kW 0x11B4
|
||||||
|
总直流电压 R uint32 0.1V 0x11B6
|
||||||
|
总直流电流 R int32 0.1A 0x11B8
|
||||||
|
预留 0x11B9~0x121A
|
||||||
|
预留
|
||||||
|
预留
|
||||||
|
储能系统温度 R int16 0.1℃ 堆里面单体温度最高 0x121B
|
||||||
|
储能充放电时段hh R uint16 时 0x01 0x121C
|
||||||
|
储能充放电时段mm R uint16 分 0x01 0x121D
|
||||||
|
储能充放电时段ss R uint16 秒 0x01 0x121E
|
||||||
|
储能系统各时段功率 R int16 1kW 0x01 0x121F
|
||||||
|
After Width: | Height: | Size: 4.2 KiB |
53
bin/Release/assets/config/EMS遥调.txt
Normal file
53
bin/Release/assets/config/EMS遥调.txt
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
EMS工作模式 RW uint16 - "0:无效
|
||||||
|
1:本地控制模式, EMS不接受平台调控
|
||||||
|
2:平台控制模式, EMS接收平台调控指令" 0x0001
|
||||||
|
有功功率 RW int16 kW "并网恒功率模式下交流侧功率值:
|
||||||
|
<0: 充电功率
|
||||||
|
0: 静置
|
||||||
|
>0: 放电功率" 0x0002
|
||||||
|
PCS开关机 RW uint16 - "0: 关机
|
||||||
|
1: 开机" 软件开关机 0x0003
|
||||||
|
主控对象 RW uint16 "储能遥控对象:
|
||||||
|
0:无效
|
||||||
|
1:华云
|
||||||
|
2:轻舟" 0x0004
|
||||||
|
A相有功功率 RW int16 1kW 0x0005
|
||||||
|
B相有功功率 RW int16 1kW 0x0006
|
||||||
|
C相有功功率 RW int16 1kW 0x0007
|
||||||
|
三相总有功功率 RW int16 1kW 0x0008
|
||||||
|
A相无功功率 RW int16 1kVar 0x0009
|
||||||
|
B相无功功率 RW int16 1kVar 0x000A
|
||||||
|
C相无功功率 RW int16 1kVar 0x000B
|
||||||
|
三相总无功功率 RW int16 1kVar 0x000C
|
||||||
|
A相电流 RW int16 0.01A 在使用的时候除以100转float 0x000D
|
||||||
|
B相电流 RW int16 0.01A 0x000E
|
||||||
|
C相电流 RW int16 0.01A 0x000F
|
||||||
|
A相电压 RW uint16 1V 0x0010
|
||||||
|
B相电压 RW uint16 1V 0x0011
|
||||||
|
C相电压 RW uint16 1V 0x0012
|
||||||
|
A相交流功率因数 RW int16 0.01 在使用的时候除以100转float 0x0013
|
||||||
|
B相交流功率因数 RW int16 0.01 0x0014
|
||||||
|
C相交流功率因数 RW int16 0.01 0x0015
|
||||||
|
A相视在功率 RW int16 1kVA 0x0016
|
||||||
|
B相视在功率 RW int16 1kVA 0x0017
|
||||||
|
C相视在功率 RW int16 1kVA 0x0018
|
||||||
|
正向总有功总需量 RW int16 1kW 0x0019
|
||||||
|
数据有效性 RW int16 0无效 1有效 0x001A
|
||||||
|
EMS工作模式 RW uint16 - "0:无效
|
||||||
|
1:本地控制模式, EMS不接受平台调控
|
||||||
|
2:平台控制模式, EMS接收平台调控指令" 2413项目需求 0x001B
|
||||||
|
有功功率 RW uint16 kW "并网恒功率模式下交流侧功率值:
|
||||||
|
功率绝对值 没有正负" 2413项目需求 0x001C
|
||||||
|
充放电类型 RW uint16 - "0: 关机
|
||||||
|
1: 充电
|
||||||
|
2:放电
|
||||||
|
3:待机" "2413项目需求
|
||||||
|
充放电类型" 0x001D
|
||||||
|
最大SOC RW uint16 2413项目需求 0x001E
|
||||||
|
最小SOC RW uint16 2413项目需求 0x001F
|
||||||
|
自动并离网 RW uint16 "0:手动
|
||||||
|
1:自动" "2332项目需求
|
||||||
|
(若为自动,则通过主控进行并离网切换)" 0x0020
|
||||||
|
并网离网 RW uint16 "0:并网
|
||||||
|
1:离网" "2332项目需求
|
||||||
|
(该下发参数的前提为手动模式下)" 0x0021
|
||||||
BIN
bin/Release/assets/config/EMU对外通信点表最终修改1版_v9.xlsx
Normal file
BIN
bin/Release/assets/config/EMU对外通信点表最终修改1版_v9.xlsx
Normal file
Binary file not shown.
99
bin/Release/assets/config/PCS遥信.txt
Normal file
99
bin/Release/assets/config/PCS遥信.txt
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
所属主控号 R uint16 1~4 0x1001
|
||||||
|
所属PCS号 R uint16 1~40 0x1002
|
||||||
|
故障状态 R uint16 1故障,0正常 0x1003
|
||||||
|
告警状态 R uint16 1告警,0正常 0x1004
|
||||||
|
设备在线 R uint16 1在线,0无效 0x1005
|
||||||
|
禁止充电 R uint16 1禁止,0无效 0x1006
|
||||||
|
禁止放电 R uint16 1禁止,0无效 0x1007
|
||||||
|
运行状态 R uint16 1开机,0关机 0x1008
|
||||||
|
充放状态 R uint16 0:待机,1:充电,2:放电,3:搁置 0x1009
|
||||||
|
电网状态 R uint16 1离网,0并网 0x100A
|
||||||
|
逆变供电 R uint16 0禁止,1使能 0x100B
|
||||||
|
缓启动完成 R uint16 0禁止,1使能 0x100C
|
||||||
|
主机标志 R uint16 0禁止,1使能 0x100D
|
||||||
|
并离网状态 R uint16 0:并网, 1:离网 0x100E
|
||||||
|
同步请求标志 R uint16 0:无效;1:动作 0x100F
|
||||||
|
绝缘故障 R uint16 1:故障,0正常 0x1010
|
||||||
|
漏电保护 R uint16 1:故障,0正常 0x1011
|
||||||
|
直流过压 R uint16 1:故障,0正常 0x1012
|
||||||
|
市电幅值异常 R uint16 1:故障,0正常 0x1013
|
||||||
|
市电相序异常 R uint16 1:故障,0正常 0x1014
|
||||||
|
温度开关异常 R uint16 1:故障,0正常 0x1015
|
||||||
|
市电频率异常 R uint16 1:故障,0正常 0x1016
|
||||||
|
IGBT过温 R uint16 1:故障,0正常 0x1017
|
||||||
|
交流接地故障 R uint16 1:故障,0正常 0x1018
|
||||||
|
逆变过流异常 R uint16 1:故障,0正常 0x1019
|
||||||
|
直流缓起故障 R uint16 1:故障,0正常 0x101A
|
||||||
|
直流主继电器故障 R uint16 1:故障,0正常 0x101B
|
||||||
|
风机异常 R uint16 1:故障,0正常 0x101C
|
||||||
|
主接触器异常 R uint16 1:故障,0正常 0x101D
|
||||||
|
均浮充切换超时 R uint16 1:故障,0正常 0x101E
|
||||||
|
硬件故障 R uint16 1:故障,0正常 0x101F
|
||||||
|
机内过温 R uint16 1:故障,0正常 0x1020
|
||||||
|
软启动故障 R uint16 1:故障,0正常 0x1021
|
||||||
|
触摸屏通讯故障 R uint16 1:故障,0正常 0x1022
|
||||||
|
防雷器故障 R uint16 1:故障,0正常 0x1023
|
||||||
|
急停故障 R uint16 1:故障,0正常 0x1024
|
||||||
|
BMS系统故障 R uint16 1:故障,0正常 0x1025
|
||||||
|
BMS通讯故障 R uint16 1:故障,0正常 0x1026
|
||||||
|
BMS干接点通讯故障 R uint16 1:故障,0正常 0x1027
|
||||||
|
远程通讯故障 R uint16 1:故障,0正常 0x1028
|
||||||
|
门禁告警 R uint16 1:故障,0正常 0x1029
|
||||||
|
锁相异常 R uint16 1:故障,0正常 0x102A
|
||||||
|
IGBT过温告警 R uint16 1:故障,0正常 0x102B
|
||||||
|
硬件过流保护 R uint16 1:故障,0正常 0x102C
|
||||||
|
驱动故障 R uint16 1:故障,0正常 0x102D
|
||||||
|
ID冲突 R uint16 1:故障,0正常 0x102E
|
||||||
|
电池过压 R uint16 1:故障,0正常 0x102F
|
||||||
|
电池欠压 R uint16 1:故障,0正常 0x1030
|
||||||
|
直流过流保护 R uint16 1:故障,0正常 0x1031
|
||||||
|
输出电压异常 R uint16 1:故障,0正常 0x1032
|
||||||
|
离网输出电压不符合 R uint16 1:故障,0正常 0x1033
|
||||||
|
输出过载保护 R uint16 1:故障,0正常 0x1034
|
||||||
|
输出短路保护 R uint16 1:故障,0正常 0x1035
|
||||||
|
并机通信异常 R uint16 1:故障,0正常 0x1036
|
||||||
|
电池保险异常 R uint16 1:故障,0正常 0x1037
|
||||||
|
电池重载低压 R uint16 1:故障,0正常 0x1038
|
||||||
|
电池低压告警 R uint16 1:故障,0正常 0x1039
|
||||||
|
一拖二压差过大 R uint16 1:故障,0正常 0x103A
|
||||||
|
电池反接故障 R uint16 1:故障,0正常 0x103B
|
||||||
|
电池电压异常 R uint16 1:故障,0正常 0x103C
|
||||||
|
过载告警 R uint16 1:故障,0正常 0x103D
|
||||||
|
外部接触器异常 R uint16 1:故障,0正常 0x103E
|
||||||
|
IGBT温度传感器异常 R uint16 1:故障,0正常 0x103F
|
||||||
|
整机温度传感器异常 R uint16 1:故障,0正常 0x1040
|
||||||
|
市电CT异常 R uint16 1:故障,0正常 0x1041
|
||||||
|
逆变电流三相不平衡 R uint16 1:故障,0正常 0x1042
|
||||||
|
逆变电流直流分量异常 R uint16 1:故障,0正常 0x1043
|
||||||
|
母线不平衡 R uint16 1:故障,0正常 0x1044
|
||||||
|
逆变电压直流分量异常 R uint16 1:故障,0正常 0x1045
|
||||||
|
主接触器控制异常 R uint16 1:故障,0正常 0x1046
|
||||||
|
逆变电压控制异常 R uint16 1:故障,0正常 0x1047
|
||||||
|
直流霍尔异常 R uint16 1:故障,0正常 0x1048
|
||||||
|
电池单体过压 R uint16 1:故障,0正常 0x1049
|
||||||
|
电池单体欠压 R uint16 1:故障,0正常 0x104A
|
||||||
|
电网过压 R uint16 1:故障,0正常 0x104B
|
||||||
|
电网欠压 R uint16 1:故障,0正常 0x104C
|
||||||
|
电网过频 R uint16 1:故障,0正常 0x104D
|
||||||
|
电网欠频 R uint16 1:故障,0正常 0x104E
|
||||||
|
市电不平衡 R uint16 1:故障,0正常 0x104F
|
||||||
|
参数设置不匹配 R uint16 1:故障,0正常 0x1050
|
||||||
|
SPI通信异常 R uint16 1:故障,0正常 0x1051
|
||||||
|
SCI通信异常 R uint16 1:故障,0正常 0x1052
|
||||||
|
IIC通信异常 R uint16 1:故障,0正常 0x1053
|
||||||
|
Xintf通信异常 R uint16 1:故障,0正常 0x1054
|
||||||
|
零偏校准异常 R uint16 1:故障,0正常 0x1055
|
||||||
|
烟雾告警 R uint16 1:故障,0正常 0x1056
|
||||||
|
无电池组故障 R uint16 1异常,0正常 0x1057
|
||||||
|
环温降频 R uint16 1异常,0正常 0x1058
|
||||||
|
交流过载 R uint16 1异常,0正常 0x1059
|
||||||
|
采样异常 R uint16 1异常,0正常 0x105A
|
||||||
|
24V辅源故障 R uint16 1异常,0正常 0x105B
|
||||||
|
直流欠压异常 R uint16 1异常,0正常 0x105C
|
||||||
|
散热器过温 R uint16 1异常,0正常 0x105D
|
||||||
|
CAN配置故障 R uint16 1异常,0正常 0x105E
|
||||||
|
3.3V辅源故障 R uint16 1异常,0正常 0x105F
|
||||||
|
环境过温 R uint16 1异常,0正常 0x1060
|
||||||
|
A相IGBT逆变过流 R uint16 1异常,0正常 0x1061
|
||||||
|
B相IGBT逆变过流 R uint16 1异常,0正常 0x1062
|
||||||
|
C相IGBT逆变过流 R uint16 1异常,0正常 0x1063
|
||||||
78
bin/Release/assets/config/PCS遥测.txt
Normal file
78
bin/Release/assets/config/PCS遥测.txt
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
所属主控号 R uint16 1~4 0x0001
|
||||||
|
所属PCS号 R uint16 1~40 0x0002
|
||||||
|
总充电量 R uint32 1kWh 0x0003
|
||||||
|
总放电量 R uint32 1kWh 0x0005
|
||||||
|
散热器温度 R int16 1℃ 0x0007
|
||||||
|
内部温度 R int16 1℃ 0x0008
|
||||||
|
最大允许充电功率 R int16 0.1kW 0x0009
|
||||||
|
最大允许放电功率 R int16 0.1kW 0x000A
|
||||||
|
有功功率期望 R int16 1kWh 0x000B
|
||||||
|
无功功率期望 R int16 1kVar 0x000C
|
||||||
|
AB线电压 R int16 1V 0x000D
|
||||||
|
BC线电压 R int16 1V 0x000E
|
||||||
|
CA线电压 R int16 1V 0x000F
|
||||||
|
A相电压 R int16 1V 0x0010
|
||||||
|
B相电压 R int16 1V 0x0011
|
||||||
|
C相电压 R int16 1V 0x0012
|
||||||
|
A相频率 R int16 1Hz 0x0013
|
||||||
|
B相频率 R int16 1Hz 0x0014
|
||||||
|
C相频率 R int16 1Hz 0x0015
|
||||||
|
A相功率因数 R int16 1 0x0016
|
||||||
|
B相功率因数 R int16 1 0x0017
|
||||||
|
C相功率因数 R int16 1 0x0018
|
||||||
|
A相电流 R int16 1A 0x0019
|
||||||
|
B相电流 R int16 1A 0x001A
|
||||||
|
C相电流 R int16 1A 0x001B
|
||||||
|
A相有功功率 R int16 1kW 0x001C
|
||||||
|
B相有功功率 R int16 1kW 0x001D
|
||||||
|
C相有功功率 R int16 1kW 0x001E
|
||||||
|
A相无功功率 R int16 1kVar 0x001F
|
||||||
|
B相无功功率 R int16 1kVar 0x0020
|
||||||
|
C相无功功率 R int16 1kVar 0x0021
|
||||||
|
A相视在功率 R int16 1kVA 0x0022
|
||||||
|
B相视在功率 R int16 1kVA 0x0023
|
||||||
|
C相视在功率 R int16 1kVA 0x0024
|
||||||
|
三相总有功功率 R int16 1kW 0x0025
|
||||||
|
三相总无功功率 R int16 1kVar 0x0026
|
||||||
|
三相总视在功率 R int16 1kVA 0x0027
|
||||||
|
三相总功率因数 R int16 1 0x0028
|
||||||
|
直流功率 R int16 1kW 0x0029
|
||||||
|
直流电压 R int16 1V 0x002A
|
||||||
|
直流电流 R int16 1A 0x002B
|
||||||
|
充电功率 R int16 1kW 0x002C
|
||||||
|
放电功率 R int16 1kW 0x002D
|
||||||
|
PF值 R int16 1 0x002E
|
||||||
|
UV线/U相电网计量线电压 R int16 1V 0x002F
|
||||||
|
VW线/V相电网计量线电压 R int16 1V 0x0030
|
||||||
|
WU线/W相电网计量线电压 R int16 1V 0x0031
|
||||||
|
U相电网计量电流 R int16 1A 0x0032
|
||||||
|
V相电网计量电流 R int16 1A 0x0033
|
||||||
|
W相电网计量电流 R int16 1A 0x0034
|
||||||
|
正母线电压 R int16 1V 0x0035
|
||||||
|
可用功率 R int16 1kVA 0x0036
|
||||||
|
负母线电压 R int16 1V 0x0037
|
||||||
|
A相IGBT温度 R int16 1℃ 0x0038
|
||||||
|
B相IGBT温度 R int16 1℃ 0x0039
|
||||||
|
C相IGBT温度 R int16 1℃ 0x003A
|
||||||
|
逆变侧AB线电压 R int16 1V 0x003B
|
||||||
|
逆变侧BC线电压 R int16 1V 0x003C
|
||||||
|
逆变侧CA线电压 R int16 1V 0x003D
|
||||||
|
逆变侧A相电压 R int16 1V 0x003E
|
||||||
|
逆变侧B相电压 R int16 1V 0x003F
|
||||||
|
逆变侧C相电压 R int16 1V 0x0040
|
||||||
|
逆变侧A相电流 R int16 1A 0x0041
|
||||||
|
逆变侧B相电流 R int16 1A 0x0042
|
||||||
|
逆变侧C相电流 R int16 1A 0x0043
|
||||||
|
逆变侧A相电流直流分量 R int16 1A 0x0044
|
||||||
|
逆变侧B相电流直流分量 R int16 1A 0x0045
|
||||||
|
逆变侧C相电流直流分量 R int16 1A 0x0046
|
||||||
|
离网频率 R int16 1Hz 0x0047
|
||||||
|
A相负载量 R int16 1 0x0048
|
||||||
|
B相负载量 R int16 1 0x0049
|
||||||
|
C相负载量 R int16 1 0x004A
|
||||||
|
总负载量 R int16 1 0x004B
|
||||||
|
逆变侧AB线电压直流分量 R int16 1A 0x004C
|
||||||
|
逆变侧BC线电压直流分量 R int16 1A 0x004D
|
||||||
|
逆变侧CA线电压直流分量 R int16 1A 0x004E
|
||||||
|
在线数量 R int16 0x004F
|
||||||
|
逆变数量 R int16 0x0050
|
||||||
59
bin/Release/assets/config/PCU遥信.txt
Normal file
59
bin/Release/assets/config/PCU遥信.txt
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
所属通道号 R uint16 1~4 0x1001
|
||||||
|
故障状态 R uint16 1故障,0正常 0x1002
|
||||||
|
告警状态 R uint16 1告警,0正常 0x1003
|
||||||
|
设备在线 R uint16 1在线,0无效 0x1004
|
||||||
|
本地远程 R uint16 1本地,0远程 0x1005
|
||||||
|
启停状态 R uint16 1开机,0关机 0x1006
|
||||||
|
电网状态 R uint16 1离网,0并网 0x1007
|
||||||
|
模块状态 R uint16 1开机,0待机 0x1008
|
||||||
|
EPO急停 R uint16 1故障,0正常 0x1009
|
||||||
|
防雷器异常 R uint16 1告警,0正常 0x100A
|
||||||
|
负载电压反序 R uint16 1故障,0正常 0x100B
|
||||||
|
市电电压反序 R uint16 1故障,0正常 0x100C
|
||||||
|
输出相反序 R uint16 1故障,0正常 0x100D
|
||||||
|
过载告警 R uint16 1告警,0正常 0x100E
|
||||||
|
过载超时 R uint16 1故障,0正常 0x100F
|
||||||
|
交流过流保护 R uint16 1故障,0正常 0x1010
|
||||||
|
逆变电压异常 R uint16 1故障,0正常 0x1011
|
||||||
|
内部串口异常 R uint16 1故障,0正常 0x1012
|
||||||
|
485通信故障 R uint16 1故障,0正常 0x1013
|
||||||
|
CAN通信故障 R uint16 1故障,0正常 0x1014
|
||||||
|
E2PROM故障 R uint16 1故障,0正常 0x1015
|
||||||
|
电网过压 R uint16 1故障,0正常 0x1016
|
||||||
|
电网欠压 R uint16 1故障,0正常 0x1017
|
||||||
|
电网过频 R uint16 1故障,0正常 0x1018
|
||||||
|
电网欠频 R uint16 1故障,0正常 0x1019
|
||||||
|
电网快检综合异常 R uint16 1故障,0正常 0x101A
|
||||||
|
电网幅值快检异常 R uint16 1故障,0正常 0x101B
|
||||||
|
电网拖尾异常 R uint16 1故障,0正常 0x101C
|
||||||
|
消防输入信号NO R uint16 1闭合,0断开 0x101D
|
||||||
|
急停按钮信号NC R uint16 1急停,0正常 0x101E
|
||||||
|
避雷器NC R uint16 1故障,0正常 0x101F
|
||||||
|
避雷器断路器NC R uint16 1故障,0正常 0x1020
|
||||||
|
PCS总断路器NC R uint16 1闭合,0断开 0x1021
|
||||||
|
电操状态NO R uint16 1闭合,0断开 0x1022
|
||||||
|
远程关机NO R uint16 1开机,0无效 0x1023
|
||||||
|
远程开机NO R uint16 1开机,0无效 0x1024
|
||||||
|
BA故障信号NO R uint16 1故障,0正常 0x1025
|
||||||
|
PCS_01状态 R uint16 1在线,0掉线 0x1026
|
||||||
|
PCS_02状态 R uint16 1在线,0掉线 0x1027
|
||||||
|
PCS_03状态 R uint16 1在线,0掉线 0x1028
|
||||||
|
PCS_04状态 R uint16 1在线,0掉线 0x1029
|
||||||
|
PCS_05状态 R uint16 1在线,0掉线 0x102A
|
||||||
|
PCS_06状态 R uint16 1在线,0掉线 0x102B
|
||||||
|
PCS_07状态 R uint16 1在线,0掉线 0x102C
|
||||||
|
PCS_09状态 R uint16 1在线,0掉线 0x102D
|
||||||
|
PCS_10状态 R uint16 1在线,0掉线 0x102E
|
||||||
|
PCS_01下发设置 R uint16 1故障,0正常 0x102F
|
||||||
|
PCS_02下发设置 R uint16 1故障,0正常 0x1030
|
||||||
|
PCS_03下发设置 R uint16 1故障,0正常 0x1031
|
||||||
|
PCS_04下发设置 R uint16 1故障,0正常 0x1032
|
||||||
|
PCS_05下发设置 R uint16 1故障,0正常 0x1033
|
||||||
|
PCS_06下发设置 R uint16 1故障,0正常 0x1034
|
||||||
|
PCS_07下发设置 R uint16 1故障,0正常 0x1035
|
||||||
|
PCS_08下发设置 R uint16 1故障,0正常 0x1036
|
||||||
|
PCS_09下发设置 R uint16 1故障,0正常 0x1037
|
||||||
|
PCS_10下发设置 R uint16 1:故障,0正常 0x1038
|
||||||
|
内部DSP通信故障 R uint16 1:故障,0正常 0x1039
|
||||||
|
BMS CAN通信故障 R uint16 1:故障,0正常 0x103A
|
||||||
|
下发设置失败 R uint16 1:故障,0正常 0x103B
|
||||||
72
bin/Release/assets/config/PCU遥测.txt
Normal file
72
bin/Release/assets/config/PCU遥测.txt
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
所属通道号 R uint16 1~4 0x0001
|
||||||
|
充电功率最大许可 R uint32 1KW 0x0002
|
||||||
|
放电功率最大许可 R uint32 1KW 0x0004
|
||||||
|
交流日总充电量 R uint32 1KWh 0x0006
|
||||||
|
交流日总放电量 R uint32 1KWh 0x0008
|
||||||
|
交流总充电量 R uint32 1KWh 0x000A
|
||||||
|
交流总放电量 R uint32 1KWh 0x000C
|
||||||
|
有功功率期望值 R int16 1KW 0x000E
|
||||||
|
无功功率期望值 R int16 1kVar 0x000F
|
||||||
|
PCS侧线电压VAB R int16 1v 0x0010
|
||||||
|
PCS侧线电压VBC R int16 1v 0x0011
|
||||||
|
PCS侧线电压VCA R int16 1v 0x0012
|
||||||
|
PCS侧线A相电压 R int16 1v 0x0013
|
||||||
|
PCS侧线B相电压 R int16 1v 0x0014
|
||||||
|
PCS侧线C相电压 R int16 1v 0x0015
|
||||||
|
PCS侧A相频率 R int16 1Hz 0x0016
|
||||||
|
PCS侧B相频率 R int16 1Hz 0x0017
|
||||||
|
PCS侧C相频率 R int16 1Hz 0x0018
|
||||||
|
PCS侧功率因数A R int16 1 0x0019
|
||||||
|
PCS侧功率因数B R int16 1 0x001A
|
||||||
|
PCS侧功率因数C R int16 1 0x001B
|
||||||
|
PCS侧相电流A R int16 1A 0x001C
|
||||||
|
PCS侧相电流B R int16 1A 0x001D
|
||||||
|
PCS侧相电流C R int16 1A 0x001E
|
||||||
|
PCS侧有功功率A R int16 1kW 0x001F
|
||||||
|
PCS侧有功功率B R int16 1kW 0x0020
|
||||||
|
PCS侧有功功率C R int16 1kW 0x0021
|
||||||
|
PCS侧无功功率A R int16 1kVar 0x0022
|
||||||
|
PCS侧无功功率B R int16 1kVar 0x0023
|
||||||
|
PCS侧无功功率C R int16 1kVar 0x0024
|
||||||
|
PCS侧视在功率A R int16 1kVar 0x0025
|
||||||
|
PCS侧视在功率B R int16 1kVar 0x0026
|
||||||
|
PCS侧视在功率C R int16 1kVar 0x0027
|
||||||
|
PCS侧三相总有功功率 R int16 1kW 0x0028
|
||||||
|
PCS侧三相总无功功率 R int16 1kVar 0x0029
|
||||||
|
PCS侧三相总视在功率 R int16 1kVA 0x002A
|
||||||
|
PCS侧三相总功率因数 R int16 1 0x002B
|
||||||
|
PCU模块温度 R int16 1℃ 0x002C
|
||||||
|
外部温度NTC1 R int16 1℃ 0x002D
|
||||||
|
外部温度NTC2 R int16 1℃ 0x002E
|
||||||
|
外部温度NTC3 R int16 1℃ 0x002F
|
||||||
|
台区负载侧A相电流 R int16 1A 0x0030
|
||||||
|
台区负载侧B相电流 R int16 1A 0x0031
|
||||||
|
台区负载侧C相电流 R int16 1A 0x0032
|
||||||
|
台区负载侧A相有功功率 R int16 1kW 0x0033
|
||||||
|
台区负载侧B相有功功率 R int16 1kW 0x0034
|
||||||
|
台区负载侧C相有功功率 R int16 1kW 0x0035
|
||||||
|
台区负载侧总有功功率 R int16 1kW 0x0036
|
||||||
|
台区负载侧A相无功功率 R int16 1kVar 0x0037
|
||||||
|
台区负载侧B相无功功率 R int16 1kVar 0x0038
|
||||||
|
台区负载侧C相无功功率 R int16 1kVar 0x0039
|
||||||
|
台区负载侧总无功功率 R int16 1kVar 0x003A
|
||||||
|
台区负载侧A相视在功率 R int16 1kVA 0x003B
|
||||||
|
台区负载侧B相视在功率 R int16 1kVA 0x003C
|
||||||
|
台区负载侧C相视在功率 R int16 1kVA 0x003D
|
||||||
|
台区负载侧总视在功率 R int16 1kVA 0x003E
|
||||||
|
台区负载侧A相功率因数 R int16 1 0x003F
|
||||||
|
台区负载侧B相功率因数 R int16 1 0x0040
|
||||||
|
台区负载侧C相功率因数 R int16 1 0x0041
|
||||||
|
台区负载侧总功率因数 R int16 1 0x0042
|
||||||
|
负载侧线电压AB R int16 1V 0x0043
|
||||||
|
负载侧线电压BC R int16 1V 0x0044
|
||||||
|
负载侧线电压CA R int16 1V 0x0045
|
||||||
|
负载侧相电压AN R int16 1V 0x0046
|
||||||
|
负载侧相电压BN R int16 1V 0x0047
|
||||||
|
负载侧相电压CN R int16 1V 0x0048
|
||||||
|
负载侧A功率因素 R int16 1 0x0049
|
||||||
|
负载侧B功率因素 R int16 1 0x004A
|
||||||
|
负载侧C功率因素 R int16 1 0x004B
|
||||||
|
负载侧A视在功率 R int16 1kVA 0x004C
|
||||||
|
负载侧B视在功率 R int16 1kVA 0x004D
|
||||||
|
负载侧C视在功率 R int16 1kVA 0x004E
|
||||||
848
bin/Release/assets/config/registeraddr.json
Normal file
848
bin/Release/assets/config/registeraddr.json
Normal file
@@ -0,0 +1,848 @@
|
|||||||
|
{
|
||||||
|
"EMSYT": [
|
||||||
|
{"key": "0x0001", "datatype": "int16", "remark": "EMS工作模式 RW u - 0:无效1:本地控制模式, EMS不接受平台调控2:平台控制模式, EMS接收平台调控指令"},
|
||||||
|
{"key": "0x0002", "datatype": "int16", "remark": "有功功率 RW kW 并网恒功率模式下交流侧功率值:<0: 充电功率0: 静置>0: 放电功率"},
|
||||||
|
{"key": "0x0003", "datatype": "int16", "remark": "PCS开关机 RW u - 0: 关机1: 开机 软件开关机"},
|
||||||
|
{"key": "0x0004", "datatype": "int16", "remark": "主控对象 RW u 储能遥控对象:0:无效1:华云2:轻舟"},
|
||||||
|
{"key": "0x0005", "datatype": "int16", "remark": "A相有功功率 RW 1kW"},
|
||||||
|
{"key": "0x0006", "datatype": "int16", "remark": "B相有功功率 RW 1kW"},
|
||||||
|
{"key": "0x0007", "datatype": "int16", "remark": "C相有功功率 RW 1kW"},
|
||||||
|
{"key": "0x0008", "datatype": "int16", "remark": "三相总有功功率 RW 1kW"},
|
||||||
|
{"key": "0x0009", "datatype": "int16", "remark": "A相无功功率 RW 1kVar"},
|
||||||
|
{"key": "0x000A", "datatype": "int16", "remark": "B相无功功率 RW 1kVar"},
|
||||||
|
{"key": "0x000B", "datatype": "int16", "remark": "C相无功功率 RW 1kVar"},
|
||||||
|
{"key": "0x000C", "datatype": "int16", "remark": "三相总无功功率 RW 1kVar"},
|
||||||
|
{"key": "0x000D", "datatype": "int16", "remark": "A相电流 RW 0.01A 在使用的时候除以100转float"},
|
||||||
|
{"key": "0x000E", "datatype": "int16", "remark": "B相电流 RW 0.01A"},
|
||||||
|
{"key": "0x000F", "datatype": "int16", "remark": "C相电流 RW 0.01A"},
|
||||||
|
{"key": "0x0010", "datatype": "int16", "remark": "A相电压 RW u 1V"},
|
||||||
|
{"key": "0x0011", "datatype": "int16", "remark": "B相电压 RW u 1V"},
|
||||||
|
{"key": "0x0012", "datatype": "int16", "remark": "C相电压 RW u 1V"},
|
||||||
|
{"key": "0x0013", "datatype": "int16", "remark": "A相交流功率因数 RW 0.01 在使用的时候除以100转float"},
|
||||||
|
{"key": "0x0014", "datatype": "int16", "remark": "B相交流功率因数 RW 0.01"},
|
||||||
|
{"key": "0x0015", "datatype": "int16", "remark": "C相交流功率因数 RW 0.01"},
|
||||||
|
{"key": "0x0016", "datatype": "int16", "remark": "A相视在功率 RW 1kVA"},
|
||||||
|
{"key": "0x0017", "datatype": "int16", "remark": "B相视在功率 RW 1kVA"},
|
||||||
|
{"key": "0x0018", "datatype": "int16", "remark": "C相视在功率 RW 1kVA"},
|
||||||
|
{"key": "0x0019", "datatype": "int16", "remark": "正向总有功总需量 RW 1kW"},
|
||||||
|
{"key": "0x001A", "datatype": "int16", "remark": "数据有效性 RW 0无效 1有效"},
|
||||||
|
{"key": "0x001B", "datatype": "int16", "remark": "EMS工作模式 RW u - 0:无效1:本地控制模式, EMS不接受平台调控2:平台控制模式, EMS接收平台调控指令 2413项目需求"},
|
||||||
|
{"key": "0x001C", "datatype": "int16", "remark": "有功功率 RW u kW 并网恒功率模式下交流侧功率值:功率绝对值 没有正负 2413项目需求"},
|
||||||
|
{"key": "0x001D", "datatype": "int16", "remark": "充放电类型 RW u - 0: 关机1: 充电2:放电3:待机 2413项目需求充放电类型"},
|
||||||
|
{"key": "0x001E", "datatype": "int16", "remark": "最大SOC RW u 2413项目需求"},
|
||||||
|
{"key": "0x001F", "datatype": "int16", "remark": "最小SOC RW u 2413项目需求"},
|
||||||
|
{"key": "0x0020", "datatype": "int16", "remark": "自动并离网 RW u 0:手动1:自动 2332项目需求(若为自动,则通过主控进行并离网切换)"},
|
||||||
|
{"key": "0x0021", "datatype": "int16", "remark": "并网离网 RW u 0:并网1:离网 2332项目需求(该下发参数的前提为手动模式下)"}
|
||||||
|
],
|
||||||
|
"BCUYX": [
|
||||||
|
{"key": "0xA001", "datatype": "int16", "remark": "所属通道号 R u 1~4"},
|
||||||
|
{"key": "0xA002", "datatype": "int16", "remark": "所属BCU号 R u 1~40"},
|
||||||
|
{"key": "0xA003", "datatype": "int16", "remark": "蓄电池充放电状态 R u 0x11开路0x22待机0x33充电0x44放电"},
|
||||||
|
{"key": "0xA004", "datatype": "int16", "remark": "电池组运行状态 R u 0x11跳机0x22待机0x33放空0x44充满0x55预警0x66正常"},
|
||||||
|
{"key": "0xA005", "datatype": "int16", "remark": "簇DO1状态 R u 1:断开 2:闭合"},
|
||||||
|
{"key": "0xA006", "datatype": "int16", "remark": "簇DO2状态 R u 1:断开 2:闭合"},
|
||||||
|
{"key": "0xA007", "datatype": "int16", "remark": "继电器总正 R u 0:断开 1:闭合 2:粘连"},
|
||||||
|
{"key": "0xA008", "datatype": "int16", "remark": "继电器总负 R u 0:断开 1:闭合 2:粘连"},
|
||||||
|
{"key": "0xA009", "datatype": "int16", "remark": "继电器预充 R u 0:断开 1:闭合 2:粘连"},
|
||||||
|
{"key": "0xA00A", "datatype": "int16", "remark": "继电器bmu供电 R u 0:断开 1:闭合 2:粘连"},
|
||||||
|
{"key": "0xA00B", "datatype": "int16", "remark": "整簇总电压过高告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA00C", "datatype": "int16", "remark": "整簇总电压过低告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA00D", "datatype": "int16", "remark": "整簇中单体电压过高告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA00E", "datatype": "int16", "remark": "整簇中单体电压过低告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA00F", "datatype": "int16", "remark": "整簇中单体电压偏差过大告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA010", "datatype": "int16", "remark": "整簇中单体温度偏差过大告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA011", "datatype": "int16", "remark": "整簇中单体温度过高告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA012", "datatype": "int16", "remark": "整簇中单体温度过低告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA013", "datatype": "int16", "remark": "整簇总充电电流过高告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA014", "datatype": "int16", "remark": "整簇总放电电流过高告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA015", "datatype": "int16", "remark": "整簇总SOC过高告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA016", "datatype": "int16", "remark": "整簇总SOC过低告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA017", "datatype": "int16", "remark": "高压盒主正接触器粘连告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA018", "datatype": "int16", "remark": "高压盒主正接触器不能吸合告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA019", "datatype": "int16", "remark": "高压盒主负接触器粘连告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA01A", "datatype": "int16", "remark": "高压盒主负接触器不能吸合告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA01B", "datatype": "int16", "remark": "高压盒预充接触器粘连告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA01C", "datatype": "int16", "remark": "高压盒预充接触器不能吸合告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA01D", "datatype": "int16", "remark": "预充失败告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA01E", "datatype": "int16", "remark": "BCU电压检测模块出现问题告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA01F", "datatype": "int16", "remark": "BCU温度检测模块出现问题告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA020", "datatype": "int16", "remark": "BCU电流检测模块出现问题告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA021", "datatype": "int16", "remark": "BCU绝缘检测模块出现问题告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA022", "datatype": "int16", "remark": "高压盒内总压检测模块出现问题告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA023", "datatype": "int16", "remark": "高压盒外总压检测模块出现问题告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA024", "datatype": "int16", "remark": "PCS-CAN通信故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA025", "datatype": "int16", "remark": "高压盒供电电压过高告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA026", "datatype": "int16", "remark": "绝缘正极故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA027", "datatype": "int16", "remark": "绝缘负极故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA028", "datatype": "int16", "remark": "绝缘中间侧故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA029", "datatype": "int16", "remark": "绝缘故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA02A", "datatype": "int16", "remark": "BMU中电压采样线开路告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA02B", "datatype": "int16", "remark": "BMU中NTC采样线短开路告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA02C", "datatype": "int16", "remark": "BMU中采样芯片故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA02D", "datatype": "int16", "remark": "BMU中电池温度升高过快告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA02E", "datatype": "int16", "remark": "BMU中电池内部短路告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA02F", "datatype": "int16", "remark": "BMU充电均衡模块出现故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA030", "datatype": "int16", "remark": "BMU放电均衡模块出现故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA031", "datatype": "int16", "remark": "BMU通信故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA032", "datatype": "int16", "remark": "单体内阻过大告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA033", "datatype": "int16", "remark": "单体内阻过小告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA034", "datatype": "int16", "remark": "单体内阻阻差过大告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA035", "datatype": "int16", "remark": "簇内阻过大告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA036", "datatype": "int16", "remark": "簇内阻过小告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA037", "datatype": "int16", "remark": "SOC初始化无效告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA038", "datatype": "int16", "remark": "充电时soc降低故障告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA039", "datatype": "int16", "remark": "放电时soc升高告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA03A", "datatype": "int16", "remark": "静止时SOC跳变告警 R u 0:正常 1:告警"},
|
||||||
|
{"key": "0xA03B", "datatype": "int16", "remark": "整簇总电压过高保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA03C", "datatype": "int16", "remark": "整簇总电压过低保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA03D", "datatype": "int16", "remark": "整簇中单体电压过高保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA03E", "datatype": "int16", "remark": "整簇中单体电压过低保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA03F", "datatype": "int16", "remark": "整簇中单体电压偏差过大保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA040", "datatype": "int16", "remark": "整簇中单体温度偏差过大保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA041", "datatype": "int16", "remark": "整簇中单体温度过高保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA042", "datatype": "int16", "remark": "整簇中单体温度过低保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA043", "datatype": "int16", "remark": "整簇总充电电流过高保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA044", "datatype": "int16", "remark": "整簇总放电电流过高保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA045", "datatype": "int16", "remark": "整簇总SOC过高保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA046", "datatype": "int16", "remark": "整簇总SOC过低保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA047", "datatype": "int16", "remark": "高压盒主正接触器粘连保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA048", "datatype": "int16", "remark": "高压盒主正接触器不能吸合保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA049", "datatype": "int16", "remark": "高压盒主负接触器粘连保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA04A", "datatype": "int16", "remark": "高压盒主负接触器不能吸合保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA04B", "datatype": "int16", "remark": "高压盒预充接触器粘连保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA04C", "datatype": "int16", "remark": "高压盒预充接触器不能吸合保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA04D", "datatype": "int16", "remark": "预充失败保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA04E", "datatype": "int16", "remark": "BCU电压检测模块出现问题保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA04F", "datatype": "int16", "remark": "BCU温度检测模块出现问题保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA050", "datatype": "int16", "remark": "BCU电流检测模块出现问题保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA051", "datatype": "int16", "remark": "BCU绝缘检测模块出现问题保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA052", "datatype": "int16", "remark": "高压盒内总压检测模块出现问题保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA053", "datatype": "int16", "remark": "高压盒外总压检测模块出现问题保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA054", "datatype": "int16", "remark": "PCS-CAN通信故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA055", "datatype": "int16", "remark": "高压盒供电电压过高保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA056", "datatype": "int16", "remark": "绝缘正极故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA057", "datatype": "int16", "remark": "绝缘负极故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA058", "datatype": "int16", "remark": "绝缘中间侧故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA059", "datatype": "int16", "remark": "绝缘故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA05A", "datatype": "int16", "remark": "BMU中电压采样线开路保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA05B", "datatype": "int16", "remark": "BMU中NTC采样线短开路保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA05C", "datatype": "int16", "remark": "BMU中采样芯片故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA05D", "datatype": "int16", "remark": "BMU中电池温度升高过快保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA05E", "datatype": "int16", "remark": "BMU中电池内部短路保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA05F", "datatype": "int16", "remark": "BMU充电均衡模块出现故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA060", "datatype": "int16", "remark": "BMU放电均衡模块出现故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA061", "datatype": "int16", "remark": "BMU通信故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA062", "datatype": "int16", "remark": "单体内阻过大保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA063", "datatype": "int16", "remark": "单体内阻过小保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA064", "datatype": "int16", "remark": "单体内阻阻差过大保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA065", "datatype": "int16", "remark": "簇内阻过大保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA066", "datatype": "int16", "remark": "簇内阻过小保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA067", "datatype": "int16", "remark": "SOC初始化无效保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA068", "datatype": "int16", "remark": "充电时soc降低故障保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA069", "datatype": "int16", "remark": "放电时soc升高保护 R u 0:正常 1:保护"},
|
||||||
|
{"key": "0xA06A", "datatype": "int16", "remark": "静止时SOC跳变保护 R u 0:正常 1:保护"}
|
||||||
|
],
|
||||||
|
"BCUYC": [
|
||||||
|
{"key": "0x0001", "datatype": "int16", "remark": "所属通道号 R u 1~4"},
|
||||||
|
{"key": "0x0002", "datatype": "int16", "remark": "所属BCU号 R u 1~40"},
|
||||||
|
{"key": "0x0003", "datatype": "int32", "remark": "簇电压 R u 0.1V"},
|
||||||
|
{"key": "0x0005", "datatype": "int32", "remark": "簇电流 R 0.1A"},
|
||||||
|
{"key": "0x0007", "datatype": "int32", "remark": "簇温度 R 0.1℃"},
|
||||||
|
{"key": "0x0009", "datatype": "int32", "remark": "簇电阻 R u 1mΩ"},
|
||||||
|
{"key": "0x000B", "datatype": "int16", "remark": "簇SOC R u 0.1"},
|
||||||
|
{"key": "0x000C", "datatype": "int16", "remark": "簇SOH R u 0.1"},
|
||||||
|
{"key": "0x000D", "datatype": "int32", "remark": "簇正绝缘电阻 R u 1kΩ"},
|
||||||
|
{"key": "0x000F", "datatype": "int32", "remark": "簇负绝缘电阻 R u 1kΩ"},
|
||||||
|
{"key": "0x0011", "datatype": "int32", "remark": "簇允许最大充电电流 R 0.1A"},
|
||||||
|
{"key": "0x0013", "datatype": "int32", "remark": "簇允许最大放电电流 R 0.1A"},
|
||||||
|
{"key": "0x0015", "datatype": "int32", "remark": "簇允许最大充电功率 R u 1kW"},
|
||||||
|
{"key": "0x0017", "datatype": "int32", "remark": "簇允许最大放电功率 R u 1kW"},
|
||||||
|
{"key": "0x0019", "datatype": "int32", "remark": "簇可充容量 R u 0.1Ah"},
|
||||||
|
{"key": "0x001B", "datatype": "int32", "remark": "簇可放容量 R u 0.1Ah"},
|
||||||
|
{"key": "0x001D", "datatype": "int32", "remark": "簇单次累计充容量 R u 0.1Ah"},
|
||||||
|
{"key": "0x001F", "datatype": "int32", "remark": "簇单次累计放容量 R u 0.1Ah"},
|
||||||
|
{"key": "0x0021", "datatype": "int32", "remark": "簇总累计充容量 R u 0.1Ah"},
|
||||||
|
{"key": "0x0023", "datatype": "int32", "remark": "簇总累计放容量 R u 0.1Ah"},
|
||||||
|
{"key": "0x0025", "datatype": "int32", "remark": "簇可充电量 R u 1kWh"},
|
||||||
|
{"key": "0x0027", "datatype": "int32", "remark": "簇可放电量 R u 1kWh"},
|
||||||
|
{"key": "0x0029", "datatype": "int32", "remark": "簇单次充电量 R u 1kWh"},
|
||||||
|
{"key": "0x002B", "datatype": "int32", "remark": "簇单次放电量 R u 1kWh"},
|
||||||
|
{"key": "0x002D", "datatype": "int32", "remark": "簇累计充电量 R u 1kWh"},
|
||||||
|
{"key": "0x002F", "datatype": "int32", "remark": "簇累计放电量 R u 1kWh"},
|
||||||
|
{"key": "0x0031", "datatype": "int32", "remark": "pack累计簇总压 R u 0.1V"},
|
||||||
|
{"key": "0x0033", "datatype": "int32", "remark": "簇与pack压差 R u 0.1V"},
|
||||||
|
{"key": "0x0035", "datatype": "int32", "remark": "簇与PCS压差 R u 0.1V"},
|
||||||
|
{"key": "0x0037", "datatype": "int16", "remark": "簇中BMU个数 R u"},
|
||||||
|
{"key": "0x0038", "datatype": "int16", "remark": "簇中BMU中单体个数 R u"},
|
||||||
|
{"key": "0x0039", "datatype": "int16", "remark": "簇中BMU中温度个数 R u"},
|
||||||
|
{"key": "0x003A", "datatype": "int16", "remark": "簇中单体个数 R u"},
|
||||||
|
{"key": "0x003B", "datatype": "int16", "remark": "簇中温度个数 R u"},
|
||||||
|
{"key": "0x003C", "datatype": "int16", "remark": "单体最高SOC节号 R u"},
|
||||||
|
{"key": "0x003D", "datatype": "int16", "remark": "单体最高SOC R u 0.1"},
|
||||||
|
{"key": "0x003E", "datatype": "int16", "remark": "单体最低SOC节号 R u"},
|
||||||
|
{"key": "0x003F", "datatype": "int16", "remark": "单体最低SOC R u 0.1"},
|
||||||
|
{"key": "0x0040", "datatype": "int16", "remark": "单体最高SOH节号 R u"},
|
||||||
|
{"key": "0x0041", "datatype": "int16", "remark": "单体最高SOH R u 0.1"},
|
||||||
|
{"key": "0x0042", "datatype": "int16", "remark": "单体最低SOH节号 R u"},
|
||||||
|
{"key": "0x0043", "datatype": "int16", "remark": "单体最低SOH R u 0.1"},
|
||||||
|
{"key": "0x0044", "datatype": "int16", "remark": "单体最高电压节号 R u"},
|
||||||
|
{"key": "0x0045", "datatype": "int16", "remark": "单体最高电压 R u mV"},
|
||||||
|
{"key": "0x0046", "datatype": "int16", "remark": "单体最低电压节号 R u"},
|
||||||
|
{"key": "0x0047", "datatype": "int16", "remark": "单体最低电压 R u mV"},
|
||||||
|
{"key": "0x0048", "datatype": "int16", "remark": "单体电压差 R u mV"},
|
||||||
|
{"key": "0x0049", "datatype": "int16", "remark": "单体平均电压 R u mV"},
|
||||||
|
{"key": "0x004A", "datatype": "int16", "remark": "单体最高温度节号 R u"},
|
||||||
|
{"key": "0x004B", "datatype": "int16", "remark": "单体最高温度 R 0.1℃"},
|
||||||
|
{"key": "0x004C", "datatype": "int16", "remark": "单体最低温度节号 R u"},
|
||||||
|
{"key": "0x004D", "datatype": "int16", "remark": "单体最低温度 R 0.1℃"},
|
||||||
|
{"key": "0x004E", "datatype": "int16", "remark": "单体温度差 R 0.1℃"},
|
||||||
|
{"key": "0x004F", "datatype": "int16", "remark": "单体平均温度 R 0.1℃"},
|
||||||
|
{"key": "0x0050", "datatype": "int16", "remark": "单体最高内阻节号 R u"},
|
||||||
|
{"key": "0x0051", "datatype": "int16", "remark": "单体最高内阻 R u mΩ"},
|
||||||
|
{"key": "0x0052", "datatype": "int16", "remark": "单体最低内阻节号 R u"},
|
||||||
|
{"key": "0x0053", "datatype": "int16", "remark": "单体最低内阻 R u mΩ"},
|
||||||
|
{"key": "0x0054", "datatype": "int16", "remark": "单体内阻差 R u mΩ"},
|
||||||
|
{"key": "0x0055", "datatype": "int16", "remark": "单体平均内阻 R u mΩ"},
|
||||||
|
{"key": "0x0056", "datatype": "int16", "remark": "单体SOC R u[1000] 0.1"},
|
||||||
|
{"key": "0x043E", "datatype": "int16", "remark": "单体SOH R u[1000] 0.1"},
|
||||||
|
{"key": "0x0826", "datatype": "int16", "remark": "单体电压 R u[1000] mV"},
|
||||||
|
{"key": "0x0C0E", "datatype": "int16", "remark": "单体温度 R [1000] 0.01℃"},
|
||||||
|
{"key": "0x0FF6", "datatype": "int16", "remark": "单体内阻 R u[1000] mΩ"}
|
||||||
|
],
|
||||||
|
"BMSYC": [
|
||||||
|
{"key": "0x0001", "datatype": "int16", "remark": "SOC R u 0.1"},
|
||||||
|
{"key": "0x0002", "datatype": "int16", "remark": "SOH R u 0.1"},
|
||||||
|
{"key": "0x0003", "datatype": "int32", "remark": "电压 R u 0.1V"},
|
||||||
|
{"key": "0x0005", "datatype": "int32", "remark": "电流 R 0.1A"},
|
||||||
|
{"key": "0x0007", "datatype": "int32", "remark": "可充电量 R u 1kWh"},
|
||||||
|
{"key": "0x0009", "datatype": "int32", "remark": "可放电量 R u 1kWh"},
|
||||||
|
{"key": "0x000B", "datatype": "int32", "remark": "单次可充电量 R u 1kWh"},
|
||||||
|
{"key": "0x000D", "datatype": "int32", "remark": "单次可放电量 R u 1kWh"},
|
||||||
|
{"key": "0x000F", "datatype": "int32", "remark": "堆功率 R 1kW"},
|
||||||
|
{"key": "0x0011", "datatype": "int32", "remark": "充电量累加 R u 1kWh"},
|
||||||
|
{"key": "0x0013", "datatype": "int32", "remark": "放电量累加 R u 1kWh"},
|
||||||
|
{"key": "0x0015", "datatype": "int16", "remark": "簇最大SOC R u 0.1"},
|
||||||
|
{"key": "0x0016", "datatype": "int16", "remark": "簇最小SOC R u 0.1"},
|
||||||
|
{"key": "0x0017", "datatype": "int16", "remark": "簇最大SOC号 R u"},
|
||||||
|
{"key": "0x0018", "datatype": "int16", "remark": "簇最小SOC号 R u"},
|
||||||
|
{"key": "0x0019", "datatype": "int16", "remark": "簇SOC差值 R u 0.1"},
|
||||||
|
{"key": "0x001A", "datatype": "int16", "remark": "簇最大电压 R u 0.1V"},
|
||||||
|
{"key": "0x001B", "datatype": "int16", "remark": "簇最小电压 R u 0.1V"},
|
||||||
|
{"key": "0x001C", "datatype": "int16", "remark": "簇最大电压号 R u"},
|
||||||
|
{"key": "0x001D", "datatype": "int16", "remark": "簇最小电压号 R u"},
|
||||||
|
{"key": "0x001E", "datatype": "int16", "remark": "簇电压差值 R u 0.1V"},
|
||||||
|
{"key": "0x001F", "datatype": "int16", "remark": "单体最大电压簇号 R u"},
|
||||||
|
{"key": "0x0020", "datatype": "int16", "remark": "单体最大电压节号 R u"},
|
||||||
|
{"key": "0x0021", "datatype": "int16", "remark": "单体最大电压 R u mV"},
|
||||||
|
{"key": "0x0022", "datatype": "int16", "remark": "单体最小电压簇号 R u"},
|
||||||
|
{"key": "0x0023", "datatype": "int16", "remark": "单体最小电压节号 R u"},
|
||||||
|
{"key": "0x0024", "datatype": "int16", "remark": "单体最小电压 R u mV"},
|
||||||
|
{"key": "0x0025", "datatype": "int16", "remark": "单体平均电压 R u mV"},
|
||||||
|
{"key": "0x0026", "datatype": "int16", "remark": "单体电压差 R u mV"},
|
||||||
|
{"key": "0x0027", "datatype": "int16", "remark": "单体最大温度簇号 R u"},
|
||||||
|
{"key": "0x0028", "datatype": "int16", "remark": "单体最大温度节号 R u"},
|
||||||
|
{"key": "0x0029", "datatype": "int16", "remark": "单体最大温度 R 0.1℃"},
|
||||||
|
{"key": "0x002A", "datatype": "int16", "remark": "单体最小温度簇号 R u"},
|
||||||
|
{"key": "0x002B", "datatype": "int16", "remark": "单体最小温度节号 R u"},
|
||||||
|
{"key": "0x002C", "datatype": "int16", "remark": "单体最小温度 R 0.1℃"},
|
||||||
|
{"key": "0x002D", "datatype": "int16", "remark": "单体平均温度 R 0.1℃"},
|
||||||
|
{"key": "0x002E", "datatype": "int16", "remark": "单体温度差 R 0.1℃"},
|
||||||
|
{"key": "0x002F", "datatype": "int16", "remark": "最大内阻簇号 R u"},
|
||||||
|
{"key": "0x0030", "datatype": "int16", "remark": "最大内阻节号 R u"},
|
||||||
|
{"key": "0x0031", "datatype": "int16", "remark": "最大内阻 R u mΩ"},
|
||||||
|
{"key": "0x0032", "datatype": "int16", "remark": "最小内阻簇号 R u"},
|
||||||
|
{"key": "0x0033", "datatype": "int16", "remark": "最小内阻节号 R u"},
|
||||||
|
{"key": "0x0034", "datatype": "int16", "remark": "最小内阻 R u mΩ"},
|
||||||
|
{"key": "0x0035", "datatype": "int16", "remark": "单体平均内阻 R u mΩ"},
|
||||||
|
{"key": "0x0036", "datatype": "int16", "remark": "单体内阻差 R u mΩ"},
|
||||||
|
{"key": "0x0037", "datatype": "int16", "remark": "单体最大SOH簇号 R u"},
|
||||||
|
{"key": "0x0038", "datatype": "int16", "remark": "单体最大SOH节号 R u"},
|
||||||
|
{"key": "0x0039", "datatype": "int16", "remark": "单体最大SOH R u 0.10%"},
|
||||||
|
{"key": "0x003A", "datatype": "int16", "remark": "单体最小SOH簇号 R u"},
|
||||||
|
{"key": "0x003B", "datatype": "int16", "remark": "单体最小SOH节号 R u"},
|
||||||
|
{"key": "0x003C", "datatype": "int16", "remark": "单体最小SOH R u 0.10%"},
|
||||||
|
{"key": "0x003D", "datatype": "int16", "remark": "单体最大SOc簇号 R u"},
|
||||||
|
{"key": "0x003E", "datatype": "int16", "remark": "单体最大SOc节号 R u"},
|
||||||
|
{"key": "0x0040", "datatype": "int16", "remark": "单体最大Soc R u 0.10%"},
|
||||||
|
{"key": "0x0041", "datatype": "int16", "remark": "单体最小SOc簇号 R u"},
|
||||||
|
{"key": "0x0042", "datatype": "int16", "remark": "单体最小SOc节号 R u"},
|
||||||
|
{"key": "0x0043", "datatype": "int16", "remark": "单体最小SOc R u 0.10%"},
|
||||||
|
{"key": "0x0043", "datatype": "int32", "remark": "系统剩余最大可充电功率 R u 1KW"},
|
||||||
|
{"key": "0x0045", "datatype": "int32", "remark": "系统剩余最大可放电功率 R u 1KW"},
|
||||||
|
{"key": "0x0047", "datatype": "int16", "remark": "可充电状态 R u 1:可充电;0:不可充电"},
|
||||||
|
{"key": "0x0048", "datatype": "int16", "remark": "可放电状态 R u 1:可放电;0:不可放电"},
|
||||||
|
{"key": "0x0049", "datatype": "int16", "remark": "运行状态 R u 运行状态 0-正常 1-告警 2-保护"},
|
||||||
|
{"key": "0x004A", "datatype": "int16", "remark": "充放电状态 R u 0-待机 1-充电 2-放电"}
|
||||||
|
],
|
||||||
|
"EMSYX": [
|
||||||
|
{"key": "0x2001", "datatype": "int16", "remark": "BMS(电池堆)通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x2002", "datatype": "int64", "remark": "BCU(电池簇)通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~64"},
|
||||||
|
{"key": "0x2006", "datatype": "int16", "remark": "PCU(主控)通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x2007", "datatype": "int64", "remark": "PCS(模块)通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~64"},
|
||||||
|
{"key": "0x200B", "datatype": "int16", "remark": "电表总接点通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x200C", "datatype": "int32", "remark": "电表通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~32"},
|
||||||
|
{"key": "0x200E", "datatype": "int16", "remark": "消防通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x200F", "datatype": "int16", "remark": "UPS通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x2010", "datatype": "int16", "remark": "温湿度总接点通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x2011", "datatype": "int32", "remark": "温湿度通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~32"},
|
||||||
|
{"key": "0x2013", "datatype": "int16", "remark": "空调总接点通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x2014", "datatype": "int32", "remark": "空调通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~32"},
|
||||||
|
{"key": "0x2016", "datatype": "int16", "remark": "控制干接点(配电系统)状态 R u 0:开路1:闭合 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x2017", "datatype": "int16", "remark": "状态干接点(配电系统)状态 R u 0:开路1:闭合 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x2018", "datatype": "int16", "remark": "BCU总通信状态 R u 0:正常 1:告警 2:故障"},
|
||||||
|
{"key": "0x2019", "datatype": "int16", "remark": "PCU总通信状态 R u 0:正常 1:告警 2:故障"},
|
||||||
|
{"key": "0x201A", "datatype": "int16", "remark": "电表总通信状态 R u 0:正常 1:告警 2:故障"},
|
||||||
|
{"key": "0x201B", "datatype": "int16", "remark": "消防总通信状态 R u 0:正常 1:告警 2:故障"},
|
||||||
|
{"key": "0x201C", "datatype": "int16", "remark": "UPS总通信状态 R u 0:正常 1:告警 2:故障"},
|
||||||
|
{"key": "0x201D", "datatype": "int16", "remark": "温湿度总通信状态 R u 0:正常 1:告警 2:故障"},
|
||||||
|
{"key": "0x201E", "datatype": "int16", "remark": "空调总通信状态 R u 0:正常 1:告警 2:故障"},
|
||||||
|
{"key": "0x201F", "datatype": "int16", "remark": "EMU通信状态 R u 0:正常 1:告警 2:故障"},
|
||||||
|
{"key": "0x2020", "datatype": "int16", "remark": "冷机总通信状态 R u 0:正常 1:告警 2:故障"},
|
||||||
|
{"key": "0x2021", "datatype": "int16", "remark": "冷机总接点通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x2022", "datatype": "int16", "remark": "冷机通信状态 R u 0:正常1:故障 bit位从低到高分别对应1~16"},
|
||||||
|
{"key": "0x2023", "datatype": "", "remark": "预留"},
|
||||||
|
{"key": "0x207A", "datatype": "int16", "remark": "预留判断总表的三相总有功 < -5.0fkW 充电 >5.0fkW放电 否则停机 R u 0:充电 1:放电 2:停机 储能状态"}
|
||||||
|
],
|
||||||
|
"EMSYC": [
|
||||||
|
{"key": "0x1001", "datatype": "int16", "remark": "BMS(电池堆)个数 R u 1"},
|
||||||
|
{"key": "0x1002", "datatype": "int16", "remark": "BCU通道个数 R u 1~2"},
|
||||||
|
{"key": "0x1003", "datatype": "int16", "remark": "BCU(电池簇)个数 R u 1~40"},
|
||||||
|
{"key": "0x1004", "datatype": "int16", "remark": "PCU(主控)个数 R u 1~4"},
|
||||||
|
{"key": "0x1005", "datatype": "int16", "remark": "PCU通道个数 R u 1~4"},
|
||||||
|
{"key": "0x1006", "datatype": "int16", "remark": "PCS(模块)个数 R u 1~40"},
|
||||||
|
{"key": "0x1007", "datatype": "int16", "remark": "电表通道个数 R u 1"},
|
||||||
|
{"key": "0x1008", "datatype": "int16", "remark": "电表个数 R u 1~10"},
|
||||||
|
{"key": "0x1009", "datatype": "int16", "remark": "消防通道个数 R u 1~10"},
|
||||||
|
{"key": "0x100A", "datatype": "int16", "remark": "消防个数 R u 1~10"},
|
||||||
|
{"key": "0x100B", "datatype": "int16", "remark": "UPS通道个数 R u 1~10"},
|
||||||
|
{"key": "0x100C", "datatype": "int16", "remark": "UPS个数 R u 1~10"},
|
||||||
|
{"key": "0x100D", "datatype": "int16", "remark": "温湿度通道个数 R u 1"},
|
||||||
|
{"key": "0x100E", "datatype": "int16", "remark": "温湿度个数 R u 1~10"},
|
||||||
|
{"key": "0x100F", "datatype": "int16", "remark": "空调通道个数 R u 1"},
|
||||||
|
{"key": "0x1010", "datatype": "int16", "remark": "空调个数 R u 1~10"},
|
||||||
|
{"key": "0x1011", "datatype": "int16", "remark": "控制干接点(配电系统)个数 R u 16"},
|
||||||
|
{"key": "0x1012", "datatype": "int16", "remark": "状态干接点(配电系统)个数 R u 16"},
|
||||||
|
{"key": "0x1013", "datatype": "", "remark": "预留"},
|
||||||
|
{"key": "0x1072", "datatype": "int32", "remark": "预留预留预留预留预留预留预留预留系统最大可充电功率 R u 1KW Pcu数据"},
|
||||||
|
{"key": "0x1074", "datatype": "int32", "remark": "系统最大可放电功率 R u 1KW"},
|
||||||
|
{"key": "0x1076", "datatype": "int32", "remark": "储能母线电压 R u 0.1V 堆数据"},
|
||||||
|
{"key": "0x1078", "datatype": "int32", "remark": "储能母线电流 R 0.1A"},
|
||||||
|
{"key": "0x107A", "datatype": "int16", "remark": "储能系统SOC R u 0.1"},
|
||||||
|
{"key": "0x107B", "datatype": "int16", "remark": "储能系统SOH R u 0.1"},
|
||||||
|
{"key": "0x107C", "datatype": "int16", "remark": "电流变比 R u 电表总表数据"},
|
||||||
|
{"key": "0x107D", "datatype": "int16", "remark": "电压变比 R u"},
|
||||||
|
{"key": "0x107E", "datatype": "int32", "remark": "A相电压 R u 1V"},
|
||||||
|
{"key": "0x1080", "datatype": "int32", "remark": "B相电压 R u 1V"},
|
||||||
|
{"key": "0x1082", "datatype": "int32", "remark": "C相电压 R u 1V"},
|
||||||
|
{"key": "0x1084", "datatype": "int32", "remark": "A相电流 R 1A"},
|
||||||
|
{"key": "0x1086", "datatype": "int32", "remark": "B相电流 R 1A"},
|
||||||
|
{"key": "0x1088", "datatype": "int32", "remark": "C相电流 R 1A"},
|
||||||
|
{"key": "0x108A", "datatype": "int32", "remark": "AB相电压 R u 1V"},
|
||||||
|
{"key": "0x108C", "datatype": "int32", "remark": "BC相电压 R u 1V"},
|
||||||
|
{"key": "0x108E", "datatype": "int32", "remark": "CA相电压 R u 1V"},
|
||||||
|
{"key": "0x1090", "datatype": "int32", "remark": "A相有功功率 R 1kW"},
|
||||||
|
{"key": "0x1092", "datatype": "int32", "remark": "B相有功功率 R 1kW"},
|
||||||
|
{"key": "0x1094", "datatype": "int32", "remark": "C相有功功率 R 1kW"},
|
||||||
|
{"key": "0x1096", "datatype": "int32", "remark": "三相总有功功率 R 1kW"},
|
||||||
|
{"key": "0x1098", "datatype": "int32", "remark": "当前控制功率 R 0.1kW 堆数据"},
|
||||||
|
{"key": "0x109A", "datatype": "int32", "remark": "负荷率 R u 1% 台区控制策略数据 0不拿 大于0 默认拿第一个"},
|
||||||
|
{"key": "0x109C", "datatype": "int32", "remark": "三相不平衡度 R u 1%"},
|
||||||
|
{"key": "0x109E", "datatype": "int32", "remark": "功率因素比率 R u 1%"},
|
||||||
|
{"key": "0x10A0", "datatype": "int32", "remark": "进线开关柜功率 R 1kW 并网口电表"},
|
||||||
|
{"key": "0x10A2", "datatype": "int32", "remark": "用户关口表功率 R 1kW 并网口电表"},
|
||||||
|
{"key": "0x10A4", "datatype": "", "remark": "预留"},
|
||||||
|
{"key": "0x1104", "datatype": "int32", "remark": "预留正向总有功总需量 R 1kW"},
|
||||||
|
{"key": "0x1106", "datatype": "int32", "remark": "尖段电价 R u 1RMB"},
|
||||||
|
{"key": "0x1108", "datatype": "int32", "remark": "峰段电价 R u 1RMB"},
|
||||||
|
{"key": "0x110A", "datatype": "int32", "remark": "平段电价 R u 1RMB"},
|
||||||
|
{"key": "0x110C", "datatype": "int32", "remark": "谷段电价 R u 1RMB"},
|
||||||
|
{"key": "0x110E", "datatype": "int32", "remark": "日充电电量 R u 1kWh"},
|
||||||
|
{"key": "0x1110", "datatype": "int32", "remark": "日放电电量 R u 1kWh"},
|
||||||
|
{"key": "0x1112", "datatype": "int32", "remark": "日充电费用 R u 1RMB"},
|
||||||
|
{"key": "0x1114", "datatype": "int32", "remark": "日放电费用 R u 1RMB"},
|
||||||
|
{"key": "0x1116", "datatype": "int32", "remark": "日收益 R 1RMB"},
|
||||||
|
{"key": "0x1118", "datatype": "int32", "remark": "日正向尖有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x111A", "datatype": "int32", "remark": "日正向峰有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x111C", "datatype": "int32", "remark": "日正向平有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x111E", "datatype": "int32", "remark": "日正向谷有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1120", "datatype": "int32", "remark": "日正向总有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1122", "datatype": "int32", "remark": "日反向尖有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1124", "datatype": "int32", "remark": "日反向峰有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1126", "datatype": "int32", "remark": "日反向平有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1128", "datatype": "int32", "remark": "日反向谷有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x112A", "datatype": "int32", "remark": "日反向总有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x112C", "datatype": "int32", "remark": "总充电电量 R u 1kWh"},
|
||||||
|
{"key": "0x112E", "datatype": "int32", "remark": "总放电电量 R u 1kWh"},
|
||||||
|
{"key": "0x1130", "datatype": "int32", "remark": "总充电费用 R u 1RMB"},
|
||||||
|
{"key": "0x1132", "datatype": "int32", "remark": "总放电费用 R u 1RMB"},
|
||||||
|
{"key": "0x1134", "datatype": "int32", "remark": "总收益 R 1RMB"},
|
||||||
|
{"key": "0x1136", "datatype": "int32", "remark": "总正向尖有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1138", "datatype": "int32", "remark": "总正向峰有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x113A", "datatype": "int32", "remark": "总正向平有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x113C", "datatype": "int32", "remark": "总正向谷有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x113E", "datatype": "int32", "remark": "总正向总有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1140", "datatype": "int32", "remark": "总反向尖有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1142", "datatype": "int32", "remark": "总反向峰有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1144", "datatype": "int32", "remark": "总反向平有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1146", "datatype": "int32", "remark": "总反向谷有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x1148", "datatype": "int32", "remark": "总反向总有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x114A", "datatype": "", "remark": "预留"},
|
||||||
|
{"key": "0x11AE", "datatype": "int16", "remark": "预留预留交流A相电压 R 1V"},
|
||||||
|
{"key": "0x11AF", "datatype": "int16", "remark": "交流B相电压 R 1V"},
|
||||||
|
{"key": "0x11B0", "datatype": "int16", "remark": "交流C相电压 R 1V"},
|
||||||
|
{"key": "0x11B1", "datatype": "int16", "remark": "交流A相频率 R 1Hz"},
|
||||||
|
{"key": "0x11B2", "datatype": "int16", "remark": "交流B相频率 R 1Hz"},
|
||||||
|
{"key": "0x11B3", "datatype": "int16", "remark": "交流C相频率 R 1Hz"},
|
||||||
|
{"key": "0x11B4", "datatype": "int32", "remark": "总直流功率 R 1kW"},
|
||||||
|
{"key": "0x11B6", "datatype": "int32", "remark": "总直流电压 R u 0.1V"},
|
||||||
|
{"key": "0x11B8", "datatype": "int32", "remark": "总直流电流 R 0.1A"},
|
||||||
|
{"key": "0x11B9", "datatype": "", "remark": "预留"},
|
||||||
|
{"key": "0x121B", "datatype": "int16", "remark": "预留预留储能系统温度 R 0.1℃ 堆里面单体温度最高"},
|
||||||
|
{"key": "0x121C", "datatype": "int16", "remark": "储能充放电时段hh R u 时 0x01"},
|
||||||
|
{"key": "0x121D", "datatype": "int16", "remark": "储能充放电时段mm R u 分 0x01"},
|
||||||
|
{"key": "0x121E", "datatype": "int16", "remark": "储能充放电时段ss R u 秒 0x01"},
|
||||||
|
{"key": "0x121F", "datatype": "int16", "remark": "储能系统各时段功率 R 1kW 0x01"}
|
||||||
|
],
|
||||||
|
"PCSYX": [
|
||||||
|
{"key": "0x1001", "datatype": "int16", "remark": "所属主控号 R u 1~4"},
|
||||||
|
{"key": "0x1002", "datatype": "int16", "remark": "所属PCS号 R u 1~40"},
|
||||||
|
{"key": "0x1003", "datatype": "int16", "remark": "故障状态 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1004", "datatype": "int16", "remark": "告警状态 R u 1告警,0正常"},
|
||||||
|
{"key": "0x1005", "datatype": "int16", "remark": "设备在线 R u 1在线,0无效"},
|
||||||
|
{"key": "0x1006", "datatype": "int16", "remark": "禁止充电 R u 1禁止,0无效"},
|
||||||
|
{"key": "0x1007", "datatype": "int16", "remark": "禁止放电 R u 1禁止,0无效"},
|
||||||
|
{"key": "0x1008", "datatype": "int16", "remark": "运行状态 R u 1开机,0关机"},
|
||||||
|
{"key": "0x1009", "datatype": "int16", "remark": "充放状态 R u 0:待机,1:充电,2:放电,3:搁置"},
|
||||||
|
{"key": "0x100A", "datatype": "int16", "remark": "电网状态 R u 1离网,0并网"},
|
||||||
|
{"key": "0x100B", "datatype": "int16", "remark": "逆变供电 R u 0禁止,1使能"},
|
||||||
|
{"key": "0x100C", "datatype": "int16", "remark": "缓启动完成 R u 0禁止,1使能"},
|
||||||
|
{"key": "0x100D", "datatype": "int16", "remark": "主机标志 R u 0禁止,1使能"},
|
||||||
|
{"key": "0x100E", "datatype": "int16", "remark": "并离网状态 R u 0:并网, 1:离网"},
|
||||||
|
{"key": "0x100F", "datatype": "int16", "remark": "同步请求标志 R u 0:无效;1:动作"},
|
||||||
|
{"key": "0x1010", "datatype": "int16", "remark": "绝缘故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1011", "datatype": "int16", "remark": "漏电保护 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1012", "datatype": "int16", "remark": "直流过压 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1013", "datatype": "int16", "remark": "市电幅值异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1014", "datatype": "int16", "remark": "市电相序异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1015", "datatype": "int16", "remark": "温度开关异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1016", "datatype": "int16", "remark": "市电频率异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1017", "datatype": "int16", "remark": "IGBT过温 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1018", "datatype": "int16", "remark": "交流接地故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1019", "datatype": "int16", "remark": "逆变过流异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x101A", "datatype": "int16", "remark": "直流缓起故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x101B", "datatype": "int16", "remark": "直流主继电器故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x101C", "datatype": "int16", "remark": "风机异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x101D", "datatype": "int16", "remark": "主接触器异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x101E", "datatype": "int16", "remark": "均浮充切换超时 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x101F", "datatype": "int16", "remark": "硬件故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1020", "datatype": "int16", "remark": "机内过温 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1021", "datatype": "int16", "remark": "软启动故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1022", "datatype": "int16", "remark": "触摸屏通讯故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1023", "datatype": "int16", "remark": "防雷器故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1024", "datatype": "int16", "remark": "急停故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1025", "datatype": "int16", "remark": "BMS系统故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1026", "datatype": "int16", "remark": "BMS通讯故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1027", "datatype": "int16", "remark": "BMS干接点通讯故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1028", "datatype": "int16", "remark": "远程通讯故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1029", "datatype": "int16", "remark": "门禁告警 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x102A", "datatype": "int16", "remark": "锁相异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x102B", "datatype": "int16", "remark": "IGBT过温告警 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x102C", "datatype": "int16", "remark": "硬件过流保护 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x102D", "datatype": "int16", "remark": "驱动故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x102E", "datatype": "int16", "remark": "ID冲突 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x102F", "datatype": "int16", "remark": "电池过压 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1030", "datatype": "int16", "remark": "电池欠压 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1031", "datatype": "int16", "remark": "直流过流保护 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1032", "datatype": "int16", "remark": "输出电压异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1033", "datatype": "int16", "remark": "离网输出电压不符合 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1034", "datatype": "int16", "remark": "输出过载保护 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1035", "datatype": "int16", "remark": "输出短路保护 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1036", "datatype": "int16", "remark": "并机通信异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1037", "datatype": "int16", "remark": "电池保险异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1038", "datatype": "int16", "remark": "电池重载低压 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1039", "datatype": "int16", "remark": "电池低压告警 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x103A", "datatype": "int16", "remark": "一拖二压差过大 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x103B", "datatype": "int16", "remark": "电池反接故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x103C", "datatype": "int16", "remark": "电池电压异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x103D", "datatype": "int16", "remark": "过载告警 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x103E", "datatype": "int16", "remark": "外部接触器异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x103F", "datatype": "int16", "remark": "IGBT温度传感器异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1040", "datatype": "int16", "remark": "整机温度传感器异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1041", "datatype": "int16", "remark": "市电CT异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1042", "datatype": "int16", "remark": "逆变电流三相不平衡 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1043", "datatype": "int16", "remark": "逆变电流直流分量异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1044", "datatype": "int16", "remark": "母线不平衡 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1045", "datatype": "int16", "remark": "逆变电压直流分量异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1046", "datatype": "int16", "remark": "主接触器控制异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1047", "datatype": "int16", "remark": "逆变电压控制异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1048", "datatype": "int16", "remark": "直流霍尔异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1049", "datatype": "int16", "remark": "电池单体过压 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x104A", "datatype": "int16", "remark": "电池单体欠压 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x104B", "datatype": "int16", "remark": "电网过压 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x104C", "datatype": "int16", "remark": "电网欠压 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x104D", "datatype": "int16", "remark": "电网过频 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x104E", "datatype": "int16", "remark": "电网欠频 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x104F", "datatype": "int16", "remark": "市电不平衡 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1050", "datatype": "int16", "remark": "参数设置不匹配 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1051", "datatype": "int16", "remark": "SPI通信异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1052", "datatype": "int16", "remark": "SCI通信异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1053", "datatype": "int16", "remark": "IIC通信异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1054", "datatype": "int16", "remark": "Xintf通信异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1055", "datatype": "int16", "remark": "零偏校准异常 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1056", "datatype": "int16", "remark": "烟雾告警 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1057", "datatype": "int16", "remark": "无电池组故障 R u 1异常,0正常"},
|
||||||
|
{"key": "0x1058", "datatype": "int16", "remark": "环温降频 R u 1异常,0正常"},
|
||||||
|
{"key": "0x1059", "datatype": "int16", "remark": "交流过载 R u 1异常,0正常"},
|
||||||
|
{"key": "0x105A", "datatype": "int16", "remark": "采样异常 R u 1异常,0正常"},
|
||||||
|
{"key": "0x105B", "datatype": "int16", "remark": "24V辅源故障 R u 1异常,0正常"},
|
||||||
|
{"key": "0x105C", "datatype": "int16", "remark": "直流欠压异常 R u 1异常,0正常"},
|
||||||
|
{"key": "0x105D", "datatype": "int16", "remark": "散热器过温 R u 1异常,0正常"},
|
||||||
|
{"key": "0x105E", "datatype": "int16", "remark": "CAN配置故障 R u 1异常,0正常"},
|
||||||
|
{"key": "0x105F", "datatype": "int16", "remark": "3.3V辅源故障 R u 1异常,0正常"},
|
||||||
|
{"key": "0x1060", "datatype": "int16", "remark": "环境过温 R u 1异常,0正常"},
|
||||||
|
{"key": "0x1061", "datatype": "int16", "remark": "A相IGBT逆变过流 R u 1异常,0正常"},
|
||||||
|
{"key": "0x1062", "datatype": "int16", "remark": "B相IGBT逆变过流 R u 1异常,0正常"},
|
||||||
|
{"key": "0x1063", "datatype": "int16", "remark": "C相IGBT逆变过流 R u 1异常,0正常"}
|
||||||
|
],
|
||||||
|
"PCSYC": [
|
||||||
|
{"key": "0x0001", "datatype": "int16", "remark": "所属主控号 R u 1~4"},
|
||||||
|
{"key": "0x0002", "datatype": "int16", "remark": "所属PCS号 R u 1~40"},
|
||||||
|
{"key": "0x0003", "datatype": "int32", "remark": "总充电量 R u 1kWh"},
|
||||||
|
{"key": "0x0005", "datatype": "int32", "remark": "总放电量 R u 1kWh"},
|
||||||
|
{"key": "0x0007", "datatype": "int16", "remark": "散热器温度 R 1℃"},
|
||||||
|
{"key": "0x0008", "datatype": "int16", "remark": "内部温度 R 1℃"},
|
||||||
|
{"key": "0x0009", "datatype": "int16", "remark": "最大允许充电功率 R 0.1kW"},
|
||||||
|
{"key": "0x000A", "datatype": "int16", "remark": "最大允许放电功率 R 0.1kW"},
|
||||||
|
{"key": "0x000B", "datatype": "int16", "remark": "有功功率期望 R 1kWh"},
|
||||||
|
{"key": "0x000C", "datatype": "int16", "remark": "无功功率期望 R 1kVar"},
|
||||||
|
{"key": "0x000D", "datatype": "int16", "remark": "AB线电压 R 1V"},
|
||||||
|
{"key": "0x000E", "datatype": "int16", "remark": "BC线电压 R 1V"},
|
||||||
|
{"key": "0x000F", "datatype": "int16", "remark": "CA线电压 R 1V"},
|
||||||
|
{"key": "0x0010", "datatype": "int16", "remark": "A相电压 R 1V"},
|
||||||
|
{"key": "0x0011", "datatype": "int16", "remark": "B相电压 R 1V"},
|
||||||
|
{"key": "0x0012", "datatype": "int16", "remark": "C相电压 R 1V"},
|
||||||
|
{"key": "0x0013", "datatype": "int16", "remark": "A相频率 R 1Hz"},
|
||||||
|
{"key": "0x0014", "datatype": "int16", "remark": "B相频率 R 1Hz"},
|
||||||
|
{"key": "0x0015", "datatype": "int16", "remark": "C相频率 R 1Hz"},
|
||||||
|
{"key": "0x0016", "datatype": "int16", "remark": "A相功率因数 R 1"},
|
||||||
|
{"key": "0x0017", "datatype": "int16", "remark": "B相功率因数 R 1"},
|
||||||
|
{"key": "0x0018", "datatype": "int16", "remark": "C相功率因数 R 1"},
|
||||||
|
{"key": "0x0019", "datatype": "int16", "remark": "A相电流 R 1A"},
|
||||||
|
{"key": "0x001A", "datatype": "int16", "remark": "B相电流 R 1A"},
|
||||||
|
{"key": "0x001B", "datatype": "int16", "remark": "C相电流 R 1A"},
|
||||||
|
{"key": "0x001C", "datatype": "int16", "remark": "A相有功功率 R 1kW"},
|
||||||
|
{"key": "0x001D", "datatype": "int16", "remark": "B相有功功率 R 1kW"},
|
||||||
|
{"key": "0x001E", "datatype": "int16", "remark": "C相有功功率 R 1kW"},
|
||||||
|
{"key": "0x001F", "datatype": "int16", "remark": "A相无功功率 R 1kVar"},
|
||||||
|
{"key": "0x0020", "datatype": "int16", "remark": "B相无功功率 R 1kVar"},
|
||||||
|
{"key": "0x0021", "datatype": "int16", "remark": "C相无功功率 R 1kVar"},
|
||||||
|
{"key": "0x0022", "datatype": "int16", "remark": "A相视在功率 R 1kVA"},
|
||||||
|
{"key": "0x0023", "datatype": "int16", "remark": "B相视在功率 R 1kVA"},
|
||||||
|
{"key": "0x0024", "datatype": "int16", "remark": "C相视在功率 R 1kVA"},
|
||||||
|
{"key": "0x0025", "datatype": "int16", "remark": "三相总有功功率 R 1kW"},
|
||||||
|
{"key": "0x0026", "datatype": "int16", "remark": "三相总无功功率 R 1kVar"},
|
||||||
|
{"key": "0x0027", "datatype": "int16", "remark": "三相总视在功率 R 1kVA"},
|
||||||
|
{"key": "0x0028", "datatype": "int16", "remark": "三相总功率因数 R 1"},
|
||||||
|
{"key": "0x0029", "datatype": "int16", "remark": "直流功率 R 1kW"},
|
||||||
|
{"key": "0x002A", "datatype": "int16", "remark": "直流电压 R 1V"},
|
||||||
|
{"key": "0x002B", "datatype": "int16", "remark": "直流电流 R 1A"},
|
||||||
|
{"key": "0x002C", "datatype": "int16", "remark": "充电功率 R 1kW"},
|
||||||
|
{"key": "0x002D", "datatype": "int16", "remark": "放电功率 R 1kW"},
|
||||||
|
{"key": "0x002E", "datatype": "int16", "remark": "PF值 R 1"},
|
||||||
|
{"key": "0x002F", "datatype": "int16", "remark": "UV线/U相电网计量线电压 R 1V"},
|
||||||
|
{"key": "0x0030", "datatype": "int16", "remark": "VW线/V相电网计量线电压 R 1V"},
|
||||||
|
{"key": "0x0031", "datatype": "int16", "remark": "WU线/W相电网计量线电压 R 1V"},
|
||||||
|
{"key": "0x0032", "datatype": "int16", "remark": "U相电网计量电流 R 1A"},
|
||||||
|
{"key": "0x0033", "datatype": "int16", "remark": "V相电网计量电流 R 1A"},
|
||||||
|
{"key": "0x0034", "datatype": "int16", "remark": "W相电网计量电流 R 1A"},
|
||||||
|
{"key": "0x0035", "datatype": "int16", "remark": "正母线电压 R 1V"},
|
||||||
|
{"key": "0x0036", "datatype": "int16", "remark": "可用功率 R 1kVA"},
|
||||||
|
{"key": "0x0037", "datatype": "int16", "remark": "负母线电压 R 1V"},
|
||||||
|
{"key": "0x0038", "datatype": "int16", "remark": "A相IGBT温度 R 1℃"},
|
||||||
|
{"key": "0x0039", "datatype": "int16", "remark": "B相IGBT温度 R 1℃"},
|
||||||
|
{"key": "0x003A", "datatype": "int16", "remark": "C相IGBT温度 R 1℃"},
|
||||||
|
{"key": "0x003B", "datatype": "int16", "remark": "逆变侧AB线电压 R 1V"},
|
||||||
|
{"key": "0x003C", "datatype": "int16", "remark": "逆变侧BC线电压 R 1V"},
|
||||||
|
{"key": "0x003D", "datatype": "int16", "remark": "逆变侧CA线电压 R 1V"},
|
||||||
|
{"key": "0x003E", "datatype": "int16", "remark": "逆变侧A相电压 R 1V"},
|
||||||
|
{"key": "0x003F", "datatype": "int16", "remark": "逆变侧B相电压 R 1V"},
|
||||||
|
{"key": "0x0040", "datatype": "int16", "remark": "逆变侧C相电压 R 1V"},
|
||||||
|
{"key": "0x0041", "datatype": "int16", "remark": "逆变侧A相电流 R 1A"},
|
||||||
|
{"key": "0x0042", "datatype": "int16", "remark": "逆变侧B相电流 R 1A"},
|
||||||
|
{"key": "0x0043", "datatype": "int16", "remark": "逆变侧C相电流 R 1A"},
|
||||||
|
{"key": "0x0044", "datatype": "int16", "remark": "逆变侧A相电流直流分量 R 1A"},
|
||||||
|
{"key": "0x0045", "datatype": "int16", "remark": "逆变侧B相电流直流分量 R 1A"},
|
||||||
|
{"key": "0x0046", "datatype": "int16", "remark": "逆变侧C相电流直流分量 R 1A"},
|
||||||
|
{"key": "0x0047", "datatype": "int16", "remark": "离网频率 R 1Hz"},
|
||||||
|
{"key": "0x0048", "datatype": "int16", "remark": "A相负载量 R 1"},
|
||||||
|
{"key": "0x0049", "datatype": "int16", "remark": "B相负载量 R 1"},
|
||||||
|
{"key": "0x004A", "datatype": "int16", "remark": "C相负载量 R 1"},
|
||||||
|
{"key": "0x004B", "datatype": "int16", "remark": "总负载量 R 1"},
|
||||||
|
{"key": "0x004C", "datatype": "int16", "remark": "逆变侧AB线电压直流分量 R 1A"},
|
||||||
|
{"key": "0x004D", "datatype": "int16", "remark": "逆变侧BC线电压直流分量 R 1A"},
|
||||||
|
{"key": "0x004E", "datatype": "int16", "remark": "逆变侧CA线电压直流分量 R 1A"},
|
||||||
|
{"key": "0x004F", "datatype": "int16", "remark": "在线数量 R "},
|
||||||
|
{"key": "0x0050", "datatype": "int16", "remark": "逆变数量 R "}
|
||||||
|
],
|
||||||
|
"PCUYX": [
|
||||||
|
{"key": "0x1001", "datatype": "int16", "remark": "所属通道号 R u 1~4"},
|
||||||
|
{"key": "0x1002", "datatype": "int16", "remark": "故障状态 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1003", "datatype": "int16", "remark": "告警状态 R u 1告警,0正常"},
|
||||||
|
{"key": "0x1004", "datatype": "int16", "remark": "设备在线 R u 1在线,0无效"},
|
||||||
|
{"key": "0x1005", "datatype": "int16", "remark": "本地远程 R u 1本地,0远程"},
|
||||||
|
{"key": "0x1006", "datatype": "int16", "remark": "启停状态 R u 1开机,0关机"},
|
||||||
|
{"key": "0x1007", "datatype": "int16", "remark": "电网状态 R u 1离网,0并网"},
|
||||||
|
{"key": "0x1008", "datatype": "int16", "remark": "模块状态 R u 1开机,0待机"},
|
||||||
|
{"key": "0x1009", "datatype": "int16", "remark": "EPO急停 R u 1故障,0正常"},
|
||||||
|
{"key": "0x100A", "datatype": "int16", "remark": "防雷器异常 R u 1告警,0正常"},
|
||||||
|
{"key": "0x100B", "datatype": "int16", "remark": "负载电压反序 R u 1故障,0正常"},
|
||||||
|
{"key": "0x100C", "datatype": "int16", "remark": "市电电压反序 R u 1故障,0正常"},
|
||||||
|
{"key": "0x100D", "datatype": "int16", "remark": "输出相反序 R u 1故障,0正常"},
|
||||||
|
{"key": "0x100E", "datatype": "int16", "remark": "过载告警 R u 1告警,0正常"},
|
||||||
|
{"key": "0x100F", "datatype": "int16", "remark": "过载超时 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1010", "datatype": "int16", "remark": "交流过流保护 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1011", "datatype": "int16", "remark": "逆变电压异常 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1012", "datatype": "int16", "remark": "内部串口异常 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1013", "datatype": "int16", "remark": "485通信故障 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1014", "datatype": "int16", "remark": "CAN通信故障 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1015", "datatype": "int16", "remark": "E2PROM故障 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1016", "datatype": "int16", "remark": "电网过压 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1017", "datatype": "int16", "remark": "电网欠压 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1018", "datatype": "int16", "remark": "电网过频 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1019", "datatype": "int16", "remark": "电网欠频 R u 1故障,0正常"},
|
||||||
|
{"key": "0x101A", "datatype": "int16", "remark": "电网快检综合异常 R u 1故障,0正常"},
|
||||||
|
{"key": "0x101B", "datatype": "int16", "remark": "电网幅值快检异常 R u 1故障,0正常"},
|
||||||
|
{"key": "0x101C", "datatype": "int16", "remark": "电网拖尾异常 R u 1故障,0正常"},
|
||||||
|
{"key": "0x101D", "datatype": "int16", "remark": "消防输入信号NO R u 1闭合,0断开"},
|
||||||
|
{"key": "0x101E", "datatype": "int16", "remark": "急停按钮信号NC R u 1急停,0正常"},
|
||||||
|
{"key": "0x101F", "datatype": "int16", "remark": "避雷器NC R u 1故障,0正常"},
|
||||||
|
{"key": "0x1020", "datatype": "int16", "remark": "避雷器断路器NC R u 1故障,0正常"},
|
||||||
|
{"key": "0x1021", "datatype": "int16", "remark": "PCS总断路器NC R u 1闭合,0断开"},
|
||||||
|
{"key": "0x1022", "datatype": "int16", "remark": "电操状态NO R u 1闭合,0断开"},
|
||||||
|
{"key": "0x1023", "datatype": "int16", "remark": "远程关机NO R u 1开机,0无效"},
|
||||||
|
{"key": "0x1024", "datatype": "int16", "remark": "远程开机NO R u 1开机,0无效"},
|
||||||
|
{"key": "0x1025", "datatype": "int16", "remark": "BA故障信号NO R u 1故障,0正常"},
|
||||||
|
{"key": "0x1026", "datatype": "int16", "remark": "PCS_01状态 R u 1在线,0掉线"},
|
||||||
|
{"key": "0x1027", "datatype": "int16", "remark": "PCS_02状态 R u 1在线,0掉线"},
|
||||||
|
{"key": "0x1028", "datatype": "int16", "remark": "PCS_03状态 R u 1在线,0掉线"},
|
||||||
|
{"key": "0x1029", "datatype": "int16", "remark": "PCS_04状态 R u 1在线,0掉线"},
|
||||||
|
{"key": "0x102A", "datatype": "int16", "remark": "PCS_05状态 R u 1在线,0掉线"},
|
||||||
|
{"key": "0x102B", "datatype": "int16", "remark": "PCS_06状态 R u 1在线,0掉线"},
|
||||||
|
{"key": "0x102C", "datatype": "int16", "remark": "PCS_07状态 R u 1在线,0掉线"},
|
||||||
|
{"key": "0x102D", "datatype": "int16", "remark": "PCS_09状态 R u 1在线,0掉线"},
|
||||||
|
{"key": "0x102E", "datatype": "int16", "remark": "PCS_10状态 R u 1在线,0掉线"},
|
||||||
|
{"key": "0x102F", "datatype": "int16", "remark": "PCS_01下发设置 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1030", "datatype": "int16", "remark": "PCS_02下发设置 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1031", "datatype": "int16", "remark": "PCS_03下发设置 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1032", "datatype": "int16", "remark": "PCS_04下发设置 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1033", "datatype": "int16", "remark": "PCS_05下发设置 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1034", "datatype": "int16", "remark": "PCS_06下发设置 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1035", "datatype": "int16", "remark": "PCS_07下发设置 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1036", "datatype": "int16", "remark": "PCS_08下发设置 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1037", "datatype": "int16", "remark": "PCS_09下发设置 R u 1故障,0正常"},
|
||||||
|
{"key": "0x1038", "datatype": "int16", "remark": "PCS_10下发设置 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x1039", "datatype": "int16", "remark": "内部DSP通信故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x103A", "datatype": "int16", "remark": "BMS CAN通信故障 R u 1:故障,0正常"},
|
||||||
|
{"key": "0x103B", "datatype": "int16", "remark": "下发设置失败 R u 1:故障,0正常"}
|
||||||
|
],
|
||||||
|
"PCUYC": [
|
||||||
|
{"key": "0x0001", "datatype": "int16", "remark": "所属通道号 R u 1~4"},
|
||||||
|
{"key": "0x0002", "datatype": "int32", "remark": "充电功率最大许可 R u 1KW"},
|
||||||
|
{"key": "0x0004", "datatype": "int32", "remark": "放电功率最大许可 R u 1KW"},
|
||||||
|
{"key": "0x0006", "datatype": "int32", "remark": "交流日总充电量 R u 1KWh"},
|
||||||
|
{"key": "0x0008", "datatype": "int32", "remark": "交流日总放电量 R u 1KWh"},
|
||||||
|
{"key": "0x000A", "datatype": "int32", "remark": "交流总充电量 R u 1KWh"},
|
||||||
|
{"key": "0x000C", "datatype": "int32", "remark": "交流总放电量 R u 1KWh"},
|
||||||
|
{"key": "0x000E", "datatype": "int16", "remark": "有功功率期望值 R 1KW"},
|
||||||
|
{"key": "0x000F", "datatype": "int16", "remark": "无功功率期望值 R 1kVar"},
|
||||||
|
{"key": "0x0010", "datatype": "int16", "remark": "PCS侧线电压VAB R 1v"},
|
||||||
|
{"key": "0x0011", "datatype": "int16", "remark": "PCS侧线电压VBC R 1v"},
|
||||||
|
{"key": "0x0012", "datatype": "int16", "remark": "PCS侧线电压VCA R 1v"},
|
||||||
|
{"key": "0x0013", "datatype": "int16", "remark": "PCS侧线A相电压 R 1v"},
|
||||||
|
{"key": "0x0014", "datatype": "int16", "remark": "PCS侧线B相电压 R 1v"},
|
||||||
|
{"key": "0x0015", "datatype": "int16", "remark": "PCS侧线C相电压 R 1v"},
|
||||||
|
{"key": "0x0016", "datatype": "int16", "remark": "PCS侧A相频率 R 1Hz"},
|
||||||
|
{"key": "0x0017", "datatype": "int16", "remark": "PCS侧B相频率 R 1Hz"},
|
||||||
|
{"key": "0x0018", "datatype": "int16", "remark": "PCS侧C相频率 R 1Hz"},
|
||||||
|
{"key": "0x0019", "datatype": "int16", "remark": "PCS侧功率因数A R 1"},
|
||||||
|
{"key": "0x001A", "datatype": "int16", "remark": "PCS侧功率因数B R 1"},
|
||||||
|
{"key": "0x001B", "datatype": "int16", "remark": "PCS侧功率因数C R 1"},
|
||||||
|
{"key": "0x001C", "datatype": "int16", "remark": "PCS侧相电流A R 1A"},
|
||||||
|
{"key": "0x001D", "datatype": "int16", "remark": "PCS侧相电流B R 1A"},
|
||||||
|
{"key": "0x001E", "datatype": "int16", "remark": "PCS侧相电流C R 1A"},
|
||||||
|
{"key": "0x001F", "datatype": "int16", "remark": "PCS侧有功功率A R 1kW"},
|
||||||
|
{"key": "0x0020", "datatype": "int16", "remark": "PCS侧有功功率B R 1kW"},
|
||||||
|
{"key": "0x0021", "datatype": "int16", "remark": "PCS侧有功功率C R 1kW"},
|
||||||
|
{"key": "0x0022", "datatype": "int16", "remark": "PCS侧无功功率A R 1kVar"},
|
||||||
|
{"key": "0x0023", "datatype": "int16", "remark": "PCS侧无功功率B R 1kVar"},
|
||||||
|
{"key": "0x0024", "datatype": "int16", "remark": "PCS侧无功功率C R 1kVar"},
|
||||||
|
{"key": "0x0025", "datatype": "int16", "remark": "PCS侧视在功率A R 1kVar"},
|
||||||
|
{"key": "0x0026", "datatype": "int16", "remark": "PCS侧视在功率B R 1kVar"},
|
||||||
|
{"key": "0x0027", "datatype": "int16", "remark": "PCS侧视在功率C R 1kVar"},
|
||||||
|
{"key": "0x0028", "datatype": "int16", "remark": "PCS侧三相总有功功率 R 1kW"},
|
||||||
|
{"key": "0x0029", "datatype": "int16", "remark": "PCS侧三相总无功功率 R 1kVar"},
|
||||||
|
{"key": "0x002A", "datatype": "int16", "remark": "PCS侧三相总视在功率 R 1kVA"},
|
||||||
|
{"key": "0x002B", "datatype": "int16", "remark": "PCS侧三相总功率因数 R 1"},
|
||||||
|
{"key": "0x002C", "datatype": "int16", "remark": "PCU模块温度 R 1℃"},
|
||||||
|
{"key": "0x002D", "datatype": "int16", "remark": "外部温度NTC1 R 1℃"},
|
||||||
|
{"key": "0x002E", "datatype": "int16", "remark": "外部温度NTC2 R 1℃"},
|
||||||
|
{"key": "0x002F", "datatype": "int16", "remark": "外部温度NTC3 R 1℃"},
|
||||||
|
{"key": "0x0030", "datatype": "int16", "remark": "台区负载侧A相电流 R 1A"},
|
||||||
|
{"key": "0x0031", "datatype": "int16", "remark": "台区负载侧B相电流 R 1A"},
|
||||||
|
{"key": "0x0032", "datatype": "int16", "remark": "台区负载侧C相电流 R 1A"},
|
||||||
|
{"key": "0x0033", "datatype": "int16", "remark": "台区负载侧A相有功功率 R 1kW"},
|
||||||
|
{"key": "0x0034", "datatype": "int16", "remark": "台区负载侧B相有功功率 R 1kW"},
|
||||||
|
{"key": "0x0035", "datatype": "int16", "remark": "台区负载侧C相有功功率 R 1kW"},
|
||||||
|
{"key": "0x0036", "datatype": "int16", "remark": "台区负载侧总有功功率 R 1kW"},
|
||||||
|
{"key": "0x0037", "datatype": "int16", "remark": "台区负载侧A相无功功率 R 1kVar"},
|
||||||
|
{"key": "0x0038", "datatype": "int16", "remark": "台区负载侧B相无功功率 R 1kVar"},
|
||||||
|
{"key": "0x0039", "datatype": "int16", "remark": "台区负载侧C相无功功率 R 1kVar"},
|
||||||
|
{"key": "0x003A", "datatype": "int16", "remark": "台区负载侧总无功功率 R 1kVar"},
|
||||||
|
{"key": "0x003B", "datatype": "int16", "remark": "台区负载侧A相视在功率 R 1kVA"},
|
||||||
|
{"key": "0x003C", "datatype": "int16", "remark": "台区负载侧B相视在功率 R 1kVA"},
|
||||||
|
{"key": "0x003D", "datatype": "int16", "remark": "台区负载侧C相视在功率 R 1kVA"},
|
||||||
|
{"key": "0x003E", "datatype": "int16", "remark": "台区负载侧总视在功率 R 1kVA"},
|
||||||
|
{"key": "0x003F", "datatype": "int16", "remark": "台区负载侧A相功率因数 R 1"},
|
||||||
|
{"key": "0x0040", "datatype": "int16", "remark": "台区负载侧B相功率因数 R 1"},
|
||||||
|
{"key": "0x0041", "datatype": "int16", "remark": "台区负载侧C相功率因数 R 1"},
|
||||||
|
{"key": "0x0042", "datatype": "int16", "remark": "台区负载侧总功率因数 R 1"},
|
||||||
|
{"key": "0x0043", "datatype": "int16", "remark": "负载侧线电压AB R 1V"},
|
||||||
|
{"key": "0x0044", "datatype": "int16", "remark": "负载侧线电压BC R 1V"},
|
||||||
|
{"key": "0x0045", "datatype": "int16", "remark": "负载侧线电压CA R 1V"},
|
||||||
|
{"key": "0x0046", "datatype": "int16", "remark": "负载侧相电压AN R 1V"},
|
||||||
|
{"key": "0x0047", "datatype": "int16", "remark": "负载侧相电压BN R 1V"},
|
||||||
|
{"key": "0x0048", "datatype": "int16", "remark": "负载侧相电压CN R 1V"},
|
||||||
|
{"key": "0x0049", "datatype": "int16", "remark": "负载侧A功率因素 R 1"},
|
||||||
|
{"key": "0x004A", "datatype": "int16", "remark": "负载侧B功率因素 R 1"},
|
||||||
|
{"key": "0x004B", "datatype": "int16", "remark": "负载侧C功率因素 R 1"},
|
||||||
|
{"key": "0x004C", "datatype": "int16", "remark": "负载侧A视在功率 R 1kVA"},
|
||||||
|
{"key": "0x004D", "datatype": "int16", "remark": "负载侧B视在功率 R 1kVA"},
|
||||||
|
{"key": "0x004E", "datatype": "int16", "remark": "负载侧C视在功率 R 1kVA"}
|
||||||
|
],
|
||||||
|
"MEMYC": [
|
||||||
|
{"key": "0x0001", "datatype": "int16", "remark": "所属通道号 R u 1"},
|
||||||
|
{"key": "0x0002", "datatype": "int16", "remark": "电表地址 R u[6]"},
|
||||||
|
{"key": "0x0008", "datatype": "int16", "remark": "电表类型 R u 0:储能站总表1:逆变前侧电表2:逆变后侧电表3:配电柜电表4:并网口电表"},
|
||||||
|
{"key": "0x0009", "datatype": "int16", "remark": "电流变比 R u"},
|
||||||
|
{"key": "0x000A", "datatype": "int16", "remark": "电压变比 R u"},
|
||||||
|
{"key": "0x000B", "datatype": "int32", "remark": "A相电压 R u 1V"},
|
||||||
|
{"key": "0x000D", "datatype": "int32", "remark": "B相电压 R u 1V"},
|
||||||
|
{"key": "0x000F", "datatype": "int32", "remark": "C相电压 R u 1V"},
|
||||||
|
{"key": "0x0011", "datatype": "int32", "remark": "A相电流 R 1A"},
|
||||||
|
{"key": "0x0013", "datatype": "int32", "remark": "B相电流 R 1A"},
|
||||||
|
{"key": "0x0015", "datatype": "int32", "remark": "C相电流 R 1A"},
|
||||||
|
{"key": "0x0017", "datatype": "int32", "remark": "AB相电压 R u 1V"},
|
||||||
|
{"key": "0x0019", "datatype": "int32", "remark": "BC相电压 R u 1V"},
|
||||||
|
{"key": "0x001B", "datatype": "int32", "remark": "CA相电压 R u 1V"},
|
||||||
|
{"key": "0x001D", "datatype": "int32", "remark": "A相有功 R 1kW"},
|
||||||
|
{"key": "0x001F", "datatype": "int32", "remark": "B相有功 R 1kW"},
|
||||||
|
{"key": "0x0021", "datatype": "int32", "remark": "C相有功 R 1kW"},
|
||||||
|
{"key": "0x0023", "datatype": "int32", "remark": "三相总有功 R 1kW"},
|
||||||
|
{"key": "0x0025", "datatype": "int32", "remark": "正向总有功总需量 R 1kW"},
|
||||||
|
{"key": "0x0027", "datatype": "int32", "remark": "尖段电价 R u 1RMB"},
|
||||||
|
{"key": "0x0029", "datatype": "int32", "remark": "峰段电价 R u 1RMB"},
|
||||||
|
{"key": "0x002B", "datatype": "int32", "remark": "平段电价 R u 1RMB"},
|
||||||
|
{"key": "0x002D", "datatype": "int32", "remark": "谷段电价 R u 1RMB"},
|
||||||
|
{"key": "0x002F", "datatype": "int32", "remark": "日充电电量 R u 1kWh"},
|
||||||
|
{"key": "0x0031", "datatype": "int32", "remark": "日放电电量 R u 1kWh"},
|
||||||
|
{"key": "0x0033", "datatype": "int32", "remark": "日充电费用 R u 1RMB"},
|
||||||
|
{"key": "0x0035", "datatype": "int32", "remark": "日放电费用 R u 1RMB"},
|
||||||
|
{"key": "0x0037", "datatype": "int32", "remark": "日收益 R 1RMB"},
|
||||||
|
{"key": "0x0039", "datatype": "int32", "remark": "日正向尖有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x003B", "datatype": "int32", "remark": "日正向峰有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x003D", "datatype": "int32", "remark": "日正向平有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x003F", "datatype": "int32", "remark": "日正向谷有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0041", "datatype": "int32", "remark": "日正向总有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0043", "datatype": "int32", "remark": "日反向尖有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0045", "datatype": "int32", "remark": "日反向峰有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0047", "datatype": "int32", "remark": "日反向平有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0049", "datatype": "int32", "remark": "日反向谷有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x004B", "datatype": "int32", "remark": "日反向总有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x004D", "datatype": "int32", "remark": "总充电电量 R u 1kWh"},
|
||||||
|
{"key": "0x004F", "datatype": "int32", "remark": "总放电电量 R u 1kWh"},
|
||||||
|
{"key": "0x0051", "datatype": "int32", "remark": "总充电费用 R u 1RMB"},
|
||||||
|
{"key": "0x0053", "datatype": "int32", "remark": "总放电费用 R u 1RMB"},
|
||||||
|
{"key": "0x0055", "datatype": "int32", "remark": "总收益 R 1RMB"},
|
||||||
|
{"key": "0x0057", "datatype": "int32", "remark": "总正向尖有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0059", "datatype": "int32", "remark": "总正向峰有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x005B", "datatype": "int32", "remark": "总正向平有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x005D", "datatype": "int32", "remark": "总正向谷有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x005F", "datatype": "int32", "remark": "总正向总有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0061", "datatype": "int32", "remark": "总反向尖有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0063", "datatype": "int32", "remark": "总反向峰有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0065", "datatype": "int32", "remark": "总反向平有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0067", "datatype": "int32", "remark": "总反向谷有功电能 R u 1kWh"},
|
||||||
|
{"key": "0x0069", "datatype": "int32", "remark": "总反向总有功电能 R u 1kWh"}
|
||||||
|
],
|
||||||
|
"THYC": [
|
||||||
|
{"key": "0x0001", "datatype": "int16", "remark": "所属通道号 R u 1"},
|
||||||
|
{"key": "0x0002", "datatype": "int16", "remark": "所属温湿度号 R u 1~10"},
|
||||||
|
{"key": "0x0003", "datatype": "int16", "remark": "温度 R 0.1℃"},
|
||||||
|
{"key": "0x0004", "datatype": "int16", "remark": "湿度 R 0.1℃"}
|
||||||
|
],
|
||||||
|
"Fire40YX": [
|
||||||
|
{"key": "0x0001", "datatype": "int16", "remark": "所属通道号 R u 1~10"},
|
||||||
|
{"key": "0x0002", "datatype": "int16", "remark": "主控数量 R u 1"},
|
||||||
|
{"key": "0x0003", "datatype": "int16", "remark": "主控ID R u 1"},
|
||||||
|
{"key": "0x0004", "datatype": "int16", "remark": "主控状态 R u 0:正常 1:预警 2:火警"},
|
||||||
|
{"key": "0x0005", "datatype": "int16", "remark": "主控硬件版本 R u[2] 主控硬件版本"},
|
||||||
|
{"key": "0x0007", "datatype": "int16", "remark": "主控软件版本 R u[2] 主控软件版本"},
|
||||||
|
{"key": "0x0009", "datatype": "int16", "remark": "主电状态 R u 0:使用市电 1:使用备电"},
|
||||||
|
{"key": "0x000A", "datatype": "int32", "remark": "备电电流 R u 0.1A"},
|
||||||
|
{"key": "0x000C", "datatype": "int32", "remark": "备电电压 R u 0.1V"},
|
||||||
|
{"key": "0x000E", "datatype": "int32", "remark": "可用容量 R u 0.01Ah"},
|
||||||
|
{"key": "0x0010", "datatype": "int32", "remark": "可充放容量 R u 0.01Ah"},
|
||||||
|
{"key": "0x0012", "datatype": "int16", "remark": "警铃是否使用 R u"},
|
||||||
|
{"key": "0x0013", "datatype": "int16", "remark": "警铃状态 R u 0:无效 1:掉线 2:正常 3:启动"},
|
||||||
|
{"key": "0x0014", "datatype": "int16", "remark": "瓶头阀是否使用 R u"},
|
||||||
|
{"key": "0x0015", "datatype": "int16", "remark": "瓶头阀状态 R u 0:无效 1:掉线 2:正常 3:启动"},
|
||||||
|
{"key": "0x0016", "datatype": "int16", "remark": "手报是否使用 R u"},
|
||||||
|
{"key": "0x0017", "datatype": "int16", "remark": "手报状态 R u 0:无效 1:掉线 2:正常 3:启动"},
|
||||||
|
{"key": "0x0018", "datatype": "int16", "remark": "簇控制器数量 R u"},
|
||||||
|
{"key": "0x0019", "datatype": "int16", "remark": "复合探测器总数量 R u"},
|
||||||
|
{"key": "0x001A", "datatype": "int16", "remark": "烟雾探测器总数量 R u"},
|
||||||
|
{"key": "0x001B", "datatype": "int16", "remark": "压力探测器总数量 R u"},
|
||||||
|
{"key": "0x001C", "datatype": "int16", "remark": "吸气式探测器总数量 R u"},
|
||||||
|
{"key": "0x001D", "datatype": "int16", "remark": "PACK探测器总数量 R u"},
|
||||||
|
{"key": "0x001E", "datatype": "int16", "remark": "电池总数量 R u"}
|
||||||
|
],
|
||||||
|
"CoolingYX": [
|
||||||
|
{"key": "0x1001", "datatype": "int16", "remark": "所属通道号 R u 1"},
|
||||||
|
{"key": "0x1002", "datatype": "int16", "remark": "所属冷机号 R u 1~10"},
|
||||||
|
{"key": "0x1003", "datatype": "int16", "remark": "开关 R u 0:关机,1:开机"},
|
||||||
|
{"key": "0x1004", "datatype": "int16", "remark": "采样模式 R u 0-出水温度 1-电芯温度"},
|
||||||
|
{"key": "0x1005", "datatype": "int16", "remark": "制冷状态 R u 0:关闭,1:启动"},
|
||||||
|
{"key": "0x1006", "datatype": "int16", "remark": "制热状态 R u 0:关闭,1:启动"},
|
||||||
|
{"key": "0x1007", "datatype": "int16", "remark": "高温告警 R u 0:正常,1:告警"},
|
||||||
|
{"key": "0x1008", "datatype": "int16", "remark": "低温告警 R u 0:正常,1:告警"},
|
||||||
|
{"key": "0x1009", "datatype": "int16", "remark": "高压告警 R u 0:正常,1:告警"},
|
||||||
|
{"key": "0x100A", "datatype": "int16", "remark": "低压告警 R u 0:正常,1:告警"},
|
||||||
|
{"key": "0x100B", "datatype": "int16", "remark": "进水温度传感器 R u 0:正常,1:告警"},
|
||||||
|
{"key": "0x100C", "datatype": "int16", "remark": "出水温度传感器 R u 0:正常,1:告警"},
|
||||||
|
{"key": "0x100D", "datatype": "int16", "remark": "进水压力传感器 R u 0:正常,1:告警"},
|
||||||
|
{"key": "0x100E", "datatype": "int16", "remark": "出水压力传感器 R u 0:正常,1:告警"}
|
||||||
|
],
|
||||||
|
"CoolingYC": [
|
||||||
|
{"key": "0x0001", "datatype": "int16", "remark": "所属通道号 R u 1"},
|
||||||
|
{"key": "0x0002", "datatype": "int16", "remark": "所属冷机号 R u 1~10"},
|
||||||
|
{"key": "0x0003", "datatype": "int16", "remark": "制冷点 R 0.1℃"},
|
||||||
|
{"key": "0x0004", "datatype": "int16", "remark": "制冷偏差 R 0.1℃"},
|
||||||
|
{"key": "0x0005", "datatype": "int16", "remark": "高温告警值 R 0.1℃"},
|
||||||
|
{"key": "0x0006", "datatype": "int16", "remark": "低温告警值 R 0.1℃"},
|
||||||
|
{"key": "0x0007", "datatype": "int16", "remark": "制热点 R 0.1℃"},
|
||||||
|
{"key": "0x0008", "datatype": "int16", "remark": "制热偏差 R 0.1℃"},
|
||||||
|
{"key": "0x0009", "datatype": "int16", "remark": "电芯温度 R 0.1℃"},
|
||||||
|
{"key": "0x000A", "datatype": "int16", "remark": "环境湿度 R 0.1℃"},
|
||||||
|
{"key": "0x000B", "datatype": "int16", "remark": "吸气温度 R 0.1℃"},
|
||||||
|
{"key": "0x000C", "datatype": "int16", "remark": "排气温度 R 0.1℃"},
|
||||||
|
{"key": "0x000D", "datatype": "int16", "remark": "进水温度/供液温度 R 0.1℃"},
|
||||||
|
{"key": "0x000E", "datatype": "int16", "remark": "出水温度/回液温度 R 0.1℃"},
|
||||||
|
{"key": "0x000F", "datatype": "int16", "remark": "进水压力/供液压力 R 0.1"},
|
||||||
|
{"key": "0x0010", "datatype": "int16", "remark": "出水压力/回液压力 R 0.1"},
|
||||||
|
{"key": "0x0011", "datatype": "int16", "remark": "高压压力 R 0.1"},
|
||||||
|
{"key": "0x0012", "datatype": "int16", "remark": "低压压力 R 0.1"},
|
||||||
|
{"key": "0x0013", "datatype": "int16", "remark": "循环水泵转速 R "},
|
||||||
|
{"key": "0x0014", "datatype": "int16", "remark": "压缩机频率 R "},
|
||||||
|
{"key": "0x0015", "datatype": "int16", "remark": "室外风机转速 R "}
|
||||||
|
]
|
||||||
|
}
|
||||||
76
bin/Release/assets/config/registeraddrs.py
Normal file
76
bin/Release/assets/config/registeraddrs.py
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
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" + json.dumps(item, ensure_ascii=False))
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
addritems = {}
|
||||||
|
addritems["EMSYT"] = "EMS遥调.txt"
|
||||||
|
addritems["BCUYX"] = "BCU电池簇遥信.txt"
|
||||||
|
addritems["BCUYC"] = "BCU电池簇遥测.txt"
|
||||||
|
addritems["BMSYC"] = "BMS电池堆遥测.txt"
|
||||||
|
addritems["EMSYX"] = "EMS遥信.txt"
|
||||||
|
addritems["EMSYC"] = "EMS遥测.txt"
|
||||||
|
addritems["EMSYT"] = "EMS遥调.txt"
|
||||||
|
addritems["PCSYX"] = "PCS遥信.txt"
|
||||||
|
addritems["PCSYC"] = "PCS遥测.txt"
|
||||||
|
addritems["PCUYX"] = "PCU遥信.txt"
|
||||||
|
addritems["PCUYC"] = "PCU遥测.txt"
|
||||||
|
addritems["MEMYC"] = "多功能电表遥测.txt"
|
||||||
|
addritems["THYC"] = "温湿度状态遥测.txt"
|
||||||
|
addritems["Fire40YX"] = "消防4.0遥信.txt"
|
||||||
|
addritems["CoolingYX"] = "冷机遥信.txt"
|
||||||
|
addritems["CoolingYC"] = "冷机遥测.txt"
|
||||||
|
|
||||||
|
|
||||||
|
with open('registeraddr.json', 'w', encoding='utf-8') as f:
|
||||||
|
f.write("{")
|
||||||
|
count = 0
|
||||||
|
for key in addritems:
|
||||||
|
filename = addritems[key]
|
||||||
|
print("parse: ", key, filename)
|
||||||
|
data = parse_from_file(filename)
|
||||||
|
if len(data) > 0:
|
||||||
|
data = "\n" + data + "\n\t"
|
||||||
|
if count != 0:
|
||||||
|
f.write(",")
|
||||||
|
f.write("\n\t\"" + key + "\": [" + data + "]")
|
||||||
|
count+=1
|
||||||
|
f.write("\n}")
|
||||||
|
|
||||||
14
bin/Release/assets/config/冷机遥信.txt
Normal file
14
bin/Release/assets/config/冷机遥信.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
所属通道号 R uint16 1 0x1001
|
||||||
|
所属冷机号 R uint16 1~10 0x1002
|
||||||
|
开关 R uint16 0:关机,1:开机 0x1003
|
||||||
|
采样模式 R uint16 0-出水温度 1-电芯温度 0x1004
|
||||||
|
制冷状态 R uint16 0:关闭,1:启动 0x1005
|
||||||
|
制热状态 R uint16 0:关闭,1:启动 0x1006
|
||||||
|
高温告警 R uint16 0:正常,1:告警 0x1007
|
||||||
|
低温告警 R uint16 0:正常,1:告警 0x1008
|
||||||
|
高压告警 R uint16 0:正常,1:告警 0x1009
|
||||||
|
低压告警 R uint16 0:正常,1:告警 0x100A
|
||||||
|
进水温度传感器 R uint16 0:正常,1:告警 0x100B
|
||||||
|
出水温度传感器 R uint16 0:正常,1:告警 0x100C
|
||||||
|
进水压力传感器 R uint16 0:正常,1:告警 0x100D
|
||||||
|
出水压力传感器 R uint16 0:正常,1:告警 0x100E
|
||||||
21
bin/Release/assets/config/冷机遥测.txt
Normal file
21
bin/Release/assets/config/冷机遥测.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
所属通道号 R uint16 1 0x0001
|
||||||
|
所属冷机号 R uint16 1~10 0x0002
|
||||||
|
制冷点 R int16 0.1℃ 0x0003
|
||||||
|
制冷偏差 R int16 0.1℃ 0x0004
|
||||||
|
高温告警值 R int16 0.1℃ 0x0005
|
||||||
|
低温告警值 R int16 0.1℃ 0x0006
|
||||||
|
制热点 R int16 0.1℃ 0x0007
|
||||||
|
制热偏差 R int16 0.1℃ 0x0008
|
||||||
|
电芯温度 R int16 0.1℃ 0x0009
|
||||||
|
环境湿度 R int16 0.1℃ 0x000A
|
||||||
|
吸气温度 R int16 0.1℃ 0x000B
|
||||||
|
排气温度 R int16 0.1℃ 0x000C
|
||||||
|
进水温度/供液温度 R int16 0.1℃ 0x000D
|
||||||
|
出水温度/回液温度 R int16 0.1℃ 0x000E
|
||||||
|
进水压力/供液压力 R int16 0.1 0x000F
|
||||||
|
出水压力/回液压力 R int16 0.1 0x0010
|
||||||
|
高压压力 R int16 0.1 0x0011
|
||||||
|
低压压力 R int16 0.1 0x0012
|
||||||
|
循环水泵转速 R int16 0x0013
|
||||||
|
压缩机频率 R int16 0x0014
|
||||||
|
室外风机转速 R int16 0x0015
|
||||||
57
bin/Release/assets/config/多功能电表遥测.txt
Normal file
57
bin/Release/assets/config/多功能电表遥测.txt
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
所属通道号 R uint16 1 0x0001
|
||||||
|
电表地址 R uint16[6] 0x0002~0x0007
|
||||||
|
电表类型 R uint16 "0:储能站总表
|
||||||
|
1:逆变前侧电表
|
||||||
|
2:逆变后侧电表
|
||||||
|
3:配电柜电表
|
||||||
|
4:并网口电表" 0x0008
|
||||||
|
电流变比 R uint16 0x0009
|
||||||
|
电压变比 R uint16 0x000A
|
||||||
|
A相电压 R uint32 1V 0x000B
|
||||||
|
B相电压 R uint32 1V 0x000D
|
||||||
|
C相电压 R uint32 1V 0x000F
|
||||||
|
A相电流 R int32 1A 0x0011
|
||||||
|
B相电流 R int32 1A 0x0013
|
||||||
|
C相电流 R int32 1A 0x0015
|
||||||
|
AB相电压 R uint32 1V 0x0017
|
||||||
|
BC相电压 R uint32 1V 0x0019
|
||||||
|
CA相电压 R uint32 1V 0x001B
|
||||||
|
A相有功 R int32 1kW 0x001D
|
||||||
|
B相有功 R int32 1kW 0x001F
|
||||||
|
C相有功 R int32 1kW 0x0021
|
||||||
|
三相总有功 R int32 1kW 0x0023
|
||||||
|
正向总有功总需量 R int32 1kW 0x0025
|
||||||
|
尖段电价 R uint32 1RMB 0x0027
|
||||||
|
峰段电价 R uint32 1RMB 0x0029
|
||||||
|
平段电价 R uint32 1RMB 0x002B
|
||||||
|
谷段电价 R uint32 1RMB 0x002D
|
||||||
|
日充电电量 R uint32 1kWh 0x002F
|
||||||
|
日放电电量 R uint32 1kWh 0x0031
|
||||||
|
日充电费用 R uint32 1RMB 0x0033
|
||||||
|
日放电费用 R uint32 1RMB 0x0035
|
||||||
|
日收益 R int32 1RMB 0x0037
|
||||||
|
日正向尖有功电能 R uint32 1kWh 0x0039
|
||||||
|
日正向峰有功电能 R uint32 1kWh 0x003B
|
||||||
|
日正向平有功电能 R uint32 1kWh 0x003D
|
||||||
|
日正向谷有功电能 R uint32 1kWh 0x003F
|
||||||
|
日正向总有功电能 R uint32 1kWh 0x0041
|
||||||
|
日反向尖有功电能 R uint32 1kWh 0x0043
|
||||||
|
日反向峰有功电能 R uint32 1kWh 0x0045
|
||||||
|
日反向平有功电能 R uint32 1kWh 0x0047
|
||||||
|
日反向谷有功电能 R uint32 1kWh 0x0049
|
||||||
|
日反向总有功电能 R uint32 1kWh 0x004B
|
||||||
|
总充电电量 R uint32 1kWh 0x004D
|
||||||
|
总放电电量 R uint32 1kWh 0x004F
|
||||||
|
总充电费用 R uint32 1RMB 0x0051
|
||||||
|
总放电费用 R uint32 1RMB 0x0053
|
||||||
|
总收益 R int32 1RMB 0x0055
|
||||||
|
总正向尖有功电能 R uint32 1kWh 0x0057
|
||||||
|
总正向峰有功电能 R uint32 1kWh 0x0059
|
||||||
|
总正向平有功电能 R uint32 1kWh 0x005B
|
||||||
|
总正向谷有功电能 R uint32 1kWh 0x005D
|
||||||
|
总正向总有功电能 R uint32 1kWh 0x005F
|
||||||
|
总反向尖有功电能 R uint32 1kWh 0x0061
|
||||||
|
总反向峰有功电能 R uint32 1kWh 0x0063
|
||||||
|
总反向平有功电能 R uint32 1kWh 0x0065
|
||||||
|
总反向谷有功电能 R uint32 1kWh 0x0067
|
||||||
|
总反向总有功电能 R uint32 1kWh 0x0069
|
||||||
24
bin/Release/assets/config/消防4.0遥信.txt
Normal file
24
bin/Release/assets/config/消防4.0遥信.txt
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
所属通道号 R uint16 1~10 0x0001
|
||||||
|
主控数量 R uint16 1 0x0002
|
||||||
|
主控ID R uint16 1 0x0003
|
||||||
|
主控状态 R uint16 0:正常 1:预警 2:火警 0x0004
|
||||||
|
主控硬件版本 R uint16[2] 主控硬件版本 0x0005~0x0006
|
||||||
|
主控软件版本 R uint16[2] 主控软件版本 0x0007~0x0008
|
||||||
|
主电状态 R uint16 0:使用市电 1:使用备电 0x0009
|
||||||
|
备电电流 R uint32 0.1A 0x000A
|
||||||
|
备电电压 R uint32 0.1V 0x000C
|
||||||
|
可用容量 R uint32 0.01Ah 0x000E
|
||||||
|
可充放容量 R uint32 0.01Ah 0x0010
|
||||||
|
警铃是否使用 R uint16 0x0012
|
||||||
|
警铃状态 R uint16 0:无效 1:掉线 2:正常 3:启动 0x0013
|
||||||
|
瓶头阀是否使用 R uint16 0x0014
|
||||||
|
瓶头阀状态 R uint16 0:无效 1:掉线 2:正常 3:启动 0x0015
|
||||||
|
手报是否使用 R uint16 0x0016
|
||||||
|
手报状态 R uint16 0:无效 1:掉线 2:正常 3:启动 0x0017
|
||||||
|
簇控制器数量 R uint16 0x0018
|
||||||
|
复合探测器总数量 R uint16 0x0019
|
||||||
|
烟雾探测器总数量 R uint16 0x001A
|
||||||
|
压力探测器总数量 R uint16 0x001B
|
||||||
|
吸气式探测器总数量 R uint16 0x001C
|
||||||
|
PACK探测器总数量 R uint16 0x001D
|
||||||
|
电池总数量 R uint16 0x001E
|
||||||
4
bin/Release/assets/config/温湿度状态遥测.txt
Normal file
4
bin/Release/assets/config/温湿度状态遥测.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
所属通道号 R uint16 1 0x0001
|
||||||
|
所属温湿度号 R uint16 1~10 0x0002
|
||||||
|
温度 R int16 0.1℃ 0x0003
|
||||||
|
湿度 R int16 0.1℃ 0x0004
|
||||||
12
bin/Release/assets/config/空调遥信.txt
Normal file
12
bin/Release/assets/config/空调遥信.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
所属通道号 R uint16 1 0x1001
|
||||||
|
所属空调号 R uint16 1~10 0x1002
|
||||||
|
开关 R uint16 0:关机,1:开机 0x1003
|
||||||
|
启动制冷指令 R uint16 0:关闭,1:启动 0x1004
|
||||||
|
启动送风指令 R uint16 0:关闭,1:启动 0x1005
|
||||||
|
启动待机指令 R uint16 0:关闭,1:启动 0x1006
|
||||||
|
启动加热指令 R uint16 0:关闭,1:启动 0x1007
|
||||||
|
传感器故障 R uint16 0:正常,1:告警 0x1008
|
||||||
|
高低电压告警 R uint16 0:正常,1:告警 0x1009
|
||||||
|
高低温告警 R uint16 0:正常,1:告警 0x100A
|
||||||
|
高低压告警 R uint16 0:正常,1:告警 0x100B
|
||||||
|
压缩机告警 R uint16 0:正常,1:告警 0x100C
|
||||||
14
bin/Release/assets/config/空调遥测.txt
Normal file
14
bin/Release/assets/config/空调遥测.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
所属通道号 R uint16 1 0x0001
|
||||||
|
所属空调号 R uint16 1~10 0x0002
|
||||||
|
制冷点 R int16 0.1℃ 0x0003
|
||||||
|
制冷偏差 R int16 0.1℃ 0x0004
|
||||||
|
高温告警值 R int16 0.1℃ 0x0005
|
||||||
|
低温告警值 R int16 0.1℃ 0x0006
|
||||||
|
制热点 R int16 0.1℃ 0x0007
|
||||||
|
制热偏差 R int16 0.1℃ 0x0008
|
||||||
|
当前温度 R int16 0.1℃ 0x0009
|
||||||
|
当前湿度 R int16 0.1℃ 0x000A
|
||||||
|
除湿开启温度 R int16 0.1℃ 0x000B
|
||||||
|
除湿停止温度 R int16 0.1℃ 0x000C
|
||||||
|
除湿开启湿度 R int16 0.1℃ 0x000D
|
||||||
|
除湿停止湿度 R int16 0.1℃ 0x000E
|
||||||
@@ -18,7 +18,7 @@ macro(ADD_SOURCE_GROUP srcpath)
|
|||||||
endmacro(ADD_SOURCE_GROUP)
|
endmacro(ADD_SOURCE_GROUP)
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
set(PROJECT_NAME EES)
|
set(PROJECT_NAME ESS)
|
||||||
project(${PROJECT_NAME})
|
project(${PROJECT_NAME})
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ void AppData::initFromDB()
|
|||||||
auto dao = DaoEntity::create("");
|
auto dao = DaoEntity::create("");
|
||||||
if (!dao->isConnected())
|
if (!dao->isConnected())
|
||||||
{
|
{
|
||||||
spdlog::info("Database connected error.");
|
spdlog::error("Init app data failed, database connected error.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ void Application::init()
|
|||||||
// 初始化系统配置,读取配置文件
|
// 初始化系统配置,读取配置文件
|
||||||
Config::init("assets/config/app.json");
|
Config::init("assets/config/app.json");
|
||||||
|
|
||||||
|
// MQTT 数据结构
|
||||||
|
MqttClient::loadDataStruct("assets/config/registeraddr.json");
|
||||||
|
|
||||||
// 设置数据库配置
|
// 设置数据库配置
|
||||||
DaoEntity::setOption(Config::option.database.host,
|
DaoEntity::setOption(Config::option.database.host,
|
||||||
Config::option.database.port,
|
Config::option.database.port,
|
||||||
|
|||||||
@@ -3,12 +3,6 @@
|
|||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include "common/JsonN.h"
|
#include "common/JsonN.h"
|
||||||
|
|
||||||
struct REGInfo
|
|
||||||
{
|
|
||||||
std::string name;
|
|
||||||
int byte;
|
|
||||||
std::string remark;
|
|
||||||
};
|
|
||||||
|
|
||||||
// EMS遥信
|
// EMS遥信
|
||||||
struct EMSYX
|
struct EMSYX
|
||||||
@@ -43,7 +37,7 @@ struct EMSYX
|
|||||||
uint16_t energyStatus; //判断总表的三相总有功 < -5.0fkW 充电 >5.0fkW放电 否则停机 R uint16 0:充电 1 : 放电 2 : 停机 储能状态
|
uint16_t energyStatus; //判断总表的三相总有功 < -5.0fkW 充电 >5.0fkW放电 否则停机 R uint16 0:充电 1 : 放电 2 : 停机 储能状态
|
||||||
|
|
||||||
void fromJson(const std::string& str);
|
void fromJson(const std::string& str);
|
||||||
void toJson();
|
std::string toJson();
|
||||||
};
|
};
|
||||||
|
|
||||||
// EMS遥测
|
// EMS遥测
|
||||||
|
|||||||
@@ -4,22 +4,21 @@
|
|||||||
|
|
||||||
enum class Errcode
|
enum class Errcode
|
||||||
{
|
{
|
||||||
OK = 0,
|
OK = 0, // 成功
|
||||||
ERR = 1,
|
ERR = 1, // 系统错误
|
||||||
ERR_TOKEN, // TOKEN错误
|
ERR_TOKEN = 2, // TOKEN错误
|
||||||
ERR_PARAM, // 参数错误
|
ERR_PARAM = 3, // 参数错误
|
||||||
ERR_PARAM_NUL, // 缺少参数
|
ERR_PARAM_NUL = 4, // 缺少参数
|
||||||
ERR_DATA_NUL, // 数据不存在
|
ERR_DATA_NUL = 5, // 数据不存在
|
||||||
|
|
||||||
ERR_USER = 100,
|
ERR_USER = 100,
|
||||||
ERR_LOGIN_USER_NOTEXIST, // 登入错误,用户不存在
|
ERR_LOGIN_USER_NOTEXIST = 101, // 登入错误,用户不存在
|
||||||
ERR_LOGIN_PASSWD, // 登入错误,密码不正确
|
ERR_LOGIN_PASSWD = 102, // 登入错误,密码不正确
|
||||||
|
|
||||||
ERR_DEVICE = 200,
|
ERR_DEVICE = 200,
|
||||||
|
|
||||||
|
|
||||||
ERR_DB_CONN = 1001, // 数据库连接错误
|
ERR_DB_CONN = 1001, // 数据库连接错误
|
||||||
|
|
||||||
ERR_DB_DUPLICATE = 1062, // Duplicate entry for key
|
ERR_DB_DUPLICATE = 1062, // Duplicate entry for key
|
||||||
ERR_DB_SQL = 1064, // 数据库查询SQL错误
|
ERR_DB_SQL = 1064, // 数据库查询SQL错误
|
||||||
ERR_DB_VAL = 1366, // 1366,Incorrect decimal value,通常为参数值错误,例如空值、值类型错误
|
ERR_DB_VAL = 1366, // 1366,Incorrect decimal value,通常为参数值错误,例如空值、值类型错误
|
||||||
|
|||||||
@@ -143,19 +143,21 @@ Errcode DAO::insertUser(Fields& params)
|
|||||||
params.set(DMUser::USER_ID, Snowflake::instance().getIdStr());
|
params.set(DMUser::USER_ID, Snowflake::instance().getIdStr());
|
||||||
params.set(DMUser::CREATETIME, createTime);
|
params.set(DMUser::CREATETIME, createTime);
|
||||||
params.set(DMUser::PASSWD, "123456");
|
params.set(DMUser::PASSWD, "123456");
|
||||||
|
std::string userRoleId = params.remove(DMRole::ROLE_ID);
|
||||||
ret = dao->insertFields(params);
|
ret = dao->insertFields(params);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
{
|
{
|
||||||
return Errcode(ret);
|
return Errcode(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string userRoleId = params.remove(DMRole::ROLE_ID);
|
|
||||||
if (!userRoleId.empty())
|
if (!userRoleId.empty())
|
||||||
{
|
{
|
||||||
Fields paramsUserRole;
|
Fields paramsUserRole;
|
||||||
paramsUserRole.set(DMUser::USER_ID, params.value(DMUser::USER_ID));
|
paramsUserRole.set(DMUser::USER_ID, params.value(DMUser::USER_ID));
|
||||||
paramsUserRole.set(DMRole::ROLE_ID, userRoleId);
|
paramsUserRole.set(DMRole::ROLE_ID, userRoleId);
|
||||||
paramsUserRole.set(DMUser::UPDATETIME, createTime);
|
paramsUserRole.set(DMUser::UPDATETIME, createTime);
|
||||||
|
dao->setTableName(DMUserRole::TABLENAME);
|
||||||
ret = dao->duplicateUpdate(paramsUserRole, {DMUser::USER_ID});
|
ret = dao->duplicateUpdate(paramsUserRole, {DMUser::USER_ID});
|
||||||
}
|
}
|
||||||
return Errcode::OK;
|
return Errcode::OK;
|
||||||
@@ -211,19 +213,20 @@ Errcode DAO::login(std::shared_ptr<DaoEntity> dao, std::string account, std::str
|
|||||||
|
|
||||||
Errcode DAO::queryRolePermission(std::shared_ptr<DaoEntity> dao, int roleId, vector<Fields>& result)
|
Errcode DAO::queryRolePermission(std::shared_ptr<DaoEntity> dao, int roleId, vector<Fields>& result)
|
||||||
{
|
{
|
||||||
std::string sql = "SELECT rp.role_id, rp.permission_id, p.name FROM role_permission rp"
|
std::string sql = R"(SELECT rp.role_id, p.permission_id, p.parent_id, p.route, p.name, rp.is_view, rp.is_add, rp.is_edit, rp.is_del
|
||||||
" LEFT JOIN permission p ON p.permission_id = rp.permission_id"
|
FROM role_permission rp
|
||||||
" WHERE rp.is_open='1' AND rp.role_id ='" + std::to_string(roleId) + "';";
|
LEFT JOIN permission p ON p.permission_id = rp.permission_id
|
||||||
|
WHERE rp.is_open='1' AND rp.role_id =')" + std::to_string(roleId) + "';";
|
||||||
return DAO::exec(dao, sql, result);
|
return DAO::exec(dao, sql, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
Errcode DAO::queryRolePermission(std::shared_ptr<DaoEntity> dao, vector<Fields>& result)
|
Errcode DAO::queryRolePermission(std::shared_ptr<DaoEntity> dao, vector<Fields>& result)
|
||||||
{
|
{
|
||||||
// 查询 role 的 permission
|
// 查询 role 的 permission
|
||||||
std::string sql = "SELECT rp.role_id, rp.permission_id, rp.is_open, r.name role_name, p.name permission_name FROM role_permission rp"
|
std::string sql = R"(SELECT rp.role_id, r.name role_name, rp.permission_id, p.parent_id, p.route, p.name, rp.is_view, rp.is_add, rp.is_edit, rp.is_del FROM role_permission rp
|
||||||
" LEFT JOIN `role` r ON r.role_id = rp.role_id"
|
LEFT JOIN `role` r ON r.role_id = rp.role_id
|
||||||
" LEFT JOIN permission p ON p.permission_id = rp.permission_id"
|
LEFT JOIN permission p ON p.permission_id = rp.permission_id
|
||||||
" WHERE rp.is_open='1';";
|
WHERE rp.is_open='1';)";
|
||||||
return DAO::exec(dao, sql, result);
|
return DAO::exec(dao, sql, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,29 +320,14 @@ Errcode DAO::queryRoleList(PageInfo& pageInfo, vector<Fields>& result)
|
|||||||
return QueryPagination("*", sqlCondition, pageInfo, result);
|
return QueryPagination("*", sqlCondition, pageInfo, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
Errcode DAO::updateRolePermission(std::shared_ptr<DaoEntity> dao, std::string roleId, std::string permission)
|
Errcode DAO::updateRolePermission(std::shared_ptr<DaoEntity> dao, std::string roleId, vector<Fields>& vecFields)
|
||||||
{
|
{
|
||||||
NJsonNode jnode;
|
if (!dao) dao = DaoEntity::create("");
|
||||||
NJson::parse(permission, jnode);
|
|
||||||
std::vector<Fields> vec;
|
|
||||||
for (auto& item: jnode)
|
|
||||||
{
|
|
||||||
std::string permissionId;
|
|
||||||
if (item.is_number()) { permissionId = std::to_string(item.get<int>()); }
|
|
||||||
if (item.is_string()) { permissionId = item.get<std::string>(); }
|
|
||||||
if (!permissionId.empty())
|
|
||||||
{
|
|
||||||
Fields field;
|
|
||||||
field.set("role_id", roleId);
|
|
||||||
field.set("permission_id", permissionId);
|
|
||||||
vec.emplace_back(field);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dao->setTableName(DMRolePermission::TABLENAME);
|
dao->setTableName(DMRolePermission::TABLENAME);
|
||||||
std::string sqlDel = "DELETE from " + DMRolePermission::TABLENAME + " WHERE role_id='" + roleId + "';";
|
std::string sqlDel = "DELETE from " + DMRolePermission::TABLENAME + " WHERE role_id='" + roleId + "';";
|
||||||
int ret = dao->exec(sqlDel);
|
int ret = dao->exec(sqlDel);
|
||||||
if (ret != 0 ){ return Errcode(ret); };
|
if (ret != 0 ){ return Errcode(ret); };
|
||||||
ret = dao->insertFields(vec);
|
ret = dao->insertFields(vecFields);
|
||||||
if (ret != 0) { return Errcode(ret); };
|
if (ret != 0) { return Errcode(ret); };
|
||||||
return Errcode::OK;
|
return Errcode::OK;
|
||||||
}
|
}
|
||||||
@@ -360,16 +348,19 @@ Errcode DAO::insertRole(Fields& params)
|
|||||||
err = DAO::exec(dao, sql, res);
|
err = DAO::exec(dao, sql, res);
|
||||||
if (err == Errcode::OK && res.size() > 0)
|
if (err == Errcode::OK && res.size() > 0)
|
||||||
{
|
{
|
||||||
std::string roleId = res[0].value("role_id");
|
//std::string roleId = res[0].value("role_id");
|
||||||
err = DAO::updateRolePermission(dao, roleId, permission);
|
//err = DAO::updateRolePermission(dao, roleId, permission);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新角色
|
// 更新角色
|
||||||
Errcode DAO::updateRoleById(Fields& params)
|
Errcode DAO::updateRoleById(std::shared_ptr<DaoEntity> dao, Fields& params)
|
||||||
{
|
{
|
||||||
|
if (!dao) dao = DaoEntity::create("");
|
||||||
|
dao->setTableName(DMRole::TABLENAME);
|
||||||
|
|
||||||
auto roleId = params.value(DMRole::ROLE_ID);
|
auto roleId = params.value(DMRole::ROLE_ID);
|
||||||
if (roleId.empty())
|
if (roleId.empty())
|
||||||
{
|
{
|
||||||
@@ -377,12 +368,11 @@ Errcode DAO::updateRoleById(Fields& params)
|
|||||||
}
|
}
|
||||||
auto permission = params.remove("permission");
|
auto permission = params.remove("permission");
|
||||||
|
|
||||||
auto dao = DaoEntity::create(DMRole::TABLENAME);
|
|
||||||
auto err = DAO::update(dao, DMRole::TABLENAME, params, DMRole::ROLE_ID);
|
auto err = DAO::update(dao, DMRole::TABLENAME, params, DMRole::ROLE_ID);
|
||||||
if (err == Errcode::OK && !permission.empty())
|
//if (err == Errcode::OK && !permission.empty())
|
||||||
{
|
//{
|
||||||
err = DAO::updateRolePermission(dao, roleId, permission);
|
// err = DAO::updateRolePermission(dao, roleId, permission);
|
||||||
}
|
//}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public:
|
|||||||
static Errcode deletePermissionById(std::string userId);
|
static Errcode deletePermissionById(std::string userId);
|
||||||
|
|
||||||
|
|
||||||
static Errcode updateRolePermission(std::shared_ptr<DaoEntity> dao, std::string roleId, std::string permission);
|
static Errcode updateRolePermission(std::shared_ptr<DaoEntity> dao, std::string roleId, vector<Fields>& vecFields);
|
||||||
|
|
||||||
// 查询角色列表(分页)
|
// 查询角色列表(分页)
|
||||||
static Errcode queryRoleList(PageInfo& pageInfo, vector<Fields>& result);
|
static Errcode queryRoleList(PageInfo& pageInfo, vector<Fields>& result);
|
||||||
@@ -54,7 +54,7 @@ public:
|
|||||||
// 新增角色
|
// 新增角色
|
||||||
static Errcode insertRole(Fields& params);
|
static Errcode insertRole(Fields& params);
|
||||||
// 更新角色
|
// 更新角色
|
||||||
static Errcode updateRoleById(Fields& params);
|
static Errcode updateRoleById(std::shared_ptr<DaoEntity> dao, Fields& params);
|
||||||
// 删除角色
|
// 删除角色
|
||||||
static Errcode deleteRoleById(std::string userId);
|
static Errcode deleteRoleById(std::string userId);
|
||||||
|
|
||||||
|
|||||||
@@ -128,6 +128,8 @@ int main(int argc, char** argv)
|
|||||||
Spdlogger::init(spdlog::level::debug, "");
|
Spdlogger::init(spdlog::level::debug, "");
|
||||||
spdlog::info("[main] start ... ======================================================================");
|
spdlog::info("[main] start ... ======================================================================");
|
||||||
|
|
||||||
|
spdlog::info("");
|
||||||
|
|
||||||
std::cout << Snowflake::instance().getId() << std::endl;
|
std::cout << Snowflake::instance().getId() << std::endl;
|
||||||
for (int i = 0; i<=10; ++i) {
|
for (int i = 0; i<=10; ++i) {
|
||||||
std::cout << Snowflake::instance().getId() << std::endl;
|
std::cout << Snowflake::instance().getId() << std::endl;
|
||||||
|
|||||||
@@ -15,6 +15,40 @@ static void FieldsToJson(Fields& fields, NJsonNode& json)
|
|||||||
json[item.first] = item.second;
|
json[item.first] = item.second;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
static void JsonToFields(NJsonNode& json, std::vector<std::string> vecKeys, Fields& fields)
|
||||||
|
{
|
||||||
|
if (vecKeys.empty())
|
||||||
|
{
|
||||||
|
for (auto& item: json.items())
|
||||||
|
{
|
||||||
|
auto key = item.key();
|
||||||
|
auto& val = json[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto& key : vecKeys)
|
||||||
|
{
|
||||||
|
if (json.contains(key)) {
|
||||||
|
|
||||||
|
switch (json[key].type())
|
||||||
|
{
|
||||||
|
case NJsonNode::value_t::string: { fields.set(key, json[key].get<std::string>()); } break;
|
||||||
|
case NJsonNode::value_t::boolean: { fields.set(key, json[key].get<bool>()); } break;
|
||||||
|
case NJsonNode::value_t::number_integer: { fields.set(key, json[key].get<int>()); } break;
|
||||||
|
case NJsonNode::value_t::number_unsigned: { fields.set(key, json[key].get<int>()); } break;
|
||||||
|
case NJsonNode::value_t::number_float: { fields.set(key, json[key].get<float>()); } break;
|
||||||
|
case NJsonNode::value_t::null: {} break;
|
||||||
|
case NJsonNode::value_t::object: {} break;
|
||||||
|
case NJsonNode::value_t::array: {} break;
|
||||||
|
case NJsonNode::value_t::binary: {} break;
|
||||||
|
case NJsonNode::value_t::discarded: {} break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static NJsonNode FieldsToJsonArray(std::vector<Fields>& vecFields)
|
static NJsonNode FieldsToJsonArray(std::vector<Fields>& vecFields)
|
||||||
{
|
{
|
||||||
@@ -33,7 +67,6 @@ static NJsonNode FieldsToJsonArray(std::vector<Fields>& vecFields)
|
|||||||
|
|
||||||
static void GetRequestParam(const httplib::Request& req, const std::vector<std::string>& vecKeys, Fields& fields)
|
static void GetRequestParam(const httplib::Request& req, const std::vector<std::string>& vecKeys, Fields& fields)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (req.method == "GET")
|
if (req.method == "GET")
|
||||||
{
|
{
|
||||||
for (auto& key : vecKeys)
|
for (auto& key : vecKeys)
|
||||||
@@ -48,30 +81,8 @@ static void GetRequestParam(const httplib::Request& req, const std::vector<std::
|
|||||||
{
|
{
|
||||||
NJsonNode json;
|
NJsonNode json;
|
||||||
NJson::parse(req.body, json);
|
NJson::parse(req.body, json);
|
||||||
for (auto& key : vecKeys)
|
|
||||||
{
|
|
||||||
if (json.contains(key)) {
|
|
||||||
|
|
||||||
switch (json[key].type())
|
|
||||||
{
|
|
||||||
case NJsonNode::value_t::string: { fields.set(key, json[key].get<std::string>()); } break;
|
|
||||||
case NJsonNode::value_t::boolean: { fields.set(key, json[key].get<bool>()); } break;
|
|
||||||
case NJsonNode::value_t::number_integer: { fields.set(key, json[key].get<int>()); } break;
|
|
||||||
case NJsonNode::value_t::number_unsigned: { fields.set(key, json[key].get<int>()); } break;
|
|
||||||
case NJsonNode::value_t::number_float: { fields.set(key, json[key].get<float>()); } break;
|
|
||||||
case NJsonNode::value_t::null: {} break;
|
|
||||||
case NJsonNode::value_t::object: {} break;
|
|
||||||
case NJsonNode::value_t::array: {} break;
|
|
||||||
case NJsonNode::value_t::binary: {} break;
|
|
||||||
case NJsonNode::value_t::discarded: {} break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class HttpHelper
|
class HttpHelper
|
||||||
@@ -82,7 +93,16 @@ public:
|
|||||||
errmsg = "";
|
errmsg = "";
|
||||||
for (auto& key : vecKeys)
|
for (auto& key : vecKeys)
|
||||||
{
|
{
|
||||||
if (!req.has_param(key))
|
bool hasParam = false;
|
||||||
|
if (req.method == "GET")
|
||||||
|
{
|
||||||
|
hasParam = req.has_param(key);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hasParam = (req.body.find("\"" + key + "\"") != std::string::npos);
|
||||||
|
}
|
||||||
|
if (!hasParam)
|
||||||
{
|
{
|
||||||
if (!errmsg.empty()) { errmsg += ","; }
|
if (!errmsg.empty()) { errmsg += ","; }
|
||||||
errmsg += "缺少参数[" + key + "]";
|
errmsg += "缺少参数[" + key + "]";
|
||||||
@@ -103,20 +123,7 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
using HandlerFunc = Errcode(HttpEntity::*)(const httplib::Request& req, httplib::Response& resp, NJsonNode& jnode);
|
|
||||||
|
|
||||||
struct HandlerOptions
|
|
||||||
{
|
|
||||||
HandlerFunc func;
|
|
||||||
std::vector<std::string> requiredKeys;
|
|
||||||
std::vector<std::string> keys;
|
|
||||||
|
|
||||||
|
|
||||||
HandlerOptions(HandlerFunc func, const std::vector<std::string>& requiredKeys)
|
|
||||||
: func(func), requiredKeys(requiredKeys)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static std::map<std::string, HandlerOptions> g_mapHttpHandlerGet =
|
static std::map<std::string, HandlerOptions> g_mapHttpHandlerGet =
|
||||||
{
|
{
|
||||||
@@ -134,7 +141,7 @@ static std::map<std::string, HandlerOptions> g_mapHttpHandlerGet =
|
|||||||
{"/deleteStation", HandlerOptions(&HttpEntity::deleteStation, { DMStation::STATION_ID})},
|
{"/deleteStation", HandlerOptions(&HttpEntity::deleteStation, { DMStation::STATION_ID})},
|
||||||
|
|
||||||
{"/queryStationInfo", HandlerOptions(&HttpEntity::queryStationInfo, { DMStation::STATION_ID})},
|
{"/queryStationInfo", HandlerOptions(&HttpEntity::queryStationInfo, { DMStation::STATION_ID})},
|
||||||
{"/queryStationRuntime", HandlerOptions(&HttpEntity::queryStationRuntime, { DMStation::STATION_ID})},
|
{"/queryStationData", HandlerOptions(&HttpEntity::queryStationData, { DMStation::STATION_ID})},
|
||||||
|
|
||||||
{"/queryDeviceList", HandlerOptions(&HttpEntity::queryDeviceList, {})},
|
{"/queryDeviceList", HandlerOptions(&HttpEntity::queryDeviceList, {})},
|
||||||
{"/deleteDevice", HandlerOptions(&HttpEntity::deleteDevice, { DMDevice::DEVICE_ID})},
|
{"/deleteDevice", HandlerOptions(&HttpEntity::deleteDevice, { DMDevice::DEVICE_ID})},
|
||||||
@@ -142,7 +149,6 @@ static std::map<std::string, HandlerOptions> g_mapHttpHandlerGet =
|
|||||||
|
|
||||||
{"/queryPolicyList", HandlerOptions(&HttpEntity::queryPolicyList, {})},
|
{"/queryPolicyList", HandlerOptions(&HttpEntity::queryPolicyList, {})},
|
||||||
|
|
||||||
|
|
||||||
{"/deletePolicy", HandlerOptions(&HttpEntity::deletePolicy, { DMPolicy::POLICY_ID})},
|
{"/deletePolicy", HandlerOptions(&HttpEntity::deletePolicy, { DMPolicy::POLICY_ID})},
|
||||||
|
|
||||||
{"/querySystemLogList", HandlerOptions(&HttpEntity::querySystemLogList, {})},
|
{"/querySystemLogList", HandlerOptions(&HttpEntity::querySystemLogList, {})},
|
||||||
@@ -202,70 +208,22 @@ bool CheckHttpToken(const httplib::Request& req)
|
|||||||
|
|
||||||
HttpEntity::HttpEntity()
|
HttpEntity::HttpEntity()
|
||||||
{
|
{
|
||||||
bool useToken = Config::option.http.useToken;
|
|
||||||
for (auto& item : g_mapHttpHandlerGet)
|
for (auto& item : g_mapHttpHandlerGet)
|
||||||
{
|
{
|
||||||
std::string name = item.first;
|
std::string name = item.first;
|
||||||
HandlerOptions& handler = item.second;
|
HandlerOptions& handler = item.second;
|
||||||
this->httpsvr.Get(name, [=, &handler](const httplib::Request& req, httplib::Response& resp)
|
this->httpsvr.Get(name, [=, &handler](const httplib::Request& req, httplib::Response& resp)
|
||||||
{
|
{
|
||||||
spdlog::info("[http] request: {}", name);
|
this->runHandler(name, handler, req, resp);
|
||||||
Errcode errcode = Errcode::OK;
|
|
||||||
if (name != "/login" && useToken)
|
|
||||||
{
|
|
||||||
bool ret = CheckHttpToken(req);
|
|
||||||
errcode = ret ? Errcode::OK : Errcode::ERR_TOKEN;
|
|
||||||
}
|
|
||||||
|
|
||||||
NJsonNode json;
|
|
||||||
std::string errmsg;
|
|
||||||
if (errcode == Errcode::OK)
|
|
||||||
{
|
|
||||||
if (!HttpHelper::CheckRequestParam(req, resp, handler.requiredKeys, errmsg))
|
|
||||||
{
|
|
||||||
errcode = Errcode::ERR_PARAM;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
errcode = (this->*(handler.func))(req, resp, json);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
json["errcode"] = errcode;
|
|
||||||
json["errmsg"] = ErrcodeStr(errcode) + (errmsg.empty() ? "" : (":"+errmsg));
|
|
||||||
resp.set_content(json.dump(), "text/plain; charset=utf-8");
|
|
||||||
resp.status = 200;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto& item : g_mapHttpHandlerPost)
|
for (auto& item : g_mapHttpHandlerPost)
|
||||||
{
|
{
|
||||||
std::string name = item.first;
|
std::string name = item.first;
|
||||||
HandlerOptions& handler = item.second;
|
HandlerOptions& handler = item.second;
|
||||||
this->httpsvr.Post(name, [=](const httplib::Request& req, httplib::Response& resp)
|
this->httpsvr.Post(name, [=](const httplib::Request& req, httplib::Response& resp)
|
||||||
{
|
{
|
||||||
Errcode errcode = Errcode::OK;
|
this->runHandler(name, handler, req, resp);
|
||||||
std::string errmsg;
|
|
||||||
if (name != "/login" && useToken)
|
|
||||||
{
|
|
||||||
bool ret = CheckHttpToken(req);
|
|
||||||
errcode = ret ? Errcode::OK : Errcode::ERR_TOKEN;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (errcode == Errcode::OK)
|
|
||||||
{
|
|
||||||
NJsonNode jsonparam;
|
|
||||||
bool ret = NJson::parse(req.body, jsonparam);
|
|
||||||
if (ret)
|
|
||||||
{
|
|
||||||
errcode = (this->*(handler.func))(req, resp, jsonparam);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NJsonNode json;
|
|
||||||
json["errcode"] = errcode;
|
|
||||||
json["errmsg"] = ErrcodeStr(errcode) + (errmsg.empty() ? "" : (":"+errmsg));
|
|
||||||
resp.set_content(json.dump(), "text/plain; charset=utf-8");
|
|
||||||
resp.status = 200;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -277,6 +235,37 @@ void HttpEntity::listen(std::string addr, int port)
|
|||||||
httpsvr.listen(addr, port); // 阻塞
|
httpsvr.listen(addr, port); // 阻塞
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HttpEntity::runHandler(std::string name, const HandlerOptions& handler, const httplib::Request& req, httplib::Response& resp)
|
||||||
|
{
|
||||||
|
spdlog::info("[http] request: {}", name);
|
||||||
|
bool useToken = Config::option.http.useToken;
|
||||||
|
Errcode errcode = Errcode::OK;
|
||||||
|
std::string errmsg;
|
||||||
|
|
||||||
|
if (name != "/login" && useToken)
|
||||||
|
{
|
||||||
|
bool ret = CheckHttpToken(req);
|
||||||
|
errcode = ret ? Errcode::OK : Errcode::ERR_TOKEN;
|
||||||
|
}
|
||||||
|
|
||||||
|
NJsonNode jsonresp;
|
||||||
|
if (errcode == Errcode::OK)
|
||||||
|
{
|
||||||
|
if (!HttpHelper::CheckRequestParam(req, resp, handler.requiredKeys, errmsg))
|
||||||
|
{
|
||||||
|
errcode = Errcode::ERR_PARAM;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
errcode = (this->*(handler.func))(req, resp, jsonresp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
jsonresp["errcode"] = errcode;
|
||||||
|
jsonresp["errmsg"] = ErrcodeStr(errcode) + (errmsg.empty() ? "" : (":"+errmsg));
|
||||||
|
resp.set_content(jsonresp.dump(), "text/plain; charset=utf-8");
|
||||||
|
resp.status = 200;
|
||||||
|
}
|
||||||
|
|
||||||
void HttpEntity::registGet(std::string name, void (HttpEntity::* func)(const httplib::Request& req, httplib::Response& resp))
|
void HttpEntity::registGet(std::string name, void (HttpEntity::* func)(const httplib::Request& req, httplib::Response& resp))
|
||||||
{
|
{
|
||||||
this->httpsvr.Get(name, std::bind(func, this, std::placeholders::_1, std::placeholders::_2));
|
this->httpsvr.Get(name, std::bind(func, this, std::placeholders::_1, std::placeholders::_2));
|
||||||
@@ -302,9 +291,14 @@ Errcode HttpEntity::login(const httplib::Request& req, httplib::Response& resp,
|
|||||||
int roleId = fields.get<int>(DMRole::ROLE_ID);
|
int roleId = fields.get<int>(DMRole::ROLE_ID);
|
||||||
DAO::queryRolePermission(dao, roleId, vecPermission);
|
DAO::queryRolePermission(dao, roleId, vecPermission);
|
||||||
|
|
||||||
NJsonNode jnode = NJsonNode::array();
|
NJsonNode nodePermission = NJsonNode::array();
|
||||||
for (auto& item : vecPermission) { jnode.push_back(item.value("name")); }
|
for (auto& item : vecPermission)
|
||||||
json["permission"] = jnode;
|
{
|
||||||
|
NJsonNode node;
|
||||||
|
FieldsToJson(item, node);
|
||||||
|
nodePermission.push_back(node);
|
||||||
|
}
|
||||||
|
json["permission"] = nodePermission;
|
||||||
}
|
}
|
||||||
|
|
||||||
DAO::insertSystemLogUser(token, "用户登录:" + ErrcodeStr(err), (err==Errcode::OK) ? 0: 1);
|
DAO::insertSystemLogUser(token, "用户登录:" + ErrcodeStr(err), (err==Errcode::OK) ? 0: 1);
|
||||||
@@ -338,7 +332,7 @@ Errcode HttpEntity::insertUser(const httplib::Request& req, httplib::Response& r
|
|||||||
Errcode HttpEntity::updateUser(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
Errcode HttpEntity::updateUser(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
||||||
{
|
{
|
||||||
Fields params;
|
Fields params;
|
||||||
GetRequestParam(req, {"user_id", "name", "gender", "age", "phone", "email", "role_id"}, params);
|
GetRequestParam(req, {"user_id", "account", "name", "gender", "age", "phone", "email", "role_id"}, params);
|
||||||
return DAO::updateUserById(params);
|
return DAO::updateUserById(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -401,14 +395,13 @@ Errcode HttpEntity::queryRoleList(const httplib::Request& req, httplib::Response
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::map<std::string, std::vector<NJsonNode>> mapPermission;
|
std::map<std::string, std::vector<NJsonNode>> mapPermission;
|
||||||
for (auto& item: vecPermission)
|
for (auto& fields: vecPermission)
|
||||||
{
|
{
|
||||||
std::string roleId = item.value("role_id");
|
std::string roleId = fields.value("role_id");
|
||||||
auto& v = mapPermission[roleId];
|
auto& v = mapPermission[roleId];
|
||||||
NJsonNode jnode;
|
NJsonNode node;
|
||||||
jnode["id"] = item.value("permission_id");
|
FieldsToJson(fields, node);
|
||||||
jnode["name"] = item.value("permission_name");
|
v.push_back(node);
|
||||||
v.push_back(jnode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HttpHelper::setPagination(pageinfo, result, json);
|
HttpHelper::setPagination(pageinfo, result, json);
|
||||||
@@ -433,8 +426,38 @@ Errcode HttpEntity::insertRole(const httplib::Request& req, httplib::Response& r
|
|||||||
Errcode HttpEntity::updateRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
Errcode HttpEntity::updateRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
||||||
{
|
{
|
||||||
Fields params;
|
Fields params;
|
||||||
GetRequestParam(req, {"role_id", "name", "describe", "is_open", "permission"}, params);
|
//GetRequestParam(req, {"role_id", "name", "describe", "is_open", "permission"}, params);
|
||||||
return DAO::updateRoleById(params);
|
|
||||||
|
NJsonNode jsonparam;
|
||||||
|
if (!NJson::parse(req.body, jsonparam))
|
||||||
|
{
|
||||||
|
return Errcode::ERR_PARAM;
|
||||||
|
}
|
||||||
|
JsonToFields(jsonparam, {"role_id", "name", "describe", "is_open"}, params);
|
||||||
|
|
||||||
|
auto roleId = params.value("role_id");
|
||||||
|
|
||||||
|
auto dao = DaoEntity::create("");
|
||||||
|
auto err = DAO::updateRoleById(dao, params);
|
||||||
|
if (err == Errcode::OK && jsonparam.contains("permission"))
|
||||||
|
{
|
||||||
|
if (jsonparam["permission"].is_array())
|
||||||
|
{
|
||||||
|
|
||||||
|
auto& jsonPermission = jsonparam["permission"];
|
||||||
|
std::vector<Fields> vecFields(jsonPermission.size());
|
||||||
|
int i = 0;
|
||||||
|
for (auto& item: jsonPermission)
|
||||||
|
{
|
||||||
|
auto& fields = vecFields[i];
|
||||||
|
i++;
|
||||||
|
JsonToFields(item, {"permission_id", "is_add", "is_del", "is_edit", "is_view"}, fields);
|
||||||
|
fields.set("role_id", roleId);
|
||||||
|
}
|
||||||
|
err = DAO::updateRolePermission(dao, roleId, vecFields);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return err;
|
||||||
};
|
};
|
||||||
Errcode HttpEntity::deleteRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
Errcode HttpEntity::deleteRole(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
||||||
{
|
{
|
||||||
@@ -594,7 +617,9 @@ Errcode HttpEntity::updatePolicy(const httplib::Request& req, httplib::Response&
|
|||||||
};
|
};
|
||||||
Errcode HttpEntity::deletePolicy(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
Errcode HttpEntity::deletePolicy(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
||||||
{
|
{
|
||||||
return DAO::deletePolicyById(req.get_param_value("prolicy_id"));
|
Fields params;
|
||||||
|
GetRequestParam(req, {"policy_id"}, params);
|
||||||
|
return DAO::deletePolicyById(params.value("policy_id"));
|
||||||
};
|
};
|
||||||
|
|
||||||
Errcode HttpEntity::querySystemLogList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
Errcode HttpEntity::querySystemLogList(const httplib::Request& req, httplib::Response& resp, NJsonNode& json)
|
||||||
@@ -695,8 +720,8 @@ Errcode HttpEntity::queryStatTotal(const httplib::Request& req, httplib::Respons
|
|||||||
jsondata["charge_elect"] = "123.123"; //充电设备充电电量(kWh),精度:0.001
|
jsondata["charge_elect"] = "123.123"; //充电设备充电电量(kWh),精度:0.001
|
||||||
jsondata["charge_num"] = "1"; //充电设备充电次数
|
jsondata["charge_num"] = "1"; //充电设备充电次数
|
||||||
jsondata["charge_num_err"] = "1"; //充电设备故障次数
|
jsondata["charge_num_err"] = "1"; //充电设备故障次数
|
||||||
jsondata["income_elect"] = "123.123"; //发电收益(元),精度:0.01
|
jsondata["income_elect"] = "123.123"; //发电收益(元),精度:0.01
|
||||||
jsondata["income_charge"] = "123.123"; //充电收益(元),精度:0.01
|
jsondata["income_charge"] = "123.123"; //充电收益(元),精度:0.01
|
||||||
|
|
||||||
json["data"] = jsondata;
|
json["data"] = jsondata;
|
||||||
return Errcode::OK;
|
return Errcode::OK;
|
||||||
|
|||||||
@@ -1,6 +1,22 @@
|
|||||||
#include "httplib.h"
|
#include "httplib.h"
|
||||||
#include "common/JsonN.h"
|
#include "common/JsonN.h"
|
||||||
#include "errcode.h"
|
#include "errcode.h"
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
|
class HttpEntity;
|
||||||
|
using HandlerFunc = Errcode(HttpEntity::*)(const httplib::Request& req, httplib::Response& resp, NJsonNode& jnode);
|
||||||
|
|
||||||
|
struct HandlerOptions
|
||||||
|
{
|
||||||
|
HandlerFunc func;
|
||||||
|
std::vector<std::string> requiredKeys;
|
||||||
|
std::vector<std::string> keys;
|
||||||
|
|
||||||
|
HandlerOptions(HandlerFunc func, const std::vector<std::string>& requiredKeys)
|
||||||
|
: func(func), requiredKeys(requiredKeys)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class HttpEntity
|
class HttpEntity
|
||||||
{
|
{
|
||||||
@@ -8,6 +24,7 @@ public:
|
|||||||
httplib::Server httpsvr;
|
httplib::Server httpsvr;
|
||||||
HttpEntity();
|
HttpEntity();
|
||||||
void listen(std::string addr, int port);
|
void listen(std::string addr, int port);
|
||||||
|
void runHandler(std::string name, const HandlerOptions& handler, const httplib::Request& req, httplib::Response& resp);
|
||||||
void registGet(std::string name, void (HttpEntity::* func)(const httplib::Request& req, httplib::Response& resp));
|
void registGet(std::string name, void (HttpEntity::* func)(const httplib::Request& req, httplib::Response& resp));
|
||||||
|
|
||||||
//void onGet(const httplib::Request& req, httplib::Response& resp);
|
//void onGet(const httplib::Request& req, httplib::Response& resp);
|
||||||
|
|||||||
@@ -1,9 +1,31 @@
|
|||||||
#include "MqttEntity.h"
|
#include "MqttEntity.h"
|
||||||
#include "common/Spdlogger.h"
|
#include "common/Spdlogger.h"
|
||||||
#include "common/JsonN.h"
|
#include "common/JsonN.h"
|
||||||
|
#include "common/Utils.h"
|
||||||
|
|
||||||
#define TIMEOUT 10000L
|
#define TIMEOUT 10000L
|
||||||
|
|
||||||
|
|
||||||
|
static std::map<std::string, std::map<std::string, REGInfo>> g_mapRegInfo;
|
||||||
|
|
||||||
|
void MqttClient::loadDataStruct(std::string filename)
|
||||||
|
{
|
||||||
|
NJsonNode json;
|
||||||
|
NJson::load(filename, json);
|
||||||
|
|
||||||
|
// 遍历 JSON 对象
|
||||||
|
for (auto& jsonitem : json.items())
|
||||||
|
{
|
||||||
|
auto& mapItem = g_mapRegInfo[jsonitem.key()];
|
||||||
|
|
||||||
|
for (auto& itemaddrs : jsonitem.value().items())
|
||||||
|
{
|
||||||
|
auto& jsonreg = itemaddrs.value();
|
||||||
|
mapItem[jsonreg["key"]] = REGInfo(jsonreg["key"], jsonreg["datatype"], jsonreg["remark"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int MqttClient::init(string addr, string clientId, string username, string password)
|
int MqttClient::init(string addr, string clientId, string username, string password)
|
||||||
{
|
{
|
||||||
this->addr = addr;
|
this->addr = addr;
|
||||||
@@ -28,7 +50,8 @@ int MqttClient::init(string addr, string clientId, string username, string passw
|
|||||||
int rc {0};
|
int rc {0};
|
||||||
|
|
||||||
// "tcp://localhost:1883"
|
// "tcp://localhost:1883"
|
||||||
rc = MQTTAsync_create(&client, addr.c_str(), clientId.c_str(), MQTTCLIENT_PERSISTENCE_NONE, NULL);
|
std::string str = "ESS-" + std::to_string(Utils::random(1000, 9999)) + "-" +clientId;
|
||||||
|
rc = MQTTAsync_create(&client, addr.c_str(), str.c_str(), MQTTCLIENT_PERSISTENCE_NONE, NULL);
|
||||||
if (rc != MQTTASYNC_SUCCESS)
|
if (rc != MQTTASYNC_SUCCESS)
|
||||||
{
|
{
|
||||||
spdlog::error("[mqtt] MQTTAsync_create error: {}", rc);
|
spdlog::error("[mqtt] MQTTAsync_create error: {}", rc);
|
||||||
@@ -87,10 +110,10 @@ int MqttClient::init(string addr, string clientId, string username, string passw
|
|||||||
|
|
||||||
void MqttClient::destory()
|
void MqttClient::destory()
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
if (client)
|
if (client)
|
||||||
{
|
{
|
||||||
MQTTAsync_destroy(&client);
|
MQTTAsync_destroy(&client);
|
||||||
client = nullptr;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,7 +177,7 @@ int MqttClient::publish(string topic, string text)
|
|||||||
void MqttClient::onConnectionLost(char* cause)
|
void MqttClient::onConnectionLost(char* cause)
|
||||||
{
|
{
|
||||||
this->isConnected = false;
|
this->isConnected = false;
|
||||||
this->destory();
|
//this->destory();
|
||||||
spdlog::error("MQTT connection lost, cause={}", cause);
|
spdlog::error("MQTT connection lost, cause={}", cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,10 +207,47 @@ int MqttClient::onMessageArrived(char* topic, int topicLen, MQTTAsync_message* m
|
|||||||
std::string command = GetSubStr("/", topicStr);
|
std::string command = GetSubStr("/", topicStr);
|
||||||
std::string deviceCode = GetSubStr("/", topicStr);
|
std::string deviceCode = GetSubStr("/", topicStr);
|
||||||
|
|
||||||
if (command == "EMS_YX") {}
|
|
||||||
else if (command == "EMS_YC") {}
|
//EMS遥信
|
||||||
|
//EMS遥测
|
||||||
|
//EMS遥调
|
||||||
|
//PCU遥信
|
||||||
|
//PCU遥测
|
||||||
|
//PCS遥信
|
||||||
|
//PCS遥测
|
||||||
|
//BMS遥测
|
||||||
|
//BCU遥信
|
||||||
|
//BCU遥测
|
||||||
|
//电表遥测
|
||||||
|
//温湿度遥测
|
||||||
|
//消防遥信4.0
|
||||||
|
//冷机遥信
|
||||||
|
//冷机遥测
|
||||||
|
//充电桩遥测
|
||||||
|
//网关遥信
|
||||||
|
//网关遥测
|
||||||
|
//网关遥调
|
||||||
|
//台区
|
||||||
|
|
||||||
|
if (command == "EMS_YX") { this->parseEMS_YX(payload); }
|
||||||
|
else if (command == "EMS_YC") { this->parseEMS_YC(payload); }
|
||||||
else if (command == "PCU_YX") { this->parsePCU_YX(payload); }
|
else if (command == "PCU_YX") { this->parsePCU_YX(payload); }
|
||||||
else if (command == "PCU_YC") {}
|
else if (command == "PCU_YC") { this->parsePCU_YC(payload); }
|
||||||
|
else if (command == "PCS_YX") { this->parsePCS_YX(payload); }
|
||||||
|
else if (command == "PCS_YC") { this->parsePCS_YC(payload); }
|
||||||
|
else if (command == "BMS_YC") { this->parseBMS_YC(payload); }
|
||||||
|
else if (command == "BCU_YX") { this->parseBCU_YX(payload); }
|
||||||
|
else if (command == "BCU_YC") { this->parseBCU_YC(payload); }
|
||||||
|
else if (command == "MEM_YC") { this->parseMEM_YC(payload); }
|
||||||
|
else if (command == "TH_YC") { this->parseTH_YC(payload); }
|
||||||
|
else if (command == "Fire40_YX") { this->parseFire40_YX(payload); }
|
||||||
|
else if (command == "Cooling_YX") { this->parseCooling_YX(payload); }
|
||||||
|
else if (command == "Cooling_YC") { this->parseCooling_YC(payload); }
|
||||||
|
else if (command == "Charger_YC") { this->parseCharger_YC(payload); }
|
||||||
|
else if (command == "Gateway_YX") { this->parseGateway_YX(payload); }
|
||||||
|
else if (command == "Gateway_YC") { this->parseGateway_YC(payload); }
|
||||||
|
else if (command == "Gateway_YT") { this->parseGateway_YT(payload); }
|
||||||
|
else if (command == "TQ") { this->parseTQ(payload); }
|
||||||
|
|
||||||
// 必须释放消息内存!
|
// 必须释放消息内存!
|
||||||
MQTTAsync_freeMessage(&msg);
|
MQTTAsync_freeMessage(&msg);
|
||||||
@@ -205,7 +265,7 @@ void MqttClient::onDeliveryComplete(MQTTAsync_token token)
|
|||||||
|
|
||||||
void MqttClient::onConnectSuccess( MQTTAsync_successData* resp)
|
void MqttClient::onConnectSuccess( MQTTAsync_successData* resp)
|
||||||
{
|
{
|
||||||
spdlog::info("[mqtt] connect to {} success.", addr);
|
spdlog::info("[mqtt] connect to {} success, clientId={}.", addr, clientId);
|
||||||
this->isConnected = true;
|
this->isConnected = true;
|
||||||
this->subscribe();
|
this->subscribe();
|
||||||
//MQTTAsync_responseOptions options = MQTTAsync_responseOptions_initializer;
|
//MQTTAsync_responseOptions options = MQTTAsync_responseOptions_initializer;
|
||||||
@@ -234,20 +294,30 @@ void MqttClient::onConnectSuccess( MQTTAsync_successData* resp)
|
|||||||
}
|
}
|
||||||
void MqttClient::onConnectFaiure(MQTTAsync_failureData* resp)
|
void MqttClient::onConnectFaiure(MQTTAsync_failureData* resp)
|
||||||
{
|
{
|
||||||
spdlog::error("[mqtt] connect to {} error.", addr);
|
spdlog::error("[mqtt] connect to {} error, clientId={}.", addr, clientId);
|
||||||
this->isConnected = false;
|
this->isConnected = false;
|
||||||
this->destory();
|
this->destory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MqttClient::parseEMS_YX(std::string& text){}
|
||||||
void MqttClient::parseEMS_YC(std::string& text)
|
void MqttClient::parseEMS_YC(std::string& text) {};
|
||||||
{
|
void MqttClient::parsePCU_YX(std::string& text) {};
|
||||||
|
void MqttClient::parsePCU_YC(std::string& text) {};
|
||||||
}
|
void MqttClient::parsePCS_YX(std::string& text) {};
|
||||||
void MqttClient::parsePCU_YX(std::string& text)
|
void MqttClient::parsePCS_YC(std::string& text) {};
|
||||||
{
|
void MqttClient::parseBMS_YC(std::string& text) {};
|
||||||
}
|
void MqttClient::parseBCU_YX(std::string& text) {};
|
||||||
|
void MqttClient::parseBCU_YC(std::string& text) {};
|
||||||
|
void MqttClient::parseMEM_YC(std::string& text) {};
|
||||||
|
void MqttClient::parseTH_YC(std::string& text) {};
|
||||||
|
void MqttClient::parseFire40_YX(std::string& text) {};
|
||||||
|
void MqttClient::parseCooling_YX(std::string& text) {};
|
||||||
|
void MqttClient::parseCooling_YC(std::string& text) {};
|
||||||
|
void MqttClient::parseCharger_YC(std::string& text) {};
|
||||||
|
void MqttClient::parseGateway_YX(std::string& text) {};
|
||||||
|
void MqttClient::parseGateway_YC(std::string& text) {};
|
||||||
|
void MqttClient::parseGateway_YT(std::string& text) {};
|
||||||
|
void MqttClient::parseTQ(std::string& text) {};
|
||||||
|
|
||||||
string MQTT::packEquipmentInfo()
|
string MQTT::packEquipmentInfo()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,11 +5,29 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
#include "MQTTAsync.h"
|
#include "MQTTAsync.h"
|
||||||
|
|
||||||
|
struct REGInfo
|
||||||
|
{
|
||||||
|
std::string key;
|
||||||
|
std::string datatype;
|
||||||
|
int bytes {0};
|
||||||
|
std::string remark;
|
||||||
|
|
||||||
|
REGInfo() {}
|
||||||
|
REGInfo(std::string key, std::string datatype, std::string remark)
|
||||||
|
: key(key), datatype(datatype), remark(remark)
|
||||||
|
{
|
||||||
|
if (datatype == "uint16" || datatype == "int16") { bytes = 1; }
|
||||||
|
else if (datatype == "uint32" || datatype == "int32") { bytes = 2; }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
class MqttClient
|
class MqttClient
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
static void loadDataStruct(std::string filename);
|
||||||
|
|
||||||
int init(string addr, string clientId, string username, string password);
|
int init(string addr, string clientId, string username, string password);
|
||||||
void destory();
|
void destory();
|
||||||
|
|
||||||
@@ -23,8 +41,25 @@ public:
|
|||||||
void onConnectSuccess(MQTTAsync_successData* resp);
|
void onConnectSuccess(MQTTAsync_successData* resp);
|
||||||
void onConnectFaiure(MQTTAsync_failureData* resp);
|
void onConnectFaiure(MQTTAsync_failureData* resp);
|
||||||
|
|
||||||
|
void parseEMS_YX(std::string& text);
|
||||||
void parseEMS_YC(std::string& text);
|
void parseEMS_YC(std::string& text);
|
||||||
void parsePCU_YX(std::string& text);
|
void parsePCU_YX(std::string& text);
|
||||||
|
void parsePCU_YC(std::string& text);
|
||||||
|
void parsePCS_YX(std::string& text);
|
||||||
|
void parsePCS_YC(std::string& text);
|
||||||
|
void parseBMS_YC(std::string& text);
|
||||||
|
void parseBCU_YX(std::string& text);
|
||||||
|
void parseBCU_YC(std::string& text);
|
||||||
|
void parseMEM_YC(std::string& text);
|
||||||
|
void parseTH_YC(std::string& text);
|
||||||
|
void parseFire40_YX(std::string& text);
|
||||||
|
void parseCooling_YX(std::string& text);
|
||||||
|
void parseCooling_YC(std::string& text);
|
||||||
|
void parseCharger_YC(std::string& text);
|
||||||
|
void parseGateway_YX(std::string& text);
|
||||||
|
void parseGateway_YC(std::string& text);
|
||||||
|
void parseGateway_YT(std::string& text);
|
||||||
|
void parseTQ(std::string& text);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::string clientId;
|
std::string clientId;
|
||||||
|
|||||||
Reference in New Issue
Block a user