Im Zusammenhang mit der Erstellung von Etiketten mit RFID-Transpondern für die Automobilindustrie und ihre Zulieferer stellt sich das Problem, die Nutzdaten in eine Form zu konvertieren, die auf den Chip des Transponders geschrieben werden kann. Dazu hat der VDA (Verband der Automobilindustrie) diverse Dokumente in Form unverbindlicher Empfehlungen veröffentlicht, die der Industrie die Standardisierung passiver RFID-Transponder ermöglichen soll.
Die Industrieempfehlungen VDA 5501, 5509, 5510 und VDA 5520 beschreiben technische Anforderungen an RFID-Transponder und die Gestaltung von Datenstrukturen. Die VDA 5500 fasst Gemeinsamkeiten und damit grundsätzliche Anforderungen zusammen und fungiert damit als übergeordneter, allgemeiner Leitfaden. Die Kenntnis dieser Dokumente wird im folgenden unterstellt.
Die Datenstrukturen für das Beschreiben des RFID-Transponder sind in diversen ISO/IEC Normen festgelegt,
und umfassen neben einigen binär kodierten Informationen auch auch eine 6-Bit Kodierung (ISO 17363-17367) der eigentlichen Nutzdaten. Das sind Konvertierungsaufgaben, die sich mit den Standardwerkzeugen von print2forms nicht oder nur extrem aufwändig realisieren lassen.
Für Fälle, in denen das normale Leistungsspektrum von print2forms nicht ausreicht, gibt es bei der Definition von Formularen ein System-Anfragefeld. Mit Hilfe dieses Feldes kann während der Erzeugung eines Formulars ein beliebiges externes Programm aufgerufen werden, das dann die verlangte Aufgabe übernimmt. Dabei können auch Parameter an das Programm übergeben werden, die die zu lösende Anforderung definieren.
Für die Anforderungen des VDA wurde das Programm p2fVDA geschrieben. Das Programm wurde als sogenannte Systemfeldapplikation geschrieben, die nur innerhalb eines print2forms-Formulars in einen System-Anfragefeld verwendet werden kann.
Das Programm übernimmt dabei die folgenden Aufgaben:
Ein Aufruf der Systemfeldapplikation ohne Parameter über die Kommandozeile (DOS-Box, Eingabeaufforderung, Konsole) zeigt eine kurze Beschreibung, die möglichen Parameter und ein paar beispielhafte Aufrufe an. Auch die Rückkehrwerte des Programms sind aufgelistet:
p2fVDA V1.3 (c) 2019 by SPE Systemhaus GmbH Description: Generates an encoded character string in hexadecimal representation according to VDA document 5500. For use in a system request field of print2forms only. Mandatory program parameters are: -k<key> license key -s<s> String to encode. If it contains spaces complete parameter must be enclosed by double quotes. Optional program parameters are: -a<id> Application identifier according to ISO 15961/2 and ISO 17363-17367: <id> = 0: MB11 is encoded (default), <id> > 0: MB01 is encoded -u User data follows (in encoding MB01) General return codes: 0 - Success -1 - Failed -2 - No permission to run -3 - String longer than 1024 characters -4 - Unknown program option -5 - Program option must start with a minus -6 - Illegal value for application identifier -7 - No string found to encode -8 - No application identifier found -9 - Illegal character in string found n - Windows error code Usage in system request field: p2fVDA -a90 -s4IW0L0XAP68F4050901+GGAB1234 -k\k MB01 is encoded, vehicle p2fVDA -aA2 -s1JUN499774731123456789 -k\k MB01 is encoded, transport unit p2fVDA -aA1 -u -s37SUN12345678999755512300FFFAS+123456 -k\k MB01 is encoded, product tagging, MB11 in use p2fVDA -s1P5221886^2P00C^52PF1F^2Q2^4D15045 -k\k MB11 is encoded p2fVDA -aA3 -s26BUN123456789A153097+CS71489453 -k\k MB01 is encoded, transport item print2forms (R) is a registered trademark of SPE Systemhaus GmbH
Wie anhand der Beschreibung zu sehen ist, wird die Selektion, ob die Konvertierung für MB01 oder für MB11 durchzuführen ist, dadurch getroffen, dass ein Application Identifier als Parameter übertragen wird. Wird -a00 übergeben oder fehlt der Parameter -a, wird für MB11 konvertiert. Für einen Application Identifier ungleich Null wird für MB01 konvertiert. Der Application Identifier wird immer in Form zweier Hexadezimalziffern angegeben. Er wird nicht gegen die Tabelle der entsprechenden ISO/IEC Norm geprüft.
Wird für MB01 konvertiert, kann mit dem Parameter -u angegeben werden, dass noch ein weiterer Block MB11 für das Beschreiben des Transponders folgt. Das entsprechende Bit im Header von MB01 wird dann gesetzt.
Der Parameter -s schliesslich überträgt die zu kodierenden Nutzdaten. Sollten die Nutzdaten Leerzeichen enthalten, ist der komplette Paramter in doppelte Hochkommata einzufassen. Dabei sollte auf die Verwendung der als 'Reserved' gekennzeichneten Zeichen - insbesondere das doppelte Hochkomma - verzichtet werden.
Kodierung der Steuerzeichen nach ISO 17363-17367:
Funktion | Zeichen |
---|---|
<EOT> End of Text | ! |
<FS> Field Separator | # |
<US> Unit Separator | $ |
<GS> Group Separator | ^ |
<RS> Record Separator | _ |
Rückgabewerte des Programms:
Position | Inhalt |
---|---|
1 | Für den Fall, dass der MB01 kodiert werden soll, der Teil der Zeichenkette, der mit in den Bereich der 'Protocol Control' muss. Das sind zwei Byte, kodiert als vier Zeichen lange Folge von Hexadezimalziffern. Im Fall, dass der MB11 kodiert werden soll, ist diese Zeichenkette leer. |
2 | Der Teil der Zeichenkette, der beim MB01 in den Bereich 'EPC' muss, oder beim MB11 in den Bereich 'USER' muss (also inklusive Header). Die Zeichenkette ist eine variabel lange Folge von Hexadezimalziffern. |
3 | Anzahl der kodierten Bytes im Rückgabewert 1. |
4 | Anzahl der Hexadezimalziffern im Rückgabewert 1. |
5 | Anzahl der kodierten Bytes im Rückgabewert 2. |
6 | Anzahl der Hexadezimalziffern im Rückgabewert 2. |
7 | Anzahl der kodierten Bytes im Rückgabewert 1 plus der im Rückgabewert 2. |
8 | Anzahl der Hexadezimalziffern im Rückgabewert 1 plus der im Rückgabewert 2. |
Ist also wie bei Druckern des Herstellers Zebra der MB01 zu programmieren, muss (unter der Annahme, dass das System-Anfragefeld 'VDA' heist) als Zeichenkette '~VDA:1~VDA:2' benutzt werden, da man bei diesen Druckern die beiden Bereiche des MB01 gemeinsam programmieren kann. Die zu programmierende Länge steht dann in '~VDA:7'.
Der unbedingt erforderliche Parameter -k zeigt schon an, dass für die Nutzung des Programms p2fVDA eine besondere Freigabe in der Lizenzdatei benötigt wird. Diese Freigabe wird in einen Lizenzschlüssel umgesetzt, der beim Aufruf des Programms immer mitgegeben werden muss.
Der print2forms-Client und das print2forms-Gateways stellen diesen Lizenzschlüssel zur Verfügung 1), der dann mit dem Platzhalter '\k' in die Schablone des Anfragefeldes mit aufgenommen werden kann.
Eine typische Schablone sähe etwa so aus:
p2fVDA -aA2 -s1JUN\VDA:1 -k\k
In der Ablaufverfolgung kann man dann den expandierten Programmaufruf ansehen: 2)
p2fVDA -aA2 -s1JUN4853507501904 -kItgmM3Tl10oSUr5IvfkuSlEZpqQvleBdpjPNihjL4iog