基于RS485接口Modbus協(xié)議的PLC與多機通訊
上位機PLC 的通訊流程圖如圖4 所示。
圖4 上位機PLC 的通訊流程圖
3.2 PLC 與單片機通訊的實(shí)現
表 1 PLC 與單片機通訊的幀字節數
單片機進(jìn)行通信時(shí)工作在“方式一”的狀態(tài)下[5]。 因為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)的綜合控制。
參考文獻:
[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.
評論