# [출하] 포장 일반 및 자동화 프로그램 ### **1. 프로그램 정보** | 항목 | 내용 | | --------- | ----------------------------------------------------- | | **프로그램명** | **DUALSONIC SalesPacking MES Program Ver.1.0.1** | | **설치 위치** | 4층 포장 구역 | | **주요 기능** | - 출하장 제품 자동 포장 처리지시 기반 포장
- 일반건 및 대량건 무게 측정 자동화 지원 | | **실행 파일** | `SalesPacking_MES_API_Project.exe` | --- ### **2. 프로그램 실행 화면** ![메인화면](images/메인 화면.png) ![설정화면](images/설정 화면.png) --- ### **3. UI 구성요소** * **상단 영역**: MES 로그인, 송장 등록, P/N 입력 버튼, 패킹코드, 설정, 종료 * **오른쪽 영역**: 요청 수량, 작업 수량, 잔여 수량, 제품 사양(메인/단일 정보, 수량, 시작/종료/소요/평균 시간), 초기화/등록 버튼 * **왼쪽 영역**: 대기 중 출고 조건(구성 품목 명, 구매 수량, 확인 수량) * **설정 화면**: * 통신 포트, 자동 설정 * 무게 오차범위 설정 * 출고 이벤트/이벤트명 등록 * 포장 개수 설정, 프린터 및 PC 식별 코드 관리 * 라벨 변경, 새로고침, 저장 --- ### **4. Mode1 vs Mode2 동작 흐름** | 구분 | Mode1 (일반 모드) | Mode2 (자동화 모드) | | ------------- | -------------------------- | ------------------------- | | **조건** | `rdbMode1.Checked = True` | `rdbMode2.Checked = True` | | **작동 방식** | 수동 포장 (바코드/무게 수동 처리) | 자동 포장 (API + 무게 자동 처리) | | **무게 검증** | 체크박스 `ckbWeight`에 따라 수동 측정 | 라디오버튼 `rdbAuto2`로 자동 측정 | | **주문 처리** | 바코드 기반 단건 처리 | ERP/MES API 연동, 다건 처리 | | **Save Flow** | `saveStart()` → 수동 데이터 저장 | `saveStart()` → 자동 데이터 저장 | | **세트 코드 처리** | 수동 분해 또는 처리 없음 | 세트코드 자동 분해 및 구성품 계산 | | **로그 저장** | 필요 시 `saveLogOrder()` | 자동 로그 저장 (무게 포함) | | **적용 예시** | 단일 상품, 실험용 포장 | 대량 출하용 자동 포장 시스템 | --- ### **5. 전체 동작 FlowChart** ```mermaid flowchart TD A["프로그램 시작 (mainForm_Load)"] --> B["설정 로드 (loadConfig)"] B --> C["UI 초기화"] C --> D["바코드 입력"] D --> E["입력값 분기 (codeParsing())"] E -->|ERPORDER| F["ERP 처리"] E -->|MESORDER| G["MES API 처리"] E -->|PRODSCAN| H["제품 스캔 처리"] E -->|COMSCAN| I["복수 코드 처리"] E -->|PACKING| J["포장 처리"] E -->|기타| K["오류 처리"] F & G & H & I & J --> L["packingRun() → 조건 검사"] L --> M{"조건 만족?"} M -->|Yes| N["saveStart() 호출 (DB 저장, 무게검증 등)"] M -->|No| O["오류 출력 및 Exit"] N --> P["DB 저장"] P --> Q["로컬 저장"] Q --> R["작업 완료"] ```