• Nie Znaleziono Wyników

Een generiek conceptueel (simulatie) model voor (vers-) distributiecentra

N/A
N/A
Protected

Academic year: 2021

Share "Een generiek conceptueel (simulatie) model voor (vers-) distributiecentra"

Copied!
36
0
0

Pełen tekst

(1)

Delft University of Technology

FACULTY OF MECHANICAL, MARITIME AND MATERIALS ENGINEERING

Department of Marine and Transport Technology Mekelweg 2 2628 CD Delft the Netherlands Phone +31 (0)15-2782889 Fax +31 (0)15-2781397 www.mtt.tudelft.nl

This report consists of 28 pages and 3 appendices. It may only be reproduced literally and as a whole. For commercial purposes only with written authorization of Delft University of Technology. Requests for consult are only taken into consideration under the condition that the applicant denies all legal rights on liabilities concerning the contents of the advice.

Specialization: Production Engineering and Logistics Report number: 2012.PEL.7731

Title: Een generiek conceptueel

(simulatie) model voor (vers-) distributiecentra.

Author: F.A. Plaizier

Assignment: computer

Confidential: yes

Initiator (university): dr.ir. H.P.M. Veeke

(2)

Samenvatting

Dit rapport beschrijft de ontwikkeling van een generiek conceptueel model voor versdistributiecentra (VDC). Een VDC is een logistieke service provider (LSP) op het gebied van aardappelen/groente/fruit (AGF), zuivel, vlees en semivers producten (gekoelde producten zoals maaltijden e.d.).

Voordat begonnen is aan de ontwikkeling van het uiteindelijke model is het VDC als systeem bestudeerd. Bij de bestudering van het VDC als systeem is gebruik gemaakt van de zogenaamde ‘systeembenadering’. Bij de systeembenadering gaat men uit van het doel (doelen) (waarvoor dient het systeem). Van daaruit bepaalt men de functies die vervuld moeten worden binnen het systeem ter realisering van dat doel. Op deze manier is gekomen tot een viertal elementaire functies (en hun onderlinge samenhang, zie Figuur 1) die vervuld worden binnen het VDC:

Transferen: Het fysiek verplaatsen van een drager (of een combinatie van drager en product), inclusief een verandering in modaliteit.

Transporteren: Het fysiek verplaatsen van een drager (of een combinatie van drager en product) zonder verandering van modaliteit.

Opslaan: Het fysiek opslaan van een drager (of een combinatie van drager en product).

Pick transferen: Het fysiek verplaatsen van een product, inclusief een

verandering van drager.

Om een beter inzicht te krijgen in de taken welke gegenereerd worden en hoe middelen worden toegewezen aan de verschillende uit te voeren taken is onderscheid gemaakt in een order-, product- en middelenstroom met het PROPER-model1 als uitgangspunt. Iedere functie uit Figuur 1 verwerkt dragers. Dragers representeren dan ook de productstroom. Lege vrachtwagens die volle dragers met uiteenlopende producten ophalen (uitslag) en vrachtwagens die volle dragers met één type product komen brengen (inslag) vertegenwoordigen de orderstroom.

Door orders bestaande uit een takenlijst te genereren binnen het generieke model ontstaat de mogelijkheid om onderscheid te maken tussen taken voor inslag en taken voor uitslag.

1 For a thorough introduction of the PROPER-model see: H.P.M. Veeke, J.A. Ottjes, G. Lodewijks, The Delft Systems Approach, Springer, 2008

Figuur 1 - De elementaire functies en hun onderlinge samenhang

(3)

Zodra een vrachtwagen de orderstroom inkomt wordt voor iedere drager die het systeem inkomt een order gegenereerd met daaraan vast een takenlijst. Iedere taak in de takenlijst representeert een locatie waar de drager naartoe getransporteerd moet worden. Na transport van een drager (het uitvoeren van een taak behorende bij een inslag order) wordt altijd de transfer functie uitgevoerd. In het model zullen taken uit de takenlijst verdwijnen tijdens uitvoer van de opvolgende transfer functie. Op deze wijze is het model in staat de specifieke taken voor iedere functie binnen de productstroom te waarborgen.

Voor uitslag geldt dat voor iedere orderdrager (in de praktijk vaak een rolcontainer) welke het systeem inclusief producten dient te verlaten er een order wordt gegenereerd. Door in de takenlijst van de gegenereerde (uitslag)orders de locaties op te nemen van de te picken producten worden de verschillende transport functies aangestuurd. De taken uit de takenlijst voor uitslag orders kunnen door de picktransfer functie of de transfer functie verwijderd worden. Voor iedere drager (product- of orderdrager) bestaat er een order. Zolang de drager zich in het systeem bevindt bestaat er een order binnen het model welke deze drager representeert.

Met het ontwikkelde model is het mogelijk om een versdistributiecentrum te modelleren bestaande uit één pickgebied en één opslaggebied. De transportmiddelen beschikbaar voor het transport van orderdragers en productdragers behoren tot één groep en kunnen ingezet worden voor zowel

aanvulverplaatsingen (productdragers) als voor het transport van orderdragers langs de verschillende picklocaties. De geografische configuratie van het distributiecentrum moet kunnen worden ingegeven door de gebruiker. Het model verwerkt pickopdrachten (ook ingegeven door de gebruiker) en maakt aanvulverplaatsingen automatisch aan indien de voorraad op een picklocatie tot nul gereduceerd is.

(4)
(5)

Inhoud

Samenvatting ... 2

1. Introductie ... 6

Doel van het onderzoek... 6

Opbouw van dit rapport ... 7

2. Conceptualisatie ... 8

Systeembenadering ... 8

Elementaire functies en hun onderlinge samenhang ...14

Order-, product- en middelenstroom: PROPER-model ...15

3. Modelontwikkeling ...18

Elementen en attributen ...18

Beschrijving van processen ...19

Process description language ...21

4. Proof of concept ...25

Lay-out van het gemodelleerde DC ...25

Pick- en opslagorders ...25

Verificatie van het computer model...26

5. Conclusies en aanbevelingen ...27

Vereenvoudigen van het construeren van de invoerbestanden ...27

Samenstellen van pickorders ...27

Referenties ...28

Appendix A - Structureren van invoerbestanden ...30

Appendix B - Gebruikte invoerbestanden ...31

(6)

6

1. Introductie

Distributiecentra (DC) spelen een belangrijke rol in moderne logistiek systemen. Een

distributiecentrum verbetert de prestaties van een logistiek systeem door samen te werken met verschillende actoren in de keten om zo de klant te voorzien van producten op het juiste moment, in de juiste hoeveelheid en in de juiste hoedanigheid2.

Dit rapport beschrijft het ontwerp van een generiek conceptueel model voor versdistributiecentra (VDC). Een VDC is een logistieke service provider (LSP) op het gebied van aardappelen/groente/fruit (AGF), zuivel, vlees en semivers producten (gekoelde producten zoals maaltijden e.d.).

Bij de bestudering van het VDC als systeem wordt gebruik gemaakt van de zogenaamde

‘systeembenadering’. Bij de systeembenadering gaat men uit van het doel (doelen) (waarvoor dient het systeem). Van daaruit bepaalt men de functies die vervuld moeten worden binnen het systeem ter realisering van dat doel. Het vervullen van een dergelijke functie is dan op zijn beurt weer het doel van een subsysteem, waarvoor binnen dat subsysteem vaak weer verscheidene functies nodig zijn3.

Tijdens de ‘systeembenadering’ van het VDC als systeem worden bevindingen in dit rapport getoetst aan een praktijkvoorbeeld. Als praktijkvoorbeeld dient Hollander Barendrecht. Hollander Barendrecht is de enige LSP van PLUS Retail op het gebied van gekoelde producten. Het VDC is gebouwd door The Greenery in opdracht van PLUS Retail. Hollander Barendrecht is een bedrijfsunit van The Greenery. Hollander beleverd alle 270 zelfstandige ondernemers die aangesloten zijn bij PLUS en heeft een afzet van circa 900.000 collo per week verdeeld over zes dagen belevering. Het VDC heeft een oppervlakte van 38.000 m2 waarvan 25.000 m2 in gebruik is als distributiecentrum. Hollander verzorgt cross-dock leveringen en de leveringen van voorraadgoederen.

Doel van het onderzoek

Dit rapport beschrijft de ontwikkeling van een generiek model waarmee het mogelijk is een versdistributiecentrum te modelleren bestaande uit één pickgebied en één opslaggebied. De transportmiddelen beschikbaar voor het transport van orderdragers en productdragers behoren tot één groep en kunnen ingezet worden voor zowel aanvulverplaatsingen (productdragers) als voor het transport van orderdragers langs de verschillende picklocaties. De geografische configuratie van het distributiecentrum moet kunnen worden ingegeven door de gebruiker. Het model verwerkt

