BACnet-NPDU(4)

news2024/11/17 12:27:26

前面抓取了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.coloradmin.cn/o/2175791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring cloud Gateway网关

网关是将所有面向用户的服务接口统一管理的代理服务器,所有内部服务的远程调用都是在局域网内部,而网关是在公网中。 一、依赖 通过访问网关调用项目中的服务,需要使用Eureka,网关服务器需要在Eureka服务注册它自己,本…

【C++报错已解决】std::ios_base::floatfield

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

The 2024 CCPC Online Contest (C I J三题思路)

写在前面 因为学弟已经问了几个题了,于是乎这场没有vp,准备直接开写了 题目 C. 种树(树形dp) 题解 只有两种情况, 一种是1-2-3,1是2的父亲,2是3的父亲 另一种是1-2-3,2同时是1…

新手如何使用Qt——方法使用

前言 那么这篇文章其实是我在使用Qt的过程当中呢,我发现在Qt使用过程中,在我理解信号和槽这个概念后,在编写槽函数数的时候,发现了自身存在的问题,我的难点是在于当我在编写槽函数的时候,我知道这个槽函数是…

GD32片内flash读写数据

如有技术问题及技术需求请加作者微信! GD32片内Flash的读写数据是微控制器编程中的常见任务,主要用于存储程序代码、配置参数或用户数据等。以下将详细介绍GD32片内Flash的读写数据方法和程序。 一、GD32 Flash的基本特性 存储空间划分:GD32的Flash存储空间通常分为主存储块…

W39-02-jmeter中如何实现:下一个请求是需要根据前一个请求返回值进行循环请求

业务压测需求: 查询和上报接口, 1.查询接口返回的数据有好几条需要上报的数据 2.查询接口中返回的每条数据中,有两个字段需要传递到上报接口 3.查询接口中,这两个字段一个为int型,一个为数组[1,2,3,4] 实现方式 …

大模型算法岗常见面试题100道(非常详细)零基础入门到精通,收藏这一篇就够了

大模型应该是目前当之无愧的最有影响力的AI技术,它正在革新各个行业,包括自然语言处理、机器翻译、内容创作和客户服务等等,正在成为未来商业环境的重要组成部分。 截至目前大模型已经超过200个,在大模型纵横的时代,不…

2条件欧几里得聚类

条件欧几里得聚类 本教程介绍如何使用类: 一种分割算法,根据欧几里得距离和需要保持的用户可自定义条件对点进行聚类。pcl::ConditionalEuclideanClustering 此类使用与 Euclidean Cluster Extraction、Region growing segmentation 和 Color-based …

以太网交换安全:端口隔离

一、端口隔离 以太交换网络中为了实现报文之间的二层广播域的隔离,用户通常将不同的端口加人不同的 VLAN大型网络中,业务需求种类繁多,只通过 VLAN实现报文的二层隔离,会浪费有限的VLAN资源。而采用端口隔离功能,则可…

【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL66

超前进位加法器 描述 题目描述: 求两个四位的数据编写一个四位的超前进位加法器,建议使用子模块 提示:超前进位加法器的位公式如下 这里‘’ ‘’符号不是‘加’和‘乘’,是‘或’和 ‘与’ 波形示意图: 输入…

履带机器人运动模型分析

履带机器人运动学模型分析 滑动转向 履带机器人单侧履带可等效视为“无穷多个小轮子”,且这单侧的“无穷多个小轮子”的“转速”是一致的。所以,履带式机器人的转向方式和四轮驱动机器人(SSMR)的是一致的,也是滑动转向。 因此,下…

供应链 | 顶刊POMS论文精读:交易成本经济学(TCE)——供应链效率理论

编者按 供应链效率提升指南:不可不知的TCE理论视角 本文为Production and Operations Management 期刊论文,原文信息: Ketokivi, M., & Mahoney, J. T. (2020). Transaction cost economics as a theory of supply chain efficiency. …

CentOS 替换 yum源 经验分享

视频教程在bilibili:CentOS 替换 yum源 经验分享_哔哩哔哩_bilibili问题原因 解决方法 1. 进入镜像目录 [rootlocalhost ~]# cd /etc/yum.repos.d/ 2.备份文件 [rootlocalhost yum.repos.d]# rename repo bak * 3.寻找阿里镜像源复制 https://developer.aliyun.com/mirror/ …

文件操作Tips,一次搞懂Python中open与with open的差异

前几天在群里看到,有小伙伴在问,为什么代码中打开文件有的时候用open,有的时候用with open,一会close,一会又没有close,真让人摸不着头脑。我们来看一看,这究竟是怎么回事。 在Python中&#xf…

前端测试最强教程 - 实现 fake http 和 fake db

因为想要写出完美的测试,我们就需要模拟各种接口状态,各种动态数据,要求再高点甚至需要模拟鉴权,那这就不是简单的覆盖方法可以实现的。 所以我们需要一些第三方依赖,下面介绍一下实现步骤。 实现步骤 step 1: 新增…

JSP 的 request 内置对象

文章目录 前言一、request 内置对象是什么?二、request 对象 1.访问请求参数2.在作用域中管理属性3.获取 cookie4.解决中文乱码5.获取客户端信息6.显示国际化信息总结 前言 我们在学习 JavaScript 的时候有了解过常用对象,这些对象可以在这门脚本语言中全…

java项目之作业管理系统设计与实现源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的作业管理系统设计与实现源码。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 作业管理系统…

怎么选择一款适合自己的蓝牙耳机?2024开放式耳机选购指南

在选择开放式耳机时,可以从以下几个要点着手: 佩戴舒适程度: 耳挂的设计:好的耳挂设计能让耳机稳稳地戴在耳朵上,且不会给耳部造成过多压迫。比如有些耳机配备了可调节的耳挂,能依照不同人的耳型和佩戴习…

WordPress 要求插件开发人员进行双因素身份验证

全球超过40%的网站由 WordPress 提供支持,其庞大的插件和主题生态系统在全球范围内提供了灵活性和定制性。然而,这种受欢迎程度也使其成为网络攻击的主要目标。 WordPress 将为所有插件和主题开发人员引入强制性双因素身份验证 (2FA),以应对…

Vue3动态导入后端路由

动态获取文件 // modules就是一个map,文件路径作为key,文件对象作为value const modulesimport.meta.glob(../views/**/*.vue)获取到的modules对象如下: 添加动态路由 import {createRouter, createWebHashHistory} from vue-routerconst m…