HART协议数据格式和消息结构的举例分析

作者:白志飞出处:中国IT实验室2010-07-14 07:33
前面的文章中,我们对HART协议的消息格式的具体内容进行了分析。那么很多朋友还没有完全掌握,为了让大家对这部分知识有一个清晰的思路。下面我们来对HART协议的数据格式以及消息结构的内容进行一下举例分析。

  HART协议数据格式

  如果传送的命令不成功,那么响应中就不包含数据。然而响应值是从现场设备内存中取出的,是一个近似值。数据所占的字节和格式视不同的命令而定,具体的规则可以查询相关的资料。

  看实例了解HART协议消息结构

  例1:主机到从机  (0号命令 读取设备序号)

FF FF FF FF FF 82 A6 06 BC 61 4E 01 00 B0

上面是主机到从机发送的一条消息。前5个字节值都为FF,显然他是导言字节。接着的82起始字节,表示主机到从机发出的长结构的消息。后5个字节 “A6,06,BC,61,4E”是地址字节化为二进制表示如下:

A6

06

BC

61

4E

1010 0110

0000 0110

1011 1100

0110 0001

0100 1110

可见首字节A6的最高位为1表示主机,次高位为0表示非突发模式,后面的38 b表示设备的惟一标号:“100110”是生产厂家代码,值为38,是Rosemount公司的代码;后一字节06是设备型号代码,06代表的型号是3051C;后面的3个字节是设备识别号,本例中的值为12345678;再接下来的01是命令字节,表示1号命令,即读取PV值后面的00是表示数据的长度;本例中无数据,值为0;最后是校验字节B0。

例2:从机到主机

FF FF FF FF FF 86 A6 06 BC 61 4E 01 07 00 00 06 40 B0 00 00 45

HART协议的从机到主机的例子,表示的是从机到主机的一条消息。本例大部分与例1相似,不同的是数据字节不再为0,其中的06表示单位PSI;后面的4个字节是用浮点数表示的值, 为5.5。并且由于本例是由从机到主机的应答消息,所以存在着状态位,即本例中的00 00表示OK。

例3:突发模式

FF FF FF FF FF 81 53 03 04 E6 D7 03 1A 00 60 41 3F A0 00 27 41 3F A0 00 39 42 47 60 00 06 BF 06 60 00 39 41 95 00 00 D4

上面是突发模式HART协议发出的一条消息。

第1个字节81表示突发的长结构模式,与前例中相似的地方我们不再介绍。注意到状态字节“00 60”后的字节“41 3FA000”,他表示的是当前的电流值,计算后是11.976 6;后面的27表示单位mA,像后面的39表示“%”一样。数据字节中的“42 47 60 00”,“BF06 60 00”,“41 95 0000”分别表示“SV”,“TV”,“FV”表示方法与PV相同。经过解释后的消息可以表示为:“LBTXS/RdAllPv/026/0060/11.9766/mA/11.9766/%/49.8438/psi/-0.524902/%/18.625/D4”。

