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¶
- The Zebra print system sends a ZPL print string to GateKeeper on TCP port 6101.
- The ZflImporter parses the ZPL message and extracts the EPC from the configured field (default:
^FN010). - The EPC is added to an internal queue (FIFO, up to 12 items).
- The UI shows the expected EPC and the queue count (e.g., "Expected EPC (+2)").
- Validation auto-starts if not already running.
- A case passes the photo-eye, triggering the FS40 scanner.
- The FS40 reads the 2D barcode on the case.
- The system compares the scanned barcode to the expected EPC at the front of the queue.
- If they match, the case passes. If they differ, the case fails.
- The EPC is removed from the queue regardless of pass or fail.
- 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¶
- Check the diagnostics panel for FS40 connection status.
- Check the UI for queue status and expected EPC display.
- Look at the log file for entries with
[ZFL-VALIDATION]prefix: MATCH CONFIRMED-- successful matchMISMATCH-- shows expected vs. scanned values with lengths- Check
[ZFL]log entries for importer issues (ZPL parsing, TCP connections). - Check
[FS40]log entries for scanner issues (connection, triggers, reads). - 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)