Follow Us on Twitter

RFID bij het Centraal Boekhuis

Mei 2009 - In augustus schreven we in ons Whitebook een stuk over RFID. Daarin werd uitgelegd wat RFID is en wat je ermee kan. Ook werd gewezen op de risico’s bij het gebruik van RFID.
Deze maand gaan we wat meer de praktijk in en kijken we naar de implementatie van RFID in een supply-chain bij het Centraal Boekhuis uit Culemborg en de Boekhandel Groep Nederland (BGN, oa. bekend van de Selexyz boekwinkels) en wat voor rol Oracle software daarin heeft vervuld.

De praktijk

In 2006 zijn Centraal Boekhuis en BGN een pilot begonnen om individuele boeken te voorzien van RFID-tags. Deze pilot is in 2006 begonnen met 1 winkel in Almere en is later uitgebreid naar winkels in Maastricht en Nijmegen.

 
Figuur 1 RFID tags

Centraal Boekhuis is de grootste logistieke partner in Nederland voor het boekenvak. Ze verzorgen de opslag en distributie van boeken en aanverwante artikelen voor het grootste deel van de uitgevers van boeken in het Nederlandse taalgebied.

Voor BGN zijn er sinds de komst van RFID vele mogelijkheden bijgekomen. Door slim gebruik te maken van RFID-readers in de winkel, kan een medewerker of klant via een terminal tot op de boekenkast precies uitzoeken waar een boek zich in de winkel bevindt.
Het is nu ook mogelijk om met een druk op de knop precies de voorraad in de winkel in te zien. Deze arbeidsintensieve taak duurde voorheen enkele dagen.

Vanwege hun positie in de markt is de pilot van Centraal Boekhuis en BGN niet onopgemerkt gebleven. Beiden hebben al enkele prijzen in de wacht gesleept vanwege het innovatieve karakter van deze RFID-verwerking. Nog nooit is RFID op deze schaal toegepast in een retail-supply-chain. Zo wonnen ze bijvoorbeeld samen de RFID Visionary Award in 2006. Ook bedrijven in de rest van de wereld kijken belangstellend naar de ontwikkelingen in Nederland.

Het proces

In het logistieke proces van Centraal Boekhuis, worden de boeken eerst verzameld en in dozen gestopt. Voordat een doos, bestemd voor één van de drie BGN winkels, uitgesorteerd wordt naar een pallet, komt deze bij de RFID-verwerkingsplaatsen terecht. De boeken worden op deze verwerkingsplaatsen uit de dozen gehaald en voorzien van een RFID-tag.

Een barcodescanner leest de code van de doos (levereenheid) waardoor een procedure gestart wordt in de Oracle database. Deze procedure haalt de relevante gegevens op die moeten worden geprint op het label en bepaalt het unieke nummer dat moet worden weggeschreven in het EPC-geheugen van de chip (het deel van de RFID tag waar data wordt opgeslagen). Dit gebeurt in één keer voor alle boeken die in de doos zitten. Deze gegevens worden doorgestuurd naar de printerapplicatie.

Vervolgens legt een medewerker de boeken uit de doos op een lopende band naar de RFID-printer. Een scanner leest het ISBN en bepaalt daarmee welke gegevens moeten worden geprint. Tevens worden op dit moment de EPC gegevens gecodeerd en in de chip geschreven. Vervolgens wordt volautomatisch het label op het boek geplakt. Dit proces loopt met een snelheid van 1 boek per seconde.

 
Figuur 2 Boekinformatie op een RFID BIS label

Als de boeken een afwijkend formaat hebben, of als er iets fout is gegaan bij de automatische verwerking, worden ze handmatig gescand door een medewerker en via een stand-alone printer voorzien van een label.

Naast deze boeklabels wordt er per levereenheid een tag geprint om de doos te identificeren. Hierop is de 18-cijferige code van de levereenheid geprint samen met een barcode. Deze 18-cijferige code is te lang om direct in het geheugen van een tag weg te schrijven. Hier moet op een slimme manier mee omgegaan worden. Dit wordt gedaan door de code om te zetten naar een SSCC-96 code volgens de geldende internationale standaard.

