• No results found

3 Current situation

4.3 Implemented model

‘What does the implemented model look like?’

Figure 24 represents the main frame of the simulation model. A description of the simulation model is given below. Not all the methods are described, but they are explained with the help of flowcharts in Section 4.2.6.

Figure 24: Main frame of the simulation model

To start the simulation model, the ‘Start’ method has to be run. This ‘Start’ method calls the ‘Reset’ method, followed by the method ‘SelectSupplyData’ where after the EventController will start. The ‘Reset’ method deletes the produced tables and sets all configurations back to the basis. The ‘SelectSupplyData’ method, selects the data for the weeks that are needed to run the model with enough accuracy. The data is selected from the tables ‘DataDWL’, ‘DataRFHN’ and ‘DataConnect’ which contains historical data of the arrival processes of the corresponding suppliers. The table ‘SelectDate’ ensures that only dates can be selected with a specific weekday. The tables ‘ArrivalRFHN’, ‘ArrivalDWL’ and ‘ArrivalConnect’ in Figure 25, that presents the frame ‘ReceivingProcesses’ and will be explained more later, will be filled with the selected data.

When the ‘StartTime’ is equal to the time of the EventController, the generator ‘Morning’ is called. When the generator ‘Morning’ is activated, the method ‘InitDay’ will start. The generator ‘CheckBreak’ calls the method ‘StartWork’ at the ReceivingProcesses frame every quarter to check if there is work and if there is an employee available. The variable ‘CurrentWeek’ presents the current week, whereas that the variable ‘CurrentDay’ represents the current day. In the variable ‘NrWeeks’ the amount of weeks (runs) that have to be performed can be defined. The variables ‘StartTime’, ‘EndTime’, ‘BreakTimeGroup1’, ‘BreakTimeGroup2’ represent the start time of the day, the end time of the day, the amount of time that group 1 has had a break and the amount of time that group 2 has had a break respectively. The variables ‘BossTimeGroup1’ and ‘BossTimeGroup2’ represent the time that Hamifleurs will pay for break of the employee.

The variable ‘MaxTimeBuffer’ is not used in the current situation but is used in the experiments. When using the current location, this variable presents the maximum time that the trolleys can be waiting in the buffer of the supplier to complete a batch that can be moved to the production street of Hamifleurs. When this maximum time is reached, the trolleys that are in the buffer of the supplier will be moved to the production street of Hamifleurs, even if the batch is incomplete. Within the new location, this variable presents the time that trolleys can wait to form a batch at step 2 of the receiving processes to be moved to their refrigerated/conditioned area.

The table ‘ProcessingTimes’ presents the mean time and the standard deviation of the time that is needed for a trolley at each processing step, receiving point and supplier. The table ‘ProcessStations’ represents in the first column the processing stations that execute step 1 and the second column the processing stations that execute step 2 of the receiving processes. The table ‘BufferStations’ represents the buffer stations, processing stations and the destination of the processing stations.

To finish the description of the supply data, the tables of the ‘PercentagesDWLSupply’ and ‘DataInformation’ still have to be explained, as well as the variable ‘LatestArrivalTime’. The table ‘PercentagesDWLSupply’ shows the percentages of trolleys that have to go to a specific receiving point on a specific day. The table ‘DataInformation’ contains the dates that are chosen for each week and day. The latest arrival time of these dates is also noted in this table. This brings us to the variable ‘LatestArrivalTime’, which is the latest arrival time for the current day and week.

The box ‘Employee data’ contains the employee data through several tables and a variable. The tables ‘EmployeesWorkday1’, ‘EmployeesWorkday2’, ‘EmployeesWorkday3’, ‘EmployeesWorkday4’ and ‘EmployeesWorkday5’ contain the configurations and variable data of the employees for that weekday. The employees that execute the process steps at the receiving processes are passive objects. Reason for this is that the employees can now work easily at several receiving points and process steps. The specifications of the employee are stated in one of above named tables. Each row in this table contains an employee number with the corresponding configurations; receiving point, processing step and break group. During the simulation the variable data for each row is checked whether the employee is available, what the current location and trolley of the employee is, what the time is that the employee is finished, the total processing time, amount of trolleys finished of that employee, the last location of that employee and the amount of extra time that is needed to execute the processes. The table ‘WorkPlanning’ represents the start time of the day and the start, end and break time for each group and weekday. The variable ‘Employees’ shows which table of the employees is used for the current day.

The box ‘Experiment results’ contains two methods ‘TrolleyResults’ and ‘WriteDayData’. These methods are both used to store data gained from the simulation model in the tables ‘ExpTrolleyResults’, ‘EmployeeResults’, ‘TrolleyResultsPerDay’ and ‘EmployeeResultsPerDay’. The method ‘ExpTrolleyResults’ is called when there is an entrance of a trolley on the storage at the receiving processes frame and writes the data of the trolley in the table.

The ‘ReceivingProcesses’ frame (Figure 25) also needs some explanation.

Figure 25: Receiving processes frame of the simulation model

The method ‘BufferAllSupplier’ sets the right attributes to the created trolleys (MU’s). The trolleys are created through the sources ‘RFHN’, ‘DWL’ and ‘Connect’, which are controlled by the delivery tables ‘ArrivalRFHN’, ‘ArrivalDWL’ and ‘ArrivalConnect’ respectively. In the current situation the trolleys are directly moved to the right buffer with the methods ‘ToHami’ and ‘MoveToBufferStep1’. During the experiments, the buffers ‘BufferSupplier’ and ‘Hami’ are also used, because with the experiments some extra code is added to the methods ‘ToHami’ and ‘MoveToBufferStep1’. The trolleys that are in these buffers are noted in the tables ‘SupplierBuffer’ and ‘HamiBuffer’ respectively. The variable ‘AmountOfProcessingPoints’ represents the amount of processing stations in the receiving processes. The methods ‘StartWork’ and ‘EndWork’ are responsible to start and end the work. The method ‘EmployeeAvailable’ checks whether an employee is available and if so, the number of that employee is presented in the variable ‘EmployeeNr’. The variables ‘ProcessingStation’ and ‘Trolley’ are the processing point and trolley that are saved on the frame to be used through several methods. The method ‘CalculateBufferAmount’, calculates the amount of trolleys in the buffer. The variable ‘MaxAmountStreet’ presents the maximum amount of trolleys at the production street during the simulation, which is calculated in the method ‘CalculateBufferAmount’. The variable ‘CurrentAmountStreet’ represents the current amount of trolleys on the street during the simulation. The method ‘Break’, compares the time of the event controller, with the time of the breaks presented in the earlier mentioned work planning and sets the variables to true or false, depending if there is a break for a specific group.

Related documents