主要内容

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

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 属性的值设置为现有的实时应用程序,也可以稍后再设置该值。向该属性写入值后,该属性即变为只读属性。创建对象后,不能直接更改 Application 属性的值。属性值只能在对象创建后通过调用 validate 函数进行修改。

Enable 属性用于启用或禁用实时应用程序中的该仪表。

Name 属性是一个有效的变量名,您可以使用它来引用实时应用程序。

在创建 Instrument 对象时,您可以将 ModelName 属性的值设置为一个现有模型,也可以稍后设置该值。向该属性写入值后,该属性即变为只读属性。创建对象后,不能直接更改 Model 属性的值。属性值只能在对象创建后通过调用 validate 函数进行修改。

对象函数

addFileLogSignalsFind signals connected to File Log blocks and add these to real-time instrument object
addInstrumentedSignals查找已配置监控的信号,并将这些信号添加到实时监控对象中
addSignal在回调中添加流媒体信号
clearScalarAndLineData清除实时仪表对象的子级
connectCallback添加回调函数,用于响应来自目标计算机的新数据
connectLine将流式传输信号连接到坐标区
connectScalar为标量显示添加流式传输信号
connectXYPlotConnect X and Y signal structures to display on axes
copyCopy the array of handle objects from one Instrument object to another
delete删除实时仪表对象
generateScript生成脚本,用于从信号、标量和线在实时仪表对象中创建标量和坐标轴控件
getQuery Instrument object properties
getBufferedData从实时应用程序的仪表缓冲区中获取数据
getCallbackDataForSignal获取实时仪表对象中某个信号的回调数据
removeCallback从实时仪表对象中移除了回调函数
removeSignal从实时仪表对象中移除信号
setAssign Instrument object property values
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 中推出