BACnet-NPDU(4)

前面抓取了BACnet 的UDP和RS485数据进行分析,现在做一下总结。
BACnet不管是走UDP还是RS485,里面的NPDU和APDU数据结构是一样的,只是BACnet的头不一样,这里做一下总结。


1、UDP的BACnet 头

 BACnet/IP 使用 UDP 协议进行数据传输,采用客户端-服务器通信方式,设备通常充当服务器,默认端口为 47808(0xBAC0)。BACnet/IP 数据包主要由不可变部分和可变部分组成。不可变部分由 BVLC 类型、BVLC 功能和长度组成,而可变部分则根据 BVLC 功能而变化。BACnet/IP 数据包的结构如下图所示:

基本报文类型包括Original-Unicast-NPDU(单播)、Original-Broadcast-NPDU(广播)、Forwarded-NPDU(转发),具体格式如下图所示:

Original-Unicast-NPDU(单播)

Original-Broadcast-NPDU(广播)

Forwarded-NPDU(转发)

2、RS485的BACnet 头

帧格式

例如数据(hex):55 FF 01 03 02 00 00 D7 

0x550xff0x010x030x020x000x000xD7BACnet数据BACnet数据CRC
帧头帧类型目的地址源地址BACnet数据长度,大端CRC

帧类型目前定义为 0-7,8-127 为 ASHRAE 保留。帧类型 128-255 可供供应商用于非 BACnet 帧,数据的前两个字节表示供应商标识符。

当前定义的帧为

令牌 (0)、

主站轮询 (1)、

主站轮询回复 (2)、

测试请求 (3)、

测试响应 (4)、

BACnet 数据等待回复 (5)、

BACnet 数据不等待回复 (6)

回复推迟 (7)。


目标站地址可以是 0-127(用于发送到主节点)、0-254(用于发送到从属节点)和 255(用于向所有节点广播)

3、NDPU

npdu数据结构如下:

Control 字节解释

BitDescriptionIf 1If 0
7APDUNPDU  传递网络层消息NPDU 包含 BACnet APDU
6ReservedReservedReserved
5Destination Specifier包含DNET DLEN DADR 不包含DNET DLEN DADR 
4ReservedReservedReserved
3Source Specifier包含SNET SLEN SADR 不包含SNET SLEN SADR 
2Expecting reply等待回复不用回复
1,0Priority11=生命安全,10=关键设备,01=紧急 00=正常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/884725.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【综合性渗透利器】- TscanPlus

如果你在寻找一款轻量级、实用且开源的漏洞扫描工具,那么 TscanPlus 绝对值得一试。这款工具由 TideSec 团队打造,以其简洁、高效、易用的特点,广受好评,目前在github上拥有1.5k star。 为什么推荐 TscanPlus? 无论你…

探索Kombo:AI与API的完美结合

文章目录 探索Kombo:AI与API的完美结合背景介绍库的定义安装指南简单函数使用场景应用常见问题及解决方案总结 探索Kombo:AI与API的完美结合 背景介绍 在当今快速发展的人工智能领域,Kombo库以其独特的优势脱颖而出。Kombo是一个专注于AI的…

Python项目Flask框架整合Redis

一、在配置文件中创建Redis连接信息 二、 实现Redis配置类 import redis from config.config import REDIS_HOST, REDIS_PORT, REDIS_PASSWD, REDIS_DB, EXPIRE_TIMEclass RedisDb():def __init__(self, REDIS_HOST, REDIS_PORT, REDIS_DB, EXPIRE_TIME, REDIS_PASSWD):# 建立…

《治愈老奶奶账号,AI涨粉玩法,简单好上手》第178期副业项目拆解

正文 一、项目介绍 今天给大家带来的是最新的一个暴力涨粉玩法,这个副业赛道玩法 15 天涨了 30 万粉。 大家可以看一下这个账号,发了有 58 多个作品,现在是 33 万粉, 这个属于是图文账号,做的是那种温暖治愈系类型的…

数据库管理-第245期 主流国产数据库RAC架构概览(20240929)

数据库管理245期 2024-09-29 数据库管理-第245期 主流国产数据库RAC架构概览(20240929)1 DMDSC2 KingBaseES RAC3 PolarDB4 Cantian5 HaloDB DLB/Data Sharding总结 数据库管理-第245期 主流国产数据库RAC架构概览(20240929) 作者…

uni-app - - - - - 小程序获取宿主语言

const systemInfo uni.getSystemInfoSync(); console.log(systemInfo);uni.showModal({title: 宿主语言,content: systemInfo.hostLanguage })官网地址:【uni-app getSystemInfoSync】

OpenCV C++霍夫圆查找

OpenCV 中的霍夫圆检测基于 霍夫变换 (Hough Transform),它是一种从边缘图像中识别几何形状的算法。霍夫圆检测是专门用于检测图像中的圆形形状的。它通过将图像中的每个像素映射到可能的圆参数空间,来确定哪些像素符合圆形状。 1. 霍夫变换的原理 霍夫…

