问题描述
如果我搜索足够长的时间,我通常会找到答案。 但今天是这一天…… 我从 Aliexpress 购买了一个带有 MODBUS RTU 连接的 EnergyMeter,我正在尝试读取它。我已经尝试了很多来自互联网的东西。
这是 EnergyMeter 的数据表1
我尝试了 pyModbus 和 minimummodbus。
我的两个脚本:
#!/usr/bin/env python3
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
client = ModbusClient(method='rtu',port='/dev/ttyUSB0',timeout=1,stopbits = 1,bytesize = 8,parity='N',baudrate= 9600)
client.connect()
request = client.read_holding_registers(0x00,0x01,unit=2)
print (request.registers)`
和
#!/usr/bin/env python3
import time
import minimalmodbus
rs485 = minimalmodbus.Instrument('/dev/ttyUSB0',2)
rs485.serial.baudrate = 9600
rs485.serial.bytesize = 8
rs485.serial.parity = minimalmodbus.serial.PARITY_NONE
rs485.serial.stopbits = 1
rs485.serial.timeout = 1
rs485.debug = False
rs485.mode = minimalmodbus.MODE_RTU
print (rs485)
print(rs485.read_register(0,functioncode=4,))
#Volts_A = rs485.read_float(0,number_of_registers=4)
#print ('Voltage: {0:.1f} Volts'.format(Volts_A))
似乎我可以读取数据(第一个脚本输出 17942,第二个脚本输出 17248。 但老实说,我不知道如何处理它。 我也不明白那个代码...... 手册规定我必须发送一个 Hi 和一个 Low 地址,但我该怎么做? 0x00 是六进制 - 我必须转换它吗?怎么样?
我必须发送的手动统计数据地址+功能代码+数据+crc - 如何做到这一点,或者 pymod/minimod 是否自动做到这一点?它现在如何正确的功能代码等? 我完全糊涂了,如果有人可以帮助我,我会很高兴...
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)