This tutorial outlines how to generate MIL-STD-130 UID Marking labels using Code 128 or ECC200 Data Matrix in conjunction with the IDAutomation Barcode Label Software, or IDAutomation Barcode Fonts.
- UID Marking Label Implementation
- UID Label Generation with Label Design Software
- DOD UID & IUID Website
- MIL-STD-130N Specification PDF Download
MIL-STD-130, UID, and IUID Marking Label implementation requires specific formatting and placement. This tutorial focuses specifically on generating the barcode according to MIL-STD-130N.
UID Marking Label Implementation
There are several types of UID Marking Labels that may be created within the MIL-STD-130 specification. This tutorial uses the GS1 2D Data Matrix symbol in Fig. 8 from the MIL-STD-130N specification. This label will encode the following fields as well as GS1 AIs.
AI | Data | Field Type | |
UII | 8004 | 06141419999960MH80312 | Constant |
Serial Number | 21 | MH80312 | Incrementing |
SPLR ID GS1 | 95 | 0614141 | Constant |
Part Number | 240 | 99999 | Constant or Incrementing |
This specific UID Label requires the data to be encoded in ISO/IEC 15434 Format “05” which defines a specific header, group separator and trailer.
Popular ISO/IEC 15434 Formats
Format | Header | Group Separator | Trailer | Purpose |
05 | [)><RS>05<GS> | <GS> | <RS><EOT> | GS1 AIs |
06 | [)><RS>06<GS> | <GS> | <RS><EOT> | ASC MH 10 AIs |
12 | [)><RS>12<GS> | <GS> | <RS><EOT> | Structured data |
Therefore, the data above would be encoded as:
[)><RS>05<GS>800406141419999960MH80312<GS>21MH80312
<GS>950614141<GS>24099999<RS><EOT>
The <RS>, <GS>, and <EOT> commands defined above represent non-printable ASCII characters 30, 29, and 4. ASCII characters may be encoded with ApplyTilde in IDAutomation Data Matrix products. The complete text string to use as the “data to encode” for any IDAutomation product, such as the Data Matrix Font and Encoder, would be:
[)>~d03005~d029800406141419999960MH80312~d02921MH80312~d029950614141~d02924099999~d030~d004
When generating UID symbols, IDAutomation recommends testing the result with the Barcode Decoder App to view the non-printable <RS>, <GS>, and <EOT> characters. When testing with a physical scanner, IDAutomation’s Free Barcode Scanner ASCII String Decoder may be used. Implementation and testing may be easily accomplished with IDAutomation’s Online Barcode Generator for Data Matrix with the following URL:
https://www.bcgen.com/demo/IDAutomationStreamingDataMatrix.aspx?MODE=0&D=[)>~d03005~d029800406141419999960MH80312~d02921MH80312
~d029950614141~d02924099999~d030~d004&PT=T
Generating UID Labels
- The IUID is encoded in the Data Matrix barcode type, which is offered in the IDAutomation Barcode Label Software Pro. Download the demo or purchase online, then install it.
- Open the Label Software. Ensure no objects are selected on the label and that it is blank, then choose Edit – Properties, which opens the label properties dialog.
- Choose the Label Fields tab.
Add the field names from the chart above with appropriate data. - Choose the Rename Field link to rename each field so it may be properly referenced within the label. Notice that the SerialNumber field is an incrementing number, which cannot contain text, therefore, the AI and text portion of “21MH” will be added in the formula as the other AIs are.
- Choose the Label Fields tab.
- To make formulas easier to edit, enter the Header, GS and EOT as fields of ISO/IEC 15434 Format 05 on the Label Fields 2 Tab.
- Choose the Data Matrix icon to add it to the label, right-click on the Data Matrix object and choose Properties.
- Choose the DataMatrix tab; enable Apply Tilde and ensure ASCII Mode is selected as the encoding mode.
- Choose the Value tab. Change the Value Type to Formula and enter the VB script below. Notice that each row begins with a header or GS, the AI and a data field.
LabelField(Header) & "8004" & LabelField(UII) & LabelField(GS) & "21MH" & LabelField(SerialNumber) & LabelField(GS) & "95" & LabelField(SPLR) & LabelField(GS) & "240" & LabelField(PartNumber) & LabelField(RS) & LabelField(EOT)
- Select Apply. If errors occur, check the VB script formula syntax. Test scan the result with a Data Matrix Barcode Imager and verify that the correct ASCII characters are encoded with the Barcode Scanner ASCII String Decoder. The result from label 1 should scan as:
[)><RS>05<GS>800406141419999960MH80312<GS>21MH80312 <GS>950614141<GS>24099999<RS><EOT>
- The barcode should now be complete. When the labels are advanced or printed, the barcode should change. The VB script formula may be changed accordingly. After a successful print job, the serial number field is advanced to the last printed label so that the same number will not print twice. This unique serial number memory functionality is provided in all versions of the
IDAutomation Barcode Label Software. - Human readable text interpretations may be created in the same way, when necessary, with a text object on the label. In text interpretations, the Header, GS, and EOT should not be included and the VBCRLF should be used to create a new line.
"(8004) " & LabelField(UII) & VBCRLF & "(21MH) " & LabelField(SerialNumber) & VBCRLF & "(95) " & LabelField(SPLR) & VBCRLF & "(240) " & LabelField(PartNumber) & VBCRLF
- The label used in this example may be downloaded and used in the Pro version of the IDAutomation Barcode Label Software.
- If MOD 10 calculations need to be performed within the formula, consider the MOD10() macro provided with the Barcode Label Software.
- When generating UID symbols, IDAutomation recommends testing the result with the Barcode Decoder App to view the non-printable <RS>, <GS>, and <EOT> characters.
Code-128 UID Marking Label Generation
- Using the information from the chart above, the AI of 8004 encodes the GIAI in Code 128 according to the GS1 128 section of the IDAutomation Code 128 Barcode FAQ.
- Therefore, the complete text string to use as the “data to encode” for any IDAutomation product, such as the Code 128 Font Package, would be:
~214800406141419999960MH80312 - Open the Barcode Label Software application and add a linear barcode object. Choose the Encoding tab and enable the Apply Tilde feature.
- Choose the Value tab. Change the Value Type to Formula and enter the VB script below.
"~214" & "8004" & LabelField(UII)
- Test scan the result with the IDAutomation USB Scanner or another compatible scanner. The result should scan as:
]C1800406141419999960MH80312 - The label used in this example may be downloaded and used in the Pro version of the IDAutomation Barcode Label Software.
ATA and CEA Marking Label Generation
- Generation of Data Matrix ATA and CEA labels are the same as described above, except different ISO/IEC header formats are used. For example, the complete text string to use as the “data to encode” for any IDAutomation product, such as the Data Matrix Font and Encoder, for the Data Matrix symbol in Figure 5 would be:
[)>~d03012~d029MFR1U2R7~d029SEQ MH80312P~d029PNOF100200300400AP~d030~d004
- For linear barcodes, the FNC1 characters are not included in the data encoded. For example, the first linear barcode in figure 5 of the MIL-STD-130N specification is encoded just as it reads
MFR 1U2R7.
MIL-STD-130 Refinements and Versions
- MIL STD 130L which laid the foundation for unique item identification (UID) and machine-readable information (MRI)
- MIL STD 130L released in 2004 provided improved definitions for the quality standards of the linear barcode and 2D Data Matrix UID Marking.
- MIL STD 130M in 2005 made significant improvements in further defining approved implementation guidelines for UID Markings.
- MIL STD 130N is the latest specification for implementation of UID and IUID, including Change 1, using Data Matrix ECC200 and Code-128 as of November, 2012.
When generating UID symbols, IDAutomation recommends testing the result with the Barcode Decoder App to view the non-printable <RS>, <GS> and <EOT> characters.