基于gsm公網(wǎng)的plc遠(yuǎn)程通信的設(shè)計(jì)與實(shí)現(xiàn)
2.5 電平轉(zhuǎn)換器設(shè)計(jì)
fx2系列plc的編程接口采用rs-422標(biāo)準(zhǔn),而計(jì)算機(jī)的串行口采用rs-232標(biāo)準(zhǔn)。因此,作為實(shí)現(xiàn)plc計(jì)算機(jī)通信的接口電路,必須將rs-422標(biāo)準(zhǔn)轉(zhuǎn)換成rs-232標(biāo)準(zhǔn)。rs-232與rs-422標(biāo)準(zhǔn)在信號(hào)的傳送、邏輯電平均不相同。rs-232采用單端接收器和單端發(fā)送器,只用一根信號(hào)線來(lái)傳送信息,并且根據(jù)該信號(hào)線上電平相對(duì)于公共的信號(hào)地電平的大小來(lái)決定邏輯的“1”。rs-422標(biāo)準(zhǔn)是一種以平衡方式傳輸?shù)臉?biāo)準(zhǔn),即雙端發(fā)送和雙端接收,根據(jù)兩條傳輸線之間的電位差值來(lái)決定邏輯狀態(tài)。rs-422電路由發(fā)送器、平衡連接電纜、電纜終端負(fù)載和接收器組成。它通過(guò)平衡發(fā)送器和差動(dòng)接收器將邏輯電平和電位差之間進(jìn)行轉(zhuǎn)換。作者選用maxim公司的max232實(shí)現(xiàn)rs-232與ttl之間的電平轉(zhuǎn)換。max232內(nèi)部有電壓倍增電路和轉(zhuǎn)換電路,僅需+5v電源就可工作,使用十分方便;選用max485實(shí)現(xiàn)rs-485與ttl之間的轉(zhuǎn)換。每片max485有一對(duì)發(fā)送器/接收器,由于通信采用全雙工方式,故需兩片max485,另外只需外接4只電容即可。
圖5 tc35接口電路
3.軟件設(shè)計(jì)
系統(tǒng)的軟件設(shè)計(jì)包括:下位機(jī)軟件設(shè)計(jì);上位機(jī)軟件設(shè)計(jì);下位機(jī)與上位機(jī)通信軟件設(shè)計(jì)。
3.1短消息pdu格式分析及實(shí)用的at命令
發(fā)送和接收sms信息有兩種方式:基于at命令的text mode(文本模式)和基于at命令的pdu(protocol description unit) mode模式。西門(mén)子的手機(jī)大多只支持pdu模式,在pdu模式下短信息正文經(jīng)過(guò)編碼后轉(zhuǎn)換成unicode碼被傳送。由于我們采用的是西門(mén)子的tc35手機(jī)模塊和tc35t手機(jī)終端,所以本文主要探討pdu模式的發(fā)送和接收。
下面通過(guò)對(duì)發(fā)送的短消息格式分析,來(lái)介紹sms pdu的數(shù)據(jù)格式。假設(shè)準(zhǔn)備發(fā)送中文短消息內(nèi)容為“晚上好123”。首先,將tc35t與計(jì)算機(jī)的串口相連,并打開(kāi)計(jì)算機(jī)的超級(jí)終端:
3.1.1發(fā)送短消息的具體操作過(guò)程如下(帶下劃線字符為響應(yīng)信息,{}內(nèi)為注釋?zhuān)?p>
at
ok {計(jì)算機(jī)與手機(jī)的連接成功,這時(shí)就可以輸入各類(lèi)gsm at指令了}
at+cnmi=1,1,2
ok {設(shè)置收到短消息提示}
當(dāng)模塊收到短消息時(shí),給出回應(yīng):
例如:+cmti:“sm”,4
at+cmgf=0
ok {設(shè)置模塊工作的模式:0為pdu模式,1為文本模式}
at+cmgs=26{發(fā)送短消息的字節(jié)數(shù)}
》0891 683108200905f0 0103 0d91 683199312523f9 3208 0c 65a4e0a597d003100320033//
鍵入ctrl+z,看到提示符-》出現(xiàn)在 后一個(gè)數(shù)字后面,說(shuō)明系統(tǒng)已經(jīng)收到了命令。系統(tǒng)會(huì)返回操作的結(jié)果。
ok {ok表示成功,error表示發(fā)送失敗}
+cmgs:32
下面分析這條信息:
08:表示短消息中心地址長(zhǎng)度
91:表示短消息中心號(hào)碼類(lèi)型
683108200905f0:表示短消息房屋中心號(hào)碼
0103:表示發(fā)送短消息的編碼方式
0d:表示目的地址長(zhǎng)度
91:表示目的地址類(lèi)型
683199312523f9:表示目的地址,即接收短消息的手機(jī)號(hào)碼為:13991352329
3208:表示發(fā)送中文字符方式
0c:表示短消息長(zhǎng)度
665a4e0a597d003100320033:表示發(fā)送中文字符的unicode碼
665a {晚} 4e0a{上} 597d{好} 0031{1} 0032{2} 0033{ 3}
3.1.2模塊接收短消息的分析:
at+cmgr={閱讀短消息的內(nèi)容,index 表示短消息存放的位置}
at+cmgl= {列表短信息:stat =0,列未讀過(guò)的短消息;stat =4,列所有的短消息}
。玞mgl: 1,2,,24 {1表示信息個(gè)數(shù),2表示未發(fā)信息,24表示信息總?cè)萘縸
at+cmgd={刪除短消息,index 表示短消息存放的位置}
ok {刪除成功}
3.2 下位機(jī)軟件設(shè)計(jì)
包括:數(shù)據(jù)采集及a/d轉(zhuǎn)換程序;越限報(bào)警程序。
3.3上位機(jī)軟件設(shè)計(jì)
包括:監(jiān)控中心主界面設(shè)計(jì);數(shù)據(jù)庫(kù)程序設(shè)計(jì)。
3.4下位機(jī)與上位機(jī)通信軟件設(shè)計(jì)
因?yàn)橄挛粰C(jī)與上位機(jī)通信是通過(guò)短消息來(lái)完成的,所以通信軟件設(shè)計(jì)的關(guān)鍵是單片機(jī)如何發(fā)送at命令。
4.結(jié)束語(yǔ)
本文采用短消息業(yè)務(wù)完成數(shù)據(jù)采集與監(jiān)測(cè)終端與控制中心的通信。實(shí)現(xiàn)了數(shù)據(jù)采集與監(jiān)測(cè)終端的遙控,遠(yuǎn)程控制電源的通斷;遙測(cè),遠(yuǎn)程測(cè)量各種開(kāi)關(guān)量;遙調(diào),遠(yuǎn)程調(diào)節(jié)各種增益;遙訊,遠(yuǎn)程查詢(xún)采集各種模擬量。短消息業(yè)務(wù)具有永遠(yuǎn)在線、不需撥號(hào)、價(jià)格便宜、覆蓋范圍廣等優(yōu)勢(shì),特別適用于需頻繁傳送小數(shù)據(jù)量的應(yīng)用,還適用于偏遠(yuǎn)地區(qū)、架設(shè)通信線路困難的地方。對(duì)于數(shù)據(jù)采集與監(jiān)測(cè)終端來(lái)說(shuō),它一般放在無(wú)人值守地區(qū),應(yīng)用短消息業(yè)務(wù)來(lái)傳送數(shù)據(jù) 為合適。作者設(shè)計(jì)的該系統(tǒng)現(xiàn)在已經(jīng)投入運(yùn)行,實(shí)踐證明了該系統(tǒng)工作非常的可靠。