107 Commits

Author SHA1 Message Date
to3796zw
9c1daaee1d fix: Busy bit 위치 변경 및 Scanner Cam 팝업 모션 수정
- Laser On Display 타이밍을 맞추기 위해 PC_WELD_BUSY bit
  기록 위치 변경 (SeqAutoRunPTOP)
- 레시피 Scanner Cam 팝업(WDScannerCamMotion)을 직접 실행
  모드(publishMode:false)로 변경하고, 창 표시 시 모니터
  타이머/Limit 초기화를 호출해 모션 미동작·좌표 0 고정 해소
- 작업일지 2026-06-26 추가, Laser Interface 문서 갱신

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 15:02:21 +09:00
to3796zw
8bbac47244 docs: 용어정리(가접 용접) 별도 파일 분리 + import
200줄 규칙 준수 위해 architecture.md §8 용어정리 본문을 docs/용어정리.md로 분리하고 @import로 연결.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 22:31:10 +09:00
to3796zw
041c15550c feat: 레시피별 Front/Down 레이저 인터락 추가
Use Interlock ON 시 ① 안전구역 게이트(기존) 유지 + ② 레시피별 방향 차단(신규). Recipe 폴더의 Recipe_Laser_Interlock.json(Front/Down 0/1)에 저장하고, 경로는 FieldHelper.json과 동일 소스(DB.Dao.SystemRecipe.WorkRecipeFile) 사용. Auto/Manual 양쪽 적용(Manual은 ①+② 신규), VM 체크박스는 레시피 전환 시 Background 우선순위 재로드로 stale 방지.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 22:30:57 +09:00
48befb60b2 docs: SW 점검 결과 SW Version 시트에 최신 Source 변경분 반영
d131ad9 이후 소스(.cs/.xaml/.csv) 커밋 6항목 추가:
용접 전/후 Scout 핸드셰이크, Auto 발진 보정테이블/셀 offset,
레시피 스캐너 토글 창·Field 버튼, 카메라 각도 기반 Laser offset.
헤더 요약 갱신(총 14→20, 정상 9→12, 확인중 5→8, 점검일자 06-24).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 10:34:44 +09:00
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
to3796zw
03b97913c0 Merge branch 'field/ptop-1st' of https://gitea.ubisampaju.synology.me/RobotAutomationDevelopment-Dept/LGES-OC5-PtoP-Welder into field/ptop-1st 2026-06-23 22:51:18 +09:00
to3796zw
90adf1d1f9 fix: Auto 발진에 셀 offset 적용 — 매뉴얼과 정합
Auto(SeqAutoRunPTOP)가 CellMeasureCenterOffset을 0으로 넘겨
매뉴얼(SeqComponentTeachingRun)과 발진 위치가 어긋남.
매뉴얼과 동일 수식(CellPosMeasureCenterOffset + CellCenterOffset)
으로 변경하여 자동/매뉴얼 발진 위치 정합.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 22:43:32 +09:00
e488c37944 사용법 참고 메뉴얼 Update 2026-06-23 19:57:26 +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
a64dd12519 fix: 레시피 Field 버튼 아이콘을 Select Field 아이콘(slash.jpg)으로 교체
빔 아이콘(guide.png)이 아니라 매뉴얼 화면 Select Field 버튼과 동일한
slash.jpg 아이콘 사용 (20x20).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 18:45:34 +09:00
d272d6e7e9 style: 레시피 Field 버튼을 기존 Scanner Cam 버튼 디자인으로 통일
StButtonAccentBlue + guide.png 아이콘 + 텍스트 StackPanel 형태로 변경
(기존 Scanner Cam 버튼과 동일한 디자인).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 18:34:18 +09:00
357702399c feat: 레시피 Scout Normal 줄에 Field 버튼 추가 (3열 [Field]-[Run]-[Stop])
- UCScannerObjectTeachingControlBox.xaml: Scout Normal 실행 줄을 2열에서 3열로
  재구성, 너비 1*/1.3*/1*로 Run 강조. Run Scout Normal 버튼을 Run으로 변경,
  1열에 Field 버튼 신규 추가.
- VM: 매뉴얼 화면과 동일한 WDSelectScoutField 팝업을 띄우는
  CMD_ShowSelectFieldWindow 이식. 저장은 팝업 VM에서 자체 처리하므로
  비전 이벤트 구독(SAVE_CHILD_IMAGE_SETTING)은 제외.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 18:23:10 +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
