본문 바로가기
hardware_integration/zipher

🧾Zipher 프로토콜 - 명령어와 바코드라벨 출력

by 죄니안죄니 2025. 4. 7.

Zipher 프로토콜은 산업용 라벨 프린터, 생산 라인 제어 시스템 등에서 사용된다. 
Vue/Java 시스템이 프린터에 직접 연결하려면 프토토콜대로 보내야 알아듣고 실행하게 된다.

프로토콜에서 중요한 로직은 프린터에 잡 선택, 데이터 설정, 인쇄 명령 등을 보내는 것이다. 

 

외부 장비나 SCADA 시스템이 프린터에 인쇄 작업을 보내거나, 상태를 모니터링해야 할 때 이 프로토콜을 통해 제어한다.


🧾 자주 쓰이는 명령어

명령어  설명
Job 선택 명령어
SEL,
SLA,
SLI
작업(Job) 선택 (JabName : 프린터에 미리 등록된 작업 이름/ 필드는 잡에 연결된 라벨필드)
SELㅡJob 이름만 선택 (파라미터 없이 단순 선택) select
SLAㅡJob 선택 + 필드 이름에 데이터 지정 (가장 많이 쓰임) by Assigned field names 
SLI ㅡJob 선택 + 인쇄 수량 (Allocation 포함)
  SLA|WeightLabel|product=한라봉|weight=12.34kg\r
잡네임 'WeightLabel'에 대한 필드 product, weight 에 각각 한라봉, 12.34kg을 지정 (이후 출력PRN)
JDU, JDA, JDI 현재 선택된 작업의 필드 값 업데이트
JDUS, JDAS, JDIS 위 작업 + 값을 영구 저장
PRN 현재 작업 인쇄
GST 프린터 상태 요청 (현재 잡, 에러 상태 등)
CAF, CAW, CEM 에러/경고 전체 또는 특정 항목 클리어
CAF 모든 오류 초기화
CAW 모든 경고 초기화
GFT, GWN 현재 발생 중인 에러/경고 조회
GFT 현재 발생 중인 Fault 조회
GWN 현재 발생 중인 Warning 조회
SPD, GPD 인쇄 밀도 설정/조회
SRC, SFS 시리얼화 버퍼 상태 확인
GJD Get Job Data

 

✅ 선택 가능한 job 목록을 불러오는 방법 ? 

그런건 명령어에 없다. 

📌  대신, job 목록 확인하는 방법

  • CLARiTYConfig에서 현재 등록된 Job 이름들을 확인
  • 또는 장비 화면(UI)에서 Job 목록을 확인한 후, 백엔드에 고정 목록으로 저장하거나 설정 파일로 관리

✅ 프린터에 저장된 라벨 디자인(job)의 필드 목록을 불러오는 방법? 

GJD\r

응답 예시 

JDL|2|label=사과|weight=12.3kg\r
Job Data List|필드수|필드1=값1|필드2=값2

🧪 요청 응답 예시

»SLA|Job1|Line1=Hello|Line2=World|<CR>
«ACK<CR>     ← 성공적으로 Job1 선택 및 변수 설정

»PRN<CR>
«ACK<CR>     ← 현재 작업 인쇄 성공

>>GST\r
<<STS|3|0|WeightLabel|100|300\r
응답|상태코드|에러없음|현재작업명|인쇄수량현재|전체

»GFT<CR>     ← 오류 상태 조회
«FLT|2|1001|0|No Cartridge|1005|0|Print Limit Exceeded|<CR>

>>CAF\r      ← 모든 Fault 초기화. 오류 클리어

✅ 3. 명령어 조합 예시 (Zipher 문서 기반)


 

