前言
在上位機開發過程中,有時候會遇到需要提供數據接口給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的數據。