pickopdrachten (ook ingegeven door de gebruiker) en maakt aanvulverplaatsingen automatisch aan indien de voorraad op een picklocatie tot nul gereduceerd is.

2 Lambert, D. M., J.R. Stock and L.M. Ellram, 1998, Fundamentals of Logistics Management (McGraw-Hill, Singapore).

3 in ‘t Veld J., 2002, Analyse van organisatieproblemen, een toepassing van denken in systemen en processen (Stenfert Kroese, Leiden).

(7)

7 Deelvragen die beantwoord dienen te worden voordat het model geconstrueerd kan worden zijn:

1. Uit welke elementaire functies dient het model opgebouwd te worden? 2. Waaruit bestaat een order die door het systeem verwerkt wordt? 3. Hoe dienen taken toegewezen te worden aan de beschikbare middelen?

4. Welke eigenschappen moeten de elementen bezitten voor een goede afhandeling van orders?

Opbouw van dit rapport

In hoofdstuk 2 wordt met behulp van de systeembenadering onderzocht welke elementaire functies vervuld worden binnen een (vers-) distributiecentrum. In ditzelfde hoofdstuk wordt onderzocht in welke samenhang de geformuleerde functies voorkomen. Uiteindelijk is onderzocht hoe orders en taken verwerkt worden. In hoofdstuk 3 worden de elementen en hun attributen beschreven en een woordelijke beschrijving gepresenteerd van het gedrag van de gedefinieerde functies. Aan de hand van de woordelijke beschrijving is het model geformuleerd in de vorm van ‘process description language’ (PDL). Nadat het model gebouwd is in TOMAS/Delphi wordt in hoofdstuk 4 aangetoond dat de het computermodel het gedrag vertoond zoals beschreven in hoofdstuk 3. Tot slot worden

mogelijke functionaliteiten/aanpassingen besproken voor eventuele verdere ontwikkeling van het model.

(8)

8

2. Conceptualisatie

Om duidelijkheid te scheppen zijn de processen aanwezig binnen het praktijkvoorbeeld Hollander Barendrecht geconceptualiseerd. Door middel van een systeembenadering is gezocht naar de elementaire functies aanwezig in een versdistributiecentrum als systeem. Na het definiëren van de elementaire functies is hun onderlinge samenhang onderzocht. De aansturing van deze functies door middel van orders en taken is toegelicht aan de hand van het PROPER-model.

Systeembenadering

Deze paragraaf beschrijft de systeembenadering van een versdistributiecentrum (VDC). Doel van deze systeembenadering is het stap voor stap inzoomen in aggregatiestrata om zo de elementaire functies binnen het systeem te definiëren. Door deze elementaire functies op het juiste abstractieniveau te definiëren kan men met behulp van deze elementaire functies ieder willekeurig VDC modelleren. Onder het ‘juiste’ abstractieniveau wordt hier dus verstaan het niveau waarop men in staat is alle elementaire functies te onderscheiden welke nodig zijn om ieder willekeurig VDC te modelleren zowel geaggregeerd als gedetailleerd (H.P.M. Veeke, 2002).

De systeemgrens van het te beschouwen systeem is net buiten de fysieke muur van het

versdistributiecentrum geplaatst. Producten welke het distributiecentrum binnen komen arriveren dus ook in het hier beschouwde systeem. De volgende ingaande stromen zijn te onderscheiden (Zie Figuur 2.1):

 Cross-dock producten op cross-dock orderdrager in vrachtwagen ‘in’ (stroom 1)

 Lege cross-dock orderdragers (stroom 2)

 Lege vrachtwagen ‘uit’ (stroom 3)

 Voorraad producten op productdragers in vrachtwagen ‘in’ (stroom 4)

 Voorraad product orderdragers (stroom 5)

De volgende uitgaande stromen zijn te onderscheiden:

 Cross-dock producten op orderdrager in vrachtwagen ‘uit’ (stroom 6)

 Lege cross-dock orderdragers (stroom 7)

 Voorraad producten op orderdrager in vrachtwagen ‘uit’ (stroom 8)

 Lege voorraad productdrager (stroom 9)

 Afgekeurd voorraadproduct (stroom 10)

 Lege vrachtwagen ‘in’ (stroom 11)

In Figuur 2.1 is het systeem als één blackbox beschouwd. Het systeem is in interactie met zijn omgeving en het werk wat het systeem verricht kan (deels) afgeleid worden door het verband te bepalen tussen de in- en uitvoeren van het systeem (J. in ’t Veld, 1988).

(9)

9 Voor wat betreft de ingaande cross-dock producten zien we enkel een ‘transfer’ van vrachtwagen ‘in’ naar vrachtwagen ‘uit’. Bij voorraad producten zien we echter ook nog een ‘transfer’ van de producten zelf. Voorraad producten komen het systeem in op een productdrager en bevinden zich in

vrachtwagen ‘in’. Voorraad producten verlaten het systeem op een orderdrager en bevinden zich op dat moment in vrachtwagen ‘uit’. Deze transfer van producten verklaart direct de ingaande stroom van orderdragers (stroom 5) en de uitgaande stroom van lege productdragers (stroom 9).

Een transfer functie kunnen we nu definiëren als: Het fysiek verplaatsen van een drager (of een combinatie van drager en product), inclusief een verandering in modaliteit. In de praktijk, voor zover nu valt af te leiden, wordt de transfer functie in de volgende gevallen uitgevoerd:

 De transfer van een cross-dock product en orderdrager op vrachtwagen ‘in’ naar vrachtwagen ‘uit’.

 De transfer van een voorraad product op productdrager naar orderdrager.

Door de transfer van een voorraad product op productdrager naar orderdrager kan echter de

uitgaande stroom 8 niet verklaard worden. Er is blijkbaar een extra transfer nodig om deze uitgaande stroom te verklaren. Wat hier dus duidelijk wordt is dat voor de ingaande stroom 4 minstens

tweemaal een transferfunctie zoals eerder gedefinieerd uitgevoerd dient te worden.

Over de stroom cross-dock orderdragers die het systeem ingaat maar ook weer verlaat valt kwalitatief gezien nog niets te zeggen. Echter is bekend dat leveranciers van cross-dock producten in het geval van Hollander meerdere orders bundelen per binnenkomende orderdrager. Deze orders hebben dan betrekking op meerdere orders per klant van het VDC. Uiteindelijk mag slechts één klant per

orderdrager bediend worden. De verschillende orders op een cross-dock orderdrager zullen dus eerst gesplitst en eventueel later weer gebundeld moeten worden. Te verwachten valt dat wanneer er ingezoomd wordt op het systeem duidelijk wordt hoe de stroom cross-dock orderdragers (stroom 2)

Distribueer vers producten

(1) X-dock product op orderdrager in vrachtwagen‘in’ (4) Voorraad product op productdrager in vrachtwagen‘in’ (10) Afgekeurd voorraad product (5) Voorraad product orderdrager

(7)Lege x-dock orderdrager (2) X-dock orderdrager

(6) X-dock producten op orderdrager in vrachtwagen‘uit’

(8) Voorraad producten op orderdrager in vrachtwagen‘uit’ (9) Lege voorraad productdrager 1 (11) Vertrekkende vrachtwagen‘in’ (3) Lege vrachtwagen‘uit’

(10)

10 bijdraagt aan het vervullen van de functie van het VDC. Dit zal zich ook uitten in kwantitatieve zin. De omvang van de ingaande stroom cross-dock orderdragers zal verschillen van de omvang van

uitgaande stroom cross-dock orderdragers.

Door in te zoomen op het in Figuur 2.1 beschouwd systeem komt meer informatie beschikbaar. Met deze informatie is het mogelijk om indien noodzakelijk meer elementen te onderscheiden en meer te weten te komen over de eigenschappen en het gedrag van alle aanwezige/noodzakelijke elementen.

In Figuur 2.2 is ingezoomd op het systeem dat is weergegeven in Figuur 2.1. Wat direct opvalt is dat cross-dock- en voorraadproducten beschouwd kunnen worden als twee aparte stromen dus twee aparte systemen binnen de systeemgrens geïllustreerd in Figuur 2.1. Dit betekent niet dat er geen aspecten zijn waarin beide subsystemen een bijdrage leveren. Zowel het cross-dock subsysteem als het voorraad subsysteem zal verder uitgediept worden zodat alle elementaire functies binnen het VDC gedefinieerd kunnen worden.

