新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式WinCE的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)

基于嵌入式WinCE的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)

作者: 時(shí)間:2009-12-30 來源:網(wǎng)絡(luò) 收藏

4 模塊設(shè)計(jì)

模塊是整個(gè)器軟件設(shè)計(jì)的核心部分,可以采用與設(shè)備連接的PLC、 單片機(jī)、工控機(jī)以及人機(jī)交互界面等,完成生產(chǎn)設(shè)備信息、環(huán)境信息及生產(chǎn)操作人員信息的 采集。在本文開發(fā)的中,主要是通過PLC 采集設(shè)備信息,通過單片機(jī)采集溫度、濕度、 壓力傳感器的環(huán)境信息,通過 采集器的人機(jī)交互界面直接采集生產(chǎn)現(xiàn)場 人員信息。

通過 PLC 采集設(shè)備信息時(shí),數(shù)據(jù)采集器通過RS-232 接口以Host Link 通信協(xié)議與PLC 通訊。Host Link 通信協(xié)議采用“主從總線”方式通信,根據(jù)主動(dòng)權(quán)的不同有兩種實(shí)現(xiàn)形式, 一種是通信主動(dòng)權(quán)在上位機(jī)( 的采集器)一方,即方式一;另一種是主動(dòng)權(quán)在 下位機(jī)(PLC),即方式二。根據(jù)傳輸信號(hào)的性質(zhì)不同,兩種方式可以結(jié)合使用。針對本系 統(tǒng)的特點(diǎn),對需要用戶動(dòng)態(tài)配置的信號(hào),如設(shè)備當(dāng)日產(chǎn)量、運(yùn)行時(shí)間等,采用方式一;對于 經(jīng)常需要監(jiān)控的信號(hào),如機(jī)器的運(yùn)行溫度、轉(zhuǎn)速等,采用方式二。方式二的優(yōu)點(diǎn)在于,僅當(dāng) 下位機(jī)的數(shù)據(jù)發(fā)生變化時(shí),PLC 才發(fā)起通信并上傳數(shù)據(jù)。這種通信方式可以大幅度減少上 位機(jī)的監(jiān)視時(shí)間,提高的實(shí)時(shí)響應(yīng)能力。本文僅以方式一為例說明動(dòng)態(tài)信號(hào)的采集過程。

采集器主動(dòng)向 PLC 發(fā)出Host Link 命令幀到PLC,PLC 接收到命令幀后自動(dòng)向上位機(jī) 發(fā)送應(yīng)答信號(hào),完成一次信號(hào)的采集過程。在Host Link 協(xié)議中,“@”為起始符號(hào);節(jié)點(diǎn)號(hào) 為PLC 的編號(hào)(00-31);識(shí)別碼說明Host Link 命令幀的功能;FCS 包含2 個(gè)字符,是幀的校 驗(yàn)碼,即從幀起始到報(bào)文結(jié)束之前數(shù)據(jù)的異或運(yùn)算結(jié)果,用來檢查幀的傳送結(jié)果是否正確; “*”和“CR”為終止符,表明幀結(jié)束[3]。在本中,WinCE 中提供了操作文件IO 函數(shù) 和通信函數(shù)來操作串口,進(jìn)行串口通信。為了避免讀線程調(diào)用WaitCommEvent()函數(shù)時(shí)造成 程序阻塞,提高CPU 的利用率和通信程序的實(shí)時(shí)性,改善系統(tǒng)的整體性能,采用多線程技 術(shù)實(shí)現(xiàn)異步串口讀寫的模擬[4,5]。串口通信的主要步驟如圖3 所示,(1) 調(diào)用函數(shù)CreateFile() 打開串口,函數(shù)SetCommState()配置串口參數(shù);(2)調(diào)用函數(shù)CreateThread()創(chuàng)建讀寫線程, 模擬異步讀寫串口(WriteFile()將命令寫入串口緩沖區(qū),WaitCommEvent()等待串口*事件 集發(fā)生,ReadFile()讀取串口數(shù)據(jù));(3) 關(guān)閉串口,將采集的數(shù)據(jù)進(jìn)行處理和存儲(chǔ)。

采集環(huán)境信息時(shí),用AT89C51 單片機(jī)、A/D 轉(zhuǎn)換模塊、加外圍電路構(gòu)成的小型單片機(jī) 系統(tǒng),通過串口與采集器根據(jù)自定義通信協(xié)議進(jìn)行通信,完成溫度、濕度等數(shù)據(jù)的采 集。生產(chǎn)操作人員信息由嵌入式采集器的人機(jī)交互界面直接采集。

