ATTENTION

This FlexSim Community Forum is read-only. Please post any new questions, ideas, or discussions to our new community (we call it Answers) at https://answers.flexsim.com/. Our new Question & Answer site brings a modern, mobile-friendly interface and more focus on getting answers quickly. There are a few differences between how our new Q&A community works vs. a classic, threaded-conversation-style forum like the one below, so be sure to read our Answers Best Practices.


flexsim.com

Go Back   FlexSim Community Forum > FlexSim Software > Tips and Tricks
Downloads

Tips and Tricks Share helpful modeling ideas

  #1  
Old 10-06-2010
Ken Wiley Ken Wiley is offline
Flexsim User
 
Join Date: Aug 2010
Posts: 2
Downloads: 1
Uploads: 0
Thanks: 1
Thanked 0 Times in 0 Posts
Rep Power: 0
Ken Wiley is on a distinguished road
Default Single Conveyor loading/unloading machines

I have a single conveyor that moves items from a queue to one of 6 identical machines. This same conveyor moves completed item to the next step in line:
  • New items must only enter the conveyor if there is an idle machine
  • Completed items must not be re-loaded to a down-stream machine [one of the 6 anyway]
How would I:
  • Only introduce incomplete items to the conveyor when one of the 6 machines is idle?
    • Use GetStateNum at the queue. looking at each machine? Or have the conveyor pull from the queue based on the state of each machine?
  • Keep completed items from being introduced to 1 of the 6 downstream machines
    • Have the machine set a label upon exit.
    • Make a port decision on that label.
Thanks.
  #2  
Old 10-08-2010
Shankar Narayan's Avatar
Shankar Narayan Shankar Narayan is offline
Flexsim User
 
Join Date: Oct 2007
Posts: 33
Downloads: 25
Uploads: 0
Thanks: 24
Thanked 12 Times in 5 Posts
Rep Power: 161
Shankar Narayan is on a distinguished road
Default Single Conveyor loading/unloading machines

Ken

We have done similar routing decisions before on several models. Here is one way how you could approach this situation:
  1. Add a gloabl table where table rows index the 6 identical machine resource (tablerowid = machineid). The table can have 2 colummns namely - CurrentState and NumJobsCompleted
  2. At the start of the simulation init the CurrentState column to 0 to indicate all machine availability.
  3. Assume that the conveyor has 6 ports to divert to these six machines and that the ports are numbered 1-6 consecutively.
  4. introduce a new small stub conveyor at the end of your main conveyor to connect to port 7 (exit from your machining area).
  5. Add a label to the flowitme called ItemDest
  6. For each item you have in the queue that needs to be released, the flow could be something like this:
    1. scan this small global table for the first open row where CurrentState = 0 and fetch the Tablerowid into a local variable.
    2. Load this Tablerowid into the item's label ItemDest
    3. Once this item is inducted on the conveyor, the conveyor will divert this item based on matching the port# to the ItemDest label.
    4. Once the item enters the machine make the machine update the global table (index=machineID) CurrentState column = 1 to indicate that this machine is not available at present. This prevents the queue from sending a new item to the same machine at the same time it is processing an existing item.
    5. Once the machine is done with the processing two things need to be done from the machine: reset this ItemDest to a value of 7 (exit port on main conveyor) AND update the global table (index is machine ID) where CurrentState = 0 to indicate it is ready for next job. In addition, the machine could increment the NumJobsCompleted counter in the global table so you can get some ongoing stats for your machines.
    6. The next stop for each item after completion will be directly the exit from the machining area. It cannot go to any other machine down stream.

Hope the above technique makes sense and is not too complicated for your environment. I am sure there are many other ways to do what you wanted and some of them even more efficient than the one listed above. Let me know if you have any comments on this.

Thanks
  #3  
Old 10-09-2010
Jason Lightfoot Jason Lightfoot is offline
Flexsim Consultant
 
Join Date: Aug 2007
Location: Somerset, UK
Posts: 719
Downloads: 20
Uploads: 0
Thanks: 123
Thanked 953 Times in 446 Posts
Rep Power: 773
Jason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond repute
Default Group Capacity Thread

Ken, I've posted a new thread which may offer a solution to what you've described here.
  #4  
Old 10-18-2010
Ken Wiley Ken Wiley is offline
Flexsim User
 
Join Date: Aug 2010
Posts: 2
Downloads: 1
Uploads: 0
Thanks: 1
Thanked 0 Times in 0 Posts
Rep Power: 0
Ken Wiley is on a distinguished road
Default Thanks for the ideas - one more issue.

I put a simple conveyor in front of the merge-sort that pulls from a queue when one of the 6 machines is idle. I'm using a global table to monitor idle/busy. Use a label to determine if the product has been processed, and only non-processed can enter a machine, only processed can exit the merge-sort.

The issue I'm having now is the queue, limited to 15, will NEVER release again once it reaches 15.

Is there a way to kick start the queue? It's behaving correctly by stopping because downstream processes do become busy. But it really should begin release once they free up.

Appreciate your ideas, Ken
  #5  
Old 10-22-2010
Jason Lightfoot Jason Lightfoot is offline
Flexsim Consultant
 
Join Date: Aug 2007
Location: Somerset, UK
Posts: 719
Downloads: 20
Uploads: 0
Thanks: 123
Thanked 953 Times in 446 Posts
Rep Power: 773
Jason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond reputeJason Lightfoot has a reputation beyond repute
Default

Ken have you tried opening an the queue's output when a resource becomes free?
The Following User Says Thank You to Jason Lightfoot For This Useful Post:
Ken Wiley (10-26-2010)

Tags
conveyor


Thread Thread Starter Forum Replies Last Post
Loading a large map as a background Kenny Macleod Q&A 6 02-09-2009 03:46 PM
Loading 3D-Shapes Jiri Vacek Gripes and Goodies 1 10-10-2008 05:08 AM
Multiple operators at different locations performing a single processor Paul Dowling Q&A 4 06-04-2008 03:08 AM
Operator not unloading items before picking up priority items Howe Chiat Cheng Q&A 2 05-28-2008 02:05 AM
Stop conveyor on loading mathiasds Q&A 2 11-20-2007 04:31 PM


All times are GMT -6.
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Copyright 1993-2018 FlexSim Software Products, Inc.