天天看點

基于WebApi實作ModbusTCP資料服務

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

為了更好地示範應用場景,本案例以讀取ModbusTCP裝置為例,開發好WeiApi接口後,第三方系統可以通過該接口讀取到裝置資料。

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

基于WebApi實作ModbusTCP資料服務

2、實作ModbusTCP連接配接

(1)Nuget搜尋xktComm并安裝,便于後續可以實作ModbusTCP連接配接

基于WebApi實作ModbusTCP資料服務

 (2)建立ModbusTCP連接配接

基于WebApi實作ModbusTCP資料服務

 (3)斷開ModbusTCP連接配接

基于WebApi實作ModbusTCP資料服務

3、建立HttpServer

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

Microsoft.AspNet.WebApi.Client

Microsoft.AspNet.WebApi.SelfHost

基于WebApi實作ModbusTCP資料服務

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

基于WebApi實作ModbusTCP資料服務

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

基于WebApi實作ModbusTCP資料服務

5、開啟HttpServer

(1)建立HttpServer對象

基于WebApi實作ModbusTCP資料服務

 (2)開啟HttpServer服務

基于WebApi實作ModbusTCP資料服務

 (3)停止HttpServer服務

基于WebApi實作ModbusTCP資料服務

首先用Modbus Slave開一個仿真:

基于WebApi實作ModbusTCP資料服務

運作上位機軟體後,連接配接裝置并開啟服務:

打開浏覽器,輸入 http://127.0.0.1:2000/api/home/ReadKeepReg?address=0,即可擷取到40001的資料。

基于WebApi實作ModbusTCP資料服務