Join Subroutine being ignored

Hello all,

Do some of you have issue with the join subroutine being ignored ?

I have a pretty simple worflow where de FCA is doing serial dilution in the plate. Once it’s finished, I send the plate to the MCA to copy it a certain number of time via an asynchronous subroutine.
The FCA is doing the next serial dilution at the same time as the MCA is copying the first plate.

I then have a join subroutine before sending the second plate to the MCA to make sure that the next plate is not being sent when the MCA is not done.

For some reason, FluentControl doesn’t care. It starts the subroutine at the next loop iteration and then of course I get an error because there is already a plate at the nest. It’s driving me crazy.

Here is a screenshot of the program I am running and the error that I receive.

Screenshot 2026-04-23 100437

I started to add delays and wait all over the place in the hope that it would work but nothing. (By the way, any idea of the differences between the delay and wait command ?)
I also added the join subroutine everywhere in the hope that one will be picked up and do the job.

If anyone has an idea ?

Thanks,
All the best

First thing that come to my mind…

Is the name of the subroutine, your’re want to wait for, the same as in the asynchronous step?

Hi,

Not sure I got what you meant but both subroutine have different names.
My “Waitsubroutine” is empty. It contains a “delay” statement but that’s it. I’m using it to keep the timing correct but it doesn’t do anything.

Then the asynchronous one is named dynamically based on the RequestedTest variable.

At some point I had the same “dghtloop” variable in both the main script and the async one. I imagined maybe it created some conflict so I renamed the one in the main script

As I know FC needs to know for which subroutine it should wait.

So you start an asynchronous subroutine, let’s say it’s called ‘RequestedTest’.

Then it’s necessary to put ‘RequestedTest’ into the join command.

If you want to excecute the ‘Waitsubroutine’ it needs to be started with one of the other options. Not as JoinSubroutine.

1 Like

This is how it works for me:

I may not get why you need a delay in the WaitSubroutine…
If you want to wait for a specific time you may could use a timer in the main script.

1 Like

Ok this one is on me because i did not understand it this way !

My bad. I thought that the join subroutine was waiting for all the previously running subroutine to end and then was running the subroutine given inside the command (in my case the “Waitsubroutine”).

That’s why my “Waitsubroutine” did not do anything…

So now it works, thank you for the help !

2 Likes

You’re welcome! Glad that I could provide some help!

Sometimes I get lost in all those functionalities, too.