《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 用GSM MODEM實(shí)現(xiàn)Hostlink系統(tǒng)的遠(yuǎn)程無線監(jiān)控

用GSM MODEM實(shí)現(xiàn)Hostlink系統(tǒng)的遠(yuǎn)程無線監(jiān)控

2008-07-23
作者:程文鋒1,2,楊祥龍1,葛永明2

??? 摘 要: 用GSM MODEM實(shí)現(xiàn)Hostlink系統(tǒng)的遠(yuǎn)程無線監(jiān)控" title="遠(yuǎn)程無線監(jiān)控">遠(yuǎn)程無線監(jiān)控的方法,通過Hostlink協(xié)議的串行通訊成功地解決了單片機(jī)與使用Hostlink協(xié)議PLC的數(shù)據(jù)交換問題,實(shí)現(xiàn)了使用手提電話或計(jì)算機(jī)對Hostlink系統(tǒng)的遠(yuǎn)程無線監(jiān)控。
??? 關(guān)鍵詞: Hostlink;GSM;遠(yuǎn)程無線監(jiān)控

?

??? 可編程程序控制器PLC以其可靠性高、抗干擾強(qiáng)、開發(fā)周期短而廣泛應(yīng)用于工業(yè)生產(chǎn)與控制的各個(gè)領(lǐng)域中。OMRON是世界主要的PLC生產(chǎn)商之一,大、中、小型PLC產(chǎn)品種類繁多,其產(chǎn)品較早就在國內(nèi)廣泛應(yīng)用。但目前應(yīng)用中的大量PLC工業(yè)系統(tǒng)都是單機(jī)運(yùn)行,具體設(shè)備的工作狀態(tài)只能在現(xiàn)場獲取。在現(xiàn)代化的生產(chǎn)與控制中,通過遠(yuǎn)程無線方式實(shí)現(xiàn)人與系統(tǒng)數(shù)據(jù)和命令的交換,對于傳統(tǒng)的單臺PLC控制的工業(yè)系統(tǒng)實(shí)施遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控顯得越來越有必要。目前,層出不窮的遠(yuǎn)程監(jiān)控系統(tǒng)迎合了廣大現(xiàn)場工作人員的需求,大大解放了勞動力。
??? 隨著通信技術(shù)的發(fā)展,基于移動通信網(wǎng)絡(luò)的服務(wù)功能向工業(yè)遙控領(lǐng)域有不斷擴(kuò)大的趨勢。為適應(yīng)這種需要,西門子公司推出了新一代無線通信GSM模塊TC35i。基于該模塊的短消息功能,可以快速安全可靠地實(shí)現(xiàn)用戶信息處理等功能,特別適用于控制中心與終端設(shè)備距離很遠(yuǎn),或不便采用有線通信介質(zhì)等場合。
??? 目前,使用GSM模塊或GSM MODEM開發(fā)的各種無線數(shù)據(jù)監(jiān)控系統(tǒng)、防盜系統(tǒng)、抄表系統(tǒng)、智能交通系統(tǒng)等不斷產(chǎn)生,但使用單片機(jī)通過GSM網(wǎng)絡(luò)監(jiān)控基于Hostlink協(xié)議的PLC系統(tǒng)目前還是空白。
1 Hostlink通信解析
1.1 Hostlink簡介

