我在输入寄存器以从中获取数据时遇到一些问题:
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
import datetime
import time
while True:
client = ModbusClient(method='rtu', port='/dev/ttyXRUSB0', baudrate=115200)
client.connect()
# print( client)
result = client.read_input_registers(0x3100, 15, unit=1)
result1 = client.read_input_registers(0x3300, 14, unit=1)
result2 = client.read_input_registers(0x3110, 2, unit=1)
# result3 = client.read_input_registers(0x311,15,unit=1)
# result4 = client.read_input_registers(0x3200,15,unit=1)
# print (result)
datetime_object = datetime.datetime.now()
solarVoltage = float(result.registers[0] / 100.0)
solarCurrent = float(result.registers[1] / 100.0)
batteryVoltage = float(result.registers[4] / 100.0)
chargeCurrent = float(result.registers[5] / 100.0)
loadVolatage = float(result.registers[12] / 100.0)
loadCurrent = float(result.registers[13] / 100.0)
maxPanelVoltage = float(result1.registers[0] / 100)
minPanelVoltage = float(result1.registers[1] / 100)
maxBateryVoltage = float(result1.registers[2] / 100)
minBateryVoltage = float(result1.registers[3] / 100)
baterryTemperature = float(result2.registers[0] / 100)
# bateryCapacity = float(result3.registers[10] /100)
# bateryStatus = (result4.registers[0])
print(datetime_object)
print("solar voltage : ", solarVoltage, "V")
print("solar current : ", solarCurrent, "A")
print("battery volatage : ", batteryVoltage, "V")
print("charge current : ", chargeCurrent, "A")
print("load voltage : ", loadVolatage, "V")
print("load current : ", loadCurrent, "A")
print("baterry temperature : ", baterryTemperature, "C")
print("max Panel Voltage : ", maxPanelVoltage, "V")
print("min Panel Voltage : ", minPanelVoltage, "V")
print("max Batery Voltage : ", maxBateryVoltage, "V")
print("min Batery Voltage : ", minBateryVoltage, "V")
# print("batery capacity : ",bateryCapacity, "%")
# print("batery status : ",bateryStatus)
print()
time.sleep(2.0)
client.close()
代码工作正常,但我无法输入寄存器以从以下位置获取数据:
目前没有回答
相关问题 更多 >
编程相关推荐