NohDoyeon241104 70739252bb docs: 작업일지·현장update파일·분석 문서 및 아키텍처 정리
- docs/작업일지: 06-17, 06-18 작업일지 추가 (조명 컨트롤러 연결, 현장 PC 원격 접속, 현장 소스 반영)
- docs/현장update파일: 현장 반영용 변경 파일(SequenceSetting.cs, UCScannerObjectTeachingControlBoxViewModel.cs) 및 README 정리
- docs/분석: 260617 분석 문서(Laser Ready DI 변경, Axis Position Interlock, PLC DeviceMap, EROOM Light RS232 등) 추가
- docs/architecture.md, CLAUDE.md, harness-ptop.md 갱신
- PLC 인터페이스 엑셀 및 기존파일비교 자료 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 09:38:33 +09:00

56 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 작업일지 — 2026-06-17
## 현장 RTC5보드 갈보모터 피드백 관련
- 현장 RTC5보드는 갈보모터 X, Y의 피드백값을 가져오는 게 없어서 DEVICE 상에서 COMMAND 값을 불러오도록 체크 해제 후 진행.
- 정확한 피드백값은 확인 불가한 상태.
## Laser 동작 방식
- Laser 동작은 I/O로 하며, 프로그램 내에서 사용할 때 Simulation으로 동작한다.
## Recipe View Laser Ready (DI 9) 미점등 이슈
- Recipe View에서 Laser Ready 부분이 DI(9)를 보고 있는데, 해당 BIT가 Laser를 IO On 해도 번들을 켜도 안 켜져서 전선 다시 확인 중인 상태.
- _simulation이어서 true가 되긴 해야 하지만, 한번 확인해볼 것._
- 이전 MOTF 작업하던 프로젝트랑 비교하기.
### [분석 요청] IsLaserReady 조건 — 현재 프로젝트 vs docs/기존파일비교
- 대상: `WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeachingControlBoxViewModel.cs`
- 요청: 현재 파일의 `IsLaserReady` 조건과 `docs/기존파일비교/`의 같은 파일명 버전(이전 MOTF) 비교
### [분석 완료] 결론: IsLaserReady 판정 소스가 바뀜 → 미점등의 직접 원인
- **OnMonitoring()의 IsLaserReady 판정 (핵심 차이)**
- 기존(MOTF): `if (_Laser.GetLaserReady())` → Laser 디바이스 상태로 판정. Simulation이면 true가 됨.
- 현재: `if (_IODevice.ReadDI(9))` (try/catch 포함) → **실제 IO 하드웨어 DI 9번 비트**를 직접 읽음.
- → 현재는 Laser 디바이스(시뮬레이션)가 아니라 물리 DI(9)를 보므로, 배선으로 DI(9)가 실제로 들어오지 않으면 simulation이어도 true가 안 됨. 작업일지에 적은 "simulation이면 true여야 한다"는 기존 코드 기준이고, 현재 코드는 그렇게 동작하지 않음.
- **PerformCmdLaserReadyCheck() (Laser Ready Check 버튼)**
- 기존: `_Laser.GetLaserReady()` 토글 → `_Laser.LaserOn()` / `LaserOff()` (실질적으로 Laser Ready On).
- 현재: `toggleIO` 플래그로 `_IODevice._iOUnit.WriteDoBit(9, true)` + `WriteDoBit(13, true)` 직접 출력 (주석: "추후 Write bit 파라미터화 해야함").
- → 버튼이 켜는 것은 **DO 9/13번 출력**인데, 모니터링이 읽는 것은 **DI 9번 입력**. DO9 출력이 DI9 입력으로 되돌아오려면 물리 배선(루프백/외부 결선)이 필요함. 이 결선이 없으면 버튼을 눌러도 IsLaserReady가 안 켜짐 → 지금 전선 확인 중인 이슈와 일치.
- **부수 차이 (동작엔 직접 영향 적음)**
- 필드 선언: 기존 `private readonly IODevice _IODevice;` → 현재 `private IODevice _IODevice;` (readonly 제거). 추가 필드 `public bool toggleIO = true;`.
- using 추가: `WeldingCommon`, `WeldingCommon.Devices.Laser`, `using static ...PAIX_PrismaticScanner`.
- 기존 OnMonitoring의 LaserOnLamp WriteDoBit 주석 블록은 현재 제거됨.
- PerformCmdRunTeachingRun: 기존은 `PopupSequenceDiagram(...)` 호출, 현재는 주석 처리. OnCompleteTeachingRun도 기존은 성공 처리/ShowWarningToast 활성, 현재는 주석 처리.
- **확인/해결 방향**
- DI(9)로 판정을 유지하려면 DO9/13 → DI9 물리 결선(또는 레이저 Ready 출력 → DI9 결선)을 확인할 것.
- 시뮬레이션에서 동작 확인이 목적이면, 기존처럼 `_Laser.GetLaserReady()` 기반으로 임시 전환하거나, IO 시뮬레이션에서 DI(9)를 강제 On 할 수 있는지 확인.
## Axis Position Interlock 파라미터 추가
- 수평, 수직 + 허용오차 (도) 파라미터 세팅값 입력하는 것 추가함. (현장 PC 업데이트 전)
### [TODO / 추후 작업 예정]
- 추후 시퀀스 작업할 때 해당 파라미터(수평·수직 ± 허용오차)를 체크해서, 안전을 위해서라도 인터락을 걸어둘 예정.
- 즉, 시퀀스 동작 중 전축 위치(섹터 각도)가 `기준값 ± 허용오차` 범위를 벗어나면 인터락.
- 지금은 파라미터 입력 UI만 추가한 상태이고, 인터락 판정 로직은 나중에 작업.
- 참고: 설계/위치 분석은 `docs/분석/2026/06/17/144442_sequencesetting_axis_interlock_properties.md` 에 정리해둠.
## PLC 맵 작업 (260617 Laser Interface 반영)
- PLC에서 새 맵 받아서, `D:\ILSOSConfig\ILSOS_PrismaticRD_PTOP\External\PLC` 의 기존 `PLC_DeviceMap_*` bit/word 파일들을 `260617_backup` 으로 백업해둠.
- `유니셀 PtoP 단동기 Laser Interface_260617.xlsx` 참고해서 4개 맵 CSV(Bit/Word × Input/Output) 내부 매핑 갱신. 파일명·주소행 범위는 유지하고 코드 스타일(PC_/PLC_) 네이밍, 음/양극 둘 다 채움.
- Input/Output 방향 검증함 → 안 바뀜(정상). Word_Input 70585~70599 `M` 오기 → `D` 정정.
- 소스 enum(base + machine) 정합성은 **아직 안 건드림(보류)**. PLC측 확정 필요한 것들 있음.
### [TODO / 추후 확인]
- StepNo(D70502 → RecipeNo로 바뀜), RMS_USED(M70509), 빠진 ALARM_RESET/RMS_READ_REQ/WELD_NG_JUDGE 처리, read count(배수)가 신규 최대 offset 포함하는지 확인.
- 체크리스트: `docs/분석/2026/06/17/171642_plc_map_update_checklist.md`
- 상세 분석: `docs/분석/2026/06/17/165341_plc_devicemap_update_260617.md`, `171312_plc_map_io_direction_and_enum_alignment.md`