收藏 分销(赏)

通讯协议标准模板.doc

上传人:a199****6536 文档编号:9470218 上传时间:2025-03-27 格式:DOC 页数:9 大小:44.04KB
下载 相关 举报
通讯协议标准模板.doc_第1页
第1页 / 共9页
通讯协议标准模板.doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述
编号:  密级: 内 部 页数: __________ 基于RS485接口DGL通信协议(修改) 编写: ____________________ 校对: ____________________ 审核: ____________________ 同意: ____________________ 北京华美特科贸有限企业 二○○二年十二月六日 1. 序言 在常见数字式磁致伸缩液位计中, 多采取RS485通信方法。但RS485标准仅对物理层接口进行了明确定义, 并没有制订通信协议标准。所以, 在RS485基础上, 派生出很多不一样协议, 不一样企业均可依据本身需要设计符合实际情况通信协议。而且, RS485许可单总线多机通信, 假如通信协议设计不好, 就会造成相互干扰和总线闭锁等现象。假如在一条总线上挂接不一样类型产品, 因为协议不一样, 很轻易造成误触发, 造成总线阻塞, 使得不一样产品对总线兼容性很差。 伴随RS485发展, Modicon企业提出MODBUS协议逐步得到广泛认可, 已在工业领域得到广泛应用。而MODBUS协议规范比较烦琐, 而且每字节数据仅用低4位(范围: 0~15), 在信息量相同时, 对总线占用时间较长。 DGL协议是依据以上问题提出一个通信协议。在制订该协议时已充足考虑以下几点要求: a. 兼容于MODBUS 。也就是说, 符合该协议从机均可挂接到同一总线上。 b. 要适应大数据量通信。如: 满足产品在线程序更新需要(未来功效)。 c. 数据传输需稳定可靠。对不确定原因应加入必需冗错方法。 d. 降低总线占用率, 确保数据传输通畅。 2. 协议描述 为了兼容其它协议, 现做以下定义: 通信数据均用1字节16进制数表示。从机地址范围为: 0x80~0xFD, 即: MSB=1; 命令和数据数值范围均应控制在0~0x7F之间。即: MSB=0, 以区分地址和其它数据。 液位计编码地址为: 0x82~0x9F。其初始地址(出厂默认值)为: 0x81。 罐旁表编织地址为: 0xA2~0xBF。其初始地址(出厂默认值)为: 0xA1。 其它地址用于连接其它类型设备, 也可用于液位计、 罐区表地址不够时扩充。 液位计命令范围为: 0x01~0x2F, 共47条, 将分别用于参数设定、 实时测量、 诊疗测试、 在线编程等。 通信基础参数为: 4800波特率, 1个起始位, 1个结束位。字节校验为奇校验。 本协议数据包是参考MODBUS RTU 通信格式编写, 并对其进行了部分修改, 以提升数据传输速度。另外, 还部分参考了HART协议。其具体格式以下: ADDRESS COMMAND Byte Count DATA Check SUM 地址 命令 字节数 数据 校验和 1 Byte 1 Byte =n, 1 Byte n Byte 1 Byte 80~9F 01~2F 00~10 0~7F 0~7F 表中, 数据最大字节数为16个。也就是说, 整个数据包最长为20个字节。 “校验和”是其前面全部数据异或得到数值, 然后将该数值MSB位清零, 使其满足0~7F要求。在验证接收数据包“校验和”是否正确时, 可将全部接收数据(包含“校验和”)进行异或操作, 得到数据应=0x80。这是因为, 只有“地址”MSB=1, 所以异或结果MSB也肯定等于1。 本协议不支持MODBUS中所要求广播模式。 3. 时序安排 在上电后, 液位计将先延迟10秒, 等候电源稳定。然后, 用5秒时间进行自检和测试数据。接着产品进入待机状态并打开RS485通信接口, 等候主机请求。所以, 主机应在液位计上电20秒后, 再将液位计置为工作状态, 进行测量操作。 液位控制器(HMT-900或H-1000)关键用于液位计供电和防爆安全隔离。主机可经过RTS信号控制(HMT-900或H-1000)供给液位计电源。当RTS有效时, 电源将被打开。所以, 液位计电源是能够经过主机软件控制。 在现场应用中, 主机软件工作时序通常应遵照以下多个步骤。 1) 在开主机前, 并认真检验各相关设备电源和电缆连接情况。 2) 在开启主机软件时, 打开对应串行端口。使能RTS信号, 给液位计上电。 3) 软件初始化操作, 延迟20秒。 4) 读液位计对应参数, 然后将液位计置为工作状态。 5) 此时, 主机可进入正常轮训、 统计、 显示、 报警等工作。 主机软件关键工作是经过RS485总线和各个液位计进行DGL格式数据包通信。所以, 通信时序安排好坏显得很关键。在本协议中, 主机只能有1个, 并完全控制总线, 任何从机在没有主机请求时, 必需保持接收状态。在设计从机电路时, 应确保从机在上电时不能出现对总线占用(发送状态), 哪怕是很短时间。以免增加系统功耗, 影响其“本质安全”性能。 即使主机控制着总线, 但在总线空闲状态, 主机也应处于接收状态。只有在向指定从机发送请求数据包时, 才进入发送状态。主机发送接收状态切换由其串口DTR信号控制, 可称为MDTR。一样, 从机也有一个控制信号, 称为SDTR。当主机DTR无效(转换成TTL电平, MDTR为高电平)时, 端口处于发送状态。当DTR有效(MDTR为低电平)时, 端口处于接收状态。据此, 可绘制出数据包传输时序图以下: 在T1时刻, 主机将MDTR置为高电平(DTR无效), 准备发送数据。T2时刻, 主机发送“请求数据包”。当数据包发送完成(T3时刻)后, 随即要将MDTR变为低电平(T4时刻), 释放总线, 等候接收“应答数据包”。 在对应从机(液位计)接收到正确“请求数据包”后, 就开始准备“应答数据包”。经延时, 在T5时刻, 从机将SDTR置为高电平, 控制总线。然后, 在T6时刻发送数据包。发送完成(T7时刻)后, 随立即SDTR置为低电平, 释放总线。这么一次数据包通信就完成了。 对以上各时刻时序要求能够描述为: T2-T1=1.9~3.5ms, T3-T2=10~60ms, T4-T3=1~3.5ms, T5-T3=8~18ms, T6-T5=1.9~3.5ms, T7-T6=10~60ms, T8-T7=1~3.5ms。一次通信最长时间将控制在160ms以内。两次数据包通信间隔应≥20ms。 依据以上描述和要求, 我们就能够正确地进行主机和从机通信控制。并依据可能出现多种通信错误和故障, 进行冗错设计。 4. 命令定义 命令0x01 通信协议识别码 请求数据: 0byte 应答数据: 3byte 字符串“DGL” 44,47,4C 命令0x02 地址更改 请求数据: 1byte NewAdr-0x80 应答数据: 1byte NewAdr-0x80 注: 应答数据中仍保留为原来地址不变 命令0x03, 0x4 保留 命令0x05 读厂家名 请求数据: 0byte 应答数据: 10byte 字符串“ALMRT Ltd.” 命令0x06 读产品类型 请求数据: 0byte 无 应答数据: 8byte DT0~7 浮子数 温度测点 外管类型 测杆材料 安装形式 防爆类型 x x 命令0x07 读产品杆长 请求数据: 0byte 无 应答数据: 2byte DT0, DT1 基数: 2mm, 范围: ≤20m, GL= (DT1*128+DT0)*2mm 命令0x08 读温度测点位置 请求数据: 0byte 应答数据: 5byte DT0~4 对应于VT1~5位置相对杆长百分数(0~99)。 命令0x09 读产品序列号 请求数据: 0byte 无 应答数据: 4byte 具体待定, 存于MCU EEPROM中。 命令0x0A 读电路和程序版本号 请求数据: 0byte 应答数据: 2byte DT0 电路版本 , DT1程序版本 命令0x0B 读零点校准参数数据 请求数据: 0byte 应答数据: 8byte DT0~7 Level1Zero=((DT2*128+DT1)*128+DT0)*0.01mm DT3<>0, 数据求反 Level2Zero=((DT6*128+DT5)*128+DT4)*0.01mm DT7<>0, 数据求反 命令0x0F 设置产品工作状态 请求数据: 1byte DT0=0, 产品工作; DT0<>0, 产品待机; 应答数据: 1byte 和请求数据相同。 命令0x10 读液位1(Level1, 油面)数据 请求数据: 0byte 应答数据: 3byte DT0, DT1, DT2 分辨率: 0.01mm, 范围: 30mm~20m(0x1E8480, DT2=7A, DT1=09, DT0=0)。 当DT2=DT1=DT=0时, 液位下溢出; 当DT2=DT1=DT=7F时, 液位上溢出; Level1=((DT2*128+DT1)*128+DT0)*0.01mm 命令0x11 读液位2(Level2, 界面)数据 请求数据: 0byte 应答数据: 3byte DT0, DT1, DT2 Level2=((DT2*128+DT1)*128+DT0)*0.01mm 命令0x12 读两个液位数据 请求数据: 0byte 应答数据: 6byte DT0, DT1, DT2, DT3, DT4, DT5 Level1=((DT2*128+DT1)*128+DT0)*0.01mm Level2=((DT5*128+DT4)*128+DT3)*0.01mm 提议: 如需读液面2数据时, 应采取该命令。这么, 可同时得到液位1值, 提升了通信速度。 命令0x13~0x14 保留 命令0x15 读各测杆测点温度(只有一个温度测点) 请求数据: 0byte 应答数据: 10byte DT0~9 分辨率(刻度): KD=0.015625℃(2^-6), 范围: -56~130℃ VT1=(DT1*128+DT0)*KD-56, VT2=(DT3*128+DT2) *KD-56, …… 命令0x16 保留 从以上协议可知, 每个通信数据都用1Byte16进制数表示, 数据包中地址(ADDRESS)字段长度为1Byte,当HT-1000(主机)向uPSD3200(从机)发送数据时,数据包中地址(ADDRESS)字段中MSB应为1,因为此时数据包要抵达地址是从机, 从机地址范围为: 0x80~0xFD, 即: MSB=1。主机(HT-1000)没有地址(可能理论上应该有), 主从机通信过程是这么: 主机不停发出4个字节数据包(地址, 命令, 字节数, 校验和)去查询从机测量情况, 其中字节数为0, 则没有数据字节, 只需4个字节就可组成一个数据包。以下: 81 16 00 17 88 16 00 1E 84 16 00 12 87 16 00 11 8F 16 00 19 以上5个数据包就是主机发往从机数据包, 第一个字节是地址, 共有5个地址, 即发往5个从机, 每发一个数据包, 主机会等候从机回应, 然后再发下一个数据包, 假如等候超时, 则认为通信错误(HT-1000上会显示XX号罐通信错误)。若有回应, 则主机进行数据处理, 在友好人机界面上显示相关测量信息。第二个字节16是命令字, 16具体含义可查询具体命令字信息。第三个00代表数据位是零个, 第四个字节是校验和。(这里设计协议标准是尽可能是通信字节数变少, 降低信息在传输过程中丢失, 当然也要考虑扩展性) 一个回应数据包以下: 88 16 08 69 7F 05 7A 3A 02 23 27 43 共12个字节, 再依据字段分一下: 88 16 08 69 7F 05 7A 3A 02 23 27 43 第一个字节88是从机地址, 因为主机采取“发送---等候回应”方法来和从机通信, 而且现在只有一个主机, 所以, 从机发送数据包中地址无须是主机地址(除非有多个主机, 在了解协议数据包时, 数据包中地址字段应该是发往目地地址, 但实际上从机回应数据包中地址是本身地址, 不是目地主机地址), 只需标明本身地址即可, 相当于“这里是XX号从机在回复---”。第二个字节16是命令字。第三个字节08表示数据段有8个字节, 接下来8个字节是数据信息, 前三个字节69 7F 05是油位测量值(69是数据最低数值, 7F是次低数值, 05是数据高位数值), 接着三个字节7A 3A 02是水位测量值, 数据信息最终两个字节23 27 是温度测量值, 最终一个字节43是校验和。 0x16是DGL协议里一条命令, 表示取得探棒油位, 水位和温度。 在DGL协议里是这么定义: <START> <COMM><NUM><DATA><P> 其中: START: 起始字节, 长度为1 COMM: 命令字节: 长度为1 NUM: 数据字节数 DATA: 数据, 具体含义在每个命令中都有具体定义 P:校验位 命令0x17 读实时电路参数 (保留) 请求数据: 1byte ; 0 电子仓温度, 1 VCC电压, 2 工作状态 应答数据: 2byte 命令0x18~0x1F 保留 命令0x20~0x2F 对外保留, 用于参数设置、 产品测试、 程序更新等功效。 5. 补充说明 上述相关DGL协议要求可确保它和MODBUS协议兼容性。但不确保当这两种协议设备挂接到同一总线上时, 采取MODBUS协议设备之间不会发生冲突。也不确保和下列设备兼容性: 其它协议从机设备、 除Modicon企业外标称为MODBUS从机设备。 主机通信程序应根据DGL协议要求编写。不确保本协议和其它主机设备或软件兼容性。 DGL协议仅适适用于使用RS485接口数字式磁致伸缩液位计。如作为其它用途, 在借鉴或引用时, 应充足考虑情况不一样所带来风险原因。 DGL协议保留以下从机地址: 0x80, 0xA0, 0xC0, 0xFE, 0xFF。在现场安装时应尤其注意。 控制器发送给中继器地址如 81、 82、 等(或包含地址任何命令), 回是16进制、 每三个字节是一个数据, 分别是油、 水、 温度(是华氏)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服