基于ARM Cortex-M3的MODBUS協(xié)議實(shí)現(xiàn)及其應(yīng)用
摘要 針對(duì)變頻器通信應(yīng)用,介紹了MODBUS協(xié)議的特點(diǎn)及其組成;設(shè)計(jì)了RS485電路接口;并以ARMCortex-M3微控制器為核心,設(shè)計(jì)了MODBUS協(xié)議的實(shí)現(xiàn)方案。針對(duì)變頻器F2000-G開(kāi)發(fā)了嵌入式系統(tǒng).實(shí)現(xiàn)變頻調(diào)速功能,應(yīng)用于無(wú)損檢測(cè)試驗(yàn)儀。
關(guān)鍵詞 MODBUS;RS485;ARM Cortex-M3;變頻調(diào)速;嵌入式系統(tǒng)
漏磁探傷作為非接觸式的無(wú)損探傷技術(shù),其具有檢測(cè)速度快、靈敏度高、無(wú)需耦合劑、易于實(shí)現(xiàn)自動(dòng)化等特點(diǎn),是鋼軌探傷技術(shù)的重點(diǎn)研究方向。為解決漏磁探傷研究中的實(shí)驗(yàn)仿真問(wèn)題,研制了基于嵌入式系統(tǒng)的無(wú)損探傷試驗(yàn)儀,通過(guò)實(shí)現(xiàn)MODBUS協(xié)議與變頻器通信,以此驅(qū)動(dòng)交流電機(jī)與機(jī)械試驗(yàn)裝置,完成運(yùn)動(dòng)控制并進(jìn)行無(wú)損探傷試驗(yàn)。
針對(duì)無(wú)損探傷試驗(yàn)儀中變頻器通信問(wèn)題,依據(jù)MODBUS協(xié)議規(guī)定,利用RealView MDK開(kāi)發(fā)了基于ARM Cortex-M3微控制器的嵌入式軟件,實(shí)現(xiàn)了與變頻器的MODBUS通信,完成變頻調(diào)速的運(yùn)動(dòng)控制功能。
1 MODBUS協(xié)議
1.1 MODBOS協(xié)議簡(jiǎn)介
MODBUS是Gould Ine注冊(cè)的通訊協(xié)議商標(biāo),該協(xié)議具有糾錯(cuò)能力強(qiáng)、數(shù)據(jù)傳輸量大、實(shí)時(shí)性好等特點(diǎn),是工業(yè)自動(dòng)控制領(lǐng)域使用較廣泛的通訊語(yǔ)言,目前已成為我國(guó)工業(yè)自動(dòng)化領(lǐng)域的一種國(guó)家標(biāo)準(zhǔn)。
MODBUS協(xié)議定義了一個(gè)控制器能識(shí)別的消息結(jié)構(gòu),它描述了控制器請(qǐng)求訪問(wèn)和應(yīng)答回應(yīng)其他設(shè)備的過(guò)程,以及錯(cuò)誤檢測(cè)和記錄的規(guī)范,制定了報(bào)文字段和內(nèi)容的公共格式。MODBUS屬于應(yīng)用層報(bào)文傳輸協(xié)議,其通信結(jié)構(gòu)為一對(duì)多的主從查詢模式,即主從Master-Slave模式。 MODBUS網(wǎng)絡(luò)上可以有多個(gè)從節(jié)點(diǎn),但有且只能有一個(gè)主節(jié)點(diǎn),主節(jié)點(diǎn)按照通信協(xié)議對(duì)從節(jié)點(diǎn)發(fā)出請(qǐng)求操作,從設(shè)備收到主節(jié)點(diǎn)的請(qǐng)求后,做出相應(yīng)的響應(yīng)再向主節(jié)點(diǎn)回復(fù)應(yīng)答消息。
1.2 MODBOS協(xié)議組成
MODBUS協(xié)議具有兩種傳輸模式:ASCII模式和RTU模式。ASCII模式中數(shù)據(jù)以ASCH字符碼表示,通過(guò)冒號(hào)、回車字符判定數(shù)據(jù)幀的起始和結(jié)束,采用IRC數(shù)據(jù)檢驗(yàn);RTU模式中數(shù)據(jù)以非壓縮BCD碼表示,通過(guò)時(shí)間標(biāo)記實(shí)現(xiàn)數(shù)據(jù)幀起始判定,采用CRC數(shù)據(jù)校驗(yàn),具有數(shù)據(jù)吞吐量高、傳輸穩(wěn)定、通信效率高的優(yōu)點(diǎn)。
由于變頻調(diào)速系統(tǒng)的安全性能要求較高,所以選擇通信效率高、時(shí)間管理嚴(yán)格的RTU傳輸模式。在協(xié)議幀組成上,MODBUS定義了一個(gè)基本的,與通信層無(wú)關(guān)數(shù)據(jù)協(xié)議單元PDU(Protocol Data Unit),并通過(guò)在PDU上添加地址、校驗(yàn)等附加域定義了應(yīng)用數(shù)據(jù)單元ADU(Application Data Unit),形成完整的數(shù)據(jù)幀,MODBUS RTU數(shù)據(jù)幀組成如表1所示。
在數(shù)據(jù)幀起始判定上,MODBUS RTU采用了如圖1所示的時(shí)間標(biāo)記方法,即相鄰的兩幀之間必須間隔至少為總線發(fā)送3.5個(gè)字符的時(shí)間,該時(shí)間稱為T3.5。
評(píng)論