Data Matrix

Data Matrix (también conocido como DataMatrix o GS1 DataMatrix) es un código de barras 2D compacto y de alto rendimiento compuesto por módulos en blanco y negro dispuestos en una cuadrícula cuadrada o rectangular.

Los códigos Data Matrix pueden almacenar un gran volumen de datos en un espacio físico pequeño, tienen sólidas capacidades de corrección de errores, son adaptables en tamaño físico y admiten contenido de datos de longitud variable y diferentes esquemas de codificación de caracteres.

Se utilizan en los sectores de logística, manufactura, sanidad, defensa, comercio minorista y electrónica. Esta guía completa ofrece un recorrido técnico por todo lo que necesita saber al desarrollar aplicaciones que crean o decodifican códigos de barras Data Matrix.

¿Qué es un código Data Matrix?

Un código Data Matrix es un código de barras bidimensional que codifica datos de longitud variable y almacena una gran cantidad de información organizada (la estructura de datos) en un pequeño espacio gráfico (el portador de datos).

La diferencia entre portador de datos y estructura de datos
Un portador de datos es una representación gráfica de datos en forma legible por máquina, mientras que una estructura de datos es el formato de datos que se codifica dentro del portador.

Existen varias versiones del estándar técnico general de Data Matrix que definen las especificaciones del portador de datos y de la estructura de datos independientes del sector. Esta guía se basa en la versión más reciente y más utilizada, ECC 200, que está definida en ISO/IEC 16022:2024 — Especificación de simbología de código de barras Data Matrix.

La implementación más comúnmente utilizada de la estructura Data Matrix está definida por las directrices de GS1 DataMatrix reconocidas por ISO/IEC. Si bien es posible utilizar una estructura no estándar dentro de un símbolo Data Matrix, la mayoría de los sectores siguen las directrices de GS1 DataMatrix. Los conceptos y ejemplos presentados en esta guía cubren dichas directrices.

Pruebe el SDK de escáner de códigos de barras de Scandit

Evalúe la decodificación de Data Matrix con una prueba gratuita de 30 días.

Prueba gratuita

Cómo funciona un código Data Matrix

Un código Data Matrix tiene tres componentes del portador de datos:

  • Un patrón de búsqueda con dos partes que forman el perímetro del símbolo. La primera es una línea sólida en forma de L, conocida como el "patrón de búsqueda en L", que define el tamaño (filas y columnas), la orientación y la distorsión (sesgo) del símbolo. La segunda es un patrón punteado en forma de L opuesto al patrón de búsqueda en L, conocido como "Pista de reloj" o "patrón de temporización", que define aún más la estructura del símbolo.
  • Un patrón de datos codificado como una serie de filas y columnas de caracteres de byte dentro del patrón de búsqueda. Este también se divide en una o más regiones de datos que organizan la información. Por ejemplo, la imagen a continuación tiene cuatro regiones de datos. Patrones de búsqueda adicionales bordean cada región de datos.
  • Una zona silenciosa que define un área libre de gráficos alrededor del símbolo, para ayudar a los escáneres a distinguir entre el código y el fondo.

¿Cómo afecta el tamaño del código Data Matrix a la capacidad de datos?

El tamaño y la capacidad de datos de un código Data Matrix están relacionados con la forma del símbolo (cuadrado o rectangular) y el formato de los datos codificados. La siguiente tabla, adaptada de las directrices de GS1, muestra los tamaños de almacenamiento y el número total de combinaciones de tamaño posibles:

Forma

Máximo de caracteres (alfanuméricos)

Máximo de caracteres (numéricos)

Número de filas (mín…máx)

Número de columnas

(mín…máx)

Número de tamaños de símbolo posibles

(p. ej., 10x10, 12x12, etc.)

Cuadrado

2,335

3,116

10…144

10…144

24

Rectangular

71

96

8…16

18…48

6

Esta tabla muestra el número de regiones de datos según el tamaño del símbolo:

Tamaño total del símbolo

Número de regiones de datos

Cuadrado

10×10 a 26×26

1

32×32 a 52×52

4

64×64 a 104×104

16

120×120 a 144×144

36

Rectángulo

8×18

1

12×26

1

16×36

1

8×32

2

12×36

2

16×48

2

