西门子S7-300 PLC通过MD720-3发送短消息

时间:2023-03-17作者:佚名

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 …………设置短信发送方式为TEXT模式
AT CMGS=”13801234567” …………向被叫号码发短信
> Weather
(2) PDU方式
AT CMGF=0 ……………设置短信发送方式为PDU模式
AT CMGS=018 ……………向被叫号码发送PDU的长度
>0001000D91683108214365F700080459296C14

注:PDU方式中AT+CMGS命令解释:
AT+CMGS=XXX …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 :用户信息(“天气”)
西门子S7-300 PLC通过MD720-3发送短消息

其中,红色的数字(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针对应连接。

西门子S7-300 PLC通过MD720-3发送短消息
图1、网络结构图


3、需要的软件及硬件

硬件

Component Qty. MLFB / Order number Note
PS307 5A 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

表1、硬件列表


软件

Component No. MLFB / Order number Note
STEP 7 5.4 SP4 1 6ES7810-4CC08-0YA5

表2、软件列表

4、以TEXT的方式发送SMS
在这里不介绍用自由口编程的方式编写AT的指令来发送SMS,而是采用西门子提供库功能块来编写程序。库程序的下载链接地址如下:26100569

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

西门子S7-300 PLC通过MD720-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与计算机的串口,打开计算机的超级终端程序,打开方式如下图:

西门子S7-300 PLC通过MD720-3发送短消息
图3、打开超级终端

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

西门子S7-300 PLC通过MD720-3发送短消息
图4、输入连接名

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

西门子S7-300 PLC通过MD720-3发送短消息
图5、选择COM端口

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

西门子S7-300 PLC通过MD720-3发送短消息
图6、COM口的参数设置

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

西门子S7-300 PLC通过MD720-3发送短消息
图7、测试与Modem的连接

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

西门子S7-300 PLC通过MD720-3发送短消息
图8、设置Modem的波特率

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

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

西门子S7-300 PLC通过MD720-3发送短消息
图9、S7-300站的硬件组态

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

西门子S7-300 PLC通过MD720-3发送短消息
图10、CP341的硬件地址设置

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

西门子S7-300 PLC通过MD720-3发送短消息
图11、选择通讯协议为ASCII

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

西门子S7-300 PLC通过MD720-3发送短消息
图12、设置ASCII的通讯参数

西门子S7-300 PLC通过MD720-3发送短消息
图13、设置传输的控制方式

西门子S7-300 PLC通过MD720-3发送短消息
图14、设置接收的缓存区

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

西门子S7-300 PLC通过MD720-3发送短消息
图15、拷贝库程序到项目下

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

西门子S7-300 PLC通过MD720-3发送短消息
图16、OB1中调用短消息功能块

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

西门子S7-300 PLC通过MD720-3发送短消息
图17、在发送功能块的背景数据块中设置修改CP341的硬件地址

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

西门子S7-300 PLC通过MD720-3发送短消息
图18、在发送功能块的背景数据块中设置PIN码、目的手机号及信息

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

西门子S7-300 PLC通过MD720-3发送短消息
图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源代码,如下图:

西门子S7-300 PLC通过MD720-3发送短消息
图20、打开发送功能块的源文件

打开后如下图:

西门子S7-300 PLC通过MD720-3发送短消息
图21、SCL编辑器打开后的源文件

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

西门子S7-300 PLC通过MD720-3发送短消息
图22、修改短信的发送模式为PDU模式

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

西门子S7-300 PLC通过MD720-3发送短消息
图23、修改程序中的发送模式

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

西门子S7-300 PLC通过MD720-3发送短消息
图24、重新编译修改后的程序

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

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

相关阅读

电动汽车电池充电器电路原理图讲解

这是电动汽车电池充电器的方案图。如图所示,该电路是一个传统的电源,后面是一个由运算放大器控制的稳压器 LM338,负责控制充电状态,以检测必须停止和启动 LED 指示灯的精确时...
2023-07-31
电动汽车电池充电器电路原理图讲解

三极管推挽电路的基础知识

推挽电路,有人也叫图腾柱电路。图腾柱我没理解这个名字是怎么来的,但是“推挽”就比较形象了。 英文里叫push-push。这里先说这里 推和挽 针对的是电流,而不是电压。 电路由NP...
2023-04-29
三极管推挽电路的基础知识

贴片电容容量不足、偏低是什么原因?

有时候我们在使用的贴片电容时发现贴片电容容量偏低,容量不符合标准,这是什么原因造成的呢?小编整理了以下几种原因仅供参考: 第一是,材质因素。X5R 、X7R、 Y5V 、NPO这几种材...
2023-03-31
贴片电容容量不足、偏低是什么原因?

汽轮机的 OPC 和 AST 保护是如何实现的?

汽轮机的 OPC和 AST保护是通过 DEH 控制器所控制的OPC-AST 电磁阀组件实现的。 OPC—AST 电磁阀组件由两只并联布置的超速保护电磁阀、两个逆止阀、四个串并 联布置的自动停机危急遮断保...
2023-09-22
汽轮机的 OPC 和 AST 保护是如何实现的?

MLCC电容为什么要靠近电源引脚

在硬件设计中,不论是电源芯片还是单片机芯片,有经验的工程师通常会在其周围放置一两个MLCC电容,通常采用100nF 10nF的电容组合,并紧密靠近芯片的电源引脚。 这样的做法可以改善...
2023-08-09
MLCC电容为什么要靠近电源引脚

热销商品

手术衣一次性防护服打农药防尘实验服参观服加厚透气无纺布隔离衣

手术衣一次性防护服,作为一种重要的医疗防护用品,广泛应用于医院、实验室等场所。它采用加厚透气无纺布制成,具有优良的防尘、防污、防病毒能力,能有效保护医护人员免...
14

欧普照明led灯泡e27/e14大小螺口超亮家用节能灯螺旋暖白光球泡

欧普照明LED灯泡,适用于E27和E14两种常见螺口,是您家用照明的理想选择。这款灯泡采用先进LED技术,亮度超群,瞬间点亮,无需等待,为您提供明亮舒适的光环境。同时,它节能环...
3.59

LED柜内照明灯 AC220V 4W 7W配电箱导轨式 LL10-W 高压柜内照明灯

LED柜内照明灯AC220V 4W/7W配电箱导轨式LL10-W是一款专为高压柜、配电箱等封闭电气设备设计的紧凑型照明产品。采用高效LED光源,功耗低(4W/7W可选),亮度高,寿命长,节能...
7

密封胶条包邮耐磨耐高温耐腐蚀圆柱棒丁晴/氟胶实心硅胶胶条红色

本品采用优质丁腈橡胶(NBR)或氟橡胶(FKM)及实心硅胶材质制成,呈红色圆柱棒状,具备卓越的耐磨、耐高温(-40℃至+200℃以上,氟胶可达250℃)、耐腐蚀性能,适用于酸、碱、油类等...
1

小木锤木锤子实木木榔头圆头木锤实木棰木头锤子木柄锤黄檀手工锤

小木锤采用优质黄檀木精心打造,通体实木结构,质地坚硬、纹理细腻,手感温润舒适。圆头设计兼顾敲击与整形功能,适用于木工、雕刻、家具组装及日常维修等场景。木柄经精...
3.4

网站栏目