Python读取modbus数据(WTVB01-485振动传感器)
实物如下图:
参考手册上获取到的部分信息:
接下来开始操作:
1.将485转USB口连接到计算机,然后使用:Modbus Poll这个软件与实物通讯。这里注意:厂家给的地址是“50”是十六进制的数值,需转换成十进制,值为"80"(modbus Poll里的ID填十进制的),连接过程及效果如下图。
下图是成功后的样子:
2.写python程序读取数据,程序代码如下:
"""
jzh 2024.01.16 modbus_rtu program used to data analysis
"""
import serial
# import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu
def mod(param_port="com6"):
"""
modbus_rtu program used to data analysis
:param param_port:com' port
:return:
"""
red = []
alarm = ""
try:
# 设定串口为从站
master = modbus_rtu.RtuMaster(serial.Serial(port=param_port, bytesize=8, parity='N', stopbits=1))
master.set_timeout(5.0)
master.set_verbose(True)
# 读保持寄存器
red = master.execute(80, cst.READ_HOLDING_REGISTERS, 1, 9) # 这里可以修改需要读取的功能码
print(red)
alarm = "正常"
return list(red), alarm
except Exception as exc:
print(str(exc))
alarm = (str(exc))
return red, alarm # 如果异常返回,故障信息
if __name__ == "__main__":
mod()
运行结果如下: