通讯协议标准

合集下载

Modbus标准通讯协议格式

Modbus标准通讯协议格式

Modbus通讯协议Modbus协议Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。

此协议支持传统的RS-232、RS-422、RS-485和以太网设备。

许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。

有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。

如果需要回应,控制器将生成应答并使用Modbus 协议发送给询问方。

Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。

此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。

标准的Modicon控制器使用RS232C实现串行的Modbus。

Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave 端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。

另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。

因此,Modbus协议的可靠性较好。

下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。

modbus通讯协议与485

modbus通讯协议与485

modbus通讯协议与4851. 介绍本文将介绍modbus通讯协议与485总线的相关知识。

modbus通讯协议是一种常用于工业领域的通讯协议,而485总线是一种可靠的工业通讯标准。

我们将探讨它们的基本原理、工作方式以及一些常见应用。

2. modbus通讯协议modbus通讯协议是一种基于串行通信的协议,广泛应用于工业自动化领域。

它可以通过RS-485、RS-232等物理层接口进行通讯。

modbus通讯协议被设计用于在主机和从机之间传输数据,其中主机负责发起通讯请求,而从机负责响应请求并提供相应的数据。

2.1 modbus协议的工作方式modbus通讯协议采用了主从结构,主机作为通讯的发起者,从机作为通讯的接收者。

通讯的数据传输基于请求-响应模式,主机发送一个请求,从机收到请求后发送响应。

请求和响应的内容包括功能码、数据地址以及数据内容等。

2.2 modbus协议的功能码modbus协议定义了一系列功能码,用于标识通讯的目的和操作类型。

其中常用的功能码包括读取线圈状态、读取输入状态、读取保持寄存器以及写入单个寄存器等。

3. 485总线485总线是一种常用的工业通讯标准,它可以支持多个设备共享同一条通讯线路。

485总线采用差分信号传输方式,能够有效抵抗干扰从而提高通讯的可靠性和稳定性。

3.1 485总线的工作原理485总线采用全双工通讯方式,可以同时进行发送和接收数据。

它通过差分信号来传输数据,其中正线和负线分别承载两个相反的信号。

这种差分传输方式使得485总线能够有效地抵抗电磁干扰和噪声的影响。

3.2 485总线的优势485总线具有以下几个优势: - 长距离传输:485总线可以支持较长的通讯距离,最高可达1200米。

- 多设备共享:多个设备可以通过485总线连接在一起,共享同一条通讯线路。

- 抗干扰能力强:485总线采用差分传输方式,能够有效地抵抗电磁干扰和噪声。

4. modbus通讯协议与485总线的应用modbus通讯协议与485总线的结合被广泛应用于工业自动化领域。

塑机和机械手的通讯协议

塑机和机械手的通讯协议

塑机和机械手的通讯协议塑机和机械手通讯协议是为了实现塑机和机械手之间的数据交换和控制操作而制定的一套标准规范。

通讯协议定义了双方通信的格式、数据类型、指令集以及数据传输方式等。

下面将对塑机和机械手通讯协议进行详细介绍。

一、通讯协议的作用通讯协议的主要作用是实现塑机和机械手之间的数据传输和控制操作。

通过通讯协议,塑机可以向机械手发送控制指令,比如移动、抓取、放置等指令,机械手可以接收并执行这些指令。

同时,机械手也可以向塑机反馈当前的状态信息,如位置、速度、力量等。

通讯协议的制定可以确保双方之间的数据传输稳定、可靠,并提高生产效率和精度。

二、通讯协议的标准通讯协议一般由工业标准化组织或相关的行业组织制定,并经过长时间的实践和验证。

目前常见的塑机和机械手通讯协议有以下几种:1. Modbus协议:Modbus是一种通用的串行通信协议,广泛应用于工业自动化领域。

Modbus协议简单、可靠,具有良好的兼容性。

可以通过串口、以太网等方式进行通信。

2. CAN协议:CAN(Controller Area Network)协议是一种广泛应用于工业控制领域的串行通信协议。

CAN协议具有较高的通信速度和可靠性,能够满足实时性要求较高的应用场景。

3. Ethernet/IP协议:Ethernet/IP是用于工业自动化领域的一种开放标准的通讯协议。

Ethernet/IP基于以太网技术,可以实现多种设备之间的数据交换和控制操作。

4. OPC协议:OPC(OLE for Process Control)是一种开放标准的通讯协议,用于实现不同厂商、不同类型设备之间的数据交换和通信。

