1、关于智能充电的解读:
以下是个人理解,不一定准确,有误及时修改
2、 SetChargingProfile.req 协议内容
csChargingProfiles展开
chargingSchedule展开,表示充电计划表的具体信息
chargingSchedulePeriod展开,表示具体每个时段要限制的功率
2.1 按充电文件目的分以下三种
2.2 ChargePointMaxProfile
一般是用来限制整桩的最大充电功率的,用法如下
{
"connectorId": 0, // 0 表示整个充电站
"csChargingProfiles": {
"chargingProfileId": 1,
"stackLevel": 1,
"chargingProfilePurpose": "ChargePointMaxProfile",
"chargingProfileKind": "Absolute",
"validFrom": "2024-09-24T10:00:00Z",
"validTo": "2024-09-30T10:00:00Z",
"chargingSchedule": {
// "duration": 3600,
// "startSchedule": "2024-09-24T12:00:00Z",
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 50.0, // 最大充电速率限制为 50 A
"numberPhases": 3 // 假设是三相充电
}
]
}
}
}
1、"chargingProfileKind": "Absolute" 表明充电计划要从一个特定的时间点开启,不会循环执行,一般会带上"startSchedule": "2024-09-24T12:00:00Z" ;如果不带startSchedule,则充电计划从"validFrom": "2024-09-24T10:00:00Z"
2、"duration": 3600 表明充电计划持续 3600s 后结束;如果不带duration,则表明充电计划一直持续下去,直到该文件失效时间"validTo": "2024-09-30T10:00:00Z"
3、"startSchedule": "2024-09-24T12:00:00Z" 表明指定的充电计划开始时间
4、"startPeriod": 0 表明从充电计划开始后,偏移0s,要限制为50A
一般情况下,当目的类型为ChargePointMaxProfile
1、文件类型选Absolute
2、不用带duration和startSchedule
3、偏移值"startPeriod": 0
4、此时文件的生效起始时间,即充电计划的起始时间
5、枪号选"connectorId": 0 表示整桩
2.3 TxProfile
用来对指定的交易做功率限制的,注意以下
1、必须携带transactionId,表明是这个交易的TxProfile
2、如果是RemoteStartTransaction携带的TxProfile,则该TxProfile只对本次远程启动的交易生效
2.3.1 Case 1:RemoteStartTransaction携带的TxProfile
{
"connectorId": 1,
"csChargingProfiles": {
"chargingProfileId": 1,
"transactionId": 123, // 交易ID,如果已知
"stackLevel": 1,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Relative", // 可以是 Absolute, Relative, 或 Recurring
"validFrom": "2024-09-25T10:00:00Z", // 配置文件开始生效的时间
"validTo": "2024-09-25T11:00:00Z", // 配置文件结束生效的时间
"chargingSchedule": {
"duration": 3600,
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 63.0, // 最大充电速率限制为 63 A
"numberPhases": 3 // 假设是三相充电
},
{
"startPeriod": 1800,
"limit": 36.0, // 最大充电速率限制为 36 A
"numberPhases": 3 // 假设是三相充电
}
]
}
}
}
1、文件类型选 "chargingProfileKind": "Relative" ,本次远程启动交易后有效
2、持续时间 "duration": 3600 表明只能生效3600s,不管本次交易是否结束;如果不带则一直持续到交易结束
3、不用带 "startSchedule",因为充电计划开始时间只能是远程交易的开始时间
4、偏移值根据需求来,最后一段限制"startPeriod": 1800 持续到duration到/交易结束/文件失效时间到
2.3.2 Case 2:周期循环执行时
{
"connectorId": 1,
"csChargingProfiles": {
"chargingProfileId": 3,
"transactionId": 123, // 交易ID,如果已知
"stackLevel": 1,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Recurring",
"recurrencyKind": "Daily",
"validFrom": "2024-09-25T00:00:00Z",
"validTo": "2024-09-30T00:00:00Z",
"chargingSchedule": {
"duration": 3600, // 每天一小时
"startSchedule": "10:00:00", // 每天早上 10 点开始
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 50.0, // 每天早上 10 点到 11 点的最大充电速率为 50 A
"numberPhases": 3
}
{
"startPeriod": 1800,
"limit": 50.0, // 每天早上 10 点到 11 点的最大充电速率为 50 A
"numberPhases": 3
}
]
}
}
}
1、文件类型选 "chargingProfileKind": "Recurring"
2、循环类型选"recurrencyKind": "Daily",也可以选每7天循环Weekly;只有当目的类型为"Recurring" ,才携带循环类型选项
3、持续时间 "duration": 3600 ,表明充电计划持续3600s结束;不带duration则直到下一个循环前结束
4、充电计划开始时间 "startSchedule": "10:00:00" 表明每次充电计划循环开始的时间都是10:00:00;如果不带则每次循环开始时间按"validFrom": "2024-09-25T00:00:00Z" 的每日 00:00:00
5、偏移值根据需求来,最后一段限制"startPeriod": 1800 持续到duration到/本次循环结束/文件失效时间到
2.3.3 Case 3:对某天特定时间区间,做一次限制
{
"connectorId": 1,
"csChargingProfiles": {
"chargingProfileId": 1,
"transactionId": 123,
"stackLevel": 1,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Absolute",
"validFrom": "2024-09-25T10:00:00Z",
"validTo": "2024-09-25T13:00:00Z",
"chargingSchedule": {
// "duration": 10800, // 从10:00到13:00共10800秒
// "startSchedule": "10:00:00", // 早上 10 点开始
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 63.0, // 最大充电速率限制为 63 A
"numberPhases": 3 // 假设是三相充电
},
{
"startPeriod": 1800,
"limit": 36.0, // 最大充电速率限制为 36 A
"numberPhases": 3 // 假设是三相充电
}
]
}
}
}
1、文件类型选"chargingProfileKind": "Absolute"
2、不带startSchedule ,因为不指定充电计划开始时间,则充电计划开始时间为"validFrom" ;因此我们要限制功率的时间区间为:
"validFrom": "2024-09-25T10:00:00Z"
"validTo": "2024-09-25T13:00:00Z"
根据需求更改
3、可以不带"duration": 10800 不指定持续时间,则充电计划持续到"validTo": "2024-09-25T13:00:00Z" ;如果指定的话,当持续时间到了,失效时间未到,则提前结束,当失效时间到了,持续时间未到,也结束。
4、偏移值根据需求来,最后一段限制"startPeriod": 1800 持续到duration到/文件失效时间到
2.3.4 Case 4:在某个时间区间内,对指定事务(如充电交易)启动后,做限制
{
"connectorId": 1,
"csChargingProfiles": {
"chargingProfileId": 2,
"transactionId": 123,
"stackLevel": 1,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Relative",
"validFrom": "2024-09-25T00:00:00Z",
"validTo": "2024-09-25T00:00:00Z",
"chargingSchedule": {
"duration": 10800, // 三个小时共10800秒
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 32.0, // 交易开始后的最大充电速率为 32 A
"numberPhases": 3
},
{
"startPeriod": 1800, // 从第1800秒开始
"limit": 16.0, // 最大充电速率为 16 A
"numberPhases": 3
}
]
}
}
}
1、文件类型选"chargingProfileKind": "Relative"
2、根据时间区间的需求选
"validFrom": "2024-09-25T00:00:00Z",
"validTo": "2024-09-25T00:00:00Z"
3、持续时间选"duration": 10800 表明当充电交易未结束,充电计划持续10800s后结束;若不带duration则持续到充电交易结束
4、因为目的类型为Relative,不携带startSchedule,充电计划的开始时间为充电交易开始时间
5、偏移值根据需求选,注意这里的偏移值是从充电交易开始时间,最后一段限制"startPeriod": 1800 持续到duration到/充电交易结束/失效时间到
注意:当文件生效时间内,如果交易结束后再次启动,则充电计划的开始时间为新一轮交易开始时间,"duration": 10800 和 "startPeriod" 都重计算
2.4 TxDefaultProfile
默认选择的充电文件,不指定交易,不携带transactionId
Case 1:周期循环执行时
Case 2:对某天特定时间区间,做一次限制
Case 3:在某个时间区间内,对指定事务(如充电交易)启动后,做限制
以上情况都和TxProfile类似,区别是:
1、目的类型为TxDefaultProfile
2、不带transactionId
注意:如果一个时间点有多个同类型充电文件时,根据"stackLevel": 1 选择,最低优先级为0,值越大优先级越高
3、GetCompositeSchedule.req
1、duration 持续时间,即要获取从当前时间到duration时间内的充电计划
2、chargingRateUnit 功率单位
假如下发以下,获取当前时间到3600s后的充电计划
{
"connectorId": 1,
"duration": 3600,
"chargingRateUnit": "A"
}
4、GetCompositeSchedule.conf
chargingSchedule展开,表明充电计划表内容
chargingSchedulePeriod展开,表明具体每段时间区间的限制值
说明:在执行GetCompositeSchedule.conf前,应该先从多个TxProfile和TxDefaultProfile,内部整理一份充电计划表,该计划表的起始时间是当前时间/收到GetCompositeSchedule.req那一刻时间,结束时间是持续到duration;如果GetCompositeSchedule.req不带duration,则结束时间是根据内部的TxProfile/TxDefaultProfile来确定
1、scheduleStart:时间表的起始时间:当前时间/收到GetCompositeSchedule.req那一刻时间
2、duration:GetCompositeSchedule.req带duration,则这里的值通常一致;如果不带duration,则按照根据内部的TxProfile/TxDefaultProfile来确定
3、startSchedule:绝对计划表的起始时间:如果该值缺失,则充电计划表的起始时间是相对充电交易开始的,用来表示当前充电计划表是否有一个明确固定的起始时间,其实没啥卵用,因为.....往下看
Case 1:若此时没有充电交易,且即将要上报的充电计划表是根据某个充电文件(文件类型是"chargingProfileKind": "Relative")选择的,也就是说当前上报的充电计划表是没有明确固定的起始时间,此时的GetCompositeSchedule.conf
A、可以回复为Rejected,因为没有明确固定的起始时间
{
"status": "Rejected",
"connectorId": 1
}
B、可以回复为Accepted,但不携带scheduleStart、startSchedule,表示我给你上报的充电计划表,没有固定的起始时间,按照充电交易的时间来
[
{
"status": "Accepted",
"connectorId": 1,
"chargingSchedule": {
"duration": 3600, // 持续时间:即GetCompositeSchedule.req 的 duration
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 32.0, // 在交易启动后,前1800s最大充电速率为 32 A
"numberPhases": 3
},
{
"startPeriod": 1800,
"limit": 16.0, // 1800s后最大充电速率为 16 A
"numberPhases": 3
}
]
}
}
]
Case 其他:当不是按照充电交易时间来的,一律带scheduleStart、startSchedule,且二者的时间都是当前时间/收到GetCompositeSchedule.req那一刻时间
[
{
"status": "Accepted",
"connectorId": 1,
"scheduleStart": "2024-09-25T10:00:00Z", // 使用当前时间作为 scheduleStart
"chargingSchedule": {
"duration": 3600, // 持续时间:即GetCompositeSchedule.req 的 duration
"startSchedule": "2024-09-25T10:00:00Z", //startSchedule:和 scheduleStart 一致
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 32.0, // 在前1800s最大充电速率为 32 A
"numberPhases": 3
},
{
"startPeriod": 1800,
"limit": 16.0, // 在1800s后最大充电速率为 16 A
"numberPhases": 3
}
]
}
}
]
4、startPeriod:偏移值,注意此时的起始时间是从scheduleStart来偏移的
还有一种特殊情况:同一枪号下,此时没有任何交易,但此时TxProfile(跟交易相关)和TxDefaultProfile同时生效时,AI说都回复
[
// 假设这个是TxProfile的
{
"status": "Accepted",
"connectorId": 1,
"scheduleStart": "2024-09-25T10:00:00Z",
"chargingSchedule": {
"duration": 3600,
"startSchedule": "2024-09-25T10:00:00Z",
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 32.0, // 在前两个小时最大充电速率为 32 A
"numberPhases": 3
},
{
"startPeriod": 1800, // 第二个小时
"limit": 16.0, // 在第二个小时最大充电速率为 16 A
"numberPhases": 3
}
]
}
},
// 假设这个是TxDefaultProfile的
{
"status": "Accepted",
"connectorId": 1,
"scheduleStart": "2024-09-25T10:00:00Z",
"chargingSchedule": {
"duration": 3600,
"startSchedule": "2024-09-25T10:00:00Z",
"chargingRateUnit": "A",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 20.0, // 默认的最大充电速率为 20 A
"numberPhases": 3
}
]
}
}
]