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