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
|
|||
|
|||
Order Pulling model
On a pull order fulfillment model, the on entry trigger on the combiner seems to me good for having several sources connected to the input ports of the combiner, each source sending just one type of itemflow, and the component list telling how many items per input port need to be pulled to complete the order.
In my model I have 64 different flowitems in each rack, and each rack connected to just one input port of the combiner. So how can I choose only the flow items I need from the 64 items available in a rack to be pulled into the combiner??? Any help is welcome Thanks Roger Antillon, FOUR Seasons |
#2
|
||||
|
||||
Hi Roger,
If you look at the picklist of the onentry trigger of the combiner and you scroll all the way down, you find the option: "Update Combiners Component List" That option gives you the possibility to define in a table per itemtype, what combinations you want to pull. If that is not sufficient, you can either fill that table dynamicly or look at the code on the trigger and create your own functionallity. Regards, Steven |
#3
|
||||
|
||||
Pick_To_Light Example
I think Roger wants to pull in a list of flowitems with different itemtypes from the same object by somehow modifying the component list of a combiner. The problem is that the component list of a combiner is only good for defining a set number of flowitems (without regard for itemtype) from multiple objects. While it's true that you can update the quantities listed in the component list dynamically using the OnEntry trigger, it still does not give you control over which flowitems will be pulled in from the upstream objects.
There are so many ways to tackle this problem, that I find myself always changing my mind as to which way I want to do it... I've attached an example of a pick-to-light model I built some time ago that might start giving you ideas on how you would like to approach the problem. By no means is it the only or even the best way to do it. I simply had the model handy, and it's a very small model that will be easy to understand. Essentially, this is the idea: Pallets generated by a source are labeled with a list of items that need to be picked and put on the pallet by an operator at each of three different pick-to-light rack locations along a conveyor belt. Another source periodically generates items to restock the racks. Although the racks are connected to input port 2 of their respective combiners, they do not release any of their items until the OnEntry of the combiner releases specific items in the rack based on the picking list label of the entering pallet. It's in this OnEntry code where the real logic of the model is contained. The way to keep a rack from releasing any flowitems before they are pulled in by the combiner is to return a -1 in the dwell time field of the racks (a little trick of the rack...). Last edited by Cliff King; 11-01-2007 at 01:42 PM. |
The Following User Says Thank You to Cliff King For This Useful Post: | ||
Enver Burak KORCAK (09-09-2008) |
#5
|
|||
|
|||
Hi Cliff,
I was looking at your example Pick_To_Light_System and I noticed you where using table/array on the item. I wonder now how to create the table/array on a item or on a object? For the item I want to create the table/array when I create the item. I tried first to create a label and use settablesize on that but that did not work. Also looked at the Flowitem Basket and saw that the label packinglist already had the headers for the table. I have a project coming up and in that project I need to use the table/array on an item. Lars-Olof |
#6
|
|||
|
|||
Hi Lars-Olof,
I think the trick is that you must right-click on the label in the flowitem bin to choose Create/Edit Label Table, AND use that table editor to set the table to at least as many columns as you require in your model. This way Cliff's code in the OnExit of the Source_Tote will work. In Cliff's case he set the table to 2 columns and named his column headers in the flowitem bin. If you wish to create a table label entirely by code on an item (no up-front flowitem bin work): treenode packinglist = addlabel(item,"packinglist"); int lineitems = duniform(3,12); settablesize(packinglist,lineitems,2,1,1); //NOTE: using the DATATYPE and OVERWRITE arguments of this command //set the names of the column headers setname(rank(first(packinglist),1),"SKU"); setname(rank(first(packinglist),2),"QTY"); for(int index = 1; index <= lineitems; index++) { int sku = duniform(1,9); int qty = duniform(1,2); settablenum(packinglist,index,1,sku); settablenum(packinglist,index,2,qty); } Kris |
#7
|
|||
|
|||
Thanks Kris,
Your code works. Cliff, is this the way to do it, or is there another way? Lars-Olof Last edited by Cliff King; 11-19-2007 at 05:16 PM. |
The Following User Says Thank You to Cliff King For This Useful Post: | ||
zhang xin (12-27-2009) |
#9
|
|||
|
|||
Pick list
Cliff,
I was looking your reply and I have looked into the model. In additional to that the model, I wonder how could the model be modified such that the operator will pick up a few items according to the different pick list that are in the proximity before leaving the items in the pallet. David
__________________
Advent2 Labs David Last edited by David Chan; 04-06-2008 at 01:46 AM. |
#10
|
||||
|
||||
If I understand, you want the operator to pick up more than one item from the rack before walking back to the pallet to drop them off. Of course you would need some rule like "pick up to 2 additional items from locations within 1 meter of the operator's current location".
If you don't mind writing a little code in the "Break to" Requirement field of the Operator, this is actually pretty easy to model. Just bump up the operator's capacity to 3, and write an expression in the "Break to" Requirement that is sure to only break to those tasksequences associated with items that are located within 1 meter of where the operator is currently located. Use some of the existing piclist options for ideas on writing the code. |
The Following User Says Thank You to Cliff King For This Useful Post: | ||
David Chan (04-09-2008) |
#11
|
|||
|
|||
Hi, Kris, you say: the trick is that you must right-click on the label in the flowitem bin to choose Create/Edit Label Table, AND use that table editor to set the table to at least as many columns as you require in your model.
But I cannot find the menu Create/Edit Label Table. I use flexsim 4.3. Can you tell me hoe to find that menu? thanks |
#12
|
|||
|
|||
1. Go to the FlowItem Bin
2. Go to the Properties, Labels tab of the flowitem you are using 3. Create a new label (Add Number Label) 4. Right-click on the newnumberlabel and choose Create/Edit Label Table 5. Make changes to Rows and Columns and press Apply button Note: On the main Labels tab of the Properties window there is a drop-down to toggle between Table View and Tree View modes. Tree view might help you understand what you are doing. |
The Following 2 Users Say Thank You to Kris Geisberger For This Useful Post: | ||
qin tian (11-18-2008) |