I'm currently doing my master project in engineering where I am simulating the process of manufacturing aluminum rolling slabs.
I have created label called "Homogenisation" where I give the rolling slabs numbers from 8 to 10 when entering the system depending on how long and at what temperature they need to be in when they go to activity called "furnace". This activity (furnace) is replicated 150 times (since in real life the furnace has 150 available seats).
Anyways I am wondering if somebody could help me with the current problem I am facing: Whenever Homogenisation=10 arrives to activity "furnace" I want the model to check if there are currently rolling slabs with number 8 or 9 inside the furnace. If they are I want the activity to finish processing them before letting 10 inside (even though there are seats available inside the furnace). The same applies when the furnace is currently working on label nr 10, label nr 8 and label nr 9 must wait until the furnace has completed the homogenisation process on label nr 10.
I have tried creating a dummy queue before the activity, but I haven't programmed the right visual logic command in order to make the simulation do what is mentioned above.
If anyone could help me to create a "gate" before rolling slabs enter the "furnace" or has suggestions on how I could do this, it would be greatly appreciated!
(Rolling slab is the work item in my simulation and I am simulating from a given schedule that I have put in the start point. The rolling slabs are routed to the system from the starting points (which are casting furnaces) from 36 at a time to 106 so there is never just one entering the system at a time.)
Write a VL code in:
Visual Logic (Furnace Actitvity)
Before Routing in (open Furnace Activity-> routing in-> options->more->VL Before Selecting)
In this Visual Logic Section I would write the procedure, which evaluates if the next Work Item is permitted to enter or not. If not, use "Block routing". If yes, use "select current Work Item".
However, I am not sure how this will go along with your 150 replicates. Maybe you need to acutally copy 150 of the furance activities and than in each call the above described VL procedure. (If you do so, make sure you create an acivity with a call for the above described procedure and implement it at the before selection VL. Than use duplication wizzard in order to create 150. The duplicated activites will than have the call VL implemented as well, thus making it easy for you to access the VL procedure on all activites at the same time, w/o opening each of them.)
I hope that helped