在倉(cāng)庫(kù)的貨物的管理中,需要對(duì)溫度、濕度等環(huán)境參數(shù)進(jìn)行監(jiān)控,,以保證倉(cāng)庫(kù)的安全。隨著庫(kù)區(qū)的面積逐漸擴(kuò)大,,需要傳輸能力強(qiáng)和通信距離遠(yuǎn)的監(jiān)控系統(tǒng)來(lái)有效地對(duì)倉(cāng)庫(kù)貨物進(jìn)行監(jiān)管,。
CAN(Controller Area Network,控制器局域網(wǎng))總線(xiàn)技術(shù)具有先進(jìn)的多主網(wǎng)絡(luò)結(jié)構(gòu)、通訊距離遠(yuǎn),、價(jià)位低,、可靠性高、系統(tǒng)容量大,、安裝方便,、維護(hù)費(fèi)用低、性?xún)r(jià)比高等優(yōu)點(diǎn),。特別對(duì)庫(kù)區(qū)較大,、倉(cāng)庫(kù)分布較分散的大型倉(cāng)庫(kù)的監(jiān)控非常適用。
2系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)采用分布式監(jiān)控網(wǎng)絡(luò),,主要分為上位機(jī)和下位機(jī)兩部分,,而上位機(jī)硬件包括CAN通訊適配器和上位監(jiān)控管理機(jī)組成;下位機(jī)則由CAN節(jié)點(diǎn)和現(xiàn)場(chǎng)傳感器組和溫度濕度參數(shù)控制器組成,如圖1所示,。

其工作原理是下位機(jī)節(jié)點(diǎn)通過(guò)一定時(shí)間間隔把含有地址,、溫度、濕度等數(shù)據(jù)量的報(bào)文向CAN總線(xiàn)發(fā)送,,總線(xiàn)通過(guò)自身仲裁確定先把優(yōu)先級(jí)最高的數(shù)據(jù)放到總線(xiàn)上,,然后自動(dòng)仲裁依次發(fā)送優(yōu)先級(jí)相對(duì)較低的報(bào)文到CAN總線(xiàn)。由于CAN總線(xiàn)的信息存取利用了廣播式的存取工作方式,,報(bào)文可以在任何時(shí)候由任何節(jié)點(diǎn)發(fā)送到空閑的總線(xiàn)上,,每個(gè)CAN總線(xiàn)節(jié)點(diǎn)都接收到了總線(xiàn)上出現(xiàn)的報(bào)文信息,通過(guò)每個(gè)節(jié)點(diǎn)的報(bào)文濾波和地址設(shè)置,,上位機(jī)CAN節(jié)點(diǎn)能實(shí)現(xiàn)上傳報(bào)文的接收,。上位機(jī)接收到報(bào)文信息后通過(guò)組態(tài)王軟件實(shí)現(xiàn)倉(cāng)庫(kù)溫度等參數(shù)實(shí)時(shí)監(jiān)視和記錄。同時(shí)上位機(jī)通過(guò)倉(cāng)庫(kù)人機(jī)界面可隨時(shí)發(fā)送控制信息到CAN總線(xiàn)上,,地址匹配的CAN總線(xiàn)節(jié)點(diǎn)能收到信息,。通過(guò)這種方式即可實(shí)現(xiàn)倉(cāng)庫(kù)的溫度等參數(shù)的反饋控制。
2.1上位機(jī)系統(tǒng)的硬件設(shè)計(jì)
CAN通訊適配器承擔(dān)上位計(jì)算機(jī)和CAN節(jié)點(diǎn)之間的數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù),,實(shí)現(xiàn)上位機(jī)與下位機(jī)的通訊,。利用EPP并行口實(shí)現(xiàn)PC機(jī)與SJA1000的通信,關(guān)鍵在于實(shí)現(xiàn)SJA1000的讀寫(xiě)時(shí)序,,實(shí)現(xiàn)的方法有兩種:軟件產(chǎn)生讀寫(xiě)時(shí)序電路和硬件產(chǎn)生讀寫(xiě)時(shí)序電路,。該系統(tǒng)用硬件產(chǎn)生讀寫(xiě)時(shí)序電路,通過(guò)邏輯門(mén)的時(shí)間延遲來(lái)產(chǎn)生SJA1000握手等信號(hào),。設(shè)計(jì)電路如圖2所示,。

