131 Commits

Author SHA1 Message Date
to3796zw
750aa81b51 chore: 로컬 전용 문서·하네스 설정 git 추적 제외
docs·CLAUDE.md·README.md·rules.md·.claude·.ubisam_agent 를 추적에서 해제.
로컬 전용 문서와 에이전트 설정이 저장소에 올라와 있어 정리한다.
파일은 디스크에 그대로 유지되며 .gitignore 로 재추적을 막는다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 11:21:39 +09:00
a43a531e00 docs: 미커밋 분석·작업지시서·작업일지 반영 (260805~260810)
- 분석_bit15_Resume_핸드셰이크_260805.md
- 작업지시서_PTOP_PLC핸드셰이크_260805.md
- 분석_HeavyAlarm_비트_동작_260810.md
- 작업일지 2026_08_06.md
2026-08-11 09:46:02 +09:00
ec46b15bf6 feat: PC STOP 시 PAGE/RECIPE 에코 워드 0 초기화 (260811 region)
OnSeqActionStop()에서 PC_RECIPE_NO/PC_PAGE_NO를 0으로 초기화한다. ResumeMode 여부와 무관하게 지운다 - 재기동 시 CheckRecipeNoComp -> CheckPageNoComp가 PLC 워드를 다시 읽어 재에코하므로 핸드셰이크는 성립.

- 260805/260806 주석 원문과 if(!ResumeMode) 로그 블록은 그대로 보존
- SeqStatusMonitor의 Auto OFF 초기화와 중복이며, 거기 있던 M70515 보존 예외는 이번 코드가 무시 -> bit15 Resume은 보존값 상실
- 빌드/런타임 미검증. 문제 시 260811 region 삭제로 원복

작업일지: docs/작업일지/2026_08_11.md
2026-08-11 09:46:01 +09:00
099fd1f1c8 chore: Office·OS 임시 파일 gitignore 추가 (~$*, Thumbs.db, *.tmp 등) 2026-08-10 16:54:52 +09:00
868bc6d79c chore: PLC 인터페이스 폴더 정리 — Laser param Shot 비교본 및 작업사진 아카이브 삭제
레시피별 Laser 파라미터 Shot 비교 xlsx 6건(260730~260804)과
작업사진 txt 3건·7z·zip 3건을 제거한다.

남기는 인터페이스 정의서 2건:
  - 유니셀 PtoP 단동기 Laser Interface_260622_변경.xlsx
  - 유니셀 PtoP 단동기 Laser Interface_260730_레시피NUM변경.xlsx
2026-08-10 16:51:27 +09:00
594c6ba24a fix: Page 에코 수렴 확인 전 PLC 업데이트 주기 대기 추가
CheckPageNoComp 에코 수렴 루프에서 PC_PAGE_NO 를 쓴 직후 되읽어 비교하면
PLC 데이터 업데이트 주기가 반영되기 전 값을 읽어 수렴 판정이 흔들릴 수 있다.
WriteWord 이후 되읽기 전에 200ms 대기를 넣는다.

대상: SeqAutoRunPTOP.cs CheckPageNoComp() "4. 되읽어 수렴 확인" 직전
2026-08-10 16:42:26 +09:00
e0e5416975 fix: PLC 기동 시 210002 오알람 차단 — Livetimer 초기화 및 모니터 타이머 기동 위치 이동
PLCController.DoActivate() 가 PLC 연결을 열기 전에 _monitorPlcInterfaceMap 을
기동해, 연결 확립 전 LiveStatusUpdate() 가 돌면서
ALARM_DEVICE_PLC_DISCONNECT(210002) 오알람이 매 기동마다 발생했다.

원인
- Livetimer 가 초기화되지 않아 DateTime.MinValue 상태 → (Now - MinValue) 가
  항상 10000ms 를 초과해 워치독이 오판. 임계값 조정으로는 해결 불가.
- MicroTimer 첫 콜백이 주기(100ms) 뒤가 아니라 Start() 직후(약 1ms)라
  경합이 아니라 100% 재현되는 결정적 버그.

실측 (2026-08-10 16:12:25.904)
  Livetimer=0001-01-01, elapsed=63921975145904ms,
  isLive=False, IsActivated=False, IsConnected=False

조치
- _monitorPlcInterfaceMap.Start() 를 base.DoActivate() 성공 이후로 이동
- Livetimer = DateTime.Now 로 기준시각 확보 후 타이머 기동
- 두 조치는 각각 단독으로는 무효. 반드시 함께 적용해야 한다.
- 수정 전/후를 #region 2개(검색: 260810 기동 오알람)로 기록해 원복 가능

검증: 2026-08-10 현장 재기동 확인 — 기동 시 210002 미발생

미해결(별건): Livetimer 이중 용도, ReadBit .err 무시, ClearAlarm 부재,
SeqAlarmMonitor 의 무지연 루프 및 Laser/Chiller 즉시 알람

