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)