OPC协议可以通过OPC服务器来实现塑机和机械手之间的通信。

三、通讯协议的内容通讯协议包括以下内容:1.数据格式:通讯协议规定了双方之间的数据格式,如数据帧的结构、字节顺序等。

数据格式的规定可以确保双方之间的数据能够正确地解析和处理。

2.数据类型:通讯协议定义了双方之间所使用的数据类型,如整型、浮点型、字符串等。

rs232通讯协议

rs232通讯协议

rs232通讯协议RS232通讯协议是一种常用于串行通信的标准,它定义了电脑与外部设备之间的数据传输方式。

RS232通讯协议采用了一种串行的、单向的通信方式,将数据以二进制的形式进行传输。

RS232通讯协议的最大传输速率为115200位/秒。

它使用一条差分传输线来传输数据,其中一个线路被称为发送线路(TXD),另一个线路被称为接收线路(RXD)。

发送线路负责将数据从电脑发送到外部设备,接收线路负责将数据从外部设备接收到电脑。

RS232通讯协议中的数据传输是以字节为单位的,每个字节包含8位数据位、1位起始位、1位停止位和可选的奇偶校验位。

在RS232通讯协议中,数据的传输是由发送方和接收方共同完成的。

发送方首先发送起始位,这个位的值为0,表示数据的传输即将开始。

接着发送方发送数据位,这是数据的实际内容。

数据位的顺序是由最低为开始的,依次为D0、D1、D2、D3、D4、D5、D6、D7。

数据位的值是发送方要传输的数据。

然后发送方发送可选的奇偶校验位,用于检测传输过程中是否发生了错误。

最后发送方发送停止位,这个位的值为1,表示数据的传输已经结束。

接收方在接收到起始位后,开始接收数据位。

接收方根据起始位的信号来确定数据的传输开始,并依次接收数据位。

接收方还会接收可选的奇偶校验位,用于检测数据传输过程中是否发生了错误。

最后接收方接收停止位,这个位的信号表示数据的传输已经结束。

在RS232通讯协议中,数据传输的成功率是很高的。

由于使用了差分传输线路,可以有效地减少电磁干扰的影响。

此外,RS232通讯协议还支持双工通信,即发送方和接收方可以同时进行数据传输,提高了通信的效率。

RS232通讯协议的应用非常广泛,特别是在计算机与外部设备之间的数据传输中。

它可以用于连接计算机和打印机、调制解调器、路由器等设备,实现数据的传输和控制。

总之,RS232通讯协议是一种常用的串行通信标准,它定义了电脑与外部设备之间的数据传输方式。

通信协议简介及区别(串行、并行、双工、RS232等)

通信协议简介及区别(串行、并行、双工、RS232等)

基本的通讯方式有并行通讯和串行通讯两种。

并行通讯:一条信息的各位数据被同时传送的通讯方式称为并行通讯。

并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。

串行通讯:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。

串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。

串行通讯的距离可以从几米到几千米。

根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。

信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。

而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式。

异步通信:接收器和发送器有各自的时钟;同步通信:发送器和接收器由同一个时钟源控制。

1、异步串行方式的特点所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。

异步串行通信的特点可以概括为:①以字符为单位传送信息。

②相邻两字符间的间隔是任意长。

③因为一个字符中的比特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以,不需同步。

④异步方式特点简单的说就是:字符间异步,字符内部各位同步。

2、异步串行方式的数据格式异步串行通信的数据格式如图1所示,每个字符(每帧信息)由4个部分组成:①1位起始位,规定为低电0;②5~8位数据位,即要传送的有效信息;③1位奇偶校验位;④1~2位停止位,规定为高电平1。

3、同步串行方式的特点所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。

同步串行通信的特点可以概括为:①以数据块为单位传送信息。

②在一个数据块(信息帧)内,字符与字符间无间隔。

③因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。

MODBUS标准通讯协议

MODBUS标准通讯协议

MODBUS 标准通讯协议(简版)(基于Modbus 应用协议RTU 通讯模式)1. 前言本协议适用于符合MODBUS 标准通讯协议的规定以及在Modbus 网络上以RTU 模式通信运行的设备和应用软件。

本协议按照Modbus 应用协议标准制定。

2. 波特率可选范围代码678910 11 12 13 14 波特率 2400 4800 9600 14400192002880038400576001152003. RTU 通讯数据传输模式3.1 RTU 模式每个字节( 11 位 )的格式为 :通讯传输为异步方式,并以字节(数据帧)为单位。