CRUD 开发工具 NocoBase 与 Refine 对比

引言 今天我们来聚焦两款非常优秀的开源 CRUD 开发工具:NocoBase 和 Refine,它们分别是无代码/低代码开发平台和低代码前端开发框架的典型代表。 特别值得一提的是,NocoBase 截止目前已经在GitHub 上获得了 12k 的 Star。Refine 作为 Retool…

AntFlow-Vue3 :一个仿钉钉流程审批,且满足99.8%以上审批流程需求的企业级工作流平台,开源且免费!

在现代企业管理中,流程审批的高效性直接影响到工作的流畅度与生产力。最近,我发现了一个非常有趣的项目—— AntFlow-Vue3 。这个项目不仅提供了一个灵活且可定制的工作流平台,还能让用户以可视化的方式创建和管理审批流程。 如果你是一名前…

828华为云征文|部署个人知识管理系统 SiyuanNote

828华为云征文|部署个人知识管理系统 SiyuanNote 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 SiyuanNote3.1 SiyuanNote 介绍3.2 SiyuanNote 部署3.3 Siyua…

【JavaScript】JQuery基础知识及应用

一、JQuery的导入方法 https://editor.csdn.net/md/?articleId132214798 二、JQuery介绍 JQuery(JQ):JS的一个类库(方法库:包含了大量的、有助于项目开发的属性和方法) 第一代版本1.xx.xx: 1.11.3 兼容所有浏览器的&#xff0…

C语言 | Leetcode C语言题解之第443题压缩字符串

题目&#xff1a; 题解&#xff1a; void swap(char *a, char *b) {char t *a;*a *b, *b t; }void reverse(char *a, char *b) {while (a < b) {swap(a, --b);} }int compress(char *chars, int charsSize) {int write 0, left 0;for (int read 0; read < charsSi…

如何在NetCore8.0 Swagger 里配置多版本

话不多说 &#xff0c;先看效果 要做成以上效果也不难。请跟好脚步&#xff0c;下面带你们一步一步来做 首先要新建一个类 ApiVersionInfo public class ApiVersionInfo{/// <summary>/// 获取或者设置 V1 版本。/// </summary>public static string 软件版本 &qu…

低代码BPA(业务流程自动化)技术探讨

一、BPA流程设计平台的特点 可视化设计工具 大多数BPA流程设计平台提供直观的拖拽式界面&#xff0c;用户可以通过图形化方式设计、修改及优化业务流程。这种可视化的方式不仅降低了门槛&#xff0c;还便于非技术人员理解和参与流程设计。集成能力 现代BPA平台通常具备与其他系…

如何挑选适合的LED芯片

在LED显示屏的应用中&#xff0c;LED芯片作为核心部件&#xff0c;其质量和性能直接影响到整个显示系统的表现。然而&#xff0c;面对市场上琳琅满目的LED芯片产品&#xff0c;消费者常常会感到迷茫&#xff0c;不知道该如何选择。本文将为您介绍一些挑选适合LED芯片的关键要点…

Go基础学习08-并发安全型类型-通道(chan)深入研究

文章目录 chan基础使用和理解通道模型&#xff1a;单通道、双通道双向通道单向通道单向通道的作用 缓冲通道和非缓冲通道数据发送和接收过程缓冲通道非缓冲通道 通道基本特性通道何时触发panicChannel和Select结合使用Select语句和通道的关系Select语句的分支选择规则有那些Sel…

基于Hive和Hadoop的招聘分析系统

本项目是一个基于大数据技术的招聘分析系统&#xff0c;旨在为用户提供全面的招聘信息和深入的职位市场分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 Spark 为核…

旺店通ERP集成金蝶K3(旺店通主供应链)

源系统成集云目标系统 金蝶K3介绍 金蝶K3是一款ERP软件&#xff0c;它集成了供应链管理、财务管理、人力资源管理、客户关系管理、办公自动化、商业分析、移动商务、集成接口及行业插件等业务管理组件。以成本管理为目标&#xff0c;计划与流程控制为主线&#xff0c;通过对成…

Vue开发前端图片上传给java后端

前端效果图 图片上传演示 1 前端代码 <template><div><!-- 页面标题 --><h1 class"page-title">图片上传演示</h1><div class"upload-container"><!-- 使用 van-uploader 组件进行文件上传&#xff0c;v-model 绑…

Golang | Leetcode Golang题解之第443题压缩字符串

题目&#xff1a; 题解&#xff1a; func compress(chars []byte) int {write, left : 0, 0for read, ch : range chars {if read len(chars)-1 || ch ! chars[read1] {chars[write] chwritenum : read - left 1if num > 1 {anchor : writefor ; num > 0; num / 10 {…