12.11 MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊

寫在面前

大家好,我是撈儀,號主小智前同事~


前面我們介紹了PLC與PLC的通訊,PC與PLC之間的通訊(見文末推薦),就工業環境而言,通訊方式和通訊協議多種多樣,通訊的硬件也是五花八門。但是通訊做多了,如果你真的很清晰的從基礎理論出發去完成過通訊的建立,編碼,其實大多都是一通百通的。


今天主要介紹在某MES項目中,通過ModbusTCP與研華IO模塊通訊。使用的IO模塊是ADAM6250。


今天的主要內容為:

01 硬件平臺

02 參數配置

03 Modbus TCP

04 軟件平臺與主要代碼


MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊

01 硬件平臺


1、先從硬件平臺開始介紹:

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


Adam-6200 模塊具有兩個網口,內建的以太網交換機使模塊之間可用菊花鏈方式連接,更容易部署、節省佈線成本,並提高擴展性。兩個10/100Mbps 以太網絡端口為標準的RJ-45端口,完全符合IEEE 802.3u標準。

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


下面簡單看下ADAM6250的內部圖:

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


需要給Vs+和Vs-供上10-30V電源即可使用(推薦24V)


MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊

02 參數配置


2、參數配置。

下面先用調試軟件設置模塊的IP地址,通訊模式,地址等等參數,同時還可以用調試軟件控制模塊。調試步驟比較簡單。

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


設置步驟就不一一截圖啦,比較簡單。從NetWork選項欄中修改IP地址和掩碼,端口號是十分重要的設置啦,選用Modbus TCP,設置成502

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊

03 Modbus TCP


3、簡單介紹下ModbusTCP


Modbus採用主從(Master-Salve)通信模式,主設備(Master)能對傳輸進行初始化,從設備(Slave)根據主設備的請求進行應答。典型的主設備包括現場儀表和顯示面板,典型的從設備為可編程邏輯控制器(PLC)。

主機發送Modbus請求,從機根據請求內容向主機返回響應。在Modbus協議中,主機總是主動方,從機總是被動方。ModbusTCP的數據幀可分為兩部分:MBAP+PDU。

報文頭MBAP

MBAP為報文頭,長度為7字節,組成如下:

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


幀結構PDU

PDU由功能碼+數據組成。功能碼為1字節,數據長度不定,由具體功能決定。

功能碼

Modbus的操作對象有四種:線圈、離散輸入、輸入寄存器、保持寄存器。

按照格式劃分報文格式:

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


(1)報文中的所有字節均為16進制

(2)由上圖我們總結出不同的功能碼的報文(無論請求報文還是響應報文)前8個字節都是一致的:消息號+2字節Modbus標識+2字節長度+1字節站號+1字節功能碼,後邊根據功能碼不同而不同。

如果想詳細瞭解,可以參見:

Modubs 的RTU、ASCII、TCP傻傻搞不清楚?這將是你見過的最全面分析

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊

04 軟件平臺與主要代碼


4、軟件平臺與主要代碼

編程平臺:Visual Studio

編程語言:C# ,界面使用 WPF

數據庫:Oracle


其實代碼並不難,幾個很重要的參數:端口號和IP當然少不了了,起始地址和數據長度,功能碼都是相當重要的。

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


創建一個ModbusTCP主站,不是new一個對象哦

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


功能碼:


MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


讀寫研華IO模塊,並且把數據上傳到Oracle

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊

MES、SCADA項目中的數據採集—基於C#與研華IO模塊ModbusTCP通訊


總結:最近有點忙,所以文章更新慢了點,下一講會給大家介紹三菱的MX Component通訊


分享到:


相關文章: