图1 MD720
订货号: 6NH9720-3AA01-0XX0
SIPLUS订货号:6AG1720-3AA01-7XX0
作为MD720-3(6NH9720-3AA00-0XX0)的替代型号,在国内主要是用来和S7-200连接,实现S7-200收发短消息或者S7-200的远程监视数据。
此外还可以连接S7-200 SMART,ET200 串口CP,S7-1200 串口CP,实现西门子全系列CPU的收发短消息的功能。
以及连接CP340/CP341、ET200S 1SI实现S7-300的远程监视修改数据。
本文档用于介绍S7-200 SMART通过MD720收发短消息。( 目前S7-200 smart无法通过MD720实现远程监视修改数据)
MD720在国内使用,需要配移动或联通的电话卡,不限2G、3G、4G。
MD720有2种模式:
1. 终端模式,出厂默认模式,主要用于发短消息,也是本文档涉及到的模式
2. OPC模式,主要用于远程监视数据
MD720手册链接:https://support.industry.siemens.com/cs/cn/zh/view/102401328
设备前面和后面图,如图2所示:
图2 MD720的前面和后面视图
1 X3:24 VDC 电源连接器(设备底部)
2 X2:用于连接天线的 SMA 插座
3 LED
4 SET 按钮
5 X1:用于连接本地站点或PC的串行接口 (RS-232)
6,9 用于DIN 导轨/配电柜固定支架
7 带有 SIM 卡卡托的 SIM 卡插槽
8 用于弹出 SIM 卡卡托的按钮
MD720安装:DIN35导轨水平或垂直安装。
SIM卡:联通或移动的SIM卡,插在MD720后面的卡托中。目前市售的SIM卡都是MICRO SIM卡或者NANO SIM卡,而MD720需要使用的原始的SIM卡,俗称的“大卡”,建议到运营商处获取原始的SIM卡。
S7-200 SMART的集成口和MD720之间的连接线可以是以下任意一种:
电缆RS232端接在MD720 X1;而RS485端接在S7-200 SMART集成口。
电缆拨码见表1:
表1 PPI电缆拨码
开关编号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
位置 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 |
S7-200 SMART 通过CM01信号板和MD720之间的连接线需要自制3芯屏蔽线,最长10米,接线如图3所示:
图3 CM01连接MD720接线
CM01如图4所示设置为RS232模式:
图4 CM01 RS232设置
MD720电源:DC24V
天线:可以使用以下天线:ANT794-4MR(订货号:6NH9860-1AA00,电缆长5m,支架安装,图5左边),或ANT794-3M(订货号:6NH9870-1AA00,电缆长1.2m,水平放置,图5右边)。
图5 天线
终端模式 | ||
---|---|---|
LED | 状态 | 含义 |
全部 | 按顺序闪烁和熄灭(快速) | 设备启动 |
所有LED同步缓慢闪烁 | 维护模式 | |
按顺序闪烁和熄灭(缓慢) | 加载固件文件 | |
所有LED同步快速闪烁 | 错误 | |
STATUS | 缓慢闪烁 | 等待PIN输入 |
快速闪烁 | PIN错误/SIM错误 | |
QUALITY | 缓慢闪烁(有规律) | 拨号到GSM网络 |
暂停后闪烁一次 | 场强不足 | |
暂停后闪烁两次 | 场强适中 | |
暂停后闪烁三次 | 场强良好 | |
点亮 | 场强非常好 | |
熄灭 | 等待PIN | |
CONNECT | 闪烁(有规律) | 终端模式已激活 |
|
S7-200 SMART 通过集成口实现的短消息库如下:
S7-200 SMART 通过CM01实现的短消息库如下:
这两个库添加至STEP7-Micro/WIN SMART后如图6所示:
图6 S7-200 SMART 短消息库
该库需要占用227个字节的库存储区,该区域不能和其它区域有冲突。
对于发短消息,无需调用SMS_tele_handle(下面不做介绍)。库中的SMS_xmt_rcv_manage在其它程序块内部使用,在程序中专门无需调用,SMS_init,SMS_send,SMS_receive在程序中需全部调用。
程序在只调用SMS_init,SMS_send,SMS_receive后,大小在2.6Kbyte。
说明如下:
1. 初始化/SMS_init
引脚 | 类型 | 数据类型 | 说明 |
---|---|---|---|
EN | INPUT | BOOL | 使能端,通常为SM0.0 |
SMS_init_start | INPUT | BOOL | 初始化,沿触发 |
SMS_init_pin | INPUT | DWORD | SIM卡PIN码,输入为字符串,国内SIM卡默认为1234 |
SMS_init_ssc | INPUT | DWORD | 短消息服务中心号码,输入为字符串,需要咨询SIM卡所在地的运营商 |
SMS_init_busy | OUTPUT | BOOL | 状态:忙 |
SMS_init_done | OUTPUT | BOOL | 状态:完成 |
SMS_init_aborted | OUTPUT | BOOL | 状态:放弃 |
SMS_init_ststus | OUTPUT | WORD | 状态代码 |
正常初始化完成后,状态代码SMS_init_ststus=15。如果SMS_init_aborted=True,则要根据SMS_init_status检查错误。
数值 | SMS_init_ststus |
---|---|
1 | 初始化端口 |
2 | 关闭回显 |
3 | 关闭回显成功 |
4 | 关闭回显失败 |
5 | 查询PIN码状态 |
6 | PIN码OK |
7 | 需要设置PIN码 |
8 | 设置PIN码 |
9 | PIN码设置成功 |
10 | PIN码设置失败 |
11 | 设置短消息模式 |
12 | 短消息模式设置成功 |
13 | 短消息模式设置失败 |
14 | 输入短消息服务中心号码 |
15 | 短消息服务中心号码输入成功 |
16 | 短消息服务中心号码输入失败 |
17 | 关闭回显成功,但需将波特率设置成9600kbps |
18 | 设置MD720波特率为9600kbps |
19 | 设置MD720波特率为9600kbps成功 |
20 | 设置MD720波特率为9600kbps失败 |
21 | 初始化超时 |
2. 发送/SMS_send
引脚 | 类型 | 数据类型 | 说明 |
---|---|---|---|
EN | INPUT | BOOL | 使能端,通常为SM0.0 |
SMS_send_start | INPUT | BOOL | 发送使能,沿触发 |
SMS_send_tn | INPUT | DWORD | TXT模式为目的手机号码,PDU模式为消息长度,输入为字符串 |
SMS_send_msg | INPUT | DWORD | 发送的内容,输入为字符串,不超过160个字符 |
SMS_send_busy | OUTPUT | BOOL | 发送中 |
SMS_send_done | OUTPUT | BOOL | 发送完成 |
SMS_send_aborted | OUTPUT | BOOL | 发送错误 |
SMS_send_status | OUTPUT | WORD | 发送状态 |
正常发送完成后,状态代码SMS_send_status=6。 如果SMS_send_aborted=True,则要根据SMS_send_status检查错误。
数值 | SMS_send_status |
---|---|
1 | 初始化 |
2 | 发送手机号码或长度中 |
3 | 发送手机号码或长度成功 |
4 | 发送手机号码或长度失败 |
5 | 发送消息中 |
6 | 发送消息成功 |
7 | 发送消息失败 |
8 | 发送超时 |
发短消息有两种模式,TXT模式和PDU模式:
1. TXT模式(默认)
SMS_send_tn为接收短消息的手机号码。
SMS_send_msg为短消息内容,只能发送有ASCII码的字符(英文字母、数字、部分标点符号),字符个数不超过160。
2. PDU模式
该模式可以发送中文短消息。
SMS_send_tn为短消息字节长度。
SMS_send_msg为短消息内容。可以发送任意有unicode码的字符,字符个数不超过35。
不过需要自行修改库文件,该库程序的密码是1234,打开库后,做如图7和图8的修改:
SMS_init:
图7 初始化块修改
SMS_send:
图8 发送块修改
例子:发送“温度:1.3℃”到指定手机号码“18912345678”,需要编辑SMS_send_msg为:
00 01 00 0D 91 688119325476F8 00 08 0E 6E295EA6FF1A0031002E00332103
00:SCA长度,不计入短消息长度
01:TPDU类型
00:消息基准值MR
0D:号码长度(8618912345678)
91:国际号码
688119325476F8:两两颠倒的8618912345678F,最后一位补F
00:协议标识PID
08:数据编码方案UCS-2
0E:信息长度(十六进制),即后面6E295EA6FF1A0031002E00332103所需字节数14的十六进制表示
6E295EA6FF1A0031002E00332103:“温度:1.3℃”的unicode码
SMS_send_tn:不算开始的SCA长度,一共56个字符,除以2即SMS_send_tn=28
3. 接收/SMS_receive
引脚 | 类型 | 数据类型 | 说明 |
---|---|---|---|
EN | INPUT | BOOL | 使能端,通常为SM0.0 |
SMS_rcv_start | INPUT | BOOL | 接收使能,沿触发 |
SMS_rcv_msg | INPUT | DWORD | 接收缓冲区的地址,接收的短消息从起始地址+15开始,输入为指针 |
SMS_rcv_busy | OUTPUT | BOOL | 接收中 |
SMS_rcv_done | OUTPUT | BOOL | 接收完成 |
SMS_rcv_aborted | OUTPUT | BOOL | 接收错误 |
SMS_rcv_status | OUTPUT | WORD | 接收状态 |
正常接收完成后,状态代码SMS_rcv_status=4或者7。如果SMS_rcv_aborted =True,则要根据SMS_rcv_status检查错误。
注意:SMS_rcv_msg指向的区域最长可能需占用指针开始后的255个字节,所以为使短消息收发正常,请在编写其他程序时避开这段区域。
数值 | SMS_rcv_status |
---|---|
1 | 初始化 |
2 | 接收短消息中 |
3 | 接收短消息成功 |
4 | 没有短消息 |
5 | 提取SIM卡内最远短消息的编号 |
6 | 删除SIM卡内最远的短消息 |
7 | 删除SIM卡内最远的短消息成功即收到新的短消息 |
8 | 删除SIM卡内最远的短消息失败 |
9 | 接收短消息超时 |
短消息的接收过程是检查SIM卡中有没有短消息,如果有则从SIM卡中读取最远的消息到接收缓冲区,之后提取最远的消息编号,然后将该条消息删除,完成一次接收,如果SIM卡中没有短消息,则直接完成一次接收。也就是说即使不触发SMS_rcv_start,短消息照常接收到SIM卡中,只是不读取到接收缓冲区。
接收短消息通常用于查询S7-200 SMART的实时数据,或者对其进行远程控制,但一般不建议远程控制,毕竟无人值守的控制非常危险。
如果需要接收短消息,则通常定时触发SMS_rcv_start。建议即使不使用接收短消息功能,也间隔2、3分钟触发一次SMS_rcv_start,用以删除SIM卡接收到的垃圾短消息。
如图9所示,需要以下配置可以实现S7-200 SMART通过MD720收发短消息。
图9 MD720接收短消息配置
远程:
1. S7-200 SMART CPU,型号不限(例子中使用ST30)
2. MD720+联通/移动 SIM卡(例子中使用天津移动SIM卡139XXXXXXXX)
3. 连接在MD720上的天线(例子中使用ANT794-4MR)
4. MD720与S7-200 SMART CPU之间的连接电缆(例子中使用S7-200的编程电缆)
手机端:没有限制。(例子中使用北京电信SIM卡189XXXXXXXX)
1.TXT模式,收发英文短消息
步骤如下:
(1)S7-200 SMART CPU编写程序(例子中使用Set5_S7-200-library_P0库),参见图10。
库存储区分配为VB0~VB227
图10 MD720程序
(2)数据块,参见图11
图11 数据块
(3)手机收到的短消息,参见图12
图12 手机接收到的短消息
(4)手机发送的短消息,参见图13
图13 手机端发送短消息
S7-200 SMART接收,参见图14:
图14 S7-200 SMART收到的短消息
从图中可知,虽然SMS_rcv_msg从VB800开始,但实际接收到的短消息从VB815开始,其中包含短消息来源电话号码,接收时间,以及内容等,如果需要使用短消息内容,需要使用S7-200 SMART的字符串处理的指令查找、提取。
2. PDU模式,发中文短消息
步骤如下:
(1)S7-200 SMART CPU编写程序(例子中使用Set5_S7-200-library_P0库)
库存储区分配为VB0~VB227,程序参见图10,需如前述修改库程序。
(2)数据块,参见图15
图15 数据块
(3)手机收到的短消息,参见图16
图16 手机接收到的短消息
1. MD720如何恢复出厂设置?
答:使用曲别针、工字钉等按下SET按钮超过4s,3个指示灯开始循环闪烁,此时MD720正在恢复出厂设置。
2. 为什么使用MD720发送短消息总是初始化超时?
答:可以做以下检查工作:
(1) MD720指示灯是否正常(CONNECT灯有规律的闪烁,QUALITY灯最好常亮或者闪烁的频繁)
(2) 程序中PIN码是否设置正确
(3) 程序中短消息服务中心号码是否设置正确
(4) 程序中是否有地址冲突,库存储区、SMS_rcv_msg等容易出问题
(5) SMS_receive是否SM0.0调用
(6) MD720和S7-200 SMART电缆是否连接正常,拨码是否正确
(7) 短消息库与所接的集成口/CM01是否匹配
(8) 检查SIM卡的安装。
以上都无法解决的话,建议MD720恢复出厂设置,只使用收发短消息的程序重新下载测试。
3. 如何通过电脑RS232串口连接MD720,使用AT指令控制MD720?
答:可以使用西门子电缆6NH7701-4AL连接,也可以如图17所示自行制作。
图17 电缆连接
连接前建议将MD720恢复出厂设置。
电脑上的软件可以使用各类串口调试工具,波特率选择19200bps,无校验,数据位8位,停止位1位。
发送指令需要在最后附加CR(回车键)。AT指令需要使得输入为字符输入而不是十六进制输入。
4. MD720-3和MD720有什么区别?
答:MD720-3和MD720区别如下:
AT指令/功能 | MD720-3 | MD720 |
---|---|---|
MSC/MSC SEC | 只支持MSC协议 | 支持MSC协议与MSC SEC协议 |
短消息中的"_" | 支持 | "_"将转化为水平制表符 |
AT+CMGD=1,4 | 删除所有短消息 | 该指令不支持 |
AT+CMGR=<index> | 如果SIM卡的<index>没有短消息,则响应为+CMGR:ERROR | 如果SIM卡的<index>没有短消息,则响应为+CMGR:0,,0 |
AT+CPMS="ME","ME","ME" | 可以这样分配 | 固件版本<V2.1:MD720返回错误消息。 固件版本=V2.1 AT+CPMS="ME","ME","ME"等价于AT+CPMS="ME","ME","MT";接收到短消息保存在SIM卡,当卡存储器满了以后,接收到的短消息保存在设备中而不是删除。 |
5. 5米天线电缆不够长怎么办?
答:西门子没有专用的天线延长电缆,因此只能使用第三方带SMA接头的天线。但是西门子不建议这样去做,因为这样会显著抑制信号。