主要内容

本页采用了机器翻译。点击此处可查看英文原文。

Instrument

创建实时仪表对象

说明

一个 slrealtime.Instrument 对象将信号数据从运行在 Speedgoat® 目标计算机上的实时仿真流式传输到 MATLAB® 开发计算机。该对象提供访问实时应用程序中与仪表相关的对象函数、仪表对象属性及仪表对象事件的途径。

该对象提供对以下方法和属性的访问:

  • 在实时应用程序中查找已配置监控的信号,并将这些信号添加到监控对象中。

  • 在仪表对象中添加或移除信号。

  • 将对象中的信号连接到轴或标量显示器。

  • 为对象中的信号添加、获取数据或移除回调函数。

创建对象

instrument_object = slrealtime.Instrument('appName') 为现有实时应用程序 appName 创建一个空的仪表对象。

示例: 为实时应用创建仪表对象

instrument_object = slrealtime.Instrument() 创建一个未分配实时应用程序的空仪表对象。

示例: 创建不带实时应用程序的仪表对象

属性

全部展开

AxesTimeSpan 属性控制 App Designer 用户界面中所有轴的时间轴(x 轴)。当设置为 Inf 时,目标计算机上运行的实时应用程序的信号值将显示在坐标轴上。若将数值改为 10,则所有时间轴均将设置为该值,例如 10 秒。

AxesTimeSpanOverrun 属性控制当数据超过 AxesTimeSpan 属性值时,App Designer UI 中轴线的响应行为。当 AxesTimeSpan 属性的值为 Inf 时,AxesTimeSpanOverrun 属性将失效。当 AxesTimeSpan 属性值以秒为单位设置时,所有时间轴的宽度(时间范围)将被设定为有限值。当实时应用程序的信号值超过 x 轴上的最大时间值时,坐标轴可选择滚动循环

在创建 Instrument 对象时,您可以将 Application 属性的值设置为现有的实时应用程序,也可以稍后再设置该值。向该属性写入值后,该属性即变为只读属性。创建对象后,您无法直接更改应用程序属性的值。属性值只能在对象创建后通过调用 validate 函数进行修改。

对象函数

addInstrumentedSignals查找已配置监控的信号,并将这些信号添加到实时监控对象中
addSignalAdd signal for streaming to be available in callback
clearScalarAndLineData清除实时仪表对象的子级
connectCallback添加回调函数,用于响应来自目标计算机的新数据
connectLineConnect signal for streaming to axes
connectScalar为标量显示添加流式传输信号
connectXYPlotConnect X and Y signal structures to display on axes
delete删除实时仪表对象
generateScript生成脚本,用于从信号、标量和线在实时仪表对象中创建标量和坐标轴控件
getBufferedDataGets data from the real-time application instrument buffer
getCallbackDataForSignalGet callback data for a signal in real-time instrument object
removeCallback从实时仪表对象中移除了回调函数
removeSignalRemove signal from real-time instrument object
validate在仪表对象中验证信号

示例

全部折叠

为现有实时应用程序 appName 创建仪表对象 hInst

appName = 'slrt_ex_pendulum_100Hz.mldatx';
hInst = slrealtime.Instrument(appName);

创建仪表对象 hInst,不分配实时应用程序。当构建图形用户界面时,若实时应用程序的 MLDATX 文件不可用,此方法便显得尤为实用。

hInst = slrealtime.Instrument();

此示例演示了如何创建 Instrument 对象并应用 Instrument 对象的方法。此示例使用实时应用程序 slrt_ex_traffic_lights.mldatx,并包含连接到仪表对象的信号。

连接目标计算机

连接到默认目标计算机。

tg = slrealtime;
connect(tg);

为目标计算机配置模型

打开示例模型并配置系统目标文件 (STF) 的选择。

model = 'slrt_ex_traffic_lights';
open_system(model);
modelSTF = getSTFName(tg);
set_param(model,"SystemTargetFile",modelSTF);

构建实时应用程序

构建实时应用程序。使用 evalc 抑制构建消息。

evalc('slbuild(model)');

打开应用程序生成器和 MLDATX 文件

要创建仪表对象并应用仪表对象方法,请使用 Simulink Real-Time App Generator 将信号和参数绑定到控件,然后生成应用程序。

通过点击 Simulink® 编辑器中实时选项卡上的按钮启动应用程序生成器。

打开指定一组应用程序控件的 slrt_ex_traffic_lights.mat 文件。您可以使用此配置生成 traffic_lighs.mlapp 应用程序。

提示:在应用程序生成器中打开参数面板,以检查控件的参数。

打开 App Designer 并查看回调代码

从 MATLAB® 中的文件中,打开 traffic_lighs.mlapp 应用程序。

要查看演示对象方法的回调代码,请从设计视图切换至代码视图。滚动到回调代码中以这段文字开头的部分:

  Code that executes after component creation
      function startupFcn(app)

要修改此代码,请打开 MAT 文件,修改控件的配置,然后点击更新应用程序按钮。

关闭模型和应用

检查完回调代码后,请关闭模型、应用程序生成器和 App Designer 。

bdclose(model);

版本历史记录

在 R2020b 中推出