自由口模式下PLC與M20 GSM Modem的通信
概述
---- 本例說(shuō)明如何以自由協(xié)議實(shí)現(xiàn)S7-200與M20 GSM Modem的通信。可實(shí)現(xiàn)的功能為:當(dāng)M20收到GSM短信息時(shí)理斜,可以自動(dòng)向發(fā)送方回發(fā)一條短信息桌偎,信息的內(nèi)容由用戶自行定義。
AT指令:
---- 本例中使用的AT指令主要有四個(gè):
短信息格式選擇指令CMGF
---- M20支持兩種格式的短信息余源,PDU格式和TEXT格式慈肯。
---- AT+CMGF=0 設(shè)置短信為PDU格式(默認(rèn))
---- AT+CMGF=1 設(shè)置短信為T(mén)EXT格式
---- 本例中將使用TEXT格式,因此必須對(duì)M20進(jìn)行初始化天枣。
讀短信息指令CMGR
---- 指令格式為:AT+CMGR=< index >遭歉,index一般為1到15的整數(shù),視SIM卡的容量而定袖指,它表示所要閱讀的短信息在SIM卡中的存儲(chǔ)位置肪援。在本例中,由于收到的短信息在閱讀后都會(huì)被刪除熟什,因此每次收到的短信息都會(huì)被保存到第一個(gè)存儲(chǔ)位置堕义,在收到短信息后,用AT+CMGR=1即可閱讀脆栋。
發(fā)送短信息指令CMGS
---- 指令格式為:AT+CMGS= 倦卖,da為目標(biāo)手機(jī)號(hào),如"13800138000"椿争。M20接到指令后返回一個(gè)"〉"提示輸入短信內(nèi)容怕膛,短信內(nèi)容以CHR(26)結(jié)束。
刪除短信息指令CMGD
---- 指令格式為:AT+CMGD=< index >秦踪,index與讀指令中的index含義相同褐捻。本例中使用AT+CMGD=1來(lái)刪除收到的短信息。
---- 注:所有的指令都以CHR(13)作為結(jié)束
PLC程序執(zhí)行過(guò)程:
---- PLC在第一次掃描時(shí)執(zhí)行初始化子程序椅邓,對(duì)端口及RCV指令進(jìn)行初始化舍扰,并向M20發(fā)送AT+CMGF=1設(shè)置短信息格式為T(mén)EXT格式。初始化完成后希坚,運(yùn)行RCV指令使端口處于接受狀態(tài)边苹。
---- 當(dāng)M20收到短信息時(shí),會(huì)發(fā)送 +CMTI: "SM", 1 在PLC的接收完成中斷中判斷CMTI這四個(gè)字符來(lái)對(duì)M1.0進(jìn)行置位裁僧,在主程序中通過(guò)該標(biāo)志位調(diào)用ReadSMS子程序短琴。
---- ReadSMS子程序中執(zhí)行的操作為:復(fù)位子程序的觸發(fā)條件(復(fù)位M1.0),置位M0.0智榆,停止端口的接收膏般,然后向M20發(fā)送AT+CMGR=1閱讀收到的短信息儿趋。置位M0.0的目的是在發(fā)送完成中斷中判斷是哪個(gè)子程序執(zhí)行了發(fā)送操作,從而重新對(duì)RCV指令進(jìn)行設(shè)置娜珍,以接收Modem返回的信息(其他的子程序也采用了相同的做法:SendSM1的觸發(fā)位為M1.1蛔乖,子程序執(zhí)行時(shí)置位M0.1;SendSM2的觸發(fā)位為M1.2踏拓,子程序執(zhí)行時(shí)置位M0.2赃剂;DelSM的觸發(fā)位為M1.3,子程序執(zhí)行時(shí)置位M0.3韩烹;ReSend的觸發(fā)位為M1.4淑停,子程序執(zhí)行時(shí)置位M0.4)。Modem在接收到AT+CMGR=1后會(huì)將收到短信息的內(nèi)容發(fā)送給PLC酿势,信息的格式為:
---- +CMGR: "REC UNREAD","+8613801184286",,"02/03/05,13:44:12+32"
---- CALL ME
---- OK
---- 其中"CALL ME"為短信息的實(shí)際內(nèi)容锰抡,該信息轉(zhuǎn)換為十六進(jìn)制的形式為:
---- 0D 0A 2B 43 4D 47 52 3A 20 22 52 45 43 20 55 4E 52 45 41 44 22 2C 22 2B 38 36 31 33 38 30 31 31 38 34 32 38 36 22 2C 2C 22 30 32 2F 30 33 2F 30 35 2C 31 33 3A 34 34 3A 31 32 2B 33 32 22 0D 0A 43 41 4C 4C 20 4D 45 0D 0A 0D 0A 4F 4B 0D 0A
---- 這樣,在發(fā)送完成中斷中互艾,以M0.0為條件试和,將RCV指令的接收的起始字符設(shè)置為空格符CHR(32)(十六進(jìn)制的20)用以接受M20發(fā)送的短信息內(nèi)容。在接收完成中斷中纫普,用接受緩沖的第一個(gè)字節(jié)等于CHR(32)來(lái)觸發(fā)SendSMS1子程序灰署。
---- SendSMS1子程序?qū)氖盏蕉绦畔⒌膬?nèi)容中提取出發(fā)送方的電話號(hào)碼,并向M20發(fā)送AT+CMGS="發(fā)送方號(hào)碼"局嘁,Modem在接到該指令后返回的信息為:
---- >
---- 對(duì)應(yīng)的十六進(jìn)制形式為:
---- 0D 0A 3E 20
---- 其中0D 0A為不可顯示字符溉箕,20為空格符
---- 這樣,在發(fā)送完成中斷中以M0.1位條件設(shè)置接收的起始字符為"〉"CHR(62)用以接受M20發(fā)送的提示信息悦昵。在接收完成中斷中肴茄,用接受緩沖的第一個(gè)字節(jié)等于CHR(62)來(lái)觸發(fā)SendSMS2子程序。
---- SendSMS2子程序?qū)⑺l(fā)送的內(nèi)容加上結(jié)束字符CHR(26)發(fā)送個(gè)給M20但指。如果短信息正確發(fā)送寡痰,M20返回 +CMGS: xxx(xxx為該SIM卡已發(fā)送的短信數(shù)量);如果信息未能正確發(fā)送棋凳,則M20返回 +CMS ERROR拦坠。在接收完成中斷中,用CMGS來(lái)觸發(fā)DelSMS子程序朵椿,用ERROR來(lái)觸發(fā)ReSend子程序佳跃。
---- DelSMS子程序向M20發(fā)送AT+CMGD=1用來(lái)刪除收到的短信息,ReSend子程序重新發(fā)送SendSMS1中的指令A(yù)T+CMGS=" 發(fā)送方號(hào)碼"俭宁。
---- 點(diǎn)擊下在原程序
---- 附:Modem發(fā)送的信息格式
---- 收到短信息時(shí):
---- +CMTI: "SM", 1
---- 0D 0A 2B 43 4D 54 49 3A 20 22 53 4D 22 2C 20 31 0D 0A
---- 讀取短信息內(nèi)容時(shí):
---- +CMGR: "REC UNREAD","+8613801184286",,"02/03/05,13:44:12+32"
---- CALL ME
---- OK
---- 0D 0A 2B 43 4D 47 52 3A 20 22 52 45 43 20 55 4E 52 45 41 44 22 2C 22 2B 38 36 31 33 38 30 31 31 38 34 32 38 36 22 2C 2C 22 30 32 2F 30 33 2F 30 35 2C 31 33 3A 34 34 3A 31 32 2B 33 32 22 0D 0A 43 41 4C 4C 20 4D 45 0D 0A 0D 0A 4F 4B 0D 0A
---- 發(fā)送短信息時(shí):
---- >
---- 0D 0A 3E 20
---- 發(fā)送成功時(shí):
---- +CMGS: 160
---- OK
---- 0D 0A 2B 43 4D 47 53 3A 20 31 36 30 0D 0A 0D 0A 4F 4B 0D 0A
---- 發(fā)送失敗時(shí):
---- +CMS ERROR: 500
說(shuō)明:此應(yīng)用為西門(mén)子公司提供的Beta版啦别,僅供參考,望大家多提寶貴意見(jiàn)贷营!
---- 本例說(shuō)明如何以自由協(xié)議實(shí)現(xiàn)S7-200與M20 GSM Modem的通信。可實(shí)現(xiàn)的功能為:當(dāng)M20收到GSM短信息時(shí)理斜,可以自動(dòng)向發(fā)送方回發(fā)一條短信息桌偎,信息的內(nèi)容由用戶自行定義。
AT指令:
---- 本例中使用的AT指令主要有四個(gè):
短信息格式選擇指令CMGF
---- M20支持兩種格式的短信息余源,PDU格式和TEXT格式慈肯。
---- AT+CMGF=0 設(shè)置短信為PDU格式(默認(rèn))
---- AT+CMGF=1 設(shè)置短信為T(mén)EXT格式
---- 本例中將使用TEXT格式,因此必須對(duì)M20進(jìn)行初始化天枣。
讀短信息指令CMGR
---- 指令格式為:AT+CMGR=< index >遭歉,index一般為1到15的整數(shù),視SIM卡的容量而定袖指,它表示所要閱讀的短信息在SIM卡中的存儲(chǔ)位置肪援。在本例中,由于收到的短信息在閱讀后都會(huì)被刪除熟什,因此每次收到的短信息都會(huì)被保存到第一個(gè)存儲(chǔ)位置堕义,在收到短信息后,用AT+CMGR=1即可閱讀脆栋。
發(fā)送短信息指令CMGS
---- 指令格式為:AT+CMGS= 倦卖,da為目標(biāo)手機(jī)號(hào),如"13800138000"椿争。M20接到指令后返回一個(gè)"〉"提示輸入短信內(nèi)容怕膛,短信內(nèi)容以CHR(26)結(jié)束。
刪除短信息指令CMGD
---- 指令格式為:AT+CMGD=< index >秦踪,index與讀指令中的index含義相同褐捻。本例中使用AT+CMGD=1來(lái)刪除收到的短信息。
---- 注:所有的指令都以CHR(13)作為結(jié)束
PLC程序執(zhí)行過(guò)程:
---- PLC在第一次掃描時(shí)執(zhí)行初始化子程序椅邓,對(duì)端口及RCV指令進(jìn)行初始化舍扰,并向M20發(fā)送AT+CMGF=1設(shè)置短信息格式為T(mén)EXT格式。初始化完成后希坚,運(yùn)行RCV指令使端口處于接受狀態(tài)边苹。
---- 當(dāng)M20收到短信息時(shí),會(huì)發(fā)送 +CMTI: "SM", 1 在PLC的接收完成中斷中判斷CMTI這四個(gè)字符來(lái)對(duì)M1.0進(jìn)行置位裁僧,在主程序中通過(guò)該標(biāo)志位調(diào)用ReadSMS子程序短琴。
---- ReadSMS子程序中執(zhí)行的操作為:復(fù)位子程序的觸發(fā)條件(復(fù)位M1.0),置位M0.0智榆,停止端口的接收膏般,然后向M20發(fā)送AT+CMGR=1閱讀收到的短信息儿趋。置位M0.0的目的是在發(fā)送完成中斷中判斷是哪個(gè)子程序執(zhí)行了發(fā)送操作,從而重新對(duì)RCV指令進(jìn)行設(shè)置娜珍,以接收Modem返回的信息(其他的子程序也采用了相同的做法:SendSM1的觸發(fā)位為M1.1蛔乖,子程序執(zhí)行時(shí)置位M0.1;SendSM2的觸發(fā)位為M1.2踏拓,子程序執(zhí)行時(shí)置位M0.2赃剂;DelSM的觸發(fā)位為M1.3,子程序執(zhí)行時(shí)置位M0.3韩烹;ReSend的觸發(fā)位為M1.4淑停,子程序執(zhí)行時(shí)置位M0.4)。Modem在接收到AT+CMGR=1后會(huì)將收到短信息的內(nèi)容發(fā)送給PLC酿势,信息的格式為:
---- +CMGR: "REC UNREAD","+8613801184286",,"02/03/05,13:44:12+32"
---- CALL ME
---- OK
---- 其中"CALL ME"為短信息的實(shí)際內(nèi)容锰抡,該信息轉(zhuǎn)換為十六進(jìn)制的形式為:
---- 0D 0A 2B 43 4D 47 52 3A 20 22 52 45 43 20 55 4E 52 45 41 44 22 2C 22 2B 38 36 31 33 38 30 31 31 38 34 32 38 36 22 2C 2C 22 30 32 2F 30 33 2F 30 35 2C 31 33 3A 34 34 3A 31 32 2B 33 32 22 0D 0A 43 41 4C 4C 20 4D 45 0D 0A 0D 0A 4F 4B 0D 0A
---- 這樣,在發(fā)送完成中斷中互艾,以M0.0為條件试和,將RCV指令的接收的起始字符設(shè)置為空格符CHR(32)(十六進(jìn)制的20)用以接受M20發(fā)送的短信息內(nèi)容。在接收完成中斷中纫普,用接受緩沖的第一個(gè)字節(jié)等于CHR(32)來(lái)觸發(fā)SendSMS1子程序灰署。
---- SendSMS1子程序?qū)氖盏蕉绦畔⒌膬?nèi)容中提取出發(fā)送方的電話號(hào)碼,并向M20發(fā)送AT+CMGS="發(fā)送方號(hào)碼"局嘁,Modem在接到該指令后返回的信息為:
---- >
---- 對(duì)應(yīng)的十六進(jìn)制形式為:
---- 0D 0A 3E 20
---- 其中0D 0A為不可顯示字符溉箕,20為空格符
---- 這樣,在發(fā)送完成中斷中以M0.1位條件設(shè)置接收的起始字符為"〉"CHR(62)用以接受M20發(fā)送的提示信息悦昵。在接收完成中斷中肴茄,用接受緩沖的第一個(gè)字節(jié)等于CHR(62)來(lái)觸發(fā)SendSMS2子程序。
---- SendSMS2子程序?qū)⑺l(fā)送的內(nèi)容加上結(jié)束字符CHR(26)發(fā)送個(gè)給M20但指。如果短信息正確發(fā)送寡痰,M20返回 +CMGS: xxx(xxx為該SIM卡已發(fā)送的短信數(shù)量);如果信息未能正確發(fā)送棋凳,則M20返回 +CMS ERROR拦坠。在接收完成中斷中,用CMGS來(lái)觸發(fā)DelSMS子程序朵椿,用ERROR來(lái)觸發(fā)ReSend子程序佳跃。
---- DelSMS子程序向M20發(fā)送AT+CMGD=1用來(lái)刪除收到的短信息,ReSend子程序重新發(fā)送SendSMS1中的指令A(yù)T+CMGS=" 發(fā)送方號(hào)碼"俭宁。
---- 點(diǎn)擊下在原程序
---- 附:Modem發(fā)送的信息格式
---- 收到短信息時(shí):
---- +CMTI: "SM", 1
---- 0D 0A 2B 43 4D 54 49 3A 20 22 53 4D 22 2C 20 31 0D 0A
---- 讀取短信息內(nèi)容時(shí):
---- +CMGR: "REC UNREAD","+8613801184286",,"02/03/05,13:44:12+32"
---- CALL ME
---- OK
---- 0D 0A 2B 43 4D 47 52 3A 20 22 52 45 43 20 55 4E 52 45 41 44 22 2C 22 2B 38 36 31 33 38 30 31 31 38 34 32 38 36 22 2C 2C 22 30 32 2F 30 33 2F 30 35 2C 31 33 3A 34 34 3A 31 32 2B 33 32 22 0D 0A 43 41 4C 4C 20 4D 45 0D 0A 0D 0A 4F 4B 0D 0A
---- 發(fā)送短信息時(shí):
---- >
---- 0D 0A 3E 20
---- 發(fā)送成功時(shí):
---- +CMGS: 160
---- OK
---- 0D 0A 2B 43 4D 47 53 3A 20 31 36 30 0D 0A 0D 0A 4F 4B 0D 0A
---- 發(fā)送失敗時(shí):
---- +CMS ERROR: 500
說(shuō)明:此應(yīng)用為西門(mén)子公司提供的Beta版啦别,僅供參考,望大家多提寶貴意見(jiàn)贷营!
(工業(yè)自動(dòng)化系統(tǒng) > s7 200)
聲明:本網(wǎng)站所收集的部分公開(kāi)資料來(lái)源于互聯(lián)網(wǎng)怯录,轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享尿欲,并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),也不構(gòu)成任何其他建議牡呀。本站部分作品是由網(wǎng)友自主投稿和發(fā)布溜舷、編輯整理上傳,對(duì)此類作品本站僅提供交流平臺(tái)轧黑,不為其版權(quán)負(fù)責(zé)开摄。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻、圖片极金、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)第一時(shí)間告知潮峦,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國(guó)家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容囱皿,以保證您的權(quán)益!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn忱嘹。
網(wǎng)友評(píng)論
匿名:
最新反饋
注冊(cè)獲取更多行業(yè)信息
- 暫無(wú)反饋
無(wú)須注冊(cè)堡喳,輕松溝通
編輯推薦
- 2025新年特刊:打造新質(zhì)生產(chǎn)力,智啟未來(lái)新篇章
- 定義制造業(yè)未來(lái)的數(shù)控加工中心技術(shù)專題
- 航空航天及交通領(lǐng)域先進(jìn)制造技術(shù)應(yīng)用專題
- 解碼消費(fèi)電子產(chǎn)品生產(chǎn)的數(shù)字化之路技術(shù)專題
- 精密智能機(jī)床夹它,助力制造升級(jí)技術(shù)專題
- 汽車(chē)輕量化驅(qū)動(dòng)下的零部件加工應(yīng)用專題
- 高性能銑刀實(shí)現(xiàn)高精加工生產(chǎn)技術(shù)專題
- 航空航天發(fā)動(dòng)機(jī)解決方案專題
- 高效齒輪加工生產(chǎn)技術(shù)方案專題
- 金屬加工液的性能不止?jié)櫥夹g(shù)應(yīng)用專題