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
相关推荐
星云穿梭6 小时前
用Python写一个带图形界面的学生管理系统——完整教程
python
金銀銅鐵6 小时前
用 Pygame 实现 15 puzzle
python·数学·游戏
A小辣椒9 小时前
TShark:Wireshark CLI 功能
linux
黄忠12 小时前
大模型之LangGraph技术体系
python·llm
A小辣椒13 小时前
TShark:基础知识
linux
AlfredZhao15 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
hboot1 天前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
用户8356290780511 天前
使用 Python 自动化 PowerPoint 形状布局与格式设置
后端·python
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户8356290780511 天前
用 Python 自动化 PowerPoint 演讲者备注添加
后端·python