목적 명령어 형식 예시
잡 선택 `SEL JobName
필드명 지정 `SLA JobName
출력 PRN PRN
상태 확인 GST GST → `STS
에러 초기화 CAF, CAW, `CEM 1005`

✅ 4. 실전 구성 팁

  • 인쇄 명령은 반드시 SEL → PRN 순서로 보내야 함
  • 응답은 항상 ACK\r 또는 ERR\r 형식이므로, 응답 파싱을 꼭 넣어야 함
  • \r(Carriage Return) 은 반드시 붙여야 인식됨 (\n 안 됨)

 


✅ 프린터에 Job(작업)을 등록하는 방법

Zipher 프린터는 Job 등록을 다음 중 하나로 합니다:


✅ 1. CLARiSUITE / CLARiSOFT 라벨 디자인 소프트웨어 사용 (공식 방법)

Zipher는 Domino 그룹의 장비이기 때문에

Job(라벨 디자인)을 만드는 공식 툴은 CLARiSOFT / CLARiSUITE입니다.

 

단계  설명
① CLARiSOFT 실행 라벨 템플릿 새로 생성
② 필드 삽입 예: weight, productName, date 같은 변수 필드 추가
③ 텍스트 위치/크기 지정 x, y 좌표, 글꼴 등 디자인 구성
④ 파일 저장 .JOB 파일로 저장 (예: WeightLabel.job)
⑤ 프린터에 업로드 Ethernet 또는 USB 메모리로 업로드 가능 (또는 CLARiNET 서버 통해)

👉 등록된 Job 이름은 Zipher 명령어에서 사용하게 됩니다:

SLA|WeightLabel|weight=12.3kg\\r

✅ 2. USB를 통해 직접 업로드

  1. CLARiSOFT에서 .JOB 파일 저장
  2. USB에 복사
  3. 프린터에 USB를 연결
  4. 프린터에서 "Job Load" 메뉴 진입 → USB에서 Job 선택
  5. 저장 및 적용

📌 이 방법은 인터넷이나 서버 없이도 현장에서 사용 가능해서 가장 흔하게 씁니다.


✅ 3. CLARiNET 서버를 통한 원격 배포 (네트워크 장비 환경)

  • 대규모 공장에서는 CLARiNET 서버를 통해 프린터에 Job 파일을 원격 배포함
  • 프린터가 자동으로 특정 경로의 .job 파일을 로드함

이 방식은 IT 기반 MES나 ERP 시스템과 연동된 환경에서 자주 사용됩니다.


✅ Job 내부에 있는 요소들

  • Job 이름 (WeightLabel)
  • 출력 영역 좌표(x, y)
  • 폰트 및 글자 크기
  • 필드 이름 (product, weight, code 등)
  • 고정 문자열 or 변수 필드
  • 바코드, QR코드 등 그래픽 요소

✅ Job을 등록했는지 확인하는 방법

  • 프린터 전면 UI에서 Job List, Select Job 항목 확인
  • CLI 또는 명령어로는 GST (상태 요청) 시 현재 선택된 작업명 확인 가능:
GST\r
→ STS|3|0|WeightLabel|123|456\r

✅ 결론

해야 할 일  설명
라벨 템플릿 디자인 CLARiSOFT에서 생성
Job 파일 저장 .job 확장자
프린터에 등록 USB / Ethernet / CLARiNET 통해 업로드
명령어에서 사용 `SLA

💬 혹시 지금 CLARiSOFT 설치 파일이 없는 상태거나,

샘플 .job 파일이나 필드 구성 예시가 필요하시면

그에 맞춰 설명도 도와드릴 수 있어요!

 


CLARiSOFT / CLARiSUITE Videojet에서 제공하는 패키지 코딩 및 라벨링 소프트웨어로, 일반적으로 유료 라이선스 필요

 

바코드를 출력하기 위해서는 

라벨 디자인(.job파일) 안에 바코드가 이미 설정되어 있어야 하고,

그 바코드에 채워질 내용을 field 값으로 지정해서 전송하는 구조

바코드 필드에 값을 지정하면 프린터가 자동으로 해당 위치에 바코드를 출력함. 

✅ 예: 바코드용 필드가 barcode인 경우

SLA|ProductLabel|barcode=8801234567890\\r
PRN\\r

이렇게 보내면:

  • ProductLabel.job 라벨 파일 안에
  • 바코드 영역이 있고
  • 해당 영역은 barcode라는 변수 필드에 연결되어 있고
  • 그 안에 8801234567890이라는 값을 출력하게 됩니다

✅ CLARiSOFT에서 바코드를 설정할 때 중요한 점

항목설정  내용
바코드 종류 EAN13, Code128, QR 등 선택 가능
데이터 입력 “변수 필드”로 설정해야 함 (barcode, product_code 등)
필드 이름 나중에 SLA 명령어에서 사용하는 key가 됨
고정값 vs 변수 반드시 입력 형식: 사용자 필드(Variable) 로 설정해야 외부 데이터로 채울 수 있음

✅ 바코드 종류별 예시 (모두 SLA 명령어로 데이터 입력 가능)

바코드 종류 예시 데이터 SLA 명령어 예시
EAN13 8801234567890 `SLA
Code128 ABCD-2024 `SLA
QR 코드 https://naver.com `SLA

바코드 자체는 라벨 디자인에 설정되어 있고,
프로그래밍으로는 그 안에 들어갈 데이터만 보내는 구조입니다.


✅ 실무 예시 – 한글 텍스트 + 바코드 조합 출력

SLA|ProductLabel|product=한라봉|barcode=8801234567890\\r
PRN\\r
  • ProductLabel 라벨 디자인에는 product와 barcode라는 필드가 있고
  • product는 텍스트 필드, barcode는 Code128으로 설정되어 있다면
  • 한글 텍스트와 바코드가 함께 인쇄됩니다

✅ 정리

항목 설명
바코드 출력 준비 라벨 디자인(.job)에 바코드 객체 + 변수 필드 연결 필요
데이터 전송 방식 `SLA
출력 명령 반드시 PRN\r으로 인쇄 시작
주의 필드명이 라벨 설계와 정확히 일치해야 함

 

 

참고

Java에서 SLA 명령 생성하는 헬퍼 유틸 클래스 

 

댓글