V2G 연동 - Use Cases
이 문서는 OCPP 2.1 기반 EVSE가 V2G 데이터를 수용할 수 있도록 CSMS와 교환해야 하는 표준 메시지, 표준 데이터 필드, Device Model 확인 흐름을 설명합니다.
이 문서는 CSMS ↔ EVSE 연동 규격만 설명합니다. 전력거래, 정산, 외부 전력 운영 시스템과의 실제 연동 방식은 포함하지 않습니다.
개요
V2G 연동에서 EVSE는 다음 정보를 CSMS와 교환할 수 있어야 합니다.
- EV가 요청한 energy transfer mode와 V2X 충전/방전 요구사항을 CSMS로 전송합니다.
- CSMS가 허용한 energy transfer mode를 EVSE에 전달합니다.
- CSMS가 charging profile 또는 dynamic schedule을 EVSE에 전달합니다.
- EVSE는 적용 가능한 charging schedule, charging limit, limit cleared 상태를 CSMS에 보고합니다.
V2G 준비 단계의 기본 방향은 커스텀 V2G 변수를 새로 정의하기보다 OCPP 2.1 표준 메시지와 표준 Device Model 확인 흐름을 우선 사용하는 것입니다.
사전 조건
EVSE는 다음 조건을 만족해야 합니다.
- OCPP version: OCPP 2.1
- V2G 대상 모드:
DC_BPT우선. EV/EVSE가 AC V2X 협상을 보고하는 경우AC_single_phase또는 OCPP 2.1 BPT 계열 mode도 수신할 수 있어야 합니다. - ISO 15118: V2G/BPT 처리를 위한 차량-충전기 통신 지원 필요
- CSMS 제어:
NotifyAllowedEnergyTransfer,SetChargingProfile,UpdateDynamicSchedule수신 처리 필요 - EVSE 보고:
NotifyEVChargingNeeds,NotifyEVChargingSchedule,NotifyChargingLimit,ClearedChargingLimit전송 처리 필요 - Device Model 보고: EVSE는
GetBaseReport/NotifyReport/GetVariables를 통해 OCPP 2.1 표준 component-variable 값을 보고할 수 있어야 합니다.
표준 Device Model 확인
CSMS는 V2G 흐름을 시작하기 전에 EVSE의 표준 Device Model 정보를 조회할 수 있습니다. 이 단계는 EVSE가 지원하는 OCPP 2.1 component-variable 목록과 Smart Charging, ISO 15118, transaction control 관련 설정을 확인하기 위한 절차입니다.
벤더 커스텀 component-variable는 OCPP 2.1 표준 변수가 아닙니다. 표준 메시지 또는 표준 Device Model로 표현 가능한 항목은 커스텀 변수로 중복 정의하지 않습니다.
OCPP v2.1 GetBaseReport
요청 예시
[
2,
"uuid-example",
"GetBaseReport",
{
"requestId": 1001,
"reportBase": "FullInventory"
}
]
응답 예시
[
3,
"uuid-example",
{
"status": "Accepted"
}
]
EVSE는 이후 NotifyReport로 component-variable inventory를 전송합니다. CSMS는 이 보고 결과에서 V2G 처리에 필요한 표준 component-variable 지원 여부를 확인합니다.
V2G에서 우선 사용하는 표준 항목
- EV가 요청한 energy transfer mode: EVSE는
NotifyEVChargingNeeds.chargingNeeds.requestedEnergyTransfer로 요청 mode를 전송합니다. 준비 단계에서는DC_BPT를 우선 사용하되, EV/EVSE 협상 결과가 AC 단상 충전이면AC_single_phase도 보고될 수 있습니다. - EV가 사용 가능한 energy transfer mode 목록: EVSE는
NotifyEVChargingNeeds.chargingNeeds.availableEnergyTransfer로 사용 가능한 mode 목록을 전송합니다. - EV의 V2X 충전/방전 파라미터: EVSE는
NotifyEVChargingNeeds.chargingNeeds.v2xChargingParameters로 ISO 15118-20 기반 V2X power/current/energy/SoC 정보를 전송합니다. OCPP 2.1 표준상 discharge power/current 계열은 방전 가능 크기를 나타내는 값이며, 일부 EVSE는 벤더 호환 로그에서 음수 discharge power를 보낼 수 있으므로 CSMS와 사전에 처리 방식을 합의해야 합니다. - EV의 DER 제어 지원 정보: EVSE는
NotifyEVChargingNeeds.chargingNeeds.derChargingParameters.evSupportedDERControl로 EV가 지원하는 DER control function 목록을 전송합니다. - CSMS가 허용한 energy transfer mode: CSMS는
NotifyAllowedEnergyTransfer.allowedEnergyTransfer로 허용 mode를 전송합니다. 별도 커스텀 변수로 중복 전달하지 않습니다. - 충전/방전 동작 모드: CSMS는
ChargingSchedulePeriod.operationMode로CentralSetpoint,ExternalSetpoint,ExternalLimits등의 동작 모드를 전달합니다. EVSE가DynamicControl을 보고하면 CSMS는Dynamiccharging profile 또는 dynamic schedule 갱신을 사용할 수 있습니다. - 방전 한계: CSMS는
ChargingSchedulePeriod.dischargeLimit로 EV가 방전할 수 있는 한계값을 전달합니다. - 출력 지시값: CSMS는
ChargingSchedulePeriod.setpoint로 충전 또는 방전 지시값을 전달합니다. 충전은 양수, 방전은 음수로 표현합니다. - V2X 곡선 기반 제어: OCPP 2.1 표준은
v2xBaseline,v2xFreqWattCurve,v2xSignalWattCurve로 frequency-watt 또는 signal-watt 기반 V2X 제어값을 정의합니다. 본 가이드는 기본 V2G profile 연동을 우선 다루며, curve 기반 제어는 EVSE/CSMS 양측 구현 범위를 별도로 확인해야 합니다.
V2G 데이터 수용 흐름
EVSE → CSMS: NotifyEVChargingNeeds
EVSE는 차량이 V2G/BPT를 요청하거나 V2X 관련 충전 요구사항을 보고할 때 NotifyEVChargingNeeds를 전송합니다. 준비 단계에서는 requestedEnergyTransfer에 DC_BPT를 우선 사용하지만, EV/EVSE 협상 결과에 따라 AC_single_phase 같은 AC mode가 먼저 보고될 수 있습니다.
요청 예시
[
2,
"uuid-example",
"NotifyEVChargingNeeds",
{
"evseId": 1,
"maxScheduleTuples": 24,
"chargingNeeds": {
"requestedEnergyTransfer": "AC_single_phase",
"availableEnergyTransfer": ["AC_single_phase", "DC_BPT"],
"controlMode": "DynamicControl",
"departureTime": "2026-05-22T09:00:00Z",
"v2xChargingParameters": {
"minChargePower": 350.0,
"maxChargePower": 3800.0,
"minDischargePower": -350.0,
"maxDischargePower": -10000.0,
"evTargetEnergyRequest": 24260.0,
"evMinEnergyRequest": -19850.0,
"evMaxEnergyRequest": 35290.0,
"evMinV2XEnergyRequest": -14330.0,
"evMaxV2XEnergyRequest": 24260.0,
"targetSoC": 90
}
}
}
]
응답 예시
[
3,
"uuid-example",
{
"status": "Accepted"
}
]
EVSE는 CSMS 응답이 Accepted인 경우에만 이후 V2G schedule 적용을 기대해야 합니다. Rejected, Processing, NoChargingProfile 응답을 받은 경우 일반 충전 또는 로컬 정책에 따른 fallback을 적용합니다.
controlMode가 DynamicControl이면 EVSE는 CSMS가 이후 SetChargingProfile의 chargingProfileKind: "Dynamic" 또는 UpdateDynamicSchedule로 동적 제어값을 전달할 수 있다고 가정해야 합니다.
CSMS → EVSE: NotifyAllowedEnergyTransfer
CSMS는 EVSE에 허용 가능한 energy transfer mode를 전달합니다. 준비 단계에서는 V2G 대상 EVSE에 DC_BPT를 허용합니다.
요청 예시
[
2,
"uuid-example",
"NotifyAllowedEnergyTransfer",
{
"transactionId": "example-transaction-id",
"allowedEnergyTransfer": ["DC_BPT"]
}
]
응답 예시
[
3,
"uuid-example",
{
"status": "Accepted"
}
]
CSMS → EVSE: V2G schedule 전달
CSMS는 다음 방식 중 하나로 V2G schedule을 전달할 수 있습니다.
SetChargingProfile로 충전/방전 profile을 전달합니다.UpdateDynamicSchedule로 동적 schedule을 갱신합니다.- EVSE가
PullDynamicScheduleUpdate를 호출하면 CSMS가 현재 schedule을 응답합니다.
SetChargingProfile 예시
[
2,
"uuid-example",
"SetChargingProfile",
{
"evseId": 1,
"chargingProfile": {
"id": 1,
"stackLevel": 1,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Dynamic",
"transactionId": "example-transaction-id",
"chargingSchedule": [
{
"id": 2,
"startSchedule": "2026-05-22T08:00:00Z",
"duration": 86400,
"chargingRateUnit": "W",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 11000.0,
"dischargeLimit": -11000.0,
"setpoint": 0.0
},
{
"startPeriod": 1800,
"operationMode": "ChargingOnly",
"limit": 7000,
"dischargeLimit": 0,
"setpoint": 7000
}
]
}
]
}
}
]
OCPP 2.1의 setpoint는 충전 방향을 양수, 방전 방향을 음수로 표현합니다. dischargeLimit는 방전 가능 한계를 나타내는 표준 필드이며, EVSE/CSMS 간 벤더 호환 로그에서 음수 값으로 표현되는 경우에는 양측 합의한 부호 규칙에 맞춰 처리해야 합니다.
EVSE → CSMS: NotifyEVChargingSchedule
EVSE는 차량과 협상한 schedule 또는 적용 가능한 EV charging schedule을 CSMS에 보고합니다.
요청 예시
[
2,
"uuid-example",
"NotifyEVChargingSchedule",
{
"timeBase": "2026-05-22T08:00:00Z",
"evseId": 1,
"chargingSchedule": {
"id": 1,
"chargingRateUnit": "W",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 0,
"dischargeLimit": -3000,
"setpoint": -3000
},
{
"startPeriod": 1800,
"limit": 7000,
"dischargeLimit": 0,
"setpoint": 7000
}
]
}
}
]
EVSE → CSMS: TransactionEvent V2G meter values
V2G 세션에서도 EVSE는 일반 OCPP 2.1 TransactionEvent로 transaction 상태와 meter value를 보고합니다. V2G 대응 EVSE는 충전량뿐 아니라 방전량, SoC, 차량 표시 SoC 목표값을 함께 보고할 수 있습니다.
Updated 이벤트의 sampledValue 예시
{
"sampledValue": [
{
"value": 731.76,
"measurand": "Energy.Active.Import.Register",
"unitOfMeasure": { "unit": "kWh" }
},
{
"value": 548.86,
"measurand": "Energy.Active.Export.Register",
"unitOfMeasure": { "unit": "kWh" }
},
{
"value": 67.0,
"measurand": "SoC",
"location": "EV",
"unitOfMeasure": { "unit": "Percent" }
},
{
"value": 50.0,
"measurand": "Display.MinimumSOC",
"location": "EV",
"unitOfMeasure": { "unit": "Percent" }
},
{
"value": 100.0,
"measurand": "Display.MaximumSOC",
"location": "EV",
"unitOfMeasure": { "unit": "Percent" }
},
{
"value": 90.0,
"measurand": "Display.TargetSOC",
"location": "EV",
"unitOfMeasure": { "unit": "Percent" }
}
]
}
EVSE는 V2G 세션에서 Energy.Active.Export.Register를 방전 누적량으로 보고할 수 있습니다. CSMS는 Energy.Active.Import.Register와 Energy.Active.Export.Register를 별도 measurand로 구분해서 수집합니다.
응답 예시
[
3,
"uuid-example",
{
"status": "Accepted"
}
]
EVSE 구현 권장사항
- 표준 보고 우선: V2G 지원 여부와 capability는 가능한 한
GetBaseReport/NotifyReport및 표준 메시지 필드로 보고합니다. - energy transfer mode 처리: EV가
DC_BPT를 요청하더라도 CSMS가NotifyAllowedEnergyTransfer로 허용하지 않으면 방전을 수행하지 않습니다. EV가AC_single_phase를 보고하면 EVSE는 해당 mode를 그대로 CSMS에 전달하고 CSMS의 허용 mode 응답을 기다립니다. - dynamic profile 처리:
controlMode가DynamicControl이면 EVSE는chargingProfileKind: "Dynamic"및transactionId가 포함된TxProfile을 적용할 수 있어야 합니다. - operation mode 처리:
ChargingSchedulePeriod.operationMode가 제공되면 해당 구간의 동작 모드를 우선 적용합니다. - meter value 처리: V2G transaction에서는
Energy.Active.Import.Register,Energy.Active.Export.Register,SoC,Display.MinimumSOC,Display.MaximumSOC,Display.TargetSOC를 구분해서 보고합니다. - fallback 처리: V2G schedule 수신 실패,
Rejected응답, 지원하지 않는 energy transfer mode 수신 시 일반 충전 또는 로컬 안전 정책으로 전환합니다. - limit 보고: EVSE 내부 제한, 차량 제한, 안전 제한이 발생하면
NotifyChargingLimit으로 CSMS에 보고합니다. - limit 해제 보고: 제한이 해제되면
ClearedChargingLimit으로 CSMS에 보고합니다. - 안전 우선: EVSE는 CSMS schedule보다 하드웨어 보호, 차량 BMS 제한, ISO 15118 협상 결과를 우선해야 합니다.
예외 사항
V2G capability 확인 실패
EVSE가 표준 Device Model inventory를 보고하지 못하면 CSMS는 해당 EVSE를 V2G 적용 대상에서 제외하거나 일반 충전으로 fallback할 수 있습니다.
지원하지 않는 energy transfer mode
EVSE가 NotifyAllowedEnergyTransfer에서 지원하지 않는 mode를 수신하면 해당 mode를 적용하지 않고 오류 상태를 기록합니다. 가능한 경우 CSMS에 NotifyChargingLimit 또는 관련 status reason을 전송합니다.
V2G schedule 수신 실패
V2G schedule을 수신하지 못하면 EVSE는 마지막 유효 schedule을 사용하거나 일반 충전으로 fallback합니다. 마지막 schedule 재사용 가능 시간은 EVSE 로컬 정책으로 제한해야 합니다.
차량이 V2G를 거절한 경우
EVSE는 차량과의 ISO 15118 협상 결과를 우선합니다. 차량이 V2G/BPT를 거절하면 CSMS가 DC_BPT를 허용했더라도 방전을 수행하지 않습니다.