2.1 KiB
2.1 KiB
AGV Charging Sequence Diagram
이 문서는 _SM_RUN_CHARGE_ON, _SM_RUN_CHARGE_OFF, _SM_RUN_CHARGE_CHECK 소스 코드 분석을 바탕으로 작성되었습니다.
1. 충전 시작 시퀀스 (Charge ON)
AGV가 충전기 위치(RFID)에 정지해 있고, 정밀 정차용 마크 센서가 감지된 상태에서 수행됩니다.
sequenceDiagram
participant AGV
participant Charger as Battery Charger
participant Sensors
participant ACS as ACS/Server
Note over AGV: [조건 확인] 현재 위치 == 충전기 RFID & Mark Sensor ON
AGV->>ACS: 충전 시작 명령 전송 (AGVCharge ON)
ACS->>Charger: 충전 활성화
Charger-->>AGV: ACK (응답: "CBT")
loop 충전 상태 확인
AGV->>Sensors: Battery_charging 상태 체크
Sensors-->>AGV: charging = true
end
Note over AGV: 충전 수행 중
2. 충전 해제 시퀀스 (Charge OFF)
충전 작업을 종료하고 다음 작업으로 복귀하기 위해 수행됩니다. 급격한 상태 변화를 방지하기 위해 쿨다운 시간이 포함되어 있습니다.
sequenceDiagram
participant AGV
participant Charger as Battery Charger
participant Sensors
participant ACS as ACS/Server
AGV->>ACS: 충전 해제 전송 (AGVCharge OFF)
ACS->>Charger: 충전 비활성화
loop 해제 확인
AGV->>Sensors: Battery_charging 상태 체크
Sensors-->>AGV: charging = false
end
Note over AGV: 5초 Cooldown 대기 (상태 안정화)
AGV->>AGV: FLAG_CHARGEONA = false (최종 해제)
Note over AGV: 충전 해제 완료
3. 관련 체크 로직 (Charge Check)
- 자동 해제: 모든 작업(
_SM_RUN_BUFFER_IN,_SM_RUN_ENTER,_SM_RUN_EXIT등) 시작 시 가장 먼저_SM_RUN_CHARGE_OFF를 호출하여 충전이 해제된 상태인지 보장합니다. - 예외 처리: 충전 명령 후 3초 이내에 응답(
ACK)이 없으면 최대 5회까지 재전송을 시도합니다. 1분 이상 해제되지 않을 경우IDLE상태로 강제 전환됩니다.