Masterproef Integra e van een gesimuleerd produc eproces binnen de logis eke opstelling (Howest) Studiegebied Industriële wetenschappen en technologie Opleiding Master of Science in de industriële wetenschappen: elektrotechniek Afstudeerrich ng Automa sering Academiejaar 2011-2012
Marijn Delongueville Academische bachelor- en masteropleidingen, Graaf Karel de Goedelaan 5, 8500 Kortrijk
Masterproef Integra e van een gesimuleerd produc eproces binnen de logis eke opstelling (Howest) Studiegebied Industriële wetenschappen en technologie Opleiding Master of Science in de industriële wetenschappen: elektrotechniek Afstudeerrich ng Automa sering Academiejaar 2011-2012
Marijn Delongueville Academische bachelor- en masteropleidingen, Graaf Karel de Goedelaan 5, 8500 Kortrijk
Voorwoord Op het einde van het derde jaar werd mij gevraagd een masterproef onderwerp vast te leggen uit een reeks van voorstellen met sterk uiteenlopende onderwerpen. Na het verzamelen van informa e omtrent enkele voorstellen sprong het ontwikkelen van een gesimuleerd proces binnen de logis eke opstelling er uit dankzij zijn interessant, vernieuwend en leerrijk karakter. Mijn dank gaat uit naar Dhr. Kurt Decock van de universiteit Gent waarvan ik het programma Tecnoma x Plant Simula on en een inleiding hieromtrent mocht ontvangen, alsook bij problemen was er steeds de nodige ondersteuning. Na een stage gedurende twee weken in de zomervakan e en met de start van het schooljaar begon dan het echte werk. Tijdens het uitwerken van een proces, verder leren werken met de so ware, het schrijven van de thesis en al het andere werk die bij een masterproef komt kijken, kon ik steeds rekenen op de steun van mijn interne promotoren Johannes Co yn en Dieter Vandenhoeke, waarvoor dank. Als laatste wil ik alle medewerkers/docenten binnen Howest,mijn medestudenten, famillie en vrienden bedanken die me bij het uitwerken van deze masterproef hebben geholpen. Bedankt voor de raad en steun gedurende het hele jaar.
i
Abstract The complex dynamical behaviour of every process or system can be copied through the means of discrete event simula on by a computer model. Adjus ng produc on variables, such as buffer sizes, can be simulated. In this lies the great advantage of simula on. In the industrial world, most companies do not wish to stop a produc on process, just to try a new set of parameters or setup in their installa on, because it is not known if this wil improve the process. In these situa ons, simula on can give answers to a lot of ques ons such as where lies the bo leneck, what is the ideal buffer size, etc. Even non exis ng produc on lines can first be tested in a simulated environment. [1] In the Howest in Kortrijk, the centre of exper se in automata on, XiaK, is preparing to build a miniature plant. Already, a logis cs system and a warehouse-system are built. Now a process is the next step. The idea is to first test a process in a simula on model before actually building it. In this way the feasibility of the process will be clear and some problems may be prevented in advance. The first step in this project is ge ng to know the simula on so ware Tecnoma x Plant Simula on 10. This progam makes use of a variety of objects that represent the various types of machines, work schedules, workers, etc. Each of these objects has its own set of variables that have to be set for it to work. It's the co-opera on between all the objects that gives the simula on model it's unique working by witch it represents the real system. Next a realis c process has to be thought out, keeping in mind that in the future it has to be possible to physically build it. Out of many op ons such as bending metal to various shapes, the prin ng of booklets, etc. the choice went to the assembly of two sorts of cube-puzzels. The assembly takes place in two stages, the first from the resources to the seperate puzzle pieces and the second turns the puzzel pieces together to form the cubes. The process works in a pull system wich means that when an order is inserted, the requested number of cubes is retracted from the buffers. If nessecary, produc on of the cubes starts wich pulls resources out of the resourcebuffers. When their stock runs low, they in turn ask more resources from the source. All of this has to be integrated into the logis cs system that consists of miniature trains that is already present. This is realised by the crea on of an MES or Manufactering Execu on System witch controls the orders, the resource requests and the arrival of resources. This is simulated by the crea on and reading of XML-files by the simula on and the MES. This MES also sends commands to the LES or Logis cs Execu on System witch controls the logis cs system in witch the process has to be integrated. This LES has already been constructed by a previous project so this can be adjusted and reused. When resources are requested, the LES will send out a train. When it arrives at its loca on, the XML for the arrival of resources is placed in the correct folder. The same happens when a request for cubes is sent out and in this case the XML for a cube request is placed again in the correct folder. In the end, the simula on was completed in a realis c way and func ons completely on it's own together with the created MES. The integra on into the logis cs system was succesfull and everything co-operated well. The advantages and disadvantages of simula on became clear. Thanks to simula on, there is no need to tamper with the real life process to try out something new. Changing certain parameters requires nothing more than some programming. The down side on simula on is it takes some me to learn to work with the so ware and in most cases, it represents a certain investment. Future development will lead to the integra on into the complete logiscs system. For this project a smaller system was created since the complete version has to be moved to a new building. Also a er more research, the simulated process will be constructed in real life and again integrated in the logis cs system.
ii
Lijst met a or ngen B BOM
Bill Of Material
F FIFO
First In First Out
H howest
Hogeschool West-Vlaanderen
K KPI
Key Produc on Indicator
L LES LIFO
Logis cs Execu on System Last In First Out
M MES MU MySQL
Manufacturing Execu on System Mobile Unit My Structured Query Language
O ODBC OLE
Open Database Connec vity Object Linking and Embedding
iii
OPC
OLE for Process Control
X XML
eXecutable Markup Language
iv
Inhoudsopgave 1 Inleiding 1.1 Probleemstelling - Uitgangspunt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Doelstellingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Projectaanpak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Theore sche Achtergrond 2.1 Simula e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Ontwikkeling en terminologie . . . . . . . . . . . . . . . . . . . . 2.2.1 Onderverdeling in verschillende types simula emodellen . 2.2.2 Object georiënteerde simula e . . . . . . . . . . . . . . 2.3 Simula e in opleidingen en trainingen . . . . . . . . . . . . . . . 2.4 Simula e in de industrie . . . . . . . . . . . . . . . . . . . . . . 2.5 Voorbeelden in diverse omgevingen . . . . . . . . . . . . . . . . 2.5.1 Automobielsector . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Biomechanica . . . . . . . . . . . . . . . . . . . . . . . . 2.5.3 Stedelijke simula e . . . . . . . . . . . . . . . . . . . . . 2.5.4 Digitale levenscyclus . . . . . . . . . . . . . . . . . . . . 2.5.5 Industriële simula e . . . . . . . . . . . . . . . . . . . . 2.6 Voor- en nadelen van simula e . . . . . . . . . . . . . . . . . . . 2.7 Emula e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.1 Digitale duurzaamheid . . . . . . . . . . . . . . . . . . . 2.7.2 Emula e bij het testen van systemen voor procescontrole
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
1 1 1 1 3 3 3 4 5 6 7 8 8 8 8 9 9 10 10 11 11
3 Kennismaking met Tecnoma x Plant Simula on
12
4 Het proces 4.1 Keuze proces . . . . . . . . . . . . . . . . . . . 4.2 Uitwerking in plant simula on . . . . . . . . . . 4.2.1 Algemene werking . . . . . . . . . . . . 4.2.2 Implementa e . . . . . . . . . . . . . . 4.2.3 Communica e met de treintjesopstelling 4.2.4 Opbouw 3D model . . . . . . . . . . . .
. . . . . .
13 13 14 14 15 22 26
on System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29 29 29 29
6 De prak sche opstelling 6.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 De opstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Informa estromen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31 31 31 33
7 Conclusies
34
5 Het MES - Manufacturing Execu 5.1 Inleiding . . . . . . . . . . 5.2 Theore sche achtergrond . 5.3 VB-project . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
v
A Bijlage 1: Tecnoma x Plant Simula on - Uitleg enkele componenten A.1 Belangrijkste componenten . . . . . . . . . . . . . . . . . . . . A.1.1 De toolbox . . . . . . . . . . . . . . . . . . . . . . . . A.1.2 Het Dialog Window (dialoogvenster) . . . . . . . . . . A.1.3 Material Flow Objects . . . . . . . . . . . . . . . . . . A.1.4 Resource Objects . . . . . . . . . . . . . . . . . . . . . A.1.5 Informa on Flow Objects . . . . . . . . . . . . . . . . . A.1.6 User Interface Objects . . . . . . . . . . . . . . . . . . A.1.7 Mobile Objects . . . . . . . . . . . . . . . . . . . . . . A.2 Enkele testmodellen . . . . . . . . . . . . . . . . . . . . . . . A.2.1 Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.2 De Treintjesopstelling . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
36 36 37 38 38 40 41 42 43 43 43 45
B Bijlage 2: Codering methodes Plant Simula on
48
C Bijlage3: Codering van het MES
49
vi
Lijst van figuren 2.1 2.2 2.3 2.4 2.5
Het logo van de simula eso ware Tecnoma x Plant Simula on . . . . . . . . . . . . . . . . . . Verandering in de jd van een discrete variabele . . . . . . . . . . . . . . . . . . . . . . . . . . Verandering in de jd van een con nue variabele . . . . . . . . . . . . . . . . . . . . . . . . . . Een voorbeeld van live simula e: baseball pitch simulator . . . . . . . . . . . . . . . . . . . . . Een voorbeeld van virtuele simula e: de VirtuSphere Virtual-Reality Simulator for Mil/LE Tac cal Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Een a eelding van een simulator in de automobielsector . . . . . . . . . . . . . . . . . . . . . 2.7 Een a eelding van een simulator gebruikt om knie-implantaten te vergelijken . . . . . . . . . . 2.8 Een a eelding van een stadssimulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9 Een a eelding van een simulator, gebruikt voor de bepaling van optredende krachten in een ontwerp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10 De func e van een emulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 11
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21
De Bill Of Material van een Soma Cube . . . . . . . . . . . . . . . . . . . . . . . . De Bill Of Material van een Bedlam Cube . . . . . . . . . . . . . . . . . . . . . . . Het principeschema van het te implementeren proces . . . . . . . . . . . . . . . . Het Main Proces geïmplementeerd in Plant Simula on . . . . . . . . . . . . . . . . Het Main Proces geïmplementeerd in Plant Simula on opgedeeld in vier onderdelen Het vierde en laatste deel van het Main Proces . . . . . . . . . . . . . . . . . . . . Het derde en voorlaatste deel van het Main Proces . . . . . . . . . . . . . . . . . . Het onderliggend frame CubeAssembly . . . . . . . . . . . . . . . . . . . . . . . . Het tweede deel van het Main Proces . . . . . . . . . . . . . . . . . . . . . . . . . Het eerste deel van het Main Proces . . . . . . . . . . . . . . . . . . . . . . . . . . De OPCInterface van Plant Simula on . . . . . . . . . . . . . . . . . . . . . . . . . Het dialoogvenster van de OPCInterface . . . . . . . . . . . . . . . . . . . . . . . . Het itemvenster van de OPCInterface . . . . . . . . . . . . . . . . . . . . . . . . . De XMLInterface van Plant Simula on . . . . . . . . . . . . . . . . . . . . . . . . . Het dialoogvenster van de XMLInterface . . . . . . . . . . . . . . . . . . . . . . . . Methode om een 3D-Model aan te maken . . . . . . . . . . . . . . . . . . . . . . Methode om de schaal aan te passen van een 3D-component . . . . . . . . . . . . De knop Plain Graphics in Plant Simula on . . . . . . . . . . . . . . . . . . . . . . Methode om een .vrml file te importeren . . . . . . . . . . . . . . . . . . . . . . . Methode om een .s3d-bestand aan te maken . . . . . . . . . . . . . . . . . . . . . Het afgewerkte 3D Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
13 14 14 15 16 17 17 18 19 21 23 23 23 24 25 26 27 27 28 28 28
5.1
De form van het MES geprogrammeerd in Visual Basic . . . . . . . . . . . . . . . . . . . . . . .
30
6.1 6.2 6.3
De logis eke opstelling aanwezig binnen Howest . . . . . . . . . . . . . . . . . . . . . . . . . . Een schema sche voorstelling van de prak sche opstelling . . . . . . . . . . . . . . . . . . . . . De verschillende informa estromen binnen de prak sche opstelling . . . . . . . . . . . . . . . .
31 32 33
A.1 A.2 A.3 A.4 A.5
Een werkblad of frame in Tecnoma x Plant Simula on . . . . . Toevoegen van func onaliteiten via de Manage Class Library . . Toevoegen van componenten uit de Toolbox in Plant Simula on Een voorbeeld van een dialog window in Plant Simula on . . . De Event Controller component . . . . . . . . . . . . . . . . .
36 37 37 38 38
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
3 5 5 6 7 8 8 9
vii
A.6 A.7 A.8 A.9 A.10 A.11 A.12 A.13 A.14 A.15 A.16 A.17 A.18 A.19 A.20 A.21 A.22 A.23 A.24 A.25 A.26 A.27 A.28
De Source component . . . . . . . . . . . . . . . . . . . . . . . . . . . De Drain component . . . . . . . . . . . . . . . . . . . . . . . . . . . . De Interface component . . . . . . . . . . . . . . . . . . . . . . . . . . De Line component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . De Track component . . . . . . . . . . . . . . . . . . . . . . . . . . . . De TwoLaneTrack component . . . . . . . . . . . . . . . . . . . . . . . De SingleProc component . . . . . . . . . . . . . . . . . . . . . . . . . De Buffer component . . . . . . . . . . . . . . . . . . . . . . . . . . . . De AssemblySta on component . . . . . . . . . . . . . . . . . . . . . . De Connector component . . . . . . . . . . . . . . . . . . . . . . . . . De Method component . . . . . . . . . . . . . . . . . . . . . . . . . . . De Table File component . . . . . . . . . . . . . . . . . . . . . . . . . . De Trigger component . . . . . . . . . . . . . . . . . . . . . . . . . . . De Trigger Period instellen van een Trigger component . . . . . . . . . . Instellen van de Trigger Ac ons . . . . . . . . . . . . . . . . . . . . . . Een En ty component . . . . . . . . . . . . . . . . . . . . . . . . . . . Een Container component . . . . . . . . . . . . . . . . . . . . . . . . . De Transporter component . . . . . . . . . . . . . . . . . . . . . . . . . Het model van de Tutorial uit Plant Simula on . . . . . . . . . . . . . . Het model van de Treintjesopstelling zoals aanwezig in Howest . . . . . . De aangemaakte User Interface voor het model van de Treintjesopstelling Het model van het SourceTreintjes model . . . . . . . . . . . . . . . . . De SequenceTable van het model SourceTreintjes . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
38 39 39 39 39 39 40 40 40 40 41 41 42 42 42 43 43 43 44 45 45 46 47
viii
1
Inleiding
Het complexe dynamische gedrag van ieder proces kan via discrete-eventsimula e met behulp van een computer model nagebootst worden. Toevallige fouten, zoals spanningsuitval, of het vastlopen van een machine, waardoor een bepaald deel van een installa e s lvalt, kunnen gesimuleerd worden. Daarbij kan een oplossing gezocht worden zodat de installa e niet vastloopt. Ook aanpassen van produc eparameters zoals verwerkings jden of buffergroo es is mogelijk. Hierin blijkt al direct een groot voordeel van simula es, aangezien het niet gewenst is bij een echte produc elijn fouten handma g op te wekken of even de produc e s l te leggen om nieuwe dingen uit te proberen. In de simula e veranderingen doorvoeren, gee al snel een idee van hoe effec ef een oplossing zal zijn. Andere parameters, zoals de snelheid waarmee een arbeider zijn taak uitvoert, kunnen in de simula e opgenomen worden door gebruik te maken van sta s sche gegevens. Zo wordt voor de jdsduur van een bepaalde handeling bijvoorbeeld een normale verdeling ingesteld waarbij alle parameters zoals het gemiddelde, de standaarddevia e, minimum, maximum, etc. ingegeven worden. Een constante snelheid ingeven, is echter ook mogelijk. [1]
1.1 Probleemstelling - Uitgangspunt In het exper secentrum automa sering binnen Howest, XiaK, is het de bedoeling een mini-fabriek op te bouwen. Er is reeds een logis eke opstelling en een mini-magazijn aanwezig maar er moet nog steeds een proces geïntegreerd worden. Er werd besloten eerst een simula e op te bouwen om eerst te onderzoeken welke de mogelijkheden zijn vooraleer aan het fysisch opbouwen te beginnen. Zo kunnen eventuele problemen op voorhand reeds opduiken. Simula e van processen is ook steeds meer gewenst vanuit de bedrijfswereld. Of het nu gaat om produc e, opslag, afwerking, etc. , simula e werpt meer licht op de op malisa e van het betreffende proces. Ook nieuwe, nog niet gebouwde, installa es kunnen op voorhand gesimuleerd worden om onder meer de efficiën e ervan te bepalen. Deze masterproef start hiervan uit om meer inzicht te verwerven in het simuleren van processen.
1.2 Doelstellingen Eén van de doelstellingen bij deze masterproef is het uitwerken van een realis sch proces in de simula e so ware Tecnoma x Plant Simula on, rekening houdende met het feit dat later ook een fysische implementa e van het proces binnen de treintjesopstelling tot de mogelijkheden behoort. De simula e zal ook moeten geïtegreerd worden binnen de treintjesopstelling. Verder is het begrijpen en kunnen gebruiken van de simula eso ware ook een zeer belangrijk onderdeel van deze masterproef. De belangrijkste doelstelling is het ui esten van een proces die de latere fysische opbouw ervan eenvoudiger kan maken.
1.3 Projectaanpak Deze masterproef start met een kennismaking met het programma Tecnoma x Plant Simula on zodat de gebruikte componenten van het simula epakket reeds duidelijk zijn voor de simula e van start gaat. Hierna volgt de uitwerking van een realis sch proces met later de implementa e in plant simula on. Deze simula e communiceert dan met een reeds aanwezige treintjesopstelling in Howest. Hiervoor moet de communica e met de treintjesopstelling worden uitgewerkt. Ook moet er een prak sche opstelling opgebouwd worden, hiervoor worden onderdelen van de treintjesopstelling gebruikt. De bediening van de treintjesopstelling zal moeten bekeken
1
worden zodat een klein netwerk kan opgebouwd worden. Als laatste stap is er de bediening en 3D-visualisa e van de simula e met een duidelijke interface voor de gebruiker. Hiervoor wordt een MES uitgewerkt die de a andeling van de orders voor zijn rekening neemt. Het simula emodel en de integra e ervan is een voorbereiding op het later fysisch opbouwen van het proces.
2
2
Theore sche Achtergrond
2.1 Simula e Simula e is het imiteren van een echt proces of systeem in de jd. Hiervoor zijn op de markt verschillende programma's beschikbaar zoals o.a. Flexsim, Arena, etc. Deze masterproef maakt gebruik van het programma Tecnoma x Plant Simula on 10. Voor de simula e op zich van start kan gaan, is eerst een goeie kennis vereist van het te simuleren proces en moet een model ontwikkeld worden. Dit model stelt de fysische karakters en het gedrag voor van het proces in de werkelijkheid. Dit zijn de parameters die het proces zijn unieke werking geven. Dit gaat over instel jden van machines, overgangsmechanismen, bewerkings jden, etc.
Figuur 2.1: Het logo van de simula eso ware Tecnoma x Plant Simula on
Simula e wordt gebruikt in takken van de industrie zoals opleidingen, performan everhoging, foutsimula e, veiligheidsonderzoek, etc. Het grote voordeel van simula e ligt er namelijk in dat er geen aanpassingen moeten gemaakt worden aan de installa e. Dikwijls wil de installa e aanpassen ook zeggen dat de produc e s lgelegd moet worden, wat meestal niet mogelijk is omdat hier grote produc everliezen mee gepaard kunnen gaan. Simula e wordt dus gebruikt wanneer er geen aanpassingen kunnen gebeuren aan de installa e omdat de installa e niet toegankelijk is, omdat het te gevaarlijk is de installa e te benaderen of omdat de installa e gewoonweg nog niet bestaat. Voor het simuleren van een proces beschikt iedere simula eso ware over een arsenaal aan tools die de verschillende onderdelen van het proces - zoals bijvoorbeeld een CNC-machine - voorstellen maar ook communica etools zoals interfaces voor de verwerking van XML-bestanden, Excel-bestanden, communica e via OPC, het integreren van databases (bvb. MySQL), etc. Niet enkel machine parameters maar ook het gedrag van mensen kan gemodelleerd worden via simula eso ware. De werkuren van de arbeiders, eventueel in verschillende shi s, en ook handelingen, zoals het manueel verplaatsen van een product, kunnen in het simula emodel geïntegreerd worden. [2]
2.2 Ontwikkeling en terminologie Historisch gezien hee simula e zich ontwikkeld in verscheidene takken ook buiten de industrie zoals de ruimtevaart waarbij simula e het gevoel van de ruimte moet nabootsen. Maar in de 20e eeuw hee de studie van automa sche regelings- en communica emechanismen ervoor gezorgd dat er enigszins een standaardisa e plaatsvond over al deze takken heen.
3
2.2.1 Onderverdeling in verschillende types simula emodellen Een eerste onderverdeling in simula e modellen is deze tussen fysische en interac eve simula e. Fysische simula e verwijst naar de simula e waarin echte objecten in het model opgenomen worden om een zo hoog mogelijke graad van levensechtheid te behalen. Dit hoe zelfs geen computersimula e te zijn, modeltreinen en -boten zijn ook een voorbeeld van fysische simula e. Bij een computerssimula e kunnen de we en van de fysica opgenomen worden in een fysische simula e zoals de zwaartekracht, samendrukbaarheid van voorwerpen, etc. om het uiteindelijke doel van een levensechte ervaring te verkrijgen. Interac eve simula e is dan weer een speciaal geval van fysische simula e waarbij de mens en het menselijk gedrag opgenomen worden in de simula e zoals een vluchtsimulator. Simula emodellen kunnen verder ook nog onderverdeeld worden in sta sche en dynamische simula emodellen. Sta sche simula e of ook wel "Monte Carlo" simula e genaamd, stelt een systeem voor op een bepaald punt in de jd en houdt dus geen rekening met jdsverloop. Dynamische simuala e daarentegen stelt een systeem voor aan de hand van de evolu e ervan in de jd. [3] Een volgende onderverdeling is deze tussen determinis sche en stochas sche modellen. Determinis sche modellen beva en geen random variabelen. Deze modellen beva en een vaste set inputs welke verwerkt worden en een vaste set outputs genereren. Stochas sche modellen daarentegen beva en wel een aantal random inputs die dan ook weer tot een aantal random outputs leiden. Om dit te verduidelijken kan volgend voorbeeld aangehaald worden. Bij de tandarts komen pa ënten binnen. Mochten deze pa ënten op vaste intervallen toekomen, hun behandeling een vaste jd duren met telkens dezelfde behandeling, zou dit kunnen gesimuleerd worden met een determinis sch model. De realiteit is echter volledig anders. De jds ppen waarop de pa ënten toekomen en de behandelingsduur is telkens verschillend. Ook hee niet elke pa ënt dezelfde behandeling nodig waardoor dit enkel met een stochas sch model zou kunnen gesimuleerd worden. [4] Een laatste onderverdeling is deze tussen discrete en con nue simula e. Weinig systemen in de prak jk zijn volledig discreet of volledig con nu. De meeste modellen zijn dus een combina e van de twee maar meestal is één van de twee prominenter dan de andere waardoor de onderverdeling toch mogelijk is. Bij een discreet systeem veranderen de variabelen slechts op bepaalde jds ppen in de jd. Een voorbeeld hiervan is te zien op de grafiek in figuur 2.2. Denk bijvoorbeeld aan het aantal lampen dat per seconde geproduceerd wordt. In principe is het niet mogelijk een halve lamp te produceren. Enkel gehele aantallen zijn mogelijk.
4
Figuur 2.2: Verandering in de jd van een discrete variabele
Figuur 2.3: Verandering in de jd van een con nue variabele
Bij een con nu systeem daarentegen kan de variabele constant veranderen gedurende de jd. In figuur 2.3 is hiervan een voorbeeldgrafiek te zien. Denk hierbij aan het debiet van een waterleiding dat con nu verandert. Elk debiet is mogelijk en niet enkel gehele waardes. [2]
2.2.2 Object georiënteerde simula e Bij object georiënteerde simula e wordt het gedrag van een systeem gemodelleerd via de interac e van verschillende objecten met elkaar gedurende de jd. Verzamelingen van deze objecten, klasses genaamd, bundelen de karakteris ek en func onaliteiten van de objecten. Het idee achter object georiënteerd ontwerpen is zeer intuï ef omdat de wereld rondom ons gemakkelijk kan voorgesteld worden als een samenwerking tussen verschillende objecten. In een industriële omgeving zijn deze objecten de machines, de arbeiders, de gereedschappen, transportbanden, etc. Ook de planningen, produc etabellen, de routes van de onderdelen en andere informa estromen kunnen ook gezien worden als objecten. De interac e tussen al deze objecten zorgt ervoor dat een systeem zijn unieke werking krijgt. [2]
5
2.3 Simula e in opleidingen en trainingen Simula e wordt vaak gebruikt bij het trainen van zowel burgers als militair personeel. Dit gebeurt meestal wanneer het te duur of gevaarlijk is om het werkelijke materiaal te gebruiken in de werkelijke wereld. In zo'n situa es wordt er veel jd besteed aan het aanleren van vaardigheden in een veilige maar toch zo levensecht mogelijke simula eomgeving. Hierdoor kunnen fouten toegestaan worden zonder dat er echt gevaar bestaat. Trainingssimula es worden typisch onderverdeeld in 3 categoriën. • "Live" Simula e • "Virtuele" Simula e • "Construc eve" Simula e Bij Live simula e gebruiken echte personen levensechte simula esystemen en -werktuigen in een echte omgeving. In figuur 2.4 is een baseball pitch-simulator te zien wat hiervan een voorbeeld is.
Figuur 2.4: Een voorbeeld van live simula e: baseball pitch simulator
De simulator bestaat uit een projec escherm dat een simula e van een pitcher/werper speelt met een gat in het midden waaruit de baseball afgeschoten wordt naar de slagman. Ook hierbij kunnen ook de werpsnelheid, effect van de worp, etc. ingesteld worden. Bij virtuele simula e gebruiken de personen dan weer gesimuleerde systemen in een synthe sche omgeving. In figuur 2.5 is de VirtuSphere Virtual-Reality Simulator for Mil/LE Tac cal Training te zien. Dit is een virtueel simula e systeem waarbij de gebruiker getraind wordt in diverse militaire gevechtssitua es. De gebruiker wandelt hierbij in een bol die vrij kan rondbewegen terwijl hij een draadloze virtual reality headset ophee . Via deze deze headset worden de scenario's afgespeeld en kan de gebruiker hieraan deelnemen.
6
Figuur 2.5: Een voorbeeld van virtuele simula e: de VirtuSphere Virtual-Reality Simulator for Mil/LE Tac cal Training
Bij construc eve simula e gaat het om gesimuleerde personen met gesimuleerde werktuigen in een synthe sche omgeving. Hier gaat het dus meestal om een een simula esysteem op een pc waarmee de gebruiker werkt. Simula es binnen een opleiding zijn gefocust op specifieke taken. De term "Microworld" wordt gebruikt om simula es te beschrijven die eerder een abstract concept weergeven in plaats van een realis sch omgeving of in sommige gevallen een realis sche wereld in een simplis sch jasje om de hoofdconcepten beter te begrijpen.
2.4 Simula e in de industrie Industriële produc e is een van de grootste toepassingsgebieden voor simula e. Over heel de wereld en in heel wat sectoren vindt simula e zijn toepassing ter op malisa e van processen. Deze waardevolle tool wordt gebruikt door ingenieurs om het effect van investeringen in materiaal en faciliteiten te onderzoeken. [5] [2] Een ander doel van simula e is een getal plakken op de soms moeilijk te meten performan e van een systeem. Vaak gebruikte grootheden hiervoor zijn: • Aantal verwerkte producten onder gemiddelde en piekbelas ng • Systeemcyclus (produc e jd van één eenheid) • Bo lenecks in het systeem • Wachtrijen en vertragingen
7
• etc.
2.5 Voorbeelden in diverse omgevingen Simula e vindt naast de tradi onele toepassingen zoals mechanische en elektrische simula e zijn toepassing in verschillende gebieden zoals transport, biomechanica, etc. [6] Hieronder volgen enkele voorbeelden.
2.5.1 Automobielsector Een simulator binnen de automobielsector biedt de mogelijk om de gedragingen van andere voertuigen en bestuurders na te bootsen in een veilige, virtuele omgeving waardoor de bestuurder het gevoel krijgt alsof die in zijn of haar eigen voertuig zit. Figuur 2.6 beeldt zo'n simulator af.
Figuur 2.6: Een a eelding van een simulator in de automobielsector
2.5.2 Biomechanica Deze simulators worden gebruikt voor de analyse van dynamische bewegingen, sportpresa es, medische ontwerpen, etc.
Figuur 2.7: Een a eelding van een simulator gebruikt om knie-implantaten te vergelijken
In figuur 2.7 is een simula emodel te zien die gebruikt wordt om knie-implantaten te vergelijken. Zo kunnen de bewegingen en zelfs de slijtage van een knie-implantaat gemodelleerd worden. Op deze manier kunnen nieuwe componenten voor implantaten getest worden. [7]
2.5.3 Stedelijke simula e Stedelijke simula e wordt gebruikt door ingenieurs om te analyseren hoe steden zullen evolueren als reac e op bijvoorbeeld poli eke beslissingen. Stadssimulators zijn over het algemeen gebaseerd op een "Agent". Dit is een
8
en teit die beslissingen tre binnen een simula e.
Figuur 2.8: Een a eelding van een stadssimulator
In figuur 2.8 is het model van een stadssimula e te zien. Deze kan gebruikt worden om nieuwe ontwikkelingen en bouwprojecten binnen een stad te simuleren voorafgaande aan de effec eve construc e. Ook kan de gebruiker kiezen tussen verschillende naviga emethodes zoals vluchtmode, wandelmode, etc. om het model te bekijken.
2.5.4 Digitale levenscyclus Meer en meer wordt simula e toegepast bij het ontwerpen met behulp van CAD, CAM en CAE so ware. Het gebruik van simula e gedurende de levenscyclus van een product vooral in de ontwerpfase kan grote voordelen met zich meebrengen zoals bijvoorbeeld het verminderen of zelfs wegnemen van het aantal prototypes of performantere producten. Desondanks hee simula e voor veel bedrijven nog niet de verwachte voordelen gehaald.
Figuur 2.9: Een a eelding van een simulator, gebruikt voor de bepaling van optredende krachten in een ontwerp
In figuur 2.9 is een simulator te zien die de optredende krachten a eeldt bij de normale werking van een ontwerp. Zo'n simula emodel kan ook meer duidelijkheid geven omtrent trillingseffecten, structurele sterkte en duurzaamheid, thermische effecten, etc. [8]
2.5.5 Industriële simula e Simula e is een belangrijke tool in de ingenieurswereld en in elk systeem dat vele processen bevat. Bijvoorbeeld in de elektrotechniek kunnen vertragings jden gemodelleerd worden om de propaga e jd en faseverschuiving voor te stellen. In veel toepassingen rekent men op wiskundige berekeningen en computergestuurd onderzoek om een correcte simula e op te bouwen. Vaak is echter een wiskundige berekening niet voldoende. Het simuleren van vloeistof gebaseerde processen rekent vaak op zowel het wiskundige als op het fysische aspect van een simula e.
9
2.6 Voor- en nadelen van simula e De voordelen van simula e werden reeds kort aangehaald. • Geen fysische problemen: dankzij simula e hoe het bestaande systeem niet aangepast worden wat dikwijls tot problemen kan leiden. • Verduidelijking: Aan de hand van simula e kan de werking van een bepaald proces of systeem verduidelijkt worden zonder dat aan het werklijke proces of systeem moet geprutst worden. • Planning: nieuwe installa es kunnen eerst gesimuleerd worden waardoor op voorhand al bepaalde problemen kunnen opgelost worden. • Visualisa e: aan de hand van simula e kan de werking van een proces gevisualiseerd worden waardoor meer inzicht in het proces kan verworven worden. Er zijn echter ook nadelen aan simula e verbonden. Samen met de voordelen zullen deze bepalen of het gepast is om gebruik te maken van simula e. • Kostprijs: simula epakke en zijn meestal niet goedkoop, het vergt dus een bepaalde investering om deze te implementeren. Dit gaat meestal over de licen es die bij de so ware horen. • Tijdsrovend: Het kost enige jd om eerst en vooral te leren werken met de so ware maar ook om het simula emodel op te bouwen en te zorgen dat het werkt naar de wensen en eisen van de gebruiker. • Dataconsumerend: simula e vergt heel wat data, welke niet al jd direct aanwezig is maar moet volgen uit de analyse van het te simuleren proces of systeem. Dit zijn de parameters die de objecten uit de simula e hun werking geven. • Geloofwaardigheid: Het is verleidelijk alles te geloven wat op een computerscherm te voorschijn komt. Zeker wanneer een simula e verreikt wordt met een visualisa e, wordt een realis sch beeld geschept. Bij het simuleren moet steeds kri sch naar de resultaten gekeken worden.
2.7 Emula e Iedere computer is de combina e van hardware en so ware. Indien één van deze twee wegvalt, stopt de werking van het systeem. Zowel hardware als so ware blij niet eeuwig jong. Hierbij is de kans dus groot dat documenten verloren gaan omdat deze op nieuwere versies niet meer te openen zijn. Hier biedt emula e een oplossing. Een emulator bootst een bepaald computerpla orm of -programma na op een ander pla orm of programma. Zo kunnen documenten geopend, of programma's worden geopend op systemen die hier eigenlijk niet voor bedoeld zijn. De emulator creëert als het ware een extra laag tussen het bestaand pla orm (Host) en het te emuleren pla orm (target) zoals afgebeeld in figuur 2.10.
10
Figuur 2.10: De func e van een emulator
Een voorbeeld van een emulator is VMware Player. Met VMware Player kan bijvoorbeeld een Windows 98 platform gebruikt worden (als target) op een Windows 7 hostpla orm. Hierdoor kunnen programma's die werken in Windows 98 maar niet in Windows 7 toch nog geopend worden. Het verschil tussen simula e en emula e is dus dat emula e het origineel systeem doet werken via een tussensysteem en simula e gaat het origineel systeem nabootsen. [9]
2.7.1 Digitale duurzaamheid Wanneer gesproken wordt over digitale duurzaamheid komen meestal twee termen naar boven: migra e en emula e. Migra e vormt het origineel document om naar een andere versie waardoor het terug op het targetpla orm te openen is. Denk maar aan Word-documenten in Office 2007 opslaan in Office 2003-formaat. Een nadeel hiervan is dat een deel van de func onaliteiten kunnen verloren gaan, terwijl deze soms juist heel belangrijk zijn. Nog een belangrijk nadeel van migra e is dat de conversie periodiek gebeurt wat het gevolg hee dat er meer fouten kunnen ontstaan in de verschillende, opeenvolgende migra estappen. Desondanks deze nadelen wordt emula e weinig toegepast binnen de digitale duurzaamheid. Een emulator ontwikkelen is zeer jdrovend en las g teneinde de emulator zo waarheidsgetrouw aan het origineel te krijgen. Ook is het vaak sneller en gebruiksvriendelijker om snel even het document om te vormen in plaats van een emulator te openen en zo het origineel bestand te bekijken. Voor gebruikers die echter geïnteresseerd zijn in de originele uitstraling en func onaliteit van een object, is emula e bij uitstek geschikt. [9]
2.7.2 Emula e bij het testen van systemen voor procescontrole Toegepast om produc eomgevingen hee emula e een andere betekenis. Hierbij betekent emula e dat de so ware componenten van het echte controlesysteem - zoals een PLC - geïntegreerd worden in de simula e. Op deze manier kan de verwerking van inputs die ingegeven worden in het echte controlesysteem en de genera e van outputs erdoor ook geïntegreerd worden in de simula e zonder dat daarvoor het controlesysteem moet aangesproken worden. Het voordeel hiervan is dat er geen interface moet ingevoegd worden in de simula e om de verbinding te maken met het controlesysteem, en dat de simula e autonoom kan werken. Het nadeel echter is dat er terug jd kruipt in het opbouwen van de emula e. [10]
11
3 Kennismaking met Tecnoma x Plant Simula on Plant Simula on maakt gebruik van objectgeöriënteerd ontwerp om een simula emodel op te bouwen. Hierbij kunnen diverse componenten ingevoegd worden om een simula e op te stellen. Al deze componenten stellen een onderdeel van het te simuleren proces voor. Sommige componenten kunnen ook voor meer dan één doeleinde gebruikt worden. Ieder van deze componenten hee zijn eigen parameters, kenmerken die moeten ingesteld worden. Het zijn deze instellingen die moeten geconfigureerd worden om zo de werking van een component bepalen. Zo is het de bedoeling het werkelijk gedrag zo goed mogelijk te gaan nabootsen. Door deze instellingen zullen er ook op bepaalde jds ppen gebeurtenissen/events gaan optreden. Door de componenten aan elkaar te koppelen zal ook het ene event een ander event gaan opwekken en door de juiste opeenvolging van de juiste componenten wordt het model opgebouwd om het reële fysische proces zo goed mogelijk na te bootsen. De instelling van deze parameters, wordt ook aangevuld met het coderen van methodes die worden getriggerd door de events hierboven besproken of door triggerobjecten die op een bepaald jds p of cyclisch een bepaalde methode oproepen. De code die zich in deze methodes bevindt kan op zijn beurt terug een andere methode triggeren of parameters van bepaalde objecten aanpassen. Een handige feature aan plant simula on is het toevoegen van methoden (programmeer-componenten) met voorgedefinieerde namen. Door een bepaalde naam aan een methode toe te kennen zal de code hierin aanwezig uitgevoerd worden op een bepaald jds p zonder dat deze aan een bepaalde trigger is toegekend. Verder bestaat de mogelijkheid om via verschillende interfaces de connec e te maken met andere systemen en programma's zoals MySQL, OPC-servers, XML-bestanden, Excel, TCP/IP, etc. Ook de func es van deze interfaces kunnen opgeroepen worden via de voorgenoemde codering in methodes. De combina e van al deze mogelijkheden in Plant Simula on zorgt ervoor dat een erg realis sch simula emodel kan opgebouwd worden. Met behulp van de handleiding [11] worden de verschillende componenten uit de so ware verduidelijkt. Voor meer verduidelijking over deze componenten en het opstellen van een simula e wordt verwezen naar bijlage A.
12
4
Het proces
4.1 Keuze proces Allereerst werden enkele op es overwogen. Hiervoor werd gekeken naar de industrie en uit welke sectoren welke processen mogelijk zijn. Enkele van deze op es zijn hieronder opgesomd. • Automobielsector: assemblage van een wagen • Metaalsector: Plooien van metaalplaten tot verscheidene vormen (kubus, cilinder, etc.) • Papierindustrie: Drukken van pamflets, posters, etc. • Speelgoedindustrie: combineren lego-blokjes op een figuur te maken • Speelgoedinstrie: Lijmen van hout tot puzzels Uit de verschillende op es die naar voor kwamen vanuit de industrie werd uiteindelijk één enkel proces worden gekozen voor verdere uitwerking in Plant Simula on. Rekening houdende met het feit dat het proces later nog fysisch realiseerbaar moet zijn binnen de treintjesopstelling. Dit wil zeggen dat het geen al te groot proces mag zijn maar toch groot genoeg zodat het masterproef waardig blij . Uit al deze overwegingen komt de assemblage van houten blokjes tot twee houten puzzels naar voor, de Soma en Bedlam Cube. Dit zijn kubussen van respec evelijk 3x3x3 en 4x4x4 die respec evelijk uit 7 en 13 kleinere houten puzzelstukjes bestaan die op hun beurt terug opgemaakt zijn uit houten blokjes van 1x1x1 en 2x1x1. De Bill Of Material (BOM) van beide kubussen staan respec evelijk afgebeeld in figuur 4.1 en 4.2. Een BOM is een uiteenze ng van uit welke grondstoffen en deelproducten (of Mobile Units/MU's) een bepaald product bestaat.
Figuur 4.1: De Bill Of Material van een Soma Cube
13
Figuur 4.2: De Bill Of Material van een Bedlam Cube
4.2 Uitwerking in plant simula on 4.2.1 Algemene werking
Figuur 4.3: Het principeschema van het te implementeren proces
In figuur 4.3 is een principeschema te zien van het te implementeren proces. De orders worden verwerkt en indien de produc e van kubussen nodig is, wordt dit gerealiseerd via een pull-systeem. Het XML-bestand CubeRequest, CR, wordt binnengelezen en dan wordt het bestelde aantal van beide kubussen geëxporteerd. De drain vraagt de correcte kubussen aan, aan de buffers die de kubussen beva en. Op het moment dat de voorraad beneden een bepaald minimum valt, wordt de opdracht tot produc e doorgegeven aan de assembly. Deze vraagt op zijn beurt grondstoffen aan vanuit de grondsto uffers aan het begin van het proces. Indien hun voorraad terug beneden een bepaald minimum valt, vragen deze terug de grondstoffen aan, aan de source. De source stuurt dan een aanvraag voor grondstoffen door het opstellen van het XML-bestand ResourceRequest, RR. Wanneer de grondstoffen toekomen, wordt het XML-bestand ResourceArrival, RA, binnengelezen en kan de produc e terug van start gaan. Het lezen en schrijven van de XML-bestanden gebeurt enerzijds door Plant Simula on maar anderzijds ook door een klein MES-systeem maar hierover volgt in hoofdstuk 5 meer.
14
De grondstoffen voor dit proces zijn de blokjes van lengte één en twee. De assemblage tot de twee soorten kubussen gebeurt in twee verschillende stappen. Stap1: Assembleren van de grondstoffen tot de aparte puzzelstukken Stap2: Assembleren van de aparte puzzelstukken tot de juiste kubus Voor de eerste stap vraagt een eerste assembly grondstoffen uit de eerse buffers aan om deze tot de puzzelstukken te assembleren. Voor de tweede stap wordt een apart frame geïmplementeerd waarin de puzzelstukken gesorteerd worden en daarna geassembleerd tot de afzonderlijke kubussen voor het frame ze doorstuurt naar de uitgang.
4.2.2 Implementa e
Figuur 4.4: Het Main Proces geïmplementeerd in Plant Simula on
Figuur 4.4 beeldt het geïmplementeerde proces af. Op de figuur zijn nummers te zien die telkens corresponderen met een bepaalde component of proc. De werking van de simula e zal aan de hand van deze proc's en nummers verklaard worden. Alle componenten worden hieronder opgesomd. 1. De Event Controller 2. De methode Init 3. De XML interface voor de a andeling van de resource requests 4. De trigger die de werking van component 3 oproept 5. De XML interface voor de a andeling van de resource arrivals 6. De methode MethodMUChoice 7. De trigger die de werking van component 5 oproept 8. De source die de grondstoffen produceert 9. De presorter voor het sorteren van de grondstoffen 10. De eerste buffer voor de eerste soort grondstoffen 11. De tweede buffer voor de eerste soort grondstoffen
15
12. De dummy source die virtuele producten produceert 13. De eerste buffer voor de tweede soort grondstoffen 14. De tweede buffer voor de tweede soort grondstoffen 15. De produc etabel volgens welke component 16 puzzelstukken assembleert 16. De assembly component die de puzzelstukken assembleert 17. Het onderliggend frame die de kubussen assembleert 18. Een transportband 19. Een sorteercomponent voor de afgewerkte kubussen 20. De XML interface voor de a andeling van de cube requests 21. De buffer voor de soma cubes 22. De buffer voor de bedlam cubes 23. De trigger die de werking van component 20 oproept 24. De drain die de afgewerkte grondstoffen uit de buffers haalt Om de werking nog beter te begrijpen wordt de simula e opgedeeld in vier onderdelen zoals te zien is op figuur 4.5.
Figuur 4.5: Het Main Proces geïmplementeerd in Plant Simula on opgedeeld in vier onderdelen
Zoals reeds werd aangehaald, is de simula e is opgebouwd volgens een Pull-systeem. Daarom wordt de werking van het proces van achter naar voor verklaard.
16
Laatste deel van het proces
Figuur 4.6: Het vierde en laatste deel van het Main Proces
In figuur 4.6 is het laatste deel van het main proces te zien. De afgewerkte kubussen worden gesorteerd door de CubeSorter (component 19) en daarna gestockeerd in de buffers BufferSoma (component 21) en BufferBedlam (component 22). De trigger TriggerCR (component 23) controleert om een bepaalde jd of er een verzoek is om kubussen. Dit verzoek komt toe onder de vorm van een XML-bestand in de map waar het project zich bevindt. TriggerCR triggert de methode ReadXML in de XMLInterfaceCubes (component 20). (zie 4.2.3) Indien een verzoek om kubussen aanwezig is, worden de uitgangen van de buffers geopend en kunnen de kubussen geëxporteerd worden. Hoeveel van welke soort moeten opgehaald worden, wordt bijgehouden door twee integers in de XMLInterfaceCubes. De drain (component 24) telt dan weer hoeveel kubussen er reeds gepasseerd zijn en, wanneer dit gelijk is aan de bestelde hoeveelheid, dan worden de uitgangen van de buffers weer gesloten en beide integers in de XMLInterface op nul geplaatst. Voorlaatste deel van het proces
Figuur 4.7: Het derde en voorlaatste deel van het Main Proces
In figuur 4.7 is het voorlaatste deel van het main proces te zien. Dit bestaat uit een transportband (component 18) die de afgewerkte kubussen naar het laatste deel van het proces transporteert en de proc CubeAssembly (component 17) waarin de puzzelstukken tot afgewerkte kubussen worden geassembleerd. De compnent CubeAssembly is een onderliggend frame afgebeeld staat in figuur 4.8.
17
Figuur 4.8: Het onderliggend frame CubeAssembly
Dit frame maakt gebruik van enkele sorteer-, buffer- en assemblyproc en om een correcte assemblage door te voeren. Er zijn ook nog twee dummysources aanwezig (SourceSoma en SourceBedlam) maar over de func e van een dummysource volgt later meer. De assemblage van de aparte puzzelstukken gebeurt met behulp van een inwendige methode aanwezig als a ribuut in de twee assemblyproc's.
18
Tweede deel van het proces
Figuur 4.9: Het tweede deel van het Main Proces
In figuur 4.9 is het tweede deel van het main proces te zien. De assembly (component 16) assembleert de grondstoffen uit de buffers (componenten 10, 11, 13 en 14) tot de aparte puzzelstukjes. Om verschillende stukken samen te brengen tot één geassembleerd stuk maakt een assembly proc in plant simula on gebruik van een assembly table. Deze aantallen moeten echter van het type integer zijn, dus het linken van variabelen aan deze table is onmogelijk. Om dit aantal toch aan te kunnen passen, wordt gebruik gemaakt van een methode die gelijkaardig aan de volgende code is geprogrammeerd (voor de volledige codering, zie B). is do -
tab:table[string,integer];-
(1)
tab.create;(2) tab[1,1] := "En ty1";(3) tab[2,1] := 3;(3) tab[1,2] := "En ty2";(3) tab[2,2] := 2;(3) .Models.Frame.Assembly.AssemblyList := tab;-
(4)
end;
Deze methode definieert een tabel (1), maakt de tabel effec ef aan (2) waarna ze ingevuld wordt (3). In de laatste stap stelt de methode de assemblylist van de assemblyproc gelijk aan de aangemaakte tabel (4). Bij het assembleren, is ook een main MU nodig, de MU waarop de andere stukken in de table geassembleerd worden. Indien echter één van de te assembleren stukken als main MU gekozen wordt, kan het benodigd aantal voor de assemblage van deze MU niet aangepast worden. Daarom wordt gewerkt met een dummy MU die reeds het geassembleerde stuk voorstelt. Hierop assembleert de assembly proc dan de andere MU's. Hierdoor is wel een extra source nodig. Deze DummySource (component 13) maakt gebruik van de tabel Produc onTable (component 15) om de correcte dummy MU's te produceren.Door gebruik te maken van een dummysource kunnen de aantallen van beide grondstoffen variabel gemaakt worden. Bij hun produc e krijgen de dummy-puzzelstukjes een naam en een nummer mee. Op basis hiervan weet de methode in de assemblyproc hoeveel van elke grondstof nodig zijn voor de assemblage van het puzzelstuk. De buffers 10 en 11 beva en de grondstoffen met lengte 1 en de buffers 13 en 14 beva en de grondstoffen met lengte 2. Deze twee paren buffers zijn telkens als een kanban systeem geprogrammeerd. Dit wil zeggen dat
19
wanneer de voorraad van de tweede buffers op is, de voorraad van de eerste buffers verplaatst wordt naar de tweede buffers en de voorraad van de eerste buffers terug aangevuld moet worden. De volgende uitleg gebeurt voor de buffers 10 en 11 maar is analoog voor de buffers 13 en 14. Er is een methode gekoppeld aan het binnenkomen en vertrekken van een grondstof in beide buffers. Uitgang 2e Buffers De volgende code wordt uitgevoerd bij het vertrekken van een grondstof in de tweede buffer (componenten 11). is do -
if Buffer1cm1.numMuparts <= Buffer1cm1.Minimum then Buffer1cm1.EntranceLocked := False; Buffer1cm.ExitLocked := False; end;
end;
Wanneer de voorraad van de buffers beneden een bepaald minimum valt, wordt zijn ingang en de uitgang van de vorige buffer (component 10) geopend waardoor er terug grondstoffen binnen kunnen komen. Ingang 2e buffers De code die wordt uitgevoerd wanneer er grondstoffen binnenkomen in de tweede buffer is de volgende. is do if Buffer1.numMuparts ==Buffer1.capacity then Buffer1.EntranceLocked := True; end; end;
Als de capaciteit van de buffer bereikt is mag de ingang van de buffer gesloten worden want er zijn geen grondstoffen meer nodig. Uitgang 1e Buffers Wanneer een grondstof de eerste buffers (component 10) verlaat wordt de volgende code uitgevoerd. is do -
if Buffer.numMuparts <= Buffer.Minimum then Buffer.EntranceLocked := False; Buffer1cm.ExitLocked := True; Buffer.Refill := True; .Models.Frame.PreSorter.EntranceLocked := False; end;
end;
Indien de voorraad beneden een bepaald minimum komt wordt de ingang van de buffer geopend en uitgang gesloten. Hierdoor kunnen enkel nog grondstoffen binnenkomen. Ook wordt een boolean op "True" gezet waardoor en aangegeven wordt dat de buffer aangevuld moet worden. Ook de ingang van de sorteerproc uit het eerste deel van de simula e wordt geopend om de doorgang van grondstoffen mogelijk te maken. Ingang 1e buffers De codering van de methode gekoppeld aan de ingang van de eerste buffer gebeurt als volgt. is do -
if Buffer.numMuparts ==Buffer.capacity then Buffer.EntranceLocked := True; Buffercm.ExitLocked:= False; Buffer.Refill := False; .Models.Frame.Source.Busy := False; .Models.Frame.Source.DeleteMovables; .Models.Frame.PreSorter.DeleteMovables; end;
end;
Wanneer de capaciteit van de buffer bereikt is, mag zijn ingang gesloten worden en zijn uitgang open gezet. De buffer hoe nu ook niet meer aangevuld te worden en de source uit het eerste deel van het main proces is terug vrij om andere grondstoffen te produceren.
20
Eerste deel van het proces
Figuur 4.10: Het eerste deel van het Main Proces
In figuur 4.10 is het eerste deel van het main proces te zien. Een van de belangrijkste componenten uit heel de simula e is de EventController (component 1), dit is het componenten dat de simula e start en stopt. Op de jd van deze componenten worden ook de verwerkings jden, trigger jden, etc. van de verschillende componenten gebasseerd. De source (Component 8) produceert zowel de stukken van lengte één als twee. Deze komen in de PreSorter (component 9) terecht die deze stukken naar de correcte buffer stuurt. Het programmeren van een sorteer-proc of Sorter gebeurt analoog aan de volgende code. is do -
if @.Name = "En tyA"then
-
@.Move(SuccessorA)
-
elseif @.Name = "En tyB"then
-
@.Move(SuccessorB)
-
end;
end;
De sortering gebeurt op basis van de naam van de MU in de proc. Bij naam En tyA stuurt de proc de MU naar de opvolger SuccessorA door. De originele simula e maakte gebruik van twee afzonderlijke sources voor de twee soorten blokjes die nodig zijn. Meer realis sch echter is gebruik te maken van slechts één source die beide soorten levert aan de sorteer proc die deze op zijn beurt naar de correcte buffer erna stuurt. Indien deze buffer het minimum niveau van MU's bereikt hee wordt een soort van pull-commando verstuurd naar de source. De source begint in dit geval de correcte soort MU's te leveren aan de sorteer-proc. In werkelijkheid zal dit erop neer komen dat de correcte soort grondstoffen aan de treintjesopstelling gevraagd wordt. De selec e en vraag tot produc e van de correcte MU's gebeurt via de methode MethodMUChoice (component 6) die getriggerd wordt wanneer een MU de source verlaat en als volgt is geprogrammeerd.
21
(s1, s2 : string) is do if not(.Models.Frame.XMLInterfaceResourceArrival.Piece1cmArrived = 0) and not(.Models.Frame.Buffer1cm.numMUParts = .Models.Frame.Buffer1cm.Capacity) then .Models.Frame.Source.path := .MUs.Piece1cm; .Models.Frame.PreSorter.Entrancelocked := False; elseif not(.Models.Frame.XMLInterfaceResourceArrival.Piece2cmArrived = 0) and not(.Models.Frame.Buffer2cm.numMUParts = .Models.Frame.Buffer2cm.Capacity) then .Models.Frame.Source.Path := .MUs.Piece2cm; .Models.Frame.Presorter.EntranceLocked := False; end; end;
Allereerst controleert de methode of er grondstoffen toegekomen zijn voor één van de buffers. Dit gebeurt via de integers "Piece1cmArrived" en "Piece2cmArrived" gedefinieerd in de XMlInterfaceResourceArrival (component 5) (zie 4.2.3). Aanpassen van deze Integers gebeurt in de door de XMLinterfaceResourceArrival en door de PreSorter. Indien dit het geval is en de source is nog niet bezig met produc e, wordt de produc e gestart. Met behulp van de trigger TriggerRR (component3) wordt om een bepaalde jd gekeken of er grondstoffen nodig zijn in de buffers via de methode "ResourceRequest" in de XMLInterfaceResourceRequest (component 3) (zie 4.2.3). Indien dit het geval is, wordt een XML-bestand geschreven dat de aanvraag voor grondstoffen voorstelt. Dit XML-bestand moet dan worden verwerkt door een MES (Manufactering Execu on System). Meer info over dit MES volgt in hoofdstuk 5. Om dit XML-bestand op te stellen wordt gebruik gemaakt van de methode WriteXML in de XMLInterfaceResourceRequest. Eens dit gebeurt is worden ook de booleans "RequestSent" in de buffers op "True" gezet zodat er niet nog een request opgemaakt wordt voor dezelfde grondstoffen. Het toekomen van grondstoffen wordt gesimuleerd door een XML-bestand toe te voegen aan de map waar het simula eproject zich bevindt. Met behulp van de trigger TriggerRA (component 7) wordt terug om een bepaalde jd een methode "ReadXML" aangeroepen in de XMLInterfaceResourceArrival. (zie 4.2.3) Deze controleert of er grondstoffen toegekomen zijn en indien dit het geval is, worden de source, de presorter en de buffers aangestuurd om deze toe te voegen aan de buffers. De methode init (component 2) is een methode met voorgedefinieerde naam. De naam init aan een methode toekennen hee het gevolg dat bij het opstarten de simula e een ini alisa e uitvoert. Hierdoor wordt de code die in de methode init staat uitgevoerd vóór de simula e effec ef van start gaat. Dit model gebruikt de init om onder andere de ingangen van de buffers en de PreSorter te openen. De methode callback die wordt besproken in bijlage A.2.2 is bijvoorbeeld ook een methode met een voorgedefinieerde naam.
4.2.3 Communica e met de treintjesopstelling Keuze van communica emethode Zoals reeds duidelijk is, werd gekozen voor een communica e via XML-bestanden. De reden hiervoor is de latere ontwikkeling van een VB-applica e die het MES-systeem voorstelt en hiermee gemakkelijk XML-bestanden kunnen opgesteld en gelezen worden. Deze applica e communiceert dan weer met de treintjesopstelling om het ophalen en afleveren van grondstoffen te regelen. Er zijn echter nog andere mogelijkheden voor communica e met de treintjesopstelling. Bijvoorbeeld OPC wat hieronder kort besproken wordt. OPC In wat volgt worden kort de mogelijkheden van de OPC-interface in Plant Simula on aangehaald. Hiermee werd geëxperimenteerd maar dit werd niet geïmplementeerd in het simula emodel. OPCInterface
22
Figuur 4.11: De OPCInterface van Plant Simula on
Met behulp van de OPCInterface gebeurt de connec e naar een bepaalde OPC-server op een bepaalde loca e. Deze loca e en de naam van de server moeten ingegeven worden in het dialoogvenster van de interface. (zie figuur 4.12) De Host-name is de serverloca e in dit geval de locale pc en bij Servername wordt de naam ingegeven van de gebruikte server, in dit geval de simula eserver van matrikon. Wanneer gedrukt wordt op de knop Items, wordt het bovenste venster uit figuur 4.13 verkregen. In deze tabel moeten de groepen ingegeven worden waarin de OPC-items staan samen met de refreshrate. Deze refreshrate komt best overeen met de refreshrate die werd ingegeven bij de OPC-server zelf. In dit voorbeeld wordt de groep Test gekozen. Deze groep moet ook effec ef toegevoegd worden in de OPC-server zelf! Bij rechtermuisklik op de naam van de groep en daarna op Open object wordt het onderste venster uit figuur 4.13 verkregen.
Figuur 4.12: Het dialoogvenster van de OPCInterface
Figuur 4.13: Het itemvenster van de OPCInterface
23
In deze tabel moeten de items in de groep toegevoegd worden. Deze moeten terug ook in de server zelf toegevoegd worden! Bij de kolom Changed-Value Control moet de methode ingegeven worden die opgeroepen wordt wanneer de waarde verandert (in het geval van Random) of welke door welke methode de waarde wordt veranderd (in het geval van Bucket Brigrade). Het instellen van de interface is nu compleet. In dit voorbeeld wordt gebruik gemaakt van twee methodes: Random en Bucket. Random wordt opgeroepen telkens één van de randoms verandert en Bucket wordt opgeroepen wanneer op een drukknop OK wordt gedrukt. Deze methodes zijn als volgt gecodeerd. Random (s : string; i : integer) is do inspect s when "Random1"then .Models.Frame.Random1 := i; when "Random2"then .Models.Frame.Random2 := i; when "Random4"then .Models.Frame.Random4 := i; end; end;
Wanneer de methode random opgeroepen wordt vanuit de interface worden een string s en een integer i meegegeven. Dit zijn respec evelijk de naam/alias en de waarde van het item dat aangepast werd. Hierbij wordt dus de waarde van een variabele met dezelfde naam in het frame aangepast naar de waarde van het OPC-item. Bucket is do -
OPCInterface.SetItemValue("Bucket1", .Models.Frame.Bucket1);
end;
Deze methode schrij enkel de waarde van een variabele in het frame weg in het OPC-item Bucket1. XML XMLInterface
Figuur 4.14: De XMLInterface van Plant Simula on
Deze methodes beva en telkens een heel stuk code. Om de volledige code te bezich gen, wordt verwezen naar Bijlage B. In het dialoogvenster van de XMLInterface (zie figuur 4.15) moet de filename van het XML-bestand ingegeven worden dat aangepast/gelezen zal worden. Indien enkel de naam van het bestand ingegeven wordt, veronderstelt Plant Simula on dat het bestand zich in dezelfde map als het project bevindt. Anders moet de volledige bestandsloca e ingegeven worden.
24
Figuur 4.15: Het dialoogvenster van de XMLInterface
In het project wordt gebruik gemaakt van drie XML Interfaces. • Resource Request • Resource Arrival • Cube Request Resource Request: Deze XMLInterface bevat twee methodes • ResourceRequest • WriteXMLRequest Deze methodes beva en telkens heel wat codeerwerk. In wat volgt zal enkel de werking verklaard worden en voor de volledige codering van deze methodes wordt verwezen naar Bijlage B. De methode "ResourceRequest" wordt cyclisch opgeroepen door de triggerRR. Hierin wordt gecontroleerd of één van de twee of allebei de soorten buffers grondstoffen nodig hebben. Indien dit het geval is, roept deze methode de andere methode uit de XMLInterface op om een request uit te sturen die er dan voor zorgt dat het bovenliggende systeem weet dat er grondstoffen nodig zijn. Hierbij worden ook booleans in de buffers op "True" gezet zodanig dat de method weet dat er reeds een request uitgezonden is en er geen nieuwe meer wordt verstuurd. De methode "WriteXMLRequest" maakt dan effec ef het XML-bestand aan. Hierbij wordt de filename van de interface aangepast waarbij de datum en de jd van de request opgenomen worden. Deze methodes beva en telkens heel wat codeerwerk. In wat volgt zal enkel de werking verklaard worden en voor de volledige codering van deze methodes wordt verwezen naar Bijlage B. Resource Arrival: Deze XMLInterface bevat slechts 1 methode "ReadXML". Deze wordt cyclisch opgeroepen door de triggerRA. In deze methode wordt gekeken of er nieuwe XML-bestanden aanwezig zijn met behulp van een Batch-bestand "FindRA_XML.bat". Dit Batch-bestand is als volgt gecodeerd.
25
dir /b *.xml |findstr /v Processed |findstr Arrival > fileslistRA.txt
Dit batch bestand zoekt XML-bestanden waarin de string "Processed" niet voorkomt en de string "Arrival" wel. Dit zijn de XML-bestanden die de aankomst van grondstoffen simuleren. Al deze bestanden worden toegevoegd aan een txt-file "fileslistRA" welke dan binnen gelezen wordt door Plant Simula on. Uit deze XML-bestanden worden dan de hoeveelheden van beide soorten grondstoffen gehaald die dan verwerkt worden in de simula e. Dit gebeurt aan de hand van integers, count-methodes en sorteer-methodes. Eenmaal het XML-bestand verwerkt is, wordt de string "_Processed" aan de bestandsnaam toegevoegd en wordt het bestand in een andere map geplaatst zodanig dat het geen twee keer binnengelezen wordt. Cube Request: De laatste van de drie XMLInterfaces bevat terug slechts één methode "ReadXML". Hierin wordt gekeken of er nieuwe XML-bestanden zijn die het ophalen van kubussen simuleren. Dit gebeurt terug aan de hand van een batch-bestand gelijkaardig aan het bestand besproken bij "Resource Arrival". Indien de drain nog geen order aan het afwerken is en er zijn nieuwe orders, dan wordt binnengelezen hoeveel Soma- en Bedlam-cubes er nodig zijn. Dit wordt dan verwerkt aan de hand van integers in de XML-interface zelf en met een count-methode in de drain. Wanneer de bestelde hoeveelheid gepasseerd is via de drain, worden de uitgangen van de buffers gesloten. Daarna krijgt het XML-bestand terug een nieuwe naam en loca e zodat het niet nogmaals wordt binnengelezen.
4.2.4 Opbouw 3D model Nu het 2D-model afgewerkt is, is het jd voor het 3D-model. Dit 3D-model wordt opgebouwd om een duidelijke visualisa e weer te kunnen geven van het gesimuleerde proces. Hierop is de werking van het proces veel duidelijker te zien. In plant simula on is het genereren van een 3D-Model snel gebeurd. Wanneer het 2D-model open staat, hoe enkel op de knop uit figuur 4.16 gedrukt te worden. Zo wordt het 3D-model automa sch aangemaakt met de standaard objecten uit plant simula on.
Figuur 4.16: Methode om een 3D-Model aan te maken
Deze standaard objecten kunnen aangepast worden naar andere voorgedefinieerde componenten of eigen getekende objecten. Aanpassen van de 3D-voorstelling gebeurt als volgt: 1. Selecteer het object waarvan de voorstelling moet worden gewijzigd 2. Rechtermuisklik 3. Edit -> Exchange Graphic... 4. Ga naar de map waar de 3D-bestanden (bestanden met .s3d extensie) zich bevinden 5. Selecteer een 3D-bestand 6. Druk op openen Om gebruik te maken van eigen objecten moeten deze eerst getekend en daarna omgezet worden naar .s3d bestanden. In deze masterproef werd gebruik gemaakt van het programma Siemens NX7.5 voor het tekenen van de objecten.
26
OPGELET! Besteed aandacht aan de schaal waarop de objecten getekend worden. Op ware grote komen deze veel te groot binnen in Plant Simula on. De schaal kan wel achteraf nog aangepast worden in Plant Simula on zelf door het object te selecteren, rechtermuisklik, edit -> a ributes, scale te selecteren. Hierin kan dan de x-,y- en z-schaal aangepast worden zoals te zien in figuur 4.17.
Figuur 4.17: Methode om de schaal aan te passen van een 3D-component
Eens de objecten getekend zijn (als part- of assembly-file) moeten deze geëxporteerd worden als .vrml file. Deze bestanden kunnen dan geïmporteerd worden in Plant Simula on en in Plant Simula on zelf kan dan het .s3d bestand aangemaakt worden. Om het .vrml-bestand te importeren moet eerst een nieuw frame ingevoegd worden. Van dit lege frame moet ook een 3D model opgemaakt worden zoals reeds besproken. In dit frame moet dan op de knop uit figuur 4.18 gedrukt worden. (Plain Graphics) Het nu verschenen object moet worden verwijderd en daarna moet via het menu 3D -> Import 3D Geometry (zie figuur 4.19) het .vrml-bestand geselecteerd worden.
Figuur 4.18: De knop Plain Graphics in Plant Simula on
27
Figuur 4.19: Methode om een .vrml file te importeren
Nu het .vrml-bestand in gevoegd is moet het .s3d-bestand nog aangemaakt worden en dit gebeurt via het menu Export 3D Scene (zie figuur 4.20).
Figuur 4.20: Methode om een .s3d-bestand aan te maken
Een dit allemaal gebeurt is, mag het aangemaakte frame met het 3D-object terug verwijderd worden. Het .s3dbestand is nu klaar voor gebruik zoals reeds werd aangehaald in een vorige paragraaf. Deze werkwijze is niet enkel voor de machines maar ook voor de grondstoffen, deel- en afgewerkte producten mogelijk. Het volledig aangepaste 3D-model staat afgebeeld in figuur 4.21 en werkt net zoals het 2D-model.
Figuur 4.21: Het afgewerkte 3D Model
Indien de opbouw van het 3D-model vergeleken wordt met het 2D-model zijn duidelijk de verschillende componenten uit het 2D-model te zien. Al worden enkel de machines en grondstoffen getoond in het 3D-model en niet de methodes, triggers, XMLInterfaces, etc.
28
5 Het MES - Manufacturing Execu on System 5.1 Inleiding Nu het simula eproject afgewerkt is, is er nog nood aan een overkoepelend MES-systeem dat het geheel bestuurt. Dit systeem wordt geprogrammeerd in Visual Studio 2010 en dient ter verwerking en aanmaak van de XML-bestanden nodig voor de simula eso ware. Ook een deel van de besturing van het LES voor de prak sche opstelling zal door deze so ware bestuurd worden. In eerste instan e leest het programma de resource requests binnen. Hierna kunnen de aangevraagde grondstoffen worden afgeleverd door een simpele druk op de knop. Via dit MES kunnen ook afgewerkte kubussen besteld worden. Dit gebeurt via twee NumericUpDowns en nog één drukknop.
5.2 Theore sche achtergrond Een MES is een produc e ondersteunend systeem dat de link vormt tussen het business management en de produc econtrole waarbij het zich vooral focust op de produc e. Een MES stuurt de produc e aan door informa e te verstrekken aan de produc emiddelen over waar, wanneer, hoeveel, hoe en wat geproduceerd moet worden. Het staat dus in voor het management van de produc e met het doel de effeciën e en transparan e ervan de op maliseren. Het is de drijfveer achter de aansturing en opvolging van de produc etaken. Daarnaast behoren datacapta e, het opmaken van een gedetailleerde planning, a andeling van gebeurtenissen, generen van KPI's, etc. ook tot de verantwoordelijkheden van het MES. [12] In deze masterproef gaat het slechts om zeer simpel MES dat enkel de XML-bestanden verwerkt en aanmaakt.
5.3 VB-project De form van het project staat afgebeeld in figuur 5.1.
29
Figuur 5.1: De form van het MES geprogrammeerd in Visual Basic
Voor de volledige codering van de verschillende klasses in Visual Studio wordt verwezen naar Bijlage C. Het programma bestaat uit drie klasses: • frmMESCubeProduc on: de form • clsXML: aanmaak en verwerking XML-bestanden • clsExcep onLogging: Fouta andeling En één app.config file. De form maakt gebruik van subrou nes en func es uit de klasse clsXML om informa e uit de XML-bestanden te lezen en nieuwe XML-bestanden aan te maken. Om de aanvragen tot grondstoffen binnen te lezen, wordt gebruik gemaakt van een mer oTMR die elke 5 seconden kijkt of er nieuwe XML-bestanden aanwezig zijn. De namen van deze bestanden worden dan binnengelezen en in de lijst geplaatst die links op figuur 5.1 te zien is. Bij aanklikken van een Resource Request in deze lijst leest de form de gegevens van dit order uit via de func e ReadRR uit de klasse clsXML. Hierna worden de datum van de aanvraag en het aantal aangevraagde grondstoffen weergegeven in de tekstkaders in het midden van figuur 5.1. Met een druk op de knop wordt het XML-bestand Resource_Arrival aangemaakt dat het aankomen van de grondstoffen voorstelt. Hierbij wordt ook het verwerkte Resource_Request bestand verplaatst en wordt de tekst "_Processed" aan de bestandsnaam toegevoegd. De klasse clsExcep onLogging dient voor de Excep onHandeling. Wanneer een fout optreedt, gee het niveau waarop deze fout optreedt dit telkens door aan het hoger gelegen niveau door het command Throw ex. Dit gaat door tot deze ex bij het hoogste niveau toekomt, waar de fout en de weg die hij afgelegd hee , gelogd worden in een tekstbestand waardoor de oorzaak van de fout makkelijk te achterhalen is. De app.config file wordt gebruikt voor de adressering van de paden van de XML-bestanden. Deze worden dus in deze app.config file geschreven en niet vast gecodeerd in bijvoorbeeld de form. Dit is een mooiere oplossing. Zo moet er bij het verplaatsen van het programma naar een andere map of zelfs computer, niet gerommeld worden aan de eigenlijke code van het programma maar kan gewoon de app.config file aangepast worden. De form haalt dan de benodigde paden uit deze app.config file.
30
6
De prak sche opstelling
6.1 Inleiding Voor de integra e van de simula e in de logis eke opstelling is een prak sche opstelling nodig. De logis eke opstelling staat afgebeeld in figuur 6.1. De opstelling bestaat uit een aantal treinsporen gekoppeld via automa sche wissels. Het geheel wordt aangestuurd via een Beckhoff PLC. Het stelt het interne logis eke transport voor binnen een produc ehal. Dat kan manueel transport, vorkli en, treintjes, AGV's, etc. voorstellen.
Figuur 6.1: De logis eke opstelling aanwezig binnen Howest
6.2 De opstelling Om prak sche redenen wordt echter gewerkt met een verkleinde opstelling waarvan een schema sche voorstelling te zien is in figuur 6.2. Deze wordt opgebouwd uit heel wat minder sporen, vier drukknoppen, één signalisaelamp, één pc en één Beckhoff PLC. De treinsporen en wissels worden aangestuurd door de Beckhoff PLC. Zoals reeds aangehaald, hoort deze besturing niet tot de masterproef.
31
Figuur 6.2: Een schema sche voorstelling van de prak sche opstelling
De prak sche opstelling werkt als volgt: Er zijn vier sta ons voor de treintjes en er wordt met twee treintjes gewerkt. • Treinsta on 1: voorraad grondsto rein • Treinsta on 2: afleveren kubustrein • Treinsta on 3: afleveren grondsto rein • Treinsta on 4: ophalen kubustrein Verder zijn er nog 4 drukknoppen en 1 signalisa elampje voorzien. • Drukknop 1 dient om te beves gen dat de bestelde kubussen afgeleverd zijn en de trein terug beschikbaar is om een nieuwe bestelling op te halen. • Drukknop 2 laat weten dat de trein terug beschikbaar is om grondstoffen af te leveren. • Drukknop 3 dient om het XML-bestand voor het toekomen van grondstoffen in de correcte map te plaatsen. Dit gee aan dat de grondstoffen uitgeladen zijn en het treintje kan dan terug vertrekken naar Treinsta on 1. • Drukknop 4 hee twee func es: 1. Signalisa elamp brandt niet: XML-bestand ter aanvraag van kubussen in de correcte map ze en => klaar voor laden 2. Signalisa elamp brandt: De kubussen zijn geladen => het order is afgewerkt en de trein mag terug vertrekken naar Treinsta on 2. De 2 lussen onderaan zorgen ervoor zodat de 2 treinen kunnen verder rijden zonder dat de andere trein in de weg staat. Hoe weten de treinen wanneer ze moeten vertrekken? • Kubustrein: Vanuit MES-systeem: het order ingeven en XML-bestand reeds opmaken => trein vertrekt. Wanneer de trein toekomt en er wordt op Drukknop 4 gedruk => XML in correcte map plaatsen
32
• Voorraadtrein: Bij het verwerkt zijn van een aanvraag tot grondstoffen => trein vertrekt. Trein komt toe en er wordt op drukknop 3 gedrukt => XML in correcte map plaatsen. In het midden van dit alles komt dan een PC met plant simula on, het MES en het LES (besturing treintjes) op geïnstalleerd voor de besturing van dit alles. De drukknoppen en signalisa elamp worden dan bestuurd door een PLC.
6.3 Informa estromen Via welke informa estromen verloopt nu de communica e tussen het MES, LES en Plant Simula on? In figuur 6.3 staat een schema sche voorstelling van de informa estromen in de opstelling.
Figuur 6.3: De verschillende informa estromen binnen de prak sche opstelling
Hierop is duidelijk te zien dat het LES en Plant Simula on niet met elkaar communiceren maar enkel via het MES. Indien een order in het MES binnenkomt, bijvoorbeeld door het manueel inbrengen van een order zoals in deze opstelling het geval is, wordt een aanvraag voor kubussen doorgestuurd naar Plant Simula on en wordt er reeds een trein gestuurd naar het a aalpunt van het LES. Eens de kubussen klaar zijn wordt dit doorgegeven aan het MES waardoor de signalisa elamp van het LES gaat branden. Met een druk op de juiste drukknop weet het MES dat de trein terug mag vertrekken naar zijn sta on. Wanneer er grondstoffen nodig zijn gee Plant Simula on dit door aan het MES. Deze stuurt terug een trein uit en wanneer deze is aangekomen, kan aangegeven worden via het MES dat de grondstoffen toegekomen zijn, door terug op de juiste drukknop te drukken.
33
7
Conclusies
Er werd een realis sch proces uitgedacht waarbij fysische uitwerking ook haalbaar is. De simula e van dit proces werd succesvol afgerond en geïntegreerd in een verkleinde versie van de logis eke opstelling. Dit komt doordat de volledige opstelling binnenkort verhuist naar het nieuwe gebouw. Plant Simula on is een zeer uitgebreid so warepakket met enorm veel mogelijkheden, de so ware volledig onder de knie krijgen vergt heel wat jd. Uiteindelijk werd genoeg kennis van de so ware verkregen om de simula e tot een goed einde te brengen. Deze kan volledig autonoom werken indien de correcte XML-bestanden aangeboden worden door het ontwikkelde MES. Het opgestelde 3D-model is een mooie visualisa e van het proces en toont duidelijk de verschillende stappen in het produc eproces. De voor- en nadelen van simula e werden gaandeweg duidelijk. Plotse wijzigingen in het concept of het proces vergen niets meer dan wat programmeerwerk, dit toont perfect het flexibele gedrag van simula e aan. Ook kunnen verschillende parameters zoals bijvoorbeeld de grote van de buffers snel veranderd worden zonder dat er grote veranderingen aan de simula e moeten doorgevoerd worden. Ook in de bedrijfswereld is dit handig doordat er geen aanpassingen aan de fysische installa e moeten worden doorgevoerd vooraleer de voordelen bewezen zijn a.d.h.v. simula e. Het belangrijkste nadeel aan simula e is dat het enige jd vergt om de so ware te leren kennen. Vaak is simula e ook een aanzienlijke investering voor een bedrijf, niet enkel moet een werknemer betaald worden om met de so ware te leren werken maar ook de de so ware zelf hee meestal een aanzienlijk prijskaartje. Elk bedrijf moet dus afwegen of de investering in simula e de moeite waard is. In de toekomst zal worden gewerkt aan de integra e van het proces in de volledige logis eke opstelling en na nog wat onderzoek zal het proces fysisch uitgewerkt worden. Ook aan de simula e zelf zijn nog verbeteringen mogelijk. Op de produc e van de puzzelstukjes bijvoorbeeld kan nog dieper worden ingegaan. Op dit moment gebeurt dit cyclisch aan de hand van een tabel waardoor de dummy source de puzzelstukjes in een vast patroon produceert. Beter zou zijn dat deze source de stukken procentueel produceert zodanig dat de produc e van de stukken iets willekeuriger is.
34
Literatuurlijst [1] Card PLM Solu ons, Processimula e, het onmisbare gereedschap [on line], h p://www.cardsplmsolu ons.nl/media/uploads/downloads/ar kelen/Processimula e_het_onmisbare_gereedschap.pdf [datum van opzoeking: 22/09/2011]. [2] J. B. J. C. B. L. N. D. Nicol, Discrete-Event System Simula on. [3] A. V. Brito, Dynamic Modeling. InTech, 2010. [4] J. Banks, ed., Handbook of Simula on. John, 1998. [5] S. Robinson, Simula on : The Prac ce of Model and Use. John Wiley & Sons, 2004. [6] S. Cakaj, ed., Modeling, Simula on and Op miza on - Focus on Applica ons. InTecht, 2010. [7] Peter Pollack (2008), Simulator compares knee implants [on h p://www.aaos.org/news/aaosnow/jul08/clinical3.asp [datum van opzoeking: 25/05/2012]. [8] Siemens (2012), Using Simula on to Make Faster, More Informed Decisions h p://www.plm.automa on.siemens.com/en_us/products/nx/simula on/ [datum van 25/05/2012].
line],
[on line], opzoeking:
[9] Koninklijke Bibliotheek - Na onale bibliotheek van Nederland (2005), Wat is Emula e [on line], h p://www.kb.nl/hrd/dd/dd_projecten/projecten_emula ewa s.html [datum van opzoeking: 21/05/2012]. [10] V. Okolnishnikov, ASM'11 Proceedings of the 5th interna onal conference on Applied mathema cs, simulaon, modelling. World Scien fic and Engineering Academy and Society (WSEAS), 2011. [11] Siemens Product Lifecycle Management So ware II, Tecnoma x Plant Simula on 8.2 User Guide, 2008. [12] J. Co yn, ``Total plant automa on 1 - produc eso ware,'' 2011.
35
A Bijlage 1: Tecnoma x Plant Simula on Uitleg enkele componenten A.1
Belangrijkste componenten
Met behulp van de Engelstalige handleiding van de so ware[11] haalt deze masterproef eerst enkele belangrijke componenten aan zonder de bedoeling een tweede handleiding te schrijven. Dit dient enkel om de simula e beter te begrijpen. Bij het aanmaken van een nieuw project opent zich een nieuw werkblad zoals afgebeeld in figuur A.1.
Figuur A.1: Een werkblad of frame in Tecnoma x Plant Simula on
Opgelet: Bij het aanmaken van een nieuw project kunnen bepaalde func es aangevinkt worden in het Manage Class Library venster zoals afgebeeld in figuur A.2. Slechts indien aangevinkt, zijn deze beschikbaar in de simula e.
36
Figuur A.2: Toevoegen van func onaliteiten via de Manage Class Library
In het werkblad moeten alle componenten of Proc's in Plant Simula on gesleept worden om het simula emodel op te stellen. Het model kan eveneens opgedeeld worden in verschillende frames. Deze frames kunnen op zich onderling communiceren om zo een duidelijker model te scheppen. Op deze manier gebeurt bijvoorbeeld de definiëring van deelprocessen binnen een groter proces.
A.1.1
De toolbox
Figuur A.3: Toevoegen van componenten uit de Toolbox in Plant Simula on
De toolbox bevat alle beschikbare componenten voor de simula e. Van hieruit kan bijvoorbeeld een source gesleept worden naar het werkblad om dit element toe te voegen. Bij de proc's die samen het proces voorstellen wordt onderscheid gemaakt tussen verschillende types zoals Material Flow Objects, Resource Objects, Informa on Flow Objects, etc.
37
A.1.2
Het Dialog Window (dialoogvenster)
Figuur A.4: Een voorbeeld van een dialog window in Plant Simula on
In dit venster gebeurt de instelling van de parameter van iedere proc. Openen van het dialoogvenster gebeurt door het dubbelklikken op het symbool van het component indien reeds in een frame gesleept. Dit venster is ook verschillend voor ieder afzonderlijk object aangezien elk object zijn eigen func e en parameters hee . Vele proc's maken echter gebruik van veel dezelfde eigenschappen dus bestaat er vaak een enorme gelijkenis tussen de dialog windows van verschillende proc's. Figuur A.4 beeld het dialoogvenster van een source af.
A.1.3
Material Flow Objects
Deze objecten stellen de effec eve flow en verwerking van de en teiten voor. Event Controller
Figuur A.5: De Event Controller component
De Event controller coördineert en synchroniseert de hele simula e. Dit gebeurt via discrete event-simula e. Zonder deze proc is de simula e niet mogelijk. Source
Figuur A.6: De Source component
De source produceert en teiten zonder processing- me, dit wil zeggen dat indien er een constante wordt ingegeven als interval (bijvoorbeeld 1 seconde) er constante produc e is van en teiten met als tussenperiode dit interval (1 seconde). Meerdere en teiten tegelijker jd produceren is onmogelijk maar als interval is er de keuzemogelijkheid om verschillende sta s sche verdelingen zoals de normale verdeling te kiezen en nog vele andere. Deze keuzemogelijkheid komt terug bij veel van de componenten uit Plant Simula on hetzij als interval of als andere parameter.
38
Drain
Figuur A.7: De Drain component
De drain stelt de uitgang van de afgewerkte en teiten/producten voor. Dit is bijvoorbeeld de export naar een ander bedrijf of winkels. De drain verwerkt in tegenstelling tot de source de en teiten wel met een processing me maar hee daarentegen geen interval. De en teiten worden direct na elkaar verwerkt. Interface
Figuur A.8: De Interface component
Via een interface wordt de connec e tussen verschillende frames gemaakt. Indien binnenin een frame geen connec e bestaat tussen de interface en een andere proc wordt de interface voorgesteld door een niet opgevulde driehoek zoals in figuur A.8. Eens de connec e bestaat, verandert de a eelding naar een opgevulde driehoek. Line
Figuur A.9: De Line component
Een line is een gewone simpele transportband die MU's of containers transporteert. Deze hee een lengte en een snelheid waardoor meteen de verwerkings jd vastligt. Ook de capaciteit van de line is een beïnvloedbare parameter waarbij kan gekozen worden voor -1 (oneindig) wat wil zeggen dat er en teiten bij kunnen komen tot de line vol is of er kan een eindig aantal ingegeven worden. Track
Figuur A.10: De Track component
In Plant Simula on stelt een track; wegen, spoorlijnen, etc. voor. Hierop rijden de transporters. Tracks zijn ook beschikbaar met twee rijbanen zoals afgebeeld in figuur A.11.
Figuur A.11: De TwoLaneTrack component
39
SingleProc
Figuur A.12: De SingleProc component
Dit is een enkel werksta on dat de verwerking van een en teit voorstelt. Dit kan gaan van een simpele boormachine tot een draaibank en vele andere werksta ons. Buffer
Figuur A.13: De Buffer component
In een buffer gebeurt de jdelijke opslag van en teiten. Bij de buffer is er de keuze tussen twee verwerkingsstrategieën: • Queue: FIFO • Stack: LIFO Assembly Sta on
Figuur A.14: De AssemblySta on component
Met het assembly sta on worden verschillende onderdelen op een hoofdonderdeel gemonteerd (bijvoorbeeld: deuren op een wagen) . Connector
Figuur A.15: De Connector component
Met een connector wordt de connec e tussen verschillende proc's gemaakt. Dit is een rechtstreekse connec e alsof de proc's direct na elkaar zouden staan zonder verwerkings jd.
A.1.4
Resource Objects
De resource objects stellen alle werknemers en objecten die aan hen gerelateerd zijn voor zoals: shi s, voetpaden, werkplaatsen, etc. Deze masterproef maakt geen gebruik van de resource objects daar het om een geautoma seerd proces gaat.
40
A.1.5
Informa on Flow Objects
Met behulp van informa on flow objecten kan bijvoorbeeld de programmering van een proc gebeuren of worden tabellen opgesteld voor de crea e van en teiten, uurroosters, etc. Maar ook de connec e met andere veel gebruikte tools zoals XML, Excel, OPC, etc. gebeurt via informa on flow objects. Om deze tool te gebruiken, is het individueel aanvinken ervan bij het aanmaken van het project soms noodzakelijk. Method
Figuur A.16: De Method component
Met behulp van een method gebeurt het programmeren in Plant Simula on. Dit kan gaan van een aanpassing doen bij het binnenkomen van een en teit in een proc, het ini aliseren van het model tot het aanpassen van variabelen. Een method kan eveneens binnenin een proc aangemaakt worden waardoor het frame niet vol komt te staan met method's. Het programmeren van een method gebeurt als volgt. Bij het openen ervan opent een programmeer venster waarin de code als volgt geschreven moet worden. [arguments] (argument1,argument2 : datatype1) [data type of the return value] :datatype is \[local variables] variable :datatype; do \[source code] end;
Bij de argumenten gebeurt de definiëring van de woorden die moeten worden meegegeven voor de correcte werking van de methode. Bij data type of the return value moet indien nodig hier het datatype van de teruggegeven waarde van de methode gedefinieerd worden. Bij local variables gebeurt de definiëring van eventueel te gebruiken lokale variabelen. Bij source code gebeurt het effec ef coderen van de method, het verwerken van de meegegeven variabelen en aanpassen van andere. In deze masterproef zal het gebruik van method's veel voorkomen. TableFile
Figuur A.17: De Table File component
Met table files kunnen produc eschema's, uurroosters, etc. opgemaakt worden. De source bijvoorbeeld kan hiervan gebruik maken om te weten welke en teiten op welk jds p moeten geproduceerd worden. Ook table file's kunnen in een proc zelf gecreëerd en bijgehouden worden.
41
Trigger
Figuur A.18: De Trigger component
Met behulp van het Trigger-object kunnen op vaste of rela eve jds ppen Methods getriggerd worden. In het tabblad Period (zie figuur A.19) kan bij Time reference worden ingegeven of het om Absolute of Rela ce Triggering gaat. Bij Absolute moeten de effec eve jds ppen waarop getriggerd moet worden ingegeven terwijl bij Rela ve aen Ac ve interval en een Period Length moeten worden in gegeven. Wanneer Repeat periodically aangevinkt wordt zal om de jd van de Period length gedurende de jd van Ac ve interval de trigger hoog worden.
Figuur A.19: De Trigger Period instellen van een Trigger component
Gedurende dit Ac ve interval triggert het object de methods die in het tabblad Ac ons ingegeven zijn. (zie figuur A.20) Om deze methods in te geven moet eerst geklikt worden op het hokje naast de knop Methods zodat een horizontaal streepje te zien is en op Apply gedrukt worden. Wanneer nu op de knop Methods wordt gedrukt, wordt het rechtervenster geopend. Hierin moeten de paden ingegeven worden van de methods die moeten getriggerd worden.
Figuur A.20: Instellen van de Trigger Ac ons
A.1.6
User Interface Objects
Met deze objecten kan de gebruiker snel commando's geven aan het simula emodel. Ook eigen dialoogvensters opstellen behoort tot de mogelijkheden. Ook deze objecten behoren niet tot deze masterproef.
42
A.1.7
Mobile Objects
En ty's
Figuur A.21: Een En ty component
Een en teit of MU is een bewegend object die ieder stuk kan voorstellen van iets kleins zoals een moer tot grotere objecten zoals een auto. Het is eveneens mogelijk zelf a eeldingen toe te kennen aan MU's. Vele andere componenten zorgen voor het transport en de verwerking van deze en teiten. Containers
Figuur A.22: Een Container component
Een container transporteert een of meerdere MU's op hetzelfde moment. Dit kan bijvoorbeeld een pallet of doos zijn. Transporters
Figuur A.23: De Transporter component
Een transporter transporteert op zijn beurt dan weer één enkele container. Gewone en teiten zonder containers kunnen niet op een transporter worden geplaatst. Dit was een samenva ng van de belangrijkste componenten uit Plant Simula on die ook in de besproken simula emodellen aan bod komen. Voor een volledige lijst wordt verwezen naar de Engelstalige handleiding [11].
A.2
Enkele testmodellen
Ten einde het programma onder de knie te krijgen worden eerst enkele testmodellen bekeken.
A.2.1
Tutorial
In Plant Simula on bevind zich een tutorial waarin de basis van het programma aan boord wordt gelegd. Deze tutorial starten gebeurt door bij het aanmaken van een nieuw project op tutorial te klikken. Helemaal doorlopen gee dit het resultaat zoals afgebeeld in figuur A.24.
43
Figuur A.24: Het model van de Tutorial uit Plant Simula on
Deze tutorial simuleert het verpakken en testen van DVD-spelers en TV's. De source produceert deze volgens een bepaalde procentuele verhouding opgegeven in de tabel SourceData. In het Loading Sta on, wat een assembly proc is, worden de toestellen op containers geplaatst a oms g van de SourceContainers. De toestellen komen op de Line waar een sensor hun aankomst detecteert. Plant Simula on duidt de plaats van de sensor aan met een rood lijntje. Deze sensor triggert de methode Counter die de variabele NumberOfDevices aanpast en zo reeds gepasseerde toestellen bijhoudt. In de Pre-Test ondergaan de toestellen een voorbereidende test waarna de MU's afwisselend naar de twee Test-proc's gaan. Deze Test-proc's zijn in feite frames waarin een deel van het proces wordt gesimuleerd. Na de test verpakt de Packing proc de toestellen en stuurt de MU's door naar de correcte uitgangen, één voor de TV's en één voor de DVD-spelers. Dit gebeurt aan de hand van de PackingControl methode die aan de uitgang van de Packing is gekoppeld. Deze sorteer-method is als volgt gecodeerd. is do -
if @.cont.name = "TV"then @.move(TVs); Results["TVs",1]:=Results["TVs",1]+1; else @.move(DVDPlayers); Results["DVD_Players",1]:=Results["DVD_Players",1]+1; end;
end;
Het @-teken maakt de connec e met de MU die effec ef de method triggert, in dit geval de containers waarop de toestellen zich bevinden. Om deze toestellen te bereiken gebruikt de methode @.cont (content) de inhoud van de container dus. Aan de hand van de inhoud wordt de container naar de correcte uitgang gestuurd [ @.move("bestemming") ]. Deze methode past ook de tabel Results aan. De methode telt bij de correcte soort MU 1 bij telkens deze soort de Packing passeert. Met de twee termen tussen de vierkante haakjes wordt respec evelijke de correcte kolom en de correcte rij aangesproken om deze te lezen of aan te passen. De Chart in het hoofdframe gee weer hoeveel TV's en DVD-spelers de Packing reeds verwerkte. Op deze manier kan de procentuele produc e van de Source gecontroleerd worden. De methode Reset hee als doel via de Event Controller de tabel Results en de variabele NumberOfDevices leeg te maken.
44
A.2.2
De Treintjesopstelling
Als tweede voorbeeld volgt een simula e van de reeds in Howest aanwezige treintjesopstelling. Dit model staat afgebeeld in figuur A.25.
Figuur A.25: Het model van de Treintjesopstelling zoals aanwezig in Howest
De basis van deze simula e is natuurlijk de spoorlijnen waarop de treintjes rijden. Hierop rijden de treintjes in twee rich ngen. Om dit zo makkelijk mogelijk te simuleren worden two-lane-tracks gebruikt. Het dialoogvenster van de User Interface bepaald via het tabblad Trein afgebeeld in figuur A.26. Het aanmaken van dit soort dialoogvenster staat beschreven in de Engelstalige handleiding[11].
Figuur A.26: De aangemaakte User Interface voor het model van de Treintjesopstelling
Via de dropdown list kiest de gebruiker een bestemming om deze hierna te beves gen met de OK-bu on. Indien het treintje zich reeds op deze track bevind, blij het gewoon staan. Telkens een nieuwe bestemming wordt geko-
45
zen, wordt deze ook toegevoegd aan een interne lijst in de User Interface. Deze lijst in XML-formaat exporteren, gebeurt via de bu on Export Des na onXML. Voor de precieze uitwerking van een XML-document en het exporteren ervan wordt verwezen naar de handleiding[11]. De verwerking van verschillende opdrachten in de User Interface gebeurt via de method callback. Deze methode beschrij een soort van case die a angt van een argument van het datatype string. (ac on : string) is s : string; do inspect ac on when "Read" then .TreintjesOpstelling.TreintjesNetwerk.Netwerk.UserInterface.ReadDB; when "Write" then .TreintjesOpstelling.TreintjesNetwerk.Netwerk.UserInterface.WriteDB; when "Des na onOK" then s:=.TreintjesOpstelling.TreintjesNetwerk.Netwerk.UserInterface.getvalue("Des na onList"); if s /= .TreintjesOpstelling.TreintjesNetwerk.Treintje.Trein:1.CurrentLoca on then .TreintjesOpstelling.TreintjesNetwerk.Treintje.Trein:1.Des na on := s; .TreintjesOpstelling.TreintjesNetwerk.Treintje.Trein:1.Speed := 1.00; .TreintjesOpstelling.TreintjesNetwerk.Netwerk.Stopped := False; .TreintjesOpstelling.TreintjesNetwerk.Netwerk.EventController.Start; end; when "Export" then .TreintjesOpstelling.TreintjesNetwerk.Netwerk.XMLInterface.WriteXML(.TreintjesOpstelling.TreintjesNetwerk.Netwerk.UserInterface.Des na onList); when "ImportExcelOrder" then UserInterface.ImportOrder end; end;
De instruc e inspect definieert een case structuur, in dit geval op basis van het argument ac on, welke van het datatype string is. Bij beves ging van de bestemming van het treintje treedt de ac e "Des na onOK" in werking. De string s wordt gelijkgesteld aan de gekozen bestemming, gecontroleerd met de huidige loca e van het treintje en indien verschillend vertrekt de trein. De kortste route kiezen, gebeurt automa sch dankzij Plant Simula on. Bij s lstand van de trein stopt de simula e waarna deze terug moet opgestart worden via de User Interface. Dit simula emodel maakt tevens gebruik van de proc ODBC om een verbinding te maken met een MySQL-server, voor meer details hieromtrent wordt verwezen naar de handleiding[11]. Het treintje zelf is opgebouwd uit drie verschillende transporters die in het onderliggende frame SourceTreintjes samengebracht worden tot één geheel.
Figuur A.27: Het model van het SourceTreintjes model
Figuur A.27 toont hoe deze source in elkaar zit. De source maakt de nodige transporters aan met behulp van de SequenceTable.
46
Figuur A.28: De SequenceTable van het model SourceTreintjes
In de kolom A ribute gebeurt de connec e naar onderliggende tabellen waarin de a ributen van de MU's gedefinieerd worden. Eens deze zijn aangemaakt volgt het aan elkaar haken van de transporters. Dit gebeurt via de HitchMethod die een transporter triggert wanneer hij op een andere transporter botst. Om dit mogelijk te maken krijgen de wagonnen een lagere snelheid mee dan de transporter die vooraan rijdt. Deze method ziet er als volgt uit. is do -
Rear, Front : object; TractorSpeed : real; Rear := @; Front := @.frontMU; if Front.IsTractor then TractorSpeed := Front.Speed; Rear.hitchFront(Front); else Rear.hitchFront(Front); end;
end;
47
B Bijlage 2: Codering methodes Plant Simula on Voor de codering van elke methode, zie cd-Rom.
48
C
Bijlage3: Codering van het MES
Voor de codering van het volledige programma, zie cd-Rom.
49