??? 摘? 要: 針對(duì)離散生產(chǎn)線的特點(diǎn)及監(jiān)控系統(tǒng)的要求,研制了一種適用于該生產(chǎn)線的集中監(jiān)控系統(tǒng)。重點(diǎn)介紹了該系統(tǒng)的體系結(jié)構(gòu)、硬件電路及其軟件實(shí)現(xiàn),實(shí)際應(yīng)用效果較好。?
??? 關(guān)鍵詞: 遠(yuǎn)程數(shù)據(jù)采集" title="數(shù)據(jù)采集">數(shù)據(jù)采集? 單片機(jī)? 無(wú)線傳輸
?
??? 離散生產(chǎn)線是指由離散工藝過(guò)程組成的生產(chǎn)線。它所生產(chǎn)的產(chǎn)品在結(jié)構(gòu)上由零部件組成,生產(chǎn)過(guò)程中的主要任務(wù)就是將原材料加工成零件,再由零件組裝成部件,最后總裝成產(chǎn)品。為了提高離散生產(chǎn)線的生產(chǎn)和管理水平,對(duì)生產(chǎn)線上的重要參數(shù)和加工設(shè)備本身的運(yùn)行狀況等進(jìn)行監(jiān)控十分重要。目前,主要采用人工實(shí)時(shí)監(jiān)視。即由人記錄生產(chǎn)線上每臺(tái)設(shè)備運(yùn)行狀況,由人工抽樣檢查產(chǎn)品質(zhì)量;然后以這些數(shù)據(jù)為依據(jù),對(duì)設(shè)備進(jìn)行管理和維護(hù)。但這種方式觀測(cè)精度低、工作強(qiáng)度大、數(shù)據(jù)的維護(hù)和分析困難,遠(yuǎn)不能滿足目前市場(chǎng)激烈競(jìng)爭(zhēng)的需要。為此,筆者直接利用計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)基于網(wǎng)絡(luò)的設(shè)備遠(yuǎn)程監(jiān)控,形成全球化制造的企業(yè)。?
1 系統(tǒng)總體結(jié)構(gòu)?
??? 設(shè)備遠(yuǎn)程實(shí)時(shí)監(jiān)控系統(tǒng)的體系結(jié)構(gòu)如圖1所示。該系統(tǒng)采用了瀏覽器/服務(wù)器體系結(jié)構(gòu)。現(xiàn)場(chǎng)設(shè)備監(jiān)測(cè)系統(tǒng)是這一系統(tǒng)的起點(diǎn),主要完成對(duì)設(shè)備的實(shí)時(shí)監(jiān)測(cè)和對(duì)監(jiān)測(cè)信息的采集、存儲(chǔ)和處理。監(jiān)測(cè)信息經(jīng)過(guò)處理后可進(jìn)行遠(yuǎn)距離網(wǎng)絡(luò)傳輸。遠(yuǎn)程監(jiān)測(cè)中心對(duì)異地傳輸?shù)谋O(jiān)測(cè)信息進(jìn)行處理、分析,綜合各專家意見(jiàn),得出結(jié)果并給出對(duì)策,通過(guò)網(wǎng)絡(luò)反饋至現(xiàn)場(chǎng)進(jìn)行控制。在網(wǎng)絡(luò)設(shè)計(jì)方案中,利用企業(yè)級(jí)的交換機(jī)將各個(gè)生產(chǎn)車間的現(xiàn)場(chǎng)設(shè)備監(jiān)測(cè)系統(tǒng)子網(wǎng)連接起來(lái),然后通過(guò)路由器連接到Internet,保證了企業(yè)網(wǎng)絡(luò)系統(tǒng)的安全性。?
?
?
??? 現(xiàn)場(chǎng)設(shè)備監(jiān)測(cè)系統(tǒng)包括傳感器、數(shù)據(jù)采集子系統(tǒng)和PC機(jī)。主要對(duì)加工設(shè)備進(jìn)行各種信號(hào)的采集、變換、顯示和與網(wǎng)絡(luò)連接等功能。現(xiàn)場(chǎng)監(jiān)測(cè)系統(tǒng)具有一定的信號(hào)分析和處理能力,而且可以擴(kuò)充傳感器測(cè)量單元,對(duì)加工設(shè)備進(jìn)行多個(gè)傳感器的多點(diǎn)" title="多點(diǎn)">多點(diǎn)、多信號(hào)采集和分析。其中,數(shù)據(jù)采集子系統(tǒng)主要包括:數(shù)據(jù)采集單片機(jī)分機(jī)、主機(jī)和無(wú)線數(shù)據(jù)傳輸模塊、PC接口。結(jié)構(gòu)方框圖如圖2所示。采用點(diǎn)對(duì)多點(diǎn)的無(wú)線雙工工作方式。即當(dāng)主機(jī)發(fā)出指定點(diǎn)采集數(shù)據(jù)的命令后,主機(jī)即轉(zhuǎn)換接收狀態(tài);指定點(diǎn)的分機(jī)接收到命令后,進(jìn)行數(shù)據(jù)采集,并將結(jié)果和分機(jī)的編號(hào)上傳給主機(jī)。?
?
?
2 采集系統(tǒng)的硬件設(shè)計(jì)?
2.1 主機(jī)的電路原理圖?
??? 在電路設(shè)計(jì)過(guò)程中,為了增加存儲(chǔ)容量,增設(shè)了一個(gè)TMS29F040芯片。該芯片提供了8個(gè)獨(dú)立的64KB模塊,通過(guò)標(biāo)準(zhǔn)的微控制器將JEDEC標(biāo)準(zhǔn)命令寫入FLASH命令寄存器5555H和2AAAH,地址空間為000000H~07FFFFH。為了使人機(jī)接口方便直觀,電路中采用點(diǎn)陣圖形方式的LCD。該LCD內(nèi)置了T6963C控制器,可以與單片機(jī)方便接口。C/D是指令/數(shù)據(jù)選擇控制,指令訪問(wèn)地址為0A00001H,數(shù)據(jù)訪問(wèn)地址為0A00000H。另外,通過(guò)PS2000實(shí)現(xiàn)MCU應(yīng)用系統(tǒng)與基于PC機(jī)平臺(tái)的網(wǎng)關(guān)emGateway接口。同時(shí),為便于主機(jī)與分機(jī)實(shí)現(xiàn)點(diǎn)對(duì)多點(diǎn)的信息傳輸" title="信息傳輸">信息傳輸,系統(tǒng)采用了硬件編碼的方式,使用UM3758編碼器。每個(gè)分機(jī)給定固定編碼,主機(jī)發(fā)射一個(gè)碼值,對(duì)應(yīng)碼值的分機(jī)實(shí)現(xiàn)信息傳輸。系統(tǒng)采用了無(wú)線發(fā)射與接收模塊nRF401,實(shí)現(xiàn)無(wú)線信息傳輸。主機(jī)的電路原理圖" title="電路原理圖">電路原理圖如圖3所示。?
?
?
2.2 分機(jī)電路原理圖?
??? 為了采集現(xiàn)場(chǎng)信號(hào),利用前向通道對(duì)其微弱信號(hào)調(diào)理(包括阻抗匹配、濾波、直流隔離、放大等功能)。該部件采用了2片AD620和1片TLC14集成電路,分別實(shí)現(xiàn)信號(hào)放大和濾波功能。然后,由ADμC812芯片的ALE腳進(jìn)入系統(tǒng)。為了與主機(jī)進(jìn)行信號(hào)通信,在分機(jī)中同樣也采用了硬件編碼方式。利用UM3758編碼器,每個(gè)分機(jī)給定固定編碼,主機(jī)發(fā)射一個(gè)碼值,對(duì)應(yīng)碼值的分機(jī)實(shí)現(xiàn)信息傳輸。同樣,系統(tǒng)采用了無(wú)線發(fā)射與接收模塊nRF401,實(shí)現(xiàn)了與主機(jī)無(wú)線信息傳輸,分機(jī)的電路原理圖如圖4所示。?
?
?
3 采集系統(tǒng)中主機(jī)與從機(jī)信息傳輸軟件設(shè)計(jì)?
??? 在本系統(tǒng)中,主機(jī)可以隨時(shí)呼叫任一分機(jī),發(fā)送命令;分機(jī)也可以隨時(shí)呼叫主機(jī),向主機(jī)提出請(qǐng)求。分機(jī)之間不能直接通信,只能通過(guò)主機(jī)交換信息。主機(jī)呼叫分機(jī)時(shí)采用中斷方式,只需調(diào)用主呼分機(jī)的子程序;分機(jī)程序以中斷服務(wù)形式給出,其入口地址為串行口中斷入口地址0023H。這樣,當(dāng)分機(jī)接收到的地址與本機(jī)地址符合時(shí)進(jìn)入中斷服務(wù)程序,從而實(shí)現(xiàn)與主機(jī)相連。分機(jī)呼叫主機(jī)時(shí),只需向主機(jī)發(fā)送一約定的控制字,主機(jī)得到此控制字即回呼該分機(jī),從而實(shí)現(xiàn)與該分機(jī)連接。?
3.1 主機(jī)發(fā)送分機(jī)接收通信方式?
??? 圖5(a)、(b)分別為主機(jī)發(fā)送、分機(jī)接收時(shí)主機(jī)與分機(jī)軟件流程圖。主機(jī)作為發(fā)送者,向作為接收者的分機(jī)發(fā)送數(shù)據(jù)。在這種模式下,數(shù)據(jù)傳送方向不變,即主機(jī)先發(fā)送地址繼而發(fā)送數(shù)據(jù)。其中,主機(jī)軟件:(1)當(dāng)I2C接口的特殊功能寄存器設(shè)置完成后,主機(jī)發(fā)送一個(gè)START位和分機(jī)地址到SDATA線上。在這個(gè)模式下R/W狀態(tài)位被復(fù)位。如果主機(jī)沒(méi)有收到分機(jī)的確認(rèn),就發(fā)送一個(gè)STOP位,錯(cuò)誤位被置位" title="置位">置位而傳送中止。(2)如果從機(jī)進(jìn)行了確認(rèn),主機(jī)將發(fā)送預(yù)先寫在主機(jī)外部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)。每傳送一字節(jié),分機(jī)都必須發(fā)出確認(rèn)。收到確認(rèn)后,主機(jī)將發(fā)送下一個(gè)數(shù)據(jù)。任何時(shí)候如果分機(jī)沒(méi)能確認(rèn),主機(jī)就發(fā)送一個(gè)STOP位,錯(cuò)誤位被置位而傳送中止。(3)當(dāng)發(fā)送計(jì)數(shù)BYTECNT=0時(shí),就意味著最后一個(gè)要傳送的字節(jié)已被送出,主機(jī)將發(fā)送一個(gè)STOP位表示傳送結(jié)束。分機(jī)軟件:(1)當(dāng)I2C接口的特殊功能寄存器被設(shè)置好后,并且主機(jī)也發(fā)送了一個(gè)START位,分機(jī)等待著接收第一個(gè)數(shù)據(jù)字節(jié)(數(shù)據(jù)到達(dá)后將產(chǎn)生一個(gè)中斷)。一旦收到后,分機(jī)將該數(shù)據(jù)與自己的地址相比較;若匹配,分機(jī)發(fā)送一個(gè)確認(rèn)到SDATA線上,并將R/W狀態(tài)位置位后等待數(shù)據(jù)(數(shù)據(jù)到達(dá)將產(chǎn)生一個(gè)中斷)。(2)當(dāng)主機(jī)發(fā)出一個(gè)數(shù)據(jù)字節(jié),分機(jī)將它存入自己的內(nèi)部存儲(chǔ)器,發(fā)送確認(rèn)后,等待下一個(gè)數(shù)據(jù)字節(jié)(后續(xù)數(shù)據(jù)的到達(dá)將產(chǎn)生一個(gè)中斷)。(3)當(dāng)分機(jī)收到最后一個(gè)字節(jié),接收字節(jié)計(jì)數(shù)BYTECNT=0,此時(shí),分機(jī)等待STOP位。一旦收到STOP,立即結(jié)束通信。?
?
?
3.2 分機(jī)發(fā)送、主機(jī)接收通信方式?
??? 圖6(a)、(b)分別為分機(jī)發(fā)送、主機(jī)接收時(shí)主機(jī)與分機(jī)軟件流程圖。主機(jī)發(fā)送第一個(gè)字節(jié)后立即讀分機(jī)數(shù)據(jù),即主機(jī)先發(fā)送地址后接收后面的三個(gè)數(shù)據(jù)字節(jié)。其中,主機(jī)軟件:(1)當(dāng)I2C接口的特殊功能寄存器被設(shè)置好后,主機(jī)發(fā)送一個(gè)START位,然后發(fā)送分機(jī)地址到SDATA線上。在這個(gè)模式下R/W狀態(tài)位被復(fù)位。如果主機(jī)沒(méi)有收到分機(jī)的確認(rèn),就發(fā)送一個(gè)STOP位,錯(cuò)誤位被置位而傳送中止。(2)如果從機(jī)進(jìn)行了確認(rèn),主機(jī)等待第一個(gè)數(shù)據(jù)字節(jié)。一旦收到后,主機(jī)將它存入自己的內(nèi)部存儲(chǔ)器,向分機(jī)發(fā)出確認(rèn)后,等待下一個(gè)數(shù)據(jù)字節(jié)。(3)當(dāng)發(fā)送計(jì)數(shù)BYTECNT=0時(shí),就意味著最后一個(gè)要傳送的字節(jié)已被接收,主機(jī)將發(fā)送一個(gè)STOP位表示傳送結(jié)束。分機(jī)軟件:(1)當(dāng)I2C接口的特殊功能寄存器被設(shè)置好后,主機(jī)也發(fā)送一個(gè)START位,分機(jī)等待著接收第一個(gè)數(shù)據(jù)字節(jié)(數(shù)據(jù)到達(dá)后將產(chǎn)生一個(gè)中斷)。一旦收到后,分機(jī)將該數(shù)據(jù)與自己的地址相比較。若匹配,分機(jī)發(fā)送一個(gè)確認(rèn)到SDATA線上。(2)當(dāng)R/W狀態(tài)位置位,分機(jī)發(fā)送一個(gè)要傳送的字節(jié)。發(fā)出數(shù)據(jù)后,分機(jī)等待主機(jī)的確認(rèn)。每當(dāng)收到主機(jī)的確認(rèn),分機(jī)發(fā)送下一個(gè)數(shù)據(jù)然后再等待確認(rèn)。(3)當(dāng)發(fā)送字節(jié)計(jì)數(shù)BYTECNT=0,主機(jī)發(fā)送一個(gè)STOP位而不是確認(rèn),同時(shí)結(jié)束傳送。?
?
?
4 實(shí)驗(yàn)結(jié)果?
??? 利用上面建立的無(wú)線點(diǎn)對(duì)多點(diǎn)的遠(yuǎn)程在線數(shù)據(jù)采集系統(tǒng),對(duì)重慶世耀工貿(mào)有限公司摩托車生產(chǎn)廠的精密車床進(jìn)行振動(dòng)監(jiān)測(cè)。在進(jìn)行數(shù)據(jù)采集時(shí),點(diǎn)擊桌面上無(wú)線數(shù)據(jù)采集系統(tǒng),即可啟動(dòng)程序。然后,點(diǎn)擊端口設(shè)置按扭,彈出端口設(shè)置對(duì)話框,選擇與PC主機(jī)無(wú)線傳收模塊相連接的RS232串口、波特率、工作距離、測(cè)量參數(shù)、存儲(chǔ)器的大小等參數(shù)后,點(diǎn)擊確定,回到主界面。點(diǎn)擊打開(kāi)模塊按扭,若系統(tǒng)工作正常,則顯示模塊正在工作;若系統(tǒng)工作不正常,則顯示系統(tǒng)未工作;在系統(tǒng)正常工作情況下,點(diǎn)擊握手設(shè)置按鈕,設(shè)置與主機(jī)通信的分機(jī)臺(tái)號(hào)、采集頻率與通道數(shù)等(每設(shè)置完一臺(tái)分機(jī)參數(shù)后,就點(diǎn)擊握手);在各臺(tái)分機(jī)與主機(jī)之間握手成功后,點(diǎn)擊啟動(dòng)按鈕,程序發(fā)送啟動(dòng)命令,開(kāi)始進(jìn)行數(shù)據(jù)采集。在無(wú)線傳輸完后,系統(tǒng)將自動(dòng)保存數(shù)據(jù)文件??赏ㄟ^(guò)點(diǎn)擊打開(kāi)顯示按鈕,將已保存的數(shù)據(jù)按圖形方式顯示于圖形框中。圖7所示為某精密車床的振動(dòng)檢測(cè)的時(shí)域信號(hào)與系統(tǒng)操作界面圖。?
?
?
??? 隨著檢測(cè)技術(shù)的不斷發(fā)展,自動(dòng)化儀表的進(jìn)步,現(xiàn)代檢測(cè)技術(shù)越來(lái)越多地應(yīng)用于傳統(tǒng)的檢測(cè)系統(tǒng)中。該系統(tǒng)實(shí)現(xiàn)了無(wú)線點(diǎn)對(duì)多點(diǎn)數(shù)據(jù)采集與信息傳輸,采集精度高,數(shù)據(jù)傳輸抗干擾能力強(qiáng),克服了現(xiàn)場(chǎng)拉電纜線等缺點(diǎn),便于野外作業(yè)。實(shí)際應(yīng)用表明,該方案簡(jiǎn)便、有效,值得推廣應(yīng)用。?
參考文獻(xiàn)?
1 劉書(shū)明,馮小平.數(shù)據(jù)采集系統(tǒng)芯片ADμC812原理與應(yīng)用.西安:西安電子科技大學(xué)出版社,2000?
2 于英民. 計(jì)算機(jī)接口技術(shù). 北京:電子工業(yè)出版社,1996?
3 胡 峪,劉 靜.VC++高級(jí)編程技巧與示例.西安:西安電子科技大學(xué)出版社,2001