Modbus RTU嵌入式实现C

问题描述:

我的问题很奇怪,所以我对此表示歉意。Modbus RTU嵌入式实现C

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

Digi模块是一个电子设备,因此为了这个目的,我将创建C#GUI以通过DiGi Module从PIC请求数据,因为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看起来像某些事情

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

+0

我实际上在几年前使用过DiGi Connect Me做一些Modbus的东西......但是对于你的问题有一些反馈:你需要很多不同的信息。如果你得到更具体的细节并将其分解,那会更好。 – Nanomurf

+0

感谢@Nanomurf的回复。让我分解它。 - >如何在Digi模块中实现Modbus RTU? - >如何使用c#gui中的线程一次读取9999个寄存器? - >我怎样才能控制线程..? - –

+1

@MuhammadAzeem这里有很多问题,其中很多问题的范围都很大 - 他们主要是要求人们编写代码或架构整个系统,这里不是合适的问题。 (目前还不清楚“剥离我的数据”的含义)。您应该发布几个小的具体问题,每个帖子一个问题。 – nos

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