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