基于CAN總線(xiàn)的雙容水箱控制系統
圖4 通信模塊主程序流程圖
(1) CAN控制器的初始化設置
CAN控制器的初始化主要是完成SJA1000的初始化設置,是設計的一個(gè)重點(diǎn),也是一個(gè)難點(diǎn)。SJA1000在系統上電、硬件復位或主控制器發(fā)出復位命令后需進(jìn)行初始化,以設定它的工作模式、通信速率、輸出控制方式、標識符和屏蔽格式等重要參數。
(2) 數據發(fā)送、接收子模塊
數據發(fā)送、接收子模塊主要是控制各個(gè)節點(diǎn)數據的發(fā)送和接收,數據從CAN控制器SJA1000發(fā)送到CAN總線(xiàn)是由CAN控制器自動(dòng)完成的。
發(fā)送程序只需把包裝好的數據送到CAN的發(fā)送緩沖區,然后啟動(dòng)發(fā)送命令即可。發(fā)送程序可采用查詢(xún)方式或中斷方式。由于查詢(xún)方式比較簡(jiǎn)單,這里不作介紹。而對于中斷方式,發(fā)送程序分為兩部分:一是主程序,二是中斷服務(wù)程序。主程序主要用于控制信息的發(fā)送及當發(fā)送緩沖區滿(mǎn)時(shí),把要發(fā)送的信息暫存到臨時(shí)存儲區;中斷發(fā)送程序負責把臨時(shí)存儲區中的暫存信息發(fā)送出去。信息從CAN總線(xiàn)到CAN接收緩沖區是由CAN控制器自動(dòng)完成的。
接收程序只需從接收緩沖區讀取要接收的信息即可。接收程序也可采用查詢(xún)方式或中斷方式,兩者的繁簡(jiǎn)程度相當。
4.2 上位機通信程序的設計
上位機的軟件設計主要包括兩部分內容:監控界面軟件的設計和與適配器通信軟件的設計。監控界面采用"組態(tài)王"軟件包,對于不同的系統應用再進(jìn)行二次開(kāi)發(fā),通信程序采用VB編寫(xiě)。上位機的通信程序相當于一個(gè)接口轉換程序,一面和適配器的RS232口進(jìn)行數據交換;另一面和組態(tài)王進(jìn)行數據交換,如圖5所示。
圖5上位機通信程序功能示意圖
VB和適配卡的通信是通過(guò)RS232協(xié)議完成的,應用VB的通信控件Mscomm可以很方便的實(shí)現。VB和組態(tài)王的通信是動(dòng)態(tài)數據交換(DDE)實(shí)現的。
5 結束語(yǔ)
現場(chǎng)總線(xiàn)由于具有數字式串行網(wǎng)絡(luò )的高可靠性,又是一種低成本的計算機網(wǎng)絡(luò ),因此倍受人們青睞,已被廣泛應用到各種測量、控制系統中。CAN總線(xiàn)是現場(chǎng)總線(xiàn)技術(shù)中發(fā)展較快的一種現場(chǎng)總線(xiàn),與其他總線(xiàn)相比,總線(xiàn)的數據通訊具有獨特的可靠性、實(shí)時(shí)性和靈活性等技術(shù)特點(diǎn),是有效支持分布式控制或實(shí)時(shí)控制的串行通訊網(wǎng)絡(luò ),且易于用戶(hù)進(jìn)行二次開(kāi)發(fā)工作,因此,越來(lái)越受到各工業(yè)廠(chǎng)家的重視并成為公認的最有發(fā)展前途的現場(chǎng)總線(xiàn)之一。
本文介紹的基于CAN總線(xiàn)雙容水箱水位控制系統已經(jīng)在武漢大學(xué)動(dòng)機學(xué)院系統實(shí)驗室得到了成功的應用,實(shí)驗證明該系統運行穩定,控制實(shí)時(shí)性良好。
評論