上海西门子数控系统中国授权经销商
1、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指令:
范例:向手机号码发送短信“Weather”
(1) TEXT方式
AT+CMGF=1
AT+CMGS=””
> Weather
(2) PDU方式
AT+CMGF=0
AT+CMGS=018
>0001000D965FC14
注:PDU方式中AT+CMGS命令解释:
AT+CMGS=XXX
>PDU ...输入PDU信息
0001 :基本参数
00 :消息基准值TP-MR
0D :目标地址数字个数(十进制,不包含91)
91 :目标地址格式
68 :目标地址为中国
F7 :目标地址()
00 :协议标示TP-PID
08 :用户信息编码格式TP-DCS(08表示UCS2编码)
00 :有效期TP-VP
04 :用户信息长度TP-UDL
59296C14 :用户信息(“天气”)
其中,红色的数字(F7)代表对方的手机号码,在PDU格式中,手机号码每两位需要对调。比如在上面这个例子里,对方的手机号码为,F用来补充7后面的空位。蓝色的数字(59296C14)是短消息内容的Unicode码,这里5929代表“天”6C14代表“气”。Unicode码同样可以用来表示中一般英文字母和数字,方法是在英文或数字的ASCII码前加00。
紫色的数字(04)代表短消息的长度,它等于其后所有字符个数除以2。黑色的数字每次发送短消息时都是相同的,使用时可以照抄,但前提是所使用的SIM卡在使用前要用手机设置好短消息服务中心号码(+86)。汉字的Unicode码可以通过编码转换软件得到。
PDU格式发送短消息时,还必须计算整个PDU数据包的长度,PDU数据包的长度等于(PDU数据包字符数-2)/2,在上面的例子里:(38-2)/2=18
2、网络结构图
硬件的连接, S7-300CP后接CP340(RS232串口)或CP341(RS232串口),再通过串口直连线连接CP340或CP341到MD720-3的串口上,MD720-3插一块SIM卡。直连线的1针到9针对应连接。
3、需要的软件及硬件
硬件
Component Qty. MLFB / Order number Note
PS307 5 A 1 6ES7307-1EA00-0AA0
CPU317-2PN/DP 1 6ES7317-2EJ10-0AB0
CP341 1 6ES7341-1AH01-0AE0
MD720-3 1 6NH9720-3AA00
直连线 1 6ES7901-3CB30-0XA0
SIM card
硬件列表
Component No. MLFB / Order number Note
STEP 7 5.4 SP4 1 6ES7810-4CC08-0YA5
4、以TEXT的方式发送SMS
在这里不介绍用自由口编程的方式编写AT的指令来发送SMS,而是采用西门子提供库功能块来编写程序。库程序的下载链接地址如下:26100569
上面库程序是压缩文件,先解压缩到一个目录下,在该目录下又会看到3个压缩文件,再解压这三个压缩文件,解压缩后如下图所示:
存放目录
从上图中,解压三个压缩文件后Sms_bloc;SMS_MD720_Application;Sms_MD720_Simple
Sms_bloc: 包括了使用CP340、CP341、CP442-1收发短信的库功能。
Sms_MD720_Application:包含了用CP341和CP442-1收发短信的应用程序。
Sms_MD720_Simple:包含了一个用Cp341收发短信的简单应用程序
由于三个文件夹的程序只有Sms_MD720_Simple的程序是完整的,另外两个文件夹下的程序由于编者的疏忽,程序不完整,导致无法正常编译通过。所以在本文里我们只能介绍,通过拷贝Sms_MD720_Simple项目下的功能块到实际的项目中来实现发送短信的功能。
在新建项目前,需要硬件按照网络图安装好,并加电。MD720加电后恢复出厂设置,让其工作在终端模式下(在MD720的系统手册上介绍如何恢复出厂设置,这里不再作详细介绍),恢复后用串口直连线,连接MD720与计算机的串口,打开计算机的超级终端程序,打开方式如下图:
打开超级终端
打开后在连接描述的窗口里输入一个连接名
输入连接名
点击OK后,选择与计算机连接的串口,这里连接的是串口1,所以设置如下图:
选择COM端口
在上图点击OK按钮后,设置串口的通讯参数如下:
COM口的参数设置
点击OK按钮后,在出现的串口里先输入 “+++”后,输入“AT”检查与Modem的连接是否正常,若正常则Modem会返回OK,如下图:
测试与Modem的连接
然后在输入指令“AT+IRP=9600”修改通讯波特率为9600如下图所示:
设置Modem的波特率
修改成功后,把连接计算机上的串口拔下后,把9针口连接到CP341的串口上。
打开Step7 Manger,打开后点击File菜单下的New…,新建一个项目,在新建项目的串口里输入项目SMS_CP341,然后点击新建,项目的硬件组态 :
S7-300站的硬件组态
双击CP341-RS232C,打开属性窗口 :
在发送功能块的背景数据块中设置PIN码、目的手机号及信息
修改后保存DB100,并下载所有的程序块到CPU中。下载后打开打开变量监控表并在线监控,如下图:
(1)如果信号电缆和电源电缆之间的间距小于15cm时,必须在信号电缆和电源电缆之间设置屏蔽用的金属隔板,并将隔板接地。
(2)当信号电缆和电源电缆垂直方向或水平方向分离安装时,信号电缆和电源电缆之间的间距应大于15cm.
注意:对于某些干扰特别大的应用场合,如电源电缆上挂接电压为220V AC,电流在10A以上感性负载,而且电源电缆不带屏蔽层时,那么要求它与信号电缆的垂直方向间隔距离必须在60cm以上。