저울 변경: CAS SWII → QW 시리즈 전환 및 코드 수정 #8

Closed
opened 2025-06-24 09:08:08 +09:00 by kje97 · 0 comments
Owner

⚙️ CAS SWII → QW 시리즈 전환 및 코드 수정

📌 변경 배경

  • 기존 CAS SWII‑15CS 저울 사용 → 통신 방식:
    9600 Baud / RS-CAS 모드 / ENQ→ACK→XON→STX~ETX
  • 현재는 QW 시리즈 저울로 교체 → 통신 방식:
    4800 Baud / ASCII Code / 8N1, 단방향 출력, 명령 프로토콜 없음

🛠️ 주요 변경 사항

1. 저울 방식 분리 처리

저울 종류 통신 방식 처리 방식
CAS SWII 명령 기반 (ENQ→ACK) scaleModule → MeasureScale()
QW 시리즈 단방향 ASCII 출력 QWSerialPort_DataReceived

2. 저울 모드 선택 기능 추가

  • 라디오 버튼 추가: rdbWeightQW
  • 해당 라디오 버튼의 선택 여부로 처리 방식 분기

⚙️ QW 시리즈 저울 설정 방법 (매뉴얼 기준)

QW 저울을 RS-232 단방향 ASCII 출력 모드로 사용하기 위해 다음 설정이 필요합니다:

설정 방법

  1. [설정 키] + [인쇄 키] 동시에 누르기 → 설정 모드 진입
  2. 메뉴 항목 중 P Cont(Print Continuous) 항목 선택
  3. 값 의미: RS-232 인터페이스 사용 / 중량을 연속 출력
    • 자동 합산 기능은 억제(disabled)됨

📌 이 설정이 필요한 이유

  • QW 저울은 명령 프로토콜 없이 자동으로 중량을 ASCII 코드로 송신
  • P Cont가 꺼져 있으면 수동 출력 상태라 데이터가 오지 않음
  • 반드시 연속 전송 모드(P Cont = on)로 설정해야 실시간 수신 가능

📖 참고 매뉴얼


🧩 하드웨어 연결 변경 사항

  • QW 시리즈 저울은 RS-232 통신 시 TX/RX 핀 교차 연결 필수
  • 따라서 D-Sub 9핀 Male to Female, Cross 타입 케이블 구매 필요

일반 연장선(X) → 크로스 케이블(O) 이어야 저울 데이터 수신 가능

구매 사양 요약:

  • 커넥터: D-Sub 9핀 (Male ↔ Female)
  • 배선 방식: Cross (핀 2↔3, 핀 3↔2)
  • 용도: RS-232 장비 간 통신 (저울 ↔ PC)

참고: 재측정 흐름도


flowchart TD
    A[QWSerialPort_DataReceived 발생] --> B[데이터 수신 ReadExisting]
    B --> C[줄 단위로 분리 vbCr, vbLf]
    C --> D[각 줄에서 무게 파싱 ST,GS, 0.000 kg]
    D --> E[가장 큰 무게값 선택 → weightResult2에 저장]
    E --> F{weightResult2 = 0?}
    F -- Yes --> G[zeroSet = True]
    F -- No --> H[zeroSet = False]
    
    H --> I[playTimer.Tick 타이머 수행]
    I --> J{weightResult2 > 5g?}
    J -- No --> K[대기 상태 유지]
    J -- Yes --> L[lbNowWeight에 실시간 표시 노란색 배경]
    L --> M[weightBuffer에 추가]
    M --> N{버퍼에 3개 이상 존재?}
    N -- No --> K
    N -- Yes --> O{{안정 여부 검사}}
    O -- No --> K
    O -- Yes --> P[GetStableWeight 로 평균값 추출]
    P --> Q[weight_compare_improved 호출]
    Q --> R{{무게 일치?}}
    R -- Yes --> S[lbWeight = 무게 일치]
    R -- No --> T[lbWeight = 무게 불일치]
    T --> U[zeroSet = False → ZeroTimer 재시작]
    
