问题标签 [modbus-tcp]

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.

0 投票
1 回答
839 浏览

java - Jamod TCP 单元标识符

在 net.wimpi.modbus.facade 中,ModbusSerialMaster.class 包含:

遗憾的是,ModbusTCPMaster.class 中缺少此代码,因此它始终默认读取单元标识符或 (1)。任何人都可以建议解决方法或提议将代码从串行复制到 TCP。

0 投票
1 回答
825 浏览

java - 套接字获取输入流多次读取错误值

我有一个 Java Modbus/TCP 应用程序,它不断地从设备读取数据。

这在 99.9% 的情况下都正常工作,但是在一个周末工作之后,它可能会进入一种奇怪的模式,在这种模式下,我会在几秒钟内得到我的读取多个保持寄存器函数的假值。

我已经使用 Modscan 应用程序进行了检查,并且客户端站点上出现了虚假值,这意味着服务器设备正在正确应答。

我能得到的答案是一个由 0、1 和其他随机值填充的字节数组。

这是我的 Modbus/TCP 答案阅读:

返回 null 在函数外部作为错误异常处理。

我添加了2个保护:

  • read() 方法在 EOF 之后返回 -1,所以我添加:

    /li>
  • 对不支持的 Modbus/TCP 方法返回 null:

    /li>

也许我在流式阅读中遗漏了更多我没有保护的东西。

0 投票
0 回答
263 浏览

c++ - 使用 Modbus 协议发布到 Kepware

我希望使用 modbus 将数据发送到 kepware。这是我的老板给我的一个全新的项目,我不知道从哪里开始我有限的知识。任何关于如何在 C++ 中实现这一点的见解将不胜感激!

0 投票
1 回答
2195 浏览

telnet - 通过 Internet 向 Modbus 设备发送查询

我刚开始做一个没有背景的 Modbus 项目。我要做的是通过使用其 IP 地址、读取寄存器等来查询活动的 Modbus 设备。
我使用带有相关 IP 地址和端口号的“telnet”命令连接了设备,当它连接时,它等待命令. 问题是当我输入任何内容并按回车时,它似乎没有发送任何内容,因为它允许我在新行中写入更多内容并且它没有给出任何响应。
我想我缺乏关于通过 Internet 查询此类设备的一个非常基本的概念的知识。

0 投票
1 回答
7378 浏览

java - Modbus4J Modbus RTU 主站

目前我正在使用 Schneider Power Logic 电气设备。我想从设备中读取数据并在我的系统中显示值。到目前为止,我发现了 J2mod、Jamod 和 Modbus4Java 库。我使用所有 modbus4java 来连接并获取设备的数据。

实际上我仍然很困惑我是否应该创建主端或从端。根据我的理解,设备将是从属设备,我的系统将是主设备(第一个问题)。

以下是在我的设备上的设置。表示设备处于从机模式,其协议为 Modbus RTU。那么,我需要创建一个使用 ModbusRTU 协议的主应用程序来与之通信,对吗?(第二个问题)

  • 模式:奴隶
  • 协议:Modbus RTU
  • 地址1
  • 波特率:38400
  • 奇偶校验:无

以下是我的应用程序的代码充当主设备并使用 ModbusRTU 协议

这是我从 Modbus4Java 页面提供的示例代码中获得的代码。我关心的另一件事是params.setCommPortId("COM6");我可以放在那里的除了“COM6”之外的其他值的值。因为基本上它接收一个字符串值。那么我可以给它添加任何字符串值吗?这个特定的 setCommPortID 的功能是什么。(第三题)

查看 Modbus4Java 页面提供的示例代码,它没有放置设备的 IP 地址。但就我而言,我的设备有一个 IP 地址。并且 IP 地址仅在从应用程序中使用。我的系统应该如何识别设备的 IP 地址?(第四题)。

在我运行这个代码片段之后,我得到了一个错误:

稳定的图书馆

本机库版本 = RXTX-2.1-7

Java 库版本 = RXTX-2.1-7

Modbus 主初始化错误:com.serotonin.io.serial.SerialPortException:gnu.io.NoSuchPortException

请,请,请帮助我。我被这个困住了将近一个月。真的希望有人能帮助我。提前感谢您的任何帮助和建议。

0 投票
2 回答
432 浏览

