Overview
본 문서는 Open Charge Alliance(OCA)의 Open Charge Point Protocol(OCPP)을 기반으로, SK일렉링크 충전소 관리 시스템(CSMS)과 충전기(EVSE) 간의 표준 연동 규격 및 커스텀 확장 데이터 규격을 정의합니다.
접속 정보
접속 엔드포인트(URL) 및 인증 정보는 SK일렉링크 기술지원 담당자에게 문의해 주시기 바랍니다.
지원 프로토콜
- 지원 프로토콜: OCPP 1.6-J, OCPP 2.1
본 문서에서는 메시지명, 필드명, JSON 예시가 프로토콜 버전에 따라 달라지는 경우 OCPP v1.6과 OCPP v2.1을 명시적으로 구분합니다.
버전 표기가 없는 일반 개념 설명은 두 버전에 공통으로 적용되는 연동 원칙입니다. 단, 실제 구현 시에는 각 섹션에 명시된 버전별 메시지명과 필드명을 우선 적용해야 합니다.
접속 보안
SK일렉링크 CSMS와 통신하는 모든 충전기는 OCPP Security Profile 2 이상의 보안 등급을 지원해야 합니다.
OCPP v1.6과 OCPP v2.1의 Security Profile 2/3 요구사항, 초기 자격 증명 관리, 클라이언트 인증서 운영 기준은 접속 보안 프로필을 참고해 주시기 바랍니다.
연동 시 주의사항
1. 시간 형식
시간 형식의 데이터를 송수신할 때는 반드시 **UTC(협정 세계시)**를 기준으로 해야 합니다. CSMS는 ISO 8601 표준을 준수하며 다음과 같은 형식을 지원합니다:
2024-06-27T11:41:32Z2024-06-27T11:41:32.311Z2024-06-27T11:41:32.311141Z2024-06-27T20:41:32.311141+00:00
2. 다채널 충전기 처리
접속 엔드포인트 URL의 경로(Path)는 충전소 ID와 EVSE ID의 조합({stationId}-{evseId})으로 구성됩니다.
다채널(다중 커넥터) EVSE는 연동 프로토콜 버전에 맞는 채널 식별자를 사용해야 합니다.
OCPP v2.1 표준 모델에서는 하나의 충전소 식별자(Charging Station Identity)가 하나의 OCPP WebSocket 연결을 대표하고, EVSE는 메시지 본문의 evse.id 또는 evseId로 식별됩니다.
다만 SK일렉링크 CSMS는 별도로 협의되지 않은 사이트에 대해서는 EVSE별 1 Socket 정책을 기본으로 적용합니다. 따라서 별도 안내가 없는 경우 접속 엔드포인트의 EVSE ID와 메시지 본문의 EVSE 식별자가 동일한 EVSE를 가리키도록 구현해야 합니다.
- OCPP v1.6: 메시지 본문에서
connectorId로 채널을 구분합니다. - OCPP v2.1: 메시지 본문에서
evse.id또는 EVSE 모델의 식별자를 사용합니다. - 한 채널에서 사용자 인증 처리가 진행 중일 때는 다른 채널에서 동시에 인증을 처리하지 않아야 합니다.
재접속 시 백오프 및 지터 적용
충전기와 CSMS 간의 네트워크 연결이 끊어진 경우, 재접속 시 단순 고정 주기 재시도가 아닌 지수 백오프(Exponential Backoff) 및 **지터(Jitter)**를 반드시 적용해야 합니다.
- 지수 백오프(Exponential Backoff): 재접속 시도 간격을 점진적으로 늘려갑니다 (예: 3초, 30초, 60초, 120초, 300초 등).
- 지터(Jitter): 각 재접속 시도 간격에 무작위(Random) 오차 범위를 추가하여, 여러 충전기가 동시에 재접속을 시도함으로써 발생하는 트래픽 스파이크를 방지합니다.
이는 대규모 통신 장애 복구 시 CSMS 과부하 및 네트워크 혼잡을 방지하기 위한 필수 요구사항입니다.
적용 예시:
- 1차 재접속: 약 3초 후
- 2차 재접속: 약 30~35초 후
- 3차 재접속: 약 65~75초 후
- 이후 최대 재접속 간격까지 점진적 증가
특수 설치 환경이 아니라면, 최대 재접속 간격(Max Backoff Interval)을 10분 이내로 제한하는 것을 권장합니다.
문서 구조
본 문서는 다음과 같은 구조로 구성되어 있습니다:
- Custom Messages: SK일렉링크 커스텀 메시지 정의
- Custom Datatypes: 커스텀 데이터 타입 및 열거형(Enum) 정의
- Custom Variables: 커스텀 컴포넌트 및 변수 정의
- Report Components: 충전기 인벤토리 및 리포트 컴포넌트 정의
- Use Cases: 실제 충전 및 운영 시나리오별 유스케이스 가이드
- WebSocket Handshake: 프로토콜별 웹소켓 연결 및 핸드셰이크 규격
- Security Profiles: OCPP Security Profile 2/3 및 인증서 운영 기준