Naast de in- en uitgaande stromen is er per deelsysteem een extra stroom te onderscheiden, namelijk:

 Cross-dock producten op orderdrager bij expeditie (stroom 1.1)

 Voorraad producten op orderdrager bij expeditie (stroom 1.3)

De transfer van een cross-dock product en orderdrager op vrachtwagen ‘in’ naar vrachtwagen ‘uit’ zoals afgeleid na analyse van de blackbox weergegeven in Figuur 2.1 kan opgedeeld worden in twee transfer functies. Dit omdat de stroom lege cross-dock orderdrager (stroom 1.2) ook kan ontstaan na een tweede transfer. Namelijk de transfer van cross-dock producten op orderdrager bij expeditie

Verwerken x-dock producten Bundelen en verzenden

van x-dock producten

1. Distribueer vers producten

(1) X-dock product op orderdrager in vrachtwagen‘in’ (5) Voorraad product op productdrager in vrachtwagen‘in’ (1.1) X-dock product op orderdrager bij expeditie (6) X-dock producten op orderdrager in vrachtwagen‘uit’ (10) Afgekeurd voorraad product (9) Lege voorraad productdrager (4) Lege orderdrager voorraad artikelen

Verwerken voorraad producten

(8) Voorraad producten op orderdrager in vrachtwagen‘uit’ (7) Lege orderdrager x-dock artikelen Bundelen en verzenden van voorraad producten

(1.2) Lege orderdrager (x-dock) (2) X-dock orderdrager (1.4) Lege orderdrager voorraad artikelen (1.3) Producten op orderdrager bij expeditie 1.1 1.2 1.3 1.4

(3) Lege vrachtwagen‘uit’

(3) Lege vrachtwagen‘uit’

(11) Vertrekkende vrachtwagen‘in’ (11) Lege vrachtwagen‘in’

(11)

11 (stroom 1.1) naar voorraad producten op orderdrager in vrachtwagen ‘uit’ (stroom 5). In de praktijk worden binnen functie 1.2, nadat cross-dock orderdragers klantspecifiek zijn gemaakt door functie 1.1, de producten van meerdere orderdragers weer gebundeld om zo to een hogere beladingsgraad van de vrachtwagen ‘uit’ te komen.

Op het aggregatie niveau uit Figuur 2.2 is ook te zien dat er minstens twee transfer functies zoals eerder gedefinieerd nodig zijn om stroom 3 en 4 te transformeren in stroom 7. Stroom 1.4 kan verklaard worden om dezelfde redenen als dat bij de cross-dock producten het geval is.

Op dit abstractieniveau is de productstroom nog volledig op te bouwen uit transferfuncties zoals eerder gedefinieerd. Door in te zoomen op functie 1.3 en 1.4 wordt gekeken of dit ook geldt wanneer een hogere mate van detail aangebracht wordt.

Wanneer we transfer functie 1.3 openen zien we (zie Figuur 2.3) dat er meer dan alleen transfer functies vervuld dienen te worden om de overkoepelende functie 1.3 te vervullen. Deze functies ontstaan doordat men tijdens het vervullen van functie 1 en dus ook functie 1.3 gedwongen wordt rekening te houden met de omgeving.

Kijken we naar functie 1.3.1 dan zien we dat de transformatie van stroom 4 in stroom 9 en stroom 1.3.1 voldoet aan de eerder gedefinieerde transfer functie. Product en productdrager ondergaan een verandering in modaliteit doordat zij op intern transport worden gezet.

Functie 1.3.2 voldoet niet aan de eerder gedefinieerde transferfunctie. Product en productdrager ondergaan geen verandering in modaliteit maar worden enkel fysiek verplaatst. Naast een definitie voor een transfer functie is het noodzakelijk om ook een transport functie te definiëren. Deze definitie voor een transport functie wordt noodzakelijk doordat anders de mate van detail geïllustreerd in Figuur 2.3 nooit gehaald kan worden met het generiek model.

Inslaan voorraad Consolideren en laden Picken order 1.3.5 Lege orderdrager Order-drager Stack (1.3.4) Producten op orderdrager bij uitgang pickgebied (1.3.1) Product op productdra-ger bij inslag (1.3.2) Product op productdra-ger bij pick locatie

1.3 Verwerken voorraad producten

1.4 Bundelen en verzenden van voorraad producten

Transporteren naar locatie Transporteren naar expeditie (4) Voorraad product op productdrager in vrachtwagen‘in’ (9) Afgekeurd voorraad product (4) Lege orderdrager voorraad artikelen (9) Lege voorraad productdrager (8) Voorraad producten op orderdrager in vrachtwagen‘uit’ (1.4) Lege orderdrager voorraad artikelen (1.3) Producten op orderdrager bij expeditie 1.3.1 1.3.2 1.3.4 1.3.3 1.3.5

1.4.1 (3) Lege vrachtwagen‘uit’ (11) Lege

vrachtwagen‘in’

(11) Lege vrachtwagen‘in’

(12)

12 Een definitie voor deze transport functie luidt als volgt: Het fysiek verplaatsen van een drager (of een combinatie van drager en product) zonder verandering van modaliteit. Functie 1.3.3 voldoet niet aan de eerder gedefinieerde transfer functie. In het geval van functie 1.3.3 wordt een product fysiek verplaatst inclusief een verandering van modaliteit. Een product bevindt zich altijd op een drager. Indien niet de combinatie van product en drager verandert van modaliteit

betekent dit dat het product ook een verandering van drager ondergaat. Dit zien we dan ook terug als we de in- en uitgaande stromen van 1.3.3 analyseren. Het product gaat van productdrager naar orderdrager en ondergaat tegelijkertijd een verandering van modaliteit (van transportmiddel voor transporteren naar locatie naar transportmiddel voor transporteren naar expeditie). De transfer functie zoals eerder gedefinieerd vereist dat altijd een combinatie van product en drager van modaliteit veranderen. In het geval van 1.3.3 gaat dit niet op. Er ontstaat een nieuwe combinatie van product en drager doordat het product van de ene drager op de andere wordt geplaatst. Tegelijkertijd verandert het product dat deze verwisseling ondergaat ook van modaliteit. Verderop in dit rapport zal er ingezoomd worden op functie 1.3.3 en dan blijkt dat de transferfunctie anders gedefinieerd dient te worden en er een zogenaamde picktransfer valt te onderscheiden.

Functie 1.3.4 voldoet aan de zojuist gedefinieerde transport functie.

Functie 1.3.5 is niet te vatten binnen een transfer of een transport functie. Functie 1.3.5 bestaat uit het fysiek opslaan van een drager. Om tot een goede generieke definitie voor een dergelijke functie te komen laten we de systeembenadering even los en kijken we naar ons praktijkvoorbeeld; Hollander Barendrecht. Binnen Hollander zien we verscheidene instanties van de hier te definiëren opslagfunctie terug. Naast de fysieke opslag van dragers zien we in de praktijk ook de fysieke opslag van de combinatie product en drager.

De definitie voor de opslagfunctie luidt dan ook als volgt: Het fysiek opslaan van een drager (of een combinatie van drager en product).

Functie 1.4.1 uit Figuur 2.3 voldoet aan de definitie voor de transfer functie.

Functie 1.3.3 voldoet niet (zoals eerder geconstateerd) aan een van de eerder gedefinieerde functies (transfer-, transport- en/of opslagfunctie). Door in te zoomen op functie 1.3.3 wordt duidelijk wat de definitie van de vierde elementaire functie moet zijn.

(13)

13 Functie 3.3.1 uit Figuur 2.5 voldoet aan de eerder gedefinieerde opslag functie. Functie 3.3.3 voldoet aan de transport functie en functie 3.3.4 voldoet aan de transferfunctie. Voor functie 3.3.2 dient een nieuwe elementaire functie geformuleerd te worden omdat deze niet voldoet aan eerder gedefinieerde elementaire functies binnen het generieke model. De definitie voor deze nieuwe functie lijkt op de eerder gedefinieerde transfer functie. Echter in dit geval zijn het producten in plaats van dragers die een verandering van drager ondergaan en daarbij dus ook een verandering van modaliteit.

Een pick transfer functie kunnen we nu definiëren als: Het fysiek verplaatsen van een product, inclusief een verandering van drager.

Om alle twijfel met betrekking tot de volledigheid aan gedefinieerde elementaire functies weg te nemen is in Figuur 2.5 en Figuur 2.6 ingezoomd op respectievelijk functie 1.3.2 en functie 3.2.4. Op het aggregatie niveau uit Figuur 2.3 voldoet de functie ‘transporteren naar locatie’ aan de in deze paragraaf gedefinieerde transport functie. In Figuur 2.5 is ingezoomd op deze functie en gekeken naar de invulling van de functie in ons praktijkvoorbeeld Hollander Barendrecht. Geconstateerd kan worden dat zowel voor dragers die eerst naar een bulk locatie getransporteerd dienen te worden als voor dragers die direct naar een picklocatie getransporteerd worden het proces gemodelleerd kan worden in termen van in deze paragraaf gedefinieerde functies.

