• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MCGS和CAN總線的糧庫溫濕度監(jiān)測系統(tǒng)

      2016-11-28 16:32:41包建華喬曦王亮宋博
      江蘇農(nóng)業(yè)科學(xué) 2016年9期
      關(guān)鍵詞:CAN總線糧庫驅(qū)動(dòng)程序

      包建華+喬曦+王亮+宋博

      摘要:設(shè)計(jì)一種基于CAN總線網(wǎng)絡(luò)的糧庫溫濕度分布式監(jiān)測系統(tǒng),通過安裝于現(xiàn)場的智能CAN節(jié)點(diǎn),可實(shí)現(xiàn)糧庫多點(diǎn)溫濕度數(shù)據(jù)的采集與變送。為解決CAN總線與上位PC機(jī)串口數(shù)據(jù)交換問題,設(shè)計(jì)了一個(gè)CAN/RS232通信轉(zhuǎn)換模塊。上位機(jī)可視化監(jiān)控界面在通用版組態(tài)軟件MCGS平臺(tái)下開發(fā),主要負(fù)責(zé)溫濕度數(shù)據(jù)的顯示、保存、管理以及采集的調(diào)度。對(duì)于用戶自主設(shè)計(jì)的單片機(jī)應(yīng)用系統(tǒng),MCGS沒有提供現(xiàn)成的底層設(shè)備驅(qū)動(dòng)程序,基于MCGS腳本驅(qū)動(dòng)開發(fā)工具并結(jié)合系統(tǒng)功能分析,開發(fā)了MCGS串口驅(qū)動(dòng)構(gòu)件?,F(xiàn)場調(diào)試表明,整個(gè)系統(tǒng)實(shí)時(shí)性、穩(wěn)定性良好,完全達(dá)到設(shè)計(jì)要求。

      關(guān)鍵詞:糧庫;溫濕度;MCGS;CAN總線;驅(qū)動(dòng)程序

      中圖分類號(hào): TP273 文獻(xiàn)標(biāo)志碼: A

      文章編號(hào):1002-1302(2016)09-0394-03

      糧食儲(chǔ)藏是國家備戰(zhàn)備荒的重要戰(zhàn)略舉措,糧庫糧情監(jiān)測是科學(xué)保糧的關(guān)鍵措施之一[1]。而溫濕度是影響倉儲(chǔ)過程中糧食品質(zhì)的主要因素,因此,如何快速、準(zhǔn)確地檢測糧庫的溫度和濕度并及時(shí)進(jìn)行處理,對(duì)糧食的安全儲(chǔ)藏意義重大。早期糧庫溫濕度參數(shù)常采用人工方法來進(jìn)行檢測,用到的檢測手段有雙金屬溫度計(jì)、毛發(fā)濕度計(jì)、干濕度表和濕度試紙等,這些方法效率低、勞動(dòng)強(qiáng)度大且測量精度低[2]。1998年以來,國家啟動(dòng)糧食儲(chǔ)備倉庫建設(shè),工程先后分為3批,糧食儲(chǔ)備規(guī)模超過250億kg。目前,對(duì)于糧情監(jiān)測,各大糧庫相繼采用以計(jì)算機(jī)為核心的網(wǎng)絡(luò)監(jiān)控系統(tǒng),但從實(shí)際運(yùn)維情況看,仍有進(jìn)一步改進(jìn)的空間。

      為解決汽車中眾多控制與測試儀器之間的數(shù)據(jù)交換問題,德國博世(Bosch)公司于20世紀(jì)80年代開發(fā)了控制器局域網(wǎng)CAN(controller area network),這是一種有效支持分布式控制系統(tǒng)的串行通信網(wǎng)絡(luò),它屬于現(xiàn)場總線的范疇。相比于傳統(tǒng)的RS-485總線,CAN總線主要特點(diǎn)表述如下[3]:

      (1)多主技術(shù)。網(wǎng)絡(luò)上的任一節(jié)點(diǎn)不分主從,可在任意時(shí)刻主動(dòng)地向其他節(jié)點(diǎn)發(fā)送信息,同時(shí),發(fā)送的節(jié)點(diǎn)信息具有不同的優(yōu)先級(jí),以滿足不同的實(shí)時(shí)性操作需要。

      (2)高可靠性。節(jié)點(diǎn)在發(fā)生嚴(yán)重錯(cuò)誤時(shí),通過自動(dòng)關(guān)閉其輸出來斷開與總線的聯(lián)系,保證了總線上其他節(jié)點(diǎn)的正常操作。

      (3)完善的錯(cuò)誤監(jiān)測機(jī)制。采用短幀結(jié)構(gòu),每1幀的有效字節(jié)數(shù)為8個(gè),短幀傳輸時(shí)間短,受干擾概率低;每幀信息都有CRC校驗(yàn)及其他檢錯(cuò)措施,保證了數(shù)據(jù)的出錯(cuò)率極低。

      上述優(yōu)良特性使得CAN總線廣泛應(yīng)用于汽車工業(yè)、工業(yè)控制、航空工業(yè)、現(xiàn)代農(nóng)業(yè)、醫(yī)療器械及樓宇自動(dòng)化等領(lǐng)域,CAN總線已被公認(rèn)為最有前途的現(xiàn)場總線之一。本研究中的糧庫溫濕度分布監(jiān)測系統(tǒng)信息傳輸就是基于CAN總線串行通信網(wǎng)絡(luò)。

      MCGS(monitor and control generated system)是北京昆侖通態(tài)自動(dòng)化軟件科技有限公司開發(fā)的通用版組態(tài)軟件,它提供了監(jiān)控層的軟件平臺(tái)和開發(fā)環(huán)境,其靈活的組態(tài)方式,可使用戶快速構(gòu)建專業(yè)級(jí)的可視化監(jiān)控系統(tǒng)。為了提高糧情監(jiān)測系統(tǒng)的可靠性,增強(qiáng)糧情監(jiān)測功能,本研究設(shè)計(jì)了基于MCGS和CAN總線的糧庫溫濕度分布式監(jiān)測系統(tǒng)。

      1 系統(tǒng)總體方案

      為實(shí)現(xiàn)某大型糧庫多點(diǎn)溫濕度檢測目的,設(shè)計(jì)了一種基于CAN總線網(wǎng)絡(luò)的分布式監(jiān)測系統(tǒng)。布放于各測量現(xiàn)場的CAN節(jié)點(diǎn)結(jié)構(gòu)完全相同,主要由現(xiàn)場單片機(jī)、集成溫濕度傳感器、獨(dú)立CAN控制器、CAN總線驅(qū)動(dòng)器組成,現(xiàn)場單片機(jī)主要負(fù)責(zé)溫濕度數(shù)據(jù)的采集并將數(shù)據(jù)傳送至CAN總線。CAN/RS232通信轉(zhuǎn)換模塊主要包括管理單片機(jī)、獨(dú)立CAN控制器、CAN收發(fā)器、MAX232核心芯片,管理單片機(jī)主要負(fù)責(zé)CAN節(jié)點(diǎn)與上位PC機(jī)(以下簡稱上位機(jī))間的通信聯(lián)絡(luò)控制。

      上位機(jī)主要負(fù)責(zé)溫濕度數(shù)據(jù)的保存、顯示、管理以及采集的調(diào)度,其可視化監(jiān)控界面基于MCGS平臺(tái)開發(fā),上位機(jī)與管理單片機(jī)之間通過RS232串行口互換數(shù)據(jù),筆者通過MCGS平臺(tái)下的串口驅(qū)動(dòng)構(gòu)件開發(fā),可以實(shí)現(xiàn)組態(tài)軟件MCGS與管理單片機(jī)間的軟件通信功能。系統(tǒng)總體框圖如圖1所示。

      2 系統(tǒng)硬件設(shè)計(jì)

      系統(tǒng)中硬件電路設(shè)計(jì)主要包括單片機(jī)與溫濕度傳感器的接口電路設(shè)計(jì)、CAN總線接口電路設(shè)計(jì)、RS232接口電路設(shè)計(jì)。現(xiàn)場單片機(jī)和管理單片機(jī)都選用宏晶公司的增強(qiáng)型8位單片機(jī)STC89C52,RS232接口電路簡單通用,而傳感器接口電路和CAN總線接口電路設(shè)計(jì)如下。

      2.1 溫濕度采集電路

      系統(tǒng)中選用的AM2311是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,其敏感元件包括1個(gè)電容式感濕元件和1個(gè)高精度測溫元件,并與1個(gè)高性能8位微處理器相連接。成品化傳感器都通過嚴(yán)格的濕度校驗(yàn)室校準(zhǔn),校準(zhǔn)系數(shù)儲(chǔ)存于微處理器的存儲(chǔ)單元中,以供傳感器內(nèi)部在處理檢測信號(hào)時(shí)調(diào)用,測量精度高,抗干擾能力強(qiáng)。通信接口采用標(biāo)準(zhǔn)I2C接口模式,可直接掛接于I2C總線上,無需額外布線。

      AM2311具有4個(gè)引腳,與單片機(jī)接口連接方便。系統(tǒng)中AM2311與現(xiàn)場單片機(jī)的接口電路如圖2所示,SCL為串行時(shí)鐘引腳,與STC89C52單片機(jī)的P3.5管腳相連,用于相互間數(shù)據(jù)通信同步,SDA引腳內(nèi)部為三態(tài)雙向結(jié)構(gòu),與STC89C52的P3.4相連,用于讀、寫傳感器數(shù)據(jù)。

      2.2 CAN總線接口電路

      CAN總線接口是所有設(shè)備或其他網(wǎng)絡(luò)連接到CAN總線的橋梁,負(fù)責(zé)CAN協(xié)議的解釋與執(zhí)行,并為CAN節(jié)點(diǎn)中的微處理器提供CAN總線的狀態(tài)信息。

      本研究的CAN總線接口電路主要由SJA1000芯片和PCA82C250芯片構(gòu)成。SJA1000由NXP半導(dǎo)體公司推出,它是一種獨(dú)立CAN控制器,可以工作于BasicCAN和PeliCAN這2種協(xié)議,BasicCAN支持CAN2.0A協(xié)議,PeliCAN支持具有很多新特性的CAN 2.0B協(xié)議,位速率可達(dá)1 Mbit/s,擁有完善的錯(cuò)誤管理機(jī)制,能夠?qū)崿F(xiàn)CAN協(xié)議中最復(fù)雜的數(shù)據(jù)鏈路層功能,微處理器通過對(duì)SJA1000編程設(shè)置其工作方式,控制其工作狀態(tài),啟動(dòng)CAN報(bào)文的發(fā)送并對(duì)反饋的報(bào)文予以接收。PCA82C250是CAN控制器與CAN總線之間的接口芯片,它一方面為CAN控制器提供差分信號(hào)的接收功能,同時(shí)為CAN總線提供差分信號(hào)的發(fā)送功能,PCA82C250屬于高速CAN總線驅(qū)動(dòng)器[4]。

      CAN總線接口電路的原理圖設(shè)計(jì)見圖3。STC89C52單片機(jī)負(fù)責(zé)數(shù)據(jù)處理和SJA1000的初始化,并通過SJA1000的1組控制寄存器和1個(gè)RAM報(bào)文緩沖器實(shí)現(xiàn)數(shù)據(jù)收發(fā)功能。SJA1000的AD0~AD7連接到STC89C52的P0.0口,片選/CS端連接到STC89C52的P2.0,對(duì)應(yīng)的CPU片外存儲(chǔ)器基址為0xFE00,在此情況下STC89C52可以對(duì)SJA1000進(jìn)行訪問的地址范圍為0xFE00~0xFE31。SJA1000的/RD、/WR、ALE分別連接至STC89C52的相應(yīng)引腳,/INT接STC89C52的/INT1,STC89C52可在中斷服務(wù)程序中訪問SJA1000。SJA1000的復(fù)位端/RST為低電平有效,其接STC89C52的P2.7口。

      PCA82C250的CANH和CANL引腳分別通過1個(gè)5 Ω的限流電阻與CAN總線相連,以降低過流對(duì)PCA82C250的影響,CANH、CANL與地之間各自連接了1個(gè)30 pF的小電容,以起到濾除CAN總線上高頻噪聲的作用。PCA82C250的RS端通過47 kΩ電阻接地,使其工作于斜率控制方式。

      3 系統(tǒng)軟件設(shè)計(jì)

      軟件設(shè)計(jì)主要包括溫濕度數(shù)據(jù)采集、CAN總線通信、MCGS串口驅(qū)動(dòng)以及上位機(jī)組態(tài)等。CAN總線通信程序和MCGS串口驅(qū)動(dòng)程序是本系統(tǒng)軟件設(shè)計(jì)中的核心與關(guān)鍵,設(shè)計(jì)思路如下。

      3.1 CAN總線報(bào)文收/發(fā)程序

      CAN總線通信程序設(shè)計(jì)包括CAN節(jié)點(diǎn)初始化、CAN總線報(bào)文發(fā)送程序設(shè)計(jì)和CAN總線報(bào)文接收程序設(shè)計(jì)。CAN通信前首先需要對(duì)SJA1000進(jìn)行初始化參數(shù)設(shè)置,與初始化有關(guān)的寄存器有:總線定時(shí)寄存器BTR、中斷使能寄存器IER、時(shí)鐘分頻寄存器CDR、輸出控制寄存器OCR。CAN初始化只能在復(fù)位模式下進(jìn)行。初始化完成后,CAN控制器就可以設(shè)置進(jìn)入工作模式,執(zhí)行正常的通信任務(wù),需要用到SJA1000的命令寄存器、狀態(tài)寄存器、中斷寄存器、接收緩沖區(qū)、發(fā)送緩沖區(qū)等。CAN總線的通信任務(wù)程序包括報(bào)文發(fā)送子程序及報(bào)文中斷接收子程序[5]。

      為使程序結(jié)構(gòu)緊湊,CAN總線通信軟件設(shè)計(jì)中定義了1個(gè)結(jié)構(gòu)體struCAN_Comm,其成員變量有:報(bào)文ID、報(bào)文性質(zhì)(遠(yuǎn)程幀或數(shù)據(jù)幀)、報(bào)文長度、報(bào)文類型(擴(kuò)展幀或標(biāo)準(zhǔn)幀)。根據(jù)輸入?yún)?shù)配置該結(jié)構(gòu)體,是發(fā)送子程序的主要任務(wù)。在向SJA1000發(fā)送報(bào)文之前,首先需要判斷其是否正在接收數(shù)據(jù)、上次發(fā)送是否成功以及發(fā)送緩沖器是否鎖定等,以保證數(shù)據(jù)發(fā)送的可靠性[5]。填充報(bào)文結(jié)構(gòu)體是中斷接收子程序的主要任務(wù),為防止干擾引起錯(cuò)誤中斷,需要在進(jìn)入中斷服務(wù)程序后先判斷接收緩沖區(qū)是否有數(shù)據(jù)。報(bào)文發(fā)送和報(bào)文接收的程序流程分別如圖4和圖5所示。

      3.2 MCGS串口驅(qū)動(dòng)構(gòu)件開發(fā)

      目前,MCGS串口驅(qū)動(dòng)構(gòu)件開發(fā)有2種途徑,一種是MCGS軟件廠商提供了1套開放的、可擴(kuò)充的接口規(guī)范和配套的高級(jí)開發(fā)工具包,允許用戶根據(jù)自己的需要來開發(fā)設(shè)備驅(qū)動(dòng)構(gòu)件,另一種提供配套的MCGS腳本驅(qū)動(dòng)開發(fā)工具實(shí)現(xiàn)用戶個(gè)性化開發(fā)。腳本驅(qū)動(dòng)開發(fā)屏蔽了大量技術(shù)細(xì)節(jié)且步驟標(biāo)準(zhǔn),因此本研究的MCGS串口驅(qū)動(dòng)構(gòu)件開發(fā)采用了第2種途徑,具體開發(fā)內(nèi)容涉及設(shè)備屬性定義、設(shè)備通道添加、設(shè)備命令編寫和設(shè)備腳本代碼編輯。

      設(shè)備屬性定義了串口驅(qū)動(dòng)構(gòu)件添加到MCGS通用串口父設(shè)備后顯示的屬性,包括設(shè)備名稱、注釋、數(shù)據(jù)采樣周期等參數(shù),此處選用默認(rèn)參數(shù)。設(shè)備通道是現(xiàn)場設(shè)備與MCGS實(shí)時(shí)數(shù)據(jù)庫中的數(shù)據(jù)對(duì)象間信息溝通的橋梁。設(shè)備命令為現(xiàn)場設(shè)備與MCGS系統(tǒng)之間的方法接口,它利用MCGS腳本開發(fā)環(huán)境下提供的強(qiáng)大庫函數(shù),通過編程設(shè)置可以方便地實(shí)現(xiàn)數(shù)據(jù)解析、數(shù)據(jù)處理、與MCGS系統(tǒng)的數(shù)據(jù)交換等功能,設(shè)備命令類似于系統(tǒng)的功能子函數(shù)[6-7]。設(shè)備腳本包括采集腳本、單通道寫腳本、初始化腳本、退出腳本等。

      為保證數(shù)據(jù)通信正常,本研究串口驅(qū)動(dòng)構(gòu)件的開發(fā)采用ACSⅡ碼通訊協(xié)議(字符型協(xié)議),其格式為:“@” +“xx” + “command”?!癅”是幀頭,長1個(gè)字符;“xx”是設(shè)備地址,固定長2個(gè)字符;“command”表示設(shè)備命令,由MCGS系統(tǒng)關(guān)鍵字確定。下面以1#CAN節(jié)點(diǎn)的溫濕度檢測為例,給出其采集腳本代碼。

      4 系統(tǒng)調(diào)試與運(yùn)行

      管理單片機(jī)通過串口和上位機(jī)交換數(shù)據(jù),其外接晶振頻率為11.059 2 MHz,在單片機(jī)的初始化程序中編寫語句TH1=0xFD、SMOD=0,可獲得9 600 bps的通信波特率,該波特率誤差率恰好為0,串口通信的可靠性大大提高[8]?;贛CGS腳本驅(qū)動(dòng)開發(fā)工具設(shè)計(jì)好的程序以mdr格式保存,將此文件拷貝到D:\MCGS\Program\Drivers的目錄下,通過在MCGS組態(tài)環(huán)境下的設(shè)備窗口中添加該串口驅(qū)動(dòng)構(gòu)件,能夠?qū)崿F(xiàn)MCGS與管理單片機(jī)之間的通信。

      在MCGS組態(tài)環(huán)境中新建“糧庫溫濕度監(jiān)測系統(tǒng).MCG”工程,按照糧庫溫濕度監(jiān)測系統(tǒng)功能要求,遵循通用版組態(tài)軟件MCGS的組態(tài)方法,完成系統(tǒng)上位機(jī)可視化監(jiān)控界面的開發(fā)工作。所有組態(tài)工作完成后,按“F5”鍵進(jìn)入MCGS運(yùn)行環(huán)境,系統(tǒng)上位機(jī)運(yùn)行主界面如圖6所示。

      5 結(jié)論

      設(shè)計(jì)的糧庫溫濕度監(jiān)測系統(tǒng)采用分布式結(jié)構(gòu),通過布置于現(xiàn)場的智能CAN節(jié)點(diǎn),可以實(shí)現(xiàn)糧庫不同監(jiān)測點(diǎn)溫濕度數(shù)據(jù)的采集與變送??紤]到目前商用PC機(jī)一般不具備CAN通信接口,設(shè)計(jì)了1個(gè)CAN/RS232通信轉(zhuǎn)換模塊,用以實(shí)現(xiàn)CAN總線數(shù)據(jù)和RS232串口數(shù)據(jù)間的互換[9]。上位機(jī)統(tǒng)一監(jiān)測界面基于MCGS平臺(tái)開發(fā),人機(jī)交互友好。MCGS與底層單片機(jī)之間的通信驅(qū)動(dòng)程序需要用戶自己開發(fā),為此,筆者基于MCGS腳本驅(qū)動(dòng)開發(fā)工具開發(fā)了MCGS串口驅(qū)動(dòng)構(gòu)件,現(xiàn)場調(diào)試表明,MCGS與單片機(jī)之間數(shù)據(jù)通信穩(wěn)定可靠,實(shí)時(shí)性高。

      參考文獻(xiàn):

      [1]王永志,劉媛媛. 大型糧庫的溫濕度監(jiān)測報(bào)警控制系統(tǒng)[J]. 農(nóng)機(jī)化研究,2008(8):167-169.

      [2]袁 江,曹金偉,邱自學(xué),等. 基于WSN的糧庫溫濕度無線監(jiān)測系統(tǒng)[J]. 測控技術(shù),2012,31(4):77-81.

      [3]饒運(yùn)濤,鄒繼勇,王進(jìn)宏,等. 現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M]. 北京:北京航空航天大學(xué)出版社,2007.

      [4]盧 超. 基于CAN總線分布式礦井溫濕度監(jiān)測系統(tǒng)研發(fā)[J]. 煤炭科學(xué)技術(shù),2011,39(9):94-99.

      [5]鄧德源,王成棟,苗 強(qiáng). 基于CAN總線的溫濕度在線監(jiān)測系統(tǒng)設(shè)計(jì)[J]. 儀表技術(shù)與傳感器,2012(12):40-42.

      [6]黎志剛,王俊元,劉 波. 基于MCGS的SMC電動(dòng)執(zhí)行器控制方法研究[J]. 制造業(yè)自動(dòng)化,2014,36(7):16-18.

      [7]朱 林,李蘭云. 嵌入式系統(tǒng)在稀土萃取流量控制中的應(yīng)用[J]. 自動(dòng)化儀表,2013,34(3):34-37.

      [8]包建華. 基于MCGS的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)測量與控制,2012,20(3):702-704.

      [9]王 強(qiáng),張建喜. RS232通信網(wǎng)絡(luò)與CAN總線通信網(wǎng)絡(luò)互聯(lián)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,2010,36(9):158-160.

      猜你喜歡
      CAN總線糧庫驅(qū)動(dòng)程序
      糧庫竣工
      糧庫里的機(jī)器人
      我為抗日政府管糧庫
      論網(wǎng)絡(luò)通信技術(shù)
      基于嵌入式的汽車輔助制動(dòng)系統(tǒng)研究
      CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
      基于CANoe的J1939協(xié)議在ECU通信中的應(yīng)用
      科技視界(2016年18期)2016-11-03 22:53:48
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      南涧| 东兰县| 会昌县| 建德市| 贵阳市| 雷山县| 襄樊市| 密云县| 桂东县| 富蕴县| 惠来县| 宁津县| 丹阳市| 江永县| 惠水县| 上思县| 安吉县| 库伦旗| 新闻| 拉萨市| 靖西县| 科尔| 麦盖提县| 格尔木市| 定安县| 天水市| 胶州市| 昭平县| 柏乡县| 七台河市| 永州市| 新泰市| 泾源县| 昌乐县| 南岸区| 丰县| 宜君县| 克什克腾旗| 乌鲁木齐县| 七台河市| 辰溪县|