to3796zw 2871db6e8f feat: 카메라 각도(D70510) 기반 Laser 발진 offset 분기
각도에 따라 발진 위치가 달라져, Front/Down angle 평균을 임계값으로
Front/Down offset을 자동 선택해 적용(자동·수동 발진 공통).

- LaserInterlock: Horizontal/Vertical → Front/Down angle 로 변경
- SystemParameter: CellCenterOffset X/Y → Front/Down offset X/Y (4개)
- LaserAngleOffsetSelector 헬퍼 신규 + 선택값 LOG
- PLC 미연결 시 Front offset fallback

주의: 설정 프로퍼티명 변경으로 기존 저장값 자동 이관 안 됨(재입력 필요)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 17:34:46 +09:00

2.1 KiB

작업일지 — 2026-06-24

각도(D70510) 기반 Laser 발진 Offset 분기 구현

  • 배경: D70510(카메라 헤드 각도, Head_Theta_Position)에 따라 Laser 발진 위치가 달라지는데, 기존엔 단일 Cell center offset 하나만 적용해 각도 변화 시 위치가 어긋남. → 각도에 따라 Front/Down 두 벌의 offset을 자동 선택 적용하도록 변경.
  • 선택 로직: thetaDeg = D70510 / HeadThetaPlcScale vs avg = (Front angle + Down angle)/2.
    • thetaDeg > avg → Down offset, 이하 → Front offset 적용.
    • PLC 미연결/미활성으로 각도 못 읽으면 Front offset 적용(fallback) + 경고 로그.
  • 적용 범위: 자동(SeqAutoRunPTOP.SetUploadWeldingList_SeqParams)·수동(SeqComponentTeachingRun.SetUploadWeldingList_SeqParams) 발진 모두. 발진 offset = 선택 Front/Down offset + 비전 offset(_InitParam.CellCenterOffset) — 기존 SystemParameter 단일 offset을 대체.
  • 변경 파일:
    • Settings/LaserInterlockSetting.cs: HeadThetaHorizontal/Vertical → HeadThetaFront/Down (DisplayName "Front/Down Angle (deg)")
    • WeldingCommon/Settings/SystemParameter.cs: CellPosMeasureCenterOffsetX/Y(2개) → FrontOffsetX/Y + DownOffsetX/Y(4개)
    • Sequences/LaserAngleOffsetSelector.cs(신규): 각도 비교 → offset 선택 + 로그 헬퍼
    • Sequences/SeqAutoRunPTOP.cs / Sequences/Manual/SeqComponentTeachingRun.cs: 헬퍼 호출로 offset 대체. (자동 인터락 참조·로그 라벨도 Horizontal/Vertical → Front/Down)
    • ILSOS_PrismaticRD_PTOP.csproj: 신규 헬퍼 Compile Include 등록
  • LOG: 발진 시 Front/Down angle, Front/Down offset(x,y), 선택 결과를 한 줄로 기록.
  • 검증: Debug|x64 컴파일 통과. sub agent 점검 완료(Critical 없음, 옛 이름 잔존 참조 0건, 공유 모듈 부작용 없음).
  • ⚠ 배포 전 주의: 설정 클래스 프로퍼티명 rename으로 기존 저장 설정값이 자동 이관되지 않음(Front/Down offset·angle 기본값으로 리셋). 현장 적용 전 기존 보정값을 신규 Front/Down 필드에 수동 재입력 필요.