2025-07-01 11:38:45 +09:00
|
|
|
# **AGING TEST 자동 검사 프로그램**
|
|
|
|
|
|
|
|
## 📌 프로그램 개요
|
|
|
|
|
|
|
|
| 항목 | 내용 |
|
|
|
|
| ---------- | ---------------------------------------------------------------- |
|
|
|
|
| **프로그램 명** | `DUALSONIC_Aging_Test_Program Ver.1.0.0` |
|
|
|
|
| **설치 위치** | 6층 공장 라인 Aging 공정 구역 |
|
|
|
|
| **용도** | 필름 압착 기계 제어 /필름 작업 공정 중 압착기 동작 시 자동 시간 카운트 및 동작/자동 합불 판정 없음 (검사자가 육안으로 합불 판단)/ 중단 시 자동 불량 처리 |
|
|
|
|
| **연결 장비** | Control Box, Aging JIG, Power Supply, Relay Board |
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## 🖥️ 프로그램 UI
|
|
|
|
|
2025-07-01 11:51:37 +09:00
|
|
|
| 메인 화면 | 실행 화면 |
|
2025-07-01 11:38:45 +09:00
|
|
|
| ------------------------ | --------------------------- |
|
2025-07-01 11:51:37 +09:00
|
|
|
|  |  |
|
2025-07-01 11:38:45 +09:00
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## 🔢 기능 요약
|
|
|
|
|
2025-07-01 11:51:37 +09:00
|
|
|
| 기능 | 설명 |
|
|
|
|
| ---------------------------- | ----------------------------------------------------------------------------- |
|
|
|
|
| **라디오 버튼 선택에 따른 UI 및 설정 분기** | 포트 수(10채널/20채널), 시간 설정 모드에 따라 UI 그룹박스 표시 여부, 시리얼 포트 배열 크기, 초기값, 위치 변경 등 자동 조정 |
|
|
|
|
| **COM 포트 스캔 및 연결** | 스캔 버튼 클릭 시 PC의 COM 포트 목록 불러오기, 연결 버튼 클릭 시 선택한 포트 오픈 및 설정 저장 |
|
|
|
|
| **포트별 측정 시작/정지** | 각 채널별 상태에 따라 시작(`start`), 진행(`play`), 중지(`middleStop`, `endStop`) 처리 및 명령 전송 |
|
|
|
|
| **타이머 기반 시간 카운트다운** | 실행 중인 채널의 남은 시간을 1초씩 감소시키며 UI에 남은 시간 표시, 시간이 0이 되면 자동 정지 및 후속 처리 수행 |
|
|
|
|
| **상태 및 UI 업데이트** | 버튼 텍스트 및 색상 변경, 상태에 따른 기능 활성화/비활성화, 깜빡임 효과 등으로 진행 상황 시각적 표시 |
|
|
|
|
| **전체 실행/정지 제어** | 전체 내리기/올리기 버튼을 통해 모든 채널의 상태 일괄 전환 및 타이머 제어 |
|
|
|
|
| **초기화 및 종료 처리** | 모든 채널 시간 및 UI 초기화, 종료 시 열려 있는 포트 및 쓰레드 안전 종료 및 정리 |
|
2025-07-01 11:38:45 +09:00
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## 🔄 검사 순서 흐름도
|
|
|
|
|
2025-07-01 12:00:03 +09:00
|
|
|
```
|
|
|
|
[시작 버튼 클릭]
|
|
|
|
↓
|
|
|
|
[cmdRunButton() 실행] → [설정값 저장 및 초기화] → [펌웨어 명령어 전송: agenable chNum, 1] → [SendData() 호출]
|
|
|
|
↓
|
|
|
|
[타이머 실행 (cmdTimer_Tick())]
|
|
|
|
↓
|
|
|
|
[ReceiveData() 호출] → [펌웨어로부터 데이터 수신]
|
|
|
|
↓
|
|
|
|
[메시지 해석] → [UI 업데이트] (예: [avalue], [aerror], [dsfwver])
|
|
|
|
↓
|
|
|
|
[자동 종료 조건 체크]
|
|
|
|
├── [온도 기준 충족 시 → 테스트 자동 종료]
|
|
|
|
├── [샷 수 기준 충족 시 → 테스트 자동 종료]
|
|
|
|
└── [에러 발생 시 → 에러 메시지 출력 및 UI 반영]
|
|
|
|
↓
|
|
|
|
[결과 저장] → [PostgreUpdateReg() 호출] → [결과 PostgreSQL에 저장]
|
|
|
|
↓
|
|
|
|
[중지 버튼 클릭 시]
|
|
|
|
↓
|
|
|
|
[agenable chNum, 0] → [펌웨어에 테스트 중지 명령 전송] → [테스트 종료]
|
|
|
|
|
2025-07-01 11:38:45 +09:00
|
|
|
```
|
|
|
|
|
|
|
|
---
|
|
|
|
|
2025-07-01 12:05:53 +09:00
|
|
|
## 🗃️ MES 데이터 저장 구조 (temperature_chambers: 온도 에이징 검사기)
|
|
|
|
|
|
|
|
| 필드 이름 | 값 예시 | 설명 | PostgreSQL 컬럼명 | PostgreSQL 값/코드 | Null 허용 |
|
|
|
|
| --- | --- | --- | --- | --- | --- |
|
|
|
|
| jig_num | 1 | 지그 번호 (nudJigNum.Value) | chNum | chNum | O |
|
|
|
|
| jig_ch | 0 | 채널 번호 (0~10) | chNum | chNum | O |
|
|
|
|
| test_date | 2025-05-09 | 테스트 날짜 (AG_DATE) | AG_DATE | AG_DATE(chNum) | O |
|
|
|
|
| start_time | 14:32:10 | 테스트 시작 시간 (AG_StartTime) | AG_StartTime | AG_StartTime(chNum) | O |
|
|
|
|
| run_time | 0:27:50 | 테스트 경과 시간 (txbEndTime) | txbEndTime | txbEndTime((cmdVal(1))).Text | O |
|
|
|
|
| end_time | 15:00:00 | 테스트 종료 시간 (시스템 시간) | endtime | now | O |
|
|
|
|
| div_num | DIV001 | 메인 장비 SN (AG_Device_SN) | AG_Device_SN | AG_Device_SN(chNum) | O |
|
|
|
|
| cart_num | CART001 | 카트리지 SN (AG_Cart_SN) | AG_Cart_SN | AG_Cart_SN(chNum) | O |
|
|
|
|
| test_result | PASS | 테스트 결과 (PASS / FAIL) | OkNg | OkNg | O |
|
|
|
|
| limit_div_temp | 60 | 디바이스 온도 기준 (txbDevTemp) | txbDevTemp | txbDevTemp.Text | O |
|
|
|
|
| limit_cart_temp | 50 | 카트리지 온도 기준 (txbCartTemp) | txbCartTemp | txbCartTemp.Text | O |
|
|
|
|
| limit_shot | 200 | 샷 수 기준 (txb_limit) | txb_limit | txb_limit.Text | O |
|
|
|
|
| divtemp_start | 36.5 | 디바이스 시작 온도 (txtMain...) | txtMainStartTemp | txtMainStartTemp(Val(cmdVal(1))).Text | O |
|
|
|
|
| divtemp_end | 38.1 | 디바이스 종료 온도 (txtMain...) | txtMainEndTemp | txtMainEndTemp(Val(cmdVal(1))).Text | O |
|
|
|
|
| carttemp_start | 40 | 카트리지 시작 온도 | txtCartStartTemp | txtCartStartTemp(Val(cmdVal(1))).Text | O |
|
|
|
|
| carttemp_end | 48 | 카트리지 종료 온도 | txtCartEndTemp | txtCartEndTemp(Val(cmdVal(1))).Text | O |
|
|
|
|
| run_shot | 201 | 총 샷 수 (txbShotCnt) | txbShotCnt | txbShotCnt(Val(cmdVal(1))).Text | O |
|
|
|
|
| error_code | 0 | 에러 코드 (빈 값 또는 코드, 0=정상) | AG_ERROR | AG_ERROR(chNum) | O |
|
|
|
|
| created_at | 2025-05-09 15:00:00 | 등록 시간 (NOW()) | created_at | NOW() | O |
|
|
|
|
| updated_at | 2025-05-09 15:00:00 | 수정 시간 (NOW()) | updated_at | NOW() | O |
|
2025-07-01 11:58:41 +09:00
|
|
|
|
2025-07-01 11:38:45 +09:00
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## 📎 기타 참고 사항
|
|
|
|
|
2025-07-01 12:05:53 +09:00
|
|
|
*
|
2025-07-01 11:38:45 +09:00
|
|
|
|