Skip to content

ZFL (Zebra Fixed Label) Validation Mode

What This Mode Does

ZFL mode compares a 2D barcode scanned by a Zebra FS40 fixed scanner against an expected EPC value received from a Zebra print system. When a label is printed, the print system sends a ZPL message containing the expected barcode data. The FS40 scanner then reads the actual barcode on the label, and the system checks if they match.

Sites Using This Mode

  • Zebra Futures Lab

Required Hardware

  • Zebra FS40 fixed scanner (TCP connection)
  • ZPL print system (sends TCP messages to GateKeeper on port 6101)
  • Photo-eye sensor (wired to FS40 external trigger input)

How It Works: Step by Step

  1. The Zebra print system sends a ZPL print string to GateKeeper on TCP port 6101.
  2. The ZflImporter parses the ZPL message and extracts the EPC from the configured field (default: ^FN010).
  3. The EPC is added to an internal queue (FIFO, up to 12 items).
  4. The UI shows the expected EPC and the queue count (e.g., "Expected EPC (+2)").
  5. Validation auto-starts if not already running.
  6. A case passes the photo-eye, triggering the FS40 scanner.
  7. The FS40 reads the 2D barcode on the case.
  8. The system compares the scanned barcode to the expected EPC at the front of the queue.
  9. If they match, the case passes. If they differ, the case fails.
  10. The EPC is removed from the queue regardless of pass or fail.
  11. The result is displayed for 20 seconds, then the UI reverts to show the next expected EPC.

EPC Queue

The ZFL conveyor uses a "racetrack" design where 5-6 boxes can be on the conveyor at the same time. The EPC queue handles this:

Detail Value
Maximum queue size 12 EPCs
Matching order Strict FIFO (first in, first out)
On queue overflow Oldest EPC is dropped (warning logged)
Result display time 20 seconds before reverting to next EPC

UI Display: - Waiting for EPC... -- Queue is empty, waiting for ZPL message - Expected EPC -- One EPC in queue - Expected EPC (+2) -- Three EPCs in queue (1 shown + 2 behind)

Clear Queue Button: Visible only in ZFL mode. Shows count (e.g., "Clear Queue (3)"). Clears all pending EPCs immediately.

What Makes a PASS

  • Expected EPC data received from ZPL message
  • FS40 scanner reads a valid barcode
  • Scanned barcode matches the expected EPC (comparison is case-insensitive by default)

What Makes a FAIL

Error Message What It Means What to Check
Missing expected EPC data from ZFL importer No ZPL message received Is the print system running? Is port 6101 open?
Missing expected EPC in production data ZPL message arrived but EPC could not be parsed ZPL format correct? Check ^FN010 field
No barcode data from FS40 scanner (0 barcodes) Scanner did not read anything (NOREAD) Barcode quality, scanner alignment, photo-eye timing
No valid barcode from FS40 scanner Scanner read something but no usable 2D barcode found Barcode type mismatch, scanner settings
EPC mismatch: expected '{X}', scanned '{Y}' Scanned barcode does not match expected EPC Wrong label on case? Labels out of order?

Common Failure Reasons and What to Check

Symptom Likely Cause What to Do
"Waiting for EPC..." never changes ZPL messages not arriving Check print system, firewall on port 6101
"Missing expected EPC" errors ZPL format changed, wrong field number Verify ZPL contains ^FN010^FD...^FS pattern
Consistent NOREAD from scanner Scanner misaligned, barcode too far away Adjust FS40 position, check focus
EPC mismatch errors Labels and cases out of sequence Clear queue and resync, check conveyor flow
Queue keeps filling up Scanner not reading, labels accumulating Check scanner connection and trigger

Troubleshooting Steps

  1. Check the diagnostics panel for FS40 connection status.
  2. Check the UI for queue status and expected EPC display.
  3. Look at the log file for entries with [ZFL-VALIDATION] prefix:
  4. MATCH CONFIRMED -- successful match
  5. MISMATCH -- shows expected vs. scanned values with lengths
  6. Check [ZFL] log entries for importer issues (ZPL parsing, TCP connections).
  7. Check [FS40] log entries for scanner issues (connection, triggers, reads).
  8. If labels are out of sequence, use the Clear Queue button to reset, then rescan.

Log Search Reference

Log Prefix What It Shows
[ZFL-VALIDATION] EPC comparison, pass/fail results
[ZFL] ZPL message parsing, TCP listener status
[FS40] Scanner connection, trigger, barcode reads

When to Escalate

  • FS40 scanner shows disconnected and does not reconnect
  • ZPL messages arriving but EPC cannot be parsed (format issue)
  • Persistent sequence mismatches even after clearing the queue
  • Port 6101 not accepting connections (firewall or binding issue)