Figuur 2.4 - Het picken van een order

1.3.2 Transporteren naar locatie

(3.2.3) Product op productdra-ger bij bulk locatie Bulk to transport transfer (3.2.1) Product op productdrager bij inslag op transportmiddel Transporteren To bulk locatie Bulk Stack Bulk Stock transfer Stock move transfer Stock to pick transport Pick stock transfer Transport

Picklocatie Pick stock transfer

3.2.1 3.2.2 3.2.4 3.2.3 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 (1.3.1) Product op productdra-ger bij inslag (1.3.2) Product op productdra-ger bij pick locatie (3.2.2)

(14)

14 Binnen het praktijkvoorbeeld (Hollander Barendrecht) zijn er ook meerdere invullingen mogelijk voor functie 3.2.4 uit Figuur 2.5. Door in te zoomen op functie 3.2.4 (zie Figuur 2.6) valt te concluderen dat ook deze functie in hoge mate van detail gevat kan worden door de inmiddels aanwezige elementaire functies (transport en/of transfer).

Elementaire functies en hun onderlinge samenhang

In de vorige paragraaf is door middel van de systeem benadering gekomen tot vier elementaire functies welke noodzakelijk zijn om het VDC als systeem, in voldoende mate van detail, te kunnen modelleren. Het antwoord op deelvraag 1 is:

Transferen: Het fysiek verplaatsen van een drager (of een combinatie van drager en product), inclusief een verandering in modaliteit.

Transporteren: Het fysiek verplaatsen van een drager (of een combinatie van drager en product) zonder verandering van modaliteit.

Opslaan: Het fysiek opslaan van een drager (of een combinatie van drager en product).

Pick transferen: Het fysiek verplaatsen van een product, inclusief een verandering van drager.

Deze vier functies komen altijd in een bepaalde relatie tot elkaar voor binnen het systeem. In Figuur 2.7 is deze onderlinge samenhang geïllustreerd.

3.2.4 Transporteren to bulk locatie

Transport Bulk locatie Transport naar lift Transport-lift transfer Transport met lift Lift-transport transfer Transport Bulk locatie (3.2.1) Product op productdrager bij inslag op transportmiddel (3.2.2) Product op productdra-ger bij bulk locatie op transport middel 2.4.1 2.4.2 2.4.3 2.4.4 2.4.4 2.4.5 Figuur 2.6 - Opslaan

(15)

15 Iedere functie in Figuur 2.7 verwerkt dragers. Dragers representeren dan ook de productstroom. Door het PROPER-model4 als uitgangspunt te gebruiken kan het werk verricht in voorgaande paragraaf gestructureerd worden en onderscheid gemaakt worden tussen een order-, product- en

middelenstroom.

Order-, product- en middelenstroom: PROPER-model

Inmiddels is bekend welke elementaire functies aanwezig moeten zijn als componenten van het generiek conceptuele model voor het VDC. Ook de onderlinge samenhang (de interactie tussen de functies) is onderzocht (zie Figuur 2.7). Om een beter inzicht te krijgen in de taken welke gegenereerd worden en hoe middelen worden toegewezen aan de verschillende uit te voeren taken is onderscheid gemaakt in een order-, product- en middelenstroom met het PROPER-model als uitgangspunt (zie Figuur 2.8). In deze paragraaf wordt een antwoord op deelvraag 2 geformuleerd.

4

For a thorough introduction of the PROPER-model see: H.P.M. Veeke, J.A. Ottjes, G. Lodewijks, The Delft Systems Approach, Springer, 2008

Figuur 2.7 - De elementaire functies en hun onderlinge samenhang

(16)

16 Vrachtwagens worden beschouwd als orderstroom, order- en productdragers als productstroom en bedrijfsmiddelen zoals mens, machine en ruimte als middelenstroom. Aangezien het conceptuele model generiek moet zijn en dus slechts in kwalitatieve zin ontwikkeld kan worden is er niets bekend over prestaties van en eisen aan de verschillende deelsystemen in het geval van een specifieke toepassing.

Binnen de orderstroom dient onderscheid gemaakt te worden tussen taken voor inslag van productdragers en taken voor uitslag van producten wat resulteert in taken voor uitslag van orderdragers.

Figuur 2.8 - Het PROPER model

(17)

17 De Transfer control functie combineert gegenereerde taken (als gevolg van vrachtwagens welke behandeld dienen te worden) met toegewezen bedrijfsmiddelen. Dit combineren van bedrijfsmiddelen en taken dient te gebeuren in overeenstemming met de gestelde eisen aan het systeem. De precieze proces inrichting binnen de productstroom is vanzelfsprekend afhankelijk van de specifieke

toepassing. Echter in alle gevallen dienen de gegenereerde taken opgedeeld te worden in specifieke taken voor iedere functie binnen de productstroom.

Orders en taken

Zoals geïllustreerd in Figuur 2.7 behandelt elke functie binnen de productstroom in ieder geval een drager. Door orders bestaande uit een takenlijst te genereren binnen het generieke model ontstaat de mogelijkheid om onderscheid te maken tussen taken voor inslag en taken voor uitslag.

Zodra een vrachtwagen de orderstroom inkomt wordt voor iedere drager die het systeem inkomt een order gegenereerd met daaraan vast een takenlijst. Iedere taak in de takenlijst representeert een locatie waar de drager naartoe getransporteerd moet worden. Na transport van een drager (het uitvoeren van een taak behorende bij een inslag order) wordt altijd de transfer functie uitgevoerd (zie Figuur 2.7). In het model zullen taken uit de takenlijst verdwijnen tijdens uitvoer van de opvolgende transfer functie. Op deze wijze is het model in staat de specifieke taken voor iedere functie binnen de productstroom te waarborgen.

Voor uitslag geldt dat voor iedere orderdrager (rolcontainer in het geval van Hollander Barendrecht) welke het systeem inclusief producten dient te verlaten er een order wordt gegenereerd. Door in de takenlijst van de gegenereerde (uitslag)orders de locaties op te nemen van de te picken producten worden de verschillende transport functies aangestuurd. De taken uit de takenlijst voor uitslag orders kunnen door de picktransfer functie of de transfer functie verwijderd worden. Voor iedere drager (product of order) bestaat er een order. Zolang de drager zich in het systeem bevindt bestaat er een order binnen het model welke deze drager representeert.

(18)

18

3. Modelontwikkeling

In hoofdstuk 2 is onderzocht uit welke elementaire functies het model opgebouwd dient te worden. Ook is toegelicht hoe orders en bijbehorende taken door het model behandeld worden. Doordat binnen het model order- en productdragers gerepresenteerd worden door orders en de aan te maken verplaatsingen voorkomen in de vorm van taken die aan de orders worden toegevoegd zijn een order en een taak elementen die voorkomen in het model. Daarnaast zijn er de elementen transport, transfer en picktransfer die beschikken over een proces.

In dit hoofdstuk worden alle elementen en attributen (inclusief eventuele processen) woordelijk toegelicht. In paragraaf 3.3 wordt het werkingsprincipe van het model gepresenteerd in een ‘process description language’ (PDL).

Elementen en attributen

Tabel 3.1 is een overzicht met daarin alle elementen en hun attributen welke belangrijk zijn voor een goed functioneren van het model.

Een order (Job) betreft een productdrager of een orderdrager. De eigenschap ‘Type’ is nodig om aan te duiden om welke van de twee type dragers het hier gaat (type 1 is productdrager, type 2 is orderdrager). In het geval van een productdrager is het belangrijk om vast te leggen welk product zich op de drager bevind, dit wordt vastgelegd onder de noemer ‘ProductID’. Het huidige gewicht van de producten op de drager en het huidige volume van de producten op de drager is een eigenschap die voor verschillende doeleinden gebruikt kan worden maar op dit moment geen actieve rol speelt in het model. Ditzelfde geldt voor ‘Max Volume’ en ‘Max Weight’. Uiteindelijk is informatie met betrekking tot het maximum volume en het maximum toegelaten gewicht op een orderdrager noodzakelijk indien het model zelf grote orders over verschillende orderdragers gaat verdelen.

Voor nu moeten voor iedere orderdrager (job van het type 2) taken (‘Task’) ingegeven worden bestaande uit de locaties en het aantal van de producten dat verzameld dient te worden. Ook is de tijd benodigd voor het verplaatsen van een product vastgelegd binnen de taak in de vorm van de eigenschap ‘Transfer time’.

