2025-07-01 14:38:45 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-07-01 11:45:55 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-07-01 14:38:45 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00
2025-04-30 16:28:26 +09:00

[품질] AGING 프로그램

1. 프로그램 개요

항목 내용
프로그램 명 AgingTester
실행 파일 명 DUALSONIC Asing.exe
설치 위치 6층 공장 라인 Aging 공정 구역
용도 완제품을 온도 유지 장치에 넣고 장시간 동작 테스트 수행샷 발사 명령 전송 → 기기에서 반복 샷 작동1초 간격 온도 수집 및 기준 초과 시 불량 처리

2. 프로그램 UI

메인 화면 실행 화면
메인 화면 실행 화면

3. UI 구성요소 및 파일

(1) UI 구성요소

  • 상단: 현재시간, 시험 장소 온도, 판별온도 설정, 통신 설정, 합격범위지정 버튼, 샷 리미트 지정 버튼, 지그번호 콤보박스, 시작버튼
  • 설정 UI 및 버튼 동작
    • 샷(Shot) 합격 범위 설정 UI 및 버튼 동작

      1. btn_shot 클릭 시
        • gb_shot_range 그룹박스를 (1180,12) 위치, (533,75) 크기 표시 (Visible = True)
        • gb_limit 그룹박스는 숨김 (Visible = False)
      2. btn_shot_ok 클릭 시
        • gb_shot_range 그룹 박스를 숨김 (Visible = False)
        • Save_ini() 함수 호출 → 설정 값 저장
      3. 최소·최대 값 입력 (txb_minimum, txb_maximum)
        • 클릭 시 ReadOnly = False면 텍스트 비움 (Text = "")

          → 이 값들이 결국 샷 합격 범위 (최소/최대) 값으로 저장됨

    • 샷(Shot) 리미트 지정 UI 및 버튼 동작

      1. btn_limit 클릭 시
        • gb_limit 그룹박스를 (1180,12) 위치, (533,75) 크기로 보이게 표시
        • gb_shot_range 그룹박스는 숨김 (Visible = False)
      2. btn_limit_save 클릭 시
        • gb_limit 그룹박스를 숨김 (Visible = False)
        • Save_ini() 호출 → 리미트 설정값 저장
    • 지그번호 콤보박스

      1. nudJigNum 값 변경 시
        • StartSwitch 값이 True이면 → Save_ini() 호출 (설정 저장)
        • StartSwitch 값이 False이면 → StartSwitch = True로 설정 (다음 변경부터 저장 동작 활성화)
        • 즉, 처음에는 StartSwitchTrue로 만들어 준비 그 이후부터 값 변경 시 자동으로 설정을 저장하는 역할
  • 중단: 채널 별 본체SN, 카트리지SN, 시작시간, 실행시간, Shot 카운터, 본체 카트리지 시작/현재온도

(2) 파일 DS_Config.ini

  • 판별 온도 설정 - 본체 온도: 48.0, 카트리지 온도 : 48.0 txbDevTemp, txbCartTemp
  • 샷 리미티드 지정 - 제한 샷수 : 330 txb_limit, 오차 범위 : 1 nudErrRange
  • 샷 합격 범위 지정 - 최소 200 ~ 최대 300 txb_minimum, txb_maximum
  • JIG 번호 : 1 nudJigNum

4. 검사 순서 흐름

[시작 버튼 클릭]
     ↓
[cmdRunButton() 실행] → [설정값 저장 및 초기화] → [펌웨어 명령어 전송: agenable chNum, 1] → [SendData() 호출]
     ↓
[타이머 실행 (cmdTimer_Tick())]
     ↓
[ReceiveData() 호출] → [펌웨어로부터 데이터 수신]
     ↓
[메시지 해석] → [UI 업데이트] (예: [avalue], [aerror], [dsfwver])
     ↓
[자동 종료 조건 체크]
     ├── [온도 기준 충족 시 → 테스트 자동 종료]
     ├── [샷 수 기준 충족 시 → 테스트 자동 종료]
     └── [에러 발생 시 → 에러 메시지 출력 및 UI 반영]
     ↓
[결과 저장] → [PostgreUpdateReg() 호출] → [결과 PostgreSQL에 저장]
     ↓
[중지 버튼 클릭 시]
     ↓
[agenable chNum, 0] → [펌웨어에 테스트 중지 명령 전송] → [테스트 종료]


5. 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

📎 기타 참고 자료 (흐름도)

flowchart TD

    A[프로그램 시작] --> B[설정 파일 읽기]
    B --> C[설정값 UI 반영<br/>or 기본값 저장]

    C --> D[시작 버튼 클릭]
    D --> E[채널별 반복 실행]
    
    E --> F[버튼 텍스트 '중지'로 변경]
    F --> G[통신 플래그 및 UI 상태 초기화]
    G --> H[JSON 데이터 초기화]
    H --> I[장비 시작 명령 전송<br/>agenable chNum, 1]

    I --> J[타이머 실행 시작]
    J --> K[타이머 tick 발생]
    K --> L[ReceiveData 호출<br/>펌웨어 데이터 수신]
    L --> M[샷 수/온도 UI 갱신]

    M --> N{자동 종료 조건 충족?}
    N -->|예| O[중지 버튼 클릭 처리 시나리오로 진입]
    N -->|아니오| K

    O[중지 버튼 클릭 시작 텍스트로 변경] --> P[타이머 중지 및 상태 초기화]
    P --> Q[테스트 중지 명령 전송<br/>agenable chNum, 0]
    Q --> R[샷 수 / 온도 기준 판정]
    
    R --> S{합격 기준 충족?}
    S -->|PASS| T[결과 표시: PASS<br/>UI 초록색, 로그 저장]
    S -->|FAIL| U[결과 표시: FAIL<br/>UI 빨간색, 로그 저장]

    T --> V[PostgreSQL 등록]
    U --> V

    V --> W[SQL INSERT 실행<br/>temperature_chambers 테이블 기록]
    W --> X[UI 및 로그 갱신]

    X --> Y{다른 채널 남았는가?}
    Y -->|예| E
    Y -->|아니오| Z[프로그램 종료 or 대기 상태]

Description
[품질] Aging 프로그램
Readme 39 MiB
Languages
Visual Basic .NET 100%