ONYX - 9.0 - Utilisation
Designer - Utiliser des étiquettes RFID avec des imprimantes Zebra
Sommaire
Préambule
Cette documentation a pour but de décrire comment concevoir une maquette permettant d'inscrire dans la puce d'une étiquette RFID des informations contenues dans un fichier d'entrée (spool texte ou XML), avec une imprimante Zebra compatible RFID.
Il est a noter que selon le type d'imprimante et/ou d'étiquette, la syntaxe des instructions Zebra peut être légèrement différente. Mais dans tous les cas, le principe reste exactement le même.
Pour connaître la syntaxe exacte à apporter, se reporter à la documentation du constructeur de l'imprimante.
Syntaxe de la commande ZPL
Pour déclencher l'écriture sur la puce RFID d'une étiquette, il faut transmettre 2 instructions ZPL à l'imprimante Zebra :
- La structure du message (masque)
- L'écriture du message
La structure du message
La commande ZPL permettant de spécifier la structure du message à écrire sur l'étiquette RFID est définie de la manière suivante :
^RBlongueur en bits,nb bits max valeur 1[,nb bits max valeur2...]
Exemple : ^RB64,2,3,14,20,25
Cette commande spécifie que le message RFID sera transmis sous la forme de 64 bits, regroupés en 5 paquets de respectivement 2, 3, 14, 20 et 25 bits.
Nombre de bits | Valeur maximale | |
---|---|---|
Valeur 1 | 2 | 3 |
Valeur 2 | 3 | 7 |
Valeur 3 | 14 | 16383 |
Valeur 4 | 20 | 1048575 |
Valeur 5 | 25 | 33554431 |
L'écriture du message
La commande ZPL permettant d'écrire le message sur l'étiquette RFID est définie de la manière suivante :
^RFW,E^FDvaleur1[,valeur2...]^FS
L'exemple suivant est une commande ZPL permettant d'écrire un message constitué de 5 valeurs dans la puce de l'étiquette RFID, selon la structure définie précédemment.
Exemple : ^RFW,E^FD2,5,5384,48547,13524341^FS
Dans cet exemple, les 5 valeurs sont respectivement 2, 5, 5384, 48547 et 13524341
Application avec Mapping Designer
Afin de pouvoir écrire une valeur dans la puce de l'étiquette RFID, nous devons utiliser l’objet « Commands » dans la partie MAP.
Cette zone est non imprimable et permet juste d’envoyer une instruction selon le langage désiré (PCL, ZPL, etc…)
Une fois la zone dessinée, renseignez bien le type de commande que vous souhaitez envoyer. Dans notre cas, comme nous souhaitons faire une étiquette Zebra, nous cocherons l’option ZPL et nous cocherons également « Enable » afin de rendre la commande effective.
Elle ne sera interprétée que dans le cas d'une conversion XPS vers Zebra.
Au niveau du paramètre « Pré-imprimé » dans les propriétés de l'objet "commande", nous allons entrer les 2 instructions vues précédemment, concaténées sous la forme d'une seule ligne.
Avec cette méthode, les données encodées dans la puce RFID sont toujours les mêmes, car paramétrées "en dur" dans la zone "commande". Nous allons donc voir ci-après comment utiliser les données du fichier en entrée pour rendre le message RFID dynamique.
Données dynamiques provenant directement du fichier en entrée
Si le fichier en entrée contient déjà les valeurs du message à encoder sous la forme d'une chaine de caractères contenant les valeurs séparées par des virgules, alors la zone "commande" peut être paramétrée afin de récupérer directement ces valeurs dans le fichier (comme une zone imprimable). Il suffit alors de renseigner les zones pré-imprimé et post-imprimé avec le reste des instructions Zebra permettant l'écriture RFID :
Exemple de contenu du fichier (en XML) : <field name="message_rfid>2,5,5384,48547,13524341</field>
Configuration de la zone commande :
Champ XML : message_rfid
Pré-imprimé : ^RB64,2,3,14,20,25^RFW,E^FD
Post-imprimé : ^FS
Données dynamiques en utilisant des zones mémoires
Création des zones mémoires
Si les valeurs présentes dans le fichier en entrées ne sont pas regroupées (c'est-à-dire qu'elles se trouvent à différents endroits du spool texte ou dans différentes balises XML), il va falloir travailler avec des zones mémoires afin de recomposer la chaine de caractère nécessaire à la constitution de l'instruction ZPL.
Une fois les zones mémoires initialisées avec les valeurs du fichier en entrée, nous pouvons modifier la commande ZPL afin de les utiliser.
Attention à l'ordre des zones dans la "liste des objets" : les zones mémoires doivent se trouver AVANT la zone "Commande", afin qu'elles soient utilisables par cette dernière !
Paramétrage de la commande ZPL afin d'utiliser les zones mémoires
Comme le contenu dynamique sera intégralement issu des zones mémoires, il convient de paramétrer la zone "commande" afin de ne pas aller chercher de valeur dans le fichier. Ainsi, si le fichier en entrée est un spool texte, la longueur de la zone à récupérer dans le fichier doit être à 0. S'il s'agit d'un xml, le paramètre "Champ XML" doit être laissé vide.
Les instructions ZPL, ainsi que les zones mémoires, seront placées dans les paramètres "Pré-imprimé" et "Post-imprimé".
Pré-imprimé : ^RB64,2,3,14,20,25^RFW,E^FD[[VAL1]],[[VAL2]],[[VAL3]],[[VAL4]],[[VAL5]]
Post-imprimé : ^FS
Complément d'informations
Afin de réaliser des tests et vérifier que l'écriture se passe bien, il est possible d'imprimer sur l'étiquette le contenu de la puce RFID grâce à des instructions de lecture et d'impression.
Pour se faire, il suffit de créer une autre zone "commande" contenant ces instructions.
Cette zone "commande" doit est paramétrée comme suit :
Pré-imprimé : ^RB64,2,3,14,20,25^FO50,50^A0N,40^FN0^FS^FN0^RFR,E^FS
Dans cet exemple, le contenu de la puce est lu et imprimé sur l'étiquette aux coordonnées x=50 points et y=50 points (^FO50,50) avec une police Arial d'une hauteur de 40 points (^A0N,40 ).
Attention : le masque de la structure du message (^RB : 64 bits découpé en paquets de 2, 3, 14, 20 et 25 bits) doit être le même que celui ayant permis l'écriture, sinon le contenu de la puce sera interprété différemment à la lecture et le résultat imprimé ne sera pas celui attendu.