Hi everyone,
I’d like to share a behavior I recently encountered in Automation Studio 6 (AS6) while investigating an existing project. It led to some intermittent issues, and I hope this helps others avoid similar problems.
In this project, a single MpRecipeXML instance was used to load multiple recipes. The implemented sequence was as follows: a MpRecipeRegPar block was used to register process variables (PVs), the recipe was loaded, and then everything was disabled once the CommandDone output was TRUE. The parameters were then updated to load the next recipe into a different PV, and the process was repeated for all required PVs.
During testing, an intermittent failure was observed (approximately one out of three attempts), where the load command would fail with an indication that no PV was registered—even though the MpRecipeRegPar block had the correct parameters and its Active output was TRUE.
Further investigation showed that when the Enable input of the MpRecipeRegPar block is set to FALSE, the Active output does not immediately follow. Instead, it can take several cycles (typically one, but occasionally up to four) to transition to FALSE. If the block is re-enabled before the Active output has fully returned to FALSE, it does not correctly apply the new parameters, which results in a failed PV registration.
Therefore, it is important not only to disable the block but also to explicitly confirm that the Active output is FALSE before attempting to register a new PV.
Hope this helps clarify this behavior.