短信 (SMS) 推送报警消息
A. 在WinCC图形编辑器中选择“对象选项板”的“控件”选项卡,选择“添加/删除”,在“选择OCX控件”对话框中选择“Microsoft Communications Control”进行注册。然后在WinCC画面中添加MSComm 控件;
B. 设置串口通信的波特率、奇偶校验、数据位等参数。
C. 将要发送的报警消息赋值给控件的 Output 属性。注意,发送前先判断串口是否为打开状态(PortOpen 属性)
D. 发送英文短信:
1) MSComm控件发送“AT+CMGF=1<CR>”。设定短消息格式为“文本”,仅英文。
2) 返回“OK”。
3) 向串口发送“AT+CMGS=”13810000000”<CR>”。手机号码
4) 返回“>”。
5) 向串口发送短信的内容(报警文本), MD720-3将短信发送给设定的手机号码。
6) 返回“OK”,说明短信发送成功。
set SMsSend = HMIRuntime.screens("Alarm" ).screenItems ("MSComm1")
If SMSSend.PortOpen = True Then
SMSsend.output ="ATEO" & Chr (13)
Do
buffer = buffer & SMssend. Input
Loop Until InStr (buffer, "OK")
buffer - ""
HMIRuntime.Trace( "AT State OK!"&vbCrLf)
SMssend.output -"AT+CMGF-1" & chr (13)
Do
buffer = buffer & SMsSend . InputLoop
Until InStr (buffer, "OK")
buffer - ""
HMIRuntime.Trace ( "AT+CMGF=1 OK!"& vbCrLf)
SMsSend.output = "AT+CMGS=n"" & PhoneNumber & """" & Chr(13)
Do
buffer -buffer & SMsSend. InputLoop Until InStr (buffer, ">")
buffer - ""
HMIRuntime.Trace( "AT+CMGs oK!"& vbCrLf)
SMsSend.output = SMS +chr (2 6)
Do
buffer = buffer & SMssend.InputLoop
Until InStr(buffer, "OK")
HMIRuntime.Trace ("Finish to send the SMS!" & vbCrLf)
Else
HMIRuntime.Trace ("No port is opened! " & vbCrLf)
End If
E. 发送中文短信:
1) 首先需要设置短信发送方式为 PDU 模式。使用“AT+CMGF=0<CR>”命令。
2) 其次要向被叫号码发送 PDU 的长度。例如,使用“AT+CMGS=18<CR>”命令。
3) 当 MSComm 控件接收到“>”命令后,向串口发送短信的 PDU 编码字符串。PDU 编码格式如下:
例如发送:
>0001000D91683108214365F700080459296C14<CTRL+Z>