59 Commits

Author SHA1 Message Date
9f72e6caaf Merge branch 'field/ptop-1st' into field/ptop-recipe-scanner-move 2026-06-24 17:38:14 +09:00
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
2684685014 docs: Manual Select Field 저장/Scout Normal 읽기 경로 분석
FieldHelper.json 페이지별 저장 구조와 Run Scout Normal 읽기 경로,
FileName(표시용) vs FieldScans(스캔 입력용) 구분 정리.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:38:20 +09:00
5d026b1720 docs: 작업일지 2026-06-23 LGES 검수 항목 추가
매뉴얼 작성·Recipe View 재구성·SW 대응 및 26.06.24 AutoRun 실출사 예정 기록

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:54:05 +09:00
4ed35cb94a feat: 레시피 화면에서 스캐너 카메라+모션 토글 창 추가 (이벤트 구동)
- 레시피 컨트롤박스에 'Scanner Cam' 버튼 추가 → 카메라+모션 창 Show/Hide 토글
- WDScannerCamMotion: 전용 displayType(Machine_C) 카메라뷰 + 매뉴얼 UCScannerMotion 재사용
- UCScannerMotionViewModel: publish/execute 모드 분리
  - 레시피(publish): 입력값을 EVENT_SCANNER_COMMAND_MOVE 로 발행
  - 매뉴얼(execute): 이벤트 구독해 동일 메소드로 실제 스캐너 이동(인터락 그대로 재사용)
- Move/Jog/Home 메소드를 인자형으로 리팩터해 UI·이벤트 경로가 같은 본체 공유
- 분석 문서 추가(docs/분석/2026/06/23)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 17:03:21 +09:00
to3796zw
020840e678 fix: Auto 발진 직전 보정테이블(1) 선택 — 매뉴얼과 위치 정합
Auto(SeqAutoRunPTOP.ExecuteWelding)가 발진 직전 보정테이블을 선택하지
않아 직전 상태로 발진 → 매뉴얼과 위치 어긋남. ExecuteList 직전
SelectCorrectionTable(1) 명시 추가(장비측 보정도 테이블 1 기준 정합).
2026-06-23 작업일지 추가.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 09:17:07 +09:00
a69ba578e6 docs: SeqAutoRunPTOP 시퀀스 전체 분석 문서 + 작업일지 추가
- 현재 코드 기준 노드 흐름·PLC 핸드셰이크·레이저 발진 구간 정리
- M70509(Scout, 9번) 분기 특성, 정지/Resume 처리 포함
- 현장 레이저 발진·Scout 이미지 촬영 정상 확인

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 00:38:59 +09:00
669a1cda82 작업일지 업데이트 2026-06-22 23:09:41 +09:00
c49c5e8386 작업일지 업데이트/ IO_체크완료 2026-06-22 21:22:51 +09:00
to3796zw
6971896d54 docs: 2026-06-22 작업일지 추가 (Scout 구현·전체 시나리오 검증)
M70509 기반 용접 전/후 Scout 구현 요약과 전체 시나리오 검증 테스트 진행 기록.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 19:47:13 +09:00
46cb265e68 feat: 문서만 업데이트 2026-06-22 19:23:05 +09:00
15e5f5ba27 docs: 매뉴얼 화면 도식 분석·가접 용어 정리·SW Version 진척 반영
- 산출물 23. SW 점검결과 xlsx: SW Version 작업이력 추가(핸드셰이크/bit15 Resume/RecipeNo 등),
  IO List bit15 신규(M70515 PLC_WELD_READY_REQ / M70015 PC_WELD_READY_ACK)·rename 반영
- architecture.md §8 용어 정리(가접 용접 = Tack Welding) 추가
- docs/분석 2026/06/22: AuroraUIComponent 재사용 UC·메인 View 도식 분석
- 기타 산출물 문서(DR 회의록·SOP·ILSOSConfig 등) 및 작업일지 포함
- SeqAutoRunPTOP.cs: 기존 로컬 변경 포함

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 12:04:38 +09:00
to3796zw
159eda2d4d fix: RecipeNo 재폴링 널가드 + PC_PAGE_NO 보존 + 새 Page 정상 처리
- CheckRecipeNoComp: 동일레시피 시 PLC_RECIPE_NO 재폴링(늦은 갱신 대응),
  recipe==null(0/미등록) 널 가드 추가, 에코는 활성 레시피 기준으로 null-safe 처리
- OnSeqActionStop: PC_ERROR_CODE 0 쓰기 삭제(WriteDWord가 인접 PC_PAGE_NO까지
  0으로 덮던 버그 해소) → 정지 시 에코워드 보존
