用于RTU Modbus的Python脚本

问题描述 投票:0回答:1

我正在使用raspberry pi 3B+来实现家庭的自动化。

我买的是电子式电能表MEMO4-M-MOD。https:/docs-emea.rs-online.comwebdocs152f0900766b8152f22b.pdf。为了连接到树莓派我买了一个电缆RS485USB。

我有兴趣从电能表中读取一些值(例如在电能表的数据表中说,电压的寄存器地址是在地址2000(hexa)),我写了这个代码。

#!/usr/bin/env python3
import minimalmodbus
import serial


instrument = minimalmodbus.Instrument('/dev/ttyUSB0',0) 
instrument.serial.port
instrument.serial.baudrate = 9600
instrument.serial.bytesize = 8
instrument.serial.parity =serial.PARITY_NONE
instrument.serial.stopbits = 1
instrument.serial.timeout = 0.05
instrument.mode = minimalmodbus.MODE_RTU

try:
    
    valeur= instrument.read_register(2000,1,3,False) 
    print(valeur) 
except IOError:
    print("no connection")
我在这里面临的问题是它打印没有连接,所以这让我觉得我使用正确的库.你用这个库吗?你能给我一些建议,使其工作? 非常感谢你
python modbus
1个回答
0
投票
#!/usr/bin/env python3
import minimalmodbus
import serial

instrument = minimalmodbus.Instrument('/dev/ttyUSB0',1)
instrument.serial.baudrate = 9600
instrument.close_port_after_each_call = True

valeur = instrument.read_float(2000, functioncode=3, number_of_registers=2, byteorder=0)

print(valeur)

将你的RS485 USB设备连接到你的pi,并确保你的pi可以看到它......通过运行 "dmesg /minimalmodbus.readthedocs.ioenstableinternalminimalmodbus.html "来检查。

© www.soinside.com 2019 - 2024. All rights reserved.