193 lines
7.1 KiB
Markdown
Raw Normal View History

2025-07-01 13:43:31 +09:00
# **\[입고] TD 검사기 C 값 납땜 공정 프로그램**
2025-07-01 13:41:49 +09:00
## 1. 프로그램 개요
2025-07-01 13:43:31 +09:00
| 항목 | 내용 |
| ----------- | ---------------------------------------------------------- |
| **프로그램 명** | TDTestExecutor |
| **실행 파일 명** | DUALSONIC TD Select Tester.exe |
| **설치 위치** | 9층 입구 정면 (수입 검사용), 6층 공장 입구 오른쪽 안쪽 (납땜 공정용) |
| **용도** | Transducer(TD)의 검사 및 납땜 전 전류값 측정, 기준 등급(C값) 결정 및 PCB 정보 기록 |
2025-07-01 13:41:49 +09:00
---
## 2. 프로그램 UI
2025-07-01 13:43:31 +09:00
| 품질 화면 | 생산1 화면 |
| ----------------------------- | ------------------------------ |
2025-07-01 14:00:53 +09:00
| ![메인 화면](docs/td_1.png) | ![실행 화면](docs/td_2.png) |
2025-07-01 13:41:49 +09:00
2025-07-01 13:43:31 +09:00
| 생산3 화면 | 설정 화면 |
| ----------------------------- | ------------------------------ |
2025-07-01 14:00:53 +09:00
| ![메인 화면](docs/td_3.png) | ![실행 화면](docs/td_setting.png) |
2025-07-01 13:41:49 +09:00
---
## 3. 기능 요약
2025-07-01 13:43:31 +09:00
| 기능 | 설명 |
| ----------------- | ------------------------------------------------- |
| **검사 모드 선택** | 품질 / 생산1 / 생산3 등 검사 목적에 따라 라디오 버튼으로 모드 분기 |
| **TD 측정** | 시리얼 넘버 입력 → 스코프 설정 → 전류값 측정 → 등급(C값) 판정 |
| **C값 계산 및 등급 판정** | 측정된 전류값(R1\~R10) 중 최대값 기준 등급: pro > lux > eye |
| **DB 저장** | 측정 결과를 MES(NAS) 서버에 업로드: 결과, 측정값, 기준값 등 포함 |
| **설정 저장 기능** | 검사 기준값 및 장비 설정을 config 파일 및 DB에 저장 |
| **시리얼 통신** | 장비 및 릴레이 제어: CLS 명령어, 주파수 세팅, 릴레이 on/off, 측정 요청 등 |
2025-07-01 13:41:49 +09:00
2025-07-01 14:07:51 +09:00
### ● 모드 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()`에서 분기 처리
2025-07-01 13:41:49 +09:00
---
2025-07-01 13:54:26 +09:00
## 4. 검사 순서 흐름
2025-07-01 13:41:49 +09:00
```
2025-07-01 13:43:31 +09:00
[프로그램 실행]
[frmTD_JIG_Load()]
→ Config 파일 로딩, 스코프 초기화, DB 연결
[로그인 및 검사 모드 선택]
[시리얼 넘버(S/N) 입력]
[RunProcess() 호출]
→ LoadDB() → ResetRegMeasure() → LoadRegTD()
[스코프 설정 / 주파수 설정 / 릴레이 설정]
[더미샷 → 측정샷]
[RunMeasure()] → 측정값 반환
[Judgment start] → 측정값 분석 → 등급 판단 (pro/lux/eye)
[DB 저장]
→ MES: 측정 결과 등록
→ NAS: 측정 정보 저장
→ 오늘 측정 수량 업데이트
2025-07-01 13:41:49 +09:00
```
---
2025-07-01 13:47:18 +09:00
## 5. DB
2025-07-01 13:41:49 +09:00
2025-07-01 13:48:03 +09:00
### (1) MES DB (`transducers`)
2025-07-01 13:41:49 +09:00
2025-07-01 13:47:18 +09:00
| 항목 | 변수명 | 예시 |
| -------- | ------------- | ---------- |
| 지그 번호 | `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 |
2025-07-01 13:41:49 +09:00
2025-07-01 13:48:03 +09:00
### (2) NAS DB (`jomtCartridgeTbl`, `jomtMES_IQCTbl`, `jomtMES_PD1Tbl`)
2025-07-01 13:41:49 +09:00
2025-07-01 13:47:18 +09:00
#### \[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)
2025-07-01 13:41:49 +09:00
2025-07-01 13:47:18 +09:00
* `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`
2025-07-01 13:41:49 +09:00
2025-07-01 13:43:31 +09:00
---
2025-07-01 13:47:18 +09:00
2025-07-01 13:54:03 +09:00
## 📎 기타 참고 자료 (흐름도)
```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[측정값 분석<br>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
2025-07-01 13:47:18 +09:00
2025-07-01 13:54:03 +09:00
```