There is my model: asrs_IO.fsm
Thanks!
Thanks!
here is an example
Tasksequences are pushed to a list. In this code there is a message to pull a tasksequence from this list again. On Message a query string is edited to pull an entry matching a field of destination classified by 1 or 0 with a first element of an array. Pulled Tasksequence is moved to and dispatched in ASRS.
Queue strategy of Tasksequences is straight FIFO.
I hope that ASRS can act according to the sequence I gave, but my current model cannot execute it.
This is the model I modified: asrs_IO.fsm
@j08j , there does not exist a global list with a expression field name "bound", that is reponsible to identify any pushed tasksequence. The expression returns values of 1 or 0 to be the right loading station accordingly your condition sequence.
You need to add a tasksequence list to your model.
Currently, there is not a method introduced, that stops this model, if a requested loadstation is not available in list of tasksequences.
Please investigate my attached model thoroughly.
Some improvements to the On Message code to make @Joerg Vogel's model work more as expected.
- Only remove the first entry of the array if the pull was successful.
- Do not create a back order for the pull (or change the code to handle the back order on the pull result if no value was pulled).
- Place the code in a loop, so it pulls as many entries as possible, to pick up any task sequences that might have been skipped when first pushed to the list, but are now of the right type.
- To prevent any error messages when the array runs out, I add an invalid value (-1) to the array once its empty.
int done = 0; while(!done) { int valuebound = current.label1[1]; string qrystr = "WHERE bound == "+string.fromNum(valuebound); TaskSequence pulledTs = List("TSList1").pull(qrystr, 1, 1, current, 0, LIST_DO_NOT_BACK_ORDER); if (pulledTs){ pulledTs.move(current); pulledTs.dispatch(); current.label1.shift(); if(current.label1.length == 0) { current.label1 = [-1]; } } else { done = 1; } }
Edit:
Also wanted to add that you can get the same functionality without using a list by storing the task sequences in the tree of the ASRS and looping through them until the right type is found.
All this can happen in the "Use Transport" field of the queue and rack, making the message trigger redundant.
15 People are following this question.
FlexSim can help you understand and improve any system or process. Transform your existing data into accurate predictions.
FlexSim is a fully 3D simulation software environment. FlexSim can be used to simulate any process in any industry.
FlexSim®, FlexSim Healthcare™, Problem Solved.®, the FlexSim logo, the FlexSim X-mark, and the FlexSim Healthcare logo with stylized Caduceus mark are trademarks of FlexSim Software Products, Inc. All rights reserved.
Privacy | Do not sell or share my personal information | Cookie preferences | Report noncompliance | Terms of use | Legal | © Autodesk Inc. All rights reserved