tts에.플레이하도록 수정
This commit is contained in:
57
Document/AGV_Charging_Sequence.md
Normal file
57
Document/AGV_Charging_Sequence.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# AGV Charging Sequence Diagram
|
||||
|
||||
이 문서는 `_SM_RUN_CHARGE_ON`, `_SM_RUN_CHARGE_OFF`, `_SM_RUN_CHARGE_CHECK` 소스 코드 분석을 바탕으로 작성되었습니다.
|
||||
|
||||
## 1. 충전 시작 시퀀스 (Charge ON)
|
||||
|
||||
AGV가 충전기 위치(RFID)에 정지해 있고, 정밀 정차용 마크 센서가 감지된 상태에서 수행됩니다.
|
||||
|
||||
```mermaid
|
||||
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)
|
||||
|
||||
충전 작업을 종료하고 다음 작업으로 복귀하기 위해 수행됩니다. 급격한 상태 변화를 방지하기 위해 쿨다운 시간이 포함되어 있습니다.
|
||||
|
||||
```mermaid
|
||||
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` 상태로 강제 전환됩니다.
|
||||
Reference in New Issue
Block a user