问题标签 [pymodbustcp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何让 pymodbus 与 PLC 正确通信?
在我问之前,我只想提一下,我已经花了几天时间研究这个,似乎无法找到解决这个基本问题的方法。我已经阅读了文档并花时间在这里。否则我不会问。
我继承了一个庞大的单体 python 程序,它成功地使用 pymodbus + 读取保持寄存器read_holding_registers
。我以前花时间编辑 python,但从未真正学会它。为了尝试在 python 方面理解这一点,我尝试从头开始编写自己的基本程序。我从大开始,最终将代码分解为尽可能简单。
我知道这是我想要的寄存器。它是霍纳 PLC 上的一个保持寄存器。它在 python 程序和 Horner CSCAPE 中都有详细记录。但是每当我运行程序时,它只会打印我在元组的第二项中输入的任何值。所以在这里,它只会打印2
. 如果我提供它的一个元组(10905, 1)
只是打印1
. 寄存器位的真实值应该是0
。
我会发布庞大的程序,但不幸的是它是私人的。这是python2.7。我知道这很糟糕,但我只想在担心将其移植到 3.9 之前了解该程序。
python - 在 Modbus Python 中读取和写入浮点数
对不起,我的英语不好。我尝试使用 pyModbusTCP lib 通过 Modbus 在 python 的 plc 寄存器中写入和读取浮点数。这是我的代码,不幸的是没有去......
有人能帮我吗?
python - ModbusTCP 流量在 WireShark 中显示为 TCP 数据包
我正在使用 pyModbusTCP 在本地主机上发送 ModbusTCP 数据包。我的代码似乎工作正常,但在 Wireshark 中我的数据包显示为 TCP 而不是 ModbusTCP。当我转到“分析 > 启用协议”时,ModbusTCP 已启用。另一个奇怪的事情是,上周我按照这个教程YouTube 视频,我能够让 Wireshark 识别 ModbusTCP 数据包。我今天又试了一次,Wireshark 将 ModbusTCP 数据包标记为 TCP 时遇到了同样的问题。我不知道为什么会这样,并希望得到一些建议?
服务器代码:
客户代码:
我的 Wireshark 窗口的图片:Wireshark 输出
raspberry-pi4 - 树莓派 Modbus 客户端 FIFO
我搜索了互联网,找不到任何适合我需要的东西。
我试图弄清楚是否可以将 PI 设置为具有 FIFO 的客户端并让服务器从该 FIFO 中读取。我有一个 PI 数组,所以我需要在 pi 上有某种缓冲区,然后需要从中提取数据。
pymodbustcp 似乎没有提供 FIFO 选项。还有其他选择吗?它不必通过 TCP,我只是比串行通信更熟悉 IOS 层。
modbus - 如何获取连接到 modbus 服务器的客户端的 ip?
我正在使用ModbusTcpServer(context, identity=identity, address=(listener_address, listener_port))
,这里的 ModbusTcpServer 是一个从 pymodbus 导入的函数,我想获取连接到服务器的客户端的 IP 以进行日志记录,但无法找到解决方案。如果有人可以提供解决方案,那将非常有帮助
python - pyModbusTCP acc64 SUnSpec
我正在尝试从逆变器(用于太阳能电池板)读取值。逆变器使用带有 SunSpec 协议的 Modbus (TCP/IP)。
我正在使用 pyModbusTCP,我可以连接到逆变器并获取 int16 和 uint16 类型的值,但不能获取 string 或 acc64。我正在使用此代码来获取值:
我是否需要导入其他内容才能读取这些值?我对 python 很陌生,这是我第一次使用 pyModbusTCP。
带有一些 SunSpec 信息的 PDF:https://sunspec.org/wp-content/uploads/2015/06/SunSpec-Information-Models-12041.pdf
python - pyModbusTCP Raspberry Pi 到 PC 连接 eth0
故事到此为止。我使用非常有用的 Johannes YouTube 教程设置了服务器和客户端,最初我在 Raspberry Pi 上使用“localhost”没有任何问题。
https://github.com/Johannes4Linux/Simple-ModbusTCP-Server/blob/master/Simple_ModbusServer.py
然后我尝试使用以太网端口在我的 Windows PC 上设置客户端并连接到服务器 (Pi)。
我使用了 Pi 中“ifconfig”命令中的“inet”IP 地址,而不是 Windows 中“ipconfig”中的地址(它们不同)。
我试图从 Windows ping 此地址“cmd”,但连接超时。
感觉就像我错过了一些非常明显的东西。如果有人能够帮助我,我将不胜感激。
python-3.x - pyModbusTCP 每秒失败一次功能
基本上我现在应该测试 modbus 功能,无论出于何种原因,modbus 无法在第二次调用时读取寄存器,例如:函数:
主要的:
如果我像这样运行代码,我将无法获得系统正常运行时间的价值。
现在我不会得到移动强度值,每隔一个函数就会发生这种情况,我可以移动这些函数,比如将它们移动到第一个位置,它会起作用,所以这不是函数错误,我猜它是 pyModbusTCP 甚至可能是我正在使用故障的设备,但我不确定。有人知道如何处理吗?因为我以前从未使用过这个库。我是否必须清除我读取的数据或类似的东西?目前我有一个愚蠢的解决方案,只是放置一个“假”函数来读取寄存器并且什么都不做并将它放在其他之间,所以重要的会起作用,但如果可能的话我想避免这种情况。
编辑: Modbus 启动功能:
modbus - 使用带有 libmodbus 或 pymodbus 的 USB 连接在两台 PC 之间进行 Modbus 模拟
我正在尝试连接到将使用 modbus 协议相互通信的 PC(一主一从),我想使用 pymodbus(Python)或 libmodbus(C++)来实现这一点,但我对 Modbus 相对较新,因此我不是确定从哪里开始。我已经使用 pymodbusTCP 构建(我认为)一个 Modbus 服务器,但我不确定如何使用 pymodbusTCP 与另一台 PC 通信。
我写了下面给定的代码:
当我从本地主机(作为奴隶)连接时,我可以连接。
如何连接两台 PC,一台作为主机,另一台作为从机?
如何向线圈发送写入以实现这一点?
任何帮助将不胜感激。
注意:环境是 Ubuntu 20.04
python-3.x - 使用 Pymodbus,我想将线圈状态绑定到我的服务器中的 GPIO 引脚,而不是来自客户端
我正在编写基于 Pymodbus 异步服务器示例上的示例的 PyModbus 异步更新服务器,我想将线圈的状态链接到 GPIO 引脚状态,例如当线圈 1 为真时,针 21 为高,当线圈 1 为假时在没有单独的客户端检查线圈状态的情况下,引脚 21 为低电平。是否可以将线圈直接连接到引脚?我正在为这个项目使用 PI 零。
如果您想在此处查看我的代码,请查看我的 git 的链接。我知道该值存储在一个变量中。我不确定我可以从哪里将它们连接到引脚并定期更新它们。