상세: docs/분석_PLC210002_기동오알람_260810.md
작업일지: docs/작업일지/2026_08_10.md
2026-08-10 16:37:27 +09:00
b7437a00f7 feat: 수동 Scout 이미지 파일명에 레시피/페이지 번호 태그 추가
레시피 티칭 화면 Scout 출사 시 SaveTag를 normal_{recipeId}_{pageNo}로 주입해 1_HHmmss_normal_23_5.PNG 형태로 저장. 공통 시퀀스 SeqScoutNormal은 무수정(기존 SaveTag 확장점 사용). 페이지 번호는 1-base로 AutoRun의 auto_{recipe}_{page}_pre/post와 숫자 정합. 원복 마커: #region 260807. 현장 검증 완료.
2026-08-07 10:39:42 +09:00
c7f12b0bda feat: Recipe/Page 핸드셰이크 에코 수렴 루프 적용
PLC가 PC 에코 넘버(PC_PAGE_NO/PC_RECIPE_NO) 일치를 상시 확인하는 것으로 확정(260806)됨에 따라, PC 책임을 검증에서 '정확히 읽고 → 내부 상태 갱신 → 에코'로 전환.

- CheckRecipeNoComp/CheckPageNoComp를 수렴 루프로 재작성 (에코 후 되읽어 일치 확인, 어긋나면 재읽기, 맞는 즉시 다음 노드로)
- 에코 없이 return 하던 경로 제거 (RecipeNo=0/미등록 → 에코 안 하고 재시도)
- 범위 밖 PageNo: 3초 무한대기 → 200ms 재읽기, 에코 안 함
- Page 3회 수집(600ms)·Recipe 800ms 재폴링 제거 → 정상 흐름 지연 0
- while 탈출 후 context.Stopped 가드 추가
- ReadOutWord(eWordOutput) 헬퍼 추가 (ReadOutBit 패턴 준용)
- 시뮬레이션 가드: IsSimul이면 수렴 생략 (PLC 워드가 항상 0이라 못 빠져나감)

구버전은 #region 260806 으로 전량 주석 보존 — 원복 시 블록 교체.
분석: docs/분석/2026/08/06/
2026-08-06 11:41:58 +09:00
a9d9e4f4d6 Merge branch 'feature/ubisam-pptx-integration' of https://gitea.ubisampaju.synology.me/RobotAutomationDevelopment-Dept/LGES-OC5-PtoP-Welder into feature/ubisam-pptx-integration
# Conflicts:
#	WeldingComponents/WeldingCommon/Utils/RecipeHelper.cs
2026-08-06 11:41:56 +09:00
45d991a25c UPDATE 2026-08-06 11:29:00 +09:00
to3796zw
39346ab718 fix: 레시피 페이지 데이터 빈 상태 저장 차단
기동 중 RecipeFieldScan 싱글톤이 비어 있는 상태에서 SaveAndLoadFieldScanFromLasaDb
가 Save 를 Load 보다 먼저 수행해(MainPage.cs:539 -> :540) 대상 FieldHelper.json 이
"[]" 2바이트로 파괴됐다. 현장 3건 확인 — RMS(07-29), U_Frame _pre welding(08-03),
Bottom_Frame_Welding(08-03). 3건 모두 Aurora 초기화 직후 4~19초, 사용자 입력이
불가능한 구간이며 형제 TeachingEditor.json 은 옛 mtime 을 유지했다.

RecipeFieldScan
- SaveFieldHelper 진입부: 완주한 로드의 결과가 아닌 빈 상태면 저장을 건너뛴다.
  Load(:540)는 그대로 돌아 파일의 실제 데이터로 싱글톤을 채운다. 사용자가 페이지를
  지워 정당하게 비운 경우는 loadedOnce 로 구분해 통과시킨다.
- LoadFieldHelper: loadedOnce 를 Clear 와 짝지어 리셋하고, 완주해도 결과가 0건이면
  로드로 보지 않는다. Clear 이후 예외가 나는 경로에서 플래그만 남아 가드가
  무력화되는 것을 막는다.
- 맨 catch 를 LastSaveError 기록으로 교체. throw 하지 않는 이유는 ReloadSetting
  경로가 Rx OnNext 안이라(UCScannerObjectTeachingViewModel.cs:55-57) 전파 시
  구독이 끊겨 티칭 화면 갱신이 영구 정지하기 때문이다.

RecipeHelper
- SaveRecipe 에 저장 대상과 메모리 신원(Recipe.SelectedRecipeFile) 불일치를
  Aurora Logger 로 남기는 관측 코드 추가. 저장은 막지 않는다. 기준을
  Dao.SystemRecipe.WorkRecipeFile 로 잡지 않은 것은 그 값이
  SystemParameterILSOS.json 에 영속되고 Aurora SystemParameter 와 파일을
  공유해 신원으로 쓸 수 없기 때문이다.

교차 오염(내용이 채워진 채 엉뚱한 레시피에 기록되는 현상)은 이 변경으로 막히지
않는다. 관측 로그로 발생 경로를 확정한 뒤 별건으로 조치한다.

