DataBank.set_input_registries 的 pyModbusTCP 服务器问题

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

我正在尝试设置一个简单的 Modbus 服务器,它生成随机值以存储在输入寄存器中。但是,我继续收到错误“TypeError:DataBank.set_input_registers() 缺少 1 个必需的位置参数:'word_list'

我已经设法使用 DataBank.set_words 获取要打印的随机值,但我不确定这些值写入哪里,我最终想设置一个单独的 pyModbusTCP 客户端来读取寄存器值。 pyModbusTCP 文档使用 set_input_registers 和 get_input_registers。如果有什么区别,我可以使用保持寄存器来代替。

从 pyModbusTCP.server 导入 ModbusServer、DataBank 随机导入 导入时间

初始化 Modbus 服务器

服务器 = ModbusServer(“localhost”,端口=502,no_block=True)

尝试: print("正在启动 Modbus 服务器...") 服务器.start() 而真实: # 生成0到100之间的随机数 random_number = random.randint(0, 100)

    # Store the random number in the Modbus input register at address 0
    DataBank.set_input_registers(0, [random_number])

    # Read the value from the input register at address 0
    input_register_value = DataBank.get_input_registers(0)
    print("Register 1 value: " +str(input_register_value)) 

    time.sleep(1)  # Wait for 1 second before generating the next random number

键盘中断除外: print("Modbus 服务器已停止。") 服务器.stop()

pymodbustcp
1个回答
0
投票

您能否分享您要复制的所有代码,我有一些问题,也许您如何初始化数据库

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