- CheckInitCondition: ResumeMode 핸드셰이크 스킵 제거(옵션A) → bit15 후 PLC가
  주는 새 Recipe/Page를 정상 핸드셰이크로 처리. Resume 주석/로그도 정정
- 빌드 0오류

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 23:17:41 +09:00
to3796zw
e61e99f9ab feat: bit15 보강·양극 미사용 정리·로그 개편
- D70002(PC_RECIPE_NO): 동일 레시피여도 매 핸드셰이크 에코 유지
- 정지 시 에코워드(Page/Recipe No) 0 초기화 제거(보존)
- bit15 Manual 전환 시 레시피 활성화+로드, bit15 ON 중 AUTO_REQ 자동시작 무시
- [AutoRun Resume] PC bit15(0x0F) 1초 펄스 OFF
- 양극(P) 미사용: PC_AUTO_STATUS_P/양극 용접 핸드셰이크 제거, 용접 응답 음극 통일
- 공유 eCommon READY(0x0F) 제거(PTOP enum은 유지)
- SeqAutoRunPTOP 로그 설명형 개편(노드 Start/End 제거)
- 빌드 0오류. Recipe/Page 수정분은 현장 미적용(추후 검증 예정)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 20:15:43 +09:00
e28f915b44 fix: 현장 확정 PLC맵 정합 — bit15=Weld_01 Ready 명칭 정정 + 확정 DeviceMap
- bit15(0x0F): 임시명 MODE_CHANGE → 확정명 WELD_READY_REQ/ACK (Weld_01 Ready, Resume 트리거 겸용)
- 원래 Ready(0x10) → WELD_TRIGGER_REQ/ACK (용접 발진). 주소 불변=동작 동일, 명칭만 정정
- 양극 _P(0x73) 미러 제거(현장 단일블록), 공통 enum 동기화
- 수정: PTOP/공통 PLCController.Address.cs, SeqAutoRunPTOP/ComponentWeld/Prismatic/TestRun/WaitWeldOrChangePage, UCMainAutoRunViewModel
- 현장 확정 PLC DeviceMap CSV 4종 추가, 작업일지 갱신

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:23:41 +09:00
1a92f19364 feat: 확정 PLC 인터페이스와 레시피(가접용접 레시피 추가) 2026-06-21 16:31:02 +09:00
ff4fc03d2e feat: bit15(MODECHANGE) 팝업+Auto→Manual+Resume 구현 및 가접 레시피/문서 정리
- PLCController.Address.cs: bit15 입출력 정의 (PLC/PC_MODE_CHANGE 0x0F, 양극 _P 0x73)
- SeqAutoRunPTOP: ResumeMode 플래그, 정지 시 에코워드(PC_PAGE_NO/RECIPE_NO) 보존,
  CheckInitCondition Resume 핸드셰이크 스킵, CheckCycleStop bit15 OFF/해제
- UCMainAutoRun(VM/XAML): bit15 상승엣지 감지→팝업→Manual 전환, AutoRun Resume 버튼(bit15 ON시 표시)
- docs: bit15 resume 작업지시서/분석/예상시나리오, 가접 레시피 인터페이스(20~23), 작업일지, 산출물 갱신

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 13:17:55 +09:00
to3796zw
d5fc47c549 Merge remote-tracking branch 'origin/field/ptop-1st' into field/ptop-1st 2026-06-21 09:22:38 +09:00
to3796zw
25edd79325 feat: Page Change bit로 Recipe+Page 전환 통합
PLC가 Page Change bit(0x08) 하나만 트리거로 보내면 Recipe No와
Page No를 함께 읽어 Recipe를 먼저 전환한 뒤 Page를 전환하도록 변경.
Recipe Change bit(0x09)는 트리거로 미사용(enum 정의는 보존).

- CheckRecipeNo Decision 제거, 흐름 재배선(CheckPageNo→Recipe→Page)
- Recipe No 1회 읽기, 0/음수/미등록/동일이면 전환 생략(정지 안 함)
- 실제 전환 시 ActivateRecipe 후 Dispatcher.Invoke(OnActiveReloaded)로
  Model.Layers 동기 갱신 + 페이지 검증/레이어 선택을 UI 스레드 직렬화
  (ActivateRecipe-Layers 비동기 race 차단)
- PC_RECIPE_CHANGE_COMPLETE 미사용 처리, PC_RECIPE_NO 에코는 유지

