How are the coordinated tasksequences changed between v7.5 and v17.0?

How are the coordinated tasksequences changed between v7.5 and v17.0?

SCHamoen
Advisor Advisor
12 Views
3 Replies
Message 1 of 4

How are the coordinated tasksequences changed between v7.5 and v17.0?

SCHamoen
Advisor
Advisor

[ FlexSim 17.0.0 ]

I'm updating a module from version 7.5 to v17.0 and the coordinated tasksequences are not working as expected. I move a product from a crane onto a transporter (both taskexecuters) and the Coordinated TS is send to the transporter. The problem now occurs when the transporter is already busy when it gets this TS. In the Coordinated TS I allocate the first TE and give it a pickoffset task and then allocate the 2nd TE.

In the old situation the crane also receives it's allocated task and is blocked that way in preventing it doing something else.

In the new situation this allocate task is not created or dispatched leaving the crane available for other tasks and a deadlock appears.

I did find in the what's new of (I think ) 7.7 that something changed in the coordinated TS. But I don't know what changed. Could you enlighten me?

Accepted solutions (1)
13 Views
3 Replies
Replies (3)
Message 2 of 4

adrian_haws
Not applicable

@steven.hamoen I don't know of any changes in the functionality of coordinated tasksequences. The release notes for 7.7.4 mention fixing a bug. If you'd like you can send us your model so we can take a look.

0 Likes
Message 3 of 4

SCHamoen
Advisor
Advisor

@Adrian Haws I would have to send you the complete module and solution for both versions to be able for you to see the differences and even we usually need a couple of hours to be able to compile from a fresh checkout 😉 . I'll first try some other ways. Can you specify what bug was fixed and what was changed to fix it? It might that I inadvertently used that bug and my modules and models are working while they shouldn't

0 Likes
Message 4 of 4

philboboADSK
Autodesk
Autodesk
Accepted solution

MAIN:/project/library/taskexecuters/Dispatcher>behaviour/cppfunctions/finishDeallocation(Task* taskdata, Task* allocatetaskdata, TaskSequence* tsdata)

had line 6 added in 7.7.4.

It was:

treenode executer = allocatetaskdata->involved2;
//pt("\nDeallocating ");pt(getname(executer));
TaskExecuter* objdata = &o(TaskExecuter, executer);
treenode activets = first(objdata->node_v_activetasksequence);
treenode activetask = rank(activets, o(TaskSequence, activets).curtask);
objdata->finishTask(activetask);
taskdata->state = TASKSTATE_FINISHED;
tsdata->nrofallocations--;

return 0;

Now it is:

treenode executer = allocatetaskdata->involved2;
//pt("\nDeallocating ");pt(getname(executer));
TaskExecuter* objdata = &o(TaskExecuter, executer);
treenode activets = first(objdata->node_v_activetasksequence);
treenode activetask = rank(activets, o(TaskSequence, activets).curtask);
objdata->activetask = activetask;
objdata->finishTask(activetask);
taskdata->state = TASKSTATE_FINISHED;
tsdata->nrofallocations--;

return 0;

I don't remember what the bug was that we fixed, but that's the change we made to fix it.



Phil BoBo
Sr. Manager, Software Development