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