question

Michael O'Connell avatar image
1 Like"
Michael O'Connell asked Michael O'Connell commented

Can I alter the criteria for setting of states on Task Executers?

For visual and spatial reasons, I'm loading a TE into an AGV. Unfortunately, that AGV is now loaded and always takes on STATE_TRAVEL_LOADED (unless it's blocked). It never will have any other states like STATE_IDLE or STATE_TRAVEL_EMPTY.

Is there a way to modify the "state setting" such that the AGV is only traveling loaded if it's carrying 2 loads? When carrying one load (the TE) it's considered empty?

I'm driving AGV movement through Task Sequence activities in Process Flow. Any way to set the state within a Travel activity?

FlexSim 16.1.0
task executerstates
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Sam Stubbs avatar image
0 Likes"
Sam Stubbs answered

To my knowledge there's not really an easy way to change the states in the way that you are suggesting.. If you need to have those states though for reporting and statistics, my recommendation would be to create Custom States that you could track.. Here's a link to a previous Answer here on the forum that talks about setting up custom states, and how to report them in a chart.

https://answers.flexsim.com/questions/26312/add-custom-state-to-a-state-gantt-chart.html

5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered Michael O'Connell commented

@Michael O'Connell You could insert a drawsurrogate object to your AGV and load the TE into the new object instead direct into the AGV. Maybe the AGV don't recognizes the TE as a loaded object anymore and you get the standard states back.

· 4
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Michael O'Connell avatar image Michael O'Connell commented ·

Jorg, adding a component/surrogate in "Animations and Components" can get me the correct visual and yields the proper AGV states. However, I haven't been able to load the TE into that surrogate. At least not with moveobject. If I need to do it with an AnimationVariable, what would the corresponding animation be?

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel Michael O'Connell commented ·

The node drawsurrogate does not exist in a Taskexecuter, if you drag him into the model. You can open the general tab of the taskexecuter's properties and press the Edit-Button for Visuals/Animation. Then you can close the new opened window and close the properties window with the OK-button.

The drawsurrogate node is created under the visuals of the variables of the taskexecuter and you can use it to move the operator into the taskexecuter. Then you must set a new location of the operator. The reference to the operator is

first(drawsurrogate(node("TaskExecuter4",model())))

The "TaskExecuter4" could be named different in your model. instead of first you can write the command rank(obj. container, num order).

rank(drawsurrogate(node("TaskExecuter4",model())),1)
0 Likes 0 ·
Michael O'Connell avatar image Michael O'Connell Joerg Vogel commented ·

@Jörg Vogel

In the attached model, I have TaskExecuter3 moved into the drawsurrogate for TaskExecuter2. When I try to use moveobject to move it into the model, I get the following error message:

exception: Exception caught in flexscript execution of <no path> line 3 instruction 5. Discontinuing execution. exception: Exception caught in TreeNode::callMemberFunction() flexscript execution /0 c: /testlink_instance i: /testlink_associated theclass: /testlink_class

The script window has the moveobject command. Isn't this something I should be able to do?drawsurrogate.fsm

0 Likes 0 ·
drawsurrogate.fsm (14.6 KiB)