基于RS485接口Modbus協(xié)議的PLC與多機通訊
上位機PLC 的通訊流程圖如圖4 所示。
圖4 上位機PLC 的通訊流程圖
3.2 PLC 與單片機通訊的實現(xiàn)
表 1 PLC 與單片機通訊的幀字節(jié)數(shù)
單片機進行通信時工作在“方式一”的狀態(tài)下[5]。 因為PLC 發(fā)出的數(shù)據(jù)幀第一個字符為地址數(shù)據(jù),所 以單片機在接收數(shù)據(jù)時要區(qū)分接收到的數(shù)據(jù)是否是 幀的第一個字符。根據(jù)單片機每接收完一個字節(jié)數(shù) 據(jù)RI 就置1,而且?guī)g間隔4ms 以上,字符間隔少 于1.72ms, 可以通過計時的方式來判斷幀的第一個 字符。當RI 置1,開始計時,到下一次RI 置1,計 時結(jié)束,當時間間隔大于4ms,則后一次RI 置1 時 接收的字符是幀的第一個字符,當時間少于1.72ms, 則不是。
為了簡化程序,可以協(xié)議好PLC 與單片機通訊 的幀字節(jié)數(shù)為6 個字節(jié),如表1。單片機根據(jù)地址字 符數(shù)據(jù)判斷是否是本機地址,如果是,則接收處理 后面的5 個字節(jié)數(shù)據(jù),計算前四個字節(jié)的CRC 校驗 碼,并與接收到的兩個字節(jié)CRC 校驗,進行核對, 如果不相同,則不反饋數(shù)據(jù)給PLC,也不執(zhí)行數(shù)據(jù) 包含的指令,如果相同,則反饋數(shù)據(jù)給PLC,執(zhí)行 數(shù)據(jù)包含的指令。下位機單片機程序的流程圖如圖5 所示。
4 結(jié)束語
本文作者創(chuàng)新點:在艾默生 PLC 與其變頻器的 通訊基礎(chǔ)上加入了基于RS485 接口Modbus 協(xié)議的 PLC 與單片機的多機通訊,該通訊方案硬件接口簡 單,軟件和通信協(xié)議有很好的通用性,可以拓展為PLC 與多個變頻器和單片機的同時通訊, 也可應(yīng)用于其他工程的多機通訊系統(tǒng)中。該通訊方案已經(jīng)成功應(yīng)用于混合動力電動汽車的驅(qū) 動電機及發(fā)動機節(jié)氣門的綜合控制。
參考文獻:
[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.
評論