4.9 KiB
4.9 KiB
PTOP 소스 → 산출물 필드 매핑
이 파일은 소스 파일과 산출물 필드 간 1:1 매핑 인덱스. 다른 PC에서 스킬 실행 시 이 파일을 보고 어떤 소스를 읽어야 할지 판단한다.
A. PLC-PC 인터페이스 신호정의서
출력: 02.설계/IO_DB설계/PLC_PC_인터페이스_신호정의서.md
| 시트 | 소스 파일 | 읽어야 할 심볼 |
|---|---|---|
| 통신 사양 | Device/PLC/PLCContoller.Config.cs |
ePLCNetType, PLCMMapFileType, 베이스 주소 설정 |
| PC→PLC (Write) | Device/PLC/PLCController.Address.cs |
eBitOutput, eWordOutput enum 전수 |
| PLC→PC (Read) | Device/PLC/PLCController.Address.cs |
eBitInput, eWordInput enum 전수 |
| 핸드셰이크 시퀀스 | Sequences/SeqAutoRunPTOP.cs |
CheckPageNo, CheckRecipeNoComp, CheckPageNoComp, WaitWeldingStart, WriteWeldComplete |
PLC 주소 규칙:
eBitOutputoffset →M70000 + offseteBitInputoffset →M70500 + offseteWordOutputoffset →D70000 + offseteWordInputoffset →D70500 + offset- 두 번째 블록(0x65~, 양극 P) →
M70600~(현재 미사용)
B. 모션축·IO 맵 정의서
출력: 02.설계/IO_DB설계/모션축_IO맵_정의서.md
| 시트 | 소스 파일 | 읽어야 할 심볼 |
|---|---|---|
| 통신·제어 구성 | EquipmentSetup.cs |
RegisterDevices() 내 모든 Register*Device 호출 |
| 모션축 정의 | docs/architecture.md §4 |
AuroraACS(X/Y), AuroraMotionBoard(Z), RTC(Scanner) |
| I/O 맵 DI | Device/IO/PAIX_PTOP.cs |
ePrismaticDIAddress enum — 채널 번호·신호명 |
| I/O 맵 DO | Device/IO/PAIX_PTOP.cs |
ePrismaticDOAddress enum — 채널 번호·신호명 |
모션축 주의사항:
- X/Y 행정·속도·Home 방식 = 소스에 없음 → 전부
(제안)표기. AuroraACS= EtherCAT SPiiPlus.AuroraMotionBoard= Ajin 보드.
C. 기능명세서 / UI 설계
출력: 02.설계/UIUX_기능설계/기능명세서.md
| 탭 | 소스 파일 | 읽어야 할 심볼 |
|---|---|---|
| 메뉴 구조 | EquipmentSetup.cs |
RegisterViews() 전수 (MenuId, ViewType, AuthLevel) |
| MainView | Views/Main/UCMainAutoRun*.cs |
버튼·이벤트·바인딩 목록 |
| RecipeView | Views/Recipe/UCRecipe*.cs |
ActivateRecipe, RecipeChangeHistory, UCModel |
| ManualView | Views/Manual/UCManualScannerOperation*.cs |
ScannerOperation, ModelFinder |
| MonitoringView | Views/Monitoring/UCPLC*.cs, UCIOInterfaceView.cs |
PLCBit, PLCWord, IOInterface |
| Sequence 흐름 | Sequences/SeqAutoRunPTOP.cs |
Builder() 노드 목록 순서대로 |
8탭 고정 (xlsx ref 호환): OverView / MainView / RecipeView / ManualView / DeviceView / SettingView / VisionView / Sequence 흐름
D. 제어 시퀀스·인터락 정의서
출력: 02.설계/시퀀스_인터록/제어시퀀스_인터락_정의서.md
| 섹션 | 소스 파일 | 읽어야 할 심볼 |
|---|---|---|
| 메인 시퀀스 노드 흐름 | SeqAutoRunPTOP.cs |
Builder() 내 모든 AddNode·AddTransition |
| 단계별 동작 요약 | SeqAutoRunPTOP.cs |
각 노드 메서드 구현 첫 줄 주석·로그 |
| 인터락 정의 | Settings/LaserInterlockSetting.cs |
HeadThetaInterlockEnabled, ThetaTolerance |
| 인터락 정의 (추가) | SeqAutoRunPTOP.cs |
LaserInterlock, PLC_HEAVY_ALARM_STATUS 처리 |
| 정지/에러 처리 | SeqAutoRunPTOP.cs |
OnStopped, OnForceError, ResumeMode |
Resume(bit15) 흐름: PLC_WELD_READY_REQ(0x0F) 수신 → 팝업 + Auto→Manual 전환 → PC_WELD_READY_ACK(0x0F) ON → 1사이클 후 OFF.
E. TactTime 산정서
출력: 02.설계/시퀀스_인터록/TactTime_산정서.md
| 단위동작 | 소스 파일 | 상수/값 |
|---|---|---|
| Page 3회 검증 | SeqAutoRunPTOP.cs |
PAGE_VERIFY_DELAY_MS × 3 (≈200ms×3 = 600ms) |
| 준비 응답 | SeqAutoRunPTOP.cs |
WELD_START_DELAY_MS (200ms) + 소신호(5ms) |
| Gate ON delay | SeqAutoRunPTOP.cs |
laserEmissionGateDelayMs = 15ms |
| 실제 발진 | SeqAutoRunPTOP.cs |
로그 "TactTime: [Nms]" — 예시 285ms (라인 수 의존) |
| Jump 복귀 | SeqAutoRunPTOP.cs |
Thread.Sleep(500) |
| 완료비트 | SeqAutoRunPTOP.cs |
50ms + 5ms |
| Pre/Post Scout | SeqAutoRunPTOP.cs |
SCOUT_PROCEED_DELAY_MS = 100ms/회 (M70509 ON 시) |
F. _task.md 진행률 기준 (현황 기준)
| 단계 | 상태 | 진행률 | 근거 |
|---|---|---|---|
| 1.분석/협의 | 해야 할 일 | 0% | 사양서 미입수 |
| 2.설계 | 업무 진행중 | 85% | xlsx 4종 완료, 모션 파라미터 미확정 |
| 3.제작 | 해야 할 일 | 0% | CheckList 미작성 |
| 4.셋업 | 해야 할 일 | 0% | 현장 셋업 미완료 |
| 5.양산 | 업무 진행중 | 40% | 운영매뉴얼 3종 완료, 나머지 미완료 |
| 6.CS | 해야 할 일 | 0% | 미착수 |
이 값은 스킬 실행 시점 기준. 재실행 시 소스·폴더 현황 재확인 후 갱신.