已部署实时应用程序的 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 软件包
使用 mkdir 和 mcc 函数创建一个构建文件夹,并运行 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')