基于PROFIBUS—DP的串口設(shè)備群的集成方案與實現(xiàn)
3.2串口從站設(shè)備通信方案及程序框圖
本實驗系統(tǒng)采用多臺S7—200 PLC來模擬串口設(shè)備群,整個系統(tǒng)是有應(yīng)答的收發(fā)通信。當(dāng)然也可以采用其他串口設(shè)備,如果采用單純發(fā)送設(shè)備(如條碼掃描器)或單純接收設(shè)備(如顯示屏),其實現(xiàn)方法是一樣的,只是編程更加簡單而已。
圖2 DP主站通訊程序流程圖
對S7.200 PLC,我們使用其自由口通信方式,用XMT指令發(fā)送數(shù)據(jù),用RCV指令接收數(shù)據(jù)。因為有多臺PLC串接在網(wǎng)絡(luò)中,每臺PLC需要接收到有用的數(shù)據(jù)是不同的,所以需要根據(jù)主站所發(fā)送的地址來判斷是發(fā)給哪一個從站的數(shù)據(jù),從而該從站進(jìn)行接收,并向主站發(fā)送數(shù)據(jù)。又因為通信速度較快,所以對地址的判斷需要放到接收完成中斷程序中。其程序框圖如圖3所示。
圖3中中斷O為接收完成中斷,中斷1為時基中斷,中斷2為發(fā)送完成中斷。時基中斷的時間為10ms。
3.3程序設(shè)計中的關(guān)鍵環(huán)節(jié)
在系統(tǒng)軟件設(shè)計中,首先需要注意的是主站自動發(fā)送間隔時間的選擇。對主站來說,如果接收數(shù)據(jù)過長,接收數(shù)據(jù)時間大于發(fā)送時間間隔,那么接收將被發(fā)送打斷,而不能完整地接收數(shù)據(jù)。設(shè)計人員需要根據(jù)在主站中所配置輸入緩沖單元的數(shù)系統(tǒng)所選傳輸速率,算出傳送所需最長報文數(shù)據(jù)所需要的時間,將主站定時器時間設(shè)定為大于傳送最長報文的時間(也可根據(jù)經(jīng)驗設(shè)置),才不至于出現(xiàn)主站發(fā)送打斷主站接收的情況,實現(xiàn)良好的通信效果。
圖3 串口設(shè)備從站通信程序框圖
其次需要注意的是串口設(shè)備從站收發(fā)之間需要有一個切換時間。當(dāng)串口設(shè)備收到主站發(fā)送的控制命令后,不能立即向主站發(fā)送數(shù)據(jù),需要延遲一小段時間,也就是說需使數(shù)據(jù)線處于一小段空閑時間后,再向主站發(fā)送數(shù)據(jù),這樣才能保證傳輸?shù)目煽啃?。通過實驗表明,如果不設(shè)置串口設(shè)備從站收發(fā)切換時間,在通信中容易造成數(shù)據(jù)丟失,不能實現(xiàn)良好的循環(huán)通信。在本系統(tǒng)中采用的是時間中斷方式,定時時間為10ms,即串口設(shè)備收發(fā)切換時間為10ms。
4 結(jié)束語
本系統(tǒng)采用S7—300 PLC作為PROFIBUS主站,使用多臺S7-200 PLC模擬串口設(shè)備群,配置了6個字節(jié)緩沖輸入和緩沖輸出,實驗室調(diào)試結(jié)果表明:DP主站能夠按時間每隔1s輪流對各個串口設(shè)備發(fā)送數(shù)據(jù),串口設(shè)備從站能夠在接收到主站發(fā)給自己的數(shù)據(jù)后,及時地將數(shù)據(jù)從緩沖區(qū)取出,存放到相應(yīng)的存儲單元,停留10ms后從站將自己的數(shù)據(jù)報告給主站,根據(jù)緩沖區(qū)的配置每次可傳送6個字節(jié)的數(shù)據(jù),主站接收到從站報告的數(shù)據(jù)后,按不同的從站地址存儲到其相應(yīng)的存儲單元,然后對下一個從站進(jìn)行訪問,依此循環(huán)通信。本系統(tǒng)實際運(yùn)行通信情況良好。
本實驗系統(tǒng)提供的組網(wǎng)方法,以其良好的通信狀況,低廉的成本,不僅能夠?qū)崿F(xiàn)現(xiàn)場總線系統(tǒng)的智能化管理,具有很高的先進(jìn)性,還可以節(jié)約大量的硬件成本。那些存在較多串口設(shè)備,在不更換設(shè)備的情況下需進(jìn)行現(xiàn)場總線技術(shù)改造的企業(yè),可借鑒本例的設(shè)計。
評論