在主站和从站之间传递的每一个数据帧都是11位的串行数据流。

编码系统: 8–位二进制,报文中每个8 位字节含有两个4 位十六进制字符(0–9, A –F) 数 据 位: 1个 起始位8个 数据位, 首先发送最低有效位1个 奇偶校验(注:偶校验是要求的,其它模式( 奇校验,无校验 )也可以使用) 1个 停止位 (注 :使用无校验时要求2个停止位)帧校验域:循环冗余校验(CRC) 3.2 字符的串行传送方式:每个字符或字节按如下顺序发送(从左到右):最低有效位 (LSB) . . . 最高有效位 (MSB)通过配置,设备可以接受奇校验、偶校验或无校验。

如果无奇偶校验,那么传送一个附加的停止位来填充数据帧使其成为完整的11位异步字符:3.3 数据编码:Modbus 处理的所有数据按照存储数据的类型可以分为位寄存器(容量为1位)和16位寄存器(容量为16位)两种,它们的宽度都是16位(Data is packed as two bytes per register),协议允许单个选择65536个数据项,而且其读写操作可以越过多个连续数据项直到数据大小规格限制,这个数据大小规格限制与事务处理功能码有关。

在Modbus PDU 中从0~65535寻址每个数据。

Modbus 使用一个‘big-Endian ’表示地址和数据项,即最高有效字节在低地址存储,最低有效字节在高字节存储。

Modbus标准通讯协议格式【最新】

Modbus标准通讯协议格式【最新】

Modbus通讯协议下表是Modbus的功能格式:1、读可读写数字量寄存器(线圈状态):计算机发送命令:[设备地址] [命令号01] [起始寄存器地址高8位] [低8位] [读取的寄存器数高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]例:[11][01][00][13][00][25][CRC低][CRC高]意义如下:<1>设备地址:在一个485总线上可以挂接多个设备,此处的设备地址表示想和哪一个设备通讯。

例子中为想和17号(十进制的17是十六进制的11)通讯。

<2>命令号01:读取数字量的命令号固定为01。

<3>起始地址高8位、低8位:表示想读取的开关量的起始地址(起始地址为0)。

比如例子中的起始地址为19。

<4>寄存器数高8位、低8位:表示从起始地址开始读多少个开关量。

例子中为37个开关量。

<5>CRC校验:是从开头一直校验到此之前。

在此协议的最后再作介绍。

此处需要注意,CRC校验在命令中的高低字节的顺序和其他的相反。

设备响应:[设备地址] [命令号01] [返回的字节个数][数据1][数据2]...[数据n][CRC 校验的低8位] [CRC校验的高8位]例:[11][01][05][CD][6B][B2][0E][1B][CRC低][CRC高]意义如下:<1>设备地址和命令号和上面的相同。

<2>返回的字节个数:表示数据的字节个数,也就是数据1,2...n中的n的值。

<3>数据1...n:由于每一个数据是一个8位的数,所以每一个数据表示8个开关量的值,每一位为0表示对应的开关断开,为1表示闭合。

比如例子中,表示20号(索引号为19)开关闭合,21号断开,22闭合,23闭合,24断开,25断开,26闭合,27闭合...如果询问的开关量不是8的整倍数,那么最后一个字节的高位部分无意义,置为0。

RTU通讯协议

RTU通讯协议

RTU通信协议一、通讯模式1.通讯接口电气标准: 通讯接口符合RS-232 RS--485国际标准。

2. 通讯协议: 采用MODBUS通讯协议RTU模式。

3.通讯格式约定:(1)通信速率: 300 600 1200 2400 4800 9600可选(2)RTU数据格式。

(3)字符格式为11位:一个起始位八个数据位一个奇偶校验位(无校验则无)一个停止位(有校验时),两个停止位(无校验时)。

每个字符或字节以如下方式发送(从左到右):最低有效位...最高有效位;4.RTU帧:初始结构≥4字节时间地址码= 1字节功能码= 1字节数据区= n字节错误校验= 16位CRC 码结束结构≥4字节时间地址码:地址码为通讯传送的第一个字节。

在一个通讯网络中每个从机对应唯一的地址码,可设置的范围为0---255(十进制),按照MODBUS通信规约,可能的从设备地址范围为1---247(十进制)。

主机发送的地址码表明将发送到的从机地址,从机发送的地址码表明回送的从机地址。

功能玛:功能码为通讯传送的第二个字节。