Het element Transport behoort tot een transport groep welke is vastgelegd in het attribuut ‘MyGroup’. Voor nu is er slechts één transportgroep aangezien alle verplaatsingen door dezelfde groep

transportmiddelen uitgevoerd mag worden. Door middel van het ‘TransportID’ kan een specifiek transport middel in de groep geselecteerd worden. Het element transport beschikt over een proces. Dit proces waarborgt de functie transporteren zoals gedefinieerd in hoofdstuk 2.

(19)

19 Transfer is het element welke het proces bezit dat de functie Transferen gedefinieerd in hoofdstuk 2 waarborgt. De X- en Y-locatie van dit element wordt ingegeven door de gebruiker en is afhankelijk van de geografische configuratie van het DC. Aan iedere locatie waar een drager neergezet kan worden dient Transfer toegekend te worden.

PickTransfer is het element welke het proces bezit dat de functie Pick transferen gedefinieerd in hoofdstuk 2 waarborgt. De X- en Y-locatie van dit element wordt ingegeven door de gebruiker en is afhankelijk van de geografische configuratie van het DC. Aan iedere locatie waar een drager

neergezet kan worden en individuele producten van de drager gepicked mogen worden (pick-locatie) wordt naast een Transfer ook een PickTransfer toegekend.

Beschrijving van processen

De elementen behorende tot de klasse ‘Transport’, ‘Transfer’ of ’PickTransfer’ beschikken over een proces dat het gedrag van deze elementen beschrijft. Afhankelijk van de configuratie van het te modelleren DC kunnen ‘Transport’, ‘Transfer’ en ‘PickTransfer’ elementen aangemaakt worden. In deze paragraaf wordt het gedrag van elementen behorende tot bovenstaande klassen woordelijk beschreven.

Transfer

Een Transfer is in staat om een drager (Job), over te dragen van een transportmiddel naar een vaste locatie en vice versa, vast te houden (de functie Opslaan uit Hoofdstuk 2) en/of uit het systeem te verwijderen. Daarnaast ‘consumeert’ de Transfer functie taken behorende bij de betreffende drager. Bij het overdragen van transportmiddel naar een vaste locatie geeft de transfer haar locatie mee aan de drager.

De Transfer wacht tot er een drager wordt aangeboden. Zodra de drager is aangeboden is deze gedurende de ‘transfertijd’ in bewerking. Na de bewerking krijgt de drager haar nieuwe locatie (de locatie welke is opgegeven voor het Transfer element) mee.

Indien de drager een productdrager betreft, er geen verdere taken voor de drager gespecificeerd zijn en de drager nog producten bevat zal de drager worden tot nader order worden vastgehouden (het Transfer proces gaat in stand-by). Indien er geen verdere taken zijn gespecificeerd maar ook geen producten meer op de drager staan zal de drager verwijderd worden uit het systeem.

In het geval van een orderdrager zal de drager door de Transfer worden aangeboden aan de transportgroep indien er nog andere taken gespecificeerd zijn. Zijn er geen verdere taken zal de Transfer de orderdrager uit het systeem verwijderen.

(20)

20 Transport

Een transport element transporteert een drager (Job) van de huidige locatie naar de locatie van de eerstvolgende taak. Het transport element ‘consumeert’ geen taken en is ook niet in staat dragers uit het systeem te verwijderen.

Het transport element wacht zolang er geen orders in de rij staan voor de transportgroep waartoe het element behoort. Zodra er een order wordt aangeboden aan de transportgroep pakt het transport element deze order op. Een transportmiddel mag een product drager aannemen zolang nog niet het maximaal aantal transportmiddelen bezig is met het verzamelen van orders. Enkelvoudige

verplaatsingen (dus geen pick opdrachten) mogen te allen tijde uitgevoerd worden. De order is de

Job Type ProductID Current Weight Current Volume MyTransport Number of Products Weight per Product Volume per Product Max Volume Max Weight TaskList X Position Y Position

Task Number of Products

Transfer time X Location Y Location Transport Mygroup TransportID MyJob MyTask X Location Y Location Transfer JobQ MyJob MyTask TransferTime X position Y position PickTransfer JobQ IdleSet MyJob MyTask X position Y position TransferGroup IdleSet Location PickTransferGroup IdleSet Location TransportGroup JobQ PickQ IdleSet Machines Tabel 3.1 - Elementen en hun attributen

(21)

21 transport tijd, benodigd voor het transport naar de doellocatie (behorende bij de eerstvolgende taak), in bewerking. Na bewerking worden zowel de locatie van het transport element als van de order zelf bijgewerkt.

In het geval van een productdrager wordt deze aangeboden aan het transfer element op de doellocatie.

Indien de order een orderdrager betreft is het van belang hoeveel taken er nog gespecificeerd zijn voor de betreffende order. Als er nog slechts één taak gespecificeerd is voor een productdrager betekend dit dat deze aan het einde van de pickroute is en deze moet worden overgedragen aan een transfer element op het eindstation van de route. Dit transfer element zal vervolgens de orderdrager uit het systeem verwijderen. Wanneer er nog minimaal twee taken bestaan voor de order zal de drager aangeboden worden aan het pick transfer element behorende bij de doellocatie.

PickTransfer

Het picktransfer element verplaatst producten van een productdrager (vastgehouden door een transfer element) naar een orderdrager. Wanneer dit gebeurt ‘consumeert’ het element een taak uit de takenlijst van de orderdrager.

Het pickransfer element wacht tot er een orderdrager wordt aangeboden. Zodra de orderdrager is aangeboden is deze gedurende de laadtijd (dit is de benodigde tijd voor het overladen van het aantal producten opgenomen in de taak vermenigvuldigd met de bewerkingstijd per product) in bewerking. De overgeplaatste producten worden in mindering gebracht bij de productdrager en opgeteld bij het aantal producten op orderdrager. Ditzelfde gebeurt voor het gewicht op de product- en orderdrager.

Na overdracht van de producten wordt de orderdrager weer aangeboden aan hetzelfde

transportmiddel. Op deze wijze is gewaarborgd dat één transportmiddel de gehele pickroute aflegt.

Als blijkt dat na de bewerking de productdrager, waar de producten in mindering zijn gebracht, leeg is wordt door de PickTransfer een nieuwe taak aangemaakt voor de betreffende productdrager. Deze taak heeft als doel de lege drager af te voeren naar het verzamelpunt voor lege productdragers alvorens de drager uit het systeem te verwijderen. Daarnaast wordt in de opslag gezocht naar de productdrager die hetzelfde product bevat. Deze productdrager wordt vervolgens op transport gezet vanuit opslag naar de (lege) picklocatie.

Process description language

Om de stap te kunnen maken van de woordelijke beschrijving gepresenteerd in paragraaf 3.1 en paragraaf 3.2 naar methoden welke gebruikt kunnen worden in Delphi/Tomas is er een process description language (PDL) opgesteld:

(22)

22 Definitie sectie: TransferGroup: (SimElement) IdleSet: Set Location: Set Transfer: (SimElement) JobQ: Set MyJob: Job MyTask: Task TransferTime: Double X position: Integer Y position: Integer Process: Method TransportGroup: (SimElement) JobQ: Set PickQ: Set IdleSet: Set Machines: Set Transport: (SimElement) Mygroup: TransportGroup TransportID: Integer MyJob: Job MyTask: Task X Location: Integer Y Location: Integer Process: Method PickTransferGroup: (SimElement) IdleSet: Set; Location: Set; PickTransfer: (SimElement) JobQ: Set IdleSet: Set MyJob: Job MyTask: Task X position: Integer Y position: Integer Process: Method Job: (SimElement)

Type: Integer // 1 of 2 (1 is inslag order, 2 is uitslag order)

ProductID: integer Current weight: Integer Current volume: Integer MyTransport: Integer Number of products: Integer Weight per product: Integer Volume per product: Integer Max Volume: Integer Max Weight: Integer TaskList: Set X Position: Integer Y Position: Integer Task : (SimElement)

Number of Products: Integer Transfer time: Integer X Location: Integer Y Location: Integer

Het proces model: Transfer.process Repeat

EnterQueue(TransferGroup.IdleSet) While JobQ.Length = 0 Do Standby LeaveQueue(TransferGroup.IdleSet) While JobQ.Length > 0 Do MyJob:=JobQ.FirstElement MyTask:=MyJob.TaskList.FirstElement JobQ.Remove(MyJob) Hold(Transfertime) MyJob.Xposition:= X position MyJob.Yposition:= Y position MyJob.TaskList.Remove(MyTask) If MyJob.type=1 then If MyJob.TaskList.Length > 0 then TransportGroup.JobQ.AddTotail(MyJob) If MyJob.TaskList.Length = 0 then If Myjob.NumberOfProducts = 0 then MyJob.free else Suspend Hold(Transfertime)