VS Rebuild(Debug|x64) EXITCODE=0 확인.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 00:04:35 +09:00
6c230f701d docs: Recipe/Page 통합 핸드셰이크 분석·작업지시서 추가 + 작업일지 갱신
- 분석(191351): 동시수신 대응 단일 PAGE 게이트 핸드셰이크 확정안(8장)
  + ActivateRecipe→Layers 비동기 2-홉 race 분석, 대응안 A/B/C
- 작업지시서(2026_06_21): 4노드→1노드 통합 구현 절차/검증/완료기준
- 작업일지: 19:xx 분석 + 일일요약 추가 (원격 PLC PC I/O Check 섹션 병합)
- 소스 미수정 (문서만)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 21:25:41 +09:00
to3796zw
9be3fdcb54 Merge branch 'field/ptop-1st' of https://gitea.ubisampaju.synology.me/RobotAutomationDevelopment-Dept/LGES-OC5-PtoP-Welder into field/ptop-1st
# Conflicts:
#	Machines/ILSOS_PrismaticRD_PTOP/Sequences/Manual/SeqComponentTeachingRun.cs
2026-06-20 19:52:36 +09:00
to3796zw
bae5f4fe63 chore: PLC PC I/O Check 완료 및 중알람 인터락 원복
PLC-PC 간 I/O Check 완료에 따라 SeqComponentTeachingRun의
중알람(High) 인터락 차단 블록을 임시 우회에서 원복하고,
PLC DeviceMap CSV(M/D Device) 4종을 추가한다.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 19:36:15 +09:00
6c435ec04a revert: docs/분석 다시 git 추적 (커밋 포함 유지)
사유: 분석 문서가 다른 PC에서 풀 받을 때 사라지면 안 되어 git에 포함 유지.
- .gitignore의 /docs/분석/ 제외 규칙 제거
- docs/분석 전체 재추적(기존 22 + 금일 신규 3 = 25개)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:48:19 +09:00
d537792c48 chore: docs/분석 git 추적 해제 및 gitignore 추가, 산출물 양식 폴더 생성
- /docs/분석/ 을 .gitignore에 추가 (로컬 전용 분석 문서, 커밋 제외)
- 기존 추적되던 docs/분석 22개 파일 git rm --cached (로컬 파일은 유지)
- Doc/산출물문서/양식/ 폴더 생성 (추후 필수 제출 2종 드롭 위치, README 포함)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:41:04 +09:00
1d60d474b8 fix: 레시피 전환 시 Scout Field 이전 레시피 잔존(레시피축 stale) 수정
증상: 레시피 전환 후에도 이전 레시피의 Scout Field 영역이 그대로 적용됨.
원인: RecipeFieldScan(싱글톤)은 페이지명으로만 키잉되어 레시피 식별자가 없고,
ReloadRecipe에서 필드 재로드가 주석 처리됨. 또한 UpdateWeldingLinesRecipe →
콤보박스 SelectedIndexChanged → SaveAndLoadFieldScanFromLasaDb 경로가
WorkRecipeFile은 새 경로/싱글톤은 stale인 상태로 SaveFieldHelper를 호출해
이전 레시피 데이터를 새 레시피 FieldHelper.json에 덮어쓰는 손상까지 유발.

