• IIANews微官网
    扫描二维码 进入微官网
    IIANews微信
    扫描二维码 关注微信
    移动客户端
  • English
IMS2024中国智能制造发展论坛线下报名
控制系统

自由口模式下PLC与M20 GSM Modem的通信

  2007年03月13日  

概述

本例说明如何以自由协议实现S7-200与M20GSMModem的通信。可实现的功能为:当M20收到GSM短信息时,可以自动向发送方回发一条短信息,信息的内容由用户自行定义。

AT指令:

本例中使用的AT指令主要有四个:

短信息格式选择指令CMGF

M20支持两种格式的短信息,PDU格式和TEXT格式。

AT+CMGF=0 设置短信为PDU格式(默认)

AT+CMGF=1 设置短信为TEXT格式

本例中将使用TEXT格式,因此必须对M20进行初始化。

读短信息指令CMGR

指令格式为:AT+CMGR=< index >,index一般为1到15的整数,视SIM卡的容量而定,它表示所要阅读的短信息在SIM卡中的存储位置。在本例中,由于收到的短信息在阅读后都会被删除,因此每次收到的短信息都会被保存到第一个存储位置,在收到短信息后,用AT+CMGR=1即可阅读。

发送短信息指令CMGS

指令格式为:AT+CMGS=< da >,da为目标手机号,如"13800138000"。M20接到指令后返回一个"〉"提示输入短信内容,短信内容以CHR(26)结束。

删除短信息指令CMGD

指令格式为:AT+CMGD=< index >,index与读指令中的index含义相同。本例中使用AT+CMGD=1来删除收到的短信息。

注:所有的指令都以CHR(13)作为结束

PLC程序执行过程:

PLC在第一次扫描时执行初始化子程序,对端口及RCV指令进行初始化,并向M20发送AT+CMGF=1设置短信息格式为TEXT格式。初始化完成后,运行RCV指令使端口处于接受状态。

当M20收到短信息时,会发送 +CMTI: "SM", 1 在PLC的接收完成中断中判断CMTI这四个字符来对M1.0进行置位,在主程序中通过该标志位调用ReadSMS子程序。

ReadSMS子程序中执行的操作为:复位子程序的触发条件(复位M1.0),置位M0.0,停止端口的接收,然后向M20发送AT+CMGR=1阅读收到的短信息。置位M0.0的目的是在发送完成中断中判断是哪个子程序执行了发送操作,从而重新对RCV指令进行设置,以接收Modem返回的信息(其他的子程序也采用了相同的做法:SendSM1的触发位为M1.1,子程序执行时置位M0.1;SendSM2的触发位为M1.2,子程序执行时置位M0.2;DelSM的触发位为M1.3,子程序执行时置位M0.3;ReSend的触发位为M1.4,子程序执行时置位M0.4)。Modem在接收到AT+CMGR=1后会将收到短信息的内容发送给PLC,信息的格式为:

+CMGR: "REC UNREAD","+8613801184286",,"02/03/05,13:44:12+32"

CALL ME

OK

其中"CALL ME"为短信息的实际内容,该信息转换为十六进制的形式为:

0D 0A 2B 43 4D 47 52 3A 20 22 52 45 43 20 55 4E 52 45 41 44 22 2C 22 2B 38 36 31 33 38 30 31 31 38 34 32 38 36 22 2C 2C 22 30 32 2F 30 33 2F 30 35 2C 31 33 3A 34 34 3A 31 32 2B 33 32 22 0D 0A 43 41 4C 4C 20 4D 45 0D 0A 0D 0A 4F 4B 0D 0A

这样,在发送完成中断中,以M0.0为条件,将RCV指令的接收的起始字符设置为空格符CHR(32)(十六进制的20)用以接受M20发送的短信息内容。在接收完成中断中,用接受缓冲的第一个字节等于CHR(32)来触发SendSMS1子程序。

SendSMS1子程序将从收到短信息的内容中提取出发送方的电话号码,并向M20发送AT+CMGS="发送方号码",Modem在接到该指令后返回的信息为:

>

对应的十六进制形式为:

0D 0A 3E 20

