基于RS485接口Modbus協(xié)議的PLC與多機通訊

發(fā)布時(shí)間:2010-12-8 20:54    發(fā)布者:designer
關(guān)鍵詞: MODBUS , PLC , RS485 , 多機通訊
1 引言

在自動(dòng)控制領(lǐng)域,PLC單片機都受到廣泛應用。PLC 具有穩定可靠,抗干擾能力強, 功能強大且使用方便等特點(diǎn),單片機具有成本低廉,使用靈活,功能多樣等特點(diǎn)。PLC 與 單片機結合,互相聯(lián)系,互相通訊,將擴展控制功能,更好的控制復雜的系統。

在研究混合動(dòng)力電動(dòng)汽車(chē)驅動(dòng)系統時(shí), 采用PLC 作為主控制器,控制電機變頻器和發(fā) 動(dòng)機節氣門(mén)控制器,實(shí)現對電機和發(fā)動(dòng)機功率的 綜合控制。因為PLC 和變頻器均是艾默生公司 的產(chǎn)品,均支持RS485 接口和MODBUS 協(xié)議, 所以控制系統統一采用RS485 接口和MODBUS 協(xié)議。而發(fā)動(dòng)機節氣門(mén)控制器采用89C51 單片 機,所以要通過(guò)建立PLC 與單片機的通訊,實(shí) 現控制。





圖1 通信系統結構框圖

2 硬件設計

通訊系統的結構框圖如圖1 所示。

2.1 信號轉換電路

單片機支持 TTL 電平,可以采用MAX485 芯片來(lái)實(shí)現RS485 與TTL 之間的信號轉換 (如圖2)。MAX485 芯片采用單一電源+5 V 工作,額定電流為300 μA,采用半雙工通訊方式,內部含有一個(gè)驅動(dòng)器和接 收器。RO 和DI 端分別為接收 器的輸出和驅動(dòng)器的輸入端, 分別與單片機的RXD 和TXD 相連;RE 和DE 端分別為接收 和發(fā)送的使能端,當RE 為邏 輯0 時(shí),器件處于接收狀態(tài); 當DE 為邏輯1 時(shí),器件處于 發(fā)送狀態(tài),因為MAX485 工作 在半雙工狀態(tài),所以只需用單 片機的一個(gè)管腳控制這兩個(gè) 引腳即可;PLC 里RS485 總線(xiàn)的A 端和B 端分別為接收和發(fā)送的差分信號端,當A 引腳的 電平高于B 時(shí),代表發(fā)送的數據為1;當A 的電平低于B 端時(shí),代表發(fā)送的數據為0。在A(yíng) 和B 端之間加匹配電阻,一般可選100Ω 左右的電阻。





3 軟件設計

控制系統采用單主機/多從機的組網(wǎng)方式,PLC 為主機,電機變頻器和單片機為從機。 艾默生公司的PLC 和電機變頻器之間已經(jīng)建立了采用RS485 總線(xiàn),MODBUS 協(xié)議的通訊 ,為了實(shí)現PLC 與單片機的通訊,須先了解PLC 與電機變頻器的通訊特點(diǎn),然后建立 連接通訊。

3.1 PLC 與電機變頻器的通訊特點(diǎn)

采用RTU 方式的Modbus 協(xié)議,幀格式如圖3 所示。 波特率為9600bps,數據格式為1-8-N-2,字符間間隔少于 1.5 個(gè)字符時(shí)間(1.72ms),RTU 幀的最大幀長(cháng)度是256 個(gè) 字節。幀之間的空閑時(shí)間取命令碼設定和Modbus 內部約 定值中的較大值。Modbus 內部約定的最小幀間空閑如下: 幀頭和幀尾通過(guò)總線(xiàn)空閑時(shí)間不小于3.5 個(gè)字符時(shí)間 (4ms)來(lái)界定幀。幀之間的總線(xiàn)空閑不需要累加起始和 結束空閑。數據采用CRC16 校驗,整個(gè)信息參與校驗, 校驗和的高低字節需要交換后發(fā)送。





圖3 RTU 方式

RS485 是異步半雙工的通訊總線(xiàn)。主機處于主導和支 配地位,定時(shí)發(fā)出監控命令,等待從機的應答。從機處于 偵聽(tīng)狀態(tài),不能主動(dòng)往總線(xiàn)發(fā)送數據,在接收到主機發(fā)送 的一幀信息后,首先判斷地址碼是否本機地址,如果此幀 信息的地址碼和本機地址相同,則繼續處理命令碼和數 據,如果此幀信息的地址碼和本機地址不同,則忽略。接收完一個(gè)主機監控命令后,先進(jìn)行校驗,如果校驗正確則執行接收的監控命令,并根據命令回送相應的應答幀。任何時(shí)刻只能有一個(gè)從機處于發(fā)送狀態(tài),但主機發(fā)送時(shí)所有從機都必須 處于接收狀態(tài)。

上位機PLC 的通訊流程圖如圖4 所示。





圖4 上位機PLC 的通訊流程圖

3.2 PLC 與單片機通訊的實(shí)現

表 1 PLC 與單片機通訊的幀字節數





單片機進(jìn)行通信時(shí)工作在“方式一”的狀態(tài)下。 因為PLC 發(fā)出的數據幀第一個(gè)字符為地址數據,所 以單片機在接收數據時(shí)要區分接收到的數據是否是 幀的第一個(gè)字符。根據單片機每接收完一個(gè)字節數 據RI 就置1,而且幀間間隔4ms 以上,字符間隔少 于1.72ms, 可以通過(guò)計時(shí)的方式來(lái)判斷幀的第一個(gè) 字符。當RI 置1,開(kāi)始計時(shí),到下一次RI 置1,計 時(shí)結束,當時(shí)間間隔大于4ms,則后一次RI 置1 時(shí) 接收的字符是幀的第一個(gè)字符,當時(shí)間少于1.72ms, 則不是。

為了簡(jiǎn)化程序,可以協(xié)議好PLC 與單片機通訊 的幀字節數為6 個(gè)字節,如表1。單片機根據地址字 符數據判斷是否是本機地址,如果是,則接收處理 后面的5 個(gè)字節數據,計算前四個(gè)字節的CRC 校驗 碼,并與接收到的兩個(gè)字節CRC 校驗,進(jìn)行核對, 如果不相同,則不反饋數據給PLC,也不執行數據 包含的指令,如果相同,則反饋數據給PLC,執行 數據包含的指令。下位機單片機程序的流程圖如圖5 所示。





4 結束語(yǔ)

本文作者創(chuàng )新點(diǎn):在艾默生 PLC 與其變頻器的 通訊基礎上加入了基于RS485 接口Modbus 協(xié)議的 PLC 與單片機的多機通訊,該通訊方案硬件接口簡(jiǎn) 單,軟件和通信協(xié)議有很好的通用性,可以拓展為PLC 與多個(gè)變頻器和單片機的同時(shí)通訊, 也可應用于其他工程的多機通訊系統中。該通訊方案已經(jīng)成功應用于混合動(dòng)力電動(dòng)汽車(chē)的驅 動(dòng)電機及發(fā)動(dòng)機節氣門(mén)的綜合控制。
本文地址:http://selenalain.com/thread-45283-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页