嵌入式C中的Modbus RTU实现

时间:2015-09-25 15:28:20

标签: c# c modbus modbus-tcp

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

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

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

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

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

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

☺如何通过GUI读取所有9999个寄存器,因为我可能想要读取3X寄存器中的所有RunTime数据。?

☺如何一次性写入/读取所有4X寄存器。?

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

GUI看起来像是某种东西

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

1 个答案:

答案 0 :(得分:1)

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