问题标签 [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 回答
293 浏览

java - 如何使用 jamod 库在 Java 中实例化 Register 对象?

我目前正在与 jamod 合作,以便为工作建立一个小型控制系统。我们正在使用几个 PLC,我需要使用 MODBUS 协议进行通信。我已经能够读取控制器测量的值,但是我没有成功写入控制器(调整安培数)。

我的问题是,如何使用 jamod 实例化 Register 对象?

这行不通。本质上,我想将位置 0 处的寄存器的值设置为整数 16000。我也尝试过使用

我一直在查看 jamod 文档,找不到任何创建正确寄存器对象的方法,也找不到任何有关如何设置要写入的正确寄存器的示例。

如果有人有任何想法,我将不胜感激。:)

0 投票
1 回答
257 浏览

java - 正确的方法,在 Java (JAMOD) 中持续查询 Modbus

我想问如何使用 JAMOD 库每秒查询一次 Modbus。决定与 Modbus 建立初步连接,然后在循环中 while(true) 查询 Modbus。询问设备后,使用 Thread.sleep (1000);是正确的方法吗?谢谢你。

0 投票
3 回答
365 浏览

labview - LABVIEW - 在历史趋势中显示 Modbus 数据

我使用 modbus API 制作了一个 VI,并设法连接到 HMI 并读取一些数据。我想将这些数据保存在一个文件中,即使在由于电源故障而重置后,也要在历史趋势中显示这些数据。我应该使用哪个组件?

0 投票
1 回答
2384 浏览

java - net.wimpi.modbus.ModbusSlaveException:错误代码 = 2,尝试使用 Modbus 协议连接设备时

我有一个单元支持 ModBus 协议,使用“Jamod”尝试连接到单元并读取寄存器值,得到错误代码 2,

单位配置:


该装置通过 RS-485 和以太网接口支持 Modbus 协议。在 RS-485 接口上,它在 Modbus 网络上有一个可配置的 Modbus 地址;默认设置为 99。设备也会响应广播地址 0。

默认情况下,RS-485 接口以 9600 波特的波特率运行,具有 8 位甚至奇偶校验。它可配置为 1200、2400、4800、9600、19200、38400、57600 或 15200 波特。

以太网接口使用 RJ45 连接器。此接口支持端口 502 上的 TCP/IP 以太网连接。从地址为 0。

该单元使用 Modbus 读取输入寄存器功能代码 4 返回数据。它还允许使用 Modbus 保持寄存器访问功能 3 和 16 读取和写入配置参数。还支持 Modbus 诊断功能代码 8 的子集。


请给出连接到本机的指示并阅读,谢谢

错误:

0 投票
2 回答
280 浏览

c - Modbus TCP - Arduino

我必须使用类似于 Arduino 的 TI Launchpad 板来实现 Modbus TCP。我有以下片段。

这是我的客户

您可以看到字节不是连续接收的。但是我的整个数组就像对客户端的命令。有没有办法得到它:

2016-06-17 14:28:00.252:会话已创建

2016-06-17 14:28:00.254:会话打开

2016-06-17 14:28:00.256: 收到 17 个字节

00 01 00 00 00 0B 01 10 00 00 00 02 04 00 07 00 00

2016-06-17 14:28:00.269: 发送了 12 个字节

< 00 01 00 00 00 06 01 10 00 00 00 02

请帮忙!

0 投票
1 回答
653 浏览

c# - 如何使用 C# 实现 Modbus Function 20?

我一直在使用这个 Modbus TCP 库(https://github.com/stephanstricker/modbusTCP/tree/master/ModbusTCP/ModbusTCP)和这个文档来参考函数 20 (http://www .modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf)。问题是它不支持功能代码 20(阅读一般参考/文件)。现在我只是想创建自己的函数来处理它,但是我得到的响应是一个 10 和 1 的两字节数组。

这是我尝试使用的请求标头:

这是调用请求的代码:

TCP 同步缓冲区返回 [0,0,11,1,0,3,6,128,1,0,10,1,0,0,0,...]

更新:

我将我的请求标头修改为此。

现在它返回:

[0,0,0,0,0,5,1,20,4,0,0,0,..]

0 投票
1 回答
1326 浏览

c - modbus 十六进制地址转换

我正在尝试从 GE-PQM II 能量计读取数据。电能表支持通过 2 线 RS-485 MODBUS 连接进行实时监控。我在 c 中使用 libmodbus 库来读取 modbus 寄存器。

在 GE 通信指南 ( https://www.ccontrols.com/support/dp/GEK-113532.pdf ) 中,寄存器的地址以十六进制给出。我将十六进制转换为十进制。

我正在尝试从 modbus 寄存器 (02F0,02F1) 读取值 - 对应的十进制值为 752,753

GE-PQM 样本

我的代码:

输出 :

十六进制转换有什么问题吗?或者别的地方?

0 投票
1 回答
333 浏览

java - 通过 MODBUS TCP/IP 与 CMMO-ST-C5-1-LKP Festo 控制器进行 Java 通信

我的任务是开发一个 Java 库,用于与 CMMO-ST-C5-1-LKP Festo 控制器进行通信。我已经阅读了控制器文档,它提供了一个 MODBUS TCP/IP 通信接口。我使用了 jamod 并设法连接到控制器。(我已经对轴进行了配置和参数化)问题是我并不真正了解通信编码(我需要发送哪些字节才能使轴移动到某处)。我试图找到一些通信示例(发送和接收的字节数),但我找不到。

有谁知道我在哪里可以找到沟通的例子?

对不起,如果这个问题在这里不合适。我完全被卡住了。

0 投票
1 回答
3110 浏览

tcp - Pymodbus 无法连接 PLC 从站和树莓派主站

我正在尝试使用 Raspberry Pi 3 Model B 从 Allen Bradly PLC 读取值。我正在使用 Pymodbus Modbus TCP 协议在它们之间进行通信。

当我运行测试客户端时,出现以下错误:

下面是测试客户端的代码:

我可以 ping 通 PLC 以太网卡(10.0.0.237)的 IP 地址。(PLC 已打开并显示在 RSLinx 和 RSLogix5000 中。)但是当我尝试使用以下命令检查端口 502(Modbus 使用)时:

我得到错误:

我所做的研究告诉我检查该端口是否打开,但这是针对 PC 的,我不知道您如何检查/配置 PLC 上的端口。

另外,我想知道问题是否在于我试图只使用 Modbus 在 Raspbery Pi 和 PLC 之间进行传输。我找到了做接口的 prosoft 网关。但我找不到任何关于这些是否只是另一种选择或是否需要的信息。

我是 PLC 和网络的新手,因此将不胜感激。

0 投票
2 回答
2147 浏览

python-2.7 - 试图用 scapy 构建一个 MODBUS 数据包

我正在尝试使用 scapy 构建一个 MODBUS 数据包, 但 Wireshark 无法识别它。我的意思是,MODBUS 被解释为 TCP 数据。

这是 Scapy 的 python 代码:

有人知道如何解决它?