2015-09-25 121 views
1

我的問題很奇怪,所以我對此表示歉意。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

回答

1

libmodbus圖書館可以幫助你。我已經在digi模塊中實現了這個庫,你只需要將你的寄存器放入循環中,並複製寄存器以便將其轉換爲rtu。