question

Steven Hamoen avatar image
1 Like"
Steven Hamoen asked Phil BoBo commented

How are the coordinated tasksequences changed between v7.5 and v17.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?

FlexSim 17.0.0
coordinated task sequence
· 2
5 |100000

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

Adrian Haws avatar image Adrian Haws commented ·

@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 0 ·
Steven Hamoen avatar image Steven Hamoen commented ·

@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 0 ·

1 Answer

Phil BoBo avatar image
3 Likes"
Phil BoBo answered

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.

5 |100000

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