一、引言
溫濕度數(shù)據(jù)的采集廣泛應(yīng)用于工業(yè)測量中,為了確保數(shù)據(jù)的正確穩(wěn)定,通常需要進(jìn)行多點(diǎn)遠(yuǎn)距離測量,并且測量點(diǎn)的位置要求能靈活配置。對于少量測試點(diǎn)可以擴(kuò)展PLC功能模塊,一旦測量點(diǎn)過多(本系統(tǒng)超過200個(gè)測量點(diǎn)且分布集中),如所有點(diǎn)采用功能模塊,會(huì)給部分掛接過多功能模塊的PLC程序執(zhí)行帶來影響,造成讀寫周期過長,上位機(jī)監(jiān)控軟件響應(yīng)過慢,同時(shí)帶來整體系統(tǒng)成本上升。采用普通的A/D傳感器或者PLC溫濕度模塊都不能很好地解決。本文通過嵌入式系統(tǒng)的應(yīng)用改善了上述問題。并運(yùn)用C++ Builder6.0編寫上層監(jiān)控軟件為控制系統(tǒng)提供人機(jī)界面。
圖1 系統(tǒng)模塊框圖
二、系統(tǒng)概述
本系統(tǒng)的溫濕度傳感模塊由Dallas公司的單總線器件DS2438和Honeywell公司的濕度傳感器HIH-3610構(gòu)成,巧妙地實(shí)現(xiàn)了多點(diǎn)靈活測量。數(shù)據(jù)通過單總線傳給AT90mega8515并通過RS-422A串行總線傳遞至上位機(jī),上位機(jī)的監(jiān)控軟件判斷當(dāng)前參數(shù)后發(fā)送控制命令給PLC,實(shí)現(xiàn)對現(xiàn)場溫度的控制。如圖1所示,通過嵌入式系統(tǒng)的應(yīng)用把PLC配置的測量模塊從PLC中分離出來,可以減低系統(tǒng)對PLC的要求。單PLC模式或上位機(jī)協(xié)同多PLC控制模式的改變,提高了整個(gè)系統(tǒng)的執(zhí)行效率,增加了配置靈活性,降低了應(yīng)用成本。以下介紹系統(tǒng)各模塊,并重點(diǎn)說明各器件與測控相關(guān)的功能。
三、系統(tǒng)硬件設(shè)計(jì)
(一)溫濕度傳感測量模塊
該模塊由器件DS2438和HIH-3610構(gòu)成。電路圖如圖2所示。DS2438完成溫度采集并將HIH-3610的直流電壓信號數(shù)字化,通過單總線接口傳遞給MCU。
圖2 溫濕度測量模塊電路圖
1.HIH-3610為新型的相對濕度傳感器,該傳感器采用熱固聚酯電容式傳感頭,通過功能電路將電容值轉(zhuǎn)換成線性電壓輸出,輸出特性曲線如圖3所示。
由HIH-3610的特性得知其輸出電壓由當(dāng)前濕度值、輸入電壓、環(huán)境溫度三者決定,具體計(jì)算公式為:

綜合上述公式,得出實(shí)際濕度值為:

