Modbus协议

文章目录

概念

modbus是工业通信总线协议,常用于PLC设备中,像水表、电表等。

优势是免费、简单。

采用主从问答通信(用于信息采集和控制)


分类

modbus RTU:运行在串口上 二进制传输 效率高

modbus ASCII:运行在串口上 ascii传输 用于通信数据量较小的情况下

modbus TCP:运行在以太网上 是应用层协议 基于传输层的TCP协议实现 端口号502


协议格式

报文头7字节(4字节序列号+2字节长度+1字节单元标识符) + 功能码(1字节) + 数据


寄存器

一、位寄存器(1字节) 开关量

输出线圈

离散量输入寄存器

二、字寄存器(2字节) 存储数据

保持/输出寄存器

输入寄存器


读写

功能码

0x01:读输出线圈

0x02:读离散量输入寄存器

0x03:读保持寄存器

0x04:读输入寄存器

0x05:写单个线圈

0x06:写单个保持寄存器

0x0F:写多个线圈

0x10:写多个保持寄存器

读写模板

读:

主机->从机:报文头7byte+功能码1字节+起始地址2byte+数量2byte

从机->主机:报文头7byte+功能码1字节+字节计数1byte+数据

写单个:

主机->从机:报文头7byte+功能码1字节+起始地址2byte+断通标志/数据2byte

写多个:

主机->从机:报文头7byte+功能码1字节+起始地址2byte+数量2byte+字节计数1byte+数据

注意:"断通标志"字段是2字节,但协议规定:这个字段只能天0x0000(对应"关")或0xFF00(对应"开"),实际有效信息只有1位(其他位是协议要求的固定填充)

案例:



Modbus库

应用modbus时,通常会安装modbus库,调用封装好的modbus接口

读输出线圈:modbus_read_bits(modbus_t *ctx, int addr, int nb, uint8_t *dest);

读离散量输入寄存器:modbus_read_input_bits(modbus_t *ctx, int addr, int nb, uint8_t *dest);

读保持寄存器:modbus_read_registers(modbus_t *ctx, int addr, int nb, uint16_t *dest);

读输入寄存器:modbus_read_input_registers(modbus_t *ctx, int addr, int nb, uint16_t *dest);

写单个线圈:modbus_write_bit(modbus_t *ctx, int addr, int status);

写单个保持寄存器:modbus_write_register(modbus_t *ctx, int addr, int value);

写多个线圈:modbus_write_bits(modbus_t *ctx, int addr, int nb, const uint8_t *val);

写多个保持寄存器:modbus_write_registers(modbus_t *ctx, int addr, int nb, const uint16 *val);

代码举例:

相关推荐
Trouvaille ~9 小时前
TCP Socket编程实战(三):线程池优化与TCP编程最佳实践
linux·运维·服务器·网络·c++·网络协议·tcp/ip
JoySSLLian11 小时前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
猫头虎11 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
云姜.12 小时前
网络协议----OSI七层网络协议 和 TCP/IP四层(五层)网络协议
网络·网络协议
郝学胜-神的一滴13 小时前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip
“αβ”13 小时前
数据链路层协议 -- 以太网协议与ARP协议
服务器·网络·网络协议·以太网·数据链路层·arp·mac地址
青春给了代码14 小时前
基于WebSocket实现在线语音(实时+保存)+文字双向传输完整实现
网络·websocket·网络协议
北京耐用通信14 小时前
破解AGV多协议互联难题:耐达讯自动化Profinet转Devicenet网关如何实现高效协同
人工智能·科技·物联网·网络协议·自动化·信息与通信
win x15 小时前
深入理解HTTPS协议加密流程
网络协议·http·https
仙俊红15 小时前
从 Filter / Interceptor 到 HTTPS
网络协议·http·https