¿Cómo se codifican los datos en un símbolo Data Matrix?

Data Matrix admite varios esquemas de codificación de datos, como ASCII, C40, X12, EDIFACT y Base 256.

El estándar GS1 DataMatrix exige que la codificación sea un subconjunto de ISO/IEC 646 (equivalente a la tabla ASCII 256). Sin embargo, la mayoría de las aplicaciones del mundo real utilizan codificación UTF-8 por su esquema de longitud variable y su mayor rango de caracteres.

Las cadenas de datos en un símbolo GS1 Data Matrix incluyen estos caracteres:

Carácter de símbolo de función 1 (FNC1)

Identificador de aplicación (IA)

Cadenas de elementos

Identifica el tipo de símbolo Data Matrix ISO/IEC. Para GS1 DataMatrix, el FNC1 es ]d2.

Números de 2, 3 o 4 dígitos que definen el significado y el formato de los datos subsiguientes.

Por ejemplo:

  • 01 - Número mundial de artículo comercial (GTIN)
  • 10 - Número de lote o partida
  • 15 - Fecha de consumo preferente (AAMMDD)
  • 21 - Número de serie

Consulte Identificadores de aplicación GS1 para obtener la lista completa.

Los datos específicos del artículo de longitud variable.


El código Data Matrix a la derecha tiene la cadena de datos ]d2013456789012345615251231. Esta se desglosa en tres componentes:

  • ]d2: Carácter de símbolo de función 1 (FNC1) que identifica este como un código GS1 DataMatrix.
  • 01 34567890123456: Identificador de aplicación (IA) que define este como un Número mundial de artículo comercial (GTIN), y el GTIN del producto.
  • 15 251231: Identificador de aplicación (IA) que define este como una fecha de consumo preferente, y la fecha en formato AAMMDD.

Corrección de errores en Data Matrix

GS1 DataMatrix emplea el método de corrección de errores Reed-Solomon, que está integrado en el propio símbolo. Esta técnica añade patrones de datos complementarios durante la creación del símbolo, lo que permite la reconstitución de datos dañados. Los códigos Data Matrix permanecen escaneables gracias a este mecanismo incluso si hasta el 30% del área del código está dañada.

El espacio requerido para los códigos de corrección de errores depende del tamaño del símbolo. Por ejemplo, un símbolo de 10×10 utiliza el 62,5% de sus datos para la corrección de errores, mientras que un símbolo de 144×144 consume el 28,5%.

¿Qué es el añadido estructurado en un código de barras Data Matrix?

El "añadido estructurado" es una función de Data Matrix que permite dividir los datos entre múltiples símbolos que son escaneados y reensamblados por el software de escaneo. Definida en ECC 200, esta función se activa mediante un elemento especial en el patrón de datos (233) y permite hasta 16 símbolos separados pero vinculados lógicamente.

La lectura de datos codificados mediante el añadido estructurado requiere un escáner de códigos de barras que admita la función, pueda escanear varias etiquetas a la vez o en rápida sucesión, y agregue los datos de los símbolos individuales.

¿Dónde se utiliza un código de barras Data Matrix?