f52db8597e HMI Manual_문서 업데이트 버전 2026-06-22 23:08:17 +09:00
to3796zw
4ef5a66333 23. S/W 점검 결과 파일 정리
파일 정리
2026-06-22 22:19:59 +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
688b0fc463 Merge origin/field/ptop-1st: 충돌 4파일 원격 최신(4f03a0a) 기준 통일
용접 전/후 Scout 기능이 원격(4f03a0a, M70509 기반)에서 재작업되어
로컬 Scout 구현(SEQ_PRE_SCOUT_*, M70009/M70010)과 충돌.
가장 최근 커밋 4f03a0a 기준으로 아래 4파일 전부 원격 버전 채택:
- Doc/ILSOSConfig/PLC_DeviceMap_Bit_Input_M_Device.csv
- Machines/ILSOS_PrismaticRD_PTOP/Device/PLC/PLCController.Address.cs
- Machines/ILSOS_PrismaticRD_PTOP/Sequences/SeqAutoRunPTOP.cs
- WeldingComponents/WeldingCommon/Sequences/Main/SeqScoutNormal.cs

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 16:26:23 +09:00
to3796zw
4f03a0a7ce feat: M70509 기반 용접 전/후 Scout 추가
M70509(Scout Enable) 상시 ON 시, 용접 트리거(M70516) 감지 후 pre scout,
발진 완료 후 완료비트 송신 전 post scout 수행(각각 SeqScoutNormal 재사용,
0.1초 후 진행). M70509 OFF면 기존과 동일하게 용접만.

- eBitInput 0x09: PLC_RECIPE_CHANGE_REQ(미사용) → PLC_SCOUT_ENABLE 재정의
- 용접 완료비트(ACK off/BUSY off/COMPLETE on)를 WriteWeldComplete 노드로
  분리해 post scout 뒤에 송신
- 이미지 파일명 접미어: {기존}_auto_{recipeNo}_{pageNo}_{pre|post}.PNG

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 16:04:12 +09:00
to3796zw
f6da65f9f4 fix: Scout Complete 비트 400ms 고정 펄스로 변경
기존: PreScoutDone/PostScoutDone에서 Complete를 ON으로 래치만 함.
CheckCycleStop이 항상 CheckPageNo로 루프백 → WriteCompletionPLCBit
(RestoreDeviceStatus) 미도달이라 정상 운전 중 OFF되지 않고 정지까지 ON 유지.

변경: PulseScoutCompleteBit로 ON→400ms 유지→OFF 고정 펄스.
시간값은 SCOUT_COMPLETE_PULSE_MS 상수로 관리.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 14:49:41 +09:00
to3796zw
5e01c9a63c feat: 용접 전/후 Scout 핸드셰이크 추가
SeqAutoRunPTOP에 용접 전/후 Scout(SeqScoutNormal 재사용) 핸드셰이크
배선. PLC가 Scout Request를 올리면 캡처·이미지 저장 후 Complete 회신.

bit 매핑(0x09 Recipe_CHG는 미사용 → Scout로 재정의):
- Pre  Req=M70509(eBitInput 0x09) / Complete=M70009(eBitOutput 0x09)
- Post Req=M70510(eBitInput 0x0A) / Complete=M70010(eBitOutput 0x0A)

이미지 파일명: {기존}_auto_{recipeNo}_{pageNo}_{pre|post}.PNG (폴더 유지).
SCOUT_ENABLED=false면 노드 즉시 통과로 기존 사이클 무영향.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 14:31:12 +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
dd4f087e95 fix: 페이지 핸드셰이크 ACK 정정 + Auto OFF 시 에코워드 조건부 초기화
- CheckPageNoComp: PC_PAGE_NO 에코값과 현재 PLC_PAGE_NO 비교해
  일치 시 PC_PAGE_CHANGE_COMPLETE=true, 불일치 시 false (기존 무조건 false)
  → 동일 Recipe/Page 반복 시 완료 ACK 전달
- SeqStatusMonitor: PLC/PC Auto State OFF 에지 감시 →
  PC_RECIPE_NO/PC_PAGE_NO 0 초기화. 단 PC Auto OFF는
  M70515(Weld_01 Ready) 살아있으면 보존(Resume 시나리오)
