sms基础知识介绍 sms(short messaging service)是早的短消息业务,也是现在普及率高的一种短消息业务。目前,这种短消息的长度被限定在140字节之内,这些字节可以是文本的。sms以简单方便的使用功能受到大众的欢迎,却始终是属于代的无线数据服务,在内容和应用方面存在技术标准的限制。 ......
一、sms基础知识介绍
sms(short messaging service)是早的短消息业务,也是现在普及率高的一种短消息业务。目前,这种短消息的长度被限定在140字节之内,这些字节可以是文本的。sms以简单方便的使用功能受到大众的欢迎,却始终是属于代的无线数据服务,在内容和应用方面存在技术标准的限制。
一个sms消息长可包括 160个字符(偶数二进制)。
sms是一种存储和转发服务。也就是说,短消息并不是直接从发送人发送到接收人,而始终通过sms中心进行转发的。如果接收人处于未连接状态(可能电话已关闭),则消息将在接收人再次连接时发送。
sms具有消息发送确认的功能。这意味着sms与寻呼不同,用户不是简单地发出短消息然后相信消息已发送成功;而是短消息发送人可以收到返回消息,通知他们短消息是否已经发送成功。
sms 消息的发送和接收可以和 gsm 语音同步进行。
sms 消息按消息收费,因此要比通过基于 ip 的网络(例如,使用 gprs [通用分组无线业务])发送的数据昂贵得多(每字节)。
要使用 sms,用户需要预订支持 sms 的移动网络,并且必须为该用户启用 sms 的使用。用户需要有发送短消息或接收短消息的目的地。该目的地通常是其他的移动电话,但也可以是服务器。后,用户还需要有支持 sms 的移动电话,并需要了解如何使用其特定型号的移动电话发送或阅读短消息。
sms发送的模式分有两种:text模式和pdu模式.
使用text模式收发短信代码简单,实现起来十分容易,但是大的缺点是不能收发中文短信, pdu模式完全可以解决这个问题,pdu模式不仅支持中文短信,也能发送英文短信, pdu模式收发短信可以使用三种编码: 7-bit、8-bit和ucs2编码。 7-bit编码用于发送普通的ascii字符,8-bit编码通常用于发送数据消息,ucs2编码用于发送unicode字符。我们要实现中文短信的发送,所以选择ucs2,即中文unicode码。下面是关于两种方式发送的示例at指令:
范例:向手机号码13801234567发送短信“weather”
(1) text方式
at+cmgf=1<cr> …………设置短信发送方式为text模式
at+cmgs=”13801234567”<cr> …………向被叫号码发短信
weather <ctrl+z>
(2) pdu方式
at+cmgf=0<cr> ……………设置短信发送方式为pdu模式
at+cmgs=018<cr> ……………向被叫号码发送pdu的长度
0001000d91683108214365f700080459296c14<ctrl+z>
注:pdu方式中at+cmgs命令解释:
at+cmgs=xxx<cr> …xxx表示pdu中tpdu的长度
pdu ...输入pdu信息
其中,红色的数字(3108214365f7)代表对方的手机号码,在pdu格式中,手机号码每两位需要对调。比如在上面这个例子里,对方的手机号码为13801234567,f用来补充7后面的空位。蓝色的数字(59296c14)是短消息内容的unicode码,这里5929代表“天”6c14代表“气”。unicode码同样可以用来表示中一般英文字母和数字,方法是在英文或数字的ascii码前加00。紫色的数字(04)代表短消息的长度,它等于其后所有字符个数除以2。黑色的数字每次发送短消息时都是相同的,使用时可以照抄,但前提是所使用的sim卡在使用前要用手机设置好短消息服务中心号码(+8613800100500)。汉字的unicode码可以通过编码转换软件得到。
pdu格式发送短消息时,还必须计算整个pdu数据包的长度,pdu数据包的长度等于(pdu数据包字符数-2)/2,在上面的例子里:(38-2)/2=18。
二、网络结构图
硬件的连接, s7-200cpu的port0口或port1口通过pc/ppi电缆连接到md720-3的串口上,md720-3插一块sim卡,且md720-3接天线。pc/ppi电缆的拨码开关设置为11100110
三、需要的软件及硬件
component
qty.
mlfb / order number
note
logo! power 24v 1.3a
1
6ep1331-1sh02
simatic s7-200 cpu 224xp
1
6es7214-2ad23-0xb0
md720-3
1
6nh9720-3aa00
ant 794-4mr antenna
1
6nh9860-1aa00
pc/ppi cable
2
6es7901-3cb30-0xa0
sim card
安全部件及软件
component
no.
mlfb / order number
note
step 7 micro/win
1
6es7810-2cc03-0yx0
四、以text的方式发送sms
在这里不介绍用自由口编程的方式编写at的指令来发送sms,而是采用西门子提供库功能块来编写程序。
上面两个库程序是压缩文件,先解压缩到一个目录下,然后打开step 7 micro/win软件导入此目录下的文件,这里的解压的目录为d:\sms\。在step 7 micro/win导入库的方式如下:
解压库文件到d:\sms目录下
打开step 7 micro/win,右键点击libraries,在弹出的菜单中选择add/remove libraries… 如下图:
在弹出的窗口里,点击 add..按钮,然后选择文件 d:\sms\set5_s7-200-libary_port0.mwl 如下图所示,然后选择 save 按钮后在选择 ok 按钮
添加后的库程序如下图:
在库程序的文件夹下有5个功能块:
sms_init: ......sms初始化块
sms_xmt_rcv_manage ......sms收发处理执行块
sms_send ......sms发送信息功能块
sms_receive ......sms接受信息功能块
sms_tele_handle ......sms远程访问处理块
程序的编写方式在主程序里依次调用sms_init; sms_send; sms_receive; sms_tele_handle如下:
1、在main程序的network1里编程如下
2、在main程序的network2里编程如下
3、在main程序的network3里编程如下
4、在main程序的network4里编程如下
5、在数据块中的定义如下
6、给功能块分配库存储区,不分配则编译程序时会报错误,分配方法如下:打开指令库下的 program block,右键点击 library,在弹出的菜单下选择 library memory...,如下图:
在弹出的 library memory allocation 的窗口里点击 suggest address 按钮,如下图会分配vb0到vb226的存储区给库程序使用,此区域的地址在程序的其它部分不可再使用
到此就完成了所有程序的编写,编译并下载程序到plc中。
调试程序
在线监控程序,先置v1000.0为1,触发初始功能化功能块初始化md720-3为发送短信为text模式,pin码为“1234”;信息中心的号码为“+8613501363718”(北京的短信中心服务号)。
初始化成功后sms_init_done位为1;sms_init_status返回值为15。
初始化成功后,置位v1000.4为1,触发信息的发送功能,发送的目的手机号为“13801234567”;发送的信息为“weather”。
发送成功后sms_send_done位为1;sms_send_status返回值为6.
这样就完成了信息的发送。
注意:上面的库功能块,除了sms_xmt_rcv_manage不需在主程序里编写为,其它四个功能块都必须依次调用,且调用的条件是每个循环周期都执行条件是sm0.0。即使是不收发sms,也需要调用sms_send;sms_receive; sms_tele_handle,原因是plc与md720-3信息交换是需要sms_send;sms_receive; sms_tele_handle功能块来处理的,即使只是初始化md720-3,不接收和发送信息也是需要全调用的,否则无法初始化成功。
五、以pdu的方式发送中文sms
由于前面使用的短信库程序只是发送text文本,不能发送pdu码,所以需要对库程序进行修改,使其能够发送中文短信,把发送模式改为pdu模式,步骤如下:
1、按照上面发送text模式的步骤编写程序、并保持程序。
2、选择名为“sms_init”子程序块,此子程序被保护不可查看,但在程序的说明里给出了此子程序的密码为“1234”如下图:
3、右键点击sms_init子程序,在弹出的菜单中选择properties...,如下图:
4、在弹出的窗口里,选择 protection 选项,并在 password 栏里输入密码“1234”,然后点击 authorize 按钮,如下图:
5、此时显示该子程序可以编辑修改,然后修改此子程序的network24,把原来〝at+cmgf=1$r〞改为〝at+cmgf=0$r〞如下图:
6、保存修改后的程序,同样的方法修改sms_send子程序的network5如下图
7、保存修改后的程序,打开数据块修改发送功能块的参数如下图:
编译并下载程序。发送的方法与前面介绍的发送文本方式一样。
六、库功能块的状态信息