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

5.2 KiB
Raw Permalink Blame History

작업일지 — 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