HART协议数据格式和消息结构的举例分析相关推荐

  1. HART协议数据格式避坑(C语言压缩字符串Packed-ASCII和ASCII转换)

    HART协议数据格式避坑(C语言压缩字符串Packed-ASCII和ASCII转换) 首先HART数据格式如下: 重点就是浮点数和字符串类型 Latin-1就不说了 基本用不到 浮点数 浮点数里面 如 ...

  2. 【MQTT 5.0】协议 ——发布订阅模式、Qos、keepalive、连接认证、消息结构

    一.前言 1.1 MQTT 协议概述 1.2 MQTT规范 二.MQTT 协议基本概念 2.1 发布/订阅模式 2.11 MQTT 发布/订阅模式 2.12 MQTT 发布/订阅中的消息路由 2.13 ...

  3. HART协议通用结构体及地址、常量的定义

    HART协议通用结构体及地址.常量的定义 在HART模块中,通常是通过UART发送一个字节,且需要11位二进制数据,第一位起始位,第二到九位共八位是要发送的数据,第十位是校验位<奇校验>, ...

  4. HTTP学习笔记:HTTP的消息结构

    Request 消息结构: Response消息结构: 请求方法: 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删 ...

  5. 6005.boost多线程与mavlink协议结合实现消息收发

    boost多线程与mavlink协议结合实现消息收发 本文将实现boost库创建多线程,利用mavlink协议进行数据链消息打包.解包,解放了很多数据解析的工作,不得不佩服mavlink协议功能的强大 ...

  6. 计算机网络中TCP属于,【填空题】TCP/IP协议将计算机网络的结构划分为应用层、传输层、网络互连层等4个层次,其中IP协议属于【1】层。...

    [填空题]TCP/IP协议将计算机网络的结构划分为应用层.传输层.网络互连层等4个层次,其中IP协议属于[1]层. 更多相关问题 [单选] 数据格式为透明的是()的通道,它与信号速率及电调制方式无关, ...

  7. java day39【HTTP协议:响应消息 、Response对象 、ServletContext对象】

    第一章  HTTP协议:响应消息 1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体 2. 响应消息:服务器端发送给客户端的数据 * ...

  8. ZeroMQ接口函数之 :zmq_msg_init - 初始化一个空的ZMQ消息结构

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_init zmq_msg_init(3) ØMQ Manual - ØMQ/3.2.5 Name zmq_ ...

  9. php 显示代码行数据,几行php代码把数据格式化成树形结构

    上代码: /** * 将数据格式化成树形结构 * @author Xuefen.Tong * @param array $items * @return array */ function genTr ...

  10. 【转】TCP协议的无消息边界问题

    http://www.cnblogs.com/eping/archive/2009/12/12/1622579.html 使用TCP协议编写应用程序时,需要考虑一个问题:TCP协议是无消息边界的,即不 ...

最新文章

  1. 'CUDA driver version is insufficient for CUDA runtime version
  2. 宽度,对齐方式的设置
  3. 高度平衡二叉树的构建_平衡二叉树建立及其增删改查(JAVA)
  4. 最长下降/上升子序列问题
  5. vue.js tutorial for beginner [Is it possible for us to learn vue.js in a minute?]
  6. python来进行图的深度遍历和广度遍历
  7. 操作系统简答题和论述题
  8. xshell与虚拟机VMware中centos6.7系统突然连不上
  9. 黑客帝国代码雨(bat)
  10. SaaS-HRM(2)数据库设计与前端框架(企业管理前后台)
  11. 用于空间搜索的四叉树
  12. 工地人脸识别门禁考的出现对智慧工地提出解决方案
  13. echarts地图设置legend_ECharts 的第 100 个版本!
  14. 计算机毕业设计java+ssm田园乐农家院团建平台_农家乐网站
  15. 无房产证明怎么办理?
  16. 13种最为荒谬的编程语言
  17. 腾讯T3大牛亲自讲解!学java是什么意思
  18. 学会这招,妈妈再也不担心我的排名上不去了
  19. 恶劣天气中如何拍摄360全景图片?
  20. 【R语言】ggplot2---散点图的边框和颜色填充问题

热门文章

  1. Linux下如何解压.zip和.rar文件
  2. 测试基础系列之测试方法 第5讲
  3. [转] 基于MBR 的bootkit的进展 鬼影-TDL4-BMW
  4. 楼市、股市后下一届ZF将用什么去做超发货币的蓄水池(
  5. 计算机无法安装蓝牙驱动,win10蓝牙驱动装不了怎么办_win10电脑蓝牙驱动无法安装处理方法-win7之家...
  6. 利用树莓派为HP LaserJet 1020配置无线打印功能
  7. win7 IIS误删default website的恢复方法
  8. 从程序员到合格的软件设计师
  9. 我的私房IT学习网站
  10. EasyExcel读取文件的问题:Convert excel format exception.You can try specifying the ‘excelType‘ yourself