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