ATTENTIONThis 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 |
#1
|
||||
|
||||
Problem with loading items of same itemtype
Hi
In the attached model i am facing the problem of loading multiple items of same itemtype.The queue was having the same default tasksequence and changed the break to requirement on the transport to only break to tasksequences with flowitems of a specific itemtype and then set the item type to the same value as the itemtype that was loaded already. I am trying to figure a way to use the Dispatcher's Pass To code to make this work the way i want.I know that i need to return the port number of the connected TE in the dispatcher's Pass To to get it work.But i dont know how to give it.And moreover i am facing the problem of taskerror(Invalid task).I tried to solve the problem with profiletasksequence() but dont know how to correct the invalid pointer.Please help me in solving the problem. Last edited by sagar bolisetti; 05-20-2014 at 01:32 AM. Reason: Added another model and given further description |
#2
|
||||
|
||||
Sorry i found the problem,I can go for any options in the Dispatcher pass to code.The problem here is in the Unload trigger i have given Invalid reference centerobject(current,1) that should be inobject(current,1) because the dispatcher is connected to transporter through "A" connection.Anyways Thanks.
|
#3
|
||||
|
||||
Hello Sagar,
if you want that the dispatcher organize the multiple loading you have to organize the unloading, too. First of all the standard functionalty transmitts a tasksequence when the resource gets available. This happens when a tasksequence is accomplished in the taskexecuter. The break task is another totally different concept: The actual tasksequence is interrupted and the taskexecuter is going to work on a different tasksequence. Similar to the breaktask works the subtask. If you choose the standard Break to Requirement function in the taskexecuter to load more items of the same item type, the function is going to look for a suited tasksequence at an object where the tasksequences have been parked. Back to your wish, my first approach would be to split the standard tasksequences in two seperate tasqsequences. The first tasksequence load items the second unload items. But be aware of this method you are responsible to keep track of the splitted tasksequences and you cannot use the standard functionalty in the specific part of model anymore. As long as the taskexecuter can load items, because he has got loading capacity left, the dispatcher pushes loading tasksequences to the taskexecuter. If taskexecuter should begin the unloading process, the dispatcher has to transmit unloading tasksequences to the taskexecuter. The taskexecuter is now only a client of the specific dispatcher and not a autonomous acting mobile object anymore. One way to push the right taskesequence is to reorder the tasksequencequeue in the dispatcher by changing the priority for instance. All this is only the very first basic work to do and it will last a long try and error period before you will get a suitable result. Your approach is looking for me like you are trying to change the logic of flexsim to behave as a totally different program. This will never work, because the flexsim's mobile object library is a main concept of the engine itself. This concept is really powerful and an advantage that other discrete material flow simulation programs miss. The question of the missing pointer is quite easy: The pointer is always null, because you have copied a code suited for a taskexecuter, which can contain items, to a dispatcher which administer only tasksequences and contains never an item: First of current (the dispatcher) is always null. Jörg |
The Following User Says Thank You to Jörg Vogel For This Useful Post: | ||
sagar bolisetti (05-20-2014) |
#4
|
||||
|
||||
Jorg,First i have uploaded model where i have copied from break to requirement to pass To code.Later i have realised that it will not return the port number.I have kept that code from where it is.
Thanks jorg your post is very informative.I have also read your post http://www.flexsim.com/community/for...ead.php?t=2632 Which is very useful in understanding about the working of breakTask.Actually this is Brandon solution.It is quite opposing to Break and can be done by setting the item type to the same value as the itemtype that was previously loaded .It can be achieved by choosing the picklist option specific type and by changing its double value double type=getitemtype(first(current)) and Unload until the dispatcher tasksequencequeue becomes zero.Here is my solution Last edited by sagar bolisetti; 05-20-2014 at 11:20 AM. |
Thread | Thread Starter | Forum | Replies | Last Post |
Increment of an itemtype | George Serhan | Q&A | 3 | 09-06-2012 11:30 AM |
Problem on Itemtype id | Jack Lai | Container Terminal (CT) Library | 3 | 11-07-2011 10:31 AM |
Can i divide a itemtype? | wilmermoncada | Q&A | 2 | 11-27-2009 08:41 AM |
how to get number of itemtype | Vic Li | Q&A | 11 | 08-19-2009 11:20 PM |
Operator not unloading items before picking up priority items | Howe Chiat Cheng | Q&A | 2 | 05-28-2008 02:05 AM |