(23)

23 If MyJob.TaskList.Length > 0 then TransportGroup.JobQ.AddToTail(MyJob) else MyJob.free If MyJob.type=2 then If MyJob.TaskList.Length > 0 then TransportGroup.PickQ.AddToTail(MyJob) Else

Write info and destroy job Transport.process

Repeat

EnterQueue(TransportGroup.IdleSet)

While TransportGroup.JobQ.Length = 0 and TransportGroup.PickQ.Length = 0 Do StandBy LeaveQueue(TransportGroup.IdleSet)

MyJob:=TransportGroup.JobQ.FirstElement or MyJob:=TransportGroup.PickQ.FirstElement MyJob.LeaveQueue(TransportGroup.JobQ)

Repeat until loop is completed

MyTask:=(MyJob.TaskList.FirstElement) MyJob.MyTransport:= TransportID Hold (Traveldistance to location) Y Location:= MyTask.Ylocation X Location:= MyTask.Xlocation

Hold (execution time for transporting job) MyJob.XPosition:= X Location

MyJob.YPosition:= Y Location If MyJob.Type = 1 then

JobTransfer:= Transfer corresponding to current location JobTransfer.JobQ.AddtoTail(MyJob)

Loop completed If MyJob.Type = 2 then

If MyJob.TaskList.Length = 1 then

NextLocation:= PickTransfer corresponding to current location NextLocation.JobQ.AddtoTail(MyJob)

Loop completed

If MyJob.TaskList.Length > 1 then

NextLocation:= PickTransfer corresponding to current location NextLocation.JobQ.AddtoTail(MyJob) Suspend Picktransfer.process Repeat EnterQueue(PickGroup.IdleSet) While JobQ.Length > 0 Do LeaveQueue(PickGroup.IdleSet) MyJob:=JobQ.FirstElement MyTask:=MyJob.TaskList.FirstElement JobQ.Remove(MyJob)

Hold(Transfertime * number of products to be transferred)

MyJob.NumberOfProducts=(Myjob.NumberOfProducts + MyTaks.NumberOfProducts) MyJob.Weight:= Current weight + weight of transferred products

Subtract transferred products from number of products on carrier holding stock MyJob.TaskList.Remove(MyTask)

Add MyJob to tail of designated means of transportation If NumberOfProducts on carrier holding stock = 0 then

JobTransfer= Transfer corresponding to current location NewTask=Task.Create('Empty Carrier task');

(24)

24 NewTask.XLocation= Empty carrier drop off XLocation

NewTask.YLocation= Empty carrier drop off YLocation JobTransfer.MyJob.TaskList.AddToTail(NewTask)

JobTransfer.Resume (Now)

BulkJob= Job representing carrier with same productID NewTask= Task.Create(‘BulkMove’)

NewTask.XLocation= Xpos NewTask.YLocation= Ypos

BulkJob.TaskList.AddToTail(NewTask)

BulkTransfer= Transfer corresponding to bulk location with same productID BulkTransfer.Resume (Now)

(25)

25

4. Proof of concept

In hoofdstuk 1.1 zijn er verschillende eisen gesteld aan het ontworpen model. Om aan te tonen dat het model aan alle eisen voldoet is een fictief DC gemodelleerd bestaande uit één pickgebied en één opslaggebied met in totaal 62 locaties waarvan 30 picklocaties (Transfer + PickTransfer). Er worden pickopdrachten gegenereerd en verwerkt met als gevolg dat lege pallets afgevoerd worden en picklocaties aangevuld worden.

Lay-out van het gemodelleerde DC

Zowel het pickgebied als het opslaggebied van het fictieve DC bestaat uit 30 locaties. Daarnaast is er één locatie waar lege productdragers naartoe gebracht dienen te worden (coördinaat: 7,0) en één locatie waar iedere pickroute start en eindigt (coördinaat: 0,0). In Figuur 4.1 zijn de verschillende locaties weergegeven. De coördinaten van deze locaties dienen als input voor het model. In appendix A wordt toegelicht hoe de invoerbestanden van het model gestructureerd dienen te worden. Het invoerbestand zoals gebruikt voor de configuratie van het fictieve DC uit dit hoofdstuk zijn te vinden in appendix B.

Pick- en opslagorders

Voor het uitvoeren van een simulatie moeten pick- en opslagorders gedefinieerd worden. Op dit moment is het alleen mogelijk om voor één simulatie run eenmalig het totaal aantal pickopdrachten in te voeren. Daarnaast is het noodzakelijk om bij aanvang van de simulatie run de aanwezige pallets met producten (op zowel picklocaties als opslaglocaties) op te geven. Zowel pickopdrachten als de positie en belading van de aanwezige pallets in het DC kunnen ingegeven worden met behulp van een tekst bestand. Dit tekst bestand moet volgens een aantal regels geconstrueerd worden. Uitleg

hierover is te vinden in appendix A. Het invoer bestand met betrekking tot pick- en opslagorders zoals gebruikt voor de verificatie van het model (in dit hoofdstuk) is opgenomen in appendix B.

(26)

26

Verificatie van het computer model

Om te verifiëren dat het model het in hoofdstuk 3 beschreven verdrag ook daadwerkelijk vertoond wordt met behulp van de trace functie in TOMAS/Delphi5 de behandeling van een pickopdracht gevolgd. Als gevolg van de behandeling van de pickopdracht zal een picklocatie leeg raken. Deze lege pallet dient afgevoerd te worden en de lege locatie dient daarna aangevuld te worden met een volle pallet vanuit opslag. Al deze aspecten zullen in deze paragraaf aan bod komen.

Afhandeling pickopdracht

De eerste pickopdracht die verzameld dient te worden (zoals opgenomen in appendix B) bestaat uit 2 locaties. Van de eerste pick locatie moeten 10 producten gepakt worden, en van de tweede pick locatie moeten 5 producten gepakt worden. In tabel 4.1 is een overzicht gegeven van de te

verwachten bewerkingstijden. Voor het runnen van dit scenario is opgegeven dat er drie meter tussen iedere locatie zit en dat transportmiddelen zich kunnen verplaatsen met een snelheid van 3 m/s. Daarnaast is opgegeven dat het 16 seconden duurt om één product van een pick-locatie te verplaatsen naar een orderdrager.

Doellocatie Aantal producten

picken Locatie transportmiddel Transporttijd (seconden) Bewerktijd (seconden) Kloktijd

(0,0) 0 (0,0) 0 0 20

(1,6) 10 (0,0) 7 160 187

(1,4) 5 (1,6) 2 80 269

(2,1) 2 (1,4) 6 32 307

(0,0) 0 (2,1) 3 0 310

Tabel 4.1 - Handberekeningen met betrekking tot de behandeling van order 4

In appendix C zijn, met behulp van de trace functie, de resultaten opgenomen met betrekking tot de behandeling van pickorder nummer 4 uit het invoerbestand. De tijden verkregen door een

handberekening komen overeen met de tijden waarop evenementen worden weer gegeven in het trace bestand.

Afvoeren lege pallet & aanvoeren volle pallet vanuit opslag naar picklocatie

Als gevolg van het picken van producten zullen picklocaties leeg raken. Indien op een picklocatie het laatste product van de pallet gehaald is zal de lege pallet afgevoerd moeten worden en een nieuwe volle pallet vanuit opslag naar de picklocatie verplaatst moeten worden. In het proces van een

PickTransfer element zijn deze aspecten (zoals beschreven in hoofdstuk 3) opgenomen. In appendix C zijn, met behulp van de trace functie, de resultaten opgenomen met betrekking tot het afvoeren van een lege pallet en aanvullen van een volle pallet als gevolg van pickorder nummer 1 uit het

invoerbestand.

5

(27)

27

5. Conclusies en aanbevelingen

Het is gelukt om een generiek model te ontwikkelen waarmee het mogelijk is een

(vers)distributiecentrum te modelleren bestaande uit één pickgebied en één opslaggebied. De geografische configuratie van het opslaggebied is volledig te configureren. Voor de geografische configuratie van het pickgebied bestaat de beperking dat deze altijd in rijen van 10 locaties

gegenereerd zal worden met coördinaat (1,1) als oorsprong. De transportmiddelen beschikbaar voor het transport van orderdragers en productdragers behoren tot één groep en kunnen ingezet worden voor zowel aanvulverplaatsingen (productdragers) als voor het transport van orderdragers langs de verschillende picklocaties. Het model verwerkt pickopdrachten (ook ingegeven door de gebruiker) en maakt aanvulverplaatsingen automatisch aan indien de voorraad op een picklocatie tot nul

