S7-200与GSM MODEN的问题

在AT+CMGS命令中,我在CMGF=1(text模式)时信息能发送成功了,
 现在的问题是在CMGF=0(PDU模式)时,信息发不出来,或者说是不明白怎么发送.请高手指点.谢谢!我这里把相关资料贴上来,大家看看.另外谁手头上有中文的详细资料?能发给我一份吗?如果觉得分不够我可以再加.
 2) If PDU mode(+CMGF=0):
 +CMGS=<length><CR>
 PDU is given <ctrl-Z/ESC>
 ESC aborts message
 其中:<length> 是指->

 integer type value indicating in PDU mode (+CMGF=0), the
 length of the actual TP data unit in octets (i.e. the RP layer
 SMSC address octets are not counted in the length).

问题补充:
我手头上有一个GSM MODEM,它相当于一个手机,它上面有一个串口,通过电脑上的串口,比如我的是COM5.通过超级终端或串口调试工具向串口上发送AT指令就可以了.现在是人工发送,所以不要代码什么的来写程序.我是这样操作的,上电后输入AT<CR>看是否已连接上GSM了没有,再输入AT&F0恢复出厂值,AT&D0忽略DTR状态,ATS0=1振铃1声后自动应答,AT+IPR=9600设置波特率,AT&W0将当前设置存为用户配置文件,ATZ0以用户配置文件从新启动.

 AT+CMGF=1(设为Text模式)
 AT+CMGS=13655814828<CR>
 >输入发送的内容,这是ASCII码
 Ctrl+Z(或16进制的1A)
 GSM会返回
 +CMGS:100
 OK
 这表示当前信息发送第100条成功.这是在Text模式下

 在AT+CMGF=0(PDU模式下)时
 发送
 AT+CMGS=<CR>[CR表示回车]
 >0031000D91683156854128F80000A704D4F29C0E
 Ctrl+Z(或16进制的1A)
 这时返回的OK,而不是CMGS:101 OK
 实际中短信也是未发送成功的.
 说明一下上面一串8进制数的意思,
 00终端设备将读取SIM中设置的SCA填充到SMS-PUD中
   当然也试过用0891683108501705F0
 31是PDU Type(意思见下面发的网址)
 00表示MR,设成00
 0D91683156854128F8是向这个人手机上发信息
 00是PID(意思见下面发的网址)
 00是DCS(意思见下面发的网址)
 A7是VP(意思见下面发的网址)
 04是UDL即消息的长度
 D4F29C0E是消息的内容(即Test)
 为什么会发送不成功呢?
 我觉得是还有别的什么内容没设置好,所以消息发送不成功.

最佳答案

数据组织比较麻烦,如果中间有什么错误,就发送不成功。当初是拿我的西门子CX65手机做实验,得到数据格式的。有一个软件,可以在电脑上编辑短信,通过红外或串口(原理是一样的)传到手机,然后手机将短信发送出去,通过监控串口,得到到指令的格式,然后再根据手册,对应的修改数据。
 有几点要注意的是:号码2位一组,组内顺序要倒换。length不包含短线中心号码(就是上面那段说明),时间长了,很多都记得不是很清楚了。

提问者对于答案的评价:
最好是还能回答一下我的补充问题.谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc138902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月1日
下一篇 2017年6月1日

相关推荐