modbus学习笔记

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值