각도에 따라 발진 위치가 달라져, 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>
2.1 KiB
2.1 KiB
작업일지 — 2026-06-24
각도(D70510) 기반 Laser 발진 Offset 분기 구현
- 배경: D70510(카메라 헤드 각도, Head_Theta_Position)에 따라 Laser 발진 위치가 달라지는데, 기존엔 단일 Cell center offset 하나만 적용해 각도 변화 시 위치가 어긋남. → 각도에 따라 Front/Down 두 벌의 offset을 자동 선택 적용하도록 변경.
- 선택 로직:
thetaDeg = D70510 / HeadThetaPlcScalevsavg = (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 필드에 수동 재입력 필요.