1

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

我将在名为“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看起来像一些东西

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

4

1 回答 1

1

libmodbus库可以帮助你。我已经在 digi 模块中实现了这个库,您只需将寄存器放入循环中,并复制寄存器以将其转换为 rtu。

于 2016-05-16T15:22:45.923 回答