EPC Standaarden

De EPCglobal organisatie is een orgaan dat zich onder andere bezighoudt met het standaardiseren van gegevens die kunnen worden weggeschreven in het EPC-geheugen van een RFID chip. Een van die standaarden is de SSCC-96 code. Deze wordt gebruikt om de codes voor een levereenheid om te zetten naar een formaat dat past in het 96-bits geheugen van een EPC.
In het kort gezegd wordt de 18-cijferige code in stukken geknipt, waarna ze worden omgezet naar een binair getal en daarna naar hexadecimale code volgens de afgesproken standaard. Deze hexadecimale code past wel in een EPC. Zo kan er veel meer betekenis aan de beperkte informatie in een RFID-chip worden gegeven.

 
Figuur 3 Opbouw van de bits in een SSCC-96

Dit ziet er zo uit in de Oracle procedure:

  /* 
|| De levereenheid_kd moet opgeknipt worden in een aantal delen en omgezet worden
|| in een binaire waarde, alvorens de string voor de printer kan worden bepaald.
|| De delen van de binaire string worden vervolgens aan elkaar geconcateneerd.
*/
pl_epc96_bin := lpad(cl_header,8,0)
||lpad(cl_filter,3,0)
||lpad(sx_ctr_base.to_bin(cl_partition),3,0)
||lpad(sx_ctr_base.to_bin(substr(p_levereenheid_kd,2,7)),24,0)
||lpad(sx_ctr_base.to_bin(substr(p_levereenheid_kd,1,1)
||substr(p_levereenheid_kd,9,9)),34,0)
||lpad(cl_free,24,0);

/*
|| De binaire variabele wordt weer in stukken van 8 bits geknipt en omgezet naar
|| hexadecimaal (BIN -> DEC -> HEX).
*/
pl_epc96_hex := rpad(lpad(sx_ctr_base.to_hex(sx_ctr_base.to_dec(substr(pl_epc96_bin,1,8),'bin')),2,0)
||lpad(sx_ctr_base.to_hex(sx_ctr_base.to_dec(substr(pl_epc96_bin,9,8),'bin')),2,0)
||lpad(sx_ctr_base.to_hex(sx_ctr_base.to_dec(substr(pl_epc96_bin,17,8),'bin')),2,0)
||lpad(sx_ctr_base.to_hex(sx_ctr_base.to_dec(substr(pl_epc96_bin,25,8),'bin')),2,0)
||lpad(sx_ctr_base.to_hex(sx_ctr_base.to_dec(substr(pl_epc96_bin,33,8),'bin')),2,0)
||lpad(sx_ctr_base.to_hex(sx_ctr_base.to_dec(substr(pl_epc96_bin,41,8),'bin')),2,0)
||lpad(sx_ctr_base.to_hex(sx_ctr_base.to_dec(substr(pl_epc96_bin,49,8),'bin')),2,0)
||lpad(sx_ctr_base.to_hex(sx_ctr_base.to_dec(substr(pl_epc96_bin,57,8),'bin')),2,0)
||lpad(sx_ctr_base.to_hex(sx_ctr_base.to_dec(substr(pl_epc96_bin,65,8),'bin')),2,0),24,'0')
;

Over eenzelfde constructie voor het omzetten van een 13-cijferige EAN-code wordt momenteel nog onderhandeld. Het gaat daarbij met name om de vraag wat er gedaan moet worden om er een volgnummer aan toe te voegen dat het artikel uniek maakt en ook de leverancier identificeert. Centraal Boekhuis volgt deze ontwikkelingen op de voet, omdat ze ook zeer van belang zijn voor het kunnen wegschrijven van ISBN’s in een EPC.

Controle