c++ - 使用 typedef 结构提升 shared_ptr

我遇到了libmodbus的编译问题。我有以下代码

但我收到以下错误

它指向 modbus.h 中的这一行

我对此了解不够,无法解决我的问题。你认为那是什么?这个库与智能指针不兼容吗?他们告诉您使用常规指针

谢谢你。

0 投票
1 回答
2133 浏览

php - php rtu modbus连接写入线圈并读取保持寄存器

首先,这是我第一次尝试 PHP - Modbus。我正在尝试使用http://code.google.com/p/phpmodbus/
中的 phpmodbus 从 modbus 寄存器中读取寄存器

我的微控制器通过 Prolific usb-to-serial 通用端口连接到串行端口 COM10。

我已经在 modscan 中运行了它,它工作正常。我想读/写数据到寄存器。

我无法通过 php 进行通信。有人可以帮忙吗?

这是我尝试过的

我不确定应该提供哪个 IP 地址。

0 投票
1 回答
347 浏览

ios - 如何通过modbus通信获取ip地址?

我正在制作一个iOS应用程序,它将通过UDP套接字程序通过Modbus通信设备访问IP地址,而不是wifi中存在的所有IP地址,因为该项目已经存在于github中。我有 android 代码,它是用 java 编写的,与我在 objective-c 平台中需要的基本逻辑相同。它也不适用于 j2objc 转换器。这是android项目的java代码,需要与iOS平台相同的代码:

0 投票
1 回答
2859 浏览

c# - 嵌入式 C 中的 Modbus RTU 实现

我的问题会很奇怪,所以我为此道歉。

我将在名为“DiGi Module Connect Me 9210”的电子设备中实现 Modbus RTU Master。通过这个设备,我将向 PIC 请求一些数据,如节点和温度等数据以及其他一些数据。我只想在我的设备中实现 FC 04/03/16。

Digi 模块是一种电子设备,因此为此我将创建 C# GUI 以通过 DiGi 模块使用 GUI 从 PIC 请求数据,因为 Digi 将使用 Modbus RTU 协议与 PIC 连接。在 Digi 中获取数据后,我们将使用 REST API 将数据发送到云端。

从 GUI 到 DIgI,我将拥有 TCP/IP,从 DIGI 到 PIC,我将拥有 Modbus RTU,在 Cloud 和 DiGi 之间,我将拥有 REST API。

我想在 C# 中删除我的数据,所以我只需通过 DIGI 从 GUI 向 PIC 发送请求(因此我的 DIGI 将作为 GUI 和 PIC 之间的桥梁)来配置节点或从 PIC 获取节点数据。我必须使用 80 个请求或其他方式一口气读取近 9999 个寄存器才能从 3X / 4X 寄存器中获取数据。现在问题来了。

☺ 如何在设备或系统中实现 Modbus RTU。

☺ 如何通过 GUI 读取所有 9999 寄存器,因为我可能想从 3X 寄存器中读取所有运行时数据。?

☺ 我怎样才能一次写入/读取所有 4X 寄存器。?

我们还实现了分页技术,这意味着第 0 页将有 9999 个寄存器,然后第 1 页将有 9999 个寄存器。因此,如果我想读取温度,我必须转到第 0 页并读取寄存器,如果我想读取速度值,我必须转到第 1 页并检查所有寄存器。?

GUI看起来像一些东西

用户将添加节点编号,然后添加温度并提交请求。

0 投票
0 回答
1681 浏览

python - Pymodbus:对无效单元 ID 的读取操作会导致所有具有有效单元 ID 的未来事务失败

我有一个 modbus 模拟器,其中定义了 4 个从属 [1,2,3,4] [使用 modbus_tk],我还有一个 pymodbus 客户端通过 TCP 与这个 modbus 从属通信。只要我们使用正确的从设备 id(单元 id),一切都可以正常工作,但是一旦使用了无效的 id,即使对于有效的设备地址,所有事务都开始返回 None 。

下面提供了客户端代码和调试日志的示例片段以供参考,可以看出“5”是无效的从属 ID,并且它按预期失败(调试日志显示 0x83 0x4),即使对于有效设备( "1") 结果返回为 None ,从调试日志看来 data is available 。非常感谢任何关于可能出错的提示

代码

日志