- 가드 플래그(_suppressPageFieldSync) 추가, 콤보박스 핸들러 저장 호출을 가드
- ReloadRecipe에서 UpdateWeldingLinesRecipe를 try/finally로 감싸 전환 중 저장 억제
- 로드 전용 LoadFieldScanFromLasaDb 추가, 전환 후 새 레시피 필드만 싱글톤에 로드
- 기존 소스는 삭제 없이 주석/가드로 보존
- 빌드 검증: MSBuild Debug|x64 솔루션 오류 0개, 현장 동작 확인 완료

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:40:47 +09:00
to3796zw
7fc11f2602 fix: AjinIO.IsConnected 반전 로직 정정
AxlGetBoardStatus가 SUCCESS일 때 미연결로 반환하던 반전 버그를
정정(실제 Ajin 연결 시 OnMonitoring 폴링이 스킵되던 원인).
연동해 OnMonitoring 미연결 가드를 앞으로 정리.
2026-06-20 10:14:18 +09:00
to3796zw
00cdd8ac9b fix: Axis Position Interlock 삭제, Theta 영어화
SequenceSetting의 Axis Position Interlock 속성 4개를 제거하고
(참조처 없음), LaserInterlock의 Head Theta DisplayName을 영어로
전환해 세팅 UI 표기를 정리. 빌드 검증 통과(오류 0).
2026-06-20 09:41:53 +09:00
3849d4d951 docs: ScoutField 페이지별 로드 버그 작업지시서 + 작업일지 2026-06-19
- FieldHelper.json 분석 및 selectedIndexNo stale 버그 원인 정리
- A안(SeqScoutNormal PageIndex 주입) 수정안 작업지시서 작성 (소스 미수정, null 가드 포함)
- 작업일지 16:30 항목 + 주말 출근(06.20~06.21) 기록

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 17:23:54 +09:00
to3796zw
de7450474a docs: 작업일지 2026-06-19 - Head Theta 인터락·Scout sleep 기록
- 15:04 Laser Head Theta 각도 인터락 추가 (0e73086)
- 15:25 Scout Image Sleep Time 사용자 설정 추가 (e263ab8)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 15:37:10 +09:00
3333d3ca47 현장 ScoutImage moveSleepTime 변경 2026-06-19 14:39:04 +09:00
63dfc2fc53 docs: 작업일지 2026-06-19 - Recipe View 진입 크래시 수정 기록
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 13:57:58 +09:00
to3796zw
eb307b459e Merge branch 'field/ptop-1st' of https://gitea.ubisampaju.synology.me/RobotAutomationDevelopment-Dept/LGES-OC5-PtoP-Welder into field/ptop-1st 2026-06-19 13:30:17 +09:00
to3796zw
eba70a4380 docs: PTOP 문서 최신화 및 Aurora 레퍼런스 연결
실제 repo와 어긋난 상위 아키텍처 문서를 현행 구조로 정정.
- 모듈명 ILSOS_PrismaticPTOP → ILSOS_PrismaticRD_PTOP 리네임 반영
- 삭제된 형제 모듈(Scanner/Gun/CleanLaser) 기술 정리
- PTOP 폴더구조·EquipDef ID·빌드 출력경로를 실제값으로 갱신
- architecture.md 200줄 이하로 슬림화(하네스 절 요약)
- CLAUDE.md에 Aurora 레퍼런스 README @import 연결

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 13:27:42 +09:00
3b8799aa51 feat/docs: 가이드빔·알람·PLC(MXComponent) 분석 및 현장 임시 수정
- 분석 문서 4종 추가 (docs/분석/2026/06/19):
  알람부 종합 / MX Component PLC 연결 / AjinIO.ReadDoBit / 가이드빔 TruPulse(ExtPilotOnOff 미구현)
- AjinIO.ReadDoBit(int): 스텁(return true) 유지 + 구현(ReadDiBit 패턴) 주석 보존
- SeqComponentTeachingRun: 중알람 인터락 임시 주석 (현장 PLC 미연결 우회, 추후 원복)
- 레시피 Guide Beam: DO 17 read/write + IsConnected 가드 주석 (필요시 주석 토글 운용)
- 작업일지 2026-06-19 정리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 12:49:08 +09:00
85a5aad60d docs: 작업일지 2026-06-19 - *_wpftmp.csproj gitignore 추가 기록
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:39:30 +09:00
7cb652574f docs: PtoP PLC 인터페이스 xlsx(260617) 삭제
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:38:24 +09:00
5d2cdb3452 docs: 작업일지 2026-06-19 - External/Aurora/bin 커밋 예외 및 규칙 문서화 기록
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:28:22 +09:00
de0c1c20df docs: Git 커밋 규칙 문서화 및 architecture.md 연결
External/Aurora/bin 커밋 예외, .gitignore 자체 커밋(-f) 규칙을 GIT_RULES.md로 정리하고 architecture.md에 @import 연결

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:26:51 +09:00
8033edad26 docs: 작업일지 - 오늘 작업 마무리 기록 (PLCAddress/IO null 커밋·푸시 정리) 2026-06-18 20:34:53 +09:00
0ca485eab2 docs: 작업일지 - PLCAddress 모호참조/IO null 분석 및 수정 기록 2026-06-18 20:32:35 +09:00
a9f3ab0f2d docs: 작업일지 - Manual Laser Power Control Power 기본값 0 변경(5eebe96) 기록
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 15:56:59 +09:00
0537c4aa7d docs: 작업일지 - PTOP 현장 레이저 참고 메뉴얼 기록 (Trumpf OPC UA for CPX)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 15:40:12 +09:00
e19a1e677a chore: PLC Recipe Change 수정가이드 삭제 (구현 반영 완료)
구현(42c5565)에 모두 반영되어 가이드 명세서 제거.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 15:32:00 +09:00
42c5565249 feat: PLC Recipe Change 핸드셰이크 구현 (SeqAutoRunPTOP) + 주소 정합
근거: 가이드 + Excel 260618(빨간셀 M70509/M70009/D70502/D70002). Page Change 미러링.
- 주소 enum: PLC_RECIPE_CHANGE_REQ(0x09)/PC_RECIPE_CHANGE_COMPLETE(0x09)/
  PLC_RECIPE_NO(idx2)/PC_RECIPE_NO(idx2). 공용 eCommonBitOutput 동기화.
  충돌: SeqStatusMonitor RMS_USED 읽기 주석, SeqAutoRunPrismatic 참조 이름만 교체.
