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