Dear Mr Steffen Bangsow,
I am writing in regards to your example 77: Kanban Control on page 153 in your book "Manufacturing Simulation with Plant Simulation and Simtalk" published in 2010. As I was trying to practice this example, two questions came up to me, which are:
1. In reality, in order to apply Lean (Just - In - Time), we will need buffers (or supermarkets) between stations. In your example, it is understood that F1, F2 act as supermarkets for Machine1 and Machine2. The thing I find confusing here is that the buffer size in F1 & F2 is currently equal to zero (you didn't mention the number of containers of WIP already available there?). What if there have been a number of containers there already? How can we include, for example, 2 containers of WIP in F1 & F2 at the beginning?
2. And so, the first step of the production flow is a little bit different than in your example: there is no container at P at the beginning. To start, one container full of WIP from F1 will move to P. There, it is unloaded gradually and the rest of the process is just like your example. Finally, F1 will be filled again with one full container so the supermarket is maintained. Honestly, I don't know how to deal with the first step of this production flow in terms of code.
My problem is that I want to visualize via chart the difference in buffer between the current state and the future state (which is the similar to your example). If there is no buffer in the beginning, I wouldn't be able to visualize it.
I attach the file here in case you want to have a quick look at it, please see frame KanbanN_JustInTime, I rename the elements but their positions are equivalent. The codes there are from your book.
Thank you so much Mr Bangsow.
first: this is only a simple programming example
but the way would be the same, also if you use supermarkets
If you have supermarkets in between, the request for parts is going first to the supermarket. The supermarket sends the parts to the requesting point and requests parts from the machines from its supplier (two loops). In a well balanced KANBAN system you dont have finished parts at the machines (outside the actually WIP), so you only have buffers for orders (cards, empty containers as a order queue). After finishing one order, the container is sent back to the requesting point. So you only have to create the stocks in the supermarkets in the init-method.
"What if there have been a number of containers there already? How can we include, for example, 2 containers of WIP in F1 & F2 at the beginning?"
F1; R1 and F2;R2 are only places for the containers (no supermarket), at the start of the simulation and if there is no order, they should be empty. For statistics you can skip the time you need, to fill the system with orders.
So as a next step you should include a supermarket...
Dear Mr Bangsow,
In frame Kanban_JustInTime1, I tried to create 3 containers in supermarket1, supermarket2 and supermarket3 using loops as you suggested:
is i,k : integer; container : object; buffer : object; do deletemovables; local buffers:object:=makeArray(supermarket1,supermarket2,supermarket3); for k:=1 to buffers.dim loop buffer:=buffers[k]; .MUs.kanban_container.create(buffer); for i := 1 to 500 loop .mus.part.create(buffer.cont); next; next; container := .mus.kanban_container.create(supermarket2); container.target_empty := cutting_filled; container.target_filled := supermarket2; container.workplace := cutting; while not container.full loop .mus.part.create(container); end; container := .mus.kanban_container.create(cutting_empty); container.target_empty := punching_filled; container.target_filled := cutting_empty; container.workplace := punching; container := .mus.kanban_container.create(punching_empty); container.target_empty := empty_container1; container.target_filled := punching_empty; container.workplace := bulging; end;
but then something went wrong with the method Deliver, as it said in the picture. I don't understand why there is a problem with the destination. Please show me my mistake on this
Thank you Mr Bangsow, I will do as you instructed.
By the way I have another minor question. In the same example above, you set the availability of Machine1 and Machine2 to 100%. In reality, am I right to understand that because of the buffer (supermarket), the parts are always available whenever the downstream machines need them, so the fact that Machine1 or Machine2 may fail any time does not matter anymore, and that's why their availability is made up for, thus it is 100%?
no, this would be wrong. You need to differ between machine-avaiability and line-availability. Through the buffers the line may be able to deliver parts, also if the single machines are unavailable from time to time.
In reality the machine availability is never 100%. Nevertheless the line may deliver up to 100% without delay.