我正在尝试设置一个简单的 Modbus 服务器,它生成随机值以存储在输入寄存器中。但是,我继续收到错误“TypeError:DataBank.set_input_registers() 缺少 1 个必需的位置参数:'word_list'
我已经设法使用 DataBank.set_words 获取要打印的随机值,但我不确定这些值写入哪里,我最终想设置一个单独的 pyModbusTCP 客户端来读取寄存器值。 pyModbusTCP 文档使用 set_input_registers 和 get_input_registers。如果有什么区别,我可以使用保持寄存器来代替。
从 pyModbusTCP.server 导入 ModbusServer、DataBank 随机导入 导入时间
服务器 = 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()
您能否分享您要复制的所有代码,我有一些问题,也许您如何初始化数据库