新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PLC“入駐”手機控制領域

        PLC“入駐”手機控制領域

        作者: 時間:2012-03-08 來源:網絡 收藏

        AT指令執行過程中有關問題的說明如下:

        [1]、AT指令中的指令符號、常數、PDU數據包等內容以ASCII碼形式傳送。如字符“A”的ASCII碼為41H,數字“0”的ASCII碼為30H等。

        [2]、每發送一條指令,必須以回車符(ASCII碼為0DH)作為該條指令的結束標志。如發送“AT+CMGL=0”指令,其ASCII碼序列為“41H、54H、2BH、42H、4DH、47H、4CH、3DH、30H、0DH”,其中0DH為回車符,表示該條指令結束,若沒有回車符,將不識別這條指令。

        [3]、當手機接收到一條AT指令后,并不立即執行該指令,而是先把接收到的AT指令的ASCII碼序列全部回送出去(含0DH);其次發送一個回車符和換行符的ASCII碼分別為0DH和0AH;最后執行該條指令,成功后返回一個“OK”的ASCII碼,即50H和4BH。

        在發送短信時,首先要向手機發送“AT+CMGS=XX”

        (XX為發送短信長度的兩倍加上15)指令,當手機收到這條指令后會向PLC返回該條指令以及回車符、換行符的ASCII碼并隨后返回字符“>”的ASCII碼,即3EH;然后等待PLC向它發送短信內容的ASCII碼,當短信發送成功后,手機還會向PLC發送“OK”的ASCII碼。發送短信的AT指令和發送短信的內容要分次向PLC發送,在發送AT指令后需等待手機返回字符“>”的ASCII碼后,才可再向手機發送新的短信內容的ASCII碼,否則,就會失敗。因此在PLC編程中首先定義接收信息的結束符為“OK”的ASCII碼,當開始發送短信時要把接收信息的結束符改為“>”的ASCII碼,再發送AT指令,當把短信內容都發送給手機后,再把接收信息的結束符改回為“OK”的ASCII碼。

        [4]、手機向PLC傳送短信息內容時,其PDU數據包的內容是以16進制格式表示的數據,但向PLC傳遞的并不是16進制的數據,而是每一位16進制數的ASCII碼。這樣,二個字節的16進制數就變成了4個字節的ASCII碼。在PDU數據包中的數據字節長度仍為實際字節長度,而不是ASCII碼的長度,否則,接收的數據就不完整。PLC接收到PDU數據包數據后,必須將其恢復成16進制數據,采用的算法如下:

        設:a為接收的ASCII碼,b為轉換后的16進制數。如果a39H,則b=a-30H;如果a>39H,則b=a-30H-07H。最后把前后兩個數合并為一個字節。

        [5]、手機向PLC應答PDU數據包的字節數不包括前9個字節數據(短信服務中心地址),但向PLC傳送PDU數據包時,包括這9個字節的數據。例如,手機應答的PDU數據長度為50,而實際向PLC傳送的16進制數據為59字節,ASCII碼為2*59字節,所以PLC必須按2*59個字節接受PDU數據。

        [6]、手機與PLC之間的通信就是利用短信作為信息載體并把信息傳給PLC,從而利用短信實現遠程監控。手機向PLC傳送短信息內容是以ASCII碼形式,從手機返回的ASCII碼不僅有對方發送的短信內容,還有一些不是短信內容的ASCII碼并且在真正短信內容的前面,如何從手機向PLC傳送的短信息內容中提取有用信息顯得十分重要。經過大量的測試和實驗,發現真正短信應該從手機返回給PLC短消息內容的ASCII碼的第77位開始,如PLC接收短消息的存儲區是從VB500開始,那么真正短消息內容(也就是在手機中看到的信息)存儲在VB576以后的連續單元中。在具體應用中可以規定發送短信的格式,對于固定格式的短信可以直接賦予接收信息的存儲區。不過這樣接收信息的存儲區就是固定的而不是動態的了。

        3 結束語

        該論文探討PLC嵌入手機技術涉及的PLC與手機的軟硬件接口,詳細分析了PLC手機的工作原理等內容;并利用PLC嵌入手機技術實現了基于短距離無線通信的智能家居遙控遙測系統,本系統運行穩定,利用手機短信對家電可進行實時監控。


        上一頁 1 2 下一頁

        關鍵詞: 領域 控制 手機 入駐 PLC

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 澄江县| 江达县| 商都县| 临泽县| 信丰县| 水城县| 彭水| 岫岩| 保德县| 虞城县| 舒城县| 九龙城区| 鸡西市| 杭锦后旗| 吴桥县| 青海省| 麻阳| 星子县| 多伦县| 汉寿县| 曲周县| 方城县| 西盟| 永安市| 筠连县| 五峰| 砀山县| 合山市| 莎车县| 永清县| 盖州市| 曲松县| 容城县| 白沙| 阿拉尔市| 大厂| 图木舒克市| 高尔夫| 武山县| 叙永县| 驻马店市|