AxlGetBoardStatus가 SUCCESS일 때 미연결로 반환하던 반전 버그를 정정(실제 Ajin 연결 시 OnMonitoring 폴링이 스킵되던 원인). 연동해 OnMonitoring 미연결 가드를 앞으로 정리.
39 lines
2.6 KiB
Markdown
39 lines
2.6 KiB
Markdown
# 작업일지 — 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 항목 `DisplayName` 5개 한글→영어화 (주석은 유지)
|
||
- `인터락 사용`→`Use Interlock` / `수평 각도(deg)`→`Horizontal Angle (deg)` / `수직 각도(deg)`→`Vertical Angle (deg)` / `허용 오차(±deg)`→`Tolerance (±deg)` / `PLC 스케일(deg×?)`→`PLC Scale (deg×?)`
|
||
- `[Category("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.cs`
|
||
- `IsConnected()` → `return err == (int)AXT_FUNC_RESULT.AXT_RT_SUCCESS;` 로 정정 (SUCCESS=연결)
|
||
- `WeldingComponents/WeldingCommon/Views/Recipes/UCScannerObjectTeachingControlBoxViewModel.cs`
|
||
- `OnMonitoring()` 정리: 미연결 시 `IsGuidBeam/IsLaserReady=false` 후 `return` 가드를 앞으로 이동
|
||
- 연결 시에만 `ReadDO(17)`·`ReadDI(11)&&ReadDI(15)` 수행 (LaserReady 한 줄로 정리)
|
||
|
||
### 비고
|
||
- `AjinIO.cs`는 공용(AuroraIO.dll) — Ajin 보드 쓰는 타 머신에도 영향(반전 정정이 올바른 방향)
|
||
- 사용자 요청으로 **빌드 검증 생략**
|