西门子300PLC如何发送短信?使用这个功能很简单!
1、SMS基础知识介绍
SMS(Short Messaging Service)是最早的短消息业务,也是现在普及率最高的一种短消息业务。目前,这种短消息的长度被限定在140字节之内,这些字节可以是文本的。SMS以简单方便的使用功能受到大众的欢迎,却始终是属于第一代的无线数据服务,在内容和应用方面存在技术标准的限制。
2、网络结构图
硬件的连接, S7-300CP后接CP340(RS232串口)或CP341(RS232串口),再通过串口直连线连接CP340或CP341到MD720-3的串口上,MD720-3插一块SIM卡。直连线的1针到9针对应连接。
图1、网络结构图
3、需要的软件及硬件
软件 : STEP 7
4、以TEXT的方式发送SMS
在这里不介绍用自由口编程的方式编写AT的指令来发送SMS,而是采用西门子提供库功能块来编写程序。库程序的下载可以去西门子找!
上面库程序是压缩文件,先解压缩到一个目录下,在该目录下又会看到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发送短信,则需要修改库程序中。因为修改比较繁琐,这里就不再作介绍,若有需求。可通过热线联系西门子技术与支持。
手机短信可以接收PLC报警?教您用PLC实现真正的无人值守
原创不易,请勿抄袭。
可能好多人已经使用过这种技术,甚至非常熟悉这种技术,毕竟S7-200已经使用了很多年,但是作者以前一直没有遇到过这种应用,作者觉得这种方式很实用,所以把它做成一篇文章,供大家参考。
首先我们来说下自动化控制系统,说是自动化控制系统,自动化指的是控制而非一切,维修就无法自动化,因此如何作到设备的无人值守?德国的方式是出现问题后通过打电话报告故障代码和故障内容的方式通知操作人员或者维修人员,以此可以避免操作人员不得不一直停留在控制室。这也是德国工厂的操作人员为什么这么少的原因之一,但是这种方式有个前提,那就是你的设备包括你的程序的性能一定要非常好,设备稳定性指;如果设备稳定性不好,一直有故障的话,还是留个人在那吧。程序的性能指出现任何故障时都可以清晰的判断出哪个部位出现了问题,而且出现一些危险的故障时可以有一些相应的程序手段避免事态扩大;这一点说起来很简单,但实际操作起来却非常非常难;需要大家日积月累的学习。
以前有朋友给我提意见,让我把硬件也写到文章里,闻过则改,以后的文章会带硬件目录,再次感谢这位朋友,也希望以后的文章大家可以给我提意见,包括想学习哪种PLC,哪个方向等等。好吧,进入正题吧!
让我们看下今天的实例,
需要的硬件软件。
1 24V电源模块
2 SIMATIC S7-200 CPU 224XP
3 MD720-3发信号设备 6NH9720-3AA00
4 ANT 794-4MR Antenna天线 6NH9860-1AA00
5 PC/PPI cable编程电缆 6ES7901-3CB30-0XA0
6 SIM card能发短信的手机卡
7 能收短信的手机
需要的软件有STEP 7 Micro/WIN和SMS库文件,请注意MD720-3需要使用串口连接,所以不同串口的库文件不同;有想要库文件的请在评论区留下邮箱,我会一一发送。
操作步骤一打开软件将库添加进程序里,以前我们讲S7-200使用称重功能时需要将库文件添加到程序里,操作方式一致,这里不重复讲,避免占篇幅太长。
添加完成后有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,不接收和发送信息也是需要全调用的,否则无法初始化成功。
库功能块的状态信息
对于这个系统,虽然可以使用中文字符,但比较麻烦,建议大家使用英文字符即可。比如说发送ERR01另一侧有故障代码对应表,检查即可。大家学会了吗?
文章写来不易,学会的点个赞吧!
喜欢的话请点赞并分享,您的支持是我坚持下去的动力!送人玫瑰,手有余香!
相关问答
PLC如何和手机通信?
可以实现,首先是使用无线通讯模块与plc连接,然后将数据通过GPRS无线通讯网络传送,在电脑上进行相关组态,并对画面进行发布,就可以通过网页形式实现远程监控...可...
市电停电报警的原理及报警方式有哪些?
一、概述目前,对电能质量监视一般是测试人员到现场进行,测试时间长,且到现场操作,每次只是单点监视。多点自动监视是一种高效的监视手段,是发展趋势。对电...漏...
台达PLC和触摸屏怎么进行485通讯?-ZOL问答
首先是确定通讯方式,采用485通讯,触摸屏同时读取两台PLC的数据.1,PLC设置通讯协议和通讯地址.PLC站点1采用的是串口3,站点2采用的是串口2,没别的只是为了一次...
去什么网站能免费学习PLC?
这个网站是“深圳技成培训”,网上有免费试听课程,一般需要你用手机号免费注册后可是看部分课程。一段时间后他们会给你打电话或发短信给你推荐他们的精品课程...
台达plc怎么样写两小时还要显示在触摸屏上-ZOL问答
7条回答:【推荐答案】中端一点的机种都可以获取PLC系统时间,人机也可以获取人机的系统时间,然后放入你定义的寄存器里面,想怎么玩,你自行处理即可!
三菱PLC的通讯扩展板RS485BD模块作用,这种模块走的应该是48...
[最佳回答]嗯,硬件接口是RS485,支持modbus协议,如果不想编程太麻烦,可以采用巨控的GRM203G模块和MODBUS从站通讯,GRM203G有2个通讯口,其中一个通讯口可连接多...
人机界面---触摸屏和PLC通讯,肿么通讯上的?要什么协议吗?-ZO...
一个PLC可以为一个站点,而触摸屏又是一个站点,通过通讯连接是可以实现通讯的。简单形容PLC和触摸屏之间的通讯,就是用数据线连起两个设备,再编编程序就可以通讯...
台达触摸屏和台达PLC连接上,通讯时,时不时就弹出COM3Commun...
咱的Lumia800触摸屏失灵了,侧面的机械热键是好的,要拿去维修,怎么把里面的邮件和短信删掉啊!5.1万浏览6回答手机在水下拍摄用什么样的防水套比较好?用什么...
触摸屏与plc怎么通信-ZOL问答
1:你只要在屏上设置好相对应的PLC型号、通讯方式、波特率、等等,然后在PLC里设置成同样的波特率、数据位,停止位等就可以通讯了。2:因为是不同的通讯口,所以不...
电脑连接网线互联PLC的RJ45口不够用,怎么处理?··-ZOL问答
PLC一般与电脑的RS232接口连接,也可以和电脑的USB接口连接,至于PLC的编程口各品牌接口规格不一样,你所提的PROFIBUS应该是一数据总路线。有用(0)回复PLC是什...