基於WebApi實現ModbusTCP數據服務

前言

在上位機開發過程中,有時候會遇到需要提供數據接口給MES或者其他系統,今天跟大家分享一下,如何在Winform等桌面應用程序中,開發WebApi接口,提供對外數據服務。

爲了更好地演示應用場景,本案例以讀取ModbusTCP設備爲例,開發好WeiApi接口後,第三方系統可以通過該接口讀取到設備數據。

實現過程

1、創建一個Winform程序,設計UI界面如下,主要包括ModbusTCP的設備IP及端口,以及本地WepApi的Http服務及端口:

 

 

2、實現ModbusTCP連接

(1)Nuget搜索xktComm並安裝,便於後續可以實現ModbusTCP連接

 

 (2)建立ModbusTCP連接

 

 (3)斷開ModbusTCP連接

 

 

3、創建HttpServer

首先通過Nuget搜索這兩個庫,添加一下引用:

  • Microsoft.AspNet.WebApi.Client
  • Microsoft.AspNet.WebApi.SelfHost

 

 HttpServer主要是對HttpSelfHostServer的封裝,HttpServer類如下:

 

 4、創建Controller 創建一個控制器HomeController,以讀取保持寄存器爲例,編寫了一個方法可以讀取一個保持寄存器存儲區數據,代碼如下所示:

 

 

5、開啓HttpServer

(1)創建HttpServer對象

 

 (2)開啓HttpServer服務

 

 (3)停止HttpServer服務

 

 

功能測試

首先用Modbus Slave開一個仿真:

 

 

運行上位機軟件後,連接設備並開啓服務:

打開瀏覽器,輸入 http://127.0.0.1:2000/api/home/ReadKeepReg?address=0,即可獲取到40001的數據。

 

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