主要内容

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

已部署实时应用程序的 Python API 示例

本示例演示了如何使用 MATLAB® 编译器 SDK 构建一个 Python 软件包。该软件包允许您为 Simulink® Real-Time™ 模型创建仪表代码,并从您的 Python 应用程序与该仪表代码建立接口。MATLAB Compiler SDK 支持构建一个依赖于 MATLAB Compiler 运行时 (MCR) 的独立软件包。MCR 可免费使用,支持下载,且运行时无需 MATLAB 许可证。要使用编译器创建该软件包,需要许可证。您还可以通过使用 MATLAB 外部接口,从外部语言接口控制 Simulink Real-Time 应用程序,而无需创建编译器 SDK 工程。有关详细信息,请参阅使用 Python 脚本运行实时应用程序

连接到目标计算机

创建了一个名为 tg 的目标对象,用于表示目标计算机。连接到目标计算机,并确定该目标计算机的系统目标文件 (STF)。

tg = slrealtime;
connect(tg);
modelSTF = getSTFName(tg);

开放模型

打开模型 slrt_ex_pendulum_100Hz

model = 'slrt_ex_pendulum_100Hz';
modelPath = 'simulink-real-time-python-api/instrumentation-model/slrt_ex_pendulum_100Hz';
open_system(model);

配置和编译模型

为与目标计算机对应的 STF 配置建模模型。从模型构建实时应用程序。

set_param(model,"SystemTargetFile",modelSTF);
evalc('slbuild(model)');
bdclose(model);

构建 Python 软件包

使用 mkdirmcc 函数创建一个构建文件夹,并运行 MATLAB® 编译器。您可以使用部署工程 slrealtimePythonDeployment.prj 中的库构建器 App,以交互方式执行此操作。

mkdir slrealtimePythonDeployment\for_testing
mcc -W python:slrealtimePythonAPI -T link:lib -d ...
    .\slrealtimePythonDeployment\for_testing ...
    -v .\slrealtime-api\slrealtimeCaptureSignals.m ...
    .\slrealtime-api\slrealtimeDisableWarnings.m ...
    .\slrealtime-api\slrealtimeConnect.m ...
    .\slrealtime-api\slrealtimeDisconnect.m ...
    .\slrealtime-api\slrealtimeGetCapturedSignal.m ...
    .\slrealtime-api\slrealtimeGetModelStatus.m ...
    .\slrealtime-api\slrealtimeGetParam.m ...
    .\slrealtime-api\slrealtimeInitTarget.m ...
    .\slrealtime-api\slrealtimeLoad.m ...
    .\slrealtime-api\slrealtimeRemoveInstrument.m ...
    .\slrealtime-api\slrealtimeSetParam.m ...
    .\slrealtime-api\slrealtimeSetStopTime.m ...
    .\slrealtime-api\slrealtimeStart.m ...
    .\slrealtime-api\slrealtimeStop.m ...
    -a .\slrt_ex_pendulum_100Hz.mldatx'

您可以使用 MATLAB Compiler SDK 来打包该应用程序。有关详细信息,请参阅使用 Python 包编译器创建 Python 包 (MATLAB Compiler SDK)

运行 Python 脚本

在运行 Python 脚本之前,请将脚本中的 IP 地址更新为要连接的目标计算机的 IP 地址。编辑文件 CallingSLRealTimeFromPythonUsingCompiler.py 的第 73 行,以设置目标计算机的 IP 地址。您可以在命令行窗口中输入以下内容来运行该脚本:

winopen('CallingSLRealTimeFromPythonUsingCompiler.py')