寫在面前
大家好,我是撈儀,號主小智前同事~
前面我們介紹了PLC與PLC的通訊,PC與PLC之間的通訊(見文末推薦),就工業環境而言,通訊方式和通訊協議多種多樣,通訊的硬件也是五花八門。但是通訊做多了,如果你真的很清晰的從基礎理論出發去完成過通訊的建立,編碼,其實大多都是一通百通的。
今天主要介紹在某MES項目中,通過ModbusTCP與研華IO模塊通訊。使用的IO模塊是ADAM6250。
今天的主要內容為:
01 硬件平臺
02 參數配置
03 Modbus TCP
04 軟件平臺與主要代碼
01 硬件平臺
1、先從硬件平臺開始介紹:
Adam-6200 模塊具有兩個網口,內建的以太網交換機使模塊之間可用菊花鏈方式連接,更容易部署、節省佈線成本,並提高擴展性。兩個10/100Mbps 以太網絡端口為標準的RJ-45端口,完全符合IEEE 802.3u標準。
下面簡單看下ADAM6250的內部圖:
需要給Vs+和Vs-供上10-30V電源即可使用(推薦24V)
02 參數配置
2、參數配置。
下面先用調試軟件設置模塊的IP地址,通訊模式,地址等等參數,同時還可以用調試軟件控制模塊。調試步驟比較簡單。
設置步驟就不一一截圖啦,比較簡單。從NetWork選項欄中修改IP地址和掩碼,端口號是十分重要的設置啦,選用Modbus TCP,設置成502
03 Modbus TCP
3、簡單介紹下ModbusTCP
Modbus採用主從(Master-Salve)通信模式,主設備(Master)能對傳輸進行初始化,從設備(Slave)根據主設備的請求進行應答。典型的主設備包括現場儀表和顯示面板,典型的從設備為可編程邏輯控制器(PLC)。
主機發送Modbus請求,從機根據請求內容向主機返回響應。在Modbus協議中,主機總是主動方,從機總是被動方。ModbusTCP的數據幀可分為兩部分:MBAP+PDU。
報文頭MBAP
MBAP為報文頭,長度為7字節,組成如下:
幀結構PDU
PDU由功能碼+數據組成。功能碼為1字節,數據長度不定,由具體功能決定。
功能碼
Modbus的操作對象有四種:線圈、離散輸入、輸入寄存器、保持寄存器。
按照格式劃分報文格式:
(1)報文中的所有字節均為16進制
(2)由上圖我們總結出不同的功能碼的報文(無論請求報文還是響應報文)前8個字節都是一致的:消息號+2字節Modbus標識+2字節長度+1字節站號+1字節功能碼,後邊根據功能碼不同而不同。
如果想詳細瞭解,可以參見:
Modubs 的RTU、ASCII、TCP傻傻搞不清楚?這將是你見過的最全面分析
04 軟件平臺與主要代碼
4、軟件平臺與主要代碼
編程平臺:Visual Studio
編程語言:C# ,界面使用 WPF
數據庫:Oracle
其實代碼並不難,幾個很重要的參數:端口號和IP當然少不了了,起始地址和數據長度,功能碼都是相當重要的。
創建一個ModbusTCP主站,不是new一個對象哦
功能碼:
讀寫研華IO模塊,並且把數據上傳到Oracle
總結:最近有點忙,所以文章更新慢了點,下一講會給大家介紹三菱的MX Component通訊
閱讀更多 智能製造之家 的文章