[Modbus] 如何 用 C# 開發 Modbus Master Protocol - (01) 事前準備

[Modbus] 如何 用 C# 開發 Modbus Master Protocol - (01) 事前準備

若你是在工業領域裡,一定常常聽到Modbus,它是一種在工業領域,公開發表且無版稅的通訊協定,被廣泛的應用;用標準的協定開發軟體,可以很容易的被整合,就比較能被SI廠商相中,以便納入應用系統名單。

比方:支援 Modbus 的集合式數位電錶,可透過 RJ45 /RS485 /RS232 採集數據,例如以下這家公司產品:
http://www.toyotech.com.tw/products_detail.php?Key=10&cID=5
PS.我沒用過這家公司的設備,所以也不要來問我好不好用

以下為wiki對Modbus的介紹
https://zh.wikipedia.org/zh-tw/Modbus

 

資料採集的架構如下(偷來的):

下圖中的 Device Master 把它想成是一台PC,這種設備就像是一台 Gateway 一樣,負責把現場端的 Slave 設備資料收集回來。

modbusRouter_system_2prt

 


如何取得開發文件

http://www.modbus.org/

image

image

 

把所有的文件都抓下來就對了

image

 


準備測試工具

要開發通訊協定除了買硬體之外,市面上有許多的模擬器供我們使用,我使用這一套,有提供免費試用。

http://www.modbustools.com/

Modbus Slave 就是用來模擬現場設備的軟體

Modbus Poll 就是資料採集的軟體

SNAGHTML5b0fc9b0

 

如何使用 Modbus Slave

選擇連線方式

SNAGHTML5b1040a5

SNAGHTML5b108e86

 

連線成功

SNAGHTML5b10b9ec

 

觀察通訊

SNAGHTML5b1155de

 

要有資料交換,才會有資料跳動。

SNAGHTML5b119836

 

如何使用Modbus Poll

SNAGHTML5b124be6

 

選擇連線

SNAGHTML5b129459

 

選擇連線方式,這裡要選擇跟現場設備一樣的設定

SNAGHTML5b12f390

 

沒問題後就可以看到 No Connection 的字樣不見了

SNAGHTML5b1331f1

 

命令控制

SNAGHTML5b135b14

 

工具可以協助我們驗證,也可以讓我們更瞭解通訊協定怎麼交換資料。

當然,開發前還是要看一下之前寫的這兩篇技巧

[C#.NET] 處理通訊協定的事前準備

[C#.NET] 開發通訊協定必須要會的技巧

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo