应用协议

    在根据行业数据通信的特点选择了 TCP 协议或是 UDP 协议后,应用层协 议的设计显的非常重要。由于 GPRS 业务是根据通信流量计费的,所以应用层 协议的设计关系到整个系统的运行费用。但是,在尽可能的减少数据流量的同 时,要保证数据通信的稳定性、可靠性、实时性,以及协议的灵活性和扩展性。 下面提出两种应用层协议的设计和实现。
        4
1 二进制通信协议的设计
        4 1 1 报文结构
        
这种通信协议以二进制编码为基础,格式如下:

        4 1 2 命令码( CMD 字段)
        
命令码有,系统参数读取命令,系统参数写命令,数据传输命令等。
        
系统参数设置命令,如表 4-1

         系统参数读取命令,如表 4-2

         数据传输命令,如表 4-3

         其他命令,如表 4-4

        4 1 3 报文例子
        
每条命令由发起方进行超时判断和可靠性控制。每次会话至少有两条报文 的发送。下面详细说明每个命令的会话过程,并给出示例。
        (1)
系统参数设置命令
        E1
设置服务器 ip 地址和端口号:服务器 ip 为上位机 IP 地址控制工程网版权所有 ,端口号为通 信服务程序监听的端口号。上位机发送报文:
        11 80 32000001 E1 0601010909090000 03 0006 D3123682 1392
(共 24 个字节)
        
下位机收到后立即回复报文:
        11 00 32000001 E1 0601010909090000 03 0006
(共 18 个字节)
        E2
设置上传频率:上传频率为数据上发时间间隔单位为秒。上位机发送报
        
文: 11 80 32000001 E2 0601010909090000 03 0002 0258 (共 20 个字节)
        
下位机收到后立即回复报文:
        11 00 32000001 E2 0601010909090000 03 0002
(共 18 个字节) E3 设置下位机时间。
        
上位机发送报文:
        11 80 32000001 E3 0601010909090000 03 0008 0601010909090000
(共 26 个字节) 下位机收到后立即回复报文:
        11 00 32000001 E3 0601010909090000 03 0008
(共 18 个字节) E4 设置下位机心跳包间隔。单位为秒。
        
上位机发送报文: 11 80 32000001 E4 0601010909090000 03 0001 3C 19 个字 节。
        
下位机收到后立即回复报文: 11 00 32000001 E4 0601010909090000 03 0001 18 个字节。
        E5
设置报警上下限。数据域为:通道号 + 上限 + 下限 [+ 通道号 + 上限 + 下限 ]
        
上位机发送报文: 11 80 32000001 E5 0601010909090000 03 0009 04 12345678 12345678 27 个字节。
        
下位机收到后立即回复报文: 11 00 32000001 E5 0601010909090000 03 0009 18 个字节。
        (2)
系统参数读取命令
        D1
读取服务器 ip 地址和端口号:服务器 ip 为上位机 IP 地址控制工程网版权所有 ,端口号为通 信服务程序的端口号。
        
上位机发送报文: 11 80 32000001 D1 0601010909090000 03 0000 18 个字节
        
下位机收到后立即回复报文: 11 00 32000001 D1 0601010909090000 03 0006 D3123682 1392 24 个字节。
        D2
读取上传频率:上传频率为数据上发时间间隔单位为秒。
        
上位机发送报文: 11 80 32000001 D2 0601010909090000 03 0000 18 个字节
        
下位机收到后立即回复报文: 11 00 32000001 D2 0601010909090000 03 00002 0258 20 个字节
        D3
读取下位机时间。
        
上位机发送报文: 11 80 32000001 D3 0601010909090000 03 0000 18 个字节
        
下位机收到后立即回复报文: 11 00 32000001 D3 0601010909090000 03 0008 0601010909090000 26 个字节。
        D4
读取下位机心跳包间隔。单位为秒。
        
上位机发送报文: 11 80 32000001 D4 0601010909090000 03 0000 18 个字节
        
下位机收到后立即回复报文: 11 00 32000001 D4 0601010909090000 03 0001 3C 19 个字节
        (3)
数据传输命令
        C1
定时上传:下位机根据设定的数据定时上传频率,主动发送数据。
        
下位机发送报文: 11 00 32000001 C1 0601010909090000 03 0005 04 12345678 23 个字节。
        
上位机收到后立即回复报文: 11 80 32000001 C1 0601010909090000 03 0005 18 个字节。
        C2
请求上传实时数据:与 C1 类似,不同的是由上位机发起实时数据的上 传。
        
上位机发送报文: 11 80 32000001 C2 0601010909090000 03 0000 18 个字节 下位机收到后立即回复报文: 11 00 32000001 C2 0601010909090000 03 0005 04 12345678 23 个字节。
        C3
请求上传历史数据,数据域为两个时间,表示请求上传两个时间之间的 历史数据。
        
11 80 32000001 C3 0601010909090000 03 0010 0601010909090000 0601011409090000 34 个字节。
        
下位机收到后立即回复报文: 11 00 32000001 C3 0601010909090000 03 000D 04 0601010909090000 12345678 31 个字节。如果历史数据量大需要分组发送。
        C4