Als de boeken en de doos voorzien zijn van tags, kan de levereenheid worden gecontroleerd door een RFID-reader. De reader krijgt een signaal op het moment dat een doos gelezen kan worden. De tags die de reader vindt, worden in een XML-bericht gestopt en verstuurd naar de Oracle database. Het XML-bericht wordt in een clob opgeslagen en daarna via een procedure uitgeplozen.
Hierbij wordt gebruik gemaakt van de mogelijkheden die Oracle biedt op het gebied van XML functionaliteit. Met behulp van functies als xmlextract en dergelijken worden de juiste waarden uit het bericht gehaald om vergeleken te worden met de informatie die al eerder was opgeslagen in de tabellen.

Een voorbeeld van het ophalen van een tag_id uit het stuk XML dat van de RFID reader is gestuurd naar de database, waarbij dat id is opgeslagen in het veld <ID> binnen de tag <Detection>:

select extractvalue(value(detection), '/Detection/@ID') as tag_id 
from table(xmlsequence(extract(b_tagset,'//Detection'))) detection

 

Deze tag wordt getoond als een hexadecimale representatie van de ASCII waardes. 001 ziet er dan bijvoorbeeld uit als 303031. Door handig gebruikt te maken van substrings, wordt de decimale waarde hier uit gefilterd om verder te gebruiken.
Er wordt gekeken of de gelezen tags overeenkomen met de verwachte tags. Of er niet teveel of te weinig tags zijn en of de tags daadwerkelijk in de doos horen. Als de controle is voltooid, geeft de Oracle database een antwoord terug in een XML-bericht.

xmltype('<Result_Info Code="OK" Bericht="Inhoud is OK."/>') 

Dit bericht wordt op het scherm van de RFID-reader getoond op een leesbare manier voor de gebruiker. Tevens wordt het bericht opgeslagen in een tabel met daarbij de volledige inhoud van de betreffende scan.
Op dezelfde manier wordt ook een foutmelding getoond en opgeslagen. De gebruiker kan daarop actie ondernemen. Als er fouten zijn geconstateerd, moeten deze eerst hersteld worden. Als alles akkoord is, dan wordt de doos op een pallet voor de juiste klant geplaatst.

Als een pallet vol is, of als er geen boeken meer worden verwacht voor de betreffende klant, wordt een palletcontrole gestart. Deze controle is een laatste check of alle dozen die op een pallet staan, zijn bestemd voor dezelfde afnemer en locatie. Omdat in de database is opgeslagen welke klantgegevens horen bij een bepaalde levereenheid, kan via het inlezen van alle doostags met een handheld scanner worden vergeleken of alle tags inderdaad op de juiste pallet zijn terechtgekomen en bovendien of alle dozen zijn goedgekeurd in de eerdere dooscontrole.

Op deze manier heeft Centraal Boekhuis door het gebruik van de RFID-tags z’n logistieke proces verbeterd. Door de extra controles wordt de kans op fouten tijdens het inpakken van de dozen en het samenstellen van de pallets sterk verkleind.

Communicatie met de klant

In de database wordt bijgehouden welke levereenheden door de tunnel zijn goedgekeurd, maar nog niet zijn doorgegeven aan BGN. Op basis van deze verzamelde levereenheidnummers wordt een Advanced Shipping Notice (ASN) gemaakt. Dit is een XML-bestand met daarin opgenomen de inhoud van alle levereenheden die zijn verstuurd naar de klant.

Een voorbeeld van een ASN bericht met daarin 2 levereenheden met beide 1 artikel:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<ASN_RFID xmlns="http://www.xsdlocatie.nl/xsd">
<header>
<cb_bericht_nr>73381119</cb_bericht_nr>
<leverdatum>23-10-2008</leverdatum>
</header>
<body>
<levereenheid relatie_id_vestiging="xxxxxxx" stroom_nr="0" levereenheid_nr="xxxxxxxxxxxxxxxxxx">
<artikel ean="9780582275225" tag="000000012727" uid="" orderref="XX-00-S7" bst_opdr_nr="" bst_type=""/>
</levereenheid>
<levereenheid relatie_id_vestiging="xxxxxxx" stroom_nr="1" levereenheid_nr="yyyyyyyyyyyyyyyyyy">
<artikel ean="9780582274969" tag="000000012714" uid="" orderref="XX-01-C" bst_opdr_nr="" bst_type=""/>
</levereenheid>
</body>
</ASN_RFID>

 

