Simulink的Goto/From标签能否显示当前信号值而非标签名称
Simulink Goto/From标签显示实时信号值解决方案
以下是两种不会破坏原有模型连接逻辑的可行实现方式:
方案1:直接覆盖显示(推荐,无需改代码)
适合少量标签的快速配置:
- 找到Goto模块对应的输入信号,右键选中信号后点击「信号标签」→「显示信号值」(R2020b及以上版本支持该选项)
- 拖动生成的动态数值标签到原有Goto/From标签的位置,覆盖默认显示的标签名即可
- 也可以用
Display模块接上对应信号,把模块的背景设置为画布同色、隐藏边框后拖到标签位置,效果和动态信号标签一致
方案2:批量自动更新标签(适合大量标签场景)
如果Goto/From标签数量较多,可以通过模型回调自动更新标签显示:
- 先给所有Goto/From对配置唯一的原始Tag,保证连接匹配关系不受影响
- 在模型的
StepFcn回调中添加如下示例代码,仿真每运行一步就自动把信号值写入标签显示:
% 遍历所有Goto模块批量更新 goto_blocks = find_system(bdroot, 'BlockType', 'Goto'); for i = 1:length(goto_blocks) goto_blk = goto_blocks{i}; % 获取Goto模块输入信号的当前值 sig_port = get_param(goto_blk, 'PortHandles'); sig_val = get(sig_port.Inport, 'SignalValue'); % 更新Goto标签显示 set_param(goto_blk, 'Tag', num2str(sig_val)); % 匹配对应From模块同步更新 from_blocks = find_system(bdroot, 'BlockType', 'From', 'GotoTag', get_param(goto_blk, 'Name')); for j = 1:length(from_blocks) set_param(from_blocks{j}, 'Tag', num2str(sig_val)); end end
注意:该方案仿真停止后需要额外写回调恢复原有Tag,避免破坏模型原有的Goto/From匹配关系
需求示例效果参考:
内容的提问来源于stack exchange,提问作者donbommelon
相关产品推荐
相关产品推荐

