agv.fsm我想知道為什麼我的汽車越來越多,如何改善橫向運動
agv.fsm我想知道為什麼我的汽車越來越多,如何改善橫向運動
You create in your process flow "X" a new taskexecuter object. Objects behave a bit different, when you create them by source code or a create activity. They stay in your model on reset!
"comment to prevent losing question on list of answers". I have deleted my comment, but I wanted that your question stays visibile on the list of questions on this "answers" internet site. Currently there is a bug on this internet page, if someone is deleting a post or a comment, the question is not visible anymore in the list of currently active questions. But If I shorten only the content then the order of questions is only updated and is not getting invisible.
霈倫 Like Jörg said, your process flow is creating a new task executer (car) every time an object leaves the queue which is why you are getting so many. To fix this, you can delete the "create object" and "destroy object" events in process flow. Also delete all of the extra task executers (cars) that you don't need in the 3d view.
Next, you will want to create 2 global lists, one for each queue which you can do in the toolbox by selecting the green + > global list > item list. In each of the queue's output settings, select the box "use transport" and use list as shown below:
You will then add those lists in your process flow and pull from them to make the task executers move. See this model for more details. agv (1).fsm
Also, for more complex AGV systems, the built in AGV process flow is really useful. You can learn more here: https://docs.flexsim.com/en/21.1/Tutorials/TaskLogic/Tutorial4AGVs/4-2AGVsUsingProcessFlow/
Max quantity on the floor storage can be set by double clicking on it to open properties, clicking the "flow" tab, then setting "maximum content." A "decide" activity can be added to the process flow to determine which floor storage to go to. The code I used for the conditional decide was Model.find("Queue3").as(Object).outObjects[1].subnodes.length < 10 which basically means find Queue 3, find it's first output port (outObjects[1]) which is FloorStorage1, then find how many items are stored in FloorStorage1 (subnodes.length). If this value is less than 10, it will send it to the first port. If this value is eqaul to 10, then it will be sent to the second port.
14 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