2.2下位機(jī)系統(tǒng)的硬件設(shè)計(jì)
下位機(jī)包括CAN節(jié)點(diǎn)、現(xiàn)場(chǎng)傳感器組和溫度濕度參數(shù)控制器,。CAN節(jié)點(diǎn)主要是完成CAN總線(xiàn)信號(hào)和CAN網(wǎng)絡(luò)通訊的配置?,F(xiàn)場(chǎng)傳感器組和參數(shù)控制器部分主要是和CAN節(jié)點(diǎn)完成實(shí)時(shí)監(jiān)測(cè)倉(cāng)庫(kù)內(nèi)各個(gè)測(cè)試點(diǎn)的溫度、濕度情況,還要負(fù)責(zé)接收上位管理機(jī)的命令,,根據(jù)上位管理機(jī)的要求傳輸數(shù)據(jù)和反饋控制,。下位機(jī)結(jié)構(gòu)組成如圖3所示。

2.2.1 CAN節(jié)點(diǎn)
CAN節(jié)點(diǎn)器件主要包括:微處理器AT89S52單片機(jī),、CAN控制器SJA1000和CAN總線(xiàn)收發(fā)器PCA82C250,。
(1)CAN控制器SJA1000
SJA1000的工作模式通過(guò)其內(nèi)部的時(shí)鐘分頻寄存器CDR中的CAN模式位來(lái)選擇,。硬件復(fù)位時(shí)默認(rèn)模式是BasicCAN工作模式,。SJA1000相對(duì)于微控制器相當(dāng)于是一存儲(chǔ)映象I/O設(shè)備,他的地址域由控制段和信息緩沖區(qū)段組成,,在向下加載初始化期間,,控制器可被編程以設(shè)定通信參數(shù),CAN總線(xiàn)上的通信可通過(guò)此段由微控制器控制,。
SJA1000內(nèi)部寄存器有的是只能寫(xiě)的,,有的是既可讀又可寫(xiě)的。系統(tǒng)正常工作之前,,微控制器要對(duì)某些寄存器進(jìn)行初始化,,以保證系統(tǒng)的各部分之間能進(jìn)行正確的數(shù)據(jù)交換。CAN控制器的內(nèi)容都是通過(guò)微控制器寫(xiě)入的,,其讀寫(xiě)時(shí)序如圖4所示,。

從讀/寫(xiě)時(shí)序圖來(lái)看,微控制器對(duì)SJA1000進(jìn)行操作,,由于SJA1000內(nèi)可存儲(chǔ)數(shù)據(jù)的地址信息?,F(xiàn)場(chǎng)數(shù)據(jù)采集與控制層負(fù)責(zé)從現(xiàn)場(chǎng)采集數(shù)據(jù)以CAN協(xié)議的格式發(fā)送到總線(xiàn)上,根據(jù)需要對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行實(shí)時(shí)控制和監(jiān)視,。系統(tǒng)上電后微處理器先對(duì)自身和SJA1000進(jìn)行初始化,,以SJA1000傳送到CAN總線(xiàn)上或直接現(xiàn)場(chǎng)顯示、控制;對(duì)從CAN總線(xiàn)上來(lái)的信息則采用中斷方式,,系統(tǒng)每接收到一幀信息,便產(chǎn)生一次中斷,,引發(fā)微處理機(jī)進(jìn)入中斷,,在中斷服務(wù)程序中讀取該幀信息并傳送到現(xiàn)場(chǎng)。
?。?)CAN收發(fā)器PCA82C250
PCA82C250為CAN收發(fā)器,,是CAN控制器和物理總線(xiàn)間的接口,提供對(duì)總線(xiàn)的驅(qū)動(dòng)發(fā)送能力,,CAN控制器的差動(dòng)發(fā)送能力和CAN控制器的差動(dòng)接收能力,。他有很強(qiáng)的抗瞬間干擾和保護(hù)總線(xiàn)的能力,具有3種不同的工作模式即高速、斜率控制和待機(jī),??偩€(xiàn)上的某節(jié)點(diǎn)掉電不會(huì)影響總線(xiàn),在40 m內(nèi)實(shí)現(xiàn)高速應(yīng)用可達(dá)1 Mb/s,,最多可掛110個(gè)節(jié)點(diǎn),。管腳8(RS)允許PCA82C250選擇3種不同的工作模式,如表1所示,。