gereduceerd wordt. De afstand in meters tussen de verschillende coördinaten kan worden ingegeven evenals de snelheid in m/s waarmee transportmiddelen verplaatsingen uitvoeren.

Er zijn tal van verbeteringen en/of meer uitgebreide functionaliteiten te bedenken voor het geconstrueerde model. Tot slot zal een tweetal suggesties worden besproken.

Vereenvoudigen van het construeren van de invoerbestanden

Op dit moment moeten de invoerbestanden volgens een vaste structuur opgebouwd zijn voordat zij geschikt zijn voor inlezen in het model. De aard van de huidige benodigde structuur maakt het configureren van een DC en het definiëren van pick- en opslagorders een erg onoverzichtelijk proces. Een aanbeveling is dan ook om het inlezen van de invoerbestanden op een andere manier te

organiseren.

Samenstellen van pickorders

Pickopdrachten worden nu ingegeven doormiddel van een invoerbestand. In de praktijk is het vaak wenselijk dat het systeem zelf de totale vraag per klant combineert om zo de optimale drager belading en intern afgelegde afstand te optimaliseren. Om dit te kunnen bewerkstelligen zal een algoritme ingebouwd moeten worden dat de totale vraag voor één klant efficiënt over een aantal verzameldragers verdeeld. Dit is goed mogelijk binnen de randvoorwaarden die gelden voor de invoer van het huidige model.

Momenteel is er niets ingebouwd om tekorten op een picklocatie op te vangen. Het kan gebeuren dat een transportmiddel aankomt bij een picklocatie om producten te verzamelen maar dat de locatie op dat moment leeg is. Dit is een ernstige tekortkoming in het model. Het is dan ook aan te raden om hier een oplossing voor te implementeren. Het is bijvoorbeeld een mogelijkheid om een

transportmiddel te laten wachten tot de betreffende picklocatie weer aangevuld is. Ook is het een mogelijkheid om alvorens een pickopdracht te accepteren te controleren of op iedere picklocatie voldoende voorraad aanwezig is. De laatste optie wordt in het praktijkvoorbeeld (Hollander, Barendrecht) gebruikt.

(28)

28

Referenties

Lambert, D. M., J.R. Stock and L.M. Ellram, 1998, Fundamentals of Logistics Management (McGraw-Hill, Singapore).

in ‘t Veld J, 2002, Analyse van organisatieproblemen, een toepassing van denken in systemen en processen (Analysis of organisation problems, an application of thinking in terms of systems and processes) (Stenfert Kroese, Leiden).

H.P.M. Veeke, J.A. Ottjes, G. Lodewijks, 2008, The Delft Systems Approach (Springer).

(29)
(30)

30

Appendix A - Structureren van invoerbestanden

Een goede werking van het model vereist een tweetal invoerbestanden. Het eerste bestand beschrijft de lay-out van het DC dat gemodeleerd dient te worden. Het tweede bestand beschrijft de orders die verwerkt dienen te worden door het model. In dit laatste bestand zijn ook alle pallets opgenomen die reeds opgeslagen liggen. Beide bestanden moeten op een specifieke wijze gestructueerd zijn:

Invoer mbt configuratie DC - Aantal Transfer locaties

o Herhaal voor totaal aantal Transfer locaties: o X-coordinaat

o Y-coordinaat o TransferTime - Aantal Transport elementen

o Herhaal voor totaal aantal Transport elementen o TransportID

- Aantal PickTransfer locaties Invoer mbt te verwerken orders

- Totaal aantal dragers (product- orderdragers)

o Type drager (1= product drager, 2= order drager) o ProductID (=0 in het geval van order drager)

o Aantal producten op drager (=0 in het geval van order drager)

o Aantal verplaatsingen per drager(= 1 in het geval van opgeslagen productdrager, voor orderdragers dit is gelijk aan het totaal aantal te bezoeken locaties inclusief drop-off locatie)

 Herhaal voor totaal aantal verplaatsingen per drager:  X-locatie

 Y-locatie

(31)

31

Appendix B - Gebruikte invoerbestanden

Invoerbestand configuratie DC 62 {Aantal locaties} 1 {X-coordinaat} 1 {Y-coordinaat} 5 {Transfer time} 1 2 5 1 3 5 1 4 5 1 5 5 1 6 5 1 7 5 1 8 5 1 9 5 1 10 5 2 1 5 2 2 5 2 3 5 2 4 5 2 5 5 2 6 5 2 7 5 2 8 5 2 9 5 2 10 5 3 1 5 3 2 5 3 3 5 3 4 5 3 5 5 3 6 5 3 7 5 3 8 5 3 9 5 3 10 5 4 1 5 4 2 5 4 3 5 4 4 5 4 5 5 4 6 5 4 7 5 4 8 5 4 9 5 4 10 5 5 1 5 5 2 5 5 3 5 5 4 5 5 5 5 5 6 5 5 7 5 5 8 5 5 9 5 5 10 5 6 1 5 6 2 5 6 3 5 6 4 5 6 5 5 6 6 5 6 7 5 6 8 5 6 9 5 6 10 5 0 0 5 7 0 5 5 {Aantal transportmiddelen} 1 {Transport ID} 2 3 4 5 30 {Aantal picklocaties}

(32)

32 Invoerbestand pick en opslagorders

42{Number of orders} {stock pallet 1} 1 1 10 1 1 1 0 {stock pallet 2} 1 2 10 1 1 2 0 {stock pallet 3} 1 3 10 1 1 3 0 {stock pallet 4} 1 4 10 1 1 4 0 {stock pallet 5} 1 5 10 1 1 5 0 {stock pallet 6} 1 6 10 1 1 6 0 {stock pallet 7} 1 7 10 1 1 7 0 {stock pallet 8} 1 8 10 1 1 8 0 {stock pallet 9} 1 9 10 1 1 9 0 {stock pallet 10} 1 10 10 1 1 10 0 {stock pallet 11} 1 11 10 1 2 1 0 {stock pallet 12} 1 12 10 1 2 2 0 {stock pallet 13} 1 13 10 1 2 3 0 {stock pallet 14} 1 14 10 1 2 4 0 {stock pallet 15} 1 15 10 1 2 5 0 {stock pallet 16} 1 16 10 1 2 6 0 {stock pallet 17} 1 17 10 1 2 7 0 {stock pallet 18} 1 18 10 1 2 8 0 {stock pallet 19} 1 19 10 1 2 9 0 {stock pallet 20} 1 20 10 1 2 10 0 {stock pallet 21} 1 21 10 1 3 1 0 {stock pallet 22} 1 22 10 1 3 2 0 {stock pallet 23} 1 23 10 1 3 3 0 {stock pallet 24} 1 24 10 1 3 4 0 {stock pallet 25} 1 25 10 1 3 5 0 {stock pallet 26} 1 26 10 1 3 6 0 {stock pallet 27} 1 27 10 1 3 7 0 {stock pallet 28} 1 28 10 1 3 8 0

(33)

33 Vervolg: Invoerbestand pick en opslagorders

{stock pallet 29} 1 29 10 1 3 9 0 {stock pallet 30} 1 30 10 1 3 10 0 {order 1} 2{Order type} 0{ProductID}

0{Number of products on bulk carrier} 4{Number of tasks per order}

0{X location} 0{Y location} 0{Number of products} 1 2 10 3 4 5 0 0 0 {order 2} 2{Order type} 0{ProductID}

0{Number of products on bulk carrier} 3{Number of tasks per order}

0{X location} 0{Y location} 0{Number of products} 3 5 10 0 0 0 {order 3} 2{Order type} 0{ProductID}

0{Number of products on bulk carrier} 4{Number of tasks per order}

0{X location} 0{Y location} 0{Number of products} 3 7 10 3 9 5 0 0 0 {order 4} 2{Order type} 0{ProductID}

0{Number of products on bulk carrier} 5{Number of tasks per order}

0{X location} 0{Y location} 0{Number of products} 1 6 10 1 4 5 2 1 2 0 0 0 {order 5} 2{Order type} 0{ProductID}

0{Number of products on bulk carrier} 3{Number of tasks per order}

0{X location} 0{Y location} 0{Number of products} 2 7 10 0 0 0 {order 6} 2{Order type} 0{ProductID}

0{Number of products on bulk carrier} 3{Number of tasks per order}