??? 上位機(jī)" title="上位機(jī)">上位機(jī)鏈接系統(tǒng)即Hostlink系統(tǒng)是對于FA系統(tǒng)一種即優(yōu)化又經(jīng)濟(jì)的通信方式,是OMRON PLC產(chǎn)品采用的一種實(shí)用有效的通信方式,它適合一臺上位機(jī)與一臺或多臺PLC進(jìn)行鏈接。上位機(jī)可對PLC傳送程序,并監(jiān)控PLC的數(shù)據(jù)區(qū)及控制PLC的工作情況。
??? Hostlink系統(tǒng)允許一臺上位機(jī)通過上位機(jī)鏈接命令向Hostlink系統(tǒng)的PLC發(fā)送命令,PLC處理來自上位機(jī)的每條指令,并把結(jié)果傳回上位機(jī)。
1.2 Hostlink通信方式
??? Hostlink系統(tǒng)通信既可以采用RS-232C方式,又可采用RS-422方式。RS-232C方式基于1對1通信,最大距離為15m;RS-422方式基于1對N的通信,即一臺上位機(jī)與多臺PLC進(jìn)行通信,最多可有32臺PLC連接到上位機(jī),最大通信距離可達(dá)500m。
??? 表1是Hostlink系統(tǒng)最主要的一個(gè)通信參數(shù)寄存器設(shè)置情況,采用最基本的RS-232C標(biāo)準(zhǔn)通信,系統(tǒng)中的DM6645設(shè)置值為4位、16進(jìn)制數(shù)1000。當(dāng)然,還有波特率等參數(shù)的設(shè)置寄存器,因?yàn)槿笔?shù)即可用,這里不再具體講述。

?


1.3 Hostlink協(xié)議解析
??? PLC通過Host Link協(xié)議與單片機(jī)進(jìn)行1:1上位鏈接通信,單片機(jī)作為上位機(jī)發(fā)送讀寫命令,實(shí)現(xiàn)的功能有: 讀寫PLC的運(yùn)行狀態(tài)、讀寫繼電器區(qū)(IR/HR/AR/LR)和數(shù)據(jù)區(qū)DM的內(nèi)容。
??? 上位機(jī)鏈接通信通過在上位機(jī)和PLC間交換命令和應(yīng)答實(shí)現(xiàn)。在一次交換中傳輸?shù)拿罨驊?yīng)答數(shù)據(jù)稱為1幀,1幀最多可包含131個(gè)數(shù)據(jù)字符。上位機(jī)鏈接命令的格式可參考C200HE/HG/HX編程手冊。
??? 上位機(jī)到PLC的命令數(shù)據(jù)幀格式如圖1(以讀取DM區(qū)為例)。

?


??? 當(dāng)傳送一個(gè)幀時(shí),在終止符的前面安排一個(gè)校驗(yàn)碼,用來檢查傳送時(shí)是否存在數(shù)據(jù)錯(cuò)誤。校驗(yàn)碼(FCS)是一個(gè)轉(zhuǎn)換成2個(gè)ASCII字符的8位數(shù)據(jù)。每次接收到1幀,都要把校驗(yàn)碼前所有字符的ASCII碼按位連續(xù)進(jìn)行異或操作,計(jì)算FCS校驗(yàn)碼,與幀中所包含的FCS碼進(jìn)行比較,從而檢查幀中的數(shù)據(jù)錯(cuò)誤。
??? 校驗(yàn)碼(FCS校驗(yàn))的計(jì)算方法見表2。

?


??? PLC返回上位機(jī)的數(shù)據(jù)幀格式如圖2(以讀取DM區(qū)返回幀為例)。

?


??? 結(jié)束碼是在應(yīng)答幀中返回的,表3列舉常見的幾種。

?


?

2 硬件設(shè)計(jì)
2.1 系統(tǒng)框圖

??? 系統(tǒng)由上位機(jī)和下位機(jī)組成,使用GSM網(wǎng)絡(luò)通過無線收發(fā)短信息" title="短信息">短信息的方式實(shí)現(xiàn)上位機(jī)與下位機(jī)間的通信如圖3所示。上位機(jī)主要是用戶手機(jī)或連接有GSM MODEM的計(jì)算機(jī),下位機(jī)則是由Hostlink系統(tǒng)、Hostlink接口單元電路和下位GSM MODEM組成。

?


