基於C#開發ModbusTCP服務器實現數據接口

-Begin-

前言

有一個項目使用的是西門子的PLC,你開發了一個上位機,現在有一個第三方軟件也想要獲取西門子PLC的數據,希望你能提供一個接口,該如何實現。

我相信你們應該會遇到這種問題,其實解決方案很多,今天跟大家分享一種方式——提供ModbusTCP接口,提供ModbusTCP接口其實就是開發ModbusTCP服務器。

首先我們要清楚ModbusTCP服務器的本質就是Socket服務器,只是創建了4個集合或數組作爲4個存儲區,當接收到ModbusTCP客戶端的報文請求時,將對應的存儲區數據返回給客戶端。

雖然原理很容易理解,但是自己開發還是需要一點時間的,今天跟大家分享,如何基於NModbus4這個開源庫來快速實現。

實現

方便起見,這裏用控制檯應用程序來做。

首先創建一個控制檯應用程序,然後通過Nuget添加兩個通信庫,分別是xktComm和NModbus4。

然後創建幾個靜態對象:

 

 在Main方法裏編寫代碼如下:

 

 

 

 其中SetFloatValue方法是往ModbusTCP服務器的保持型寄存器中寫入浮點數據,這裏要注意,索引是從1開始的,這裏就是將PLC的DB1.DBD0的數據讀取之後,以浮點數的方式寫入到40001和40002兩個寄存器中。

 

 想要觀看運行效果,可以在討論區留言

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章