0{X location} 0{Y location} 0{Number of products} 1 8 10 0 0 0 {stock Order 1} 1 2 10 1 4 1 0 {stock Order 2} 1 25 10 1 4 2 0 {stock Order 3} 1 27 10 1 4 3 0 {stock Order 4} 1 6 10 1 4 4 0 {stock Order 5} 1 17 10 1 4 5 0 {stock Order 6} 1 8 10 1 4 6 0

(34)

34

Appendix C - Verificatie van het model

Afhandeling pickopdracht

15.00 Job34 out of TransferGroup_instance_JobQ

15.00 TransferGroup_instance61 holds until 20.00 20.00 TransferGroup_instance61 is current now

20.00 Task42 out of Job_Tasks

20.00 Job34 to tail of TransportGroup_PickQ 20.00 TransportGroup_instance4 is current now

20.00 TransportGroup_instance4 holds until 20.00 20.00 TransportGroup_instance4 is current now

20.00 TransportGroup_instance4 out of TransportGroup_IdleSet 20.00 Job34 out of TransportGroup_PickQ

20.00 TransportGroup_instance4 holds until 27.00 27.00 TransportGroup_instance4 is current now

27.00 Job34 to tail of PickLocation_instance 6_JobQ 27.00 PickLocation_instance 6 resumes at 27.00 27.00 TransportGroup_instance4 suspends

27.00 PickLocation_instance 6 is current now

27.00 PickLocation_instance 6 out of PickLocation_IdleSet 27.00 Job34 out of PickLocation_instance 6_JobQ 27.00 PickLocation_instance 6 holds until 187.00 187.00 PickLocation_instance 6 is current now

187.00 Task43 out of Job_Tasks

187.00 TransportGroup_instance4 resumes at 187.00 187.00 Empty Carrier Move4 created

187.00 Empty Carrier Move4 to tail of Job_Tasks 187.00 TransferGroup_instance6 resumes at 187.00 187.00 BulkMove4 created

187.00 BulkMove4 to tail of Job_Tasks

187.00 TransferGroup_instance34 resumes at 187.00 187.00 PickLocation_instance 6 to tail of PickLocation_IdleSet 187.00 PickLocation_instance 6 suspends

187.00 TransportGroup_instance4 is current now

187.00 TransportGroup_instance4 holds until 189.00 189.00 TransportGroup_instance4 is current now

189.00 Job34 to tail of PickLocation_instance 4_JobQ 189.00 PickLocation_instance 4 resumes at 189.00 189.00 TransportGroup_instance4 suspends

189.00 PickLocation_instance 4 is current now

189.00 PickLocation_instance 4 out of PickLocation_IdleSet 189.00 Job34 out of PickLocation_instance 4_JobQ 189.00 PickLocation_instance 4 holds until 269.00 269.00 PickLocation_instance 4 is current now

269.00 Task44 out of Job_Tasks

269.00 TransportGroup_instance4 resumes at 269.00 269.00 PickLocation_instance 4 to tail of PickLocation_IdleSet 269.00 PickLocation_instance 4 suspends

269.00 TransportGroup_instance4 is current now

269.00 TransportGroup_instance4 holds until 275.00 275.00 TransportGroup_instance4 is current now

275.00 Job34 to tail of PickLocation_instance 11_JobQ 275.00 PickLocation_instance 11 resumes at 275.00 275.00 TransportGroup_instance4 suspends

(35)

35 275.00 PickLocation_instance 11 is current now

275.00 PickLocation_instance 11 out of PickLocation_IdleSet 275.00 Job34 out of PickLocation_instance 11_JobQ

275.00 PickLocation_instance 11 holds until 307.00 307.00 PickLocation_instance 11 is current now

307.00 Task45 out of Job_Tasks

307.00 TransportGroup_instance4 resumes at 307.00

307.00 PickLocation_instance 11 to tail of PickLocation_IdleSet 307.00 PickLocation_instance 11 suspends

307.00 TransportGroup_instance4 is current now

307.00 TransportGroup_instance4 holds until 310.00 310.00 TransportGroup_instance4 is current now

310.00 Job34 to tail of TransferGroup_instance_JobQ 310.00 TransferGroup_instance61 resumes at 310.00

310.00 TransportGroup_instance4 to tail of TransportGroup_IdleSet 310.00 TransferGroup_instance61 is current now

310.00 TransferGroup_instance61 out of TransferGroup_IdleSet 310.00 Job34 out of TransferGroup_instance_JobQ

310.00 TransferGroup_instance61 holds until 315.00 315.00 TransferGroup_instance61 is current now

315.00 Task46 out of Job_Tasks 315.00 Job34 out of OrdersInSystem 315.00 Job_Tasks destroyed 315.00 Job34 out of Elements

315.00 TransferGroup_instance61 to tail of TransferGroup_IdleSet 315.00 TransferGroup_instance61 suspends

Afvoeren lege pallet en aanvoeren volle pallet 5.00 TransportGroup_instance is current now

5.00 TransportGroup_instance out of TransportGroup_IdleSet 5.00 Job31 out of TransportGroup_PickQ

5.00 TransportGroup_instance holds until 5.00 5.00 TransportGroup_instance is current now

5.00 TransportGroup_instance holds until 8.00 8.00 TransportGroup_instance is current now

8.00 PickLocation_instance 1 out of PickLocation_Machines 8.00 PickLocation_instance 1 to tail of PickLocation_Machines 8.00 Job31 to tail of PickLocation_instance 2_JobQ

8.00 PickLocation_instance 2 resumes at 8.00 8.00 TransportGroup_instance suspends

8.00 PickLocation_instance 2 is current now

8.00 PickLocation_instance 2 out of PickLocation_IdleSet 8.00 Job31 out of PickLocation_instance 2_JobQ 8.00 PickLocation_instance 2 holds until 168.00 168.00 PickLocation_instance 2 is current now

168.00 Task32 out of Job_Tasks

168.00 TransportGroup_instance resumes at 168.00 168.00 Empty Carrier Move created

168.00 Empty Carrier Move to tail of Job_Tasks //Of job of TransferGroup_instance 2 168.00 TransferGroup_instance2 resumes at 168.00

168.00 BulkMove created

168.00 BulkMove to tail of Job_Tasks //Of job of TransferGroup_instance 31 168.00 TransferGroup_instance31 resumes at 168.00

168.00 PickLocation_instance 2 to tail of PickLocation_IdleSet 168.00 PickLocation_instance 2 suspends

168.00 TransferGroup_instance2 is current now

(36)

36 168.00 TransferGroup_instance31 is current now

168.00 TransferGroup_instance31 holds until 173.00 173.00 TransferGroup_instance2 is current now

173.00 Job2 to tail of TransportGroup_JobQ

173.00 TransferGroup_instance2 to tail of TransferGroup_IdleSet 173.00 TransferGroup_instance2 suspends

173.00 TransferGroup_instance31 is current now 173.00 Job37 to tail of TransportGroup_JobQ

173.00 TransferGroup_instance31 to tail of TransferGroup_IdleSet 173.00 TransferGroup_instance31 suspends

203.00 TransportGroup_instance5 is current now 203.00 Job2 out of TransportGroup_JobQ

203.00 TransportGroup_instance5 holds until 206.00 //Moves to position of empty carrier 206.00 TransportGroup_instance5 is current now

206.00 TransportGroup_instance5 holds until 214.00 //Moves to empty carrier drop-off 214.00 TransportGroup_instance5 is current now

Cytaty

Powiązane dokumenty

723 — дал1 по- клик на це джерело подаемо в круглих дужках у тс кет i статп з використанням скорочення ГРНП, шеля якого подаемо вказ1вку

Sumując powyższe oceny należy stwierdzić, że recenzowana książka, pomimo kilku dyskusyjnych punktów, jest godna polecana nie tylko studentom, lecz także

Quandoque bonus dormitat homerus / Quandoque bonus dormitat home-..

tuje trudności w nauczaniu wymowy polskiej w środowisku bułgarskojęzycznym oraz wskazuje najczęściej popełniane przez studentów polonistów z Uniwersytetu w Wielkim Tyrnowie

The public facilities on the roof bring the vigour of the people and city inside the building, service indus- try, retail business, dining and accommodation industries will form in

Zamiast wspierać działania na rzecz poprawy warunków nauki, Ministerstwo zniechęca młodzież do studiów humanistycznych, stwierdzając „w oficjalnej wy- kładni Krajowych

Tekla Moczulska, córka radzyńskiego podprefekta wyszła za mąż za Karola Łaskiego. Ten był synem Antoniego, chorążego i posła łukowskiego. pisarzem konsumpcyjnym w

The aim of the article is to present the reception of one of the most important records of Orthodox-Christian literature - the Kiev-Pechery Patericon (The Patericon of