2.2 GSM MODEM與Hostlink系統(tǒng)硬件接口電路
??? GSM MODEM與Hostlink系統(tǒng)接口單元電路圖如圖4所示。接口電路" title="接口電路">接口電路中的核心器件是Microchip公司的一款PIC單片機(jī)16F877。PIC的總線結(jié)構(gòu)為哈佛結(jié)構(gòu),指令和數(shù)據(jù)空間完全分開,一個(gè)用于指令,一個(gè)用于數(shù)據(jù),由于可以對程序和數(shù)據(jù)同時(shí)進(jìn)行訪問,所以提高了數(shù)據(jù)吞吐率。正因?yàn)樵赑IC系列單片機(jī)中采用了哈佛雙總線結(jié)構(gòu),所以與常見的微控制器不同的一點(diǎn)是:程序和數(shù)據(jù)總線可以采用不同的寬度。數(shù)據(jù)總線都是8位的,但16F877指令總線位數(shù)為14位。該單片機(jī)用來控制向GSM MODEM和Hostlink系統(tǒng)的串口" title="串口">串口發(fā)送或接收數(shù)據(jù),還將接收到Hostlink系統(tǒng)傳上來的現(xiàn)場數(shù)據(jù)與上下限幅值進(jìn)行比較,有越限現(xiàn)象時(shí),立即向上位機(jī)發(fā)送報(bào)警信息。

?

?

圖4? GSM MODEM與Hostlink系統(tǒng)接口單元電路圖


??? CD4016是一款4雙向模擬開關(guān),用來實(shí)現(xiàn)GSM MODEM和Hostlink系統(tǒng)對接口電路串口的共享。用PIC單片機(jī)的2個(gè)I/O口——RB5和RB6控制開關(guān)的通斷,需要與GSM MODEM通信時(shí),將RB5置高,RB6置低;反之將RB5置低,RB6置高便可關(guān)閉與GSM MODEM的通信,接通與Hostlink系統(tǒng)的串口連接。
??? 接口電路與Hostlink系統(tǒng)(OMRON PLC)通信時(shí),可以采用兩種通信方式。一種是RS232方式,實(shí)現(xiàn)接口電路與Hostlink系統(tǒng)的一對一通信;另一種是RS485通信,實(shí)現(xiàn)與多臺Hostlink系統(tǒng)的1對N通信,線路中的MAX485芯片用來將單片機(jī)串口信號轉(zhuǎn)換成RS485信號從A、B兩個(gè)端子輸出。電路中設(shè)有一個(gè)4bit的指撥開關(guān),用來切換串口的通信方式。
3 軟件設(shè)計(jì)
??? 系統(tǒng)軟件流程如圖5所示。

?