Gracias a su alta densidad de datos, los códigos de barras Data Matrix son ideales para situaciones que requieren grandes volúmenes de datos codificados en un espacio reducido, como paquetes logísticos, piezas de fabricación, productos sanitarios y artículos de venta al por menor. Algunos ejemplos de aplicaciones incluyen:

  • Componentes electrónicos pequeños donde se deben utilizar códigos de barras diminutos para adaptarse al producto. Por ejemplo, la Alianza de Industrias Electrónicas de EE. UU. (EIA) recomienda etiquetar los componentes con códigos de barras Data Matrix en su CEA-706, Norma de marcado de componentes.
  • Sector sanitario, donde Data Matrix es el único código de barras 2D respaldado por GS1 Healthcare para la identificación de productos en apoyo de la trazabilidad, la farmacovigilancia y la vigilancia poscomercialización.
  • El Departamento de Defensa de EE. UU. utiliza Data Matrix para rastrear equipos bajo sus requisitos de Identificación única de artículos (IUID) .
  • Marcado directo de piezas (DPM), o marcado directo de piezas, donde los códigos de barras Data Matrix se inscriben de forma permanente en superficies sólidas mediante tecnologías como el grabado láser, pasadores de marcado accionados neumáticamente (punzonado, grabadores de scribing e impresoras térmicas. (Imagen a continuación)

¿Qué hace único al código de barras Data Matrix?

En comparación con otras simbologías de códigos de barras, lo que hace únicos a los códigos de barras Data Matrix es su capacidad para almacenar grandes cantidades de datos en un tamaño físico pequeño.

Principales ventajas de Data Matrix frente a otros tipos de códigos de barras

  • Adaptable en tamaño físico (el más pequeño mide alrededor de 2,5 mm cuadrados) y compatible con contenido de datos de longitud variable.
  • Compatibilidad con varios tipos de codificación de caracteres, incluidos los 256 caracteres ASCII, caracteres ISO y caracteres EBCDIC.
  • Capacidad de lectura omnidireccional, que permite a los usuarios escanearlos desde cualquier dirección, especialmente útil en entornos de almacenamiento y puntos de venta minoristas.
  • Su tamaño físico y su capacidad de datos son independientes entre sí, lo que permite elegir entre muchos tamaños de matriz diferentes.
  • Sólidas capacidades de corrección de errores y la capacidad de soportar hasta un 30 % de daños y seguir siendo legible.
  • Se pueden definir diferentes niveles de corrección de errores variando el tamaño del símbolo.

Cómo crear un código de barras Data Matrix

Para crear un código de barras Data Matrix, se necesita un software que codifique los datos proporcionados en el patrón definido por la norma internacional ISO/IEC 16022. Existen múltiples opciones, incluidas aplicaciones generadoras de códigos de barras, herramientas en líneay la codificación del generador por cuenta propia.

El proceso generalmente implica introducir los datos que se desean codificar y seleccionar Data Matrix como tipo de código de barras deseado. La herramienta genera entonces una representación visual del código, que puede descargarse o imprimirse.

Cómo escanear un código de barras Data Matrix

Los códigos de barras Data Matrix pueden escanearse con dispositivos móviles basados en cámara que ejecuten software capaz de decodificar la simbología. Por ejemplo, la mayoría de los sectores utilizan la codificación UTF-8; si el software de escaneo no puede reconocerla y gestionar los casos no estándar, sus resultados pueden ser inutilizables.

El software de escaneo de códigos de barras de Scandit es compatible con los códigos Data Matrix y más de 35 simbologías adicionales. Específicamente para los códigos de barras Data Matrix, el SDK de escáner de códigos de barras de Scandit:

  • Acelera la localización y decodificación de códigos Data Matrix, incluidos símbolos cuadrados y rectangulares, así como símbolos grandes con distorsiones de perspectiva y no lineales.
  • Decodifica Data Matrix inversos códigos de barras que utilizan colores invertidos.
  • Identifica los códigos GS1 para indicar que contienen datos GS1 e incluye una API GS1 Parser para traducir los componentes de datos a formatos utilizables.
  • Permite el escaneo de códigos Data Matrix inscritos en superficies sólidas mediante DPM.

Cómo decodificar un código de barras Data Matrix

Si está desarrollando su propio método de decodificación de Data Matrix, los pasos generales son los siguientes.

Requisitos previos

La imagen del código de barras Data Matrix se captura y almacena con una resolución suficientemente alta para distinguir sus componentes.

Pasos de decodificación

  1. Usando la imagen capturada, identificar el patrón localizador y las zonas de silencio para distinguir el símbolo del fondo.
  2. Convertir la imagen en una representación binaria mediante umbralización, donde los píxeles se establecen en un valor máximo (normalmente 255 para blanco) o mínimo (normalmente 0 para negro) en función de si el segmento de imagen correspondiente está por encima o por debajo de un valor de umbral determinado.
  3. Examinar el patrón de temporización para estimar cualquier distorsión de perspectiva y la información de versión para determinar el tamaño del código Data Matrix.
  4. Leer y decodificar el patrón de datos utilizando el esquema de codificación dado, habitualmente ECC 200. En este esquema, una celda "clara" representa típicamente un 0 y una celda "oscura" representa un 1.
  5. Traducir el flujo de datos a un esquema de codificación utilizable por la aplicación. Si el esquema del símbolo es desconocido, existen dos opciones:
    1. Enviar los datos en bruto a la aplicación.
    2. Convertir los datos de la codificación utilizada en el código a la codificación requerida por la aplicación, que habitualmente es UTF-8.
    3. Si los datos están codificados como "GS1" (el indicador está activado), decodificar las cadenas de elementos y gestionar los errores según las directrices GS1. Un enfoque está ilustrado por el diagrama de flujo de procesamiento de datos en Sección 2.2 de las directrices GS1 DataMatrix.
  6. Enviar los resultados a la aplicación para su posterior procesamiento o visualización.

El SDK de escáner de códigos de barras de Scandit implementa estos pasos por usted y proporciona funciones adicionales basadas en la experiencia de desarrollo y producción en el mundo real.

Por ejemplo, añadir un lector de códigos Data Matrix a su aplicación solo requiere dos pasos tras configurar el software de Scandit. Las siguientes instrucciones se basan en la aplicación de muestra JavaScript, "Barcode Capture Simple Sample":

Primero, habilitar las simbologías requeridas, incluido Data Matrix.

settings.enableSymbologies([
  Symbology.EAN13UPCA,
  Symbology.DataMatrix,
  Symbology.Code39,
  Symbology.Code128,
]);

Una vez que un código de barras es decodificado y reconocido por la biblioteca de Scandit, puede recuperar sus datos implementando la interfaz de escucha de Scandit.

barcodeCapture.addListener({
  didScan: async (barcodeCaptureMode: BarcodeCapture, session: BarcodeCaptureSession) => {
    // Disable the mode to avoid unwanted scan until the user closes the displayed result.
    await barcodeCapture.setEnabled(false);
    // Hide the viewfinder.
    await barcodeCaptureOverlay.setViewfinder(null);

    const barcode: Barcode | null = session.newlyRecognizedBarcode;

    if (!barcode) {
      return;
    }

    const symbology: SymbologyDescription = new SymbologyDescription(barcode.symbology);
    
    showResultScanned: ${barcode.data ?? ""}\n(${symbology.readableName}));
  },
});