公式的計(jì)算由上位監(jiān)控計(jì)算機(jī)完成,實(shí)際測量的溫度濕度值通過RS422A串行總線傳遞。
2.DS2438是Dallas公司推出的智能電池監(jiān)視1-wire芯片,方便地解決了便攜式電子產(chǎn)品電池的實(shí)時(shí)監(jiān)測問題。本系統(tǒng)利用了片內(nèi)13位精度溫度傳感器和片內(nèi)10位二通道電壓A/D轉(zhuǎn)換器實(shí)現(xiàn)了溫濕度的數(shù)據(jù)采集"并通過單總線傳遞數(shù)據(jù)。
DS2438的內(nèi)部存儲(chǔ)單元分易失性的SRAM和非易失的E2PROM,其中對該器件的操作是通過對64個(gè)字節(jié)的存儲(chǔ)器完成的。該存儲(chǔ)器分成地址為00~07H的8頁,00頁包含了狀態(tài)/配置寄存器、溫度寄存器、電壓寄存器、電流寄存器、閾值寄存器。溫度寄存器以2的補(bǔ)碼形式給出了溫度轉(zhuǎn)換后的溫度值;電壓寄存器以10MV的分辨率給出了電壓轉(zhuǎn)換后的10 位數(shù)據(jù),實(shí)際電壓值為(電壓寄存器值)×10MV。在本應(yīng)用中所有對DS2438的操作都是針對00頁。單片機(jī)通過對單總線的讀寫控制溫度和電壓(濕度)轉(zhuǎn)換,并讀取內(nèi)部存儲(chǔ)單元數(shù)據(jù)。
圖3 HIH-3610電壓與濕度特性曲線
對單總線器件的操作要遵循Dallas公司對單總線的時(shí)序定義,由于單總線上沒有同步時(shí)鐘,因此延時(shí)是判斷總線數(shù)據(jù)的惟一依據(jù)。對單總線器件的操作需要用到ROM命令和內(nèi)存控制RAM命令,設(shè)計(jì)中用到的內(nèi)存控制命令有溫度轉(zhuǎn)換命令[44H]、電壓轉(zhuǎn)換命令[B4H]等。對于設(shè)計(jì)中需要在總線上掛接多個(gè)DS2438的情況還需要發(fā)出器件識別碼,以匹配識別各模塊。由于DS2438包含了溫度傳感器和A/D轉(zhuǎn)換單元,使得通過單總線遠(yuǎn)程傳輸濕度信號成為可能。
(二)嵌入式MCU與RS485通訊模塊
本文采用Atmel公司的AVR嵌入式單片機(jī)AT90mega8515控制單總線并通過RS485總線將采集的溫濕度數(shù)據(jù)傳給上位機(jī)。AVR RISC單片機(jī)AT90mega8515時(shí)AT90S8515的升級產(chǎn)品。在提供ISP在線可編程的同時(shí)還哦提供了RS232串口輸入輸出,極大地方便了模塊現(xiàn)場升級與及時(shí)通訊。
RS-422A通訊協(xié)議通過差分輸入輸出信號電平可實(shí)現(xiàn)最長1200米的傳輸距離,在此采用maxim公司的MAX489芯片實(shí)現(xiàn)電平轉(zhuǎn)換。MAX489是全雙工RS422A電平轉(zhuǎn)換芯片,并提供輸入輸出使能控制。
(三)PLC的上位鏈接系統(tǒng)(Host Link System)模塊
系統(tǒng)采用的OMRON公司多系列PLC均支持上位鏈接網(wǎng)絡(luò)。該網(wǎng)絡(luò)是把一臺微型計(jì)算機(jī)作為上位機(jī),通過Host Link單元及串行總線鏈接多臺PLC構(gòu)成監(jiān)督監(jiān)控系統(tǒng),屬于一種主從式總線型工業(yè)局域網(wǎng)。上位機(jī)可對PLC傳送程序,并監(jiān)控PLC的數(shù)據(jù)區(qū),以及向通過鏈接的PLC發(fā)送命令,控制其工作情況,實(shí)現(xiàn)系統(tǒng)的集散控制。
上位機(jī)鏈接通信使用的是OMRON的Host Link協(xié)議,PLC與上位機(jī)按幀的格式實(shí)現(xiàn)數(shù)據(jù)交換,一幀最多包含131個(gè)字節(jié),傳遞協(xié)議按照發(fā)送權(quán)輪換進(jìn)行。即上位機(jī)發(fā)送一幀包含控制正文和識別碼的數(shù)據(jù)包給PLC,PLC回應(yīng)一幀數(shù)據(jù),如此往復(fù)。
由于系統(tǒng)部分低成本PLC只支持RS232通訊協(xié)議 可以通過接口模塊將RS422A電平轉(zhuǎn)換成RS232電平,實(shí)現(xiàn)多機(jī)互聯(lián),并延長傳輸距離。上位機(jī)與PLC的接口可以通過Host Link模塊,但如果串口上連接了多個(gè)PLC,會(huì)造成讀寫周期過長,影響監(jiān)控系統(tǒng)性能。本系統(tǒng)通過PCI橋轉(zhuǎn)接多串口在硬件上實(shí)現(xiàn)了多通道同時(shí)讀寫。
四、系統(tǒng)軟件設(shè)計(jì)
高性能PC機(jī)取代可編程終端(PT)作為人機(jī)接口無論在成本還是性能上都有無可比擬的優(yōu)勢。在更高性能的硬件平臺上,監(jiān)控軟件功能的提高成為可能。C++ Builder是Borland公司推出的產(chǎn)品。它采用面向?qū)ο蟮脑O(shè)計(jì)方法,提供了相當(dāng)簡潔方便的開發(fā)環(huán)境,因而實(shí)現(xiàn)了強(qiáng)大功能與簡單操作的有機(jī)結(jié)合,進(jìn)一步縮短了開發(fā)周期。
系統(tǒng)監(jiān)控軟件的編寫分為三大部分,即圖形界面顯示、數(shù)據(jù)庫及與上行下行模塊的通訊。圖形界面與數(shù)據(jù)庫可根據(jù)用戶使用實(shí)際情況定制,而在上位機(jī)與下行模塊間的通訊過程中,通訊周期需要嚴(yán)格控制。由于PLC的RS232協(xié)議傳輸數(shù)據(jù),速度非常有限,因而在高性能PC機(jī)上需通過多線程技術(shù)縮短讀寫周期。
線程可以認(rèn)為是操作系統(tǒng)多任務(wù)的應(yīng)用擴(kuò)展。多個(gè)應(yīng)用程序在操作系統(tǒng)中可以同時(shí)運(yùn)行,實(shí)際上是因?yàn)椴僮飨到y(tǒng)把多個(gè)任務(wù)分成不同的時(shí)間片交叉調(diào)用。線程的實(shí)現(xiàn)也是在單個(gè)應(yīng)用程序中通過時(shí)間片完成。本程序需要完成多個(gè)COM口的同步讀寫,在讀寫的同時(shí)還需要完成圖形的顯示和數(shù)據(jù)庫更新,因而通過線程的嵌套來實(shí)現(xiàn)。程序流程圖如圖4所示。
圖4 多線程讀寫COM口流程圖
在主程序中,通過定時(shí)器觸發(fā)主線程。需要注意的是,當(dāng)前定時(shí)器事件觸發(fā)時(shí)可能上一次的讀寫線程或者上一次定時(shí)器事件還沒有完成并懸掛起來,這時(shí)可以通過狀態(tài)變量函數(shù)檢測主線程或上一次定時(shí)器事件是否完成,進(jìn)而決定當(dāng)前的定時(shí)器事件是否需要執(zhí)行。子線程從啟動(dòng)到掛起這一個(gè)周期只能實(shí)現(xiàn)讀或者寫操作一次,要實(shí)現(xiàn)讀和寫操作,可以在讀寫線程中通過判斷當(dāng)前修改內(nèi)容決定讀寫操作是否執(zhí)行。
五、結(jié)論
本系統(tǒng)采用模塊設(shè)計(jì),通過對電源管理芯片的巧妙應(yīng)用,實(shí)現(xiàn)對遠(yuǎn)程溫濕度的數(shù)據(jù)采集,并將其模塊化應(yīng)用于PLC控制系統(tǒng)中經(jīng)現(xiàn)場檢驗(yàn)穩(wěn)定可靠。相對于傳統(tǒng)的PT端人機(jī)接口,上位機(jī)和Host Link網(wǎng)絡(luò)的使用,極大地方便了用戶操作,并為嵌入式系統(tǒng)在PLC控制系統(tǒng)中應(yīng)用提供了平臺。上層監(jiān)控軟件在執(zhí)行過程中,通過多線程技術(shù)提高了多串口的讀寫速度,節(jié)約了系統(tǒng)成本。
參考文獻(xiàn)
[1] DALLAS. DS2438 Data Sheet. 2003
[2] Honeywell HIH3610 Data Sheet. 2000
[3] OMRON.CQM1H PLC編程手冊.2002
[4] 范逸之,江文賢,陳立元,C++Builder與RS-232串行通信控制.北京:清華大學(xué)出版社,2002
[5] 耿德根,宋建國等,AVR高速嵌入式單片機(jī)原理與應(yīng)用(修訂版).北京:北京航空航天大學(xué)出版社,2002