3.1 GSM MODEM的SMS發(fā)送與接收
??? SMS(短信息)的發(fā)送和接收是單片機(jī)通過串口發(fā)送AT指令完成的,不同的AT命令可以完成不同的SMS操作功能。
??? 發(fā)送短信時(shí),首先設(shè)置TC35i模塊的工作模式:AT+CMGF=n,n=0為PDU模式,n=l為文本模式。通常設(shè)置為PDU模式,在這種模式下可以接收和發(fā)送中文信息。但PDU模式下,每條短信信息量只有70個(gè)字符,而文本模式可以發(fā)送160個(gè)ASCII碼字符,所以本系統(tǒng)向GSM MODEM發(fā)送AT+CMGF=1,工作模式設(shè)成文本模式,有利于提高單條短信的信息量,同時(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收到的上位機(jī)命令。
??? GSM MODEM可以用AT+CMGS命令向上位機(jī)發(fā)送返回信息,具體格式為:AT+CMGS=″13*********″。延時(shí)幾毫秒等待MODEM回復(fù)一個(gè)準(zhǔn)備接收的字符后,即可通過串口向上位機(jī)發(fā)送信息的具體內(nèi)容了,最后跟上一個(gè)結(jié)束符,ASCII碼為0x1A。
??? 系統(tǒng)中用到的幾個(gè)AT命令說明如表4。

?


3.2 GSM MODEM與Hostlink系統(tǒng)的通訊編程
??? 系統(tǒng)程序在Microchip IDE V7.31環(huán)境下開發(fā),采用CCS的C語言編程。下面提供幾個(gè)有關(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í)器參數(shù)
?????? setup_timer_0(RTCC_DIV_16|RTCC_INTERNAL);
?????? enable_interrupts(INT_timer0);//開啟定時(shí)器中斷
?????? 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ù)導(dǎo)入緩沖區(qū)
??? }
??? (3)向上位機(jī)發(fā)送數(shù)據(jù)信息程序段
??? void SendDataToUser()
????? {? printf(″at+cmgs=%c″,34);//向GSM MODEM發(fā)送短信息發(fā)送命令
???????? for(k=0x20;k<=0x2A;k++)//讀取上位機(jī)用戶手機(jī)號碼
???????????? {? printf(″%c″,read_eeprom(k));
??????????? ?}
???????? printf(″%cr″,34);
???????? delay_ms(80);//延時(shí)等待GSM MODEM準(zhǔn)備好接收短信息
???????? printf(″Current Limit:r″);//發(fā)送短信息
???????? for(k=0;k<8;k++)//這里發(fā)送的是當(dāng)前各路參數(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();//計(jì)算發(fā)送幀校驗(yàn)碼,得到FcsH和FcsL
???????? printf(″@00RR0000001');//向Hostlink發(fā)送數(shù)據(jù)幀
???????? printf('%c%c″,F(xiàn)csH,F(xiàn)csL);接著發(fā)校驗(yàn)碼
???????? printf(″?鄢r″);//發(fā)命令幀結(jié)束符
????? }
??? GSM MODEM價(jià)格低廉、應(yīng)用廣泛,而且該模塊利用簡單經(jīng)濟(jì)、應(yīng)用廣泛的RS232串口通信,有利于各種單片機(jī)和計(jì)算機(jī)系統(tǒng)集成。系統(tǒng)硬件成本較低,通過與手機(jī)模塊接口可以方便地設(shè)計(jì)出用戶所需要的數(shù)據(jù)接收終端。在偏遠(yuǎn)地區(qū)等架設(shè)通信線路困難或不經(jīng)濟(jì)的地方,使用這種無線通信方式,使得系統(tǒng)實(shí)時(shí)監(jiān)控不再受地形條件的限制。
??? 本文所述的基于GSM的遠(yuǎn)程無線監(jiān)控系統(tǒng)已經(jīng)成功應(yīng)用于小型水輪發(fā)電機(jī)組和汽輪發(fā)電機(jī)組中,對Hostlink系統(tǒng)的遠(yuǎn)程無線監(jiān)控已完成實(shí)驗(yàn)室調(diào)試。該方法不僅適用于對單臺Hostlink設(shè)備的監(jiān)控,也可以將多臺Hostlink設(shè)備通過RS485網(wǎng)組織起來,實(shí)現(xiàn)多臺遠(yuǎn)程無線監(jiān)控。通過Hostlink協(xié)議的串行通訊成功地解決了單片機(jī)與Omron PLC的數(shù)據(jù)交換問題。實(shí)踐表明,該方法非常實(shí)用、靈活方便,依靠GSM成熟通信網(wǎng)絡(luò),數(shù)據(jù)發(fā)送安全可靠,而且成本低廉,具有良好的社會效益和經(jīng)濟(jì)效益。
參考文獻(xiàn)
[1] 歐姆龍公司.C200HS可編程控制器編程手冊[M].北京:電子工業(yè)出版社,2002.
[2] 林粵偉,魏權(quán)利.基于GSM短通信的無線網(wǎng)絡(luò)環(huán)保監(jiān)測系統(tǒng)的研制[J].微計(jì)算機(jī)信息,2005,(1):71-72.[3] 曹尉青,韓冰.利用GSM短消息實(shí)現(xiàn)遠(yuǎ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è)大學(xué)學(xué)報(bào),2006,34(2):190-194.
[6] 徐光憲,劉建輝,陳萬志.串行通信在監(jiān)控系統(tǒng)中的應(yīng)用研究[J].微計(jì)算機(jī)信息,2004,20(7):25-27.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。