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
相关推荐
maosheng11465 分钟前
【无标题】linux中企业容易考的的小知识点1(rhcsa)
linux·运维·服务器
牢姐与蒯10 分钟前
Linux进程(九).自定义shell——深度理解命令行和shell
linux·运维·服务器
天道jimmy19 分钟前
VulnHub 系列:View2aKill,1
linux·运维·服务器
2601_9623649729 分钟前
没有 TPM2.0,还能用 Windows Hello 摄像头吗?
windows·安全·电脑
mengge.cloud37 分钟前
0909华为云网络类服务实践小白实验教程
linux·运维·服务器·网络·华为云·php
小诗懂技术38 分钟前
从零手写一个 C 语言 HTTP 商品查询服务器:全链路技术实践
linux·服务器·网络
Escalating_xu39 分钟前
【Linux mmap 文件映射】从虚拟地址到页缓存:读写文件、匿名映射与极简 malloc
linux·缓存
Zixhy1 小时前
Boost 库实现异步高并发服务器
linux·服务器·c++
用户0332126663671 小时前
快速合并 Word 文档【Python 指南】
python
阿明61 小时前
基础编辑工具使用【Linux】
linux·运维·服务器