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
|
|||
|
|||
ASRS - double handling, items stacked horizontally
Hi Everyone,
I would like to ask a question about ASRS vehicle. Is there a possibilty to stack items on the ASRS` balcony horizontally? I have a model, in which the ASRS picks two items from the rack (each item from different bay) and then transport these items to a conveyor. While items are transporting, there are placed on balcony vertically (one item on the other one). I would like them to be placed one by one. I have tried to use setloc command on ASRS` load trigger, however it didn`t worked. Do you have any suggestions how to deal with these problem? |
#3
|
|||
|
|||
Hi Agnieszka,
I have met the same problem about ASRS before. The approach I use to solve this problem is the code in Custom Draw trigger. I attach an example and hope it helps. |
The Following 2 Users Say Thank You to Jing Chen For This Useful Post: | ||
Sebastian Hemmann (09-10-2015) |
#5
|
|||
|
|||
ASRS Vehicle
I am working on a simulation for one of our upcoming projects in Mississauga and I am using ASRS vehicles in it. I need a crane that have two load handlers on it currently there is only one Load Handler in it and I cannot find a way to add another Load handler. I can increase the capacity of the load handler but that doesn’t serve our purpose.
Is there any way to add another load handler to the crane or how to make two ASRS vehicles working together Infeeding and Outfeeding from the same rack? if its now clear please do let me know. Thanks in Advance. |
#6
|
|||
|
|||
Hi Nikhil,
please take a look on Tom David`s example: https://www.flexsim.com/community/fo...?do=file&id=81 |
#7
|
|||
|
|||
Reference to the item in Task Sequence
Hi Everyone,
I`ve met another problem in my ASRS` model. Model consists of few objects: a) Rack b) ASRS c) Queue 1 d) Queue 2 e) conveyors system The object flow is as follow: Firstly, the ASRS take 2 items from the Rack and transport them to Queue 1. These items are processed and then transported by conveyors to Queue 2. Items on Queue 2 need to be transported to the Rack using the same ASRS as mentioned above (2 items at the same time). The first flow (from Rack to Queue 1) is handled by "Task Sequence example 1" placed in Rack. The second flow (from Queue 2 to Rack) is handled by "Custom Task Sequence" placed in Queue 2. In these "Custom Task Sequence" items are defined as: 1- item 2 - next() Unfortunately, during simulation I get an information about task error, which shows that defined item is an invalid pointer. Do you have any idea how I can make a reference to items in Queue 2 to avoid such problem? That`s a "Custom Task Sequence" from Queue 2: treenode item = parnode(1); treenode current = ownerobject(c); int port = parval(2); treenode item1 = parnode(2); /**Custom Code*/ treenode ASRS = centerobject(current,1); treenode Rack = outobject(current,1); treenode ts; treenodearray t_item = makearray(2); t_item[0] = item; t_item[1] = next(t_item[0]); ts = createemptytasksequence(ASRS,0,0); inserttask(ts,TASKTYPE_TRAVEL,current,NULL); for (int Counter1 = 1; Counter1<= 2; Counter1++) { inserttask(ts,TASKTYPE_FRLOAD,t_item[Counter1-1],current,1); } inserttask(ts,TASKTYPE_TRAVEL,Rack,NULL); for (int Counter2 = 1; Counter2<=2; Counter2++) { inserttask(ts,TASKTYPE_FRUNLOAD,t_item[Counter2-1],Rack,1); }; dispatchtasksequence(ts); |
#8
|
||||
|
||||
Hi, that is a normal action of the flexsim engine,
because the send to function creates a tasksequence right after entering of the first item. There isn't a second item at this time. When the second item enters the queue and the ASRS has not picked already the first item, then the queue creates a second tasksequence, which consists of the two items. You have a tasksequence more than you need it and the first tasksequence contains tasks with references to NULL. If you create the tasksequence only when two items have entered the queue, then the method might work. But the reference to the first item isn't "next" instead it is "previous". Jörg |
#9
|
|||
|
|||
Well, it seems that solution based on this code is more complicated than I`ve thought.
Finally, I used additional rack and combiner, which packs 2 items (returning to new rack) together to avoid referencing to the second item. It is not exactly what I have been looking for, however til I develop task sequence code to model functinality I need, it must be enough. |
#10
|
||||
|
||||
Your tasksequence also has a different problem:
int port = parval(2); treenode item1 = parnode(2); You refer to the same parameter in 2 different ways so that will not work anyway. The solution to your problem is using the callsubtask and perform the load task when the asrs is at the pickup position. You can then check if there are 1 or 2 items to load and create the appropriate tasks (more or less what Jörg also proposed) |
The Following User Says Thank You to Steven Hamoen For This Useful Post: | ||
Jörg Vogel (10-15-2015) |
#11
|
||||
|
||||
Jing Chen included a sample model in the post above.
Quote:
In the 7.7 release, many graphics improvements were added to speed up the drawing time. One of the changes was to cache as much as possible in the scene about to be drawn. The item positions on the ASRS are now cached before the draw trigger fires, and thus, the draw trigger no longer is able to effect location changes on the items. The work around is to include a custom OnPreDraw node on the ASRS. In the attached example model, an OnPreDraw node has been added to the ASRS under >behaviour/eventfunctions/OnPreDraw. The code first calls inheritcode() to run the ASRS's standard OnPreDraw code, since this local OnPreDraw overrides the ASRS class object's default OnPreDraw, yet we still want that default code to fire. Next we include our custom positioning script to position the items on the ASRS in our desired locations. |
The Following 8 Users Say Thank You to Ben Wilson For This Useful Post: | ||
Steven Hamoen (05-04-2016) |
Thread | Thread Starter | Forum | Replies | Last Post |
Material handling by operators | sravan kumar | Q&A | 5 | 03-17-2015 11:30 PM |
Close gap between stacked racks | Jörg Vogel | Q&A | 2 | 03-03-2014 09:12 AM |
I am looking for 'Double ASRS unloading and loading be sequence' model... | syseo | Q&A | 1 | 06-14-2012 12:44 AM |
Creating a stacked bar chart for the states of multiple objects | Kris Geisberger | Tips and Tricks | 6 | 08-11-2011 09:40 PM |
Double load handling ASRS | Paul Dowling | Q&A | 8 | 05-06-2008 10:19 PM |