OCPP 1.6에서 StartTransaction 메시지는 충전기가 충전 세션을 시작할 때 중앙 시스템(서버)에 보내는 메시지입니다. 이 메시지는 주로 사용자의 인증 후, 충전기가 충전 프로세스를 시작하고 세션을 기록하는 과정에서 사용됩니다. StartTransaction 메시지를 통해 충전기는 충전 시작 시점의 미터 값을 서버에 전달하고, 서버는 충전 트랜잭션을 기록하기 위한 트랜잭션 ID를 반환합니다.
◈ StartTransaction 메시지 구조
StartTransaction 메시지는 충전기에서 서버로 요청을 보내고, 서버는 이에 대한 응답으로 트랜잭션 ID 및 충전 허가 정보를 반환합니다.
▶ StartTransaction 요청 (Charge Point → Central System)
필드 이름 | 필드 타입 | 설명 |
connectorId | integer | 충전을 시작하는 커넥터의 ID. 충전기가 여러 개의 커넥터를 가질 수 있으므로 이 값은 어느 커넥터에서 충전이 시작되는지 나타냅니다.(옵션) |
idTag | idToken(ciString20) | 사용자 인증 ID. Authorize 메시지에서 인증된 사용자 ID 태그를 포함하며, 사용자가 충전할 수 있는지 확인된 idTag여야 합니다.(필수) |
meterStart | integer | 충전 시작 시점의 미터 값(kWh 등). 이를 통해 충전 세션 중 소비된 에너지를 계산할 수 있습니다. (필수) |
reservationId | integer | 예약된 트랜잭션인 경우 예약 ID를 포함합니다. 만약 특정 사용자에 대해 미리 예약된 충전 세션이라면 예약 ID가 포함됩니다.(옵션) |
timestamp | dateTime | 충전이 시작된 시간 (ISO 8601 형식) (옵션) |
▶ StartTransaction 응답 (Central System → Charge Point)
필드 이름 | 필드 타입 | 설명 |
idTagInfo | IdTagInfo | idTag의 상태 및 유효성 정보를 포함하는 객체. 사용자가 충전할 권한이 있는지, 인증이 유지되는지 여부를 나타냅니다.(필수) |
transactionId | integer | 이 충전 세션을 고유하게 식별하기 위한 트랜잭션 ID. 서버가 생성하여 충전기에 전달합니다.(필수) |
● IdTagInfo
필드 이름 | 필드 타입 | 설명 |
expiryData | dateTime | 인증 태그의 만료 일시.(옵션) |
parentIdTag | IdToken | 상위 ID 태그 정보(옵션) |
status | AuthorizationStatus | 인증 상태(필수) |
● AuthorizationStatus
value | 설명 |
Accepted | 충전 세션이 승인됨을 의미 |
Blocked | 사용자가 차단되어 충전이 불가능함을 의미 |
Expired | 사용자의 idTag가 만료되었음을 의미 |
Invalid | idTag가 유효하지 않음을 의미 |
ConcurrentTx | 동시 충전이 제한된 상태에서 다른 트랜잭션이 진행 중임을 의미 |
◈ StartTransaction 메시지 예
아래는 OCPP 1.6에서 StartTransaction 요청 및 응답 예입니다.
▶ StartTransaction 요청 예
{
"connectorId": 1,
"idTag": "ABC123456",
"meterStart": 1000,
"timestamp": "2023-11-05T15:00:00Z",
"reservationId": 1234
}
▶ StartTransaction 응답 예
{
"idTagInfo":
{ "status": "Accepted",
"expiryDate": "2024-11-05T14:15:30Z",
"parentIdTag": "MAIN1234"
},
"transactionId": 5678
}
◈ 설명
- 요청: 충전기는 사용자가 인증된 idTag와 connectorId, 충전 시작 시점의 미터 값(meterStart), 충전 시작 시간(timestamp)을 포함하여 서버에 StartTransaction 요청을 보냅니다.
- 응답: 서버는 idTagInfo 객체와 transactionId 값을 포함하여 응답합니다.
- idTagInfo: 사용자 인증 상태를 나타내며, status 필드가 Accepted인 경우 충전이 승인되었음을 의미합니다. 만료일(expiryDate)과 상위 ID(parentIdTag)가 포함될 수도 있습니다.
- transactionId: 서버가 생성한 고유한 트랜잭션 ID로, 이 충전 세션을 식별하는 데 사용됩니다. 이 ID는 충전 완료 후 StopTransaction 메시지에서 사용됩니다.
◈ 주요 기능
- 충전 세션 관리: StartTransaction 메시지를 통해 충전 세션의 시작을 기록하고, 이를 고유한 트랜잭션 ID로 관리합니다.
- 에너지 소비량 추적: meterStart 값을 통해 충전 시작 시점의 미터 값을 기록하여, 충전 완료 시 StopTransaction 메시지와 비교해 사용 에너지를 계산합니다.
- 인증 및 접근 제어: idTagInfo 필드를 통해 사용자 인증 정보를 확인하고, 사용자가 권한이 있는 경우에만 충전을 허가합니다.
- 예약 기능 지원: 예약 ID(reservationId) 필드를 통해 특정 사용자나 시간에 예약된 충전 세션을 관리할 수 있습니다.
이와 같이 StartTransaction은 충전 시작을 기록하고 사용자 인증 상태를 검토하는 동시에, 에너지 소비량 추적 및 고유 트랜잭션 관리에 중요한 역할을 합니다.