新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ModBus協(xié)議在工業(yè)控制系統(tǒng)中的應(yīng)用

ModBus協(xié)議在工業(yè)控制系統(tǒng)中的應(yīng)用

作者: 時(shí)間:2012-06-19 來(lái)源:網(wǎng)絡(luò) 收藏

一、簡(jiǎn)介

  當(dāng)今世界,工業(yè)控制已從單機(jī)控制走向集中監(jiān)控、集散控制。在進(jìn)入網(wǎng)絡(luò)時(shí)代的今天,工業(yè)控制器連網(wǎng)也為網(wǎng)絡(luò)管理提供了方便。就是工業(yè)控制器的網(wǎng)絡(luò)協(xié)議中的一種。是Modicon公司于1978年發(fā)明的一種用于電子控制器進(jìn)行控制和通訊的通訊協(xié)議。通過(guò)此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以進(jìn)行通信。它的開(kāi)放性、可擴(kuò)充性和標(biāo)準(zhǔn)化使它成為一個(gè)通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以簡(jiǎn)單可靠地連成工業(yè)網(wǎng)絡(luò),進(jìn)行系統(tǒng)的集中監(jiān)控,從而使它成為最流行的協(xié)議之一。

  ModBus協(xié)議包括ASCII, RTU, PLUS, TCP等,并沒(méi)有規(guī)定物理層。此協(xié)議定義了控制器能夠認(rèn)識(shí)和使用的消息結(jié)構(gòu),而不管它們是經(jīng)過(guò)何種網(wǎng)絡(luò)進(jìn)行通信的。標(biāo)準(zhǔn)的ModBus 是使用RS-232C 兼容串行接口, RS-232C規(guī)定了連接器針腳、接線(xiàn)、信號(hào)電平、波特率、奇偶校驗(yàn)等信息,ModBus的ASCII, RTU協(xié)議則在此基礎(chǔ)上規(guī)定了消息、數(shù)據(jù)的結(jié)構(gòu)、命令和應(yīng)答的方式。ModBus控制器的數(shù)據(jù)通信采用Master/Slave方式(主/從),即Master端發(fā)出數(shù)據(jù)請(qǐng)求消息,Slave端接收到正確消息后就可以發(fā)送數(shù)據(jù)到Master端以響應(yīng)請(qǐng)求;Master端也可以直接發(fā)消息修改Slave端的數(shù)據(jù),實(shí)現(xiàn)雙向讀寫(xiě)。

  ModBus可以應(yīng)用在支持ModBus協(xié)議的PLC和PLC之間、PLC和個(gè)人計(jì)算機(jī)之間、計(jì)算機(jī)和計(jì)算機(jī)之間、遠(yuǎn)程PLC和計(jì)算機(jī)之間以及遠(yuǎn)程計(jì)算機(jī)之間(通過(guò)Modem連接),可見(jiàn)ModBus的應(yīng)用是相當(dāng)廣泛的。由于ModBus是一個(gè)事實(shí)上的工業(yè)標(biāo)準(zhǔn),許多廠家的PLC, HMI、組態(tài)軟件都支持ModBus,而且ModBus是一個(gè)開(kāi)放標(biāo)準(zhǔn),其協(xié)議內(nèi)容可以免費(fèi)獲得,一些小型廠商甚至個(gè)人都可根據(jù)協(xié)議標(biāo)準(zhǔn)開(kāi)發(fā)出支持ModBus的產(chǎn)品或軟件,從而使其產(chǎn)品聯(lián)入到ModBus的數(shù)據(jù)網(wǎng)絡(luò)中。因此,ModBus有著廣泛的應(yīng)用基礎(chǔ)。在實(shí)際應(yīng)用中,可以使用RS232, RS 485 /422 , Modem加電話(huà)線(xiàn)、甚至TCP/IP來(lái)聯(lián)網(wǎng)。所以,ModBus的傳輸介質(zhì)種類(lèi)較多,可以根據(jù)傳輸距離來(lái)選擇。