## ⚙️ CAS SWII → QW 시리즈 전환 및 코드 수정 ### 📌 변경 배경 * 기존 **CAS SWII‑15CS 저울** 사용 → 통신 방식: `9600 Baud / RS-CAS 모드 / ENQ→ACK→XON→STX~ETX` * 현재는 **QW 시리즈 저울**로 교체 → 통신 방식: `4800 Baud / ASCII Code / 8N1`, 단방향 출력, **명령 프로토콜 없음** ### 🛠️ 주요 변경 사항 #### 1. **저울 방식 분리 처리** | 저울 종류 | 통신 방식 | 처리 방식 | | -------- | --------------- | ------------------------------ | | CAS SWII | 명령 기반 (ENQ→ACK) | `scaleModule → MeasureScale()` | | QW 시리즈 | 단방향 ASCII 출력 | `QWSerialPort_DataReceived` | #### 2. **저울 모드 선택 기능 추가** * **라디오 버튼 추가: `rdbWeightQW`** * 해당 라디오 버튼의 선택 여부로 처리 방식 분기 --- ## ⚙️ QW 시리즈 저울 설정 방법 (매뉴얼 기준) QW 저울을 **RS-232 단방향 ASCII 출력 모드**로 사용하기 위해 다음 설정이 필요합니다: #### ✅ 설정 방법 1. **\[설정 키] + \[인쇄 키] 동시에 누르기** → 설정 모드 진입 2. 메뉴 항목 중 **`P Cont`(Print Continuous)** 항목 선택 3. 값 의미: **RS-232 인터페이스 사용 / 중량을 연속 출력** * 자동 합산 기능은 억제(disabled)됨 #### 📌 이 설정이 필요한 이유 * QW 저울은 명령 프로토콜 없이 **자동으로 중량을 ASCII 코드로 송신** * `P Cont`가 꺼져 있으면 **수동 출력** 상태라 데이터가 오지 않음 * 반드시 연속 전송 모드(`P Cont = on`)로 설정해야 **실시간 수신 가능** #### 📖 참고 매뉴얼 - [QW 저울 매뉴얼 보기]([QW-I 사용설명서(완료).pdf](/attachments/489e4f43-aec8-4700-b5c6-e41a43bb1fcd)) --- ## 🧩 하드웨어 연결 변경 사항 * QW 시리즈 저울은 RS-232 통신 시 **TX/RX 핀 교차 연결 필수** * 따라서 **D-Sub 9핀 Male to Female, Cross 타입 케이블** 구매 필요 > ✅ 일반 연장선(X) → **크로스 케이블(O)** 이어야 저울 데이터 수신 가능 #### 구매 사양 요약: * **커넥터**: D-Sub 9핀 (Male ↔ Female) * **배선 방식**: Cross (핀 2↔3, 핀 3↔2) * **용도**: RS-232 장비 간 통신 (저울 ↔ PC) --- ### 참고: 재측정 흐름도 ```mermaid flowchart TD A[QWSerialPort_DataReceived 발생] --> B[데이터 수신 ReadExisting] B --> C[줄 단위로 분리 vbCr, vbLf] C --> D[각 줄에서 무게 파싱 ST,GS, 0.000 kg] D --> E[가장 큰 무게값 선택 → weightResult2에 저장] E --> F{weightResult2 = 0?} F -- Yes --> G[zeroSet = True] F -- No --> H[zeroSet = False] H --> I[playTimer.Tick 타이머 수행] I --> J{weightResult2 > 5g?} J -- No --> K[대기 상태 유지] J -- Yes --> L[lbNowWeight에 실시간 표시 노란색 배경] L --> M[weightBuffer에 추가] M --> N{버퍼에 3개 이상 존재?} N -- No --> K N -- Yes --> O{{안정 여부 검사}} O -- No --> K O -- Yes --> P[GetStableWeight 로 평균값 추출] P --> Q[weight_compare_improved 호출] Q --> R{{무게 일치?}} R -- Yes --> S[lbWeight = 무게 일치] R -- No --> T[lbWeight = 무게 불일치] T --> U[zeroSet = False → ZeroTimer 재시작] ```
kje97 added the
enhancement
label 2025-06-24 09:21:06 +09:00
kje97 changed title from 저울 변경 대응: CAS SWII → QW 시리즈 전환 및 코드 수정 to 저울 변경: CAS SWII → QW 시리즈 전환 및 코드 수정 2025-06-24 09:21:33 +09:00
kje97 closed this issue 2025-06-24 15:56:46 +09:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jionmt-sw/shpmt-OrderPackingProcessor#8
No description provided.