Simulation of a productionprocess with finite storage

All topics specific to modeling questions in Enterprise Dynamics
Post Reply
steffvleugels
Posts: 1
Joined: Wednesday 17 December, 2014 - 14:20

Simulation of a productionprocess with finite storage

Post by steffvleugels »

For my thesis i wanna use enterprise dynamics to simulate the current production process and a new view on the process.

I'm having a hard time simulating the current process because the storage between 2 processes is supposed to be finite.
This means that only 1 product can be in storage (queue) at a certain time.

My process is as follows:

Infinite storage at the beginning(Source atom) --> Server that processes atoms at a certainpace per minute --> five finite storages (queue atom) --> 2 servers that work indepent from eachother, working at a certainpace per minute. --> (sink atom)

How can i trigger the second storage level to close when it receives a batch of atoms.

Second question
I wanna send batches in a conditional way to certain storages. if a batch is smaller than X pieces go to storage 1,2,3 if a batch is larger than X pieces go to 4,5... is this also possible?
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Simulation of a productionprocess with finite storage

Post by HarryBunnik »

Hello,

I have some trouble where your batches are suddenly coming from.

You can set on the source a label on each product, telling to which label the belong "Label([BatchNr], i) := 1". If you then set on the Server the label that was currently being processed and check if the product entering belongs to the same batch, it can be send on, otherwise you want to close the output of the storages.

Code: Select all

If(
  And(
      Input(c) > 1, 
      Label([CurBatchHandled], c) <> Label([BatchNr], i)
  ), 
  Do(
    Label([CurBatchHandled], c) := Label([BatchNr], i),
    Repeat(
      NrOc(c), 
      CloseOutput(out(count, c))
    )
  ), 
  If(
    Input(c) = 1, 
    Label([CurBatchHandled], c) := Label([BatchNr], i)
  )
)
I didn't have the chance to test this code, but it should give an indication which way to think.

As far as sending batches to a specific storage or storages. You will have to write code on the SendTo statement of the server before the storages that indicates which exits are available for each batch. I hope you'll have some way to simplify this, instead of having to make a table where each row indicates which storages are permitted.

Succes!

Cheers,

Harry
Post Reply