新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于RS485接口Modbus協(xié)議的PLC與多機(jī)通訊

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

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

  上位機(jī)PLC 的通訊流程圖如圖4 所示。


  圖4 上位機(jī)PLC 的通訊流程圖

  3.2 PLC 與單片機(jī)通訊的實(shí)現(xiàn)

  表 1 PLC 與單片機(jī)通訊的幀字節(jié)數(shù)


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

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


  4 結(jié)束語(yǔ)

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

參考文獻(xiàn):

[1].PLCdatasheethttp://www.dzsc.com/datasheet/PLC_1248813.html.
[2].RS485datasheethttp://www.dzsc.com/datasheet/RS485_585289.html.
[3].89C51 datasheethttp://www.dzsc.com/datasheet/89C51+_105386.html.
[4].TTL datasheethttp://www.dzsc.com/datasheet/TTL+_1174409.html.
[5].MAX485 datasheethttp://www.dzsc.com/datasheet/MAX485+_859396.html.


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

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