函数列表
函数 | 说明 |
---|---|
modbus | 创建MODBUS对象 |
read | 从MODBUS服务器读取数据 |
write |
对连接的MODBUS服务器执行写操作 |
writeRead | 在单个MODBUS事务中对一组保持寄存器执行写然后读操作 |
maskWrite | 在保持寄存器上执行掩码写入操作 |
instrhwinfo | 有关可用硬件的信息 |
clear | 从MATLAB工作区中删除仪器对象 |
配置说明
使用Modbus Slave模拟服务器,数值如下设置:
注意:Modbus Slave中每个寄存器是16位!
数据类型有:'int16', 'uint16', 'int32', 'uint32', 'single', 'double', 'int64', 'uint64'
数据读取
% 创建客户端
m = modbus('tcpip','127.0.0.1',502)
% 属性查看
>> m.ByteOrder
ans =
'big-endian'
>> m.Port
ans =
502
% 设置属性
>> m.Timeout = 3
m =
Modbus TCPIP with properties:
DeviceAddress: '127.0.0.1'
Port: 502
Status: 'Connected'
NumRetries: 1
Timeout: 3 (seconds)
ByteOrder: 'big-endian'
WordOrder: 'big-endian'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% read(obj,'holdingregs',address,count)
% read(obj,target,address,count,serverId) % 指定Server ID
% read(obj,target,address,count,precision) % 指定数据读取格式
% read(obj,target,address,count,serverId,precision) % 同时指定Server ID和数据读取格式
% 读取23,以保持寄存器的方式读取,read列表为modbus对象、寄存器类型、开始地址(从1开始)、读取的个数、读取的类型
>> read(m,'holdingregs',3,1,'int16')
ans =
23
% 单精度浮点型数据的读取,注意MATLAB默认的读取字序对应的Slave中的字序为Float AB CD,即大端
>> read(m,'holdingregs',5,1,'single')
ans =
10.1100
% 断开并清除Modbus连接
clear m
数据发送
% 创建客户端
m = modbus('tcpip','127.0.0.1',502)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% write(m,target,address,values)
% write(m,target,address,values,serverId,'precision')
write(mbConnector,'holdingregs',10,1235,'int16')
write(mbConnector,'holdingregs',1,[1 2 3],'int16')
% 断开并清除Modbus连接
clear m
参考链接:
- https://ww2.mathworks.cn/help/instrument/modbus.read.html#mw_bfb0478b-ea6e-42dc-94a5-88a54a3a55f9
- https://blog.csdn.net/u011273970/article/details/92705421
- https://ww2.mathworks.cn/help/instrument/modbus-communication.html?s_tid=CRUX_lftnav
-
https://ww2.mathworks.cn/help/instrument/configure-properties-for-modbus-communication.html
评论(0)
您还未登录,请登录后发表或查看评论