??? 摘 要: 用GSM MODEM實現(xiàn)Hostlink系統(tǒng)的遠程無線監(jiān)控" title="遠程無線監(jiān)控">遠程無線監(jiān)控的方法,通過Hostlink協(xié)議的串行通訊成功地解決了單片機與使用Hostlink協(xié)議PLC的數(shù)據(jù)交換問題,實現(xiàn)了使用手提電話或計算機對Hostlink系統(tǒng)的遠程無線監(jiān)控。
??? 關(guān)鍵詞: Hostlink;GSM;遠程無線監(jiān)控
?
??? 可編程程序控制器PLC以其可靠性高、抗干擾強、開發(fā)周期短而廣泛應用于工業(yè)生產(chǎn)與控制的各個領(lǐng)域中。OMRON是世界主要的PLC生產(chǎn)商之一,大、中、小型PLC產(chǎn)品種類繁多,其產(chǎn)品較早就在國內(nèi)廣泛應用。但目前應用中的大量PLC工業(yè)系統(tǒng)都是單機運行,具體設(shè)備的工作狀態(tài)只能在現(xiàn)場獲取。在現(xiàn)代化的生產(chǎn)與控制中,通過遠程無線方式實現(xiàn)人與系統(tǒng)數(shù)據(jù)和命令的交換,對于傳統(tǒng)的單臺PLC控制的工業(yè)系統(tǒng)實施遠程網(wǎng)絡(luò)監(jiān)控顯得越來越有必要。目前,層出不窮的遠程監(jiān)控系統(tǒng)迎合了廣大現(xiàn)場工作人員的需求,大大解放了勞動力。
??? 隨著通信技術(shù)的發(fā)展,基于移動通信網(wǎng)絡(luò)的服務功能向工業(yè)遙控領(lǐng)域有不斷擴大的趨勢。為適應這種需要,西門子公司推出了新一代無線通信GSM模塊TC35i?;谠撃K的短消息功能,可以快速安全可靠地實現(xiàn)用戶信息處理等功能,特別適用于控制中心與終端設(shè)備距離很遠,或不便采用有線通信介質(zhì)等場合。
??? 目前,使用GSM模塊或GSM MODEM開發(fā)的各種無線數(shù)據(jù)監(jiān)控系統(tǒng)、防盜系統(tǒng)、抄表系統(tǒng)、智能交通系統(tǒng)等不斷產(chǎn)生,但使用單片機通過GSM網(wǎng)絡(luò)監(jiān)控基于Hostlink協(xié)議的PLC系統(tǒng)目前還是空白。
1 Hostlink通信解析
1.1 Hostlink簡介
??? 上位機" title="上位機">上位機鏈接系統(tǒng)即Hostlink系統(tǒng)是對于FA系統(tǒng)一種即優(yōu)化又經(jīng)濟的通信方式,是OMRON PLC產(chǎn)品采用的一種實用有效的通信方式,它適合一臺上位機與一臺或多臺PLC進行鏈接。上位機可對PLC傳送程序,并監(jiān)控PLC的數(shù)據(jù)區(qū)及控制PLC的工作情況。
??? Hostlink系統(tǒng)允許一臺上位機通過上位機鏈接命令向Hostlink系統(tǒng)的PLC發(fā)送命令,PLC處理來自上位機的每條指令,并把結(jié)果傳回上位機。
1.2 Hostlink通信方式
??? Hostlink系統(tǒng)通信既可以采用RS-232C方式,又可采用RS-422方式。RS-232C方式基于1對1通信,最大距離為15m;RS-422方式基于1對N的通信,即一臺上位機與多臺PLC進行通信,最多可有32臺PLC連接到上位機,最大通信距離可達500m。
??? 表1是Hostlink系統(tǒng)最主要的一個通信參數(shù)寄存器設(shè)置情況,采用最基本的RS-232C標準通信,系統(tǒng)中的DM6645設(shè)置值為4位、16進制數(shù)1000。當然,還有波特率等參數(shù)的設(shè)置寄存器,因為缺省參數(shù)即可用,這里不再具體講述。
?
1.3 Hostlink協(xié)議解析
??? PLC通過Host Link協(xié)議與單片機進行1:1上位鏈接通信,單片機作為上位機發(fā)送讀寫命令,實現(xiàn)的功能有: 讀寫PLC的運行狀態(tài)、讀寫繼電器區(qū)(IR/HR/AR/LR)和數(shù)據(jù)區(qū)DM的內(nèi)容。
??? 上位機鏈接通信通過在上位機和PLC間交換命令和應答實現(xiàn)。在一次交換中傳輸?shù)拿罨驊饠?shù)據(jù)稱為1幀,1幀最多可包含131個數(shù)據(jù)字符。上位機鏈接命令的格式可參考C200HE/HG/HX編程手冊。
??? 上位機到PLC的命令數(shù)據(jù)幀格式如圖1(以讀取DM區(qū)為例)。
?
??? 當傳送一個幀時,在終止符的前面安排一個校驗碼,用來檢查傳送時是否存在數(shù)據(jù)錯誤。校驗碼(FCS)是一個轉(zhuǎn)換成2個ASCII字符的8位數(shù)據(jù)。每次接收到1幀,都要把校驗碼前所有字符的ASCII碼按位連續(xù)進行異或操作,計算FCS校驗碼,與幀中所包含的FCS碼進行比較,從而檢查幀中的數(shù)據(jù)錯誤。
??? 校驗碼(FCS校驗)的計算方法見表2。
?
??? PLC返回上位機的數(shù)據(jù)幀格式如圖2(以讀取DM區(qū)返回幀為例)。
?
??? 結(jié)束碼是在應答幀中返回的,表3列舉常見的幾種。
?
?
2 硬件設(shè)計
2.1 系統(tǒng)框圖
??? 系統(tǒng)由上位機和下位機組成,使用GSM網(wǎng)絡(luò)通過無線收發(fā)短信息" title="短信息">短信息的方式實現(xiàn)上位機與下位機間的通信如圖3所示。上位機主要是用戶手機或連接有GSM MODEM的計算機,下位機則是由Hostlink系統(tǒng)、Hostlink接口單元電路和下位GSM MODEM組成。
?
2.2 GSM MODEM與Hostlink系統(tǒng)硬件接口電路
??? GSM MODEM與Hostlink系統(tǒng)接口單元電路圖如圖4所示。接口電路" title="接口電路">接口電路中的核心器件是Microchip公司的一款PIC單片機16F877。PIC的總線結(jié)構(gòu)為哈佛結(jié)構(gòu),指令和數(shù)據(jù)空間完全分開,一個用于指令,一個用于數(shù)據(jù),由于可以對程序和數(shù)據(jù)同時進行訪問,所以提高了數(shù)據(jù)吞吐率。正因為在PIC系列單片機中采用了哈佛雙總線結(jié)構(gòu),所以與常見的微控制器不同的一點是:程序和數(shù)據(jù)總線可以采用不同的寬度。數(shù)據(jù)總線都是8位的,但16F877指令總線位數(shù)為14位。該單片機用來控制向GSM MODEM和Hostlink系統(tǒng)的串口" title="串口">串口發(fā)送或接收數(shù)據(jù),還將接收到Hostlink系統(tǒng)傳上來的現(xiàn)場數(shù)據(jù)與上下限幅值進行比較,有越限現(xiàn)象時,立即向上位機發(fā)送報警信息。
?
?
圖4? GSM MODEM與Hostlink系統(tǒng)接口單元電路圖
??? CD4016是一款4雙向模擬開關(guān),用來實現(xiàn)GSM MODEM和Hostlink系統(tǒng)對接口電路串口的共享。用PIC單片機的2個I/O口——RB5和RB6控制開關(guān)的通斷,需要與GSM MODEM通信時,將RB5置高,RB6置低;反之將RB5置低,RB6置高便可關(guān)閉與GSM MODEM的通信,接通與Hostlink系統(tǒng)的串口連接。
??? 接口電路與Hostlink系統(tǒng)(OMRON PLC)通信時,可以采用兩種通信方式。一種是RS232方式,實現(xiàn)接口電路與Hostlink系統(tǒng)的一對一通信;另一種是RS485通信,實現(xiàn)與多臺Hostlink系統(tǒng)的1對N通信,線路中的MAX485芯片用來將單片機串口信號轉(zhuǎn)換成RS485信號從A、B兩個端子輸出。電路中設(shè)有一個4bit的指撥開關(guān),用來切換串口的通信方式。
3 軟件設(shè)計
??? 系統(tǒng)軟件流程如圖5所示。
?
3.1 GSM MODEM的SMS發(fā)送與接收
??? SMS(短信息)的發(fā)送和接收是單片機通過串口發(fā)送AT指令完成的,不同的AT命令可以完成不同的SMS操作功能。
??? 發(fā)送短信時,首先設(shè)置TC35i模塊的工作模式:AT+CMGF=n,n=0為PDU模式,n=l為文本模式。通常設(shè)置為PDU模式,在這種模式下可以接收和發(fā)送中文信息。但PDU模式下,每條短信信息量只有70個字符,而文本模式可以發(fā)送160個ASCII碼字符,所以本系統(tǒng)向GSM MODEM發(fā)送AT+CMGF=1,工作模式設(shè)成文本模式,有利于提高單條短信的信息量,同時還簡化了接收短信的解析工作量。
??? 然后要設(shè)置短信息的操作方式,如向GSM MODEM發(fā)送AT+CNMI =1,2,2命令,這樣短信不存,省去清理短信的麻煩,MODEM收到短信直接向串口發(fā)送:
??? +CMT: ″13*********″,,″06/07/13,02:46:53+32″
??? ××××××××××××(短信內(nèi)容)
??? 這樣通過接口電路的串口中斷,就可以接收并緩沖GSM MODEM收到的上位機命令。
??? GSM MODEM可以用AT+CMGS命令向上位機發(fā)送返回信息,具體格式為:AT+CMGS=″13*********″。延時幾毫秒等待MODEM回復一個準備接收的字符后,即可通過串口向上位機發(fā)送信息的具體內(nèi)容了,最后跟上一個結(jié)束符,ASCII碼為0x1A。
??? 系統(tǒng)中用到的幾個AT命令說明如表4。
?
3.2 GSM MODEM與Hostlink系統(tǒng)的通訊編程
??? 系統(tǒng)程序在Microchip IDE V7.31環(huán)境下開發(fā),采用CCS的C語言編程。下面提供幾個有關(guān)串口通信的程序段。
??? (1)初始化程序段
??? #include<16F877.h>//包含CPU庫文件
??? #fuses HS,NOWDT,NOPROTECT,NOLVP//設(shè)置編譯參數(shù)
?? ?#use delay(clock=4000000)//設(shè)定晶振頻率
??? #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)//設(shè)定串口通信參數(shù)
?????? set_timer0(224);//設(shè)定定時器參數(shù)
?????? setup_timer_0(RTCC_DIV_16|RTCC_INTERNAL);
?????? enable_interrupts(INT_timer0);//開啟定時器中斷
?????? enable_interrupts(global);
?????? enable_interrupts(int_rda);//開啟串口中斷
??? char string[75]//置短信息數(shù)據(jù)緩沖區(qū)
??? (2)串口中斷程序段
??? #int_rda
??? void serial_isr()//用中斷方式從串口接收數(shù)據(jù)
??? {
????????? string[i]=getc();i++;//串口接收的數(shù)據(jù)導入緩沖區(qū)
??? }
??? (3)向上位機發(fā)送數(shù)據(jù)信息程序段
??? void SendDataToUser()
????? {? printf(″at+cmgs=%c″,34);//向GSM MODEM發(fā)送短信息發(fā)送命令
???????? for(k=0x20;k<=0x2A;k++)//讀取上位機用戶手機號碼
???????????? {? printf(″%c″,read_eeprom(k));
??????????? ?}
???????? printf(″%cr″,34);
???????? delay_ms(80);//延時等待GSM MODEM準備好接收短信息
???????? printf(″Current Limit:r″);//發(fā)送短信息
???????? for(k=0;k<8;k++)//這里發(fā)送的是當前各路參數(shù)的上下限幅值
??????????? {printf(″AI%u:%u--%u%%r″,k,limit[k+8],limit[k]);}
?????????? printf(″%c″,0x1A);//短信結(jié)束符
??? }
??? (4)向Hostlink系統(tǒng)發(fā)送讀取命令程序段
??? void SendCmdToHostlink()
??????{? ComputeFCS();//計算發(fā)送幀校驗碼,得到FcsH和FcsL
???????? printf(″@00RR0000001');//向Hostlink發(fā)送數(shù)據(jù)幀
???????? printf('%c%c″,F(xiàn)csH,F(xiàn)csL);接著發(fā)校驗碼
???????? printf(″?鄢r″);//發(fā)命令幀結(jié)束符
????? }
??? GSM MODEM價格低廉、應用廣泛,而且該模塊利用簡單經(jīng)濟、應用廣泛的RS232串口通信,有利于各種單片機和計算機系統(tǒng)集成。系統(tǒng)硬件成本較低,通過與手機模塊接口可以方便地設(shè)計出用戶所需要的數(shù)據(jù)接收終端。在偏遠地區(qū)等架設(shè)通信線路困難或不經(jīng)濟的地方,使用這種無線通信方式,使得系統(tǒng)實時監(jiān)控不再受地形條件的限制。
??? 本文所述的基于GSM的遠程無線監(jiān)控系統(tǒng)已經(jīng)成功應用于小型水輪發(fā)電機組和汽輪發(fā)電機組中,對Hostlink系統(tǒng)的遠程無線監(jiān)控已完成實驗室調(diào)試。該方法不僅適用于對單臺Hostlink設(shè)備的監(jiān)控,也可以將多臺Hostlink設(shè)備通過RS485網(wǎng)組織起來,實現(xiàn)多臺遠程無線監(jiān)控。通過Hostlink協(xié)議的串行通訊成功地解決了單片機與Omron PLC的數(shù)據(jù)交換問題。實踐表明,該方法非常實用、靈活方便,依靠GSM成熟通信網(wǎng)絡(luò),數(shù)據(jù)發(fā)送安全可靠,而且成本低廉,具有良好的社會效益和經(jīng)濟效益。
參考文獻
[1] 歐姆龍公司.C200HS可編程控制器編程手冊[M].北京:電子工業(yè)出版社,2002.
[2] 林粵偉,魏權(quán)利.基于GSM短通信的無線網(wǎng)絡(luò)環(huán)保監(jiān)測系統(tǒng)的研制[J].微計算機信息,2005,(1):71-72.[3] 曹尉青,韓冰.利用GSM短消息實現(xiàn)遠程監(jiān)控[J].無線電工程.2002,32(10):21-23.
[4] Microchip Technology Inc.PIC16F87X Data Sheet 2001[DB/OL].http://www.microchip.com.
[5] 楊海清,李敏,楊海虹.基于HostLink通訊協(xié)議的制水流程測控網(wǎng)絡(luò)系統(tǒng)[J].浙江工業(yè)大學學報,2006,34(2):190-194.
[6] 徐光憲,劉建輝,陳萬志.串行通信在監(jiān)控系統(tǒng)中的應用研究[J].微計算機信息,2004,20(7):25-27.