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 > Q&A
Downloads

Q&A Using Flexsim and building models

  #1  
Old 05-19-2010
john mic john mic is offline
Flexsim User
 
Join Date: May 2010
Posts: 15
Downloads: 9
Uploads: 0
Thanks: 14
Thanked 0 Times in 0 Posts
Rep Power: 123
john mic is on a distinguished road
Question Transport 2 once!

If operator capacity is 2 and the processor maximum content is 1,then how to make operator to transport 2 once? Then place 1 for the processor after the processor finished it,the operator could place another one immediately without to travel to upstream to get a new one so as to increase production efficiency.
Attached Files
File Type: zip carry two flowitem once.zip (41.6 KB, 159 views)
  #2  
Old 05-19-2010
Lars-Olof Leven Lars-Olof Leven is offline
Flexsim Distributor
 
Join Date: Aug 2007
Location: Sweden, Borlnge
Posts: 312
Downloads: 278
Uploads: 2
Thanks: 300
Thanked 256 Times in 139 Posts
Rep Power: 330
Lars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to behold
Default

Hi,

I have 2 suggestion that you can look at.

First one is to have a queue before your processor, the queue should have the capacity of 2, performing batching and flush the contents between batches.
This approach will make the operator take 2 item to the queue and wait at the queue until it is empty, then goes and pick up 2 new item.

Second suggestion is to write your own tasksequence which picks up 2 item, travel to the processor, unload first item, wait for the first item to be finished and then unload the second item to the processor.
To get this to work you need to use sendmessage and/or subtask for the operator. The sendmessage/subtask is used for to controling when the second item will be unloaded to the processor.

Lars-Olof
  #3  
Old 05-20-2010
Lars-Olof Leven Lars-Olof Leven is offline
Flexsim Distributor
 
Join Date: Aug 2007
Location: Sweden, Borlnge
Posts: 312
Downloads: 278
Uploads: 2
Thanks: 300
Thanked 256 Times in 139 Posts
Rep Power: 330
Lars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to behold
Default

Hi Johan,

First your question.
Quote:
Originally Posted by john mic
Hi Lars-Olof,

Thanks for your reply and the 1st way makes the operator to transport 2.But the 2nd way you said to write a tasksequence to picks up 2 item then to travel it to processor and unload it one by one.Could you tell me how to make the code, I couldn't make it to pick up 2 item from the queue.Thanks!

John mic
This is one solution to use your own tasksequence:
Code:
int port=1;
treenode ts = createemptytasksequence(centerobject(current,1),0,0);
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
// Load first item in the queue
inserttask(ts,TASKTYPE_FRLOAD,rank(current,1),current,port);
// Load second item in the queue
inserttask(ts,TASKTYPE_FRLOAD,rank(current,2),current,port);
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);
// Unload first item and wait
inserttask(ts,TASKTYPE_FRUNLOAD,rank(current,1),outobject(current,port),opipno(current,port));
inserttask(ts,TASKTYPE_UTILIZE,rank(current,1),outobject(current,port),STATE_UTILIZE);
// Unload second item and wait
inserttask(ts,TASKTYPE_FRUNLOAD,rank(current,2),outobject(current,port),opipno(current,port));
inserttask(ts,TASKTYPE_UTILIZE,rank(current,2),outobject(current,port),STATE_UTILIZE);
dispatchtasksequence(ts);
Put the code in the trigger OnEndCollecting in the queue, other changes in the queue need to do is to get the queue Perform Batching, Flush contents between batches, having Target Batch Size set to 2.
The last change in the queue is to have Send To Port not release items.

In the Processor you must Free the Operator OnPrecessFinish.

If you have more questions please keep post them in this topic.

Lars-Olof
The Following 2 Users Say Thank You to Lars-Olof Leven For This Useful Post:
Tom David (05-20-2010)
  #4  
Old 05-20-2010
john mic john mic is offline
Flexsim User
 
Join Date: May 2010
Posts: 15
Downloads: 9
Uploads: 0
Thanks: 14
Thanked 0 Times in 0 Posts
Rep Power: 123
john mic is on a distinguished road
Question transport 2 once

Hi Lars-Olof,

I also wanna know how to make it run continuously, since it will stop at about 20th time unit in the model.I attached it,would you pls refer to it.Thanks!

John Mic
Attached Files
File Type: zip How to make it run continuously .zip (41.9 KB, 156 views)
  #5  
Old 05-20-2010
Tom David's Avatar
Tom David Tom David is offline
Flexsim User
 
Join Date: Aug 2007
Location: Schwaebisch Gmuend, Germany
Posts: 430
Downloads: 157
Uploads: 47
Thanks: 486
Thanked 450 Times in 233 Posts
Rep Power: 520
Tom David has a brilliant futureTom David has a brilliant futureTom David has a brilliant futureTom David has a brilliant futureTom David has a brilliant futureTom David has a brilliant futureTom David has a brilliant futureTom David has a brilliant futureTom David has a brilliant futureTom David has a brilliant futureTom David has a brilliant future
Default

It’s a pointer problem on the items to load. Because in the task sequence rank 1 and rank 2 are used, but several items can enter the Queue it points to the same items. If these items are destroyed the bad pointer appears.
One solution could be to manage to point on the right items. Store the arriving item pointer e.g. in the tree and use them in the task sequence.
Another simpler solution is to change the maximum content of the Queue to 2. Now only 2 items are at the same time in the Queue and the pointer rank 1 and rank 2 are correct.
__________________
tom the (A)tom: "We have solved our problems ... now we have to fight the solutions."
The Following User Says Thank You to Tom David For This Useful Post:
Lars-Olof Leven (05-20-2010)
  #6  
Old 05-20-2010
Lars-Olof Leven Lars-Olof Leven is offline
Flexsim Distributor
 
Join Date: Aug 2007
Location: Sweden, Borlnge
Posts: 312
Downloads: 278
Uploads: 2
Thanks: 300
Thanked 256 Times in 139 Posts
Rep Power: 330
Lars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to beholdLars-Olof Leven is a splendid one to behold
Default

Hi,

The easiest way is set the queue to capacity of 2.
Why I suggested to have capacity of 2 is to be sure that I am only handling
2 items every time I want to do my task sequence.
Otherwise I need keep track of which items that are already assigned to a task sequence.

Lars-Olof


Thread Thread Starter Forum Replies Last Post
How do you transport using two different methods Derrick Serbonich Q&A 1 02-25-2009 05:50 PM
Keep calling the same operator for transport Jorge Toucet Q&A 3 11-05-2008 01:27 PM
flowiTems From transport to transport Manuel Kraenzle Q&A 1 10-27-2008 01:32 PM
Using different combinations of operators for Transport Brandon Peterson Tips and Tricks 0 06-20-2008 09:08 AM
use of operator for transport and setup Pablo Concha Q&A 2 08-23-2007 11:30 AM


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.