2.2.2 溫度檢測(cè)部分
系統(tǒng)采用由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線(xiàn)智能溫度傳感器,該傳感器屬于新一代適配微處理器的智能溫度傳感器,。DS18B20主要有兩種工作方式:寄生電源工作方式和外接電源工作方式,。本系統(tǒng)采用外接電源方式(如圖6)。

2.2.3 濕度檢測(cè)部分
濕度檢測(cè)采用HS1101型濕度傳感器,,HS1101是HUMIREL公司生產(chǎn)的變?nèi)菔较鄬?duì)濕度傳感器,,采用獨(dú)特的工藝設(shè)計(jì)。
HS1101測(cè)量濕度采用將HS1101置于555振蕩電路中,,將電容值的變化磚換成電壓頻率信號(hào),,可以直接被微處理器采集。
設(shè)計(jì)的電路如圖7所示,。

555芯片外接電阻R20,,R19與HS1101,構(gòu)成對(duì)HS1101的充電回路,。7端通過(guò)芯片內(nèi)部的晶體管對(duì)地短路實(shí)現(xiàn)對(duì)HS1101的放電回路,,并將引腳2,6端相連引入到片內(nèi)比較器,,構(gòu)成一個(gè)多諧波振蕩器,,其中,R20相對(duì)于R19必須非常的小,,但決不能低于一個(gè)最小值,。R18是防止短路的保護(hù)電阻。

HS1101作為一個(gè)變化的電容器,,連接2和6引腳,。引腳作為R20的短路引腳。HS1101的等效電容通過(guò)R19和R20充電達(dá)到上限電壓(近似于0.67 VCC,,時(shí)間記為T(mén)1),,這時(shí)555的引腳3由高電平變?yōu)榈碗娖剑缓笸ㄟ^(guò)R19開(kāi)始放電,,由于R20被7引腳短路接地,,所以只放電到觸發(fā)界線(xiàn)(近似于0.33 VCC,,時(shí)間記為T(mén)2),這時(shí)555芯片的引腳3變?yōu)楦唠娖?。通過(guò)不同的兩個(gè)電阻R19,,R20進(jìn)行傳感器的不停充放電,產(chǎn)生方波輸出,??梢缘贸觯?/p>
由此可以看出,空氣相對(duì)濕度與555芯片輸出頻率存在一定線(xiàn)性關(guān)系,。表2給出了典型頻率濕度關(guān)系(參考點(diǎn):25℃,,相對(duì)濕度:55%,輸出頻率:6.660 kHz),??梢酝ㄟ^(guò)微處理器采集555芯片的頻率,然后查表即可得出相對(duì)濕度值,。為了更好提高測(cè)量精度,,將采用下位機(jī)負(fù)責(zé)采集頻率,將頻率值送入上位機(jī)進(jìn)行分段處理,。
2.2.4 溫濕度控制部分
在監(jiān)控系統(tǒng)中,,除了實(shí)時(shí)檢測(cè)溫度濕度等參數(shù)外,還需要對(duì)這些參數(shù)進(jìn)行控制,。在溫度等測(cè)量參數(shù)超過(guò)用戶(hù)設(shè)定值范圍時(shí),,啟動(dòng)相關(guān)控制設(shè)備,否則關(guān)閉控制設(shè)備,。系統(tǒng)采用繼電器控制通風(fēng),,除濕等設(shè)備的啟動(dòng),具體電路設(shè)計(jì)如圖8所示,,其中J1用于控制通風(fēng)設(shè)備,,J2,J3用于控制濕度,。

3 系統(tǒng)軟件設(shè)計(jì)
監(jiān)控系統(tǒng)軟件設(shè)計(jì)分為上位機(jī)系統(tǒng)的軟件設(shè)計(jì)和下位機(jī)系統(tǒng)的軟件設(shè)計(jì),。
上位機(jī)系統(tǒng)的軟件包括監(jiān)控管理部分軟件和CAN適配器軟件。現(xiàn)場(chǎng)監(jiān)控管理部分主要利用組態(tài)王軟件完成倉(cāng)庫(kù)的現(xiàn)場(chǎng)測(cè)量點(diǎn)模擬,,對(duì)倉(cāng)庫(kù)的現(xiàn)場(chǎng)數(shù)據(jù)進(jìn)行采集,,并對(duì)采集數(shù)據(jù)進(jìn)行分析,自動(dòng)計(jì)算倉(cāng)內(nèi)的最高,、最低和平均溫度值,還可計(jì)算出每層的最高,、最低和平均溫度值,,完成超限實(shí)時(shí)報(bào)警,,同時(shí)實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行操作控制。例如啟動(dòng)通風(fēng),、除濕,、噴灑及安全保護(hù)裝置,報(bào)警,、切斷電源等,。并自動(dòng)生成各種報(bào)表和圖表,建立和存儲(chǔ)倉(cāng)庫(kù)的倉(cāng)儲(chǔ)歷史檔案和打印功能,。而遠(yuǎn)程監(jiān)控管理部分主要完成倉(cāng)庫(kù)狀態(tài)遠(yuǎn)程查詢(xún),,報(bào)表打印和遠(yuǎn)程控制等功能。
對(duì)于CAN適配器的軟件設(shè)計(jì)采用Windows環(huán)境下的VB語(yǔ)言進(jìn)行開(kāi)發(fā),,由于Windows的保護(hù),,VB無(wú)法直接讀寫(xiě)并行端口,需要另外的程序模塊來(lái)實(shí)現(xiàn)并行端口的直接讀寫(xiě),,使用WINIO模塊來(lái)解決VB對(duì)并口的讀寫(xiě),。同時(shí),由于WINIO模塊不支持系統(tǒng)中斷,,還需要利用VB編寫(xiě)線(xiàn)程來(lái)查詢(xún)SJA1000的中斷狀態(tài),。
下位機(jī)系統(tǒng)的軟件包括CAN節(jié)點(diǎn)的軟件和溫濕度檢測(cè)控制軟件。軟件設(shè)計(jì)采用模塊化設(shè)計(jì)方式,。軟件中主要程序有SJA1000的初始化,,報(bào)文的發(fā)送程序,報(bào)文的接收程序,,CAN總線(xiàn)錯(cuò)誤處理程序,,以及和傳感器配合實(shí)現(xiàn)現(xiàn)場(chǎng)參數(shù)的采集。
4 結(jié) 語(yǔ)
該設(shè)計(jì)在倉(cāng)庫(kù)的總體結(jié)構(gòu)設(shè)計(jì)中,,成功引入CAN總線(xiàn)作為通訊網(wǎng)絡(luò),,其中下位機(jī)利用AT89S52單片機(jī)和SJA1000完成CAN節(jié)點(diǎn)設(shè)計(jì),上位機(jī)完成了對(duì)CAN通訊適配器的設(shè)計(jì),,采用上位機(jī)高級(jí)語(yǔ)言VB和EPP協(xié)議實(shí)現(xiàn)SJA1000的控制,,大大地提高了系統(tǒng)內(nèi)部的速率和實(shí)時(shí)性,具有處理速度快,,成本較低的優(yōu)點(diǎn),。