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
相关推荐
ICECREAM11 小时前
Linux 进程间通讯(IPC)——总结
linux
飞猪~11 小时前
LangChain python 版本 第一集
开发语言·python·langchain
想你依然心痛12 小时前
嵌入式Linux安全加固:SELinux、Capabilities与Seccomp——强制访问控制与沙箱
linux·运维·安全
2601_9563198812 小时前
最新AI量化提效,先做可验证的小流程
人工智能·python
caimouse13 小时前
Windows Research Kernel (WRK) 内存管理器完整分析
windows
济*沧*海13 小时前
BaseMapper的介绍
java·windows·tomcat
vortex513 小时前
PowerShell Provider 机制详解:从文件系统到注册表的统一抽象
windows·powershell
REDcker13 小时前
macOS 挂载 Linux 远程目录详解
linux·运维·macos
开飞机的舒克_13 小时前
FastAPI 实战入门:从路由、参数校验到依赖注入的后端开发指南
python·fastapi
2601_9615934213 小时前
Mac 上搭建Linux环境吗?VMware + CentOS Stream 9 镜像快速部署
linux·运维·ide·macos·centos