What is a "LibIsSampleHit" function and why can't PLC Coder generate code for it?

2 views (last 30 days)
Hi!
I'm working with the PLC Coder demo "Cruise Control" (plcdemo_cruise_control.mdl) and when I run the "Check Subsystem Compatibility" of the PLC Coder menu on the "Controller" module using the default configuration parameters (Ode5 and fixed step size of 0.05) the subsystem passes the check.
But! if I change the step size to 0.01 I get the following error message after running the "Check Subsystem Compatibility":
"Block 'plcdemo_cruise_control/Controller/PID Controller' is configured to operate as function LibIsSampleHit. PLC Coder does not support this function."
I guess this is because the "PID Controller" module has a Discrete Time integrator with a sample time of 0.05.
What is a "LibIsSampleHit" function and why can't the PLC Coder generate code for it??
Thanks, Ferchots.
  1 Comment
Electro Ham
Electro Ham on 2 Sep 2020
I have a same issue in 2020a and my model, but now the error is: "Block '....' is configured to operate as function rand. PLC Coder does not support this function."
The PLC coder was generating the code fine in 2018b for this model.
What is rand, and why I can't generate the code? The error is really confusing.

Sign in to comment.

Accepted Answer

Seth Popinchalk
Seth Popinchalk on 9 Feb 2011
LibIsSampleHit is used to determine if the block executes on a given step. This is run when the model has multiple rates. Listed under the Current Limitations of the Simulink PLC Coder for R2010b is multi-rate models.
If you want to generate code for this model with the PLC Coder, you will need to change the Discrete Time Integrator in the PID Controller to have a sample time of 0.01.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!