5.9 KiB

05 · 설계 양식 시트·컬럼 스키마

재생산 방식 (2026-06-29 확정): 완전 독립 (ref 파일 불필요) xlsx는 xlsxfill.py 의 하드코딩 스타일 상수와 build_02설계_xlsx.py 의 PtoP 데이터만으로 처음부터(from scratch) 생성한다. ref 원본 xlsx 없이도 동일한 외형을 재현한다.

재생산 도구 (영구 보존)

  • xlsxfill.py — 같은 폴더. LG PRI 스타일 상수 + make_workbook / write_banner / write_header_row / write_data_rows / group_merge scratch-build API.
  • build_02설계_xlsx.py — 같은 폴더. PtoP 데이터 내장, 단독 실행으로 4개 xlsx 재생산.
    cd E:\Work\GIT\LGES-OC5-PtoP-Welder
    set PYTHONUTF8=1
    py .claude/skills/ubisam-deliverables/references/build_02설계_xlsx.py
    
  • 전제조건: Python 3.9+, openpyxl >= 3.1 (pip install openpyxl)

공통 관례: ① 배너 B2=제목, B3=근거/부제 ② 미확정 값은 (제안) 표기 ③ Aurora 고정 문구 "운영 SW는 LG PRI의 Aurora 플랫폼으로 개발"


스타일 상수 (xlsxfill.py 하드코딩값)

구분 폰트 색상(fgColor) 테두리
배너 행(B2) 맑은 고딕 13pt Bold White(FFFFFF) FF1F4E78 (진네이비) medium all
부제 행(B3) 맑은 고딕 9pt 없음 medium L/R/T
헤더 행 맑은 고딕 11pt Bold White(FFFFFF) FF2E75B6 (파랑) medium 좌우, thin 상하
데이터 행(홀수) 맑은 고딕 10pt FFDDEBF7 (연파랑) medium 좌우, thin 상하
데이터 행(짝수) 맑은 고딕 10pt FFFFFFFF (흰색) medium 좌우, thin 상하
기능명세서 배너 맑은 고딕 14pt Bold 없음 medium all
기능명세서 헤더 맑은 고딕 11pt Bold 없음 thin all
기능명세서 데이터 맑은 고딕 11pt 없음 thin all
TactTime 헤더 맑은 고딕 11pt 없음 thin all
TactTime 데이터 맑은 고딕 11pt 없음 thin all

write_header_row(fill=None) — 배경 없음(기능명세서·TactTime 계열). 인자 생략 시 파랑(HEADER_FILL) 기본값. fill=_UNSET sentinel으로 구분. TODAY = datetime.date.today() — 실행일 자동 반영. 이력 셀(Update 컬럼)에 삽입.


A. 모션축·IO 맵 정의서 (슬롯 02.설계/IO_DB설계/모션축_IO맵_정의서.xlsx)

3탭 고정

탭명 헤더(B4~) 데이터 시작행 PtoP 특이사항
통신·제어 구성 구분|대상|컨트롤러/디바이스|통신/버스|수량·범위|비고 B5 PLC=MXComponent, IO=Ajin, Laser=IOGate, Scanner=RTC
모션축 정의(ACS) Axis|축명(논리)|용도|컨트롤러/통신|구동|행정/범위|최대속도|Home방식|Soft Limit|동기/단축|비고 B5 X/Y=ACS EtherCAT, Z=Ajin, Scanner θ/XY=RTC. 행정·속도·Home=(제안)
I-O 맵(Ajin) No|신호명|Type|권장모듈|슬롯/CH|Active|설명/인터락|비고 B5 Ajin DI 923 / DO 917 (PAIX_PTOP.cs)

B. PLC-PC 인터페이스 신호 정의서 (슬롯 02.설계/IO_DB설계/PLC_PC_인터페이스_신호정의서.xlsx)

4탭 고정

탭명 헤더(B4~) 데이터 시작행
통신 사양 항목|내용 B5
PC→PLC (Write) No|Seq/구분|신호명|방향|디바이스(제안)|Type|의미 / 트리거|응답·완료|비고 B5
PLC→PC (Read) 동일 B5
핸드셰이크 시퀀스 No|Seq|Step|주체|동작 / 신호|디바이스(제안)|비고 B5
  • Seq 구분 enum: Status · Alarm · Process · Request · Info · Control · Model · Interlock
  • 디바이스: 비트 M70000~(PC Write), M70500~(PLC Read). 워드 D70000~/D70500~.
  • PtoP 핸드셰이크: PAGE_REQ 단일 게이트 → Recipe 확정 → Page 3회 검증 → 리스트 업로드 → 발진 → 완료.

C. 기능명세서 / UI 설계 (슬롯 02.설계/UIUX_기능설계/기능명세서.xlsx)

8탭 고정 (우리 설비에 없는 탭도 양식 유지)

탭명 헤더(행5~) G3 배너 PtoP 내용
OverView no.|Content — SW 개요(Aurora·Win11·.NET·설비·모션·레이저·PLC·비전)
MainView Update|Funtion Area|Funtion Name|NO|Sub|Content "다음은 Main 화면…" AutoRun 시작/정지·페이지·Resume(bit15)·스캐너캔버스
RecipeView 동일 "다음은 Recipe 화면…" ActivateRecipe·변경이력·모델 편집
ManualView 동일 "다음은 Manual 화면…" ScannerOperation·ModelFinder·Calibration
DeviceView 동일 "다음은 Device 화면…" DeviceSetting·PLCBit/Word·IOInterface
SettingView 동일 "다음은 Setting 화면…" Equipment·Log·AutoBackup·Alarm·Stream
VisionView 동일 "다음은 Vision 화면…" (해당없음) — AuroraVision 미사용
Sequence 흐름 Update|Funtion Area|Processing Name|NO|Content — PAGE_REQ게이트→Recipe→Page→ListUpload→발진→완료→루프백

D. TactTime 산정서 (슬롯 02.설계/시퀀스_인터록/TactTime_산정서.xlsx)

2탭 고정

탭명 좌측 컬럼 우측 컬럼 PtoP 내용
PC TactTime 공정|Unit|단위동작|T/T Working Process|상세합계|기준/참조합계 SeqAutoRunPTOP.cs 타이밍 (Page gate·Recipe·발진·완료)
PLC TactTime 동일 구조 — 미입수 → (제안)

E. Flow Chart (슬롯 02.설계/시퀀스_인터록/)

  • 형식: PPTX 흐름도. 메인 시퀀스: PAGE_REQ 단일게이트 → 리스트 업로드 → 발진 → 완료비트. 분기·인터락 표현.

enum 요약(양식 고정값)

  • I/O Type: DI · DO · AI · AO
  • 신호 Type: BIT · INT · INT32
  • PLC Seq 구분: Status · Alarm · Process · Request · Info · Control · Model · Interlock
  • 운영 모드: 수동 · 반자동 · 자동

재생산 시 항상 build_02설계_xlsx.py 를 실행할 것. 스크립트는 cwd=repo root 기준으로 실행.