검증: LASAGUI/WeldingCommon/ILSOS_PrismaticRD_PTOP 빌드 오류 0,
빌드 산출물 직접 로드한 시뮬레이션 31건 전수 통과.
2026-08-04 15:45:45 +09:00
9edd7d9538 chore(skill): ubisam-ppt-make 레이아웃 선택 레퍼런스 이미지 추가 2026-07-28 17:09:56 +09:00
5e0d083166 docs: 2026-07 분석 문서 4건 및 07/23 작업일지 추가
- 07/03 케이블베어 트러블 분석
2026-07-28 17:09:48 +09:00
b3cb159491 fix: MoveScanner SelectedIndex 범위 가드 추가
그리드 빈 영역/헤더 더블클릭, Apply 전, Esc 선택해제 등으로 SelectedIndex가 -1이거나 VisionCorrectionList 범위를 벗어난 상태에서 MoveScanner가 호출되면 인덱스 예외가 발생했다. 진입부에서 범위를 검사해 무시하도록 처리.
2026-07-28 17:09:41 +09:00
0f28908f5f refactor: ubisam-ppt-make ↔ ubisam-deliverables 역할 경계 명확화
역할 분리 원칙 확립:
- ubisam-ppt-make: PPTX 렌더링 엔진 (build_deck.py). 레이아웃·디자인 토큰 SSoT.
  When to use에 deliverables 위임 케이스 추가 + 역할 경계 명시.
- ubisam-deliverables: 산출물 오케스트레이터. PPTX 직접 생성 금지 명시.
  Step C를 "ubisam-ppt-make에 위임" 구조로 재작성.
- 09-pptx-integration.md: 역할 분리 원칙 헤더 추가, build_deck.py 경로·SSoT 명시.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 16:27:37 +09:00
ac954a5ea5 docs: ubisam-deliverables 통합 완료 — build_02설계_pptx.py 참조 전면 반영
- SKILL.md: C항목 2.설계 PPTX를 한 줄 실행 명령으로 교체, 불변규칙에 pptx 재생산 추가
- 06-procedure.md: xlsx 재생산과 동등한 pptx 재생산 절차 섹션 추가
- 09-pptx-integration.md: 자동 재생산(build_02설계_pptx.py)과 수동 절차를 구분 기재

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 16:13:18 +09:00
12d78900cd fix: table layout — cap height at 5.3in to prevent footer overlap
- L_table: Inches(0.5×rows) → min(0.5×rows, 5.3) 상한 적용
  (footer y=7.05, table top y=1.7 → max 5.3" + 0.05" gap)
- 영향 슬라이드: 행 수 11+인 표 전체 (DI/DO 14행, TactTime 13행, PLC신호 12행)
- SKILL.md Notes에 table 높이 상한 규칙 문서화

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 16:09:47 +09:00
0cddd5d5b3 feat: ubisam-ppt-make and ubisam-deliverables PPTX integration (Step 2/2) - SW 설계서 자동 생성
- build_02설계_pptx.py 추가: 2.설계 산출물(기능명세·시퀀스·신호정의·IO맵·TactTime) → SW_설계서.pptx 22슬라이드 한 줄 재생산
  - cover / history / agenda / divider × 5 / table × 12 / flow × 2 / closing 구성
  - tempfile spec JSON → build_deck.py → pptx, spec 자동 삭제
  - 실행: set PYTHONUTF8=1 && py .claude/skills/ubisam-deliverables/references/build_02설계_pptx.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 16:04:07 +09:00
f7bacb90c1 23. SW 점걸 결과_ Flow Chart 주요 ptop 프로젝트 시퀸스 4개 이미지 첨부 완료 2026-06-30 15:00:21 +09:00
e34ed97a3a 스킬 전부 업데이트 _ 기존 브랜치에서 넣지 않았던 파일들 전부 커밋 2026-06-30 14:35:22 +09:00
08a60d2605 feat: ubisam-ppt-make and ubisam-deliverables PPTX integration (Step 1/2) - master background + docs 2026-06-30 14:28:31 +09:00
31534ff1bb docs: SW 점검 결과 - 요청자/작업자 컬럼 추가 + Gantt 시트 신규
[SW Version 시트]
- 점검 내용과 점검 결과 사이에 '요청자', '작업자' 2개 컬럼 삽입
- 표 스타일·상단 요약 병합셀 위치 보정(제목 B1:I2 확장, 라벨/날짜 정렬)

[Gantt 시트 신규]
- 프로젝트 6단계 일정 간트차트(타임라인 2026-05~08 일 단위)
- 월/주/일 3행 헤더를 일 날짜 기반 수식으로 자동 생성
- 막대는 조건부서식으로 시작일~종료일 구간을 상태색 자동 채움
  (날짜만 입력/수정하면 막대 자동 갱신, 미정 단계는 공백)
- 단계 반영: 제작 2026-05-01~06-30 진행완료(오창공장 이전 전 완료),
  셋업 미정(7/15 이후 오창공장), 양산·CS 미정

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 13:47:32 +09:00
c63a228dad feat :[문서] 가접용접_메뉴얼 추가 2026-06-26 15:13:52 +09:00
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