计算机485通讯原理,软件实现 - 基于Modbus协议的RS485总线通讯机设计原理及应用...
2.2.9從站提交數(shù)據(jù)到上位機(jī)
主站掃描子站時(shí),子站將數(shù)據(jù)包發(fā)送到主站,主站轉(zhuǎn)發(fā)到上位機(jī),上位機(jī)收到后發(fā)送數(shù)據(jù)收到確認(rèn)包到主站,主站收到確認(rèn)包后轉(zhuǎn)發(fā)到從站。從站未收到確認(rèn)包,不會(huì)進(jìn)行其他數(shù)據(jù)的上傳。在規(guī)定時(shí)間內(nèi)未收到確認(rèn)包認(rèn)為數(shù)據(jù)傳送失敗。
主站-->從站掃描碼
從站-->主站數(shù)據(jù)
主站-->PCFLASH存儲(chǔ)器中數(shù)據(jù)
PC-->主站確認(rèn)碼(放入FLASH存儲(chǔ)器)
主站-->從站確認(rèn)碼
從站-->主站應(yīng)答碼
3軟件實(shí)現(xiàn)
主站主要完成2個(gè)功能:對(duì)各節(jié)點(diǎn)進(jìn)行掃描以獲取并保存各節(jié)點(diǎn)的通信狀態(tài);對(duì)上位機(jī)與各從站之間的報(bào)文進(jìn)行可靠轉(zhuǎn)發(fā)。軟件流程如圖2所示,系統(tǒng)上電后,首先進(jìn)行初始化操作,主要包括設(shè)置串口、定時(shí)器,開(kāi)啟開(kāi)門狗,配置芯片引腳等內(nèi)容。
系統(tǒng)初始化成功后,主站向上位機(jī)請(qǐng)求從站配置信息,主要包括從站數(shù)量、各從站的地址、各從站配置情況即從站為啟用還是閑置狀態(tài)。
從站配置信息請(qǐng)求成功后,主站開(kāi)始對(duì)各從站進(jìn)行掃描,并對(duì)掃描中產(chǎn)生的從站報(bào)文進(jìn)行處理。每掃描完一個(gè)從站,主站都會(huì)去查看有無(wú)來(lái)自上位機(jī)的報(bào)文,并對(duì)報(bào)文進(jìn)行適當(dāng)處理。當(dāng)經(jīng)過(guò)一定時(shí)間間隔后主站再去掃描下一個(gè)從站。
其中,在來(lái)自上位機(jī)的報(bào)文中,有的報(bào)文是需要轉(zhuǎn)發(fā)給某個(gè)從站的,在掃描期間來(lái)自從站的報(bào)文中,有的也是需要轉(zhuǎn)發(fā)給上位機(jī)的。只有合理設(shè)計(jì)轉(zhuǎn)發(fā)協(xié)議,才能既保證報(bào)文的可靠傳輸,又不致于使系統(tǒng)實(shí)時(shí)性明顯變差或產(chǎn)生網(wǎng)絡(luò)堵塞。本系統(tǒng)將來(lái)自上位機(jī)的報(bào)文分為3類:第1類是上位機(jī)直接傳給主站的,主站收到這類報(bào)文,進(jìn)行簡(jiǎn)單回復(fù),這次通信完成;第2類是上位機(jī)發(fā)給某個(gè)從站并且需要得到從站回復(fù)信息的,這時(shí)候需要主站將報(bào)文轉(zhuǎn)發(fā)給此從站,并將此從站的回復(fù)信息再轉(zhuǎn)發(fā)給上位機(jī);第3類是上位機(jī)發(fā)給某從站但不需要回復(fù)的,這時(shí)主站將報(bào)文傳給此從站,但不需要等待從站的回復(fù)信息,這次通信完成。同理,在掃描過(guò)程中,對(duì)從站產(chǎn)生的報(bào)文的處理也分為類似3種,具體處理過(guò)程如圖2所示。
圖2主程序流程圖
本控制系統(tǒng)的設(shè)計(jì)中,由于主站的使用,一方面,上位機(jī)不再承擔(dān)對(duì)眾多從站的輪詢工作,使其擁有了更多的CPU資源進(jìn)行快速響應(yīng)、處理人機(jī)交互與日志存儲(chǔ)等事件,順暢完成眾多動(dòng)畫的播放,提高了系統(tǒng)的事件處理與響應(yīng)能力;另一方面,在傳統(tǒng)的主從式RS485通信網(wǎng)絡(luò)中,當(dāng)某根通信線由于意外或者人為原因造成短接或斷路后,可能導(dǎo)致整個(gè)通信網(wǎng)絡(luò)癱瘓,主站的使用,使得原本連接在同一網(wǎng)絡(luò)上的上百個(gè)從站分成幾個(gè)相對(duì)獨(dú)立的網(wǎng)絡(luò),當(dāng)某一網(wǎng)絡(luò)發(fā)生故障時(shí),將不會(huì)對(duì)其他網(wǎng)絡(luò)的通信造成影響。同時(shí),由于主站可以脫離上位機(jī)單獨(dú)對(duì)各從站進(jìn)行掃描并實(shí)時(shí)獲取各從站的當(dāng)前狀態(tài),如果上位機(jī)需要從某種故障中恢復(fù)并進(jìn)行重新啟動(dòng),它可以直接從主站中快速獲取整個(gè)系統(tǒng)中所有從站的當(dāng)前狀態(tài),主站還可以根據(jù)掃描從站數(shù)的多少,自動(dòng)調(diào)整掃描時(shí)間間隔,在保證系統(tǒng)響應(yīng)的前提下降低通信故障率,提高系統(tǒng)可靠性與安全性。
4結(jié)語(yǔ)
本文詳細(xì)論述了基于Modbus協(xié)議的RS485總線通訊機(jī)設(shè)計(jì)原理。雖然此主站的增加會(huì)使系統(tǒng)成本稍有上升,但它不僅可以使上位機(jī)從繁忙的通信工作中解放出來(lái),更好地完成人機(jī)交互、數(shù)據(jù)處理、動(dòng)畫播放等任務(wù),而且還能夠提高系統(tǒng)獨(dú)立性,加快系統(tǒng)從故障中恢復(fù)的速度,有效地提高系統(tǒng)的可靠性、安全性。本設(shè)計(jì)已成功應(yīng)用于某監(jiān)獄門禁控制系統(tǒng),實(shí)踐證明該系統(tǒng)運(yùn)行穩(wěn)定、故障率低、操作方便、安全可靠
總結(jié)
以上是生活随笔為你收集整理的计算机485通讯原理,软件实现 - 基于Modbus协议的RS485总线通讯机设计原理及应用...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 最常用的动态sql语句梳理Mybatis
- 下一篇: 离散数学4