Hi everyone:
I'm trying to simulate a goods to man picking process and I'm stuck with a problem. I give to versions of the question :)
Short question:
How can I tell a TaskExecuter to retrieve a pallet from a location? (ASRS vehicle to extract a specific pallet from a Rack and send it to the conveyor)
Long question: This is the general layout:
af3b6e7e-ea13-4a87-a4a0-5d4d435d6ff0.jpg
This process is as follows:
- We have 2 types of pallets:
- Pallets stored at the racks: picking pallets
- Pallets for the prepared orders: order pallets
- Each operator handles 3 orders at the same time (the order pallets are on the queues behind them)
- Each operator receives pallets coming from the racks (via the ASRS vehicle and the conveyors)
- Once the picking pallet is processed, it returns back to its location
My approach is the following:
- "Source1" creates pallets (order pallets) and delivers it from "Queue1" to "Order1_1" ... "Order4_3" queues. When the order is finished, the pallet from "OrderX_Y" will be sent to "Sink2" and a new pallet will enter the queue.
- When the queue "OrderX_Y" receives the new pallet, it should trigger the picking process for the new order. I've tried to send a message (with sendmessage() function from "OrderX_Y" to the Dispatcher (which can send the task sequence to the ASRSvehicles), but I receive the following error: "OrderX_Y is not a valid dispatcher, and the task sequence could not be dispatched".
How can I send a message from "OrderX_Y" to the Dispatcher to start the tasksequence?
Is there a more convenient approach than mine?
Thanks in advance :)
EDIT: I attach here (pfc18.fsm) the model
Some explanations:
- I connected Order1_1 to the Dispatcher. The other OrderX-Y queues were not connected (I just disconnected them to test the model)
- The Dispatcher only connects to the ASRSvehicle2 (it should connect the other one, too). I disconnected the other to test the model
- Pallets in the racks are objects of type "Part", with some labels defined (rack, bay, level, aisle, Workplace). The Workplace label is used to forward the pallet through the conveyor (at the decision points).
What I need to do is:
1) Order1_1 receives a new pallet and keeps it in the queue
2) The Dispatcher sends tasksequences to the ASRS vehicles to take out the pallets for that order and put them in the conveyor
3) Pallets arrive at the picking workplace (or workstation). They are processed and returned back to their original location in the racks
4) Once the order is finished, Order1_1 releases the pallet (it goes to the Sink2) and a new pallet arrives
EDIT2: (I'm not sure if I should open a new question)
In the modified model (pfc19.fsm) (thanks @Jeff Nordgren for your guidance) I'm trying to instruct the ASRS vehicle to store a pallet when it travels back to the position, not when it finishes its current tasksequence (this can easily be seen if you run the model in this new version). Which would be the easiest approach?
Thanks again :)