资讯详情

学习笔记python-modbus rtu读取传感器数据

需求:通过modbus协议从各种传感器获取数据,实时显示测量数据。 1)需要先安装python依赖包pyserial和pymodbus_tk。 安装方法:cmd里直接运行 pip install pyserial。

pip install pyserial

(因为我的系统是win7 32位,安装python不知道为什么装不上pip,最后,手动离线安装,直接运行pip错误,需要输入python -m pip install pyserial)。 安装pymodbus_tk时也出错

不得不离线安装,安装包下载地址https://github.com/ljean/modbus-tk。下载好后,cmd cd进入安装包目录,操作以下指令完成安装。

python setup.py install

2)需要两个工具来模拟串口数据: Configure Virtual Serial Port Driver可创建虚拟串口;

Modbus Slave,用于模拟slave,生成数据,发送串口com1,接收串口com2。

3)连接串口

master = modbus_rtu.RtuMaster(serial.Serial(port="com2",baudrate=9600, bytesize=8, parity='N', stopbits=1)) ''' port ——端口号 baudrate——波特率 bytesize——数据位 parity——校验位 stopbits——停止位 ''' master.set_timeout(5.0) master.set_verbose(True)

4)读取数据

def getdata():     Hold_value = master.execute(1, cst.READ_HOLDING_REGISTERS, 0, 9)  # 参数可修改 #1-从机地址 #cst.READ_HOLDING_REGISTERS——功能码,读保持寄存器 #0-寄存器起始地址 #9-寄存器数量     lb2.configure(text=Hold_value[0] Hold_value[1]/100)# 在标签lb2显示值     app.after(1000,getdata) # 每隔1s调用函数 getdata获取自己的数据

注意,Hold_value是一个元组,数据输出值为(12、44、0、0、0、0、0、0、0) 地址0的值为Hold_value[0] 5)显示界面,用标签显示

标签: tk7480传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台