我想使用 modbus 读取它的值。根据该文档,我必须发送命令 3(读取保持寄存器,如果我是正确的话),但我无法进行查询。有人可以帮忙吗?我主要是想读有功功率(kWh)。这是我的代码:
代码:
全选import u
time
from machine import UART
from machine import Pin
import uos
# query: slave address\function code\start address (hi)\start address (lo)\number of points (hi)\number of points (lo)
# query: b'\x01\x03\x04\x00\x00\x08'
def test():
print("modbus")
uos.dupterm(None, 1)
modbus = UART(0)
modbus.init(baudrate=9600, parity=0, bits=8, stop=1, timeout=500, timeout_char=2, tx=Pin(1), rx=Pin(3))
print("Reading from modbus: {}".format(modbus))
while True:
modbus.write(b'\x01\x03\x04\x00\x00\x08')
print("Can read: {}".format(modbus.any()))
utime.sleep(0.1)
result = modbus.readline()
if result is not None:
print("Value of reading: {}, type of {}".format(result, type(result)))
utime.sleep(0.5)
uart = UART(0, 115200)
uos.dupterm(uart, 1)
我尝试进行查询,但我不太了解它,因此它不起作用。此外,我阅读后得到的结果是无,并且根据 micropython 文档,它显示超时。
0