# **\[입고] TD 검사기 C 값 납땜 공정 프로그램** ## 1. 프로그램 개요 | 항목 | 내용 | | ----------- | ---------------------------------------------------------- | | **프로그램 명** | TDTestExecutor | | **실행 파일 명** | DUALSONIC TD Select Tester.exe | | **설치 위치** | 9층 입구 정면 (수입 검사용), 6층 공장 입구 오른쪽 안쪽 (납땜 공정용) | | **용도** | Transducer(TD)의 검사 및 납땜 전 전류값 측정, 기준 등급(C값) 결정 및 PCB 정보 기록 | --- ## 2. 프로그램 UI | 품질 화면 | 생산1 화면 | | ----------------------------- | ------------------------------ | | ![메인 화면](docs/td_1.png) | ![실행 화면](docs/td_2.png) | | 생산3 화면 | 설정 화면 | | ----------------------------- | ------------------------------ | | ![메인 화면](docs/td_3.png) | ![실행 화면](docs/td_setting.png) | --- ## 3. 기능 요약 | 기능 | 설명 | | ----------------- | ------------------------------------------------- | | **검사 모드 선택** | 품질 / 생산1 / 생산3 등 검사 목적에 따라 라디오 버튼으로 모드 분기 | | **TD 측정** | 시리얼 넘버 입력 → 스코프 설정 → 전류값 측정 → 등급(C값) 판정 | | **C값 계산 및 등급 판정** | 측정된 전류값(R1\~R10) 중 최대값 기준 등급: pro > lux > eye | | **DB 저장** | 측정 결과를 MES(NAS) 서버에 업로드: 결과, 측정값, 기준값 등 포함 | | **설정 저장 기능** | 검사 기준값 및 장비 설정을 config 파일 및 DB에 저장 | | **시리얼 통신** | 장비 및 릴레이 제어: CLS 명령어, 주파수 세팅, 릴레이 on/off, 측정 요청 등 | ### ● 모드 1번: 품질 **수입 검사 (IQC)** - `RunProcessIQC()` → `MeasureTime()` → `RunMeasure()` → `"Judgment start"` - **측정 후, 최대 전류값 → 등급 비교 → DB 저장 (MES : TD 측정 결과 저장[transducers]/ NAS: TD 측정 정보 저장[jomtCartridgeTbl], 오늘 측정 TD 수량 저장[jomtMES_IQCTbl])** ### ● 모드 2번: 생산 1 **PD1** - `RunCartInfoReadPD1()` - 이미 저장된 측정값을 읽어오고, 색상별로 전류값을 구분해서 표시 - 별도 측정 없이 **정보 확인 및 저장 위주 [jomtCartridgeTbl]에서 시리얼넘버로 TD정보, IQC 검사 결과 가져오기** ### ● 모드 3번: 생산 3 **PD3** - `RunProcessPD3()` - 생산 과정 중 설정값 확인, 릴레이 설정, 모드 정보 등 포함 - 별도 측정 없이 **정보 확인 및 저장 위주 [jomtCartridgeTbl]에서 시리얼넘버로 TD정보, IQC 검사 결과 가져오기** → 용도는 다르지만 구조는 비슷하게 `RunProcess()`에서 분기 처리 --- ## 4. 검사 순서 흐름 ``` [프로그램 실행] ↓ [frmTD_JIG_Load()] → Config 파일 로딩, 스코프 초기화, DB 연결 ↓ [로그인 및 검사 모드 선택] ↓ [시리얼 넘버(S/N) 입력] ↓ [RunProcess() 호출] → LoadDB() → ResetRegMeasure() → LoadRegTD() ↓ [스코프 설정 / 주파수 설정 / 릴레이 설정] ↓ [더미샷 → 측정샷] ↓ [RunMeasure()] → 측정값 반환 ↓ [Judgment start] → 측정값 분석 → 등급 판단 (pro/lux/eye) ↓ [DB 저장] → MES: 측정 결과 등록 → NAS: 측정 정보 저장 → 오늘 측정 수량 업데이트 ``` --- ## 5. DB ### (1) MES DB (`transducers`) | 항목 | 변수명 | 예시 | | -------- | ------------- | ---------- | | 지그 번호 | `jig_num` | 1 | | 측정일 | `test_date` | 2025-05-21 | | 측정시간 | `test_time` | 16:12:23 | | TD 시리얼번호 | `td_serial` | J124300004 | | 주파수 | `td_freq` | 7070 | | 임피던스 | `td_imp` | 108.2 | | 합불 판정 | `test_result` | 합격 | | 등급 | `td_grade` | PRO | | 측정 C값 | `td_c` | 82 | ### (2) NAS DB (`jomtCartridgeTbl`, `jomtMES_IQCTbl`, `jomtMES_PD1Tbl`) #### \[IQC 초기 등록] `LoadRegTD()` (SELECT) * `PV_Date`, `PV_Frequency`, `PV_Impedance`, `PV_Capacitance`, `PV_Resistance`, `TestStep` #### \[IQC 결과 저장] `UploadDB_IQC()` (UPDATE) * `QC_LastDate`, `TestStep = 11`, `QC_Frequency`, `QC_Current`, `QC_Capacitor`, `QC_Grade`, `QC_R1Value`\~`R10Value`, `QC_Date`, `QC_Time` #### \[PD1 값 읽기] `RunCartInfoReadPD1()` (SELECT) * `TestStep`, `QC_Grade`, `QC_Capacitor` #### \[PD1 결과 저장] `UploadDB_PD1()` (UPDATE) * `TestStep = 21 or 31`, `P1_Frequency`, `P1_Model`, `P1_CartType`, `P1_Date`, `P1_Time` 또는 `P0_Model`, `P0_Type`, `P0_Date`, `P0_Time` #### \[IQC 수량 저장] `UploadCntDB_IQC()` (UPDATE) * `IQC_TotalCnt`, `IQC_OkCnt`, `IQC_NgCnt`, `IQC_ProCnt`, `IQC_LuxCnt`, `IQC_EyeCnt`, `IQC_R1Cnt~R10Cnt`, `IQC_ReTotalCnt`, `IQC_ReOkCnt`, `IQC_ReNgCnt` #### \[PD1 수량 저장] `UploadCntDB_PD1()` (UPDATE) * `PD1_TotalCnt`, `PD1_OkCnt`, `PD1_NgCnt`, `PD1_ProCnt`, `PD1_LuxCnt`, `PD1_EyeCnt`, `PD1_MAXCnt`, `PD1_R1Cnt~R10Cnt` --- ## 📎 기타 참고 자료 (흐름도) ```mermaid flowchart TD A[프로그램 실행] --> B[사용자 설정] B --> C[frmLogin_Load] C --> D[사용자 인증 후 설정 진입] D --> E[RunProcess 호출] %% 1. IQC 검사 흐름 E --> F1[모드 1: IQC T/D 수입 검사] F1 --> F2[시리얼번호 스캔 → 측정 시작] F2 --> F3[TD 정보 로드] F3 --> F4[ runbeep1 삐 소리 내기] F4 --> F5[장비 상태 클리어 CLS] F5 --> F6{측정 유형} F6 -->|더미샷| F6a[SetFrequency] F6a --> F6b[SetRelay 1,1] F6b --> F6c[단일 측정 :Single] F6c --> F6d[RunShot] F6d --> F6e[RunMeasure] F6 -->|측정샷| F6f[SetFrequency] F6f --> F6g[SetRelay Relay_C,1] F6g --> F6h[단일 측정:Single] F6h --> F6i[RunShot] F6i --> F6j[RunMeasure] F6j --> F6k[측정값 분석
Judgment start] F6k --> F6l[최대값 저장 및 등급 결정] F6l --> F7[DB 저장] F7 --> F7a[→ MES transducers] F7 --> F7b[→ NAS jomtCartridgeTbl] F7 --> F7c[→ NAS jomtMES_IQCTbl] %% 2. PD1 공정 E --> G1[모드 2: 캐패시터 값 확인] G1 --> G2[TD 정보 로드 LoadRegTD] G2 --> G3[RunProcessPD1] G3 --> G4[RunCartInfoReadPD1] G4 --> G5[RELAY 별 최대 전류값 → 색상 표시] G5 --> G6[보드 장착 수량 계산 후 DB 저장] %% 3. PD2 (미사용) E --> H1[모드 3: PD2 카트리지 조립 성능검사] H1 --> H2[현재 미사용 주석처리] %% 4. 도트 검사 E --> I1[모드 4: 도트 검사] I1 --> I2[TD 정보 로드< LoadRegTD] I2 --> I3[RunCartInfoReadPD3] I3 --> I4[RunProcessPD3] I4 --> I5[SetRelay Cnt, 1] %% 종료 F7c --> Z[종료 버튼 클릭 → 종료] G6 --> Z I5 --> Z ```