ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OCPP1.6 Smart Charging 解读

OCPP1.6 Smart Charging 解读 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 AnumberPhases: 3 // 假设是三相充电}]}}}1、chargingProfileKind: Absolute 表明充电计划要从一个特定的时间点开启不会循环执行一般会带上startSchedule: 2024-09-24T12:00:00Z如果不带startSchedule则充电计划从validFrom:2024-09-24T10:00:00Z2、duration: 3600 表明充电计划持续 3600s 后结束如果不带duration则表明充电计划一直持续下去直到该文件失效时间validTo:2024-09-30T10:00:00Z3、startSchedule: 2024-09-24T12:00:00Z 表明指定的充电计划开始时间4、startPeriod: 0 表明从充电计划开始后偏移0s要限制为50A一般情况下当目的类型为ChargePointMaxProfile1、文件类型选Absolute2、不用带duration和startSchedule3、偏移值startPeriod:04、此时文件的生效起始时间即充电计划的起始时间5、枪号选connectorId:0表示整桩2.3 TxProfile用来对指定的交易做功率限制的注意以下1、必须携带transactionId表明是这个交易的TxProfile2、如果是RemoteStartTransaction携带的TxProfile则该TxProfile只对本次远程启动的交易生效2.3.1 Case 1RemoteStartTransaction携带的TxProfile{connectorId: 1,csChargingProfiles: {chargingProfileId: 1,transactionId: 123, // 交易ID如果已知stackLevel: 1,chargingProfilePurpose: TxProfile,chargingProfileKind: Relative, // 可以是 Absolute, Relative, 或 RecurringvalidFrom: 2024-09-25T10:00:00Z, // 配置文件开始生效的时间validTo: 2024-09-25T11:00:00Z, // 配置文件结束生效的时间chargingSchedule: {duration: 3600,chargingRateUnit: A,chargingSchedulePeriod: [{startPeriod: 0,limit: 63.0, // 最大充电速率限制为 63 AnumberPhases: 3 // 假设是三相充电},{startPeriod: 1800,limit: 36.0, // 最大充电速率限制为 36 AnumberPhases: 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 AnumberPhases: 3}{startPeriod: 1800,limit: 50.0, // 每天早上 10 点到 11 点的最大充电速率为 50 AnumberPhases: 3}]}}}1、文件类型选chargingProfileKind:Recurring2、循环类型选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:005、偏移值根据需求来最后一段限制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 AnumberPhases: 3 // 假设是三相充电},{startPeriod: 1800,limit: 36.0, // 最大充电速率限制为 36 AnumberPhases: 3 // 假设是三相充电}]}}}1、文件类型选chargingProfileKind:Absolute2、不带startSchedule因为不指定充电计划开始时间则充电计划开始时间为validFrom因此我们要限制功率的时间区间为validFrom: 2024-09-25T10:00:00ZvalidTo: 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 AnumberPhases: 3},{startPeriod: 1800, // 从第1800秒开始limit: 16.0, // 最大充电速率为 16 AnumberPhases: 3}]}}}1、文件类型选chargingProfileKind:Relative2、根据时间区间的需求选validFrom:2024-09-25T00:00:00Z,validTo:2024-09-25T00:00:00Z3、持续时间选duration:10800表明当充电交易未结束充电计划持续10800s后结束若不带duration则持续到充电交易结束4、因为目的类型为Relative不携带startSchedule充电计划的开始时间为充电交易开始时间5、偏移值根据需求选注意这里的偏移值是从充电交易开始时间最后一段限制startPeriod:1800持续到duration到/充电交易结束/失效时间到注意当文件生效时间内如果交易结束后再次启动则充电计划的开始时间为新一轮交易开始时间duration:10800和startPeriod都重计算2.4 TxDefaultProfile默认选择的充电文件不指定交易不携带transactionIdCase 1周期循环执行时Case 2对某天特定时间区间做一次限制Case 3在某个时间区间内对指定事务如充电交易启动后做限制以上情况都和TxProfile类似区别是1、目的类型为TxDefaultProfile2、不带transactionId注意如果一个时间点有多个同类型充电文件时根据stackLevel:1选择最低优先级为0值越大优先级越高3、GetCompositeSchedule.req1、duration 持续时间即要获取从当前时间到duration时间内的充电计划2、chargingRateUnit 功率单位假如下发以下获取当前时间到3600s后的充电计划{connectorId: 1,duration: 3600,chargingRateUnit: A}4、GetCompositeSchedule.confchargingSchedule展开表明充电计划表内容chargingSchedulePeriod展开表明具体每段时间区间的限制值说明在执行GetCompositeSchedule.conf前应该先从多个TxProfile和TxDefaultProfile内部整理一份充电计划表该计划表的起始时间是当前时间/收到GetCompositeSchedule.req那一刻时间结束时间是持续到duration如果GetCompositeSchedule.req不带duration则结束时间是根据内部的TxProfile/TxDefaultProfile来确定1、scheduleStart时间表的起始时间当前时间/收到GetCompositeSchedule.req那一刻时间2、durationGetCompositeSchedule.req带duration则这里的值通常一致如果不带duration则按照根据内部的TxProfile/TxDefaultProfile来确定3、startSchedule绝对计划表的起始时间如果该值缺失则充电计划表的起始时间是相对充电交易开始的用来表示当前充电计划表是否有一个明确固定的起始时间其实没啥卵用因为.....往下看Case 1若此时没有充电交易且即将要上报的充电计划表是根据某个充电文件文件类型是chargingProfileKind:Relative选择的也就是说当前上报的充电计划表是没有明确固定的起始时间此时的GetCompositeSchedule.confA、可以回复为Rejected因为没有明确固定的起始时间{status: Rejected,connectorId: 1}B、可以回复为Accepted但不携带scheduleStart、startSchedule表示我给你上报的充电计划表没有固定的起始时间按照充电交易的时间来[{status: Accepted,connectorId: 1,chargingSchedule: {duration: 3600, // 持续时间即GetCompositeSchedule.req 的 durationchargingRateUnit: A,chargingSchedulePeriod: [{startPeriod: 0,limit: 32.0, // 在交易启动后前1800s最大充电速率为 32 AnumberPhases: 3},{startPeriod: 1800,limit: 16.0, // 1800s后最大充电速率为 16 AnumberPhases: 3}]}}]Case 其他当不是按照充电交易时间来的一律带scheduleStart、startSchedule且二者的时间都是当前时间/收到GetCompositeSchedule.req那一刻时间[{status: Accepted,connectorId: 1,scheduleStart: 2024-09-25T10:00:00Z, // 使用当前时间作为 scheduleStartchargingSchedule: {duration: 3600, // 持续时间即GetCompositeSchedule.req 的 durationstartSchedule: 2024-09-25T10:00:00Z, //startSchedule和 scheduleStart 一致chargingRateUnit: A,chargingSchedulePeriod: [{startPeriod: 0,limit: 32.0, // 在前1800s最大充电速率为 32 AnumberPhases: 3},{startPeriod: 1800,limit: 16.0, // 在1800s后最大充电速率为 16 AnumberPhases: 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 AnumberPhases: 3},{startPeriod: 1800, // 第二个小时limit: 16.0, // 在第二个小时最大充电速率为 16 AnumberPhases: 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 AnumberPhases: 3}]}}]
返回列表