PLC“入駐”手機(jī)控制領(lǐng)域
AT指令執(zhí)行過程中有關(guān)問題的說明如下:
[1]、AT指令中的指令符號(hào)、常數(shù)、PDU數(shù)據(jù)包等內(nèi)容以ASCII碼形式傳送。如字符“A”的ASCII碼為41H,數(shù)字“0”的ASCII碼為30H等。
[2]、PLC向手機(jī)每發(fā)送一條指令,必須以回車符(ASCII碼為0DH)作為該條指令的結(jié)束標(biāo)志。如PLC向手機(jī)發(fā)送“AT+CMGL=0”指令,其ASCII碼序列為“41H、54H、2BH、42H、4DH、47H、4CH、3DH、30H、0DH”,其中0DH為回車符,表示該條指令結(jié)束,若沒有回車符,手機(jī)將不識(shí)別這條指令。
[3]、當(dāng)手機(jī)接收到一條AT指令后,并不立即執(zhí)行該指令,而是先把接收到的AT指令的ASCII碼序列全部回送出去(含0DH);其次發(fā)送一個(gè)回車符和換行符的ASCII碼分別為0DH和0AH;最后執(zhí)行該條指令,成功后返回一個(gè)“OK”的ASCII碼,即50H和4BH。
在發(fā)送短信時(shí),PLC首先要向手機(jī)發(fā)送“AT+CMGS=XX”
(XX為發(fā)送短信長度的兩倍加上15)指令,當(dāng)手機(jī)收到這條指令后會(huì)向PLC返回該條指令以及回車符、換行符的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)開始發(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é)長度仍為實(shí)際字節(jié)長度,而不是ASCII碼的長度,否則,接收的數(shù)據(jù)就不完整。PLC接收到PDU數(shù)據(jù)包數(shù)據(jù)后,必須將其恢復(fù)成16進(jìn)制數(shù)據(jù),采用的算法如下:
設(shè):a為接收的ASCII碼,b為轉(zhuǎn)換后的16進(jìn)制數(shù)。如果a39H,則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ù)長度為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)過大量的測(cè)試和實(shí)驗(yàn),發(fā)現(xiàn)真正短信應(yīng)該從手機(jī)返回給PLC短消息內(nèi)容的ASCII碼的第77位開始,如PLC接收短消息的存儲(chǔ)區(qū)是從VB500開始,那么真正短消息內(nèi)容(也就是在手機(jī)中看到的信息)存儲(chǔ)在VB576以后的連續(xù)單元中。在具體應(yīng)用中可以規(guī)定發(fā)送短信的格式,對(duì)于固定格式的短信可以直接賦予接收信息的存儲(chǔ)區(qū)。不過這樣接收信息的存儲(chǔ)區(qū)就是固定的而不是動(dòng)態(tài)的了。
3 結(jié)束語
該論文探討PLC嵌入手機(jī)控制技術(shù)涉及的PLC與手機(jī)的軟硬件接口,詳細(xì)分析了PLC控制手機(jī)的工作原理等內(nèi)容;并利用PLC嵌入手機(jī)控制技術(shù)實(shí)現(xiàn)了基于短距離無線通信的智能家居遙控遙測(cè)系統(tǒng),本系統(tǒng)運(yùn)行穩(wěn)定,利用手機(jī)短信對(duì)家電可進(jìn)行實(shí)時(shí)監(jiān)控。
評(píng)論