gpt4 book ai didi

python - pymodbus "unit"参数是什么意思?

转载 作者:行者123 更新时间:2023-11-28 17:07:00 26 4
gpt4 key购买 nike

我有一些在 pymodbus 1.2 下编写的 modbus TCP 代码相关代码是

result = modbus_client.read_holding_registers(40093, 3)

在更新到 pymodbus 1.4.0 之后,它不会工作,直到我将新的单位参数加载到函数调用中(示例中都有 unit=1他们):

result = modbus_client.read_holding_registers(40093, 3, unit=1)

pymodbus read_holding_registers()中的unit参数是什么意思?我似乎无法在任何地方找到解释。消息来源说“:param unit:此请求针对的从属单元”,但我不明白这是什么意思,也不明白除了 1 之外还有什么选择。

最佳答案

Modbus 协议(protocol)最初是在 TCP/IP 流行之前很久开发的(我认为是 70 年代后期)。它主要用于串行连接。一些串行硬件协议(protocol)(如 RS485)允许菊花链。 modbus 主机(在你的例子中是 Python)可以在一个串行端口上轮询许多从机。只有被请求的从机才会响应。在这种情况下,从站的地址是单元。一旦 Modbus 适应 TCP/IP,该协议(protocol)就允许使用这个“单元地址”在单个 IP 地址后面创建多个从站。大多数情况下,如果使用 TCP/IP,则只有一个地址 1。在维基百科上,他们将此称为“站点地址”。

我不确定为什么您需要在方法调用中包含它,因为无论如何它都是默认为 1 的 kwarg。

关于python - pymodbus "unit"参数是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50359986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com