陸賢穎 馬雄能 郭安然 李江濤 馬學(xué)瑞
[摘? ? 要]語言并非人類與生俱來的本能,正如人類主要通過語言來進行交流,機器主要也是機器語言來進行數(shù)據(jù)交換。人類通過逐字逐句交流,有不同語言,每種語言都有自己的語法。而機器之間的串行通訊是通過一個字節(jié)或一幀數(shù)據(jù)來交換信息,機器同樣也有不同的通訊協(xié)議,每種通訊協(xié)議都有自己信息交換的規(guī)則。本文主要講由MODICON公司推出的一種開放式通訊協(xié)議MODBUS RTU。
[關(guān)鍵詞]串行通訊;Modbus協(xié)議;數(shù)據(jù)交換
[中圖分類號]TE54 [文獻標志碼]A [文章編號]2095–6487(2020)12–00–03
[Abstract]Language is not an innate instinct of human beings. Just as human beings communicate mainly through language, machines also exchange data mainly through machine language. Humans communicate word for word, and there are different languages, each with its own grammar. Serial communication between machines is to exchange information through a byte or a frame of data. Machines also have different communication protocols, and each communication protocol has its own rules for information exchange. This paper focuses on MODBUS RTU, an open communication protocol launched by MODICON.
[Keywords]serial communication; The Modbus Protocol; data exchange
現(xiàn)場總線技術(shù)是當今自動化領(lǐng)域技術(shù)發(fā)展的熱點之一,被譽為自動化領(lǐng)域的計算機局域網(wǎng),是連接設(shè)置在控制現(xiàn)場的儀表與設(shè)置在控制室內(nèi)的控制設(shè)備的串行、多站、數(shù)字化通訊網(wǎng)絡(luò)。其標志是能支持雙向、多節(jié)點、總線式的全數(shù)字通訊。現(xiàn)場總線是包含從應(yīng)用層協(xié)議到傳輸層協(xié)議的總成,目前國際標準的現(xiàn)場總線有16種,標準泛多,無統(tǒng)一標準。本文主要講由MODICON公司推出的一種開放式通訊協(xié)議MODBUS。
1 串行通訊
1.1 通訊的概念
通訊的目的是彼此之間信息的交換,通訊系統(tǒng)就是把信息從一個地方傳輸?shù)搅硪粋€地方的系統(tǒng)。數(shù)據(jù)通訊是指通訊過程中承載的信息的數(shù)據(jù)形式是數(shù)字的,不是模擬的。串行通訊是指用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位的依次傳輸,每位數(shù)據(jù)占據(jù)一個固定的時間長度。
串行通訊數(shù)據(jù)如圖1所示,發(fā)送和接受的每一個字符實際是一次一位傳輸?shù)模恳晃欢紴?或者是0。
1.2 串行通訊的分類
發(fā)送端與接收端之間的同步問題是數(shù)據(jù)通信中的重要問題,在串行傳輸中,數(shù)據(jù)是一位一位傳輸?shù)?,每位?shù)據(jù)的發(fā)送與接收都需要時鐘來控制時間,發(fā)送端通過發(fā)送時鐘確定數(shù)據(jù)位的開始和結(jié)束,接收端需在適當?shù)臅r間間隔對數(shù)據(jù)進行采樣識別。通信過程中收發(fā)雙方在時間上須保持同步,根據(jù)在串行通信中采用的同步技術(shù)不同,傳輸方式分為同步傳輸和異步傳輸。
1.2.1 同步傳輸
同步傳輸在信號開始處由同步字符“SYNC”指示,由同步時鐘來實現(xiàn)收發(fā)端同步。同步信號相當于人們一起步行時發(fā)出的口令“起步——走”。異步傳輸一次只傳輸一幀信息。信息幀包含若干個字符。
信息幀由數(shù)據(jù)字符、同步字符和校驗字符組成,其中同步字符位于信息幀的開頭,用于確認數(shù)據(jù)字符的開始,數(shù)據(jù)字符位于同步字符之后,沒有個數(shù)限制,由所需傳輸?shù)臄?shù)據(jù)長度決定,校驗字符位于數(shù)據(jù)字符的后面1~2個字符,用于檢驗數(shù)據(jù)傳輸?shù)臏蚀_性。
1.2.2 異步傳輸
數(shù)據(jù)通常以字節(jié)或字符為單位組成字符幀傳輸,字符幀由發(fā)送端逐幀進行發(fā)送,接收端逐幀進行接收。發(fā)送端和接收端由各自時鐘來控制,這兩個時鐘彼此獨立,互不同步。當數(shù)據(jù)未進行傳輸時或傳輸已完成時,通信傳輸線上須一直保持電平邏輯“1”的狀態(tài)。
一旦接收端檢測到傳輸線上的電平邏輯“0”時,即數(shù)據(jù)起始位,就表示發(fā)送端已開始發(fā)送數(shù)據(jù);當接收端接收到字符幀中的停止位時,就表示發(fā)送端數(shù)據(jù)已經(jīng)發(fā)送完畢,這就是異步傳輸。
2 modbus協(xié)議
通訊協(xié)議是指機器與機器之間交流時遵循的一種約定,約定包括同步方式、數(shù)據(jù)的格式、校驗的方式、傳輸?shù)乃俾实?,作出了統(tǒng)一的規(guī)定,雙方必須遵守這個約定。
在標準Modbus網(wǎng)絡(luò)中,主控制器可以將modbus設(shè)置成三種傳輸模式:ASCII、RTU和TCP。Modbus通信使用主——從技術(shù),即一個主站,其余為從站。主站把從站地址放入信息中以廣播的方式將數(shù)據(jù)發(fā)送出去(尋址),從站根據(jù)主站發(fā)送的信息檢查地址,判斷是否需要響應(yīng)主站的,從站不能自已發(fā)送信息。
2.1 ASCII模式
Modbus以ASCII模式通信時,消息中每個8位字節(jié)作為一個ASCII碼(兩個16位進制)發(fā)送。使用ASCII模式,消息以冒號“:”(3AH)開始,以回車、換行符(0DH、0AH)結(jié)束。
2.2 TCP模式
用于通過以太網(wǎng)或互聯(lián)網(wǎng)連接和傳輸數(shù)據(jù)。由于以太網(wǎng)和互聯(lián)網(wǎng)遵循TCP/IP協(xié)議,所以被稱為TCP模式。該模式硬件接口是以太網(wǎng)接口。