- 시퀀스: CheckRecipeNo(논블로킹 Decision) + CheckRecipeNoComp(.Id 1:1 조회/활성화/
  반영폴링/에코·완료비트), Builder 흐름·엣지·루프백, 리셋 비트·워드, _RecipeManager Enter 확보.
- Page 검증 상한 하드코딩 제거 → 활성 Recipe Layers.Count() 가변.
- (별도) D:\ILSOSConfig\...\External\PLC CSV 디바이스맵 4종 라벨 정합(.bak260618 백업).

빌드는 VS Rebuild로 검증 필요(레거시 포함). STEP5 UI/PLC 사양 최종정합은 후속.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 15:31:43 +09:00
de06a4c897 docs: IOInterfaceView DI 경로 PTOP 전환 분석일지
IO DI 경로는 IO_Board.json의 IOInterfaceMapDI 절대경로로 결정되며
IODevice.MappingDIO가 path-agnostic하게 그대로 읽음(소스 수정 불필요).
PTOP 전환 = config(IO_Board.json 경로) + DI/DO.csv 존재 + DataPath 확인.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 14:38:14 +09:00
1fbe7fa98f feat: DA1/DA2 Voltage 표시를 No Laser 토글에 연동(조건부 표시)
DA1/DA2 Voltage UniformGrid에 Visibility 바인딩(IsNoLaser, convTrueVisible) 추가.
Time이 Use Spot Time 체크 시 표시되듯, No Laser 체크 시에만 전압 표시.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 14:20:26 +09:00
accffdd94a feat: NoLaser 옵션을 Manual(ScannerLaserControl)로 이동, Recipe NoLaser 제거
- Manual: IsNoLaser 추가, Laser On 직접 분기(Percent/Watt)의 LaserSignalOn을
  if(!IsNoLaser)로 가드 → 체크 시 발진 없이 전압만 인가
- Manual XAML: Use Spot Time과 동일 ToggleSwitch 디자인의 'No Laser(전압만)' 토글 추가
  (Timer Set: UseSpotTime → Time(체크시) → NoLaser → DA1/DA2 Voltage)
- Recipe(UCScannerObjectTeachingControlBox): NoLaser 완전 제거(원래 의도가 Manual),
  PerformCmdLaserReadyCheck를 WriteDoBit(9/13,true)로 환원. DI 11&15 변경은 유지.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 14:14:59 +09:00
166d1bd2f0 feat: RTC5 AnalogOut 전압 readback - device 계층 + ViewModel + XAML 표시
ed36f8d에서 분석 문서만 들어가, 실제 구현 소스를 함께 커밋.
- ScannerObj.GetAnalogOut(abstract) + RTC5/RTC6(n_get_value, signal=portNo+32)/Simul(0) + Scanner 파사드(-1)
- UCScannerLaserControlViewModel: AnalogOut1/2Voltage + ReadbackAnalogOut(raw/4095*10 V), Laser On 직접 분기 WriteDA 직후 호출
- UCScannerLaserControl.xaml: Control Setting에 DA1/DA2 Voltage [V] 표시
- 작업일지 13:55 기록

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 13:57:14 +09:00
ed36f8deaa feat: RTC5 AnalogOut 전압 readback 표시 (Scanner Laser Control)
- Device 계층: ScannerObj.GetAnalogOut(abstract) + RTC5/RTC6(n_get_value, signal=portNo+32)
  /Simul(0) override + Scanner 파사드(미활성 -1)
- UCScannerLaserControlViewModel: AnalogOut1/2Voltage + ReadbackAnalogOut(raw/4095*10 V),
  Laser On 직접 분기 WriteDA 직후 호출
- UCScannerLaserControl.xaml: Control Setting에 DA1/DA2 Voltage [V] 읽기전용 표시
- LaserSignalOn 발사 동작 무변경. (AnalogOut1=33/AnalogOut2=34)
- 분석 문서 추가: Laser On 미출사 원인(122432)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 13:56:38 +09:00
f0380f43f9 fix: Laser Ready 판정 DI 변경 (IO 결선 변경 12&24 → 11&15)
IO 결선 변경에 따라 Laser Ready 입력 판정을
ReadDI(12) && ReadDI(24) → ReadDI(11) && ReadDI(15)로 수정. 로직 동일.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 12:21:08 +09:00