MATLAB: Can’t I restore disabled links from a model StopFcn callback

callbacklinksimulink

I have a model, where I want to disable links before the simulation and to restore the links after the simulation.
The InitFcn callback looks like this: set_param('BreakLinks/LibraryBlock', 'LinkStatus', 'inactive')
It works, the link is disabled. In the same model, the StopFcn callback looks like this: set_param('BreakLinks/LibraryBlock', 'LinkStatus', 'restore')
The link is not restored by the StopFcn. Why not? How can I work around this problem?

Best Answer

It could be because executing StopFcn is also part of simulation. And you can not modify the library link of a block during the simulation process.
Simulation Started --> Execution --> Simulation stopped --> Save Workspace data --> Execute StopFcn --> Simulation finished.
You can modify the links only after simulation is finished.
You can restore the library in save or close callback functions.