Simulink通过ModbusTcp与服务器通信

本文详细描述了如何在Simulink中搭建模型,修改StartFcn以获取输出,建立GUI进行服务器配置和数据显示,包括模bus连接、仿真控制、监听器实现以及跨组件参数传递的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、搭建所需的simulink模型

在模型的属性中,修改Callbacks中的StartFcn,添加listener以获取模型中的输出。

set(0,'ShowHiddenHandles','on');
blk='SineFcn/Gain';
event='PostOutputs';
listener=@hhh;
h=add_exec_event_listener(blk,event,listener);

 二、建立GUI

 可修改服务器IP地址、端口号;

 

显示simulink模块输出值

 显示ModbusTcp服务器端返回的心跳包,以确认连接状态。

显示发送至服务器的数据。

三、GUI中m文件的关键点

1、simulink的仿真启动及停止

load_system('SineFcn');%打开模型
set_param('SineFcn','SimulationCommand','start');%模型开始仿真
set_param('SineFcn','SimulationCommand','stop');%模型停止仿真

2、modbus连接的建立

mbConnector= modbus('tcpip',ModbusServerIp,ModbusServerPort);%创建modbus对象
mbConnector.Timeout = 20;
data1 = read(mbConnector,'holdingregs',1,1); %对保持寄存器的数据
write(mbConnector,'holdingregs',3,data2);%向保持寄存器写数据

没有modbus设备的,可以利用modbus sim等软件进行仿真。

 

3、simulink监听器的建立

function hhh(block,eventdata)
rto= get_param('SineFcn/Gain','Runtimeobject')%获得simulink中的gain
str=num2str(rto.OutputPort(1).Data);
statestxt = findobj('Tag','edit3');
%update the gui
set(statestxt,'string',str);
end

 4、跨组件的参数传递

利用handles结构体,在使用前后读取储存handles的内容

guidata(hObject, handles);

四、运行演示

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值