基於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兩個寄存器中。

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM