陸 旭 明
(常州紡織服裝職業(yè)技術(shù)學(xué)院,江蘇 常州 213164)
在工業(yè)和日常生活方面,可燃?xì)庾鳛槿剂隙鴱V泛地被使用。然而,可燃?xì)怏w一旦泄露,易引起中毒和爆炸事故。近些年來,此類事故頻頻發(fā)生,如礦井爆炸、煤氣中毒,嚴(yán)重危害了人們的生命財(cái)產(chǎn)安全。有鑒于此,氣體檢測系統(tǒng)顯得十分重要[1-2],可有效解除此類隱患,從而保障了人們的生命財(cái)產(chǎn)安全和生產(chǎn)安全。
MCGS工控組態(tài)是數(shù)據(jù)采集與過程控制的專用軟件,是監(jiān)視和控制軟件,靈活多樣的組態(tài)方式提供良好的用戶開發(fā)界面,利用各種軟件模塊非常容易實(shí)現(xiàn)和完成監(jiān)控的各種功能,與AVR單片機(jī)結(jié)合,可進(jìn)行靈活多變的可燃?xì)怏w檢測系統(tǒng)集成。
系統(tǒng)中計(jì)算機(jī)PC作為主機(jī),采用AVR單片機(jī)作為從機(jī)對(duì)可燃?xì)怏w濃度進(jìn)行采集,主機(jī)采用MCGS組態(tài)軟件,主從機(jī)通過RS-485接口按照ModBus協(xié)議進(jìn)行通信,由主機(jī)定時(shí)對(duì)4路下位機(jī)進(jìn)行數(shù)據(jù)采集,監(jiān)視可燃?xì)怏w濃度是否超標(biāo),一旦氣體濃度超標(biāo),主機(jī)立即向從機(jī)發(fā)出命令,啟動(dòng)風(fēng)扇等自排設(shè)備[3]。主機(jī)對(duì)從機(jī)進(jìn)行參數(shù)設(shè)置,可燃?xì)怏w檢測報(bào)警控制系統(tǒng)框架如圖1所示[4]。
圖1 可燃?xì)怏w檢測報(bào)警控制系統(tǒng)框架
采用的AVR單片機(jī)是ATmega系列中一種高性能、低功耗的8位AVR RISC微處理器[5]。通過在一個(gè)時(shí)鐘周期執(zhí)行一條指令,AVR單片機(jī)可以獲得接近1 MI/s/MHz的性能。該單片機(jī)集多種器件和多種功能于一身,功能強(qiáng)大,價(jià)格適宜,是一款性價(jià)比很高的MCU。AVR單片機(jī)端口A,除了作為I/O口,還可以進(jìn)行A/D轉(zhuǎn)換,對(duì)需要進(jìn)行A/D轉(zhuǎn)換的可燃?xì)怏w的檢測非常方便。
AVR可燃?xì)怏w檢測控制硬件原理圖如圖2所示。
4路可燃?xì)怏w經(jīng)傳感器輸出4~20 mA電流信號(hào),經(jīng)放大電路后轉(zhuǎn)換成電壓信號(hào)AD0、AD1、AD2、AD3(可以擴(kuò)展到8個(gè))送至AVR單片機(jī)端口A進(jìn)行A/D轉(zhuǎn)換,輸出的數(shù)字信號(hào)經(jīng)AVR單片機(jī)端口C送至液晶顯示屏顯示濃度參數(shù)。在圖2中8-3優(yōu)先編碼器74HC148輸入端連著4個(gè)按鈕,它們分別是UP、DOWN、SETUP、REQ,針對(duì)4個(gè)可燃?xì)怏w進(jìn)行參數(shù)設(shè)置,UP為數(shù)字“+”,DOWN為數(shù)字“-”,它們主要的作用是選擇第幾個(gè)可燃探測點(diǎn),SETUP為“高報(bào)和低報(bào)參數(shù)設(shè)置”,REQ為“查詢”,優(yōu)先編碼器74HC148輸出端將上述四個(gè)按鍵的兩位編碼值KEYDB0、KEYDB1送至AVR單片機(jī)的B端口,AVR單片機(jī)根據(jù)編碼值進(jìn)行相應(yīng)的功能操作。
圖2 AVR可燃?xì)怏w檢測控制硬件原理圖
同時(shí)AVR單片機(jī)對(duì)檢測到的可燃?xì)怏w濃度進(jìn)行判斷,對(duì)各個(gè)探頭信號(hào)濃度正常與否(COM0、COM1、COM2、COM3濃度正常指示燈)、低報(bào)警狀態(tài)(RELATCOL0)、高報(bào)警狀態(tài)(RELATCOL1)、操作面板背景燈(BACKLIGHT)、警報(bào)(SPERKER)等8個(gè)信息狀態(tài),通過AVR單片機(jī)B端口的PB5按照串行信號(hào)輸出,送至MC74HC595數(shù)據(jù)串行輸入端DS端,數(shù)據(jù)在SH的上升沿輸入,在ST的上升沿進(jìn)入存儲(chǔ)寄存器中去,當(dāng)使能OE時(shí)(為低電平),存儲(chǔ)寄存器的數(shù)據(jù)輸出到MC74HC595總線Q端,在MC74HC595的Q端并口上輸出上述8個(gè)信號(hào)。
當(dāng)?shù)蛨?bào)警狀態(tài)RELATCOL0為“1”時(shí),繼電器K1吸合,高報(bào)警狀態(tài)RELATCOL1為“1”時(shí),繼電器K2吸合同時(shí)控制外接電路的自排功能如風(fēng)扇等信號(hào)控制,警報(bào)SPERKER為“1”時(shí),啟動(dòng)報(bào)警音響。報(bào)警控制連接圖如圖3所示。
AVR單片機(jī)串口通過SN75176收發(fā)器芯片將TTL電平轉(zhuǎn)換為RS-485接口電平[6-8]和PC機(jī)主機(jī)通信。
Modbus是MODICON公司最先倡導(dǎo)的一種軟的通訊規(guī)約,經(jīng)過大多數(shù)公司的實(shí)際應(yīng)用,逐漸被認(rèn)可,成為一種標(biāo)準(zhǔn)的通訊規(guī)約,只要按照這種規(guī)約進(jìn)行數(shù)據(jù)通訊或傳輸,不同的系統(tǒng)就可以通訊。目前,在RS232/RS485通訊過程中,更是廣泛采用這種規(guī)約。在本文設(shè)計(jì)中采用了Modbus RTU規(guī)約。
考慮到通信的通用性,本文以MODBUS RTU協(xié)議為基礎(chǔ)[9,10],重新定義報(bào)文。MODBUS協(xié)議的報(bào)文基本結(jié)構(gòu)如下表1所示[11-13]。
表1 報(bào)文結(jié)構(gòu)表
根據(jù)功能碼以及實(shí)際通信的需要,報(bào)文的長度與信息也將隨著改變。
地址碼為構(gòu)成通信網(wǎng)絡(luò)的基本要素,通過地址碼各個(gè)設(shè)備才能從網(wǎng)絡(luò)上獲取自己需要的數(shù)據(jù),主機(jī)才能知道哪一個(gè)設(shè)備傳送了數(shù)據(jù)。在報(bào)文中占據(jù)1個(gè)字節(jié),可以編輯的地址從1~255,一般0號(hào)分配給主機(jī)。
功能碼是MODBUS協(xié)議為了處理基本數(shù)據(jù)獲取的一種識(shí)別碼,本文采用MODBUS RTU協(xié)議相關(guān)功能碼,MODBUS協(xié)議功能碼基本定義如表2所示。
在報(bào)文中數(shù)據(jù)的地址以及通信的數(shù)據(jù)可以被重新定義。這種定義并不影響報(bào)文的完整性,也不影響通信的效率。因此,對(duì)可燃?xì)怏w檢測的數(shù)據(jù)重新編制,并加入報(bào)文,使其數(shù)據(jù)格式固定化,從而實(shí)現(xiàn)可燃?xì)怏w檢測通信網(wǎng)絡(luò)。
表2 MODBUS協(xié)議功能碼
可燃?xì)怏w檢測從機(jī)需要傳送給主機(jī)的數(shù)據(jù)為四個(gè)通道的可燃?xì)怏w濃度,而主機(jī)給可燃?xì)怏w檢測從機(jī)設(shè)置參數(shù)有四個(gè)通道的高報(bào)警值、低報(bào)警值。對(duì)于不同的要求需要進(jìn)行對(duì)應(yīng)的報(bào)文設(shè)計(jì)與參數(shù)地址安排。
主機(jī)要取得四個(gè)通道的可燃?xì)怏w濃度,報(bào)文如下:
地址碼+03h(固定功能碼)+00h+04h(表示四個(gè)通道)+CRC校驗(yàn)。
從機(jī)正?;貞?yīng)報(bào)文如下:
地址碼+03h(固定功能碼)+00h+04h(表示四個(gè)通道)+四個(gè)通道濃度數(shù)據(jù)+CRC校驗(yàn)。
主機(jī)要對(duì)從機(jī)的參數(shù)進(jìn)行設(shè)置,必須首先定義好參數(shù)的具體地址??梢詫?shù)的地址進(jìn)行順序定義,按照通道1的低報(bào)警值、高報(bào)警值;通道2的低報(bào)警值、高報(bào)警值;通道3的低報(bào)警值、高報(bào)警值;通道4的低報(bào)警值、高報(bào)警值。可以有以下報(bào)文。
主機(jī)發(fā)出報(bào)文:
地址碼+06h(固定功能碼)+0000h(表示通道一的低報(bào)警值)+低報(bào)警數(shù)據(jù)(兩個(gè)字節(jié))+CRC校驗(yàn)
上述表達(dá)中的第3段即表示通道一的低報(bào)警值,那么依次,0001h則表示通道一的高報(bào)警值,等等。
通過這樣的設(shè)計(jì),使得整個(gè)通信網(wǎng)絡(luò)構(gòu)成了主從機(jī)的網(wǎng)絡(luò)體系。數(shù)據(jù)可以方便的從主機(jī)發(fā)送到從機(jī),或者從機(jī)返回主機(jī)。同時(shí)通過類似的設(shè)計(jì)以及擴(kuò)展,還可以讓從機(jī)交換數(shù)據(jù)。
AVR單片機(jī)信號(hào)處理流程圖如圖4所示[14]。
3.2.1可燃?xì)怏w信號(hào)線性轉(zhuǎn)換
可燃?xì)怏w檢測輸出和輸入氣體濃度之間存在非線性問題[15],可燃?xì)怏w非線性的轉(zhuǎn)換曲線如圖5所示。
3.2.2AVR單片機(jī)數(shù)據(jù)采集
AVR單片機(jī)信號(hào)處理流程中主要將可燃?xì)怏w濃度進(jìn)行A/D轉(zhuǎn)換及數(shù)據(jù)線性轉(zhuǎn)換,其中A/D轉(zhuǎn)換操作函數(shù)如下:
void ADConversion(void)//AD全部值
{
unsigned char ucRoad,i;
AD_ON_FirstOne(); //啟動(dòng)第一次AD轉(zhuǎn)換
ucAD_Complete_Flag[0] = 0;
for( ucRoad = 0; ucRoad { WDR(); while( !ucAD_Complete_Flag[ucRoad] ) //等待相應(yīng)通路AD轉(zhuǎn)換完成 { NOP(); } ucAD_Complete_Flag[ucRoad] = 0; SampleGasValue[ucRoad] = AD_Filter(siAD_Temp,AD_COLLECT_AMOUNT); //濾波處理相應(yīng)通路的AD轉(zhuǎn)換值 if( ucRoad < (sizeof(ucADCollectStruct)-1) ) //因?yàn)锳D_ON_FirstOne()中已啟動(dòng)一次AD轉(zhuǎn)換,故ucRoad等于Sizeof(ucADCollectStruct)-1時(shí)已完成所有通路AD轉(zhuǎn)換 { ADCSR = 0b10011110; ADCSR |= 0X40; //開啟AD } } ADCSR =0;//關(guān)閉AD轉(zhuǎn)換器 } 3.2.3AVR單片機(jī)和上位機(jī)通信 AVR單片機(jī)和上位機(jī)進(jìn)行串口通信程序流程圖如圖6所示。 組態(tài)控制技術(shù)是一種計(jì)算機(jī)控制技術(shù)(Monitor and Control Generated System,MCGS)一套基于Windows平臺(tái),用于快速構(gòu)造和生成上位機(jī)監(jiān)控系統(tǒng)的組態(tài)軟件系統(tǒng),基于MCGS開發(fā)了可燃?xì)怏w檢測與報(bào)警監(jiān)控和人機(jī)交互界面,能夠完成可燃?xì)怏w現(xiàn)場數(shù)據(jù)采集、實(shí)時(shí)和歷史數(shù)據(jù)處理、報(bào)警和安全機(jī)制、流程控制、動(dòng)畫顯示、趨勢(shì)曲線和報(bào)表輸出等功能[16]。 可燃?xì)怏w工程組態(tài): 3.3.1添加設(shè)備 打開MCGS選擇設(shè)備窗口,從設(shè)備工具箱進(jìn)入設(shè)備管理:將“通用串口父設(shè)備”和用戶定制設(shè)備下的“ModbusRTU”增加到選定設(shè)備之中,通信對(duì)象要與實(shí)際數(shù)量對(duì)應(yīng)上,并修改相應(yīng)的地址。 3.3.2參數(shù)設(shè)置 各讀寫數(shù)據(jù)通過通道采集或輸出,為此進(jìn)行通道添加,從“ModbusRTU設(shè)備”設(shè)置內(nèi)部屬性,進(jìn)入“ModbusRTU設(shè)備”通道屬性設(shè)置,使用“增加通道”加入需要測試的寄存器對(duì)應(yīng)的通道:添加后,對(duì)應(yīng)的通道顯示在通道列表之中,通道參數(shù)設(shè)置如圖7所示。四路讀數(shù)據(jù)將由主機(jī)讀取四路從機(jī)的可燃?xì)怏w濃度,八路寫數(shù)據(jù)由主機(jī)對(duì)從機(jī)進(jìn)行報(bào)警參數(shù)的設(shè)置。 3.3.3工程調(diào)試結(jié)果 工程組態(tài)界面及調(diào)試結(jié)果如圖8所示。 本設(shè)計(jì)采用了基于AVR單片機(jī)和組態(tài)軟件的智能可燃?xì)怏w檢測與報(bào)警系統(tǒng)后,基于MCGS 開發(fā)的人機(jī)交互界面友好,操作方便.在進(jìn)行多個(gè)通道可燃?xì)怏w檢測和報(bào)警方面具有很強(qiáng)的可擴(kuò)展性,同時(shí),采用組態(tài)軟件可以對(duì)可燃?xì)怏w進(jìn)行歷史數(shù)據(jù)的保存和查詢,便于對(duì)歷史數(shù)據(jù)進(jìn)行分析和研究,對(duì)可燃?xì)怏w的使用起到安全的保障作用。 [1] 孟 綾.天然氣管道專業(yè)監(jiān)測技術(shù)[J]. 油氣田地面工程,2011,30(11):89-90. MENG Lin. Natural gas pipeline professional monitoring technology[J].Oil and Gas Field Surface Engineering,2011,30(11):89-90. [2] 張紅俊.礦用便攜式甲烷檢測報(bào)警儀的原理及設(shè)計(jì)[J].山西煤炭管理干部學(xué)院學(xué)報(bào),2005(1):78-79. ZHANG Hong-jun. Mine explosion-proof portable methane detection principle and the design of the alarming device [J]. Journal of Shanxi Coal Management Cadre Iinstitute,2005(1):78-79. [3] 王來忠,馮展杭,趙 忠,等.可燃?xì)怏w檢測報(bào)警聯(lián)動(dòng)排風(fēng)控制系統(tǒng)[J].工業(yè)安全與環(huán)保,2007,33(8):39-40. WANG Lai-zhong,FENG Zhan-hang,ZHAO Zhong,etal.Activating Ventilation control system on inflammable gas detecting and alarming[J]. Industrial Safety and Environmental Protect ion, 2007,33(8):39-40. [4] 陳昌濤,任麗靜,程 明,等.基于化工生產(chǎn)過程的有害氣體智能監(jiān)測系統(tǒng)[J].儀表技術(shù)與傳感器,2011(10):56-63. CHEN Chang-tao,REN Li-jing,CHENG Ming,etal. Intelligent monitoring system of harmful gasesBased on chemical engineering process[J]. Instrument Technique and Sensor, 2011(10):56-63. [5] 楊 永.ATmega16單片機(jī)項(xiàng)目驅(qū)動(dòng)教程[M]. 北京:電子工業(yè)出版社,2011. [6] 蔣 鵬,蔣路茸.一種新型氯氣濃度在線檢測裝置[J].化工自動(dòng)化及儀表,2008,35(5): 42-50. JIANG Peng, JIANG Lu-rong. A new type of chlorine gas concentration online detect device[J]. Control and Instruments in Chemical Industry,2008,35(5): 42-50. [7] 蘇小會(huì), 黎 超, 郎寶華, 等.便攜式光纖光譜煙氣分析儀的研制[J].儀表技術(shù)與傳感器,2011(6):23-28. SU Xiao-hui, LI Chao, LANG Bao-hua,etal. Development of portable smog analyzer instrument[J]. Instrument Technique and Sensor,2011(6):23-28. [8] 武小紅,成 立,秦 云.基于CAN 總線的分布式安全報(bào)警系統(tǒng)[J].中國安全科學(xué)學(xué)報(bào),2005,15(1):70-81. WU Xiao-hong, CHENG Li, QIN Yun. Distributive security and alarm system based on CAN bus[J]. China Safety Science Journal,2005,15(1):70-81. [9] 郭 慶,李成貴,田宏杰.智能測試儀器和系統(tǒng)中Modbus協(xié)議的實(shí)現(xiàn)[J]. 計(jì)量與測試技術(shù),2009,36(1):47-49. GUO Qin,LI Cheng-gui,TIAN Hong-jie. Application of modbus protocol in intelligent instruments and system[J]. Measurement and testing technology,2009,36(1):47-49. [10] 崔 鵬. 基于MODBUS協(xié)議智能控制系統(tǒng)設(shè)計(jì)[J]. 山西電子科技, 2010(3): 24-25. CUI Peng. Design of intelligent control system based on modbus protocol[J]. Shanxi Electronic Science and Technology, 2010(3): 24-25. [11] 侯莉莉,楊翠蘭,賈存德.基于Modbus協(xié)議的儀表上位機(jī)與PLC的通信[J].中國儀器儀表,2009(10):47-49. HOU Li-li,YANG Cui-lan,JIA Cun-de.Communication between the upper computer software and PLC based on modbus protocol[J]. China Instrumentation,2009(10):47-49. [12] 付 青,丁金華,王 輝,等.Modbus協(xié)議在智能信號(hào)變送器中的應(yīng)用[J]. 儀表技術(shù)與傳感器,2011(6):26-28. FU Qing, DING Jin hua, WANG Hui,etal. Application of modbus TCP protocol in intelligent signal transducer[J]. Instrument Technique and Sensor,2011(6):26-28. [13] 徐成杰,朱全銀,王紅華.基于MODBUS ASCII協(xié)議的變頻器遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算,2009, 22(8):44-46. XU Cheng-jie,ZHU Quan-yin,WANG Hong-hua.Frequency converter monitoring system based on modbus ASCII model[J]. Industrial Control Calculation,2009, 22(8):44-46. [14] 趙 娜,宋文愛.基于MSP430單片機(jī)的溫度和瓦斯報(bào)警系統(tǒng)的設(shè)計(jì)[J].儀表技術(shù)與傳感器,2008(8): 49-60. ZHAO Na, SONG Wen-ai. Design of alarm system of temperature and gas based on MSP430[J]. Instrument Technique and Sensor,2008(8): 49-60. [15] 吳艷麗,郭慧勇,張瑞敏,等.如何提高可燃?xì)怏w檢測報(bào)警器的準(zhǔn)確性[J].工業(yè)計(jì)量增刊,2004:90-92. WU Yang-li,GUO Hui-yong,ZHANG Rui-min,etal. How to improve the accuracy of the combustible gas detection alarm system[J]. Industrial Metrology Supplement,2004:90-92. [16] 張文明.組態(tài)軟件控制技術(shù)[M]. 北京:清華大學(xué)出版社,2007.3.3 基于MCGS上位機(jī)設(shè)計(jì)
4 結(jié) 語