北京捷麦通信器材有限公司
设为首页 | 加入收藏
热线电话:010—63331036
首页--应用实例

海为PLC与G100短信模块通讯

一、海为PLC通讯特点:


1、内置多种通讯协议:Haiwell PLC各种型号的主机都内置Modbus RTU/ASCII协议、自由通讯协议以及海为公司的HaiwellBus高速通讯协议;
2、通讯端口可扩展:Haiwell PLC各种型号的主机均自带2个通讯口(一个为RS-232,另一个为RS-485),用通讯扩展模块可扩展至5个通讯口,每个通讯端口均可用于用于编程和联网,通讯端口相互独立,均可作为主站也可作产从站;
3、极为便利的通讯指令系统:使您无论使用何种通讯协议都只需一条通讯指令便可完成复杂的通讯功能,编程简单而程序简洁,无须再为通讯端口冲突、发送接收控制、通讯中断处理等问题烦恼,可以在程序中混合使用各种协议轻松完成您所需的各种数据交换;


二、北京捷麦G100 GSM短信模块通讯协议介绍


1、海为PLC与北京捷麦G100 GSM短信模块的连接如下图:

连接示意图

2、电话号码的表示
    数据包中用6 个8 位二进制字节表示电话号码,每个字节中高4 位和低4 位均用BCD 码表示1 位十进制的电话号码,这样每个字节可表示两位电话号 码,6 个字节共可表示12 位电话号码,因现行的电话号码均为11 位,而6 字节能表示12 位十进制的BCD 数,所以在传输数据表示电话号码时要 将电话号码的前面补0 以凑足12 位。
    假设电话号码是13501237654,转换成6 字节BCD 码后变为 01H│35H│01H│23H│76H│54H。

3、读取短信命令:$AAR(CR)
功能:读GSM模块收到的数据。
语法结构:$AAR<CR>
$ ——定义符(24H)
R ——读数据标识符(52H)
AA——2 位16 进制数的模块地址:从00 到FF。长度2 字节。
(CR) ——(0DH)
响应:
有效响应:!AA(long) (data) (cr)
无效响应:?AA (cr)
没有响应:语法错误/通信失败/地址错误
!——有效响应的定义符(21H)
?——无效响应的定义符(3FH)
AA——2 位16 进制数的模块地址,长度2 字节。
(long) ——单字节数据的长度最长为FFH。00H 表示无数据。
(data)——以字节为单位的数据,数据的长度由(long)决定,内容:字头D7H + 1字节数据长度UDL + 6字节源电话号码STA + 数据UD + 6字节发送时间DATE
UDL: 接收到的除包头D7H 以外总的数据长度。包括STA,UD 和它本身的字节长度,因STA 和 UDL 的字节长度一般是固定的,即固定为 1+6=7 个字节,所以其长度可由如下公式计算UDL 数值=1+6+UD 长度。接收方收到的时间字节DATE 不包含在内
SOA:发送方的电话号码,即源地址。
UD: 发送方发送的有效数据。其总长度小等于140 个字节。
DATE:短信中心收到短信的时间,也就是发送方发送短信的时间。共6 个字节的BCD 码,依次是年、月、日、时、分、秒。UDL 的数值并不包含这6 个字节。
 (cr) ——(0DH)
例:假设读取地址是00的G100模块中的短信,模块中的短信内容为“1111”(31H│31H│31H│31H,共4个字节),发送方的电话号码(源地址)是13912070425,发送时间是2003-08-12 13:21:21。
发送指令:$00R(cr)——24H│00H│00H│52H│0DH
模块返回:21H│00H│00H│12H│D7H│0BH│01H│39H│12H│07H│04H│25H│31H│31H│31H│31H│03H│08H│12H│13H│21H│21H│0DH

4、发送短信命令:$AAW(long) (data)
功能:发送短信。
语法结构:$AAW(long)(data)(cr)
$ ——定义符(24H)
AA——2 位16 进制数的模块地址:从00 到FF。长度2 字节。
W ——写数据标识符(57H)
(long) ——单字节数据的长度最长为FFH。00H 表示询问发送缓冲区是否空见9.5。
(data)——以字节为电位的数据,数据的长度由(long)决定,内容:字头D7H + 1字节数据长度UDL + 6字节目的电话号码STA + 数据UD
UDL:要发送的除包头D7H 以外总的数据长度。包括STA,UD 和它本身的字节长度,因STA 和 UDL 的字节长度一般是固定的,即固定为1+6=7 个字节,所以其长度可由如下公式计算UDL 数值=1+6+UD 长度。
STA:接收方的电话号码,即目的地址。号码需要进行格式转换。
UD: 您需要发送的有效数据。其总长度小等于140 个字节。
(cr) ——(0DH)
响应:无

例:假设通过地址是00的G100模块发送短信“OK”(00H│4FH│00H│4BH共4个字节),接收方的电话号码(目的地址)是13912070425 
发送数据串如下:
24H│00H│00H│57H│0DH│D7H│0BH│01H│39H│12H│07H│04H│25H│00H│4FH│00H│0BH│0DH

三、海为PLC与北京捷麦G100 GSM短信模块通讯程序

    因为北京捷麦G100 GSM短信模块采用厂商自主通讯协议,所以海为PLC采用自由协议与其通讯,为了方便理解,将要发送是数据串按字节存放在寄存器中,以低字节模式发送即使用COMM.LB指令。

例子完成每100mS读一次短信,如果收到正确的短信“0000”或“1111”则回复一条短信:
读短信命令放在“初始寄存器表”中(寄存器V1000-V1004),随程序一起下载到PLC中。
V1000:24H      V1001:00H      V1002:00H      V1003:52H      V1004:0DH

发短信命令放在“初始寄存器表”中(寄存器V1100-V1117),随程序一起下载到PLC中。
V1100:24H      V1101:00H      V1102:00H      V1103:57H      V1104:0DH
V1105:D7H      V1106:0BH      V1107:01H      V1108:39H      V1109:12H
V1110:07H      V1111:04H      V1112:25H      V1113:00H      V1114:4FH
V1115:00H      V1116:0BH      V1117:0DH

要比较的短信内容存在寄存器V1200-V1203中,如果短信内容等于“1111”或“0000”则回复短信“OK”。
短信内容“1111”:V1200:3131H   V1201:3131H
短信内容“0000”:V1202:3030H   V1203:3030H

程序图如下:


    COMM自由通讯指令自带通讯协议格式定义端子Protocol,可以通过双击COMM指令,以配置方式输入,如下图:

 

 
热线电话:010—63331036
点击这里给我发消息


点击这里给我打电话