水电电工知识
电工知识|西门子S7-300 PLC通过MD720-3发送短消息
2017-01-10  浏览:36
水电之家讯: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指令:

范例:向手机号码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信息 0001 :基本参数

00 :消息基准值TP-MR

0D :目标地址数字个数(十进制,不包含91)

91 :目标地址格式

68 :目标地址为中国

3108214365F7 :目标地址(13801234567)

00 :协议标示TP-PID

08 :用户信息编码格式TP-dcs(08表示UCS2编码)

00 :有效期TP-VP

04 :用户信息长度TP-UDL

59296C14 :用户信息(“天气”)其中,红色的数字(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。 2、网络结构图

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

图1、网络结构图

3、需要的软件及硬件 硬件 ComponentQty.MLFB / Order numberNotePS307 5A16ES7307-1EA00-0AA0CPU317-2PN/DP16ES7317-2EJ10-0AB0CP34116ES7341-1AH01-0AE0MD720-316NH9720-3AA00直连线16ES7901-3CB30-0xA0SIM card表1、硬件列表

软件 ComponentNo.MLFB / Order numberNoteSTEP 7 5.4 SP416ES7810-4CC08-0YA5表2、软件列表 4、以TEXT的方式发送SMS

在这里不介绍用自由口编程的方式编写AT的指令来发送SMS,而是采用西门子提供库功能块来编写程序。库程序的下载链接地址如下:26100569 上面库程序是压缩文件,先解压缩到一个目录下,在该目录下又会看到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与计算机的串口,打开计算机的超级终端程序,打开方式如下图:

图3、打开超级终端 打开后在连接描述的窗口里输入一个连接名如下图:

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

图5、选择COM端口 在上图点击OK按钮后,设置串口的通讯参数如下:

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

图7、测试与Modem的连接 然后在输入指令“AT+IRP=9600”修改通讯波特率为9600如下图所示:

图8、设置Modem的波特率 修改成功后,把连接计算机上的串口拔下后,把9针口连接到CP341的串口上。 打开Step7 Manger,打开后点击File菜单下的New…,新建一个项目,在新建项目的串口里输入项目SMS_CP341,然后点击新建,项目的硬件组态如下图所示:

图9、S7-300站的硬件组态 双击CP341-RS232C,打开属性窗口如下图:

图10、CP341的硬件地址设置 点击Parameter...,设置串口的通讯协议为

图11、选择通讯协议为ASCII 双击Protocol协议包,配置串口通讯的参数如下图:

图12、设置ASCII的通讯参数

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

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

拷贝后如下图:

图15、拷贝库程序到项目下 打开OB1块,在OB1里调用FB100,背景数据块为DB100,如下图所示:

图16、OB1中调用短消息功能块 在CP_ADR中只需输入CP341的逻辑地址256。输入后保存程序。编写OB1后打开DB100数据块如下图:

图17、在发送功能块的背景数据块中设置修改CP341的硬件地址 这里SIM卡无PIN码,要发送的信息是“Weather”;发送的手机号为“13801234567”;设置DB100的参数如下图:

图18、在发送功能块的背景数据块中设置PIN码、目的手机号及信息 修改后保存DB100,并下载所有的程序块到CPU中。下载后打开打开变量监控表并在线监控,如下图:

图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源代码,如下图:

图20、打开发送功能块的源文件 打开后如下图:

图21、SCL编辑器打开后的源文件 修改源程序代码MD720_SMS_Textmode := '$R$LAT+CMGF=1$R'为MD720_SMS_Textmode := '$R$LAT+CMGF=0$R'如下图所示:

图22、修改短信的发送模式为PDU模式 str_outbox := SMS_Textmode_Attr;改为str_outbox :=MD720_SMS_Textmode;如下图:

图23、修改程序中的发送模式 修改后,点击File下Save,然后再点击File下的Complie,如下图:

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

图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发送短信,则需要修改库程序中。因为修改比较繁琐,这里就不再作介绍,若有需求。可通过热线联系西门子技术与支持。

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 管件 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 Bybc.cn SYSTEM All Rights Reserved