PLC“入駐”手機(jī)控制領(lǐng)域
1 引言
隨著計(jì)算機(jī)技術(shù)、通信網(wǎng)絡(luò)技術(shù)和PLC技術(shù)的飛速發(fā)展,目前針對(duì)工業(yè)以太網(wǎng)技術(shù)的PLC應(yīng)用技術(shù)已經(jīng)成熟;而針對(duì)因特網(wǎng)、GSM/GPRS通訊網(wǎng)絡(luò)的PLC應(yīng)用技術(shù)還處于初級(jí)階段。
本文將GSM公網(wǎng)作為信息傳遞的載體,手機(jī)作為監(jiān)控設(shè)備,在PLC嵌入手機(jī)控制技術(shù)應(yīng)用到控制領(lǐng)域的研究課題中,對(duì)關(guān)于PLC與手機(jī)軟硬件接口技術(shù)和控制手機(jī)的工作原理進(jìn)行了深入的研究,并利用該技術(shù)實(shí)現(xiàn)了基于短距離無(wú)線通信的智能家居遙控遙測(cè)系統(tǒng)。
2 GSM數(shù)字移動(dòng)通信系統(tǒng)
GSM的全稱是“全球移動(dòng)通信系統(tǒng)”(GlobalsySTemformobilecommunicatiONs),它是數(shù)據(jù)通信技術(shù)和移動(dòng)通信技術(shù)的結(jié)合。GSM數(shù)字移動(dòng)通信系統(tǒng)源于歐洲,在蜂窩移動(dòng)通信系統(tǒng)的基礎(chǔ)上發(fā)展起來(lái)。GSM無(wú)線數(shù)據(jù)業(yè)務(wù)使得人們可隨時(shí)隨地獲取所需的信息,可以在移動(dòng)中收發(fā)E-mail、收發(fā)傳真、訪問(wèn)Internet等服務(wù)。GSM數(shù)字移動(dòng)通信系統(tǒng)支持的業(yè)務(wù)包括:電信業(yè)務(wù)、電話業(yè)務(wù)、緊急呼叫業(yè)務(wù)、短消息業(yè)務(wù)、智能用戶電報(bào)傳送業(yè)務(wù)、承載業(yè)務(wù)。此外,GSM數(shù)字移動(dòng)通信系統(tǒng)還能提供號(hào)碼類(lèi)、呼叫提供類(lèi)、呼叫完成類(lèi)、多方通信類(lèi)、計(jì)費(fèi)類(lèi)、集團(tuán)類(lèi)、附加信息傳送類(lèi)和呼叫限制類(lèi)8大類(lèi)補(bǔ)充業(yè)務(wù)。PLC嵌入手機(jī)控制技術(shù)就是利用GSM的短信息業(yè)務(wù)來(lái)實(shí)現(xiàn)的。
3 PLC嵌入手機(jī)控制技術(shù)
3.1 PLC與手機(jī)的硬件接口連接
手機(jī)通過(guò)其數(shù)據(jù)口以串行方式可以接收/發(fā)送數(shù)據(jù)。手機(jī)的數(shù)據(jù)線采用RS-232接口標(biāo)準(zhǔn),專(zhuān)為連接PC機(jī)的RS-232串口設(shè)計(jì)的;PLC串口的采用RS-485標(biāo)準(zhǔn),通過(guò)RS-232到RS-485轉(zhuǎn)換器就可以與手機(jī)數(shù)據(jù)線直接連接。本文采用的是在手機(jī)串口數(shù)據(jù)線與PLC串口之間進(jìn)行了改動(dòng)而進(jìn)行連接,具體連接如圖1所示:
手機(jī)內(nèi)部電源一般為3.8V,與PLC通信時(shí),雙方發(fā)送握手協(xié)議信號(hào)為DSR(Modem準(zhǔn)備好)信號(hào)和DTR(數(shù)據(jù)終端準(zhǔn)備好)信號(hào)。采用圖1連接方式可始終保持DSR信號(hào)和DTR信號(hào)有效,起到欺騙電壓的作用,欺騙電壓一般在+3V~+9V為有效狀態(tài),手機(jī)電壓僅為3.8V,欺騙電壓不夠,易產(chǎn)生干擾,故需外接+6V直流電源,分別與圖1中的1、2端子相接,1、2端子分別接電源的正極和負(fù)極。轉(zhuǎn)接時(shí),第9端口一般不用。
3.2 PLC與手機(jī)的軟件接口及控制原理
PLC與手機(jī)的軟件接口是指PLC通過(guò)使用與GSM短信息有關(guān)的AT指令控制手機(jī)的控制技術(shù),如讀取手機(jī)的短消息內(nèi)容,刪除短消息內(nèi)容,列出手機(jī)中還未讀的短消息等。關(guān)于AT指令的功能描述請(qǐng)參考相關(guān)資料,此處不再贅述。AT指令的執(zhí)行過(guò)程需要PLC與手機(jī)交互應(yīng)答完成,每一次發(fā)送或接受的字節(jié)數(shù)都有嚴(yán)格的規(guī)定,二者必須依據(jù)這些規(guī)定實(shí)現(xiàn)數(shù)據(jù)交換,否則,通信就會(huì)失敗。手機(jī)與PLC之間的數(shù)據(jù)傳輸采用ASCII碼形式,為清楚了解PLC與手機(jī)的通信過(guò)程,在表1中沒(méi)有采用ASCII碼形式,而是采用字符格式進(jìn)行說(shuō)明。表1中列出了最常用的AT指令的執(zhí)行過(guò)程,其它AT指令的執(zhí)行過(guò)程與上述的基本相同。
[!--empirenews.page--]
AT指令執(zhí)行過(guò)程中有關(guān)問(wèn)題的說(shuō)明如下:
[1]、AT指令中的指令符號(hào)、常數(shù)、PDU數(shù)據(jù)包等內(nèi)容以ASCII碼形式傳送。如字符“A”的ASCII碼為41H,數(shù)字“0”的ASCII碼為30H等。
[2]、PLC向手機(jī)每發(fā)送一條指令,必須以回車(chē)符(ASCII碼為0DH)作為該條指令的結(jié)束標(biāo)志。如PLC向手機(jī)發(fā)送“AT+CMGL=0”指令,其ASCII碼序列為“41H、54H、2BH、42H、4DH、47H、4CH、3DH、30H、0DH”,其中0DH為回車(chē)符,表示該條指令結(jié)束,若沒(méi)有回車(chē)符,手機(jī)將不識(shí)別這條指令。
[3]、當(dāng)手機(jī)接收到一條AT指令后,并不立即執(zhí)行該指令,而是先把接收到的AT指令的ASCII碼序列全部回送出去(含0DH);其次發(fā)送一個(gè)回車(chē)符和換行符的ASCII碼分別為0DH和0AH;最后執(zhí)行該條指令,成功后返回一個(gè)“OK”的ASCII碼,即50H和4BH。
在發(fā)送短信時(shí),PLC首先要向手機(jī)發(fā)送“AT+CMGS=XX”
(XX為發(fā)送短信長(zhǎng)度的兩倍加上15)指令,當(dāng)手機(jī)收到這條指令后會(huì)向PLC返回該條指令以及回車(chē)符、換行符的ASCII碼并隨后返回字符“>”的ASCII碼,即3EH;然后等待PLC向它發(fā)送短信內(nèi)容的ASCII碼,當(dāng)短信發(fā)送成功后,手機(jī)還會(huì)向PLC發(fā)送“OK”的ASCII碼。發(fā)送短信的AT指令和發(fā)送短信的內(nèi)容要分次向PLC發(fā)送,在發(fā)送AT指令后需等待手機(jī)返回字符“>”的ASCII碼后,才可再向手機(jī)發(fā)送新的短信內(nèi)容的ASCII碼,否則,就會(huì)失敗。因此在PLC編程中首先定義接收信息的結(jié)束符為“OK”的ASCII碼,當(dāng)開(kāi)始發(fā)送短信時(shí)要把接收信息的結(jié)束符改為“>”的ASCII碼,再發(fā)送AT指令,當(dāng)把短信內(nèi)容都發(fā)送給手機(jī)后,再把接收信息的結(jié)束符改回為“OK”的ASCII碼。
[4]、手機(jī)向PLC傳送短信息內(nèi)容時(shí),其PDU數(shù)據(jù)包的內(nèi)容是以16進(jìn)制格式表示的數(shù)據(jù),但向PLC傳遞的并不是16進(jìn)制的數(shù)據(jù),而是每一位16進(jìn)制數(shù)的ASCII碼。這樣,二個(gè)字節(jié)的16進(jìn)制數(shù)就變成了4個(gè)字節(jié)的ASCII碼。在PDU數(shù)據(jù)包中的數(shù)據(jù)字節(jié)長(zhǎng)度仍為實(shí)際字節(jié)長(zhǎng)度,而不是ASCII碼的長(zhǎng)度,否則,接收的數(shù)據(jù)就不完整。PLC接收到PDU數(shù)據(jù)包數(shù)據(jù)后,必須將其恢復(fù)成16進(jìn)制數(shù)據(jù),采用的算法如下:
設(shè):a為接收的ASCII碼,b為轉(zhuǎn)換后的16進(jìn)制數(shù)。如果a<39H,則b=a-30H;如果a>39H,則b=a-30H-07H。最后把前后兩個(gè)數(shù)合并為一個(gè)字節(jié)。
[5]、手機(jī)向PLC應(yīng)答PDU數(shù)據(jù)包的字節(jié)數(shù)不包括前9個(gè)字節(jié)數(shù)據(jù)(短信服務(wù)中心地址),但向PLC傳送PDU數(shù)據(jù)包時(shí),包括這9個(gè)字節(jié)的數(shù)據(jù)。例如,手機(jī)應(yīng)答的PDU數(shù)據(jù)長(zhǎng)度為50,而實(shí)際向PLC傳送的16進(jìn)制數(shù)據(jù)為59字節(jié),ASCII碼為2*59字節(jié),所以PLC必須按2*59個(gè)字節(jié)接受PDU數(shù)據(jù)。
[6]、手機(jī)與PLC之間的通信就是利用短信作為信息載體并把信息傳給PLC,從而利用短信實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。手機(jī)向PLC傳送短信息內(nèi)容是以ASCII碼形式,從手機(jī)返回的ASCII碼不僅有對(duì)方發(fā)送的短信內(nèi)容,還有一些不是短信內(nèi)容的ASCII碼并且在真正短信內(nèi)容的前面,如何從手機(jī)向PLC傳送的短信息內(nèi)容中提取有用信息顯得十分重要。經(jīng)過(guò)大量的測(cè)試和實(shí)驗(yàn),發(fā)現(xiàn)真正短信應(yīng)該從手機(jī)返回給PLC短消息內(nèi)容的ASCII碼的第77位開(kāi)始,如PLC接收短消息的存儲(chǔ)區(qū)是從VB500開(kāi)始,那么真正短消息內(nèi)容(也就是在手機(jī)中看到的信息)存儲(chǔ)在VB576以后的連續(xù)單元中。在具體應(yīng)用中可以規(guī)定發(fā)送短信的格式,對(duì)于固定格式的短信可以直接賦予接收信息的存儲(chǔ)區(qū)。不過(guò)這樣接收信息的存儲(chǔ)區(qū)就是固定的而不是動(dòng)態(tài)的了。
3 結(jié)束語(yǔ)
該論文探討PLC嵌入手機(jī)控制技術(shù)涉及的PLC與手機(jī)的軟硬件接口,詳細(xì)分析了PLC控制手機(jī)的工作原理等內(nèi)容;并利用PLC嵌入手機(jī)控制技術(shù)實(shí)現(xiàn)了基于短距離無(wú)線通信的智能家居遙控遙測(cè)系統(tǒng),本系統(tǒng)運(yùn)行穩(wěn)定,利用手機(jī)短信對(duì)家電可進(jìn)行實(shí)時(shí)監(jiān)控。