1、SMS基础知识介绍

SMS(Short Messaging Service)是最早的短消息业务,也是现在普及率最高的一种短消息业务。目前,这种短消息的长度被限定在140字节之内,这些字节可以是文本的。SMS以简单方便的使用功能受到大众的欢迎,却始终是属于第一代的无线数据服务,在内容和应用方面存在技术标准的限制。

2、网络结构图

硬件的连接, S7-300CP后接CP340(RS232串口)或CP341(RS232串口),再通过串口直连线连接CP340或CP341到MD720-3的串口上,MD720-3插一块SIM卡。直连线的1针到9针对应连接。

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(1)

图1、网络结构图

3、需要的软件及硬件

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(2)

软件 : STEP 7

4、以TEXT的方式发送SMS

在这里不介绍用自由口编程的方式编写AT的指令来发送SMS,而是采用西门子提供库功能块来编写程序。库程序的下载可以去西门子找!

上面库程序是压缩文件,先解压缩到一个目录下,在该目录下又会看到3个压缩文件,再解压这三个压缩文件,解压缩后如下图所示:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(3)

图2、存放目录

从上图中,解压三个压缩文件后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与计算机的串口,打开计算机的超级终端程序,打开方式如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(4)

图3、打开超级终端

打开后在连接描述的窗口里输入一个连接名如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(5)

图4、输入连接名

点击OK后,选择与计算机连接的串口,这里连接的是串口1,所以设置如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(6)

图5、选择COM端口

在上图点击OK按钮后,设置串口的通讯参数如下:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(7)

图6、COM口的参数设置

点击OK按钮后,在出现的串口里先输入 “ ”后,输入“AT”检查与Modem的连接是否正常,若正常则Modem会返回OK,如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(8)

图7、测试与Modem的连接

然后在输入指令“AT IRP=9600”修改通讯波特率为9600如下图所示:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(9)

图8、设置Modem的波特率

修改成功后,把连接计算机上的串口拔下后,把9针口连接到CP341的串口上。

打开Step7 Manger,打开后点击File菜单下的New…,新建一个项目,在新建项目的串口里输入项目SMS_CP341,然后点击新建,项目的硬件组态如下图所示:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(10)

图9、S7-300站的硬件组态

双击CP341-RS232C,打开属性窗口如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(11)

图10、CP341的硬件地址设置

点击Parameter...,设置串口的通讯协议为

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(12)

图11、选择通讯协议为ASCII

双击Protocol协议包,配置串口通讯的参数如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(13)

图12、设置ASCII的通讯参数

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(14)

图13、设置传输的控制方式

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(15)

图14、设置接收的缓存区

配置完硬件后,编译并下载硬件组态,然后打开Sms_MD720_Simple项目,并拷贝Sms_MD720_Simple项目下的除OB1功能块外的所有功能块到SMS_CP341项目相应的目录下,同时需要拷贝Source下的源代码到SMS_CP341项目下的Source目录下。

拷贝后如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(16)

图15、拷贝库程序到项目下

打开OB1块,在OB1里调用FB100,背景数据块为DB100,如下图所示:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(17)

图16、OB1中调用短消息功能块

在CP_ADR中只需输入CP341的逻辑地址256。输入后保存程序。编写OB1后打开DB100数据块如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(18)

图17、在发送功能块的背景数据块中设置修改CP341的硬件地址

这里SIM卡无PIN码,要发送的信息是“Weather”;发送的手机号为“13801234567”;设置DB100的参数如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(19)

图18、在发送功能块的背景数据块中设置PIN码、目的手机号及信息

修改后保存DB100,并下载所有的程序块到CPU中。下载后打开打开变量监控表并在线监控,如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(20)

图19、通过变量监控表触发信息发送

在变量监控表里先置位”SMS”.b_init,然后在置位”SMS”.SEND,等待一会儿,可以看到变量监控表里的”SMS”.n_status当置位”SMS”.b_init时会从1002变成201,然后当置位”SMS”.SEND时会从201变成202、204、206,过一会儿又回到201的值,这样接可以再目的手机上接收到“Weather”的短信。

上面的调试步骤只是从功能上实现了发短信的功能,要实现收发多条信息到多个多个手机,可以参考Sms_MD720_Application和Sms_MD720_Simple下的编程思路开发适合自己应用的程序。

注意:如果例子项目文件打不开,请把计算机的语言设置为德语。

5、以PDU的方式发送中文SMS

要发送中文短信,需要安装Step7 SCL编程语言包,发送短信库功能块是由FB100来完成的,FB100是由SCL语言编写,要想使其能发送中文的短信,那么就需要用SCL语言修改FB100功能块。修改方式如下:

在发送文本方式步骤的基础上,用SCL语言打开SMS_CP341项目下目录Source下的SMS_Send源代码,如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(21)

图20、打开发送功能块的源文件

打开后如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(22)

图21、SCL编辑器打开后的源文件

修改源程序代码MD720_SMS_Textmode := '$R$LAT CMGF=1$R'为MD720_SMS_Textmode := '$R$LAT CMGF=0$R'如下图所示:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(23)

图22、修改短信的发送模式为PDU模式

str_outbox := SMS_Textmode_Attr;改为str_outbox :=MD720_SMS_Textmode;如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(24)

图23、修改程序中的发送模式

修改后,点击File下Save,然后再点击File下的Complie,如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(25)

图24、重新编译修改后的程序

关闭SCl编辑窗口,若发送的目的手机号为13801234567发送的内容为“天气”打开DB100,修改发送参数如下图:

西门子300plc如何接收脉冲信号(西门子300PLC如何发送短信)(26)

图25、修改为PDU模式下的信息格式

其中5929为PDU码的“天”;6C14为PDU码的“气。

修改后下载FB100和DB100功能块到CPU。打开变量监控表,在变量监控表里先置位”SMS”.b_init,然后在置位”SMS”.SEND,等待一会儿,可以看到变量监控表里的”SMS”.n_status当置位”SMS”.b_init时会从1002变成201,然后当置位”SMS”.SEND时会从201变成202、204、206,过一会儿又回到201的值,这样接可以再目的手机上接收到“天气”短信。

前面介绍用CP341发送短信,若用CP340发送短信,则需要修改库程序中。因为修改比较繁琐,这里就不再作介绍,若有需求。可通过热线联系西门子技术与支持。

,