一、ModBus協(xié)議簡介 ModBus協(xié)議包括ASCII, RTU, PLUS, TCP等,并沒有規(guī)定物理層。此協(xié)議定義了控制器能夠認識和使用的消息結(jié)構,而不管它們是經(jīng)過何種網(wǎng)絡進行通信的。標準的ModBus 是使用RS-232C 兼容串行接口, RS-232C規(guī)定了連接器針腳、接線、信號電平、波特率、奇偶校驗等信息,ModBus的ASCII, RTU協(xié)議則在此基礎上規(guī)定了消息、數(shù)據(jù)的結(jié)構、命令和應答的方式。ModBus控制器的數(shù)據(jù)通信采用Master/Slave方式(主/從),即Master端發(fā)出數(shù)據(jù)請求消息,Slave端接收到正確消息后就可以發(fā)送數(shù)據(jù)到Master端以響應請求;Master端也可以直接發(fā)消息修改Slave端的數(shù)據(jù),實現(xiàn)雙向讀寫。 ModBus可以應用在支持ModBus協(xié)議的PLC和PLC之間、PLC和個人計算機之間、計算機和計算機之間、遠程PLC和計算機之間以及遠程計算機之間(通過Modem連接),可見ModBus的應用是相當廣泛的。由于ModBus是一個事實上的工業(yè)標準,許多廠家的PLC, HMI、組態(tài)軟件都支持ModBus,而且ModBus是一個開放標準,其協(xié)議內(nèi)容可以免費獲得,一些小型廠商甚至個人都可根據(jù)協(xié)議標準開發(fā)出支持ModBus的產(chǎn)品或軟件,從而使其產(chǎn)品聯(lián)入到ModBus的數(shù)據(jù)網(wǎng)絡中。因此,ModBus有著廣泛的應用基礎。在實際應用中,可以使用RS232, RS 485 /422 , Modem加電話線、甚至TCP/IP來聯(lián)網(wǎng)。所以,ModBus的傳輸介質(zhì)種類較多,可以根據(jù)傳輸距離來選擇。 二、ModBus協(xié)議的通訊格式 ModBus可分為兩種傳輸模式:ASCII模式和RTU模式。使用何種模式由用戶自行選擇,包括串口通信參數(shù)(波特率、校驗方式等)。在配置每個控制器的時候,同一個ModBus網(wǎng)絡上的所有設備都必須選擇相同的傳輸模式和串口參數(shù)。 2.1 ASCII模式 當控制器設為在ModBus網(wǎng)絡上以ASCII模式通信,在消息中的每個8Bit字節(jié)都作為兩個ASCII字符發(fā)送。這種方式的主要優(yōu)點是字符發(fā)送的時間間隔可達到1秒而不產(chǎn)生錯誤。 使用ASCII模式,消息以冒號(:)字符(ASCII碼3AH)作為起始位,以回車換行符(ASCII碼0DH, 0AH)作為結(jié)束符。傳輸過程中,網(wǎng)絡上的設備不斷偵測“:”字符,當有一個冒號接收到時,每個設備就解碼下個位的地址域,來判斷是否發(fā)給自己的。與地址域一致的設備繼續(xù)接受其它域,直至接受到回車換行符。除起始位和結(jié)束符外,其他域可以使用的傳輸字符是十六進制的0…9,A…F,當然也要用ASCII碼表示字符。當選用ASCII模式時,消息幀使用LRC(縱向冗長檢測)進行錯誤檢測。 2.2RTU模式 當控制器設為RTU模式時,消息幀中的每個8Bit字節(jié)包含兩個4Bit的十六進制字符。 該模式下消息發(fā)送至少要以3.5個字符時間的停頓間隔開始。傳輸過程中,網(wǎng)絡設備不斷偵測網(wǎng)絡總線,包括停頓間隔時間內(nèi)。當?shù)谝粋域(地址域)接收到,相應的設備就對接下來的傳輸字符進行解碼,一旦有至少3. 5個字符時間的停頓就表示該消息的結(jié)束。 在RTU模式中整個消息幀必須作為一連續(xù)的流轉(zhuǎn)輸,如果在幀完成之前有超過1.5個字符時間的停頓時間,接收設備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于3. 5個字符時間內(nèi)接著前個消息開始,接收的設備將認為它是前一消息的延續(xù)。如果在傳輸過程中有以上兩種情況發(fā)生的話,必然會導致CRC校驗產(chǎn)生一個錯誤消息,反饋給發(fā)送方設備。 當控制器設為RTU(遠程終端單元)模式通信時,消息中的每個8Bit字節(jié)包含兩個4Bit的十六進制字符。這種模式與ASCII模式相比在同樣的波特率下,可比ASCII模式傳送更多的數(shù)據(jù)。 三、系統(tǒng)設計 本文所設計的系統(tǒng)是一個基于modbus的工業(yè)控制網(wǎng)絡,它主要由實現(xiàn)現(xiàn)場控制功能的智能控制儀表、實現(xiàn)對智能控制儀表在線配置與監(jiān)控功能的主機兩部分組成。作為從機的現(xiàn)場智能控制儀表主要任務有:實現(xiàn)現(xiàn)場溫度采集、輸出控制、顯示、系統(tǒng)配置以及響應主機激勵;主機的主要任務是在線配置從機、監(jiān)控從機從而得到相應從機的狀態(tài)、歷史溫度數(shù)據(jù)分析;兩者之間的通訊是基于現(xiàn)場總線技術的。 3.1 系統(tǒng)的硬件設計 系統(tǒng)主要由通訊電路(輸入)、數(shù)據(jù)采集、輸出控制、LCD顯示、通信及電源模塊等組成。如圖1所示,系統(tǒng)具有對外界溫度信號進行采集的能力,采集的模擬信號經(jīng)A/D模塊轉(zhuǎn)換為相應的數(shù)字量,送入微處理器進行處理。采集到的每一路溫度都要與系統(tǒng)此路的溫度設定值進行比較,然后根據(jù)結(jié)果調(diào)用合適的控制算法,并通過控制相應的繼電器的占空比實現(xiàn)對溫度的調(diào)節(jié)。 考慮到系統(tǒng)實際應用,在硬件設計方面,微控制器選用了臺灣Syncmos公司生產(chǎn)的8位微控制器SM5964, 它是80C52 微控制器家族的派生產(chǎn)品,其強大的片內(nèi)資源,只需添加少量的外圍器件即可實現(xiàn)系統(tǒng)的要求。溫度測量利用Pt(100Ω)熱敏電阻,測量的模擬信號經(jīng)A/D模塊轉(zhuǎn)換后送入微處理進行處理。模數(shù)轉(zhuǎn)換器選用凌特公司(Linear Technology)推出的20位無延遲模數(shù)轉(zhuǎn)換器LTC2430,此模塊可直接對測量的毫伏級信號進行處理,并能夠滿足精度要求。其它也選用了與通信和輸出控制相關的器件。
|