Aquí, el método extrae:

  • barcode.symbology—simbología del código de barras como enumeración.
  • barcode.data—datos del código de barras como cadena UTF-8.
  • symbology.readableName—nombre legible por humanos de la simbología.

Cómo Scandit admite los códigos Data Matrix

El SDK de escáner de códigos de barras de Scandit está diseñado para satisfacer las necesidades de los desarrolladores en el mundo real, incluidas estas funciones específicas para los códigos Data Matrix:

  • Extracción de información en formatos UTF-8 y/o datos en bruto.
  • La API GS1 Parser para normalizar y extraer automáticamente cadenas de elementos en un formato legible por humanos sin preocuparse por la codificación o los delimitadores. Esto incluye opciones de ajuste, como la adherencia estricta al estándar ECC 200, la habilitación de extensiones GS1 y la anulación de la longitud de la cadena del Identificador de Aplicación.
  • Habilitación y deshabilitación de simbologías compatibles, incluidos preajustes del sector, para mejorar el rendimiento del escaneo.
  • Extracción de datos de múltiples códigos de barras simultáneamente, con MatrixScan.
  • Compatibilidad con adición estructurada mediante la extracción automática de información de múltiples símbolos cuando esta función está activada. Combinada con MatrixScan, devuelve los datos de todas las etiquetas en un solo escaneo.

El software de Scandit es compatible con todos los principales sistemas operativos, lenguajes de programación, frameworks, sistemas de terceros y dispositivos OEM, incluidos iOS nativo, Android nativo, web/Javascript, React Native, Cordova, Flutter, Kotlin Multiplatform, .NET, Capacitor, Titanium, y Linux/C.

Las condiciones de iluminación pueden variar en entornos de almacén y mantenimiento. El rendimiento de escaneo de Scandit permite que los códigos de barras se escaneen y lean de forma precisa y rápida independientemente de su estado material, la distancia al escáner o las condiciones de iluminación variables.

Pruebe el SDK de escáner de códigos de barras de Scandit

Evalúe nuestra decodificación de Data Matrix con una prueba gratuita de 30 días

Preguntas frecuentes

Loading search...

Please wait a moment