AxlGetBoardStatus가 SUCCESS일 때 미연결로 반환하던 반전 버그를 정정(실제 Ajin 연결 시 OnMonitoring 폴링이 스킵되던 원인). 연동해 OnMonitoring 미연결 가드를 앞으로 정리.
2.6 KiB
2.6 KiB
작업일지 — 2026-06-20
09:41 — Setting 정리: Axis Position Interlock 삭제 + Head Theta Interlock 영어화
변경 내용 (2파일)
WeldingComponents/WeldingCommon/Settings/SequenceSetting.cs[Category("Axis Position Interlock")]블록 전체 삭제 (주석 + 속성 4개)- 삭제 속성:
VerticalSector/VerticalTolerance/HorizontalSector/HorizontalTolerance - Serena
find_referencing_symbols+ grep 확인 결과 정의 파일 외 참조처 없음 → 삭제 안전
Machines/ILSOS_PrismaticRD_PTOP/Settings/LaserInterlockSetting.cs- Head Theta Interlock 항목
DisplayName5개 한글→영어화 (주석은 유지) 인터락 사용→Use Interlock/수평 각도(deg)→Horizontal Angle (deg)/수직 각도(deg)→Vertical Angle (deg)/허용 오차(±deg)→Tolerance (±deg)/PLC 스케일(deg×?)→PLC Scale (deg×?)[Category("Head Theta Interlock")]는 기존부터 영어라 변경 없음
- Head Theta Interlock 항목
검증
- 서브에이전트로 MSBuild 빌드(Debug|x64) — 오류 0개, 경고 655개(전부 기존·무관)
- 빌드 로그에 삭제 속성/변경 DisplayName 관련 오류·잔존 참조 없음
- 빌드 산출물: WeldingCommon.dll, ILSOS_PrismaticRD_PTOP
11:xx — AjinIO.IsConnected() 반전 로직 정정 + OnMonitoring 가드 정리
문제 (분석)
- 증상:
OnMonitoring()의_IODevice.IsConnected()가드가 시뮬에선 정상, 실제 Ajin 연결 시 동작 안 함 - 원인:
AuroraDevices/AuroraIO/Vendor/AJINEXTEK/AjinIO.cs의IsConnected()가 반대로 반환AxlGetBoardStatus(0)이AXT_RT_SUCCESS(정상)면false, 에러면true반환 (파일 내 다른 호출부 관례와 정반대)- 시뮬: 보드 없음 → 에러 → 우연히
true→ 폴링 동작("정상"으로 보임) - 실연결: 정상(SUCCESS) →
false→ 207줄 가드가return으로 폴링 통째 스킵 →IsGuidBeam/IsLaserReady미갱신
변경 내용 (2파일, 사용자 직접 수정)
AuroraDevices/AuroraIO/Vendor/AJINEXTEK/AjinIO.csIsConnected()→return err == (int)AXT_FUNC_RESULT.AXT_RT_SUCCESS;로 정정 (SUCCESS=연결)
WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeachingControlBoxViewModel.csOnMonitoring()정리: 미연결 시IsGuidBeam/IsLaserReady=false후return가드를 앞으로 이동- 연결 시에만
ReadDO(17)·ReadDI(11)&&ReadDI(15)수행 (LaserReady 한 줄로 정리)
비고
AjinIO.cs는 공용(AuroraIO.dll) — Ajin 보드 쓰는 타 머신에도 영향(반전 정정이 올바른 방향)- 사용자 요청으로 빌드 검증 생략