MODBUS通讯规约定义的功能号为1—127,本表只利用了其中的一部分功能码。

主机发送功能码是告诉从机器应该执行什么操作,正常情况下,从机将执行该操作并作为响应回送该功能码,如果回送的功能码最高位为1,则表明从机没有响应操作或发送出错误。

数据区:数据区的组织是根据不同的功能码而不同。

数据区可以是实际的数值,也可以是仪表寄存器的地址或者状态设置。

错误校验:CRC校验。

将整个RTU帧看作是一个连续的二进制数据串,校验时只涉及数据位,舍去起始位,停止位和任选的奇偶校验位。

产生CRC码的步骤如下:1.预置一个16位的寄存器为全1(即十六进制FFFFH),称此寄存器为CRC寄存器;2.把第一个8位数据与CRC寄存器的低8位相异或,结果放回CRC寄存器;3.把16位CRC寄存器右移一位,用0添补最高位,检测移出位:4.如果移出位为0,则重复第3步骤(再次移出);如果移出位为1,则CRC寄存器与多项式A001H相异或,结果放回CRC寄存器;5.重复第3、4步骤,直至移出8位;6.将下一个8位数据与CRC寄存器低8位相异或,结果放回CRC寄存器,重复第2、3、4、5步骤;7.最后得到的CRC寄存器内容即为产生的CRC校验码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编号:密级:内部页数:__________基于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协议。

其具体格式如下:表中,数据的最大字节数为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信号控制,可称为MDTRMDTR在T5(T7时刻)T6-T5=~, T7-T6=10~60ms, T8-T7=1~。

一次通信的最长时间将控制在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~7Level1Zero=((DT2*128+DT1)*128+DT0)* DT3<>0, 数据求反Level2Zero=((DT6*128+DT5)*128+DT4)* DT7<>0, 数据求反命令0x0F 设置产品工作状态请求数据:1byte DT0=0,产品工作;DT0<>0,产品待机;应答数据:1byte 和请求数据相同。

命令0x10 读液位1(Level1,油面)数据请求数据:0byte应答数据:3byte DT0, DT1, DT2分辨率:,范围:30mm~20m(0x1E8480, DT2=7A, DT1=09, DT0=0)。

当DT2=DT1=DT=0时,液位下溢出;当DT2=DT1=DT=7F时,液位上溢出;Level1=((DT2*128+DT1)*128+DT0)*命令0x11 读液位2(Level2,界面)数据请求数据:0byte应答数据:3byte DT0, DT1, DT2Level2=((DT2*128+DT1)*128+DT0)*命令0x12 读两个液位数据请求数据:0byte应答数据:6byte DT0, DT1, DT2, DT3, DT4, DT5Level1=((DT2*128+DT1)*128+DT0)*Level2=((DT5*128+DT4)*128+DT3)*建议:如需读液面2的数据时,应采用该命令。

这样,可同时得到液位1的值,提高了通信速度。

命令0x13~0x14 保留命令0x15 读各测杆测点温度(只有一个温度测点)请求数据:0byte应答数据:10byte DT0~9分辨率(刻度):KD=℃(2^-6),范围:-56~130℃VT1=(DT1*128+DT0)*KD-56,VT2=(DT3*128+DT2) *KD-56,……命令0x16 保留从以上协议可知,每个通信数据都用1Byte的16进制数表示,数据包中的地址(ADDRESS)字段长度为1Byte,当HT-1000(主机)向uPSD3200(从机)发送数据时,数据包中的地址(ADDRESS)字段中MSB应为1,因为此时数据包要到达的地址是从机, 从机的地址范围为:0x80~0xFD,即:MSB=1。

主机(HT-1000)没有地址(也许理论上应该有),主从机通信过程是这样的:主机不断发出4个字节的数据包(地址,命令,字节数,校验和)去查询从机的测量情况,其中字节数为0,则没有数据字节,只需4个字节就可构成一个数据包。

如下:81 16 00 1788 16 00 1E84 16 00 1287 16 00 118F 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><DA TA><P>其中:START:起始字节,长度为1COMM:命令字节:长度为1NUM:数据字节数DA TA:数据,具体含义在每个命令中都有详细定义P:校验位命令0x17 读实时电路参数(保留)请求数据:1byte ; 0 电子仓温度,1 VCC电压,2 工作状态应答数据:2byte命令0x18~0x1F 保留命令0x20~0x2F 对外保留,用于参数设置、产品测试、程序更新等功能。

相关文档
最新文档