报警上传。数据域:通道号 + 报警类型 + 报警值
        
下位机发送报文: 11 00 32000001 C4 0601010909090000 03 0006 04 01 12345678 24 个字节。
        
上位机收到后立即回复报文: 11 80 32000001 C4 0601010909090000 03 0005 18 个字节。
        C5
解除报警。数据域为:通道号 + 报警类型 + 解除报警时数据值 下位机发送报文: 11 00 32000001 C5 0601010909090000 03 0006 04 01 12345678 23 个字节。
        
上位机收到后立即回复报文: 11 80 32000001 C5 0601010909090000 03 0006 18 个字节。 (4) 其他命令
        A1
登陆(心跳)命令:下位机一旦拨号登陆上 GPRS 网络就向中心站发送。
        
数据域中是移动公司分配的动态 IP 地址(每次拨号分配的不同),和通信端口 好。
        
下位机发送报文: 11 00 32000001 A1 0601010909090000 03 0006 0A20629B 0CEF 24 个字节。
        
上位机收到后立即回复报文: 11 80 32000001 A1 0601010909090000 03 0006 18 个字节。
        A2
控制命令打开继电器。数据域为要打开的继电器通道号。
        
上位机发送报文: 11 80 32000001 A2 0601010909090000 03 0001 10 19 个字 节。
        
下位机收到后立即回复报文: 11 00 32000001 A2 0601010909090000 03 0002 10 FF 20 个字节。
        A3
控制命令关闭继电器。数据域为要关闭的继电器通道号。
        
上位机发送报文: 11 80 32000001 A3 0601010909090000 03 0001 10 19 个字 节。
        
下位机收到后立即回复报文: 11 00 32000001 A3 0601010909090000 03 0002 10 00 20 个字节。
        A4
透明传输命令,用于上位机直接控制下位机所接仪器。下位将收到数据 域直接发送到指定通道,对数据不做任何处理,也就是说数据域中的数据应该 为该通道所接仪表的命令。
        
上位机发送报文: 11 80 32000001 A4 0601010909090000 03 0005 04 FF00FF00 23 个字节。
        
下位机收到后立即回复报文: 11 00 32000001 A4 0601010909090000 03 0005 18 个字节。
        A5
重新启动下位机通信模块。
        
上位机发送报文: 11 80 32000001 A5 0601010909090000 03 0000 18 个字节
        
下位机收到后立即回复报文: 11 00 32000001 A5 0601010909090000 03 0000 18 个字节。
        A6
重新启动下位机通信模块。
        
上位机发送报文: 11 80 32000001 A6 0601010909090000 03 0000 18 个字节
        
下位机收到后立即回复报文: 11 00 32000001 A6 0601010909090000 03 0000 18 个字节。
        4
2 ASCII 码的通信协议 [20]
        4 2 1 应答模式
        
完整的命令由请求方发起,响应方应答组成 , 具体步骤如下 :
        1)
请求方发送请求命令给响应方
        2)
响应方接到请求命令后应答,请求方收到应答后认为连接建立
        3)
响应方执行请求的操作
        4)
响应方通知请求方请求执行完毕,没有应答按超时处理
        5)
命令完成
        4
2 2 超时重发机制
        (1)
请求回应的超时
        
一个请求命令发出后在规定的时间内未收到回应,认为超时。超时后重发, 重发规定次数后仍未收到回应认为通讯不可用,通讯结束。超时时间根据具体的 通讯方式和任务性质可自定义。 超时重发次数根据具体的通讯方式和任务性质 可自定义。
        (2)
执行超时
        
请求方在收到请求回应(或一个分包)后规定时间内未收到返回数据或命令 执行结果,认为超时,命令执行失败,结束。
        4
2 3 通讯协议数据结构
        
所有的通讯包都是由 ACSII 码字符组成 (CRC 校验码除外 ) 。报文结构如图 4-1


        
通讯包结构组成,如图 4-1 ,表 4-4

         数据段结构组成,如表 4-5

         字段定义
        
字段与其值用 “=” 连接;在数据区中,同一项目的不同分类值间用 “,”
        
分隔,不同项目之间用 “;” 来分隔。
        (1)
字段名
        
字段名要区分大小写,单词的首个字符为大写,其他部分为小写。
        (2)
数据类型
        C4
:表示最多 4 位的字符型字串,不足 4 位按实际位数。
        N5
表示最多 5 位的数字型字串,不足 5 位按实际位数。
        N14.2
用可变长字符串形式表达的数字型,表示 14 位整数和 2 位小数,
        
带小数点,带符号 CONTROL ENGINEERING China 版权所有 ,最大长度为 18
        YYYY
:日期年,如 2005 表示 2005
        MM
:日期月,如 09 表示 9
        DD
:日期日 CONTROL ENGINEERING China 版权所有 ,如 23 表示 23
        HH
:时间小时
        MM
:时间分钟
        SS
:时间秒
        ZZZ
:时间毫秒
        (3)
字段对照表 4-6 ,其中: xxx :代表某个污染物编号。

        4 2 4 通讯流程
        
请求命令,如图 4-2 (四步或者三步)

         上传命令(一步),如图 4-3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值