Hilfsprogramm p2fVDA

Anforderung

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.

Realisierung

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 Hexadezimal­ziffern. 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 Hexadezimal­ziffern.
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



Hinweise


1)
Die Erzeugung von Lizenzschlüsseln für die Nutzung innerhalb von Schablonen wird erst mit dem print2forms-Client Build 5817 und dem print2forms-Gateway Build 3087 zur Verfügung gestellt.

2)
Der tatsächlich ausgeführte Programmaufruf ist nicht sichtbar. Siehe auch Hinweis 2.