Dit ASN-bericht wordt aan het eind van de productiedag via een job automatisch aangemaakt en verzonden. In het bericht staat informatie over de levereenheid, de ISBN’s die in de levereenheid zitten en de EPC nummers die aan die ISBN’s zijn gekoppeld.
Het bericht wordt bij de klant in het systeem ingelezen. Zodra een doos met boeken is gearriveerd, wordt deze gecontroleerd met een handheld RFID lezer. De EPC’s die door de handheld worden gelezen, worden vergeleken met de inhoud van het ASN. Op die manier hoeft de klant de doos niet eerst te openen om handmatig na te tellen of de bestelling compleet is. Bovendien is er meteen gecontroleerd dat alle tags werkend aanwezig zijn, zodat de boeken gelijk in de schappen in de winkel kunnen worden geplaatst.

Bescherming van de gegevens

De gegevens op de tag worden tijdens de verwerking bij Centraal Boekhuis beschermd door ze te beveiligen met een wachtwoord. Hierdoor kunnen de tags niet meer beschreven worden als het wachtwoord niet wordt ingegeven. Omdat het ook niet de bedoeling is dat de tag opnieuw wordt beschreven, is dit wachtwoord volledig random gegenereerd en niet meer te achterhalen.
Dit alles om te voorkomen dat onverlaten de code van een goedkoop boek proberen weg te schrijven in de tag van een duur boek. Deze techniek wordt een permalock genoemd. Dat wil zeggen dat een tag eenmaal wordt beschreven en daarna nooit meer kan worden overschreven (Write Once Read Many, WORM).

Daarnaast is door het toepassen van RFID-technologie ook de beveiliging tegen winkeldiefstal verbeterd. Als een klant een boek heeft afgerekend, wordt de aanwezige RFID-tag onleesbaar gemaakt. Als er iemand de detectiepoortjes bij de uitgang passeert met een leesbare tag, weet de beveiliging dat iemand probeert een boek te stelen. Sterker nog, de beveiliger weet ook precies welk boek, als het beveiligingspoortje is gekoppeld aan de database.

Toekomst

BGN wil het huidige aantal winkels dat werkt met RFID gaan uitbreiden. Omdat de piek tot nu toe lag op een maximum van 6000 boeken per dag, kon de verwerking gedaan worden op 6 werkplekken met stand-alone printers. Als alle winkels van BGN meedoen met RFID, zal dit oplopen naar een piek van ruim 50.000 per dag. Hiervoor zijn 2 automatische applicatoren aangeschaft die per stuk 3600 boeken per uur kunnen verwerken.
Verder is het de wens om in de toekomst de RFID tags ook te kunnen gebruiken om af te rekenen.
Daarnaast zal het betekenisloze volgnummer in het EPC waarschijnlijk worden vervangen door een betekenisvol nummer met daarin het ISBN verwerkt. Hierdoor zullen er nieuwe mogelijkheden komen, zeker als de drukkers ooit RFID tags gaan verwerken in de kaft bij de produktie van een boek. Daarmee zou een boek gedurende z’n gehele bestaan kunnen worden gevolgd en kunnen logistieke processen verder gestroomlijnd worden.

Conclusie

Door het toepassen van RFID-technologie is het gehele logistieke proces van leverancier via winkel tot eindklant veel efficiënter te maken. Controles hoeven niet meer visueel plaats te vinden, maar kunnen op afstand gedaan worden. Dit heeft voordelen in het kader van tijdswinst en accuratesse in alle schakels van de supply-chain. De toepassing bij Centraal Boekhuis en BGN is hier een prima voorbeeld van.
Door gebruik te maken van RFID kan een organisatie z’n processen robuuster en voorspelbaarder maken. Als meer bedrijven RFID gaan toepassen, zullen ook de kosten van tags dalen en zullen de voordelen alleen maar toenemen.
Het is goed dat Nederlandse bedrijven als Centraal Boekhuis en BGN hierin een koppositie hebben genomen.

Bronnen en links:

Waardering:
 

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.