蔣成清 王曉宇
【摘要】工業(yè)現(xiàn)場(chǎng)上經(jīng)常需要監(jiān)控現(xiàn)場(chǎng)的工作環(huán)境和設(shè)備的運(yùn)行狀態(tài),所以需要對(duì)現(xiàn)場(chǎng)的溫度、濕度和設(shè)備的電壓、電流等參數(shù)進(jìn)行采集,并傳送給上位機(jī)監(jiān)測(cè)。本文提出了一種數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)和實(shí)施方案,采用STM32作為微處理器,標(biāo)準(zhǔn)DeviceNet協(xié)議作為通信規(guī)約,實(shí)現(xiàn)數(shù)據(jù)采集的網(wǎng)絡(luò)化和智能化。
【關(guān)鍵詞】數(shù)據(jù)采集;STM32;DeviceNet協(xié)議;DN1022
1.引言
隨著我國(guó)工業(yè)化水平不斷提高,工業(yè)現(xiàn)場(chǎng)需要監(jiān)控現(xiàn)場(chǎng)的工作環(huán)境和設(shè)備的運(yùn)行狀況,包括測(cè)量現(xiàn)場(chǎng)的溫度、濕度和設(shè)備的電壓、電流等參數(shù)。傳統(tǒng)的數(shù)據(jù)采集多采用變送器,但是,變送器采集的數(shù)據(jù)采用模擬量傳輸,抗干擾能力較差,并且采集數(shù)據(jù)單一,不能完成多參數(shù)采集,不易實(shí)現(xiàn)網(wǎng)絡(luò)化。如何提高采集數(shù)據(jù)抗干擾能力,并且完成多參數(shù)采集等問(wèn)題有待完善。本設(shè)計(jì)采用stm32作為CPU,DeviceNet作為通信協(xié)議,接收并處理DeviceNet主站下達(dá)的查詢命令,組織相應(yīng)數(shù)據(jù)上報(bào)給DeviceNet主站,有多路的輸入和多路的輸出。
2.總體設(shè)計(jì)方案
從功能上講,本設(shè)計(jì)可以分為兩大部分:即工業(yè)現(xiàn)場(chǎng)信號(hào)采集電路和工業(yè)現(xiàn)場(chǎng)控制電路。其中工業(yè)現(xiàn)場(chǎng)信號(hào)采集電路完成對(duì)數(shù)字信號(hào)的采集,再由stm32對(duì)數(shù)據(jù)進(jìn)行處理,通過(guò)標(biāo)準(zhǔn)的DeviceNet協(xié)議與DeviceNet主站通信。工業(yè)現(xiàn)場(chǎng)控制電路接收并處理DeviceNet主站下達(dá)的控制命令,組織相應(yīng)數(shù)據(jù)實(shí)現(xiàn)對(duì)工業(yè)現(xiàn)場(chǎng)的控制。系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)的方框圖
2.1 數(shù)據(jù)采集電路
數(shù)據(jù)采集電路實(shí)現(xiàn)了開(kāi)關(guān)量的實(shí)時(shí)采集功能。微處理器STM32f103R8的I/O口可以配置為開(kāi)關(guān)量輸入端口,開(kāi)關(guān)量輸入信號(hào)由I端輸入,通過(guò)光電耦合器PC817與微處理器I/O口相連。微處理器對(duì)輸入端進(jìn)行狀態(tài)查詢,讀取狀態(tài)信息。光電耦合器PC817在作用是實(shí)現(xiàn)現(xiàn)場(chǎng)開(kāi)關(guān)量與微處理器間的電氣隔離,提高電絕緣和抗干擾能力。
2.2 協(xié)議芯片接口電路
DN1022芯片具有內(nèi)置的CAN口和DeviceNet處理引擎,內(nèi)置DeviceNet Group 2 Only Slave從站協(xié)議棧,具有高速串行口和配置口。微處理器可通過(guò)串口和DN1022通信。其集成度高、封裝簡(jiǎn)單,滿足一般的DeviceNet從節(jié)點(diǎn)功能要求。
(1)工作狀態(tài)配置。DN1022芯片初始化時(shí)會(huì)檢測(cè)配置口線CFG1的狀態(tài),根據(jù)狀態(tài)的不同,決定芯片的工作狀態(tài)。如果CFG1=0,芯片處于配置狀態(tài);CFG1=1,芯片處于工作狀態(tài)。
(2)I/O數(shù)據(jù)交換狀態(tài)。DN1022內(nèi)部有一個(gè)I/O數(shù)據(jù)緩沖區(qū),DeviceNet主站與DN1022之間的數(shù)據(jù)交互是異步進(jìn)行的。
在工作狀態(tài),stm32可以與DN1022進(jìn)行I/O數(shù)據(jù)交換及參數(shù)讀寫(xiě)。如圖3,DN1022芯片的RXD、TXD為串行口信號(hào)接收和發(fā)送引腳,分別接用戶的處理器的TXD及RXD。高速串口最高波特率可達(dá)115.2Kbps,可以滿足與DeviceNet相匹配的速度。
圖2 DN1022接口電路
2.3 輸出控制電路
當(dāng)接收到DeviceNet主站發(fā)送的命令時(shí),微處理器stm32對(duì)數(shù)據(jù)進(jìn)行處理,根據(jù)主站要求指示相應(yīng)的繼電器閉合,三極管飽和導(dǎo)通,相應(yīng)指示燈亮,實(shí)現(xiàn)了對(duì)開(kāi)關(guān)量的控制。光電耦合器PC817實(shí)現(xiàn)電氣隔離作用。
圖3 輸出控制電路
2.4 撥碼開(kāi)關(guān)電路
撥碼開(kāi)關(guān)電路分為從站地址的選擇和波特率的選擇兩種,并且要求在配置狀態(tài)下才能設(shè)置。從站地址的選擇通過(guò)撥碼開(kāi)關(guān)中的前六位A1—A6設(shè)置從站地址,采用8421BCD編碼規(guī)則配置從站地址,設(shè)置范圍0-63。波特率的選擇有125Kbps、250Kbps、500 Kbps和自動(dòng)波特率設(shè)置4種可選。通過(guò)撥碼開(kāi)關(guān)中的后兩位A7和A8選擇波特率,采用8421BCD編碼規(guī)則配置波特率。
3.系統(tǒng)軟件設(shè)計(jì)
本設(shè)計(jì)由C語(yǔ)言編程實(shí)現(xiàn),完成對(duì)工業(yè)現(xiàn)場(chǎng)信號(hào)進(jìn)行采集,組織相應(yīng)數(shù)據(jù)通過(guò)DeviceNet協(xié)議傳給主站;并且接收處理DeviceNet主站發(fā)出的命令,控制對(duì)輸出繼電器做出閉合或釋放動(dòng)作,以實(shí)現(xiàn)開(kāi)關(guān)量信號(hào)的輸出。本設(shè)計(jì)中采用Keil uVision4為開(kāi)發(fā)平臺(tái),編寫(xiě)了主程序,數(shù)據(jù)采集及處理程序,串口通信程序。上電后,CPU首先對(duì)DN1022進(jìn)行配置,需要配置的參數(shù)有地址、波特率、Network Input連接長(zhǎng)度等。然后進(jìn)行I/O數(shù)據(jù)交換。DeviceNet主站與DN1022之間的數(shù)據(jù)交互是異步進(jìn)行的。
表1 DN1022命令表
命令號(hào) 命令功能
0x1 設(shè)定身份識(shí)別信息(配置狀態(tài))
0x2 設(shè)定連接信息(配置狀態(tài))
0x5 I/O數(shù)據(jù)傳輸(運(yùn)行狀態(tài))
0x6 I/O數(shù)據(jù)傳輸,并讀取Device Net網(wǎng)絡(luò)狀態(tài)(運(yùn)行狀態(tài))
0xE 讀取參數(shù)(運(yùn)行狀態(tài))
0x10 設(shè)置參數(shù)(運(yùn)行狀態(tài))
0x20 設(shè)定參數(shù)信息參數(shù)(配置狀態(tài))
表1為協(xié)議芯片DN1022的命令表,本設(shè)計(jì)使用了1號(hào)、2號(hào)以及5號(hào)命令。1號(hào)命令是配置命令,包含設(shè)備號(hào),設(shè)備許可號(hào),版本號(hào),產(chǎn)品名稱等。當(dāng)發(fā)送完一幀命令后,DN1022返回一個(gè)響應(yīng)幀,0x81是正確響應(yīng)幀,0xE0和0x2是錯(cuò)誤響應(yīng)幀。2號(hào)命令是配置命令,包括地址、波特率、輸入及輸出長(zhǎng)度。地址和波特率是通過(guò)撥碼開(kāi)關(guān)讀取的,由于輸入和輸出為4組,所以設(shè)置為各1個(gè)字節(jié)。正確響應(yīng)幀為0x82,0x01和0xff是錯(cuò)誤響應(yīng)幀。5號(hào)命令為運(yùn)行命令,完成DN1022與stm32之間的數(shù)據(jù)通信,正確響應(yīng)幀為0x85。圖6為整個(gè)系統(tǒng)設(shè)計(jì)的軟件流程圖。
圖4 軟件流程圖
4.結(jié)論
本設(shè)計(jì)采用stm32作為CPU,對(duì)工業(yè)現(xiàn)場(chǎng)信號(hào)進(jìn)行多路采集,采集的信息同時(shí)性好,通過(guò)devicenet協(xié)議與PLC實(shí)時(shí)通信,傳輸數(shù)據(jù)的實(shí)時(shí)性與可靠性顯著提高,完全能滿足整個(gè)系統(tǒng)的運(yùn)行,通用性好,具有較好的應(yīng)用價(jià)值和市場(chǎng)前景。
參考文獻(xiàn)
[1]張旭,亓學(xué)廣.基于STM32電力數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].電子測(cè)量技術(shù),2010,11:90-92.
[2]DN1022使用手冊(cè)[S].上海泗博自動(dòng)化技術(shù)有限公司,2013.
[3]張戟,程旻,謝劍英.基于現(xiàn)場(chǎng)總線DeviceNet的智能設(shè)備開(kāi)發(fā)指南,2004.
[4]韓芝俠,淡濤.熱釋電紅外傳感器的應(yīng)用[J].陜西工學(xué)院學(xué)報(bào),2003(3):148-150.
[5]程曉輝,董愛(ài)華,舒國(guó)汀,方建安.I/O模塊的DeviceNet接口設(shè)計(jì)[J].東華大學(xué)學(xué)報(bào)(自然科學(xué)版),2005(02).
作者簡(jiǎn)介:蔣成清(1993—),安徽宿州人,大學(xué)本科,現(xiàn)就讀于遼寧科技大學(xué)。
通訊作者:王曉宇(1978—),遼寧鞍山人,碩士,講師,主要研究方向:信號(hào)與系統(tǒng)。