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를 통해 직접 업로드
- CLARiSOFT에서 .JOB 파일 저장
- USB에 복사
- 프린터에 USB를 연결
- 프린터에서 "Job Load" 메뉴 진입 → USB에서 Job 선택
- 저장 및 적용
📌 이 방법은 인터넷이나 서버 없이도 현장에서 사용 가능해서 가장 흔하게 씁니다.
✅ 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 명령 생성하는 헬퍼 유틸 클래스
댓글