zpl.tools
RFID

^RI - Read RFID Tag ID

Reads a tag's unique factory identifier and returns it to the host or to a field.

Each transponder carries a serial number that the manufacturer writes into the chip, and no command can change it. ^RI reads it in hexadecimal into a field number, and the format can then print it or return it to the host. This is how a label refers to the tag below it. ^RU builds a shorter serial number from the same identifier where a full TID is too long.

Syntax

^RI#,s,r,m

Support

Recognised, deliberately skippedparsed: none · state: none · rendered: none

Accepted and skipped, because it configures the printer rather than the label. It cannot change the rendered output, and Labelary skips it too.

Reads the identifier burned into the transponder at manufacture. With no transponder, the renderer reads nothing. The renderer does not parse this command. It reports IGNORED_COMMAND at info severity, which does not reach X-Warnings. Labelary does not implement it either, so neither engine returns tag data. — not pinned by a test

Labelary does not implement it either, so there is no parity reference.

Parameters

#Field numberoptional · integer

The ^FN number that receives the data read, so a field on the label or an ^HV can print it. The identifier returns in hexadecimal.

Default
0
Accepted range
0 to 9999
Invalid value
not documented, and we have not measured it. The renderer does not parse this command or validate its arguments. The guide does not state what a printer does with an out-of-range value.
Test coverage
No test at the minimum, maximum or one step outside the range.
sData orderoptional · one of a set

Byte order of the returned identifier. The guide restricts this parameter to the R110Xi HF and R2844-Z printers.

Default
0
Invalid value
not documented, and we have not measured it. The renderer does not parse this command or validate its arguments. The guide does not state what a printer does with an out-of-range value.
Test coverage
No documented value is exercised by a test (0, 1).
0
Most significant byte first for Tag*It and PicoTag; least significant byte first for I*code and ISO 15693. (default)
1
Reverse that order.
rNumber of retriesoptional · integer

How many times the printer retries the operation on a single tag before it stops.

Default
0
Accepted range
0 to 10
Invalid value
not documented, and we have not measured it. The renderer does not parse this command or validate its arguments. The guide does not state what a printer does with an out-of-range value.
Test coverage
No test at the minimum, maximum or one step outside the range.
mMotionoptional · one of a set

Whether the media feeds once the operation completes.

Default
0
Invalid value
not documented, and we have not measured it. The renderer does not parse this command or validate its arguments. The guide does not state what a printer does with an out-of-range value.
Test coverage
No documented value is exercised by a test (0, 1).
0
Feed the label after the operation. (default)
1
No feed. Other commands in the format can still cause one.

Behavior

As for ^RA, the field number connects the read to an ^FN. The printer prints that field only above the programming position.

Two printer families do not agree which end of the identifier is first, and the data-order parameter selects it. The guide restricts that parameter to the R110Xi HF and the R2844-Z. No transponder is present, so the renderer reads nothing and the field that ^RI feeds stays empty.

Tested behavior

Example

The guide's example, with a caption added so the label is not blank:

^XA
^FO50,50^A0N,40,40^FDTag ID^FS
^FO50,110^A0N,40,40^FN0^FS
^RI0,,5^FS
^HV0,,Tag ID:^FS
^XZ

Open in viewer