modbus学习笔记
minimalmobus库的api说明
参考 https://minimalmodbus.readthedocs.io/en/stable/
# 安装minimalmobbus库
pip install minimalmodbus
示例代码–学习笔记
16进制式是:0--F
# -*- coding:utf-8 -*-
"""modbus测试"""
from time import sleep
import minimalmodbus
# 创建一个实例,第一个参数是端口号,第二个参数9是modbus设备的地址(一个设备可以连多个地址)
inst = minimalmodbus.Instrument('COM#', 9)
# 设置实例的波特率为9600
inst.serial.baudrate = 9600
# 设置超时时间为1
inst.serial.timeout = 1
# 09 03 00 00 00 01 85 42 # 注释
"""读取数据"""
# 第一个参数0是地址位(寄存器地址,对应的刚才的00 00,十进制就是0)
# 第二个参数1是小数点的位数,不是读取数据的量(该函数仅读取一个数据,读取多个数据用registers),读取的数据是(16进制)DF,转换为10进制,就是223,(1代表一位小数点)一位小数点就是22.3
# 第三个参数3是功能码
# 第四个参数可选,设置是否有符号,True就是有符号,温度是有负值的,要设置为True
temp = inst.read_register(0, 1, 3, signed=True)
# 打印输出读取的数据,这里打印的数据是room T=22.3°C
print("room T=" + str(temp) + "°C")
# 注意是想,读取完第一个地址要留一点间隔时间,不然会报错
sleep(0.5)

本文是一篇关于使用Python的minimalmodbus库进行Modbus通信的学习笔记。通过示例代码,展示了如何初始化仪器,设置波特率和超时时间,并读取寄存器数据。代码中解释了读取数据的步骤,包括指定地址、小数点位数、功能码以及数据的有符号性。最后,给出了读取温度数据并打印的示例。
2366

被折叠的 条评论
为什么被折叠?



