Control Scope Blocks Programmatically - MATLAB & Simulink (original) (raw)
This example shows how to control scopes with programming scripts.
Use Simulink Configuration Object
Use a Scope Configuration object for programmatic access to scope parameters.
- Modify the title, axis labels, and axis limits
- Turn on or off the legend or grid
- Control the number of inputs
- Change the number of displays and which display is active
Create a model and add a Scope and Time Scope block. Then, use get_param
to create the Scope Configuration object myConfiguration
.
mdl = 'myModel'; new_system(mdl); add_block('simulink/Sinks/Scope', [mdl '/myScope']); add_block('dspsnks4/Time Scope', [mdl '/myTimeScope']); myConfiguration = get_param([mdl '/myScope'],'ScopeConfiguration')
myConfiguration = Scope configuration with properties:
Name: 'myScope'
Position: [360 302 560 420]
Visible: 0
OpenAtSimulationStart: 0
DisplayFullPath: 0
PreserveColorsForCopyToClipboard: 0
NumInputPorts: '1'
LayoutDimensions: [1 1]
SampleTime: '-1'
FrameBasedProcessing: 0
MaximizeAxes: 'Off'
MinimizeControls: 0
AxesScaling: 'Manual'
AxesScalingNumUpdates: '10'
TimeSpan: 'Auto'
TimeSpanOverrunAction: 'Wrap'
TimeUnits: 'None'
TimeDisplayOffset: '0'
TimeAxisLabels: 'Bottom'
ShowTimeAxisLabel: 0
ActiveDisplay: 1
Title: '%<SignalLabel>'
ShowLegend: 0
ShowGrid: 1
PlotAsMagnitudePhase: 0
YLimits: [-10 10]
YLabel: ''
DataLogging: 0
DataLoggingVariableName: 'ScopeData'
DataLoggingLimitDataPoints: 0
DataLoggingMaxPoints: '5000'
DataLoggingDecimateData: 0
DataLoggingDecimation: '2'
DataLoggingSaveFormat: 'Dataset'
Set a property.
myConfiguration.DataLoggingMaxPoints ='10000';
Find the Scope and Time Scope blocks.
find_system(mdl,'LookUnderMasks','on','IncludeCommented','on', ... 'AllBlocks','on','BlockType','Scope')
ans = 2×1 cell {'myModel/myScope' } {'myModel/myTimeScope'}
Find only Simulink Scope blocks.
find_system(mdl,'LookUnderMasks','on','IncludeCommented','on',... 'AllBlocks','on','BlockType','Scope','DefaultConfigurationName',... 'Simulink.scopes.TimeScopeBlockCfg')
ans = 1×1 cell array {'myModel/myScope'}
Find only the DSP Time Scope blocks.
find_system(mdl,'LookUnderMasks','on','IncludeCommented','on',... 'AllBlocks','on','BlockType','Scope','DefaultConfigurationName',... 'spbscopes.TimeScopeBlockCfg')
ans = 1×1 cell array {'myModel/myTimeScope'}
Scope Configuration Properties
For details about the Scope Configuration object properties, see TimeScopeConfiguration.
See Also
Floating Scope | Scope | Scope Viewer