二、ModBus協(xié)議的通訊格式

  ModBus可分為兩種傳輸模式:ASCII模式和RTU模式。使用何種模式由用戶(hù)自行選擇,包括串口通信參數(shù)(波特率、校驗(yàn)方式等)。在配置每個(gè)控制器的時(shí)候,同一個(gè)ModBus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。

  2.1 ASCII模式

  當(dāng)控制器設(shè)為在ModBus網(wǎng)絡(luò)上以ASCII模式通信,在消息中的每個(gè)8Bit字節(jié)都作為兩個(gè)ASCII字符發(fā)送。這種方式的主要優(yōu)點(diǎn)是字符發(fā)送的時(shí)間間隔可達(dá)到1秒而不產(chǎn)生錯(cuò)誤。

  表1 ASCII模式的消息幀


  如表1所示,使用ASCII模式,消息以冒號(hào)(:)字符(ASCII碼3AH)作為起始位,以回車(chē)換行符(ASCII碼0DH, 0AH)作為結(jié)束符。傳輸過(guò)程中,網(wǎng)絡(luò)上的設(shè)備不斷偵測(cè)“:”字符,當(dāng)有一個(gè)冒號(hào)接收到時(shí),每個(gè)設(shè)備就解碼下個(gè)位的地址域,來(lái)判斷是否發(fā)給自己的。與地址域一致的設(shè)備繼續(xù)接受其它域,直至接受到回車(chē)換行符。除起始位和結(jié)束符外,其他域可以使用的傳輸字符是十六進(jìn)制的0…9,A…F,當(dāng)然也要用ASCII碼表示字符。當(dāng)選用ASCII模式時(shí),消息幀使用LRC(縱向冗長(zhǎng)檢測(cè))進(jìn)行錯(cuò)誤檢測(cè)。

  2.2RTU模式

  當(dāng)控制器設(shè)為RTU模式時(shí),消息幀中的每個(gè)8Bit字節(jié)包含兩個(gè)4Bit的十六進(jìn)制字符。

  表2 RTU模式的消息幀


  該模式下消息發(fā)送至少要以3.5個(gè)字符時(shí)間的停頓間隔開(kāi)始。傳輸過(guò)程中,網(wǎng)絡(luò)設(shè)備不斷偵測(cè)網(wǎng)絡(luò)總線(xiàn),包括停頓間隔時(shí)間內(nèi)。當(dāng)?shù)谝粋€(gè)域(地址域)接收到,相應(yīng)的設(shè)備就對(duì)接下來(lái)的傳輸字符進(jìn)行解碼,一旦有至少3. 5個(gè)字符時(shí)間的停頓就表示該消息的結(jié)束。

  在RTU模式中整個(gè)消息幀必須作為一連續(xù)的流轉(zhuǎn)輸,如果在幀完成之前有超過(guò)1.5個(gè)字符時(shí)間的停頓時(shí)間,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個(gè)新消息的地址域。同樣地,如果一個(gè)新消息在小于3. 5個(gè)字符時(shí)間內(nèi)接著前個(gè)消息開(kāi)始,接收的設(shè)備將認(rèn)為它是前一消息的延續(xù)。如果在傳輸過(guò)程中有以上兩種情況發(fā)生的話(huà),必然會(huì)導(dǎo)致CRC校驗(yàn)產(chǎn)生一個(gè)錯(cuò)誤消息,反饋給發(fā)送方設(shè)備。

  當(dāng)控制器設(shè)為RTU(遠(yuǎn)程終端單元)模式通信時(shí),消息中的每個(gè)8Bit字節(jié)包含兩個(gè)4Bit的十六進(jìn)制字符。這種模式與ASCII模式相比在同樣的波特率下,可比ASCII模式傳送更多的數(shù)據(jù)。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