当前位置:文档之家› 485协议可以带多少个设备

485协议可以带多少个设备

竭诚为您提供优质文档/双击可除485协议可以带多少个设备

篇一:485通讯协

议标准

编号:密级:内部页数:__________

基于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个结束位。字节校验为奇校验。

本协议的数据包是参照modbusRtu通信格式编写,并对其进行了部分修改,以提高数据传输的速度。另外,还部分参照了haRt协议。其具体格式如下:

表中,数据的最大字节数为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

mdtR在在t5(t7时

刻)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地址更改

请求数据:1bytenewadr-0x80应答数据:

1bytenewadr-0x80

注:应答数据中仍保留为原来地址不变

命令0x03,0x4保留

命令0x05读厂家名

请求数据:0byte

应答数据:10byte字符串“almRtltd.”命令0x06读产品类型

请求数据:0byte无应答数据:8bytedt0~7

相关主题