- ExecuteWelding: 완료비트 송신 간 딜레이 5→50ms 여유 확보

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 00:55:27 +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
d131ad9176 chore: 현장 확정 PLC DeviceMap CSV를 Doc/ILSOSConfig 루트로 이동
- bit15=Weld_01 Ready 근거인 확정 DeviceMap 4종을 PTOP config 하위 → Doc/ILSOSConfig 직하로 이동(내용 동일 R100)
- PTOP config 폴더는 zip(미추적)으로 별도 관리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:47:42 +09:00
0c11dc9029 chore: 미사용 타 머신 config·구 인터페이스 문서 대량 삭제
- Doc/ILSOSConfig/ILSOS_PrismaticScanner (347), ILSOS_PrismaticGun (137) config 일괄 삭제
- 루트 구 PLC_DeviceMap CSV 4종, LGPRI 구 인터페이스 xlsx 삭제
- bit15 작업과 무관, 별도 커밋으로 분리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 17:24:18 +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
9330fb20ea revert: TeachingRun H알람 인터락 임시 우회 원복 (현장 PLC 연결 완료)
현장 PLC 미연결로 임시 주석 처리했던 CheckCondition_Interlock()의
High(중대) 알람 인터락 블록을 원복. 현장 PLC 연결 완료에 따라 정상 동작.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 18:48:39 +09:00
a8a48cd7b5 docs: HMI Manual 상단 메뉴 바 PTOP 메뉴로 교체
EquipmentSetup.cs RegisterViews 기준 실제 PTOP 메뉴로 교체(코드→이미지):
AutoRun · Recipe · Manual · Calibration · Monitoring · Device · Setting · Alarm
- 슬라이드별 현재 화면 메뉴 강조(Slide1/2 AutoRun, Slide3 Manual, Slide4 Calibration)
- 타설비 메뉴(로드셀/Robot/IPA/Door Screen 등) 그룹 제거

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 16:04:47 +09:00
cbd6c10edf docs: HMI Manual PPT에 XAML 기반 화면 레이아웃 도식 삽입
스크린샷 대신 실제 WPF XAML 구조를 읽어 화면 구성을 도식 이미지로 렌더링·삽입.
- Slide1 Main(UCMainAutoRun): Working Position/Recipe Canvas/Manual Control/
  Equipment Status/Product Info/Camera View 그리드 레이아웃
- Slide3 Manual(UCManualScannerOperation): Scanner Camera/Motion/
  Laser Power Control(Control Setting·Laser Shot Control)
- Slide4 Calibration(UCScannerCalibration): Vision Correction List/Correction/
  Scanner Calibration/Mark Grid/Pattern List
- 타설비 스크린샷·번호 콜아웃 제거, 다크 HMI 스타일 도식으로 교체
- 생성 스크립트/렌더는 UnTrackedLocalFiles (커밋 제외)

남음: 상단 메뉴 인덱스 바의 타설비 항목(로드셀/Robot/IPA 등) 정리는 추후.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 15:06:37 +09:00
e940fdcdad docs: 산출물 HMI Manual PPT PTOP 텍스트 채움
타설비 용어/설명을 PTOP(레이저 용접) HMI 기준으로 교체.
- Slide1 Main: 메뉴/장비연결(PLC·IO·Laser·Scanner)/카운트/Cell·Lot
  (기존 Cognex·로드셀·Hermes·DownStream 등 타설비 용어 제거)
- Slide2 Main 상세: AutoRun(SeqAutoRunPTOP)/Scanner Canvas View 등
- Slide3 Manual: Scanner Jog·Home / Laser IO Gate / Model Finder / Head Theta 인터락
- Slide4 Calibration: Scanner Correction List / CorrectionPro
- 슬라이드 라벨: Manual/Calibration 정정, 폰트 속성 보존(python-pptx)

주의: 우측 화면 캡처 이미지는 타설비 스크린샷이라 실제 PTOP HMI 캡처로 교체 필요.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:54:35 +09:00
979f1b99cc docs: 산출물 SW 점검 결과 Excel PTOP 내용 자동 채움
타설비(비전/물류) 템플릿 잔재를 PTOP(레이저 용접) 프로젝트 소스 기준으로 교체.
- SW Version: PTOP 점검 항목(IO Check/PLC Interface/Scout Field 등)
- Device: PLC(Melsec)/Scanner(RTC)/Laser/Ajin IO
- IO List: PLC 인터페이스 신호 74건 (PLCController.Address.cs + PLC 명세서 검증
  주소 매핑 — PC출력 M/D70000+, PC입력 70500+; 예 M70509/D70510)
- Sequence: SeqAutoRunPTOP 핸드셰이크/용접/모니터링/Safety/UI
- Overall: PTOP 기능 트리, Motor List는 PLC측 회신 대기 표기
- 서식/수식/병합 보존(openpyxl), 원본 백업은 UnTrackedLocalFiles

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:52:12 +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