PyModbus API对应的功能码和报文

文章目录

1、PyModbus API对应的功能码和报文

连接串口,本文在win11系统,使用虚拟串口来捕获报文

python 复制代码
import pymodbus.client as modbusClient
from pymodbus.framer import FramerType

client = modbusClient.ModbusSerialClient(
	port                =   "COM2",
	framer              =   FramerType.RTU,
	baudrate            =   115200,
	bytesize            =   8,     
	parity              =   'N',
	stopbits            =   1,                                                                     
	handle_local_echo   =   False,
	name                =   "comm",
	reconnect_delay     =   0.1,
	reconnect_delay_max =   300,
	timeout             =   1,    
	retries             =   3,
	trace_packet        =   None,
	trace_pdu           =   None,
	trace_connect       =   None,
)

client.connect()

1.1、功能码:0x01

功能码 0x01
报文 01 01 00 02 00 02 1C 0B

python 复制代码
res = client.read_coils(
	address=0x0002, 
	count=2, 
	device_id=1
)

1.2、功能码:0x02

功能码 0x02
报文 01 02 00 00 00 01 B9 CA

python 复制代码
res = client.read_discrete_inputs(
	address=0,
	count=1,
	device_id=1
)

1.3、功能码:0x03

功能码 0x03
报文 01 03 00 9B 00 01 F5 E5

python 复制代码
res = client.read_holding_registers(
	address=155,
	count=1,
	device_id=1
)

1.4、功能码:0x04

功能码 0x04
报文 01 04 00 00 00 01 31 CA

python 复制代码
res = client.read_input_registers(
	address=0,
	count=1,
	device_id=1
)

1.5、功能码:0x05

功能码 0x05
报文 01 05 00 00 FF 00 8C 3A

python 复制代码
res = client.write_coil(address=0,value=True,device_id=1)

1.6、功能码:0x06

功能码 0x06
报文 01 06 00 9B 30 31 2D F1

python 复制代码
res = client.write_register(address=155,
	value=0x3031,
	device_id=1
)

1.7、功能码:0x10

功能码 0x10
报文 01 10 00 FF 00 02 04 00 01 00 F1 2C EF

python 复制代码
res = client.write_registers(
	address=0xff,
	values=[0x01, 0xf1],
	device_id=1
)

1.8、功能码:0x17

功能码 0x17
报文 01 17 00 A1 00 03 00 64 00 02 04 12 34 56 78 94 68

python 复制代码
res = client.readwrite_registers(
	read_address=0xa1,
	read_count=3,
	write_address=0x64,
	values=[0x1234, 0x5678],device_id=1
)

2、总结

其他功能码对应的API,请查看PyModbus库的源码:mixin.py,路径如下

bash 复制代码
Miniconda\miniconda3\envs\myenv\Lib\site-packages\pymodbus\client\mixin.py
功能码(十六进制) 对应API
0x01 read_coils
0x02 read_discrete_inputs
0x03 read_holding_registers
0x04 read_input_registers
0x05 write_coil
0x06 write_register
0x10 write_registers
0x17 readwrite_registers
相关推荐
都在酒里1 分钟前
Linux字符设备驱动开发(十):综合实例——I2C传感器 + LED智能控制与进阶指南
linux·运维·服务器·驱动开发·交互
感谢地心引力3 分钟前
在codex里面使用Deepseek-v4,支持mac和windows双系统
windows·gpt·macos·ai·codex·deepseek
2301_809051147 小时前
Linux 网络编程 学习笔记
linux·网络·学习
坤昱8 小时前
cfs调度类深入解刨——最新内核细节分析2
linux·服务器·cfs·cfs调度·eevdf调度·eevdf·kernel 7.1
艾莉丝努力练剑8 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
海市公约8 小时前
Linux核心基础命令与权限管理实战指南
linux·运维·服务器·vim·权限管理·系统监控·命令行
风吹夏回8 小时前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
eggcode8 小时前
【Qt学习】Linux(ARM架构)在线安装Qt6.x
linux·qt·学习·arm
wkd_0078 小时前
Ubuntu 22.04 Samba 连接故障排查记:从“用户名或密码错误”到 NTLM 版本不兼容
linux·运维·ubuntu
小熊Coding8 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书