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
相关推荐
神明9311 小时前
golang如何实现最小堆定时器_golang最小堆定时器实现总结.txt
jvm·数据库·python
m0_740796361 小时前
如何同步SQL冗余字段信息_通过触发器实现自动反向填充
jvm·数据库·python
2401_824697661 小时前
如何迁移单实例数据库到RAC架构_RMAN与Data Pump的实施方案
jvm·数据库·python
zhaoyong2221 小时前
如何在Bootstrap中制作一个精美的404错误页面
jvm·数据库·python
2401_831419441 小时前
如何配置表中某列的排序权重_全文索引配置与权重分配
jvm·数据库·python
2401_898717661 小时前
golang如何理解io.Reader和io.Writer_golang io.Reader与io.Writer接口详解
jvm·数据库·python
2501_901006471 小时前
mysql连接池常用类库有哪些_mysql性能优化方案
jvm·数据库·python
江南十四行1 小时前
Python性能优化完全指南——剖析、缓存与C扩展
python·缓存·性能优化
u0110225121 小时前
SQL如何优雅地进行多表关联查询_掌握JOIN语法执行逻辑
jvm·数据库·python