其中0D 0A为不可显示字符,20为空格符

这样,在发送完成中断中以M0.1位条件设置接收的起始字符为"〉"CHR(62)用以接受M20发送的提示信息。在接收完成中断中,用接受缓冲的第一个字节等于CHR(62)来触发SendSMS2子程序。

SendSMS2子程序将所要发送的内容加上结束字符CHR(26)发送个给M20。如果短信息正确发送,M20返回 +CMGS: xxx(xxx为该SIM卡已发送的短信数量);如果信息未能正确发送,则M20返回 +CMS ERROR。在接收完成中断中,用CMGS来触发DelSMS子程序,用ERROR来触发ReSend子程序。

DelSMS子程序向M20发送AT+CMGD=1用来删除收到的短信息,ReSend子程序重新发送SendSMS1中的指令AT+CMGS=" 发送方号码"。

点击下在原程序

附:Modem发送的信息格式

收到短信息时:

+CMTI: "SM", 1

0D 0A 2B 43 4D 54 49 3A 20 22 53 4D 22 2C 20 31 0D 0A

读取短信息内容时:

+CMGR: "REC UNREAD","+8613801184286",,"02/03/05,13:44:12+32"

CALL ME

OK

0D 0A 2B 43 4D 47 52 3A 20 22 52 45 43 20 55 4E 52 45 41 44 22 2C 22 2B 38 36 31 33 38 30 31 31 38 34 32 38 36 22 2C 2C 22 30 32 2F 30 33 2F 30 35 2C 31 33 3A 34 34 3A 31 32 2B 33 32 22 0D 0A 43 41 4C 4C 20 4D 45 0D 0A 0D 0A 4F 4B 0D 0A

发送短信息时:

>

0D 0A 3E 20

发送成功时:

+CMGS: 160

OK

0D 0A 2B 43 4D 47 53 3A 20 31 36 30 0D 0A 0D 0A 4F 4B 0D 0A

发送失败时:

+CMS ERROR: 500


最新视频
山特与数字化同行,赋能科技智慧未来   
海康机器人推出全新双目单线3D激光轮廓传感器MV-DP2060-01D   
魏德米勒30周年
剑维软件-重构传统人机界面(HMI)
《边缘计算助推IT/OT融合,加速共享数字计划》白皮书
施耐德电气:中压配电和电网自动化
大族机器人
专题报道
第三届EESA储能展
第三届EESA储能展为加快适应储能规模化发展的步伐,促进储能行业进一步良性发展,共促新能源产业的融合,第三届EESA储能展将于2024年9月2-4日在国家会展中心(上海)举办。
企业通讯
魏德米勒开放式自动化平台u-OS
魏德米勒开放式自动化平台u-OS

作为工业物联网领域的重要供应商,魏德米勒持续为客户提供专业的数字化解决方案,产品广泛应用于各种行业,满足工业环境下的各种

2024汉诺威工业博览会专题
2024汉诺威工业博览会专题

2024 汉诺威工业博览会将于4月22 - 26日在德国汉诺威展览中心举行。作为全球首屈一指的工业贸易展览会,本届展览会

在线会议
热门标签

社区

ABB 菲尼克斯电气 威图 三菱电机社区 西门子社区 罗克韦尔自动化社区 恩德斯豪斯自动化
施耐德电气 图尔克 伊玛 欧姆龙 巴鲁夫 魏德米勒 唯恩电气
西克 堡盟 ifm 纳博特斯克 万可 凯本隆 山洋电气
施迈赛 皮尔磁 菲力尔 浩亭 劳易测 伦茨 英威腾
海格电气 威琅电气 VEGA 康耐视 item 仙工智能 KUKA
ODU 雄克社区 天机机器人 倍福 MiR 海康机器人 优傲机器人
SRT软体机器人 灵动科技 科尔摩根 快仓智能 ATI 艾利特机器人 安歌科技
大族机器人 奥托尼克斯 研祥金码 雷尼绍 Nidec CT FDT 威强电
霍尼韦尔 迦智科技 Basler社区 史陶比尔连接器 湾测 节卡机器人 研祥智能
Baidu
map