主要内容

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

目标:通过 TCP 实现计算机通信开发

此示例演示了如何使用 TCP 模块将数据从目标计算机发送至开发计算机上运行的 MATLAB®。此示例使用位于 IP 地址 192.168.7.5 的目标计算机。

服务器实时应用程序 slrt_ex_target_to_host_TCP 中的 TCP Send 模块将目标计算机的数据发送至开发计算机上 MATLAB 创建的 TCP/IP 对象。MATLAB m-script 将接收到的数据发送回实时应用程序。

要打开此示例,请在 MATLAB 命令行窗口中输入:

open_system('slrt_ex_target_to_host_TCP')

打开、构建和下载服务器应用程序

打开模型。

tg = slrealtime;
connect(tg);
model = 'slrt_ex_target_to_host_TCP';
open_system(model);

构建模型并下载至目标计算机

modelSTF = getSTFName(tg);
set_param(model,"SystemTargetFile",modelSTF);
set_param(model, 'RTWVerbose', 'off');
set_param(model, 'StopTime','10');
targetIP = '192.168.7.5';
set_param([model,'/TCP Server'],'serverAddress',targetIP);
evalc('slbuild(model)');
load(tg,model);

在目标计算机上运行实时应用程序

start(tg);
pause(3);

在开发计算机的 MATLAB 中创建 TCP/IP 对象

启动实时应用程序后,创建一个 TCP/IP 对象,并将该 TCP/IP 对象连接至开发计算机。

t = tcpclient(targetIP,5027);

读取数据包并发送回目标计算机

从目标计算机读取数据并写回。

tic
while (toc<5)
   data = read(t,16);
   write(t,data);
end

停止目标计算机上的实时应用程序

stop(tg);

关闭开发计算机上的 TCP/IP 对象

clear t;

查看目标计算机接收到的信号

Simulink.sdi.view();

关闭模型

bdclose(model);