5 基于嵌入式WinCE 數(shù)據(jù)通訊模塊設(shè)計(jì)

數(shù)據(jù)通信模塊用于完成采集器與上層服務(wù)器之間的通信,其主要功能包括,接受控 制終端的命令,控制程序的運(yùn)行狀態(tài),為程序的調(diào)試和監(jiān)控提供方便;傳輸采集數(shù)據(jù); 同步更新采集器配置文件。數(shù)據(jù)通信模塊采用基于WinCE 的TCP/IP 協(xié)議,能夠保證在傳輸 過程中數(shù)據(jù)的準(zhǔn)確性和可靠性;嵌入式系統(tǒng)硬件抗干擾能力強(qiáng),能夠保證系統(tǒng)長期穩(wěn)定運(yùn)行。

在基于 WinCE 的TCP/IP 協(xié)議中,當(dāng)接收到控制終端命令時(shí),采集器處于TCP 服 務(wù)器角色,以便多個(gè)控制終端向采集器發(fā)送命令。其通信實(shí)現(xiàn)流程為:TCP 服務(wù)器首先調(diào) 用socket()函數(shù)建立流式套接字,然后調(diào)用bind()綁定本地地址,調(diào)用listen()函數(shù)進(jìn)行* 客戶終端連接,一旦*到客戶終端連接后,服務(wù)器就調(diào)用accept()函數(shù)接收終端的連接請 求,并建立連接,同時(shí)服務(wù)器端啟動(dòng)一個(gè)新線程,建立單獨(dú)的套接字實(shí)例與客戶終端進(jìn)行通 訊。通信協(xié)議格式為:命令名稱,參數(shù)表。例如在通信格式“PATHR1, 0”中,PATHR1 命令表示暫停數(shù)據(jù)采集線程,參數(shù)0 表示立即執(zhí)行。服務(wù)器收到此 命令后會(huì)立即暫停數(shù)據(jù)采集模塊,并傳回命令的執(zhí)行結(jié)果。

采集器與服務(wù)器進(jìn)行數(shù)據(jù)傳輸和配置文件(主要關(guān)于采集信號(hào)的類型,名稱以及其它系 統(tǒng)配置信息)更新時(shí),采集器處于TCP 客戶端角色。其通信實(shí)現(xiàn)流程為:采集器調(diào)用socket() 函數(shù)建立流式套接字,然后調(diào)用connect()函數(shù),請求與Linux 服務(wù)器建立TCP 連接,成功 建立連接后,同服務(wù)器進(jìn)行數(shù)據(jù)傳輸和配置文件更新。數(shù)據(jù)傳輸和配置文件更新需要自定義 TCP 通信協(xié)議,采集器向服務(wù)器傳輸采集數(shù)據(jù)的通信協(xié)議格式為:數(shù)據(jù)類型,采集 時(shí)間,數(shù)據(jù)名稱,數(shù)據(jù)值…;校驗(yàn)值;服務(wù)器向采集器更新配置文件的通信協(xié)議格式 為:數(shù)據(jù)類型,名稱,區(qū)域,采集點(diǎn)數(shù)…;校驗(yàn)值。

6. 結(jié)束語

在微軟提供的 PB(Platform. Builder)集成開發(fā)環(huán)境中,根據(jù)分層技術(shù)定制了基于WinCE 的開發(fā)平臺(tái),分別采用Host Link 協(xié)議和自定義協(xié)議設(shè)計(jì)了采集器與PLC 和單片機(jī)的數(shù)據(jù)采 集模塊,并實(shí)現(xiàn)了采集器與Linux 服務(wù)器的數(shù)據(jù)通訊模塊。作為一種新型的數(shù)據(jù)采集系統(tǒng), 以嵌入式WinCE 為核心的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)充分發(fā)揮了嵌入式硬件設(shè)備的特點(diǎn),系統(tǒng)實(shí)時(shí) 性強(qiáng)、穩(wěn)定性好,功耗小,成本低,與傳統(tǒng)的數(shù)據(jù)采集方案相比,特別適合于多點(diǎn)、多參數(shù) 的遠(yuǎn)程數(shù)據(jù)采集,具有廣泛的應(yīng)用前景。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