基于嵌入式WinCE的遠程數據采集系統
數據采集模塊是整個(gè)數據采集器軟件設計的核心部分,可以采用與設備連接的PLC、 單片機、工控機以及人機交互界面等,完成生產(chǎn)設備信息、環(huán)境信息及生產(chǎn)操作人員信息的 采集。在本文開(kāi)發(fā)的系統中,主要是通過(guò)PLC 采集設備信息,通過(guò)單片機采集溫度、濕度、 壓力傳感器的環(huán)境信息,通過(guò)基于嵌入式WinCE 采集器的人機交互界面直接采集生產(chǎn)現場(chǎng) 人員信息。
通過(guò) PLC 采集設備信息時(shí),數據采集器通過(guò)RS-232 接口以Host Link 通信協(xié)議與PLC 通訊。Host Link 通信協(xié)議采用“主從總線(xiàn)”方式通信,根據主動(dòng)權的不同有兩種實(shí)現形式, 一種是通信主動(dòng)權在上位機(基于WinCE 的采集器)一方,即方式一;另一種是主動(dòng)權在 下位機(PLC),即方式二。根據傳輸信號的性質(zhì)不同,兩種方式可以結合使用。針對本系 統的特點(diǎn),對需要用戶(hù)動(dòng)態(tài)配置的信號,如設備當日產(chǎn)量、運行時(shí)間等,采用方式一;對于 經(jīng)常需要監控的信號,如機器的運行溫度、轉速等,采用方式二。方式二的優(yōu)點(diǎn)在于,僅當 下位機的數據發(fā)生變化時(shí),PLC 才發(fā)起通信并上傳數據。這種通信方式可以大幅度減少上 位機的監視時(shí)間,提高系統的實(shí)時(shí)響應能力。本文僅以方式一為例說(shuō)明動(dòng)態(tài)信號的采集過(guò)程。
采集器主動(dòng)向 PLC 發(fā)出Host Link 命令幀到PLC,PLC 接收到命令幀后自動(dòng)向上位機 發(fā)送應答信號,完成一次信號的采集過(guò)程。在Host Link 協(xié)議中,“@”為起始符號;節點(diǎn)號 為PLC 的編號(00-31);識別碼說(shuō)明Host Link 命令幀的功能;FCS 包含2 個(gè)字符,是幀的校 驗碼,即從幀起始到報文結束之前數據的異或運算結果,用來(lái)檢查幀的傳送結果是否正確; “*”和“CR”為終止符,表明幀結束[3]。在本系統中,WinCE 中提供了操作文件IO 函數 和通信函數來(lái)操作串口,進(jìn)行串口通信。為了避免讀線(xiàn)程調用WaitCommEvent()函數時(shí)造成 程序阻塞,提高CPU 的利用率和通信程序的實(shí)時(shí)性,改善系統的整體性能,采用多線(xiàn)程技 術(shù)實(shí)現異步串口讀寫(xiě)的模擬[4,5]。串口通信的主要步驟如圖3 所示,(1) 調用函數CreateFile() 打開(kāi)串口,函數SetCommState()配置串口參數;(2)調用函數CreateThread()創(chuàng )建讀寫(xiě)線(xiàn)程, 模擬異步讀寫(xiě)串口(WriteFile()將命令寫(xiě)入串口緩沖區,WaitCommEvent()等待串口*事件 集發(fā)生,ReadFile()讀取串口數據);(3) 關(guān)閉串口,將采集的數據進(jìn)行處理和存儲。
采集環(huán)境信息時(shí),用AT89C51 單片機、A/D 轉換模塊、加外圍電路構成的小型單片機 系統,通過(guò)串口與嵌入式采集器根據自定義通信協(xié)議進(jìn)行通信,完成溫度、濕度等數據的采 集。生產(chǎn)操作人員信息由嵌入式采集器的人機交互界面直接采集。
5 基于嵌入式WinCE 數據通訊模塊設計
數據通信模塊用于完成采集器與上層服務(wù)器之間的通信,其主要功能包括,接受遠程控 制終端的命令,控制程序的運行狀態(tài),為程序的遠程調試和監控提供方便;傳輸采集數據; 同步更新采集器配置文件。數據通信模塊采用基于WinCE 的TCP/IP 協(xié)議,能夠保證在傳輸 過(guò)程中數據的準確性和可靠性;嵌入式系統硬件抗干擾能力強,能夠保證系統長(cháng)期穩定運行。
在基于 WinCE 的TCP/IP 協(xié)議中,當接收到遠程控制終端命令時(shí),采集器處于TCP 服 務(wù)器角色,以便多個(gè)控制終端向采集器發(fā)送命令。其通信實(shí)現流程為:TCP 服務(wù)器首先調 用socket()函數建立流式套接字,然后調用bind()綁定本地地址,調用listen()函數進(jìn)行* 客戶(hù)終端連接,一旦*到客戶(hù)終端連接后,服務(wù)器就調用accept()函數接收終端的連接請 求,并建立連接,同時(shí)服務(wù)器端啟動(dòng)一個(gè)新線(xiàn)程,建立單獨的套接字實(shí)例與客戶(hù)終端進(jìn)行通 訊。通信協(xié)議格式為:命令名稱(chēng),參數表。例如在通信格式“PATHR1, 0”中,PATHR1 命令表示暫停數據采集線(xiàn)程,參數0 表示立即執行。服務(wù)器收到此 命令后會(huì )立即暫停數據采集模塊,并傳回命令的執行結果。
采集器與服務(wù)器進(jìn)行數據傳輸和配置文件(主要關(guān)于采集信號的類(lèi)型,名稱(chēng)以及其它系 統配置信息)更新時(shí),采集器處于TCP 客戶(hù)端角色。其通信實(shí)現流程為:采集器調用socket() 函數建立流式套接字,然后調用connect()函數,請求與Linux 服務(wù)器建立TCP 連接,成功 建立連接后,同服務(wù)器進(jìn)行數據傳輸和配置文件更新。數據傳輸和配置文件更新需要自定義 TCP 通信協(xié)議,采集器向服務(wù)器傳輸采集數據的通信協(xié)議格式為:數據類(lèi)型,采集 時(shí)間,數據名稱(chēng),數據值…;校驗值;服務(wù)器向采集器更新配置文件的通信協(xié)議格式 為:數據類(lèi)型,名稱(chēng),區域,采集點(diǎn)數…;校驗值。
6. 結束語(yǔ)
在微軟提供的 PB(Platform. Builder)集成開(kāi)發(fā)環(huán)境中,根據分層技術(shù)定制了基于WinCE 的開(kāi)發(fā)平臺,分別采用Host Link 協(xié)議和自定義協(xié)議設計了采集器與PLC 和單片機的數據采 集模塊,并實(shí)現了采集器與Linux 服務(wù)器的數據通訊模塊。作為一種新型的數據采集系統, 以嵌入式WinCE 為核心的遠程數據采集系統充分發(fā)揮了嵌入式硬件設備的特點(diǎn),系統實(shí)時(shí) 性強、穩定性好,功耗小,成本低,與傳統的數據采集方案相比,特別適合于多點(diǎn)、多參數 的遠程數據采集,具有廣泛的應用前景。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論