1摘要
在實際的工控應用中,RS485總線上經常會掛接多個設備,不同的設備的廠商可能不一致,一旦出現問題,就很難解耦是誰的問題。本文解釋一種簡單的問題解耦方法,即學即精通。
2問題描述
工業現場應用最多的總線就是RS485,RS485用到最多的協議就是modbus-rtu,不同的廠家都通過該總線和協議進行數據交互。這也存在一個問題,不同的廠家的,不同的技術人員水平參差不齊,一旦系統出現問題,互相之間的扯皮自然少不了。
例如下圖中的系統,一個主機帶4個從機,數據無法讀取到,問題的解耦還是比較棘手。有沒有一種簡單的方案,引入一個裁判,能夠簡單快速解耦是哪一方的問題。
3知識科普
關于使用RS485的現場,需要先了解以下的知識:
1) 90%以上的RS485通信之間使用的是modbus-rtu協議,該協議全球通用;
2) RS485標準電平全球通用,只要標注為RS485都可以互相連接,RS485輸出的電平是0~5V,是通過總線上A-B的差值判斷邏輯1還是邏輯0,A-B>0標示為邏輯1,A-B<0標示為邏輯0。
3) modbus-rtu 數據幀由地址、功能碼、數據和校驗組成,不同的功能碼的數據字節數不同。
Modbus RTU協議數據幀是沒有起始符和結束符,所以兩個數據幀之間需要靠時間間隔來區分。協議中規定信息幀發送至少要有3.5個字符時間的停頓間隔。即在一個數據幀的最后一個字符傳輸完成之后,需要至少3.5個字符時間的停頓標定數據幀的結束,一個新的數據幀可在此停頓之后開始。
如果一個新消息在小于3.5個字符時間內接著前個消息開始,接受的設備將認為它是前一數據幀的延續,這將導致CRC校驗出錯。同時整個數據幀必須作為一連續的流傳輸。如果在幀完成之前有超過1.5字符時間的停頓時間,接受設備將刷新不完整的數據幀從而認為存在丟包現象。
那么一個字符是什么呢,他由1個bit起始位,8bit數據位,1個bit奇偶校驗位(或者沒有檢驗位,停止位變成2個),1個bit停止位組成,在發送時從起始位開始。
4Mthings簡介
Mthings主要是模擬Modbus設備,可以配置為主和從設備。
2) 模擬仿真Modbus設備軟件,支持Modbus從機被動讀寫功能。
3) 支持多設備、多通道并發運行,無設備個數限制。
4) 支持持久化數據配置、無菜單設計,操作友好。
5) 支持MODBUS-RTU、MODBUS-ASCII、MODBUS-TCP。
6) 支持串口、TCP客戶端、TCP服務器(可接入多客戶端)、UDP單播。
7) 支持全鏈路報文監控、存儲、分析。
8)支持豐富的鏈路丟包統計方法。
9) 支持數據曲線錄波,統計數據極值和均值,并可導出所有數據。
10) 支持MODBUS數據配置模板導入導出。
11) 支持多種變化數據模擬方法。
12)支持數據二次加工,界面呈現原始真實數據。
13) 支持良好的非標協議適配。
14) 性能優異,支持接入> 500設備節點,超20K數據點。
15) 永久免費,免安裝,中文。
5解耦舉例
我以PLC和HMI通信為例,假設兩者無法正常通信,需要一個中間的裁判判定問題出在誰。解耦的步驟如下。
1) 將安裝有Mthings的PC使用USB轉485模塊和PLC連接。如下圖
2)本次實驗要做的是通過電腦模擬RS485主站,PLC作為從站,使用Modbus-RTU協議。PLC端的配置如下:
3) Mthings配置PC為主機,地址和上述的PLC保持一致。
4) 配置串口的波特率信息,和PLC保持一致。
5) 配置需要訪問的寄存器地址。地址是plc真實的地址。
6)可以批量讀取PLC的數據,或者雙擊“數值”即可以訪問PLC,如下圖,訪問PLC的數據為123,和第一步的plc中的數據保持一致。這就證明了,PLC作為從站,是正常的,如何hmi和plc無法通信,則問題可以解耦到hmi身上。
6總結延伸
本文接受的使用mthings解耦RS485通信中的modbus通信故障方法,可以快速解耦和定位問題,對于用戶幾乎無需對modbus協議的知識,使用該工具有兩個好處:
1) 基本是配置式,用戶無需對modbus協議有較深的理解;
2) 可以利用pc機(或者筆記本)模擬主機和從機,可以快速解耦各個廠商之間的問題。
審核編輯:湯梓紅
-
RS485
+關注
關注
39文章
1156瀏覽量
82292 -
MODBUS
+關注
關注
28文章
1801瀏覽量
76957 -
總線
+關注
關注
10文章
2878瀏覽量
88054 -
RTU
+關注
關注
0文章
412瀏覽量
28672 -
解耦
+關注
關注
0文章
40瀏覽量
11895
原文標題:【避坑指南】使用Mthing工具解耦Modbus問題
文章出處:【微信號:創易棧,微信公眾號:創易棧】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論