# 协调控制器
## 版本
- 20220920
    - 初稿
-20220921
    - 增加给EMS提供数据的功能
-20221008
    - 增加报警接口描述
   
## 储能子系统告警接口
### 故障上报
总故障:储能子系统全部保护,兼容原来EMS接口

- 总故障 0~1
1:所有组都产生3级故障
- 功率协调异常(调度总功率)
1:总功率与期望功率偏差过大

- PCS通讯异常
- BMS通讯异常
- METER通讯异常
- PCS故障
- BMS故障
- PCS并网状态反馈异常
- PCS运行状态反馈异常
- BMS电堆操作状态异常
- BMS电堆上高压状态异常

```json
{
        "sn":   "21881FFF0005_ENGASS",
        "identifier":   "fault_level_get",
        "mi":        0,
        "tags":{
            "fault":1,
            "PCS_offline":1,
            "PCS_fault":1,
            "BMS_offline":1,
            "BMS_fault":1,
            "METER_offline":1,
            "PCS_conn_conflict":1,
            "PCS_state_conflict":1,
            "BMS_high_vol_conflict":1,
            "BMS_switch_conflict":1
        }
}
```

### 故障等级上报(联动业务用)
告警:储能子系统的异常

- 总告警 0~3 : 
0:所有组无故障;
1:任何组产生1级故障
2:任何组产生2级故障
3:任何组产生3级故障
- 组1告警 0~3 :
0:组内无故障
1:收到充电,但电池禁充   |    收到放电,但电池禁放  
2:BMS通讯故障   |    储能电表通讯故障(有电表的情况)
3:PCS通讯故障    |    BMS故障状态置位        |    PCS故障状态置位    
- 组n告警 0~3 : 
同上

> 告警1:不动作
> 告警2:

```json
{
        "sn":   "21881FFF0005_ENGASS",
        "identifier":   "fault_level_get",
        "mi":        0,
        "tags":{
            "fault_level":1,
            "grps_fault_level":[
                {
                "level":3
                },
                {
                "level":3
                }
            ]
        }
}

```
另一种格式,可以兼容IOT的写命令
```json
{
        "sn":   "21881FFF0005_ENGASS",
        "identifier":   "fault_level_get",
        "mi":        0,
        "tags":{
            "fault_level":1,
            "grp1_fault_level":0,
            "grp2_fault_level":0,
        }
}

```

### 清除告警标志 (暂时不开发)


### 保护动作控制(联动业务用)
联动:EMS设置储能子系统联动等级

- 总联动设置 0~3 : 

```
```
3:设置所有组联动操作=3
- 组1联动设置 0~3 : 
1:具体动作随项目定制
2:具体动作随项目定制
3:具体动作随项目定制
- 组n联动设置 0~3 : 
同上

```json
{
        "sn":   "21881FFF0005_ENGASS",
        "identifier":   "protect_level_set",
        "mi":        0,
        "protect_level":1,
        "grps_protect_level":[
            {
            "level":3
            },
            {
            "level":3
            }
        ]
}

```

## 状态上报

汇聚后总状态/总数值
多个设备运行状态,只要有1个运行便认为运行

### 储能子系统数据(储能子系统视角 )
以下状态如果没有在JSON 中不传
不用拆分复用使用一个服务上报
数据内容是power

- PCS有功功率
- PCS无功功率
- PCS停机状态 
- PCS并网状态 
- PCS离网状态 
- PCS运行状态
- METER端口A相电压
- METER端口B相电压
- METER端口C相电压
- METER输出A相电流
- METER输出B相电流
- METER输出C相电流
- METER三相总有功功率
- METER三相总无功功率
- BMS_SOC
- BMS工作状态
- BMS充放状态(电流状态)
- BMS总电压
- BMS总电流 
- BMS电堆操作状态
- BMS电堆上高压状态

### 汇聚METER数据(仅仅临时给后台提供,后期移除)
数据内容格式是TAG

- METER端口A相电压
- METER端口B相电压
- METER端口C相电压
- METER输出A相电流
- METER输出B相电流
- METER输出C相电流
- METER三相总有功功率
### ~~汇聚PCS数据~~
数据内容格式是TAG

- PCS有功功率
- PCS无功功率
- PCS停机状态 
- PCS并网状态 
- PCS离网状态 
- PCS运行状态

### ~~汇聚BMS数据~~
数据内容格式是TAG

- BMS_SOC
- BMS工作状态
- BMS充放状态(电流状态)
- BMS总电压
- BMS总电流 
- 
## 写属性
### 控制(分多个状态)
- PCS有功功率
- PCS无功功率
- PCS停机状态 
- PCS开机状态 
- PCS并网状态 
- PCS离网状态 


##  调用服务

### 设备绑定
```json
{
	"sn": "21881FFF0001_xxxx",
	"devs": [{
	    "group_id":1,
		"dev_sn": "21881FFF0001_PCS1",
		"type": "pcs",
		"childDevice": [{
			"dev_sn": "21881FFF0001_rack1",
			"type": "rack"
		}, {
			"dev_sn": "21881FFF0001_bmsmter1",
			"type": "meter"
		}]
	}]
}
```



## 数据点位映射

### 电表
- 有储能电表读取储能电表数值
- 无储能电表读取PCS内部电压/电流

### BMS
- 有BMS协议从BMS内读取电池信息
- 无BMS协议从PCS内部读取SOC,电压等信息
- 否则SOC不传输


## 软件功能
### 点位名称映射
- 映射为ems_ctrl可识别数据
- 映射为后台可识别的数据
### N:1数据汇聚

### 分配控制功率

### 告警上报

### 联动控制响应





