2025-07-01 14:50:41 +09:00
2025-04-30 16:23:29 +09:00
2025-07-01 14:47:38 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-04-30 16:23:29 +09:00
2025-07-01 14:50:41 +09:00
2025-04-30 16:23:29 +09:00

[생산] 필름 압착기 프로그램

1. 프로그램 개요

항목 내용
프로그램 명 CartridgeFilmAttacher
실행 파일 명 _12.DUALSONIC_Cartridge_Film_Pressing.exe
설치 위치 6층 입구 오른쪽 검사 공간
용도 필름 압착 기계 제어 /필름 작업 공정 중 압착기 동작 시 자동 시간 카운트 및 동작/자동 합불 판정 없음 (검사자가 육안으로 합불 판단)/ 중단 시 자동 불량 처리

2. 프로그램 UI

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

3. 기능 요약

기능 설명
라디오 버튼 선택에 따른 UI 및 설정 분기 포트 수(10채널/20채널), 시간 설정 모드에 따라 UI 그룹박스 표시 여부, 시리얼 포트 배열 크기, 초기값, 위치 변경 등 자동 조정
COM 포트 스캔 및 연결 스캔 버튼 클릭 시 PC의 COM 포트 목록 불러오기, 연결 버튼 클릭 시 선택한 포트 오픈 및 설정 저장
포트별 측정 시작/정지 각 채널별 상태에 따라 시작(start), 진행(play), 중지(middleStop, endStop) 처리 및 명령 전송
타이머 기반 시간 카운트다운 실행 중인 채널의 남은 시간을 1초씩 감소시키며 UI에 남은 시간 표시, 시간이 0이 되면 자동 정지 및 후속 처리 수행
전체 실행/정지 제어 전체 내리기/올리기 버튼을 통해 모든 채널의 상태 일괄 전환 및 타이머 제어
초기화 및 종료 처리 모든 채널 시간 및 UI 초기화, 종료 시 열려 있는 포트 및 쓰레드 안전 종료 및 정리

4. 검사 순서 흐름

[사용자 (UI)]
   ↓ ① Start 버튼 클릭
[processRun(chNum)]
   ↓
[runSystemOnOff(True)]
   ↓
[playTimer]
   ↓ 주기적으로 → [playTimer_Tick()]
       ↓ ② 타이머 카운트다운, 색상 변경, nowTime=0되면 btnRunning 호출
   ↓
[btnRunning(chNum)]
   ↓ 하드웨어 통신 (state_updown)
       ↓ 성공 → processRun 재호출
       ↓ 실패 → runState=wait, 에러처리
   ↓
[processRun(chNum)]
   ↓
   ├ 종료 처리 (파일저장, MQTT 전송, UI 갱신, 카운트 증가)
   └ 대기 상태(wait)로 전환

**데이터 흐름**
[MQTT 전송] ← [processRun 종료 처리] → [로컬 CSV 저장]


5. MQTT (mes.jionmeditech.com^JION/FILM/001)

MQTT 브로커 주소와 토픽 정보 전송 메소드 포함 데이터 예시 지온 MES 메뉴
mes.jionmeditech.com^JION/FILM/001 Mqtt_DataSend() jigch 4 채널 카트리지 필름 자동 부착 로봇
testdate 2025-04-04 제조일
testtime 13:32:33 제조시간
cartnum 111 카트리지번호
test_result 합격 합불 판정
runtime 6:00:00 필름 부착시간

📎 기타 참고 자료 (sequenceDiagram)

sequenceDiagram
    participant 사용자
    participant UI
    participant 시스템
    participant 타이머
    participant MQTT
    participant 저장기능

    사용자->>UI: ① Start 버튼 클릭
    UI->>시스템: processRun(chNum)
    시스템->>시스템: 상태 변경 → 'start'
    시스템->>시스템: runDataReset() (데이터 초기화)
    시스템->>시스템: 제작 개수 +1
    시스템->>UI: chStartbtn.Text = '정지',\nchTimeText 배경 = 노란색\nchTimebtn / chResetbtn = 비활성화
    시스템->>시스템: runSystemOnOff(True)
    시스템->>타이머: playTimer 시작

    loop 매 1초마다
        타이머->>시스템: playTimer_Tick()
        시스템->>시스템: ② nowTime 1초 감소,\n배경 깜빡임 (Moccasin ↔ Pink)
        alt nowTime == 0
            시스템->>시스템: ③ btnRunning(chNum)
            시스템->>시스템: state_updown 하드웨어 통신
            alt 성공
                시스템->>시스템: processRun(chNum) 재호출
            else 실패
                시스템->>시스템: runState='wait', 에러 처리
            end
        end
    end

    시스템->>시스템: 종료 처리
    alt nowTime == 0 (정상 종료)
        시스템->>UI: chTimeText → 초록색,\nchStartbtn.Text → '시작'\nOkNg = True
    else 조기 종료 (중간 정지)
        시스템->>UI: chTimeText → 빨간색,\nchStartbtn.Text → '시작'\nOkNg = False
    end

    시스템->>저장기능: saveLocalFile()
    시스템->>MQTT: Mqtt_DataSend()
    시스템->>UI: txbToday.Text += 1
    시스템->>시스템: 상태 = 'wait'
    시스템->>UI: chTimebtn / chResetbtn → 활성화

Description
[생산] 필름 압착기 프로그램
Readme 440 KiB
Languages
Visual Basic .NET 100%