enable log signals through command line.

3 views (last 30 days)
Pika on 20 Jul 2012
Commented: Cou on 27 Jul 2020
I have several reference models which has logging/test point signals. I use Simulink Signal Logging Selector to enable/disable these signals but I would like to do this through the command line. How do I do this? I have tried Simulink.SimulationData.ModelLoggingInfo.createFromModel. What do i do after this? I also then tried findSignal but it always comes back with an empty array.

Accepted Answer

Albert Yam
Albert Yam on 20 Jul 2012
Edited: Albert Yam on 20 Jul 2012
I remember doing this before, but I can't find the code. I had to : 1) find the block 2) get the line (out of the block) 3) go back and find the source port 4) set your options there
sph =get_param(lhh,'SrcPortHandle');
set_param(sph,'DataLogging',1); %this changed for newer versions I think
get_param(sph,'ObjectParameters') %there will be other things you will want
%decimation, limit results to last XX points
Edit:I'm using Simulink 6.6.1, so things might be different now.

More Answers (1)

Cou on 13 Nov 2017
I realize this is an old thread and an answer has been accepted, however it appears at the top of google search results. I thought I'd add a method that preserves the logged signal in the Simulink model but programmatically disables logging. The code below is essentially the same as unchecking the "DataLogging" boxes in the Simulink Signal Logging Selector. Make sure logging mode is set to "Override signals." This tutorial was helpful as well: Log Data in Library Charts
mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(gcs);
for i = 1:numel(mi.Signals)
mi.Signals(i).LoggingInfo.DataLogging = 0;
set_param(gcs, 'DataLoggingOverride', mi)

Sign in to comment.


Find more on Prepare Model Inputs and Outputs in Help Center and File Exchange



Community Treasure Hunt

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

Start Hunting!