modbus快速入门

发布时间:2026/7/23 20:47:12
modbus快速入门 我的小站Ean7的小站1. Modbus 是什么Modbus 是一种工业通信协议用于 PLC、传感器、变频器、仪表、智能电表等设备之间交换数据。它的特点简单开放标准工业应用非常广主从结构传统 Modbus RTU/TCP在 Modbus 里面主站Master可以简单理解为主动发起通信、提出读写请求的一方。而从站Slave是被询问、返回数据或执行命令的一方。现在新的 Modbus 标准里更常叫Master →Client客户端Slave →Server服务器但工业现场仍然习惯叫主站/从站。典型场景上位机/PLC||Modbus|-----------|||温度计 电表 变频器2. Modbus 有哪些类型主要有三个类型物理层常用场景Modbus RTURS485工业现场最多Modbus ASCIIRS232/485老设备Modbus TCPEthernet现在越来越多现在最常用RS485 Modbus RTU网口 Modbus TCP3. Modbus TCP 快速理解例如电脑读取一个温度传感器电脑(Modbus Client)||TCP502端口|温度设备(Modbus Server)设备IP:192.168.1.100 端口:5024. Modbus 的核心寄存器Modbus 不直接传temperature25.6℃而是读取地址40001返回:256然后约定实际温度数据 /10256/1025.6℃5. 四种寄存器类型重点Modbus 有四类数据类型名称读写示例Coil线圈读写开关Discrete Input离散输入只读按钮Input Register输入寄存器只读温度Holding Register保持寄存器读写参数记忆0xxxx 线圈 开关 1xxxx 输入 3xxxx 输入寄存器 4xxxx 保持寄存器实际设备中最常见400014000240003...6. 一个实际例子假设温度模块地址:40001数据:253说明书温度寄存器值 ×0.1读取40001→253计算253×0.125.3℃7. Modbus RTURS485是什么典型接线PLC 温度模块 A ------------ A B ------------ B GND ---------- GND多个设备RS485总线 主站|----设备1 地址1|----设备2 地址2|----设备3 地址3每个设备有地址设备1: SlaveID1设备2: SlaveID28. Modbus RTU 通信参数必须一致例如波特率:9600数据位:8停止位:1校验: None简称96008N1或者96008E19. 一次读取过程例如主机我要读取:Slave2寄存器:40001数量:2个发送02 03 0000 0002 CRC解释字段意义02设备地址03功能码0000开始地址0002读取2个寄存器CRC校验设备回复02 03 04 00FA 0102 CRC表示两个16位数据25025810. 常用功能码功能码作用01读线圈02读输入03读保持寄存器04读输入寄存器05写单个线圈06写单个寄存器15写多个线圈16写多个寄存器最常用03 读数据 06 写数据11. Python 快速测试安装pipinstallpymodbus读取 Modbus TCPfrom pymodbus.clientimportModbusTcpClient clientModbusTcpClient(192.168.1.100,port502)client.connect()resultclient.read_holding_registers(address0,count10)print(result.registers)client.close()输出[253,100,0,55,...]12. 常用调试软件Windows推荐Modbus Poll功能模拟主站读写寄存器看通信帧Modbus Slave模拟设备。Linux命令sudoaptinstallmbpoll读取mbpoll\-mtcp\-a1\-r40001\192.168.1.10013. 最重要的三个概念三个① Modbus 是读写寄存器设备一堆地址② 地址不是数据例如40001只是位置。里面可能温度 压力 电压要看设备手册。③ 通信双方必须知道规则包括设备地址 寄存器地址 数据类型 缩放比例 字节顺序